fixctrl.sh 750 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #! /bin/bash
  2. # Fix control keys on X or linux console
  3. set -e; set -u; echo "$0: `date;`"
  4. # Fix in X
  5. if [ -x /usr/bin/setxkbmap ]; then
  6. set +e
  7. /usr/bin/setxkbmap 2> /dev/null
  8. if [ $? -eq 0 ]; then
  9. set -e
  10. echo "$0: found display. Setting ctrl:nocaps"
  11. setxkbmap -option 'ctrl:nocaps'
  12. fi
  13. fi
  14. # Fix on Linux console
  15. if [ -x /usr/bin/dumpkeys ]; then
  16. set +e
  17. /usr/bin/dumpkeys &> /dev/null
  18. if [ $? -eq 0 ]; then
  19. set -e
  20. cd ~
  21. dumpkeys | head -1 > fixctl.map
  22. if [ $? -eq 0 ]; then
  23. echo "$0: found console. loadkeys keycode 58 = Control"
  24. echo "keycode 58 = Control" >> fixctl.map
  25. sudo loadkeys < fixctl.map
  26. else
  27. echo $0: not on console >&2
  28. fi
  29. fi
  30. fi