#!/bin/zsh # # ~/.xinitrc # # Executed by startx (run your window manager from here) # GENERIC # # Usage: .xinitrc [window-manager] [session-type] # where: window-manager is one of '(xmonad openbox stumpwm awesome pekwm) # session-type is either "local" or "remote"; upon "" defaults to "local" # Runs system-wide xinitrc scripts if [ -d /etc/X11/xinit/xinitrc.d ]; then for f in /etc/X11/xinit/xinitrc.d/*; do [ -x "$f" ] && . "$f" done unset f fi # Set the default curson used by all WM's xsetroot -cursor_name left_ptr # Allow swithing to/from US qwerty and dvorak layouts setxkbmap -layout us,us -variant ,dvorak -option grp:sclk_toggle # Initialize a local desktop session (run generic helper applications) function init_local_session() { # Set a desktop background nitrogen --restore & # Load Xresources xrdb -merge ~/.Xresources # Create variable GENERAL_SCREEN which is the pid of a screen called "general" GENERAL_SCREEN=`screen -ls | grep general | cut -f1 -d'.' | sed 's/\W//g'` # Check to see if a general screen is already running # DEPRECIATED in favor of tmux which is started by systemd #if [ "x$GENERAL_SCREEN" == "x" ]; then # screen -dmS general & #fi # Start X applications that can't be started from user systemd services start-pulseaudio-x11 & unclutter & xcompmgr & xbindkeys & xscreensaver -no-splash & deskcon-server & emacs --daemon & # Set the default wm to xmonad DEFAULT_WM=xmonad } # Initialize a remote desktop session (run generic helper applications) function init_remote_session() { # Set desktop background feh --bg-scale ~/.wallback/Cocaine_Wallpaper_II_by_mdornfeld.png & # Set the default wm to xmonad DEFAULT_WM=stumpwm } # Check the second cl parameter which denotes the session-type (E.g. remote, local) case "$2" in # Remote session remote) init_remote_session break ;; # Local session or unspecified *) init_local_session ;; esac # Check the first cl parameter which denotes the window-manager to use # Notice: in each case expression below "exec app" hands over execution to some app thus # ceasing execution in this script so no "break" is required case "$1" in xmonad|openbox|stumpwm|awesome|pekwm) exec "$1" ;; *) exec "$DEFAULT_WM" ;; esac