Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | lib: fix ioctl argp cast | Philipp Gesang | 2021-12-22 | 1 | -5/+4 |
| | | | | The argument is not a pointer-to-ulong but itself an ulong, duh! | ||||
* | expand docs to cover “kb {leds,flags}” split | Philipp Gesang | 2021-12-22 | 1 | -0/+4 |
| | |||||
* | bin: lib: address some clippy lints | Philipp Gesang | 2021-12-22 | 2 | -5/+9 |
| | | | | Mostly about match autoref / autoderef kicking in. | ||||
* | bin: add switch for flag defaults | Philipp Gesang | 2021-12-22 | 1 | -20/+33 |
| | |||||
* | lib: rework led flags as composite type | Philipp Gesang | 2021-12-22 | 1 | -30/+207 |
| | | | | | | | | | Split the underlying led bits handling into KbLeds and employ this to construct both KbLedState and KbLedFlags, preserving their distinctness. This also finally implements the handling of the default states from the higher order bits of KD*KBLED. | ||||
* | Revert "lib: implement “kb flags”" | Philipp Gesang | 2021-12-22 | 1 | -61/+71 |
| | | | | | | | This partially reverts commit 92f35f8e90199e4d9dfbcc545be456f4c2d7a1ce. The keyboard modifiers behave too differently from the LED state for the const generics to pay off. | ||||
* | lib: implement “kb flags” | Philipp Gesang | 2021-12-12 | 2 | -113/+303 |
| | | | | | | | | A const-genericized version of the “kb leds” implementation. Does seem to consistently run into EINVAL no matter what flags we provide. Also incomplete as KDGKBLED / KDSKBLED pack more info into higher bits of their argument. | ||||
* | bin: move “leds” subcommand under “kb” namespace | Philipp Gesang | 2021-12-12 | 1 | -100/+135 |
| | | | | | | | | | | | | | So instead of $ vtcol leds get that functionality is now available as $ vtcol kb leds get anticipating the keyboad related functions that are about to come. | ||||
* | lib: add ioctl wrappers for KDGKBLED / KDSKBLED | Philipp Gesang | 2021-12-12 | 1 | -43/+111 |
| | | | | | Reusing the same definitions as we have for KD{G,S}ETLED as they’re practically the same. | ||||
* | lib: close console fd on drop | Philipp Gesang | 2021-12-12 | 1 | -0/+14 |
| | |||||
* | bin: allow specifying the console on the command line | Philipp Gesang | 2021-12-12 | 2 | -64/+118 |
| | | | | | | | | | | | | | As in: $ vtcol --console /dev/tty6 colors get solarized $ vtcol --console /dev/tty6 colors set phosphor $ vtcol --console /dev/tty6 colors get phosphor That simplifies testing so much I wonder why the heck I needed this long to finally implement it. | ||||
* | bin: make --verbose a global argument | Philipp Gesang | 2021-12-12 | 1 | -1/+2 |
| | | | | It shouldn’t matter where exactly it appears on the command line. | ||||
* | bin: refactor job into member functions + trait | Philipp Gesang | 2021-12-12 | 1 | -188/+222 |
| | |||||
* | bin: lib: implement setting state of individual LEDs | Philipp Gesang | 2021-12-12 | 2 | -17/+120 |
| | |||||
* | bin: implement led revert | Philipp Gesang | 2021-12-12 | 2 | -7/+26 |
| | | | | | | | | | | | | Command: $ vtcol leds set --revert Implementing this detail of KDSETLED: [I]f a higher order bit is set, the LEDs revert to normal: displaying the state of the keyboard functions of caps lock, num lock, and scroll lock. | ||||
* | bin: implement “leds set” subcommand | Philipp Gesang | 2021-12-12 | 2 | -6/+61 |
| | | | | | | | Currently only supports setting the raw state from an integer value: $ vtcol leds set -8 2 | ||||
* | move color ops into subcommand | Philipp Gesang | 2021-12-11 | 1 | -202/+247 |
| | | | | | | | | | | | | So what used to be $ vtcol set solarized becomes $ vtcol colors set solarized etc. | ||||
* | add KDGETLED subcommand to vtcol-bin | Philipp Gesang | 2021-12-08 | 2 | -2/+86 |
| | | | | | | | | | Actually we add both subcommand and sub-subcommand. Example: [*] 15:52:40 phg@acheron vtcol $ vtcol leds get Caps: false, Num: true, Scroll: false | ||||
* | add ioctl wrappers for KDGETLED / KDSETLED | Philipp Gesang | 2021-12-08 | 1 | -5/+119 |
| | |||||
* | be more specific about what “list” does | Philipp Gesang | 2021-12-08 | 1 | -1/+1 |
| | |||||
* | move base64 handling out of Palette | Philipp Gesang | 2021-11-25 | 2 | -25/+26 |
| | | | | | Try and not encumber the lower level types with more dependencies than needed. | ||||
* | don’t panic!() on open(2) failure | Philipp Gesang | 2021-11-24 | 1 | -10/+10 |
| | |||||
* | add base64 input to ‘dump’ | Philipp Gesang | 2021-11-24 | 1 | -7/+23 |
| | |||||
* | add base64 input for ‘set’ | Philipp Gesang | 2021-11-24 | 2 | -0/+45 |
| | |||||
* | add base64 output for ‘get’ | Philipp Gesang | 2021-11-24 | 2 | -6/+24 |
| | |||||
* | optionally clear after each fade step | Philipp Gesang | 2021-11-23 | 2 | -6/+27 |
| | |||||
* | implement fading | Philipp Gesang | 2021-11-23 | 2 | -3/+195 |
| | | | | vtcol fade --ms 1000 --frequency 10 --to solarized & dmesg | ||||
* | get rid of useless lifetimes | Philipp Gesang | 2021-11-22 | 1 | -5/+5 |
| | |||||
* | switch RawPalette to integer representation | Philipp Gesang | 2021-11-16 | 2 | -51/+96 |
| | | | | | Introducing a simple type for RGB colors. That awkward string representation for RawPalette got unwieldy quick. | ||||
* | add KDGKBTYPE wrapper | Philipp Gesang | 2021-11-15 | 1 | -8/+14 |
| | |||||
* | namespace ioctl related symbols | Philipp Gesang | 2021-11-15 | 1 | -45/+53 |
| | |||||
* | move console handling into lib | Philipp Gesang | 2021-11-15 | 2 | -104/+162 |
| | | | | | All operations are now exposed through wrappers that are member functions of ``vtcol::Console``. | ||||
* | use idiomatic syscall error wrappers | Philipp Gesang | 2021-11-15 | 1 | -24/+48 |
| | | | | | A simplified version of the function used in std which aren’t made public. | ||||
* | turn Fd into proper wrapper | Philipp Gesang | 2021-11-15 | 2 | -21/+39 |
| | |||||
* | drop bespoke ioctl() wrapper | Philipp Gesang | 2021-11-15 | 1 | -16/+3 |
| | |||||
* | lib: split out library | Philipp Gesang | 2021-11-15 | 2 | -533/+576 |
| | | | | | | | Not really a satisfactorily clean split as of yet but it’s a start. Error types have been changed from anyhow to io::Error in ``lib.rs`` so as to not force an error handling crate on downstream users. | ||||
* | make rustdoc shut up about snippets | Philipp Gesang | 2021-11-12 | 1 | -0/+1 |
| | |||||
* | bring “dump” out put in line with scheme format | Philipp Gesang | 2021-11-12 | 1 | -24/+36 |
| | | | | | | | This revamps the output in a way that allows feeding the result back into vtcol: $ vtcol dump solarized |vtcol set - | ||||
* | fix argument handling for “dump” subcommand | Philipp Gesang | 2021-11-11 | 1 | -2/+2 |
| | | | | D’oh! | ||||
* | avoid hard coding builtin names | Philipp Gesang | 2021-11-11 | 1 | -47/+103 |
| | |||||
* | add green monochrome theme (phosphor) | Philipp Gesang | 2021-11-10 | 1 | -0/+21 |
| | |||||
* | add toggle subcommand | Philipp Gesang | 2021-11-10 | 1 | -0/+48 |
| | |||||
* | stick to ascii | Philipp Gesang | 2021-11-10 | 1 | -4/+4 |
| | | | | We can’t count on Unicode in the Linux console. | ||||
* | implement subcommand get (GIO_CMAP) | Philipp Gesang | 2021-11-10 | 1 | -36/+89 |
| | | | | | Get the currently active color palette using ioctl(GIO_CMAP) and attempt to match it against the builtin schemes. | ||||
* | adopt a subcommand ui | Philipp Gesang | 2021-11-10 | 1 | -60/+90 |
| | | | | | | | | Regroup the cli arguments into subcommands: $ vtcol dump $SCHEME $ vtcol list $ vtcol set $SCHEME | ||||
* | use trait for deriving Color | Philipp Gesang | 2021-11-10 | 1 | -34/+36 |
| | |||||
* | add GIO_CMAP wrapper | Philipp Gesang | 2021-11-10 | 1 | -0/+16 |
| | | | | We should be able to get the currently active palette. | ||||
* | clean up struct Palette | Philipp Gesang | 2021-11-10 | 1 | -43/+43 |
| | |||||
* | turn Palette into newtype | Philipp Gesang | 2021-11-10 | 1 | -13/+10 |
| | |||||
* | rework error handling | Philipp Gesang | 2021-11-10 | 1 | -53/+102 |
| | | | | anyhow!() ftw. |