Merge home-manager into nixos

Previously the home-manager and nixos sections of my config had been
separated into different branches on the same repository. This commit
merges the home-manager modules into the directory, and convert the
"systems" that used to be on each branch into hosts and users.

The goal of this change is to make it easier to see the hosts and users
paradigm, as well as limit the number of locations the git repository is
installed. Additionally, having different branches tracking different
changes was silly for a git repository.
This commit is contained in:
Julia Lange 2024-11-11 21:01:02 -08:00
commit 86bc28d6d4
Signed by: Julia
SSH key fingerprint: SHA256:KI8YxpkPRbnDRkXPgCuQCVz181++Vy7NAvmQj8alOhM
87 changed files with 2870 additions and 29 deletions

39
hosts/jibril/default.nix Normal file
View file

@ -0,0 +1,39 @@
{ config, ... }:
{
imports = [
./hardware.nix
];
networking.hostName = "jibril";
nixpkgs.config.allowUnfree = true;
system.stateVersion = "23.05";
sops-nix = {
enable = true;
keyFile = "/etc/sops/age/keys.txt";
sopsFile = ./secrets.yaml;
secrets = {
wireless = {};
};
};
pipewire.enable = true;
polkit.enable = true;
bluetooth.enable = true;
wireless = {
enable = true;
networks = builtins.fromTOML (builtins.readFile ./networks.toml);
secretsFile = config.sops.secrets.wireless.path;
};
user.name = "pan";
user.timezone = "America/Los_Angeles";
tuigreet.enable = true;
hyprland.enable = true;
librewolf.enable = true;
fish.enable = true;
fish.setDefault = true;
syncthing.enable = true;
}

41
hosts/jibril/hardware.nix Normal file
View file

@ -0,0 +1,41 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/168fb358-6783-4b66-8eed-374769a14c88";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/2A27-6F56";
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/db71f8e9-74e6-40f8-b5c3-1dcf74510f3b"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
# high-resolution display
}

View file

@ -0,0 +1,8 @@
["TheKabal2.4"]
["DropboxGuest3.0"]
[foofoo2]
[Homura]
priority = 0

30
hosts/jibril/secrets.yaml Normal file
View file

@ -0,0 +1,30 @@
wireless: ENC[AES256_GCM,data:pQv+gdAW8W9nSEJkbXWex47iuuqgJMEELldFsmgk2Y08MDZ1ytXqlphTK/jbewD3tpz4v29fSuWamv1uZpxM2+c2zCuMVTdrhAf0i/Sjqd9CWP8NQvTDI3v8ps9REFzR7n7hywnkfOkDNwRkmavSfCxK5k9SQLNC7De6P811/Fundb9r6oeIH2OEDBkZEHw8gYndjy6cLDUE2SY/cmxRsKWhATsCLcWKOpQa86zlT9dr9nMtYVF1AN5T4JR/7QKqJ8UT4mvhAA0OEfKv0Cf3euH24vtBrv5YxwDT6tQpOABOyOy9mWLc+bXDID/HX4akeU1O6+eBSpNeRgpAcMfD6b/eqKAvDvnixHubu9GemVspmeoA/91i5B70u3kjm0EKup7KLXCp5RutLnLRczDPdfbCB7bEipeRyF8P+UCuhQ==,iv:WN7mGyHpaMDdLRpFGyDUQ2D9a0t/rucfyKroJYqaHPs=,tag:7KTzBEt30nqCJclDgiWuKg==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1ey3wr2wnkgny3dfgvnyrf0cptwzr7s5x464p2y9ya58lpay8lfrsds3y68
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuaHFJcnp0YkN5ZmRYWStz
OFlFKzFWV1pSaGdYQ2tlWkhvMFRYczQvdWtnCkwwYk84bStIeUNOWUhhSktUSWYz
V3FUNkdLUHFBVmwrb0J6QldjSlVDQmsKLS0tIGZrR2txN2grWS9RbmdRRzU3Ui83
SWl2NjQzWWtFY3dBdlhobi9rY0k0U1kKZm40e+gjMmNsQ/RmaY4rdlEr6gSLrTud
5FShEZkAkFOkl0FYdHLKPDrmBocrGRJP7gLPYgo1eT5w8LaGYlNmAA==
-----END AGE ENCRYPTED FILE-----
- recipient: age1n8936ux6ushjyz3kuumdrz63jcwsvz7qkfj66rrkgk8d78wl2dssgev4tm
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGVGJPYVVYd3RqbzkxNEg1
Nm9DN2Y3OC9yUUZtcGN6bjJjWllOVGxINmxjClR4NUpZQVRFdWdObDYwd1NMOWpT
OHNsUXJ1NUJlOFhTYks5RDAxaHhVZ2MKLS0tIGFaV2JYcWVSMmdFWnlSZlBPTEJi
Ky83VFhiVE9wK01UMDlSbnIrd2d2SHcKp6mF8PaR0ItrvLHpEgMe6fwuboyrrs9y
7Ct6qZ1SN/4f/xJpDP2qiaQ4KTZzY1BlC3isT3CWeajOQhL/y5JCOw==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-11-07T21:12:36Z"
mac: ENC[AES256_GCM,data:z0ePEvsEKvcMca2x2qjTsSBwk+qI3jd8h2uAnSsGtJL5UI1OdBL8oVIGKty0pGaCvtrF01UN1ncKBGe5y12Vij2yuyv7LK4ANArxQ4+O583NdYHYeD+T75yGu4SAYjcoM23RD1h+W0SLQpCen2J3WYmJaOjtqMBv/gaFYl/DV7I=,iv:VJjZTd1g4oJCDLEp8+jH15Y2svTNtQUE1vc3WQoJJZU=,tag:4U7uh6U5PwHJ2r6/WFUbnw==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.1

View file

@ -0,0 +1,110 @@
{ config, ... }:
{
home.username = "pan";
nixpkgs.config.allowUnfree = true;
home.stateVersion = "23.05";
hypr.enable = true;
hypr.monitor = {
details = [
"eDP-2,2256x1504@60,0x0,1"
];
};
hypr.workspace = {
workspaces = {
"eDP-1" = [
"home"
"web"
"chat"
"med"
];
};
scratchpad.enable = true;
defaults = {
"name:web" = [ "class:(librewolf)" ];
"name:med" = [ "class:(librewolf),title:Picture-in-Picture" ];
"name:chat" = [ "class:(Beeper)" ];
};
};
hypr.windows.opaque = [
"initialTitle:^(Discord Popout)$"
"class:^(firefox)$"
"class:^(Gimp)$"
"class:^(feh)$"
"class:^(mpv)$"
];
hypr.background = {
enable = true;
path = "${config.home.homeDirectory}/med/pix/bg.png";
};
hypr.cursor = {
enable = true;
theme = "miku";
};
hypr = {
screenshot.enable = true;
mouse.sensitivity = -0.52;
polkit.enable = true;
master.mfact = 0.53;
xwayland.videobridge.enable = true;
};
# ags.enable = true;
rofi.enable = true;
timer.enableHourly = true;
timer.enableQuarterly = true;
colors.enable = true;
manpages.enable = true;
trash.enable = true;
fish.enable = true;
kitty.enable = true;
kitty.make_default = true;
kitty.font = "Cascadia Code";
git.enable = true;
git.username = "Julia Lange";
git.email = "public@julialange.org";
ssh.enable = true;
librewolf.enable = true;
librewolf.make_default = true;
mpv.enable = true;
zathura.enable = true;
feh.enable = true;
neovim.enable = true;
neovim.languages = {
c.enable = true;
nix.enable = true;
rust.enable = true;
};
neovim.plugins = {
comments.enable = true;
fugitive.enable = true;
lualine.enable = true;
luasnip.enable = true;
nvimcmp.enable = true;
telescope = {
enable = true;
fzf.enable = true;
};
treesitter.enable = true;
wiki.enable = true;
};
lf.enable = true;
lf.hiddenfiles = [
"${config.home.homeDirectory}/.librewolf"
"${config.home.homeDirectory}/.nix-defexpr"
"${config.home.homeDirectory}/.nix-profile"
"${config.home.homeDirectory}/.nv"
"${config.home.homeDirectory}/.pki"
];
zoxide.enable = true;
gimp.enable = true;
beeper.enable = true;
discord.enable = true;
}

33
hosts/onizuka/default.nix Normal file
View file

@ -0,0 +1,33 @@
{ ... }:
{
imports = [
./hardware.nix
];
networking.hostName = "onizuka";
nixpkgs.config.allowUnfree = true;
system.stateVersion = "23.05";
nvidia.enable = true;
pipewire.enable = true;
polkit.enable = true;
tablet.enable = true;
user.name = "pan";
user.timezone = "America/Los_Angeles";
system.doAutoUpgrade = true;
tuigreet.enable = true;
hyprland.enable = true;
librewolf.enable = true;
fish.enable = true;
fish.setDefault = true;
syncthing.enable = true;
steam.enable = true;
steam.gamemode.enable = true;
aagl.enable = true;
aagl.honkai-rail = true;
input-remapper.enable = true;
}

View file

@ -0,0 +1,40 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ "nvidia" ];
boot.blacklistedKernelModules = [ "nouveau" ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/d42f4599-22fc-491e-b93e-46129163a25f";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/5F1D-093C";
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/5c3ec6ab-58c3-41bd-be6a-c935bdcb0818"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp5s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -0,0 +1,132 @@
{ config, pkgs, ... }:
{
home.username = "pan";
nixpkgs.config.allowUnfree = true;
home.stateVersion = "23.05";
hypr.enable = true;
hypr.monitor = {
details = [
"DP-2,2560x1440@144,0x0,1"
"DP-1,2560x1440@144,-2560x0,1"
"HDMI-A-1,disable"
];
primary = "DP-2";
secondary = "DP-1";
};
hypr.workspace = {
workspaces = {
"DP-2" = [
"home"
"web"
"med"
"game"
];
"DP-1" = [
"chat"
];
};
scratchpad.enable = true;
defaults = {
"name:web" = [ "librewolf" ];
"name:med" = [ "librewolf,title:Picture-in-Picture" ];
"name:chat" = [ "Beeper" ];
"name:game" = [ "lutris" "explorer.exe" ];
};
};
windows.opaque = [
"initialTitle:^(Discord Popout)$"
"class:^(firefox)$"
"class:^(Gimp)$"
"class:^(feh)$"
"class:^(mpv)$"
];
hypr.background = {
enable = true;
path = "${config.home.homeDirectory}/med/pix/bg.png";
};
hypr.cursor = {
enable = true;
theme = "miku";
};
hypr = {
screenshot.enable = true;
mouse.sensitivity = -0.52;
polkit.enable = true;
master.mfact = 0.53;
xwayland.videobridge.enable = true;
};
ags.enable = true;
rofi.enable = true;
timer.enableHourly = true;
timer.enableQuarterly = true;
colors.enable = true;
manpages.enable = true;
trash.enable = true;
fish.enable = true;
kitty.enable = true;
kitty.make_default = true;
kitty.font = "Cascadia Code";
git.enable = true;
git.username = "Julia Lange";
git.email = "public@julialange.org";
ssh.enable = true;
librewolf.enable = true;
librewolf.make_default = true;
mpv.enable = true;
zathura.enable = true;
feh.enable = true;
neovim.enable = true;
neovim.languages = {
c.enable = true;
nix.enable = true;
rust.enable = true;
};
neovim.plugins = {
comments.enable = true;
fugitive.enable = true;
lualine.enable = true;
luasnip.enable = true;
nvimcmp.enable = true;
telescope = {
enable = true;
fzf.enable = true;
};
treesitter.enable = true;
wiki.enable = true;
};
lf.enable = true;
lf.hiddenfiles = [
"${config.home.homeDirectory}/.librewolf"
"${config.home.homeDirectory}/.nix-defexpr"
"${config.home.homeDirectory}/.nix-profile"
"${config.home.homeDirectory}/.nv"
"${config.home.homeDirectory}/.pki"
"${config.home.homeDirectory}/.steam*"
"${config.home.homeDirectory}/.zshenv"
];
zoxide.enable = true;
gimp.enable = true;
beeper.enable = true;
discord.enable = true;
lutris.enable = true;
extraPkgs = with pkgs; [
# Applications
ani-cli # Easy anime player
lutgen # LUT generator
prismlauncher # Minecraft launcher
jdk8 # For playing older minecraft
gnucash # Personal Finance Manager
zoom-us # Zoom
];
}