Files
nixos/hosts/work/configuration.nix
2026-01-28 21:31:16 +01:00

167 lines
4.0 KiB
Nix

{
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";
}