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
http://www.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.bc
I 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
endblock
Soarer'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
endblock
Code: 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
endblock
Code: Select all
sudo apt install libusb-0.1-4:i386
Code: 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
endmacro
Code: 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
endblock
toggle_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