diff --git a/flake.lock b/flake.lock index 8782ab7..69ad1fa 100644 --- a/flake.lock +++ b/flake.lock @@ -434,16 +434,16 @@ "gnome-shell": { "flake": false, "locked": { - "lastModified": 1744584021, - "narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=", + "lastModified": 1748186689, + "narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=", "owner": "GNOME", "repo": "gnome-shell", - "rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae", + "rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0", "type": "github" }, "original": { "owner": "GNOME", - "ref": "48.1", + "ref": "48.2", "repo": "gnome-shell", "type": "github" } @@ -498,11 +498,11 @@ ] }, "locked": { - "lastModified": 1753387274, - "narHash": "sha256-Y1hAI9h+9DLBbgKvZBsHaeptFIcRw4iC6ySPmzyqmlM=", + "lastModified": 1753595562, + "narHash": "sha256-Ci88mAdtiP5RQkYmVhRUq69iYPMM7/lS9/mw+FnC7DE=", "owner": "nix-community", "repo": "home-manager", - "rev": "a35f6b60430ff0c7803bd2a727df84c87569c167", + "rev": "710771af3d1c8c3f86a9e5d562616973ed5f3f21", "type": "github" }, "original": { @@ -995,6 +995,43 @@ "type": "github" } }, + "rofi": { + "flake": false, + "locked": { + "lastModified": 1753534008, + "narHash": "sha256-TQiOBE94UzrFhqVYkgGN279YKBpTomdo8hecOQdwwOY=", + "owner": "davatorium", + "repo": "rofi", + "rev": "8757f342d4470596688705a8040e9352842f2c05", + "type": "github" + }, + "original": { + "owner": "davatorium", + "ref": "next", + "repo": "rofi", + "type": "github" + } + }, + "rofi-nix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1753548702, + "narHash": "sha256-r/6JuqGHYiLNIFf2SqnkRw0l9I2Veys5R9vnnjtpYjQ=", + "ref": "refs/heads/master", + "rev": "94f20ab4b6d72b7fc3805f7bf4598bceb401896c", + "revCount": 11, + "type": "git", + "url": "https://git.sr.ht/~fgaz/rofi-nix" + }, + "original": { + "type": "git", + "url": "https://git.sr.ht/~fgaz/rofi-nix" + } + }, "root": { "inputs": { "arkenfox-userjs": "arkenfox-userjs", @@ -1019,6 +1056,8 @@ "nixpkgs": "nixpkgs", "nixvim": "nixvim", "nur": "nur", + "rofi": "rofi", + "rofi-nix": "rofi-nix", "stable": "stable", "stylix": "stylix", "systems": "systems_2", @@ -1111,19 +1150,10 @@ ], "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-compat": [ - "flake-compat" - ], "flake-parts": [ "flake-parts" ], - "git-hooks": [ - "git-hooks" - ], "gnome-shell": "gnome-shell", - "home-manager": [ - "home-manager" - ], "nixpkgs": [ "nixpkgs" ], @@ -1140,17 +1170,16 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1750774546, - "narHash": "sha256-fLwoiW7goj6eqUhi6RRxsuGDwvQfjnq9G3OKdVsuSew=", + "lastModified": 1753553562, + "narHash": "sha256-CpTwdsrPU3UFy95Btg56RcVMgNpnw3C0DYTznE5aRq4=", "owner": "nix-community", "repo": "stylix", - "rev": "79e816c2e63df5024e28292fee0d92dc106ff66c", + "rev": "af85565aba0f4749cb18b118a7333a0745920950", "type": "github" }, "original": { "owner": "nix-community", "repo": "stylix", - "rev": "79e816c2e63df5024e28292fee0d92dc106ff66c", "type": "github" } }, diff --git a/flake.nix b/flake.nix index 9574d9a..12afb59 100644 --- a/flake.nix +++ b/flake.nix @@ -151,13 +151,16 @@ flake-compat.url = "github:edolstra/flake-compat"; niri.url = "github:sodiboo/niri-flake"; systems.url = "github:nix-systems/default"; - stylix.url = "github:nix-community/stylix/79e816c2e63df5024e28292fee0d92dc106ff66c"; # HACK: to fix upstream issue + stylix.url = "github:nix-community/stylix"; base16-helix.url = "github:MoritzBoehme/base16-helix/fix-primary-cursor-color"; base16-helix.flake = false; # Programs timers.url = "git+https://gitea.moritzboeh.me/moritz/timers.git"; filetags.url = "git+https://gitea.moritzboeh.me/moritz/filetags.git"; + rofi-nix.url = "git+https://git.sr.ht/~fgaz/rofi-nix"; + rofi.url = "github:davatorium/rofi/next"; + rofi.flake = false; # Neovim neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; @@ -205,11 +208,9 @@ nixvim.inputs.systems.follows = "systems"; nur.inputs.flake-parts.follows = "flake-parts"; nur.inputs.nixpkgs.follows = "nixpkgs"; + rofi-nix.inputs.nixpkgs.follows = "nixpkgs"; stylix.inputs.base16-helix.follows = "base16-helix"; - stylix.inputs.flake-compat.follows = "flake-compat"; stylix.inputs.flake-parts.follows = "flake-parts"; - stylix.inputs.git-hooks.follows = "git-hooks"; - stylix.inputs.home-manager.follows = "home-manager"; stylix.inputs.nixpkgs.follows = "nixpkgs"; stylix.inputs.nur.follows = "nur"; stylix.inputs.systems.follows = "systems"; diff --git a/modules/moritz/profiles/impermanence.nix b/modules/moritz/profiles/impermanence.nix index c03c969..e723a40 100644 --- a/modules/moritz/profiles/impermanence.nix +++ b/modules/moritz/profiles/impermanence.nix @@ -38,6 +38,10 @@ in { directories = [ ".cache/keepassxc" ".cat_installer" # eduroam + ".cache/rofi-4.runcache" # FIXME: move to own file + ".cache/rofi-nix" + ".cache/rofi-entry-history.txt" + ".cache/rofi3.druncache" ".config/Nextcloud" ".config/Signal/" ".config/calibre" diff --git a/modules/moritz/programs/niri.nix b/modules/moritz/programs/niri.nix index 1691133..529ed06 100644 --- a/modules/moritz/programs/niri.nix +++ b/modules/moritz/programs/niri.nix @@ -29,6 +29,9 @@ in { wl-clipboard # clipboard tool for wayland wlr-randr jq + + inputs.rofi-nix.packages.${pkgs.system}.default + rofi-bluetooth ]; # adds pam module for swaylock @@ -38,10 +41,7 @@ in { programs.niri.package = cfg.package; my = { - programs = { - wallpaper.enable = true; - tofi.enable = true; - }; + programs.wallpaper.enable = true; wallpapers.enable = true; services = { wallpaper = { @@ -52,7 +52,14 @@ in { }; }; home-manager.users.moritz = { - programs.fuzzel.enable = true; + programs.rofi = { + enable = true; + package = pkgs.rofi-wayland.override { + plugins = [ + pkgs.rofi-calc + ]; + }; + }; programs.waybar = { enable = true; @@ -121,12 +128,15 @@ in { environment = { "NIXOS_OZONE_WL" = "1"; "QT_QPA_PLATFORM" = "wayland"; + "TERMINAL" = config.my.terminal.package; # HACK: to fix desktop entries with terminal=true to open in preferred terminal }; binds = { # spawn different programs "Mod+Return".action.spawn = config.my.terminal.package; "Mod+Shift+escape".action.spawn = ["loginctl" "lock-session"]; - "Mod+R".action.spawn = "fuzzel"; + "Mod+R".action.spawn = ["rofi" "-show" "combi" "-modes" "drun,run,nix:rofi-nix,combi" "-combi-modes" "drun,run,nix"]; + "Mod+Shift+C".action.spawn = ["rofi" "-show" "calc" "-modi" "calc" "-no-show-match" "-no-sort"]; + "Mod+B".action.spawn = "rofi-bluetooth"; # keyboard layout "Mod+Space".action = actions.switch-layout "next"; @@ -134,7 +144,7 @@ in { "Mod+I".action = actions.show-hotkey-overlay; "Mod+Q".action = actions.close-window; "Mod+Shift+Q".action = actions.quit; - "Mod+Shift+C".action = actions.screenshot; + "Mod+Shift+S".action = actions.screenshot; # resizing / swapping / switching "Mod+F".action = actions.fullscreen-window; @@ -231,6 +241,12 @@ in { top-right = 5.0; }; } + { + matches = [ + {title = "^.*rofi.*$";} + ]; + open-floating = true; + } ]; switch-events = { lid-close.action.spawn = ["loginctl" "lock-session"];