regular savepoint

This commit is contained in:
Nuno Sempere 2023-05-29 17:49:30 +00:00
parent 75ac10098e
commit 052364fc04
2 changed files with 141 additions and 1 deletions

140
.snippets/lf Normal file
View File

@ -0,0 +1,140 @@
# 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 enter for shell commands
map <enter> shell
# 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
map o open $f
## toggle hidden files
map . set hidden!
# 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 ${{
## test -L $f && f=$(readlink -f $f)
## case $(file --mime-type $f -b) in
## text/*) $EDITOR $fx;;
## *) for f in $fx; do setsid $OPENER $f > /dev/null 2> /dev/null & done;;
## esac
test -L $f && f=$(readlink -f $f)
case $f in
# *.css) vim $fx;;
# *.hs) vim $fx;;
# *.js) vim $fx;;
# *.json) vim $fx;;
# *.md) vim $fx;;
*.pdf) zathura --mode fullscreen $fx & > /dev/null 2>&1 ;;
# *.sh) vim $fx;;
# *.ts) vim $fx;;
# *.txt) vim $fx;; ## Open directly in the same terminal; no & at the end.
# *.yml) vim $fx;;
# *rc) vim $fx;;
*.R) rstudio $fx & > /dev/null 2>&1 ;;
*.png) DISPLAY=:0 feh --borderless --hide-pointer $fx & > /dev/null 2>&1 ;;
*.jpg) DISPLAY=:0 feh --borderless --hide-pointer $fx & > /dev/null 2>&1 ;;
*.html) rose "file://$fx" > /dev/null 2>&1 &;;
# *) xdg-open $fx > /dev/null 2>&1 &;;
*) nvim $fx;;
# *) vim -X $fx;;
# ^ temporary solution for Xmonad
#*) case $(file --mime-type $f -b) in
# text/*) vim $fx ;;
# *) xdg-open $fx;;
## *) for f in $fx; do setsid $OPENER $f > /dev/null 2> /dev/null & done;;
## esac;;
esac
## /usr/bin/xdg-open $f
}}
# 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
# cmd trash echo "too easy to press accidentally"
# 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
# Map numpad to arrows
# map i up
# map , down
# map j updir
# map l open
# map k down
# 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
}}

View File

@ -19,7 +19,7 @@ So each side is skilled at articulating its opponent's weakeness, but is not as
The root of the problem is that both sides of this debate are in the wrong. Each side contains an [inherent rhetorical contradiction](https://en.wikipedia.org/wiki/Aporia#Definitions): they advocate for an imperfect mechanism that doesn't always prioritize human flourishing, while not realizing the degree to which it will not. This is my diagnosis for the current political stalemate. The root of the problem is that both sides of this debate are in the wrong. Each side contains an [inherent rhetorical contradiction](https://en.wikipedia.org/wiki/Aporia#Definitions): they advocate for an imperfect mechanism that doesn't always prioritize human flourishing, while not realizing the degree to which it will not. This is my diagnosis for the current political stalemate.
![Three arrows pointing in roughly the same direction, but with small differences. Two arrows represent two ideologies, another represents human flourishing. Although the human flourishing arrows and the ideology arrows seem close, they eventually start to diverge.](https://i.imgur.com/tlCqq4q.png) ![Three arrows pointing in roughly the same direction, but with small differences. Two arrows represent two ideologies, another represents human flourishing. Although the human flourishing arrows and the ideology arrows seem close, they eventually start to diverge.](https://images.nunosempere.com/blog/2022/12/05/goodhart-politics/diagram-1.png)
### Proposed solutions ### Proposed solutions