mirror of
https://github.com/tomasriveral/nixos.git
synced 2026-08-11 18:18:37 +02:00
38 lines
1.2 KiB
Nix
38 lines
1.2 KiB
Nix
_: {
|
|
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
|
|
'';
|
|
};
|
|
};
|
|
}
|