summaryrefslogtreecommitdiff
path: root/.xsessionrc
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2017-08-10 18:32:51 -0400
committerSean Whitton <spwhitton@spwhitton.name>2017-08-10 18:32:51 -0400
commitb7b1bb4ea00f0c2d268e17b90569aad7d34bc673 (patch)
tree29871c04923417afad809288ae3fd3bf8779aeb5 /.xsessionrc
parent9dadafcb448711d97af5f182d0757ba32f6605d7 (diff)
downloaddotfiles-b7b1bb4ea00f0c2d268e17b90569aad7d34bc673.tar.gz
xstartup -> xsessionrc
Diffstat (limited to '.xsessionrc')
-rwxr-xr-x.xsessionrc70
1 files changed, 63 insertions, 7 deletions
diff --git a/.xsessionrc b/.xsessionrc
index 79e31cab..e74e6727 100755
--- a/.xsessionrc
+++ b/.xsessionrc
@@ -1,17 +1,73 @@
#!/bin/sh
-export PATH="${HOME}/bin:${PATH}"
+. $HOME/.shenv
+
+# ---- no bell please
xset b off
+
+# ---- keyboard settings
+
xset r rate 380 25
setxkbmap -option ctrl:nocaps
+xmodmap ~/.xmodmaprc
+
+# enable numlock if using USB keyboard
+lsusb | grep -q "Chicony Electronics Co., Ltd" \
+ && numlockx on
+
+# ---- monitor settings
+
xset dpms 600
-xss-lock -- i3lock -t -c 000000 -n --image=$HOME/local/lock.png &
-#gnome-settings-daemon &
-nitrogen --restore
-redshift-gtk &
-nm-applet &
-caffeine-indicator &
+
+# ---- screen locking
+
+# kill any other lockers that might have snuck in
+pkill -u $USER light-locker
+pkill -u $USER xscreensaver
+
+# turn over lid switch handling to logind, if needed
+if which xfconf-query; then
+ xfconf-query -c xfce4-power-manager -n \
+ -p /xfce4-power-manager/logind-handle-lid-switch \
+ -t bool -s true
+fi
+
+# ... and then hook i3lock into logind
+if [ -L "$HOME/local/lock.png" ]; then
+ # note that i3lock needs a file in PNG format
+ xss-lock -- i3lock -t -c 000000 -n --image=$HOME/local/lock.png &
+else
+ xss-lock -- i3lock -c 000000 -n &
+fi
+
+# ---- GNOME daemons & GTK
+
+# Have the GNOME keyring daemon cache our GPG key passphrase for no
+# more than 20 minutes. Cache time cannot be controlled for SSH keys
+gsettings set org.gnome.crypto.cache gpg-cache-ttl 1200
+gsettings set org.gnome.crypto.cache gpg-cache-method 'timeout'
eval $(gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh)
export GNOME_KEYRING_CONTROL GNOME_KEYRING_PID GPG_AGENT_INFO SSH_AUTH_SOCK
+
+gnome-settings-daemon &
+
+# ---- clear SSH keys out of gnome-keyring-daemon when idle (per GNOME
+# ---- bug #525574 it can't do this itself yet)
+
+pkill -u $USER idlesshclear
+idlesshclear &
+
+# ---- audio
+
+if ! pgrep -u $USER pulseaudio; then
+ pulseaudio &
+fi
+
+# ---- startup applications
+
+nitrogen --restore
+redshift-gtk & # co-ords from config file
+nm-applet &
+caffeine-indicator &