| atuin | ||
| bash | ||
| git | ||
| gitui | ||
| hypr | ||
| kitty | ||
| mako | ||
| nixos | ||
| nvim | ||
| sddm | ||
| wallpapers | ||
| waybar | ||
| wofi | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
Custom environment
My personal development environment and dotfiles. The repository contains the configuration I use to keep the terminal, editor, shell history, and Git workflow consistent across machines.
Toolset
| Tool | Purpose |
|---|---|
| Kitty | Terminal emulator |
| Neovim | Editor and development environment |
| Starship | Fast, minimal shell prompt |
| direnv | Per-project environment variables |
| zoxide | Smarter directory navigation |
| Atuin | Searchable shell history |
| fzf | Fuzzy finding from the command line |
| eza | Modern replacement for ls |
| GitUI | Terminal UI for Git |
The shell configuration also includes shortcuts for Meson and Ninja builds,
sanitizer-assisted test runs, perf, FlameGraph, and systemd user scopes.
Repository layout
.
├── flake.nix # Reproducible NixOS entry point
├── nixos/ # Host and reusable NixOS modules
├── bash/ # Bash environment, aliases, and helper functions
├── atuin/ # Atuin configuration
├── gitui/ # GitUI key bindings
├── kitty/ # Kitty settings and color themes
├── nvim/ # Neovim configuration and plugin lockfile
└── wallpapers/ # Desktop wallpapers
Starship, direnv, zoxide, fzf, and eza do not currently have dedicated configuration directories tracked in this repository.
NixOS
The flake exposes the nixos host. Its machine-specific configuration lives
in nixos/hosts/nixos, while reusable settings are grouped by purpose in
nixos/modules. Packages are split into desktop, development, shell, and
general utility modules under nixos/modules/packages.
From the repository root, check and apply the configuration with:
nix flake check
sudo nixos-rebuild switch --flake .#nixos
On the first run, if flakes are not enabled in the currently booted system, pass the feature flags explicitly:
sudo nixos-rebuild switch \
--extra-experimental-features 'nix-command flakes' \
--flake .#nixos
Update the pinned Nixpkgs revision and rebuild with:
nix flake update
sudo nixos-rebuild switch --flake .#nixos
Codex is taken from a separately pinned Nixpkgs master input so it can be
updated without upgrading the stable NixOS package set:
nix flake update codex-nixpkgs
sudo nixos-rebuild switch --flake .#nixos
The codex-background-server user service starts automatically when hhhh
logs in and listens on the local Unix socket. Connect with
codex --remote unix://. Check its status with
systemctl --user status codex-background-server and view its logs with
journalctl --user -u codex-background-server.
Before using this configuration on another machine, regenerate or replace
nixos/hosts/nixos/hardware-configuration.nix and adjust the host name,
user, graphics driver, and system.stateVersion as appropriate.
Installation
Clone the repository, install the tools listed above using your system package manager, and link the configuration files into their expected locations. For example:
git clone git@github.com:Claucdan/Custom-environment.git
cd Custom-environment
ln -sfn "$PWD/nvim" "$HOME/.config/nvim"
ln -sfn "$PWD/kitty" "$HOME/.config/kitty"
ln -sfn "$PWD/atuin" "$HOME/.config/atuin"
ln -sfn "$PWD/gitui" "$HOME/.config/gitui"
Review .bashrc before sourcing or linking it: some aliases, paths, and helper
functions are tailored to my local development setup.