This is an old revision of the document!


Misc Commands

Various commands that are handy I tend to forget


# get name for compton
xprop WM_CLASS # and clicking the window.
 
# sed with regex
# mac
find . -type f -name "*.txt" -print0 | xargs -0 sed -i "" -E 's!<color (#([[:digit:]]|[A-Fa-f])+)>(.*)</color>!<font inherit/inherit;;\1;;inherit>\3</font>!g'
 
# linux
find . -type f -name "*.txt" -print0 | xargs -0 sed -i -E 's!<color (#([[:digit:]]|[A-Fa-f])+)>(.*)</color>!<font inherit/inherit;;\1;;inherit>\3</font>!g'
 
# set volume over 100%
pactl set-sink-volume 0 150%
 
# get SSID
iwgetid -r
 
# count lines of code
find . -name '*.php' | xargs wc -l
 
# sort _ first instead of by next char
update-locale LC_COLLATE=C # must log out and in
 
# touch drag while holding click
sudo modprobe -r psmouse && sudo modprobe psmouse
 
# disable touchpad
synclient TouchpadOff=1 
 
# palm detection
synclient PalmDetect=1

You can't do it with just a setkxbmap option, as no default option does what you want.

But you can do it by defining key behaviour at a lower level.

The page http://madduck.net/docs/extending-xkb/ helped me to understand and find a way to do it.

Create a file ~/.xkb/keymap/mykbd where you put the output of setxkbmap, it will be your base keyboard definition; eg:

setxkbmap -print > ~/.xkb/keymap/mykbd then we will create a ~/.xkb/types/mytypes file and put the following in:

partial xkb_types “super_level2” {

  Virtual_modifiers Super;
  type "SUPER_LEVEL2" {
      modifiers= Super;
      map[Super]= Level2;
      level_name[Level1]= "Base";
      level_name[Level2]= "Super";
  };

}; it defines a type SUPER_LEVEL2 that will allow to easily define symbols sent when a key is pressed with Super.

then, in the ~/.xkb/symbols/mysymbols put the following lines:

partial modifier_keys xkb_symbols “super_arrows_home_end” {

  key <LEFT>  {
      type[Group1] = "SUPER_LEVEL2",
      symbols[Group1] = [    Left,   Home      ]
  };
  key <RGHT>  {
      type[Group1] = "SUPER_LEVEL2",
      symbols[Group1] = [    Right,  End       ]
  };

}; (note the use of the “SUPER_LEVEL2 type we defined, it means that the second (level 2) symbol on the symbols line is triggered when pressing Super key (instead of Shift key).

Finally, edit the ~/.xkb/keymap/mykbd file to load the snippets we wrote:

in the xkb_types line add +mytypes(super_level2) inside the quotes in the xkb_symbols line add +mysymbols(super_arrows_home_end) in the quotes. Now you can load it with

xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY Test your left/right keys, they should work as you wanted.