diff options
Diffstat (limited to 'modules/profiles/headful/default.nix')
-rw-r--r-- | modules/profiles/headful/default.nix | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/modules/profiles/headful/default.nix b/modules/profiles/headful/default.nix new file mode 100644 index 0000000..ec43d20 --- /dev/null +++ b/modules/profiles/headful/default.nix @@ -0,0 +1,190 @@ +{ + config, + inputs, + lib, + pkgs, + this, + ... +}: +let + cfg = config.nixfiles.modules.profiles.headful; +in +{ + imports = lib.modulesIn ./. |> lib.attrValues; + + options.nixfiles.modules.profiles.headful.enable = lib.mkEnableOption "headful profile" // { + default = this.isHeadful; + }; + + config = lib.mkIf cfg.enable { + nixfiles.modules = { + common.xdg.defaultApplications."org.telegram.desktop" = [ "x-scheme-handler/tg" ]; + + profiles.dev.enable = true; + + alacritty.enable = true; + aria2.enable = true; + bat.enable = true; + chromium.enable = true; + emacs.enable = true; + eza.enable = true; + firefox.enable = true; + foot.enable = true; + kde.enable = true; + mpv.enable = true; + nullmailer.enable = true; + openssh.client.enable = true; + password-store.enable = true; + sound.enable = true; + thunderbird.enable = true; + vscode.enable = false; + wayland.enable = true; + x11.enable = true; + yubikey.enable = true; + zathura.enable = true; + }; + + hm = { + imports = [ inputs.nix-index-database.hmModules.nix-index ]; + + home = { + file.".digrc".text = '' + +answer + +multiline + +recurse + ''; + + packages = with pkgs; [ + anki + audacity + bitwarden-cli + bitwarden-desktop + eaglemode + easyeffects + element-desktop + fd + gimp + helvum + imv + libreoffice-fresh + mumble + obs-studio + qbittorrent + ripgrep + sd + telegram-desktop + tldr + tor-browser-bundle-bin + vesktop + ]; + }; + + programs = { + bash.shellAliases.open = "xdg-open"; + + nix-index-database.comma.enable = true; + }; + }; + + boot = { + kernelPackages = lib.mkDefault ( + if config.boot.zfs.enabled then + pkgs.linuxKernel.packages + |> lib.filterAttrs ( + n: v: + (builtins.match "linux_[0-9]+_[0-9]+" n) != null + && (builtins.tryEval v).success + && (!v.${config.boot.zfs.package.kernelModuleAttribute}.meta.broken) + ) + |> builtins.attrValues + |> lib.sort (n: v: lib.versionOlder n.kernel.version v.kernel.version) + |> lib.last + else + pkgs.linuxPackages_latest + ); + + kernelParams = [ + # https://wiki.archlinux.org/title/improving_performance#Watchdogs + "nowatchdog" + "kernel.nmi_watchdog=0" + # A security risk I'm willing to take for a reason[1]. + # + # [1]: https://www.phoronix.com/scan.php?page=article&item=spectre-meltdown-2&num=11 + "mitigations=off" + ]; + + loader = { + efi.canTouchEfiVariables = true; + + systemd-boot = { + enable = true; + editor = false; + configurationLimit = 10; + }; + }; + }; + + hardware.graphics.enable = true; + + nix = { + daemonCPUSchedPolicy = "idle"; + daemonIOSchedClass = "idle"; + daemonIOSchedPriority = 7; + + gc.automatic = false; + optimise.automatic = false; + }; + + programs = { + dconf.enable = true; + + iftop.enable = true; + + mtr.enable = true; + }; + + services = { + fwupd.enable = true; + + libinput.enable = true; + + upower.enable = true; + + languagetool = { + enable = true; + port = 8081; + allowOrigin = "*"; + }; + }; + + time.timeZone = "Europe/Moscow"; + + environment.systemPackages = with pkgs; [ + brightnessctl + lm_sensors + usbutils + wirelesstools + ]; + + my.extraGroups = [ + "audio" + "input" + "render" + "video" + ]; + + nix.settings.system-features = [ + "benchmark" + "kvm" + "nixos-test" + ]; + + # https://github.com/NixOS/nix/issues/3995#issuecomment-2081164515 + system.extraDependencies = + let + collectFlakeInputs = + input: [ input ] ++ (lib.attrValues (input.inputs or { }) |> lib.concatMap collectFlakeInputs); + in + lib.concatMap collectFlakeInputs (lib.attrValues inputs); + }; +} |