Skip to content

Latest commit

 

History

200 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

axseem's dotfiles

Personal NixOS and macOS (nix-darwin) configuration. Most of the config files work on other distros too.

Primary remote is Codeberg (axseem/dots); GitHub mirror: axseem/dots.

Structure

  • hosts/: Host-specific configurations
    • darwin/: macOS hosts (e.g., macbook)
    • nixos/: NixOS hosts (e.g., ideapad)
  • modules/: Reusable modules
    • common/: Shared modules for both NixOS and Darwin (fonts, nix settings)
    • darwin/: macOS-specific modules (homebrew, system, dev-tools)
    • nixos/: NixOS-specific modules (desktop, hardware, security, services, system)
    • home/: Home Manager modules
      • common/: Cross-platform (cli, fish, git, tmux, vscodium)
      • linux/: Linux-specific (apps, media, ui, xdg)
  • config/: Dotfiles symlinked via Home Manager (fish, ghostty, hypr, rofi, etc.)
  • nix/: Devshell configuration

Development

Enter the repository environment explicitly with nix develop. The repository does not use .envrc because direnv evaluates that file with Bash.

Modules

This configuration exposes several atomic modules that you can import into your own flake.

NixOS Modules (nixosModules)

  • Common: nix, fonts
  • Desktop: hyprland, display-manager
  • Hardware: audio, bluetooth, graphics, power
  • System: boot, locale, networking, dev-tools, audio-production
  • Services: system-services, virtualization, searxng-local (pulls in lazy-socket automatically), lazy-socket
  • Security: hardening

Darwin Modules (darwinModules)

  • Common: nix, fonts
  • Darwin: homebrew

Home Manager Modules (homeManagerModules)

  • Common (cross-platform):
    • fish: Fish shell configuration
    • tmux: Persistent terminal workspace with automatic Fish attachment
    • vscodium: VSCodium configuration
    • git: Git configuration
    • cli: Command line tools
    • node: Latest Node.js (nixpkgs default)
  • Linux:
    • ui: GTK/QT theming
    • xdg-linux: Linux XDG config file mappings
    • cli-linux: Linux-specific CLI tools
    • media: Media players and editors
    • apps: GUI applications
    • desktop-utils: Desktop utilities (file managers, rofi, etc.)

Usage

You can use this flake as an input in your own configuration to import specific modules.

NixOS

{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    axseem.url = "git+https://codeberg.org/axseem/dots";
  };

  outputs = { nixpkgs, axseem, ... }: {
    nixosConfigurations.my-machine = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        axseem.nixosModules.hyprland
        axseem.nixosModules.audio
        ./configuration.nix
      ];
    };
  };
}

macOS (nix-darwin)

{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    nix-darwin.url = "github:LnL7/nix-darwin";
    axseem.url = "git+https://codeberg.org/axseem/dots";
  };

  outputs = { nixpkgs, nix-darwin, axseem, ... }: {
    darwinConfigurations.my-mac = nix-darwin.lib.darwinSystem {
      system = "aarch64-darwin";
      modules = [
        axseem.darwinModules.homebrew
        axseem.darwinModules.fonts
        ./configuration.nix
      ];
    };
  };
}

Installation

NixOS

git clone https://codeberg.org/axseem/dots.git
cd dotfiles
sudo nixos-rebuild switch --flake .#ideapad

macOS

git clone https://codeberg.org/axseem/dots.git
cd dotfiles
darwin-rebuild switch --flake .#macbook

About

axseem's Linux Workstation Configuration | Mirror of https://codeberg.org/axseem/dots

Topics

Resources

Stars

20 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages