All configs for my Linux, macOS, and WSL environments. I use NixOS modules to manage everything as configuration-as-code. Most of it is cross platform via home-manager. Platform bindings (NixOS, nix-darwin) handle the rest.
This repo only manages my workstations. Servers live in home-lab.
Ava, my linux workstation
- WM: Hyprland + Waybar
- Launcher: Rofi
- Notifications: Dunst
- Terminal: Wezterm
- Shell: Nushell
- Editor: Neovim
- Browser: Firefox
hosts/
: Machine-specific configs. They manage hardware, disk formats, or anything that can't be generalized.platforms/
: Modules extending other platforms with new programs and services. Many of these could be upstreamed.home-manager/
nixos/
editor/
(My equivalent of nixvim. Self-contained, no~/.config
files.)
platforms/*/modules/presets/
: Opinionated config for a specific program or service.platforms/*/modules/profiles/
: Groupings of presets.
Everything in this repo can be used piecemeal in other flakes. Modules have no side effects unless you .enable
them.
Modules are divided into platforms and configs.
dotfiles.nixosModules.*-platform
: Extends platforms with new programs, services, and DSLs.dotfiles.nixosModules.*-config
: Opinionated configurations for programs and services.
Configs are available under the psychollama.*
namespace.
# Use my opinionated starship prompt.
config.psychollama.presets.starship.enable = true;
You can try my editor without installing it because it's built as a standalone package:
nix run 'github:PsychoLlama/dotfiles#editor' ./
You can also build your own variant. It has access to all options from nixosModules.editor-platform
.
flake.lib.dotfiles.buildEditor {
inherit pkgs;
modules = [ ];
}
I don't expect anyone to use these. I break stuff often. It's mostly for my own experiments.
Reference documentation generated and published here.