DEPRECATED My laptop
see blog post
Currently, I am using a T530 that has been heavily modified.
I used to use a W530, but I fucked it up trying to get tianocore on it and haven't bothered fixing the bios on it yet.
I have preordered a Framework 16 because I am the definition of their target audience.
Since W530s and T530s are basically identical baring the mainboard, there is no external difference between my W530 and T530 because I just yoinked all the parts from the W530.
my-laptop.html was last modified on $[stat -c %y ./html/my-laptop.html | head -c 10].
I have put an unreasonable amount of time in to messing with my laptop and as such am equally unreasonably proud of it.
Hardware modifications I have made to my laptop:
- Installed an older model's keyboard
- Sanded the keyboard such that it is blank.
- Upgraded most of its parts.
- Put an SDR in its disc drive
- Replaced the charging barrel with a worst bodge ever contest finalist because I left my charger at school for a weekend once and wanted to use my laptop.
$[img-caption "/files/laptop-xkb-geometry.png" "my xkb geometry file compiled to a pdf"]
Disregard the fucked up escape key, I was messing with it earlier. My keyboard isn't that notable beyond binding control to caps lock and binding the old control key to mode_switch. Additionally, when mode_switch is pressed while an alphabetic key is pressed, it types a greek letter instead.
I run artix (for the anti systemd meme), though upon getting my framework I intend to switch to gentoo. I use i3 as my window manager with a somewhat cursed script to programatically generate it's config from a yaml file. This script is vaguely necessary because
- I wanted a (programatically generated) graph of all my keybinds as leaf nodes with different modes as trunk nodes and individual keys as edges
- I wanted to easily nest an arbitrarily large number of modes without it being a hassle
an example of the function of this script is something like
Input (yaml):
keybinds:
a: !Mode
name: a
keybinds:
b: !Mode
name: b
keybinds: ...
Output (i3config):
mode a {
bindsym b mode b
}
mode b {
bindsym ... ...
}
bindsym a mode a
This system results in horrible user experience (but I don't care), great security (close to least intuitive setup possible), and—most importantly—an incredibly stupid graph of keybinds. I find this unreasonably amusing.