36

Is there a way to set Emacs-like keyboard shortcuts (at least the subset mentioned below) for the whole OS? This is possible in some apps such as the terminal, Emacs (go figure :) and additionally through special plugins in some other apps (Eclipse), but I got so used to C-f-ing through text and never having to jump to arrows that I'd like to be able to do this system-wide so that I can do it whenever I'm typing - e.g. searching for songs in Rhythmbox, typing stuff into the dash or the HUD, writing mails in Thunderbird or Gmail... The combos I'm most interested in are:

  • C-f - forward
  • C-b - backwards
  • C-a - home
  • C-e - end
  • C-d - delete
  • C-k - delete line

(note for non-emacs users - C means Ctrl)

4 Answers 4

25

Based on: https://superuser.com/a/516847/205010

  1. Install gnome-tweak-tool: sudo apt-get install gnome-tweak-tool

  2. Open it: gnome-tweak-tool

  3. Go to Keyboard and Mouse and change Key Theme to Emacs

8
  • 1
    this is pretty cool, but lots of stuff doesn't work, i.e. C-b, C-k etc. the solution is probably pulling everything into emacs, i.e. browser, email etc. rather than trying to push the key bindings out beyond emacs
    – bph
    Feb 18, 2016 at 9:11
  • Where does it not working? In my case it works most of the time pretty well.
    – Eyal Levin
    Feb 21, 2016 at 9:48
  • It seems that if an app implements an equivalent shortcut then that takes precedence. Which is awkward
    – bph
    Feb 21, 2016 at 19:34
  • 1
    I don't think it happens for all apps. I encountered in Chrome a few times that the global Emacs shortcuts took precedence over the specific web app shortcuts.
    – Eyal Levin
    Feb 22, 2016 at 10:21
  • my test case was using yahoo mail and gmail in a firefox browser. in both cases C-a C-e C-f C-p C-n worked as expected, but C-b toggled bold font, and C-k brought up a link dialog. So for my particular application it is a bit hit and miss - i'll have to give chrome a try and see if its any different
    – bph
    Feb 22, 2016 at 11:12
17

I managed to solve the problem by using AutoKey, as recommended in this answer. Some of my phrases are:

content                     |   hotkey             |   description
---------------------------------------------------------------
<ctrl>+f                    |   <ctrl>+<alt>+f     | replace the find operation
<home>                      |   <ctrl>+a           | begining of line
<end>                       |   <ctrl>+e           | end of line
<left>                      |   <ctrl>+b           | back one letter
<right>                     |   <ctrl>+f           | forward one letter
<delete>                    |   <ctrl>+d           | delete one letter
<home><shift>+<end><delete> |   <ctrl>+k           | kill line

(yeah, the kill line combo was nasty to find :)

You could go on replacing stuff, but I don't want the mental remap to grow to large (e.g. ctrl+n doesn't open a new window, but goes to next line). All in all AutoKey is a cool app!

Anyway, now I've got the emacs ergonomy of never having to leave the "letter keys" throughout Ubuntu - in every text box I am editing. Yeiii!

Update: as I got deeper into playing with AutoKey to fine-tune everything, I made quite some changes. You can see my complete AutoKey Ubuntu-Emacs configuration (and install it) in my dotfiles git repo.

1
  • So I tried the forward one word <alt>+f but it kept clashing with opening a file in emacs. Did you face that problem? how did you solved it?
    – Sambatyon
    Jan 16, 2018 at 19:27
6

There is another solution not involving third-party apps posted here emacs keybindings in ubuntu 12.04

3
  • Using this method will not work in applications such as Thunderbird, where Ctrl+F will be interpreted as "Find String" rather than "Move Cursor Forward". Jan 10, 2014 at 23:45
  • @holocronweaver true indeed, I have given up on getting Emacs keys working in Thunderbird sadly, but most of the other inputs (notably in Chrome) almost work. I can't help but feel that the AutoKey solution is road to never ending fiddling and frustration too :) That said have you tried the solution proposed by kermit666 and if so - did it work for you? Jan 12, 2014 at 22:20
  • After a bit of editing to make it suit my tastes, the AutoKey solution has worked fairly well in Firefox and Thunderbird on Ubuntu 14.04. Still more testing to do. Jan 13, 2014 at 2:55
0

gnome-tweak-tool has been replaced with gnome-tweaks:

  1. Install gnome-tweaks: sudo apt-get install gnome-tweaks.

  2. Open it: gnome-tweaks.

  3. Go to Keyboard & Mouse and switch Emacs Input on.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .