@@ -19,7 +19,7 @@ delivering near-native IME switching speed.
1919</p >
2020
2121
22- ## Story
22+ ## 📖 Story
2323
2424I've used [ macism] ( https://github.com/laishulu/macism ) and [ im-select] ( https://github.com/daipeihust/im-select ) before.
2525But on my older Macs, these tools always required ` a short wait ` to switch IME modes. It was an unacceptable delay for daily use. (approximately 400ms)
@@ -31,7 +31,7 @@ This tool reduces the delay by about **95%** when running as a daemon or launchd
3131If you’re a Mac user frustrated by slow IME switching, give it a try.
3232
3333
34- ## Why it’s fast
34+ ## ⚡ Why it’s fast
3535
36361 . Sets and gets the IME in a single operation
37372 . Works as a daemon or launchd(brew service)
@@ -40,7 +40,7 @@ If you’re a Mac user frustrated by slow IME switching, give it a try.
40405 . Optimized code
4141
4242
43- ## Features
43+ ## ✨️ Features
4444
4545* Standalone (` macime ` ):
4646 * Get, Set, Save current, Load previous, List all IMEs
@@ -54,7 +54,7 @@ If you’re a Mac user frustrated by slow IME switching, give it a try.
5454 * Stable switching for CJK input methods (Experimental)
5555
5656
57- ## Breaking Changes
57+ ## ⚠️ Breaking Changes
5858
5959* [ v4.4.0] ( https://github.com/riodelphino/macime/releases/tag/v4.4.0 ) :
6060 * Add pre-compiled binaries (` macime ` , ` macimed ` ) - no ` xcode ` or build required.
@@ -71,21 +71,21 @@ If you’re a Mac user frustrated by slow IME switching, give it a try.
7171* [ v3.0.0] ( https://github.com/riodelphino/macime/releases/tag/v3.0.0 ) : Deprecate ` $MACIME_TEMP_DIR ` environmental value
7272
7373
74- ## Requirements
74+ ## 📦 Requirements
7575
7676* macOS (>=10.15)
7777* ` com.apple.keylayout.ABC ` is installed and enabled (macOS's default. Used in ` load ` sub-command)
7878
79- ## Install
79+ ## 🛠 Install
8080
81- ### Homebrew
81+ ### 🍺 Homebrew
8282
8383``` bash
8484brew tap riodelphino/tap
8585brew install macime
8686```
8787
88- ### Manual
88+ ### ⚙️ Manual
8989
9090Select specific version and CPU architecture from:
9191[ https://github.com/riodelphino/macime/releases ] ( https://github.com/riodelphino/macime/releases )
@@ -112,23 +112,23 @@ export MACIME_PATH="$HOME/bin/macime"
112112* Execute permission has already been granted.
113113
114114
115- ## Uninstall
115+ ## 🗑️ Uninstall
116116
117- ### Homebrew
117+ ### 🍺 Homebrew
118118
119119``` bash
120120brew uninstall macime
121121```
122122
123- ### Manual
123+ ### ⚙️ Manual
124124
125125- Remove installed binaries.
126126- Remove the ` MACIME_PATH ` environmental variable.
127127
128128
129- ## Upgrade
129+ ## ⬆️ Upgrade
130130
131- ### Homebrew
131+ ### 🍺 Homebrew
132132
133133``` bash
134134brew update
@@ -139,15 +139,15 @@ If launchd service is enabled, ensure to restart it:
139139brew services restart macime
140140```
141141
142- ### Manual
142+ ### ⚙️ Manual
143143
144144Just overwrite the binaries.
145145
146146
147147
148- ## Usage
148+ ## 📘 Usage
149149
150- ### macime
150+ ### ⚡ macime
151151
152152Show ` macime ` version:
153153``` bash
@@ -187,7 +187,7 @@ Save current IME.
187187Restore the previous IME.
188188
189189
190- #### Fallback behavior (im-select compatible)
190+ #### ⚙️ Fallback behavior (im-select compatible)
191191
192192` macime ` supports im-select–style shortcuts.
193193
@@ -199,7 +199,7 @@ macime
199199macime com.apple.keylayout.ABC
200200```
201201
202- #### Get current IME
202+ #### 🔎 Get current IME
203203``` bash
204204# Get current IME ID
205205macime get
@@ -220,7 +220,7 @@ macime get --detail
220220# }
221221```
222222
223- #### Set IME
223+ #### 🎯 Set IME
224224``` bash
225225# Set IME
226226macime set com.apple.keylayout.ABC
@@ -242,7 +242,7 @@ macime set com.apple.keylayout.ABC --save --session-id nvim-1001
242242
243243
244244
245- #### Save IME
245+ #### 💾 Save IME
246246``` bash
247247# Save current IME to `GLOBAL`
248248macime save
@@ -253,7 +253,7 @@ macime save --session-id nvim-1001
253253# Current IME ID is set to `/tmp/riodelphino.macime/prev/nvim-1001`
254254```
255255
256- #### Load IME
256+ #### ♻️ Load IME
257257``` bash
258258# Load IME from `GLOBAL`
259259macime load
@@ -267,7 +267,7 @@ macime load --session-id nvim-1001
267267` --cjk-refresh ` option is also available.
268268
269269
270- #### List IME
270+ #### 📋 List IME
271271``` bash
272272# Show IME ID list
273273macime list
@@ -281,7 +281,7 @@ macime list --select-capable
281281> [ !Note]
282282> ` --detail ` and ` --select-capable ` can be mixtured
283283
284- #### Options
284+ #### ⚙️ Options
285285
286286| Option | Available for | Description |
287287| ------------------------- | ------------- | ---------------------------------------------------------------------------------------- |
@@ -293,7 +293,7 @@ macime list --select-capable
293293| --cjk-delay <number > | set, load | Set CJK refreshing delay time as a number between 0 and 1 (Default: 0.05) (Experimental) |
294294| --debug | (all) | Show debug information |
295295
296- #### CJK refreshing
296+ #### ⚙️ CJK refreshing
297297
298298> [ !Warning]
299299> Experimental.
@@ -317,7 +317,7 @@ macime set com.sogou.inputmethod.sogou --cjk-refresh --cjk-delay 0.05
317317macime load --cjk-refresh --cjk-delay 0.05
318318```
319319
320- ### macimed
320+ ### ⚡ macimed
321321
322322` macimed ` is a daemon bundled with ` macime ` . It enables blazing faster IME switching.
323323It runs in the background and controls ` macime ` by receiving commands over a Unix domain socket.
@@ -348,7 +348,7 @@ macimed --log-level info # Use: debug|info|warn|error (Default: info)
348348macimed -l info
349349````
350350
351- # ### Send Commands
351+ # ### ⚙️ Send Commands
352352
353353` macimed` recieves commands via socket as plain text.
354354
@@ -391,7 +391,7 @@ require("macime").send("daemon get sock-path", function(ok, data) if ok then pri
391391require(" macime" ).send(" daemon set log-level debug" , function(ok, data) if ok then print(data) end end)
392392` ` `
393393
394- # ### macime Executable Path
394+ # ### 📍 macime Executable Path
395395
396396` macimed` requires the full-path of ` macime` .
397397
@@ -400,15 +400,15 @@ It is determined from one of the following paths:
400400- ` /usr/local/bin/macime` (Homebrew on Intel Mac)
401401- ` /opt/homebrew/bin/macime` (Homebrew on Apple Silicon)
402402
403- # ### Sock path
403+ # ### 🔌 Sock path
404404
405405` macimed` listen to the ` socket` for receiving/sending daemon commands.
406406
407407The sock path is determined from one of the following paths:
408408- ` MACIME_SOCK_PATH` (Environment variable)
409409- ` /tmp/riodelphino.macimed.sock`
410410
411- # ### Temp dir
411+ # ### 📁 Temp dir
412412
413413` macimed` stores previous IME IDs in temp dir.
414414
@@ -424,9 +424,9 @@ The previous IDs are stored in following files:
424424These files are deleted automatically when you shutdown macOS.
425425
426426
427- # ## Run daemon
427+ # ## ▶️ Run daemon
428428
429- # ### Homebrew
429+ # ### 🍺 Homebrew
430430
431431` macimed` can be managed by ` launchd` via Homebrew.
432432
@@ -440,7 +440,7 @@ brew services stop macime
440440> [! Note]
441441> Although the service name is ` macime` , it runs ` macimed` internally.
442442
443- # ### Manual
443+ # ### 📁 Manual
444444
445445Or, you can also start ` macimed` manually:
446446` ` ` bash
@@ -451,9 +451,9 @@ Useful for debuging. You can observe the behaviour immediately.
451451(Almost same performance with ` brew services` .)
452452
453453
454- # # Technical Information
454+ # # ⛏️ Technical Information
455455
456- # ## Logs
456+ # ## 📝 Logs
457457
458458` macimed` leaves ` stdout` and ` stderr` logs when it is running via ` Homebrew service` .
459459
@@ -467,14 +467,14 @@ With `Apple Silicon`:
467467
468468To check the log paths, run ` :checkhealth macime` in neovim. (Requires [macime.nvim](https://github.com/riodelphino/macime.nvim))
469469
470- # ## plist path via Homebrew
470+ # ## 📍 plist path via Homebrew
471471
472472plist path:
473473* ~ /Library/LaunchAgents/homebrew.mxcl.macime.plist
474474
475475To check the plist paths, run ` :checkhealth macime` .
476476
477- # ## MACIME_PATH Enviroment Variable
477+ # ## 📍 MACIME_PATH Enviroment Variable
478478
479479The ` MACIME_PATH` is set at ` brew install` time via ` riodelphino/homebrew-tap/Fomula/macime.rb` :
480480` ` ` ruby
@@ -487,7 +487,7 @@ service do
487487end
488488` ` `
489489
490- # # Integration
490+ # # 🔗 Integration
491491
492492# ## Neovim
493493
497497It enables ` macime` , ` macimed` and ` Homebrew service` without extra codings.
498498
499499
500- # # Issues
500+ # # ⚠️ Issues
501501
502- # ## Unstable Switching
502+ # ## ⚠️ Unstable Switching
503503
504504Via [macime.nvim](https://github.com/riodelphino/macime.nvim), the IME switching is unstable in following cases:
505505- When have not run IME switching for a while.
@@ -510,15 +510,15 @@ Solution for now:
510510See further information: [Unstable CJK Switching # 2](https://github.com/riodelphino/macime/issues/2)
511511
512512
513- # ## azookey prevents macime to change IME
513+ # ## ⚠️ azookey prevents macime to change IME
514514
515515` azookey` | [azookey-Desktop](https://github.com/azooKey/azooKey-Desktop) prevents ` macime set` command to work.
516516I guess it' s because they are still alpha version.
517517
518518Solutions for now:
519519 - Uninstal `azookey`
520520
521- ### Fix errors on install or upgrade
521+ ### ⚠️ Fix errors on install or upgrade
522522
523523> [!Note]
524524> This error was caused by a merge conflict in the tap repository. Sorry for my git mistake.
@@ -545,15 +545,15 @@ brew install macime
545545This cleans up the corrupted tap cache and performs a fresh installation.
546546
547547
548- ## TODO
548+ ## 📝 TODO
549549
550- ### macimed
550+ ### ⚡️ macimed
551551
552552- [ ] Stable IME switching with CJK
553553- [ ] Make the server restartable (for `daemon set sock-path xxx`)
554554
555555
556- ## Contribution
556+ ## 🤝 Contribution
557557
558558Contributions are welcome:
559559```bash
@@ -573,15 +573,15 @@ For debugging, temporary run the built `macimed` with the locally built `macime`
573573MACIME_PATH=.build/release/macime .build/release/macimed
574574```
575575
576- ## Thanks To
576+ ## 🙏 Thanks To
577577
578578- The IME switching concept is inspired by [im-select](https://github.com/daipeihust/im-select) and [macism](https://github.com/laishulu/macism)
579579- The CJK IME workaround comes from [ims-mac](https://github.com/LuSrackhall/ims-mac)
580580- The idea that Swift can manipulate IME states was inspired by
581581 [Neovim IMEの状態をカーソルの色に反映させる](https://it.commutty.com/denx/articles/b17c2ef01d10486d90fcf6f26f74fe58) (Japanese)
582582
583583
584- ## AI Assistance
584+ ## 🤖 AI Assistance
585585
586586This project is developed with the assistance of AI - though not vibe-coded.
587587
@@ -591,17 +591,17 @@ The AI helped significantly with:
591591- CJK handling (`CJK.swift`)
592592
593593
594- ## Changelog
594+ ## 📜 Changelog
595595
596596See [CHANGELOG](CHANGELOG.md)
597597
598598
599- ## License
599+ ## 📄 License
600600
601601MIT License. See [LICENSE](LICENSE)
602602
603603
604- ## Related
604+ ## 🔗 Related
605605
606606- [im-select](https://github.com/daipeihust/im-select)
607607- [macism](https://github.com/laishulu/macism)
0 commit comments