Arcade.D5E.dev
~/.config
~/.config/chezmoi/chezmoi.toml stores machine-specific configurations and data that customize how chezmoi generates your dotfiles on a particular machine.
~/.config
├── 1Password
│ └── ssh
│ └── agent.toml
├── Hookmark
│ ├── Help
│ │ └── help.webloc
│ ├── Hookmark Files
│ ├── notes
│ └── templates
│ ├── built-in templates
│ ├── custom templates
│ └── help.webloc
├── bck
│ └── busyContact
│ ├── BusyContacts_2025-08-21_16-56.babu
│ ├── BusyContacts_2025-08-22_16-56.babu
│ ├── BusyContacts_2025-08-23_19-25.babu
│ ├── BusyContacts_2025-08-24_20-32.babu
│ ├── BusyContacts_2025-08-25_20-32.babu
│ ├── BusyContacts_2025-08-26_20-32.babu
│ ├── BusyContacts_2025-08-27_20-32.babu
│ ├── BusyContacts_2025-08-28_20-32.babu
│ ├── BusyContacts_2025-08-29_20-44.babu
│ ├── BusyContacts_2025-08-30_20-49.babu
│ └── BusyContacts_2025-08-31_20-49.babu
├── bin
│ ├── 1pagePDF.applescript
│ ├── Ase2Clr
│ ├── Clr2Ase
│ ├── Clr2Obj
│ ├── Html2Ase
│ ├── Html2Clr
│ ├── cbr2cbz.sh
│ ├── checkCert.sh
│ ├── decrypt-file.py
│ ├── ds -> /Applications/Setapp/Dropshare.app/Contents/Resources/ds.sh
│ ├── encrypt-file.py
│ ├── getKeyServers.sh
│ ├── git-user-stats
│ ├── homeBrew
│ ├── loginItems
│ ├── loginItems-add
│ ├── loginItems-ls
│ ├── loginItems-rm
│ ├── photoTimeShift1Year.sh
│ ├── photosChangeDate.sh
│ ├── photosGeotagCreateCSV.sh
│ ├── photosGeotagCreateKML.sh
│ ├── photosOrganize.sh
│ ├── photosOutputList2CSV.sh
│ ├── photosRenameDateStamp.sh
│ ├── photosRenameLowerCase.sh
│ ├── photosRenameLowerCaseRecursively.sh
│ ├── photosUpdateDateEXIF.sh
│ ├── script-template.sh
│ ├── tidy.sh
│ ├── usbi
│ └── usbi.go
├── cache
│ ├── ansible-compat
│ │ ├── 4ffeee
│ │ └── 9fec08
│ └── typescript
│ └── 5.5
├── chezmoi
│ ├── chezmoi.toml
│ └── chezmoistate.boltdb
├── fontforge
│ └── plugin
├── git
│ ├── aliases
│ ├── aliases.old
│ ├── github_bhd
│ ├── gitignore_global
│ └── gitlab_gologic
├── karabiner
│ ├── assets
│ │ └── complex_modifications
│ ├── automatic_backups
│ │ ├── karabiner_20221025.json
│ │ ├── karabiner_20221103.json
│ │ ├── karabiner_20221107.json
│ │ ├── karabiner_20230107.json
│ │ ├── karabiner_20230109.json
│ │ └── karabiner_20241010.json
│ ├── karabiner VERY OLD.json
│ ├── karabiner.json
│ └── karabinerNew.json
├── macSetup
│ ├── doc
│ │ ├── CONTRIBUTING.md
│ │ ├── codeOfConduct.md
│ │ ├── dotFiles.md
│ │ ├── keyboard.md
│ │ ├── logo.png
│ │ ├── presentationNotes.md
│ │ ├── shell.md
│ │ └── tools.md
│ ├── group_vars
│ │ └── all
│ ├── roles
│ │ ├── backup
│ │ ├── common
│ │ └── provision
│ ├── LICENSE
│ ├── Makefile
│ ├── README.md
│ ├── ansible.cfg
│ ├── brew.sh
│ ├── inventory
│ ├── macSetup.yml
│ └── requirements.yml
├── mdless
│ ├── config.yml
│ └── mdless.theme
├── node_modules
│ ├── bin
│ │ ├── autoprefixer -> ../lib/node_modules/autoprefixer/bin/autoprefixer
│ │ ├── casperjs -> ../lib/node_modules/casperjs/bin/casperjs
│ │ ├── npm -> ../lib/node_modules/npm/bin/npm-cli.js
│ │ ├── npx -> ../lib/node_modules/npm/bin/npx-cli.js
│ │ ├── phantomjs -> ../lib/node_modules/phantomjs/bin/phantomjs
│ │ └── postcss -> ../lib/node_modules/postcss-cli/index.js
│ ├── etc
│ └── share
│ └── man
├── op
│ ├── config
│ └── op-daemon.sock
├── rclone
│ └── rclone.conf
├── vanityURLs
│ ├── build
│ │ └── _headers
│ ├── scripts
│ │ ├── lnk
│ │ └── validateURL
│ ├── dynamic.lnk
│ └── static.lnk
├── wireshark
│ ├── profiles
│ ├── recent
│ └── recent_common
├── xnviewmp
│ ├── Thumb.db
│ ├── XnView.db
│ └── xnview.ini
├── zsh
│ ├── houba
│ │ ├── dot_p10k.zsh
│ │ ├── dot_zprofile.tmpl
│ │ └── dot_zshrc.tmpl
│ ├── plugins
│ ├── aliases.zsh
│ ├── dircolors
│ ├── functions.zsh
│ └── secret
├── BHD.terminal
├── starship-dd.toml
└── starship.toml~/.local/share/
~/.local/share/chezmoi houses the universal source of my dotfiles, which is shared via gitHub/bhdicaire/dotFiles and version-controlled across all my machines.
~/.local/share/
├── chezmoi
│ ├── home
│ │ ├── Documents
│ │ ├── Library
│ │ ├── dot_1password
│ │ ├── dot_aws
│ │ ├── dot_logseq
│ │ ├── dot_vim
│ │ ├── dot_vscode
│ │ ├── dot_zenmap
│ │ ├── private_dot_config
│ │ ├── private_dot_cups
│ │ ├── private_dot_docker
│ │ ├── private_dot_gnupg
│ │ ├── private_dot_ssh
│ │ ├── dot_bash_aliases.tmpl
│ │ ├── dot_bashrc_aliases-local
│ │ ├── dot_bashrc_completions-macOS
│ │ ├── dot_bashrc_config-local
│ │ ├── dot_bashrc_functions
│ │ ├── dot_bashrc_prompt
│ │ ├── dot_bashrc_prompt-config
│ │ ├── dot_curlrc
│ │ ├── dot_czrc
│ │ ├── dot_dir_colors
│ │ ├── dot_gitconfig
│ │ ├── dot_gitignore_global
│ │ ├── dot_inputrc
│ │ ├── dot_tmux.conf.tmpl
│ │ ├── dot_vanityURLs.conf
│ │ ├── dot_vimrc
│ │ ├── dot_wgetrc
│ │ ├── dot_zprofile.tmpl
│ │ ├── dot_zshenv
│ │ ├── empty_dot_hushlogin
│ │ ├── executable_dot_bash_profile
│ │ ├── executable_dot_bashrc_aliases
│ │ ├── executable_dot_bashrc_completions
│ │ ├── executable_dot_bashrc_config
│ │ ├── private_dot_editorconfig
│ │ └── private_dot_mackup.cfg
│ ├── LICENSE
│ ├── README.md
│ └── logo.pngtree -L 3 --dirsfirst
_,met$$$$$gg. bhdicaire@arcade
,g$$$$$$$$$$$$$$$P. ----------------
,g$$P"" """Y$$.". OS: Debian GNU/Linux 13 (trixie) x86_64
,$$P' `$$$. Host: HP EliteDesk 800 G3 DM 65W
',$$P ,ggs. `$$b: Kernel: Linux 6.12.57+deb13-amd64
`d$$' ,$P"' . $$$ Uptime: 7 mins
$$P d$' , $$P Packages: 1584 (dpkg)
$$: $$. - ,d$$' Shell: bash 5.2.37
$$; Y$b._ _,d$P' Display (EPSON PJ): 1920x1200 @ 60 Hz [External]
Y$$. `.`"Y$$$$P"' Cursor: Adwaita
`$$b "-.__ Terminal: /dev/pts/0
`Y$$b CPU: Intel(R) Core(TM) i5-6500T (4) @ 3.10 GHz
`Y$$. GPU: Intel HD Graphics 530 @ 1.10 GHz [Integrated]
`$$b. Memory: 1.00 GiB / 30.77 GiB (3%)
`Y$$b. Swap: 0 B / 23.06 GiB (0%)
`"Y$b._ Disk (/): 4.64 GiB / 415.41 GiB (1%) - ext4
`"""" Local IP (eno1): 172.30.30.239/24
Locale: en_US.UTF-8HP EliteDesk 800 G3 DM 65W
Installation
01. Prerequisites
- Make sure BIOS is the latest version
sudo dmidecode -s bios-version
sudo dmidecode -s bios-release-date- Configure BIOS and UEFI settings
Reboot and press F10 → Computer Setup (BIOS)02. Debian OS
Modules:
-
Debian Desktop Environment
-
GNOME
-
SSH server
-
Standard System Utilities
03. Devices Firmwares/ Drivers
Confirm that we have all the required commands and install missing packages:which fwupdmgr sudo inxi fastfetch
sudo apt update; sudo apt full-upgrade -y
sudo apt install -y inxi fastfetchDebian 13 works very well with fwupd,a project that automate firmware update on Linux.
Refresh firmware metadata
sudo apt install fwupd
sudo fwupdmgr refreshCheck supported devices and apply available updates
sudo fwupdmgr get-devices
sudo fwupdmgr refresh
sudo fwupdmgr updateIf firmware updates are available, reboot when prompted.
Install Debian Wi-Fi & Bluetooth firmware packages
sudo apt install firmware-linux firmware-linux-nonfree \
firmware-iwlwifi firmware-realtekReboot after installation : sudo shutdown -r now
Update configuration
Disable device sleep entirely
Prevents all forms of sleep for an arcade or a media center: sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target. You can still power off manually.
To undo: sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
disable ipv6
Verify that all hardware is detected and working
sudo inxi -Fz
| Component | bash command | Description |
|---|---|---|
| CPU & virtualization | lscpu | grep Virtualization |
Expected: Virtualization: VT-x |
| Graphics Intel iGPU |
lspci | grep -i vga lsmod | grep i915 |
Check driver |
| Wi-Fi | lspci | grep -i networkdmesg | grep iwlwifiip a | grep wlan |
Check firmware loaded Check network interface |
| Bluetooth | lsusb | grep -i bluetoothsystemctl status bluetoothsudo systemctl enable --now bluetoothbluetoothctl |
Check service status If not running, try … Test |
| Audio | aplay -l |
|
| Sensors / thermals | sudo apt install lm-sensorssudo sensors-detect sensors |
|
| Storage Controller | lspci | grep -i sata |
Expected: SATA controller [AHCI mode]. Optane mode is enabled (bad), If you see RST / RAID / VMD |
Confirm that storage is properly configured
lsblk --discard
| Column | Description | Expected Value |
|---|---|---|
| DISC-ALN | Discard alignment offset | 0 |
| DISC-GRAN | Smallest TRIM unit | 512B or larger |
| DISC-MAX | Largest TRIM size | Non-zero (e.g., 2G) |
| DISC-ZERO | Zero-fill on discard | 0 |
Based on the expected value above, the SSD accepts TRIM:
- Linux can issue discard commands
- The controller passes them correctly
- Partitions inherit TRIM capability
For your information, sdc (e.g., USB device or a Card Reader) and sr0 (e.g., Optical Drive) are not expected to support trim.
Online TRIM vs periodic TRIM
Enable periodic TRIM : sudo systemctl enable fstrim.timer to discard unused filesystem blocks once a week.
- No runtime stutter (e.g., no I/O spikes during gameplay)
- SSD longevity preserved
You can check the current status: sudo systemctl --no-pager status fstrim.timer
HDMI audio latency on Linux
HDMI audio latency on Linux (especially on TVs) is a very common pain point, but the good news is: on your Debian 13 + Intel HD 530 + Dolphin setup, you can reduce it a lot with the right combination of PulseAudio/PipeWire tuning, TV settings, and Dolphin config.
I’ll give you a layered, practical approach, from big wins → fine tuning.
1️⃣ First: fix the TV side (BIGGEST latency source)
Most HDMI audio delay actually comes from the TV, not Linux.
On your TV, disable ALL of these:
Look for settings named: • ❌ Audio Processing • ❌ TruSurround / DTS / Dolby • ❌ Virtual Surround • ❌ Clear Voice • ❌ Auto Volume • ❌ Audio Sync / Lip Sync (set to 0)
Enable: • ✅ Game Mode (critical) • ✅ PCM audio (not Bitstream / Dolby)
📌 If your TV has HDMI input-specific settings, set Game Mode on that HDMI port.
This alone can reduce latency by 50–150 ms.
2️⃣ Use PipeWire (recommended for Debian 13)
Debian 13 defaults to PipeWire on many installs, but verify:
pactl info | grep “Server Name”
Expected:
Server Name: PulseAudio (on PipeWire)
If you see pure PulseAudio, I strongly recommend PipeWire.
Install PipeWire stack (safe):
sudo apt install pipewire pipewire-pulse wireplumber
Reboot after.
3️⃣ Reduce PipeWire audio buffer size (MAJOR improvement)
Create a user config:
mkdir -p ~/.config/pipewire nano ~/.config/pipewire/pipewire.conf.d/99-low-latency.conf
Paste this:
context.properties = { default.clock.rate = 48000 default.clock.quantum = 128 default.clock.min-quantum = 64 default.clock.max-quantum = 256 }
Save, then restart audio:
systemctl –user restart pipewire pipewire-pulse
What this does • Smaller buffers = less delay • 128 frames is safe and low-latency on Intel HDMI • No crackling on HD 530
⸻
4️⃣ Force Dolphin to use low-latency audio
In Dolphin → Config → Audio:
Backend • Audio Backend: Cubeb • Device: Default or HDMI
Settings • Latency: Low • Audio Stretching: ❌ Disabled • DSP HLE: ✅ Enabled (lower latency than LLE)
For Wii games: • Disable Dolby Pro Logic II
5️⃣ Reduce kernel audio scheduling latency (optional but good)
Enable performance governor during gameplay
sudo apt install cpupower sudo cpupower frequency-set -g performance
(You can automate this with gamemode, see below.)
6️⃣ Use GameMode (VERY recommended)
sudo apt install gamemode
Launch Dolphin with:
gamemoderun dolphin-emu
GameMode: • Prioritizes audio threads • Reduces scheduling jitter • Helps HDMI audio stability
7️⃣ Verify actual audio latency
Check current PipeWire settings:
pw-top
Look for: • Quantum ≈ 128 • Rate ≈ 48000
If you see 1024 or higher → latency is still high.
8️⃣ If latency is still noticeable (TV-dependent)
Best hardware workaround (near-zero latency) • Use 3.5mm analog output → TV / speakers • Or HDMI → audio extractor → speakers
HDMI audio via TVs is never zero-latency due to internal processing.
✅ Recommended final setup (summary)
Layer Setting TV Game Mode, PCM, no processing Audio stack PipeWire Buffer 128 frames Dolphin backend Cubeb Dolphin latency Low CPU Performance (via GameMode)
⸻
🎮 Expected real-world result • HDMI audio delay reduced to ~20–40 ms • Practically imperceptible for Dolphin • Tight audio sync for GameCube/Wii
Shader compilation stutter
Shader compilation stutter is the #1 remaining performance issue for Dolphin on Intel HD 530–class GPUs — but you can reduce it to the point where it’s barely noticeable.
Below is a battle-tested, Intel-specific tuning guide for your Debian 13 + Dolphin + i5-6500T arcade setup.
⸻
🎯 What causes shader stutter (quick context)
When a game first encounters a new effect: • Dolphin must compile a shader • The GPU pauses briefly • You feel a stutter
The goal is to: 1. Compile shaders earlier 2. Reuse them efficiently 3. Avoid blocking the render thread
⸻
1️⃣ Use the correct graphics backend (CRITICAL)
Dolphin → Graphics → General
Setting Value Backend Vulkan ✅ Adapter Intel HD Graphics 530 V-Sync ❌ Disabled Shader Compilation Asynchronous (see below)
👉 Vulkan has dramatically better async shader handling than OpenGL on Intel.
⸻
2️⃣ Enable asynchronous shader compilation (MOST IMPORTANT)
Dolphin → Graphics → Advanced
Enable all of the following: • ✅ Compile Shaders Before Starting • ✅ Compile Shaders on Startup • ✅ Enable Asynchronous Shader Compilation • ✅ Enable Asynchronous Ubershaders • ❌ Disable “Skip EFB Access” (leave default)
Why this matters • Prevents shader compilation from blocking gameplay • Moves compilation off the render thread • Reduces visible stutter by ~80–90%
⸻
3️⃣ Use Hybrid Ubershaders (best balance)
Dolphin → Graphics → Advanced → Ubershaders • Ubershader Mode: 👉 Hybrid
Why Hybrid is best on HD 530 • Full Ubershaders = no stutter but lower FPS • Hybrid = minimal stutter, minimal FPS loss • Perfect for GameCube/Wii at 1080p
⸻
4️⃣ Increase shader cache persistence (Linux-side)
Dolphin stores shaders under:
~/.cache/dolphin-emu/
Make sure this directory: • Is on your SSD • Is not cleaned automatically
Check:
ls -ld ~/.cache/dolphin-emu
If you use any cleanup tools: • ❌ Do NOT clear this directory • ❌ Do NOT mount /home with noatime + aggressive cleanup scripts
⸻
5️⃣ Precompile shaders before gameplay (manual warm-up)
First launch after install or GPU driver update: 1. Start the game 2. Let it sit on the title screen for 2–3 minutes 3. Enter gameplay areas slowly the first time
This allows Dolphin to: • Populate shader cache • Prevent stutter later
After 1–2 play sessions, stutter almost disappears permanently.
⸻
6️⃣ Reduce shader variety (Intel-specific tuning)
Dolphin → Graphics → Enhancements
Recommended for HD 530:
Setting Value Internal Resolution 2× or 3× Anti-Aliasing ❌ Disabled Anisotropic Filtering 2× or 4× Scaled EFB Copy ❌ Disabled Force Texture Filtering ❌ Disabled
This: • Reduces shader permutations • Lowers compile frequency • Improves consistency
⸻
7️⃣ Force shader threads to stay responsive (GameMode)
You already installed GameMode — perfect.
Launch Dolphin with:
gamemoderun dolphin-emu
This: • Gives shader compilation threads higher priority • Reduces CPU scheduling stalls • Helps Vulkan pipeline creation
⸻
8️⃣ Mesa driver tuning (safe + effective)
Make sure you have:
sudo apt install mesa-vulkan-drivers mesa-utils
Verify Vulkan:
vulkaninfo | grep driver
You should see Intel ANV.
Optional (safe):
export MESA_SHADER_CACHE_MAX_SIZE=5G
Add to ~/.profile for persistence.
⸻
9️⃣ What NOT to do (important)
❌ Don’t disable shader cache ❌ Don’t clear ~/.cache/dolphin-emu ❌ Don’t use OpenGL on Intel HD 530 ❌ Don’t use Full Ubershaders on this GPU
⸻
✅ Expected real-world result
After 1–2 play sessions per game: • Initial micro-stutter only once • Near-zero stutter afterward • Smooth 60 FPS • Console-like experience
This is as good as Dolphin gets on Intel HD 530.
⸻
🎮 Final recommended shader setup (TL;DR) • Backend: Vulkan • Async shaders: ON • Ubershaders: Hybrid • Shader cache: Persistent • Launch with: gamemoderun
⸻
If you want, next I can: • Create a “first-run shader warmup” workflow • Auto-launch Dolphin directly into a game • Tune per-game shader settings (Mario Kart, Smash, Zelda, etc.) • Optimize Wii MotionPlus / controller latency
Just tell me which game you care about most 🎯
Proxmox
pve-firewall status
Uncomplicated Firewall (UFW)
sudo ufw allow sshsudo ufw reload
iptables
- To be defined
nftables
- To be defined