• You are not logged in.

DreymaR's Big Bag of Keyboard Tricks (Linux/XKB files included)!

  • Started by DreymaR
  • 384 Replies:
  • Reputation: 210
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,340

On a side note: The GitHub issues functionality is the best way to report issues with the BigBag files. However, I'll happily answer here too, it's just a bit more messy and harder to find afterwards.

Try updating to the latest commit. I had a wrong scan code for the <BKSP> key in the extend file (it was incorrectly called <BACK>, an artefact of me working cross-platform).

Here's the current Backspace mapping:

    key <BKSP> { symbols[Group1]=[Any       , Any       , Any       , Any       ,   // BackSpace
                    Pause                       , Pause                         ,   // Pause/Break
                    Pause                       , Pause                         ] , // (<BRK> is special)
                 actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
                    Redirect(key=<PAUS>,clearmods=LevelFive), Redirect(key=<PAUS>,clearmods=LevelFive) ,
                    NoAction()                  , NoAction()                    ] ,
                 repeat=yes     };  // BackSpace

If instead you want to output Ctrl+Backspace, it's doable I think. You'd want to use this I suppose:

    key <BKSP> { symbols[Group1]=[Any       , Any       , Any       , Any       ,   // BackSpace
                    BackSpace                   , BackSpace                   ,   // Ctrl+Backspace (by action)
                    BackSpace                   , BackSpace                   ] , // 
                 actions[Group1]=[NoAction(), NoAction(), NoAction(), NoAction(),
      Redirect(key=<BKSP>,mods=Control,clearmods=LevelFive), Redirect(key=<BKSP>,mods=Shift+Control,clearmods=LevelFive),  // Ctrl+Back
      Redirect(key=<BKSP>,mods=Control,clearmods=LevelFive), Redirect(key=<BKSP>,mods=Shift+Control,clearmods=LevelFive)], // Ctrl+Back
                 repeat=yes     };  // BackSpace

Please let me know if that works!

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 0
  • Registered: 27-May-2023
  • Posts: 3

Wow, that works wonderfully! I am greatly appreciative of all your work put into the Big Bag.

I apologize for any inconvenience caused by not using the GitHub Issues, but I'll keep it in mind for future reference. I'm fairly new to this whole programming thing and it just somehow slipped my mind.

Much thanks :)

Offline
  • 0
  • Reputation: 210
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,340

Glad it worked! I'll slip this mapping into the symbols/extend file, commented out, so people can use it if they wish to.

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 0
  • Registered: 16-Jan-2024
  • Posts: 4

Hello!

I'm a colemak and linux noob and trying to get the keyboard on my ubuntu dual boot to match my setup in epkl on windows. I'm using Tarmak 1 with the curlangle mod on ANSI -- QWJRTYUIOP ASDFGMNEL XCBVZKH. I am having trouble finding this option in the menu after installing the BBT XBB package on ubuntu. How would I go about installing it?

Offline
  • 0
  • Reputation: 210
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,340

Hi! Linux and xkb can be tricksy, hope you manage it!

First, you have to use the install script to copy the BigBag files to the system X11/xkb directory. Then, the setkb.sh script activates a layout combo of your choice. To make it persistent, the setkb script can write its setxkbmap command to a file that gets sourced at startup, such as your user's .bashrc file.

If your distro uses Wayland, the procedure is different. I'm afraid you'll have to peruse the README and try to find the answers yourself.

The ANSI keyboard has model name pc104, and with the Angle mod that's pc104_angle (iirc). The setkb script has a shorthand notation where for instance 'a' means 'anglemod'; run `./setkb.sh -h` to see its help text.

Last edited by DreymaR (17-Jan-2024 16:26:58)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 1
  • Reputation: 0
  • Registered: 16-Jan-2024
  • Posts: 4

Thanks for the help! I'm still having some trouble. Checking via

setxkbmap -v 9

, I can successfully set the angle mod by running

bash setkb.sh -m "pc104_angle"

" (although this doesn't change the layout as far as I can tell). However, running

bash setkb.sh -l "tarmak2c_et"

the script displays the readout at bottom and does not change the layout from cmk_ed_us as far as I can tell. Also, not even the angle mod seems to be set up when I added this to /etc/rc.local.

/Desktop/BigBagKbdTrixXKB-master/setkb.sh -m "pc104angle" -l "us(tarmak2c_et)" || exit 1
exit 0
Setting verbose level to 9
locale is C
Warning! Multiple definitions of keyboard model
         Using command line, ignoring X server
Warning! Multiple definitions of keyboard layout
         Using command line, ignoring X server
Trying to load rules file ./rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      pc105awide
layout:     tarmak2c_et
options:    misc:extend,lv5:caps_switch_lock,grp:shifts_toggle,compose:menu
Trying to build keymap using the following components:
keycodes:   evdev(pc105awide)+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+tarmak2c_et+inet(evdev)+group(shifts_toggle)+compose(menu)+level5(caps_switch_lock)+extend(basic)
geometry:   pc(pc105awide)
Error loading new keyboard description
Offline
  • 0
  • Reputation: 210
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,340

Try using the setxkbmap shell command instead of setkb.sh if you want to specify model and layout explicitly like that.

The options component (for Extend) should be okay, as long as you don't reset it. Setting model and layout doesn't affect the options.

Last edited by DreymaR (24-Jan-2024 15:25:10)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 0
  • Registered: 16-Jan-2024
  • Posts: 4

I'm not sure I understand, but I tried

setxkbmap -model "pc104_angle" -layout "us(tarmak2c_et)"

and it didn't seem to work (said "error loading new keyboard description.

Offline
  • 0
  • Reputation: 210
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,340

Your syntax seems off?

https://github.com/DreymaR/BigBagKbdTri … evdev#L605
As you can see, the model is named 'pc104angle'. You have an underscore there.

https://github.com/DreymaR/BigBagKbdTri … 14-L990C25
The layout name is 'tarmak2c_et', so that seems right.

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 0
  • Registered: 16-Jan-2024
  • Posts: 4

Thanks for all your help, unfortunately still struggling. Setxkbmap with -model "pc104angle" works without an error, but if I add -layout "us(tarmak2c_et)" or run that separately it fails to generate the keyboard.

Offline
  • 0