#!/bin/sh # idempotent X settings xrdb -merge "$HOME/.Xresources" # ---- don't let other local users spawn windows on my main X session xhost -local: # ---- no bell please xset b off # ---- keyboard settings xset r rate 380 25 # enable numlock if using USB keyboard, with an exception if ! lsusb | grep -q "SiGma Micro Keyboard TRACER Gamma Ivory"; then . /etc/X11/Xsession.d/55numlockx fi # disable caps lock if I accidently hit it before running this script if xset -q | grep "Caps Lock: *on" >/dev/null; then xdotool key Caps_Lock fi # ---- wallpaper rotation # if [ -e "$HOME/local/wallpaper.png" ] \ # && ! systemctl --user --quiet is-enabled i3-rotate-wallpaper.timer; then # # Persistent=true only works if the timer has been triggered at # # least once, but my computer is generally suspended at midnight. # # So pretend that the job just fired # mkdir -p "$HOME/.local/share/systemd/timers" # touch "$HOME/.local/share/systemd/timers/stamp-i3-rotate-wallpaper.timer" # systemctl --user --now enable i3-rotate-wallpaper.timer # fi # ---- monitor settings # if this machine is always plugged into the same monitor, may # `convert ~/lib/annex/doc/img/wallpaper/foo -resize 1366x768\! # ~/local/wallpaper.png` or add a cronjob to call i3-rotate-wallpaper. # Otherwise, stick to a solid colour, because doing otherwise requires # resizing the image file, setting the root window and restarting # i3lock every time an external monitor is plugged or unplugged # # For images that look bad stretched, to get black borders: convert foo.jpg -resize 1920x1080 -background black -gravity center -extent 1920x1080 ~/local/wallpaper.png # xsetroot -solid \#2c2c2e # xsetroot -solid \#111111 # xsetroot -solid \#E5E5E5 # xsetroot -solid \#FFFFF6 # machine-specific display settings if [ "$(hostname -f)" = "iris.silentflame.com" ]; then # set-half-brightness if xrandr | grep "VGA-1 connected"; then xrandr \ --output VGA-1 --primary --mode 1920x1080 --pos 0x0 --rotate normal \ --output LVDS-1 --mode 1366x768 --pos 1920x312 --rotate normal else xrandr \ --output VGA-1 --off \ --output LVDS-1 --primary --mode 1366x768 --pos 0x0 --rotate normal fi elif [ "$(hostname -f)" = "melete.silentflame.com" ]; then # set-half-brightness # need this to set --primary, to ensure that i3 tray icons appear on # laptop monitor xrandr --output eDP-1 --primary --mode 1920x1080 --pos 0x0 --rotate normal fi # # use wallpaper.png if it's the right size # if i3-wallpaper --check-have; then # feh --bg-scale --no-xinerama $HOME/local/wallpaper.png # # restart i3lock, in case the wallpaper changed # i3-startup-i3lock # else # feh --bg-tile ~/src/dotfiles/lib-src/img/diagmonds_2X.png # fi feh --bg-tile ~/src/dotfiles/lib-src/img/green_gobbler.png # Set how long before automatic lock. We have the DPMS time and the # automatic lock time set to the same value. # # I used to have have (e.g.) `xset s 150 180; xset dpms 1200 1200 0` # with a --notifier option passed to xss-lock which used i3-nagbar to # warn of an impending lock. This warning was necessary because # xtrlock's visual feedback is low. However, when i3-nagbar (or, # indeed, notify-send) is launched by xss-lock, they break the # display of various windows until the mouse is moved around. This # problem does not occur if I launch i3-nagbar from a terminal window. # In that case, everything gets redrawn as it should be. # # So instead, we wait to lock the screen until the point at which we # are blanking it for power saving. The screen going blank is # sufficient visual feedback. # # If my screen actually needs locking, I always just do that manually, # so this is only a fallback, in any case. # # Changes to these values should be kept in sync with comproc.org # notes for configuring xfce4-power-manager xset s default if in-develacc; then xset s 0 xset dpms 0 0 0 xset -dpms else xset s 1200 xset dpms 1200 1200 1200 xset +dpms fi