diff --git a/dot/file/profile b/dot/file/profile index 8512b1c..d7f4316 100755 --- a/dot/file/profile +++ b/dot/file/profile @@ -10,6 +10,20 @@ no-output() { $@ &> /dev/null } +lfcd(){ + tmp="$(mktemp)" + lf -last-dir-path="$tmp" "$@" + if [ -f "$tmp" ]; then + dir="$(cat "$tmp")" + rm -f "$tmp" + if [ -d "$dir" ]; then + if [ "$dir" != "$(pwd)" ]; then + cd "$dir" + fi + fi + fi +} + sctl(){ systemctl $@ } @@ -55,8 +69,12 @@ if test "$OS" != "Windows_NT" ; then PATH="$HOME/exe:$HOME/.local/bin:$PATH" fi +# COMMON + export LANG="en_US.UTF-8" # Custom. + export KITTY_CONFIG_DIRECTORY="$ETC/kitty" + export OPENER="xdg-open" export APP="$HOME/app" export BIN="$HOME/bin" export LOAD="$HOME/load" @@ -66,6 +84,7 @@ fi export DEV="$HOME/dev" # CLI. + export LESS="--RAW-CONTROL-CHARS --quit-if-one-screen --clear-screen --tilde --chop-long-lines --status-column --rscroll='>'" export ENV="$HOME/.shrc" export PROMPT="; " export PS1="$PROMPT" @@ -105,15 +124,16 @@ fi # X/Wayland stuff. export XCOMPOSER='river' - export XTERMINAL='wayst' + export XTERMINAL='kitty' + export XINSIDE_TERMINAL='kitty' export XRUNNER='fuzzel' export XDMENU='fuzzel -d' export XBAR='waybar' export XBLUETOOTH_MANAGER='blueman-manager' export XOUTPUT_DAEMON='kanshi' export XSOUND_CONTROL='pavucontrol' - export XFILE_MANAGER="$XTERMINAL -e $CLI_FILE_MANAGER" - export XRESOURCE_MONITOR="$XTERMINAL -e htop" + export XFILE_MANAGER="$XINSIDE_TERMINAL $CLI_FILE_MANAGER" + export XRESOURCE_MONITOR="$XINSIDE_TERMINAL htop" export XCALENDAR="$XTERMINAL -e calcurse" export XPUSH_NOTIFICATION_DAEMON='dunst' export XNOTIFY='dunstify' diff --git a/img/bg3.png b/img/eat-sleep-code-repeat.png similarity index 100% rename from img/bg3.png rename to img/eat-sleep-code-repeat.png diff --git a/kitty/kitty.conf b/kitty/kitty.conf new file mode 100644 index 0000000..13e1d6e --- /dev/null +++ b/kitty/kitty.conf @@ -0,0 +1,11 @@ +enable_audio_bell no + +font_family Fira Code +bold_font auto +italic_font auto +bold_italic_font auto + +font_size 11 + +disable_ligatures cursor + diff --git a/lesskey b/lesskey new file mode 100644 index 0000000..a2f1da0 --- /dev/null +++ b/lesskey @@ -0,0 +1,3 @@ +h left-scroll +l right-scroll + diff --git a/lf/cleaner b/lf/cleaner new file mode 100755 index 0000000..0f6e2ad --- /dev/null +++ b/lf/cleaner @@ -0,0 +1,3 @@ +#!/bin/sh +exec kitty +kitten icat --clear --stdin no --silent --transfer-mode file /dev/tty + diff --git a/lf/colors b/lf/colors new file mode 100644 index 0000000..b65d3f0 --- /dev/null +++ b/lf/colors @@ -0,0 +1,174 @@ +# vim:ft=dircolors +# (This is not a dircolors file but it helps to highlight colors and comments) + +# default values from dircolors +# (entries with a leading # are not implemented in lf) +# #no 00 # NORMAL +# fi 00 # FILE +# #rs 0 # RESET +# di 01;34 # DIR +# ln 01;36 # LINK +# #mh 00 # MULTIHARDLINK +# pi 40;33 # FIFO +# so 01;35 # SOCK +# #do 01;35 # DOOR +# bd 40;33;01 # BLK +# cd 40;33;01 # CHR +# or 40;31;01 # ORPHAN +# #mi 00 # MISSING +# su 37;41 # SETUID +# sg 30;43 # SETGID +# #ca 30;41 # CAPABILITY +# tw 30;42 # STICKY_OTHER_WRITABLE +# ow 34;42 # OTHER_WRITABLE +# st 37;44 # STICKY +# ex 01;32 # EXEC + +# default values from lf (with matching order) +# ln 01;36 # LINK +# or 31;01 # ORPHAN +# tw 01;34 # STICKY_OTHER_WRITABLE +# ow 01;34 # OTHER_WRITABLE +# st 01;34 # STICKY +# di 01;34 # DIR +# pi 33 # FIFO +# so 01;35 # SOCK +# bd 33;01 # BLK +# cd 33;01 # CHR +# su 01;32 # SETUID +# sg 01;32 # SETGID +# ex 01;32 # EXEC +# fi 00 # FILE + +# file types (with matching order) +ln 01;36 # LINK +or 31;01 # ORPHAN +tw 34 # STICKY_OTHER_WRITABLE +ow 34 # OTHER_WRITABLE +st 01;34 # STICKY +di 01;34 # DIR +pi 33 # FIFO +so 01;35 # SOCK +bd 33;01 # BLK +cd 33;01 # CHR +su 01;32 # SETUID +sg 01;32 # SETGID +ex 01;32 # EXEC +fi 00 # FILE + +# archives or compressed (dircolors defaults) +*.tar 01;31 +*.tgz 01;31 +*.arc 01;31 +*.arj 01;31 +*.taz 01;31 +*.lha 01;31 +*.lz4 01;31 +*.lzh 01;31 +*.lzma 01;31 +*.tlz 01;31 +*.txz 01;31 +*.tzo 01;31 +*.t7z 01;31 +*.zip 01;31 +*.z 01;31 +*.dz 01;31 +*.gz 01;31 +*.lrz 01;31 +*.lz 01;31 +*.lzo 01;31 +*.xz 01;31 +*.zst 01;31 +*.tzst 01;31 +*.bz2 01;31 +*.bz 01;31 +*.tbz 01;31 +*.tbz2 01;31 +*.tz 01;31 +*.deb 01;31 +*.rpm 01;31 +*.jar 01;31 +*.war 01;31 +*.ear 01;31 +*.sar 01;31 +*.rar 01;31 +*.alz 01;31 +*.ace 01;31 +*.zoo 01;31 +*.cpio 01;31 +*.7z 01;31 +*.rz 01;31 +*.cab 01;31 +*.wim 01;31 +*.swm 01;31 +*.dwm 01;31 +*.esd 01;31 + +# image formats (dircolors defaults) +*.jpg 01;35 +*.jpeg 01;35 +*.mjpg 01;35 +*.mjpeg 01;35 +*.gif 01;35 +*.bmp 01;35 +*.pbm 01;35 +*.pgm 01;35 +*.ppm 01;35 +*.tga 01;35 +*.xbm 01;35 +*.xpm 01;35 +*.tif 01;35 +*.tiff 01;35 +*.png 01;35 +*.svg 01;35 +*.svgz 01;35 +*.mng 01;35 +*.pcx 01;35 +*.mov 01;35 +*.mpg 01;35 +*.mpeg 01;35 +*.m2v 01;35 +*.mkv 01;35 +*.webm 01;35 +*.ogm 01;35 +*.mp4 01;35 +*.m4v 01;35 +*.mp4v 01;35 +*.vob 01;35 +*.qt 01;35 +*.nuv 01;35 +*.wmv 01;35 +*.asf 01;35 +*.rm 01;35 +*.rmvb 01;35 +*.flc 01;35 +*.avi 01;35 +*.fli 01;35 +*.flv 01;35 +*.gl 01;35 +*.dl 01;35 +*.xcf 01;35 +*.xwd 01;35 +*.yuv 01;35 +*.cgm 01;35 +*.emf 01;35 +*.ogv 01;35 +*.ogx 01;35 + +# audio formats (dircolors defaults) +*.aac 00;36 +*.au 00;36 +*.flac 00;36 +*.m4a 00;36 +*.mid 00;36 +*.midi 00;36 +*.mka 00;36 +*.mp3 00;36 +*.mpc 00;36 +*.ogg 00;36 +*.ra 00;36 +*.wav 00;36 +*.oga 00;36 +*.opus 00;36 +*.spx 00;36 +*.xspf 00;36 diff --git a/lf/icons b/lf/icons new file mode 100644 index 0000000..4022691 --- /dev/null +++ b/lf/icons @@ -0,0 +1,377 @@ +# vim:ft=conf + +# These examples require Nerd Fonts or a compatible font to be used. +# See https://www.nerdfonts.com for more information. + +# default values from lf (with matching order) +# ln l # LINK +# or l # ORPHAN +# tw t # STICKY_OTHER_WRITABLE +# ow d # OTHER_WRITABLE +# st t # STICKY +# di d # DIR +# pi p # FIFO +# so s # SOCK +# bd b # BLK +# cd c # CHR +# su u # SETUID +# sg g # SETGID +# ex x # EXEC +# fi - # FILE + +# file types (with matching order) +ln  # LINK +or  # ORPHAN +tw t # STICKY_OTHER_WRITABLE +ow  # OTHER_WRITABLE +st t # STICKY +di  # DIR +pi p # FIFO +so s # SOCK +bd b # BLK +cd c # CHR +su u # SETUID +sg g # SETGID +ex  # EXEC +fi  # FILE + +# disable some default filetype icons, let them choose icon by filename +# ln  # LINK +# or  # ORPHAN +# tw # STICKY_OTHER_WRITABLE +# ow # OTHER_WRITABLE +# st # STICKY +# di  # DIR +# pi # FIFO +# so # SOCK +# bd # BLK +# cd # CHR +# su # SETUID +# sg # SETGID +# ex # EXEC +# fi  # FILE + +# file extensions (vim-devicons) +*.styl  +*.sass  +*.scss  +*.htm  +*.html  +*.slim  +*.haml  +*.ejs  +*.css  +*.less  +*.md  +*.mdx  +*.markdown  +*.rmd  +*.json  +*.webmanifest  +*.js  +*.mjs  +*.jsx  +*.rb  +*.gemspec  +*.rake  +*.php  +*.py  +*.pyc  +*.pyo  +*.pyd  +*.coffee  +*.mustache  +*.hbs  +*.conf  +*.ini  +*.yml  +*.yaml  +*.toml  +*.bat  +*.mk  +*.jpg  +*.jpeg  +*.bmp  +*.png  +*.webp  +*.gif  +*.ico  +*.twig  +*.cpp  +*.c++  +*.cxx  +*.cc  +*.cp  +*.c  +*.cs 󰌛 +*.h  +*.hh  +*.hpp  +*.hxx  +*.hs  +*.lhs  +*.nix  +*.lua  +*.java  +*.sh  +*.fish  +*.bash  +*.zsh  +*.ksh  +*.csh  +*.awk  +*.ps1  +*.ml λ +*.mli λ +*.diff  +*.db  +*.sql  +*.dump  +*.clj  +*.cljc  +*.cljs  +*.edn  +*.scala  +*.go  +*.dart  +*.xul  +*.sln  +*.suo  +*.pl  +*.pm  +*.t  +*.rss  +'*.f#'  +*.fsscript  +*.fsx  +*.fs  +*.fsi  +*.rs  +*.rlib  +*.d  +*.erl  +*.hrl  +*.ex  +*.exs  +*.eex  +*.leex  +*.heex  +*.vim  +*.ai  +*.psd  +*.psb  +*.ts  +*.tsx  +*.jl  +*.pp  +*.vue  +*.elm  +*.swift  +*.xcplayground  +*.tex 󰙩 +*.r 󰟔 +*.rproj 󰗆 +*.sol 󰡪 +*.pem  + +# file names (vim-devicons) (case-insensitive not supported in lf) +*gruntfile.coffee  +*gruntfile.js  +*gruntfile.ls  +*gulpfile.coffee  +*gulpfile.js  +*gulpfile.ls  +*mix.lock  +*dropbox  +*.ds_store  +*.gitconfig  +*.gitignore  +*.gitattributes  +*.gitlab-ci.yml  +*.bashrc  +*.zshrc  +*.zshenv  +*.zprofile  +*.vimrc  +*.gvimrc  +*_vimrc  +*_gvimrc  +*.bashprofile  +*favicon.ico  +*license  +*node_modules  +*react.jsx  +*procfile  +*dockerfile  +*docker-compose.yml  +*docker-compose.yaml  +*compose.yml  +*compose.yaml  +*rakefile  +*config.ru  +*gemfile  +*makefile  +*cmakelists.txt  +*robots.txt 󰚩 + +# file names (case-sensitive adaptations) +*Gruntfile.coffee  +*Gruntfile.js  +*Gruntfile.ls  +*Gulpfile.coffee  +*Gulpfile.js  +*Gulpfile.ls  +*Dropbox  +*.DS_Store  +*LICENSE  +*React.jsx  +*Procfile  +*Dockerfile  +*Docker-compose.yml  +*Docker-compose.yaml  +*Rakefile  +*Gemfile  +*Makefile  +*CMakeLists.txt  + +# file patterns (vim-devicons) (patterns not supported in lf) +# .*jquery.*\.js$  +# .*angular.*\.js$  +# .*backbone.*\.js$  +# .*require.*\.js$  +# .*materialize.*\.js$  +# .*materialize.*\.css$  +# .*mootools.*\.js$  +# .*vimrc.*  +# Vagrantfile$  + +# file patterns (file name adaptations) +*jquery.min.js  +*angular.min.js  +*backbone.min.js  +*require.min.js  +*materialize.min.js  +*materialize.min.css  +*mootools.min.js  +*vimrc  +Vagrantfile  + +# archives or compressed (extensions from dircolors defaults) +*.tar  +*.tgz  +*.arc  +*.arj  +*.taz  +*.lha  +*.lz4  +*.lzh  +*.lzma  +*.tlz  +*.txz  +*.tzo  +*.t7z  +*.zip  +*.z  +*.dz  +*.gz  +*.lrz  +*.lz  +*.lzo  +*.xz  +*.zst  +*.tzst  +*.bz2  +*.bz  +*.tbz  +*.tbz2  +*.tz  +*.deb  +*.rpm  +*.jar  +*.war  +*.ear  +*.sar  +*.rar  +*.alz  +*.ace  +*.zoo  +*.cpio  +*.7z  +*.rz  +*.cab  +*.wim  +*.swm  +*.dwm  +*.esd  + +# image formats (extensions from dircolors defaults) +*.jpg  +*.jpeg  +*.mjpg  +*.mjpeg  +*.gif  +*.bmp  +*.pbm  +*.pgm  +*.ppm  +*.tga  +*.xbm  +*.xpm  +*.tif  +*.tiff  +*.png  +*.svg  +*.svgz  +*.mng  +*.pcx  +*.mov  +*.mpg  +*.mpeg  +*.m2v  +*.mkv  +*.webm  +*.ogm  +*.mp4  +*.m4v  +*.mp4v  +*.vob  +*.qt  +*.nuv  +*.wmv  +*.asf  +*.rm  +*.rmvb  +*.flc  +*.avi  +*.fli  +*.flv  +*.gl  +*.dl  +*.xcf  +*.xwd  +*.yuv  +*.cgm  +*.emf  +*.ogv  +*.ogx  + +# audio formats (extensions from dircolors defaults) +*.aac  +*.au  +*.flac  +*.m4a  +*.mid  +*.midi  +*.mka  +*.mp3  +*.mpc  +*.ogg  +*.ra  +*.wav  +*.oga  +*.opus  +*.spx  +*.xspf  + +# other formats +*.pdf  diff --git a/lf/icons_colored b/lf/icons_colored new file mode 100644 index 0000000..437e1b0 --- /dev/null +++ b/lf/icons_colored @@ -0,0 +1,377 @@ +# vim:ft=conf + +# These examples require Nerd Fonts or a compatible font to be used. +# See https://www.nerdfonts.com for more information. + +# default values from lf (with matching order) +# ln l # LINK +# or l # ORPHAN +# tw t # STICKY_OTHER_WRITABLE +# ow d # OTHER_WRITABLE +# st t # STICKY +# di d # DIR +# pi p # FIFO +# so s # SOCK +# bd b # BLK +# cd c # CHR +# su u # SETUID +# sg g # SETGID +# ex x # EXEC +# fi - # FILE + +# file types (with matching order) +ln  # LINK +or  # ORPHAN +tw t # STICKY_OTHER_WRITABLE +ow  # OTHER_WRITABLE +st t # STICKY +di  # DIR +pi p # FIFO +so s # SOCK +bd b # BLK +cd c # CHR +su u # SETUID +sg g # SETGID +ex  # EXEC +fi  # FILE + +# disable some default filetype icons, let them choose icon by filename +# ln  # LINK +# or  # ORPHAN +# tw # STICKY_OTHER_WRITABLE +# ow # OTHER_WRITABLE +# st # STICKY +# di  # DIR +# pi # FIFO +# so # SOCK +# bd # BLK +# cd # CHR +# su # SETUID +# sg # SETGID +# ex # EXEC +# fi  # FILE + +# file extensions (vim-devicons) +*.styl  00;38;2;141;193;73 +*.sass  00;38;2;245;83;133 +*.scss  00;38;2;245;83;133 +*.htm  00;38;2;227;76;38 +*.html  00;38;2;227;76;38 +*.slim  00;38;2;227;76;38 +*.haml  00;38;2;234;234;225 +*.ejs  00;38;2;203;203;65 +*.css  00;38;2;86;61;124 +*.less  00;38;2;86;61;124 +*.md  00;38;2;81;154;186 +*.mdx  00;38;2;81;154;186 +*.markdown  00;38;2;81;154;186 +*.rmd  00;38;2;81;154;186 +*.json  00;38;2;149;157;165 +*.webmanifest  00;38;2;241;224;90 +*.js  00;38;2;203;203;65 +*.mjs  00;38;2;241;224;90 +*.jsx  00;38;2;81;154;186 +*.rb  00;38;2;112;21;22 +*.gemspec  00;38;2;112;21;22 +*.rake  00;38;2;112;21;22 +*.php  00;38;2;160;116;196 +*.py  00;38;2;81;154;186 +*.pyc  00;38;2;81;154;186 +*.pyo  00;38;2;81;154;186 +*.pyd  00;38;2;81;154;186 +*.coffee  00;38;2;203;203;65 +*.mustache  00;38;2;227;121;51 +*.hbs  00;38;2;240;119;43 +*.conf  00;38;2;109;128;134 +*.ini  00;38;2;109;128;134 +*.yml  00;38;2;149;157;165 +*.yaml  00;38;2;149;157;165 +*.toml  00;38;2;109;128;134 +*.bat  00;38;2;193;241;46 +*.mk  00;38;2;109;128;134 +*.jpg  00;38;2;160;116;196 +*.jpeg  00;38;2;160;116;196 +*.bmp  00;38;2;160;116;196 +*.png  00;38;2;160;116;196 +*.webp  00;38;2;160;116;196 +*.gif  00;38;2;160;116;196 +*.ico  00;38;2;203;203;65 +*.twig  00;38;2;141;193;73 +*.cpp  00;38;2;81;154;186 +*.c++  00;38;2;89;158;255 +*.cxx  00;38;2;81;154;186 +*.cc  00;38;2;81;154;186 +*.cp  00;38;2;81;154;186 +*.c  00;38;2;89;158;255 +*.cs 󰌛 00;38;2;89;103;6 +*.h  00;38;2;160;116;196 +*.hh  00;38;2;160;116;196 +*.hpp  00;38;2;160;116;196 +*.hxx  00;38;2;160;116;196 +*.hs  00;38;2;160;116;196 +*.lhs  00;38;2;160;116;196 +*.nix  00;38;2;126;186;228 +*.lua  00;38;2;81;160;207 +*.java  00;38;2;204;62;68 +*.sh  00;38;2;137;224;81 +*.fish  00;38;2;137;224;81 +*.bash  00;38;2;137;224;81 +*.zsh  00;38;2;137;224;81 +*.ksh  00;38;2;137;224;81 +*.csh  00;38;2;137;224;81 +*.awk  00;38;2;137;224;81 +*.ps1  00;38;2;137;224;81 +*.ml λ 00;38;2;227;121;51 +*.mli λ 00;38;2;227;121;51 +*.diff  00;38;2;65;83;91 +*.db  00;38;2;218;216;216 +*.sql  00;38;2;218;216;216 +*.dump  00;38;2;218;216;216 +*.clj  00;38;2;141;193;73 +*.cljc  00;38;2;141;193;73 +*.cljs  00;38;2;81;154;186 +*.edn  00;38;2;81;154;186 +*.scala  00;38;2;204;62;68 +*.go  00;38;2;81;154;186 +*.dart  00;38;2;3;88;156 +*.xul  00;38;2;227;121;51 +*.sln  00;38;2;133;76;199 +*.suo  00;38;2;133;76;199 +*.pl  00;38;2;81;154;186 +*.pm  00;38;2;81;154;186 +*.t  00;38;2;81;154;186 +*.rss  00;38;2;251;157;59 +'*.f#'  00;38;2;81;154;186 +*.fsscript  00;38;2;81;154;186 +*.fsx  00;38;2;81;154;186 +*.fs  00;38;2;81;154;186 +*.fsi  00;38;2;81;154;186 +*.rs  00;38;2;222;165;132 +*.rlib  00;38;2;222;165;132 +*.d  00;38;2;66;120;25 +*.erl  00;38;2;184;57;152 +*.hrl  00;38;2;184;57;152 +*.ex  00;38;2;160;116;196 +*.exs  00;38;2;160;116;196 +*.eex  00;38;2;160;116;196 +*.leex  00;38;2;160;116;196 +*.heex  00;38;2;160;116;196 +*.vim  00;38;2;1;152;51 +*.ai  00;38;2;203;203;65 +*.psd  00;38;2;81;154;186 +*.psb  00;38;2;81;154;186 +*.ts  00;38;2;81;154;186 +*.tsx  00;38;2;81;154;186 +*.jl  00;38;2;162;112;186 +*.pp  00;38;2;255;166;26 +*.vue  00;38;2;141;193;73 +*.elm  00;38;2;81;154;186 +*.swift  00;38;2;227;121;51 +*.xcplayground  00;38;2;227;121;51 +*.tex 󰙩 00;38;2;61;97;23 +*.r 󰟔 00;38;2;53;138;91 +*.rproj 󰗆 00;38;2;53;138;91 +*.sol 󰡪 00;38;2;81;154;186 +*.pem  00;38;2;205;155;62 + +# file names (vim-devicons) (case-insensitive not supported in lf) +*gruntfile.coffee  00;38;2;227;121;51 +*gruntfile.js  00;38;2;227;121;51 +*gruntfile.ls  00;38;2;227;121;51 +*gulpfile.coffee  00;38;2;204;62;68 +*gulpfile.js  00;38;2;204;62;68 +*gulpfile.ls  00;38;2;204;62;68 +*mix.lock  00;38;2;160;116;196 +*dropbox  00;38;2;0;97;254 +*.ds_store  00;38;2;77;90;94 +*.gitconfig  00;38;2;65;83;91 +*.gitignore  00;38;2;65;83;91 +*.gitattributes  00;38;2;65;83;91 +*.gitlab-ci.yml  00;38;2;226;67;41 +*.bashrc  00;38;2;137;224;81 +*.zshrc  00;38;2;137;224;81 +*.zshenv  00;38;2;137;224;81 +*.zprofile  00;38;2;137;224;81 +*.vimrc  00;38;2;1;152;51 +*.gvimrc  00;38;2;1;152;51 +*_vimrc  00;38;2;1;152;51 +*_gvimrc  00;38;2;1;152;51 +*.bashprofile  00;38;2;137;224;81 +*favicon.ico  00;38;2;203;203;65 +*license  00;38;2;203;203;65 +*node_modules  00;38;2;232;39;75 +*react.jsx  00;38;2;81;154;186 +*procfile  00;38;2;160;116;196 +*dockerfile  00;38;2;81;154;186 +*docker-compose.yml  00;38;2;81;154;186 +*docker-compose.yaml  00;38;2;81;154;186 +*compose.yml  00;38;2;81;154;186 +*compose.yaml  00;38;2;81;154;186 +*rakefile  00;38;2;112;21;22 +*config.ru  00;38;2;112;21;22 +*gemfile  00;38;2;112;21;22 +*makefile  00;38;2;109;128;134 +*cmakelists.txt  00;38;2;109;128;134 +*robots.txt 󰚩 00;38;2;109;128;134 + +# file names (case-sensitive adaptations) +*Gruntfile.coffee  00;38;2;227;121;51 +*Gruntfile.js  00;38;2;227;121;51 +*Gruntfile.ls  00;38;2;227;121;51 +*Gulpfile.coffee  00;38;2;204;62;68 +*Gulpfile.js  00;38;2;204;62;68 +*Gulpfile.ls  00;38;2;204;62;68 +*Dropbox  00;38;2;0;97;254 +*.DS_Store  00;38;2;193;241;46 +*LICENSE  00;38;2;203;203;65 +*React.jsx  00;38;2;81;154;186 +*Procfile  00;38;2;160;116;196 +*Dockerfile  00;38;2;81;154;186 +*Docker-compose.yml  00;38;2;81;154;186 +*Docker-compose.yaml  00;38;2;81;154;186 +*Rakefile  00;38;2;112;21;22 +*Gemfile  00;38;2;112;21;22 +*Makefile  00;38;2;109;128;134 +*CMakeLists.txt  00;38;2;109;128;134 + +# file patterns (vim-devicons) (patterns not supported in lf) +# .*jquery.*\.js$  00;38;2;227;117;187 +# .*angular.*\.js$  00;38;2;226;50;55 +# .*backbone.*\.js$  00;38;2;0;113;181 +# .*require.*\.js$  00;38;2;244;74;65 +# .*materialize.*\.js$  00;38;2;238;110;115 +# .*materialize.*\.css$  00;38;2;238;110;115 +# .*mootools.*\.js$  00;38;2;236;236;236 +# .*vimrc.*  00;38;2;1;152;51 +# Vagrantfile$  00;38;2;21;99;255 + +# file patterns (file name adaptations) +*jquery.min.js  00;38;2;227;117;187 +*angular.min.js  00;38;2;226;50;55 +*backbone.min.js  00;38;2;0;113;181 +*require.min.js  00;38;2;244;74;65 +*materialize.min.js  00;38;2;238;110;115 +*materialize.min.css  00;38;2;238;110;115 +*mootools.min.js  00;38;2;236;236;236 +*vimrc  00;38;2;1;152;51 +Vagrantfile  00;38;2;21;99;255 + +# archives or compressed (extensions from dircolors defaults) +*.tar  +*.tgz  +*.arc  +*.arj  +*.taz  +*.lha  +*.lz4  +*.lzh  +*.lzma  +*.tlz  +*.txz  +*.tzo  +*.t7z  +*.zip  +*.z  +*.dz  +*.gz  +*.lrz  +*.lz  +*.lzo  +*.xz  +*.zst  +*.tzst  +*.bz2  +*.bz  +*.tbz  +*.tbz2  +*.tz  +*.deb  +*.rpm  +*.jar  +*.war  +*.ear  +*.sar  +*.rar  +*.alz  +*.ace  +*.zoo  +*.cpio  +*.7z  +*.rz  +*.cab  +*.wim  +*.swm  +*.dwm  +*.esd  + +# image formats (extensions from dircolors defaults) +*.jpg  +*.jpeg  +*.mjpg  +*.mjpeg  +*.gif  +*.bmp  +*.pbm  +*.pgm  +*.ppm  +*.tga  +*.xbm  +*.xpm  +*.tif  +*.tiff  +*.png  +*.svg  +*.svgz  +*.mng  +*.pcx  +*.mov  +*.mpg  +*.mpeg  +*.m2v  +*.mkv  +*.webm  +*.ogm  +*.mp4  +*.m4v  +*.mp4v  +*.vob  +*.qt  +*.nuv  +*.wmv  +*.asf  +*.rm  +*.rmvb  +*.flc  +*.avi  +*.fli  +*.flv  +*.gl  +*.dl  +*.xcf  +*.xwd  +*.yuv  +*.cgm  +*.emf  +*.ogv  +*.ogx  + +# audio formats (extensions from dircolors defaults) +*.aac  +*.au  +*.flac  +*.m4a  +*.mid  +*.midi  +*.mka  +*.mp3  +*.mpc  +*.ogg  +*.ra  +*.wav  +*.oga  +*.opus  +*.spx  +*.xspf  + +# other formats +*.pdf  00;38;2;179;11;0 diff --git a/lf/lfrc b/lf/lfrc index 0fc1ed9..eb046f5 100644 --- a/lf/lfrc +++ b/lf/lfrc @@ -1,29 +1,112 @@ -# Change working dir in shell to last dir in lf on exit (adapted from ranger). -# -# You need to either copy the content of this file to your shell rc file -# (e.g. ~/.bashrc) or source this file directly: -# -# LFCD="/path/to/lfcd.sh" -# if [ -f "$LFCD" ]; then -# source "$LFCD" -# fi -# -# You may also like to assign a key to this command: -# -# bind '"\C-o":"lfcd\C-m"' # bash -# bindkey -s '^o' 'lfcd\n' # zsh -# +# interpreter for shell commands +set shell sh + +# set '-eu' options for shell commands +# These options are used to have safer shell commands. Option '-e' is used to +# exit on error and option '-u' is used to give error for unset variables. +# Option '-f' disables pathname expansion which can be useful when $f, $fs, and +# $fx variables contain names with '*' or '?' characters. However, this option +# is used selectively within individual commands as it can be limiting at +# times. +set shellopts '-eu' + +# set internal field separator (IFS) to "\n" for shell commands +# This is useful to automatically split file names in $fs and $fx properly +# since default file separator used in these variables (i.e. 'filesep' option) +# is newline. You need to consider the values of these options and create your +# commands accordingly. +set ifs "\n" + +# leave some space at the top and the bottom of the screen +set scrolloff 10 + +# Use the `dim` attribute instead of underline for the cursor in the preview pane +set cursorpreviewfmt "\033[7;2m" + +# use enter for shell commands +map shell + +# show the result of execution of previous commands +map ` !true + +# execute current file (must be executable) +map x $$f +map X !$f + +# dedicated keys for file opener actions +map o &mimeopen $f +map O $mimeopen --ask $f + +# define a custom 'open' command +# This command is called when current file is not a directory. You may want to +# use either file extensions and/or mime types here. Below uses an editor for +# text files and a file opener for the rest. +cmd open &{{ + case $(file --mime-type -Lb $f) in + text/*) lf -remote "send $id \$$EDITOR \$fx";; + *) for f in $fx; do $OPENER $f > /dev/null 2> /dev/null & done;; + esac +}} + +# mkdir command. See wiki if you want it to select created dir +map a :push %mkdir + +# define a custom 'rename' command without prompt for overwrite +# cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1 +# map r push :rename + +# make sure trash folder exists +# %mkdir -p ~/.trash + +# move current file or selected files to trash folder +# (also see 'man mv' for backup/overwrite options) +cmd trash %set -f; mv $fx ~/.trash + +# define a custom 'delete' command +# cmd delete ${{ +# set -f +# printf "$fx\n" +# printf "delete?[y/n]" +# read ans +# [ "$ans" = "y" ] && rm -rf $fx +# }} + +# use '' key for either 'trash' or 'delete' command +# map trash +# map delete + +# extract the current file with the right command +# (xkcd link: https://xkcd.com/1168/) +cmd extract ${{ + set -f + case $f in + *.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;; + *.tar.gz|*.tgz) tar xzvf $f;; + *.tar.xz|*.txz) tar xJvf $f;; + *.zip) unzip $f;; + *.rar) unrar x $f;; + *.7z) 7z x $f;; + esac +}} + +# compress current file or selected files with tar and gunzip +cmd tar ${{ + set -f + mkdir $1 + cp -r $fx $1 + tar czf $1.tar.gz $1 + rm -rf $1 +}} + +# compress current file or selected files with zip +cmd zip ${{ + set -f + mkdir $1 + cp -r $fx $1 + zip -r $1.zip $1 + rm -rf $1 +}} + +set previewer ~/etc/lf/previewer +set cleaner ~/etc/lf/cleaner -lfcd(){ - tmp="$(mktemp)" - lf -last-dir-path="$tmp" "$@" - if [ -f "$tmp" ]; then - dir="$(cat "$tmp")" - rm -f "$tmp" - if [ -d "$dir" ]; then - if [ "$dir" != "$(pwd)" ]; then - cd "$dir" - fi - fi - fi -} diff --git a/lf/lfrc.cmd b/lf/lfrc.cmd new file mode 100644 index 0000000..c1bfd15 --- /dev/null +++ b/lf/lfrc.cmd @@ -0,0 +1,32 @@ +# interpreter for shell commands +set shell cmd + +# Shell commands with multiline definitions and/or positional arguments and/or +# quotes do not work in Windows. For anything but the simplest shell commands, +# it is recommended to create separate script files and simply call them here +# in commands or mappings. + +# change the editor used in default editor keybinding +# There is no builtin terminal editor installed in Windows. The default editor +# mapping uses 'notepad' which launches in a separate GUI window. You may +# instead install a terminal editor of your choice and replace the default +# editor keybinding accordingly. +map e $vim %f% + +# change the pager used in default pager keybinding +# The standard pager used in Windows is 'more' which is not a very capable +# pager. You may instead install a pager of your choice and replace the default +# pager keybinding accordingly. +map i $less %f% + +# change the shell used in default shell keybinding +map w $powershell + +# change 'doc' command to use a different pager +cmd doc $lf -doc | less + +# leave some space at the top and the bottom of the screen +set scrolloff 10 + +# use enter for shell commands +map shell diff --git a/lf/lfrc.ps1 b/lf/lfrc.ps1 new file mode 100644 index 0000000..26bbc87 --- /dev/null +++ b/lf/lfrc.ps1 @@ -0,0 +1,39 @@ +# interpreter for shell commands +set shell powershell + +# Shell commands with multiline definitions and/or positional arguments and/or +# quotes do not work in Windows. For anything but the simplest shell commands, +# it is recommended to create separate script files and simply call them here +# in commands or mappings. +# +# Also, the default keybindings are defined using cmd syntax (i.e. '%EDITOR%') +# which does not work with powershell. Therefore, you need to override these +# keybindings with explicit choices accordingly. + +# change the default open command to work in powerShell +cmd open &start $Env:f + +# change the editor used in default editor keybinding +# There is no builtin terminal editor installed in Windows. The default editor +# mapping uses 'notepad' which launches in a separate GUI window. You may +# instead install a terminal editor of your choice and replace the default +# editor keybinding accordingly. +map e $vim $Env:f + +# change the pager used in default pager keybinding +# The standard pager used in Windows is 'more' which is not a very capable +# pager. You may instead install a pager of your choice and replace the default +# pager keybinding accordingly. +map i $less $Env:f + +# change the shell used in default shell keybinding +map w $powershell + +# change 'doc' command to use a different pager +cmd doc $lf -doc | less + +# leave some space at the top and the bottom of the screen +set scrolloff 10 + +# use enter for shell commands +map shell diff --git a/lf/previewer b/lf/previewer new file mode 100755 index 0000000..496ac3e --- /dev/null +++ b/lf/previewer @@ -0,0 +1,25 @@ +#!/bin/sh +draw() { + kitten icat --silent --stdin no --transfer-mode memory --place "${w}x${h}@${x}x${y}" "$1" /dev/tty + exit 1 +} + +file="$1" +w="$2" +h="$3" +x="$4" +y="$5" + +case "$(file -Lb --mime-type "$file")" in + image/*) + draw "$file" + ;; + video/*) + # vidthumb is from here: + # https://raw.githubusercontent.com/duganchen/kitty-pistol-previewer/main/vidthumb + draw "$($ETC/lf/vidthumb "$file")" + ;; +esac + +pistol "$file" + diff --git a/lf/vidthumb b/lf/vidthumb new file mode 100755 index 0000000..878e968 --- /dev/null +++ b/lf/vidthumb @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +if ! [ -f "$1" ]; then + exit 1 +fi + +cache="$HOME/.cache/vidthumb" +index="$cache/index.json" +movie="$(realpath "$1")" + +mkdir -p "$cache" + +if [ -f "$index" ]; then + thumbnail="$(jq -r ". \"$movie\"" <"$index")" + if [[ "$thumbnail" != "null" ]]; then + if [[ ! -f "$cache/$thumbnail" ]]; then + exit 1 + fi + echo "$cache/$thumbnail" + exit 0 + fi +fi + +thumbnail="$(uuidgen).jpg" + +if ! ffmpegthumbnailer -i "$movie" -o "$cache/$thumbnail" -s 0 2>/dev/null; then + exit 1 +fi + +if [[ ! -f "$index" ]]; then + echo "{\"$movie\": \"$thumbnail\"}" >"$index" +fi +json="$(jq -r --arg "$movie" "$thumbnail" ". + {\"$movie\": \"$thumbnail\"}" <"$index")" +echo "$json" >"$index" + +echo "$cache/$thumbnail" + diff --git a/river/init b/river/init index 0ed43fb..71994fe 100755 --- a/river/init +++ b/river/init @@ -218,12 +218,11 @@ if test -z "$RIVER_RELOAD" ; then eval $XPUSH_NOTIFICATION_DAEMON & eval $XOUTPUT_DAEMON & + swaybg -m fill -i $ETC/img/eat-sleep-code-repeat.png & + eval $XBAR & blueman-applet & - eval $XTERMINAL & - eval $XTERMINAL & - eval $XTERMINAL & dbus-update-activation-environment --systemd \ WAYLAND_DISPLAY \ XDG_CURRENT_DESKTOP=river