Autorun Keyboard Settings for Awesomewm

Getting Control and Escape keys where I want them

I like my Caps Lock key to not be a Caps Lock key. Act as Escape when I tap on it. Act as Control when I press it with another key. And never ever enable SHOUT MODE.

This is the third time I’ve done this. This is also the third time I had to look up how to do this. Better save it on the site.

setxcbmap takes care of adding Control functionality and removing Caps Lock behavior. I need xcape for Escape key behavior. Since I’m running Manjaro on my Linux partition this week, I’ll use pamac to install.

$ pamac install xcape

I set up an autostart script to get this in every Awesomewm session.

~/.config/awesome/autorun.sh

#!/usr/bin/env bash

function run {
  if ! pgrep -f $1 ;
  then
    $@&
  fi
}

run setxkbmap -option ctrl:nocaps
run xcape -e 'Control_L=Escape'

It’s a script, so make sure it’s executable.

$ chmod 755 ~/.config/awesome/autorun.sh

Add one line of code to my rc.lua to make sure autorun.sh gets spawned on startup.

~/.config/awesome/rc.lua

-- {{{ Autorun
awful.spawn.with_shell("~/.config/awesome/autorun.sh")
-- }}}

And that’s it!