I have two commands that change keyboard behaviour:

 xset r rate 120 66
 /usr/bin/setxkbmap -option "ctrl:nocaps"

When I open a terminal and execute them, they change auto-repeat settings and remap CAPS LOCK to control, not only in the terminal window but for my whole desktop environment.

I'd like them to be run automatically when I login to my account (either using a GUI or via ssh/etc.). I'd like to do this in a robust way (i.e. I don't want to use distribution-specific tools) and I don't want to use any GUI tools.

I supposed that there is some file that is executed at login and I should just paste these commands there, but adding them to ~/.bash_login didn't have any effect, similarly with ~/.bash_profile. With ~/.profile, only /usr/bin/setxkbmap -option "ctrl:nocaps" had effect.

How can I achieve this?

up vote 1 down vote accepted

Usually you put X related items that you'd like to run in the context of the user (you) in one of 2 files:

  • $HOME/.xsession
  • $HOME/.xinitrc

  • For GNOME desktops you can put commands in $HOME/.gnomerc

  • For KDE you put commands in $HOME/.kde/Autostart

Alternative Approach

Some commands such as xset may not work from within these files. If you'd still like to automate something like this you may be able to add it as a "Startup Application".

Step #1

Create a shell script, xset.bash.

#!/bin/bash
xset r rate 120 66
Step #2

Add a startup task to run the shell script.

Open the application Startup Applications, under System → Preferences

                    ss of dialog #1

Then click the Add button

                                ss of add dialog

Once you're done OK & Close the dialogs and to test it out logout and log back in.

References

  • It doesn't work - the xset command still doesn't have any effect. Actually, maybe the problem is that it is overwritten by gnome settings? But how would i change that? – Jan Warchoł Aug 8 '13 at 13:04
  • @JanekWarchol - see updates. – slm Aug 8 '13 at 17:58
  • It still doesn't work. I've put the command into my .gnomerc, .xinitrc and .xsession and there is no result (the files are marked as executable, so there should be no problems with that). What's probably most interesting is that i have another command in .gnomerc (xbacklight -set 70) and it works. – Jan Warchoł Aug 10 '13 at 12:20
  • Does xset work for you if you write it in these files? – Jan Warchoł Aug 10 '13 at 12:29
  • @JanekWarchol - I've never tried them 8-). – slm Aug 13 '13 at 2:51

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.