Skip to content

PsychoLlama/dotfiles

Repository files navigation

About

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.

Linux desktop screenshot

Ava, my linux workstation

Stack

Structure

  • 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.
  • platforms/*/modules/presets/: Opinionated config for a specific program or service.
  • platforms/*/modules/profiles/: Groupings of presets.

Composition

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;

Editor (neovim)

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.

Documentation

Reference documentation generated and published here.