Just wondering; how do I bind .sh files to run when I press a particular key combination? (like Alt+S)



4 Answers 4


You can use the keyboard shortcuts interface to do this. Remember to add the full path. alt text

  • 5
    To clarify, tildes are not expanded. Nov 26, 2010 at 21:55

Goto System>>Preferences>>Keyboard Shortcuts

It will open a window click add alt text

After clicking add it will show you a window with Name and Command.You can write any name there and in command you should give the full path of the file with bash in-front bash /path/to/the/file.sh

alt text

After adding the Name & Command.You can assign the shortcut key.

  • how to run the script which needs sudo permission inside ?
    – Duc Tran
    Jul 7, 2011 at 12:26

xbindkeys allows you to saves multiple configurations (if you want that flexibility).

Also xbindkeys gives you many more key-combinations, because it (optionally) allows you to make Numlock, ScrollLock, and CapsLock states significant...

Another feature which is not found in Keboard Shortcuts is that you can use ~/ and $HOME/ for your home directory, instead of having to hard-code it.

To install xbindkeys, and xbindkeys-config (the GUI for xbindkeys)

sudo apt-get install xbindkeys xbindkeys-config  

To create the default config file for xbindkeys

xbindkeys --defaults > $HOME/.xbindkeysrc  

Then run:


And for your first keybinding, you may find it useful to assign Ctrl+Shift+Alt+X, or whatever you prefer, to xbindkeys-config

To keep the xbindkeys hotkeys active ever time you start the computer...

Main Menu
      Startup Applications  
        [ Add ]  
          Name:     xbindkeys  
          Command:  xbindkeys  
          Comment:  xbindkeys  

Just for completeness: If you are using Compiz you can set custom keyboard and mouse shortcuts using CCSM (Compiz Config Settings Manager) and the Commands plugin.

Just put in the name of your sh-script (for example "CustomScript" in the attached screenshot) and give it a custom key binding in the Key Bindings tab. Your script needs to be placed in a directory that is monitored by Ubuntu for this to work. I do place all of my scripts in the /usr/local/bin directory.

Make sure that your script is executable by applying chmod +x CustomScript in a terminal and note that all words are case sensitive.

Compiz allows to export all settings including shortcuts which is very useful for settings up similar machines.

(see screenshot)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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