Customizing Arch Linux
You’ve installed Arch Linux and now you are looking to start customizing. There’s a plethora of tutorials and so much to look into. The is another minimal instructions on how to get things looking useable
Window Management
I’m running xorg and i3. This might be overkill for installs but will give you everything you need.
$ pacman -Syu i3 dmenu xorg xorg-{server,xinit,xinput,xwininfo,xlogo,xauth,xclock,twm}
Modify your ~/.xinitrc
to the following:
exec i3
Now type startx
and you should be presented with i3
config settings. These
get stored in ~/.config/i3/config
. To exit type modifer+shift+e
and click exit.
Terminal Emulator
I don’t know much about the difference between xterm and rxvt but I just went with rxvt.
$ pacman -Syu rxvt-unicode rxvt-unicode-terminfo
You can see which fonts are available on your system for use with fc-list
and
search for packages to install fonts from using pacman -Ss fonts
or pacman -Ss ttf
. Then install the ones you want
pacman -Syu ttf-bitstream-vera
The settings for rxvt, such as which font to use, are stored in ~/.Xdefaults
.
If you are using a patched font
of some sort and are having trouble getting symbols to render you may have to
add:
export LANG=en_US.UTF-8
into your ~/.xinitrc
Keyboard Shortcut Modifications
Disclaimer: I hacked this until it worked, not guaranteed to be pretty.
On mac I used Jason Rudolf’s keyboard repo and now I can’t live with some of tips I picked up from that. Using xorg I tried to replicate most of what I needed through xmodmap but found that xkbcomp was much a bit easier.
Testing Keystrokes
You can use a program called xev
at anytime to test what the incoming
keypresses are being registered as. This is useful to have absolute truth in
knowing what symbol is being sent to your computer. Control + C to exit.
Caps Lock as ‘Hyper Mode’
Create a ‘current’ version of the keyboard as well as a backup in case things go south.
$ mkdir -p ~/.xkb/keymap
$ xkbcomp $DISPLAY ~/.xkb/keymap/keymap.xkb
$ xkbcomp $DISPLAY ~/.xkb/keymap/keymap.xkb-bck
First remap look for a similar line and change Capslock to Mode_switch
:
key <CAPS> { [ Mode_switch, Mode_switch ] );
This turns Capslock into a special modifiey. I’m not sure if overwriting mode_switch is correct but it does what I want. Next you can look for different letters and add the following:
key <AC07> {
type= "ALPHABETIC",
symbols[Group1]= [ j, J],
# This is the new line to add
symbols[Group2] = [ Down ]
};
Without too much details, Group1 characters <AC07>
is the signal recieved from
the keyboard and it maps to j
and if you press Shift + <AC07>
you will get
J
. The is explained a bit on the wiki for xmodmap
under the heading keymap. Now Group2 is what happens when you hit mode_switch + <AC07>
, and we mapped mode_switch to Capslock. I use this to make Capslock + h,
j, k, or l equivalent of hitting the arrow keys. This is super useful for not
having to leave the homerow to get additional key functionality.
Changing modifier keys
I also prefer a Mac style layout of keys with the addition of the right super
being converted into right control, I found I wasn’t using the right super for
much of anything anyways. I also wanted to make sure that my left super was
activating i3 commands but the left one was not. Type xmodmap
to get a current
mapping of your keys (This is mine it will be different):
xmodmap: up to 3 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock
control Control_L (0x25), Control_R (0x69), Super_R (0x86)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
Yours will probably have mod4
include the Super_R
and lock
will have
capslock. mod4
or mod1
are the modifiers that you choose from when you set
your initial i3
configuration. Look inside your keymap file for lines similar
to these:
modifier_map Mod2 { <NMLK> };
modifier_map Mod5 { <LVL3> };
modifier_map Control { <RCTL> };
modifier_map Mod1 { <RALT> };
modifier_map Mod4 { <LWIN> };
# My Cusomizations
# modifier_map Lock { <CAPS> };
modifier_map Control { <RWIN> };
I’ve removed CAPS as well as added RWIN to the control group. To source this
maping when you startx
add this to your xinitrc
:
xkbcomp -I$HOME/.xkb $HOME/.xkb/keymap/keymap.xkb $DISPLAY
and now you should have have custom keyboard shortcuts.