All notable changes to this project will be documented in this file. This change log follows the conventions of keepachangelog.com
[Unreleased Commits]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.7.2..HEAD
- keys_info: support AL and AC keycodes Karabiner does #256
- keys_info: fastforward->fast_forward
- BREAKING `software_function` support, [karabiner doc](https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/to/software_function/)
- homebrew goku now supports arm devices
- BREAKING remove deps on
watchexec
(gokuw still usewatchexec
) - BREAKING use $SHELL -i -c to run joker
- fix brew service
[commits in 0.6.0]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.5.6…v0.6.0
~goku –where-is-my-config- shows detected config path
- fix #181
[commits in 0.5.6]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.5.5…v0.5.6
- fix #164
[commits in 0.5.5]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.5.4…v0.5.5
- use
/bin/zsh
instead of/bin/sh
in launch agent https://github.com/yqrashawn/homebrew-goku/blob/9a4f6cd23f51535e046a33fe260876630fc20292/Formula/goku.rb#L28 - fix joker PATH
- run through clj-kondo
[commits in 0.5.4]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.5.3…v0.5.4
- Use graalvm-22.1.0+java17 and clojure 1.11.1. This enables user to build arm binary on their own (#172)
[commits in 0.5.3]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.5.2…v0.5.3
- add consumer key `:dictation`
[commits in 0.5.2]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.5.1…v0.5.2
- goku –version
[commits in 0.5.1]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.5.0…v0.5.1
- support
:modi
in:simlayers
check last example of this section for using modifiers in simlayers
[commits in 0.5.0]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.4.1…v0.5.0
- use
$HOME/.nix-profile/bin/joker
if it exits
[commits in 0.4.1]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.4.0…v0.4.1
- support new
set_notification_message
feature documentation at https://github.com/yqrashawn/GokuRakuJoudo/blob/master/examples.org#command-q-twice-to-quit-application
[commits in 0.4.0]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.3.11…v0.4.0
- support raw
:select_input_source
in:tos
[commits in 0.3.11]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.3.10…v0.3.11
- support simultaneous pointing_button
{:des "sim pkey in from"
:rules [[[{:pkey :button5} {:pkey :button2}] {:pkey :button1}]]}
[commits in 0.3.10]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.3.9…v0.3.10
- add `-V` or `–version`
[commits in 0.3.9]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.3.8…v0.3.9
- use github action to release
[commits in 0.3.8]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.3.7…v0.3.8
- use homebrew formula api to get the right path in brew service plist file
- fix goku path in gokuw script
- fix goku log command
[commits in 0.3.7]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.3.6…v0.3.7
- support homebrew
/opt/homebrew/opt
on arm machine
[commits in 0.3.6]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.3.5…v0.3.6
- upgrade clojure and graalvm version
[commits in 0.3.5]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.3.4…v0.3.5
:applications
now supportsfile_paths
karabiner-elements documentation about file_paths
{...
:applications
{:Chromes ["^org\\.chromium\\.Chromium$" "^com\\.google\\.Chrome\\.canary$" :paths "^/Applications/Google Chrome\\.app"]
;; same as
:Chromes [:identifiers "^org\\.chromium\\.Chromium$" "^com\\.google\\.Chrome\\.canary$" :paths "^/Applications/Google Chrome\\.app"]
;; can specify multiple :paths or :identifiers (can omit keyword :identifiers)
:Chromes [:identifiers "^org\\.chromium\\.Chromium$" "^com\\.google\\.Chrome\\.canary$"
:paths "^/Applications/Google Chrome\\.app" "^/Applications/Google Chrome Canary\\.app"]
;; paths only (can't omit keyword :paths)
:Chromes [:paths "^/Applications/.*Chrom.*"]}}
[commits in 0.3.4]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.3.3…0.3.4
simlayer
generate simultaneous keys in to
section with the set_variable
one first. Resolve #91.
[commits in 0.3.3]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.3.2…v0.3.3
- support specify
command
rather thanleft_command
orshift
rather thanleft_shift
or … in!CTOS
format!
to[:left_command :left_control :left_option :left_shift]
!A
to[:command :control :option :shift]
C
to:left_command
Q
to:right_command
CC
to:command
T
to:left_control
W
to:right_control
TT
to:control
O
to:left_option
E
to:right_option
OO
to:option
S
to:left_shift
R
to:right_shift
SS
to:shift
[commits in 0.3.2]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.3.1…v0.3.2
- insert simlayer :set-variable after user defined actions, resolve #60
[commits in 0.3.1]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.3.0…v0.3.1
- Condi and parameter settings won’t go into both generated simlayer rules #30
- More than 2 keys in simultaneous keys #52
- Throw error when there’s missing
:des
key #56
[commits in 0.3.0]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.2.9…v0.3.0
gokuw
GOKU_EDN_CONFIG_FILE
env support, issue 48- no need to have the ending
/
in env variableXDG_CONFIG_HOME
, PR 49
[commits in 0.2.9]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.2.8…v0.2.9
- support mouse button up to
:button32
[commits in 0.2.8]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.2.7…v0.2.8
- support parsing raw karabiner rules (support
mouse_motion_to_scroll
), check the examples
[commits in 0.2.7]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.2.5…0.2.7
goku -d
orgoku --dry-run
for testing configs.goku -c
orgoku --config
for testing files in other place.
- rewrite some functions the clojure way.
[commits in 0.2.5]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.2.2…v0.2.5
- user can now specify
.edn
config file path with env variableGOKU_EDN_CONFIG_FILE
.
[commits in 0.2.2]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.2.1…v0.2.2
- support optional arguments in tempaltes, user can now omit arguments from the tail
[commits in 0.2.1]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.2.0…v0.2.1
- multiple profile support
- QWER as right command control option shift
- some macos functionaly keys are set as consumer key, make them can be used in to defination.
[commits in 0.2.0]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.1.16…v0.2.0
- user can now specify not already defined conditions using keyword
[commits in 0.1.16]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.1.15…v0.1.16
- can’t read already defined :layers in :layers pre-defination
[commits in 0.1.15]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.1.14…v0.1.15
- add :sim in <other options> :params, params spec
- error when running with brew service caused by new version of joker (v0.10.2)
[commits in 0.1.14]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.1.13…v0.1.14
- add command to open log file
- use joker to check edn file syntax, (add joker as dependency via homebrew)
[commits in 0.1.13]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.1.12…v0.1.13
- error message when goku can’t find the “Goku” profile
- now we support
{:held <to defination>}
{:dealyed {:invoked <to defination>} {:dealyed <to defination>}}
in simlayer keys (not simlayer defination) #15
[commits in 0.1.12]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.1.11…v0.1.12
- error while parsing
{:any :key_code}
as <from> section in rule - more friendly error message, simply removed the stacktrace of the AssertionError
[commits in 0.1.11]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.1.10…v0.1.11
- documentation typo, make readme more clear
- now user can override
to_if_alone
when defining:layers
[commits in 0.1.10]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.1.9…v0.1.10
- different input source definition
now predefined input sources is :input-sources
instead of :input_sources
- fix homebrew service log file premission
now the brew service log file located at ~~/Library/Logs/goku.log~, contains both stderr and stdout.
[commits in 0.1.9]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.1.8…v0.1.9
- old
:layers
predefinition
;; before this feature
;; can only define "old" layers like this
{:main [{:des "w layer"
:rules [[:w ["wlayer" 1] nil {:alone :w :afterup ["wlayer" 0]}]
[:e "open -a Emacs.app" :wlayer]
[:s "open -a Safari.app" :wlayer]]}]}
;; now we can do it with predefined layer
{:layers {:wlayer {:key :w}}
:main [{:des "w layer"
:rules [[:e "open -a Emacs.app" :wlayer]
[:s "open -a Safari.app" :wlayer]]}]}
- group rules by conditions
;; before this feature
;; we have to declare conditions in each rule, like this
{:layers {:wlayer {:key :w}
:xlayer {:key :x}}
:main [{:des "example layer"
:rules [[:e "open -a Emacs.app" :wlayer]
[:s "open -a Safari.app" :wlayer]
[:i "open -a iTunes.app" :xlayer]]}]}
;; now we can group rules with conditions
{:applications {:chromes ["^com\\.google\\.Chrome$"
"^org\\.chromium\\.Chromium$"
"^com\\.google\\.Chrome\\.canary$"]}
:layers {:wlayer {:key :w}
:xlayer {:key :x}}
:main [{:des "example layer"
:rules [:wlayer
[:e "open -a Emacs.app"]
[:s "open -a Safari.app"]
:xlayer
[:i "open -a iTunes.app"]
;; support multiple conditions
;; use vector start with :condi for multiple conditions
[:condi :xlayer :chromes]
[:i "open -a iTunes.app"]
;; you can still spercify conditions as the third element of the rule vector
;; it will be combined with the group condition
;; below rule is same as above one
:xlayer
[:i "open -a iTunes.app" :chromes]]}]}
[commits in 0.1.8]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.1.7…v0.1.8
- use keyword defined in :input-sources to as <to> key
[commits in 0.1.7]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.1.6…v0.1.7
- karabiner.json broken when can’t find karabiner.edn
- can install through brew now,
brew install yqrashawn/goku/goku
gokuw
as watch script,brew services start goku
as service
[commits in 0.1.6]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.1.3…v0.1.6
- seems the previous release version is not usable, the $HOME variable is always Users.travis, fixed that.
[commits in 0.1.3]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.1.2…v0.1.3
- typo in rules, seems I spell all “cancel” wrong.
[commits in 0.1.2]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.1.1…v0.1.2
- to key check while parsing key code
:mission_control
to normal key
- karabiner error while using
:mission_control
- multiple devices condition bug
[commits in 0.1.1]: https://github.com/yqrashawn/GokuRakuJoudo/compare/v0.1.0…v0.1.1
- First release