ajout kanata pour ergo-l
parent
721eec0498
commit
eb999bb3eb
|
|
@ -0,0 +1,186 @@
|
||||||
|
Arsenik Kanata
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Installation
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- To get Arsenik, check out this repository with Git or
|
||||||
|
[download it][Download Arsenik].
|
||||||
|
- Launch `kanata.kbd` with Kanata.
|
||||||
|
- You can install Kanata by downloading a
|
||||||
|
[pre-built executable][Download Kanata].
|
||||||
|
- Follow the installation details of your operating system.
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Windows</summary>
|
||||||
|
|
||||||
|
Windows users might prefer to download the `kanata_winIOv2.exe` version as it
|
||||||
|
fixes some weird bugs like <kbd>C</kbd> and <kbd>V</kbd> inversion.
|
||||||
|
|
||||||
|
*Note: This tip has been tested for version 1.6.1 of Kanata. In later versions the
|
||||||
|
`winIOv2` version might be the default.*
|
||||||
|
|
||||||
|
Put the `kanata_winIOv2.exe` in the Kanata Arsenik folder, run it and you’re
|
||||||
|
good to go!
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Linux</summary>
|
||||||
|
|
||||||
|
### Run Kanata without <code>sudo</code>
|
||||||
|
|
||||||
|
kanata needs to intercept `uinput` signals, which it cannot do without the
|
||||||
|
proper authorisations.
|
||||||
|
|
||||||
|
If you don’t want to run `kanata` with `sudo`, you’ll need to allow Kanata to
|
||||||
|
read from `uinput`. This requires the users to be part of both `input` and
|
||||||
|
`uinput` groups.
|
||||||
|
|
||||||
|
For that, you first need to create a `uinput` group if it doesn’t exist yet:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo groupadd -U $USERNAME uinput
|
||||||
|
```
|
||||||
|
|
||||||
|
where `$USERNAME` is the target user (or users in a comma-separated list). Then
|
||||||
|
add the target user (or users) to the group input:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo usermod -aG input $USERNAME
|
||||||
|
```
|
||||||
|
|
||||||
|
You can check after re-logging that both groups appear in the result of the
|
||||||
|
`groups` command launched as the target user.
|
||||||
|
|
||||||
|
Finally, you need to add a udev rule in `/etc/udev/rules.d/50-kanata.rules`:
|
||||||
|
|
||||||
|
```udev
|
||||||
|
KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Making a user-side <code>systemd</code> service for Kanata
|
||||||
|
|
||||||
|
Note: This only works if `kanata` is able to run without `sudo` (and is using
|
||||||
|
`systemd`).
|
||||||
|
|
||||||
|
Using a `systemd service` allows running `kanata` as a daemon, possibly right
|
||||||
|
after logging in. Here is a template for a service file:
|
||||||
|
|
||||||
|
```
|
||||||
|
[Unit]
|
||||||
|
Description=Kanata keyboard remapper
|
||||||
|
Documentation=https://github.com/jtroo/kanata
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Environment=PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin
|
||||||
|
Environment=DISPLAY=:0
|
||||||
|
Environment=HOME=/path/to/home/folder
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/local/bin/kanata --cfg /path/to/kanata/config/file
|
||||||
|
Restart=no
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
|
```
|
||||||
|
|
||||||
|
Copy-paste it into `~/.config/systemd/user/kanata.service`, fill in the
|
||||||
|
placeholders, then run one of the following commands:
|
||||||
|
|
||||||
|
- `systemctl --user start kanata.service` to manually start `kanata`
|
||||||
|
- `systemctl --user enable kanata.service` so `kanata` may autostart whenever
|
||||||
|
the current user logs in
|
||||||
|
- `systemctl --user status kanata.service` to check if `kanata` is running
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary> macOS</summary>
|
||||||
|
|
||||||
|
### Karabiner DriverKit installation
|
||||||
|
|
||||||
|
Install the [Karabiner-DriverKit-VirtualHIDDevice](https://github.com/pqrs-org/Karabiner-DriverKit-VirtualHIDDevice/releases/tag/v4.3.0). Latest version (v5.0.0) is not working with Kanata.
|
||||||
|
|
||||||
|
To activate it:
|
||||||
|
|
||||||
|
```
|
||||||
|
/Applications/.Karabiner-VirtualHIDDevice-Manager.app/Contents/MacOS/Karabiner-VirtualHIDDevice-Manager activate
|
||||||
|
```
|
||||||
|
|
||||||
|
You may have to allow Kanata execution in the Privacy & Security panel from macOS settings.
|
||||||
|
|
||||||
|
As root, add the following content in `/Library/LaunchDaemons/org.pqrs.service.daemon.Karabiner-VirtualHIDDevice-Daemon.plist` file:
|
||||||
|
|
||||||
|
```
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>Label</key>
|
||||||
|
<string>org.pqrs.service.daemon.Karabiner-VirtualHIDDevice-Daemon</string>
|
||||||
|
<key>KeepAlive</key>
|
||||||
|
<true/>
|
||||||
|
<key>ProcessType</key>
|
||||||
|
<string>Interactive</string>
|
||||||
|
<key>ProgramArguments</key>
|
||||||
|
<array>
|
||||||
|
<string>/Library/Application Support/org.pqrs/Karabiner-DriverKit-VirtualHIDDevice/Applications/Karabiner-VirtualHIDDevice-Daemon.app/Contents/MacOS/Karabiner-VirtualHIDDevice-Daemon</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
```
|
||||||
|
|
||||||
|
A new item *Fumihiko Takayama* will be added in System Settings > Login Items.
|
||||||
|
|
||||||
|
Two Karabiner processes should be started:
|
||||||
|
|
||||||
|
```
|
||||||
|
sh-3.2# ps aux | grep -i karabiner | grep -v grep
|
||||||
|
_driverkit 26050 0.0 0.0 410598064 2256 ?? Ss 8:02PM 0:00.04 /Library/SystemExtensions/.../org.pqrs.Karabiner-DriverKit-VirtualHIDDevice.dext/org.pqrs.Karabiner-DriverKit-VirtualHIDDevice org.pqrs.Karabiner-DriverKit-VirtualHIDDevice 0x10002b929 org.pqrs.Karabiner-DriverKit-VirtualHIDDevice
|
||||||
|
root 25744 0.0 0.1 410756464 9872 ?? Ss 8:01PM 0:00.16 /Library/Application Support/org.pqrs/Karabiner-DriverKit-VirtualHIDDevice/Applications/Karabiner-VirtualHIDDevice-Daemon.app/Contents/MacOS/Karabiner-VirtualHIDDevice-Daemon
|
||||||
|
```
|
||||||
|
|
||||||
|
### Kanata installation
|
||||||
|
|
||||||
|
Download Kanata [here](https://github.com/jtroo/kanata/releases/tag/v1.7.0) and save it in a persistent directory.
|
||||||
|
|
||||||
|
Add a sudo rule in `/private/etc/sudoers.d/kanata` where `$USERNAME` is your username:
|
||||||
|
|
||||||
|
```
|
||||||
|
$USERNAME ALL=(ALL) NOPASSWD: /path/to/kanata/binary/kanata
|
||||||
|
```
|
||||||
|
|
||||||
|
To start Kanata at the beginning of the session, add a property list file in `~/Library/LaunchAgents/com.jtroo.kanata.plist` with the following content:
|
||||||
|
|
||||||
|
```
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>Label</key>
|
||||||
|
<string>com.jtroo.kanata</string>
|
||||||
|
|
||||||
|
<key>ProgramArguments</key>
|
||||||
|
<array>
|
||||||
|
<string>sudo</string>
|
||||||
|
<string>/path/to/kanata/binary/kanata</string>
|
||||||
|
<string>--cfg</string>
|
||||||
|
<string>/path/to/kanata/config/file</string>
|
||||||
|
<string>-n</string>
|
||||||
|
</array>
|
||||||
|
|
||||||
|
<key>RunAtLoad</key>
|
||||||
|
<true/>
|
||||||
|
|
||||||
|
<key>KeepAlive</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
```
|
||||||
|
|
||||||
|
In system settings, search Login Items menu and select `sudo` service in *Allow in the Background* list.
|
||||||
|
You can restart Kanata with new configuration by disabling and enabling this service.
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
[Download Arsenik]: https://github.com/OneDeadKey/arsenik/releases
|
||||||
|
[Download Kanata]: https://github.com/jtroo/kanata/releases
|
||||||
|
|
@ -0,0 +1,88 @@
|
||||||
|
;; Azerty Windows/Linux aliases
|
||||||
|
;; Works with AZERTY-fr. Needs a couple tweaks for the Belgian and Mac variants.
|
||||||
|
|
||||||
|
;; Navigation layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
all C-q
|
||||||
|
sav C-s
|
||||||
|
cls C-z
|
||||||
|
ndo C-w
|
||||||
|
cut C-x
|
||||||
|
cpy C-c
|
||||||
|
pst C-v
|
||||||
|
|
||||||
|
0 S-0
|
||||||
|
1 S-1
|
||||||
|
2 S-2
|
||||||
|
3 S-3
|
||||||
|
4 S-4
|
||||||
|
5 S-5
|
||||||
|
6 S-6
|
||||||
|
7 S-7
|
||||||
|
8 S-8
|
||||||
|
9 S-9
|
||||||
|
, m
|
||||||
|
. S-,
|
||||||
|
)
|
||||||
|
|
||||||
|
;; Symbols layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
^ (macro [ spc)
|
||||||
|
< <
|
||||||
|
> S-<
|
||||||
|
$ ]
|
||||||
|
% S-'
|
||||||
|
@ AG-0
|
||||||
|
& 1
|
||||||
|
* \
|
||||||
|
' 4
|
||||||
|
` (macro AG-7 spc)
|
||||||
|
|
||||||
|
{ AG-4
|
||||||
|
pl 5
|
||||||
|
pr -
|
||||||
|
} AG-=
|
||||||
|
= =
|
||||||
|
\ AG-8
|
||||||
|
+ S-=
|
||||||
|
- 6
|
||||||
|
/ S-.
|
||||||
|
'' 3
|
||||||
|
|
||||||
|
~ (macro AG-2 spc)
|
||||||
|
[ AG-5
|
||||||
|
] AG--
|
||||||
|
_ 8
|
||||||
|
# AG-3
|
||||||
|
| AG-6
|
||||||
|
! /
|
||||||
|
; ,
|
||||||
|
: .
|
||||||
|
? S-m
|
||||||
|
)
|
||||||
|
|
||||||
|
;; NumRow layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
s0 0
|
||||||
|
s1 1
|
||||||
|
s2 2
|
||||||
|
s3 3
|
||||||
|
s4 4
|
||||||
|
s5 5
|
||||||
|
s6 6
|
||||||
|
s7 7
|
||||||
|
s8 8
|
||||||
|
s9 9
|
||||||
|
nbs (unicode ) ;; narrow non-break space
|
||||||
|
|
||||||
|
dk1 XX
|
||||||
|
dk2 XX
|
||||||
|
dk3 XX
|
||||||
|
dk4 XX
|
||||||
|
dk5 XX
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,87 @@
|
||||||
|
;; Bépo Windows/Linux aliases
|
||||||
|
|
||||||
|
;; Navigation layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
all C-a
|
||||||
|
sav C-k
|
||||||
|
cls C-]
|
||||||
|
ndo C-[
|
||||||
|
cut C-c
|
||||||
|
cpy C-h
|
||||||
|
pst C-u
|
||||||
|
|
||||||
|
0 S-0
|
||||||
|
1 S-1
|
||||||
|
2 S-2
|
||||||
|
3 S-3
|
||||||
|
4 S-4
|
||||||
|
5 S-5
|
||||||
|
6 S-6
|
||||||
|
7 S-7
|
||||||
|
8 S-8
|
||||||
|
9 S-9
|
||||||
|
, g
|
||||||
|
. v
|
||||||
|
)
|
||||||
|
|
||||||
|
;; Symbols layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
^ AG-6
|
||||||
|
< AG-2
|
||||||
|
> AG-3
|
||||||
|
$ `
|
||||||
|
% =
|
||||||
|
@ 6
|
||||||
|
& AG-e
|
||||||
|
* 0
|
||||||
|
' AG-g
|
||||||
|
` S-=
|
||||||
|
|
||||||
|
{ AG-x
|
||||||
|
pl 4
|
||||||
|
pr 5
|
||||||
|
} AG-c
|
||||||
|
= -
|
||||||
|
\ AG-z
|
||||||
|
+ 7
|
||||||
|
- 8
|
||||||
|
/ AG-<
|
||||||
|
'' 1
|
||||||
|
|
||||||
|
~ AG-b
|
||||||
|
[ AG-4
|
||||||
|
] AG-5
|
||||||
|
_ AG-spc
|
||||||
|
# S-`
|
||||||
|
| AG-q
|
||||||
|
! S-y
|
||||||
|
; S-g
|
||||||
|
: S-v
|
||||||
|
? S-n
|
||||||
|
)
|
||||||
|
|
||||||
|
;; NumRow layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
s0 0
|
||||||
|
s1 1
|
||||||
|
s2 2
|
||||||
|
s3 3
|
||||||
|
s4 4
|
||||||
|
s5 5
|
||||||
|
s6 6
|
||||||
|
s7 7
|
||||||
|
s8 8
|
||||||
|
s9 9
|
||||||
|
nbs S-spc ;; narrow no-break space
|
||||||
|
|
||||||
|
dk1 XX
|
||||||
|
dk2 XX
|
||||||
|
dk3 XX
|
||||||
|
dk4 XX
|
||||||
|
dk5 XX
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,89 @@
|
||||||
|
;; Ergo‑L Windows/Linux aliases
|
||||||
|
|
||||||
|
;; Navigation layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
all C-a
|
||||||
|
sav C-s
|
||||||
|
cls C-t
|
||||||
|
ndo C-z
|
||||||
|
cut C-x
|
||||||
|
cpy C-w
|
||||||
|
pst C-v
|
||||||
|
|
||||||
|
0 0
|
||||||
|
1 1
|
||||||
|
2 2
|
||||||
|
3 3
|
||||||
|
4 4
|
||||||
|
5 5
|
||||||
|
6 6
|
||||||
|
7 7
|
||||||
|
8 8
|
||||||
|
9 9
|
||||||
|
, .
|
||||||
|
. n
|
||||||
|
)
|
||||||
|
|
||||||
|
;; Symbols layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
^ AG-q
|
||||||
|
< AG-w
|
||||||
|
> AG-e
|
||||||
|
$ AG-r
|
||||||
|
% AG-t
|
||||||
|
@ AG-y
|
||||||
|
& AG-u
|
||||||
|
* AG-i
|
||||||
|
' AG-o
|
||||||
|
` AG-p
|
||||||
|
|
||||||
|
{ AG-a
|
||||||
|
pl AG-s
|
||||||
|
pr AG-d
|
||||||
|
} AG-f
|
||||||
|
= AG-g
|
||||||
|
\ AG-h
|
||||||
|
+ AG-j
|
||||||
|
- AG-k
|
||||||
|
/ AG-l
|
||||||
|
'' AG-;
|
||||||
|
|
||||||
|
~ AG-z
|
||||||
|
[ AG-x
|
||||||
|
] AG-c
|
||||||
|
_ AG-v
|
||||||
|
# AG-b
|
||||||
|
| AG-n
|
||||||
|
! AG-m
|
||||||
|
; AG-,
|
||||||
|
: AG-.
|
||||||
|
? AG-/
|
||||||
|
)
|
||||||
|
|
||||||
|
;; NumRow layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
s0 S-0
|
||||||
|
s1 S-1
|
||||||
|
s2 S-2
|
||||||
|
s3 S-3
|
||||||
|
s4 S-4
|
||||||
|
s5 S-5
|
||||||
|
s6 S-6
|
||||||
|
s7 S-7
|
||||||
|
s8 S-8
|
||||||
|
s9 S-9
|
||||||
|
nbs S-spc ;; narrow no-break space
|
||||||
|
|
||||||
|
1dk o
|
||||||
|
;; digits must be escaped, otherwise they’re interpreted as delays in ms
|
||||||
|
dk1 (macro @1dk @1)
|
||||||
|
dk2 (macro @1dk @2)
|
||||||
|
dk3 (macro @1dk @3)
|
||||||
|
dk4 (macro @1dk @4)
|
||||||
|
dk5 (macro @1dk @5)
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,87 @@
|
||||||
|
;; Optimot Windows/Linux aliases
|
||||||
|
|
||||||
|
;; Navigation layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
all C-a
|
||||||
|
sav C-k
|
||||||
|
cls C-v
|
||||||
|
ndo C-]
|
||||||
|
cut C-[
|
||||||
|
cpy C-m
|
||||||
|
pst C-/
|
||||||
|
|
||||||
|
0 S-0
|
||||||
|
1 S-1
|
||||||
|
2 S-2
|
||||||
|
3 S-3
|
||||||
|
4 S-4
|
||||||
|
5 S-5
|
||||||
|
6 S-6
|
||||||
|
7 S-7
|
||||||
|
8 S-8
|
||||||
|
9 S-9
|
||||||
|
, g
|
||||||
|
. c
|
||||||
|
)
|
||||||
|
|
||||||
|
;; Symbols layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
^ (macro ' spc)
|
||||||
|
< AG-q
|
||||||
|
> AG-w
|
||||||
|
$ `
|
||||||
|
% S-=
|
||||||
|
@ -
|
||||||
|
& AG-j
|
||||||
|
* 6
|
||||||
|
' o
|
||||||
|
` AG-h
|
||||||
|
|
||||||
|
{ AG-u
|
||||||
|
pl 9
|
||||||
|
pr 0
|
||||||
|
} AG-i
|
||||||
|
= 8
|
||||||
|
\ AG-7
|
||||||
|
+ 5
|
||||||
|
- 4
|
||||||
|
/ 7
|
||||||
|
'' 3
|
||||||
|
|
||||||
|
~ (macro AG-; spc)
|
||||||
|
[ AG-9
|
||||||
|
] AG-0
|
||||||
|
_ S--
|
||||||
|
# =
|
||||||
|
| AG-[
|
||||||
|
! S-'
|
||||||
|
; S-g
|
||||||
|
: S-c
|
||||||
|
? S-o
|
||||||
|
)
|
||||||
|
|
||||||
|
;; NumRow layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
s0 0
|
||||||
|
s1 1
|
||||||
|
s2 2
|
||||||
|
s3 3
|
||||||
|
s4 4
|
||||||
|
s5 5
|
||||||
|
s6 6
|
||||||
|
s7 7
|
||||||
|
s8 8
|
||||||
|
s9 9
|
||||||
|
nbs S-spc ;; narrow no-break space
|
||||||
|
|
||||||
|
dk1 XX
|
||||||
|
dk2 XX
|
||||||
|
dk3 XX
|
||||||
|
dk4 XX
|
||||||
|
dk5 XX
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,89 @@
|
||||||
|
;; Qwerty‑Lafayette Windows/Linux aliases
|
||||||
|
|
||||||
|
;; Navigation layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
all C-a
|
||||||
|
sav C-s
|
||||||
|
cls C-w
|
||||||
|
ndo C-z
|
||||||
|
cut C-x
|
||||||
|
cpy C-c
|
||||||
|
pst C-v
|
||||||
|
|
||||||
|
0 0
|
||||||
|
1 1
|
||||||
|
2 2
|
||||||
|
3 3
|
||||||
|
4 4
|
||||||
|
5 5
|
||||||
|
6 6
|
||||||
|
7 7
|
||||||
|
8 8
|
||||||
|
9 9
|
||||||
|
, ,
|
||||||
|
. .
|
||||||
|
)
|
||||||
|
|
||||||
|
;; Symbols layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
^ AG-q
|
||||||
|
< AG-w
|
||||||
|
> AG-e
|
||||||
|
$ AG-r
|
||||||
|
% AG-t
|
||||||
|
@ AG-y
|
||||||
|
& AG-u
|
||||||
|
* AG-i
|
||||||
|
' AG-o
|
||||||
|
` AG-p
|
||||||
|
|
||||||
|
{ AG-a
|
||||||
|
pl AG-s
|
||||||
|
pr AG-d
|
||||||
|
} AG-f
|
||||||
|
= AG-g
|
||||||
|
\ AG-h
|
||||||
|
+ AG-j
|
||||||
|
- AG-k
|
||||||
|
/ AG-l
|
||||||
|
'' AG-;
|
||||||
|
|
||||||
|
~ AG-z
|
||||||
|
[ AG-x
|
||||||
|
] AG-c
|
||||||
|
_ AG-v
|
||||||
|
# AG-b
|
||||||
|
| AG-n
|
||||||
|
! AG-m
|
||||||
|
; AG-,
|
||||||
|
: AG-.
|
||||||
|
? AG-/
|
||||||
|
)
|
||||||
|
|
||||||
|
;; NumRow layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
s0 S-0
|
||||||
|
s1 S-1
|
||||||
|
s2 S-2
|
||||||
|
s3 S-3
|
||||||
|
s4 S-4
|
||||||
|
s5 S-5
|
||||||
|
s6 S-6
|
||||||
|
s7 S-7
|
||||||
|
s8 S-8
|
||||||
|
s9 S-9
|
||||||
|
nbs S-spc ;; narrow no-break space
|
||||||
|
|
||||||
|
1dk ;
|
||||||
|
;; digits must be escaped, otherwise they’re interpreted as delays in ms
|
||||||
|
dk1 (macro @1dk @1)
|
||||||
|
dk2 (macro @1dk @2)
|
||||||
|
dk3 (macro @1dk @3)
|
||||||
|
dk4 (macro @1dk @4)
|
||||||
|
dk5 (macro @1dk @5)
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,87 @@
|
||||||
|
;; Qwerty/Colemak macOS aliases
|
||||||
|
|
||||||
|
;; Navigation layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
all M-a
|
||||||
|
sav M-s
|
||||||
|
cls M-w
|
||||||
|
ndo M-z
|
||||||
|
cut M-x
|
||||||
|
cpy M-c
|
||||||
|
pst M-v
|
||||||
|
|
||||||
|
0 0
|
||||||
|
1 1
|
||||||
|
2 2
|
||||||
|
3 3
|
||||||
|
4 4
|
||||||
|
5 5
|
||||||
|
6 6
|
||||||
|
7 7
|
||||||
|
8 8
|
||||||
|
9 9
|
||||||
|
, ,
|
||||||
|
. .
|
||||||
|
)
|
||||||
|
|
||||||
|
;; Symbols layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
^ S-6
|
||||||
|
< S-,
|
||||||
|
> S-.
|
||||||
|
$ S-4
|
||||||
|
% S-5
|
||||||
|
@ S-2
|
||||||
|
& S-7
|
||||||
|
* S-8
|
||||||
|
' '
|
||||||
|
` `
|
||||||
|
|
||||||
|
{ S-[
|
||||||
|
pl S-9
|
||||||
|
pr S-0
|
||||||
|
} S-]
|
||||||
|
= =
|
||||||
|
\ \
|
||||||
|
+ S-=
|
||||||
|
- -
|
||||||
|
/ /
|
||||||
|
'' S-'
|
||||||
|
|
||||||
|
~ S-`
|
||||||
|
[ [
|
||||||
|
] ]
|
||||||
|
_ S--
|
||||||
|
# S-3
|
||||||
|
| S-\
|
||||||
|
! S-1
|
||||||
|
; ;
|
||||||
|
: S-;
|
||||||
|
? S-/
|
||||||
|
)
|
||||||
|
|
||||||
|
;; NumRow layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
s0 S-0
|
||||||
|
s1 S-1
|
||||||
|
s2 S-2
|
||||||
|
s3 S-3
|
||||||
|
s4 S-4
|
||||||
|
s5 S-5
|
||||||
|
s6 S-6
|
||||||
|
s7 S-7
|
||||||
|
s8 S-8
|
||||||
|
s9 S-9
|
||||||
|
nbs spc ;; no narrow no-break space in Qwerty
|
||||||
|
|
||||||
|
dk1 XX
|
||||||
|
dk2 XX
|
||||||
|
dk3 XX
|
||||||
|
dk4 XX
|
||||||
|
dk5 XX
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,88 @@
|
||||||
|
;; Qwerty/Colemak Windows/Linux aliases
|
||||||
|
;; Works with QWERTY-US, Colemak and others.
|
||||||
|
|
||||||
|
;; Navigation layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
all C-a
|
||||||
|
sav C-s
|
||||||
|
cls C-w
|
||||||
|
ndo C-z
|
||||||
|
cut C-x
|
||||||
|
cpy C-c
|
||||||
|
pst C-v
|
||||||
|
|
||||||
|
0 0
|
||||||
|
1 1
|
||||||
|
2 2
|
||||||
|
3 3
|
||||||
|
4 4
|
||||||
|
5 5
|
||||||
|
6 6
|
||||||
|
7 7
|
||||||
|
8 8
|
||||||
|
9 9
|
||||||
|
, ,
|
||||||
|
. .
|
||||||
|
)
|
||||||
|
|
||||||
|
;; Symbols layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
^ S-6
|
||||||
|
< S-,
|
||||||
|
> S-.
|
||||||
|
$ S-4
|
||||||
|
% S-5
|
||||||
|
@ S-2
|
||||||
|
& S-7
|
||||||
|
* S-8
|
||||||
|
' '
|
||||||
|
` `
|
||||||
|
|
||||||
|
{ S-[
|
||||||
|
pl S-9
|
||||||
|
pr S-0
|
||||||
|
} S-]
|
||||||
|
= =
|
||||||
|
\ \
|
||||||
|
+ S-=
|
||||||
|
- -
|
||||||
|
/ /
|
||||||
|
'' S-'
|
||||||
|
|
||||||
|
~ S-`
|
||||||
|
[ [
|
||||||
|
] ]
|
||||||
|
_ S--
|
||||||
|
# S-3
|
||||||
|
| S-\
|
||||||
|
! S-1
|
||||||
|
; ;
|
||||||
|
: S-;
|
||||||
|
? S-/
|
||||||
|
)
|
||||||
|
|
||||||
|
;; NumRow layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
s0 S-0
|
||||||
|
s1 S-1
|
||||||
|
s2 S-2
|
||||||
|
s3 S-3
|
||||||
|
s4 S-4
|
||||||
|
s5 S-5
|
||||||
|
s6 S-6
|
||||||
|
s7 S-7
|
||||||
|
s8 S-8
|
||||||
|
s9 S-9
|
||||||
|
nbs spc ;; no narrow no-break space in Qwerty
|
||||||
|
|
||||||
|
dk1 XX
|
||||||
|
dk2 XX
|
||||||
|
dk3 XX
|
||||||
|
dk4 XX
|
||||||
|
dk5 XX
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,88 @@
|
||||||
|
;; Qwertz Windows/Linux aliases
|
||||||
|
;; Works with QWERTZ-de. Needs a couple tweaks for other QWERTZ variants.
|
||||||
|
|
||||||
|
;; Navigation layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
all C-a
|
||||||
|
sav C-s
|
||||||
|
cls C-w
|
||||||
|
ndo C-y
|
||||||
|
cut C-x
|
||||||
|
cpy C-c
|
||||||
|
pst C-v
|
||||||
|
|
||||||
|
0 0
|
||||||
|
1 1
|
||||||
|
2 2
|
||||||
|
3 3
|
||||||
|
4 4
|
||||||
|
5 5
|
||||||
|
6 6
|
||||||
|
7 7
|
||||||
|
8 8
|
||||||
|
9 9
|
||||||
|
, ,
|
||||||
|
. .
|
||||||
|
)
|
||||||
|
|
||||||
|
;; Symbols layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
^ (macro grv spc)
|
||||||
|
< <
|
||||||
|
> S-<
|
||||||
|
$ S-4
|
||||||
|
% S-5
|
||||||
|
@ AG-q
|
||||||
|
& S-6
|
||||||
|
* S-]
|
||||||
|
' S-\
|
||||||
|
` (macro S-= spc)
|
||||||
|
|
||||||
|
{ AG-7
|
||||||
|
pl S-8
|
||||||
|
pr S-9
|
||||||
|
} AG-0
|
||||||
|
= S-0
|
||||||
|
\ AG--
|
||||||
|
+ ]
|
||||||
|
- /
|
||||||
|
/ S-7
|
||||||
|
'' S-2
|
||||||
|
|
||||||
|
~ AG-]
|
||||||
|
[ AG-8
|
||||||
|
] AG-9
|
||||||
|
_ S-/
|
||||||
|
# \
|
||||||
|
| AG-<
|
||||||
|
! S-1
|
||||||
|
; S-,
|
||||||
|
: S-.
|
||||||
|
? S--
|
||||||
|
)
|
||||||
|
|
||||||
|
;; NumRow layer
|
||||||
|
(defalias
|
||||||
|
|
||||||
|
s0 S-0
|
||||||
|
s1 S-1
|
||||||
|
s2 S-2
|
||||||
|
s3 S-3
|
||||||
|
s4 S-4
|
||||||
|
s5 S-5
|
||||||
|
s6 S-6
|
||||||
|
s7 S-7
|
||||||
|
s8 S-8
|
||||||
|
s9 S-9
|
||||||
|
nbs spc ;; no narrow no-break space in Qwerty
|
||||||
|
|
||||||
|
dk1 XX
|
||||||
|
dk2 XX
|
||||||
|
dk3 XX
|
||||||
|
dk4 XX
|
||||||
|
dk5 XX
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
;; Base layer: standard keyboard behavior
|
||||||
|
|
||||||
|
(deflayer base
|
||||||
|
_ _ _ _ _ _ _ _ _ _ _
|
||||||
|
q w e r t y u i o p
|
||||||
|
a s d f g h j k l ;
|
||||||
|
z x c v b < n m , . /
|
||||||
|
_ _ _
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
;; Base layer: the 3 main thumb keys become mod/taps
|
||||||
|
|
||||||
|
(deflayer base
|
||||||
|
_ _ _ _ _ _ _ _ _ _ _
|
||||||
|
q w e r t y u i o p
|
||||||
|
a s d f g h j k l ;
|
||||||
|
z x c v b < n m , . /
|
||||||
|
@alt @nav @sym
|
||||||
|
)
|
||||||
|
|
||||||
|
;; Timing variables are defined in `kanata.kbd` file.
|
||||||
|
|
||||||
|
(defalias
|
||||||
|
;; Main mod-tap: Nav layer when held, Space when tapped.
|
||||||
|
nav (tap-hold $tap_timeout $long_hold_timeout spc (layer-while-held navigation))
|
||||||
|
|
||||||
|
;; Space-cadet thumb keys: Alt/BackSpace, AltGr/Enter.
|
||||||
|
;; Acts as a modifier by default, or as BackSpace/Enter when tapped separately.
|
||||||
|
alt (tap-hold-press $tap_timeout $hold_timeout bspc _)
|
||||||
|
sym (tap-hold-press $tap_timeout $hold_timeout ret (layer-while-held symbols))
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
;; Base layer: layer-taps under the thumbs + home-row mods on SDF and JKL
|
||||||
|
|
||||||
|
(deflayer base
|
||||||
|
_ _ _ _ _ _ _ _ _ _ _
|
||||||
|
q w e r t y u i o p
|
||||||
|
a @ss @dd @ff g h @jj @kk @ll ;
|
||||||
|
z x c v b < n m , . /
|
||||||
|
@sft @nav @sym
|
||||||
|
)
|
||||||
|
|
||||||
|
;; Timing variables are defined in `kanata.kbd` file.
|
||||||
|
|
||||||
|
(defalias
|
||||||
|
;; Main mod-tap: Nav layer when held, Space when tapped.
|
||||||
|
nav (tap-hold $tap_timeout $long_hold_timeout spc (layer-while-held navigation))
|
||||||
|
|
||||||
|
;; Space-cadet thumb keys: Shift/BackSpace, AltGr/Enter.
|
||||||
|
;; Acts as a modifier by default, or as BackSpace/Enter when tapped separately.
|
||||||
|
sft (tap-hold-press $tap_timeout $hold_timeout bspc lsft)
|
||||||
|
sym (tap-hold-press $tap_timeout $hold_timeout ret (layer-while-held symbols))
|
||||||
|
|
||||||
|
;; Home-row mods
|
||||||
|
ss (tap-hold $tap_timeout $long_hold_timeout s lmet)
|
||||||
|
dd (tap-hold $tap_timeout $long_hold_timeout d lctl)
|
||||||
|
ff (tap-hold $tap_timeout $long_hold_timeout f lalt)
|
||||||
|
jj (tap-hold $tap_timeout $long_hold_timeout j lalt)
|
||||||
|
kk (tap-hold $tap_timeout $long_hold_timeout k rctl)
|
||||||
|
ll (tap-hold $tap_timeout $long_hold_timeout l rmet)
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
;; Num-Navigation layer:
|
||||||
|
;; - should inherit from NumPad
|
||||||
|
;; - left: one-handed shortcuts (Cmd/Ctrl-AZXCV) + Tab/S-Tab
|
||||||
|
;; - top: Super-num (i3/sway) or Alt-num (browser)
|
||||||
|
|
||||||
|
;; The `lrld` action stands for "live reload". This will re-parse everything
|
||||||
|
;; except for linux-dev, i.e. you cannot live reload and switch keyboard devices.
|
||||||
|
|
||||||
|
(deflayer navigation
|
||||||
|
M-1 M-2 M-3 M-4 M-5 lrld M-6 M-7 M-8 M-9 M-0
|
||||||
|
tab home up end pgup @/ @7 @8 @9 @run
|
||||||
|
@all lft down rght pgdn @- @4 @5 @6 @0
|
||||||
|
@ndo @cut @cpy @pst S-tab _ @, @1 @2 @3 @.
|
||||||
|
del _ esc
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
;; Vim-Navigation layer:
|
||||||
|
;; - right: Vim-like arrows on HJKL, home/end page up/down, mouse scroll
|
||||||
|
;; - left: one-hand shortcuts (Cmd/Ctrl-WASZXCV), Tab/Shift-Tab, prev/next
|
||||||
|
;; - top: Super-num (i3/sway) or Alt-num (browser), zoom in/out
|
||||||
|
|
||||||
|
;; The `lrld` action stands for "live reload". This will re-parse everything
|
||||||
|
;; except for linux-dev, i.e. you cannot live reload and switch keyboard devices.
|
||||||
|
|
||||||
|
(deflayer navigation
|
||||||
|
M-1 M-2 M-3 M-4 M-5 lrld M-6 M-7 M-8 M-9 M-0
|
||||||
|
@pad @cls bck fwd XX home pgdn pgup end @run
|
||||||
|
@all @sav S-tab tab XX lft down up rght @fun
|
||||||
|
@ndo @cut @cpy @pst XX _ @mwl @mwd @mwu @mwr XX
|
||||||
|
del _ esc
|
||||||
|
)
|
||||||
|
|
||||||
|
;; NumPad
|
||||||
|
(deflayer numpad
|
||||||
|
_ _ _ _ _ _ _ _ _ _ _
|
||||||
|
XX home up end pgup @/ @7 @8 @9 XX
|
||||||
|
XX lft down rght pgdn @- @4 @5 @6 @0
|
||||||
|
XX XX XX XX XX _ @, @1 @2 @3 @.
|
||||||
|
@std @nbs @std
|
||||||
|
)
|
||||||
|
|
||||||
|
;; function keys
|
||||||
|
(deflayer funpad
|
||||||
|
XX XX XX XX XX XX XX XX XX XX XX
|
||||||
|
f1 f2 f3 f4 XX XX XX XX XX XX
|
||||||
|
f5 f6 f7 f8 XX XX lalt lctl lmet _
|
||||||
|
f9 f10 f11 f12 XX XX XX XX XX XX XX
|
||||||
|
_ _ _
|
||||||
|
)
|
||||||
|
|
||||||
|
(defalias
|
||||||
|
std (layer-switch base)
|
||||||
|
pad (layer-switch numpad)
|
||||||
|
|
||||||
|
fun (layer-while-held funpad)
|
||||||
|
|
||||||
|
;; Mouse wheel emulation
|
||||||
|
mwu (mwheel-up 50 120)
|
||||||
|
mwd (mwheel-down 50 120)
|
||||||
|
mwl (mwheel-left 50 120)
|
||||||
|
mwr (mwheel-right 50 120)
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
;; Symbol layer: Lafayette/Ergo‑L AltGr programmation layer for the masses!
|
||||||
|
|
||||||
|
(deflayer symbols
|
||||||
|
AG-1 AG-2 AG-3 AG-4 AG-5 XX AG-6 AG-7 AG-8 AG-9 AG-0
|
||||||
|
@^ @< @> @$ @% @@ @& @* @' @`
|
||||||
|
@{ @pl @pr @} @= @\ @+ @- @/ @''
|
||||||
|
@~ @[ @] @_ @# XX @| @! @; @: @?
|
||||||
|
_ spc _
|
||||||
|
)
|
||||||
|
|
||||||
|
;; Note: this requires kanata 0.5+ to work properly.
|
||||||
|
;; kanata 0.4 does not release Shift soon enough for this layer to work.
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
;; Symbol layer: Lafayette/Ergo‑L AltGr programmation layer
|
||||||
|
;; but enables a NumRow.
|
||||||
|
|
||||||
|
(deflayer symbols
|
||||||
|
AG-1 AG-2 AG-3 AG-4 AG-5 XX AG-6 AG-7 AG-8 AG-9 AG-0
|
||||||
|
@^ @< @> @$ @% @@ @& @* @' @`
|
||||||
|
@{ @pl @pr @} @= @\ @+ @- @/ @''
|
||||||
|
@~ @[ @] @_ @# XX @| @! @; @: @?
|
||||||
|
@num spc _
|
||||||
|
)
|
||||||
|
|
||||||
|
;; Numrow layer
|
||||||
|
|
||||||
|
(deflayer numrow
|
||||||
|
_ _ _ _ _ _ _ _ _ _ _
|
||||||
|
@s1 @s2 @s3 @s4 @s5 @s6 @s7 @s8 @s9 @s0
|
||||||
|
@1 @2 @3 @4 @5 @6 @7 @8 @9 @0
|
||||||
|
@dk1 @dk2 @dk3 @dk4 @dk5 _ XX @- @, @. @/
|
||||||
|
_ @nbs @sym
|
||||||
|
)
|
||||||
|
|
||||||
|
(defalias
|
||||||
|
num (layer-toggle numrow)
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
;; Symbol layer: same as AltGr.
|
||||||
|
;; Concretely this does nothing, just let AltGr as-is for keyboard layouts
|
||||||
|
;; depending heavily on AltGr, like Bépo or simply Lafayette layouts like
|
||||||
|
;; Ergo‑L, which already have that layer baked in.
|
||||||
|
|
||||||
|
(deflayer symbols
|
||||||
|
AG-1 AG-2 AG-3 AG-4 AG-5 XX AG-6 AG-7 AG-8 AG-9 AG-0
|
||||||
|
AG-q AG-w AG-e AG-r AG-t AG-y AG-u AG-i AG-o AG-p
|
||||||
|
AG-a AG-s AG-d AG-f AG-g AG-h AG-j AG-k AG-l AG-;
|
||||||
|
AG-z AG-x AG-c AG-v AG-b AG-< AG-n AG-m AG-, AG-. AG-/
|
||||||
|
_ AG-spc _
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
;; Symbol layer: same as AltGr but enables a NumRow.
|
||||||
|
;; Concretely this does nothing, just let AltGr as-is for keyboard layouts
|
||||||
|
;; depending heavily on AltGr, like Bépo or simply Lafayette layouts like
|
||||||
|
;; Ergo‑L, which already have that layer baked in.
|
||||||
|
;; Except it adds an NumRow layer.
|
||||||
|
|
||||||
|
(deflayer symbols
|
||||||
|
AG-1 AG-2 AG-3 AG-4 AG-5 XX AG-6 AG-7 AG-8 AG-9 AG-0
|
||||||
|
AG-q AG-w AG-e AG-r AG-t AG-y AG-u AG-i AG-o AG-p
|
||||||
|
AG-a AG-s AG-d AG-f AG-g AG-h AG-j AG-k AG-l AG-;
|
||||||
|
AG-z AG-x AG-c AG-v AG-b AG-< AG-n AG-m AG-, AG-. AG-/
|
||||||
|
@num AG-spc _
|
||||||
|
)
|
||||||
|
|
||||||
|
;; Numrow layer
|
||||||
|
|
||||||
|
(deflayer numrow
|
||||||
|
_ _ _ _ _ _ _ _ _ _ _
|
||||||
|
@s1 @s2 @s3 @s4 @s5 @s6 @s7 @s8 @s9 @s0
|
||||||
|
@1 @2 @3 @4 @5 @6 @7 @8 @9 @0
|
||||||
|
@dk1 @dk2 @dk3 @dk4 @dk5 _ XX @- @, @. @/
|
||||||
|
_ @nbs @sym
|
||||||
|
)
|
||||||
|
|
||||||
|
(defalias
|
||||||
|
num (layer-toggle numrow)
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
;; `defsrc` defines the keys that will be intercepted by kanata.
|
||||||
|
|
||||||
|
(defsrc
|
||||||
|
1 2 3 4 5 bspc 6 7 8 9 0
|
||||||
|
q w e r t y u i o p
|
||||||
|
a s d f g h j k l ;
|
||||||
|
z x c v b < n m , . /
|
||||||
|
lmet spc rmet
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
;; angle-mod: the ISO key (a.k.a. LSGT or 102 key) becomes Z
|
||||||
|
|
||||||
|
(defsrc
|
||||||
|
1 2 3 4 5 bspc 6 7 8 9 0
|
||||||
|
q w e r t y u i o p
|
||||||
|
a s d f g h j k l ;
|
||||||
|
< z x c v b n m , . /
|
||||||
|
lmet spc rmet
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
;; ansi-angle-mod: left shift becomes Z
|
||||||
|
|
||||||
|
(defsrc
|
||||||
|
1 2 3 4 5 bspc 6 7 8 9 0
|
||||||
|
q w e r t y u i o p
|
||||||
|
a s d f g h j k l ;
|
||||||
|
lsft z x c v b n m , . /
|
||||||
|
lmet spc rmet
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
;; wide-angle-mod:
|
||||||
|
;; - left shift becomes Z
|
||||||
|
;; - the right hand is moved one key to the right
|
||||||
|
|
||||||
|
|
||||||
|
(defsrc
|
||||||
|
1 2 3 4 5 bspc 7 8 9 0 -
|
||||||
|
q w e r t u i o p [
|
||||||
|
a s d f g j k l ; '
|
||||||
|
lsft z x c v b m , . / rsft
|
||||||
|
lmet spc rmet
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
;; wide-angle-mod:
|
||||||
|
;; - the ISO key (a.k.a. LSGT or 102 key) becomes Z
|
||||||
|
;; - the right hand is moved one key to the right
|
||||||
|
|
||||||
|
|
||||||
|
(defsrc
|
||||||
|
1 2 3 4 5 bspc 7 8 9 0 -
|
||||||
|
q w e r t u i o p [
|
||||||
|
a s d f g j k l ; '
|
||||||
|
< z x c v b m , . / rsft
|
||||||
|
lmet spc rmet
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
;; `defsrc` defines the keys that will be intercepted by kanata.
|
||||||
|
|
||||||
|
(defsrc
|
||||||
|
1 2 3 4 5 bspc 6 7 8 9 0
|
||||||
|
q w e r t y u i o p
|
||||||
|
a s d f g h j k l ;
|
||||||
|
z x c v b < n m , . /
|
||||||
|
lalt spc ralt
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
;; angle-mod: the ISO key (a.k.a. LSGT or 102 key) becomes Z
|
||||||
|
|
||||||
|
(defsrc
|
||||||
|
1 2 3 4 5 bspc 6 7 8 9 0
|
||||||
|
q w e r t y u i o p
|
||||||
|
a s d f g h j k l ;
|
||||||
|
< z x c v b n m , . /
|
||||||
|
lalt spc ralt
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
;; ansi-angle-mod: left shift becomes Z
|
||||||
|
|
||||||
|
(defsrc
|
||||||
|
1 2 3 4 5 bspc 6 7 8 9 0
|
||||||
|
q w e r t y u i o p
|
||||||
|
a s d f g h j k l ;
|
||||||
|
lsft z x c v b n m , . /
|
||||||
|
lalt spc ralt
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
;; wide-angle-mod:
|
||||||
|
;; - left shift becomes Z
|
||||||
|
;; - the right hand is moved one key to the right
|
||||||
|
|
||||||
|
(defsrc
|
||||||
|
1 2 3 4 5 bspc 7 8 9 0 -
|
||||||
|
q w e r t u i o p [
|
||||||
|
a s d f g j k l ; '
|
||||||
|
lsft z x c v b m , . / rsft
|
||||||
|
lalt spc ralt
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
;; wide-angle-mod:
|
||||||
|
;; - the ISO key (a.k.a. LSGT or 102 key) becomes Z
|
||||||
|
;; - the right hand is moved one key to the right
|
||||||
|
|
||||||
|
(defsrc
|
||||||
|
1 2 3 4 5 bspc 7 8 9 0 -
|
||||||
|
q w e r t u i o p [
|
||||||
|
a s d f g j k l ; '
|
||||||
|
< z x c v b m , . / rsft
|
||||||
|
lalt spc ralt
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
|
|
@ -0,0 +1,94 @@
|
||||||
|
;;==========================================================================;;
|
||||||
|
;; ;;
|
||||||
|
;; With Arsenik, choose the features you want for your keyboard: ;;
|
||||||
|
;; angle mods, Vim-like navigation layer, Mac/Azerty/Qwertz support, etc. ;;
|
||||||
|
;; ;;
|
||||||
|
;;==========================================================================;;
|
||||||
|
|
||||||
|
;; Every section is mandatory and should enable one and only one `include`
|
||||||
|
;; - enable each feature by un-commenting the related line.
|
||||||
|
;; - a commented line starts with ;;
|
||||||
|
|
||||||
|
;; Live-reload the configuration with Space+Backspace (requires layer-taps).
|
||||||
|
|
||||||
|
;; Timing variables for tap-hold effects.
|
||||||
|
(defvar
|
||||||
|
;; The key must be pressed twice in 200ms to enable repetitions.
|
||||||
|
tap_timeout 200
|
||||||
|
;; The key must be held 200ms to become a layer shift.
|
||||||
|
hold_timeout 200
|
||||||
|
;; Slightly higher value for typing keys, to prevent unexpected hold effect.
|
||||||
|
long_hold_timeout 300
|
||||||
|
)
|
||||||
|
|
||||||
|
;;-----------------------------------------------------------------------------
|
||||||
|
;; Original key arrangement on your keyboard: Mac or PC.
|
||||||
|
;; Choose here if you want to add an angle mod: ZXCVB are shifted to the left.
|
||||||
|
;; See https://colemakmods.github.io/ergonomic-mods/angle.html for more details.
|
||||||
|
|
||||||
|
(include defsrc/pc.kbd) ;; PC, standard finger assignment
|
||||||
|
;; (include defsrc/mac.kbd) ;; Mac, standard finger assignment
|
||||||
|
(include defsrc/pc_anglemod.kbd) ;; PC, ZXCVB are shifted to the left
|
||||||
|
;; (include defsrc/mac_anglemod.kbd) ;; Mac, ZXCVB are shifted to the left
|
||||||
|
;; (include defsrc/pc_wide_anglemod.kbd) ;; PC, angle-mod + right hand shifted by one key
|
||||||
|
;; (include defsrc/mac_wide_anglemod.kbd) ;; Mac, angle-mod + right hand shifted by one key
|
||||||
|
|
||||||
|
|
||||||
|
;;-----------------------------------------------------------------------------
|
||||||
|
;; `Base` layer: standard or dual keys? (layer-taps, homerow mods?)
|
||||||
|
;; If you just want angle mod, you still have to enable the standard base.
|
||||||
|
|
||||||
|
(include deflayer/base.kbd) ;; standard keyboard behavior
|
||||||
|
;; (include deflayer/base_lt.kbd) ;; layer-taps on both thumb keys
|
||||||
|
;; (include deflayer/base_lt_hrm.kbd) ;; layer-taps + home-row mods
|
||||||
|
|
||||||
|
;; Note: not enabling layer-taps here makes the rest of the file useless.
|
||||||
|
|
||||||
|
|
||||||
|
;;-----------------------------------------------------------------------------
|
||||||
|
;; `Symbols` layer
|
||||||
|
|
||||||
|
(include deflayer/symbols_noop.kbd) ;; AltGr stays as-is
|
||||||
|
;; (include deflayer/symbols_lafayette.kbd) ;; AltGr programmation layer like Ergo‑L
|
||||||
|
;; (include deflayer/symbols_noop_num.kbd) ;; AltGr stays as-is + NumRow layers
|
||||||
|
;; (include deflayer/symbols_lafayette_num.kbd) ;; AltGr prog layer + NumRow layers
|
||||||
|
|
||||||
|
|
||||||
|
;;-----------------------------------------------------------------------------
|
||||||
|
;; `Navigation` layer: ESDF or HJKL?
|
||||||
|
|
||||||
|
(include deflayer/navigation.kbd) ;; ESDF on the left, NumPad on the right
|
||||||
|
;; (include deflayer/navigation_vim.kbd) ;; HJKL + NumPad on [Space]+[Q]
|
||||||
|
|
||||||
|
;; Replace XX by the keyboard shortcut of your application launcher, if any.
|
||||||
|
;; Mapped on [Space]+[P] in both navigation layers.
|
||||||
|
|
||||||
|
;; (defalias run M-p) ;; [Command]-[P]
|
||||||
|
(defalias run XX) ;; do nothing
|
||||||
|
|
||||||
|
|
||||||
|
;;-----------------------------------------------------------------------------
|
||||||
|
;; Aliases for `Symbols` and `Navigation` layers
|
||||||
|
;; Depends on PC/Mac and keyboard layout
|
||||||
|
|
||||||
|
(include defalias/ergol_pc.kbd) ;; Ergo‑L PC
|
||||||
|
;; (include defalias/qwerty-lafayette_pc.kbd) ;; Qwerty‑Lafayette PC
|
||||||
|
;; (include defalias/qwerty_pc.kbd) ;; Qwerty / Colemak PC
|
||||||
|
;; (include defalias/qwerty_mac.kbd) ;; Qwerty / Colemak Mac
|
||||||
|
;; (include defalias/azerty_pc.kbd) ;; Azerty PC
|
||||||
|
;; (include defalias/qwertz_pc.kbd) ;; Qwertz PC
|
||||||
|
;; (include defalias/bepo_pc.kbd) ;; Bépo PC
|
||||||
|
;; (include defalias/optimot_pc.kbd) ;; Optimot PC
|
||||||
|
|
||||||
|
;;-----------------------------------------------------------------------------
|
||||||
|
;; Extra configuration
|
||||||
|
;; You should not modify this, only if you need to.
|
||||||
|
|
||||||
|
(defcfg
|
||||||
|
;; Enabled makes kanata process keys that are not defined in defsrc
|
||||||
|
;; Fixes altgr for Windows (see Arsenik issue #22)
|
||||||
|
process-unmapped-keys yes
|
||||||
|
windows-altgr cancel-lctl-press
|
||||||
|
)
|
||||||
|
|
||||||
|
;; vim: set ft=lisp:
|
||||||
Loading…
Reference in New Issue