much shit.

This commit is contained in:
Andrey Parhomenko 2024-07-27 18:59:17 +05:00
parent eeb43b985d
commit eea770d91f
14 changed files with 1214 additions and 34 deletions

View file

@ -10,6 +10,20 @@ no-output() {
$@ &> /dev/null $@ &> /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(){ sctl(){
systemctl $@ systemctl $@
} }
@ -55,8 +69,12 @@ if test "$OS" != "Windows_NT" ; then
PATH="$HOME/exe:$HOME/.local/bin:$PATH" PATH="$HOME/exe:$HOME/.local/bin:$PATH"
fi fi
# COMMON
export LANG="en_US.UTF-8"
# Custom. # Custom.
export KITTY_CONFIG_DIRECTORY="$ETC/kitty"
export OPENER="xdg-open"
export APP="$HOME/app" export APP="$HOME/app"
export BIN="$HOME/bin" export BIN="$HOME/bin"
export LOAD="$HOME/load" export LOAD="$HOME/load"
@ -66,6 +84,7 @@ fi
export DEV="$HOME/dev" export DEV="$HOME/dev"
# CLI. # CLI.
export LESS="--RAW-CONTROL-CHARS --quit-if-one-screen --clear-screen --tilde --chop-long-lines --status-column --rscroll='>'"
export ENV="$HOME/.shrc" export ENV="$HOME/.shrc"
export PROMPT="; " export PROMPT="; "
export PS1="$PROMPT" export PS1="$PROMPT"
@ -105,15 +124,16 @@ fi
# X/Wayland stuff. # X/Wayland stuff.
export XCOMPOSER='river' export XCOMPOSER='river'
export XTERMINAL='wayst' export XTERMINAL='kitty'
export XINSIDE_TERMINAL='kitty'
export XRUNNER='fuzzel' export XRUNNER='fuzzel'
export XDMENU='fuzzel -d' export XDMENU='fuzzel -d'
export XBAR='waybar' export XBAR='waybar'
export XBLUETOOTH_MANAGER='blueman-manager' export XBLUETOOTH_MANAGER='blueman-manager'
export XOUTPUT_DAEMON='kanshi' export XOUTPUT_DAEMON='kanshi'
export XSOUND_CONTROL='pavucontrol' export XSOUND_CONTROL='pavucontrol'
export XFILE_MANAGER="$XTERMINAL -e $CLI_FILE_MANAGER" export XFILE_MANAGER="$XINSIDE_TERMINAL $CLI_FILE_MANAGER"
export XRESOURCE_MONITOR="$XTERMINAL -e htop" export XRESOURCE_MONITOR="$XINSIDE_TERMINAL htop"
export XCALENDAR="$XTERMINAL -e calcurse" export XCALENDAR="$XTERMINAL -e calcurse"
export XPUSH_NOTIFICATION_DAEMON='dunst' export XPUSH_NOTIFICATION_DAEMON='dunst'
export XNOTIFY='dunstify' export XNOTIFY='dunstify'

View file

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

11
kitty/kitty.conf Normal file
View file

@ -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

3
lesskey Normal file
View file

@ -0,0 +1,3 @@
h left-scroll
l right-scroll

3
lf/cleaner Executable file
View file

@ -0,0 +1,3 @@
#!/bin/sh
exec kitty +kitten icat --clear --stdin no --silent --transfer-mode file </dev/null >/dev/tty

174
lf/colors Normal file
View file

@ -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

377
lf/icons Normal file
View file

@ -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 

377
lf/icons_colored Normal file
View file

@ -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

139
lf/lfrc
View file

@ -1,29 +1,112 @@
# Change working dir in shell to last dir in lf on exit (adapted from ranger). # interpreter for shell commands
# set shell sh
# You need to either copy the content of this file to your shell rc file
# (e.g. ~/.bashrc) or source this file directly: # set '-eu' options for shell commands
# # These options are used to have safer shell commands. Option '-e' is used to
# LFCD="/path/to/lfcd.sh" # exit on error and option '-u' is used to give error for unset variables.
# if [ -f "$LFCD" ]; then # Option '-f' disables pathname expansion which can be useful when $f, $fs, and
# source "$LFCD" # $fx variables contain names with '*' or '?' characters. However, this option
# fi # is used selectively within individual commands as it can be limiting at
# # times.
# You may also like to assign a key to this command: set shellopts '-eu'
#
# bind '"\C-o":"lfcd\C-m"' # bash # set internal field separator (IFS) to "\n" for shell commands
# bindkey -s '^o' 'lfcd\n' # zsh # 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 <enter> 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<space>
# define a custom 'rename' command without prompt for overwrite
# cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1
# map r push :rename<space>
# 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 '<delete>' key for either 'trash' or 'delete' command
# map <delete> trash
# map <delete> 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
}

32
lf/lfrc.cmd Normal file
View file

@ -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 <enter> shell

39
lf/lfrc.ps1 Normal file
View file

@ -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 <enter> shell

25
lf/previewer Executable file
View file

@ -0,0 +1,25 @@
#!/bin/sh
draw() {
kitten icat --silent --stdin no --transfer-mode memory --place "${w}x${h}@${x}x${y}" "$1" </dev/null >/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"

37
lf/vidthumb Executable file
View file

@ -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"

View file

@ -218,12 +218,11 @@ if test -z "$RIVER_RELOAD" ; then
eval $XPUSH_NOTIFICATION_DAEMON & eval $XPUSH_NOTIFICATION_DAEMON &
eval $XOUTPUT_DAEMON & eval $XOUTPUT_DAEMON &
swaybg -m fill -i $ETC/img/eat-sleep-code-repeat.png &
eval $XBAR & eval $XBAR &
blueman-applet & blueman-applet &
eval $XTERMINAL &
eval $XTERMINAL &
eval $XTERMINAL &
dbus-update-activation-environment --systemd \ dbus-update-activation-environment --systemd \
WAYLAND_DISPLAY \ WAYLAND_DISPLAY \
XDG_CURRENT_DESKTOP=river XDG_CURRENT_DESKTOP=river