diff --git a/config/hosts/aspects/doloro-desktop/home.nix b/config/hosts/aspects/doloro-desktop/home.nix index f254483..a3f08cb 100644 --- a/config/hosts/aspects/doloro-desktop/home.nix +++ b/config/hosts/aspects/doloro-desktop/home.nix @@ -41,8 +41,8 @@ # modules.easyeffects # modules.lavd - modules.ai - # modules.pi-coding # inactive: swapped to opencode + # modules.ai + modules.pi-coding # inactive: swapped to opencode # modules.omp modules.podman modules.wivrn diff --git a/config/modules/ai/pi.nix b/config/modules/ai/pi.nix index 8d896bd..214622e 100644 --- a/config/modules/ai/pi.nix +++ b/config/modules/ai/pi.nix @@ -48,24 +48,25 @@ # "npm:@odinlayer/pi-provider-litellm" "npm:pi-provider-litellm" # Web search / content extraction (opencode-crawlberg + opencode-html-to-markdown equivalent) - "npm:pi-web-access" + # "npm:pi-web-access" # Local document parsing / OCR (opencode-xberg equivalent) "npm:pi-docparser" # "npm:@gotgenes/pi-permission-system" - "npm:@vanillagreen/pi-extension-manager" + # "npm:@vanillagreen/pi-extension-manager" # "npm:@vanillagreen/pi-qol" "npm:pi-vitals" - "npm:pi-spark" + # "npm:pi-spark" # "npm:pi-caveman" "npm:@tmustier/pi-usage-extension" "npm:@heyhuynhgiabuu/pi-pretty" - "npm:pi-lens" + # "npm:pi-lens" # "npm:pi-lean-ctx" # "npm:@rohaquinlop/pi-deepseek-cache" "npm:pi-cache-optimizer" "npm:pi-opencode-go-cache" "npm:@pi-vault/pi-dcp" "git:github.com/DietrichGebert/ponytail" + "npm:pi-commandcode-provider" ]; }; context = '' @@ -172,6 +173,10 @@ "type" = "api_key"; "key" = "$OPENCODE_GO_API_KEY"; }; + "command-code" = { + "type" = "api_key"; + "key" = "$COMMANDCODE_API_KEY"; + }; }; }; diff --git a/config/modules/helium.nix b/config/modules/helium.nix index edfaa9a..583789b 100644 --- a/config/modules/helium.nix +++ b/config/modules/helium.nix @@ -15,7 +15,7 @@ }; modules.helium = settings: { homeManager = - { pkgs, ... }: + { pkgs, lib, ... }: let heliumPkg = inputs.heliumFlake.packages.${pkgs.stdenv.hostPlatform.system}.helium; # The upstream `helium` launcher is a plain Nix wrapper that ignores any @@ -53,15 +53,9 @@ xdg.configFile."net.imput.helium/WidevineCdm/latest-component-updated-widevine-cdm" = { text = ''{"Path":"${pkgs.widevine-cdm}/share/google/chrome/WidevineCdm"}''; }; - wayland.windowManager.hyprland.extraLuaFiles = lib.mkIf settings.default { - "helium-bind.lua" = { - autoLoad = true; - content = '' - -- Helium launcher bind (lua config: settings.bind cannot express dispatchers) - hl.bind("SUPER + E", hl.dsp.exec_cmd("helium")) - ''; - }; - }; + wayland.windowManager.hyprland.settings.bind = lib.mkIf settings.default [ + { _args = [ "SUPER + E" (lib.generators.mkLuaInline ''hl.dsp.exec_cmd("helium")'') ]; } + ]; }; }; } diff --git a/config/modules/hyprland/doloro-settings.nix b/config/modules/hyprland/doloro-settings.nix index 57ea0b4..6f2de3e 100644 --- a/config/modules/hyprland/doloro-settings.nix +++ b/config/modules/hyprland/doloro-settings.nix @@ -9,7 +9,7 @@ homeManager = { pkgs, - home, + lib, ... }: let @@ -34,175 +34,91 @@ mreowScript = pkgs.writeShellScript "mreow" '' exec $(tofi-drun -c ${tofiCfg}) ''; + mainMod = "SUPER"; - hlBind = key: dispatcher: "hl.bind(\"${key}\", ${dispatcher})"; - workspaceLines = pkgs.lib.concatLists ( + + # Each `settings.` list entry renders as `hl.()`. + # `_args` renders a multi-argument call instead of one Lua table, + # and mkLuaInline passes raw Lua through for dispatchers. + dsp = lib.generators.mkLuaInline; + bind = key: dispatcher: { _args = [ key dispatcher ]; }; + bezier = name: points: { + _args = [ + name + { + type = "bezier"; + inherit points; + } + ]; + }; + wsBinds = lib.concatLists ( builtins.genList ( i: let ws = toString (i + 1); in [ - (hlBind "${mainMod} + ${ws}" "hl.dsp.focus({ workspace = ${ws} })") - (hlBind "${mainMod} + SHIFT + ${ws}" "hl.dsp.window.move({ workspace = ${ws} })") + (bind "${mainMod} + ${ws}" (dsp ''hl.dsp.focus({ workspace = ${ws} })'')) + (bind "${mainMod} + SHIFT + ${ws}" (dsp ''hl.dsp.window.move({ workspace = ${ws} })'')) ] ) 9 ); - hlBindCode = pkgs.lib.concatStringsSep "\n" ( - [ - "-- Hyprland configuration" - "" - "local mainMod = \"${mainMod}\"" - "" - "-- Config" - "hl.config({" - " general = {" - " gaps_in = 1," - " gaps_out = 1," - " border_size = 1," - " resize_on_border = false," - " allow_tearing = true," - " layout = \"dwindle\"," - " }," - " input = {" - " follow_mouse = 2," - " kb_layout = \"gb\"," - " }," - " decoration = {" - " rounding = 4," - " rounding_power = 1," - " active_opacity = 1.0," - " inactive_opacity = 1.0," - " shadow = {" - " enabled = false," - " }," - " blur = {" - " enabled = true," - " passes = 1," - " new_optimizations = true," - " ignore_opacity = false," - " }," - " }," - " cursor = {" - " no_hardware_cursors = false," - " }," - " dwindle = {" - " preserve_split = true," - " }," - " misc = {" - " force_default_wallpaper = -1," - " disable_hyprland_logo = false," - " enable_anr_dialog = false," - " }," - "})" - "" - "-- Monitors" - "hl.monitor({ output = \"HDMI-A-1\", mode = \"1920x1080@60\", position = \"0x0\", scale = \"1\" })" - "hl.monitor({ output = \"DP-2\", mode = \"1920x1080@120\", position = \"1920x0\", scale = \"1\" })" - "" - "-- Input" - "hl.device({ name = \"default\", kb_layout = \"gb\", sensitivity = -0.5 })" - "" - "-- Curves" - "hl.curve(\"easeOutQuint\", { type = \"bezier\", points = { {0.23, 1}, {0.32, 1} } })" - "hl.curve(\"easeInOutCubic\", { type = \"bezier\", points = { {0.65, 0.05}, {0.36, 1} } })" - "hl.curve(\"linear\", { type = \"bezier\", points = { {0, 0}, {1, 1} } })" - "hl.curve(\"almostLinear\", { type = \"bezier\", points = { {0.5, 0.5}, {0.75, 1} } })" - "hl.curve(\"quick\", { type = \"bezier\", points = { {0.15, 0}, {0.1, 1} } })" - "" - "-- Animations" - "hl.animation({ leaf = \"global\", enabled = true, speed = 10, bezier = \"default\" })" - "hl.animation({ leaf = \"border\", enabled = true, speed = 5.39, bezier = \"easeOutQuint\" })" - "hl.animation({ leaf = \"windows\", enabled = true, speed = 2.79, bezier = \"easeOutQuint\" })" - "hl.animation({ leaf = \"windowsIn\", enabled = true, speed = 1, bezier = \"easeOutQuint\", style = \"popin 87%\" })" - "hl.animation({ leaf = \"windowsOut\", enabled = true, speed = 1, bezier = \"linear\", style = \"popin 87%\" })" - "hl.animation({ leaf = \"windowsMove\", enabled = true, speed = 1, bezier = \"easeInOutCubic\" })" - "hl.animation({ leaf = \"fadeIn\", enabled = true, speed = 0.5, bezier = \"almostLinear\" })" - "hl.animation({ leaf = \"fadeOut\", enabled = true, speed = 0.5, bezier = \"almostLinear\" })" - "hl.animation({ leaf = \"fade\", enabled = true, speed = 1, bezier = \"quick\" })" - "hl.animation({ leaf = \"layers\", enabled = true, speed = 3.81, bezier = \"easeOutQuint\" })" - "hl.animation({ leaf = \"layersIn\", enabled = true, speed = 4, bezier = \"easeOutQuint\", style = \"fade\" })" - "hl.animation({ leaf = \"layersOut\", enabled = true, speed = 1.5, bezier = \"linear\", style = \"fade\" })" - "hl.animation({ leaf = \"fadeLayersIn\", enabled = true, speed = 1.79, bezier = \"almostLinear\" })" - "hl.animation({ leaf = \"fadeLayersOut\", enabled = true, speed = 1.39, bezier = \"almostLinear\" })" - "hl.animation({ leaf = \"workspaces\", enabled = true, speed = 1, bezier = \"almostLinear\", style = \"slide\" })" - "hl.animation({ leaf = \"workspacesIn\", enabled = true, speed = 1, bezier = \"easeInOutCubic\", style = \"slide\" })" - "hl.animation({ leaf = \"workspacesOut\", enabled = true, speed = 1, bezier = \"easeInOutCubic\", style = \"slide\" })" - "hl.animation({ leaf = \"zoomFactor\", enabled = true, speed = 7, bezier = \"quick\" })" - "" - "-- Binds" - (hlBind "${mainMod} + R" "hl.dsp.exec_cmd(\"${mreowScript}\")") - (hlBind "${mainMod} + C" "hl.dsp.window.close()") - (hlBind "${mainMod} + M" "hl.dsp.exec_cmd(\"uwsm stop\")") - (hlBind "${mainMod} + Q" "hl.dsp.exec_cmd(\"kitty\")") - (hlBind "${mainMod} + V" "hl.dsp.window.float({ action = \"toggle\" })") - (hlBind "${mainMod} + left" "hl.dsp.focus({ direction = \"left\" })") - (hlBind "${mainMod} + right" "hl.dsp.focus({ direction = \"right\" })") - (hlBind "${mainMod} + up" "hl.dsp.focus({ direction = \"up\" })") - (hlBind "${mainMod} + down" "hl.dsp.focus({ direction = \"down\" })") - (hlBind "${mainMod} + L" "hl.dsp.exec_cmd(\"wlogout\")") - (hlBind "${mainMod} + S" "hl.dsp.exec_cmd(\"wayfreeze --after-freeze-cmd '${meowScript}'\")") - (hlBind "${mainMod} + F" "hl.dsp.window.fullscreen({ action = \"toggle\" })") - (hlBind "${mainMod} + SHIFT + Q" "hl.dsp.window.close()") - (hlBind "${mainMod} + mouse_down" "hl.dsp.focus({ workspace = \"e+1\" })") - (hlBind "${mainMod} + mouse_up" "hl.dsp.focus({ workspace = \"e-1\" })") - "" - "-- Mouse binds" - (hlBind "${mainMod} + mouse:272" "hl.dsp.window.drag()") - (hlBind "${mainMod} + mouse:273" "hl.dsp.window.resize()") - "" - "-- Media keys" - (hlBind "XF86AudioLowerVolume" "hl.dsp.exec_cmd(\"wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-\")") - (hlBind "XF86AudioRaiseVolume" "hl.dsp.exec_cmd(\"wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+\")") - (hlBind "XF86AudioMute" "hl.dsp.exec_cmd(\"wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle\")") - (hlBind "XF86AudioPlay" "hl.dsp.exec_cmd(\"playerctl play-pause\")") - (hlBind "XF86AudioNext" "hl.dsp.exec_cmd(\"playerctl next\")") - (hlBind "XF86AudioPrev" "hl.dsp.exec_cmd(\"playerctl previous\")") - (hlBind "XF86AudioMicMute" "hl.dsp.exec_cmd(\"wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle\")") - (hlBind "home" "hl.dsp.exec_cmd(\"wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle\")") - (hlBind "end" "hl.dsp.exec_cmd(\"wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle\")") - (hlBind "F8" "hl.dsp.pass({ window = [[match:class:^(com.obsproject.Studio)$]] })") - "" - "-- Workspaces" - (hlBind "${mainMod} + 0" "hl.dsp.focus({ workspace = 10 })") - (hlBind "${mainMod} + SHIFT + 0" "hl.dsp.window.move({ workspace = 10 })") - ] - ++ workspaceLines - ++ [ - "" - "-- Window rules" - "hl.window_rule({ suppress_event = \"maximize\" })" - "hl.window_rule({ match = { class = \"gamescope\" }, workspace = \"5\", immediate = true, confine_pointer = true })" - "hl.window_rule({ match = { initial_title = \"OBS Studio Crash Detected\" }, pin = true })" - "hl.window_rule({ match = { initial_title = \"Discord Popout\" }, workspace = \"1 silent\" })" - "" - "-- Layer rules" - "hl.layer_rule({ match = { namespace = \"notifications\" }, no_screen_share = true })" - "" - "-- Host-specific overrides: load ~/.config/hypr/hyprland-local.lua if present (must be valid Lua)" - "local home = os.getenv(\"HOME\")" - "if home then" - " local localPath = home .. '/.config/hypr/hyprland-local.lua'" - " local f = io.open(localPath, 'r')" - " if f then" - " f:close()" - " local chunk, err = loadfile(localPath)" - " if chunk then chunk() else io.stderr:write('hyprland-local.lua error: ' .. err .. '\\n') end" - " end" - "end" - ] - ); in { home.packages = [ pkgs.hyprcursor - pkgs.wlogout + pkgs.hyprshutdown pkgs.tofi pkgs.killall pkgs.grim pkgs.slurp pkgs.wayclip ]; + # wlogout menu. Default layout, except Shutdown hands off to + # hyprshutdown so apps close gracefully before poweroff. + # programs.wlogout only accepts one command per button, so + # --post-cmd carries the actual poweroff. + programs.wlogout = { + enable = true; + layout = [ + { + label = "lock"; + action = "loginctl lock-session"; + text = "Lock"; + keybind = "l"; + } + { + label = "hibernate"; + action = "systemctl hibernate"; + text = "Hibernate"; + keybind = "h"; + } + { + label = "logout"; + action = "loginctl terminate-user $USER"; + text = "Logout"; + keybind = "e"; + } + { + label = "shutdown"; + action = "hyprshutdown --post-cmd 'systemctl poweroff'"; + text = "Shutdown"; + keybind = "s"; + } + { + label = "suspend"; + action = "systemctl suspend"; + text = "Suspend"; + keybind = "u"; + } + { + label = "reboot"; + action = "systemctl reboot"; + text = "Reboot"; + keybind = "r"; + } + ]; + }; home.pointerCursor = { enable = true; name = "rose-pine-hyprcursor"; @@ -225,17 +141,220 @@ ]; }; }; - # systemd.user.services.hyprpaper = { - # partOf = [ "hyprland-session.target" ]; - # after = [ "hyprland-session.target" ]; - # }; - # Hand-written config as extraLuaFile so Home Manager still - # generates hypr/hyprland.lua itself, including the systemd - # session activation hooks (hyprland-session.target start/stop - # + dbus-update-activation-environment --systemd --all). - wayland.windowManager.hyprland.extraLuaFiles."hl-main.lua" = { - autoLoad = true; - content = hlBindCode; + # The systemd session activation hooks (hyprland-session.target + # start/stop + dbus-update-activation-environment --systemd --all) + # are still generated by Home Manager; only the imperative tail of + # the config needs raw Lua. + wayland.windowManager.hyprland = { + settings = { + config = { + general = { + gaps_in = 1; + gaps_out = 1; + border_size = 1; + resize_on_border = false; + allow_tearing = true; + layout = "dwindle"; + }; + input = { + follow_mouse = 2; + kb_layout = "gb"; + }; + decoration = { + rounding = 4; + rounding_power = 1; + active_opacity = 1.0; + inactive_opacity = 1.0; + shadow.enabled = false; + blur = { + enabled = true; + passes = 1; + new_optimizations = true; + ignore_opacity = false; + }; + }; + cursor.no_hardware_cursors = false; + dwindle.preserve_split = true; + misc = { + force_default_wallpaper = -1; + disable_hyprland_logo = false; + enable_anr_dialog = false; + }; + }; + + monitor = [ + { + output = "HDMI-A-1"; + mode = "1920x1080@60"; + position = "0x0"; + scale = "1"; + } + { + output = "DP-2"; + mode = "1920x1080@120"; + position = "1920x0"; + scale = "1"; + } + ]; + + device = { + name = "default"; + kb_layout = "gb"; + sensitivity = -0.5; + }; + + # Curves are sorted ahead of animations by the module's + # `importantPrefixes` default, so the beziers exist by name. + curve = [ + (bezier "easeOutQuint" [ + [ 0.23 1 ] + [ 0.32 1 ] + ]) + (bezier "easeInOutCubic" [ + [ 0.65 0.05 ] + [ 0.36 1 ] + ]) + (bezier "linear" [ + [ 0 0 ] + [ 1 1 ] + ]) + (bezier "almostLinear" [ + [ 0.5 0.5 ] + [ 0.75 1 ] + ]) + (bezier "quick" [ + [ 0.15 0 ] + [ 0.1 1 ] + ]) + ]; + + animation = [ + { leaf = "global"; enabled = true; speed = 10; bezier = "default"; } + { leaf = "border"; enabled = true; speed = 5.39; bezier = "easeOutQuint"; } + { leaf = "windows"; enabled = true; speed = 2.79; bezier = "easeOutQuint"; } + { leaf = "windowsIn"; enabled = true; speed = 1; bezier = "easeOutQuint"; style = "popin 87%"; } + { leaf = "windowsOut"; enabled = true; speed = 1; bezier = "linear"; style = "popin 87%"; } + { leaf = "windowsMove"; enabled = true; speed = 1; bezier = "easeInOutCubic"; } + { leaf = "fadeIn"; enabled = true; speed = 0.5; bezier = "almostLinear"; } + { leaf = "fadeOut"; enabled = true; speed = 0.5; bezier = "almostLinear"; } + { leaf = "fade"; enabled = true; speed = 1; bezier = "quick"; } + { leaf = "layers"; enabled = true; speed = 3.81; bezier = "easeOutQuint"; } + { leaf = "layersIn"; enabled = true; speed = 4; bezier = "easeOutQuint"; style = "fade"; } + { leaf = "layersOut"; enabled = true; speed = 1.5; bezier = "linear"; style = "fade"; } + { leaf = "fadeLayersIn"; enabled = true; speed = 1.79; bezier = "almostLinear"; } + { leaf = "fadeLayersOut"; enabled = true; speed = 1.39; bezier = "almostLinear"; } + { leaf = "workspaces"; enabled = true; speed = 1; bezier = "almostLinear"; style = "slide"; } + { leaf = "workspacesIn"; enabled = true; speed = 1; bezier = "easeInOutCubic"; style = "slide"; } + { leaf = "workspacesOut"; enabled = true; speed = 1; bezier = "easeInOutCubic"; style = "slide"; } + { leaf = "zoomFactor"; enabled = true; speed = 7; bezier = "quick"; } + ]; + + bind = [ + (bind "${mainMod} + R" (dsp ''hl.dsp.exec_cmd("${mreowScript}")'')) + (bind "${mainMod} + C" (dsp ''hl.dsp.window.close()'')) + (bind "${mainMod} + M" (dsp ''hl.dsp.exec_cmd("uwsm stop")'')) + (bind "${mainMod} + Q" (dsp ''hl.dsp.exec_cmd("kitty")'')) + (bind "${mainMod} + V" (dsp ''hl.dsp.window.float({ action = "toggle" })'')) + (bind "${mainMod} + left" (dsp ''hl.dsp.focus({ direction = "left" })'')) + (bind "${mainMod} + right" (dsp ''hl.dsp.focus({ direction = "right" })'')) + (bind "${mainMod} + up" (dsp ''hl.dsp.focus({ direction = "up" })'')) + (bind "${mainMod} + down" (dsp ''hl.dsp.focus({ direction = "down" })'')) + (bind "${mainMod} + L" (dsp ''hl.dsp.exec_cmd("wlogout")'')) + (bind "${mainMod} + S" (dsp ''hl.dsp.exec_cmd("wayfreeze --after-freeze-cmd '${meowScript}'")'')) + (bind "${mainMod} + F" (dsp ''hl.dsp.window.fullscreen({ action = "toggle" })'')) + (bind "${mainMod} + SHIFT + Q" (dsp ''hl.dsp.window.close()'')) + (bind "${mainMod} + mouse_down" (dsp ''hl.dsp.focus({ workspace = "e+1" })'')) + (bind "${mainMod} + mouse_up" (dsp ''hl.dsp.focus({ workspace = "e-1" })'')) + + # Mouse binds + (bind "${mainMod} + mouse:272" (dsp ''hl.dsp.window.drag()'')) + (bind "${mainMod} + mouse:273" (dsp ''hl.dsp.window.resize()'')) + + # Media keys + (bind "XF86AudioLowerVolume" (dsp ''hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-")'')) + (bind "XF86AudioRaiseVolume" (dsp ''hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+")'')) + (bind "XF86AudioMute" (dsp ''hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle")'')) + (bind "XF86AudioPlay" (dsp ''hl.dsp.exec_cmd("playerctl play-pause")'')) + (bind "XF86AudioNext" (dsp ''hl.dsp.exec_cmd("playerctl next")'')) + (bind "XF86AudioPrev" (dsp ''hl.dsp.exec_cmd("playerctl previous")'')) + (bind "XF86AudioMicMute" (dsp ''hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle")'')) + (bind "home" (dsp ''hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle")'')) + (bind "end" (dsp ''hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle")'')) + (bind "F8" (dsp ''hl.dsp.pass({ window = [[match:class:^(com.obsproject.Studio)$]] })'')) + + # Workspaces + (bind "${mainMod} + 0" (dsp ''hl.dsp.focus({ workspace = 10 })'')) + (bind "${mainMod} + SHIFT + 0" (dsp ''hl.dsp.window.move({ workspace = 10 })'')) + ] + ++ wsBinds; + + window_rule = [ + { suppress_event = "maximize"; } + { + match.class = "gamescope"; + workspace = "5"; + immediate = true; + confine_pointer = true; + } + { + match.initial_title = "OBS Studio Crash Detected"; + pin = true; + } + # Steam, Discord (equibop), Telegram, Spotify and OBS + # always open on their own workspace regardless of how + # they were launched. These sit before the "Discord + # Popout" rule: window rules apply in declaration order + # and the last match wins, so popouts still land on + # workspace 1. + { + match.class = "steam"; + workspace = "6 silent"; + } + { + match.class = "equibop"; + workspace = "8 silent"; + } + { + match.class = "org.telegram.desktop"; + workspace = "8 silent"; + } + { + match.class = "spotify"; + workspace = "9 silent"; + } + { + match.class = "com.obsproject.Studio"; + workspace = "10 silent"; + } + { + match.initial_title = "Discord Popout"; + workspace = "1 silent"; + } + ]; + + layer_rule = [ + { + match.namespace = "notifications"; + no_screen_share = true; + } + ]; + }; + + # Host-specific overrides: load ~/.config/hypr/hyprland-local.lua + # if present (must be valid Lua). Runs last so a host can override + # anything set above. + extraConfig = '' + local home = os.getenv("HOME") + if home then + local localPath = home .. '/.config/hypr/hyprland-local.lua' + local f = io.open(localPath, 'r') + if f then + f:close() + local chunk, err = loadfile(localPath) + if chunk then chunk() else io.stderr:write('hyprland-local.lua error: ' .. err .. '\n') end + end + end + ''; }; }; }; diff --git a/config/modules/zen-browser.nix b/config/modules/zen-browser.nix index e551c49..367e969 100644 --- a/config/modules/zen-browser.nix +++ b/config/modules/zen-browser.nix @@ -42,15 +42,9 @@ ]; in { - wayland.windowManager.hyprland.extraLuaFiles = lib.mkIf settings.default { - "zen-browser-bind.lua" = { - autoLoad = true; - content = '' - -- Zen launcher bind (lua config: settings.bind cannot express dispatchers) - hl.bind("SUPER + E", hl.dsp.exec_cmd("zen")) - ''; - }; - }; + wayland.windowManager.hyprland.settings.bind = lib.mkIf settings.default [ + { _args = [ "SUPER + E" (lib.generators.mkLuaInline ''hl.dsp.exec_cmd("zen")'') ]; } + ]; home.packages = [ (pkgs.wrapFirefox inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.zen-browser-unwrapped diff --git a/flake.lock b/flake.lock index f0b1126..8f5740f 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1787400831, - "narHash": "sha256-H3MEkFDZf+UH+QrVgW8TdKrssPFltF8fBg/rh0J1zIc=", + "lastModified": 1788444081, + "narHash": "sha256-I8i97p9WBQaZQyyBaHFMt8e01VfgfFZSaO+vAUd0u0A=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "7ce889cb78b97979b83a4648509fc3ef405c3286", + "rev": "36b66db4ddd708ad19f5db850af6a478d8a19b2a", "type": "github" }, "original": { @@ -119,11 +119,11 @@ }, "crane": { "locked": { - "lastModified": 1771121070, - "narHash": "sha256-aIlv7FRXF9q70DNJPI237dEDAznSKaXmL5lfK/Id/bI=", + "lastModified": 1788465171, + "narHash": "sha256-Y1/TTVXjYXGF068IThQH9fPSZ0SIE74PABlUxnWTUH0=", "owner": "ipetkov", "repo": "crane", - "rev": "a2812c19f1ed2e5ed5ce2ef7109798b575c180e1", + "rev": "eb35abda9f232cc6610b1d1e3200d15c49b7ac54", "type": "github" }, "original": { @@ -155,11 +155,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1787209648, - "narHash": "sha256-UqF8nrdmeymxWnQ5pTcGUrGOOqIGJjjGILHf9tT6BYI=", + "lastModified": 1788419217, + "narHash": "sha256-2GwP6Sot2NNBh7nUOi0y08m1RGwknIro+jMIM1yawz8=", "owner": "Mic92", "repo": "direnv-instant", - "rev": "c9c7754b9cbc4d2c839d101036f66ca1165b65b8", + "rev": "d5cb5b1e1edc7ec17344839b1ce1d791d3785a7c", "type": "github" }, "original": { @@ -267,11 +267,11 @@ }, "flake-file": { "locked": { - "lastModified": 1785282747, - "narHash": "sha256-ZwdMXUu0Udb4yzI65+psyJeUF+wexByNEvTUSx1xjVs=", + "lastModified": 1788209062, + "narHash": "sha256-j4yjVCCguq6s/SIZ2eh2Ll5Z9cJh7VOkIIFNo2PXRd0=", "owner": "vic", "repo": "flake-file", - "rev": "56c46842d70754345c4a4581b8cbebe87b8fc067", + "rev": "c460df7fe65ac759989daad04f303fb427406e56", "type": "github" }, "original": { @@ -288,11 +288,11 @@ ] }, "locked": { - "lastModified": 1785627969, - "narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=", + "lastModified": 1787559586, + "narHash": "sha256-onL0VLf9vPllmT0H/OlURIU5r5t5WIEl7t4tVNKT0Nw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a", + "rev": "9d0d87172c374f89da73c1cfe6d81ae62feac1f1", "type": "github" }, "original": { @@ -308,11 +308,11 @@ ] }, "locked": { - "lastModified": 1787559586, - "narHash": "sha256-onL0VLf9vPllmT0H/OlURIU5r5t5WIEl7t4tVNKT0Nw=", + "lastModified": 1788450739, + "narHash": "sha256-glZLQlzIn1fXH6PazR2iUmTo7kzzyYSshrWhLS9TqCU=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9d0d87172c374f89da73c1cfe6d81ae62feac1f1", + "rev": "31729ca8cbdb4fa927b34e5f4353e6a83f39e993", "type": "github" }, "original": { @@ -326,11 +326,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1787559586, - "narHash": "sha256-onL0VLf9vPllmT0H/OlURIU5r5t5WIEl7t4tVNKT0Nw=", + "lastModified": 1788450739, + "narHash": "sha256-glZLQlzIn1fXH6PazR2iUmTo7kzzyYSshrWhLS9TqCU=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9d0d87172c374f89da73c1cfe6d81ae62feac1f1", + "rev": "31729ca8cbdb4fa927b34e5f4353e6a83f39e993", "type": "github" }, "original": { @@ -347,11 +347,11 @@ ] }, "locked": { - "lastModified": 1785627969, - "narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=", + "lastModified": 1787559586, + "narHash": "sha256-onL0VLf9vPllmT0H/OlURIU5r5t5WIEl7t4tVNKT0Nw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a", + "rev": "9d0d87172c374f89da73c1cfe6d81ae62feac1f1", "type": "github" }, "original": { @@ -477,11 +477,11 @@ "vpkmerge": "vpkmerge" }, "locked": { - "lastModified": 1787708742, - "narHash": "sha256-+x132J104gUEYXvM9YW+i1GJKwrH6uiolf7D2mQic3s=", + "lastModified": 1788206489, + "narHash": "sha256-2n7OqDMMuQVPybb38hOaUBpKNVOutyWui5VP4W+OY5g=", "owner": "Slush97", "repo": "grimoire", - "rev": "cc61247e1ac43f1ad2ca4b53621d766f23123bd4", + "rev": "c70c89b394394ef24c7763c485e1fa291c0979fe", "type": "github" }, "original": { @@ -515,11 +515,11 @@ "utils": "utils" }, "locked": { - "lastModified": 1787621753, - "narHash": "sha256-ntgw/7S2C5ooCC/IfnRxmeTyXpb+E+D2SAxJNvcZwC8=", + "lastModified": 1788939917, + "narHash": "sha256-y2DodfhsLPuTQnfKPAaA297rLVIYUP2NYKsUY+KwEDU=", "owner": "vikingnope", "repo": "helium-browser-nix-flake", - "rev": "676e729470897e4e1deda5a7bfaa81517657f014", + "rev": "1d3da1c585b02da2592303aecb001fb6d3cde7bf", "type": "github" }, "original": { @@ -535,11 +535,11 @@ ] }, "locked": { - "lastModified": 1787778830, - "narHash": "sha256-GnLPpDT727E6VpDlALP8JeP1BbSQ17H0HiEEYq6Ql4w=", + "lastModified": 1788921139, + "narHash": "sha256-2wRuvf9UDw1SYWtBcxNmxLeAtNU1i/hc1c0AKQHdvlM=", "owner": "nix-community", "repo": "home-manager", - "rev": "6b449e35980e1b75dd17da2d6d9b66e757194f1c", + "rev": "a2dbe7c2c9333e8234ae8114c7f731784201d108", "type": "github" }, "original": { @@ -623,11 +623,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1787781559, - "narHash": "sha256-8mF39+6FBzeYD5dIxJV3/ifiragdjRy10gNaEMXRIUI=", + "lastModified": 1788777480, + "narHash": "sha256-F33tKTtFrhst7rc5P20BkpgAJo4Qp3JQeyaHeVxZNJQ=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "e90da09e9598b82ea3aec3dc9986d5bc35e99f12", + "rev": "7ebf13abb3c391604c60c9f627c7a403bcec8d17", "type": "github" }, "original": { @@ -872,11 +872,11 @@ "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1787083398, - "narHash": "sha256-ey29CH7VCwJoq3QFzXqnTwVmNC+8f1rWY0F1TPjauLw=", + "lastModified": 1788890661, + "narHash": "sha256-yH0nf7/BPVBcx3x2/6obgr4mQncHvI8KdYdEGgl4khU=", "owner": "JPyke3", "repo": "hytale-launcher-nix", - "rev": "726e21f2b80d52e1e95ae12dc8f6a31c63f233a9", + "rev": "0ba98a12d86d019005eb4fa1f4b1a89d710bf56d", "type": "github" }, "original": { @@ -887,11 +887,11 @@ }, "import-tree": { "locked": { - "lastModified": 1784254960, - "narHash": "sha256-iI88R3wHz8wTKQb5orvpc51L/Xr64AJyxid/0MKa/b8=", + "lastModified": 1788467110, + "narHash": "sha256-ljEMTXP/rH0tOvDzc9gzwww6KcHRPRnEHzd9lK48V7s=", "owner": "vic", "repo": "import-tree", - "rev": "4ebb10ae17d5f1ad366e7aef5b92cb8eecf24f69", + "rev": "eb1b52eaecc57f7c136d07ae8a93e724dfecac46", "type": "github" }, "original": { @@ -910,11 +910,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1787565750, - "narHash": "sha256-TUSADPE0j3kw6hesK46JHb6uUx1oWr+8WsLLxVypJY4=", + "lastModified": 1788847049, + "narHash": "sha256-m/cEFtZKkuEqg6zfddCzr/zhrJvWu1ZoEbpSfWhdmoE=", "ref": "main", - "rev": "2a5cb50aff0f57fc541c82be6cf7caf0d72774d2", - "revCount": 4, + "rev": "45d08d694d44ce7c9a492400511c2331837da152", + "revCount": 5, "type": "git", "url": "ssh://git@git.scug.io/nikkuss/iptsd-rs.git" }, @@ -1045,11 +1045,11 @@ "nixpkgs": "nixpkgs_7" }, "locked": { - "lastModified": 1787772412, - "narHash": "sha256-IFRNvu3RMlQwUQ1NTfTy03/mXXX0kTpy9Mkewpri5LA=", + "lastModified": 1788722952, + "narHash": "sha256-3oLga8IyFIGcmdrU08wd323Fy/nopOSEP2FmnmCXrs0=", "owner": "xddxdd", "repo": "nix-cachyos-kernel", - "rev": "d0a00e687a10b401281759cf618214d59f2039cd", + "rev": "5dad735622e26198eaf193d6a523616a6cb715dd", "type": "github" }, "original": { @@ -1080,11 +1080,11 @@ "nixpkgs": "nixpkgs_8" }, "locked": { - "lastModified": 1787144466, - "narHash": "sha256-HHfv2/HkNSKbbSyU9iD/g8lbP6r4tl33sSw1W4rXCk0=", + "lastModified": 1788942796, + "narHash": "sha256-CLoJCCRi9sogsyGXYn8rOCWBLKAntfKUB9Rli/YXgEY=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "0471accf8d0a8210b31d947497d179ecc99e0021", + "rev": "83bbc895120516d6e86885a188c04beced6535d9", "type": "github" }, "original": { @@ -1163,11 +1163,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1787135253, - "narHash": "sha256-RD2kNWCG+Bjo6h+JVjWVNntZs2GtRoeY2xHjts/FNkA=", + "lastModified": 1788039129, + "narHash": "sha256-pa4Q0qErvCvzCaaUph7Sm37RhR4xvPrYI8Lgz6k85+A=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ffb3c9b700e759be2ef13237c9d8f953b32a1e46", + "rev": "d2f67949798825fe853f7c5d0492b8bf016d3f88", "type": "github" }, "original": { @@ -1179,11 +1179,11 @@ }, "nixpkgs-darwin": { "locked": { - "lastModified": 1787323337, - "narHash": "sha256-PqomwlB2WugM9MC4tV1L2/yosMOfug3KBDjmqOqD1bU=", + "lastModified": 1788883829, + "narHash": "sha256-VqVWOsQHnklc2R0UkDUhm4cyGmnlFWMC3f9Acp2blHY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6062ba1a1b8b6281b12533c9075a2dbeb38f7e49", + "rev": "555cb0f648dd138a7a3c250f4f4928767707c988", "type": "github" }, "original": { @@ -1195,11 +1195,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1785031560, - "narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=", + "lastModified": 1788057806, + "narHash": "sha256-DTQSMxzDWmT0zhguthvegnVkn7CFqGCv4IHCzk5ZUpM=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c", + "rev": "596e2e3940e09b2abbeb03f75fa1828c57fcd72c", "type": "github" }, "original": { @@ -1210,11 +1210,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1787781228, - "narHash": "sha256-b0nRjBBK0bplNSblMcYL7mK9wmQAj9uzHqDF6dIZfr4=", + "lastModified": 1788946784, + "narHash": "sha256-GQcnsu9y8AV22fDjDuyIsC+Lpfc7wBjmEAbR7lBuSG8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c60c01937bfc5a90e21eb4cee8124b75736641ec", + "rev": "92300412ff7cc57585d4373410077c445b347825", "type": "github" }, "original": { @@ -1258,11 +1258,11 @@ }, "nixpkgs_11": { "locked": { - "lastModified": 1787498568, - "narHash": "sha256-9i/VTdusq/+NM/tz+J1Re+ojkMB8MBf0QshnYfzHz30=", + "lastModified": 1788881743, + "narHash": "sha256-2V9GZGvPfrNzxFozhI9dcqV+c3QdA8YZrvAAzqEB+dI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "56c02bc00adcf003215cc4bd996d6efaf4cff188", + "rev": "d6524aaca2ff07876657ae2b323f24be4874944b", "type": "github" }, "original": { @@ -1274,11 +1274,11 @@ }, "nixpkgs_12": { "locked": { - "lastModified": 1787364730, - "narHash": "sha256-NcYt9QJfpJiF1lAyN8BDPB4EeScbPU+EwQqPiBElrpU=", + "lastModified": 1787631388, + "narHash": "sha256-vMiXptXarfSdJb1Gkc+FYVOAibuBRj7qxGa8z68q1Uw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a831408e6378bc02ebf8cc09b52c96ca86f6bab4", + "rev": "ac6b2166e7a9375683b8e98f860f273222337b16", "type": "github" }, "original": { @@ -1322,11 +1322,11 @@ }, "nixpkgs_15": { "locked": { - "lastModified": 1787360063, - "narHash": "sha256-95aJfHyQTLWslCXFVNB0odgmVkpdmDezQwTg9mhqV1E=", - "rev": "2c423e03bbafcff28bfadc6781a4a8257f205cb5", + "lastModified": 1788614874, + "narHash": "sha256-PRK1fSEiAcO29DkUoOlsVLGYRK3h1YKVr+qQJB0VcYQ=", + "rev": "c043004d1c6985732bcc1cbc5a9c9aecbbb4e0f0", "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1059570.2c423e03bbaf/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1068089.c043004d1c69/nixexprs.tar.xz" }, "original": { "type": "tarball", @@ -1380,11 +1380,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1787360063, - "narHash": "sha256-dt4WdcvsA8/RCe+VZZwqU0X+XMM3wBbGCWA0/sFWzGo=", + "lastModified": 1788404924, + "narHash": "sha256-lhEhY8X5EgkQ/eg6IFz4cc8jRuSYSvnxx1al7d1dvZ0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2c423e03bbafcff28bfadc6781a4a8257f205cb5", + "rev": "0968519e14f7aa7d3e9b389682bd74d2b51c8ce8", "type": "github" }, "original": { @@ -1396,11 +1396,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1787001381, - "narHash": "sha256-Ue1Yo8gfHdD4TMtNewhA4tkSYeFqXThju0nCyJc3ALo=", + "lastModified": 1788752844, + "narHash": "sha256-VaWGJ6+cIYN2erfSecbRV+4ljI185Ty2wUrXyvQbgOw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ec2d622de0773551768cf98f3fc50cbcc003b9c5", + "rev": "dc5d91f840324650bac8c379428c7037a416959a", "type": "github" }, "original": { @@ -1412,11 +1412,11 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1787755763, - "narHash": "sha256-GUgP71jgnfa2G3xPQJulxBg3W7KhB8c1ZVhxaZlhojs=", + "lastModified": 1788659161, + "narHash": "sha256-rIzUUvgwhfJeWwm7y1ZF+xRo2Gep+QYkxpj9mJbG6cM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "eb0b16891e841575f77c31e3698eb047f55c25d8", + "rev": "de0ba0a81b0f6eed798a97fdec6f03a754b9d966", "type": "github" }, "original": { @@ -1462,11 +1462,11 @@ "systems": "systems_5" }, "locked": { - "lastModified": 1787691219, - "narHash": "sha256-CjeJTOjrluiDuL0W/YBFkSBOQjBYmdKwj7hWAJ4PIh0=", + "lastModified": 1788190018, + "narHash": "sha256-59BAfH0txPAZrPBF4QJqwvUWppD+ICrcjA1LZAmPnrQ=", "owner": "nix-community", "repo": "nixvim", - "rev": "ebec1ae277a50b16e7d6682edd009ef585d68261", + "rev": "41844750e55f17b1385d5b09ca7ade5f11f49506", "type": "github" }, "original": { @@ -1505,11 +1505,11 @@ "nixpkgs": "nixpkgs_13" }, "locked": { - "lastModified": 1787735002, - "narHash": "sha256-dKRYZcAnIOgkgRml7Mg8Z+D/dWVADDz1bJsDBK7Hlkg=", + "lastModified": 1788908668, + "narHash": "sha256-fNiU1xCj+F75gJ6z0IMIoPtAUctYTWgo/9XmaeufRw4=", "ref": "main", - "rev": "31ec55878fe7cb7959206f15cf2741dce8410069", - "revCount": 424, + "rev": "74815c8e77380d18fed16871bdaaba8f6fc80bab", + "revCount": 480, "type": "git", "url": "https://git.molez.org/mandlm/omp-nix" }, @@ -1528,11 +1528,11 @@ ] }, "locked": { - "lastModified": 1784288435, - "narHash": "sha256-ReRHaLgr/uVqdD8afFSn+myXIfpHeOhP0yYe0TJqAA8=", + "lastModified": 1788267358, + "narHash": "sha256-nt+lUqYVpc9Y6JeMd2WmXzCDojasdadKo0mWcluvY2Y=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "43b3c1ab9d40fb1dbb008f451988a91e375825e9", + "rev": "27555e2624241fb116b49095df4caaee85a25691", "type": "github" }, "original": { @@ -1693,11 +1693,11 @@ ] }, "locked": { - "lastModified": 1771211437, - "narHash": "sha256-lcNK438i4DGtyA+bPXXyVLHVmJjYpVKmpux9WASa3ro=", + "lastModified": 1788765185, + "narHash": "sha256-pp8lb5CrKjmscZbTK34HuCaq18zDU4Q6zlaD5dS+Hi4=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "c62195b3d6e1bb11e0c2fb2a494117d3b55d410f", + "rev": "ca7f624be3935a5bc46d2c240515491ab8675503", "type": "github" }, "original": { @@ -1713,11 +1713,11 @@ ] }, "locked": { - "lastModified": 1786629091, - "narHash": "sha256-gkig4nPi1CWc4Z50GBsjE4ygSE7hMpl/TwID2an2Cck=", + "lastModified": 1788914643, + "narHash": "sha256-4GuMPW90JSxXWDPUB9M+1m7fYbe3H0apOd86/zBQ2Kw=", "owner": "Mic92", "repo": "sops-nix", - "rev": "a8627b21b9107c5711c96b84f32a9a4b3d45295f", + "rev": "13616fff713a9f94055c66f15687ebdc17a335df", "type": "github" }, "original": { @@ -1732,11 +1732,11 @@ "systems": "systems_6" }, "locked": { - "lastModified": 1787460061, - "narHash": "sha256-r2FJY01jRVhrZIKPdhQ3QFYsAz3wjilWTMSSH7VMOeo=", + "lastModified": 1788683578, + "narHash": "sha256-bERpuakmPAC2b36zgXy6OXh+SkZUjbaV+vV2sPmm6p8=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "a8adfd6f9f341dd586d5c06dda3bbfa21c6014e7", + "rev": "a4ef43fb13e3615f36e5a0935aabe8cc29363dc9", "type": "github" }, "original": { @@ -2013,11 +2013,11 @@ ] }, "locked": { - "lastModified": 1787422879, - "narHash": "sha256-t8vKzknXzQfJ7gxAMXhsFGsMKiVrrF02JX0IIDl1Gwg=", + "lastModified": 1788383708, + "narHash": "sha256-Dbq75c0kcZAC8pmyHSFsRCu80FsAZApJ65E8o3g9bag=", "ref": "staging", - "rev": "bdda115082ae7daa022be4e65ce9c417ae9a99f7", - "revCount": 38, + "rev": "59e9550924f82ea0b1b1341982247c8ba805073a", + "revCount": 268, "type": "git", "url": "ssh://git@git.scug.io/nikkuss/x1e-staging.git" }, @@ -2055,11 +2055,11 @@ ] }, "locked": { - "lastModified": 1786988229, - "narHash": "sha256-frEFLVRj8xXvBBDs44IRiqHo6R2PxsRpluygL7abjjI=", + "lastModified": 1788025068, + "narHash": "sha256-TBqronrrc/F2Ry/E37d/1TLldDLJDFNSwvJjgk+cXzU=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "59d429bf45aed4e2209043c0c36565ad8e2859a5", + "rev": "ba31964ee42b56bcb0d3b78a64ead5d8a1c3c6f6", "type": "github" }, "original": { @@ -2108,11 +2108,11 @@ ] }, "locked": { - "lastModified": 1787200418, - "narHash": "sha256-4d24Wa/CO8WsSEjKwzFwJXn+oxbI4Bm8xuMR77xJgYI=", + "lastModified": 1788682845, + "narHash": "sha256-E03KyK0Sj+ia+FSy47XC4v9enU1C/lGiW5ZKmcJoI1M=", "owner": "youwen5", "repo": "zen-browser-flake", - "rev": "20195bc99e82b02abe82bb81ac366ae81c67dc5a", + "rev": "3aadc420e763a8243aedd2ce925ae1dc13663ed9", "type": "github" }, "original": {