X-Git-Url: https://gitweb.ps.run/flake_thinkpad/blobdiff_plain/aa3d0da9d679dae8dc122466c3552d94c0eb52c1..HEAD:/configuration.nix?ds=sidebyside diff --git a/configuration.nix b/configuration.nix index 6636ca4..1b0aca3 100644 --- a/configuration.nix +++ b/configuration.nix @@ -20,10 +20,12 @@ in [ # Include the results of the hardware scan. ./hardware-configuration.nix inputs.home-manager.nixosModules.default + inputs.extra-container.nixosModules.default + inputs.microvm.nixosModules.host + inputs.fakwin.nixosModules.default ]; # Bootloader. - boot.tmp.cleanOnBoot = true; boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; boot.plymouth.enable = true; @@ -33,93 +35,54 @@ in boot.initrd.kernelModules = [ "amdgpu" ]; boot.consoleLogLevel = 0; boot.kernelPackages = pkgs.linuxPackages_latest; - boot.kernelParams = [ "quiet" "udev.log_level=0" "amdgpu.runpm=0" ]; + boot.kernelParams = [ "quiet" "udev.log_level=0" "amdgpu.runpm=0" ]; - networking.hostName = "nixos"; # Define your hostname. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - nix.settings.experimental-features = [ "nix-command" "flakes" ]; - nix.package = pkgs.nixVersions.nix_2_28; - # Configure network proxy if necessary # networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; - # Enable networking - networking.networkmanager.enable = true; - - # Set your time zone. - time.timeZone = "Europe/Berlin"; - - # Select internationalisation properties. - i18n.defaultLocale = "de_DE.UTF-8"; - - i18n.extraLocaleSettings = { - LC_ADDRESS = "de_DE.UTF-8"; - LC_IDENTIFICATION = "de_DE.UTF-8"; - LC_MEASUREMENT = "de_DE.UTF-8"; - LC_MONETARY = "de_DE.UTF-8"; - LC_NAME = "de_DE.UTF-8"; - LC_NUMERIC = "de_DE.UTF-8"; - LC_PAPER = "de_DE.UTF-8"; - LC_TELEPHONE = "de_DE.UTF-8"; - LC_TIME = "de_DE.UTF-8"; - }; programs.dconf.enable = true; programs.steam.enable = true; + # Services services = { - + displayManager = { + sddm.enable = true; + sddm.autoLogin.relogin = true; + defaultSession = "xfce+i3"; + }; + desktopManager = { + plasma6.enable = true; + }; xserver = { enable = true; - # Enable the GNOME Desktop Environment. - # displayManager.gdm.enable = true; - # desktopManager.gnome.enable = true; - - # displayManager.sddm.enable = true; - # desktopManager.budgie.enable = true; - - # desktopManager.deepin.enable = true; - # displayManager.lightdm.enable = true; - - # displayManager.gdm.enable = true; - # desktopManager.plasma5.enable = true; - displayManager = { - defaultSession = "xfce+i3"; - 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 = { xterm.enable = false; + wallpaper.mode = "center"; xfce = { enable = true; - # noDesktop = true; + noDesktop = true; enableXfwm = false; }; }; windowManager.i3.enable = true; - windowManager.awesome.enable = true; + # windowManager.awesome.enable = true; + # windowManager.herbstluftwm.enable = true; xkb = { layout = "de"; @@ -132,6 +95,9 @@ in }; }; + systemd.user.services.plasma-kwin_x11.enable = false; + services.fakwin.enable = true; + services.autorandr = { enable = true; matchEdid = true; @@ -142,50 +108,80 @@ in }; }; - services.syncthing = { - enable = true; - user = "ps"; - dataDir = "/home/ps/sync"; - configDir = "/home/ps/.config/syncthing"; + # 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" ''; # OpenGL - # hardware.graphics.enable = true; hardware = { graphics = { enable = true; enable32Bit = true; + extraPackages = with pkgs; [ + rocmPackages.clr.icd + mesa.opencl + amf + ]; }; amdgpu.amdvlk = { enable = true; support32Bit.enable = true; }; -}; + }; # services.logind = { # extraConfig = "HandlePowerKey=suspend"; # lidSwitch = "suspend"; # }; - # Configure console keymap - console.keyMap = "de-latin1-nodeadkeys"; - - # Enable CUPS to print documents. - services.printing.enable = true; - services.printing.drivers = [ pkgs.gutenprint ]; - # Enable Bluetooth hardware.bluetooth.enable = true; hardware.bluetooth.powerOnBoot = false; - services.blueman.enable = true; + # services.blueman.enable = true; # Enable sound with pipewire. - hardware.pulseaudio.enable = false; + services.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; @@ -208,137 +204,20 @@ in # naturalScrolling = false; # }; - # Define a user account. Don't forget to set a password with ‘passwd’. - users.groups.ssh = {}; - users.users = { - ps = { - isNormalUser = true; - description = "Patrick"; - shell = pkgs.bash; - extraGroups = [ "networkmanager" "wheel" "dialout" "jackaudio" ]; - }; - sshd = { - isSystemUser = true; - packages = [ - pkgs.python3 - ]; - group = "ssh"; - }; - chirp = { - isSystemUser = true; - packages = [ - pkgs.python3 - ]; - group = "ssh"; - shell = pkgs.bash; - initialPassword = "chirp"; - }; - }; - - security.polkit.enable = true; - security.sudo.wheelNeedsPassword = false; - - home-manager = { - backupFileExtension = "backup"; - extraSpecialArgs = { - inherit inputs; - inherit wallpaper; - }; - # users = { - # "ps" = import ./home.nix; - # }; - users.ps.imports = [ ./home.nix ]; - }; - - # Enable automatic login for the user. - # services.displayManager.autoLogin.enable = true; - # services.displayManager.autoLogin.user = "ps"; - # services.getty.autologinUser = "ps"; - # Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229 # systemd.services."getty@tty1".enable = false; # systemd.services."autovt@tty1".enable = false; # Allow unfree packages - nixpkgs.config.allowUnfree = true; - - # 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.psch-flakes.packages.${pkgs.system}.resetmsmice - vim wget file git kitty i3 gdb - mosh - cmake - - scrcpy - - xsel - - pavucontrol - syncthingtray - # xfce plugins - xfce.xfce4-pulseaudio-plugin - # xfce.xfce4-verve-plugin - xfce.xfce4-notes-plugin - # xfce.xfce4-timer-plugin - # xfce.xfce4-windowck-plugin - xfce.thunar-archive-plugin - # xfce.xfce4-i3-workspaces-plugin - # xfce.xfce4-xkb-plugin - xfce.xfce4-whiskermenu-plugin - - ]; - - programs.xfconf.enable = true; - programs.nix-ld.enable = true; - - services.fwupd.enable = true; - - # Some programs need SUID wrappers, can be configured further or are - # started in user sessions. - # programs.mtr.enable = true; - # programs.gnupg.agent = { - # enable = true; - # enableSSHSupport = true; - # }; - - # List services that you want to enable: - - # Enable the OpenSSH daemon. - services.openssh = { - enable = false; - 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"; + environment.variables = { + RUSTICL_ENABLE = "radeonsi"; }; # Open ports in the firewall. - networking.firewall.allowedTCPPorts = [ 22 1234 5900 6011 6021 6022 8080 53317 ]; - networking.firewall.allowedUDPPorts = [ 5901 53317 ]; # Or disable the firewall altogether. # networking.firewall.enable = false; - # This value determines the NixOS release from which the default - # settings for stateful data, like file locations and database versions - # on your system were taken. It‘s perfectly fine and recommended to leave - # this value at the release version of the first install of this system. - # Before changing this value read the documentation for this option - # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = "24.05"; # Did you read the comment? }