Compare commits
7 Commits
feat/herme
...
feat/home-
| Author | SHA1 | Date | |
|---|---|---|---|
| afbb6b6357 | |||
| 424e66c78f | |||
| 36359de6aa | |||
|
|
10b8565fd6 | ||
|
|
f672696b8e | ||
| 0980dca455 | |||
| 96bc20ab70 |
@@ -25,12 +25,3 @@ This document outlines the development conventions for this NixOS-based infrastr
|
||||
- **Secrets:** Secrets are managed with `agenix`. Edit encrypted files with `agenix -e <file>`.
|
||||
- **Modularity:** Structure configurations into logical, reusable modules under `modules/`. New modules should be registered in `modules/nixos/default.nix` to be available to all hosts.
|
||||
- **Error Handling:** Ensure Nix expressions are robust and handle potential evaluation errors gracefully.
|
||||
|
||||
## Workflow
|
||||
|
||||
- New feature → clean branch from `origin/master` → push → PR on Gitea
|
||||
- Branch naming: `feat/description` (features), `fix/description` (bugs/docs)
|
||||
- Always branch from `origin/master`, never from another feature branch
|
||||
- Submodule changes: commit submodule update in parent repo (the parent commit pins the submodule commit)
|
||||
- PR title should describe the change; body should explain motivation + summary
|
||||
- After PR merge, delete the feature branch
|
||||
|
||||
Submodule assets/compose updated: 1ec22ff3fc...d3f2e3b7b9
12
flake.nix
12
flake.nix
@@ -12,10 +12,17 @@
|
||||
url = "git+https://git.lix.systems/lix-project/lix?ref=main";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
self.submodules = true;
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-25.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
dotfiles = {
|
||||
url = "git+https://code.lazyworkhorse.net/gortium/dotfiles.git";
|
||||
flake = false;
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, agenix, lix, ... }@inputs:
|
||||
outputs = { self, nixpkgs, agenix, lix, home-manager, dotfiles, ... }@inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
keys = import ./lib/keys.nix;
|
||||
@@ -56,6 +63,7 @@
|
||||
agenix.nixosModules.default
|
||||
./hosts/lazyworkhorse/configuration.nix
|
||||
./hosts/lazyworkhorse/hardware-configuration.nix
|
||||
./modules/nixos/home-manager/default.nix
|
||||
./modules/nixos/filesystem/hoardingcow-mount.nix
|
||||
./modules/nixos/services/docker_manager.nix
|
||||
./modules/nixos/services/open_code_server.nix
|
||||
|
||||
@@ -207,6 +207,7 @@
|
||||
ai = {
|
||||
path = self + "/assets/compose/ai";
|
||||
envFile = config.age.secrets.containers_env.path;
|
||||
ports = [ 22000 ]; # Syncthing TCP sync
|
||||
};
|
||||
|
||||
cloudstorage = {
|
||||
|
||||
12
modules/nixos/home-manager/default.nix
Normal file
12
modules/nixos/home-manager/default.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ config, pkgs, lib, inputs, ... }:
|
||||
|
||||
{
|
||||
imports = [ inputs.home-manager.nixosModules.home-manager ];
|
||||
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
|
||||
users.gortium = import ./dotfiles.nix { inherit config pkgs lib inputs; };
|
||||
};
|
||||
}
|
||||
87
modules/nixos/home-manager/dotfiles.nix
Normal file
87
modules/nixos/home-manager/dotfiles.nix
Normal file
@@ -0,0 +1,87 @@
|
||||
{ config, pkgs, lib, inputs, ... }:
|
||||
|
||||
{
|
||||
home = {
|
||||
username = "gortium";
|
||||
homeDirectory = "/home/gortium";
|
||||
stateVersion = "25.11";
|
||||
};
|
||||
|
||||
# Import dotfiles as-is via home.file (Option 3 — git way)
|
||||
# Hyprland
|
||||
home.file.".config/hypr/hyprland.conf".source =
|
||||
"${inputs.dotfiles}/hypr/.config/hypr/hyprland.conf";
|
||||
home.file.".config/hypr/mocha.conf".source =
|
||||
"${inputs.dotfiles}/hypr/.config/hypr/mocha.conf";
|
||||
home.file.".config/hypr/hyprlock.conf".source =
|
||||
"${inputs.dotfiles}/hypr/.config/hypr/hyprlock.conf";
|
||||
home.file.".config/hypr/hypridle.conf".source =
|
||||
"${inputs.dotfiles}/hypr/.config/hypr/hypridle.conf";
|
||||
home.file.".config/hypr/hyprpaper.conf".source =
|
||||
"${inputs.dotfiles}/hypr/.config/hypr/hyprpaper.conf";
|
||||
home.file.".config/hypr/hyprshade.toml".source =
|
||||
"${inputs.dotfiles}/hypr/.config/hypr/hyprshade.toml";
|
||||
|
||||
# Host-specific overrides: sourced from hyprland.conf
|
||||
# hyprland.conf includes: source = ~/.config/hypr/hosts/$HOST.conf
|
||||
# This file is created per-host and contains only the diffs.
|
||||
home.file.".config/hypr/hosts" = {
|
||||
source = "${inputs.dotfiles}/hypr/.config/hypr/hosts";
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
# Zsh
|
||||
home.file.".zshrc".source = "${inputs.dotfiles}/zsh/.zshrc";
|
||||
|
||||
# Tmux
|
||||
home.file.".tmux.conf".source = "${inputs.dotfiles}/tmux/.tmux.conf";
|
||||
|
||||
# Neovim
|
||||
home.file.".config/nvim" = {
|
||||
source = "${inputs.dotfiles}/nvim/.config/nvim";
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
# Wallpapers
|
||||
home.file.".config/wallpapers" = {
|
||||
source = "${inputs.dotfiles}/wallpapers/.config/wallpapers";
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
# Wofi
|
||||
home.file.".config/wofi" = {
|
||||
source = "${inputs.dotfiles}/wofi/.config/wofi";
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
# Packages that should be installed with home-manager
|
||||
home.packages = with pkgs; [
|
||||
# CLI tools
|
||||
ripgrep
|
||||
fd
|
||||
jq
|
||||
fzf
|
||||
bat
|
||||
eza
|
||||
zoxide
|
||||
|
||||
# Development
|
||||
git
|
||||
lazygit
|
||||
gh
|
||||
|
||||
# Hyprland extras
|
||||
hyprshot
|
||||
swaynotificationcenter
|
||||
swww
|
||||
wofi
|
||||
waybar
|
||||
kitty
|
||||
foot
|
||||
brightnessctl
|
||||
playerctl
|
||||
udiskie
|
||||
hyprshade
|
||||
pyprland
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user