{ inputs, modulesPath, pkgs, ... }: { imports = [ inputs.disko.nixosModules.disko (modulesPath + "/installer/scan/not-detected.nix") ./disk-config.nix ./hardware-configuration.nix ]; myNixOS = { home-users = { "xmorel" = { userConfig = ./home.nix; }; }; archetype.general.enable = true; feature.fonts.enable = true; feature.virtualisation.enable = true; }; boot = { loader.grub = { efiSupport = true; efiInstallAsRemovable = true; }; kernelPackages = pkgs.linuxPackages_latest; kernelModules = [ "coretemp" "cpuid" ]; kernelParams = [ "quiet" "amd_pstate=guided" "processor.max_cstate=1" ]; initrd.kernelModules = [ "amdgpu" ]; plymouth.enable = true; }; documentation.man.generateCaches = false; programs = { niri.enable = true; # test... obs-studio = { enable = true; plugins = [ pkgs.obs-studio-plugins.wlrobs ]; }; firejail = { enable = true; wrappedBinaries = { slack = { executable = "${pkgs.slack}/bin/slack"; profile = "${pkgs.firejail}/etc/firejail/slack.profile"; desktop = "${pkgs.slack}/share/applications/slack.desktop"; extraArgs = [ "--ignore=private-dev" "--env=GTK_THEME=Adwaita:dark" "--dbus-user.talk=org.freedesktop.Notifications" "--dbus-user.talk=org.freedesktop.portal.Desktop" ]; }; # firefox = { # executable = "${pkgs.firefox}/bin/firefox"; # profile = "${pkgs.firejail}/etc/firejail/firefox.profile"; # desktop = "${pkgs.firefox}/share/applications/firefox.desktop"; # extraArgs = [ # "--ignore=private-dev" # "--env=GTK_THEME=Adwaita:dark" # "--dbus-user.talk=org.freedesktop.Notifications" # "--dbus-user.talk=org.freedesktop.portal.Desktop" # ]; # }; }; }; }; hardware = { sane.enable = true; graphics.enable = true; }; networking.hostName = "work-laptop"; nix.settings.trusted-users = [ "root" "xmorel" ]; powerManagement = { enable = true; cpuFreqGovernor = "schedutil"; }; security.sudo.wheelNeedsPassword = false; services = { # auto-cpufreq.enable = true; xserver.videoDrivers = [ "amdgpu" ]; upower.enable = true; power-profiles-daemon.enable = true; tailscale.enable = true; tailscale.useRoutingFeatures = "client"; }; environment.systemPackages = [ pkgs.cachix pkgs.pavucontrol pkgs.swaylock pkgs.xwayland-satellite pkgs.bottles pkgs.podman pkgs.podman-compose ] ++ [ ( let packages = with pkgs; [ firefox # slack ]; lib = pkgs.lib; in pkgs.runCommand "firejail-icons" { preferLocalBuild = true; allowSubstitutes = false; meta.priority = -1; } '' mkdir -p "$out/share/icons" ${lib.concatLines ( map (pkg: '' tar -C "${pkg}" -c share/icons -h --mode 0755 -f - | tar -C "$out" -xf - '') packages )} find "$out/" -type f -print0 | xargs -0 chmod 0444 find "$out/" -type d -print0 | xargs -0 chmod 0555 '' ) ]; programs.wireshark.enable = true; xdg.portal = { enable = true; extraPortals = with pkgs; [ xdg-desktop-portal-gtk xdg-desktop-portal-gnome ]; config = { common = { default = [ "gtk" ]; }; niri = { default = [ "gtk" "gnome" ]; "org.freedesktop.impl.portal.ScreenCast" = [ "gnome" ]; "org.freedesktop.impl.portal.Screenshot" = [ "gnome" ]; }; }; }; environment.sessionVariables = { XDG_CURRENT_DESKTOP = "niri"; XDG_SESSION_TYPE = "wayland"; XDG_SESSION_DESKTOP = "niri"; }; system.stateVersion = "24.05"; }