]> gitweb.ps.run Git - flake_thinkpad/blobdiff - configuration.nix
update
[flake_thinkpad] / configuration.nix
index e23675844ed5423f68f86e32ccba7a85d6033fd0..ae7d07e82a2d789ef5e8dd09d12dd5a4a7ad6fa3 100644 (file)
@@ -53,6 +53,7 @@ in
 
   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/";
@@ -130,6 +131,9 @@ in
     displayManager = {
       defaultSession = "xfce+i3";
     };
+    desktopManager = {
+      plasma6.enable = true;
+    };
     xserver = {
       enable = true;
       
@@ -164,6 +168,7 @@ in
       };
       windowManager.i3.enable = true;
       windowManager.awesome.enable = true;
+      windowManager.herbstluftwm.enable = true;
 
       xkb = {
         layout = "de";
@@ -176,6 +181,19 @@ in
     };
   };
 
+  systemd.user.services.plasma-i3wm = {
+    wantedBy = [ "plasma-workspace-x11.target" ];
+    description = "Launch Plasma with i3";
+    #before = [ "plasma-workspace-x11.target" ];
+    environment = lib.mkForce {};
+    serviceConfig = {
+      ExecStart = "${pkgs.i3}/bin/i3";
+      Restart = "on-failure";
+    };
+  };
+  systemd.user.services.plasma-workspace-x11.after = [ "plasma-i3wm.target" ];
+  systemd.user.services.plasma-kwin_x11.enable = false;
+
   services.autorandr = {
     enable = true;
     matchEdid = true;
@@ -193,34 +211,46 @@ in
     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"
   '';
@@ -230,6 +260,11 @@ in
     graphics = {
         enable = true;
         enable32Bit = true;
+       extraPackages = with pkgs; [
+         rocmPackages.clr.icd
+         mesa.opencl
+         amf
+       ];
     };
 
     amdgpu.amdvlk = {
@@ -261,7 +296,7 @@ in
   # 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;
@@ -296,13 +331,13 @@ in
       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 = [
@@ -323,10 +358,12 @@ in
       inherit inputs;
       inherit wallpaper;
     };
-    # users = {
-    #   "ps" = import ./home.nix;
-    # };
-    users.ps.imports = [ ./home.nix ];
+    users = {
+      "ps" = import ./home-ps.nix;
+    };
+    sharedModules = [
+      (import ./home-common.nix)
+    ];
   };
 
   # Enable automatic login for the user.
@@ -341,26 +378,40 @@ in
   # 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; [
-    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.nixpkgs-unstable.legacyPackages.${pkgs.system}.zuban
     vim wget file git kitty i3 gdb
     mosh
     cmake
+    entr
+    asciinema asciinema-agg
+    shellify
+    deno
 
     scrcpy
 
     xsel
+    xcwd
+
+    pinta
+    mupdf
+    davinci-resolve
 
     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
@@ -388,28 +439,28 @@ in
 
   # Enable the OpenSSH daemon.
   services.openssh = {
-    enable = false;
+    enable = true;
     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.
-  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;