$[include html/header.html]

my laptop is rather haunted

I am bad at using technology.
this is not due to lack of technical ability, but instead due to the accumulation of unreasonable quirks over time in every computer I exert any degree of control over.

booting and the operating system

I do not use a bootloader. instead, I have a custom kernel build based off the arch kernel with filesystem and compression drivers such that I can boot straight from my kernel. I also do not have an initramfs.

technically, I don't use arch linux. I use [a custom build of] the arch kernel and arch package repos, but actually run artix. a function of this is that instead of systemd, I use openrc.

seat management and hardware issue mitigation

I once thought it would be entertaining to remove elogind from my system. of course, I still needed it installed as a library, but disabling it was trivial. it was replaced with seatd for seat management and acpid to suspend my computer when I close the lid. this worked for a time, however after a couple months of this setup, elogind inexplicably began to be started by my init system. I do not know how or why, I did not change anything, nor is there anything matching 'elogind' in /etc/init.d/. this was bad because it would interfere with acpid.

the solution

~ λ cat /etc/acpi/lid.sh
#!/bin/sh
cat /proc/acpi/button/lid/LID0/state | grep open && (modprobe i2c_hid_acpi) || (
    killall elogind-daemon
    rmmod i2c_hid_acpi
    (test -e /home/catalie/.should-power-off) && s2ram
)               

I overcame this issue simply by attempting to kill elogind every time I close the lid of my computer.

you may wonder, why is it running rmmod i2c_hid_acpi every time it close its laptop's lid. you see, the framework 16 has an issue in which the trackpad and keyboard are not properly barred from waking the computer from suspend while the lid is closed. in addition to this, the screen can flex just enough to press a key or bump the trackpad. this causes the laptop to wake in my bag and attempt to boil the contents of my backpack. the keyboard waking the computer from suspend can be ammended by running

sudo acpitool -w | grep enabled | awk '{print $1}' | sed 's/\.//' | xargs -I{} sudo acpitool -W {}
however, the trackpad is not in the list of acpi wakeup devices for whatever reason. thus, upon the lid being closed, I simply unload the kernel module the trackpad requires and load it again upon opening the lid.

environment

I use wayland, specifically hyprland. this is unfortunate because it is bad software (this will be elaborated upon), but I like the special workspace system. my status bar and notification system are written in gjs with ags. I resent this because it involves javascript, but oh well. when libastal gets documentation, I will probably rewrite my ui in that. my terminal emulator is my own build of st. I have yet to find a good terminal that supports all the things I want for wayland, so xwayland it is.

keyboard

unlike my previous laptop, I had the option to buy this laptop such that it came with a blank keyboard. in accordance with this, I have not sanded my keyboard. the framework 16 keyboard runs qmk, this is very nice. the keyboard firmware is now hardcoded to be dvorak instead of using a custom console and xkb map. on one hand this is nice because it means I do not need to edit xkb files to remap caps lock to control, but on the other hand if I plug an external keyboard in to my laptop, it will be qwerty and I will have to load my xkb map or type in qwerty. I can probably type in qwerty. I need to remember to finish my keyboard config at some point. also, I should make the button that breaks the keyboard until I remove it and put it back in harder to press.

irregular bugs

$[include html/footer.html]