Commit 68d5e8cb2439

Vincent Demeester <vincent@sbr.pm>
2026-02-25 15:05:51
feat(raffi): move config to dots and add PR filter
Moved raffi configuration from Nix-generated xdg.configFile to dots/config/raffi/raffi.yaml for instant iteration without rebuild cycles. Added GitHub PR script filter using alfred-pr-workflow. Switched to light Rose Pine Dawn theme.
1 parent 1d0d534
Changed files (3)
dots
home
common
desktop
dots/config/raffi/raffi.yaml
@@ -0,0 +1,129 @@
+general:
+  ui_type: native
+  theme: light
+  theme_colors:
+    bg_base: "#faf4ed"
+    bg_input: "#f2ece4"
+    accent: "#348e9e"
+    accent_hover: "#286f7a"
+    text_main: "#575279"
+    text_muted: "#9893a5"
+    selection_bg: "#e4dfd8"
+    border: "#cecacd"
+
+# Browsers
+firefox:
+  binary: firefox
+  description: Firefox
+  icon: firefox
+
+# Editors
+emacs:
+  binary: emacsclient
+  args: ["-c", "-a", "emacs"]
+  description: Emacs
+  icon: emacs
+
+# Terminal
+kitty:
+  binary: kitty
+  description: Kitty Terminal
+  icon: kitty
+
+# File manager
+nautilus:
+  binary: nautilus
+  args: ["~/Downloads/"]
+  description: File Manager (Downloads)
+  icon: system-file-manager
+
+# Clipboard history
+cliphist:
+  binary: cliphist
+  args: ["list"]
+  description: Clipboard History
+  icon: accessories-clipboard
+  script: |
+    cliphist list | fuzzel -d | cliphist decode | wl-copy
+  ifenvset: SWAYSOCK
+
+# Screenshots
+screenshot-clipboard:
+  binary: shot
+  args: ["%c"]
+  description: Screenshot to clipboard
+  icon: applets-screenshooter
+  ifenvset: SWAYSOCK
+
+screenshot-file:
+  binary: shot
+  args: ["%d"]
+  description: Screenshot to file
+  icon: applets-screenshooter
+  ifenvset: SWAYSOCK
+
+screenshot-fullscreen:
+  binary: shotf
+  args: ["%c"]
+  description: Screenshot fullscreen to clipboard
+  icon: applets-screenshooter
+  ifenvset: SWAYSOCK
+
+# Color scheme
+toggle-color-scheme:
+  binary: toggle-color-scheme
+  description: Toggle dark/light color scheme
+  icon: preferences-desktop-theme
+
+# Audio
+pwvucontrol:
+  binary: pwvucontrol
+  description: Audio Settings
+  icon: audio-volume-high
+
+# VPN
+redhat-vpn:
+  binary: redhat-vpn
+  description: Connect Red Hat VPN
+  icon: network-vpn
+  ifexist: redhat-vpn
+
+redhat-vpn-disconnect:
+  binary: redhat-vpn-disconnect
+  description: Disconnect Red Hat VPN
+  icon: network-vpn
+  ifexist: redhat-vpn-disconnect
+
+# YubiKey OATH
+yubikey-oath:
+  binary: yubikey-oath
+  description: YubiKey OATH Codes
+  icon: security-high
+
+# Addons
+addons:
+  currency:
+    enabled: true
+    trigger: "€"
+    default_currency: EUR
+    currencies: [EUR, USD, GBP, CHF, JPY]
+  calculator:
+    enabled: true
+  script_filters:
+    - name: Timezones
+      keyword: tz
+      command: batz
+      args: ["-j"]
+      icon: clock
+    - name: Worktrees
+      keyword: wt
+      command: lazyworktree-raffi
+      icon: folder
+      action: "kitty --title Worktrees --directory {value} lazyworktree"
+    - name: GitHub Pull Requests
+      keyword: pr
+      command: ~/src/gitlab.com/chmouel/alfred-pr-workflow/pr.py
+      args: ["--color"]
+      icon: github
+      action: "xdg-open {value}"
+      secondary_action: "echo -n {value} | wl-copy"
dots/Makefile
@@ -93,13 +93,14 @@ zsh : ~/.config/zsh/init.zsh ~/.config/zsh/core ~/.config/zsh/tools ~/.config/zs
 
 ##@ Dev Tools
 
-all += git-template copilot-hooks opencode-plugin lazygit lazyworktree lazypr
+all += git-template copilot-hooks opencode-plugin lazygit lazyworktree lazypr raffi
 git-template : ~/.config/git/template
 copilot-hooks : ~/.config/copilot-hooks
 opencode-plugin : ~/.config/opencode/plugin
 lazygit : ~/.config/lazygit/config.yml
 lazyworktree : ~/.config/lazyworktree/config.yaml
 lazypr : ~/.config/lazypr/config.toml
+raffi : ~/.config/raffi/raffi.yaml
 
 ##@ GitHub
 
home/common/desktop/sway/rofi.nix
@@ -1,9 +1,11 @@
-{ lib, pkgs, ... }:
+{ pkgs, ... }:
 {
   home.packages = with pkgs; [
     raffi
   ];
 
+  # raffi config is managed via dots/config/raffi/raffi.yaml
+
   programs.fuzzel = {
     enable = true;
     settings = {
@@ -29,165 +31,4 @@
       };
     };
   };
-
-  xdg.configFile."raffi/raffi.yaml".text = lib.generators.toYAML { } {
-    general = {
-      ui_type = "native";
-      theme = "dark";
-      theme_colors = {
-        bg_base = "#1f1e25";
-        bg_input = "#303030";
-        accent = "#00d3d0";
-        accent_hover = "#348e9e";
-        text_main = "#969696";
-        text_muted = "#6c7086";
-        selection_bg = "#303030";
-        border = "#348e9e";
-      };
-    };
-
-    # Browsers
-    firefox = {
-      binary = "firefox";
-      description = "Firefox";
-      icon = "firefox";
-    };
-
-    # Editors
-    emacs = {
-      binary = "emacsclient";
-      args = [
-        "-c"
-        "-a"
-        "emacs"
-      ];
-      description = "Emacs";
-      icon = "emacs";
-    };
-
-    # Terminal
-    kitty = {
-      binary = "kitty";
-      description = "Kitty Terminal";
-      icon = "kitty";
-    };
-
-    # File manager
-    nautilus = {
-      binary = "nautilus";
-      args = [ "~/Downloads/" ];
-      description = "File Manager (Downloads)";
-      icon = "system-file-manager";
-    };
-
-    # Clipboard history
-    cliphist = {
-      binary = "cliphist";
-      args = [
-        "list"
-      ];
-      description = "Clipboard History";
-      icon = "accessories-clipboard";
-      script = ''
-        cliphist list | fuzzel -d | cliphist decode | wl-copy
-      '';
-      ifenvset = "SWAYSOCK";
-    };
-
-    # Screenshots
-    screenshot-clipboard = {
-      binary = "shot";
-      args = [ "%c" ];
-      description = "Screenshot to clipboard";
-      icon = "applets-screenshooter";
-      ifenvset = "SWAYSOCK";
-    };
-
-    screenshot-file = {
-      binary = "shot";
-      args = [ "%d" ];
-      description = "Screenshot to file";
-      icon = "applets-screenshooter";
-      ifenvset = "SWAYSOCK";
-    };
-
-    screenshot-fullscreen = {
-      binary = "shotf";
-      args = [ "%c" ];
-      description = "Screenshot fullscreen to clipboard";
-      icon = "applets-screenshooter";
-      ifenvset = "SWAYSOCK";
-    };
-
-    # Color scheme
-    toggle-color-scheme = {
-      binary = "toggle-color-scheme";
-      description = "Toggle dark/light color scheme";
-      icon = "preferences-desktop-theme";
-    };
-
-    # Audio
-    pwvucontrol = {
-      binary = "pwvucontrol";
-      description = "Audio Settings";
-      icon = "audio-volume-high";
-    };
-
-    # VPN
-    redhat-vpn = {
-      binary = "redhat-vpn";
-      description = "Connect Red Hat VPN";
-      icon = "network-vpn";
-      ifexist = "redhat-vpn";
-    };
-
-    redhat-vpn-disconnect = {
-      binary = "redhat-vpn-disconnect";
-      description = "Disconnect Red Hat VPN";
-      icon = "network-vpn";
-      ifexist = "redhat-vpn-disconnect";
-    };
-
-    # YubiKey OATH
-    yubikey-oath = {
-      binary = "yubikey-oath";
-      description = "YubiKey OATH Codes";
-      icon = "security-high";
-    };
-
-    # Addons
-    addons = {
-      currency = {
-        enabled = true;
-        trigger = "€";
-        default_currency = "EUR";
-        currencies = [
-          "EUR"
-          "USD"
-          "GBP"
-          "CHF"
-          "JPY"
-        ];
-      };
-      calculator = {
-        enabled = true;
-      };
-      script_filters = [
-        {
-          name = "Timezones";
-          keyword = "tz";
-          command = "batz";
-          args = [ "-j" ];
-          icon = "clock";
-        }
-        {
-          name = "Worktrees";
-          keyword = "wt";
-          command = "lazyworktree-raffi";
-          icon = "folder";
-          action = "kitty --title Worktrees --directory {value} lazyworktree";
-        }
-      ];
-    };
-  };
 }