initial checkin
[grml-scripts.git] / usr_bin / caps-ctrl
1 #!/bin/sh
2 # Filename:      caps-ctrl
3 # Purpose:       switch setting of caps-control key (switch between ctrl + shift)
4 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
5 # Bug-Reports:   see http://grml.org/bugs/
6 # License:       This file is licensed under the GPL v2.
7 # Latest change: Sun Jan 15 22:45:27 CET 2006 [mika]
8 ################################################################################
9
10 if [ -z "$DISPLAY" ] ; then
11  if [ "$UID" != 0 ] ; then
12    echo "Sorry, you need root permissions for running $0 on console
13 using loadkeys. Run this program with root permissions. Exiting."
14    exit -1
15  fi
16  dumpkeys | grep -q '^keycode  58 = Caps_Lock' && \
17  ( echo "Caps lock mapped to shift-function. Switching caps lock key to control key."
18    echo $'keycode 58 = Control Control Control Control Control Control Control Control  Control  Control  Control  Control  Control  Control  Control\nkeycode 29 = Caps_Lock Caps_Lock Caps_Lock Caps_Lock Caps_Lock Caps_Lock Caps_Lock' | loadkeys
19  ) ||
20  ( echo "Caps lock mapped to control-function. Switching caps lock key to shift key."
21    echo $'keycode 58 = Caps_Lock Caps_Lock Caps_Lock Caps_Lock Caps_Lock Caps_Lock Caps_Lock Caps_Lock  Caps_Lock  Caps_Lock  Caps_Lock  Caps_Lock  Caps_Lock  Caps_Lock  Caps_Lock\nkeycode 29 = Control Control Control Control Control Control Control ' | loadkeys
22  )
23 else
24  xmodmap -pm | grep -q 'control.*Caps_Lock' && \
25  ( echo "Caps lock mapped to control-function. Switching caps lock key to shift key."
26    xmodmap -e "add lock = Caps_Lock"
27    echo "clear Lock
28          keycode 66 = Shift_Lock
29          add Lock = Shift_Lock" | xmodmap -
30    echo "Problems? Try to run 'setxkbmap -option caps:shift' manually."
31  ) ||
32  ( echo "Caps lock mapped to shift-function. Switching caps lock key to control key"
33    xmodmap -e "keycode 66 = Caps_Lock"
34    xmodmap -e "remove lock = Caps_Lock" -e "add control = Caps_Lock"
35    echo "Problems? Try to run 'setxkbmap -option ctrl:nocaps' manually."
36  )
37 fi
38
39 ## END OF FILE #################################################################