Qåmlia
Qåmlia is a program wið whič you can do almost anyþiŋ on your computer usiŋ only simple keypresses. Precompiled installers exist for Debian GNU/Linux (also works for Mint and Ubuntu) and Windows, boþ x86_64. Oððer Linux and Windows architectures are (probably) possible to compile usiŋ ðe source code. On Linux, evdev is used, meaniŋ it needs to run as root (sudo qåmlia).
Source
Qåmlia is free software, available under ðe GNU General Public License v3 or later. Source code is also available on https://github.com/nangliaa/qaamlia.
Find in source
- All trigger keys are available in qåmliac/init.cpp. Ðey are on ðe format { { L'ŵ', (L'L' << BYTEŠIFT1) | L'W' }, VLSUPER }, // 5B, meaniŋ ðat ðe left super/win/command(once macOS support is added) key can be referred to usiŋ eiðer ŵ or ½LW.
- All %-format opṫons are in qåmliac/extra.cpp, in ðe formatStriŋ() funcṫon.
- All arguments to ðe program are in qåmliaj/src/org/nangliaa/qaamlia/Qaamlia.java, and also here.
Arguments
- -f, --file: Loads from anoððer file.
- -h, --help: Prints help and exits.
- -r, --rel: Makes relative input (like mouse movement) also gone þru by ðe program. As of now, ðere is no reason to turn ðis on, as relative input isn't implemented to do anyþiŋ.
- -v, --verbose: Prints a lot more data in console.
- -verṡon, --version: Prints verṡon and exits.
File
Ðe file ðat ðis program reads its commands from is by default [AppData]/Naŋliå/qåmlia/qåmlia.qlia, where [AppData] is /home/USERNAME/.local/share/ on GNU/Linux (or /root/.local/share when runniŋ as root, whič is ðe way ðat works) and C:\Users\USERNAME\AppData on Windows. You can make it load anoððer file instead usiŋ ðe -f or --file arguments when runniŋ ðe program.
Definiṫons
Ðese are ðe rows as understood by ðe music funcṫonality:
| Row 1: | ⎋ | | | | | | | | | | | | | | |
| Row 2: | § | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | + | ´ | ⌫ | ⇱ |
| Row 3: | ↹ | Q | W | E | R | T | Y | U | I | O | P | Å | ¨ | ↵ | |
| Row 4: | ⇪ | A | S | D | F | G | H | J | K | L | Ö | Ä | ' | ↵ | |
| Row 5: | ⇧ | < | Z | X | C | V | B | N | M | , | . | - | ⇧ | ↑ | ⇲ |
| Row 6: | ⎈ | ❖ | ⎇ | ⎇ | ❖ | ≡ | ⎈ | ← | ↓ | → |
Triggers:
Written on format:
a (bcde) [trigger_flags]
Ðis activates when pressiŋ [a], if [b], [c], [d] & [e] are simultaneously held down. If held-down keys are on anoðer device ðan ðe specified one, ðey still take effect, meaniŋ ðat held-down keys cannot be distinguišed by device as of now.
Trigger flags:
- -dev: What device ðe key šould be pressed on. Doesn't affect ðe held-down keys. Get device by usiŋ %D in paste or window.
- -exe: What program owns ðe current window. Uses speċal drive notaṫon, so use %x to get paþ and name. Full paþ required.
- -win: What name ðe current window can have to allow triggeriŋ. Full name required.
Constants:
Syntax: #[name] [value];
Write all constants first in ðe file. To use, write @[name] somewhere below to make ðe program interpret it as [value].
Funcṫons:
auth
Syntax: auth [secret_code];
Paste a RFC 6238-compliant 6-number TOTP (for 2-factor auþentisaṫon) generated usiŋ ðe given code. Ðe code čanges every 30 seconds.
block
Syntax: block [key];
Intercepts and blocks [key], meaniŋ it won't have any effect EXCEPT in ðis program. Is not guaranteed to always work on Windows.
ctrlblock
Syntax: ctrlblock [key];
Intercepts and blocks all keys pressed while [key] is down, meaniŋ ðey won't have any effect EXCEPT in ðis program. Is not guaranteed to always work on Windows.
exit
Syntax: exit;
Exits ðe program.
lia
Syntax: lia [command];
Sends a command to ðe Java part of ðe program.
Commands:
- text: Opens a text editor wið Unicode šow support.
music
Syntax: music (-ins [instrument] -osc [oscillator]);
Switčes your keyboard to play sounds instead of doiŋ normal þiŋs. If -dev is given in one parenþesis (like music (-ins acc -osc tri -dev xyz);) only ðat device will have ðis layout, and you can add a new parenþesis wið anoððer layout or oscillator on anoððer device. If you have multiple parenþesis and one lacks a device, ðat one will be used for all oððer devices. Only keyboards are affected, not mice.
Oscillators:
- sin
- squ
- tri
- saw
Instrument Layouts:
- acc: Accordion (chromatic) buttons goiŋ from E₂ on ⇪ to G₅ on
- bas: Accordion chord buttons wið main tone on row 2, major þird above on row 1, and major, minor and (major) sevenþ on rows 3, 4 and 5 respectively.
- pia: Piano on rows 2 & 3, wið row 3 correspondiŋ to white keys. Starts on ↹ wið [g/G₃] and goes up to [f''/F₅] on ↵.
Example 2:
m (MŜ): music (-ins pia -osc squ);
When holdiŋ Menu and Right Šift and pressiŋ M, music mode starts wið ðe "piano" layout and ðe sound of a square wave, regardless of device.
Example 2:
m (MŜ): music (-ins pia -osc squ -dev xxx)(-ins acc -osc sin -dev yyy);
When holdiŋ Menu and Right Šift and pressiŋ M, music mode starts wið ðe "piano" layout and ðe sound of a square wave on device xxx, but accordion layout and sine wave on device yyy.
paste
Syntax: paste [text];
Pastes (sendiŋ Ctrl+V) a predetermined text. You can also use % + a letter to create a striŋ formatted at runtime (when it is pasted). For example, "paste %H:%M:%S;" will always paste ðe current time of day.
On Qubes OS, ðis can paste into oððer qubes from dom0 as well.
pastes
Syntax: pastes [text];
Identical to paste except sendiŋ Ctrl+Šift+V instead (for terminal, for example). Same result can be ačieved by holdiŋ down Šift while usiŋ normal paste.
remap
Syntax: remap [key];
Presses and releases anoðer key when trigger is pressed and released. Can be used to access keys not on your keyboard.
reload
Syntax: reload;
Reloads ðe program wið any čanges made in ðe file.
run
Syntax: run [command];
Runs a command þrough ðe command prompt. Mainly used for šortcut-runniŋ programs. For runniŋ a specific file wið ðe program, write its file name after program name. Anyþiŋ not on ðe "Path" environment variable will require full paþ (It is not recommended to add stuff to Path just for ðis). Constants are recommended if ðe same file is used multiple times.
window
Syntax: window [text];
Shows a window wið text. All formattiŋ from paste wið % still applies here. Press Esc(E / ½ES) to close window again.