dotfiles-x11ba7303e
switching from ranger to lf
+406 −406
13 files changed
- A .config/lf/cleaner +4 −0
- A .config/lf/lfrc +114 −0
- A .config/lf/scope +44 −0
- D .config/ranger/plugins/__init__.py +0 −0
- D .config/ranger/plugins/ranger_devicons/__init__.py +0 −15
- D .config/ranger/plugins/ranger_devicons/devicons.py +0 −381
- D .config/ranger/rc.conf +0 −8
- M .config/shell/aliasrc +1 −1
- M .config/shell/profile +162 −0
- A .local/bin/dmenuumount +44 −0
- A .local/bin/lfub +24 −0
- A .local/bin/rotdir +12 −0
- M .local/share/applications/file.desktop +1 −1
| @@ -0,0 +1,4 @@ | |||
| 1 | + | #!/bin/sh | |
| 2 | + | if [ -n "$FIFO_UEBERZUG" ]; then | |
| 3 | + | printf '{"action": "remove", "identifier": "PREVIEW"}\n' > "$FIFO_UEBERZUG" | |
| 4 | + | fi | |
| @@ -0,0 +1,114 @@ | |||
| 1 | + | # Basic vars | |
| 2 | + | set shellopts '-eu' | |
| 3 | + | set ifs "\n" | |
| 4 | + | set scrolloff 10 | |
| 5 | + | set icons | |
| 6 | + | set period 1 | |
| 7 | + | set hiddenfiles ".*:*.aux:*.log:*.bbl:*.bcf:*.blg:*.run.xml" | |
| 8 | + | set cleaner '~/.config/lf/cleaner' | |
| 9 | + | set previewer '~/.config/lf/scope' | |
| 10 | + | ||
| 11 | + | # cmds/functions | |
| 12 | + | cmd open ${{ | |
| 13 | + | case $(file --mime-type "$(readlink -f $f)" -b) in | |
| 14 | + | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) localc $fx ;; | |
| 15 | + | image/vnd.djvu|application/pdf|application/octet-stream|application/postscript) setsid -f zathura $fx >/dev/null 2>&1 ;; | |
| 16 | + | text/*|application/json|inode/x-empty) $EDITOR $fx;; | |
| 17 | + | image/x-xcf) setsid -f gimp $f >/dev/null 2>&1 ;; | |
| 18 | + | image/svg+xml) display -- $f ;; | |
| 19 | + | image/*) rotdir $f | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|tif\|ico\)\(_large\)*$" | | |
| 20 | + | setsid -f sxiv -aio 2>/dev/null | while read -r file; do | |
| 21 | + | [ -z "$file" ] && continue | |
| 22 | + | lf -remote "send select \"$file\"" | |
| 23 | + | lf -remote "send toggle" | |
| 24 | + | done & | |
| 25 | + | ;; | |
| 26 | + | audio/*) mpv --audio-display=no $f ;; | |
| 27 | + | video/*) setsid -f mpv $f -quiet >/dev/null 2>&1 ;; | |
| 28 | + | application/pdf|application/vnd*|application/epub*) setsid -f zathura $fx >/dev/null 2>&1 ;; | |
| 29 | + | application/pgp-encrypted) $EDITOR $fx ;; | |
| 30 | + | *) for f in $fx; do setsid -f $OPENER $f >/dev/null 2>&1; done;; | |
| 31 | + | esac | |
| 32 | + | }} | |
| 33 | + | ||
| 34 | + | cmd mkdir $mkdir -p "$(echo $* | tr ' ' '\ ')" | |
| 35 | + | ||
| 36 | + | cmd extract ${{ | |
| 37 | + | clear; tput cup $(($(tput lines)/3)); tput bold | |
| 38 | + | set -f | |
| 39 | + | printf "%s\n\t" "$fx" | |
| 40 | + | printf "extract?[y/N]" | |
| 41 | + | read ans | |
| 42 | + | [ $ans = "y" ] && aunpack $fx | |
| 43 | + | }} | |
| 44 | + | ||
| 45 | + | cmd delete ${{ | |
| 46 | + | clear; tput cup $(($(tput lines)/3)); tput bold | |
| 47 | + | set -f | |
| 48 | + | printf "%s\n\t" "$fx" | |
| 49 | + | printf "delete?[y/N]" | |
| 50 | + | read ans | |
| 51 | + | [ $ans = "y" ] && rm -rf -- $fx | |
| 52 | + | }} | |
| 53 | + | ||
| 54 | + | cmd moveto ${{ | |
| 55 | + | clear; tput cup $(($(tput lines)/3)); tput bold | |
| 56 | + | set -f | |
| 57 | + | clear; echo "Move to where?" | |
| 58 | + | dest="$(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf | sed 's|~|$HOME|')" && | |
| 59 | + | for x in $fx; do | |
| 60 | + | eval mv -iv \"$x\" \"$dest\" | |
| 61 | + | done && | |
| 62 | + | notify-send "๐ File(s) moved." "File(s) moved to $dest." | |
| 63 | + | }} | |
| 64 | + | ||
| 65 | + | cmd copyto ${{ | |
| 66 | + | clear; tput cup $(($(tput lines)/3)); tput bold | |
| 67 | + | set -f | |
| 68 | + | clear; echo "Copy to where?" | |
| 69 | + | dest="$(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf | sed 's|~|$HOME|')" && | |
| 70 | + | for x in $fx; do | |
| 71 | + | eval cp -ivr \"$x\" \"$dest\" | |
| 72 | + | done && | |
| 73 | + | notify-send "๐ File(s) copied." "File(s) copies to $dest." | |
| 74 | + | }} | |
| 75 | + | ||
| 76 | + | cmd setbg "$1" | |
| 77 | + | cmd bulkrename $vidir | |
| 78 | + | ||
| 79 | + | # Bindings | |
| 80 | + | map <c-f> $lf -remote "send $id select \"$(fzf)\"" | |
| 81 | + | map J $lf -remote "send $id cd $(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf)" | |
| 82 | + | map gh | |
| 83 | + | map g top | |
| 84 | + | map D delete | |
| 85 | + | map E extract | |
| 86 | + | map C copyto | |
| 87 | + | map M moveto | |
| 88 | + | map <c-n> push :mkdir<space> | |
| 89 | + | map <c-r> reload | |
| 90 | + | map <c-s> set hidden! | |
| 91 | + | map <enter> shell | |
| 92 | + | map x $$f | |
| 93 | + | map X !$f | |
| 94 | + | map o &mimeopen $f | |
| 95 | + | map O $mimeopen --ask $f | |
| 96 | + | ||
| 97 | + | map A rename # at the very end | |
| 98 | + | map c push A<c-u> # new rename | |
| 99 | + | map I push A<c-a> # at the very beginning | |
| 100 | + | map i push A<a-b><a-b><a-f> # before extension | |
| 101 | + | map a push A<a-b> # after extension | |
| 102 | + | map B bulkrename | |
| 103 | + | map b $setbg $f | |
| 104 | + | ||
| 105 | + | map <c-e> down | |
| 106 | + | map <c-y> up | |
| 107 | + | map V push :!nvim<space> | |
| 108 | + | ||
| 109 | + | map W $setsid -f $TERMINAL >/dev/null 2>&1 | |
| 110 | + | ||
| 111 | + | map Y $printf "%s" "$fx" | xclip -selection clipboard | |
| 112 | + | ||
| 113 | + | # Source Bookmarks | |
| 114 | + | #source "~/.config/lf/shortcutrc" | |
| @@ -0,0 +1,44 @@ | |||
| 1 | + | #!/bin/sh | |
| 2 | + | ||
| 3 | + | # File preview handler for lf. | |
| 4 | + | ||
| 5 | + | set -C -f | |
| 6 | + | IFS="$(printf '%b_' '\n')"; IFS="${IFS%_}" | |
| 7 | + | ||
| 8 | + | image() { | |
| 9 | + | if [ -f "$1" ] && [ -n "$DISPLAY" ] && [ -z "$WAYLAND_DISPLAY" ] && command -V ueberzug >/dev/null 2>&1; then | |
| 10 | + | printf '{"action": "add", "identifier": "PREVIEW", "x": "%s", "y": "%s", "width": "%s", "height": "%s", "scaler": "contain", "path": "%s"}\n' "$4" "$5" "$(($2-1))" "$(($3-1))" "$1" > "$FIFO_UEBERZUG" | |
| 11 | + | else | |
| 12 | + | mediainfo "$6" | |
| 13 | + | fi | |
| 14 | + | } | |
| 15 | + | ||
| 16 | + | ifub() { | |
| 17 | + | [ -n "$DISPLAY" ] && [ -z "$WAYLAND_DISPLAY" ] && command -V ueberzug >/dev/null 2>&1 | |
| 18 | + | } | |
| 19 | + | ||
| 20 | + | # Note that the cache file name is a function of file information, meaning if | |
| 21 | + | # an image appears in multiple places across the machine, it will not have to | |
| 22 | + | # be regenerated once seen. | |
| 23 | + | ||
| 24 | + | case "$(file --dereference --brief --mime-type -- "$1")" in | |
| 25 | + | image/*) image "$1" "$2" "$3" "$4" "$5" "$1" ;; | |
| 26 | + | text/html) lynx -width="$4" -display_charset=utf-8 -dump "$1" ;; | |
| 27 | + | text/troff) man ./ "$1" | col -b ;; | |
| 28 | + | text/* | */xml | application/json) cat "$1" ;; | |
| 29 | + | application/zip) atool --list -- "$1" ;; | |
| 30 | + | audio/* | application/octet-stream) mediainfo "$1" || exit 1 ;; | |
| 31 | + | video/* ) | |
| 32 | + | CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)" | |
| 33 | + | [ ! -f "$CACHE" ] && ffmpegthumbnailer -i "$1" -o "$CACHE" -s 0 | |
| 34 | + | image "$CACHE" "$2" "$3" "$4" "$5" "$1" | |
| 35 | + | ;; | |
| 36 | + | */pdf) | |
| 37 | + | CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)" | |
| 38 | + | [ ! -f "$CACHE.jpg" ] && pdftoppm -jpeg -f 1 -singlefile "$1" "$CACHE" | |
| 39 | + | image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1" | |
| 40 | + | ;; | |
| 41 | + | *opendocument*) odt2txt "$1" ;; | |
| 42 | + | application/pgp-encrypted) gpg -d -- "$1" ;; | |
| 43 | + | esac | |
| 44 | + | exit 1 | |
[No content changes]
| @@ -1,15 +0,0 @@ | |||
| 1 | โ | import os | |
| 2 | โ | import ranger.api | |
| 3 | โ | from ranger.core.linemode import LinemodeBase | |
| 4 | โ | from .devicons import * | |
| 5 | โ | ||
| 6 | โ | SEPARATOR = os.getenv('RANGER_DEVICONS_SEPARATOR', ' ') | |
| 7 | โ | ||
| 8 | โ | @ranger.api.register_linemode | |
| 9 | โ | class DevIconsLinemode(LinemodeBase): | |
| 10 | โ | name = "devicons" | |
| 11 | โ | ||
| 12 | โ | uses_metadata = False | |
| 13 | โ | ||
| 14 | โ | def filetitle(self, file, metadata): | |
| 15 | โ | return devicon(file) + SEPARATOR + file.relative_path | |
| @@ -1,381 +0,0 @@ | |||
| 1 | โ | #!/usr/bin/python | |
| 2 | โ | # coding=UTF-8 | |
| 3 | โ | # These glyphs, and the mapping of file extensions to glyphs | |
| 4 | โ | # has been copied from the vimscript code that is present in | |
| 5 | โ | # https://github.com/ryanoasis/vim-devicons | |
| 6 | โ | import re; | |
| 7 | โ | import os; | |
| 8 | โ | ||
| 9 | โ | # Get the XDG_USER_DIRS directory names from enviromental variables | |
| 10 | โ | ||
| 11 | โ | xdgs_dirs = {path.split('/')[-2]: icon for key, icon in [ | |
| 12 | โ | ('XDG_DOCUMENTS_DIR' , '๏'), | |
| 13 | โ | ('XDG_DOWNLOAD_DIR' , '๏'), | |
| 14 | โ | ('XDG_CONFIG_DIR' , '๎'), | |
| 15 | โ | ('XDG_MUSIC_DIR' , '๏ฅ'), | |
| 16 | โ | ('XDG_PICTURES_DIR' , '๎'), | |
| 17 | โ | ('XDG_PUBLICSHARE_DIR', '๏ซ'), | |
| 18 | โ | ('XDG_TEMPLATES_DIR' , '๏ '), | |
| 19 | โ | ('XDG_VIDEOS_DIR' , '๏'), | |
| 20 | โ | ] if (path := os.getenv(key))} | |
| 21 | โ | ||
| 22 | โ | ||
| 23 | โ | # all those glyphs will show as weird squares if you don't have the correct patched font | |
| 24 | โ | # My advice is to use NerdFonts which can be found here: | |
| 25 | โ | # https://github.com/ryanoasis/nerd-fonts | |
| 26 | โ | file_node_extensions = { | |
| 27 | โ | '7z' : '๏', | |
| 28 | โ | 'a' : '๎ค', | |
| 29 | โ | 'ai' : '๎ด', | |
| 30 | โ | 'apk' : '๏', | |
| 31 | โ | 'asm' : '๎', | |
| 32 | โ | 'asp' : '๎', | |
| 33 | โ | 'aup' : '๏', | |
| 34 | โ | 'avi' : '๏', | |
| 35 | โ | 'awk' : '๎', | |
| 36 | โ | 'bash' : '๎', | |
| 37 | โ | 'bat' : '๎', | |
| 38 | โ | 'bmp' : '๎', | |
| 39 | โ | 'bz2' : '๏', | |
| 40 | โ | 'c' : '๎', | |
| 41 | โ | 'c++' : '๎', | |
| 42 | โ | 'cab' : '๏', | |
| 43 | โ | 'cbr' : '๏ต', | |
| 44 | โ | 'cbz' : '๏ต', | |
| 45 | โ | 'cc' : '๎', | |
| 46 | โ | 'class' : '๎ธ', | |
| 47 | โ | 'clj' : '๎จ', | |
| 48 | โ | 'cljc' : '๎จ', | |
| 49 | โ | 'cljs' : '๎ช', | |
| 50 | โ | 'cmake' : '๎ค', | |
| 51 | โ | 'coffee' : '๎', | |
| 52 | โ | 'conf' : '๎', | |
| 53 | โ | 'cp' : '๎', | |
| 54 | โ | 'cpio' : '๏', | |
| 55 | โ | 'cpp' : '๎', | |
| 56 | โ | 'cs' : '๏ ', | |
| 57 | โ | 'csh' : '๎', | |
| 58 | โ | 'css' : '๎', | |
| 59 | โ | 'cue' : '๏', | |
| 60 | โ | 'cvs' : '๎', | |
| 61 | โ | 'cxx' : '๎', | |
| 62 | โ | 'd' : '๎ฏ', | |
| 63 | โ | 'dart' : '๎', | |
| 64 | โ | 'db' : '๎', | |
| 65 | โ | 'deb' : '๏', | |
| 66 | โ | 'diff' : '๎จ', | |
| 67 | โ | 'dll' : '๎', | |
| 68 | โ | 'doc' : '๏ญ', | |
| 69 | โ | 'docx' : '๏ญ', | |
| 70 | โ | 'dump' : '๎', | |
| 71 | โ | 'edn' : '๎ช', | |
| 72 | โ | 'eex' : '๎ญ', | |
| 73 | โ | 'efi' : '๎', | |
| 74 | โ | 'ejs' : '๎', | |
| 75 | โ | 'elf' : '๎', | |
| 76 | โ | 'elm' : '๎ฌ', | |
| 77 | โ | 'epub' : '๏ญ', | |
| 78 | โ | 'erl' : '๎ฑ', | |
| 79 | โ | 'ex' : '๎ญ', | |
| 80 | โ | 'exe' : '๎', | |
| 81 | โ | 'exs' : '๎ญ', | |
| 82 | โ | 'f#' : '๎ง', | |
| 83 | โ | 'fifo' : '๏ณฃ', | |
| 84 | โ | 'fish' : '๎', | |
| 85 | โ | 'flac' : '๏', | |
| 86 | โ | 'flv' : '๏', | |
| 87 | โ | 'fs' : '๎ง', | |
| 88 | โ | 'fsi' : '๎ง', | |
| 89 | โ | 'fsscript' : '๎ง', | |
| 90 | โ | 'fsx' : '๎ง', | |
| 91 | โ | 'gem' : '๏', | |
| 92 | โ | 'gemspec' : '๎', | |
| 93 | โ | 'gif' : '๎', | |
| 94 | โ | 'go' : '๎ง', | |
| 95 | โ | 'gz' : '๏', | |
| 96 | โ | 'gzip' : '๏', | |
| 97 | โ | 'h' : '๎', | |
| 98 | โ | 'haml' : '๎', | |
| 99 | โ | 'hbs' : '๎', | |
| 100 | โ | 'hh' : '๏ฝ', | |
| 101 | โ | 'hpp' : '๎', | |
| 102 | โ | 'hrl' : '๎ฑ', | |
| 103 | โ | 'hs' : '๎', | |
| 104 | โ | 'htaccess' : '๎', | |
| 105 | โ | 'htm' : '๎', | |
| 106 | โ | 'html' : '๎', | |
| 107 | โ | 'htpasswd' : '๎', | |
| 108 | โ | 'hxx' : '๏ฝ', | |
| 109 | โ | 'ico' : '๎', | |
| 110 | โ | 'img' : '๎', | |
| 111 | โ | 'ini' : '๎', | |
| 112 | โ | 'iso' : '๎', | |
| 113 | โ | 'jar' : '๎ธ', | |
| 114 | โ | 'java' : '๎ธ', | |
| 115 | โ | 'jl' : '๎ค', | |
| 116 | โ | 'jpeg' : '๎', | |
| 117 | โ | 'jpg' : '๎', | |
| 118 | โ | 'js' : '๎', | |
| 119 | โ | 'json' : '๎', | |
| 120 | โ | 'jsx' : '๎บ', | |
| 121 | โ | 'key' : '๎', | |
| 122 | โ | 'ksh' : '๎', | |
| 123 | โ | 'leex' : '๎ญ', | |
| 124 | โ | 'less' : '๎', | |
| 125 | โ | 'lha' : '๏', | |
| 126 | โ | 'lhs' : '๎', | |
| 127 | โ | 'log' : '๏ช', | |
| 128 | โ | 'lua' : '๎ ', | |
| 129 | โ | 'lzh' : '๏', | |
| 130 | โ | 'lzma' : '๏', | |
| 131 | โ | 'm4a' : '๏', | |
| 132 | โ | 'm4v' : '๏', | |
| 133 | โ | 'markdown' : '๎', | |
| 134 | โ | 'md' : '๎', | |
| 135 | โ | 'mdx' : '๎', | |
| 136 | โ | 'mjs' : '๎', | |
| 137 | โ | 'mkv' : '๏', | |
| 138 | โ | 'ml' : 'ฮป', | |
| 139 | โ | 'mli' : 'ฮป', | |
| 140 | โ | 'mov' : '๏', | |
| 141 | โ | 'mp3' : '๏', | |
| 142 | โ | 'mp4' : '๏', | |
| 143 | โ | 'mpeg' : '๏', | |
| 144 | โ | 'mpg' : '๏', | |
| 145 | โ | 'msi' : '๎', | |
| 146 | โ | 'mustache' : '๎', | |
| 147 | โ | 'nix' : '๏', | |
| 148 | โ | 'o' : '๎ค', | |
| 149 | โ | 'ogg' : '๏', | |
| 150 | โ | 'part' : '๎', | |
| 151 | โ | 'pdf' : '๏ค', | |
| 152 | โ | 'php' : '๎', | |
| 153 | โ | 'pl' : '๎ฉ', | |
| 154 | โ | 'pm' : '๎ฉ', | |
| 155 | โ | 'png' : '๎', | |
| 156 | โ | 'pp' : '๏', | |
| 157 | โ | 'ppt' : '๏ฆ', | |
| 158 | โ | 'pptx' : '๏ฆ', | |
| 159 | โ | 'ps1' : '๎', | |
| 160 | โ | 'psb' : '๎ธ', | |
| 161 | โ | 'psd' : '๎ธ', | |
| 162 | โ | 'pub' : '๎', | |
| 163 | โ | 'py' : '๎', | |
| 164 | โ | 'pyc' : '๎', | |
| 165 | โ | 'pyd' : '๎', | |
| 166 | โ | 'pyo' : '๎', | |
| 167 | โ | 'r' : '๏ณ', | |
| 168 | โ | 'rake' : '๎', | |
| 169 | โ | 'rar' : '๏', | |
| 170 | โ | 'rb' : '๎', | |
| 171 | โ | 'rc' : '๎', | |
| 172 | โ | 'rlib' : '๎จ', | |
| 173 | โ | 'rmd' : '๎', | |
| 174 | โ | 'rom' : '๎', | |
| 175 | โ | 'rpm' : '๏', | |
| 176 | โ | 'rproj' : '๏ซ ', | |
| 177 | โ | 'rs' : '๎จ', | |
| 178 | โ | 'rss' : '๎', | |
| 179 | โ | 'rtf' : '๏ญ', | |
| 180 | โ | 's' : '๎', | |
| 181 | โ | 'sass' : '๎', | |
| 182 | โ | 'scala' : '๎ท', | |
| 183 | โ | 'scss' : '๎', | |
| 184 | โ | 'sh' : '๎', | |
| 185 | โ | 'slim' : '๎', | |
| 186 | โ | 'sln' : '๎', | |
| 187 | โ | 'so' : '๎ค', | |
| 188 | โ | 'sql' : '๎', | |
| 189 | โ | 'styl' : '๎', | |
| 190 | โ | 'suo' : '๎', | |
| 191 | โ | 'swift' : '๎', | |
| 192 | โ | 't' : '๎ฉ', | |
| 193 | โ | 'tar' : '๏', | |
| 194 | โ | 'tex' : '๏ญจ', | |
| 195 | โ | 'tgz' : '๏', | |
| 196 | โ | 'toml' : '๎', | |
| 197 | โ | 'torrent' : '๎ฑ', | |
| 198 | โ | 'ts' : '๎จ', | |
| 199 | โ | 'tsx' : '๎บ', | |
| 200 | โ | 'twig' : '๎', | |
| 201 | โ | 'vim' : '๎ ', | |
| 202 | โ | 'vimrc' : '๎ ', | |
| 203 | โ | 'vue' : '๏ต', | |
| 204 | โ | 'wav' : '๏', | |
| 205 | โ | 'webm' : '๏', | |
| 206 | โ | 'webmanifest' : '๎', | |
| 207 | โ | 'webp' : '๎', | |
| 208 | โ | 'xbps' : '๏', | |
| 209 | โ | 'xcplayground' : '๎', | |
| 210 | โ | 'xhtml' : '๎', | |
| 211 | โ | 'xls' : '๏', | |
| 212 | โ | 'xlsx' : '๏', | |
| 213 | โ | 'xml' : '๎', | |
| 214 | โ | 'xul' : '๎ ', | |
| 215 | โ | 'xz' : '๏', | |
| 216 | โ | 'yaml' : '๎', | |
| 217 | โ | 'yml' : '๎', | |
| 218 | โ | 'zip' : '๏', | |
| 219 | โ | 'zsh' : '๎', | |
| 220 | โ | } | |
| 221 | โ | ||
| 222 | โ | dir_node_exact_matches = { | |
| 223 | โ | # English | |
| 224 | โ | '.git' : '๎ป', | |
| 225 | โ | 'Desktop' : '๏', | |
| 226 | โ | 'Documents' : '๏', | |
| 227 | โ | 'Downloads' : '๏', | |
| 228 | โ | 'Dotfiles' : '๎', | |
| 229 | โ | 'Dropbox' : '๎', | |
| 230 | โ | 'Music' : '๏ฅ', | |
| 231 | โ | 'Pictures' : '๎', | |
| 232 | โ | 'Public' : '๏ซ', | |
| 233 | โ | 'Templates' : '๏ ', | |
| 234 | โ | 'Videos' : '๏', | |
| 235 | โ | # Spanish | |
| 236 | โ | 'Escritorio' : '๏', | |
| 237 | โ | 'Documentos' : '๏', | |
| 238 | โ | 'Descargas' : '๏', | |
| 239 | โ | 'Mรบsica' : '๏ฅ', | |
| 240 | โ | 'Imรกgenes' : '๎', | |
| 241 | โ | 'Pรบblico' : '๏ซ', | |
| 242 | โ | 'Plantillas' : '๏ ', | |
| 243 | โ | 'Vรญdeos' : '๏', | |
| 244 | โ | # French | |
| 245 | โ | 'Bureau' : '๏', | |
| 246 | โ | 'Documents' : '๏', | |
| 247 | โ | 'Images' : '๎', | |
| 248 | โ | 'Musique' : '๏ฅ', | |
| 249 | โ | 'Publique' : '๏ซ', | |
| 250 | โ | 'Tรฉlรฉchargements' : '๏', | |
| 251 | โ | 'Vidรฉos' : '๏', | |
| 252 | โ | # Portuguese | |
| 253 | โ | 'Documentos' : '๏', | |
| 254 | โ | 'Imagens' : '๎', | |
| 255 | โ | 'Modelos' : '๏ ', | |
| 256 | โ | 'Mรบsica' : '๏ฅ', | |
| 257 | โ | 'Pรบblico' : '๏ซ', | |
| 258 | โ | 'Vรญdeos' : '๏', | |
| 259 | โ | 'รrea de trabalho' : '๏', | |
| 260 | โ | # Italian | |
| 261 | โ | 'Documenti' : '๏', | |
| 262 | โ | 'Immagini' : '๎', | |
| 263 | โ | 'Modelli' : '๏ ', | |
| 264 | โ | 'Musica' : '๏ฅ', | |
| 265 | โ | 'Pubblici' : '๏ซ', | |
| 266 | โ | 'Scaricati' : '๏', | |
| 267 | โ | 'Scrivania' : '๏', | |
| 268 | โ | 'Video' : '๏', | |
| 269 | โ | # German | |
| 270 | โ | 'Bilder' : '๎', | |
| 271 | โ | 'Dokumente' : '๏', | |
| 272 | โ | 'Musik' : '๏ฅ', | |
| 273 | โ | 'Schreibtisch' : '๏', | |
| 274 | โ | 'Vorlagen' : '๏ ', | |
| 275 | โ | 'รffentlich' : '๏ซ', | |
| 276 | โ | # Hungarian | |
| 277 | โ | 'Dokumentumok' : '๏', | |
| 278 | โ | 'Kรฉpek' : '๎', | |
| 279 | โ | 'Modelli' : '๏ ', | |
| 280 | โ | 'Zene' : '๏ฅ', | |
| 281 | โ | 'Letรถltรฉsek' : '๏', | |
| 282 | โ | 'Szรกmรญtรณgรฉp' : '๏', | |
| 283 | โ | 'Videรณk' : '๏', | |
| 284 | โ | # XDG_USER_DIRS | |
| 285 | โ | **xdgs_dirs | |
| 286 | โ | } | |
| 287 | โ | ||
| 288 | โ | file_node_exact_matches = { | |
| 289 | โ | '.bash_aliases' : '๎', | |
| 290 | โ | '.bash_history' : '๎', | |
| 291 | โ | '.bash_logout' : '๎', | |
| 292 | โ | '.bash_profile' : '๎', | |
| 293 | โ | '.bashprofile' : '๎', | |
| 294 | โ | '.bashrc' : '๎', | |
| 295 | โ | '.dmrc' : '๎', | |
| 296 | โ | '.DS_Store' : '๎', | |
| 297 | โ | '.fasd' : '๎', | |
| 298 | โ | '.fehbg' : '๎', | |
| 299 | โ | '.gitattributes' : '๎', | |
| 300 | โ | '.gitconfig' : '๎', | |
| 301 | โ | '.gitignore' : '๎', | |
| 302 | โ | '.gitlab-ci.yml' : '๏', | |
| 303 | โ | '.gvimrc' : '๎ซ', | |
| 304 | โ | '.inputrc' : '๎', | |
| 305 | โ | '.jack-settings' : '๎', | |
| 306 | โ | '.mime.types' : '๎', | |
| 307 | โ | '.ncmpcpp' : '๏', | |
| 308 | โ | '.nvidia-settings-rc' : '๎', | |
| 309 | โ | '.pam_environment' : '๎', | |
| 310 | โ | '.profile' : '๎', | |
| 311 | โ | '.recently-used' : '๎', | |
| 312 | โ | '.selected_editor' : '๎', | |
| 313 | โ | '.vim' : '๎ ', | |
| 314 | โ | '.viminfo' : '๎ ', | |
| 315 | โ | '.vimrc' : '๎ ', | |
| 316 | โ | '.Xauthority' : '๎', | |
| 317 | โ | '.Xdefaults' : '๎', | |
| 318 | โ | '.xinitrc' : '๎', | |
| 319 | โ | '.xinputrc' : '๎', | |
| 320 | โ | '.Xresources' : '๎', | |
| 321 | โ | '.zshrc' : '๎', | |
| 322 | โ | '_gvimrc' : '๎ซ', | |
| 323 | โ | '_vimrc' : '๎ซ', | |
| 324 | โ | 'a.out' : '๎', | |
| 325 | โ | 'authorized_keys' : '๎', | |
| 326 | โ | 'bspwmrc' : '๎', | |
| 327 | โ | 'cmakelists.txt' : '๎', | |
| 328 | โ | 'config' : '๎', | |
| 329 | โ | 'config.ac' : '๎ค', | |
| 330 | โ | 'config.m4' : '๎ค', | |
| 331 | โ | 'config.mk' : '๎ค', | |
| 332 | โ | 'config.ru' : '๎', | |
| 333 | โ | 'configure' : '๎', | |
| 334 | โ | 'docker-compose.yml' : '๏', | |
| 335 | โ | 'dockerfile' : '๎ฐ', | |
| 336 | โ | 'Dockerfile' : '๏', | |
| 337 | โ | 'dropbox' : '๎', | |
| 338 | โ | 'exact-match-case-sensitive-1.txt' : 'X1', | |
| 339 | โ | 'exact-match-case-sensitive-2' : 'X2', | |
| 340 | โ | 'favicon.ico' : '๎ฃ', | |
| 341 | โ | 'gemfile' : '๎', | |
| 342 | โ | 'gruntfile.coffee' : '๎', | |
| 343 | โ | 'gruntfile.js' : '๎', | |
| 344 | โ | 'gruntfile.ls' : '๎', | |
| 345 | โ | 'gulpfile.coffee' : '๎', | |
| 346 | โ | 'gulpfile.js' : '๎', | |
| 347 | โ | 'gulpfile.ls' : '๎', | |
| 348 | โ | 'ini' : '๎', | |
| 349 | โ | 'known_hosts' : '๎', | |
| 350 | โ | 'ledger' : '๏ ', | |
| 351 | โ | 'license' : '๎', | |
| 352 | โ | 'LICENSE' : '๎', | |
| 353 | โ | 'LICENSE.md' : '๎', | |
| 354 | โ | 'LICENSE.txt' : '๎', | |
| 355 | โ | 'Makefile' : '๎', | |
| 356 | โ | 'makefile' : '๎', | |
| 357 | โ | 'Makefile.ac' : '๎', | |
| 358 | โ | 'Makefile.in' : '๎', | |
| 359 | โ | 'mimeapps.list' : '๎', | |
| 360 | โ | 'mix.lock' : '๎ญ', | |
| 361 | โ | 'node_modules' : '๎', | |
| 362 | โ | 'package-lock.json' : '๎', | |
| 363 | โ | 'package.json' : '๎', | |
| 364 | โ | 'playlists' : '๏', | |
| 365 | โ | 'procfile' : '๎', | |
| 366 | โ | 'Rakefile' : '๎', | |
| 367 | โ | 'rakefile' : '๎', | |
| 368 | โ | 'react.jsx' : '๎ฅ', | |
| 369 | โ | 'README' : '๎', | |
| 370 | โ | 'README.markdown' : '๎', | |
| 371 | โ | 'README.md' : '๎', | |
| 372 | โ | 'README.rst' : '๎', | |
| 373 | โ | 'README.txt' : '๎', | |
| 374 | โ | 'sxhkdrc' : '๎', | |
| 375 | โ | 'user-dirs.dirs' : '๎', | |
| 376 | โ | 'webpack.config.js' : '๎', | |
| 377 | โ | } | |
| 378 | โ | ||
| 379 | โ | def devicon(file): | |
| 380 | โ | if file.is_directory: return dir_node_exact_matches.get(file.relative_path, '๎ฟ') | |
| 381 | โ | return file_node_exact_matches.get(os.path.basename(file.relative_path), file_node_extensions.get(file.extension, '๎')) | |
| @@ -1,8 +0,0 @@ | |||
| 1 | โ | # How many columns are there, and what are their relative widths? | |
| 2 | โ | set column_ratios 1,3,5 | |
| 3 | โ | ||
| 4 | โ | set show_hidden true | |
| 5 | โ | set draw_borders both | |
| 6 | โ | set preview_images true | |
| 7 | โ | set preview_images_method ueberzug | |
| 8 | โ | default_linemode devicons | |
| @@ -12,7 +12,7 @@ alias \ | |||
| 12 | 12 | ytdlm='yt-dlp -f "(mp3)"' \ | |
| 13 | 13 | cl='clear' \ | |
| 14 | 14 | dots='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME' \ | |
| 15 | โ | fm='ranger' \ | |
| 15 | + | lf="lfub" \ | |
| 16 | 16 | hst='history 1 -1 | cut -c 8- | sort | uniq | fzf | tr -d '\n' | xclip -sel c' | |
| 17 | 17 | ||
| 18 | 18 | # Verbosity and settings that you pretty much just always are going to want. | |
| @@ -36,6 +36,168 @@ export MPD_PORT="6600" | |||
| 36 | 36 | # Mpd daemon start | |
| 37 | 37 | [ ! -s ~/.config/mpd/pid ] && mpd | |
| 38 | 38 | ||
| 39 | + | export LF_ICONS="\ | |
| 40 | + | di=๏:\ | |
| 41 | + | fi=๏:\ | |
| 42 | + | ln=๏:\ | |
| 43 | + | or=๏:\ | |
| 44 | + | ex=๏ง:\ | |
| 45 | + | *.vimrc=๎ซ:\ | |
| 46 | + | *.viminfo=๎ซ:\ | |
| 47 | + | *.gitignore=๏ก:\ | |
| 48 | + | *.c=๎:\ | |
| 49 | + | *.cc=๎:\ | |
| 50 | + | *.clj=๎จ:\ | |
| 51 | + | *.coffee=๎:\ | |
| 52 | + | *.cpp=๎:\ | |
| 53 | + | *.css=๎:\ | |
| 54 | + | *.d=๎ฏ:\ | |
| 55 | + | *.dart=๎:\ | |
| 56 | + | *.erl=๎ฑ:\ | |
| 57 | + | *.exs=๎ญ:\ | |
| 58 | + | *.fs=๎ง:\ | |
| 59 | + | *.go=๎ง:\ | |
| 60 | + | *.h=๎:\ | |
| 61 | + | *.hh=๎:\ | |
| 62 | + | *.hpp=๎:\ | |
| 63 | + | *.hs=๎ท:\ | |
| 64 | + | *.html=๎:\ | |
| 65 | + | *.java=๎ธ:\ | |
| 66 | + | *.jl=๎ค:\ | |
| 67 | + | *.js=๎:\ | |
| 68 | + | *.json=๎:\ | |
| 69 | + | *.lua=๎ :\ | |
| 70 | + | *.md=๎:\ | |
| 71 | + | *.php=๎:\ | |
| 72 | + | *.pl=๎ฉ:\ | |
| 73 | + | *.pro=๎ก:\ | |
| 74 | + | *.py=๎ผ:\ | |
| 75 | + | *.rb=๎น:\ | |
| 76 | + | *.rs=๎จ:\ | |
| 77 | + | *.scala=๎ท:\ | |
| 78 | + | *.ts=๎จ:\ | |
| 79 | + | *.vim=๎ซ:\ | |
| 80 | + | *.cmd=๏:\ | |
| 81 | + | *.ps1=๏:\ | |
| 82 | + | *.sh=๏:\ | |
| 83 | + | *.bash=๏:\ | |
| 84 | + | *.zsh=๏:\ | |
| 85 | + | *.fish=๏:\ | |
| 86 | + | *.tar=๏:\ | |
| 87 | + | *.tgz=๏:\ | |
| 88 | + | *.arc=๏:\ | |
| 89 | + | *.arj=๏:\ | |
| 90 | + | *.taz=๏:\ | |
| 91 | + | *.lha=๏:\ | |
| 92 | + | *.lz4=๏:\ | |
| 93 | + | *.lzh=๏:\ | |
| 94 | + | *.lzma=๏:\ | |
| 95 | + | *.tlz=๏:\ | |
| 96 | + | *.txz=๏:\ | |
| 97 | + | *.tzo=๏:\ | |
| 98 | + | *.t7z=๏:\ | |
| 99 | + | *.zip=๏:\ | |
| 100 | + | *.z=๏:\ | |
| 101 | + | *.dz=๏:\ | |
| 102 | + | *.gz=๏:\ | |
| 103 | + | *.lrz=๏:\ | |
| 104 | + | *.lz=๏:\ | |
| 105 | + | *.lzo=๏:\ | |
| 106 | + | *.xz=๏:\ | |
| 107 | + | *.zst=๏:\ | |
| 108 | + | *.tzst=๏:\ | |
| 109 | + | *.bz2=๏:\ | |
| 110 | + | *.bz=๏:\ | |
| 111 | + | *.tbz=๏:\ | |
| 112 | + | *.tbz2=๏:\ | |
| 113 | + | *.tz=๏:\ | |
| 114 | + | *.deb=๏:\ | |
| 115 | + | *.rpm=๏:\ | |
| 116 | + | *.jar=๏:\ | |
| 117 | + | *.war=๏:\ | |
| 118 | + | *.ear=๏:\ | |
| 119 | + | *.sar=๏:\ | |
| 120 | + | *.rar=๏:\ | |
| 121 | + | *.alz=๏:\ | |
| 122 | + | *.ace=๏:\ | |
| 123 | + | *.zoo=๏:\ | |
| 124 | + | *.cpio=๏:\ | |
| 125 | + | *.7z=๏:\ | |
| 126 | + | *.rz=๏:\ | |
| 127 | + | *.cab=๏:\ | |
| 128 | + | *.wim=๏:\ | |
| 129 | + | *.swm=๏:\ | |
| 130 | + | *.dwm=๏:\ | |
| 131 | + | *.esd=๏:\ | |
| 132 | + | *.jpg=๏:\ | |
| 133 | + | *.jpeg=๏:\ | |
| 134 | + | *.mjpg=๏:\ | |
| 135 | + | *.mjpeg=๏:\ | |
| 136 | + | *.gif=๏:\ | |
| 137 | + | *.bmp=๏:\ | |
| 138 | + | *.pbm=๏:\ | |
| 139 | + | *.pgm=๏:\ | |
| 140 | + | *.ppm=๏:\ | |
| 141 | + | *.tga=๏:\ | |
| 142 | + | *.xbm=๏:\ | |
| 143 | + | *.xpm=๏:\ | |
| 144 | + | *.tif=๏:\ | |
| 145 | + | *.tiff=๏:\ | |
| 146 | + | *.png=๏:\ | |
| 147 | + | *.svg=๏:\ | |
| 148 | + | *.svgz=๏:\ | |
| 149 | + | *.mng=๏:\ | |
| 150 | + | *.pcx=๏:\ | |
| 151 | + | *.mov=๏:\ | |
| 152 | + | *.mpg=๏:\ | |
| 153 | + | *.mpeg=๏:\ | |
| 154 | + | *.m2v=๏:\ | |
| 155 | + | *.mkv=๏:\ | |
| 156 | + | *.webm=๏:\ | |
| 157 | + | *.ogm=๏:\ | |
| 158 | + | *.mp4=๏:\ | |
| 159 | + | *.m4v=๏:\ | |
| 160 | + | *.mp4v=๏:\ | |
| 161 | + | *.vob=๏:\ | |
| 162 | + | *.qt=๏:\ | |
| 163 | + | *.nuv=๏:\ | |
| 164 | + | *.wmv=๏:\ | |
| 165 | + | *.asf=๏:\ | |
| 166 | + | *.rm=๏:\ | |
| 167 | + | *.rmvb=๏:\ | |
| 168 | + | *.flc=๏:\ | |
| 169 | + | *.avi=๏:\ | |
| 170 | + | *.fli=๏:\ | |
| 171 | + | *.flv=๏:\ | |
| 172 | + | *.gl=๏:\ | |
| 173 | + | *.dl=๏:\ | |
| 174 | + | *.xcf=๏:\ | |
| 175 | + | *.xwd=๏:\ | |
| 176 | + | *.yuv=๏:\ | |
| 177 | + | *.cgm=๏:\ | |
| 178 | + | *.emf=๏:\ | |
| 179 | + | *.ogv=๏:\ | |
| 180 | + | *.ogx=๏:\ | |
| 181 | + | *.aac=๏:\ | |
| 182 | + | *.au=๏:\ | |
| 183 | + | *.flac=๏:\ | |
| 184 | + | *.m4a=๏:\ | |
| 185 | + | *.mid=๏:\ | |
| 186 | + | *.midi=๏:\ | |
| 187 | + | *.mka=๏:\ | |
| 188 | + | *.mp3=๏:\ | |
| 189 | + | *.mpc=๏:\ | |
| 190 | + | *.ogg=๏:\ | |
| 191 | + | *.ra=๏:\ | |
| 192 | + | *.wav=๏:\ | |
| 193 | + | *.oga=๏:\ | |
| 194 | + | *.opus=๏:\ | |
| 195 | + | *.spx=๏:\ | |
| 196 | + | *.xspf=๏:\ | |
| 197 | + | *.pdf=๏:\ | |
| 198 | + | *.nix=๏:\ | |
| 199 | + | " | |
| 200 | + | ||
| 39 | 201 | # Starting X | |
| 40 | 202 | if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then | |
| 41 | 203 | exec startx | |
| @@ -0,0 +1,44 @@ | |||
| 1 | + | #!/bin/sh | |
| 2 | + | ||
| 3 | + | # A dmenu prompt to unmount drives. | |
| 4 | + | # Provides you with mounted partitions, select one to unmount. | |
| 5 | + | # Drives mounted at /, /boot and /home will not be options to unmount. | |
| 6 | + | ||
| 7 | + | unmountusb() { | |
| 8 | + | [ -z "$drives" ] && exit | |
| 9 | + | chosen="$(echo "$drives" | dmenu -i -p "Unmount which drive?")" || exit 1 | |
| 10 | + | chosen="$(echo "$chosen" | awk '{print $1}')" | |
| 11 | + | [ -z "$chosen" ] && exit | |
| 12 | + | sudo -A umount "$chosen" && notify-send "๐ป USB unmounting" "$chosen unmounted." | |
| 13 | + | } | |
| 14 | + | ||
| 15 | + | unmountandroid() { \ | |
| 16 | + | chosen="$(awk '/simple-mtpfs/ {print $2}' /etc/mtab | dmenu -i -p "Unmount which device?")" || exit 1 | |
| 17 | + | [ -z "$chosen" ] && exit | |
| 18 | + | sudo -A umount -l "$chosen" && notify-send "๐ค Android unmounting" "$chosen unmounted." | |
| 19 | + | } | |
| 20 | + | ||
| 21 | + | asktype() { \ | |
| 22 | + | choice="$(printf "USB\\nAndroid" | dmenu -i -p "Unmount a USB drive or Android device?")" || exit 1 | |
| 23 | + | case "$choice" in | |
| 24 | + | USB) unmountusb ;; | |
| 25 | + | Android) unmountandroid ;; | |
| 26 | + | esac | |
| 27 | + | } | |
| 28 | + | ||
| 29 | + | drives=$(lsblk -nrpo "name,type,size,mountpoint,label" | awk -F':' '{gsub(/ /,":")}$4!~/\/boot|\/efi|\/home$|SWAP/&&length($4)>1{printf "%s (%s) %s\n",$4,$3,$5}') | |
| 30 | + | ||
| 31 | + | if ! grep simple-mtpfs /etc/mtab; then | |
| 32 | + | [ -z "$drives" ] && echo "No drives to unmount." && exit | |
| 33 | + | echo "Unmountable USB drive detected." | |
| 34 | + | unmountusb | |
| 35 | + | else | |
| 36 | + | if [ -z "$drives" ] | |
| 37 | + | then | |
| 38 | + | echo "Unmountable Android device detected." | |
| 39 | + | unmountandroid | |
| 40 | + | else | |
| 41 | + | echo "Unmountable USB drive(s) and Android device(s) detected." | |
| 42 | + | asktype | |
| 43 | + | fi | |
| 44 | + | fi | |
| @@ -0,0 +1,24 @@ | |||
| 1 | + | #!/bin/sh | |
| 2 | + | ||
| 3 | + | # This is a wrapper script for lb that allows it to create image previews with | |
| 4 | + | # ueberzug. This works in concert with the lf configuration file and the | |
| 5 | + | # lf-cleaner script. | |
| 6 | + | ||
| 7 | + | set -e | |
| 8 | + | ||
| 9 | + | cleanup() { | |
| 10 | + | exec 3>&- | |
| 11 | + | rm "$FIFO_UEBERZUG" | |
| 12 | + | } | |
| 13 | + | ||
| 14 | + | if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then | |
| 15 | + | lf "$@" | |
| 16 | + | else | |
| 17 | + | [ ! -d "$HOME/.cache/lf" ] && mkdir -p "$HOME/.cache/lf" | |
| 18 | + | export FIFO_UEBERZUG="$HOME/.cache/lf/ueberzug-$$" | |
| 19 | + | mkfifo "$FIFO_UEBERZUG" | |
| 20 | + | ueberzug layer -s <"$FIFO_UEBERZUG" -p json & | |
| 21 | + | exec 3>"$FIFO_UEBERZUG" | |
| 22 | + | trap cleanup HUP INT QUIT TERM PWR EXIT | |
| 23 | + | lf "$@" 3>&- | |
| 24 | + | fi | |
| @@ -0,0 +1,12 @@ | |||
| 1 | + | #!/bin/sh | |
| 2 | + | ||
| 3 | + | # When I open an image from the file manager in sxiv (the image viewer), I want | |
| 4 | + | # to be able to press the next/previous keys to key through the rest of the | |
| 5 | + | # images in the same directory. This script "rotates" the content of a | |
| 6 | + | # directory based on the first chosen file, so that if I open the 15th image, | |
| 7 | + | # if I press next, it will go to the 16th etc. Autistic, I know, but this is | |
| 8 | + | # one of the reasons that sxiv is great for being able to read standard input. | |
| 9 | + | ||
| 10 | + | [ -z "$1" ] && echo "usage: rotdir regex 2>&1" && exit 1 | |
| 11 | + | base="$(basename "$1")" | |
| 12 | + | ls "$PWD" | awk -v BASE="$base" 'BEGIN { lines = ""; m = 0; } { if ($0 == BASE) { m = 1; } } { if (!m) { if (lines) { lines = lines"\n"; } lines = lines""$0; } else { print $0; } } END { print lines; }' | |
| @@ -1,4 +1,4 @@ | |||
| 1 | 1 | [Desktop Entry] | |
| 2 | 2 | Type=Application | |
| 3 | 3 | Name=File Manager | |
| 4 | โ | Exec=/usr/local/bin/st -e fm %u | |
| 4 | + | Exec=/usr/local/bin/st -e lfub %u | |