diff --git a/modules/wm/fuzzel/scripts/fuzzel-projects.sh b/modules/wm/fuzzel/scripts/fuzzel-projects.sh new file mode 100755 index 0000000..377a5ab --- /dev/null +++ b/modules/wm/fuzzel/scripts/fuzzel-projects.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +projects=$(fd -d=1 -t=d . ~/dev) +projects_with_names=() + +for project in ${projects[*]}; do + projects_with_names+=("$(basename $project)\t$project") +done + +selected=$(printf "$projects_with_names" | fuzzel --dmenu --with-nth=1 --accept-nth=2 --prompt "Work on: ") + +if [ "$selected" != "" ]; then + ghostty --working-directory="$selected" +fi diff --git a/modules/wm/niri/config/config.kdl b/modules/wm/niri/config/config.kdl index 0c639cd..d19a757 100644 --- a/modules/wm/niri/config/config.kdl +++ b/modules/wm/niri/config/config.kdl @@ -303,6 +303,7 @@ binds { Mod+M hotkey-overlay-title="System Monitor" { spawn-sh "ghostty -e btop"; } Mod+N hotkey-overlay-title="File Manager" { spawn "nautilus"; } Mod+V hotkey-overlay-title="Clipboard" { spawn-sh "~/.config/fuzzel/bin/fuzzel-cliphist.sh"; } + Mod+W hotkey-overlay-title="Work on project" { spawn-sh "~/.config/fuzzel/bin/fuzzel-projects.sh"; } Mod+Alt+L hotkey-overlay-title="Lock the Screen: hyprlock" { spawn "hyprlock"; } // Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc.