Skip to content

Instantly share code, notes, and snippets.

@sgn00
sgn00 / ping_pong.cpp
Last active April 3, 2026 18:40
Pipe RTT ping-pong benchmark
// g++ ping_pong.cpp -o ping_pong -std=c++20 -O3
#include <algorithm>
#include <cerrno>
#include <cstdint>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <vector>
#include <chrono>
@generic-internet-user
generic-internet-user / wlcursor.md
Last active May 4, 2026 16:46
Wayland Cursor Lag

Wayland Cursor Lag: Just give me a break already...

I no longer consider any of this to be valid, and consider this entire adventure so far to have been intellectually dishonest and filled with questionable assumptions about everything, so, please, if you're reading this and got linked here, stop reading this and tell whoever linked you here to shut the f**k up already.

UPDATE: This (and, therefore, the promised bug reports) has been put on hold until I get around to getting actual evidence with the herein-mentioned RPi Pico + photoresistor setup, which is itself "delayed until further notice" because I simply have better and more important stuff to do[^1] right now.

UPDATE 2: Some madlad actually did it, only for GNOME though but that's still amazing

*UPDATE 3: Apparently, it's like this on purpose, at least

@jstarcher
jstarcher / EndeavourOS-Nvidia-fixes.md
Created July 9, 2024 02:44
Stable Nvidia + Wayland on EndeavourOS (Arch) with working Suspend

This guide was created for EndeavourOs Endeavour Release which if using the Online installer, as of July 2024, will provide Plasma 6.1 and Nvidia 555 drivers. This guide shows using Grub but will work with systemd-boot as well if you follow steps for kernel params.

  1. Create file /etc/modprobe.d/nvidia.conf with the following contents
options nvidia_drm modeset=1
options nvidia_drm fbdev=1
options nvidia NVreg_EnableGpuFirmware=0
options nvidia NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=/var/tmp
@sorend
sorend / Update firwmware WD Black SN770 firmware on Arch Linux.md
Last active June 6, 2026 08:14
Update firmware WD Black SN770 firmware on Arch Linux

Update firmware WD Black SN770 firmware on Arch Linux

Been having problems with my new SN770 drive, and decided to check if I can firmware update it on Linux. WD only provides a Windows tool, Western Digital Dashboard to download and install firmwares, but, it's possible to find the firmware and install it using Linux tooling as well.

1. Check that nvme-cli is installed:

❱ sudo pacman -S nvme-cli
@sebastiancarlos
sebastiancarlos / sway-print-tree.bash
Last active February 19, 2024 15:18
sway-print-tree.bash (Pretty print Sway/i3 tree, color output, 'jq' is the only dependency)
#! /usr/bin/env bash
# ansi colors
bold='\033[1m'
red='\033[0;31m'
green='\033[0;32m'
yellow='\033[1;33m'
blue='\033[0;34m'
reset='\033[0m'
@mjkstra
mjkstra / arch_linux_installation_guide.md
Last active June 9, 2026 21:01
A modern, updated installation guide for Arch Linux with BTRFS on an UEFI system
@v-fox
v-fox / NVMe_tweaks.md
Last active May 29, 2026 20:01
Linux kernel optimizations for NVMe

By default Linux distros are unoptimized in terms of I/O latency. So, here are some tips to improve that.

Most apps still don't do multi-threaded I/O access, so it's a thread-per-app which makes per-app speed always bottlenecked by single-core CPU performance (that's not even accounting for stuttering on contention between multiple processes), so even with NVMe capable of 3-6 GB/s of linear read you may get only 1-2 GB/s with ideal settings and 50-150/100-400 MB/s of un/buffered random read (what apps actually use in real life) is the best you can hope for.

All writes are heavily buffered on 3 layers (OS' RAM cache, device's RAM cache, device's SLC-like on-NAND cache), so it's difficult to get real or stable numbers but writes are largelly irrelevant for system's responsiveness, so they may be sacrificed for better random reads.

The performance can be checked by:

  • `fio --name=read --readonly --rw={read/randread} --ioengine=libaio --iodepth={jobs_per_each_worker's_command} --bs={4k/2M} --direct={0/1} --num

Arch Linux SilverBlue - Bootstrap Process

  1. Create an arch linux chroot using podman:
podman run --rm -it \
    -v "$PWD:$PWD" \
    -w "$PWD" \
    archlinux:latest
@Ruakij
Ruakij / Looking-glass-kvmfr-setup-Arch.md
Last active March 30, 2026 22:09
Looking-glass kvmfr setup Arch

Looking-glass kvmfr setup Arch

More in-depth setup-guide for usage of kvmfr (see https://looking-glass.io/docs/B6/module/)

This setup was done on EndeavourOs (Arch) on Kernel 6.1.12-arch1-1.
QEMU-version 7.2 and libvirt version 9.0.0 .
Running cGroups Policy (if you have AppArmor, some things are different)

Check respective sections in looking-glass docs for other versions (specifcally QEMU <6.2 and libvirt <7.9)

@pschmitt
pschmitt / sway-maximize.sh
Last active April 30, 2026 20:07
sway ipc script to maximize the currently focused window
#!/usr/bin/env bash
usage() {
echo "Usage: $(basename "$0") [-d DEFAULT_BORDER_PX] [-m MAXIMIZED_BORDER_PX]"
}
get_waybar_height() {
# Waybar's config is JSONC, ie it contains comments. We need to strip
# these for jq.
grep -v '//' ~/.config/waybar/config | jq -er '.height'