Posted: 19 Oct 2018, 16:04
Ok, I see
I will follow your advice and boot windows on my wife`s laptop next time, because she has got this dual boot setup
Many thanks for your quick reply.
mechanical keyboard authority
https://mail.deskthority.net/
If your Soarer tools work then it's just a matter of using these commands to do it:
Code: Select all
scas myconfig.sc tinkerboy.bc
scwr tinkerboy.bcI have decided to work on Windows. Is your quoted part the same syntax for Windows using tinkerboy's converter? If not, what is the correct syntax?JBert wrote:At least, that's all it takes me to do so on Windows.Code: Select all
scas myconfig.sc tinkerboy.bc scwr tinkerboy.bc
Code: Select all
remapblock
layer 0
num_lock select_1 # Toggle numpad to navigation block
endblock
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
endblockSoarer's converters allow remapping keys, and allow defining more than one remapping PER key. This is done in groups of remappings called layers: layer 0 is the base layer and others go "on top" of it, and the remapping that will be used is the "topmost" one.ghostdawg187 wrote: Thank you very much for your help, Muirium. I am really sorry for my silly questions. I am not quite sure what the part "layer 0" does. In the first part you assign "select_1" to num_lock. Then you define what is being remapped whenever you enter "select_1". But in both cases, what does "layer 0"?
Code: Select all
# General purpose, agnostic winkeyless and winkeyed PC keyboards
# Press Scroll Lock to toggle modifier layout
# Press Num Lock to engage Numpad navigation mode, PC style
# Both Insert and App key are Fn
# NMB Space Invader:
# Keyboard ID: AB83
# Code Set: 2 (extended)
# Mode: AT/PS2
# Same as winkeyed Cherry G8-3000. Maybe use a select to toggle win/winkeyless?
layerblock
fn1 1
endblock
# Assume winkeyless, but toggle on Scroll Lock
remapblock
layer 0
insert fn1
caps_lock lctrl
lctrl lalt
lalt lgui
ralt rgui
rctrl ralt
num_lock select_1 # Toggle numpad to navigation block
scroll_lock select_2 # Winkeyed mods mode
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
1 f1
2 f2
3 f3
4 f4
5 f5
6 f6
7 f7
8 f8
9 f9
0 f10
minus f11
equal f12
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
# Swapped mods mode for Winkeyed boards
ifselect 2
remapblock
layer 0
num_lock select_1 # Toggle numpad to navigation block
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
endblock
Code: Select all
# We remap some keys
remapblock
F6 LGUI # F6 is now the left win-key
CAPS_LOCK RALT # CapsLock is now AltGr
BACK_QUOTE BACKSLASH # swap backquote and backslash
BACKSLASH BACK_QUOTE
# implement navigation cluster
PAD_1 END
PAD_2 DOWN
PAD_3 PAGE_DOWN
PAD_4 LEFT
PAD_5 ENTER
PAD_6 RIGHT
PAD_7 HOME
PAD_8 UP
PAD_9 PAGE_UP
PAD_PERIOD DELETE
SCROLL_LOCK APP # scrolllock is now menu-key
endblock
# regardless in which ifselect we are, numlock is the key
# to toggle SELECT_1
ifselect any
remapblock
NUM_LOCK SELECT_1
endblock
# definitions when SELECT_1 is active
ifselect 1
remapblock
# restore numpad
PAD_1 1
PAD_2 2
PAD_3 3
PAD_4 4
PAD_5 5
PAD_6 6
PAD_7 7
PAD_8 8
PAD_9 9
PAD_0 0
PAD_PERIOD PERIOD
# have some navigation, also could address these with FN-layers
W UP
A LEFT
S DOWN
D RIGHT
Q HOME
Z END
E PAGE_UP
C PAGE_DOWN
endblock
Code: Select all
remapblock
BACK_QUOTE EUROPE_2 # Get non-US backslash working
EXTRA_SYSRQ LGUI # Make SysReq work as Windows key (BTC)
UNASSIGNED LGUI # Make SysReq work as Windows key (Datacomp)
PAD_PLUS PAD_ENTER # Make + on num pad into a return key
PAD_MINUS PAD_PLUS # Make - on num pad into a + key
endblock
ifset set1 set2
macroblock
# pause macro
macro NUM_LOCK ctrl
PUSH_META CLEAR_META ctrl
PRESS PAUSE
POP_META
endmacro
# Num printscreen macro
macro PAD_ASTERIX shift
PUSH_META CLEAR_META shift
PRESS PRINTSCREEN
POP_META
endmacro
# break macro
macro SCROLL_LOCK ctrl
PRESS PAUSE
endmacro
macro CAPS_LOCK # Make F9 and F10 work as F11 and F12 if caps lock is on
PUSH_META CLEAR_META
Press CAPS_LOCK # Normal caps lock operation
Press SELECT_1 # Also set flag of its status
POP_META
endmacro
endblock
ifselect 1 # If caps lock on ...
remapblock
F9 F11 # re-map F9
F10 F12 # and F10
endblock
# reset conditionals in case this file is included from another file
ifset any
ifkeyboard any
ifselect any
Code: Select all
macroblock
# macro count: 3
macro EXTRA_F5 # Cursor Sel -
MAKE LSHIFT
PRESS HOME
BREAK LSHIFT
endmacro
macro EXTRA_F6 # ExSel
MAKE LSHIFT
PRESS END
BREAK LSHIFT
endmacro
macro EXTRA_F8 # Erase EOF
MAKE LSHIFT
PRESS END
PRESS DELETE
BREAK LSHIFT
endmacro
endblock
remapblock
layer 0
# count: 13
EXTRA_F1 ESC
EXTRA_F2 ESC
EUROPE_1 ENTER
EUROPE_2 LSHIFT
LANG_4 DOWN
ESC PRINTSCREEN
NUM_LOCK PAD_SLASH
SCROLL_LOCK PAD_ASTERIX
EXTRA_SYSRQ PAD_MINUS
PAD_ASTERIX PAD_PLUS
PAD_MINUS PAD_PLUS
PAD_PLUS PAD_ENTER
EXTRA_F10 RGUI
endblockCode: Select all
# Soarer Converter's configuration for an IBM Model M P/N 1391401 keyboard,
# where the numpad has been made into into a 19-key pad (only the Enter key
# remains 2U).
#
# Author: Depleted Vespene.
# Date: 20190105.
# Version: 1.0.
#
##### BEGIN ########
macroblock
# The MUTE function is too useful to not have readily available.
macro CAPS_LOCK ctrl
PUSH_META CLEAR_META ctrl
PRESS MEDIA_MUTE
POP_META
endmacro
# Num Lock needs to be available, but doesn't deserve an assignment in
# the base layer.
macro SCROLL_LOCK ctrl
PUSH_META CLEAR_META ctrl
PRESS NUM_LOCK
POP_META
endmacro
# On my national layout, Shift-0 produces the '=' character. Adjust this
# as needed for others.
macro PAD_EQUALS
PUSH_META CLEAR_META all
MAKE LSHIFT
PRESS 0
BREAK LSHIFT
POP_ALL_META
endmacro
endblock
remapblock
NUM_LOCK PAD_EQUALS # See above.
PAD_COMMA TAB # Former lower half of the 2U numpad+ key; the upper half remains PAD_PLUS.
EXTRA_INSERT PAD_0 # Former LEFT half of the 2U numpad0 key.
PAD_0 COMMA # Former RIGHT half of the 2U numpad0 key.
# Bonus: on my national layout, Shift-, produces the ';' character. With
# the direct remapping above, pressing Shift-(left-side)PAD_0 has the same
# effect. Replace with a macro if needed.
endblock
##### END ##########
Whoever wants to work under Linux should follow the instructions provided in this post:ghostdawg187 wrote: 19 Oct 2018, 15:23 ii.) Assume I have manged to produce a vaild .sc-file, how do I proceed further under linux, so that my remap file will be applied by the converter?
Code: Select all
ifset set3
# Terminal Model M 1392595
remapblock
# Function row. The Escape key and the printscreen block
F23 PRINTSCREEN # Printscreen 'Print'
F24 SCROLL_LOCK # Scroll lock 'Print Line'
LANG_4 PAUSE # Pause 'Hold'
F13 ESC # Esc Sends +68 which is F13
# 4 keys along the top of the numpad
ESC NUM_LOCK # Num lock 'Jump'
NUM_LOCK PAD_SLASH # numpad / 'Blank key'
SCROLL_LOCK PAD_ASTERIX # numpad * 'Send Line'
EXTRA_SYSRQ PAD_EQUALS # Extra key. Use as '=' Top-right corner, front-printed with 'Setup'
# The 3 buttons along the right side of the numpad
PAD_ASTERIX PAD_MINUS # Minus
PAD_MINUS PAD_PLUS # Plus Has '|_ symbols
PAD_PLUS PAD_ENTER # Numpad Enter
endblockCode: Select all
sudo apt install libusb-0.1-4:i386Code: Select all
# Soarer Converter's configuration for an IBM Model M SSK; adds volume
# control keys and CONSTANT_NAMES_MODE (which produces underscores
# instead of spaces and uppercase letters... ok, single-case letters).
#
# Author: Depleted Vespene.
# Date: 20190722.
# Version: 1.0.
#
##### BEGIN ########
macroblock
# Caps Lock with modifiers outputs the volume control commands.
macro CAPS_LOCK lctrl
PRESS MEDIA_VOLUME_DOWN
endmacro
macro CAPS_LOCK lalt
PRESS MEDIA_VOLUME_UP
endmacro
macro CAPS_LOCK shift # Yes, both Shift keys.
PRESS MEDIA_MUTE
endmacro
# Toggles CONSTANT_NAMES_MODE. Map this on EF6 as well, if available.
macro CAPS_LOCK rctrl
PRESS SELECT_2
endmacro
endblock
# Layer 2 contains the mappings for the CONSTANT_NAMES_MODE. For proper
# usage, CAPS LOCK IS EXPECTED TO BE OFF (I'd kill to be able to set,
# clear, push and pop its setting here!).
ifselect 2
macroblock
# Caps Lock by itself also turns CONSTANT_NAMES_MODE off. Convenient!
macro CAPS_LOCK -all
PRESS SELECT_2
endmacro
# One macro for each key in A-Z (and other letters, for those national
# layouts with them); they are NOT triggered if Ctrl and/or Alt are
# pressed. Shift may or may not be pressed, but its setting is ignored
# during each macro's execution.
macro A -CTRL -ALT
PUSH_META SET_META shift
PRESS A
POP_META
endmacro
macro B -CTRL -ALT
PUSH_META SET_META shift
PRESS B
POP_META
endmacro
macro C -CTRL -ALT
PUSH_META SET_META shift
PRESS C
POP_META
endmacro
macro D -CTRL -ALT
PUSH_META SET_META shift
PRESS D
POP_META
endmacro
macro E -CTRL -ALT
PUSH_META SET_META shift
PRESS E
POP_META
endmacro
macro F -CTRL -ALT
PUSH_META SET_META shift
PRESS F
POP_META
endmacro
macro G -CTRL -ALT
PUSH_META SET_META shift
PRESS G
POP_META
endmacro
macro H -CTRL -ALT
PUSH_META SET_META shift
PRESS H
POP_META
endmacro
macro I -CTRL -ALT
PUSH_META SET_META shift
PRESS I
POP_META
endmacro
macro J -CTRL -ALT
PUSH_META SET_META shift
PRESS J
POP_META
endmacro
macro K -CTRL -ALT
PUSH_META SET_META shift
PRESS K
POP_META
endmacro
macro L -CTRL -ALT
PUSH_META SET_META shift
PRESS L
POP_META
endmacro
macro M -CTRL -ALT
PUSH_META SET_META shift
PRESS M
POP_META
endmacro
macro N -CTRL -ALT
PUSH_META SET_META shift
PRESS N
POP_META
endmacro
macro O -CTRL -ALT
PUSH_META SET_META shift
PRESS O
POP_META
endmacro
macro P -CTRL -ALT
PUSH_META SET_META shift
PRESS P
POP_META
endmacro
macro Q -CTRL -ALT
PUSH_META SET_META shift
PRESS Q
POP_META
endmacro
macro R -CTRL -ALT
PUSH_META SET_META shift
PRESS R
POP_META
endmacro
macro S -CTRL -ALT
PUSH_META SET_META shift
PRESS S
POP_META
endmacro
macro T -CTRL -ALT
PUSH_META SET_META shift
PRESS T
POP_META
endmacro
macro U -CTRL -ALT
PUSH_META SET_META shift
PRESS U
POP_META
endmacro
macro V -CTRL -ALT
PUSH_META SET_META shift
PRESS V
POP_META
endmacro
endblock
# Soarer's Converter can't handle more macros than the above in a single
# block. Fortunately, there can be more than one ifselect block for the
# same layer.
ifselect 2
macroblock
macro W -CTRL -ALT
PUSH_META SET_META shift
PRESS W
POP_META
endmacro
macro X -CTRL -ALT
PUSH_META SET_META shift
PRESS X
POP_META
endmacro
macro Y -CTRL -ALT
PUSH_META SET_META shift
PRESS Y
POP_META
endmacro
macro Z -CTRL -ALT
PUSH_META SET_META shift
PRESS Z
POP_META
endmacro
# Commented because I've chosen to "degrade" the 'Ñ' characters to 'N'.
# Uncomment this macro and comment the SEMICOLON line in the remap block
# below to treat this letter in the same way as A-Z.
#
# # SHIFT+SEMICOLON produces 'Ñ' in my national layout. Adjust as needed
# # for other national layouts.
# macro SEMICOLON -CTRL -ALT
# PUSH_META SET_META shift
# PRESS SEMICOLON
# POP_META
# endmacro
endblock
ifset any
macroblock
# SHIFT+SLASH produces '_' in my national layout.
macro AUX1
PUSH_META CLEAR_META all
SET_META shift
PRESS SLASH
POP_META
endmacro
endblock
remapblock
# Fundamental remappings.
SPACE AUX1 # Underscore.
TAB SPACE # Keep a space available if ever needed.
# National-layout-dependent remappings.
SEMICOLON N # Ñ is degraded to a plain N.
LEFT_BRACE UNASSIGNED # Grave and circumflex accents are turned off.
QUOTE UNASSIGNED # Acute accent and diaeresis are turned off.
endblock
##### END ##########
In Java code, the convention is to write all constants like that, and whenever typing them out... it gets to be tiring if there are several of them. And yes, I tried several different strategies to get what I wanted, but in the end, the only one feasible with Soarer's Converter (as it stands in v1.1) is the clunky one.Muirium wrote: 22 Jul 2019, 20:35 Ha! Thats one way to do it. Everything really has to be in CAPS? Space as underscore makes sense, and is a trivial layer select. But shifted letters are a tougher ask, as you’ve shown.
Code: Select all
#Sets F13 to Pound Sign ALT + 0163
macro F13
PUSH_META CLEAR_META all
#SET_META LALT #is LALT key or meta?
MAKE LALT
DELAY 5
PRESS 0
DELAY 5
#add DELAY 1?
PRESS 1
DELAY 5
PRESS 6
DELAY 5
PRESS 3
BREAK LALT
POP_ALL_META
endmacro
#sets F21 to ALT PRINTSCREEN ("Druck")
macro F21
PUSH_META CLEAR_META all
MAKE LALT
PRESS PRINTSCREEN
BREAK LALT
POP_ALL_META
endmacroCode: Select all
macroblock
# Pressing SCROLL_LOCK by itself toggles the case of letters with the space
# character replaced by an underline character, SUCH_AS_THIS. This works
# with the Colemak, Dvorak, or default keyboard layouts. This assumes
# that the CAPS_LOCK is not already on. If CAPS_LOCK is on, then when
# you toggle on SELECT_3, the letters will be in lower case and the space
# character will be an underline, such_as_this. If you press the Right Shift
# key while in the SELECT_3 configuration, then the shift will be toggled off,
# resulting in text such-as-this. In this situation, press SCROLL_LOCK again
# to turn the MINUS back into a SPACE and press the Right Shift key to release
# the shift toggle.
macro SCROLL_LOCK -shift -ctrl -alt -gui
toggle_meta RSHIFT
press SELECT_3
endmacro
endblock
ifselect 3
remapblock
SPACE MINUS
endblocktoggle_meta was the first thing I used, BUT... it had the undesirable side effect of shifting every keypress; numbers were bad enough already, but being unable to type the comma without exiting the mode was a complete deal-breaker.edlee wrote: 30 Apr 2020, 09:14 Here is an excerpt from my latest configuration file. Another person gave a long example of creating a SELECT configuration with a macro for each letter to capitalize every letter and replace the space character with an underline character, but there is a far more concise way to accomplish the same thing that uses less precious EEPROM memory in Soarer's converter.
…
Code: Select all
macroblock
# Pressing Left Ctrl - (minus) toggles the case of letters with the space
# character replaced by an underline character, SUCH_AS_THIS. This works
# with the Colemak, Dvorak, or default keyboard layouts. This assumes
# that the CAPS_LOCK is not already on. If CAPS_LOCK is on, then when
# you toggle on SELECT_3, the letters will be in lower case and the space
# character will be an underline, such_as_this. You can get a regular
# space character in this mode by pressing SHIFT SPACE.
macro MINUS LCTRL -RCTRL -shift -alt -gui
press CAPS_LOCK
press SELECT_3
endmacro
endblock
# You can have macros in SELECT configurations
ifselect 3
macroblock
macro SPACE -shift -ctrl -alt -gui
push_meta clear_meta all
set_meta LSHIFT
press MINUS
pop_all_meta
endmacro
endblock
Code: Select all
# my_dvorak.sc IBM M122 adding some hacks along with
# dvorak keyboard layout as layer 1
# inverse dvorak keyboard layout as layer 2 (so QWERTY people can use my keyboard)
remapblock
EXTRA_F2 ESC
EXTRA_F10 LGUI
EUROPE_2 LSHIFT
EUROPE_1 ENTER
LANG_4 HOME
# Number Pad
# Mimic standard num pad except with telephone number layout
ESC NUM_LOCK
NUM_LOCK PAD_SLASH
SCROLL_LOCK PAD_ASTERIX
EXTRA_SYSRQ PAD_EQUALS
PAD_7 PAD_1
PAD_8 PAD_2
PAD_9 PAD_3
PAD_ASTERIX PAD_MINUS
PAD_MINUS PAD_PLUS
PAD_1 PAD_7
PAD_2 PAD_8
PAD_3 PAD_9
PAD_PLUS PAD_ENTER
# Media keys
F13 MEDIA_MUTE
F14 MEDIA_VOLUME_DOWN
F15 MEDIA_VOLUME_UP
F16 MEDIA_PREV_TRACK
F17 MEDIA_PLAY_PAUSE
F18 MEDIA_NEXT_TRACK
# F19 switch screen?
F20 SYSTEM_SLEEP
# F21
# F22
F23 PRINTSCREEN
F24 SCROLL_LOCK
endblock
# add dvorak simplified layout to layer 1
ifselect 1
remapblock
MINUS LEFT_BRACE
EQUAL RIGHT_BRACE
Q QUOTE
W COMMA
E PERIOD
R P
T Y
Y F
U G
I C
O R
P L
LEFT_BRACE SLASH
RIGHT_BRACE EQUAL
# A A
S O
D E
F U
G I
H D
J H
K T
L N
SEMICOLON S
QUOTE MINUS
Z SEMICOLON
X Q
C J
V K
B X
N B
# M M
COMMA W
PERIOD V
SLASH Z
endblock
# add inverse dvorak to layer 2
ifselect 2
remapblock
LEFT_BRACE MINUS
RIGHT_BRACE EQUAL
QUOTE Q
W COMMA
PERIOD E
P R
Y T
F Y
G U
C I
R O
L P
SLASH LEFT_BRACE
EQUAL RIGHT_BRACE
# A A
O S
E D
U F
I G
D H
H J
T K
N L
S SEMICOLON
MINUS QUOTE
SEMICOLON Z
Q X
J C
K V
X B
B N
# M M
W COMMA
V PERIOD
Z SLASH
endblock
ifselect any
remapblock
EXTRA_F1 SELECT_1
EXTRA_F3 SELECT_2
endblock