diff --git a/hosts/vali/hermit/configuration.nix b/hosts/vali/hermit/configuration.nix index c0ee11a..7e90314 100644 --- a/hosts/vali/hermit/configuration.nix +++ b/hosts/vali/hermit/configuration.nix @@ -4,8 +4,6 @@ config, ... }: { - # allow unfree packages - nixpkgs.config.allowUnfree = true; # Time Zone time.timeZone = "Europe/Zurich"; # Select internationalisation properties. @@ -17,117 +15,109 @@ trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ]; - trusted-users = ["root" "${config.modules.other.system.username}"]; # enable flakes - experimental-features = ["nix-command" "flakes"]; # reduce file size used & automatic garbage collector - auto-optimise-store = true; - max-jobs = 3; - cores = 4; }; }; security.sudo.package = pkgs.sudo.override {withInsults = true;}; security.polkit.enable = true; programs.kdeconnect.enable = true; programs.dconf.enable = true; - services.thermald.enable = true; - services.auto-cpufreq = { - enable = true; - settings = { - battery = { - governor = "powersave"; - turbo = "auto"; - }; - charger = { - governor = "performance"; - turbo = "auto"; - }; - }; - }; + virtualisation.docker.enable = true; boot.kernelPackages = pkgs.linuxPackages_xanmod_latest; modules = { + system = { + hardware = { + nvidia.enable = true; + bluetooth = { + enable = true; + powerOnBoot = false; + }; + }; + programs = { + editors = { + emacs.enable = false; + neovim.enable = true; + helix.enable = false; + kakoune.enable = false; + }; + discord.enable = true; + firefox.enable = true; + spotify.enable = true; + zellij.enable = true; + terminals = { + foot.enable = true; + kitty.enable = true; + }; + }; + sound.enable = true; + }; + usrEnv = { + desktops.hyprland.enable = true; + programs = { + launchers = { + anyrun.enable = true; + rofi.enable = true; + }; + media = { + beets.enable = true; + mpv.enable = true; + ncmpcpp.enable = true; + }; + }; + services = { + locate.enable = true; + media.mpd = { + enable = true; + musicDirectory = "/home/${config.modules.other.system.username}/Nextcloud/Media/Music"; + }; + }; + style = { + gtk.enable = true; + stylix = { + enable = false; + scheme = "${pkgs.base16-schemes}/share/themes/bright.yaml"; + cursor = { + size = 28; + package = pkgs.bibata-cursors; + name = "Bibata-Modern-Classic"; + }; + fontsizes = { + terminal = 18; + popups = 14; + applications = 14; + }; + image = self + "assets/wallpapers/wholefoods.jpg"; + }; + }; + }; other = { system = { hostname = "hermit"; username = "vali"; - gitPath = "/home/vali/repos/nichts"; + gitPath = "/home/vali/projects/nichts"; }; home-manager = { enable = true; enableDirenv = true; }; }; - wms = { - wayland = { - enable = true; - hyprland.enable = true; - }; - }; - system = { - programs = { - discord.enable = true; - firefox.enable = true; - zathura.enable = true; - terminals = { - foot.enable = true; - kitty.enable = true; - }; - }; - }; - usrEnv = { - programs = { - launchers = { - anyrun.enable = true; - }; - }; - services = { - mpd.enable = true; - }; - }; programs = { - vesktop.enable = true; ssh.enable = true; btop.enable = true; - mpv.enable = true; newsboat.enable = true; fish.enable = true; - ncmpcpp.enable = true; nh.enable = true; + steam.enable = true; waybar.enable = true; - beets.enable = true; - }; - editors = { - emacs.enable = false; - helix.enable = true; - kakoune.enable = false; - neovim.enable = false; }; services = { - pipewire.enable = true; dunst.enable = true; - mpd = { - enable = true; - musicDirectory = "/home/${config.modules.other.system.username}/Nextcloud/Media/Music"; - }; }; theming = { quickshell.enable = true; - stylix = { - # FIXME: Broken - enable = true; - # scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-pale.yaml"; - scheme = "${pkgs.base16-schemes}/share/themes/tomorrow-night.yaml"; - cursor = {size = 28;}; - fontsizes = { - terminal = 18; - popups = 14; - applications = 14; - }; - image = self + "assets/wallpapers/tiredgod.png"; - }; - gtk = {enable = false;}; qt = { - enable = true; + enable = false; package = pkgs.kde-gruvbox; name = "Gruvbox-Dark"; }; diff --git a/hosts/vali/hermit/default.nix b/hosts/vali/hermit/default.nix index 1e3d69e..4b93ee2 100644 --- a/hosts/vali/hermit/default.nix +++ b/hosts/vali/hermit/default.nix @@ -3,6 +3,5 @@ _: { ./configuration.nix ./programs.nix ./hardware-configuration.nix - ./profile.nix ]; } diff --git a/hosts/vali/hermit/profile.nix b/hosts/vali/hermit/profile.nix deleted file mode 100644 index 51c2aff..0000000 --- a/hosts/vali/hermit/profile.nix +++ /dev/null @@ -1,9 +0,0 @@ -_: { - imports = [ - ../../../options/boot/grub-boot.nix - ../../../options/common/bluetooth.nix - ../../../options/common/networking.nix - ../../../options/common/gpu/nvidia.nix - ../../../options/desktop/monitors.nix - ]; -} diff --git a/modules/default.nix b/modules/default.nix new file mode 100644 index 0000000..7a52e37 --- /dev/null +++ b/modules/default.nix @@ -0,0 +1,12 @@ +_: { + imports = [ + ./programs + ./other + ./services + ./wms + ./runners + ./style + ./options + ./system + ]; +} diff --git a/modules/options/system/hardware.nix b/modules/options/system/hardware.nix new file mode 100644 index 0000000..064d49a --- /dev/null +++ b/modules/options/system/hardware.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + pkgs, + ... +}: let + inherit (lib) mkOption mkEnableOption; + inherit (lib.types) str package int; +in { + options.modules.system.hardware = { + nvidia = { + enable = mkEnableOption "Nvidia Nvidia graphics drivers"; + }; + }; +} diff --git a/modules/options/system/module.nix b/modules/options/system/module.nix index e4441af..bdbe821 100644 --- a/modules/options/system/module.nix +++ b/modules/options/system/module.nix @@ -38,6 +38,8 @@ in { # monitor configuration ./monitors.nix + + ./hardware.nix ]; config = { warnings = mkMerge [ @@ -92,12 +94,13 @@ in { video = { enable = mkEnableOption "video drivers and programs that require a graphical user interface"; - nvidia = mkOption "Nvidia graphics drivers"; - amd = mkOption "AMD graphics drivers"; + nvidia = mkEnableOption "Nvidia graphics drivers"; + amd = mkEnableOption "AMD graphics drivers"; }; - bluetooth = { + hardware.bluetooth = { enable = mkEnableOption "bluetooth modules, drivers and configuration program(s)"; + powerOnBoot = mkEnableOption "Enable bluetooth on boot"; }; # should the device enable printing module and try to load common printer modules diff --git a/modules/programs/default.nix b/modules/programs/default.nix index fe7fdd7..b79015c 100644 --- a/modules/programs/default.nix +++ b/modules/programs/default.nix @@ -3,14 +3,6 @@ _: { ./cli ./gui ./tui - ./other - ./services ./editors - ./wms - ./runners - ./style - ./options - ./system/nix/module.nix - ./system ]; } diff --git a/modules/style/default.nix b/modules/style/default.nix index 6ed1a4f..c922155 100644 --- a/modules/style/default.nix +++ b/modules/style/default.nix @@ -1,6 +1,5 @@ _: { imports = [ - ./stylix.nix ./quickshell ./qt.nix ./gtk.nix diff --git a/modules/style/fonts.nix b/modules/style/fonts.nix index 870d79a..3b86e98 100644 --- a/modules/style/fonts.nix +++ b/modules/style/fonts.nix @@ -6,6 +6,7 @@ }: let inherit (lib.types) optional; inherit (config.modules.system.fonts) extraFonts; + inherit (config.modules.other.system) username; in { # A (somewhat) sane list of default fonts to be installed. fonts.packages = with pkgs; @@ -21,12 +22,14 @@ in { ] ++ optional (extraFonts != null) extraFonts; # this fixes emoji stuff - fontconfig = { - defaultFonts = { - monospace = ["ComicShannsMono Nerd Font" "Noto Color Emoji"]; - sansSerif = ["ComicShannsMono Nerd Font" "Noto Color Emoji"]; - serif = ["ComicShannsMono Nerd Font" "Noto Color Emoji"]; - emoji = ["Noto Color Emoji"]; + home-manager.users.${username} = { + fontconfig = { + defaultFonts = { + monospace = ["ComicShannsMono Nerd Font" "Noto Color Emoji"]; + sansSerif = ["ComicShannsMono Nerd Font" "Noto Color Emoji"]; + serif = ["ComicShannsMono Nerd Font" "Noto Color Emoji"]; + emoji = ["Noto Color Emoji"]; + }; }; }; } diff --git a/modules/system/boot/default.nix b/modules/system/boot/default.nix new file mode 100644 index 0000000..4a7959d --- /dev/null +++ b/modules/system/boot/default.nix @@ -0,0 +1 @@ +_: {imports = [./grub-boot.nix];} diff --git a/modules/system/default.nix b/modules/system/default.nix index 3d12813..1dda74c 100644 --- a/modules/system/default.nix +++ b/modules/system/default.nix @@ -1,5 +1,9 @@ _: { imports = [ ./keyboard.nix + ./boot + ./hardware + ./nix/module.nix + ./os/networking/module.nix ]; } diff --git a/modules/system/hardware/bluetooth.nix b/modules/system/hardware/bluetooth.nix index 5257758..a1290ed 100644 --- a/modules/system/hardware/bluetooth.nix +++ b/modules/system/hardware/bluetooth.nix @@ -2,12 +2,13 @@ config, lib, pkgs, + ... }: let cfg = config.modules.system.hardware.bluetooth; inherit (config.modules.other.system) username; inherit (lib) mkIf; in { - confg = mkIf cfg.enable { + config = mkIf cfg.enable { hardware.bluetooth = { enable = true; powerOnBoot = mkIf cfg.powerOnBoot true; diff --git a/modules/system/hardware/default.nix b/modules/system/hardware/default.nix new file mode 100644 index 0000000..76470ec --- /dev/null +++ b/modules/system/hardware/default.nix @@ -0,0 +1 @@ +_: {imports = [./bluetooth.nix ./graphics.nix];} diff --git a/modules/system/hardware/sound/default.nix b/modules/system/hardware/sound/default.nix index e69de29..ae2155e 100644 --- a/modules/system/hardware/sound/default.nix +++ b/modules/system/hardware/sound/default.nix @@ -0,0 +1 @@ +_: {imports = [./pipewire];}