_: { perSystem = {pkgs, ...}: { # fzf librewolf profile selector packages.custom-browserprofiles = pkgs.writeShellApplication { name = "custom-browserprofiles"; runtimeInputs = with pkgs; [ zsh fzf tor-browser ]; text = '' # List of profiles profiles=("work" "other" "private window" "tor-browser) # Use fzf to select selected=$(printf "%s\n" "''${profiles[@]}" | fzf --height 6 --reverse --prompt="Select browser profile:") # If user cancels, exit [[ -z "$selected" ]] && exit 0 # Launch LibreWolf detached, keeping environment if [[ "$selected" == "private window" ]]; then setsid librewolf --private-window --no-remote >/dev/null 2>&1 & pkill -f "kitty.*Select browser profile" elif [[ "$selected" == "tor-browser" ]]; then setsid tor-browser >/dev/null 2>&1 & pkill -f "kitty.*Select browser profile" else setsid librewolf -P "$selected" --no-remote >/dev/null 2>&1 & pkill -f "kitty.*Select browser profile" fi # Exit the kitty terminal after selection exit ''; }; }; }