![]() startx.sh from the console when I'm physically in front of the monitor it works perfectly. The really absurd thing is that if I run the startx command from the keyboard in front of the monitor startx works without problems (always as user pi). Parse_vt_settings /dev/tty0 (permission denied) If I try to run it from ssh it says (well, i dont care to start it via ssh, it was only a try): It doesn't work and the pi's Xorg Desktop doesn't start. In practice, I want the Raspberry to start in console mode and starts the 'pi' user's desktop only if this device is inserted through the script startx.sh. Now I would like this script to run the startx command as the user 'pi'. The test.txt file is actually created each time I insert e.g. This rule works, in the sense that if in my script I write #!/bin/bash With this method you need to set each application's window geometry through its own configuration files (if possible at all).I wrote a rule in /etc// that runs a bash script '/home/pi/startx.sh' if a device is plugged into my Raspberry Pi 4. ![]() For example:Īlternatively the binary can be called directly from the command prompt as described in #Override xinitrc. It is possible to start only specific applications without a window manager, although most likely this is only useful with a single application shown in full-screen mode. $ startx ~/.xinitrc session Starting applications without a window manager # No known session, try to run it as command The following example shows how to start a particular desktop environment or window manager with an argument: If you are frequently switching between different desktop environments or window managers, it is convenient to either use a display manager or expand ~/.xinitrc to make the switching possible. Switching between desktop environments/window managers Tip: This method can be combined with automatic login to virtual console. See also Fish#Start X at login and Systemd/User#Automatic login into Xorg without display manager. If you want to take the risk and remain logged in when the X session ends, remove exec. The exec command ensures that the user is logged out when the X server exits, crashes or is killed by an attacker. You can replace the -eq comparison with one like -le 3 (for vt1 to vt3) if you want to use graphical logins on more than one virtual terminal.Īlternative conditions to detect the virtual terminal include "$(tty)" = "/dev/tty1", which does not allow comparison with -le, and "$(fgconsole 2>/dev/null || echo -1)" -eq 1, which does not work in serial consoles. ~/.bash_profile for Bash or ~/.zprofile for Zsh): Place the following in your login shell initialization file (e.g. Make sure that startx is properly configured. See also #Starting applications without a window manager and Running program in separate X display. Tip: This can be used to start regular GUI programs but without any of the basic window manager features. See Xserver(1) for a list of all command line options. ![]() Therefore it is recommended to specify vt$XDG_VTNR in the ~/.xserverrc file:Įxec /usr/bin/Xorg -nolisten tcp vt$XDG_VTNR ![]() ![]() In order to maintain an authenticated session with logind and to prevent bypassing the screen locker by switching terminals, Xorg has to be started on the same virtual terminal where the login occurred. Both startx and xinit execute ~/.xserverrc if it exists, startx will use /etc/X11/xinit/xserverrc otherwise. The xserverrc file is a shell script responsible for starting up the X server. Prepending exec will replace the script process with the window manager process, so that X does not exit even if this process forks to the background. Note that some programs should instead not be forked, to avoid race bugs, as is the case of xrdb. Otherwise, the script would halt and wait for each program to exit before executing the window manager or desktop environment. Long-running programs started before the window manager, such as a screensaver and wallpaper application, must either fork themselves or be run in the background by appending an & sign. Note: At the very least, ensure that the last if block in /etc/X11/xinit/xinitrc is present in your ~/.xinitrc file to ensure that the scripts in /etc/X11/xinit/xinitrc.d are sourced. ![]()
0 Comments
Leave a Reply. |