dotfiles

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 0fc6dd050b640f387eef0be9000cf5f9fa1570b6
parent 80336b8dcfe91611f0a7d465da999ce7194fb290
Author: AndrewLockVI <andrew@laack.co>
Date:   Mon, 17 Feb 2025 13:09:02 -0600

Added zoxide integration for ranger

Diffstat:
Mglib-2.0/settings/keyfile | 2+-
Mqutebrowser/qsettings/QtProject.conf | 4++--
Aranger/plugins/__init__.py | 0
Aranger/plugins/__pycache__/__init__.cpython-312.opt-1.pyc | 0
Aranger/plugins/zoxide/__init__.py | 63+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aranger/plugins/zoxide/__pycache__/__init__.cpython-312.opt-1.pyc | 0
Mranger/rc.conf | 12+++++++-----
Aranger/rifle.conf | 301+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8 files changed, 374 insertions(+), 8 deletions(-)

diff --git a/glib-2.0/settings/keyfile b/glib-2.0/settings/keyfile @@ -1,5 +1,5 @@ [org/gtk/settings/file-chooser] -window-position=(0, 19) +window-position=(3701, 618) window-size=(1096, 822) date-format='regular' location-mode='path-bar' diff --git a/qutebrowser/qsettings/QtProject.conf b/qutebrowser/qsettings/QtProject.conf @@ -1,6 +1,6 @@ [FileDialog] -history=file:///home/andrew/downloads, file:///home/andrew/gitRepos/useless-school/ensc100, file:///home/andrew/screenshots -lastVisited=file:///home/andrew/screenshots +history=file:///home/andrew/downloads, file:///home/andrew/gitRepos/useless-school/ensc100, file:///home/andrew/screenshots, file:///home/andrew +lastVisited=file:///home/andrew qtVersion=6.8.0 shortcuts=file:, file:///home/andrew sidebarWidth=98 diff --git a/ranger/plugins/__init__.py b/ranger/plugins/__init__.py diff --git a/ranger/plugins/__pycache__/__init__.cpython-312.opt-1.pyc b/ranger/plugins/__pycache__/__init__.cpython-312.opt-1.pyc Binary files differ. diff --git a/ranger/plugins/zoxide/__init__.py b/ranger/plugins/zoxide/__init__.py @@ -0,0 +1,63 @@ +import os.path +import ranger.api +import ranger.core.fm +import ranger.ext.signals +from subprocess import Popen, PIPE, run + +hook_init_prev = ranger.api.hook_init + +def hook_init(fm): + def zoxide_add(signal): + Popen(["zoxide", "add", signal.new.path]) + + fm.signal_bind("cd", zoxide_add) + fm.commands.alias("zi", "z -i") + return hook_init_prev(fm) + + +ranger.api.hook_init = hook_init + +class z(ranger.api.commands.Command): + """ + :z + + Jump around with zoxide (z) + """ + def execute(self): + results = self.query(self.args[1:]) + + input_path = ' '.join(self.args[1:]) + if not results and os.path.isdir(input_path): + self.fm.cd(input_path) + return + + if not results: + return + + if os.path.isdir(results[0]): + self.fm.cd(results[0]) + + def query(self, args): + try: + zoxide = self.fm.execute_command(f"zoxide query {' '.join(self.args[1:])}", + stdout=PIPE + ) + stdout, stderr = zoxide.communicate() + + if zoxide.returncode == 0: + output = stdout.decode("utf-8").strip() + return output.splitlines() + elif zoxide.returncode == 1: # nothing found + return None + elif zoxide.returncode == 130: # user cancelled + return None + else: + output = stderr.decode("utf-8").strip() or f"zoxide: unexpected error (exit code {zoxide.returncode})" + self.fm.notify(output, bad=True) + except Exception as e: + self.fm.notify(e, bad=True) + + def tab(self, tabnum): + results = self.query(self.args[1:]) + return ["z {}".format(x) for x in results] + diff --git a/ranger/plugins/zoxide/__pycache__/__init__.cpython-312.opt-1.pyc b/ranger/plugins/zoxide/__pycache__/__init__.cpython-312.opt-1.pyc Binary files differ. diff --git a/ranger/rc.conf b/ranger/rc.conf @@ -39,7 +39,7 @@ set show_hidden false # Ask for a confirmation when running the "delete" command? # Valid values are "always", "never", "multiple" (default) # With "multiple", ranger will ask only if you delete multiple files at once. -set confirm_on_delete multiple +set confirm_on_delete never # Use non-default path for file preview script? # ranger ships with scope.sh, a script that calls external programs (see @@ -393,10 +393,10 @@ map t tag_toggle map ut tag_remove map "<any> tag_toggle tag=%any map <Space> mark_files toggle=True -map v mark_files all=True toggle=True -map uv mark_files all=True val=False -map V toggle_visual_mode -map uV toggle_visual_mode reverse=True +map V mark_files all=True toggle=True +map uV mark_files all=True val=False +map v toggle_visual_mode +map uv toggle_visual_mode reverse=True # For the nostalgics: Midnight Commander bindings map <F1> help @@ -757,3 +757,5 @@ tmap <delete> eval -q fm.ui.taskview.task_remove() tmap <C-l> redraw_window tmap <ESC> taskview_close copytmap <ESC> q Q w <C-c> + +map cd console z%space diff --git a/ranger/rifle.conf b/ranger/rifle.conf @@ -0,0 +1,301 @@ +# vim: ft=cfg +# +# This is the configuration file of "rifle", ranger's file executor/opener. +# Each line consists of conditions and a command. For each line the conditions +# are checked and if they are met, the respective command is run. +# +# Syntax: +# <condition1> , <condition2> , ... = command +# +# The command can contain these environment variables: +# $1-$9 | The n-th selected file +# $@ | All selected files +# +# If you use the special command "ask", rifle will ask you what program to run. +# +# Prefixing a condition with "!" will negate its result. +# These conditions are currently supported: +# match <regexp> | The regexp matches $1 +# ext <regexp> | The regexp matches the extension of $1 +# mime <regexp> | The regexp matches the mime type of $1 +# name <regexp> | The regexp matches the basename of $1 +# path <regexp> | The regexp matches the absolute path of $1 +# has <program> | The program is installed (i.e. located in $PATH) +# env <variable> | The environment variable "variable" is non-empty +# file | $1 is a file +# directory | $1 is a directory +# number <n> | change the number of this command to n +# terminal | stdin, stderr and stdout are connected to a terminal +# X | A graphical environment is available (darwin, Xorg, or Wayland) +# +# There are also pseudo-conditions which have a "side effect": +# flag <flags> | Change how the program is run. See below. +# label <label> | Assign a label or name to the command so it can +# | be started with :open_with <label> in ranger +# | or `rifle -p <label>` in the standalone executable. +# else | Always true. +# +# Flags are single characters which slightly transform the command: +# f | Fork the program, make it run in the background. +# | New command = setsid $command >& /dev/null & +# r | Execute the command with root permissions +# | New command = sudo $command +# t | Run the program in a new terminal. If $TERMCMD is not defined, +# | rifle will attempt to extract it from $TERM. +# | New command = $TERMCMD -e $command +# Note: The "New command" serves only as an illustration, the exact +# implementation may differ. +# Note: When using rifle in ranger, there is an additional flag "c" for +# only running the current file even if you have marked multiple files. + +#------------------------------------------- +# Websites +#------------------------------------------- +# 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 surf, X, flag f = surf -- file://"$1" +ext x?html?, has vimprobable, X, flag f = vimprobable -- "$@" +ext x?html?, has vimprobable2, X, flag f = vimprobable2 -- "$@" +ext x?html?, has qutebrowser, X, flag f = qutebrowser -- "$@" +ext x?html?, has dwb, X, flag f = dwb -- "$@" +ext x?html?, has jumanji, X, flag f = jumanji -- "$@" +ext x?html?, has luakit, X, flag f = luakit -- "$@" +ext x?html?, has uzbl, X, flag f = uzbl -- "$@" +ext x?html?, has uzbl-tabbed, X, flag f = uzbl-tabbed -- "$@" +ext x?html?, has uzbl-browser, X, flag f = uzbl-browser -- "$@" +ext x?html?, has uzbl-core, X, flag f = uzbl-core -- "$@" +ext x?html?, has midori, X, flag f = midori -- "$@" +ext x?html?, has opera, X, flag f = opera -- "$@" +ext x?html?, has firefox, X, flag f = firefox -- "$@" +ext x?html?, has seamonkey, X, flag f = seamonkey -- "$@" +ext x?html?, has iceweasel, X, flag f = iceweasel -- "$@" +ext x?html?, has chromium-browser, X, flag f = chromium-browser -- "$@" +ext x?html?, has chromium, X, flag f = chromium -- "$@" +ext x?html?, has google-chrome, X, flag f = google-chrome -- "$@" +ext x?html?, has epiphany, X, flag f = epiphany -- "$@" +ext x?html?, has konqueror, X, flag f = konqueror -- "$@" +ext x?html?, has elinks, terminal = elinks "$@" +ext x?html?, has links2, terminal = links2 "$@" +ext x?html?, has links, terminal = links "$@" +ext x?html?, has lynx, terminal = lynx -- "$@" +ext x?html?, has w3m, terminal = w3m "$@" + +#------------------------------------------- +# Misc +#------------------------------------------- +# Define the "editor" for text files as first action +mime ^text, label editor = ${VISUAL:-$EDITOR} -- "$@" +mime ^text, label pager = $PAGER -- "$@" +!mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|rs|js|sh|php|dart|nim = ${VISUAL:-$EDITOR} -- "$@" +!mime ^text, label pager, ext xml|json|csv|tex|py|pl|rb|rs|js|sh|php|dart|nim = $PAGER -- "$@" + +ext 1 = man "$1" +ext s[wmf]c, has zsnes, X = zsnes "$1" +ext s[wmf]c, has snes9x-gtk,X = snes9x-gtk "$1" +ext nes, has fceux, X = fceux "$1" +ext exe, has wine = wine "$1" +ext nim, has nim = nim r -- "$1" +name ^[mM]akefile$ = make + +#-------------------------------------------- +# Scripts +#------------------------------------------- +ext py = python -- "$1" +ext pl = perl -- "$1" +ext rb = ruby -- "$1" +ext js = node -- "$1" +ext sh = sh -- "$1" +ext php = php -- "$1" +ext dart = dart run -- "$1" + +#-------------------------------------------- +# Audio without X +#------------------------------------------- +mime ^audio|ogg$, terminal, has mpv, X, flag f = mpv -- "$@" + +#-------------------------------------------- +# Video/Audio with a GUI +#------------------------------------------- +mime ^video|^audio, has gmplayer, X, flag f = gmplayer -- "$@" +mime ^video|^audio, has smplayer, X, flag f = smplayer "$@" +mime ^video, has iina, X, flag f = iina -- "$@" +mime ^video|^audio, has iina, X, flag f = iina --music-mode -- "$@" +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|^audio, has totem, X, flag f = totem -- "$@" +mime ^video|^audio, has totem, X, flag f = totem --fullscreen -- "$@" +mime ^audio, has audacity, X, flag f = audacity -- "$@" +ext aup, has audacity, X, flag f = audacity -- "$@" + +#-------------------------------------------- +# Video without X +#------------------------------------------- +mime ^video, terminal, !X, has mpv = mpv -- "$@" +mime ^video, terminal, !X, has mplayer2 = mplayer2 -- "$@" +mime ^video, terminal, !X, has mplayer = mplayer -- "$@" + +#------------------------------------------- +# Documents +#------------------------------------------- +ext pdf, has llpp, X, flag f = llpp "$@" +ext pdf, has zathura, X, flag f = zathura -- "$@" +ext pdf, has mupdf, X, flag f = mupdf "$@" +ext pdf, has mupdf-x11,X, flag f = mupdf-x11 "$@" +ext pdf, has apvlv, X, flag f = apvlv -- "$@" +ext pdf, has xpdf, X, flag f = xpdf -- "$@" +ext pdf, has evince, X, flag f = evince -- "$@" +ext pdf, has atril, X, flag f = atril -- "$@" +ext pdf, has okular, X, flag f = okular -- "$@" +ext pdf, has epdfview, X, flag f = epdfview -- "$@" +ext pdf, has qpdfview, X, flag f = qpdfview "$@" +ext pdf, has open, X, flag f = open "$@" + +ext sc, has sc, = sc -- "$@" +ext docx?, has catdoc, terminal = catdoc -- "$@" | $PAGER + +ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has gnumeric, X, flag f = gnumeric -- "$@" +ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has kspread, X, flag f = kspread -- "$@" +ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has libreoffice, X, flag f = libreoffice "$@" +ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has soffice, X, flag f = soffice "$@" +ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has ooffice, X, flag f = ooffice "$@" + +ext djvu, has zathura,X, flag f = zathura -- "$@" +ext djvu, has evince, X, flag f = evince -- "$@" +ext djvu, has atril, X, flag f = atril -- "$@" +ext djvu, has djview, X, flag f = djview -- "$@" + +ext epub, has ebook-viewer, X, flag f = ebook-viewer -- "$@" +ext epub, has zathura, X, flag f = zathura -- "$@" +ext epub, has mupdf, X, flag f = mupdf -- "$@" +ext mobi, has ebook-viewer, X, flag f = ebook-viewer -- "$@" + +ext cb[rz], has qcomicbook, X, flag f = qcomicbook "$@" +ext cb[rz], has mcomix, X, flag f = mcomix -- "$@" +ext cb[rz], has zathura, X, flag f = zathura -- "$@" +ext cb[rz], has atril, X, flag f = atril -- "$@" + +ext sla, has scribus, X, flag f = scribus -- "$@" + +#------------------------------------------- +# Images +#------------------------------------------- +mime ^image, has viewnior, X, flag f = viewnior -- "$@" + +mime ^image/svg, has inkscape, X, flag f = inkscape -- "$@" +mime ^image/svg, has display, X, flag f = display -- "$@" + +mime ^image, has imv, X, flag f = imv -- "$@" +mime ^image, has pqiv, X, flag f = pqiv -- "$@" +mime ^image, has sxiv, X, flag f = sxiv -- "$@" +mime ^image, has feh, X, flag f, !ext gif = feh -- "$@" +mime ^image, has mirage, X, flag f = mirage -- "$@" +mime ^image, has ristretto, X, flag f = ristretto "$@" +mime ^image, has eog, X, flag f = eog -- "$@" +mime ^image, has eom, X, flag f = eom -- "$@" +mime ^image, has nomacs, X, flag f = nomacs -- "$@" +mime ^image, has geeqie, X, flag f = geeqie -- "$@" +mime ^image, has gpicview, X, flag f = gpicview -- "$@" +mime ^image, has gwenview, X, flag f = gwenview -- "$@" +mime ^image, has xviewer, X, flag f = xviewer -- "$@" +mime ^image, has mcomix, X, flag f = mcomix -- "$@" +mime ^image, has gimp, X, flag f = gimp -- "$@" +mime ^image, has krita, X, flag f = krita -- "$@" +ext kra, has krita, X, flag f = krita -- "$@" +ext xcf, X, flag f = gimp -- "$@" + +#------------------------------------------- +# Archives +#------------------------------------------- + +# avoid password prompt by providing empty password +ext 7z, has 7z = 7z -p l "$@" | $PAGER +# This requires atool +ext ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has atool = atool --list --each -- "$@" | $PAGER +ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has atool = atool --list --each -- "$@" | $PAGER +ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has atool = atool --extract --each -- "$@" +ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has atool = atool --extract --each -- "$@" + +# Listing and extracting archives without atool: +ext tar|gz|bz2|xz, has tar = tar vvtf "$1" | $PAGER +ext tar|gz|bz2|xz, has tar = for file in "$@"; do tar vvxf "$file"; done +ext bz2, has bzip2 = for file in "$@"; do bzip2 -dk "$file"; done +ext zip, has unzip = unzip -l "$1" | less +ext zip, has unzip = for file in "$@"; do unzip -d "${file%.*}" "$file"; done +ext ace, has unace = unace l "$1" | less +ext ace, has unace = for file in "$@"; do unace e "$file"; done +ext rar, has unrar = unrar l "$1" | less +ext rar, has unrar = for file in "$@"; do unrar x "$file"; done +ext rar|zip, has qcomicbook, X, flag f = qcomicbook "$@" +ext rar|zip, has mcomix, X, flag f = mcomix -- "$@" +ext rar|zip, has zathura, X, flag f = zathura -- "$@" + +#------------------------------------------- +# Fonts +#------------------------------------------- +mime ^font, has fontforge, X, flag f = fontforge "$@" + +#------------------------------------------- +# Flag t fallback terminals +#------------------------------------------- +# Rarely installed terminal emulators get higher priority; It is assumed that +# 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 terminology = terminology -e "$@" +mime ^ranger/x-terminal-emulator, has kitty = kitty -- "$@" +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 cool-retro-term = cool-retro-term -e "$@" +mime ^ranger/x-terminal-emulator, has termite = 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 "$@" + +#------------------------------------------- +# 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" + +#------------------------------------------- +# Generic file openers +#------------------------------------------- +label open, has xdg-open = xdg-open "$@" +label open, has open = open -- "$@" + +# Define the editor for non-text files + pager as last action + !mime ^text, !ext xml|json|csv|tex|py|pl|rb|rs|js|sh|php|dart|nim = ask +label editor, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|rs|js|sh|php|dart|nim = ${VISUAL:-$EDITOR} -- "$@" +label pager, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|rs|js|sh|php|dart|nim = $PAGER -- "$@" + + +###################################################################### +# The actions below are left so low down in this file on purpose, so # +# they are never triggered accidentally. # +###################################################################### + +# Execute a file as program/script. +mime application/x-executable = "$1" + +# Move the file to trash using trash-cli. +label trash, has trash-put = trash-put -- "$@" +label trash = mkdir -p -- "${XDG_DATA_HOME:-$HOME/.local/share}/ranger/trash"; mv -- "$@" "${XDG_DATA_HOME:-$HOME/.local/share}/ranger/trash"