Remote Desktop: Difference between revisions
imported>Skylark →Clients: Alpha order, add freerdp tightvnc turbovnc |
imported>Skylark →Servers: Tidy, update status of Guacamole |
||
| Line 13: | Line 13: | ||
Most servers provide a <code>vncserver</code> command. | Most servers provide a <code>vncserver</code> command. | ||
Various servers provide | Various servers provide configuration options either by CLI or by configuration file. | ||
==== Desktop session ==== | ==== Desktop session ==== | ||
To start a desktop session or window manager, one currently has to do this manually | To start a desktop session or window manager, one currently has to do this manually because servers still have hard-coded paths to <code>/usr/share/xsessions</code> to look for <code>.desktop</code> files. That means one has to write a script that starts the desktop session, window manager, or any other X application. | ||
Some servers will automatically run <code>$HOME/.vnc/xstartup</code> but the more secure | Some servers will automatically run <code>$HOME/.vnc/xstartup</code> but the more secure option is to write an executable script and run <code>vncserver -xstartup $pathToScript</code> | ||
An example script: | |||
An example script | |||
<source lang="bash"> | <source lang="bash"> | ||
#!/usr/bin/env bash | #!/usr/bin/env bash | ||
| Line 33: | Line 31: | ||
<code>pathToScript</code> can also be a path to an executable like <code>${pkgs.icewm}/bin/icewm</code> | <code>pathToScript</code> can also be a path to an executable like <code>${pkgs.icewm}/bin/icewm</code> | ||
=== Tiger VNC === | === Tiger VNC === | ||
| Line 41: | Line 36: | ||
Nixpkgs has a package but no service. | Nixpkgs has a package but no service. | ||
The server component can be started using the <code>vncserver</code> command. | The server component can be started using the <code>vncserver</code> command. | ||
To connect use the <code>vncviewer</code> command. | To connect, use the <code>vncviewer</code> command. | ||
=== x2go === | === x2go === | ||
| Line 47: | Line 42: | ||
X2go client is packaged in nixos as <code>x2goclient</code>. | X2go client is packaged in nixos as <code>x2goclient</code>. | ||
The server is installed by | The server is installed by adding the following line:<br/> | ||
<code>services.x2goserver.enable = true;</code><br> | <code>services.x2goserver.enable = true;</code><br/> | ||
to /etc/nixos/configuration.nix. | to /etc/nixos/configuration.nix. | ||
| Line 67: | Line 62: | ||
(Source: [https://discourse.nixos.org/t/please-post-working-xrdp-setting-in-configuration-nix/7404/10 Discourse Link], [https://github.com/NixOS/nixpkgs/blob/86a80807d8d7051c63ab2b9d7f630abe066468b1/nixos/modules/services/networking/xrdp.nix nixpkgs code]) | (Source: [https://discourse.nixos.org/t/please-post-working-xrdp-setting-in-configuration-nix/7404/10 Discourse Link], [https://github.com/NixOS/nixpkgs/blob/86a80807d8d7051c63ab2b9d7f630abe066468b1/nixos/modules/services/networking/xrdp.nix nixpkgs code]) | ||
You need to log out the user first on the remote machine, otherwise you'll get a black screen. (Source: [https://www.reddit.com/r/Proxmox/comments/hxp28j/black_screen_in_microsoft_remote_desktop_noob/fzm7zbo/ Reddit]). It may be particularly true on a multi-user system. You may be able to work around this by enabling and configuring [[Polkit]]. The configuration for enabling these permissions is the example code on that page. | |||
<code>freerdp</code> or <code>remmina</code> can be used on the client side. | <code>freerdp</code> or <code>remmina</code> can be used on the client side. | ||
| Line 73: | Line 68: | ||
=== Guacamole === | === Guacamole === | ||
Guacamole-server and guacamole-client are in nixpkgs. Some details are in the [https://github.com/NixOS/nixpkgs/issues/17879 package request]. | |||
https://github.com/NixOS/nixpkgs/issues/17879 | |||
=== Meshcentral === | === Meshcentral === | ||
Meshcentral is a self-hosted open source administration tool similar to teamviewer. | Meshcentral is a self-hosted open source administration tool similar to teamviewer. | ||
It can be added with: | |||
<code>services.meshcentral.enable = true;</code> | <code>services.meshcentral.enable = true;</code> | ||
( | However, the agent (client) is not available. ([https://github.com/NixOS/nixpkgs/issues/167527 Request]) | ||
https://github.com/NixOS/nixpkgs/issues/167527 | |||