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 [2014/09/15 21:41]
walter [Scripts]
linux:lxdm_login_theming_setup [2017/09/03 21:39]
wtoher Updated scripts while working on dvorak keyboard fix
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>​
  
-This is setup by two files:+Unpack {{:acm-themes.tar.gz|this archive with the ACM and LUG themes}} into /​usr/​share/​lxdm/​themes
  
-  ​* /​etc/​lxdm/​PreLogin+This is setup by several files: 
 + 
 +  * /​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 **September ​192014**. +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. +</​code>​ 
-#loltask > /dev/null & + 
-#mount -B /opt/Steam /home/$USER/Steam +==== /​etc/​lxdm/​PostLogout | (Executed ​as logged-in user) ==== 
-#​mount ​-/opt/Steamlocal ​$HOME/.local/share/Steam +<code bash> 
-#if [ "​$?" ​-ne "​0"​ ]+#!/bin/bash 
 + 
 +#umount $HOME/.local/​share/Steam 
 +xsetroot -solid black 
 + 
 +##Reset guest directory 
 +sudo -n /usr/bin/guestd ​$USER 
 + 
 +test -/usr/bin/​pax11publish && /​usr/​bin/​pax11publish -r 
 +# Terminate current user session 
 +#killall --user ​$USER -TERM 
 +#/usr/bin/loginctl terminate-session $XDG_SESSION_ID 
 +xset dpms 300 330 360 
 +#if ! pgrep lxdm-greeter >> /dev/null
 #then #then
-# mkdir -p $HOME/.local/share/Stean +# /usr/bin/systemctl restart lxdm
-# mount -B /​opt/​Steamlocal $HOME/​.local/​share/​Steam+
 #fi #fi
-#chown -R $USER:users $HOME/​.local/​share/​Steam 
-#/bin/bash /​etc/​lxdm/​SetLogo 
 </​code>​ </​code>​
  
Line 43: Line 80:
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
-Author: Chase Lee (clee231) +Authors: Chase Lee (clee231), Walter Dworak (walter
-# Date: August 232013 +# Date: September 152014 
-# Version: 1.02 +# Version: 1.03 
-# Description:​ Determines and sets the login theming based on hostname.+# Description:​ Determines and sets the login theming based on modulus 2 op on last segment of IPv4 address.
 # Dependencies: ​ # Dependencies: ​
- Hostname ​(GNU inetutils ​>= 1.9.1+              ​Awk (Awk >= 4.1.0
-# - Sed (sed >= 4.2.2+              ​- Bash (GNU Bash >= 4.2) (;-P)
-# - Bash (GNU Bash >= 4.2) (;-P)+
  
-CURRENT_HOSTNAME=`hostname` +# As of July 16, 2013, there resides 6 workstations in the ACM/LUG office. 
-# As of August 23, 2013, there resides 6 workstations in the ACM/LUG office. +_EVEN_THEME="acm" 
-ACM_HOSTNAMES=( defiant.acm.cs miranda.acm.cs sovereign.acm.cs ) +_ODD_THEME="​lug"​ 
-LUG_HOSTNAMES=( constitution.acm.cs galaxy.acm.cs intrepid.acm.cs ) +_IP="$(ip addr | awk '/​inet/​ && /enp/{sub(/\/.*$/,""​,$2)print $2}' | cut -d'​.' ​-f4)" 
- +_REMAIN=$(expr $_IP % 2) 
-function contains() { +if [ $_REMAIN -eq 0 ]
-    local n=$# +
-    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"​ ] +
-then +
-# echo "This is an ACM Logo."​ +
- sed -i -e 's/^theme=.*/​theme=acm/​' ​/​etc/​lxdm/​lxdm.conf +
-elif [ $(contains "${LUG_HOSTNAMES[@]}" "${CURRENT_HOSTNAME}"​) == "​y" ​]+
 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.txt · Last modified: 2021/05/02 21:36 (external edit)