Linux desktop tools · self-hosted infrastructure · gaming utilities
Portfolio · Selected work · Omarchy suite · Working set · More repos
Lakewood, Colorado · originally from Milwaukee, Wisconsin
I'm Michael Bolens. I build Linux desktop extensions, tools for running self-hosted services, and utilities for gaming on Linux. I like being able to read a configuration, see what a tool will do, and diagnose it when it breaks.
Keep Steam launch options manageable on Linux. Use the same launch command for each game, with per-game settings in layered config files. Preview the resolved configuration and launch chain before starting a game.
Shell · TypeScript · Python · User guide · Architecture
Keep DNS records in sync when your public IP changes. Supports multiple providers and accounts, with configuration checks and a dry run to preview updates. Includes CLI, Docker, and MCP interfaces.
TypeScript · User guide · Architecture
Investigate known Arch User Repository supply-chain incidents. Scan for indicators of compromise, collect reports, and run recovery workflows for supported campaigns.
Rust · User guide
Manage Millennium, a Steam client customization framework, on Linux, macOS, and Windows. Install and upgrade it, diagnose problems, or repair and roll back an installation from the command line. Includes theme management and an MCP server.
Go · Shell · PowerShell · User guide
Extensions for Omarchy Shell that keep desktop behavior visible and under the user's control.
- App Drawer reveals or collapses stock-bar widgets independently on each monitor, with shared pins for widgets that should stay visible. User guide.
- Multi-Monitor Workspaces assigns stable, non-overlapping workspace banks across any number of displays. User guide.
- Privacy Devices shows and controls microphone, audio output, camera, location, screen-sharing, and capture activity. User guide.
- P2P Services discovers and controls local peer-to-peer and overlay-network services from the bar, including supported Docker and Podman containers. User guide.
- Desktop: Arch Linux, CachyOS, Omarchy, Hyprland, KDE Plasma, and Steam.
- Languages: TypeScript, Rust, Go, QML, Python, PowerShell, Bash, and Fish.
- Services and automation: Docker Compose, Caddy, systemd, GitHub Actions, MCP, and DNS.
Workstation and shells
- Agent skills: maintained skill forks for coding agents, covering development, reviews, CI, web interfaces, and Linux operations, with recorded upstream provenance.
- PowerShell profile: a modular, cross-platform shell toolkit with lazy-loaded feature fragments.
- Fish configuration: shell modules, functions, and package-managed plugins for an Omarchy workstation.
- Waybar configuration: a modular Wayland bar setup for KDE Plasma and Hyprland.
- appicon: resolves desktop and brand icons to local files for bars, launchers, scripts, and MCP clients. User guide.
- Arch configuration: versioned system and user configuration for my primary workstation.
Infrastructure and remote environments
- Homelab: independently deployable Docker Compose stacks with documented storage, networking, and upgrades. User guide.
- Kasm workspace images: custom Arch Linux, CachyOS, and Fedora-based browser desktop images.
Media and publishing
- audio-utils: verified Linux tools for lossless conversion, library audits, playlists, and audiobook workflows.
- image-utils: raster conversion, thumbnails, metadata inspection, and image-library checks. User guide.
- video-utils: remuxing, encoding viewing copies, stream inspection, and video-library audits. User guide.
- archiving-utils: archive packaging, inspection, comparison, and recovery with round-trip checks. User guide.
- bolens.github.io: the source for my HTML, CSS, and SVG portfolio. Visit the site.
The image, video, and archive suites are early implementations. They retain
source files and require --apply to write outputs. Their guides document
format support and limits.
Away from the keyboard, I spend time camping, hiking, cycling, playing disc golf, and exploring Colorado's craft beer scene.
Contributing to this profile
Run bash scripts/install-git-hooks once per clone. The pre-commit hook runs
fast staged checks; pre-push runs the broader local CI gate. See the
delivery playbook for validation and pull request requirements.




