From ac9b508f71eafaf7760379064ae4a011f2035b1a Mon Sep 17 00:00:00 2001 From: Daniel Bulant Date: Sat, 21 Feb 2026 17:11:58 +0100 Subject: [PATCH] small updates --- .config/hypr/hyprland.conf | 28 +++- configuration.nix | 299 +++++++++++++++++++++---------------- flake.lock | 27 +++- flake.nix | 4 + home.nix | 37 +++-- 5 files changed, 248 insertions(+), 147 deletions(-) diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf index a5d1c89..30ffc6d 100644 --- a/.config/hypr/hyprland.conf +++ b/.config/hypr/hyprland.conf @@ -35,7 +35,7 @@ cursor { source = ~/.config/hypr/monitors.conf source = ~/.config/hypr/workspaces.conf -source = ~/.config/hypr/hyprland.colors.conf +#source = ~/.config/hypr/hyprland.colors.conf monitor=desc:ASUSTek COMPUTER INC VG27AQL5A T7LMQS022027,2560x1440@144.0,0x0,1.0,bitdepth,10 monitor=eDP-1,1920x1200@60.0,2560x0,1.0,bitdepth,10,cm,srgb @@ -102,10 +102,12 @@ exec-once = wl-paste --type text --watch cliphist store exec-once = wl-paste --type image --watch cliphist store exec-once = fcitx5 exec-once = easyeffects --gapplication-service +exec-once = dms run + #$swaylock = swaylock --screenshots --clock --indicator --effect-blur 6x6 --fade-in 0.2 --ring-color 4e9dc2 --key-hl-color 71b0ce $swaylock = hyprlock -exec-once=hypridle +# exec-once=hypridle # exec-once=swayidle -w timeout 300 '$swaylock --grace 2' before-sleep '$swaylock' # Needs repackaging... @@ -294,6 +296,15 @@ layerrule = blur on, match:namespace quickshell:sidebarRight layerrule = blur_popups on, match:namespace quickshell:sidebarRight layerrule = ignore_alpha .2, match:namespace quickshell:sidebarRight +layerrule { + name="blur dms" + match:namespace = dms:(color-picker|clipboard|spotlight|settings) + blur = on + ignore_alpha = 0 +} + +# layerrule = noanim, match:namespace ^(dms)$ + blurls=gtk-layer-shell blurls=lockscreen blurls = rofi @@ -302,10 +313,10 @@ $dir = ~/.config #! quickshell bindr = SUPER+ALT, R, exec, pkill rofi || $dir/rofi/bin/launcher # bind = SUPER, r, global, quickshell:overviewSearchToggle -bind = SUPER, r, exec, dms ipc call spotlight toggle +# bind = SUPER, r, exec, dms ipc call spotlight toggle bind = SUPER+ALT, P, exec, pkill rofi || $dir/rofi/bin/powermenu -bind = SUPER, p, exec, dms ipc call powermenu open -bind = SUPER, tab, exec, dms ipc call hypr toggleOverview +# bind = SUPER, p, exec, dms ipc call powermenu open +# bind = SUPER, tab, exec, dms ipc call hypr toggleOverview # bind = SUPER, p, global, quickshell:sessionToggle # bind = SUPER, m, global, quickshell:mediaControlsToggle # bind = SUPER, grave, global, quickshell:sidebarLeftToggle @@ -401,7 +412,7 @@ bind = ,Print,exec,hyprshot --clipboard-only --mode active --mode output # bind = SUPER+SHIFT,S,exec,spectacle --copy-image --region --background # no gui # bind = SUPER+SHIFT,S,exec,grim -g "$(slurp)" - | wl-copy bind = SUPER+SHIFT,S,exec,hyprshot --freeze --clipboard-only --mode region -bind = SUPER, L,exec,$swaylock +# bind = SUPER, L,exec,$swaylock #! move windows to workspaces bind = $mainMod SHIFT, 1, movetoworkspace, 1 @@ -469,3 +480,8 @@ decoration { #windowrule = monitor 1,title:flameshot #windowrule = move 0 0,title:flameshot #windowrule = noanim,title:flameshot + +#enable once dms fixes config; uses old hyprland syntax +source = ~/.config/hypr/dms/colors.conf +source = ~/.config/hypr/dms/binds.conf +source = ~/.config/hypr/dms/layout.conf diff --git a/configuration.nix b/configuration.nix index 659074d..e072a96 100644 --- a/configuration.nix +++ b/configuration.nix @@ -1,35 +1,42 @@ - # Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ config, pkgs, /*hyprland,*/ options, /*hyprland-plugins, */nixpkgs-unstable, lib, nixos-hardware, zen-browser/*, kwin-effects-forceblur*/, ... }: +{ + config, + pkgs, + options, + nixpkgs-unstable, + lib, + dms, + ... +}: let - unstable-pkgs = nixpkgs-unstable.legacyPackages.x86_64-linux; #import nixpkgs-unstable.nixosModules.readOnlyPkgs {}; + unstable-pkgs = nixpkgs-unstable.legacyPackages.x86_64-linux; # import nixpkgs-unstable.nixosModules.readOnlyPkgs {}; # unstable-pkgs = hyprland.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system}; in { - imports = - [ -# nixos-hardware.nixosModules.lenovo-legion-16ach6h-hybrid # this is borked in latest update for some reason, edid doesn't build - # nixos-hardware.nixosModules.common-cpu-amd - # nixos-hardware.nixosModules.common-cpu-amd-pstate - # nixos-hardware.nixosModules.common-cpu-amd-zenpower - # nixos-hardware.nixosModules.common-gpu-amd - # nixos-hardware.nixosModules.common-gpu-nvidia - # nixos-hardware.nixosModules.common-pc-laptop - # nixos-hardware.nixosModules.common-pc-laptop-ssd - ./hardware-configuration.nix - # /etc/nixos/cachix.nix - ]; - # nyx.low-power.enable = true; + imports = [ + # nixos-hardware.nixosModules.lenovo-legion-16ach6h-hybrid # this is borked in latest update for some reason, edid doesn't build + # nixos-hardware.nixosModules.common-cpu-amd + # nixos-hardware.nixosModules.common-cpu-amd-pstate + # nixos-hardware.nixosModules.common-cpu-amd-zenpower + # nixos-hardware.nixosModules.common-gpu-amd + # nixos-hardware.nixosModules.common-gpu-nvidia + # nixos-hardware.nixosModules.common-pc-laptop + # nixos-hardware.nixosModules.common-pc-laptop-ssd + ./hardware-configuration.nix + dms.nixosModules.greeter + # /etc/nixos/cachix.nix + ]; + # nyx.low-power.enable = true; hardware.nvidia.dynamicBoost.enable = lib.mkForce false; nixpkgs.config.permittedInsecurePackages = [ "olm-3.2.16" "cinny-unwrapped-4.2.3" "cinny-4.2.3" - "libsoup-2.74.3" + "libsoup-2.74.3" # "qbittorrent-4.6.4" # "cinny-3.2.0" "dotnet-sdk-wrapped-7.0.410" @@ -40,7 +47,6 @@ in "electron-33.4.11" ]; - boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; boot.supportedFilesystems = [ "ntfs" ]; @@ -76,10 +82,13 @@ in # networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; # networking.nameservers = ["1.1.1.1"]; - services.dnsmasq.settings.server = [ "100.100.100.100" "127.0.0.1#5053" ]; + services.dnsmasq.settings.server = [ + "100.100.100.100" + "127.0.0.1#5053" + ]; networking.networkmanager.enable = true; - networking.networkmanager.plugins = with pkgs; [networkmanager-openconnect]; + networking.networkmanager.plugins = with pkgs; [ networkmanager-openconnect ]; networking.networkmanager.dns = "none"; services.dnscrypt-proxy = { @@ -95,9 +104,9 @@ in cache_file = "/var/lib/dnscrypt-proxy/public-resolvers.md"; }; - listen_addresses = ["127.0.0.1:5053"]; + listen_addresses = [ "127.0.0.1:5053" ]; ipv6_servers = false; - block_ipv6 = ! (false); + block_ipv6 = !(false); require_dnssec = true; require_nolog = false; @@ -125,9 +134,9 @@ in services.dnsmasq.enable = true; services.displayManager.sddm.enable = true; services.displayManager.sddm.wayland.enable = true; - services.desktopManager.plasma6 = { - enable = true; - }; + services.desktopManager.plasma6 = { + enable = true; + }; # services.desktopManager.gnome.enable = true; services.xserver = { enable = false; @@ -148,12 +157,14 @@ in alsa.support32Bit = true; pulse.enable = true; }; - security.pam.loginLimits = [{ - domain = "*"; - type = "soft"; - item = "nofile"; - value = "64000"; - }]; + security.pam.loginLimits = [ + { + domain = "*"; + type = "soft"; + item = "nofile"; + value = "64000"; + } + ]; services.geoclue2.enable = true; services.localtimed.enable = true; services.lorri.enable = true; @@ -171,14 +182,32 @@ in users.users.dan = { isNormalUser = true; - description = "John"; - extraGroups = [ "networkmanager" "wheel" "docker" "fuse" "video" "wireshark" "gamemode" "scanner" "lp" "kvm" "adbusers" "dialout"]; + description = "Dan"; + extraGroups = [ + "i2c" + "networkmanager" + "wheel" + "docker" + "fuse" + "video" + "wireshark" + "gamemode" + "scanner" + "lp" + "kvm" + "adbusers" + "dialout" + ]; shell = pkgs.fish; packages = with pkgs; [ kdePackages.kate ]; }; - nix.settings.trusted-users = [ "root" "@wheel" "dan" ]; + nix.settings.trusted-users = [ + "root" + "@wheel" + "dan" + ]; # Other defaults are set in home.nix # environment.sessionVariables.DEFAULT_BROWSER = "firefox"; @@ -200,11 +229,11 @@ in "cache.flakehub.com-3:hJuILl5sVK4iKm86JzgdXW12Y2Hwd5G07qKtHTOcDCM=" ]; }; - + # Comment out below for the first time to avoid cache miss, if using flake programs.hyprland = { enable = true; -# package = hyprland.packages.${pkgs.system}.hyprland; + # package = hyprland.packages.${pkgs.system}.hyprland; # portalPackage = hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland.override # { # inherit (pkgs) mesa; @@ -213,9 +242,16 @@ in # package = unstable-pkgs.hyprland; }; # End comment out - + # + programs.dank-material-shell.greeter = { + enable = true; + compositor.name = "hyprland"; # Or "hyprland" or "sway" + configHome = "/home/dan"; + }; + #xdg.configFile."menus/applications.menu".text = builtins.readFile ./applications.menu; - environment.etc."/xdg/menus/plasma-applications.menu".text = builtins.readFile "${pkgs.kdePackages.plasma-workspace}/etc/xdg/menus/plasma-applications.menu"; + environment.etc."/xdg/menus/plasma-applications.menu".text = + builtins.readFile "${pkgs.kdePackages.plasma-workspace}/etc/xdg/menus/plasma-applications.menu"; # programs.hyprland.enable = true; programs.hyprlock.enable = true; @@ -225,14 +261,17 @@ in # Fix dynamic binaries from outside of nix programs.nix-ld = { enable = true; - libraries = options.programs.nix-ld.libraries.default ++ (with pkgs; [ - libdrm - mesa - libxkbcommon - openssl - libGL libva - libelf - ]); + libraries = + options.programs.nix-ld.libraries.default + ++ (with pkgs; [ + libdrm + mesa + libxkbcommon + openssl + libGL + libva + libelf + ]); }; services.openssh.enable = true; services.tailscale = { @@ -245,7 +284,7 @@ in virtualisation.docker = { enable = true; enableOnBoot = false; -# enableNvidia = true; + # enableNvidia = true; }; # hardware.nvidia-container-toolkit.enable = true; services.avahi.enable = true; @@ -263,26 +302,26 @@ in # Visuals plymouth = { - enable = false; - theme = "deus_ex"; # motion is also cool - themePackages = with pkgs; [ - (adi1090x-plymouth-themes.override { - selected_themes = [ "deus_ex" ]; - }) - ]; + enable = false; + theme = "deus_ex"; # motion is also cool + themePackages = with pkgs; [ + (adi1090x-plymouth-themes.override { + selected_themes = [ "deus_ex" ]; + }) + ]; }; kernelParams = [ - # attempt to fix nvidia perf - #"nvidia_drm.fbdev=1" "nvidia_drm.modeset=1" "module_blacklist=i915" - "delayacct" - "initcall_blacklist=sysfb_init" - #"quiet" - #"splash" - "boot.shell_on_fail" - "loglevel=3" - "rd.systemd.show_status=false" - "rd.udev.log_level=3" - "udev.log_priority=3" + # attempt to fix nvidia perf + #"nvidia_drm.fbdev=1" "nvidia_drm.modeset=1" "module_blacklist=i915" + "delayacct" + "initcall_blacklist=sysfb_init" + #"quiet" + #"splash" + "boot.shell_on_fail" + "loglevel=3" + "rd.systemd.show_status=false" + "rd.udev.log_level=3" + "udev.log_priority=3" ]; # Removing support for unneeded stuff @@ -315,13 +354,12 @@ in environment.systemPackages = with pkgs; [ git -# nvtopPackages.full + # nvtopPackages.full btop lshw hyprpolkitagent -# lenovo-legion - + # lenovo-legion # required for quickshell config; needs to be here for them to be included in import/plugin path kdePackages.qt5compat @@ -338,77 +376,82 @@ in libsForQt5.kirigami2 kdePackages.syntax-highlighting - (python313.withPackages(ps: with ps; [ - build - pillow - cffi - libsass - material-color-utilities - materialyoucolor - numpy - packaging - pillow - psutil - pycparser - pyproject-hooks - pywayland - setproctitle - setuptools - setuptools-scm - wheel + (python313.withPackages ( + ps: with ps; [ + build + pillow + cffi + libsass + material-color-utilities + materialyoucolor + numpy + packaging + pillow + psutil + pycparser + pyproject-hooks + pywayland + setproctitle + setuptools + setuptools-scm + wheel - pwntools - ])) + pwntools + ] + )) ]; - environment.variables = let - qtVersions = with pkgs; [ - qt5 - qt6 - ]; - in - { - QT_PLUGIN_PATH = map (qt: "/${qt.qtbase.qtPluginPrefix}") qtVersions; - QML2_IMPORT_PATH = map (qt: "/${qt.qtbase.qtQmlPrefix}") qtVersions ++ (with unstable-pkgs; [ + environment.variables = + let + qtVersions = with pkgs; [ + qt5 + qt6 + ]; + in + { + QT_PLUGIN_PATH = map (qt: "/${qt.qtbase.qtPluginPrefix}") qtVersions; + QML2_IMPORT_PATH = + map (qt: "/${qt.qtbase.qtQmlPrefix}") qtVersions + ++ (with unstable-pkgs; [ "${quickshell}/lib/qt-6/qml/" ]); - }; + }; nixpkgs.config.allowUnfree = true; nixpkgs.config.cudaSupport = true; # The nvidia fun part - hardware.graphics = { + hardware.graphics = { enable = true; # package = unstable-pkgs.mesa.drivers; # Steam support enable32Bit = true; # package32 = unstable-pkgs.pkgsi686Linux.mesa.drivers; extraPackages = with pkgs; [ - + # Required for modern Intel GPUs (Xe iGPU and ARC) - intel-media-driver # VA-API (iHD) userspace - vpl-gpu-rt # oneVPL (QSV) runtime + intel-media-driver # VA-API (iHD) userspace + vpl-gpu-rt # oneVPL (QSV) runtime # Optional (compute / tooling): - intel-compute-runtime # OpenCL (NEO) + Level Zero for Arc/Xe - # libvdpau-va-gl - # nvidia-vaapi-driver + intel-compute-runtime # OpenCL (NEO) + Level Zero for Arc/Xe + # libvdpau-va-gl + # nvidia-vaapi-driver ]; }; environment.sessionVariables = { - LIBVA_DRIVER_NAME = "iHD"; - }; - hardware.enableRedistributableFirmware = true; + LIBVA_DRIVER_NAME = "iHD"; + }; + hardware.enableRedistributableFirmware = true; #boot.kernelModules = ["amdgpu" "nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" "lenovo-legion-module"]; #hardware.nvidia = { # open = false; - # modesetting.enable = true; - # powerManagement.enable = true; - # nvidiaSettings = true; + # modesetting.enable = true; + # powerManagement.enable = true; + # nvidiaSettings = true; # prime = { - # hardware specific, beware! + # hardware specific, beware! # amdgpuBusId = lib.mkForce "PCI:06:00:0"; # nvidiaBusId = lib.mkForce "PCI:01:00:0"; # }; @@ -417,12 +460,14 @@ in services.cpupower-gui.enable = true; services.upower.enable = true; services.power-profiles-daemon.enable = false; - services.tlp = { - enable = true; - # USB_DENYLIST = "04d9:a0b8"; - }; - # powerManagement.powertop.enable = true; - # powerManagement.cpuFreqGovernor = "powersave"; + # services.tlp = { + # enable = true; + # USB_DENYLIST = "04d9:a0b8"; + # }; + powerManagement.enable = true; + powerManagement.powertop.enable = true; + powerManagement.cpuFreqGovernor = "schedutil"; + services.thermald.enable = true; security.polkit.enable = true; @@ -446,14 +491,15 @@ in networking.firewall.allowedUDPPorts = [ 5353 # Google cast discovery 42000 # warpinator - 42001 # warpinator - 67 68 # dhcp + 42001 # warpinator + 67 + 68 # dhcp 1716 # kdeconnect ]; # Or disable the firewall altogether. networking.firewall.enable = false; hardware.wooting.enable = true; - + services.syncthing = { enable = true; openDefaultPorts = true; @@ -461,7 +507,6 @@ in services.lldpd.enable = true; systemd.services.syncthing.environment.STNODEFAULTFOLDER = "true"; - # 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 @@ -470,9 +515,11 @@ in # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "25.11"; # Did you read the comment? - nix.settings.experimental-features = [ "nix-command" "flakes" ]; + nix.settings.experimental-features = [ + "nix-command" + "flakes" + ]; # /etc/hosts :) - networking.extraHosts = '' - ''; + networking.extraHosts = ""; } diff --git a/flake.lock b/flake.lock index 6fc9182..febd692 100644 --- a/flake.lock +++ b/flake.lock @@ -78,6 +78,26 @@ "type": "github" } }, + "danksearch": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1771177088, + "narHash": "sha256-n6e4e0iHNwtdGOlkJlDR9lbFhYalLMuqeQ3jDfp1CaA=", + "owner": "AvengeMedia", + "repo": "danksearch", + "rev": "3b3b79514acf349c166ae53db2225470a28be9e6", + "type": "github" + }, + "original": { + "owner": "AvengeMedia", + "repo": "danksearch", + "type": "github" + } + }, "determinate": { "inputs": { "determinate-nixd-aarch64-darwin": "determinate-nixd-aarch64-darwin", @@ -143,11 +163,11 @@ "quickshell": "quickshell" }, "locked": { - "lastModified": 1768575133, - "narHash": "sha256-P//moH3z9r4PXirTzXVsccQINsK5AIlF9RWOBwK3vLc=", + "lastModified": 1771347696, + "narHash": "sha256-O9NIJqfuSjwY//7OyFH3FqxRHe5M0vmmsXcryOi/bAE=", "owner": "AvengeMedia", "repo": "DankMaterialShell", - "rev": "a7cdb39b0b89b9af86160ad4e847a7d14ea44512", + "rev": "dd4c41a6b2d90f3238f543d1cc54f5f062d685a6", "type": "github" }, "original": { @@ -1201,6 +1221,7 @@ "inputs": { "colmena": "colmena", "copyparty": "copyparty", + "danksearch": "danksearch", "determinate": "determinate", "dms": "dms", "dolphin-overlay": "dolphin-overlay", diff --git a/flake.nix b/flake.nix index 0accab3..31b5b85 100644 --- a/flake.nix +++ b/flake.nix @@ -4,6 +4,10 @@ url = "github:AvengeMedia/DankMaterialShell/stable"; inputs.nixpkgs.follows = "nixpkgs"; }; + danksearch = { + url = "github:AvengeMedia/danksearch"; + inputs.nixpkgs.follows = "nixpkgs"; + }; niri = { url = "github:sodiboo/niri-flake"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/home.nix b/home.nix index 57a4325..87ecaec 100644 --- a/home.nix +++ b/home.nix @@ -7,6 +7,7 @@ nixpkgs-unstable, # suyu, hyprland-plugins, # , hyprland pkgs, + danksearch, niri, inputs, ... @@ -19,12 +20,13 @@ let allowUnfree = true; }; }; - + # system = stdenv.hostPlatform.system; in { imports = [ zen-browser.homeModules.beta dms.homeModules.dank-material-shell + danksearch.homeModules.default # niri.homeManagerModules.default # dms.homeModules.niri ]; @@ -32,7 +34,17 @@ in stateVersion = "25.11"; packages = with pkgs; [ + bun + lenovo-legion + itch + filezilla + nicotine-plus + protonvpn-gui + dgop mysql-workbench + i2c-tools + kdePackages.kimageformats + power-profiles-daemon tail-tray steam helium @@ -43,7 +55,7 @@ in samply font-awesome arduino-ide - xorg.libxkbfile + libxkbfile # dioxus-cli cosmic-files @@ -233,7 +245,7 @@ in inxi numbat wireshark - nixfmt-rfc-style + nixfmt qpwgraph nixpkgs-unstable.legacyPackages.${system}.zed-editor @@ -315,9 +327,10 @@ in # hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprtrails # ]; }; + programs.dsearch.enable = true; programs.dank-material-shell = { enable = true; - systemd.enable = true; + systemd.enable = false; # niri = { # enableKeybinds = false; # Sets static preset keybinds # # enableSpawn = true; # Auto-start DMS with niri, if enabled @@ -380,23 +393,23 @@ in # ]; }; + difftastic.enable = true; difftastic.git.enable = true; git = { enable = true; - userName = "Daniel Bulant"; - userEmail = "danbulant@gmail.com"; - difftastic.enable = true; - signing = { - signByDefault = true; - key = "/home/dan/.ssh/id_ed25519"; - }; - extraConfig = { + settings = { + user.name = "Daniel Bulant"; + user.email = "danbulant@gmail.com"; pull.rebase = false; pull.ff = "only"; gpg.format = "ssh"; commit.gpgsign = true; gpg.ssh.allowedSignersFile = "/home/dan/allowed_signers"; }; + signing = { + signByDefault = true; + key = "/home/dan/.ssh/id_ed25519"; + }; }; gitui.enable = true; btop.enable = true;