90 lines
2.3 KiB
Bash
Executable File
90 lines
2.3 KiB
Bash
Executable File
#!/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
|