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

Arguments

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:

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:

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:

Instrument Layouts:

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.