GithubHelp home page GithubHelp logo

Comments (11)

gujjwal00 avatar gujjwal00 commented on June 10, 2024 1

Here is my opinion so far:

  • Will this be implemented?
    Yes, as an experimental option. What I am actually planning is to pause framebuffer updates whenever AVNC is in background. It should reduce battery/bandwidth usage for everybody. Another motivation for pausing updates is a possible fix for #92. Turning off video completely will be an extension of this.

  • Why not implement full "remote control"?
    As I said before, proper "remote control" experience is much more complex than turning off video. You can have media keys, you can have mouse buttons, haptic feedback, shortcuts and much more. I have never targeted this use-case with AVNC. Having a different "mode" will affect many things (e.g. zooming doesn't make sense in remote control mode). I still believe you will have a better experience with a dedicated app like KDEConnect.

  • Why implement it at all then?
    Well, this can be asked about many things implemented in AVNC. If I have time, and something is useful to users, I usually don't deny it. There are some things AVNC is very good at (e.g. gesture configuration mentioned by @nahuhh ), which you may like.

  • Why mark it as experimental?
    Turning off video will actually reduce the capabilities of VNC protocol, and some server may work differently. So this to to warn users that the some things may not work as expected.

  • Won't pausing updates in background solve the main issue here?
    Yes, as you will simply be able to push AVNC in background when not needed to conserve battery. If this is enough for you, please let me know.

Thanks.

from avnc.

gujjwal00 avatar gujjwal00 commented on June 10, 2024

The situation is much more complicated here.

Easiest option is to stop rendering the frame, but it won't help with CPU/Network usage as all that work still needs to be done in background. If we stop framebuffer updates entirely, it breaks a bunch of other stuff (e.g. cursor updates, frame resize, extended key events etc) because these are implemented as "pseudo-encodings" in RFB protocol.

Even if that was acceptable, a simple black screen is not going to be ideal experience for remote control. You will need touch feedback, probably more virtual keys, special handling of zoom etc.

IMHO, you should try apps dedicated to this particular task (e.g. some apps can act as a Bluetooth keyboard/touchpad).

from avnc.

barkoder avatar barkoder commented on June 10, 2024

The bluetooth driver for my linux laptop doesn't work. It's never worked. And Bluetooth dongles don't work either.

VNC over WiFi, does.

So VNC is what I use to control it.

You mentioned a few things that implementing this would break?

I'm curious, is there a reason for why a cursor might need to update on a black screen, because I wouldn't even need to see the cursor?

I would've thought that it would be okay if this breaks?

Frame resize - Do you mean the pinch to zoom and unzoom? Or do you mean the resizing that happens when AVNC downscales/upscales the frame to fit a given Android screen?

As a potential solution, and please pardon me if I sound stupid proposing the following sentence as a solution but, is it possible, during this hypothetical "remote control" mode, for AVNC to create like a resizable black dummy frame that's generated on device instead of passing through frames from the server, to stop "frame resizing" from breaking?

Extended key events - I presume this means Ctrl, Alt, Shift, Insert etc.?

If so, yes, this is important to me. This cannot break.

Even if that was acceptable, a simple black screen is not going to be ideal experience for remote control.

It doesn't have to be ideal, I only need wifi keyboard(using VNC or some other open protocol) to type into a terminal that I'm in front of. To use and control mpv and any other media player, without draining my phone battery.

Instead of the slider going all the way down to blank, that I proposed in the OP, you could even have it as a separate button in the server options as "Remote Control Mode (Experimental)", with an (?) beside it, stating precisely what the trade-offs of this mode might entail for those who choose to use it?

If I want to switch to regular mode, I'll create a new server profile, with screen pass through(regular non-remote control mode).

IMHO, you should try apps dedicated to this particular task (e.g. some apps can act as a Bluetooth keyboard/touchpad).

I've looked, but I've found none.

Not even closed source ones, let alone FOSS.

The few that exist ask me to install some non-VNC proprietary service that's always incompatible on my Linux Desktop.

The solution that comes closest to what I need is Weylus' "Energy Saving mode (no video, black screen)".

But there's no keyboard Input. Only Mouse, Stylus and Touch.

Unfortunately the Weylus project has had no new release since 31st Oct 2021. No commits since 6th Aug 2022.

If you or anyone else reading this finds a better solution that works over WiFi(ideally FOSS), please do let me know, I'd appreciate it.

Thanks!

from avnc.

gujjwal00 avatar gujjwal00 commented on June 10, 2024

I'm curious, is there a reason for why a cursor might need to update on a black screen, because I wouldn't even need to see the cursor?
I would've thought that it would be okay if this breaks?

It can also affect the cursor position, but you are right, this probably won't be a big issue.

Frame resize - Do you mean the pinch to zoom and unzoom? Or do you mean the resizing that happens when AVNC downscales/upscales the frame to fit a given Android screen?

As a potential solution, and please pardon me if I sound stupid proposing the following sentence as a solution but, is it possible, during this hypothetical "remote control" mode, for AVNC to create like a resizable black dummy frame that's generated on device instead of passing through frames from the server, to stop "frame resizing" from breaking?

Together with zooming in client, it also concerns screen resize on server.

Extended key events - I presume this means Ctrl, Alt, Shift, Insert etc.?

If so, yes, this is important to me. This cannot break.

It likely won't break, but some key/shortcuts may not work with some servers.

It doesn't have to be ideal, I only need wifi keyboard(using VNC or some other open protocol) to type into a terminal that I'm in front of. To use and control mpv and any other media player, without draining my phone battery.

Instead of the slider going all the way down to blank, that I proposed in the OP, you could even have it as a separate button in the server options as "Remote Control Mode (Experimental)", with an (?) beside it, stating precisely what the trade-offs of this mode might entail for those who choose to use it?

If you are willing to accept tradeoffs, I can add an experimental option. But please note that this mode opens up many new features/extensions which I am not willing to implement.

If you or anyone else reading this finds a better solution that works over WiFi(ideally FOSS), please do let me know, I'd appreciate it.

MultiVNC has a very nice Touchpad mode. It does exactly what you are asking here.

from avnc.

barkoder avatar barkoder commented on June 10, 2024

I had already tried MultiVNC. But after your recommendation I tried it once more. It doesn't have this feature.

Setting Quality Level to 0 or None doesn't stop frames from being passed through.

I don't see any option for a blank black screen?

Maybe I'll open a ticket on on MultiVNC's issues page.

If you are willing to accept tradeoffs, I can add an experimental option. But please note that this mode opens up many new features/extensions which I am not willing to implement.

Yes please! I understand. Thank you!

from avnc.

gujjwal00 avatar gujjwal00 commented on June 10, 2024

I don't see any option for a blank black screen?

  1. Connect to a server
  2. Tap on green hamburger menu (≡)
  3. Tap on 'Toggle View'

from avnc.

userw2891 avatar userw2891 commented on June 10, 2024
  • you just have to disable view of video in VLC (the quickest and simplest way)
  • I think some VNC server disable automaticaly movie video output (or it can be disabled from vnc server settings)
  • bring down encoding setings in client AVNC

Maybe in the future we will have along a scroll "Image Quality", a clear selection of color depth 32b/16b/8b because this significantly reduce network load (Personally I have not tested AVNC Image Quality settings to see if is enought good, as I used it on good internet connection, not test it on crap internet connection)

from avnc.

userw2891 avatar userw2891 commented on June 10, 2024

And not the last this is a VNC client not a terminal for commands to server... so video should be always enabled.

This issue shold be closed, as user request is totaly unresonable, try to ask for a feature so he can use an app that is not intended to be used in that way.

from avnc.

nahuhh avatar nahuhh commented on June 10, 2024

This issue shold be closed, as user request is totaly unresonable, try to ask for a feature so he can use an app that is not intended to be used in that way.

I 100% disagree.
Blank/black screen saves a LOT of battery power and (i assume) bandwidth.
i very, very often use vnc as a wireless mouse and keyboard.

i use KDECONNECT for certain use cases, but avnc's mouse is superior to any other ive used.

+1 to adding an feature that lets you set the screen quality to blank.

from avnc.

PureIncompetence avatar PureIncompetence commented on June 10, 2024

IMHO, you should try apps dedicated to this particular task (e.g. some apps can act as a Bluetooth keyboard/touchpad).

I've looked, but I've found none.

Not even closed source ones, let alone FOSS.

If you or anyone else reading this finds a better solution that works over WiFi(ideally FOSS), please do let me know, I'd appreciate it.

Thanks!

@barkoder
KDEConnect, which @nahuhh already mentioned, contains exactly what you were describing with its "Remote Control" option. Remotely contolling mouse and keyboard works perfectly fine. I'm using it for exactly the usecase you described. Its completely FOSS (client and server). If you're using gnome on your linux box there is GSConnect, which implements the kdeconnect protocol for gnome (didn't use that yet though).

from avnc.

barkoder avatar barkoder commented on June 10, 2024

Thank you @nahuhh and @PureIncompetence for the suggestions! I will check them out.

Thank you for the help with MultiVNC @gujjwal00 . Yes, that works as intended. But no option to set that permanently as a "profile". I'll see about raising an issue over in the MultiVNC issues page.

Yes, as you will simply be able to push AVNC in background when not needed to conserve battery. If this is enough for you, please let me know.

While this would still be more clicks than I'd personally like, I think this should be good enough my phone's battery.

However, at least currently(v2.2.1), the keyboard gets auto-hidden whenever I push AVNC to the background and come back again. In this hypothetical experimental "remote control" mode, it would be rather tedious to have to bring up the sidebar every time and pull up the keyboard, just to hit a couple of buttons.

Basically, could you make it so that if keyboard was open when AVNC got pushed into the background, then the keyboard should automatically show up if AVNC is brought back into the foreground. I also think that this should be the case even in normal mode.

Thanks again!

from avnc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.