Help reassigning keys with Soarer
-
- Location: US
- Main keyboard: Omnikey Ultra
- Favorite switch: Blue Alps
- DT Pro Member: -
Hello all,
I'm a former programmer, but confess I have had very little exposure to programming hardware such as keyboards. Apologies in advance for my dorkiness and incorrect terminology.
I have an Omnikey Ultra (with the extra "OMNI" key on the navigation pad). What I'm trying to accomplish:
This keyboard has a row of additional Function keys F1-F12) across the top, in addition to function keys on the left side. The row across the top, the keys are labeled "SF1-SF12" and by default, upon booting, they function as Shift+F1 through Shift+F12.
There is a key labeled "SF Select" which allows me, say, after I press it, to press left-Alt, and from that point on, all the SF keys are Alt+F1 through Alt+f12. The problem is, this is not persistent, and you have to do it every single time you boot up, and every single time you switch from one PC through another on your KVM. Naturally, in all testing/programming, I connect directly to a PC to eliminate the KVM issue.
I have a Soarer cable, and I have some understanding of the remapblock-endblock structure in a config (.sc) file. Problem is, all examples I've seen remap a key to a single key, not to a key-combination. Also, I'm not sure how to refer to the "input key" (in this case SF1) before I assign Alt+F1 to it.
Is this something that requires a macro? A layer? As you can see, I'm confused.
Also, I've used the Soarer hid_listen.exe utility and can identify key-names corresponding to hid_listen's keycodes on Soarer's code documentation. What worries me here is:
"srtaight" unmodified F1 (on the left side gives:
^[OPr05 +3A d3A <--- (I suspect the first 3 characters are garbage)
rF0 r05 -3A u3A
SF1 key (after all SF keys have been set to ALT+SF using the "SF Select" key):
r11 +E2 dE2 r05 +3A d3A
rF0 r11 -E2 uE2 rF0 r05 -3A u3A
So in both cases, "3A" (according to Soarer's "code" documentation) is F1, though the second one has additional preceding codes, which I could not find on Soarer's code doc.
So how to refer correctly to the key that I press?
If anyone has done this or something similar, I would be grateful for an example that I can get to work on.
Thanks in advance, and Happy New Year!
I'm a former programmer, but confess I have had very little exposure to programming hardware such as keyboards. Apologies in advance for my dorkiness and incorrect terminology.
I have an Omnikey Ultra (with the extra "OMNI" key on the navigation pad). What I'm trying to accomplish:
This keyboard has a row of additional Function keys F1-F12) across the top, in addition to function keys on the left side. The row across the top, the keys are labeled "SF1-SF12" and by default, upon booting, they function as Shift+F1 through Shift+F12.
There is a key labeled "SF Select" which allows me, say, after I press it, to press left-Alt, and from that point on, all the SF keys are Alt+F1 through Alt+f12. The problem is, this is not persistent, and you have to do it every single time you boot up, and every single time you switch from one PC through another on your KVM. Naturally, in all testing/programming, I connect directly to a PC to eliminate the KVM issue.
I have a Soarer cable, and I have some understanding of the remapblock-endblock structure in a config (.sc) file. Problem is, all examples I've seen remap a key to a single key, not to a key-combination. Also, I'm not sure how to refer to the "input key" (in this case SF1) before I assign Alt+F1 to it.
Is this something that requires a macro? A layer? As you can see, I'm confused.
Also, I've used the Soarer hid_listen.exe utility and can identify key-names corresponding to hid_listen's keycodes on Soarer's code documentation. What worries me here is:
"srtaight" unmodified F1 (on the left side gives:
^[OPr05 +3A d3A <--- (I suspect the first 3 characters are garbage)
rF0 r05 -3A u3A
SF1 key (after all SF keys have been set to ALT+SF using the "SF Select" key):
r11 +E2 dE2 r05 +3A d3A
rF0 r11 -E2 uE2 rF0 r05 -3A u3A
So in both cases, "3A" (according to Soarer's "code" documentation) is F1, though the second one has additional preceding codes, which I could not find on Soarer's code doc.
So how to refer correctly to the key that I press?
If anyone has done this or something similar, I would be grateful for an example that I can get to work on.
Thanks in advance, and Happy New Year!
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
Well, I don’t have the full answer. But I can point you toward macros for the one key => two keys output you seek. Macros look for a trigger condition, and then fire whatever sequence of mods and keystrokes you specify. In your case, you want all those function keys to be given an Alt on the side. It’s a bit inelegant but I’d manually specify the lot of them as macros, adding lalt or ralt as you desire. Something like this:
Untested. This might need some tweaking. You may get two F1 presses out of it, for example. Fortunately, trial and error is pretty simple with Soarer.
Note the line starting with “macro f1” that’s the trigger condition. I threw in a -shift and -alt which means this macro would not fire if you’re holding either of those when you hit F1. Tricks like that can be very useful.
Subsequent macros fit inside the macroblock. Only use endblock to finish the whole lot.
Now the bit where I’m not helpful: the fact your keyboard has two sets of function keys. I don’t know how to tell them apart with Soarer’s. Someone else might. In the meantime, play with macros and learn their tricks.
Code: Select all
macroblock
# F1 = lalt + F1
macro f1 -shift -alt
push_meta set_meta lalt
press F1
pop_meta
endmacro
endblock
Note the line starting with “macro f1” that’s the trigger condition. I threw in a -shift and -alt which means this macro would not fire if you’re holding either of those when you hit F1. Tricks like that can be very useful.
Subsequent macros fit inside the macroblock. Only use endblock to finish the whole lot.
Now the bit where I’m not helpful: the fact your keyboard has two sets of function keys. I don’t know how to tell them apart with Soarer’s. Someone else might. In the meantime, play with macros and learn their tricks.
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
Correct. I have an empty text file called null.sc whose scas output I use to blank out my dead ends, by simply issuing the command: “scwr null”. I’m on Mac so unix style commandline, you’ll need scas.exe etc. naturally.
I don’t often have to nuke and pave, however. Because what Soarer’s converter is really up to is always based on that blank, default state. Everything we specify in our config files is added on top of that foundation. Q = Q, W = W, etc. until defined otherwise. So it’s pretty easy to fiddle around in your own thing one line at a time instead of burning down the lot.
I don’t often have to nuke and pave, however. Because what Soarer’s converter is really up to is always based on that blank, default state. Everything we specify in our config files is added on top of that foundation. Q = Q, W = W, etc. until defined otherwise. So it’s pretty easy to fiddle around in your own thing one line at a time instead of burning down the lot.
-
- Location: Louisiana
- Main keyboard: PC/XT
- Favorite switch: buckling spring
- DT Pro Member: -
@Muirium
Could you please help me straighten out my code? I would like for CAPS_LOCK to act as a "Firefox-Back" button.
Could you please help me straighten out my code? I would like for CAPS_LOCK to act as a "Firefox-Back" button.
Code: Select all
# make CAPS_LOCK act as "Firefox-Back" button
macroblock
macro CAPS_LOCK
push_meta
press LALT
press LEFT
pop_meta
endmacro
endblock
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
Modifier keys are treated a little different to the rest. Instead of “press” you want to push and set meta then pop them off once you’re done. The example I posted earlier has that at work. The only key you want to “press” will be “left”.
I also think there may be a browser history key deeper down in the available USB codes list, not that I’ve never used it.
I also think there may be a browser history key deeper down in the available USB codes list, not that I’ve never used it.
-
- Location: Louisiana
- Main keyboard: PC/XT
- Favorite switch: buckling spring
- DT Pro Member: -
This works, but is there a "cleaner" way to do it? Kb is PC/XT.
I've got F1 initiating layer 1, and the normal F1 function resulting from 'F1+1'.
Code: Select all
ifset set1
layerblock
FN1 1
endblock
remapblock
layer 0
F1 FN1
endblock
remapblock
ifset any
layer 1
1 F1
endblock
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
I like to use the ideally placed little key immediately right of right shift as my fn. Fun fact: the XT is where I learned the HHKB arrow layer; which I use every day since!
This might not be as ideal for you, though. But I don’t need a lot of those PC centric keys, and I’ve quite forgotten what they even are. My XT layout seems more natural in my head than the keys original legends.
This might not be as ideal for you, though. But I don’t need a lot of those PC centric keys, and I’ve quite forgotten what they even are. My XT layout seems more natural in my head than the keys original legends.
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
Asterix:

Though, oddly enough, a DT search says you’re right. There’s more hits for pad_asterix than pad_asterisk. Perhaps Soarer was having us on!
I’m thousands of miles from my XT. But here’s a config file I used with it at some point:

Though, oddly enough, a DT search says you’re right. There’s more hits for pad_asterix than pad_asterisk. Perhaps Soarer was having us on!
I’m thousands of miles from my XT. But here’s a config file I used with it at some point:
Code: Select all
# IBM XT
# hid_listen says:
# Keyboard ID: 0000
# Code Set: 1
# Mode: PC/XT
layerblock
fn1 1
endblock
remapblock
layer 0
f9 rctrl # Claim bottom function keys for left mods
f10 lalt
lalt lgui
pad_asterix fn1 # HHKB style Fn key
caps_lock rgui # XT sure has some strange mods
num_lock select_1 # Toggle numpad navigation block
endblock
remapblock
layer 1
left_brace up
semicolon left
quote right
slash down
l page_up
period page_down
k home
comma end
a volume_down
s volume_up
d mute
backspace delete
endblock
macroblock
# Mac app window cycling, 60% style
macro esc lgui -ctrl -alt
press back_quote
endmacro
# Shift + Shift = Caps Lock
macro lshift rshift
press caps_lock
endmacro
macro rshift lshift
press caps_lock
endmacro
endblock
# Numpad nav block - toggle with Num Lock
ifselect 1
remapblock
layer 0
pad_1 end
pad_2 down
pad_3 page_down
pad_4 left
pad_5 pad_5
pad_6 right
pad_7 home
pad_8 up
pad_9 page_up
pad_0 ralt
pad_period rctrl
pad_plus pad_enter
endblock
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
I don’t often bother with hid_listen. The comments at the top of my config there suggest I did, way back, when I was first using the keyboard. (I had an XT autodection system in mind but don’t think I got far.) These days, I just test everything live in the gui keyboard without that abstraction.
Discussion here:
viewtopic.php?f=7&t=19922&p=426129&hili ... ac#p426129
Discussion here:
viewtopic.php?f=7&t=19922&p=426129&hili ... ac#p426129