diff --git a/flake.lock b/flake.lock index 5921719..a2a099f 100644 --- a/flake.lock +++ b/flake.lock @@ -151,11 +151,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1747498832, - "narHash": "sha256-qLzhGOSIZdd4QDpbUgQyt3Tp2o4d4k1N6vcebS+DN4I=", + "lastModified": 1747585320, + "narHash": "sha256-sdJkqFwYlRkijgRoOTH6cg+N6w41qXtFkrC79vMHUYg=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "20bad5faaa8cd9782977d70b8b34638f6449a2a7", + "rev": "527c14f4280d37d857f7e9e70330168ed95a69b4", "type": "github" }, "original": { @@ -174,11 +174,11 @@ "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1747498832, - "narHash": "sha256-qLzhGOSIZdd4QDpbUgQyt3Tp2o4d4k1N6vcebS+DN4I=", + "lastModified": 1747585320, + "narHash": "sha256-sdJkqFwYlRkijgRoOTH6cg+N6w41qXtFkrC79vMHUYg=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "20bad5faaa8cd9782977d70b8b34638f6449a2a7", + "rev": "527c14f4280d37d857f7e9e70330168ed95a69b4", "type": "github" }, "original": { @@ -407,16 +407,16 @@ ] }, "locked": { - "lastModified": 1747331121, - "narHash": "sha256-3MmiUN/jOHBHQUnjqzg6qKArc17j2OS6jisEppDY4g8=", + "lastModified": 1747556831, + "narHash": "sha256-Qb84nbYFFk0DzFeqVoHltS2RodAYY5/HZQKE8WnBDsc=", "owner": "nix-community", "repo": "home-manager", - "rev": "1eec32f0efe3b830927989767a9e6ece0d82d608", + "rev": "d0bbd221482c2713cccb80220f3c9d16a6e20a33", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-24.11", + "ref": "release-25.05", "repo": "home-manager", "type": "github" } @@ -429,11 +429,11 @@ ] }, "locked": { - "lastModified": 1747439237, - "narHash": "sha256-5rCGrnkglKKj4cav1U3HC+SIUNJh08pqOK4spQv9RjA=", + "lastModified": 1747565775, + "narHash": "sha256-B6jmKHUEX1jxxcdoYHl7RVaeohtAVup8o3nuVkzkloA=", "owner": "nix-community", "repo": "home-manager", - "rev": "ae755329092c87369b9e9a1510a8cf1ce2b1c708", + "rev": "97118a310eb8e13bc1b9b12d67267e55b7bee6c8", "type": "github" }, "original": { @@ -487,11 +487,11 @@ ] }, "locked": { - "lastModified": 1747446936, - "narHash": "sha256-O5HLvg27oWAUHaZvAK8p30whJLlZSAUWMu7RZwWwX/0=", + "lastModified": 1747533823, + "narHash": "sha256-/SRma+VrauAHu8sIIxSU8zYQScE2xCznQzfUalDIT6M=", "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "c23c72f97fc61391f9022f5f426c1b737b2d639a", + "rev": "047e061d9369a9bf58e5e4bf7cca016ecc72f72c", "type": "github" }, "original": { @@ -513,11 +513,11 @@ ] }, "locked": { - "lastModified": 1747446936, - "narHash": "sha256-O5HLvg27oWAUHaZvAK8p30whJLlZSAUWMu7RZwWwX/0=", + "lastModified": 1747533823, + "narHash": "sha256-/SRma+VrauAHu8sIIxSU8zYQScE2xCznQzfUalDIT6M=", "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "c23c72f97fc61391f9022f5f426c1b737b2d639a", + "rev": "047e061d9369a9bf58e5e4bf7cca016ecc72f72c", "type": "github" }, "original": { @@ -540,11 +540,11 @@ "nur": "nur" }, "locked": { - "lastModified": 1747136507, - "narHash": "sha256-lnt9LypZVMRzRDpl+gQtrInxvsF7CL18TTEMthXz8p8=", + "lastModified": 1747602536, + "narHash": "sha256-XpXAp3tgfPWeV+Wq3/iilz4mCgvRD75Q8kvgHKRIJRw=", "owner": "materusPL", "repo": "Nixerus", - "rev": "8c329020c653c04a8f0f50dc7400c01b3b9e3733", + "rev": "84d8b84d1e6883d3e393c889ea62cba503c83a1d", "type": "github" }, "original": { @@ -567,11 +567,11 @@ "nur": "nur_3" }, "locked": { - "lastModified": 1747136507, - "narHash": "sha256-lnt9LypZVMRzRDpl+gQtrInxvsF7CL18TTEMthXz8p8=", + "lastModified": 1747602536, + "narHash": "sha256-XpXAp3tgfPWeV+Wq3/iilz4mCgvRD75Q8kvgHKRIJRw=", "owner": "materusPL", "repo": "Nixerus", - "rev": "8c329020c653c04a8f0f50dc7400c01b3b9e3733", + "rev": "84d8b84d1e6883d3e393c889ea62cba503c83a1d", "type": "github" }, "original": { @@ -631,11 +631,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1747335874, - "narHash": "sha256-IKKIXTSYJMmUtE+Kav5Rob8SgLPnfnq4Qu8LyT4gdqQ=", + "lastModified": 1747485343, + "narHash": "sha256-YbsZyuRE1tobO9sv0PUwg81QryYo3L1F3R3rF9bcG38=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ba8b70ee098bc5654c459d6a95dfc498b91ff858", + "rev": "9b5ac7ad45298d58640540d0323ca217f32a6762", "type": "github" }, "original": { @@ -647,11 +647,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1747335874, - "narHash": "sha256-IKKIXTSYJMmUtE+Kav5Rob8SgLPnfnq4Qu8LyT4gdqQ=", + "lastModified": 1747485343, + "narHash": "sha256-YbsZyuRE1tobO9sv0PUwg81QryYo3L1F3R3rF9bcG38=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ba8b70ee098bc5654c459d6a95dfc498b91ff858", + "rev": "9b5ac7ad45298d58640540d0323ca217f32a6762", "type": "github" }, "original": { @@ -663,16 +663,16 @@ }, "nixpkgs-stable_3": { "locked": { - "lastModified": 1747335874, - "narHash": "sha256-IKKIXTSYJMmUtE+Kav5Rob8SgLPnfnq4Qu8LyT4gdqQ=", + "lastModified": 1747428706, + "narHash": "sha256-XVds9FkRrY59xRNNq14FNsFGqDiexXX/mlHcX4hPyyk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ba8b70ee098bc5654c459d6a95dfc498b91ff858", + "rev": "2e1496bf8652ff4af4e4d4737277f71e4a4f5cb2", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-24.11", + "ref": "nixos-25.05", "repo": "nixpkgs", "type": "github" } @@ -727,11 +727,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1747327360, - "narHash": "sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4+wYK4=", + "lastModified": 1747542820, + "narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e06158e58f3adee28b139e9c2bcfcc41f8625b46", + "rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 5bfa56a..84934b0 100644 --- a/flake.nix +++ b/flake.nix @@ -7,21 +7,19 @@ repo = "nixpkgs"; ref = "nixos-unstable"; }; - - - + nixpkgs-stable = { type = "github"; owner = "NixOS"; repo = "nixpkgs"; - ref = "nixos-24.11"; + ref = "nixos-25.05"; }; hm-stable = { type = "github"; owner = "nix-community"; repo = "home-manager"; - ref = "release-24.11"; + ref = "release-25.05"; inputs.nixpkgs.follows = "nixpkgs-stable"; }; @@ -41,5 +39,4 @@ }; }; outputs = inputs: import (builtins.toString ./nix) { inherit inputs; configRootPath = (builtins.toString ./.); }; - } diff --git a/flake.org b/flake.org index 0a920e8..791510b 100644 --- a/flake.org +++ b/flake.org @@ -9,9 +9,14 @@ * Flakes ** Main Flake Flake of entire repo. [[./flake.nix][link]] +#+name: version +#+begin_src txt :noweb-ref version + 25.05 +#+end_src + #+name: main_flake -#+begin_src nix header-args :tangle ./flake.nix +#+begin_src nix header-args :tangle ./flake.nix :noweb yes { description = "MKK flake: NixOS and home manager configs"; inputs = { @@ -21,21 +26,19 @@ Flake of entire repo. [[./flake.nix][link]] repo = "nixpkgs"; ref = "nixos-unstable"; }; - - - + nixpkgs-stable = { type = "github"; owner = "NixOS"; repo = "nixpkgs"; - ref = "nixos-24.11"; + ref = "nixos-<>"; }; hm-stable = { type = "github"; owner = "nix-community"; repo = "home-manager"; - ref = "release-24.11"; + ref = "release-<>"; inputs.nixpkgs.follows = "nixpkgs-stable"; }; @@ -55,7 +58,6 @@ Flake of entire repo. [[./flake.nix][link]] }; }; outputs = inputs: import (builtins.toString ./nix) { inherit inputs; configRootPath = (builtins.toString ./.); }; - } #+end_src ** Subflake diff --git a/nix/common-os.nix b/nix/common-os.nix index 5b75eca..4800711 100644 --- a/nix/common-os.nix +++ b/nix/common-os.nix @@ -1,7 +1,10 @@ # * Common OS { + lib, + pkgs, mkkArg, config, + konfig, ... }: { @@ -9,6 +12,47 @@ imports = [ mkkArg.current.sops-nix.nixosModules.sops # * Config +# ** System +# *** Fonts + { + options.mkk.os.fonts.enable = konfig.nixerusPkgs.lib.mkBoolOpt false "Enable MKK font settings for OS"; + + config = lib.mkIf config.mkk.os.fonts.enable { + + fonts.packages = konfig.vars.packageLists.fonts; + fonts.enableDefaultPackages = lib.mkDefault true; + + fonts.fontconfig.enable = lib.mkDefault true; + fonts.fontconfig.cache32Bit = lib.mkDefault true; + + fonts.fontconfig.defaultFonts.sansSerif = [ "Noto Sans" "DejaVu Sans" "WenQuanYi Zen Hei" "Noto Color Emoji" ]; + fonts.fontconfig.defaultFonts.serif = [ "Noto Serif" "DejaVu Serif" "WenQuanYi Zen Hei" "Noto Color Emoji" ]; + fonts.fontconfig.defaultFonts.emoji = [ "Noto Color Emoji" "OpenMoji Color" ]; + fonts.fontconfig.defaultFonts.monospace = [ "Hack Nerd Font" "Noto Sans Mono" "WenQuanYi Zen Hei Mono" ]; + + fonts.fontDir.enable = lib.mkDefault true; + }; + } +# ** Shells +# *** Zsh + { + options.mkk.os.zsh.enable = + konfig.nixerusPkgs.lib.mkBoolOpt true "Enable MKK system zsh config"; + config = lib.mkIf config.mkk.os.zsh.enable { + users.defaultUserShell = pkgs.zsh; + environment.shells = [ pkgs.zsh ]; + programs.zsh = { + enable = true; + enableGlobalCompInit = false; + interactiveShellInit = '' + if [[ ''${__MATERUS_HM_ZSH:-0} == 0 ]]; then + source ${pkgs.grml-zsh-config}/etc/zsh/zshrc + fi + ''; + promptInit = ''''; + }; + }; + } # ** Assertions { assertions = [ @@ -22,7 +66,7 @@ } ]; } -# ** Variables +# ** Variables { mkk.commonVariables = { path = { diff --git a/nix/common.nix b/nix/common.nix index 270176d..b44660e 100644 --- a/nix/common.nix +++ b/nix/common.nix @@ -17,7 +17,7 @@ nvidia.acceptLicense = lib.mkDefault true; }; - nix.package = lib.mkDefault pkgs.nixVersions.nix_2_28; + nix.package = lib.mkDefault pkgs.nixVersions.latest; nix.settings = { experimental-features = [ "nix-command" @@ -172,6 +172,42 @@ }; } +# ** Variables + { + mkk.commonVariables = { + packageLists = rec { + defaultFonts = [ + pkgs.dejavu_fonts + pkgs.freefont_ttf + pkgs.gyre-fonts + pkgs.liberation_ttf + pkgs.unifont + ]; + fonts = [ + pkgs.noto-fonts + pkgs.noto-fonts-extra + pkgs.noto-fonts-emoji + pkgs.noto-fonts-cjk-sans + pkgs.noto-fonts-cjk-serif + + pkgs.wqy_zenhei + + pkgs.corefonts + pkgs.hack-font + pkgs.ubuntu_font_family + pkgs.monocraft + + pkgs.nerd-fonts.hack + pkgs.nerd-fonts.meslo-lg + pkgs.nerd-fonts.droid-sans-mono + pkgs.nerd-fonts.profont + pkgs.nerd-fonts.fira-code + + ] ++ defaultFonts; + + }; + }; + } # ** Assertions { config.assertions = [ diff --git a/nix/hosts/materusPC.nix b/nix/hosts/materusPC.nix index 6a443f9..f3b59cc 100644 --- a/nix/hosts/materusPC.nix +++ b/nix/hosts/materusPC.nix @@ -32,15 +32,544 @@ } ]; } -# *** Nix System Settings +# *** Nix System Settings { nixpkgs.hostPlatform = "x86_64-linux"; system.copySystemConfiguration = false; system.stateVersion = "23.05"; + + } +# *** Users + { + users.users.materus = { + isNormalUser = true; + extraGroups = [ + "audio" + "video" + "render" + "pipewire" + "wheel" + "networkmanager" + "input" + "kvm" + "libvirt-qemu" + "libvirt" + "libvirtd" + "podman" + "scanner" + "lp" + ]; + shell = pkgs.zsh; + description = "Mateusz Słodkowicz"; + openssh.authorizedKeys.keyFiles = [ ("${konfig.rootFlake}" + "/private/pubkeys/materus.pub") ]; + #hashedPasswordFile = config.sops.secrets."users/materus".path; + }; + } +# *** Audio + { + security.rtkit.enable = true; + services.pipewire = { + enable = true; + audio.enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + systemWide = true; + jack.enable = true; + }; + + services.pulseaudio.enable = false; + environment.sessionVariables = + let + makePluginPath = + format: + "$HOME/.${format}:" + + (lib.makeSearchPath format [ + "$HOME/.nix-profile/lib" + "/run/current-system/sw/lib" + "/etc/profiles/per-user/$USER/lib" + ]); + in + { + ALSOFT_DRIVERS = "pulse"; + + DSSI_PATH = makePluginPath "dssi"; + LADSPA_PATH = makePluginPath "ladspa"; + LV2_PATH = makePluginPath "lv2"; + LXVST_PATH = makePluginPath "lxvst"; + VST_PATH = makePluginPath "vst"; + VST3_PATH = makePluginPath "vst3"; + + }; + services.udev.extraRules = '' + KERNEL=="rtc0", GROUP="audio" + KERNEL=="hpet", GROUP="audio" + DEVPATH=="/devices/virtual/misc/cpu_dma_latency", OWNER="root", GROUP="audio", MODE="0660" + ''; + + environment.systemPackages = with pkgs; [ + openal + pulseaudio + + reaper + audacity + + yabridge + yabridgectl + + vital + odin2 + surge + fire + decent-sampler + lsp-plugins + + ]; + } +# *** Other + { + mkk.os.fonts.enable = true; + } +# ** Desktop +# *** XDG + { + xdg.portal.enable = true; + xdg.portal.wlr.enable = true; + xdg.portal.xdgOpenUsePortal = true; + xdg.portal.extraPortals = [ pkgs.kdePackages.xdg-desktop-portal-kde ]; + + xdg.portal.config.common.default = "*"; + + + environment.sessionVariables = { + XDG_CACHE_HOME = "\${HOME}/.cache"; + XDG_CONFIG_HOME = "\${HOME}/.config"; + XDG_BIN_HOME = "\${HOME}/.local/bin"; + XDG_DATA_HOME = "\${HOME}/.local/share"; + }; + } +# *** KDE Plasma + { + environment.plasma6.excludePackages = with pkgs.kdePackages; [ + kwallet + kwalletmanager + kwallet-pam + ]; + environment.variables = { + # Old fix for black cursor on amdgpu, seems to work fine now + #KWIN_DRM_NO_AMS = "1"; + + #Fix for amdgpu crashes + KWIN_DRM_USE_MODIFIERS = "0"; + KWIN_DRM_NO_DIRECT_SCANOUT = "1"; + QT_PLUGIN_PATH = [ + "${pkgs.qt6.qtimageformats}/${pkgs.qt6.qtbase.qtPluginPrefix}" + "${pkgs.kdePackages.ffmpegthumbs}/${pkgs.qt6.qtbase.qtPluginPrefix}" + ]; + XCURSOR_THEME = "breeze_cursors"; + }; + environment.systemPackages = with pkgs; [ + kdePackages.ark + kdePackages.kcalc + kdePackages.kate + ]; + programs.kdeconnect.enable = true; + + programs.firefox.nativeMessagingHosts.packages = [pkgs.kdePackages.plasma-browser-integration ]; + programs.chromium.enablePlasmaBrowserIntegration = true; + } +# *** SDDM + ( + let + plasma-materus = pkgs.writeScript "plasma-materus" '' + export KWIN_DRM_DEVICES="/dev/dri/by-path/pci-0000\:53\:00.0-card" + ${pkgs.kdePackages.plasma-workspace}/libexec/plasma-dbus-run-session-if-needed ${pkgs.kdePackages.plasma-workspace}/bin/startplasma-wayland + ''; + + westonSddm = + let + xcfg = config.services.xserver; + in + pkgs.writeText "weston.ini" '' + [core] + xwayland=false + shell=fullscreen-shell.so + + [keyboard] + keymap_model = ${builtins.toString xcfg.xkb.model}; + keymap_layout = ${builtins.toString xcfg.xkb.layout}; + keymap_variant = ${builtins.toString xcfg.xkb.variant}; + keymap_options = ${builtins.toString xcfg.xkb.options}; + + [libinput] + enable-tap = ${builtins.toString xcfg.libinput.mouse.tapping}; + left-handed = ${builtins.toString xcfg.libinput.mouse.leftHanded}; + + [output] + name=DP-3 + mode=1920x1080@240 + + [output] + name=DP-4 + mode=off + + [output] + name=HDMI-A-3 + mode=off + + ''; + in + { + services.displayManager.defaultSession = "plasma-materus"; + + services.displayManager.sddm.enable = true; + services.displayManager.sddm.wayland.enable = true; + services.displayManager.sddm.wayland.compositor = lib.mkForce "weston"; + services.displayManager.sddm.wayland.compositorCommand = lib.concatStringsSep " " [ + "${lib.getExe pkgs.weston}" + "--shell=kiosk" + "-c ${westonSddm}" + ]; + services.displayManager.sessionPackages = [ + ( + (pkgs.writeTextDir "share/wayland-sessions/plasma-materus.desktop" '' + [Desktop Entry] + Name=Plasma (Wayland Materus) + Comment=Plasma Desktop with KWIN_DRM_DEVICES env + Exec=${plasma-materus} + DesktopNames=KDE + Type=Application + '').overrideAttrs + (_: { + passthru.providedSessions = [ "plasma-materus" ]; + }) + ) + ]; + + services.displayManager.sddm.settings = { + General = { + InputMethod = ""; + }; + Theme = { + CursorTheme = "breeze_cursors"; + CursorSize = "24"; + }; + }; + } + ) +# ** Programs & Services +# *** Java + { + programs = { + java.enable = true; + java.package = pkgs.jdk; + java.binfmt = true; + }; + + environment.variables = { + JAVA_8_HOME = "${pkgs.jdk8}/lib/openjdk/"; + JAVA_17_HOME = "${pkgs.jdk17}/lib/openjdk/"; + JAVA_21_HOME = "${pkgs.jdk21}/lib/openjdk/"; + }; + } +# *** Samba + { + services.samba-wsdd.enable = true; + services.samba-wsdd.openFirewall = true; + services.samba = { + enable = true; + package = pkgs.sambaFull; + openFirewall = true; + settings = { + global = { + "workgroup" = "WORKGROUP"; + "server string" = "smbmaterus"; + "netbios name " = "smbmaterus"; + "security" = "user"; + "hosts allow" = "192.168.122. 127.0.0.1 localhost"; + "hosts deny" = "0.0.0.0/0"; + "guest account" = "nobody"; + "map to guest" = "bad user"; + "allow insecure wide links" = "yes"; + }; + windows = { + "path" = "/materus/data/VM/windows_shared"; + "browseable" = "yes"; + "read only" = "no"; + "guest ok" = "no"; + "create mask" = "0644"; + "directory mask" = "0755"; + "force user" = "materus"; + "force group" = "users"; + "follow symlinks" = "yes"; + "wide links" = "yes"; + }; + + }; + }; + + } +# *** XServer + { + services.xserver.xkb.layout = "pl"; + + services.xserver.enable = true; + #services.xserver.videoDrivers = [ "amdgpu" "intel" ]; + + services.xserver.displayManager.startx.enable = false; + + services.xserver.exportConfiguration = true; + services.xserver.extraConfig = pkgs.lib.mkDefault '' + Section "OutputClass" + Identifier "amd-options" + Option "TearFree" "True" + Option "SWCursor" "True" + Option "VariableRefresh" "true" + Option "AsyncFlipSecondaries" "true" + Option "DRI3" "1" + MatchDriver "amdgpu" + EndSection + ''; + } +# *** Input + { + environment.sessionVariables = { + QT_XKB_CONFIG_ROOT = "\${XKB_CONFIG_ROOT}"; + GTK_IM_MODULE = "fcitx"; + QT_IM_MODULE = "fcitx"; + XMODIFIERS = "@im=fcitx"; + SDL_IM_MODULE = "fcitx"; + + MOZ_USE_XINPUT2 = "1"; + PATH = [ "\${XDG_BIN_HOME}" ]; + }; + + i18n.inputMethod.enable = true; + i18n.inputMethod.type = "fcitx5"; + i18n.inputMethod.fcitx5.addons = [ + pkgs.kdePackages.fcitx5-configtool + pkgs.fcitx5-lua + pkgs.fcitx5-mozc + pkgs.fcitx5-gtk + pkgs.kdePackages.fcitx5-qt + ]; + + services.libinput.enable = true; + services.libinput.mouse = { + accelProfile = "flat"; + }; + } +# *** Shell + { + environment.shellInit = '' + if ! [ -z "$DISPLAY" ]; then xhost +si:localuser:root &> /dev/null; fi; + if ! [ -z "$DISPLAY" ]; then xhost +si:localuser:$USER &> /dev/null; fi; + ''; + environment.enableAllTerminfo = true; + environment.pathsToLink = [ + "/share/zsh" + "/share/bash-completion" + "/share/fish" + ]; + environment.shells = with pkgs; [ + zsh + bashInteractive + fish + ]; + mkk.os.zsh.enable = true; + } +# *** Other Services + { + systemd.tmpfiles.rules = [ "L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}" ]; + services.flatpak.enable = true; + services.gvfs.enable = true; + + services.dbus.enable = true; + services.dbus.packages = [ pkgs.gcr ]; + + services.printing.enable = true; + + + services.teamviewer.enable = true; + + services.pcscd.enable = true; + + services.davfs2.enable = true; + + # GPG + programs.gnupg.agent = { + enable = true; + enableSSHSupport = false; + enableBrowserSocket = true; + + }; + + # SSH + programs.ssh.startAgent = true; + services.openssh.enable = true; + services.openssh.settings.PermitRootLogin = "no"; + services.openssh.settings.PasswordAuthentication = false; + services.openssh.openFirewall = true; + + # Sunshine + services.sunshine = { + enable = true; + capSysAdmin = true; + openFirewall = true; + autoStart = false; + }; + } +# *** Other Apps + { + programs = { + fish.enable = true; + command-not-found.enable = false; + dconf.enable = true; + }; + + programs.firefox.enable = true; + + + programs.gamemode.enable = true; + programs.corectrl.enable = true; + + programs.nix-ld.enable = true; + programs.nix-ld.libraries = with pkgs; [ + + ]; + programs.chromium.enable = true; + + environment.systemPackages = with pkgs; [ + + (vivaldi.overrideAttrs (oldAttrs: { + dontWrapQtApps = false; + dontPatchELF = true; + nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ pkgs.kdePackages.wrapQtAppsHook ]; + })) + + #(pkgs.lutris.override { extraLibraries = pkgs: with pkgs; [ pkgs.samba pkgs.jansson pkgs.tdb pkgs.libunwind pkgs.libusb1 pkgs.gnutls pkgs.gtk3 pkgs.pango ]; }) + konfig.nixerusPkgs.amdgpu-pro-libs.prefixes + (pkgs.bottles.override { + extraPkgs = pkgs: [ + pkgs.libsForQt5.breeze-qt5 + pkgs.kdePackages.breeze-gtk + pkgs.nss_latest + ]; + extraLibraries = pkgs: [ + pkgs.samba + pkgs.jansson + pkgs.tdb + pkgs.libunwind + pkgs.libusb1 + pkgs.gnutls + pkgs.gtk3 + pkgs.pango + ]; + }) + glibc + glib + gtk3 + gtk4 + gsettings-desktop-schemas + kdePackages.dolphin + vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + vlc + vkbasalt-cli + + patchelf + killall + util-linux + xorg.xhost + nix-top + + gitFull + curl + wget + + config.programs.java.package + + nss_latest + + pciutils + + (aspellWithDicts ( + ds: with ds; [ + en + en-computers + en-science + pl + ] + )) + steamtinkerlaunch + distrobox + # WebP support + libwebp + webp-pixbuf-loader + + # Compression + p7zip + unrar + bzip2 + rar + unzip + zstd + xz + zip + gzip + + tree + mc + lf + htop + nmon + iftop + iptraf-ng + mprocs + tldr + bat + ##config.materus.profile.packages.home-manager + gcr + # pgcli + # litecli + #zenmonitor + + nix-du + + wineWowPackages.stagingFull + winetricks + protontricks + gnupg + pinentry + pinentry-gnome3 + pinentry-curses + ncurses + monkeysphere + gparted + + virt-viewer + + inkscape + gimp + + git-crypt + + bubblewrap + bindfs + + binutils + + qbittorrent + mkvtoolnix + nicotine-plus + picard + opusTools + aegisub + ]; } # ** Network # *** Firewall & Others { + services = { syncthing = { enable = true; @@ -146,89 +675,6 @@ }; } # ** Hardware -# *** Filesystems - { - zramSwap = { - enable = true; - memoryPercent = 25; - }; - - swapDevices = [ - { - label = "NixOS_Swap"; - } - ]; - - fileSystems."/etc/nixos" = { - device = "/materus/config/mkk"; - fsType = "none"; - options = [ "bind" ]; - depends = [ "/materus" ]; - }; - - fileSystems."/materus" = { - device = "/dev/disk/by-label/NixOS_Root"; - fsType = "btrfs"; - options = [ - "subvol=@materus" - "noatime" - "compress=zstd" - "ssd" - "space_cache=v2" - ]; - neededForBoot = true; - }; - - fileSystems."/" = { - device = "/dev/disk/by-label/NixOS_Root"; - fsType = "btrfs"; - options = [ - "subvol=@" - "noatime" - "ssd" - "space_cache=v2" - "compress=zstd" - ]; - }; - - fileSystems."/nix" = { - device = "/dev/disk/by-label/NixOS_Root"; - fsType = "btrfs"; - options = [ - "subvol=@nix" - "noatime" - "compress=zstd" - "ssd" - "space_cache=v2" - ]; - }; - - fileSystems."/home" = { - device = "/dev/disk/by-label/NixOS_Root"; - fsType = "btrfs"; - options = [ - "subvol=@home" - "noatime" - "compress=zstd" - "ssd" - "space_cache=v2" - ]; - }; - - fileSystems."/boot" = { - device = "/dev/disk/by-label/NixOS_Root"; - fsType = "btrfs"; - options = [ - "subvol=@boot" - "ssd" - ]; - }; - - fileSystems."/boot/efi" = { - device = "/dev/disk/by-label/NixOS_EFI"; - fsType = "vfat"; - }; - } # *** Kernel & Boot { boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux_zen; @@ -326,9 +772,14 @@ # *** Firmware & Others { + services.udev = { + packages = with pkgs; [ + game-devices-udev-rules + ]; + }; hardware.uinput.enable = true; hardware.steam-hardware.enable = true; - + hardware.firmware = with pkgs; [ konfig.nixerusPkgs.amdgpu-pro-libs.firmware.vcn konfig.nixerusPkgs.amdgpu-pro-libs.firmware @@ -386,6 +837,89 @@ interval = "weekly"; }; } +# *** Filesystems + { + zramSwap = { + enable = true; + memoryPercent = 25; + }; + + swapDevices = [ + { + label = "NixOS_Swap"; + } + ]; + + fileSystems."/etc/nixos" = { + device = "/materus/config/mkk"; + fsType = "none"; + options = [ "bind" ]; + depends = [ "/materus" ]; + }; + + fileSystems."/materus" = { + device = "/dev/disk/by-label/NixOS_Root"; + fsType = "btrfs"; + options = [ + "subvol=@materus" + "noatime" + "compress=zstd" + "ssd" + "space_cache=v2" + ]; + neededForBoot = true; + }; + + fileSystems."/" = { + device = "/dev/disk/by-label/NixOS_Root"; + fsType = "btrfs"; + options = [ + "subvol=@" + "noatime" + "ssd" + "space_cache=v2" + "compress=zstd" + ]; + }; + + fileSystems."/nix" = { + device = "/dev/disk/by-label/NixOS_Root"; + fsType = "btrfs"; + options = [ + "subvol=@nix" + "noatime" + "compress=zstd" + "ssd" + "space_cache=v2" + ]; + }; + + fileSystems."/home" = { + device = "/dev/disk/by-label/NixOS_Root"; + fsType = "btrfs"; + options = [ + "subvol=@home" + "noatime" + "compress=zstd" + "ssd" + "space_cache=v2" + ]; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-label/NixOS_Root"; + fsType = "btrfs"; + options = [ + "subvol=@boot" + "ssd" + ]; + }; + + fileSystems."/boot/efi" = { + device = "/dev/disk/by-label/NixOS_EFI"; + fsType = "vfat"; + }; + } # * materusPC END ]; } diff --git a/private/pubkeys/materus.pub b/private/pubkeys/materus.pub new file mode 100644 index 0000000..72e3f79 Binary files /dev/null and b/private/pubkeys/materus.pub differ