summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--home/apps/caelestia/default.nix1
-rw-r--r--home/default.nix30
-rw-r--r--home/desktops/default.nix25
-rw-r--r--home/desktops/hyprland/binds.nix1
-rw-r--r--home/desktops/hyprland/default.nix8
-rw-r--r--home/desktops/hyprland/plugins.nix8
-rw-r--r--options.nix18
-rw-r--r--system/default.nix16
-rw-r--r--system/desktop.nix21
-rw-r--r--system/desktops/hyprland.nix13
-rw-r--r--system/hardware.nix21
-rw-r--r--system/networking.nix11
-rw-r--r--system/sshd.nix2
-rw-r--r--system/virt/docker.nix14
14 files changed, 94 insertions, 95 deletions
diff --git a/home/apps/caelestia/default.nix b/home/apps/caelestia/default.nix
index 75dbb26..d691fb8 100644
--- a/home/apps/caelestia/default.nix
+++ b/home/apps/caelestia/default.nix
@@ -15,7 +15,6 @@ in {
config = mkIf cfg.enable {
default.appLauncher = lib.mkOverride 600 "caelestia-shell ipc call drawers toggle launcher";
- #default.lockScreen = "caelestia-shell ipc call lock lock";
programs.caelestia = {
enable = true;
diff --git a/home/default.nix b/home/default.nix
index 6d157a2..7adabec 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -1,13 +1,8 @@
{
- lib,
config,
pkgs,
- inputs,
- system,
...
-}: let
- inherit (lib) optionals;
-in {
+}: {
imports = [
./apps
./browsers
@@ -36,30 +31,9 @@ in {
(with pkgs; [
home-manager
pfetch-rs
+ talc
yt-dlp
])
- ++ [
- inputs.talc.packages.${system}.talc
- ]
- ++ (with pkgs;
- optionals config.desktops.enable [
- # social
- gajim
- thunderbird-latest
- # programs
- brightnessctl
- easyeffects
- filezilla
- gimp3
- imv
- mpv
- pavucontrol
- vlc
- zathura
- # media
- ffmpeg
- imagemagick
- ])
# mirrored from system
++ config.extraPackages;
diff --git a/home/desktops/default.nix b/home/desktops/default.nix
index ea00f07..47be159 100644
--- a/home/desktops/default.nix
+++ b/home/desktops/default.nix
@@ -48,7 +48,26 @@ in {
roboto-mono
roboto-serif
roboto-slab
+ sf-pro
+ sf-mono
+ sf-compact
twemoji-color-font
+ # social
+ gajim
+ thunderbird-latest
+ # programs
+ brightnessctl
+ easyeffects
+ filezilla
+ gimp3
+ imv
+ mpv
+ pavucontrol
+ vlc
+ zathura
+ # media
+ ffmpeg
+ imagemagick
]
++ (optionals config.desktops.wayland.enable [
# wayland
@@ -57,12 +76,6 @@ in {
wl-clipboard
wl-clip-persist
wl-mirror
- ])
- ++ (with inputs.apple-fonts.packages.${system}; [
- # apple fonts
- sf-pro
- sf-mono
- sf-compact
]);
# set uwsm vars
diff --git a/home/desktops/hyprland/binds.nix b/home/desktops/hyprland/binds.nix
index 7582edf..d6aa3b9 100644
--- a/home/desktops/hyprland/binds.nix
+++ b/home/desktops/hyprland/binds.nix
@@ -15,7 +15,6 @@ in {
# Misc
"${mod} SHIFT, L, exit"
- #"${mod}, tab, hyprexpo:expo, toggle"
# Window operations
diff --git a/home/desktops/hyprland/default.nix b/home/desktops/hyprland/default.nix
index 913ca57..e3624ec 100644
--- a/home/desktops/hyprland/default.nix
+++ b/home/desktops/hyprland/default.nix
@@ -1,8 +1,6 @@
{
- inputs,
- config,
lib,
- system,
+ config,
pkgs,
...
}: let
@@ -25,8 +23,8 @@ in {
wayland.windowManager.hyprland = {
enable = true;
- package = inputs.hyprland.packages.${system}.hyprland;
- portalPackage = inputs.hyprland.packages.${system}.xdg-desktop-portal-hyprland;
+ package = pkgs.hyprland;
+ portalPackage = pkgs.xdg-desktop-portal-hyprland;
xwayland.enable = true;
systemd.enable = true;
diff --git a/home/desktops/hyprland/plugins.nix b/home/desktops/hyprland/plugins.nix
index e8ec00d..d9804d1 100644
--- a/home/desktops/hyprland/plugins.nix
+++ b/home/desktops/hyprland/plugins.nix
@@ -1,13 +1,11 @@
{
- inputs,
config,
- system,
+ pkgs,
...
}: {
wayland.windowManager.hyprland = {
- plugins = [
- #inputs.hyprland-plugins.packages.${system}.hyprexpo
- inputs.hy3.packages.${system}.hy3
+ plugins = with pkgs; [
+ hy3
];
settings.plugin = {
diff --git a/options.nix b/options.nix
index 42097b0..47404e7 100644
--- a/options.nix
+++ b/options.nix
@@ -296,8 +296,22 @@ in {
fingerprint.enable = mkEnableOption {
description = "Install fingerprint system services and programs.";
};
- network.enable = mkEnableOption {
- description = "Install networking system services and programs.";
+ network = {
+ enable = mkEnableOption {
+ description = "Install networking system services and programs.";
+ };
+ firewall.enable = mkEnableOption {
+ description = "Enable the networking firewall";
+ default = !config.minimal;
+ };
+ dns.enable = mkEnableOption {
+ description = "Run a local dns server";
+ default = !config.minimal;
+ };
+ ssh.enable = mkEnableOption {
+ description = "Run a local ssh server";
+ default = !config.minimal;
+ };
};
tpm.enable = mkEnableOption {
description = "Enable system TPM";
diff --git a/system/default.nix b/system/default.nix
index 205f63a..9c66323 100644
--- a/system/default.nix
+++ b/system/default.nix
@@ -5,7 +5,9 @@
inputs,
system,
...
-}: {
+}: let
+ full = !config.minimal;
+in {
imports = [
inputs.home-manager.nixosModules.home-manager
./desktops
@@ -15,7 +17,6 @@
./bluetooth.nix
./desktop.nix
./fingerprint.nix
- ./hardware.nix
./networking.nix
./nvidia.nix
./sshd.nix
@@ -45,6 +46,13 @@
# load overlays
nixpkgs.overlays = [
(final: prev: import ../pkgs {inherit final prev;})
+ # hyprland
+ (_: _: inputs.hyprland.packages.${system})
+ (_: _: inputs.hyprland-plugins.packages.${system})
+ (_: _: inputs.hy3.packages.${system})
+ # misc
+ (_: _: inputs.talc.packages.${system})
+ (_: _: inputs.apple-fonts.packages.${system})
];
# set state version
@@ -118,7 +126,6 @@
};
# use the latest kernel
-
boot.kernelPackages = pkgs.linuxPackages_latest;
# sysrq
@@ -161,4 +168,7 @@
enable = true;
execWheelOnly = true;
};
+
+ # firmware
+ services.fwupd.enable = full;
}
diff --git a/system/desktop.nix b/system/desktop.nix
index 6eed43f..ac6a79d 100644
--- a/system/desktop.nix
+++ b/system/desktop.nix
@@ -6,6 +6,7 @@
}: let
inherit (lib) mkIf;
cfg = config.desktops;
+ full = !config.minimal;
in {
config = mkIf cfg.enable {
# nix-ld
@@ -13,15 +14,15 @@ in {
# appimage
programs.appimage = {
- enable = true;
+ enable = full;
binfmt = true;
};
# flatpak
- services.flatpak.enable = true;
+ services.flatpak.enable = full;
# services
- services.libinput.enable = true;
+ services.libinput.enable = config.desktops.wayland.enable;
# gtk portal?
programs.dconf.enable = true;
@@ -42,7 +43,7 @@ in {
# printing
services.printing = {
- enable = true;
+ enable = full;
drivers = with pkgs; [
brlaser
cnijfilter2
@@ -50,14 +51,14 @@ in {
];
};
services.avahi = {
- enable = true;
+ enable = full;
nssmdns4 = true;
openFirewall = true;
};
users.groups.lp.members = [config.user];
# secrets
- services.gnome.gnome-keyring.enable = true;
+ services.gnome.gnome-keyring.enable = full;
# system fonts
fonts.packages = with pkgs; [
@@ -65,6 +66,14 @@ in {
vista-fonts
];
+ # yubikey support
+ services = {
+ pcscd.enable = full;
+ udev.packages = with pkgs; [
+ yubikey-personalization
+ ];
+ };
+
unfreePackages = [
"corefonts"
"vista-fonts"
diff --git a/system/desktops/hyprland.nix b/system/desktops/hyprland.nix
index b0281a3..82ddf0e 100644
--- a/system/desktops/hyprland.nix
+++ b/system/desktops/hyprland.nix
@@ -1,8 +1,7 @@
{
- inputs,
- config,
lib,
- system,
+ config,
+ pkgs,
...
}: let
inherit (lib) mkIf;
@@ -12,8 +11,8 @@ in {
desktops.wayland.enable = true;
xdg.portal = {
- extraPortals = [
- inputs.hyprland.packages.${system}.xdg-desktop-portal-hyprland
+ extraPortals = with pkgs; [
+ xdg-desktop-portal-hyprland
];
config.hyprland = {
default = lib.mkForce ["gtk"];
@@ -28,8 +27,8 @@ in {
programs.hyprland = {
enable = true;
withUWSM = true;
- package = inputs.hyprland.packages.${system}.hyprland;
- portalPackage = inputs.hyprland.packages.${system}.xdg-desktop-portal-hyprland;
+ package = pkgs.hyprland;
+ portalPackage = pkgs.xdg-desktop-portal-hyprland;
};
};
}
diff --git a/system/hardware.nix b/system/hardware.nix
deleted file mode 100644
index 8b1ef0c..0000000
--- a/system/hardware.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- lib,
- config,
- pkgs,
- ...
-}: let
- inherit (lib) mkIf;
-in {
- config = mkIf (!config.minimal) {
- # yubikey support
- services = {
- pcscd.enable = true;
- udev.packages = with pkgs; [
- yubikey-personalization
- ];
- };
-
- # firmware
- services.fwupd.enable = true;
- };
-}
diff --git a/system/networking.nix b/system/networking.nix
index 72a7029..8e46f4c 100644
--- a/system/networking.nix
+++ b/system/networking.nix
@@ -12,12 +12,15 @@ in {
users.groups.networkmanager.members = [config.user];
# firewall
- networking.firewall.enable = true;
+ networking.firewall.enable = cfg.firewall.enable;
networking.firewall.allowedTCPPorts = [80 443 8080];
- networking.nftables.enable = true;
+ networking.nftables.enable = cfg.firewall.enable;
# dns
- services.resolved.enable = true;
- networking.networkmanager.dns = "systemd-resolved";
+ services.resolved.enable = cfg.dns.enable;
+ networking.networkmanager.dns =
+ if cfg.dns.enable
+ then "systemd-resolved"
+ else "default";
};
}
diff --git a/system/sshd.nix b/system/sshd.nix
index b3a76c2..e60da43 100644
--- a/system/sshd.nix
+++ b/system/sshd.nix
@@ -7,7 +7,7 @@
inherit (lib) mkIf;
cfg = config.network;
in {
- config = mkIf cfg.enable {
+ config = mkIf cfg.ssh.enable {
# sshd
services.openssh = {
enable = true;
diff --git a/system/virt/docker.nix b/system/virt/docker.nix
index 9dcb7e2..2376574 100644
--- a/system/virt/docker.nix
+++ b/system/virt/docker.nix
@@ -5,13 +5,17 @@
}: let
inherit (lib) mkIf;
cfg = config.virt.docker;
+ rootfs = config.fileSystems."/".fsType;
in {
config = mkIf cfg.enable {
- virtualisation.docker = {
- enable = true;
- enableOnBoot = false;
- storageDriver = "btrfs";
- };
+ virtualisation.docker =
+ {
+ enable = true;
+ enableOnBoot = false;
+ }
+ // mkIf (rootfs == "btrfs") {
+ storageDriver = "btrfs";
+ };
users.groups.docker.members = [config.user];
};
}