From 19487cb432e714b19aa1c1dd1a3ca0b149b1f1f5 Mon Sep 17 00:00:00 2001 From: Emmet Date: Sat, 25 Jan 2025 22:31:43 -0600 Subject: [PATCH] open in workspace underneath ranger scratch term by default --- user/app/ranger/rifle.conf | 112 +++++++++++++++++----------------- user/wm/hyprland/hyprland.nix | 15 +++++ 2 files changed, 70 insertions(+), 57 deletions(-) diff --git a/user/app/ranger/rifle.conf b/user/app/ranger/rifle.conf index f1498623..092ab3d8 100644 --- a/user/app/ranger/rifle.conf +++ b/user/app/ranger/rifle.conf @@ -54,20 +54,20 @@ # Rarely installed browsers get higher priority; It is assumed that if you # install a rare browser, you probably use it. Firefox/konqueror/w3m on the # other hand are often only installed as fallback browsers. -ext x?html?, has librewolf, X, flag f = librewolf -- "$@" -ext x?html?, has qutebrowser, X, flag f = qutebrowser -- "$@" -ext x?html?, has firefox, X, flag f = firefox -- "$@" -ext x?html?, has chromium-browser, X, flag f = chromium-browser -- "$@" -ext x?html?, has chromium, X, flag f = chromium -- "$@" +ext x?html?, has librewolf, X, flag f = open-under-ranger librewolf "$@" +ext x?html?, has qutebrowser, X, flag f = open-under-ranger qutebrowser "$@" +ext x?html?, has firefox, X, flag f = open-under-ranger firefox "$@" +ext x?html?, has chromium-browser, X, flag f = open-under-ranger chromium-browser "$@" +ext x?html?, has chromium, X, flag f = open-under-ranger chromium "$@" ext x?html?, has w3m, terminal = w3m "$@" #------------------------------------------- # Misc #------------------------------------------- # Define the "editor" for text files as first action -mime ^text, has neovide, X, flag f = neovide "$@" -ext org, has emacsclient, X, flag f = emacsclient -c "$@" -mime ^text, has emacsclient, X, flag f = emacsclient -c "$@" +mime ^text, has neovide, X, flag f = open-under-ranger neovide "$@" +ext org, has emacsclient, X, flag f = open-under-ranger "emacsclient -c" "$@" +mime ^text, has emacsclient, X, flag f = open-under-ranger "emacsclient -c" "$@" ext 1 = man "$1" ext s[wmf]c, has zsnes, X = zsnes "$1" @@ -79,17 +79,18 @@ name ^[mM]akefile$ = make #------------------------------------------ # My applications #------------------------------------------ -ext kra, has krita, X, flag f = krita "$@" &>/dev/null -ext kra~, has krita, X, flag f = krita "$@" &>/dev/null -ext blend, has blender, X, flag f = blender "$@" &>/dev/null -ext blend~, has blender, X, flag f = blender "$@" &>/dev/null -ext xopp, has xournalpp, X, flag f = xournalpp "$@" &>/dev/null -ext xopp~, has blender, X, flag f = xournalpp "$@" &>/dev/null -ext helio, has helio, X, flag f = helio "$@" &>/dev/null -ext kdenlive, has kdenlive-accel, X, flag f = kdenlive-accel "$@" &>/dev/null -ext flp, has flstudio, X, flag f = flstudio "$@" &>/dev/null -ext 3mf, has curax, X, flag f = curax "$@" &>/dev/null -ext 3mf, has cura, X flag f = cura "$@" &>/dev/null +ext kra, has krita, X, flag f = open-under-ranger krita "$@" &>/dev/null +ext kra~, has krita, X, flag f = open-under-ranger krita "$@" &>/dev/null +ext blend, has blender, X, flag f = open-under-ranger blender "$@" &>/dev/null +ext blend~, has blender, X, flag f = open-under-ranger blender "$@" &>/dev/null +ext xopp, has xournalpp, X, flag f = open-under-ranger xournalpp "$@" &>/dev/null +ext xopp~, has blender, X, flag f = open-under-ranger xournalpp "$@" &>/dev/null +ext helio, has helio, X, flag f = open-under-ranger helio "$@" &>/dev/null +ext kdenlive, has kdenlive-accel, X, flag f = open-under-ranger kdenlive-accel "$@" &>/dev/null +ext flp, has flstudio, X, flag f = open-under-ranger flstudio "$@" &>/dev/null +ext 3mf, has Cura, X, flag f = open-under-ranger Cura "$@" &>/dev/null +ext 3mf, has curax, X, flag f = open-under-ranger curax "$@" &>/dev/null +ext 3mf, has cura, X flag f = open-under-ranger cura "$@" &>/dev/null #-------------------------------------------- # Scripts @@ -112,13 +113,10 @@ ext midi?, terminal, has wildmidi = wildmidi -- "$@" #-------------------------------------------- # Video/Audio with a GUI #------------------------------------------- -mime ^video, has mpv, X, flag f = mpv -- "$@" -mime ^video, has mpv, X, flag f = mpv --fs -- "$@" -mime ^video, has mplayer2, X, flag f = mplayer2 -- "$@" -mime ^video, has mplayer2, X, flag f = mplayer2 -fs -- "$@" -mime ^video, has mplayer, X, flag f = mplayer -- "$@" -mime ^video, has mplayer, X, flag f = mplayer -fs -- "$@" -mime ^video|audio, has vlc, X, flag f = vlc -- "$@" +mime ^video, has mpv, X, flag f = open-under-ranger mpv "$@" +mime ^video, has mplayer2, X, flag f = open-under-ranger mplayer2 "$@" +mime ^video, has mplayer, X, flag f = open-under-ranger mplayer "$@" +mime ^video|audio, has vlc, X, flag f = open-under-ranger vlc "$@" #-------------------------------------------- # Video without X @@ -130,22 +128,22 @@ mime ^video, terminal, !X, has mplayer = mplayer -- "$@" #------------------------------------------- # Documents #------------------------------------------- -ext pdf, has atril, X, flag f = atril "$@" -ext djvu, has atril, X, flag f = atril "$@" -ext epub, has foliate, X, flag f = foliate "$@" +ext pdf, has atril, X, flag f = open-under-ranger atril "$@" +ext djvu, has atril, X, flag f = open-under-ranger atril "$@" +ext epub, has foliate, X, flag f = open-under-ranger foliate "$@" ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has libreoffice, X, flag f = soffice "$@" -ext cbr, has zathura, X, flag f = zathura -- "$@" -ext cbz, has zathura, X, flag f = zathura -- "$@" +ext cbr, has zathura, X, flag f = open-under-ranger zathura "$@" +ext cbz, has zathura, X, flag f = open-under-ranger zathura "$@" #------------------------------------------- # Images #------------------------------------------- -mime ^image/svg, has inkscape, X, flag f = inkscape "$@" -mime ^image, has pinta, X, flag f = pinta "$@" -mime ^image, has krita, X, flag f = krita "$@" +mime ^image/svg, has inkscape, X, flag f = open-under-ranger inkscape "$@" +mime ^image, has pinta, X, flag f = open-under-ranger pinta "$@" +mime ^image, has krita, X, flag f = open-under-ranger krita "$@" #------------------------------------------- # Archives @@ -173,7 +171,7 @@ ext rar, has unrar = for file in "$@"; do unrar x "$file"; done #------------------------------------------- # Fonts #------------------------------------------- -mime ^font, has fontforge, X, flag f = fontforge "$@" +mime ^font, has fontforge, X, flag f = open-under-ranger fontforge "$@" #------------------------------------------- # Flag t fallback terminals @@ -182,38 +180,38 @@ mime ^font, has fontforge, X, flag f = fontforge "$@" # if you install a rare terminal emulator, you probably use it. # gnome-terminal/konsole/xterm on the other hand are often installed as part of # a desktop environment or as fallback terminal emulators. -mime ^ranger/x-terminal-emulator, has alacritty = alacritty -e "$@" -mime ^ranger/x-terminal-emulator, has sakura = sakura -e "$@" -mime ^ranger/x-terminal-emulator, has lilyterm = lilyterm -e "$@" +mime ^ranger/x-terminal-emulator, has alacritty = open-under-ranger alacritty -e "$@" +mime ^ranger/x-terminal-emulator, has sakura = open-under-ranger sakura -e "$@" +mime ^ranger/x-terminal-emulator, has lilyterm = open-under-ranger lilyterm -e "$@" #mime ^ranger/x-terminal-emulator, has cool-retro-term = cool-retro-term -e "$@" -mime ^ranger/x-terminal-emulator, has termite = termite -x '"$@"' +mime ^ranger/x-terminal-emulator, has termite = open-under-ranger termite -x '"$@"' #mime ^ranger/x-terminal-emulator, has yakuake = yakuake -e "$@" -mime ^ranger/x-terminal-emulator, has guake = guake -ne "$@" -mime ^ranger/x-terminal-emulator, has tilda = tilda -c "$@" -mime ^ranger/x-terminal-emulator, has st = st -e "$@" -mime ^ranger/x-terminal-emulator, has terminator = terminator -x "$@" -mime ^ranger/x-terminal-emulator, has urxvt = urxvt -e "$@" -mime ^ranger/x-terminal-emulator, has pantheon-terminal = pantheon-terminal -e "$@" -mime ^ranger/x-terminal-emulator, has lxterminal = lxterminal -e "$@" -mime ^ranger/x-terminal-emulator, has mate-terminal = mate-terminal -x "$@" -mime ^ranger/x-terminal-emulator, has xfce4-terminal = xfce4-terminal -x "$@" -mime ^ranger/x-terminal-emulator, has konsole = konsole -e "$@" -mime ^ranger/x-terminal-emulator, has gnome-terminal = gnome-terminal -- "$@" -mime ^ranger/x-terminal-emulator, has xterm = xterm -e "$@" +mime ^ranger/x-terminal-emulator, has guake = open-under-ranger guake -ne "$@" +mime ^ranger/x-terminal-emulator, has tilda = open-under-ranger tilda -c "$@" +mime ^ranger/x-terminal-emulator, has st = open-under-ranger st -e "$@" +mime ^ranger/x-terminal-emulator, has terminator = open-under-ranger terminator -x "$@" +mime ^ranger/x-terminal-emulator, has urxvt = open-under-ranger urxvt -e "$@" +mime ^ranger/x-terminal-emulator, has pantheon-terminal = open-under-ranger pantheon-terminal -e "$@" +mime ^ranger/x-terminal-emulator, has lxterminal = open-under-ranger lxterminal -e "$@" +mime ^ranger/x-terminal-emulator, has mate-terminal = open-under-ranger mate-terminal -x "$@" +mime ^ranger/x-terminal-emulator, has xfce4-terminal = open-under-ranger xfce4-terminal -x "$@" +mime ^ranger/x-terminal-emulator, has konsole = open-under-ranger konsole -e "$@" +mime ^ranger/x-terminal-emulator, has gnome-terminal = open-under-ranger gnome-terminal -- "$@" +mime ^ranger/x-terminal-emulator, has xterm = open-under-ranger xterm -e "$@" #------------------------------------------- # Misc #------------------------------------------- -label wallpaper, number 11, mime ^image, has feh, X = feh --bg-scale "$1" -label wallpaper, number 12, mime ^image, has feh, X = feh --bg-tile "$1" -label wallpaper, number 13, mime ^image, has feh, X = feh --bg-center "$1" -label wallpaper, number 14, mime ^image, has feh, X = feh --bg-fill "$1" +label wallpaper, number 11, mime ^image, has feh, X = open-under-ranger feh --bg-scale "$1" +label wallpaper, number 12, mime ^image, has feh, X = open-under-ranger feh --bg-tile "$1" +label wallpaper, number 13, mime ^image, has feh, X = open-under-ranger feh --bg-center "$1" +label wallpaper, number 14, mime ^image, has feh, X = open-under-ranger feh --bg-fill "$1" #------------------------------------------- # Generic file openers #------------------------------------------- -label open, has xdg-open = xdg-open -- "$@" -label open, has open = open -- "$@" +label open, has xdg-open = open-under-ranger xdg-open -- "$@" +label open, has open = open-under-ranger open -- "$@" # Define the editor for non-text files + pager as last action !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = ask diff --git a/user/wm/hyprland/hyprland.nix b/user/wm/hyprland/hyprland.nix index 8552b139..0a811038 100644 --- a/user/wm/hyprland/hyprland.nix +++ b/user/wm/hyprland/hyprland.nix @@ -485,6 +485,21 @@ in #!/bin/sh hyprctl monitors -j | jq ".[$1] | .activeWorkspace.id" '') + (pkgs.writeScriptBin "open-under-ranger" '' + #!/bin/sh + command="$1" + echo $command + file="''${*:2}" + file=''${file// /\\ } + echo $file + workspace=$(hyprctl monitors -j | jq ".[] | select(.specialWorkspace.name == \"special:scratch_ranger\") | .activeWorkspace.id") + if [ -z "''${workspace}" ]; then + hyprctl dispatch exec -- "$command"; + else + hyprctl dispatch exec "[workspace $workspace]" -- "$command" "$file"; + fi + hyprctl dispatch togglespecialworkspace scratch_ranger + '') (pkgs.writeScriptBin "screenshot-ocr" '' #!/bin/sh imgname="/tmp/screenshot-ocr-$(date +%Y%m%d%H%M%S).png"