aboutsummaryrefslogtreecommitdiff
path: root/xsessionrc.dot.link
blob: 1aee9d54c2df9ea5d4e2beca4d329e4664683cbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/bin/bash
#
# .xsession: set basic X11 environment
#

# Background image
BACKGROUND=""

# Session applications
PROGRAMS="xconky"

# OS Version
OSVERSION="`cut -d . -f 1 /etc/debian_version`"

# Hostname
HOSTNAME="`cat /etc/hostname`"

# Make sure to load the profile
. $HOME/.profile

# Start xscreensaver
if [ -e "/usr/bin/xscreensaver" ]; then
  xscreensaver -no-splash &
fi

# Custom
if [ -e "$HOME/.custom/xsession" ]; then
  . $HOME/.custom/xsession
fi

# Set background
if [ "$BACKGROUND" = "all" ]; then
  feh --bg-scale --randomize $HOME/.config/themes/backgrounds/*
elif [ ! -z "$BACKGROUND" ] && [ "$BACKGROUND" != "unset" ]; then
  #Esetroot -scale $HOME/.config/themes/backgrounds/$BACKGROUND
  feh --bg-scale $HOME/.config/themes/backgrounds/$BACKGROUND
elif [ "$BACKGROUND" != "unset" ]; then
  xsetroot -solid black
fi

# Set window manager
if [ -z "$WINDOW_MANAGER" ]; then
  WINDOW_MANAGER='awesome'
fi

# Additional applications depending on the machine type
#if laptop-detect; then
#  PROGRAMS="$PROGRAMS xwicd"
#else
#  PROGRAMS="$PROGRAMS"
#fi

# Start session applications
for program in $PROGRAMS; do
  $program &
done

# Apply custom keyboard configuration
if [ -f "$HOME/.Xmodmaps/$HOSTNAME" ]; then
  xmodmap $HOME/.Xmodmaps/$HOSTNAME

  # Why xmodmap has to run twice to some changes take place?
  # https://faq.i3wm.org/question/558/xmodmap-loading/
  # https://bugs.launchpad.net/ubuntu/+source/gdm/+bug/700309
  xmodmap $HOME/.Xmodmaps/$HOSTNAME
fi

# Fix mumble configuration, which varies depending on machine audio
if [ -f "$HOME/.config/Mumble/Mumble-$HOSTNAME.conf" ]; then
  (
    cd $HOME/.config/Mumble
    mv Mumble.conf Mumble-$HOSTNAME.conf.backup
    ln -s Mumble-$HOSTNAME.conf Mumble.conf
  )
fi

# Clipboard management
# See http://mutelight.org/subtleties-of-the-x-clipboard
#if which autocutsel > /dev/null 2>&1; then
#  autocutsel -fork &
#  autocutsel -selection PRIMARY -fork &
#fi
if which parcellite > /dev/null 2>&1; then
  parcellite -n &
fi

# Keyring
if [ "$OSVERSION" != "6" ] && which gnome-keyring-daemon > /dev/null; then
  # See https://bugzilla.redhat.com/show_bug.cgi?id=783568
  #     https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/932177
  #     http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=653011
  #     https://bugzilla.gnome.org/show_bug.cgi?id=660240
  #unset GNOME_KEYRING_PID
  #unset GNOME_KEYRING_CONTROL
  #eval $(gnome-keyring-daemon --start --components=pkcs11,gpg,secrets)
  #eval $(gnome-keyring-daemon --start --components=pkcs11,secrets)
  true
fi

# Make sure to finish all background processes
#trap 'kill $(jobs -p)' EXIT

# Pulse audio
if which pulseaudio > /dev/null 2>&1; then
  pulseaudio --start
fi

# Start spice-vdagent if needed
if [ -e "/dev/virtio-ports/com.redhat.spice.0" ] && [ -x "/usr/bin/spice-vdagent" ]; then
  spice-vdagent
fi

# Start window manager
if [ "$OSVERSION" = "7" ] || [ "$START_WINDOW_MANAGER" = "true" ]; then
  $WINDOW_MANAGER
fi