User Tools

Site Tools


linux:lxdm_login_theming_setup

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
linux:lxdm_login_theming_setup [2013/08/23 23:19]
clee231 Updated Scripts to account for changes to workstation setup
linux:lxdm_login_theming_setup [2021/05/02 21:36] (current)
Line 1: Line 1:
 +====== LXDM Login Theming Setup ======
 +
 ====== Introduction ====== ====== Introduction ======
  
 The ArchLinux Workstations are themed with either the ACM Logo or LUG logo.  They are set to alternate between workstations. The ArchLinux Workstations are themed with either the ACM Logo or LUG logo.  They are set to alternate between workstations.
  
-I(clee231)(Chase Lee) have written a script to determine and switch the logos based on hostname.+====== Setup ======
  
-Currently, ​the script is setup to run once before logging in the user as root. This means that there needs to be at least one login for the script to run.+<WRAP center round info 60%> 
 +Setup the [[linux:​acm_custom_repo|ACM custom repo]] on the workstation first 
 +</​WRAP>​
  
-====== Setup ======+Install themes with this command and follow the post install instructions 
 +<​code|bash>​ 
 +pacman -S acm-lug-lxdm-themes 
 +</​code>​ 
 + 
 +Unpack {{:​acm-themes.tar.gz|this archive with the ACM and LUG themes}} into /​usr/​share/​lxdm/​themes
  
-This is setup by two files:+This is setup by several ​files:
  
-  * /​etc/​lxdm/​PreLogin+  ​* /​etc/​lxdm/​LoginReady 
 +  ​* /​etc/​lxdm/​PreLogin ​(unused) 
 +  * /​etc/​lxdm/​PostLogin 
 +  * /​etc/​lxdm/​PostLogout 
 +  * /​etc/​lxdm/​PreReboot (unused) 
 +  * /​etc/​lxdm/​PreShutdown (unused) 
 +  * /​etc/​lxdm/​lxdm.conf
   * /​etc/​lxdm/​SetLogo   * /​etc/​lxdm/​SetLogo
  
-** PreLogin ** - This calls the SetLogo script. Executed by LXDM as root.+The directory also contains ​the Xsession file, which should not be edited manually
  
-** SetLogo ** - Contains ​a set of all six workstation hostnames, and detects which theme to use.+** LoginReady ** - This is executed as root when LXDM is ready to show the screen. 
 + 
 +** PreLogin ** - Executed by LXDM as root. 
 + 
 +** SetLogo ** - Contains ​the sed regex for the link and IP, the '​even'​ and '​odd'​ themes settings, and detects which theme to use.
  
 ====== Scripts ====== ====== Scripts ======
-Up to date as of **August 232013**. +Up to date as of **September 32017**. 
-==== /etc/lxdm/PreLogin ​| (Executed as root) ====+ 
 +==== /etc/lxdm/LoginReady ​| (Executed as root) ====
 <code bash> <code bash>
 #!/bin/sh #!/bin/sh
-# +/​etc/​lxdm/​SetLogo 
-Notethis is a sample and will not be run as is.+#/​usr/​bin/​xsetroot -solid black 
 +/​usr/​bin/​mount 172.29.0.6:/acm-home /home 
 +/​usr/​bin/​mount 172.29.0.7:/​pkgs-64 /​var/​cache/​pacman/​pkg 
 +/​usr/​bin/​localectl set-keymap us 
 +</​code>​ 
 + 
 +==== /​etc/​lxdm/​PostLogin | (Executed as logged-in user) ==== 
 +<code bash>
 #!/bin/sh #!/bin/sh
-+xset dpms 0 0 0
-# Note: this is a sample and will not be run as is. +
-#loltask > /dev/null & +
-#mount -B /opt/Steam /​home/​$USER/​Steam +
-mount -B /​opt/​Steamlocal $HOME/​.local/​share/​Steam +
-if [ "​$?"​ -ne "0" ] +
-then +
- mkdir -p $HOME/​.local/​share/​Stean +
- mount -B /​opt/​Steamlocal $HOME/​.local/​share/​Steam +
-fi +
-chown -R $USER:users $HOME/​.local/​share/​Steam +
-/bin/bash /​etc/​lxdm/​SetLogo+
 </​code>​ </​code>​
  
-==== /etc/lxdm/SetLogo ​| (Inherently run as root be previous script.) ====+==== /etc/lxdm/PostLogout ​| (Executed ​as logged-in user) ====
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
-# Author: Chase Lee (clee231) 
-# Date: August 23, 2013 
-# Version: 1.02 
-# Description:​ Determines and sets the login theming based on hostname. 
-# Dependencies: ​ 
-# - Hostname (GNU inetutils >= 1.9.1) 
-# - Sed (sed >= 4.2.2) 
-# - Bash (GNU Bash >= 4.2) (;-P) 
  
-CURRENT_HOSTNAME=`hostname` +#umount $HOME/.local/​share/​Steam 
-As of August 23, 2013, there resides 6 workstations in the ACM/LUG office+xsetroot -solid black
-ACM_HOSTNAMES=( defiant.acm.cs miranda.acm.cs sovereign.acm.cs ) +
-LUG_HOSTNAMES=( constitution.acm.cs galaxy.acm.cs intrepid.acm.cs )+
  
-function contains() { +##Reset guest directory 
-    local n=$+sudo -/​usr/​bin/​guestd ​$USER
-    local value=${!n+
-    for ((i=1;i < $#;i++)) { +
-        if [ "​${!i}"​ == "​${value}"​ ]; then +
-            echo "​y"​ +
-            return 0 +
-        fi +
-    } +
-    echo "​n"​ +
-    return 1 +
-}+
  
-if [ $(contains "${ACM_HOSTNAMES[@]}"​ "​${CURRENT_HOSTNAME}"​) == "​y"​ ] +test -x /​usr/​bin/​pax11publish && /​usr/​bin/​pax11publish -r 
-then +# Terminate current user session 
-# echo "This is an ACM Logo." +#killall --user ​$USER -TERM 
- sed --e '​s/​^theme=.*/theme=acm/' /etc/lxdm/lxdm.conf +#/​usr/​bin/​loginctl terminate-session ​$XDG_SESSION_ID 
-elif [ $(contains "​${LUG_HOSTNAMES[@]}" "${CURRENT_HOSTNAME}"== "y" ]+xset dpms 300 330 360 
 +#if ! pgrep lxdm-greeter >> /dev/null 
 +#then 
 +#​ /​usr/​bin/​systemctl restart lxdm 
 +#fi 
 +</​code>​ 
 + 
 +==== /​etc/​lxdm/​SetLogo | (Inherently run as root be previous script.) ==== 
 +<code bash> 
 +#!/​bin/​bash 
 +# Authors: Chase Lee (clee231), Walter Dworak (walter) 
 +# Date: September 15, 2014 
 +# Version: 1.03 
 +# Description:​ Determines and sets the login theming based on modulus 2 op on last segment of IPv4 address. 
 +# Dependencies:​  
 +#               Awk (Awk >= 4.1.0) 
 +#               Bash (GNU Bash >4.2) (;-P) 
 + 
 +# As of July 16, 2013, there resides 6 workstations in the ACM/LUG office. 
 +_EVEN_THEME="acm
 +_ODD_THEME="​lug"​ 
 +_IP="​$(ip addr | awk '/inet&& /​enp/​{sub(/​\/.*$/,""​,$2); print $2}' | cut -d'​.'​ -f4)" 
 +_REMAIN=$(expr $_IP % 2) 
 +if [ $_REMAIN -eq 0 ]
 then then
-# echo "This is an LUG Logo."​ +        echo "This is an ACM Logo."​ 
- sed -i -e '​s/​^theme=.*/​theme=lug/' /​etc/​lxdm/​lxdm.conf+        sed -i -e '​s/​^theme=.*/​theme='​$_EVEN_THEME'/'​ /​etc/​lxdm/​lxdm.conf 
 +else 
 +        ​echo "This is an LUG Logo."​ 
 +        sed -i -e '​s/​^theme=.*/​theme='​$_ODD_THEME'​/' /​etc/​lxdm/​lxdm.conf
 fi fi
 </​code>​ </​code>​
linux/lxdm_login_theming_setup.1377299972.txt.gz · Last modified: 2021/05/02 21:36 (external edit)