{ config, inputs, lib, pkgs, this, ... }: let cfg = config.nixfiles.modules.profiles.headful; in { 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 = true; wayland.enable = true; x11.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 ayugram-desktop bitwarden-cli bitwarden-desktop byedpi eaglemode easyeffects element-desktop fd gimp helvum imv kdenlive 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 ( k: v: (builtins.match "linux_[0-9]+_[0-9]+" k) != null && (builtins.tryEval v).success && (!v.${config.boot.zfs.package.kernelModuleAttribute}.meta.broken) ) |> builtins.attrValues |> lib.sort (a: b: lib.versionOlder a.kernel.version b.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" ]; # 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); }; }