From cca4385b184dc466d797801493a0c233109e81db Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Sun, 12 Feb 2023 13:40:46 +0100 Subject: [PATCH] feat: initial commit --- lfrc | 139 +++++++++++++++++++++++++++++++++++++++++++++++++ server-init.sh | 9 ++++ 2 files changed, 148 insertions(+) create mode 100644 lfrc create mode 100644 server-init.sh diff --git a/lfrc b/lfrc new file mode 100644 index 0000000..3677b45 --- /dev/null +++ b/lfrc @@ -0,0 +1,139 @@ +# 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 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 $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 + +# 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 '' key for either 'trash' or 'delete' command +map trash +# map 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 +}} diff --git a/server-init.sh b/server-init.sh new file mode 100644 index 0000000..fc96e4b --- /dev/null +++ b/server-init.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +cd ~ +mkdir -p workspace +cd workspace +wget https://github.com/gokcehan/lf/releases/download/r28/lf-linux-amd64.tar.gz -O lf.tar.gz +tar -xzf lf.tar.gz +sudo mv lf /usr/bin/_lf +mkdir -p ~/.config