• You are not logged in.

    Trouble installing BigBag to emulate DH mod

    • Started by Game9859
    • 17 Replies:
    • Reputation: 2
    • From: Poland
    • Registered: 13-Mar-2025
    • Posts: 10

    I am trying to install the Dreymar BigBag mod in order to emulate Colemak-DH on my laptop's keyboard (X220 ThinkPad).

    I cloned the repository https://github.com/DreymaR/BigBagKbdTrixXKB and ran the installation script. I got a lot of errors...

    debian% sh install-dreymar-xmod.sh 
    install-dreymar-xmod.sh: 166: [[: not found
    
    @@@ DreymaR's Big Bag Of Tricks install script (by OeBeAa, 2016-) @@@
    ¤ Found mod root dir './xkb-data_xmod'
    install-dreymar-xmod.sh: 179: [: all: unexpected operator
    ¤ Subdirectories to mod: 'all'
    install-dreymar-xmod.sh: 188: [: ifnone: unexpected operator
    install-dreymar-xmod.sh: 190: [: ifnone: unexpected operator
    ¤ Backing up: None
    install-dreymar-xmod.sh: 208: [: Illegal number: 
    install-dreymar-xmod.sh: 232: [: no: unexpected operator
    install-dreymar-xmod.sh: 232: [: /usr/share/X11: unexpected operator
    ¤ Installing mod files in '/usr/share/X11/dall'
    
    @@@ WARNING: It seems that setxkbmap w/ local dir isn't working now?! @@@
    
    
    @@@ install-dreymar-xmod.sh - ERROR: Local files copy error! @@@

    It was said on the repo to run this script first, so I did. Please help.

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

    You ran it with sh, and it's a bash script.

    It says so in its help, but if you run it with the wrong shell you won't see the help either... dilemma.

    If you'd run it with ./install-dreymar-xmod.sh it'd have selected bash as per its shebang/hashbang (on the first line).

    I've now added 'BASH' to its description string, so you'll see it even when run with sh.

    On a side note: It's not an emulation. It's an xkb-data addition, which is what all the other X11/xkb layouts use too.

    Last edited by DreymaR (14-Mar-2025 10:46:53)

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

    Offline
    • 0
    • Reputation: 2
    • From: Poland
    • Registered: 13-Mar-2025
    • Posts: 10

    Ok @DreymaR, the script ran. Ugh, not sure the mention worked... there is no info how to mention people on the site.

    I was abloe to use xce4-keyboard-settings program to select two preffered colemak[eD] layouts, but they have not been applied? I still have the qwerty layout.

    From what I understand, `setkb.sh` does just this but via command-line. Acorrding to my `setxkbmap` settings the changes through GUI were applied:

    debian%  setxkbmap -v 9
    Setting verbose level to 9
    locale is C
    Trying to load rules file ./rules/evdev...
    Trying to load rules file /usr/share/X11/xkb/rules/evdev...
    Success.
    Applied rules from evdev:
    rules:      evdev
    model:      pc105
    layout:     pl,pl,gb
    variant:    cmk_ed_us,,cmk_ed_us
    Trying to build keymap using the following components:
    keycodes:   evdev+aliases(qwerty)
    types:      complete
    compat:     complete
    symbols:    pc+pl(cmk_ed_us)+pl:2+gb(cmk_ed_us):3+inet(evdev)
    geometry:   pc(pc105)

    So what's next? Should this be working now? Why doesn't it?

    GUI settings picture: https://www.idrive.com/idrive/sh/sh?k=c2p9p2m0k7

    Last edited by Game9859 (19-Mar-2025 18:10:34)
    Offline
    • 0
    • Reputation: 217
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,388

    That picture is of your boot manager. You won't get alt layouts into that without recompiling the layouts for boot manager (I haven't done that).

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

    Offline
    • 0
    • Reputation: 2
    • From: Poland
    • Registered: 13-Mar-2025
    • Posts: 10
    DreymaR said:

    That picture is of your boot manager. You won't get alt layouts into that without recompiling the layouts for boot manager (I haven't done that).

    Haha, sorry. I shared the wrong link: https://www.idrive.com/idrive/sh/sh?k=y1t2c7h3k3.

    To be clear, we're on the OS level on Debian 12.

    Last edited by Game9859 (20-Mar-2025 20:53:25)
    Offline
    • 0
    • Reputation: 217
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,388

    To be honest, I have no idea why your settings don't take. I haven't used that Debian settings GUI for years. I'm sorry.

    Last edited by DreymaR (21-Mar-2025 11:29:07)

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

    Offline
    • 1
    • Reputation: 2
    • From: Poland
    • Registered: 13-Mar-2025
    • Posts: 10

    I sat down to it again, and it appears that through xfce4 GUI only setting back the layout to one of the default ones works, but setting it to one of the layout installed by your script did not. It worked through setxkbmap command, but the keys were not properly mapped. The [ apperead where letters should be, the letters were off by 1-2 to the right and even some weird Swedish "ae" symbol was somewhere where "vzkh" sit on Colemak-DH.

    I had no luck and found it very hard to figure anything out given the current documentation... all I wanted is to set up vanilla Colemak-DH to not get RSI because of QWERTY when forced to use the laptop's keyboard. I kinda have hopes there might be something simple you can point out to fix it, so here's the output.

    debian% ./setkb.sh   
    
    @@@ DreymaR's setxkbmap script (by OeBeAa, 2023-06) @@@
    ¤ No ShortStr; using model/layout: pc105awide / us(cmk_ed_us)
    
    ¤ Changing dir to '/usr/share/X11/xkb'
    ¤ Looking for and removing any old .xkm server files
    [sudo] password for kamil: 
    ¤ Running setxkbmap command using the system XKB dir:
    
    > setxkbmap -model pc105awide -layout us(cmk_ed_us) -option misc:extend,lv5:caps_switch_lock,grp:shifts_toggle,compose:menu -v 9
    
    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:     us(cmk_ed_us)
    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+us(cmk_ed_us)+inet(evdev)+group(shifts_toggle)+compose(menu)+level5(caps_switch_lock)+extend(basic)
    geometry:   pc(pc105awide)
    
    ¤ Changing dir to '/home/kamil/BigBagKbdTrixXKB'
    
    @@@ setkb.sh finished! @@@
    Offline
    • 0
    • Reputation: 2
    • From: Poland
    • Registered: 13-Mar-2025
    • Posts: 10

    Anyway I have ISO, and maybe it used ANSI settings but README says DH mod ISO is used by default, which was not actually true for me since it was standard Colemak:

    The default is "5caw us us": PC105(ISO) board with Curl(DH)AngleWide mods, US locale, Cmk-eD UniversalSymbols variant.


    So I tried this, but have the error:

    debian% ./setkb.sh -m pc105 -l pl(cmk_ed_us) -v 9 "5caw us us"
    zsh: number expected
    Last edited by Game9859 (27-Mar-2025 20:14:37)
    Offline
    • 0
    • Reputation: 217
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,388
    debian% ./setkb.sh -m pc105 -l pl(cmk_ed_us) -v 9 "5caw us us"
    zsh: number expected

    Well, that's not right at all. You can't mix a shortstring at the end with normal options earlier. It's either or.

    This should be enough:

    ./setkb.sh "5caw pl us"

    Also, this is a BASH script. Its shebang says so. I hope you didn't actually try to run it with CSH? Would it just ignore the shebang?

    Last edited by DreymaR (28-Mar-2025 10:23:33)

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

    Offline
    • 0
    • Reputation: 2
    • From: Poland
    • Registered: 13-Mar-2025
    • Posts: 10

    The ./setkb.sh with -h flag says it's [optional arguments] first and then <kbd> which is the string. I first tried running it without the quotes and had the same error.

    Also, this is a BASH script. Its shebang says so. I hope you didn't actually try to run it with CSH? Would it just ignore the shebang?

    I did accidentally do it at the beginning but as you can see I use zsh and my Debian of course came with bash as default, so it must properly pass the path argument to whatever your shebang specified. I think the issue is not that.

    Is there something off in my setxkbmap settings from what I've posted just prior? Since DH mod is the default, then running

    ./setkb.sh "5caw pl us"

    should do what I want?

    Offline
    • 0
    • Reputation: 24
    • From: Belgium
    • Registered: 26-Feb-2008
    • Posts: 483
    Game9859 said:

    I sat down to it again, and it appears that through xfce4 GUI only setting back the layout to one of the default ones works, but setting it to one of the layout installed by your script did not.

    The xfce4 GUI only lists the layouts from xkeyboard-config's base.xml, but you can add arbitrary layouts and variants directly in .config/xfce4/xfconf/xfce-perchannel-xml/keyboard-layout.xml under your home dir (path may differ in your distro).

    Last edited by ghen (29-Mar-2025 14:01:51)
    Offline
    • 1
    • Reputation: 2
    • From: Poland
    • Registered: 13-Mar-2025
    • Posts: 10
    DreymaR said:
    debian% ./setkb.sh -m pc105 -l pl(cmk_ed_us) -v 9 "5caw us us"
    zsh: number expected

    Well, that's not right at all. You can't mix a shortstring at the end with normal options earlier. It's either or.

    This should be enough:

    ./setkb.sh "5caw pl us"

    Also, this is a BASH script. Its shebang says so. I hope you didn't actually try to run it with CSH? Would it just ignore the shebang?


    I ran what you said should be enough. I'm still not quite there, but maybe not far off.

    The layout is Colemak-DH indeed, but weird characters appear in the middle of each row, offsetting the actual key mapping by one to the right on each row. This affects only the current row, so the offset is by one on each row.

    ' for y
    ˛ for h
    ż for b

    Left is what I get, and right is the key on the physical QWERTY keyboard. This is ISO X220 keyboard as attached here: https://www.idrive.com/idrive/sh/sh?k=o3b7v2v2u8.

    Full output below. Thanks a lot for your help!

    debian% ./setkb.sh "5caw"
    
    @@@ DreymaR's setxkbmap script (by OeBeAa, 2023-06) @@@
    ¤ ShortStr model/layout: pc105awide / us(cmk_ed_us)
    ¤ ShortStr lay. options: Curl(DH) - 'y'; Sym - 'n'.
    
    ¤ Changing dir to '/usr/share/X11/xkb'
    ¤ Looking for and removing any old .xkm server files
    [sudo] password for kamil: 
    ¤ Running setxkbmap command using the system XKB dir:
    
    > setxkbmap -model pc105awide -layout us(cmk_ed_us) -option misc:extend,lv5:caps_switch_lock,grp:shifts_toggle,compose:menu,misc:cmk_curl_dh -v 9
    
    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:     us(cmk_ed_us)
    options:    misc:extend,lv5:caps_switch_lock,grp:shifts_toggle,compose:menu,misc:cmk_curl_dh
    Trying to build keymap using the following components:
    keycodes:   evdev(pc105awide)+aliases(qwerty)
    types:      complete
    compat:     complete
    symbols:    pc+us(cmk_ed_us)+inet(evdev)+group(shifts_toggle)+compose(menu)+level5(caps_switch_lock)+extend(basic)+colemak(cmk_ed_dh)
    geometry:   pc(pc105awide)
    
    ¤ Changing dir to '/home/kamil/BigBagKbdTrixXKB'
    
    @@@ setkb.sh finished! @@@
    
    debian% ./setkb.sh "5caw pl us"         
    
    @@@ DreymaR's setxkbmap script (by OeBeAa, 2023-06) @@@
    ¤ ShortStr model/layout: pc105awide / pl(cmk_ed_us)
    ¤ ShortStr lay. options: Curl(DH) - 'y'; Sym - 'n'.
    
    ¤ Changing dir to '/usr/share/X11/xkb'
    ¤ Looking for and removing any old .xkm server files
    ¤ Running setxkbmap command using the system XKB dir:
    
    > setxkbmap -model pc105awide -layout pl(cmk_ed_us) -option misc:extend,lv5:caps_switch_lock,grp:shifts_toggle,compose:menu,misc:cmk_curl_dh -v 9
    
    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:     pl(cmk_ed_us)
    options:    misc:extend,lv5:caps_switch_lock,grp:shifts_toggle,compose:menu,misc:cmk_curl_dh
    Trying to build keymap using the following components:
    keycodes:   evdev(pc105awide)+aliases(qwerty)
    types:      complete
    compat:     complete
    symbols:    pc+pl(cmk_ed_us)+inet(evdev)+group(shifts_toggle)+compose(menu)+level5(caps_switch_lock)+extend(basic)+colemak(cmk_ed_dh)
    geometry:   pc(pc105awide)
    
    ¤ Changing dir to '/home/kamil/BigBagKbdTrixXKB'
    
    @@@ setkb.sh finished! @@@
    Offline
    • 0
    • Reputation: 217
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,388

    It would seem to me that you're describing the Wide mod without knowing what that is? Please consult the BigBag Ergo page to understand.

    You included '5caw' in your shortstring, so I showed you how to get that. Cmk-CAW = Cmk-CurlAngleWide, which is Colemak-DH for row-stagger (CurlAngle) with a Wide mod. I use Cmk-CAWS, which also includes the Symbol key ergonomic mod.

    If you didn't want the Wide mod, use '5ca' instead of '5caw'. In this case, you'll get the pc105angle keyboard model instead of the pc105awide model.

    Last edited by DreymaR (30-Mar-2025 15:57:31)

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

    Offline
    • 0
    • Reputation: 2
    • From: Poland
    • Registered: 13-Mar-2025
    • Posts: 10
    DreymaR said:

    It would seem to me that you're describing the Wide mod without knowing what that is? Please consult the BigBag Ergo page to understand.

    Yep, exactly! X220 has a small keyboard, so I'll actually keep and will have to re-learn Colemak-DH a bit. That mistake on my part was worth learning this.

    So while I'm not there yet, the installation was a success, so this thread is closed (:

    Thanks a lot, and sorry if my incompetence required your patience at times. Great work you've done!

    Last edited by Game9859 (30-Mar-2025 17:56:37)
    Offline
    • 1
    • Reputation: 217
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,388

    I'm glad it worked out in the end! And as long as the users are polite and motivated, giving free support isn't so bad. I do want my creations to work and be understandable.

    Which brings us to the next point: Anything you'd like to see done to the docs, based on your experience? It's often good to have some fresh eyes, since as a creator you tend to take things for granted and develop blind spots for confusing passages.

    Preferably as specific as possible.

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

    Offline
    • 0
    • Reputation: 2
    • From: Poland
    • Registered: 13-Mar-2025
    • Posts: 10
    DreymaR said:

    I'm glad it worked out in the end! And as long as the users are polite and motivated, giving free support isn't so bad. I do want my creations to work and be understandable.

    Which brings us to the next point: Anything you'd like to see done to the docs, based on your experience? It's often good to have some fresh eyes, since as a creator you tend to take things for granted and develop blind spots for confusing passages.

    Preferably as specific as possible.

    I have some education in writing, so it's just the kind of things you pay attention to. I think a lot of things were not clear, and you had to read between the lines a lot. Maybe for programmers with a bit of experience this is not as hard as for me, I don't know.

    But some things were too verbose and some too concise, in the sense that more detail would be appreciated. If you are open — because I am having a proper sit-down to learn all the cool mods you have in 2 months ish, I can contribute to the docs.

    It's hard to be very specific because that would require a pull request in each case, but in general I think it comes down to advice to how to write better haha.

    Headings and subheadings to split out content and give them an apt title would be cool IMO.

    Thanks again!

    Offline
    • 1
    • Reputation: 217
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,388

    I would be open to some specific suggestions, but as you note: striking a balance between audiences with varying degrees of experience is hard.

    As for the issue of specifics vs messy pull requests, we could do it in chats instead if you want. I'm DreymaR on Discord, for instance on the Colemak Discord. That'll give us the chance to introduce thoughts and talk them over before implementation.

    On the BigBag pages I've worked on splitting things up, and hiding more specific stuff in boxes for the ones who want to open boxes. That seems to be working fairly well, but nothing's perfect.

    Whether your suggestions/edits will sit well with me, remains to be seen I guess? But it sounds interesting to give it a try, when we have the time!

    Last edited by DreymaR (01-Apr-2025 11:03:31)

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

    Offline
    • 0
    • Reputation: 2
    • From: Poland
    • Registered: 13-Mar-2025
    • Posts: 10
    DreymaR said:

    I would be open to some specific suggestions, but as you note: striking a balance between audiences with varying degrees of experience is hard.

    As for the issue of specifics vs messy pull requests, we could do it in chats instead if you want. I'm DreymaR on Discord, for instance on the Colemak Discord. That'll give us the chance to introduce thoughts and talk them over before implementation.

    On the BigBag pages I've worked on splitting things up, and hiding more specific stuff in boxes for the ones who want to open boxes. That seems to be working fairly well, but nothing's perfect.

    Whether your suggestions/edits will sit well with me, remains to be seen I guess? But it sounds interesting to give it a try, when we have the time!

    Okay, I'm open to help and give some suggestions and will probably message you on discord once I come back to this project. I'll suggest improvement to the docs as I go through them.

    Regards,

    Offline
    • 0