167 lines
4.0 KiB
Nix
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";
|
|
}
|