nixos-config

Program Configurations

This document describes the configured programs and their customizations in this NixOS configuration.

Installation

For installing the NixOS system, see the Installation Guide. The system includes a universal installer that:

Development Tools

Helix Editor

Helix is configured as the primary text editor with modern features:

Configuration location: home/programs/editor.nix

Terminal Emulators

Kitty

Modern, GPU-accelerated terminal emulator with:

Lightweight Wayland-native terminal with:

Shells

Nushell

Modern shell with structured data support:

Bash

Default shell with customizations:

Development Environment

Version Control

Git

Configured with:

Language Support

Nix

Rust

Python

Other Languages

Desktop Applications

Web Browsers

Firefox

Configured with:

Brave

Privacy-focused browser with:

File Management

Nautilus

GNOME file manager with:

Yazi

Terminal file manager with:

Communication

Discord

Desktop client with:

System Utilities

System Monitoring

Htop

Process viewer with:

Btop

Modern system monitor with:

Clipboard Management

Cliphist

Clipboard history manager:

Application Launcher

Fuzzel

Wayland-native launcher with:

Multimedia

Audio

PipeWire

Low-latency audio server with:

Video

MPV

Video player with:

Security Tools

Password Management

KeePassXC

Cross-platform password manager:

Encryption

Age

Modern file encryption:

Gaming

GameMode

Feral Interactive’s GameMode daemon optimizes system performance during gameplay:

Configuration location: hosts/jokyv/default.nix (programs.gamemode)

Steam

Steam client with full gaming features:

Installed in Home Manager home/gaming.nix. Activate with just game.

PipeWire Low‑Latency Audio

Audio pipeline tuned for gaming responsiveness:

Configuration: hosts/jokyv/services.nix (services.pipewire.extraConfig)

Additional Utilities

Optional tools configured in home/gaming.nix:


Automation

Task Runner

Just

Command runner with:

Customization

AI Assistant

Claude Code

Claude AI assistant integration with custom commands and skills:

Available Commands

Command Description
/work-setup Project initialization and environment setup
/work-prime Context priming for better AI understanding
/work-maintain Project maintenance (security scan, cleanup)
/work-sync-docs Sync documentation - update CLAUDE.md and docs/
/work-git-commit Smart git commit with conventional commits
/work-issue Issue analysis and resolution
/work-release-notes Generate release notes

Available Skills

Skill Description
smart-git-commit Intelligent commit message generation

Theming

All programs are configured to use the unified theme from Stylix:

Keybindings

Consistent keybindings across applications where applicable:

Configuration Management

Program configurations are modularized in home/programs/:

Each module can be imported independently and customized per host or user.

Adding New Programs

To add a new program:

  1. Create a new file in home/programs/ if it doesn’t exist
  2. Add the program configuration
  3. Import the module in home/default.nix
  4. Test with home-manager switch --flake .#hostname
  5. Commit changes with a descriptive message

Example:

# home/programs/new-program.nix
{
  config,
  pkgs,
  ...
}: {
  home.packages = with pkgs; [ new-program ];

  programs.new-program = {
    enable = true;
    settings = {
      # Configuration options
    };
  };
}