aboutsummaryrefslogtreecommitdiffstats
path: root/home-manger
diff options
context:
space:
mode:
Diffstat (limited to 'home-manger')
-rw-r--r--home-manger/lf/cmds/archive.sh40
-rw-r--r--home-manger/lf/cmds/broot_jump.sh19
-rw-r--r--home-manger/lf/cmds/chmod.sh17
-rw-r--r--home-manger/lf/cmds/clear_trash.sh10
-rw-r--r--home-manger/lf/cmds/dl_file.sh36
-rw-r--r--home-manger/lf/cmds/dragon.sh11
-rw-r--r--home-manger/lf/cmds/dragon_individual.sh10
-rw-r--r--home-manger/lf/cmds/dragon_stay.sh11
-rw-r--r--home-manger/lf/cmds/fzf_jump.sh17
-rw-r--r--home-manger/lf/cmds/help.sh10
-rw-r--r--home-manger/lf/cmds/mk_dir.sh12
-rw-r--r--home-manger/lf/cmds/mk_file.sh11
-rw-r--r--home-manger/lf/cmds/mk_ln.sh43
-rw-r--r--home-manger/lf/cmds/mk_scr.sh29
-rw-r--r--home-manger/lf/cmds/open.sh16
-rw-r--r--home-manger/lf/cmds/open_config.sh10
-rw-r--r--home-manger/lf/cmds/restore_trash.sh10
-rw-r--r--home-manger/lf/cmds/set_wall_paper.sh15
-rw-r--r--home-manger/lf/cmds/stripspace.sh10
-rw-r--r--home-manger/lf/cmds/sudo_mk_file.sh13
-rw-r--r--home-manger/lf/cmds/trash.sh27
-rw-r--r--home-manger/lf/cmds/unarchive.sh22
-rw-r--r--home-manger/lf/colors196
-rw-r--r--home-manger/lf/default.nix200
-rw-r--r--home-manger/lf/icons357
25 files changed, 1152 insertions, 0 deletions
diff --git a/home-manger/lf/cmds/archive.sh b/home-manger/lf/cmds/archive.sh
new file mode 100644
index 00000000..48544365
--- /dev/null
+++ b/home-manger/lf/cmds/archive.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/home/dt/.local/lib/shell/lib
+. ~/.local/lib/shell/lib
+
+
+# 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 -f
+
+fx="$*"
+
+archivers=$(mktmp)
+echo "tar+zip tar+xz 7z zip" > $archivers;
+
+readp "File Name: " name
+
+
+case $(awk '{for (i=1; i<=NF; i++) print $i}' $archivers | fzf) in
+ "tar+zip")
+ tar -czf "$name".tar.gz "$name"
+ ;;
+ "tar+xz")
+ tar -cf "$name".tar $fx
+ xz -z -9 -e -T0 "$name".tar
+ ;;
+ "7z")
+ 7z a "$name".7z $fx
+ ;;
+ "zip")
+ zip -r "$name".zip $fx
+ ;;
+esac
+
+
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/broot_jump.sh b/home-manger/lf/cmds/broot_jump.sh
new file mode 100644
index 00000000..188c9508
--- /dev/null
+++ b/home-manger/lf/cmds/broot_jump.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+f=$(mktemp)
+res="$(broot --outcmd $f && cat $f | sed 's/cd //')"
+rm -f "$f"
+if [ -f "$res" ]; then
+ cmd="select"
+elif [ -d "$res" ]; then
+ cmd="cd"
+fi
+lf -remote "send $id $cmd \"$res\""
+
+
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/chmod.sh b/home-manger/lf/cmds/chmod.sh
new file mode 100644
index 00000000..f6a87336
--- /dev/null
+++ b/home-manger/lf/cmds/chmod.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+
+readp "Mode Bits: " ans
+
+for file in $fx
+do
+ chmod "$ans" "$file"
+done
+
+lf -remote 'send reload'
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/clear_trash.sh b/home-manger/lf/cmds/clear_trash.sh
new file mode 100644
index 00000000..c02321f2
--- /dev/null
+++ b/home-manger/lf/cmds/clear_trash.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+
+trash-empty
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/dl_file.sh b/home-manger/lf/cmds/dl_file.sh
new file mode 100644
index 00000000..9cb9023c
--- /dev/null
+++ b/home-manger/lf/cmds/dl_file.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+# Provides the ability to download a file by dropping it into a window
+
+url=$(dragon-drop -t -x)
+
+if [ -n "$url" ]; then
+ printf "File Name: "
+ name=""
+ while [ -z $name ] || [ -e $name ]
+ do
+ read -r name
+ if [ -e "$name" ]; then
+ printf "File already exists, overwrite (y|n): "
+ read -r ans
+
+ if [ "$ans" = "y" ]; then
+ break
+ else
+ printf "File Name: "
+ fi
+ fi
+ done
+
+ # Download the file with curl
+ [ -n "$name" ] && curl -o "$name" "$url" || exit 1
+else
+ exit 1
+fi
+
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/dragon.sh b/home-manger/lf/cmds/dragon.sh
new file mode 100644
index 00000000..36e94706
--- /dev/null
+++ b/home-manger/lf/cmds/dragon.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+dragon-drop -a -x "$fx"
+
+
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/dragon_individual.sh b/home-manger/lf/cmds/dragon_individual.sh
new file mode 100644
index 00000000..abcadb13
--- /dev/null
+++ b/home-manger/lf/cmds/dragon_individual.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+dragon-drop "$fx"
+
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/dragon_stay.sh b/home-manger/lf/cmds/dragon_stay.sh
new file mode 100644
index 00000000..60195d09
--- /dev/null
+++ b/home-manger/lf/cmds/dragon_stay.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+dragon-drop -a "$fx"
+
+
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/fzf_jump.sh b/home-manger/lf/cmds/fzf_jump.sh
new file mode 100644
index 00000000..688efdb9
--- /dev/null
+++ b/home-manger/lf/cmds/fzf_jump.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+res="$(find . -maxdepth 3 | fzf --reverse --header='Jump to location')"
+if [ -f "$res" ]; then
+ cmd="select"
+elif [ -d "$res" ]; then
+ cmd="cd"
+fi
+lf -remote "send $id $cmd \"$res\""
+
+
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/help.sh b/home-manger/lf/cmds/help.sh
new file mode 100644
index 00000000..8fedd0ea
--- /dev/null
+++ b/home-manger/lf/cmds/help.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+
+cat ~/.config/lf/lfrc
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/mk_dir.sh b/home-manger/lf/cmds/mk_dir.sh
new file mode 100644
index 00000000..bfa0627d
--- /dev/null
+++ b/home-manger/lf/cmds/mk_dir.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+
+readp "Directory Name: " ans
+mkdir $ans
+
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/mk_file.sh b/home-manger/lf/cmds/mk_file.sh
new file mode 100644
index 00000000..044016a6
--- /dev/null
+++ b/home-manger/lf/cmds/mk_file.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+
+readp "File Name: " name
+$EDITOR "$name"
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/mk_ln.sh b/home-manger/lf/cmds/mk_ln.sh
new file mode 100644
index 00000000..71a70a36
--- /dev/null
+++ b/home-manger/lf/cmds/mk_ln.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+while IFS= read -r i;do
+ set -- "$@" "$i"
+done < "$(tmp "cat ~/.local/share/lf/files")"
+
+mode="$1"
+shift
+
+if [ "$#" -lt 1 ]; then
+ msg "no files to link"
+ exit 0
+fi
+
+
+case "$mode" in
+ copy)
+ while [ "$#" -gt 0 ]; do
+ file=$1
+ ans="$(basename "$file")"
+
+ while ls -a "$(pwd)" | grep --word-regexp "$ans" > /dev/null;do
+ printf "\"%s\" already exists, new name for link: " "$ans"
+ read -r ans
+ done
+
+ ln -s "$file" "$(pwd)/$ans"
+
+
+ shift
+ done
+ ;;
+esac
+rm ~/.local/share/lf/files
+# lf -remote "send clear"
+
+
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/mk_scr.sh b/home-manger/lf/cmds/mk_scr.sh
new file mode 100644
index 00000000..b6c17458
--- /dev/null
+++ b/home-manger/lf/cmds/mk_scr.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+star=$(mktmp)
+cat << EOF > $star
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+
+
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
+EOF
+
+readp "Script Name: " script_name
+scr="$(pwd)"/"$script_name"
+
+[ -e $scr ] && die "$script_name exitst, exiting.."
+
+cat "$star" > $scr
+chmod +x $scr
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
+
+$VISUAL $scr
diff --git a/home-manger/lf/cmds/open.sh b/home-manger/lf/cmds/open.sh
new file mode 100644
index 00000000..8376be21
--- /dev/null
+++ b/home-manger/lf/cmds/open.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+
+case $(file --mime-type "$f" -bL) in
+ text/*|application/json) $EDITOR "$f";;
+ image/*) $IVIEWER "$f";;
+ *) xdg-open "$f" ;;
+esac
+
+
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/open_config.sh b/home-manger/lf/cmds/open_config.sh
new file mode 100644
index 00000000..93c174d7
--- /dev/null
+++ b/home-manger/lf/cmds/open_config.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+$EDITOR "$(bookmenu -b ~/.config/bookmenu/configs -f fzf -o)"
+
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/restore_trash.sh b/home-manger/lf/cmds/restore_trash.sh
new file mode 100644
index 00000000..432e9e9b
--- /dev/null
+++ b/home-manger/lf/cmds/restore_trash.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+
+trash-restore
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/set_wall_paper.sh b/home-manger/lf/cmds/set_wall_paper.sh
new file mode 100644
index 00000000..4599de2a
--- /dev/null
+++ b/home-manger/lf/cmds/set_wall_paper.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+
+die "No yet implemented"
+#sed -i "s,export AWMWALLPAPER='.*',export AWMWALLPAPER='${f}'," ${ZDOTDIR}/.zshenv
+#swaybg -i "$f" &
+#feh --bg-max --no-fehbg "$f"
+
+
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/stripspace.sh b/home-manger/lf/cmds/stripspace.sh
new file mode 100644
index 00000000..c7f68767
--- /dev/null
+++ b/home-manger/lf/cmds/stripspace.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+
+stripspace "$f"
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/sudo_mk_file.sh b/home-manger/lf/cmds/sudo_mk_file.sh
new file mode 100644
index 00000000..1f06a92f
--- /dev/null
+++ b/home-manger/lf/cmds/sudo_mk_file.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+
+readp "File Name: " ans
+sudo $EDITOR "$ans"
+
+
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/trash.sh b/home-manger/lf/cmds/trash.sh
new file mode 100644
index 00000000..4598b4fd
--- /dev/null
+++ b/home-manger/lf/cmds/trash.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+files=$(printf "$fx" | tr '\n' ';')
+
+while [ "$files" ]; do
+ # extract the substring from start of string up to delimiter.
+ # this is the first "element" of the string.
+ file=${files%%;*}
+
+ trash-put "$(basename "$file")"
+ # if there's only one element left, set `files` to an empty string.
+ # this causes us to exit this `while` loop.
+ # else, we delete the first "element" of the string from files, and move onto the next.
+ if [ "$files" = "$file" ]; then
+ files=''
+ else
+ files="${files#*;}"
+ fi
+done
+
+
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/cmds/unarchive.sh b/home-manger/lf/cmds/unarchive.sh
new file mode 100644
index 00000000..47a713fa
--- /dev/null
+++ b/home-manger/lf/cmds/unarchive.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+. ~/.local/lib/shell/lib
+
+
+# extract the current file with the right command
+# (xkcd link: https://xkcd.com/1168/)
+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;;
+ *) warning "Unsupported format" ;;
+esac
+
+
+
+if [ -d /tmp/LIB_FILE_TEMP_DIR/ ];then rm -r /tmp/LIB_FILE_TEMP_DIR/; fi
diff --git a/home-manger/lf/colors b/home-manger/lf/colors
new file mode 100644
index 00000000..c4b6417b
--- /dev/null
+++ b/home-manger/lf/colors
@@ -0,0 +1,196 @@
+# 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;33 # LINK
+#ln 01;34 # LINK
+or 01;35;46 # ORPHAN
+tw 35 # STICKY_OTHER_WRITABLE
+ow 35 # OTHER_WRITABLE
+st 01;36 # STICKY
+di 01;36 # 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;31;44 # EXEC
+fi 00 # FILE
+
+# links
+# ~/.librewolf 01;34
+~/.cups 01;34
+~/.mozilla 01;34
+#~/.pki 01;34
+~/.ssh 01;34
+#~/.lesskey 01;34
+#~/.pulse-cookie 01;34
+
+~/.steampid 01;34
+~/.steam 01;34
+~/.steampath 01;34
+
+# nix
+~/.nix-profile 01;34
+~/.nix-defexpr 01;34
+
+# can now be removed
+~/.indentconfig.yaml 01;34
+
+# 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/home-manger/lf/default.nix b/home-manger/lf/default.nix
new file mode 100644
index 00000000..fd8c4b39
--- /dev/null
+++ b/home-manger/lf/default.nix
@@ -0,0 +1,200 @@
+{
+ config,
+ pkgs,
+ ...
+}: let
+ shell = file:
+ "\${{" + builtins.readFile "${file}" + "}}"; # closes the lf tui
+ pipe = file:
+ "%{{" + builtins.readFile "${file}" + "}}"; # runs the command in the ui,term bar
+ async = file:
+ "&{{" + builtins.readFile "${file}" + "}}"; # runs the command in the background
+ wait = file:
+ "!{{" + builtins.readFile "${file}" + "}}"; # adds a prompt after the command has run
+in {
+ home-manager.xdg.configFile."lf/icons" = {
+ target = "lf/icons";
+ source = "./icons";
+ };
+ home-manager.xdg.configFile."lf/colors" = {
+ target = "lf/colors";
+ source = "./colors";
+ };
+
+ home-manager.programs.lf = {
+ enable = true;
+
+ commands = {
+ help = shell "./cmds/help.sh";
+ open = shell "./cmds/open.sh";
+ mk_dir = pipe "./cmds/mk_dir.sh";
+ mk_scr = shell "./cmds/mk_scr.sh";
+ mk_file = shell "./cmds/mk_file.sh";
+ chmod = pipe "./cmds/chmod.sh";
+ mk_ln = shell "./cmds/mk_ln.sh"; # TODO could be pipe, right?
+ sudo_mk_file = shell "./cmds/sudo_mk_file.sh";
+ set_wall_paper = pipe "./cmds/set_wall_paper.sh";
+ fzf_jump = shell "./cmds/fzf_jump.sh";
+ broot_jump = shell "./cmds/broot_jump.sh";
+ open_config = shell "./cmds/open_config.sh";
+
+ dragon = pipe "./cmds/dragon.sh";
+ dragon_stay = pipe "./cmds/dragon_stay.sh";
+ dragon_individual = pipe "./cmds/dragon_individual.sh";
+ dl_file = pipe "./cmds/dl_file.sh";
+
+ unarchive = pipe "./cmds/unarchive.sh";
+ archive = pipe "./cmds/archive.sh";
+
+ trash = pipe "./cmds/trash.sh";
+ clear_trash = pipe "./cmds/clear_trash.sh";
+ restore_trash = shell "./cmds/restore_trash.sh";
+
+ stripspace = pipe "./cmds/stripspace.sh";
+ };
+ keybindings = {
+ # Remove some defaults
+ m = null;
+ "'" = null;
+ #" = null; # TODO
+ d = null;
+ c = null;
+ e = null;
+ j = null;
+ k = null;
+ l = null;
+ ";" = null;
+
+ # File Openers
+ ee = "\$\$EDITOR \"$f\"";
+ u = "%\$IVIEWER \"$f\"";
+ cc = "\$sudo -e \"$f\"";
+
+ # Archive Mappings
+ au = "unarchive";
+ a = "archive";
+
+ # Trash Mappings
+ dd = "trash";
+ jc = "clear_trash";
+ jr = "restore_trash";
+
+ # Broot Mapping
+ f = "broot_jump";
+
+ # Dragon Mapping
+ dr = "dragon";
+ ds = "dragon-stay";
+ di = "dragon-individual";
+ #dm = "mvdragon";
+ #dc = "cpdragon";
+ dl = "dlfile";
+
+ ss = "stripspace";
+
+ # Vim keys
+ h = "updir";
+ t = "down";
+ n = "up";
+ s = "open";
+
+ # Basic Functions
+ bn = "help";
+ kk = "mklkn";
+ "." = "set hidden!";
+ DD = "delete";
+ p = "paste";
+ x = "cut";
+ y = "copy";
+ "<enter>" = "open";
+ mf = "mkfile";
+ mr = "sudomkfile";
+ md = "mkdir";
+ ms = "mkscr";
+ ch = "chmod";
+ bg = "setwallpaper";
+ o = "open_config";
+ br = "\$vimv \$fx"; # TODO what is this command?
+ r = "rename";
+ H = "top";
+ L = "bottom";
+ R = "reload";
+ C = "clear";
+ U = "unselect";
+
+ # Movement
+ gjr = "cd ~/.local/share/Trash/files";
+ gus = "cd /run/dt";
+
+ "gr." = "cd /home/dt/repos";
+ grr = "cd /home/dt/repos/rust";
+ grp = "cd /home/dt/repos/python";
+ grc = "cd /home/dt/repos/c";
+ gra = "cd /home/dt/repos/auto_hot_key";
+ grt = "cd /home/dt/repos/tex";
+ grs = "cd /home/dt/repos/shell";
+
+ grch = "cd /home/dt/repos/chroot";
+ grpe = "cd /home/dt/repos/perl";
+ grja = "cd /home/dt/repos/java";
+ grjs = "cd /home/dt/repos/java_script";
+ # -------------
+ "gm." = "cd /home/dt/media";
+ gmpi = "cd /home/dt/media/pictures";
+ gmdo = "cd /home/dt/media/downloads";
+ gmpl = "cd /home/dt/media/playlist";
+ gmis = "cd /home/dt/media/isos";
+ # -------------
+ "gs." = "cd /home/dt/school";
+ gsgs = "cd /home/dt/school/geschichte";
+ gsch = "cd /home/dt/school/chemie";
+ gsen = "cd /home/dt/school/english";
+ gsgo = "cd /home/dt/school/geographie";
+ gsin = "cd /home/dt/school/infomatik";
+ gsso = "cd /home/dt/school/sozialkunde";
+ gskr = "cd /home/dt/school/katholische_religion";
+ gsmu = "cd /home/dt/school/musik";
+ gsla = "cd /home/dt/school/latein";
+ gsde = "cd /home/dt/school/deutsch";
+ gsma = "cd /home/dt/school/mathematik";
+ gspr = "cd /home/dt/school/praktikum";
+ gsbi = "cd /home/dt/school/biologie";
+ gssp = "cd /home/dt/school/sport";
+ gsphy = "cd /home/dt/school/physik";
+ gsphi = "cd /home/dt/school/philosophie";
+
+ gc = "cd ~/.config";
+ gl = "cd ~/.local";
+ gE = "cd /etc";
+
+ "gU." = "cd /usr";
+ gUs = " cd /usr/share";
+
+ gt = "cd /tmp";
+ };
+ previewer = {
+ keybinding = "i";
+ source = "ctpv";
+ };
+ settings = {
+ cleaner = "ctpvclear";
+ autoquit = true; # quit the server, if no clients are left
+ dircounts = true; # count things in directories TODO this has performance impact
+ dirpreviews = true; # preview for directories
+ drawbox = true;
+ errorfmt = "\\033[1;91m==> ERROR:\\033[0m\\033[1;93m%s\\033[0m";
+ hidden = true; # show hidden files
+ icons = true;
+ ifs = "\n"; # internal field separator for shell commands
+ info = ["size"]; # show the size of a directory
+ shell = "sh";
+ shellopts = ["-e" "-u"]; # e: exit on error; u: error for unset variables
+ };
+ extraConfig = ''
+ &ctpv -s $id
+ &ctpvquit $id
+ '';
+ };
+}
+# vim: ts=2
+
diff --git a/home-manger/lf/icons b/home-manger/lf/icons
new file mode 100644
index 00000000..68d53e34
--- /dev/null
+++ b/home-manger/lf/icons
@@ -0,0 +1,357 @@
+# 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
+
+# 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 
+*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 
+*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 