====== LXDE Setup ====== **As of July 2013, this fix seems to be outdated.... Not sure what walter did, but it seems to be fixed without using the lxdm configuration files.** ====== Setup ====== Workstations with a dual-monitor setup have some issues with deciding which monitor to use as the primary monitor. This will cause some issues with some games, applications, and issues with screen alignment. In order to fix these issues, Josh Kilmer (jkilmer) (srjek) has written some scripts to aid in the process of setup. # Begin Josh Kilmer's (jkilmer)(srjek) dualmonitor script xrandr --output DVI-I-3 --off # Turn off secondary monitor to fix window snapping alignment issue xrandr --auto # For connected but disabled outputs, this will enable them using their preferred mode xrandr --output DVI-I-3 --left-of DVI-I-2 # Set secondary monitor to be on the left (DVI-3) xrandr --output DVI-I-2 --primary # Set primary monitor to the on on the right (DVI-2) # End Josh Kilmer's (jkilmer)(srjek) dualmonitor script Please note that this has only been tested on the HP workstations running ArchLinux, and have not been extensively tested on single-monitor setups and the like. ====== Running at Login ====== --- //[[clee231@uic.edu|Chase Lee]] 2013/04/27 02:19// In order to automate this process,(instead of making users do this themselves) we can put this script in the corresponding LXDM configurations files. The LXDM files are run at specific times during the login and logout process. Appending these commands will automatically setup the dual-monitor layout. The following are copies of the modified LXDM configurations files as of **May 13, 2013**: Note that these settings should not be applied to single-monitor setups, as this may result in unintended results. ==== /etc/lxdm/PreShutdown | (Executed as root) ==== #!/bin/sh # # Note: this is a sample and will not be run as is. ==== /etc/lxdm/PostLogin | (Executed as logged-in user) ==== #!/bin/sh # # Note: this is a sample and will not be run as is. #loltask > /dev/null & thunar --daemon & #if [ ! -d "/home/$USER/Steam" ] #then # mkdir /home/$USER/Steam # echo "/home/$USER/Steam created on $HOSTNAME" >> /var/log/test #fi #sudo /usr/local/bin/steamMount $USER ==== /etc/lxdm/PreReboot | (Executed as root) ==== #!/bin/sh # # Note: this is a sample and will not be run as is. ==== /etc/lxdm/PostLogout (Executed as logged-in user) ==== #!/bin/sh # # Note: this is a sample and will not be run as is. if [ "$USER" == "acmguest" ] then sudo /usr/local/sbin/guestd restart fi umount $HOME/.local/share/Steam killall --user $USER -TERM xsetroot -solid black test -x /usr/bin/pax11publish && /usr/bin/pax11publish -r # this makes sure lxdm is restarted if it crashes if [ ! -z "$(pgrep lxdm)" ] then systemctl restart lxdm fi # this forces users t o logout loginctl terminate-user user1 user2 # Begin Josh Kilmer's (jkilmer)(srjek) dualmonitor script xrandr --output DVI-I-3 --off # End Josh Kilmer's (jkilmer)(srjek) dualmonitor script ==== /etc/lxdm/PreLogin | (Executed as root) ==== #!/bin/sh # # Note: this is a sample and will not be run as is. #!/bin/sh # # Note: this is a sample and will not be run as is. #loltask > /dev/null & #mount -B /opt/Steam /home/$USER/Steam #if [ "$?" -ne "0" ] #then # mkdir /home/$USER/Steam # mount -B /opt/Steam /home/$USER/Steam #fi #!/bin/sh # # Note: this is a sample and will not be run as is. #!/bin/sh # # Note: this is a sample and will not be run as is. mount -B /opt/Steamlocal $HOME/.local/share/Steam chown -R $USER:users $HOME/.local/share/Steam # Begin Josh Kilmer's (jkilmer)(srjek) dualmonitor script xrandr --output DVI-I-3 --off xrandr --auto xrandr --output DVI-I-3 --left-of DVI-I-2 xrandr --output DVI-I-2 --primary # End Josh Kilmer's (jkilmer)(srjek) dualmonitor script ==== /etc/lxdm/Xsession ==== #!/bin/bash # use bash for "exec -l", howto run login shell by /bin/sh ? if [ $# -eq 1 -a -n "$1" ]; then LXSESSION=$1 else # default session LXSESSION=/usr/bin/startlxde fi [ -f /etc/profile ] && . /etc/profile [ -f ~/.profile ] && . ~/.profile [ -f /etc/xprofile ] && . /etc/xprofile [ -f ~/.xprofile ] && . ~/.xprofile if [ -f /etc/X11/xinit/xinitrc-common ]; then # fedora . /etc/X11/xinit/xinitrc-common if ! [ -z "$XDG_SESSION_COOKIE" ]; then CK_XINIT_SESSION= elif [ -x /usr/bin/ck-launch-session -a -z "$CK_XINIT_SESSION" ]; then CK_XINIT_SESSION="/usr/bin/ck-launch-session" fi exec -l $SHELL -c "$CK_XINIT_SESSION \"$LXSESSION\"" elif [ -x /etc/X11/xinit/Xsession ]; then # fedora exec /etc/X11/xinit/Xsession "$LXSESSION" elif [ -x /etc/X11/Xsession ]; then # mandriva, debian, ubuntu exec /etc/X11/Xsession "$LXSESSION" elif [ -x /etc/X11/xinit/xinitrc ]; then #suse export WINDOWMANAGER=$LXSESSION exec -l $SHELL -c /etc/X11/xinit/xinitrc else # unknown, user should custom /etc/lxdm/xinitrc self if [ -x /etc/lxdm/xinitrc ]; then . /etc/lxdm/xinitrc fi if ! [ -z "$XDG_SESSION_COOKIE" ]; then CK_XINIT_SESSION= elif [ -x /usr/bin/ck-launch-session ]; then CK_XINIT_SESSION="/usr/bin/ck-launch-session" fi exec -l $SHELL -c "$CK_XINIT_SESSION \"$LXSESSION\"" fi ==== /etc/lxdm/LoginReady | (Executed as root) ==== #!/bin/sh # # Note: this is a sample and will not be run as is. ===== Running at Login Notes ===== Note the only files that were modified/related to this fix is: * PostLogout * PreLogin Other files are documented solely for the purpose of completeness. Other improvements can possibly be made, but that's for another time and day... --- //[[clee231@uic.edu|Chase Lee]] 2013/04/27 02:19//