Skip to content

Instantly share code, notes, and snippets.

@CRTified
CRTified / README.md
Last active January 23, 2026 21:50
VFIO Passthrough on NixOS

VFIO Setup on NixOS

Disclaimer: Nobody else tested my setup so far, so this is a "works on my machine" scenario. I am not responsible for anything you break on your machine (although I'd not expect much harm).

Hardware

My system has the following hardware:

  • Board: ASRock X570 Pro4
@RLovelett
RLovelett / README.md
Last active March 24, 2026 08:56
Force RGB instead of YCbCr output for HDMI on Ubuntu

Force RGB pixel format over YCbCr

There are some monitors, in my case Dell U2413, that report having YCbCr support when plugged in over HDMI. My AMD Radeon RX 570 Series video card sees this YCbCr pixel format and then prefers that over the RGB pixel format. The result is that fonts, graphics and other visuals are pixelated and not smooth in Ubuntu.

This actually is not just a Linux problem. A similar problem exists on macOS with the same monitor hooked up over HDMI. In fact an article by John Ruble on the Atomic Object blog called Fixing the External Monitor Color Problem with My 2018 MacBook Pro attempts to fix the exact same thing.

Solution

All of the articles I could find exploring this topic advocate patching the EDID for the monitor. Unfortunately the macOS solution would not work here. Luckily I found a Reddit post that covered how to get it working.

@eoli3n
eoli3n / root-podman-wayland.sh
Last active July 19, 2025 19:19
Run an application with dbus and wayland sockets in a rootless podman container
# Install docker or podman package on your distro (podman doesn't need a daemon like dockerd to work). All args are exactly same, just replace ``podman`` with ``docker`` in command if you want to.
sudo pacman -S podman
# Run an archlinux container with dbus and wayland sockets.
sudo podman run \
--volume "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY":/tmp/wayland-0 \
--device /dev/dri \
--volume /run/user/1000/bus:/tmp/bus \
--rm -it archlinux /bin/bash
@pojntfx
pojntfx / README.md
Last active January 25, 2025 16:17
Enable GTK4, Wayland and hardware acceleration for Chrome on Linux

Update: As of June 2023, Chrome has officially added support for prefers-color-scheme as of this in version 114!

Paste the following into your terminal. You'll have to fully close the browser with pkill chrome each time you want Chrome to re-read the settings.

Also, use the following flags for full GPU acceleration:

  • ignore-gpu-blocklist
  • enable-webrtc-pipewire-capturer
  • enable-gpu-rasterization
  • enable-vulkan
@bashelled
bashelled / install-arch-without-pacstrap.md
Last active September 29, 2023 11:48
Some tutorial on how to pacstrap Arch Linux without pacstrap.

Installing Arch without pacstrap is easy. No, you won't use archbootstrap. That is only for chroots. Instead, you will do it hand made.

First, make the file system.

mkdir -m 0755 -p /path/to/root/var/{cache/pacman/pkg,lib/pacman,log} /path/to/root/{dev,run,etc/pacman.d}
mkdir -m 1777 -p /path/to/root/tmp
mkdir -m 0555 -p /path/to/root/{sys,proc}
cp -a /etc/pacman.d/gnupg "/path/to/root/etc/pacman.d/"
@brunoais
brunoais / proton
Last active March 3, 2026 13:04 — forked from thingsiplay/proton
Proton script
#!/bin/bash
# Execute Windows programs with Proton from Steams installation folder, without
# starting Steam client.
#
# 1. Create a directory for Proton environment to run in. As an example make a
# folder "proton" in your home directory. This folder must exist in order
# to make Proton work.
#
# 2. Point the variable "env_dir" in this script to that folder or...
@pschmitt
pschmitt / sway-maximize.sh
Last active March 20, 2025 16:26
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'
@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)

Arch Linux SilverBlue - Bootstrap Process

  1. Create an arch linux chroot using podman:
podman run --rm -it \
    -v "$PWD:$PWD" \
    -w "$PWD" \
    archlinux:latest
@v-fox
v-fox / NVMe_tweaks.md
Last active March 14, 2026 09:45
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