.files/nix/configurations/tungsten.nix
Léana 江 8e540bcfb9
packages: rework package set organisation
make package set self referential

collapse redundant files for package plumbing

rework packages overlay and simplify scope

update altiosevka font

make altiosevka an overlay instead

note

invert package logic

scope overlay

unify package overlay logic

fix overlay reference
2025-05-28 04:30:12 +02:00

195 lines
5.2 KiB
Nix

# Entry point to cherry pick modules
let
sources = import ../sources.nix;
hostname = "tungsten";
username = "leana";
in
{
config,
lib,
...
}: let
inherit (lib.modules) mkAliasOptionModule;
in {
imports = [
#
# Shorthands
#
(mkAliasOptionModule ["me"] ["users" "users" username])
(mkAliasOptionModule ["hm"] ["home-manager" "users" username])
#
# hostname
#
{_module.args = {inherit hostname;};}
#
# nixpkgs
#
{
nixpkgs = {
overlays = map import [
../overlays/agenix.nix
../overlays/disko.nix
../overlays/nur.nix
../overlays/wired-notify.nix
../overlays/nix-tree.nix
../packages/overlay.nix
];
# Set NIX_PATH and flake registry at the same time
# https://github.com/NixOS/nixpkgs/pull/254405
flake.source = sources.nixpkgs;
};
system.nixos.version = lib.substring 0 8 sources.nixpkgs.rev;
}
#
# NixOS modules
#
./tungsten/nixos/hardware-configuration.nix # generated
./tungsten/nixos/fs.nix
./tungsten/nixos/restic.nix
./tungsten/nixos/battery.nix
./tungsten/nixos/audio.nix
./tungsten/nixos/connectivity.nix
./tungsten/nixos/input.nix
./tungsten/nixos/misc.nix
./tungsten/nixos/display.nix
./tungsten/nixos/gui.nix
./tungsten/nixos/locale.nix
./tungsten/nixos/unfree-predicate.nix
./tungsten/nixos/programs.nix
../nixosModules/common/disable-command-not-found.nix
../nixosModules/common/network.nix
../nixosModules/common/sudo-conf.nix
../nixosModules/common/system-nixconf.nix
../nixosModules/extra/layouts
../nixosModules/extra/zram.nix
../nixosModules/extra/leana.nix
../nixosModules/extra/macbook-swap-fn-ctrl.nix
../nixosModules/extra/macbook-swap-cmd-opt.nix
#
# Extern modules
#
(sources.disko + "/module.nix")
../disko/tungsten/btrfs.nix
(sources.agenix + "/modules/age.nix")
((import sources.url-eater).nixosModules.default)
(sources.nixos-hardware + "/apple/macbook-air/6")
(import (sources.lix-module + "/module.nix") {lix = sources.lix;})
#
# home-manager
#
(sources.home-manager + "/nixos")
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
sharedModules = [{home.stateVersion = lib.mkDefault config.system.stateVersion;}];
};
hm.imports = [
#
# hostname
#
{_module.args = {inherit hostname;};}
#
# home modules
#
./tungsten/home/programs.nix
./tungsten/home/misc.nix
./tungsten/home/firefox.nix
./tungsten/home/xmobar.nix
# Language server packages, etc
./tungsten/home/dev.nix
../homeModules/common/btop
../homeModules/common/cmus
../homeModules/common/fcitx5
../homeModules/common/fish
../homeModules/common/ranger
../homeModules/common/starship
../homeModules/common/tmux
../homeModules/common/vim
../homeModules/common/wired
../homeModules/common/atuin.nix
../homeModules/common/battery-notify.nix
../homeModules/common/direnv.nix
../homeModules/common/feh.nix
../homeModules/common/firefox.nix
../homeModules/common/fzf.nix
../homeModules/common/git.nix
../homeModules/common/gpg.nix
../homeModules/common/kitty.nix
../homeModules/common/leana.nix
../homeModules/common/locale.nix
../homeModules/common/neovim.nix
../homeModules/common/packages.nix
../homeModules/common/password-store.nix
../homeModules/common/sioyek.nix
../homeModules/common/user-nixconf.nix
#
# Extern modules
#
(sources.agenix + "/modules/age-home.nix")
((import sources.wired-notify).homeManagerModules.default)
];
}
#
# Secrets
#
{
age.secrets = {
wpa_password.file = "${../secrets/wpa_password.age}";
restic_backblaze_pwd.file = "${../secrets/restic_backblaze_pwd.age}";
restic_backblaze_repo.file = "${../secrets/restic_backblaze_repo.age}";
restic_backblaze_env.file = "${../secrets/restic_backblaze_env.age}";
four_pwd.file = "${../secrets/four_pwd.age}";
restic_four_pwd.file = "${../secrets/restic_four_pwd.age}";
sgbk_pwd.file = "${../secrets/sgbk_pwd.age}";
restic_sgbk_pwd.file = "${../secrets/restic_sgbk_pwd.age}";
two_pwd.file = "${../secrets/two_pwd.age}";
};
hm = {
age.secrets = {
sshconfig = {
file = "${../secrets/sshconfig.age}";
path = "/home/leana/.ssh/config";
};
ltex_dict = {
file = "${../secrets/ltex_dict.age}";
path = "/home/leana/.config/ltex_dict";
};
};
};
}
];
}