No description
  • Nushell 61.8%
  • Lua 18.3%
  • Python 16.9%
  • Shell 1.7%
  • JavaScript 0.6%
  • Other 0.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Joshua Marsh (icub3d) d02b460699
Fix audio device churn, GPU selection, boot time, and mirror ranking
Several unrelated issues that surfaced while chasing "slow internet":

alsa-card-order.conf, install-alsa-card-order.nu (new)
  The DP KVM / USB switcher returns devices on two hubs ~65s apart, so
  ALSA card indices rotate on every switch (BRIO 6->4, Razer 4->5,
  Yeti 5->6). PipeWire creates nodes at the new paths but leaves the old
  ones behind retrying a path that now belongs to another device:
    spa.alsa: 'front:4': playback open failed: No such file or directory
  Duplicates share a node name, and both the default sink and
  module-stream-restore resolve by name, so Firefox reattached to a dead
  node, stalled ~60s on cubeb stream init, then played video with no
  audio. Pin indices by VID:PID so enumeration order stops mattering.
  Helper rather than post-install: the VID:PIDs are antimond-specific.

wayland.conf
  Firefox's RDD process opened /dev/nvidia0 and renderD130 on a card with
  no monitors attached. Not DRM device selection -- libglvnd loads EGL
  vendors from /usr/share/glvnd/egl_vendor.d in filename order, so
  10_nvidia.json won over 50_mesa.json for every EGL client. Restrict the
  vendor list to mesa. Verified with eglinfo: 5 EGL devices -> 4, and the
  NVIDIA vendor string disappears. Does not affect ollama (environment.d
  is the user manager; both ollama units are system services).

ollama-cuda.service
  ExecStartPost blocked "started" for ~7.3s of a 10.2s userspace boot, and
  WantedBy=multi-user.target propagated that to graphical.target.
  Background the warm; it stays in the cgroup, so the model is still
  resident ~7s in. Userspace boot 10.181s -> 3.239s.

liquidcfg-user.service
  Raced the logind uaccess ACL on /dev/hidraw* and failed at every boot,
  leaving fans on firmware curves and skipping LED setup. Retry up to 30s.

reflector.conf
  Root cause of the slow updates: --sort age picked freshly-synced but
  slow mirrors, one serving ~6 KB/s at position 1. Rank by rate over a
  20-mirror pool.

post-install/ollama.nu
  Wrote its own shorter copy of the AMD drop-in to the same path
  setup-ollama-gpus.nu uses, dropping CUDA_VISIBLE_DEVICES=-1 and letting
  the AMD instance claim the NVIDIA card. Read the one source instead.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DYuU48VPGdVmsqzrGc2Qy5
2026-09-02 14:08:07 -06:00
.themes/marshians/gnome-shell more cleanup 2025-04-09 11:03:51 -06:00
.vscode more cleanup 2025-04-09 11:03:51 -06:00
agents/skills ledstrip: run as a daemon holding the BLE connection 2026-08-16 10:54:27 -06:00
archive noctalia: migrate from quickshell fork to 5.x native binary 2026-08-22 09:25:59 -06:00
dotfiles Fix audio device churn, GPU selection, boot time, and mirror ranking 2026-09-02 14:08:07 -06:00
helpers Fix audio device churn, GPU selection, boot time, and mirror ranking 2026-09-02 14:08:07 -06:00
nushell nu run is now a command 2026-08-18 08:10:24 -06:00
nvim ollama stuff and nvim cleanup 2026-08-06 10:38:09 -06:00
packages Fix audio device churn, GPU selection, boot time, and mirror ranking 2026-09-02 14:08:07 -06:00
vms ctrl+g for cd to git root 2026-06-17 17:10:25 -06:00
windows modernizing a bit 2025-10-24 21:48:47 -06:00
.gitignore dashboard stuff 2026-05-23 13:13:54 -06:00
devdocs.json more terminal config 2023-07-21 15:27:56 -06:00
etc-greetd-config.toml feat: add boot-login.nu helper script and document systemd-boot & greetd setup 2026-05-25 12:37:33 -06:00
etc-pam-d-greetd auto keyring 2026-06-07 16:16:49 -06:00
install.nu generic skills 2026-06-03 16:01:37 -06:00
LICENSE refactor 2024-01-12 18:26:58 -07:00
network_issue_summary.txt more config changes 2025-12-05 22:17:58 -07:00
README.md noctalia: migrate from quickshell fork to 5.x native binary 2026-08-22 09:25:59 -06:00
scdaemon.conf various stuff 2023-12-20 16:39:51 -07:00
vscode-keybindings.json keybindings unification 2026-02-19 15:56:36 -07:00
vscode-settings-vim.json keybindings unification 2026-02-19 15:56:36 -07:00
webpackDevServer.config.js.patch initial commit 2022-06-24 14:07:16 -06:00
xterm-24bit.terminfo initial commit 2022-06-24 14:07:16 -06:00

dotfiles

My dotfiles

Arch Linux

For faster pacman downloads during the initial bootstrap, uncomment the ParallelDownloads line in /etc/pacman.conf (with =):

sed -i 's/#ParallelDownloads = 5/ParallelDownloads = 5/g' /etc/pacman.conf

(update-system does this automatically afterwards.)

Do a basic install — make sure you include:

base base-devel linux linux-firmware nushell git iptables-nft sudo [amd-ucode|intel-ucode] pipewire neovim efivar efibootmgr networkmanager

Dotfiles Installation

mkdir -p ~/dev
git clone https://github.com/icub3d/dotfiles ~/dev/dotfiles
cd ~/dev/dotfiles
nu install.nu

install.nu symlinks the nushell config and then calls update-system, which installs paru, the packages listed in .selected_packages, and runs the matching packages/post-install/*.nu scripts.

Boot & Login Manager (systemd-boot & greetd)

We configure systemd-boot loader entries with specific PCIe performance profiles, standard system loglevels, and beautiful Catppuccin console (TTY) colors. In addition, we configure greetd with tuigreet as the login manager using a matching console theme that launches a niri session.

Configuration Files

  • systemd-boot entry: /boot/loader/entries/arch.conf (sets kernel parameters and console palette)
  • greetd greeter: /etc/greetd/config.toml (uses tuigreet configured to launch niri-session)

Helper Script

A dedicated helper script is provided at helpers/boot-login.nu to audit and apply these configurations safely.

🔍 Run status check / audit:

To check if your local configurations are active and in-sync with the repository:

nu helpers/boot-login.nu check

# Run with sudo to view full detailed kernel options and partition UUID audit:
sudo nu helpers/boot-login.nu check

⚙️ Apply configurations:

You can deploy the greetd configuration and the systemd-boot loader entry together or separately:

# Apply both configurations and check status (recommended)
sudo nu -c "use helpers/boot-login.nu; boot-login apply-all"

# Or apply them individually:
sudo nu -c "use helpers/boot-login.nu; boot-login apply-boot"
sudo nu -c "use helpers/boot-login.nu; boot-login apply-greetd"

Note

apply-boot dynamically auto-detects the root partition's UUID using findmnt. You can optionally override this by passing the --uuid parameter:

sudo nu -c "use helpers/boot-login.nu; boot-login apply-boot --uuid 'your-custom-uuid'"

Setup Git

Add this to ~/.gitconfig.local:

[user]
	name = Joshua Marsh (icub3d)
	email = joshua.marshian@gmail.com
	signingkey = [KEY]

If you want GitHub auth (gh is installed via the package manifests):

gh auth login
gh auth setup-git

Syncthing

  • Enable syncthing
systemctl enable --now --user syncthing

3rd Monitor Not Working

I kept cycling the power (unplug from monitor) until it finally was recognized?!?!?

Firefox / Bitwarden Lag (Multi-GPU)

If you experience "bursty" typing lag in Firefox or Bitwarden popups on a multi-GPU setup (e.g., AMD + NVIDIA), it is likely due to the compositor trying to sync frames across GPUs.

The Fix:

  1. Prioritize the AMD card for wlroots-based compositors in ~/.config/environment.d/wayland.conf:
WLR_DRM_DEVICES=/dev/dri/card1:/dev/dri/card0
  • card1: Primary AMD GPU (7900 XTX)
  • card0: Integrated AMD GPU
  • Excluded card2: NVIDIA GPU (reserved for AI/CUDA)
  1. For Niri (which uses the Smithay backend and ignores WLR_DRM_DEVICES), ignore the Nvidia GPU in ~/.config/niri/config.kdl:
debug {
    ignore-drm-device "/dev/dri/renderD130" // Nvidia GPU
}

GPU Helper Script: Use nu helpers/gpu.nu to check clocks and performance levels. If UI stuttering persists during video playback, you can force the AMD GPU into high-performance mode:

nu -c 'use helpers/gpu.nu; gpu set-perf high'

Docker Slow Stopping

sudo systemctl edit docker and add:

[Unit]
After=containerd.service
Wants=containerd.service

Firefox Theme

https://color.firefox.com/?theme=XQAAAAINAQAAAAAAAABBKYhm849SCia2CaaEGccwS-xMDPr6vjCkinuVw7Rh0WX8gM_c2TvB3-esAFTiupayP4GQLS2fI8oYy0uawh_8cVtu99eOYhDmnCmqQ8gsax812SPJeRBaP8FQlXs_t5GJqRtQcDC0dvNpFyxMhn5I7pdRo_WGVHACD5lUOjsRZECYOmTUC3L6m4McnTwSV2UXD0rdARNAQCEOTLz_kod6JZdDs1H0wDNLORmuPzQn-__Dpm7g

GUI Links