-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathknex-hammerspoon.lua
More file actions
132 lines (114 loc) · 5.48 KB
/
knex-hammerspoon.lua
File metadata and controls
132 lines (114 loc) · 5.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
-- KNEX & RAW Symbol Hammerspoon Module
-- Add this to your ~/.hammerspoon/init.lua
--
-- KNEX (₭) = main unit (like $)
-- RAW (⋖) = smallest unit (like ¢)
-- 1 ₭ = 10,000,000⋖ (10M RAW)
local KNEX_SYMBOL = "₭" -- U+20AD Kip Sign
local RAW_SYMBOL = "⋖" -- U+22D6 Less-Than with Dot
-- ═══════════════════════════════════════════════════════════════
-- METHOD 1: Popup Chooser (for hold-K via Karabiner)
-- ═══════════════════════════════════════════════════════════════
local knexChooser = nil
local knexChoices = {
{
["text"] = "₭ KNEX with space",
["subText"] = "Symbol followed by space (recommended)",
["symbol"] = KNEX_SYMBOL .. " "
},
{
["text"] = "₭ KNEX Symbol",
["subText"] = "Insert KNEX currency symbol (U+20AD)",
["symbol"] = KNEX_SYMBOL
},
{
["text"] = "⋖ RAW with space",
["subText"] = "RAW symbol (1 ₭ = 10,000,000⋖)",
["symbol"] = RAW_SYMBOL .. " "
},
{
["text"] = "⋖ RAW Symbol",
["subText"] = "Insert RAW symbol (U+22D6)",
["symbol"] = RAW_SYMBOL
},
{
["text"] = "₭ 12.46 Price format",
["subText"] = "KNEX with price placeholder",
["symbol"] = KNEX_SYMBOL .. " 12.46"
},
{
["text"] = "124,600,000⋖ RAW price",
["subText"] = "RAW equivalent of ₭ 12.46",
["symbol"] = "124,600,000" .. RAW_SYMBOL
}
}
function showKnexChooser()
if knexChooser == nil then
knexChooser = hs.chooser.new(function(choice)
if choice then
hs.timer.doAfter(0.05, function()
hs.eventtap.keyStrokes(choice.symbol)
end)
end
end)
knexChooser:choices(knexChoices)
knexChooser:placeholderText("Choose KNEX/RAW symbol...")
knexChooser:searchSubText(true)
knexChooser:bgDark(true)
end
knexChooser:show()
end
-- Make globally accessible for Karabiner shell command
_G.showKnexChooser = showKnexChooser
-- ═══════════════════════════════════════════════════════════════
-- METHOD 2: Direct Hotkeys
-- ═══════════════════════════════════════════════════════════════
-- KNEX SYMBOL (like $)
-- Option+K = symbol WITH space (default, most common use)
hs.hotkey.bind({"alt"}, "k", function()
hs.eventtap.keyStrokes(KNEX_SYMBOL .. " ")
end)
-- Option+Shift+K = symbol WITHOUT space (for tight formatting)
hs.hotkey.bind({"alt", "shift"}, "k", function()
hs.eventtap.keyStrokes(KNEX_SYMBOL)
end)
-- RAW SYMBOL (like ¢)
-- Option+R = symbol WITH space
hs.hotkey.bind({"alt"}, "r", function()
hs.eventtap.keyStrokes(RAW_SYMBOL .. " ")
end)
-- Option+Shift+R = symbol WITHOUT space
hs.hotkey.bind({"alt", "shift"}, "r", function()
hs.eventtap.keyStrokes(RAW_SYMBOL)
end)
-- ═══════════════════════════════════════════════════════════════
-- UTILITY: Copy symbols to clipboard
-- ═══════════════════════════════════════════════════════════════
-- Option+Ctrl+K = copy KNEX symbol
hs.hotkey.bind({"alt", "ctrl"}, "k", function()
hs.pasteboard.setContents(KNEX_SYMBOL)
hs.alert.show("KNEX symbol copied! " .. KNEX_SYMBOL)
end)
-- Option+Ctrl+R = copy RAW symbol
hs.hotkey.bind({"alt", "ctrl"}, "r", function()
hs.pasteboard.setContents(RAW_SYMBOL)
hs.alert.show("RAW symbol copied! " .. RAW_SYMBOL)
end)
-- ═══════════════════════════════════════════════════════════════
-- VISUAL FEEDBACK
-- ═══════════════════════════════════════════════════════════════
hs.alert.show("KnexCoin Keyboard Loaded ₭ ⋖")
print("══════════════════════════════════════════════════════")
print(" KNEXCOIN KEYBOARD MODULE LOADED")
print("══════════════════════════════════════════════════════")
print("")
print(" KNEX (like $): RAW (like ¢):")
print(" ───────────── ─────────────")
print(" Option+K → ₭ Option+R → ⋖")
print(" Option+Shift+K → ₭ Option+Shift+R → ⋖")
print(" Option+Ctrl+K → copy Option+Ctrl+R → copy")
print("")
print(" Hold K (300ms) → Show symbol chooser")
print("")
print(" 1 ₭ = 10,000,000⋖ (10M RAW)")
print("══════════════════════════════════════════════════════")