]> gitweb.ps.run Git - flake_thinkpad/blobdiff - configuration.nix
update
[flake_thinkpad] / configuration.nix
index e23675844ed5423f68f86e32ccba7a85d6033fd0..5ab6712089182fc66769ae195faa84b4cdaa67e9 100644 (file)
@@ -53,6 +53,7 @@ in
 
   nix.settings.experimental-features = [ "nix-command" "flakes" ];
   nix.settings.download-buffer-size = 500000000;
 
   nix.settings.experimental-features = [ "nix-command" "flakes" ];
   nix.settings.download-buffer-size = 500000000;
+  nix.settings.trusted-users = ["root" "ps"];
 
   # Configure network proxy if necessary
   # networking.proxy.default = "http://user:password@proxy:port/";
 
   # Configure network proxy if necessary
   # networking.proxy.default = "http://user:password@proxy:port/";
@@ -128,30 +129,24 @@ in
   # Services
   services = {
     displayManager = {
   # Services
   services = {
     displayManager = {
+      sddm.enable = true;
+      sddm.autoLogin.relogin = true;
       defaultSession = "xfce+i3";
     };
       defaultSession = "xfce+i3";
     };
+    desktopManager = {
+      plasma6.enable = true;
+    };
     xserver = {
       enable = true;
       
       displayManager = {
     xserver = {
       enable = true;
       
       displayManager = {
-        lightdm = {
-          enable = true;
-          greeters.gtk = {
-            theme = {
-              name = "Qogir-Dark";
-              package = pkgs.qogir-theme;
-            };
-            iconTheme = {
-              name = "Qogir-dark";
-              package = pkgs.qogir-icon-theme;
-            };
-            cursorTheme = {
-              name = "volantes_light_cursors";
-              package = pkgs.volantes-cursors;
-            };
-          };
-          background = "${wallpaper}";
-        };
+        session = [
+          {
+            manage = "desktop";
+            name = "plasma-i3wm";
+            start = "KDEWM=${pkgs.i3}/bin/i3 /run/current-system/sw/bin/startplasma-x11";
+          }
+        ];
       };
 
       desktopManager = {
       };
 
       desktopManager = {
@@ -163,7 +158,8 @@ in
         };
       };
       windowManager.i3.enable = true;
         };
       };
       windowManager.i3.enable = true;
-      windowManager.awesome.enable = true;
+      # windowManager.awesome.enable = true;
+      # windowManager.herbstluftwm.enable = true;
 
       xkb = {
         layout = "de";
 
       xkb = {
         layout = "de";
@@ -176,6 +172,8 @@ in
     };
   };
 
     };
   };
 
+  systemd.user.services.plasma-kwin_x11.enable = false;
+
   services.autorandr = {
     enable = true;
     matchEdid = true;
   services.autorandr = {
     enable = true;
     matchEdid = true;
@@ -193,34 +191,46 @@ in
     configDir = "/home/ps/.config/syncthing";
   };
   
     configDir = "/home/ps/.config/syncthing";
   };
   
-  services.tlp = {
-    enable = true;
-    settings = {
-      CPU_SCALING_GOVERNOR_ON_AC = "performance";
-      CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
-
-      CPU_ENERGY_PERF_POLICY_ON_AC = "balance_performance";
-      CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
-
-      PLATFORM_PROFILE_ON_AC = "balanced";
-      PLATFORM_PROFILE_ON_BAT = "low-power";
-
-      CPU_BOOST_ON_AC = "1";
-      CPU_BOOST_ON_BAT = "0";
-
-      AMDGPU_ABM_LEVEL_ON_AC = "0";
-      AMDGPU_ABM_LEVEL_ON_BAT = "3";
-
-      CPU_MIN_PERF_ON_AC = 0;
-      CPU_MAX_PERF_ON_AC = 100;
-      CPU_MIN_PERF_ON_BAT = 0;
-      CPU_MAX_PERF_ON_BAT = 20;
-
-      START_CHARGE_THRESH_BAT0 = 40; # 40 and below it starts to charge
-      STOP_CHARGE_THRESH_BAT0 = 85; # 85 and above it stops charging
+  # services.auto-cpufreq.enable = true;
+  services.auto-cpufreq.settings = {
+    battery = {
+       governor = "powersave";
+       turbo = "never";
+    };
+    charger = {
+       governor = "performance";
+       turbo = "auto";
     };
   };
 
     };
   };
 
+  # services.tlp = {
+  #   enable = true;
+  #   settings = {
+  #     CPU_SCALING_GOVERNOR_ON_AC = "performance";
+  #     CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
+  #
+  #     CPU_ENERGY_PERF_POLICY_ON_AC = "balance_performance";
+  #     CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
+  #
+  #     PLATFORM_PROFILE_ON_AC = "balanced";
+  #     PLATFORM_PROFILE_ON_BAT = "low-power";
+  #
+  #     CPU_BOOST_ON_AC = "1";
+  #     CPU_BOOST_ON_BAT = "0";
+  #
+  #     AMDGPU_ABM_LEVEL_ON_AC = "0";
+  #     AMDGPU_ABM_LEVEL_ON_BAT = "3";
+  #
+  #     CPU_MIN_PERF_ON_AC = 0;
+  #     CPU_MAX_PERF_ON_AC = 100;
+  #     CPU_MIN_PERF_ON_BAT = 0;
+  #     CPU_MAX_PERF_ON_BAT = 20;
+  #
+  #     # START_CHARGE_THRESH_BAT0 = 40; # 40 and below it starts to charge
+  #     STOP_CHARGE_THRESH_BAT0 = 90; # 85 and above it stops charging
+  #   };
+  # };
+
   services.udev.extraRules = ''
     KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{serial}=="*vial:f64c2b3c*", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
   '';
   services.udev.extraRules = ''
     KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{serial}=="*vial:f64c2b3c*", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
   '';
@@ -230,6 +240,11 @@ in
     graphics = {
         enable = true;
         enable32Bit = true;
     graphics = {
         enable = true;
         enable32Bit = true;
+       extraPackages = with pkgs; [
+         rocmPackages.clr.icd
+         mesa.opencl
+         amf
+       ];
     };
 
     amdgpu.amdvlk = {
     };
 
     amdgpu.amdvlk = {
@@ -261,7 +276,7 @@ in
   # Enable Bluetooth
   hardware.bluetooth.enable = true;
   hardware.bluetooth.powerOnBoot = false;
   # Enable Bluetooth
   hardware.bluetooth.enable = true;
   hardware.bluetooth.powerOnBoot = false;
-  services.blueman.enable = true;
+  services.blueman.enable = true;
 
   # Enable sound with pipewire.
   services.pulseaudio.enable = false;
 
   # Enable sound with pipewire.
   services.pulseaudio.enable = false;
@@ -296,13 +311,13 @@ in
       shell = pkgs.bash;
       extraGroups = [ "networkmanager" "wheel" "dialout" "jackaudio" "lp" "incus-admin" ];
     };
       shell = pkgs.bash;
       extraGroups = [ "networkmanager" "wheel" "dialout" "jackaudio" "lp" "incus-admin" ];
     };
-    sshd = {
-      isSystemUser = true;
-      packages = [
-        pkgs.python3
-      ];
-      group = "ssh";
-    };
+    sshd = {
+      isSystemUser = true;
+      packages = [
+        pkgs.python3
+      ];
+      group = "ssh";
+    };
     chirp = {
       isSystemUser = true;
       packages = [
     chirp = {
       isSystemUser = true;
       packages = [
@@ -323,10 +338,13 @@ in
       inherit inputs;
       inherit wallpaper;
     };
       inherit inputs;
       inherit wallpaper;
     };
-    # users = {
-    #   "ps" = import ./home.nix;
-    # };
-    users.ps.imports = [ ./home.nix ];
+    users = {
+      "ps" = import ./home-ps.nix;
+      "root" = { home.stateVersion = "24.05"; };
+    };
+    sharedModules = [
+      (import ./home-common.nix)
+    ];
   };
 
   # Enable automatic login for the user.
   };
 
   # Enable automatic login for the user.
@@ -341,26 +359,42 @@ in
   # Allow unfree packages
   nixpkgs.config.allowUnfree = true;
 
   # Allow unfree packages
   nixpkgs.config.allowUnfree = true;
 
+
+  environment.variables = {
+    RUSTICL_ENABLE = "radeonsi";
+  };
   # List packages installed in system profile. To search, run:
   # $ nix search wget
   environment.systemPackages = with pkgs; [
   # List packages installed in system profile. To search, run:
   # $ nix search wget
   environment.systemPackages = with pkgs; [
-    args.inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.zig
-    args.inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.zls
+    args.inputs.zls.inputs.zig-overlay.packages.${pkgs.system}.master
+    args.inputs.zls.packages.${pkgs.system}.zls
     args.inputs.psch-flakes.packages.${pkgs.system}.resetmsmice
     args.inputs.psch-flakes.packages.${pkgs.system}.resetmsmice
+    args.inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}.zuban
     vim wget file git kitty i3 gdb
     mosh
     cmake
     vim wget file git kitty i3 gdb
     mosh
     cmake
+    entr
+    asciinema asciinema-agg
+    shellify
+    deno
+    typst
+    jdt-language-server
 
     scrcpy
 
     xsel
 
     scrcpy
 
     xsel
+    xcwd
+
+    pinta
+    mupdf
+    davinci-resolve
 
     pavucontrol
     syncthingtray
     # xfce plugins
     xfce.xfce4-panel
     xfce.xfce4-pulseaudio-plugin
 
     pavucontrol
     syncthingtray
     # xfce plugins
     xfce.xfce4-panel
     xfce.xfce4-pulseaudio-plugin
-      # xfce.xfce4-verve-plugin
+    # xfce.xfce4-verve-plugin
     xfce.xfce4-notes-plugin
     # xfce.xfce4-timer-plugin
     # xfce.xfce4-windowck-plugin
     xfce.xfce4-notes-plugin
     # xfce.xfce4-timer-plugin
     # xfce.xfce4-windowck-plugin
@@ -388,28 +422,28 @@ in
 
   # Enable the OpenSSH daemon.
   services.openssh = {
 
   # Enable the OpenSSH daemon.
   services.openssh = {
-    enable = false;
+    enable = true;
     ports = [ 22 ];
     ports = [ 22 ];
-    settings = {
-      PasswordAuthentication = false;
-      PermitRootLogin = "no";
-    };
-    authorizedKeysCommand =
-      let keys = pkgs.writers.writePython3Bin "keys" {} ''
-          import sys
-
-          args = sys.argv
-
-          print(args)
-        '';
-      in
-        "${keys}/bin/keys";
-    authorizedKeysCommandUser = "ps";
+    settings = {
+      PasswordAuthentication = false;
+      PermitRootLogin = "no";
+    };
+    authorizedKeysCommand =
+      let keys = pkgs.writers.writePython3Bin "keys" {} ''
+          import sys
+    #
+          args = sys.argv
+    #
+          print(args)
+        '';
+      in
+        "${keys}/bin/keys";
+    authorizedKeysCommandUser = "ps";
   };
 
   # Open ports in the firewall.
   };
 
   # Open ports in the firewall.
-  networking.firewall.allowedTCPPorts = [ 22 1234 5900 6011 6021 6022 8080 53317 ];
-  networking.firewall.allowedUDPPorts = [ 5901 53317 ];
+  networking.firewall.allowedTCPPorts = [ 22 1234 5900 6011 6021 6022 8080 53317 7236 7250 ];
+  networking.firewall.allowedUDPPorts = [ 5901 53317 7236 5353 ];
   # Or disable the firewall altogether.
   # networking.firewall.enable = false;
 
   # Or disable the firewall altogether.
   # networking.firewall.enable = false;