summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.nix16
-rw-r--r--machines.nix33
-rw-r--r--machines/lenovo.nix (renamed from machines/lenovo/configuration.nix)70
-rw-r--r--modules/nixos/boot/lenovo.nix6
-rw-r--r--modules/nixos/impermanence.nix (renamed from machines/lenovo/impermanence.nix)8
-rw-r--r--modules/nixos/laptop.nix39
-rw-r--r--modules/nixos/ly.nix8
-rw-r--r--modules/nixos/steam.nix10
-rw-r--r--modules/nixos/sway.nix3
-rw-r--r--users.nix12
-rw-r--r--users/andromeda/home.nix77
-rw-r--r--users/mtgmonkey/home.nix172
-rw-r--r--users/mtgmonkey/stylix.nix29
13 files changed, 116 insertions, 367 deletions
diff --git a/flake.nix b/flake.nix
index e6cf000..0b3eafa 100644
--- a/flake.nix
+++ b/flake.nix
@@ -67,6 +67,7 @@
impermanence.nixosModules.impermanence
agenix.nixosModules.default
nixos-mailserver.nixosModule
+ noshell.nixosModules.default
phoenix.nixosModules.default
nix-zulip'.nixosModules.zulip
{
@@ -76,18 +77,8 @@
nix-zulip'.overlays.default
];
}
- (
- if machine.hostname != "109-199-104-83"
- then
- {config, ...}: {
- imports = [
- ./machines/${machine.hostname}/configuration.nix
- ];
- networking.domain = config.networking.hostName; # temporary fix
- }
- else {imports = machine.modules;}
- )
- ];
+ ]
+ ++ machine.modules;
};
configurationWithHomeManager = machine: (configuration machine
[
@@ -113,7 +104,6 @@
)
);
}
- noshell.nixosModules.default
]);
in {
nixosConfigurations =
diff --git a/machines.nix b/machines.nix
index d79d693..be8023e 100644
--- a/machines.nix
+++ b/machines.nix
@@ -2,11 +2,33 @@
lenovo = {
hostname = "lenovo";
system = "x86_64-linux";
- users = [
- "andromeda"
- "mtgmonkey"
- ];
+ users = ["andromeda"];
modules = [
+ # impermanence
+ ./modules/nixos/impermanence.nix
+
+ # hardware configuration
+ # includes `system.stateVersion`
+ ./machines/lenovo.nix
+
+ # boot process
+ # systemd-boot
+ ./modules/nixos/boot/lenovo.nix
+
+ # networking
+ ./modules/nixos/laptop.nix
+
+ # boilerplate settings
+ ./modules/nixos/common.nix
+
+ # ly display manager
+ ./modules/nixos/ly.nix
+
+ # sway window manager
+ ./modules/nixos/sway.nix
+
+ # apps
+ ./modules/nixos/steam.nix
];
};
"109-199-104-83" = {
@@ -14,6 +36,9 @@
system = "x86_64-linux";
users = [];
modules = [
+ # impermanence
+ ./modules/nixos/impermanence.nix
+
# hardware configuration
# verbatim as `nixos-generate-config` AND `system.stateVersion`
./machines/109-199-104-83.nix
diff --git a/machines/lenovo/configuration.nix b/machines/lenovo.nix
index 152d136..15f0ab3 100644
--- a/machines/lenovo/configuration.nix
+++ b/machines/lenovo.nix
@@ -1,66 +1,17 @@
{
config,
lib,
+ pkgs,
modulesPath,
- machine,
...
}: {
- imports = [
- ./impermanence.nix
- (modulesPath + "/installer/scan/not-detected.nix")
- ];
- boot.loader = {
- efi.canTouchEfiVariables = true;
- systemd-boot.enable = true;
- };
- hardware.bluetooth = {
- enable = true;
- powerOnBoot = true;
- };
- i18n.defaultLocale = "de_DE.UTF-8";
- networking = {
- dhcpcd.enable = true;
- firewall.enable = true;
- hostName = machine.hostname;
- networkmanager.enable = true;
- };
- nix.settings.experimental-features = [
- "nix-command"
- "flakes"
- ];
- nixpkgs.config.allowUnfreePredicate = pkg:
- builtins.elem (lib.getName pkg) [
- "steam"
- "steam-original"
- "steam-unwrapped"
- "steam-run"
- ];
- programs = {
- noshell.enable = true;
- steam.enable = true;
- sway.enable = true;
- };
- services = {
- blueman.enable = true;
- displayManager = {
- enable = true;
- ly.enable = true;
- };
- libinput.enable = true;
- openssh.enable = true;
- printing.enable = true;
- };
- system.stateVersion = "26.05";
- time.timeZone = "Europe/Berlin";
+ imports = [(modulesPath + "/installer/scan/not-detected.nix")];
boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "sdhci_pci"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
fileSystems."/" = {
- #device = "none";
- #fsType = "tmpfs";
- #options = ["defaults" "size=60%" "mode=755"];
device = "/dev/disk/by-uuid/5455cfb4-0efd-4f55-b496-d2cab3f419b7";
fsType = "btrfs";
options = ["subvol=root"];
@@ -88,12 +39,12 @@
done
btrfs subvolume create /btrfs_tmp/root
- mkdir /btrfs_tmp/root/nix
+ mkdir /btrfs_tmp/root/persist
mkdir /btrfs_tmp/root/etc
- mount ${config.fileSystems."/nix".device} /btrfs_tmp/root/nix
- cp /btrfs_tmp/root/nix/persist/etc/ssh /btrfs_tmp/root/etc/ssh -r
- umount /btrfs_tmp/root/nix
- rm -r /btrfs_tmp/root/nix
+ mount ${config.fileSystems."/persist".device} /btrfs_tmp/root/persist
+ cp /btrfs_tmp/root/persist/etc/ssh /btrfs_tmp/root/etc/ssh -r
+ umount /btrfs_tmp/root/persist
+ rm -r /btrfs_tmp/root/persist
umount /btrfs_tmp
'';
@@ -102,6 +53,12 @@
fsType = "btrfs";
};
+ fileSystems."/persist" = {
+ device = "/dev/disk/by-uuid/5455cfb4-0efd-4f55-b496-d2cab3f419b7";
+ fsType = "btrfs";
+ options = ["subvol=persist"];
+ };
+
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/F425-55BA";
fsType = "vfat";
@@ -112,4 +69,5 @@
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+ system.stateVersion = "26.05";
}
diff --git a/modules/nixos/boot/lenovo.nix b/modules/nixos/boot/lenovo.nix
new file mode 100644
index 0000000..fdd5e14
--- /dev/null
+++ b/modules/nixos/boot/lenovo.nix
@@ -0,0 +1,6 @@
+{
+ boot.loader = {
+ efi.canTouchEfiVariables = true;
+ systemd-boot.enable = true;
+ };
+}
diff --git a/machines/lenovo/impermanence.nix b/modules/nixos/impermanence.nix
index 2867ed5..7f0062b 100644
--- a/machines/lenovo/impermanence.nix
+++ b/modules/nixos/impermanence.nix
@@ -1,19 +1,15 @@
{
- environment.persistence."/nix/persist" = {
+ fileSystems."/persist".neededForBoot = true;
+ environment.persistence."/persist" = {
enable = true;
hideMounts = true;
directories = [
"/var/log"
- "/var/lib/bluetooth"
"/var/lib/nixos"
"/var/lib/systemd/coredump"
- "/etc/NetworkManager/system-connections"
- "/etc/ssh"
- "/etc/ly/custom-sessions"
];
files = [
"/etc/machine-id"
- "/etc/ly/save.txt"
];
};
}
diff --git a/modules/nixos/laptop.nix b/modules/nixos/laptop.nix
new file mode 100644
index 0000000..9002c49
--- /dev/null
+++ b/modules/nixos/laptop.nix
@@ -0,0 +1,39 @@
+{
+ # bluetooth
+ hardware.bluetooth = {
+ enable = true;
+ powerOnBoot = true;
+ };
+ services.blueman.enable = true;
+
+ # locale
+ i18n.defaultLocale = "de_DE.UTF-8";
+ time.timeZone = "Europe/Berlin";
+
+ # networking
+ networking = {
+ firewall.enable = true;
+ networkmanager.enable = true;
+ };
+
+ # misc
+ services = {
+ printing.enable = true;
+
+ # trackpad
+ libinput.enable = true;
+
+ # ssh
+ openssh.enable = true;
+ };
+
+ # impermanence
+ environment.persistence."/persist".directories = [
+ # bluetooth
+ "/var/lib/bluetooth"
+ # wifi connections
+ "/etc/NetworkManager/system-connections"
+ # machine ssh keys
+ "/etc/ssh"
+ ];
+}
diff --git a/modules/nixos/ly.nix b/modules/nixos/ly.nix
new file mode 100644
index 0000000..34cbb49
--- /dev/null
+++ b/modules/nixos/ly.nix
@@ -0,0 +1,8 @@
+{
+ services.displayManager = {
+ enable = true;
+ ly.enable = true;
+ };
+ # TODO needs to be manually updated when new users added
+ environment.persistence."/persist".files = ["/etc/ly/save.txt"];
+}
diff --git a/modules/nixos/steam.nix b/modules/nixos/steam.nix
new file mode 100644
index 0000000..5056ea9
--- /dev/null
+++ b/modules/nixos/steam.nix
@@ -0,0 +1,10 @@
+{lib, ...}: {
+ nixpkgs.config.allowUnfreePredicate = pkg:
+ builtins.elem (lib.getName pkg) [
+ "steam"
+ "steam-original"
+ "steam-unwrapped"
+ "steam-run"
+ ];
+ programs.steam.enable = true;
+}
diff --git a/modules/nixos/sway.nix b/modules/nixos/sway.nix
new file mode 100644
index 0000000..30be2e9
--- /dev/null
+++ b/modules/nixos/sway.nix
@@ -0,0 +1,3 @@
+{
+ programs.sway.enable = true;
+}
diff --git a/users.nix b/users.nix
index 1d78a87..8654bc1 100644
--- a/users.nix
+++ b/users.nix
@@ -36,7 +36,7 @@ in {
];
};
};
- environment.persistence."/nix/persist".users = lib.mkIf config.environment.persistence."/nix/persist".enable (
+ environment.persistence."/persist".users = lib.mkIf config.environment.persistence."/persist".enable (
builtins.mapAttrs
(name: value: lib.mkIf (builtins.elem name machine.users) value)
{
@@ -56,16 +56,6 @@ in {
".brush_history"
];
};
- "mtgmonkey" = {
- directories = [
- ".local/share/zoxide"
- ".ssh"
- ];
- files = [
- ".bash_history"
- ".brush_history"
- ];
- };
}
);
}
diff --git a/users/andromeda/home.nix b/users/andromeda/home.nix
index ce2c0f5..3fd9b05 100644
--- a/users/andromeda/home.nix
+++ b/users/andromeda/home.nix
@@ -16,82 +16,6 @@
"${config.home.homeDirectory}/${background-path}"
];
};
- sway_config' = builtins.toFile "sway_config" ''
- set $mod Mod4
- set $left h
- set $down j
- set $up k
- set $right l
- set $term alacritty
- set $menu wmenu-run
- set $screenshot grim -g "$(slurp)"
- floating_modifier $mod normal
-
- workspace_layout stacking
- output * bg ${config.home.homeDirectory}/${background-path} fill
-
- # launch programs
- bindsym $mod+Shift+Return exec $term
- bindsym $mod+Shift+d exec $menu
- bindsym $mod+Shift+a exec anki
- bindsym $mod+Shift+q exec librewolf
- bindsym $mod+Shift+s exec $screenshot
-
- bindsym $mod+Shift+c kill
-
- bindsym $mod+Shift+r reload
-
- bindsym $mod+Shift+Alt+q exit
-
- bindsym $mod+$left focus left
- bindsym $mod+$down focus down
- bindsym $mod+$up focus up
- bindsym $mod+$right focus right
-
- bindsym $mod+Shift+$left move left
- bindsym $mod+Shift+$down move down
- bindsym $mod+Shift+$up move up
- bindsym $mod+Shift+$right move right
-
- bindsym $mod+1 workspace number 1
- bindsym $mod+2 workspace number 2
- bindsym $mod+3 workspace number 3
- bindsym $mod+4 workspace number 4
- bindsym $mod+5 workspace number 5
- bindsym $mod+6 workspace number 6
- bindsym $mod+7 workspace number 7
- bindsym $mod+8 workspace number 8
- bindsym $mod+9 workspace number 9
- bindsym $mod+0 workspace number 0
-
- bindsym $mod+Shift+1 move container to workspace number 1
- bindsym $mod+Shift+2 move container to workspace number 2
- bindsym $mod+Shift+3 move container to workspace number 3
- bindsym $mod+Shift+4 move container to workspace number 4
- bindsym $mod+Shift+5 move container to workspace number 5
- bindsym $mod+Shift+6 move container to workspace number 6
- bindsym $mod+Shift+7 move container to workspace number 7
- bindsym $mod+Shift+8 move container to workspace number 8
- bindsym $mod+Shift+9 move container to workspace number 9
- bindsym $mod+Shift+0 move container to workspace number 0
-
- bindsym $mod+f fullscreen
- bindsym $mod+Shift+space floating toggle
- bindsym $mod+Shift+minus move scratchpad
- bindsym $mod+minus scratchpad show
-
- bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
- bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5%
- bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5%
- bindsym --locked XF86AudioMicMute exec pact set-source-mute \@DEFAULT_SOURCE@ toggle
- bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
- bindsym --locked XF86MonbrightnessUp exec brightnessctl set 5%+
-
- default_border none
- font pango:monospace 0.001
- titlebar_border_thickness 0
- titlebar_padding 0
- '';
in {
imports = [./stylix.nix];
xdg.configFile."shell".source = lib.getExe pkgs.brush;
@@ -103,6 +27,7 @@ in {
stateVersion = "26.05";
packages = [
pkgs.acpi
+ pkgs.anki
pkgs.agenix
pkgs.alacritty
pkgs.anki
diff --git a/users/mtgmonkey/home.nix b/users/mtgmonkey/home.nix
deleted file mode 100644
index 173a547..0000000
--- a/users/mtgmonkey/home.nix
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- config,
- lib,
- machine,
- pkgs,
- ...
-}: {
- imports = [./stylix.nix];
- xdg.configFile."shell".source = lib.getExe pkgs.brush;
- home = {
- username = "mtgmonkey";
- homeDirectory = "/home/${config.home.username}";
- stateVersion = "26.05";
- packages = [
- pkgs.acpi
- pkgs.brightnessctl
- pkgs.brush
- pkgs.dust
- pkgs.fzf
- pkgs.glow
- pkgs.jmtpfs
- pkgs.nix-output-monitor
- pkgs.ranger
- pkgs.rip2
- pkgs.ripgrep
- pkgs.tree
- pkgs.zoxide
- ];
- };
- programs = {
- bash = {
- enable = true;
- shellAliases = {
- neofetch = "fastfetch";
- ls = lib.mkForce "lsd";
- ll = lib.mkForce "lsd -l";
- l = "lsd -la";
- cd = "z";
- gg = "git log --oneline --abbrev-commit --all --graph --decorate --color";
- md = "glow";
- };
- bashrcExtra = ''
- PS1="\u@\h:\w$"
- eval "$(zoxide init bash)"
- '';
- };
- btop = {
- enable = true;
- settings = {
- theme_background = false;
- vim_keys = true;
- rounded_corners = false;
- graph_symbol = "braille";
- update_ms = 150;
- proc_sorting = "cpu lazy";
- proc_gradient = false;
- proc_left = true;
- cpu_single_graph = true;
- cpu_bottom = true;
- clock_format = "/user@/host:/uptime@%H:%M";
- background_update = true;
- mem_graphs = false;
- mem_below_net = true;
- show_swap = false;
- only_physical = true;
- show_io_stat = true;
- io_mode = false;
- io_graph_combined = false;
- };
- };
- fastfetch.enable = true;
- git = {
- enable = true;
- settings = {
- user = {
- name = config.home.username;
- email = "${config.home.username}@${machine.hostname}";
- };
- init.defaultBranch = "master";
- };
- };
- gh.enable = true;
- home-manager.enable = true;
- lsd.enable = true;
- nvf = {
- enable = true;
- settings.vim = {
- autocomplete.nvim-cmp.enable = false;
- formatter.conform-nvim = {
- enable = true;
- setupOpts.format_on_save = {
- lsp_format = "fallback";
- timeout_ms = 5000;
- };
- };
- lsp.otter-nvim.enable = true;
- git.enable = true;
- keymaps = [
- {
- key = "<Down>";
- mode = ["i" "n" "v" "c"];
- action = "<NOP>";
- }
- {
- key = "<Up>";
- mode = ["i" "n" "v" "c"];
- action = "<NOP>";
- }
- {
- key = "<Left>";
- mode = ["i" "n" "v" "c"];
- action = "<NOP>";
- }
- {
- key = "<Right>";
- mode = ["i" "n" "v" "c"];
- action = "<NOP>";
- }
- {
- key = "jj";
- mode = ["i"];
- action = "<Esc>";
- }
- {
- key = "kk";
- mode = ["i"];
- action = "<Esc>";
- }
- {
- key = "jk";
- mode = ["i"];
- action = "<Esc>";
- }
- {
- key = "kj";
- mode = ["i"];
- action = "<Esc>";
- }
- {
- key = "<Esc>";
- mode = ["i"];
- action = "<Nop>";
- }
- ];
- languages = {
- nix = {
- enable = true;
- format.enable = true;
- lsp.enable = true;
- };
- haskell = {
- enable = true;
- lsp.enable = true;
- };
- };
- lineNumberMode = "relative";
- options = {
- tabstop = 2;
- shiftwidth = 2;
- expandtab = true;
- smarttab = true;
- foldmethod = "indent";
- number = true;
- colorcolumn = "80";
- };
- statusline.lualine.enable = true;
- syntaxHighlighting = true;
- };
- };
- ssh.enable = true;
- };
-}
diff --git a/users/mtgmonkey/stylix.nix b/users/mtgmonkey/stylix.nix
deleted file mode 100644
index f2538b0..0000000
--- a/users/mtgmonkey/stylix.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- pkgs,
- config,
- ...
-}: {
- stylix = {
- enable = true;
- # rebecca has lavener bkg
- # tube has dark gray bkg
- # silk-light is light theme
- base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-material-dark-hard.yaml";
- polarity = "dark";
- fonts = {
- monospace = {
- package = pkgs.miracode;
- name = "Miracode";
- };
- serif = config.stylix.fonts.sansSerif;
- emoji = {
- package = pkgs.noto-fonts-color-emoji;
- name = "Noto Color Emoji";
- };
- sizes = {
- applications = 12;
- terminal = 10;
- };
- };
- };
-}