forked from nat/webbed-site
104 lines
6.4 KiB
HTML
104 lines
6.4 KiB
HTML
<html>
|
|
<head>
|
|
<title>laptop</title>
|
|
<style>
|
|
$[cat style.css]
|
|
</style>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
</head>
|
|
<body>
|
|
$[include html/header.html]
|
|
<main>
|
|
<section>
|
|
<h1>DEPRECATED My laptop</h1>
|
|
<p>see <a href='/html/blog/posts/new-laptop.html'>blog post</a>
|
|
<p>
|
|
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.<br>
|
|
my-laptop.html was last modified on $[stat -c %y ./html/my-laptop.html | head -c 10].<br>
|
|
</p>
|
|
</section>
|
|
<section>
|
|
<image-column-container>
|
|
<image-container>
|
|
<flex-column style='margin-right: 10px;'>
|
|
$[img-caption "/files/laptop-keyboard.png" "photograph of my laptops keyboard, which is blank because I sanded it."]
|
|
$[img-caption "/files/laptop-radio.jpg" "The software defined radio that goes in my laptop's disc drive."]
|
|
$[img-caption "/files/keybinds_graph.png" "Graph of my keybindings, they are hard to see"]
|
|
$[img-caption "/files/laptop-charger-barrel.jpg" "charger barrel size adapter sticking out the back of my laptop"]
|
|
</flex-column>
|
|
</image-container>
|
|
<text-column>
|
|
<p>I have put an unreasonable amount of time in to messing with my laptop and as such am equally unreasonably proud of it.<br></p>
|
|
<h3>Hardware modifications I have made to my laptop:</h3>
|
|
<p>
|
|
<ul>
|
|
<li>Installed an older model's keyboard</li>
|
|
<li>Sanded the keyboard such that it is blank.</li>
|
|
<li>Upgraded most of its parts.</li>
|
|
<li>Put an SDR in its disc drive</li>
|
|
<li>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.</li>
|
|
</ul>
|
|
Additionally, I have written a custom xkb file. Unfortunately the geometry file hasn't been updated since I modded in the new keyboard, but here it is anyways: <br>
|
|
</p>
|
|
$[img-caption "/files/laptop-xkb-geometry.png" "my xkb geometry file compiled to a pdf"]
|
|
<p>
|
|
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.
|
|
</p>
|
|
<p>
|
|
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 <ul>
|
|
<li> I wanted a (programatically generated) graph of all my keybinds as leaf nodes with different modes as trunk nodes and individual keys as edges </li>
|
|
<li> I wanted to easily nest an arbitrarily large number of modes without it being a hassle </li>
|
|
</ul><br>
|
|
an example of the function of this script is something like<br><br>
|
|
<div class="code-container">
|
|
<div class="io-container">
|
|
<h3>Input (yaml):</h3>
|
|
<pre><code>
|
|
keybinds:
|
|
a: !Mode
|
|
name: a
|
|
keybinds:
|
|
b: !Mode
|
|
name: b
|
|
keybinds: ...
|
|
</code></pre>
|
|
</div>
|
|
<div class="io-container">
|
|
<h3>Output (i3config):</h3>
|
|
<pre><code>
|
|
mode a {
|
|
bindsym b mode b
|
|
}
|
|
|
|
mode b {
|
|
bindsym ... ...
|
|
}
|
|
|
|
bindsym a mode a
|
|
</code></pre>
|
|
</div>
|
|
</div>
|
|
From the yaml config, my python script can parse it either in to a (really bad) graph of keybinds (using the graphviz library or something like that) or in to a valid i3 config file.
|
|
In my real config, I have a mode 'base' which is the default mode with no keybinds other than mod4+space, followed by a mode 'space' reached by pressing mod4+space.
|
|
From 'space' mode, other modes may be accessed, such as 'workspaces or windows' mode, bound under w.
|
|
This gets rather absurd (intentionally so) very quickly.
|
|
The combination to move to workspace 0 while in 'base' mode is to press mod4+space ('space' mode), w ('workspaces_or_windows' mode), s ('workspaces'), g ('workspaces_goto'), 0 (move to workspace 0).
|
|
</p>
|
|
<p>
|
|
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.
|
|
</p>
|
|
</text-column>
|
|
</image-column-container>
|
|
</section>
|
|
</main>
|
|
$[include html/footer.html]
|
|
</body>
|
|
</html>
|