aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRatakor <ratakor@disroot.org>2024-03-20 14:31:02 -0700
committerRatakor <ratakor@disroot.org>2024-03-20 14:31:02 -0700
commit966a6916a43be919ac8debe270dcdf2a55c39b48 (patch)
treede718277ef8fd83cffe2b70ada1df803ea970974
parentf0be66522ac4e8d232fdf8d6537d026b9db210dd (diff)
Switch to wayland, need to finish bar configHEADmaster
window manager: dwm -> river dynamic menu: dmenu -> tofi bar: sb -> waybar terminal: st -> foot screen locker: slock -> swaylock notification: herbe -> mako wallpaper: hsetroot -> swaybg clipboard: xclip -> wl-copy screenshot: maim -> grim night filter: redshift -> gammastep image viewer: nsxiv -> imv Add glitchlock. Add java config to neovim. Update scripts for wayland. Improve neovim config (use mason instead of pacman and other stuff). Replace dmenuoff with shutdown-menu. Replace openssh-dotlocal with openssh, symlink .local/etc/ssh to .ssh. Replace rm with trash-cli. Replace librey with 4get in demenusearch. Remove wiki in dmenusearch. Remove sic and irc script (color and history with sic). Remove lfub: use sixel instead of ueberzug. Remove themeswap 😢. Remove navi. Remove cli-visualizer. Remove Xresources.
-rw-r--r--.local/bin/.gitignore2
-rwxr-xr-x.local/bin/battery82
-rwxr-xr-x.local/bin/browser2
-rwxr-xr-x.local/bin/dmenuhandler48
-rwxr-xr-x.local/bin/dmenuoff21
-rwxr-xr-x.local/bin/dmenurecord5
-rwxr-xr-x.local/bin/dmenusearch77
-rwxr-xr-x.local/bin/editor6
-rwxr-xr-x.local/bin/glitchlock31
-rwxr-xr-x.local/bin/irc22
-rwxr-xr-x.local/bin/lfub23
-rwxr-xr-x.local/bin/music37
-rwxr-xr-x.local/bin/musiccmd53
-rwxr-xr-x.local/bin/plumber53
-rwxr-xr-x.local/bin/randwp24
-rwxr-xr-x.local/bin/rotdir13
-rwxr-xr-x.local/bin/screenshot14
-rwxr-xr-x.local/bin/shutdown-menu20
-rwxr-xr-x.local/bin/themeswap74
-rwxr-xr-x.local/bin/ytdl3
-rw-r--r--.local/etc/cli-visualizer/colors/dracula8
-rw-r--r--.local/etc/cli-visualizer/config90
-rw-r--r--.local/etc/crontab3
-rw-r--r--.local/etc/foot/foot.ini61
-rw-r--r--.local/etc/gammastep/config.ini (renamed from .local/etc/redshift/redshift.conf)2
-rw-r--r--.local/etc/gtk-3.0/gtk.css7
-rw-r--r--.local/etc/imv/config4
-rwxr-xr-x.local/etc/lf/cleaner4
-rw-r--r--.local/etc/lf/lfrc37
-rwxr-xr-x.local/etc/lf/scope43
-rw-r--r--.local/etc/mako/config18
-rw-r--r--.local/etc/mimeapps.list2
-rw-r--r--.local/etc/mpv/music/local.lua57
-rw-r--r--.local/etc/mpv/music/online.lua14
-rw-r--r--.local/etc/mpv/scripts/copy_path.lua6
-rw-r--r--.local/etc/nvim/after/plugin/lsp.lua129
-rw-r--r--.local/etc/nvim/after/plugin/misc.lua19
-rw-r--r--.local/etc/nvim/lua/plugins/lsp.lua15
-rw-r--r--.local/etc/nvim/lua/plugins/misc.lua64
-rw-r--r--.local/etc/nvim/lua/plugins/noice.lua4
-rw-r--r--.local/etc/nvim/lua/plugins/treesitter.lua15
-rw-r--r--.local/etc/nvim/lua/settings.lua32
-rw-r--r--.local/etc/picom.conf9
-rw-r--r--.local/etc/qBittorrent/dracula.qbthemebin1969 -> 0 bytes
-rwxr-xr-x.local/etc/river/init163
-rw-r--r--.local/etc/sb/config17
-rw-r--r--.local/etc/swaylock/config7
-rw-r--r--.local/etc/sx/dracula67
-rw-r--r--.local/etc/sx/gruvbox-dark69
-rw-r--r--.local/etc/sx/gruvbox-light67
-rwxr-xr-x.local/etc/sx/sxrc24
-rw-r--r--.local/etc/sx/themes3
-rw-r--r--.local/etc/sxhkd/sxhkdrc52
-rw-r--r--.local/etc/tofi/config13
l---------.local/etc/vis/colors1
l---------.local/etc/vis/config1
-rw-r--r--.local/etc/waybar/config105
-rwxr-xr-x.local/etc/waybar/scripts/music.sh20
-rwxr-xr-x.local/etc/waybar/scripts/weather.sh21
-rw-r--r--.local/etc/waybar/style.css159
-rw-r--r--.local/etc/zls.json3
-rw-r--r--.local/etc/zsh/.zprofile12
-rw-r--r--.local/etc/zsh/.zshenv17
-rw-r--r--.local/etc/zsh/.zshrc1
-rw-r--r--.local/etc/zsh/aliasrc17
-rw-r--r--.local/share/applications/browser.desktop2
-rw-r--r--.local/share/applications/file.desktop2
-rw-r--r--.local/share/applications/git.desktop2
-rw-r--r--.local/share/applications/img.desktop2
-rw-r--r--.local/share/applications/irc.desktop4
-rw-r--r--.local/share/applications/pdf.desktop2
-rw-r--r--.local/share/applications/text.desktop2
-rw-r--r--.local/share/applications/torrent.desktop2
-rw-r--r--.local/share/applications/video.desktop2
-rw-r--r--.local/share/navi2584
-rw-r--r--.local/share/packages68
-rw-r--r--README.md28
77 files changed, 1121 insertions, 3671 deletions
diff --git a/.local/bin/.gitignore b/.local/bin/.gitignore
index 9882826..061ef6f 100644
--- a/.local/bin/.gitignore
+++ b/.local/bin/.gitignore
@@ -2,4 +2,4 @@ backup
anki
pip*
normalizer
-waldl
+d68k
diff --git a/.local/bin/battery b/.local/bin/battery
index 4eb547c..8d88634 100755
--- a/.local/bin/battery
+++ b/.local/bin/battery
@@ -1,62 +1,36 @@
#!/bin/sh
-# This is kinda useless
-STATUS="$(cat /sys/class/power_supply/BAT0/status)"
-CAPACITY="$(cat /sys/class/power_supply/BAT0/capacity)"
+status=$(cat /sys/class/power_supply/BAT0/status)
+capacity=$(cat /sys/class/power_supply/BAT0/capacity)
-BAT_0='󰂎'
-BAT_10='󰁺'
-BAT_20='󰁻'
-BAT_30='󰁼'
-BAT_40='󰁽'
-BAT_50='󰁾'
-BAT_60='󰁿'
-BAT_70='󰂀'
-BAT_80='󰂁'
-BAT_90='󰂂'
-BAT_100='󰁹'
-
-CBAT_0='󰢟'
-CBAT_10='󰢜'
-CBAT_20='󰂆'
-CBAT_30='󰂇'
-CBAT_40='󰂈'
-CBAT_50='󰢝'
-CBAT_60='󰂉'
-CBAT_70='󰢞'
-CBAT_80='󰂊'
-CBAT_90='󰂋'
-CBAT_100='󰂅'
-
-if [ "$STATUS" = "Charging" ]; then
- case $CAPACITY in
- 99|100) ICON="$CBAT_100" ;;
- 9[0-8]) ICON="$CBAT_90" ;;
- 8[0-9]) ICON="$CBAT_80" ;;
- 7[0-9]) ICON="$CBAT_70" ;;
- 6[0-9]) ICON="$CBAT_60" ;;
- 5[0-9]) ICON="$CBAT_50" ;;
- 4[0-9]) ICON="$CBAT_40" ;;
- 3[0-9]) ICON="$CBAT_30" ;;
- 2[0-9]) ICON="$CBAT_20" ;;
- 1[0-9]) ICON="$CBAT_10" ;;
- [0-9]) ICON="$CBAT_0" ;;
+if [ "$status" = "Charging" ]; then
+ case $capacity in
+ 99|100) icon=󰂅 ;;
+ 9[0-8]) icon=󰂋 ;;
+ 8[0-9]) icon=󰂊 ;;
+ 7[0-9]) icon=󰢞 ;;
+ 6[0-9]) icon=󰂉 ;;
+ 5[0-9]) icon=󰢝 ;;
+ 4[0-9]) icon=󰂈 ;;
+ 3[0-9]) icon=󰂇 ;;
+ 2[0-9]) icon=󰂆 ;;
+ 1[0-9]) icon=󰢜 ;;
+ [0-9]) icon=󰢟 ;;
esac
else
- case $CAPACITY in
- 99|100) ICON="$BAT_100" ;;
- 9[0-8]) ICON="$BAT_90" ;;
- 8[0-9]) ICON="$BAT_80" ;;
- 7[0-9]) ICON="$BAT_70" ;;
- 6[0-9]) ICON="$BAT_60" ;;
- 5[0-9]) ICON="$BAT_50" ;;
- 4[0-9]) ICON="$BAT_40" ;;
- 3[0-9]) ICON="$BAT_30" ;;
- 2[0-9]) ICON="$BAT_20" ;;
- 1[0-9]) ICON="$BAT_10" ;;
- [0-9]) ICON="$BAT_0" ;;
+ case $capacity in
+ 99|100) icon=󰁹 ;;
+ 9[0-8]) icon=󰂂 ;;
+ 8[0-9]) icon=󰂁 ;;
+ 7[0-9]) icon=󰂀 ;;
+ 6[0-9]) icon=󰁿 ;;
+ 5[0-9]) icon=󰁾 ;;
+ 4[0-9]) icon=󰁽 ;;
+ 3[0-9]) icon=󰁼 ;;
+ 2[0-9]) icon=󰁻 ;;
+ 1[0-9]) icon=󰁺 ;;
+ [0-9]) icon=󰂎 ;;
esac
fi
-kill -38 $(pidof sb)
-env HERBE_ID=/battery herbe "$ICON $CAPACITY% $STATUS"
+notify-send "$icon $capacity% $status"
diff --git a/.local/bin/browser b/.local/bin/browser
index bdb88b9..3f03a34 100755
--- a/.local/bin/browser
+++ b/.local/bin/browser
@@ -1,6 +1,6 @@
#!/bin/sh
# chromium hardening flags
-# breaks heavy js website
+# TODO: find which flags break everything
/usr/bin/chromium \
--block-new-web-contents \
diff --git a/.local/bin/dmenuhandler b/.local/bin/dmenuhandler
index 0e201fe..8095ea8 100755
--- a/.local/bin/dmenuhandler
+++ b/.local/bin/dmenuhandler
@@ -1,40 +1,42 @@
#!/bin/sh
-# Feed this script a link and it will give dmenu
-# some choice programs to use to open it.
+# Feed this script a link and it will spawn $DMENU with a selection of programs to open it
-FEED="${1:-$(printf "" | dmenu -p 'Paste URL or file path')}"
+# feed=${1:-$(true | $DMENU -p 'Paste URL or file path')}
+feed=${1:-$(true | tofi --prompt-text 'Paste URL or file path ')}
-[ -z "$FEED" ] && exit
+[ -z "$feed" ] && exit
-case "$(printf '%s\nbrowser\nmusic\nmpv\nmpv loop\nnsxiv\nPDF\nvim\nyt-dlp\nmusic-dlp\nsetbg' "$FEED" | dmenu -i -p "Open with ")" in
- "$FEED")
- printf '%s\n' "$FEED" | xclip -selection clipboard ;; # Copy URL
+#case "$(printf '%s\nbrowser\nmusic\nmpv\nmpv loop\nimage\nPDF\nvim\nyt-dlp\nmusic-dlp\nsetbg' "$feed" | $DMENU -i -p "Open with ")" in
+case "$(printf '%s\nbrowser\nmusic\nmpv\nmpv loop\nimage\nPDF\nvim\nyt-dlp\nmusic-dlp\nsetbg' "$feed" | tofi --prompt-text "Open with ")" in
+ "$feed")
+ printf '%s\n' "$feed" | wl-paste ;;
browser)
- setsid -f "$BROWSER" "$FEED" >/dev/null 2>&1 ;;
+ setsid -f "$BROWSER" "$feed" >/dev/null 2>&1 ;;
music)
- setsid -f music "$FEED" >/dev/null 2>&1 ;;
+ setsid -f music "$feed" >/dev/null 2>&1 ;;
mpv)
- setsid -f mpv --quiet --ytdl-format=22 "$FEED" >/dev/null 2>&1 ;;
+ setsid -f mpv --quiet --ytdl-format=22 "$feed" >/dev/null 2>&1 ;;
"mpv loop")
- setsid -f mpv --quiet --ytdl-format=22 --loop "$FEED" >/dev/null 2>&1 ;;
- nsxiv)
- curl -sL "$FEED" > "/tmp/$(echo "$FEED" | sed "s/.*\///;s/%20/ /g")" &&
- nsxiv -a "/tmp/$(echo "$FEED" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 ;;
+ setsid -f mpv --quiet --ytdl-format=22 --loop "$feed" >/dev/null 2>&1 ;;
+ image)
+ curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s/.*\///;s/%20/ /g")" &&
+ imv "/tmp/$(echo "$feed" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 ;;
PDF)
- curl -sL "$FEED" > "/tmp/$(echo "$FEED" | sed "s/.*\///;s/%20/ /g")" &&
- zathura "/tmp/$(echo "$FEED" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 ;;
+ curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s/.*\///;s/%20/ /g")" &&
+ zathura "/tmp/$(echo "$feed" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 ;;
vim)
- curl -sL "$FEED" > "/tmp/$(echo "$FEED" | sed "s/.*\///;s/%20/ /g")" &&
- setsid -f "$TERMINAL" -e "$EDITOR" "/tmp/$(echo "$FEED" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 ;;
+ curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s/.*\///;s/%20/ /g")" &&
+ setsid -f "$TERMINAL" -e "$EDITOR" "/tmp/$(echo "$feed" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 ;;
yt-dlp)
- setsid -f ytdl v "$FEED" >/dev/null 2>&1 ;;
+ setsid -f ytdl v "$feed" >/dev/null 2>&1 ;;
music-dlp)
- if [ "$(printf 'no\nyes' | dmenu -i -p 'Playlist?')" = "yes" ]; then
- setsid -f ytdl p "$FEED" >/dev/null 2>&1
+ # if [ "$(printf 'no\nyes' | $DMENU -i -p 'Playlist?')" = "yes" ]; then
+ if [ "$(printf 'no\nyes' | tofi --prompt-text 'Playlist?')" = "yes" ]; then
+ setsid -f ytdl p "$feed" >/dev/null 2>&1
else
- setsid -f ytdl m "$FEED" >/dev/null 2>&1
+ setsid -f ytdl m "$feed" >/dev/null 2>&1
fi ;;
setbg)
- curl -sL "$FEED" > "$XDG_CACHE_HOME/pic" &&
+ curl -sL "$feed" > "$XDG_CACHE_HOME/pic" &&
randwp "$XDG_CACHE_HOME/pic" >/dev/null 2>&1 ;;
esac
diff --git a/.local/bin/dmenuoff b/.local/bin/dmenuoff
deleted file mode 100755
index ffd2dc6..0000000
--- a/.local/bin/dmenuoff
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-# menu for shutdown or lock
-# require nopass for poweroff and reboot and my build of dmenu for -hf
-
-red=$(xrdb -query | awk '/color1:/ { print $2 }')
-cyan=$(xrdb -query | awk '/color6:/ { print $2 }')
-
-[ -z "$red" ] && red='#ff5555'
-[ -z "$cyan" ] && cyan='#8be9fd'
-
-QUERY=$(printf 'no\nlock\npoweroff\nreboot' | dmenu -i -sb "$red" -hf "$cyan" -p 'Shutdown?')
-ROOTCMD="${ROOTCMD:-$(command -v doas || command -v sudo)}"
-
-case "$QUERY" in
-"lock")
- slock ;;
-"poweroff")
- "$ROOTCMD" poweroff ;;
-"reboot")
- "$ROOTCMD" reboot ;;
-esac
diff --git a/.local/bin/dmenurecord b/.local/bin/dmenurecord
index 845c2a1..cb8f147 100755
--- a/.local/bin/dmenurecord
+++ b/.local/bin/dmenurecord
@@ -2,6 +2,7 @@
# dmenu for recordings with ffmpeg
# dependencies: pipewire-pulse/pulseaudio, ffmpeg, dmenu, slop
# Original: https://github.com/whoisYoges/record-with-ffmpeg
+# TODO: change to use wf-recorder and $DMENU
set -e
@@ -126,9 +127,9 @@ setSelectionVal() {
}
videosel() {
- slop=$(slop -q -f "%x %y %w %h") || return 1
+ coord=$(slurp -f "%x %y %w %h") || return 1
# shellcheck disable=SC2086
- setSelectionVal $slop
+ setSelectionVal $coord
video "$1"
}
diff --git a/.local/bin/dmenusearch b/.local/bin/dmenusearch
index 8e2d72b..4d6f725 100755
--- a/.local/bin/dmenusearch
+++ b/.local/bin/dmenusearch
@@ -1,77 +1,38 @@
#!/bin/sh
-# search web, parabola/arch wiki, AUR, youtube, man pages or emoji with dmenu
+# search web, AUR, youtube, man pages or emoji with $DMENU
-# websearch dependencies : shuf, curl, /tmp needs to be temporary
-# wiki dependency: parabola-wiki-docs (can be used with arch-wiki-docs)
# youtube dependency: ytfzf
# man dependencies: mandoc/man-db, zathura
-# emoji dependency: xclip
+# emoji dependency: wl-clipboard
set -e
web() {
- NETWORK=clearnet # clearnet, tor or i2p
- SOURCE=https://search.ratakor.com/instances.json
- if [ ! -f "/tmp/instances" ]; then
- curl -s "$SOURCE" -o /tmp/instances.json ||
- (notify-send "No internet connection"; exit 1)
-
- strip() {
- tmp=${1##*"\"$NETWORK\": \""}
- printf '%s\n' "${tmp%%"\","}"
- }
-
- while IFS= read -r line || [ -n "$line" ]; do
- case $line in
- *"$NETWORK"*null,)
- continue ;;
- *"$NETWORK"*)
- strip "$line" >> /tmp/instances ;;
- esac
- done < /tmp/instances.json
- fi
-
- instance=$(shuf -n 1 /tmp/instances)
- query=${1:-$(true | dmenu -p "Search:" -l 0)}
- if [ "$query" = '!!' ]; then
+ SEARCH_ENGINE="https://4get.ca/web?s="
+ # query=${1:-$(true | $DMENU -p "Search:" -l 0)}
+ query=${1:-$(true | tofi --prompt-text "Search: ")}
+ if [ -z "$query" ]; then
+ exit 1
+ elif [ "$query" = '!!' ]; then
[ -f /tmp/query ] &&
query=$(cat /tmp/query) ||
exit 1
else
echo "$query" > /tmp/query
fi
- query="${instance}search.php?q=${query}&t=0"
-
-}
-
-wiki() {
- WIKIDIR="/usr/share/doc/parabola-wiki/html/en"
-
- strip() {
- tmp="${1##"$WIKIDIR/"}"
- printf '\n%s' "${tmp%%".html"}"
- }
-
- for file in "$WIKIDIR"/*.html; do
- [ -f "$file" ] || continue
- wikidocs="$wikidocs$(strip "$file")"
- done
-
- wikidocs="${wikidocs#*
-}" # remove a trailing newline
+ query="$SEARCH_ENGINE$query"
- query="$WIKIDIR/$(printf '%s\n' "$wikidocs" | sed -e 's/_/ /g' | sort |\
- dmenu -i -l 10 -p 'Search Wiki: ').html"
- query="$(printf '%s\n' "$query" | sed 's/ /_/g')" # separate otherwise set -e fails
}
aur() {
AURSITE="https://aur.archlinux.org/packages?O=0&K="
- query="$AURSITE$(printf "" | dmenu -p "AUR:" -l 0)"
+ # query="$AURSITE$(true | $DMENU -p "AUR:" -l 0)"
+ query="$AURSITE$(true | tofi --prompt-text "AUR: ")"
}
manpdf() {
- INPUT=${1:-$(man -k . | cut -c 1-80 | dmenu -i -l 20 | awk '{print $1}')}
+ # INPUT=${1:-$(man -k . | cut -c 1-80 | $DMENU -i -l 20 | awk '{print $1}')}
+ INPUT=${1:-$(man -k . | cut -c 1-80 | tofi | awk '{print $1}')}
[ -z "$INPUT" ] && return 1
if command -v mandb; then
# This is man-db
@@ -83,18 +44,18 @@ manpdf() {
}
emoji() {
- CHOSEN=$(cut -d ';' -f1 "$XDG_DATA_HOME/emoji" | dmenu -i -l 30 | sed "s/ .*//")
+ # CHOSEN=$(cut -d ';' -f1 "$XDG_DATA_HOME/emoji" | $DMENU -i -l 30 | sed "s/ .*//")
+ CHOSEN=$(cut -d ';' -f1 "$XDG_DATA_HOME/emoji" | tofi | sed "s/ .*//")
[ -z "$CHOSEN" ] && return 1
- printf '%s' "$CHOSEN" | xclip -selection clipboard
- # notify-send "'$CHOSEN' copied to clipboard."
+ printf '%s' "$CHOSEN" | wl-copy
+ notify-send "'$CHOSEN' copied to clipboard."
}
main() {
- case ${1:-$(printf 'web\naur\nyoutube\nman\nemoji' | dmenu -i)} in
+ # case ${1:-$(printf 'web\naur\nyoutube\nman\nemoji' | $DMENU -i)} in
+ case ${1:-$(printf 'web\naur\nyoutube\nman\nemoji' | tofi)} in
web)
web "$2" ;;
- #wiki)
- # wiki ;;
aur)
aur ;;
youtube)
diff --git a/.local/bin/editor b/.local/bin/editor
deleted file mode 100755
index 0e83232..0000000
--- a/.local/bin/editor
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-# this is for changing neovim's theme on the fly with themeswap
-
-SOCKET="/tmp/nvim.$(base32 < /dev/urandom | head -c 5).pipe"
-trap 'rm -f $SOCKET' INT QUIT TERM EXIT HUP
-nvim --listen "$SOCKET" "$@"
diff --git a/.local/bin/glitchlock b/.local/bin/glitchlock
new file mode 100755
index 0000000..6e3722a
--- /dev/null
+++ b/.local/bin/glitchlock
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+# based on https://github.com/xero/glitchlock
+
+grim /tmp/lock.png
+convert /tmp/lock.png /tmp/lock.jpg
+file=/tmp/lock.jpg
+
+datamosh() {
+ file_size=$(wc -c < "$file")
+ header_size=1000
+ skip=$(shuf -i "$header_size"-"$file_size" -n 1)
+ count=$(shuf -i 1-10 -n 1)
+ for _ in $(seq 1 "$count"); do
+ byteStr=$byteStr'\x'$(shuf -i 0-255 -n 1)
+ done
+ printf "%s" "$byteStr" |
+ dd of="$file" bs=1 seek="$skip" count="$count" conv=notrunc >/dev/null 2>&1
+}
+
+steps=$(shuf -i 40-70 -n 1)
+for _ in $(seq 1 "$steps"); do
+ datamosh "$file"
+done
+
+convert /tmp/lock.jpg /tmp/lock.png >/dev/null 2>&1
+rm /tmp/lock.jpg
+file=/tmp/lock.png
+
+timestamp=$(date +%F-%R:%S)
+swaylock -i "$file" > "/tmp/swaylock-$timestamp.log" 2>&1
diff --git a/.local/bin/irc b/.local/bin/irc
deleted file mode 100755
index e33b284..0000000
--- a/.local/bin/irc
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-# color username and save history for sic
-
-HIST=${XDG_STATE_HOME:-$HOME/.local/state}/sic
-mkdir -p "$HIST"
-HIST=$HIST/$(date '+sic-%Y-%m-%d-%H:%M-%S')
-
-if [ -z "$*" ]; then
- sic -h "irc.libera.chat" | tee -a "$HIST" |\
- awk "{gsub(\"$USER\",\"\033[1;34m$USER\033[m\")}1"
-elif [ "$1" = "-xdg" ]; then
- link=${2#irc://}
- [ "$link" = "$2" ] && link=${2#ircs://}
- host=${link%:*}
- host=${link%/*}
- #port=${link#"$host:"}
- sic -h "$host" | tee -a "$HIST" |\
- awk "{gsub(\"$USER\",\"\033[1;34m$USER\033[m\")}1"
-else
- sic "$@" | tee -a "$HIST" |\
- awk "{gsub(\"$USER\",\"\033[1;34m$USER\033[m\")}1"
-fi
diff --git a/.local/bin/lfub b/.local/bin/lfub
deleted file mode 100755
index 0d8b7fe..0000000
--- a/.local/bin/lfub
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-# This is a wrapper script for lf that allows it to create image previews with
-# ueberzug. This works in concert with the lf configuration file and the
-# lf-cleaner script.
-
-set -e
-
-cleanup() {
- exec 3>&-
- rm "$FIFO_UEBERZUG"
-}
-
-if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
- lf "$@"
-else
- [ ! -d "$XDG_CACHE_HOME/lf" ] && mkdir -p "$XDG_CACHE_HOME/lf"
- export FIFO_UEBERZUG="$XDG_CACHE_HOME/lf/ueberzug-$$"
- mkfifo "$FIFO_UEBERZUG"
- ueberzug layer -s <"$FIFO_UEBERZUG" -p json &
- exec 3>"$FIFO_UEBERZUG"
- trap cleanup HUP INT QUIT TERM PWR EXIT
- lf "$@" 3>&-
-fi
diff --git a/.local/bin/music b/.local/bin/music
index 282feda..6573943 100755
--- a/.local/bin/music
+++ b/.local/bin/music
@@ -1,30 +1,35 @@
#!/bin/sh
-# Simple music selector with dmenu that uses and interacts with mpv.
-# Have a look at musiccmd, .local/etc/mpv/music and sb (statusbar)
+# Simple music selector with a $DMENU that uses and interacts with mpv.
+# Have a look at musiccmd, .local/etc/mpv/music/ and
+# .local/etc/waybar/scripts/music.sh
# shellcheck disable=SC2012
-MUSICDIR="${XDG_MUSIC_DIR:-$HOME/Music}"
+MUSICDIR=${XDG_MUSIC_DIR:-$HOME/Music}
+SOCKET=${XDG_RUNTIME_DIR:-/tmp}/music.sock
if [ "$1" = "--shuffle" ]; then
- SHUFFLE=yes
+ shuffle=yes
shift
fi
-MUSIC="${1:-$MUSICDIR/$(ls "$MUSICDIR" | cut -c 1-50 | dmenu -i -p "Play ")}"
-SCRIPT="${XDG_CONFIG_HOME:-$HOME/.config}/mpv/music/local.lua"
+# music="${1:-$MUSICDIR/$(ls "$MUSICDIR" | cut -c 1-50 | $DMENU -p "Play ")}"
+music="${1:-$MUSICDIR/$(ls "$MUSICDIR" | cut -c 1-50 | tofi --padding-left 25% --prompt-text "Play ")}"
+script="${XDG_CONFIG_HOME:-$HOME/.config}/mpv/music/local.lua"
-if [ "$MUSIC" = "$MUSICDIR/urls" ]; then
- MUSIC="$(cat "$MUSICDIR/urls/$(ls "$MUSICDIR/urls" | dmenu -i -p "Play ")")"
- SCRIPT="${XDG_CONFIG_HOME:-$HOME/.config}/mpv/music/online.lua"
+if [ "$music" = "$MUSICDIR/urls" ]; then
+ # music="$(cat "$MUSICDIR/urls/$(ls "$MUSICDIR/urls" | $DMENU -p "Play ")")"
+ music="$(cat "$MUSICDIR/urls/$(ls "$MUSICDIR/urls" | tofi --padding-left 25% --prompt-text "Play ")")"
+ script="${XDG_CONFIG_HOME:-$HOME/.config}/mpv/music/online.lua"
fi
-[ "$MUSIC" = "$MUSICDIR/" ] || [ -z "$MUSIC" ] && exit 1
+[ "$music" = "$MUSICDIR/" ] || [ -z "$music" ] && exit 1
-if [ -z "$SHUFFLE" ] && [ -d "$MUSIC" ] || printf '%s' "$MUSIC" | grep -q playlist; then
- SHUFFLE="$(printf 'yes\nno' | dmenu -i -p 'Shuffle?')"
- [ -z "$SHUFFLE" ] && exit 1
+if [ -z "$shuffle" ] && [ -d "$music" ] || printf '%s' "$music" | grep -q playlist; then
+ # shuffle="$(printf 'yes\nno' | $DMENU -p 'Shuffle?')"
+ shuffle="$(printf 'yes\nno' | tofi --prompt-text 'Shuffle? ')"
+ [ -z "$shuffle" ] && exit 1
fi
-printf 'stop\n' | socat - /tmp/mpvsocket 2> /dev/null
-mpv --vid=no --input-ipc-server=/tmp/mpvsocket --loop-playlist\
- --ytdl-format=ba --script="$SCRIPT" --shuffle="$SHUFFLE" "$MUSIC"
+printf 'stop\n' | socat - "$SOCKET" 2> /dev/null
+mpv --vid=no --input-ipc-server="$SOCKET" --loop-playlist\
+ --ytdl-format=ba --script="$script" --shuffle="$shuffle" "$music"
diff --git a/.local/bin/musiccmd b/.local/bin/musiccmd
index bfecc20..5eae978 100755
--- a/.local/bin/musiccmd
+++ b/.local/bin/musiccmd
@@ -1,32 +1,32 @@
#!/bin/sh
# helper for the music script
-# dependencies: music, mpv, socat, yt-dlp, ffmpeg, imagemagick
-# optional dependencies: sb, libnotify, herbe
+# dependencies: music, mpv, socat, yt-dlp, ffmpeg, imagemagick, $DMENU
+# optional dependencies: waybar, notify-send, imv
# shellcheck disable=SC2046
-FAVDIR="${XDG_MUSIC_DIR:-$HOME/Music}/favorite"
-DLDIR="${XDG_MUSIC_DIR:-$HOME/Music}/download"
-CACHE="${XDG_CACHE_HOME:-$HOME/.cache}"
-IMG="nsxiv"
+FAVDIR=${XDG_MUSIC_DIR:-$HOME/Music}/favorite
+DLDIR=${XDG_MUSIC_DIR:-$HOME/Music}/download
+CACHE=${XDG_CACHE_HOME:-$HOME/.cache}
+SOCKET=${XDG_RUNTIME_DIR:-/tmp}/music.sock
getpath() {
tmp=$(printf '{ "command": ["get_property", "path"] }\n'\
- | socat - /tmp/mpvsocket)
+ | socat - "$SOCKET")
tmp=${tmp#{\"data\":\"}
path=${tmp%\",\"request_id\":0,\"error\":\"success\"\}}
}
gettitle() {
tmp=$(printf '{ "command": ["get_property", "media-title"] }\n'\
- | socat - /tmp/mpvsocket)
+ | socat - "$SOCKET")
tmp=${tmp##{\"data\":\"}
title=${tmp%\",\"request_id\":0,\"error\":\"success\"\}}
}
getvol() {
tmp=$(printf '{ "command": ["get_property", "volume"] }\n'\
- | socat - /tmp/mpvsocket)
- tmp=${tmp#{\"data\":}
+ | socat - "$SOCKET")
+ tmp="${tmp#{\"data\":}" # smh this line breaks highlighting
printf '%s\n' "${tmp%.000000,\"request_id\":0,\"error\":\"success\"\}}"
}
@@ -74,30 +74,33 @@ getthumbnail() {
main() {
if ! pgrep -x music >/dev/null; then
- kill -34 $(pidof sb)
- herbe "Error: There is no music playing"\
- "Do you want to play some ?" && music
- return
+ kill -35 $(pidof waybar)
+ notify-send "Error: There is no music playing"
+ return 1
fi
- cmd="${1:-$(printf '⏯️pause/play\n⏭️next\n⏮️prev\n📢volume\n🔳stop
-⭐favorite\n⬇️download\n🖼️thumbnail' | dmenu -i -p "musiccmd")}"
+ cmd="${1:-$(printf '⏯️ pause/play\n⏭️ next\n⏮️ prev\n📢 volume\n🔳 stop
+⭐ favorite\n⬇️ download\n🖼️ thumbnail' | tofi --prompt-text "musiccmd ")}"
+# ⭐ favorite\n⬇️ download\n🖼️ thumbnail' | $DMENU -p "musiccmd ")}"
case "$cmd" in
cycle|*pause|*play)
- printf 'cycle pause\n' | socat - /tmp/mpvsocket
- kill -34 $(pidof sb) ;;
+ printf 'cycle pause\n' | socat - "$SOCKET"
+ kill -35 $(pidof waybar) ;;
*next)
- printf 'playlist-next\n' | socat - /tmp/mpvsocket ;;
+ printf 'playlist-next\n' | socat - "$SOCKET" ;;
*prev)
- printf 'playlist-prev\n' | socat - /tmp/mpvsocket ;;
+ printf 'playlist-prev\n' | socat - "$SOCKET" ;;
*volume)
+ # printf '{ "command": ["set_property", "volume", %s] }\n'\
+ # "${2:-$(true | $DMENU -p "Current volume: $(getvol) -> ")}"\
+ # | socat - "$SOCKET" 1> /dev/null ;;
printf '{ "command": ["set_property", "volume", %s] }\n'\
- "${2:-$(true | dmenu -p "Current volume: $(getvol)")}"\
- | socat - /tmp/mpvsocket 1> /dev/null ;;
+ "${2:-$(true | tofi --prompt-text "Current volume: $(getvol) -> ")}"\
+ | socat - "$SOCKET" 1> /dev/null ;;
*stop)
- printf 'stop\n' | socat - /tmp/mpvsocket
- kill -34 $(pidof sb) ;;
+ printf 'stop\n' | socat - "$SOCKET"
+ kill -35 $(pidof waybar) ;;
*favorite|fav)
getpath
gettitle
@@ -109,7 +112,7 @@ main() {
*thumbnail)
getpath
if getthumbnail; then
- $IMG "$CACHE/thumbnail.jpg"
+ imv "$CACHE/thumbnail.jpg"
else
notify-send "Error: can't get thumbnail"
return 1
diff --git a/.local/bin/plumber b/.local/bin/plumber
index 3a0516f..b13ff9d 100755
--- a/.local/bin/plumber
+++ b/.local/bin/plumber
@@ -4,10 +4,7 @@
# dependencies:
# - default programs
# - xdo
-# - xclip or xsel
-# - (optional) herbe and dmenusearch web
-# - (optional) dmenu_path
-# - (optional) st with plumber patch
+# - wl-clipboard
# shellcheck disable=SC2086
# default programs
@@ -15,15 +12,17 @@ WEB="xdg-open"
TEXT="$TERMINAL -e $EDITOR"
VIDEO="mpv --ytdl-format=22 --loop"
AUDIO="music --shuffle"
-PIC="nsxiv -a"
+PIC="imv"
DOC="zathura"
-DIR="$TERMINAL -e lfub"
+DIR="$TERMINAL -e lf"
HISTDIR=${XDG_STATE_HOME:-$HOME/.local/state}/plumber
HISTFILE=$HISTDIR/history
-openlink() {
+openurls() {
case "$1" in
+ file://*)
+ openfile "${1##file://}" ;;
*.mkv|*.webm|*.mp4|*.mov|*youtube.com/watch*|*youtube.com/playlist*|\
*youtube.com/shorts*|*youtu.be*|*inv*/playlist*|*inv*/watch*)
setsid -f $VIDEO "$1" >/dev/null 2>&1 ;;
@@ -77,7 +76,7 @@ openfile() {
checksel() {
case "$1" in
http://*|https://*|irc://*|ircs://*|git://*|git@*)
- openlink "$1" ;;
+ openurls "$1" ;;
/*)
opensel "$1" "$1" ;;
@@ -100,19 +99,7 @@ opensel() {
return
fi
- if [ ! -f "$1" ]; then
- progname=${2%\ *}
- for prog in $(dmenu_path); do
- case $prog in
- "$progname")
- $TERMINAL -e sh -c\
- "cd ${1%"$2"}; echo \$ $2; $2; $SHELL"
- return ;;
- esac
- done
- herbe "Do you want to search for '$2' ?" && dmenusearch web "$2"
- return
- fi
+ [ ! -f "$1" ] && return
case "$1" in
*.mkv|*.webm|*.mp4|*.mov)
@@ -138,10 +125,9 @@ Usage: ${0##*/} [options] [args]
Options:
no option [args] | Try to guess what to do
- -l|--link [links] | Open the links
+ -u|--url [urls] | Open the urls
-f|--file [files] | Open the files or the folders
-s|--sel | Use the selection buffer instead, Plan9's way
- -t|--term | To be used only when invoking through a patched st
-h|--help │ Print this help message
Config:
@@ -158,7 +144,7 @@ EOF
main() {
mkdir -p "$HISTDIR"
case "$1" in
- -l|--link)
+ -u|--url)
shift
if [ -z "$1" ]; then
printf '\033[31mError:\033[m no argument given\n' >&2
@@ -167,7 +153,7 @@ main() {
fi
for arg in "$@"; do
printf '%s\n' "$arg" >> "$HISTFILE"
- openlink "$arg"
+ openurls "$arg"
done ;;
-f|--file)
shift
@@ -181,11 +167,9 @@ main() {
openfile "$arg"
done ;;
-s|--sel|'')
- sel=$(xclip -o 2>/dev/null || xsel -opn 2>/dev/null)
+ sel=$(wl-paste)
sel=${sel#"${sel%%[![:space:]]*}"}
-
- # clear clipboard
- true | xclip 2>/dev/null || true | xsel 2>/dev/null
+ wl-copy --clear
if [ -z "$sel" ]; then
printf '\033[31mError:\033[m selection buffer is empty\n' >&2
@@ -194,13 +178,6 @@ main() {
fi
printf '%s\n' "$sel" >> "$HISTFILE"
checksel "$sel" ;;
- -t|--term)
- #if [ "$(ps -o comm= $PPID)" != "st" ]; then
- # printf '\033[31mError:\033[m --term option used outside of st\n' >&2
- # usage
- # return 1
- #fi
- [ -n "$2" ] && checksel "$2" ;;
-h|--help)
usage ;;
-*)
@@ -210,8 +187,8 @@ main() {
*)
for arg in "$@"; do
case "$arg" in
- http://*|https://*|git://*|irc://*|ircs://*)
- openlink "$arg" ;;
+ http://*|https://*|git://*|irc://*|ircs://*|file://*)
+ openurls "$arg" ;;
*)
openfile "$arg" ;;
esac
diff --git a/.local/bin/randwp b/.local/bin/randwp
index 30df667..9b0e77c 100755
--- a/.local/bin/randwp
+++ b/.local/bin/randwp
@@ -17,15 +17,19 @@ searchwp() {
fi
}
-# 1 screen with hsetroot
searchwp
-hsetroot -cover "$wp" 1>/dev/null
+OLD_PID=$(cat /tmp/swaybg.pid)
+swaybg -m fill -i "$wp" 2>/dev/null &
+echo $! > /tmp/swaybg.pid
+(sleep 3 && kill "$OLD_PID" 2>/dev/null || exit 0) &
-# multiple screens with xwallpaper
-#for output in $(xrandr | awk '$2=="connected" {print $1}'); do
-# searchwp
-# args="$args --output $output --zoom $wp"
-#done
-## doing this speedup a lot, there must be no space in wallpaper filename
-## shellcheck disable=SC2086
-#xwallpaper $args
+# multiple screens (TODO: kill and pid)
+# killall swaybg
+# for output in $(xrandr | awk '$2=="connected" {print $1}'); do
+# searchwp
+# args="$args -o $output -m fill -i $wp"
+# # swaybg -o "$output" -m fill -i "$wp"
+# done
+# # doing this speedup a lot, there must be no space in wallpaper filename
+# # shellcheck disable=SC2086
+# swaybg $args &
diff --git a/.local/bin/rotdir b/.local/bin/rotdir
deleted file mode 100755
index 3b3f39d..0000000
--- a/.local/bin/rotdir
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-# When I open an image from the file manager in sxiv (the image viewer), I want
-# to be able to press the next/previous keys to key through the rest of the
-# images in the same directory. This script "rotates" the content of a
-# directory based on the first chosen file, so that if I open the 15th image,
-# if I press next, it will go to the 16th etc. Autistic, I know, but this is
-# one of the reasons that sxiv is great for being able to read standard input.
-# ^ this is Luke's toughts and I approve them
-
-[ -z "$1" ] && echo "usage: rotdir regex 2>&1" && exit 1
-base="$(basename "$1")"
-ls "$PWD" | awk -v BASE="$base" 'BEGIN { lines = ""; m = 0; } { if ($0 == BASE) { m = 1; } } { if (!m) { if (lines) { lines = lines"\n"; } lines = lines""$0; } else { print $0; } } END { print lines; }'
diff --git a/.local/bin/screenshot b/.local/bin/screenshot
index ea47027..d854f2e 100755
--- a/.local/bin/screenshot
+++ b/.local/bin/screenshot
@@ -1,12 +1,12 @@
#!/bin/sh
-# take a screenshot with main
+# take a screenshot with grim
OUTPUT="$XDG_PICTURES_DIR/screenshots/$(date '+%Y-%m-%d_%H:%M:%S').png"
-XCLIPCMD="xclip -sel clip -t image/png"
-case "$(printf "save select\nsave screen\ncopy select\ncopy screen" | dmenu -i -p "Screenshot")" in
- "save select") maim -u -s "$OUTPUT" ;;
- "save screen") maim -u -q -d 0.5 "$OUTPUT" ;;
- "copy select") maim -u -s | $XCLIPCMD ;;
- "copy screen") maim -u -q -d 0.5 | $XCLIPCMD ;;
+#case "$(printf "save select\nsave screen\ncopy select\ncopy screen" | $DMENU -i -p "Screenshot")" in
+case "$(printf "save select\nsave screen\ncopy select\ncopy screen" | $DMENU --prompt-text "Screenshot ")" in
+ "save select") grim -g "$(slurp)" "$OUTPUT" ;;
+ "save screen") grim "$OUTPUT" ;;
+ "copy select") grim -g "$(slurp)" - | wl-copy ;;
+ "copy screen") grim - | wl-copy ;;
esac
diff --git a/.local/bin/shutdown-menu b/.local/bin/shutdown-menu
new file mode 100755
index 0000000..7e640da
--- /dev/null
+++ b/.local/bin/shutdown-menu
@@ -0,0 +1,20 @@
+#!/bin/sh
+# menu for lock and shutdown
+# requires nopass for openrc-shutdown
+
+RED="#cc241d"
+#CYAN="#689d6a"
+#query=$(printf ' lock\n exit wm\n⏻ shutdown\n⏼ reboot' | $DMENU -i -sb "$RED" -hf "$CYAN" -p 'System ')
+query=$(printf '\n\n lock\n exit wm\n⏻ shutdown\n⏼ reboot' | tofi --prompt-text 'System ' --selection-color "$RED")
+ROOTCMD=${ROOTCMD:-$(command -v doas || command -v sudo)}
+
+case $query in
+*"lock")
+ glitchlock ;;
+*"exit wm")
+ riverctl exit ;;
+*"shutdown")
+ $ROOTCMD openrc-shutdown -p 0 ;;
+*"reboot")
+ $ROOTCMD openrc-shutdown -r 0 ;;
+esac
diff --git a/.local/bin/themeswap b/.local/bin/themeswap
deleted file mode 100755
index c936e9b..0000000
--- a/.local/bin/themeswap
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/bin/sh
-# apply a random theme or the one given as an argument
-# shellcheck disable=SC2046,SC2016
-
-CONF=${XDG_CONFIG_HOME:-$HOME/.config}
-CACHE=${XDG_CACHE_HOME:-$HOME/.cache}
-THEME=${1:-$(shuf -n 1 "$CONF/sx/themes")}
-
-if [ -z "$1" ] && [ -f "$CACHE/theme" ]; then
- while [ "$THEME" = "$(cat "$CACHE/theme")" ]; do
- THEME=$(shuf -n 1 "$CONF/sx/themes")
- done
-fi
-
-# set theme variables
-case $THEME in
-dracula)
- bg=dark
- theme=dracula
- bat=Dracula ;;
-dark|gruvbox|gruvbox-dark)
- bg=dark
- theme=gruvbox-$bg ;;
-light|gruvbox-light)
- bg=light
- theme=gruvbox-$bg ;;
-*)
- exit 1 ;;
-esac
-
-echo "$theme" > "$CACHE/theme"
-
-# change theme
-xrdb "$CONF/sx/$theme"
-sed -i -e "s/^colorscheme.*/colorscheme ${theme%"-$bg"}/"\
- -e "s/lualine.themes.*/lualine.themes.${theme%"-$bg"}'/"\
- -e "s/^set background=.*/set background=$bg/"\
- "$CONF/nvim/appearance.vim"
-sed -i -e "s/--theme.*/--theme=${bat:-$theme}/" "$CONF/bat/config"
-sed -i -e "s/^THEME=.*/THEME=${bat:-$theme}/" "$CONF/lf/scope"
-sed -i -e "s/^gtk-theme-name.*/gtk-theme-name=$theme/" "$CONF/gtk-3.0/settings.ini"
-sed -i -e "s/vivid.*/vivid generate $theme):di=1;34\"/" "$CONF/zsh/.zshenv"
-case $theme in
-gruvbox*)
- sed -i -e "s/^local colors =.*/local colors = require('${theme%"-$bg"}').palette/"\
- -e 's/colors\./colors\.neutral_/g'\
- -e 's/neutral_neutral_/neutral_/g'\
- -e 's/neutral_black/dark0/'\
- -e 's/neutral_dark0/dark0/'\
- "$CONF/nvim/appearance.vim" ;;
-dracula)
- sed -i -e "s/^local colors =.*/local colors = require('$theme.palette')/"\
- -e 's/neutral_//g'\
- -e 's/dark0/black/'\
- "$CONF/nvim/appearance.vim" ;;
-esac
-
-# disable transparency for light themes
-case $bg in
-light)
- kill $(pidof picom) 2>/dev/null ;;
-dark)
- pgrep -x picom >/dev/null || picom -b ;;
-esac
-
-# restart programs
-if pgrep -x dwm >/dev/null; then
- kill -10 $(pidof dwm) $(pidof st)
-fi
-if pgrep -x nvim >/dev/null; then
- for socket in /tmp/nvim.*.pipe; do
- nvim --server "$socket" --remote-send '<C-\><C-N>:source $MYVIMRC<CR>'
- done
-fi
diff --git a/.local/bin/ytdl b/.local/bin/ytdl
index aea1e64..4f9e65d 100755
--- a/.local/bin/ytdl
+++ b/.local/bin/ytdl
@@ -30,7 +30,8 @@ m)
notify-send "Music downloaded" ||
(notify-send "Error: Download failed"; exit 1) ;;
p)
- NAME=$(printf '' | dmenu -p 'Name ')
+ # NAME=$(true | $DMENU -p 'Name ')
+ NAME=$(true | tofi --prompt-text 'Name ')
mkdir -p "$MUSICDIR/$NAME"
notify-send "Playlist download started"
yt-dlp -f 'ba' -x --embed-thumbnail --audio-format mp3\
diff --git a/.local/etc/cli-visualizer/colors/dracula b/.local/etc/cli-visualizer/colors/dracula
deleted file mode 100644
index a7d6ce5..0000000
--- a/.local/etc/cli-visualizer/colors/dracula
+++ /dev/null
@@ -1,8 +0,0 @@
-#6272A4
-#BD93F9
-#8BE9FD
-#50FA7B
-#F1FA8C
-#FFB86C
-#FF5555
-#FF79C6
diff --git a/.local/etc/cli-visualizer/config b/.local/etc/cli-visualizer/config
deleted file mode 100644
index 2b7aebf..0000000
--- a/.local/etc/cli-visualizer/config
+++ /dev/null
@@ -1,90 +0,0 @@
-##Refresh rate of the visualizers. A really high refresh rate may cause screen tearing. Default is 20. visualizer.fps=20
-
-##Sets the audio sources to use.
-##Currently available ones are "mpd", "pulse", "shmem", and "alsa". Defaults to "pulse".
-#audio.sources=pulse
-
-##vis tries to find the correct pulseaudio sink, however this will not work on all systems.
-##If pulse audio is not working with vis try switching the audio source. A list can be found by running the
-##command pacmd list-sinks | grep -e 'name:' -e 'index'
-#audio.pulse.source=0
-
-##Defaults to "/tmp/mpd.fifo"
-#mpd.fifo.path=/tmp/mpd.fifo
-
-##If set to false the visualizers will use mono mode instead of stereo. Some visualizers will
-##behave differently when mono is enabled. For example, spectrum show two sets of bars.
-audio.stereo.enabled=false
-
-##Specifies how often the visualizer will change in seconds. 0 means do not rotate. Default is 0.
-#visualizer.rotation.secs=10
-
-##Configures the samples rate and the cutoff frequencies.
-#audio.sampling.frequency=44100
-#audio.low.cutoff.frequency=30
-#audio.high.cutoff.frequency=22050
-
-##Applies scaling factor to both lorenz and ellipse visualizers. This is useful when the system audio is set
-#to a low volume.
-#visualizer.scaling.multiplier=1.0
-
-##Configures the visualizers and the order they are in. Available visualizers are spectrum,lorenz,ellipse.
-##Defaults to spectrum,ellipse,lorenz
-#visualizers=spectrum,ellipse,lorenz
-
-
-##Configures what character the spectrum visualizer will use. Specifying a space (e.g " ") means the
-##background will be colored instead of the character. Defaults to " ".
-#visualizer.spectrum.character=#
-
-##Spectrum bar width. Defaults to 2.
-#visualizer.spectrum.bar.width=2
-
-##The amount of space between each bar in the spectrum visualizer. Defaults to 1. It's possible to set this to
-##zero to have no space between bars
-#visualizer.spectrum.bar.spacing=1
-
-##Available smoothing options are monstercat, sgs, none.
-#visualizer.spectrum.smoothing.mode=sgs
-
-##This configures the falloff effect on the spectrum visualizer. Available falloff options are fill,top,none.
-##Defaults to "fill"
-#visualizer.spectrum.falloff.mode=fill
-
-##Configures how fast the falloff character falls. This is an exponential falloff so values usually look
-##best 0.9+ and small changes in this value can have a large effect. Defaults to 0.95
-#visualizer.spectrum.falloff.weight=0.95
-
-##Margins in percent of total screen for spectrum visualizer. All margins default to 0
-#visualizer.spectrum.top.margin=0.30
-#visualizer.spectrum.bottom.margin=0.10
-#visualizer.spectrum.right.margin=0.10
-#visualizer.spectrum.left.margin=0.10
-
-##Reverses the direction of the spectrum so that high freqs are first and low freqs last. Defaults to false.
-#visualizer.spectrum.reversed=false
-
-##This configures the sgs smoothing effect on the spectrum visualizer. More points spreads out the smoothing
-##effect and increasing passes runs the smoother multiple times on reach run. Defaults are points=3 and passes=1
-#visualizer.sgs.smoothing.points=3
-#visualizer.sgs.smoothing.passes=1
-
-
-##Configures what character the ellipse visualizer will use. Specifying a space (e.g " ") means the
-##background will be colored instead of the character. Defaults to "█".
-#visualizer.ellipse.character=#
-
-##The radius of each color ring in the ellipse visualizer. Defaults to 2.
-#visualizer.ellipse.radius=2
-
-
-##Configures what character the lorenz visualizer will use. Specifying a space (e.g " ") means the
-##background will be colored instead of the character. Defaults to "█".
-#visualizer.lorenz.character=#
-
-
-##Turns off overriding the user's terminal colors. This is true by default.
-#colors.override.terminal=false
-
-##Specifies the color scheme. The color scheme must be in ~/.config/vis/colors/ directory. The default scheme is "colors".
-colors.scheme=dracula
diff --git a/.local/etc/crontab b/.local/etc/crontab
index 7bf34ef..96c9db3 100644
--- a/.local/etc/crontab
+++ b/.local/etc/crontab
@@ -1,2 +1 @@
-*/30 * * * * kill -49 $(pidof sb); randwp
-0 0 * * * kill -48 $(pidof sb)
+*/30 * * * * randwp
diff --git a/.local/etc/foot/foot.ini b/.local/etc/foot/foot.ini
new file mode 100644
index 0000000..9728ab9
--- /dev/null
+++ b/.local/etc/foot/foot.ini
@@ -0,0 +1,61 @@
+font = monospace:size=10, Noto Emoji:size=8
+pad = 5x5
+#dpi-aware = yes
+#notify = notify-send -a ${app-id} -i ${app-id} ${title} ${body}
+
+[url]
+launch = plumber --url ${url}
+
+[scrollback]
+lines=4096
+
+[key-bindings]
+unicode-input=none
+show-urls-launch=Control+Shift+u
+show-urls-copy=Mod1+l
+search-start=Mod1+s
+
+scrollback-up-half-page=Mod1+u
+scrollback-down-half-page=Mod1+d
+scrollback-up-line=Mod1+k
+scrollback-down-line=Mod1+j
+clipboard-copy=Control+Shift+c
+clipboard-paste=Control+Shift+v
+primary-paste=Shift+Insert
+font-increase=Control+Shift+plus
+font-decrease=Control+Shift+minus
+font-reset=Control+equal
+#pipe-selected=[xargs -r firefox] none
+
+[search-bindings]
+find-prev=Control+Shift+n
+find-next=Control+n
+
+[mouse-bindings]
+primary-paste=none
+
+[cursor]
+color = 1d2021 ebdbb2
+
+[colors]
+alpha = 0.85
+foreground = ebdbb2
+background = 282828
+
+regular0 = 282828 # black
+regular1 = cc241d # red
+regular2 = 98971a # green
+regular3 = d79921 # yellow
+regular4 = 458588 # blue
+regular5 = b16286 # magenta
+regular6 = 689d6a # cyan
+regular7 = a89984 # white
+
+bright0 = 928374 # black
+bright1 = fb4934 # red
+bright2 = b8bb26 # green
+bright3 = fabd2f # yellow
+bright4 = 83a598 # blue
+bright5 = d3869b # magenta
+bright6 = 8ec07c # cyan
+bright7 = ebdbb2 # white
diff --git a/.local/etc/redshift/redshift.conf b/.local/etc/gammastep/config.ini
index 2e3db49..f833192 100644
--- a/.local/etc/redshift/redshift.conf
+++ b/.local/etc/gammastep/config.ini
@@ -1,4 +1,4 @@
-[redshift]
+[general]
fade=0
temp-night=3000
location-provider=manual
diff --git a/.local/etc/gtk-3.0/gtk.css b/.local/etc/gtk-3.0/gtk.css
new file mode 100644
index 0000000..08f8b75
--- /dev/null
+++ b/.local/etc/gtk-3.0/gtk.css
@@ -0,0 +1,7 @@
+/* No (default) titlebar on wayland */
+.titlebar, .css, headerbar {
+ background-image:none;
+ background-color: transparent;
+ margin-top: -100px;
+ margin-bottom: 50px;
+}
diff --git a/.local/etc/imv/config b/.local/etc/imv/config
new file mode 100644
index 0000000..16e398e
--- /dev/null
+++ b/.local/etc/imv/config
@@ -0,0 +1,4 @@
+[binds]
+n = next
+p = prev
+<Ctrl+p> = exec echo $imv_current_file
diff --git a/.local/etc/lf/cleaner b/.local/etc/lf/cleaner
deleted file mode 100755
index a184d84..0000000
--- a/.local/etc/lf/cleaner
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-if [ -n "$FIFO_UEBERZUG" ]; then
- printf '{"action": "remove", "identifier": "PREVIEW"}\n' > "$FIFO_UEBERZUG"
-fi
diff --git a/.local/etc/lf/lfrc b/.local/etc/lf/lfrc
index 2721cb8..3860ddc 100644
--- a/.local/etc/lf/lfrc
+++ b/.local/etc/lf/lfrc
@@ -1,47 +1,25 @@
-# Stolen from Luke Smith config
-# Note on Image Previews
-# For those wanting image previews, like this system, there are four steps to
-# set it up. These are done automatically for those that useed my Makefile users,
-# but I will state them here for others doing it manually.
-#
-# 1. ueberzug must be installed.
-# 2. The scope file (~/.local/etc/lf/scope for me), must have a command similar to
-# mine to generate ueberzug images.
-# 3. A `set cleaner` line as below is a cleaner script.
-# 4. lf should be started through a wrapper script (~/.local/bin/lfub for me)
-# that creates the environment for ueberzug. This command can be be aliased
-# in your shellrc (`alias lf="lfub") or if set to a binding, should be
-# called directly instead of normal lf.
-
-# Basic vars
set shellopts '-eu'
set ifs "\n"
set scrolloff 10
set icons
set period 1
-set hiddenfiles ".*:*.aux:*.log:*.bbl:*.bcf:*.blg:*.run.xml"
-set cleaner '~/.local/etc/lf/cleaner'
set previewer '~/.local/etc/lf/scope'
set autoquit true
+set sixel true
# cmds/functions
cmd open ${{
- case $(file --mime-type "$(readlink -f $f)" -b) in
+ case $(file --mime-type "$(readlink -f $f)" -b) in
image/vnd.djvu|application/pdf|application/octet-stream|application/postscript) setsid -f zathura $fx >/dev/null 2>&1 ;;
- text/*|application/json|inode/x-empty|application/x-subrip) $EDITOR $fx;;
- image/*) rotdir $f | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|tif\|ico\)\(_large\)*$" |
- setsid -f nsxiv -aio 2>/dev/null | while read -r file; do
- [ -z "$file" ] && continue
- lf -remote "send select \"$file\""
- lf -remote "send toggle"
- done & ;;
+ text/*|application/json|inode/x-empty|application/x-subrip) $EDITOR $fx ;;
+ image/*) imv $fx & ;;
audio/*|video/x-ms-asf) mpv --audio-display=no $f ;;
video/*) setsid -f mpv $f -quiet >/dev/null 2>&1 ;;
application/pdf|application/vnd.djvu|application/epub*) setsid -f zathura $fx >/dev/null 2>&1 ;;
application/pgp-encrypted) $EDITOR $fx ;;
- # *) for f in $fx; do setsid -f $OPENER $f >/dev/null 2>&1; done;;
- *) $EDITOR $fx ;;
- esac
+ # *) for f in $fx; do setsid -f $OPENER $f >/dev/null 2>&1; done;;
+ *) $EDITOR $fx ;;
+ esac
}}
cmd mkdir $mkdir -p "$@"
@@ -110,6 +88,7 @@ map o &mimeopen "$f"
map O $mimeopen --ask "$f"
map w $env IGNORE="" randwp "$f"
map p $plumber "$f"
+map d $dragon "$f"
map A :rename; cmd-end # at the very end
map c push A<c-u> # new rename
diff --git a/.local/etc/lf/scope b/.local/etc/lf/scope
index 2884bd9..38b2332 100755
--- a/.local/etc/lf/scope
+++ b/.local/etc/lf/scope
@@ -1,16 +1,12 @@
#!/bin/sh
+# File preview handler for lf
-# File preview handler for lf.
-
-set -C -f
-IFS="$(printf '%b_' '\n')"; IFS="${IFS%_}"
THEME=gruvbox-dark
image() {
- if [ -f "$1" ] && [ -n "$DISPLAY" ] && [ -z "$WAYLAND_DISPLAY" ] && command -V ueberzug >/dev/null 2>&1; then
- printf '{"action": "add", "identifier": "PREVIEW", "x": "%s", "y": "%s", "width": "%s", "height": "%s", "scaler": "contain", "path": "%s"}\n' "$4" "$5" "$(($2-1))" "$(($3-1))" "$1" > "$FIFO_UEBERZUG"
- else
- mediainfo "$6"
+ if [ -f "$1" ]; then
+ [ -n "$DISPLAY" ] && format=sixel || format=symbols
+ chafa -f "$format" -s "$2x$3" --animate off --polite on "$1"
fi
}
@@ -19,15 +15,7 @@ image() {
# be regenerated once seen.
case "$(file --dereference --brief --mime-type -- "$1")" in
- # image/vnd.djvu)
- # CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
- # [ ! -f "$CACHE" ] && djvused "$1" -e 'select 1; save-page-with /dev/stdout' | convert -density 200 - "$CACHE.jpg" > /dev/null 2>&1
- # image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1" ;;
- # image/svg+xml)
- # CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
- # [ ! -f "$CACHE" ] && inkscape --convert-dpi-method=none -o "$CACHE.png" --export-overwrite -D --export-png-color-mode=RGBA_16 "$1"
- # image "$CACHE.png" "$2" "$3" "$4" "$5" "$1" ;;
- image/*) image "$1" "$2" "$3" "$4" "$5" "$1" ;;
+ image/*) image "$@" ;;
text/html) w3m -dump "$1" ;; # lynx -width="$4" -display_charset=utf-8 -dump "$1" ;;
text/troff) man ./ "$1" | col -b ;;
text/* | */xml | application/json | application/x-ndjson) bat -p --theme=$THEME --terminal-width "$(($4-2))" -f "$1" ;;
@@ -35,20 +23,21 @@ case "$(file --dereference --brief --mime-type -- "$1")" in
video/* )
CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
[ ! -f "$CACHE" ] && ffmpegthumbnailer -i "$1" -o "$CACHE" -s 0
- image "$CACHE" "$2" "$3" "$4" "$5" "$1"
- ;;
+ image "$CACHE" "$2" "$3" "$4" "$5" ;;
*/pdf)
CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
[ ! -f "$CACHE.jpg" ] && pdftoppm -jpeg -f 1 -singlefile "$1" "$CACHE"
- image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1"
- ;;
- */epub+zip|*/mobi*)
- CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
- [ ! -f "$CACHE.jpg" ] && gnome-epub-thumbnailer "$1" "$CACHE.jpg"
- image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1"
- ;;
+ image "$CACHE.jpg" "$2" "$3" "$4" "$5" ;;
+ # */epub+zip|*/mobi*)
+ # CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
+ # [ ! -f "$CACHE.jpg" ] && gnome-epub-thumbnailer "$1" "$CACHE.jpg"
+ # image "$CACHE.jpg" "$2" "$3" "$4" "$5" ;;
application/*zip) atool --list -- "$1" ;;
*opendocument*) odt2txt "$1" ;;
+ # *.doc) catdoc "$1" ;;
+ # *.docx) docx2txt "$1" ;;
+ # *.xls|*.xlsx) ssconvert --export-type=Gnumeric_stf:stf_csv "$1" "fd://1" | bat -p --theme=$THEME --terminal-width "$(($4-2))" --language=csv -f "$1" ;;
application/pgp-encrypted) gpg -d -- "$1" ;;
+ application/x-object) nm "$1" ;;
+ application/x-iso9660-image) iso-info --no-header -l "$1" ;;
esac
-exit 1
diff --git a/.local/etc/mako/config b/.local/etc/mako/config
new file mode 100644
index 0000000..75b8638
--- /dev/null
+++ b/.local/etc/mako/config
@@ -0,0 +1,18 @@
+width=350
+height=400
+border-size=2
+default-timeout=5000
+font=monospace
+max-icon-size=32
+on-button-middle=exec makoctl menu -n "$id" "$MENU" -p "Select action:"
+
+background-color=#282828e6
+text-color=#ebdbb2e6
+border-color=#689d6ae6
+
+[urgency=low]
+border-color=#98971ae6
+
+[urgency=high]
+border-color=#cc241de6
+default-timeout=0
diff --git a/.local/etc/mimeapps.list b/.local/etc/mimeapps.list
index 264565a..44b06f9 100644
--- a/.local/etc/mimeapps.list
+++ b/.local/etc/mimeapps.list
@@ -16,8 +16,6 @@ image/gif=img.desktop;
inode/directory=file.desktop
x-scheme-handler/https=browser.desktop
x-scheme-handler/http=browser.desktop
-x-scheme-handler/ircs=irc.desktop
-x-scheme-handler/irc=irc.desktop
x-scheme-handler/git=git.desktop
x-scheme-handler/magnet=torrent.desktop;
application/x-bittorrent=torrent.desktop;
diff --git a/.local/etc/mpv/music/local.lua b/.local/etc/mpv/music/local.lua
index f4eaa5f..79805c5 100644
--- a/.local/etc/mpv/music/local.lua
+++ b/.local/etc/mpv/music/local.lua
@@ -1,31 +1,40 @@
local mp = require "mp"
local utils = require "mp.utils"
+local id = 0
+
local function notify_current_media()
- local path = mp.get_property_native("path")
- local origin, title = utils.split_path(path)
-
- local metadata = mp.get_property_native("metadata")
- if metadata then
- local function tag(name)
- return metadata[string.upper(name)] or metadata[name]
- end
-
- title = tag("title") or title
- origin = tag("artist_credit") or tag("artist") or ""
-
- local album = tag("album")
- if album then
- origin = string.format("%s — %s", origin, album)
- end
-
- local year = tag("original_year") or tag("year")
- if year then
- origin = string.format("%s (%s)", origin, year)
- end
- end
- mp.command_native({"run", "pkill", "-RTMIN", "sb"})
- return mp.command_native({"run", "env", "HERBE_ID=/music", "herbe", title, origin})
+ local path = mp.get_property_native("path")
+ local origin, title = utils.split_path(path)
+
+ local metadata = mp.get_property_native("metadata")
+ if metadata then
+ local function tag(name)
+ return metadata[string.upper(name)] or metadata[name]
+ end
+
+ title = tag("title") or title
+ origin = tag("artist_credit") or tag("artist") or ""
+
+ local album = tag("album")
+ if album then
+ origin = string.format("%s — %s", origin, album)
+ end
+
+ local year = tag("original_year") or tag("year")
+ if year then
+ origin = string.format("%s (%s)", origin, year)
+ end
+ end
+
+ mp.command("run pkill -RTMIN+1 waybar")
+ local cmd = "notify-send -p -r " .. tostring(id) .. " '" .. title .. "' '" .. origin .. "'"
+ local handle = io.popen(cmd)
+ if handle then
+ local new_id = handle:read("*a")
+ id = tonumber(new_id) or id
+ handle:close()
+ end
end
mp.register_event("file-loaded", notify_current_media)
diff --git a/.local/etc/mpv/music/online.lua b/.local/etc/mpv/music/online.lua
index 429e636..f790445 100644
--- a/.local/etc/mpv/music/online.lua
+++ b/.local/etc/mpv/music/online.lua
@@ -1,9 +1,17 @@
local mp = require "mp"
+local id = 0
+
local function notify_current_media(key)
- local title = mp.get_property(key)
- mp.command_native({"run", "pkill", "-RTMIN", "sb"})
- return mp.command_native({"run", "env", "HERBE_ID=/music", "herbe", title})
+ local title = mp.get_property(key)
+ mp.command("run pkill -RTMIN+1 waybar")
+ local cmd = "notify-send -p -r " .. tostring(id) .. " '" .. title .. "'"
+ local handle = io.popen(cmd)
+ if handle then
+ local new_id = handle:read("*a")
+ id = tonumber(new_id) or id
+ handle:close()
+ end
end
mp.observe_property("media-title", string, notify_current_media)
diff --git a/.local/etc/mpv/scripts/copy_path.lua b/.local/etc/mpv/scripts/copy_path.lua
index b3299d4..46afb69 100644
--- a/.local/etc/mpv/scripts/copy_path.lua
+++ b/.local/etc/mpv/scripts/copy_path.lua
@@ -1,9 +1,9 @@
local mp = require "mp"
local function copy_path()
- local path = mp.get_property("path")
- mp.osd_message(string.format("Copied to clipboard: %s", path))
- os.execute("printf '%s' "..path.." | xclip -sel clip")
+ local path = mp.get_property("path")
+ mp.osd_message(string.format("Copied to clipboard: %s", path))
+ os.execute("printf '%s' " .. path .. " | wl-copy")
end
mp.add_key_binding("y-y", "copy_path", copy_path);
diff --git a/.local/etc/nvim/after/plugin/lsp.lua b/.local/etc/nvim/after/plugin/lsp.lua
index 89e1682..ac2a2b0 100644
--- a/.local/etc/nvim/after/plugin/lsp.lua
+++ b/.local/etc/nvim/after/plugin/lsp.lua
@@ -9,51 +9,74 @@ vim.g.completion_enable_auto_popup = 1
-- end,
-- })
-local lsp_capabilities = require('cmp_nvim_lsp').default_capabilities()
-local lsp_attach = function(client, bufnr)
- -- Enable completion triggered by <c-x><c-o>
- vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
+local on_attach = function(_, bufnr)
+ local nmap = function(keys, func, desc)
+ if desc then
+ desc = "LSP: " .. desc
+ end
+ vim.keymap.set('n', keys, func, {
+ noremap = true,
+ silent = true,
+ buffer = bufnr,
+ desc = desc,
+ })
+ end
+
+ local telescope = require("telescope.builtin")
+
-- See `:help vim.lsp.*` for documentation on any of the below functions
- local bufopts = { noremap=true, silent=true, buffer=bufnr }
- vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
- vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
- vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
- vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts)
- vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts)
- --vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, bufopts)
- --vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
- --vim.keymap.set('n', '<space>wl', function()
- -- print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
- --end, bufopts)
- vim.keymap.set('n', '<space>df', vim.lsp.buf.type_definition, bufopts)
- vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts)
- vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts)
- vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
- vim.keymap.set('n', '<space>f', function() vim.lsp.buf.format { async = true } end, bufopts)
- vim.keymap.set('n', '<space>do', '<cmd>lua vim.diagnostic.open_float()<CR>', { noremap = true, silent = true })
- vim.keymap.set('n', '<space>dp', '<cmd>lua vim.diagnostic.goto_prev()<CR>', { noremap = true, silent = true })
- vim.keymap.set('n', '<space>dn', '<cmd>lua vim.diagnostic.goto_next()<CR>', { noremap = true, silent = true })
- vim.keymap.set('n', '<space>dd', '<cmd>Telescope diagnostics<CR>', { noremap = true, silent = true })
+ nmap("<leader>r", vim.lsp.buf.rename, "[r]ename")
+ nmap("<leader>ca", vim.lsp.buf.code_action, "[c]ode [a]ction")
+
+ nmap("gD", vim.lsp.buf.declaration, "[g]o to [D]eclaration")
+ nmap("gd", vim.lsp.buf.definition, "[g]o to [d]efinition")
+ -- nmap("gd", telescope.lsp_definitions, "[g]o to [d]efinition")
+ nmap("gr", telescope.lsp_references, "[g]o to [r]eferences")
+ nmap("gi", telescope.lsp_implementations, "[g]o to [i]mplementation")
+ nmap("<leader>td", telescope.lsp_type_definitions, "[t]ype [d]efinition")
+ nmap("<leader>ds", telescope.lsp_document_symbols, "[d]ocument [s]ymbols")
+ nmap("<leader>ws", telescope.lsp_dynamic_workspace_symbols, "[w]orkspace [s]ymbols")
+
+ nmap("K", vim.lsp.buf.hover, "Hover documenation")
+ nmap("<C-k>", vim.lsp.buf.signature_help, "Signature documenation")
+
+ nmap("<leader>do", vim.diagnostic.open_float, "[d]iagnostics [o]pen")
+ nmap("<leader>dp", vim.diagnostic.goto_prev, "[d]iagnostics [p]revious")
+ nmap("<leader>dn", vim.diagnostic.goto_next, "[d]iagnostics [n]ext")
+ nmap("<leader>dd", telescope.diagnostics, "[d]isplay [d]iagnostics")
+
+ -- nmap("<leader>wa", vim.lsp.buf.add_workspace_folder, "[w]orkspace [a]dd Folder")
+ -- nmap("<leader>wr", vim.lsp.buf.remove_workspace_folder, "[w]orkspace [r]emove Folder")
+ -- nmap('<leader>wl', function()
+ -- print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
+ -- end, '[w]orkspace [l]ist Folders')
+
+ vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_)
+ vim.lsp.buf.format()
+ end, { desc = 'Format current buffer with LSP' })
end
-- https://github.com/williamboman/mason-lspconfig.nvim#available-lsp-servers
local servers = {
- 'bashls',
- 'clangd',
- 'cssls',
- 'gopls',
- 'html',
- 'jedi_language_server',
- 'lua_ls',
- 'rust_analyzer',
- 'texlab',
- 'zls',
+ "bashls",
+ "clangd",
+ "cssls",
+ "gopls",
+ "html",
+ "jdtls",
+ "jedi_language_server",
+ "lua_ls",
+ "rust_analyzer",
+ "texlab",
+ "zls",
}
-for _, lsp in ipairs(servers) do
- require("lspconfig")[lsp].setup ({
- on_attach = lsp_attach,
- capabilities = lsp_capabilities,
+local capabilities = vim.lsp.protocol.make_client_capabilities()
+capabilities = require("cmp_nvim_lsp").default_capabilities(capabilities)
+for _, server_name in ipairs(servers) do
+ require("lspconfig")[server_name].setup({
+ on_attach = on_attach,
+ capabilities = capabilities,
})
end
@@ -83,11 +106,11 @@ cmp.setup({
},
mapping = cmp.mapping.preset.insert({
- ['<C-b>'] = cmp.mapping.scroll_docs(-4),
- ['<C-f>'] = cmp.mapping.scroll_docs(4),
- ['<C-Space>'] = cmp.mapping.complete(),
- ['<C-e>'] = cmp.mapping.abort(),
- ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Set `select` to `false` to only confirm explicitly selected items.
+ ["<C-b>"] = cmp.mapping.scroll_docs(-4),
+ ["<C-f>"] = cmp.mapping.scroll_docs(4),
+ ["<C-Space>"] = cmp.mapping.complete(),
+ ["<C-e>"] = cmp.mapping.abort(),
+ ["<CR>"] = cmp.mapping.confirm({ select = true }), -- Set `select` to `false` to only confirm explicitly selected items.
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
@@ -98,7 +121,7 @@ cmp.setup({
else
fallback()
end
- end, { "i", "s" }),
+ end, { 'i', 's' }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
@@ -107,22 +130,22 @@ cmp.setup({
else
fallback()
end
- end, { "i", "s" }),
+ end, { 'i', 's' }),
}),
sources = {
- { name = 'buffer' },
- { name = 'calc' },
- { name = 'luasnip' },
- { name = 'nvim_lsp' },
- { name = 'nvim_lsp_signature_help' },
- { name = 'path' },
- { name = 'treesitter' },
+ { name = "buffer" },
+ { name = "calc" },
+ { name = "luasnip" },
+ { name = "nvim_lsp" },
+ { name = "nvim_lsp_signature_help" },
+ { name = "path" },
+ { name = "treesitter" },
},
})
local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " }
for type, icon in pairs(signs) do
local hl = "DiagnosticSign" .. type
- vim.fn.sign_define(hl, { text = icon, texthl= hl, numhl = hl })
+ vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl })
end
diff --git a/.local/etc/nvim/after/plugin/misc.lua b/.local/etc/nvim/after/plugin/misc.lua
index 61b85b5..c62a82f 100644
--- a/.local/etc/nvim/after/plugin/misc.lua
+++ b/.local/etc/nvim/after/plugin/misc.lua
@@ -1,13 +1,12 @@
local map = vim.keymap.set
-- lazy
-map('n', "<leader>l", "<cmd>Lazy<cr>", { desc = "Lazy" })
+map('n', "<leader>l", "<cmd>Lazy<cr>", { desc = "Open Lazy" })
-- Telescope
local telescope = require("telescope.builtin")
--- map('n', "<leader>f", telescope.find_files)
-map('n', "<C-S>", telescope.find_files)
-map('n', "<C-G>", telescope.git_files)
+map('n', "<leader>f", telescope.find_files, { desc = "Find files" })
+map('n', "<C-g>", telescope.git_files)
-- NERDTree (see their README)
map('n', "<F2>", ":NERDTreeToggle<CR>")
@@ -16,16 +15,8 @@ vim.cmd("autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists(
-- Undotree
map('n', "<F3>", ":UndotreeToggle<CR>")
--- GitGutter update on write
-vim.api.nvim_create_autocmd("BufWritePost", { command = "GitGutter" })
-
-vim.g.zig_fmt_autosave = 0 -- too slow
-
--- map("i", "<C-H>", "copilot#Accept('<CR>')", {
--- expr = true,
--- replace_keycodes = false,
--- })
--- vim.g.copilot_no_tab_map = true
+-- Disable auto-format on save for zig, too slow
+vim.g.zig_fmt_autosave = 0
require("neotest").setup({
adapters = {
diff --git a/.local/etc/nvim/lua/plugins/lsp.lua b/.local/etc/nvim/lua/plugins/lsp.lua
index 665e14f..25458a1 100644
--- a/.local/etc/nvim/lua/plugins/lsp.lua
+++ b/.local/etc/nvim/lua/plugins/lsp.lua
@@ -3,7 +3,16 @@ return {
"neovim/nvim-lspconfig",
dependencies = {
-- LSP for neovim, must be loaded before lspconfig
- { "folke/neodev.nvim", setup = true },
+ { "folke/neodev.nvim", config = true },
+ {
+ "williamboman/mason-lspconfig.nvim",
+ opts = {
+ automatic_installation = true,
+ },
+ dependencies = {
+ { "williamboman/mason.nvim", config = true },
+ },
+ },
},
},
{
@@ -14,9 +23,7 @@ return {
{
"L3MON4D3/LuaSnip",
build = "make install_jsregexp",
- dependencies = {
- "ratakor/vim-snippets",
- },
+ dependencies = "ratakor/vim-snippets",
},
"hrsh7th/cmp-nvim-lsp",
diff --git a/.local/etc/nvim/lua/plugins/misc.lua b/.local/etc/nvim/lua/plugins/misc.lua
index 81bcf0a..a868d18 100644
--- a/.local/etc/nvim/lua/plugins/misc.lua
+++ b/.local/etc/nvim/lua/plugins/misc.lua
@@ -2,23 +2,39 @@ return {
-- Status bar
"nvim-lualine/lualine.nvim",
dependencies = {
- { "kyazdani42/nvim-web-devicons", setup = true },
+ { "kyazdani42/nvim-web-devicons", config = true },
},
-- Starting screen
"mhinz/vim-startify",
-- gc/gcc magic comment
- { "numToStr/Comment.nvim", config = true },
+ {
+ "numToStr/Comment.nvim",
+ opts = { ignore = "^$" },
+ },
-- FixWhitespace
"bronson/vim-trailing-whitespace",
-- HUD for git in vim
- "airblade/vim-gitgutter",
+ {
+ 'lewis6991/gitsigns.nvim',
+ opts = {
+ signs = {
+ add = { text = '+' },
+ change = { text = '~' },
+ delete = { text = '_' },
+ topdelete = { text = '‾' },
+ changedelete = { text = '~' },
+ untracked = { text = '' },
+ },
+ },
+ },
-- git in vim
--"tpope/vim-fugitive",
+ --"tpope/vim-rhubarb",
-- Fuzzy finder
{
@@ -26,30 +42,60 @@ return {
branch = "0.1.x",
dependencies = {
"nvim-lua/plenary.nvim",
+ {
+ "nvim-telescope/telescope-fzf-native.nvim",
+ build = "make",
+ config = function()
+ require("telescope").load_extension("fzf")
+ end,
+ },
},
},
-- History visualizer
"mbbill/undotree",
+ -- Evil AI
{
- "github/copilot.vim",
- enabled = false,
+ "zbirenbaum/copilot.lua",
+ enabled = true,
+ build = ":Copilot auth",
+ opts = {
+ panel = { enabled = false },
+ suggestion = {
+ enabled = true,
+ auto_trigger = true,
+ keymap = {
+ accept = "<C-h>",
+ dismiss = "<C-l>",
+ },
+ },
+ },
},
- -- Put a print statement with g?p or g?v
- { "andrewferrier/debugprint.nvim", setup = true },
-
-- Testing inside vim
{
"nvim-neotest/neotest",
dependencies = {
+ "nvim-neotest/nvim-nio",
"nvim-lua/plenary.nvim",
"antoinemadec/FixCursorHold.nvim",
+ "nvim-treesitter/nvim-treesitter",
+
"lawrence-laz/neotest-zig",
},
},
+ {
+ "folke/which-key.nvim",
+ event = "VeryLazy",
+ init = function ()
+ vim.opt.timeout = true
+ vim.opt.timeoutlen = 300
+ end,
+ config = true,
+ },
+
-- TODO: switch to chadtree?
"preservim/nerdtree",
@@ -57,6 +103,4 @@ return {
"ziglang/zig.vim",
"petertriho/nvim-scrollbar",
- -- Debugger (TODO + not in misc)
- --"mfussenegger/nvim-dap",
}
diff --git a/.local/etc/nvim/lua/plugins/noice.lua b/.local/etc/nvim/lua/plugins/noice.lua
index dbcf2c6..a213f74 100644
--- a/.local/etc/nvim/lua/plugins/noice.lua
+++ b/.local/etc/nvim/lua/plugins/noice.lua
@@ -31,9 +31,7 @@ return {
"MunifTanjim/nui.nvim",
{
"rcarriga/nvim-notify",
- opts = {
- background_colour = "#000000",
- },
+ opts = { background_colour = "#000000" },
},
},
},
diff --git a/.local/etc/nvim/lua/plugins/treesitter.lua b/.local/etc/nvim/lua/plugins/treesitter.lua
index 8482efc..ab40396 100644
--- a/.local/etc/nvim/lua/plugins/treesitter.lua
+++ b/.local/etc/nvim/lua/plugins/treesitter.lua
@@ -2,7 +2,7 @@ return {
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
- config = function ()
+ config = function()
require("nvim-treesitter.configs").setup {
ensure_installed = {
"bash",
@@ -16,6 +16,7 @@ return {
"gitignore",
"go",
"html",
+ "java",
"latex",
"lua",
"make",
@@ -25,12 +26,22 @@ return {
"regex",
"rust",
"scheme",
+ "sql",
"vim",
"vimdoc",
"zig",
},
- highlight = {
+ auto_install = false,
+ highlight = { enable = true },
+ indent = { enable = true },
+ incremental_selection = {
enable = true,
+ keymaps = {
+ init_selection = "<C-N>",
+ node_incremental = "<C-N>",
+ scope_incremental = false,
+ node_decremental = "<C-M>",
+ },
},
additional_vim_regex_highlighting = false,
rainbow = {
diff --git a/.local/etc/nvim/lua/settings.lua b/.local/etc/nvim/lua/settings.lua
index b9e82b6..97f5be4 100644
--- a/.local/etc/nvim/lua/settings.lua
+++ b/.local/etc/nvim/lua/settings.lua
@@ -31,7 +31,7 @@ vim.api.nvim_create_autocmd("FileType", { command = "setl fo-=ro fo+=tc" })
vim.api.nvim_create_autocmd("FileType", {
pattern = { "asm", "make", "sh" },
- callback = function ()
+ callback = function()
vim.opt_local.tabstop = 8
vim.opt_local.shiftwidth = 8
vim.opt_local.expandtab = false
@@ -40,24 +40,26 @@ vim.api.nvim_create_autocmd("FileType", {
-- vim.api.nvim_create_autocmd("FileType", {
-- pattern = { "html", "markdown", "tex" },
--- callback = function () vim.opt_local.spell = true end,
+-- callback = function()
+-- vim.opt_local.spell = true
+-- end,
-- })
-vim.api.nvim_create_autocmd({ "BufNewFile", "BufRead" }, {
- pattern = "*.zon",
- callback = function () vim.opt_local.filetype = "zig" end,
+local highlight_group = vim.api.nvim_create_augroup('YankHighlight', { clear = true })
+vim.api.nvim_create_autocmd('TextYankPost', {
+ callback = function()
+ vim.highlight.on_yank()
+ end,
+ group = highlight_group,
+ pattern = '*',
})
-
map('n', "<C-d>", "<C-d>zz")
map('n', "<C-u>", "<C-u>zz")
map('n', "ZQ", ":q<CR>")
-
--- Move to window using the <ctrl> hjkl keys
---map('n', "<C-h>", "<C-w>h", { desc = "Go to left window", remap = true })
---map('n', "<C-j>", "<C-w>j", { desc = "Go to lower window", remap = true })
---map('n', "<C-k>", "<C-w>k", { desc = "Go to upper window", remap = true })
---map('n', "<C-l>", "<C-w>l", { desc = "Go to right window", remap = true })
+map({ 'n', 'v' }, "<space>", "<Nop>", { silent = true })
+map('n', "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
+map('n', "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
-- https://github.com/mhinz/vim-galore#saner-behavior-of-n-and-n
map('n', 'n', "'Nn'[v:searchforward].'zv'", { expr = true, desc = "Next search result" })
@@ -67,10 +69,14 @@ map('n', "N", "'nN'[v:searchforward].'zv'", { expr = true, desc = "Prev search r
map('x', "N", "'nN'[v:searchforward]", { expr = true, desc = "Prev search result" })
map('o', "N", "'nN'[v:searchforward]", { expr = true, desc = "Prev search result" })
--- better indenting
+-- Better indenting
map('v', "<", "<gv")
map('v', ">", ">gv")
+-- Remap ; to : to avoid shifting
+map('n', ";", ":")
+map('v', ";", ":")
+
local function abbrev(mode, lhs, rhs)
vim.cmd(mode .. "abbrev " .. lhs .. " " .. rhs)
end
diff --git a/.local/etc/picom.conf b/.local/etc/picom.conf
deleted file mode 100644
index 1faead9..0000000
--- a/.local/etc/picom.conf
+++ /dev/null
@@ -1,9 +0,0 @@
-vsync = true;
-shadow = true;
-shadow-exclude = ["class_g !*= 'dmenu'"];
-fading = true;
-fade-exclude = ["class_g !*= 'dmenu'"];
-opacity-rule = [
- "90:name *= 'Chromium'",
- "90:class_g = 'herbe'"
-];
diff --git a/.local/etc/qBittorrent/dracula.qbtheme b/.local/etc/qBittorrent/dracula.qbtheme
deleted file mode 100644
index d96e48e..0000000
--- a/.local/etc/qBittorrent/dracula.qbtheme
+++ /dev/null
Binary files differ
diff --git a/.local/etc/river/init b/.local/etc/river/init
new file mode 100755
index 0000000..d7dbb5e
--- /dev/null
+++ b/.local/etc/river/init
@@ -0,0 +1,163 @@
+#!/bin/sh
+# shellcheck disable=SC2016
+
+### WM config
+
+riverctl focus-follows-cursor normal
+riverctl attach-mode bottom
+riverctl hide-cursor when-typing enabled
+riverctl set-repeat 50 300
+riverctl keyboard-layout "fr(us)"
+riverctl default-layout rivertile
+
+riverctl background-color 0x282828
+riverctl border-color-focused 0x458588
+riverctl border-color-unfocused 0x3c3836
+riverctl border-color-urgent 0xcc241d
+
+# TODO
+#riverctl rule-add -app-id "imv" float
+
+### WM bindings
+
+riverctl map normal Super F toggle-fullscreen
+riverctl map normal Super+Shift Q close
+riverctl map normal Super Space toggle-float
+
+for i in $(seq 1 9); do
+ tags=$((1 << (i - 1)))
+ riverctl map normal Super "$i" set-focused-tags $tags
+ riverctl map normal Super+Shift "$i" set-view-tags $tags
+ riverctl map normal Super+Control "$i" toggle-focused-tags $tags
+ riverctl map normal Super+Shift+Control "$i" toggle-view-tags $tags
+done
+tags1to9=$(((1 << 9) - 1))
+riverctl map normal Super 0 set-focused-tags $tags1to9
+riverctl map normal Super+Shift 0 set-view-tags $tags1to9
+
+riverctl map normal Super Tab focus-previous-tags
+riverctl map normal Super+Shift Tab send-to-previous-tags
+
+riverctl map normal Super J focus-view next
+riverctl map normal Super K focus-view previous
+riverctl map normal Super+Shift Return zoom
+riverctl map normal Super+Shift J swap next
+riverctl map normal Super+Shift K swap previous
+
+# next/previous or left/right
+riverctl map normal Super Period focus-output next
+riverctl map normal Super Comma focus-output previous
+riverctl map normal Super+Shift Period send-to-output next
+riverctl map normal Super+Shift Comma send-to-output previous
+
+riverctl map normal Super H send-layout-cmd rivertile 'main-ratio -0.05'
+riverctl map normal Super L send-layout-cmd rivertile 'main-ratio +0.05'
+riverctl map normal Super+Shift H send-layout-cmd rivertile 'main-count +1'
+riverctl map normal Super+Shift L send-layout-cmd rivertile 'main-count -1'
+
+riverctl map-pointer normal Super BTN_LEFT move-view
+riverctl map-pointer normal Super+Shift BTN_LEFT resize-view
+riverctl map-pointer normal Super BTN_RIGHT resize-view
+
+# Super+Alt+{H,J,K,L} to move views
+#riverctl map normal Super+Alt H move left 100
+#riverctl map normal Super+Alt J move down 100
+#riverctl map normal Super+Alt K move up 100
+#riverctl map normal Super+Alt L move right 100
+
+# Super+Alt+Control+{H,J,K,L} to snap views to screen edges
+#riverctl map normal Super+Alt+Control H snap left
+#riverctl map normal Super+Alt+Control J snap down
+#riverctl map normal Super+Alt+Control K snap up
+#riverctl map normal Super+Alt+Control L snap right
+
+# Super+Alt+Shift+{H,J,K,L} to resize views
+#riverctl map normal Super+Alt+Shift H resize horizontal -100
+#riverctl map normal Super+Alt+Shift J resize vertical 100
+#riverctl map normal Super+Alt+Shift K resize vertical -100
+#riverctl map normal Super+Alt+Shift L resize horizontal 100
+
+# Super+{Up,Right,Down,Left} to change layout orientation
+#riverctl map normal Super Up send-layout-cmd rivertile "main-location top"
+#riverctl map normal Super Right send-layout-cmd rivertile "main-location right"
+#riverctl map normal Super Down send-layout-cmd rivertile "main-location bottom"
+#riverctl map normal Super Left send-layout-cmd rivertile "main-location left"
+
+### Custom bindings
+
+riverctl map normal Super Return spawn "$TERMINAL"
+riverctl map normal Super D spawn 'exec $(tofi-run)'
+riverctl map normal None XF86ScreenSaver spawn 'glitchlock'
+riverctl map normal Super+Shift X spawn 'glitchlock'
+riverctl map normal None XF86Battery spawn 'battery'
+riverctl map normal Super+Shift R spawn 'randwp'
+riverctl map normal None Print spawn 'screenshot'
+
+riverctl map normal None F7 spawn "$TERMINAL -e dmenurecord"
+#riverctl map normal Super B spawn "$BROWSER"
+riverctl map normal Super N spawn "$TERMINAL -e sh -c 'cd $XDG_DATA_HOME/notes; lf'"
+riverctl map normal Super+Shift N spawn "$TERMINAL -e newsboat"
+
+riverctl map -repeat normal None XF86AudioRaiseVolume spawn 'wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 2%+'
+riverctl map -repeat normal Super Equal spawn 'wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 2%+'
+riverctl map -repeat normal None XF86AudioLowerVolume spawn 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-'
+riverctl map -repeat normal Super Minus spawn 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-'
+riverctl map normal None XF86Launch1 spawn 'wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle'
+riverctl map normal None F6 spawn 'wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle'
+
+riverctl map normal Super M spawn 'music'
+riverctl map normal Super+Shift M spawn 'musiccmd'
+riverctl map normal None XF86AudioPrev spawn 'musiccmd prev'
+riverctl map normal None XF86AudioNext spawn 'musiccmd next'
+riverctl map normal None XF86AudioPlay spawn 'musiccmd cycle'
+riverctl map normal None XF86AudioStop spawn 'musiccmd stop'
+riverctl map normal Super+Shift Left spawn 'musiccmd prev'
+riverctl map normal Super+Shift Right spawn 'musiccmd next'
+riverctl map normal Super+Shift Down spawn 'musiccmd cycle'
+riverctl map normal Super+Shift Up spawn 'musiccmd stop'
+
+riverctl map normal Super S spawn 'dmenusearch web'
+riverctl map normal Super A spawn 'dmenusearch aur'
+riverctl map normal Super Y spawn 'dmenusearch youtube'
+riverctl map normal Super W spawn 'dmenusearch man'
+riverctl map normal Super E spawn 'dmenusearch emoji'
+
+riverctl map normal Super+Shift E spawn 'shutdown-menu'
+riverctl map normal Super U spawn 'dmenuhandler "$(wl-paste)"'
+riverctl map normal Super+Shift U spawn 'plumber --sel'
+#riverctl map-pointer normal None BTN_MIDDLE spawn 'plumber'
+#riverctl map normal None button8 spawn 'plumber --sel'
+#riverctl map normal None button9 close
+#riverctl map normal None button10 spawn 'musiccmd'
+
+# reload config
+riverctl map normal Super Escape spawn 'kill -USR2 $(pidof waybar); makoctl reload'
+
+# toggle bar
+riverctl map normal Super+Shift B spawn 'kill -USR1 $(pidof waybar)'
+# TODO: toggle gaps
+#riverctl map normal Super+Shift G ...
+# TODO: cycle layout (toggle floating mode)
+#riverctl map normal Super+Shift Space ...
+# TODO: toggle transparence
+#riverctl map normal Control P spawn 'killall picom || picom -b'
+
+### Start programs
+
+# TODO
+spawn_once() {
+ #pidof -q "$1" || riverctl spawn "$*"
+ riverctl spawn "$*"
+}
+
+randwp
+spawn_once pipewire
+spawn_once foot --server
+spawn_once scron -f "$XDG_CONFIG_HOME/crontab" -n
+spawn_once gammastep
+spawn_once mako
+spawn_once waybar
+spawn_once rivertile -view-padding 0 -outer-padding 0 -main-ratio 0.55
+spawn_once swayidle -w \
+ timeout 300 "glitchlock" \
+ timeout 600 "wlopm --off '*'" resume "wlopm --on '*'"
diff --git a/.local/etc/sb/config b/.local/etc/sb/config
deleted file mode 100644
index fac030e..0000000
--- a/.local/etc/sb/config
+++ /dev/null
@@ -1,17 +0,0 @@
-# Name Active Signal
-music = true # 34
-cputemp = true # 35
-cpu = false # 36
-memory = false # 37
-battery = true # 38
-wifi = true # 39
-netspeed = false # 40
-localip = false # 41
-publicip = false # 42
-volume = true # 43
-mic = true # 44
-news = false # 45
-weather = true # 46
-daypercent = false # 47
-date = true # 48
-time = true # 49
diff --git a/.local/etc/swaylock/config b/.local/etc/swaylock/config
new file mode 100644
index 0000000..7679f04
--- /dev/null
+++ b/.local/etc/swaylock/config
@@ -0,0 +1,7 @@
+daemonize
+ignore-empty-password
+show-failed-attempts
+indicator-caps-lock
+indicator-radius=100
+font=monospace
+scaling=fill
diff --git a/.local/etc/sx/dracula b/.local/etc/sx/dracula
deleted file mode 100644
index c6eb505..0000000
--- a/.local/etc/sx/dracula
+++ /dev/null
@@ -1,67 +0,0 @@
-! vim:ft=xdefaults
-
-!! Transparency
-!*.alpha: 0.85
-!#define TRANSPARENT #77e9e7e5
-
-!! Font
-!*.font: monospace:size=10
-!herbe.font_pattern: monospace:size=12
-
-!! Colors
-/* name normal brigth */
-/* black 0 8 */
-/* red 1 9 */
-/* green 2 10 */
-/* yellow 3 11 */
-/* blue 4 12 */
-/* purple 5 13 */
-/* cyan 6 14 */
-/* white 7 15 */
-
-!st.bellvolume: +100
-
-!! Gaps
-!dwm.enablegaps: +1
-dwm.gaps: +10
-!herbe.pos_y: +40
-
-!! Dracula
-*.foreground: #F8F8F2
-*.background: #282A36
-*.color0: #191A21
-*.color1: #FF5555
-*.color2: #50FA7B
-*.color3: #F1FA8C
-*.color4: #BD93F9
-*.color5: #FF79C6
-*.color6: #8BE9FD
-*.color7: #ABB2BF
-*.color8: #44475A
-*.color9: #FF6E6E
-*.color10: #69FF94
-*.color11: #FFFFA5
-*.color12: #D6ACFF
-*.color13: #FFA9DF
-*.color14: #A4FFFF
-*.color15: #FFFFFF
-*.normfgcolor: #F8F8F2
-*.normbgcolor: #282A36
-dwm.normbordercolor: #44475A
-dwm.selfgcolor: #BD93F9
-dwm.selbgcolor: #44475A
-dwm.selbordercolor: #BD93F9
-dwm.orange: #ffb86c
-dwm.last: #6272a4
-dmenu.selfgcolor: #F8F8F2
-dmenu.selbgcolor: #6272A4
-dmenu.highlight: #FFB86C
-herbe.border: #BD93F9
-herbe.line_spacing: +10
-herbe.padding: +15
-herbe.width: +400
-herbe.border_size: +2
-herbe.pos_x: +15
-herbe.pos_y: +30
-herbe.corner: +1
-herbe.duration: +5
diff --git a/.local/etc/sx/gruvbox-dark b/.local/etc/sx/gruvbox-dark
deleted file mode 100644
index 67536cf..0000000
--- a/.local/etc/sx/gruvbox-dark
+++ /dev/null
@@ -1,69 +0,0 @@
-! vim:ft=xdefaults
-
-!! Transparency
-!*.alpha: 0.85
-!#define TRANSPARENT #77e9e7e5
-
-!! Font
-!*.font: monospace:size=10
-!herbe.font_pattern: monospace:size=12
-
-!! Colors
-/* name normal brigth */
-/* black 0 8 */
-/* red 1 9 */
-/* green 2 10 */
-/* yellow 3 11 */
-/* blue 4 12 */
-/* purple 5 13 */
-/* cyan 6 14 */
-/* white 7 15 */
-
-!st.bellvolume: +100
-
-!! Gaps
-!dwm.enablegaps: +1
-dwm.gaps: +10
-!herbe.pos_y: +40
-
-!! Gruvbox Dark
-*.foreground: #ebdbb2
-*.background: #1d2021
-*.color0: #1d2021
-*.color1: #cc241d
-*.color2: #98971a
-*.color3: #d79921
-*.color4: #458588
-*.color5: #b16286
-*.color6: #689d6a
-*.color7: #a89984
-*.color8: #928374
-*.color9: #fb4934
-*.color10: #b8bb26
-*.color11: #fabd2f
-*.color12: #83a598
-*.color13: #d3869b
-*.color14: #8ec07c
-*.color15: #ebdbb2
-*.color256: #1d2021
-*.color257: #ebdbb2
-*.normfgcolor: #ebdbb2
-*.normbgcolor: #282828
-dwm.normbordercolor: #3c3836
-dwm.selfgcolor: #458588
-dwm.selbgcolor: #32302f
-dwm.selbordercolor: #458588
-dwm.orange: #D65D0E
-dwm.last: #7c6f64
-dmenu.selfgcolor: #ebdbb2
-dmenu.selbgcolor: #98971a
-dmenu.highlight: #fe8019
-herbe.border: #98971a
-herbe.line_spacing: +10
-herbe.padding: +15
-herbe.width: +400
-herbe.border_size: +2
-herbe.pos_x: +15
-herbe.pos_y: +30
-herbe.corner: +1
-herbe.duration: +5
diff --git a/.local/etc/sx/gruvbox-light b/.local/etc/sx/gruvbox-light
deleted file mode 100644
index 6489765..0000000
--- a/.local/etc/sx/gruvbox-light
+++ /dev/null
@@ -1,67 +0,0 @@
-! vim:ft=xdefaults
-
-!! Transparency
-!*.alpha: 0.85
-!#define TRANSPARENT #77e9e7e5
-
-!! Font
-!*.font: monospace:size=10
-!herbe.font_pattern: monospace:size=12
-
-!! Colors
-/* name normal brigth */
-/* black 0 8 */
-/* red 1 9 */
-/* green 2 10 */
-/* yellow 3 11 */
-/* blue 4 12 */
-/* purple 5 13 */
-/* cyan 6 14 */
-/* white 7 15 */
-
-!st.bellvolume: +100
-
-!! Gaps
-!dwm.enablegaps: +1
-dwm.gaps: +10
-!herbe.pos_y: +40
-
-!! Gruvbox Light
-*.foreground: #3c3836
-*.background: #fbf1c7
-*.color0: #fbf1c7
-*.color1: #cc241d
-*.color2: #98971a
-*.color3: #d79921
-*.color4: #458588
-*.color5: #b16286
-*.color6: #689d6a
-*.color7: #7c6f64
-*.color8: #928374
-*.color9: #9d0006
-*.color10: #79740e
-*.color11: #b57614
-*.color12: #076678
-*.color13: #8f3f71
-*.color14: #427b58
-*.color15: #3c3836
-*.normfgcolor: #3c3836
-*.normbgcolor: #fbf1c7
-dwm.normbordercolor: #ebdbb2
-dwm.selfgcolor: #458588
-dwm.selbgcolor: #f2e5bc
-dwm.selbordercolor: #458588
-dwm.orange: #D65D0E
-dwm.last: #BDAE93
-dmenu.selfgcolor: #3c3836
-dmenu.selbgcolor: #98971A
-dmenu.highlight: #af3a03
-herbe.border: #98971A
-herbe.line_spacing: +10
-herbe.padding: +15
-herbe.width: +400
-herbe.border_size: +2
-herbe.pos_x: +15
-herbe.pos_y: +30
-herbe.corner: +1
-herbe.duration: +5
diff --git a/.local/etc/sx/sxrc b/.local/etc/sx/sxrc
deleted file mode 100755
index acfaeef..0000000
--- a/.local/etc/sx/sxrc
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-killall picom scron sxhkd pipewire wireplumber xbanish redshift sb
-
-if [ "$(xrandr | awk '/DP-2/ {print $2}')" = 'connected' ]; then
- xrandr --output LVDS-1 --off
-else
- picom -b
-fi
-
-setxkbmap fr us
-xrandr --dpi 100
-randwp
-scron -f "$XDG_CONFIG_HOME/crontab"
-themeswap gruvbox
-
-sxhkd &
-pipewire &
-xbanish &
-redshift &
-sb -b
-sh -c "sleep 3; kill -10 $(pidof sb)" &
-
-exec dwm
diff --git a/.local/etc/sx/themes b/.local/etc/sx/themes
deleted file mode 100644
index aeee873..0000000
--- a/.local/etc/sx/themes
+++ /dev/null
@@ -1,3 +0,0 @@
-dracula
-gruvbox-dark
-gruvbox-light
diff --git a/.local/etc/sxhkd/sxhkdrc b/.local/etc/sxhkd/sxhkdrc
deleted file mode 100644
index a244432..0000000
--- a/.local/etc/sxhkd/sxhkdrc
+++ /dev/null
@@ -1,52 +0,0 @@
-super + Escape
- kill -10 $(pidof sxhkd) $(pidof sb)
-{super + Return,button8)
- $TERMINAL
-super + d
- dmenu_run -hp "browser,mail,chromium"
-XF86ScreenSaver
- slock & xset dpms force off
-XF86Battery
- battery
-Scroll_Lock
- themeswap
-super + shift + r
- randwp
-Print
- screenshot
-{super + equal,XF86AudioRaiseVolume}
- wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 2%+; kill -43 $(pidof sb)
-{super + minus,XF86AudioLowerVolume}
- wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-; kill -43 $(pidof sb)
-XF86Launch1
- wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle; kill -43 $(pidof sb)
-F6
- wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle; kill -44 $(pidof sb)
-F7
- $TERMINAL -e dmenurecord
-# super + b
-# $BROWSER
-super + n
- $TERMINAL -e sh -c 'cd "$XDG_DATA_HOME/notes"; lfub'
-super + shift + n
- $TERMINAL -e newsboat
-super + {m,shift + m}
- {music,musiccmd}
-XF86Audio{Prev,Next,Play,Stop}
- musiccmd {prev,next,cycle,stop}
-super + shift + {Left, Right, Down, Up}
- musiccmd {prev,next,cycle,stop}
-super + {s,a,y,w,e}
- dmenusearch {web,aur,youtube,man,emoji}
-super + shift + w
- dmenuoff
-super + u
- dmenuhandler "$(xclip -o)"
-{super + shift + u, button2}
- plumber --sel
-button9
- xdo kill
-button10
- musiccmd
-ctrl + p
- killall picom || picom -b
diff --git a/.local/etc/tofi/config b/.local/etc/tofi/config
new file mode 100644
index 0000000..5b21c24
--- /dev/null
+++ b/.local/etc/tofi/config
@@ -0,0 +1,13 @@
+width = 100%
+height = 100%
+border-width = 0
+outline-width = 0
+padding-left = 33%
+padding-top = 33%
+result-spacing = 25
+num-results = 5
+font = monospace
+require-match = false
+background-color = #000a
+text-color = #ebdbb2
+selection-color = #689d6a
diff --git a/.local/etc/vis/colors b/.local/etc/vis/colors
deleted file mode 120000
index 51edaeb..0000000
--- a/.local/etc/vis/colors
+++ /dev/null
@@ -1 +0,0 @@
-../cli-visualizer/colors \ No newline at end of file
diff --git a/.local/etc/vis/config b/.local/etc/vis/config
deleted file mode 120000
index ed868ad..0000000
--- a/.local/etc/vis/config
+++ /dev/null
@@ -1 +0,0 @@
-../cli-visualizer/config \ No newline at end of file
diff --git a/.local/etc/waybar/config b/.local/etc/waybar/config
new file mode 100644
index 0000000..a39abae
--- /dev/null
+++ b/.local/etc/waybar/config
@@ -0,0 +1,105 @@
+{
+ "layer": "top",
+ // "height": 30,
+ // "spacing": 4, // Gaps between modules (4px)
+ "modules-left": [
+ "river/tags",
+ "river/window" // TODO add padding to the right
+ ],
+ "modules-right": [
+ "custom/music",
+ "temperature",
+ // TODO "bluetooth",
+ // TODO "cpu",
+ // TODO "memory",
+ "battery",
+ "network",
+ "wireplumber",
+ "custom/weather",
+ "clock"
+ ],
+ "river/window": {
+ "max-length": 50,
+ "tooltip": false
+ },
+ // TODO: change color based on hour
+ "clock": {
+ "format": " {:%H:%M}",
+ "format-alt": " {:%b %d (%a)}",
+ "tooltip-format": "<tt><small>{calendar}</small></tt>",
+ "calendar": {
+ "format": {
+ "today": "<b><u>{}</u></b>"
+ }
+ }
+
+ },
+ "temperature": {
+ "format": " {temperatureC}°C",
+ "format-critical": " {temperatureC}°C",
+ "critical-threshold": 80,
+ "tooltip": false
+ },
+ "battery": {
+ "full-at": 95,
+ "format": "{icon} {capacity}%",
+ "format-icons": ["󰂎", "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"],
+ "states": {
+ "100": 100,
+ "90": 90,
+ "80": 80,
+ "70": 70,
+ "60": 60,
+ "50": 50,
+ "40": 40,
+ "30": 30,
+ "20": 20,
+ "10": 10,
+ "0": 0
+ },
+ "format-charging-100": "󰂅 {capacity}%",
+ "format-charging-90": "󰂋 {capacity}%",
+ "format-charging-80": "󰂊 {capacity}%",
+ "format-charging-70": "󰢞 {capacity}%",
+ "format-charging-60": "󰂉 {capacity}%",
+ "format-charging-50": "󰢝 {capacity}%",
+ "format-charging-40": "󰂈 {capacity}%",
+ "format-charging-30": "󰂇 {capacity}%",
+ "format-charging-20": "󰂆 {capacity}%",
+ "format-charging-10": "󰢜 {capacity}%",
+ "format-charging-0": "󰢟 {capacity}%",
+ "tooltip": true
+ },
+ "network": {
+ "interface": "wlan0",
+ "format-wifi": "{icon} {essid}",
+ "format-disconnected": "󰤯",
+ "tooltip-format": "{ifname}: {ipaddr}/{cidr}",
+ "format-icons": [ "󰤟", "󰤢", "󰤨" ],
+ "tooltip": true
+ },
+ "wireplumber": {
+ "format": "{icon} {volume}%",
+ "format-icons": ["", "", ""],
+ "tooltip": false,
+ "max-volume": 150,
+ "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
+ },
+ "custom/music": {
+ "exec": "$XDG_CONFIG_HOME/waybar/scripts/music.sh",
+ "interval": "once",
+ "signal": 1,
+ "max-length": 40,
+ "tooltip": false,
+ "on-click": "musiccmd"
+ },
+ "custom/weather": {
+ "exec": "$XDG_CONFIG_HOME/waybar/scripts/weather.sh",
+ "return-type": "json",
+ "format": "{}",
+ "interval": 3600,
+ "tooltip": true
+ }
+}
+
+// vim: ft=jsonc
diff --git a/.local/etc/waybar/scripts/music.sh b/.local/etc/waybar/scripts/music.sh
new file mode 100755
index 0000000..dc6d9cd
--- /dev/null
+++ b/.local/etc/waybar/scripts/music.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+SOCKET=${XDG_RUNTIME_DIR:-/tmp}/music.sock
+
+[ -z "$(pgrep music)" ] && exit 1
+
+strip() {
+ tmp="${1##{\"data\":\"}"
+ printf '%s\n' "${tmp%%\",\"request_id\":0,\"error\":\"success\"\}}"
+}
+
+pause=$(strip "$(printf '{ "command": ["get_property_string", "pause"] }\n'\
+ | socat - "$SOCKET" 2> /dev/null)")
+title=$(strip "$(printf '{ "command": ["get_property", "media-title"] }\n'\
+ | socat - "$SOCKET" 2> /dev/null)")
+
+if [ "$pause" = "yes" ]; then
+ printf ' %s' "$title"
+elif [ "$pause" = "no" ]; then
+ printf ' %s' "$title"
+fi
diff --git a/.local/etc/waybar/scripts/weather.sh b/.local/etc/waybar/scripts/weather.sh
new file mode 100755
index 0000000..09fb9f4
--- /dev/null
+++ b/.local/etc/waybar/scripts/weather.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+trimall() {
+ set -f
+ # shellcheck disable=SC2086,SC2048
+ set -- $*
+ printf '%s\n' "$*"
+ set +f
+}
+
+for _ in 1 2 3 4 5; do
+ if text=$(curl -s "wttr.in?format=1"); then
+ text=$(trimall "$text")
+ if tooltip=$(curl -s "https://wttr.in?format=4"); then
+ tooltip=$(trimall "$tooltip")
+ printf "{\"text\":\"%s\",\"tooltip\":\"%s\"}" "$text" "$tooltip"
+ exit 0
+ fi
+ fi
+ sleep 2
+done
diff --git a/.local/etc/waybar/style.css b/.local/etc/waybar/style.css
new file mode 100644
index 0000000..4126233
--- /dev/null
+++ b/.local/etc/waybar/style.css
@@ -0,0 +1,159 @@
+@import "gruvbox.css";
+
+* {
+ border: none;
+ border-radius: 0;
+ font-family: monospace;
+ /* font-size: 14px; */
+ min-height: 0;
+}
+
+window#waybar {
+ /* background-color: transparent; */
+ background: rgba(40, 40, 40, 1);
+ border-bottom: 3px solid rgba(69, 133, 136, 1);
+ color: @bright_white;
+}
+
+/* #tags { */
+/* margin-top: 8px; */
+/* margin-left: 8px; */
+/* padding: 1px; */
+/* background-color: #073642; base02 */
+/* border: 2px solid #93a1a1; base1 */
+/* } */
+
+#tags button {
+ /* Disable animation on click */
+ transition-property: none;
+
+ /* margin: 1px; */
+ /* padding: 1px; */
+ /* color: #93a1a1; base1 */
+ /* border: 2px solid #073642; base02 */
+
+ padding: 0 5px;
+ background: transparent;
+ color: @bright_white;
+ border-bottom: 3px solid transparent;
+}
+
+/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
+/* #tags button:hover { */
+/* box-shadow: inherit; */
+/* text-shadow: inherit; */
+/* background: #073642; base02 */
+/* } */
+
+#tags button.focused {
+ /* color: #073642; base02 */
+ /* background-color: #93a1a1; base1 */
+ /* border: 2px solid #073642; base02 */
+ background: @blue;
+ border-bottom: 3px solid @blue;
+}
+
+/* #tags button.occupied { */
+/* border: 2px solid #93a1a1; base1* */
+/* } */
+
+/* #tags button.urgent { */
+/* border: 2px solid @red; */
+/* } */
+
+/* #tags button.occupied.urgent { */
+/* border: 2px solid @red; */
+/* } */
+
+/* #tags button.focused.occupied { */
+/* color: #073642; base02 */
+/* background-color: #93a1a1; base1 */
+/* border: 2px solid #93a1a1; base1 */
+/* } */
+
+/* #battery, */
+/* #wireplumber, */
+/* #clock, */
+/* #mode, */
+/* #cpu, */
+/* #memory, */
+/* #network, */
+/* #temperature { */
+/* padding: 1px 5px; */
+/* margin-top: 8px; */
+/* margin-left: 8px; */
+/* background-color: #073642; base02 */
+/* color: #93a1a1; base1 */
+/* border: 2px solid #93a1a1; base1 */
+/* } */
+
+#wireplumber.muted {
+ color: @orange;
+}
+
+/* #temperature { */
+/* margin-right: 8px; */
+/* } */
+/**/
+/* #clock { */
+/* margin-left: 0px; */
+/* margin-right: 0px; */
+/* } */
+/**/
+/* #cpu.warning, */
+/* #memory.warning { */
+/* border: 2px solid @yellow; */
+/* } */
+/**/
+/* #cpu.critical, */
+/* #memory.critical, */
+/* #temperature.critical { */
+/* border: 2px solid @red; */
+/* } */
+
+#mode, #clock, #battery {
+ padding: 0 10px;
+ margin: 0 5px;
+}
+
+#mode {
+ background: @red;
+ border-bottom: 3px solid @white_b;
+}
+
+#clock {
+ background-color: @bright_orange;
+ color: @white_b;
+}
+
+#battery {
+ background-color: @bright_white;
+ color: @background;
+}
+
+#battery.charging {
+ color: @background;
+ background-color: @green;
+}
+
+@keyframes blink {
+ to {
+ background-color: @bright_white;
+ color: @background;
+ }
+}
+
+#idle_inhibitor, #pulseaudio, #custom-openvpn, #network, #cpu, #memory, #temperature, #backlight, #battery, #clock, #tray {
+ padding: 0 6px;
+ margin: 0 3px;
+}
+
+#battery.warning:not(.charging) {
+ background: @red;
+ color: @bright_white;
+ animation-name: blink;
+ animation-duration: 0.5s;
+ animation-timing-function: linear;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
diff --git a/.local/etc/zls.json b/.local/etc/zls.json
deleted file mode 100644
index 190af9c..0000000
--- a/.local/etc/zls.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "warn_style": true
-}
diff --git a/.local/etc/zsh/.zprofile b/.local/etc/zsh/.zprofile
index 41cfbe3..0fe5342 100644
--- a/.local/etc/zsh/.zprofile
+++ b/.local/etc/zsh/.zprofile
@@ -1,2 +1,10 @@
-# Automatically start Xorg on tty1 if not already running.
-[ "$(tty)" = "/dev/tty1" ] && ! pidof -s Xorg >/dev/null 2>&1 && exec sx
+# Automatically start River on tty1 if not already running.
+if [ "$(tty)" = "/dev/tty1" ] && ! pidof -s river >/dev/null 2>&1; then
+ rm "$XDG_CONFIG_HOME/chromium/SingletonLock" >/dev/null 2>&1
+
+ export XDG_SESSION_TYPE=wayland
+ export XDG_CURRENT_DESKTOP=river
+
+ timestamp=$(date +%F-%R)
+ exec dbus-run-session river -log-level warning > "/tmp/river-$timestamp.log" 2>&1
+fi
diff --git a/.local/etc/zsh/.zshenv b/.local/etc/zsh/.zshenv
index 43ae250..7e463a3 100644
--- a/.local/etc/zsh/.zshenv
+++ b/.local/etc/zsh/.zshenv
@@ -1,15 +1,18 @@
# Update PATH
-PATH="$HOME/.local/bin:$PATH"
+PATH="$PATH:$HOME/.local/bin"
PATH="$PATH:$CARGO_HOME/bin"
PATH="$PATH:$GOPATH/bin"
export PATH
+export MANPATH="$HOME/.local/share/man:/usr/local/share/man:/usr/share/man"
+#export LD_LIBRARY_PATH="$HOME/.local/lib:/usr/local/lib:/usr/lib"
# Default programs
-export EDITOR="editor"
-export TERMINAL="st"
-export BROWSER="browser"
+export EDITOR="nvim"
+export TERMINAL="footclient"
+export BROWSER="chromium"
export ROOTCMD="doas"
export MANPAGER="manpager"
+export DMENU="tofi"
# XDG directories
export XDG_CONFIG_HOME="$HOME/.local/etc"
@@ -38,16 +41,16 @@ export OPAMROOT="$XDG_DATA_HOME/opam"
export NUGET_PACKAGES="$XDG_CACHE_HOME/NuGetPackages"
export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npmrc"
export PASSWORD_STORE_DIR="$XDG_DATA_HOME/pass"
-export TERMINFO="$XDG_DATA_HOME/terminfo"
-export TERMINFO_DIRS="$XDG_DATA_HOME/terminfo:/usr/share/terminfo"
export W3M_DIR="$XDG_STATE_HOME/w3m"
export CUDA_CACHE_PATH="$XDG_CACHE_HOME/nv"
export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME/java"
export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc"
+export GRADLE_USER_HOME="$XDG_DATA_HOME/gradle"
# Misc
# umask 0077
export GPG_TTY=$(tty)
+export MOZ_ENABLE_WAYLAND=1
export DOTNET_CLI_TELEMETRY_OPTOUT=true
export MANWIDTH=80
export LESS=-R
@@ -58,5 +61,3 @@ export SAVEHIST=10000
# export CC="zig cc"
export CC=cc
CC="$CC -Wall"
-export LD_LIBRARY_PATH=/usr/local/lib
-export LS_COLORS="$(vivid generate gruvbox-dark):di=1;34"
diff --git a/.local/etc/zsh/.zshrc b/.local/etc/zsh/.zshrc
index f0e0277..86103af 100644
--- a/.local/etc/zsh/.zshrc
+++ b/.local/etc/zsh/.zshrc
@@ -1,6 +1,5 @@
# fun stuff
quand
-#shuf -n 1 "$XDG_DATA_HOME/navi" # database from https://github.com/HappyHippo77/NaviFrequencyList
eza -aa --color=auto --group-directories-first
# Source aliases
diff --git a/.local/etc/zsh/aliasrc b/.local/etc/zsh/aliasrc
index 7ebf23a..94e7c9f 100644
--- a/.local/etc/zsh/aliasrc
+++ b/.local/etc/zsh/aliasrc
@@ -12,12 +12,12 @@ alias cfv="cd $XDG_CONFIG_HOME/nvim"
alias cfz="$EDITOR $ZDOTDIR/.zshrc"
alias cfe="$EDITOR $ZDOTDIR/.zshenv"
alias cfa="$EDITOR $ZDOTDIR/aliasrc"
-alias cfx="$EDITOR $XDG_CONFIG_HOME/sx/sxrc"
+alias cfr="$EDITOR $XDG_CONFIG_HOME/river/init"
alias cfn="$EDITOR $XDG_CONFIG_HOME/newsboat/config"
alias cfu="$EDITOR $XDG_CONFIG_HOME/newsboat/urls"
alias cfq="$EDITOR $XDG_CONFIG_HOME/quand/config"
-alias cfh="$EDITOR $XDG_CONFIG_HOME/sxhkd/sxhkdrc"
-alias cfsb="$EDITOR $XDG_CONFIG_HOME/sb/config"
+alias cfb="cd $XDG_CONFIG_HOME/waybar"
+alias cft="$EDITOR $XDG_CONFIG_HOME/foot/foot.ini"
alias cfc="$EDITOR $XDG_CONFIG_HOME/crontab"
alias dt="cd $XDG_DATA_HOME"
alias pkg="$EDITOR $XDG_DATA_HOME/packages"
@@ -38,15 +38,12 @@ alias cac="cd $XDG_CACHE_HOME"
# shorter name and basic stuff changed
[ -x "$(command -v nvim)" ] && alias vimdiff="nvim -d"
alias e="$EDITOR"
-alias v="bat --style=numbers,changes --tabs 8"
alias se="$ROOTCMD $EDITOR"
alias cc="$CC"
alias "$ROOTCMD"="$ROOTCMD " # run root commands with aliases
-alias lf="lfub"
alias :q="exit"
alias :Q="exit"
alias bc="bc -ql"
-alias img="nsxiv -a"
alias z="zathura"
alias timer="termdown"
alias video-dlp="ytdl v ."
@@ -67,9 +64,11 @@ alias cb="cargo build"
alias g="grep -RIn --exclude-dir=.git"
alias cfmt="astyle -A3 -t8 -p -xg -H -xB -U -n"
alias gofmt="gofmt -s -w"
+alias javafmt="astyle --mode=java --style=google -n"
+alias fork="setsid -f"
# verbosity and colors
-alias rm="rm -vI"
+alias rm="trash -v" # "rm -vI"
alias rmdir="rmdir -v"
alias cp="cp -riv"
alias mv="mv -iv"
@@ -77,13 +76,13 @@ alias mkdir="mkdir -pv"
alias grep="grep --color=auto -n"
alias diff="diff --color=auto"
alias ip="ip --color=auto"
-alias ls="eza --color=auto --group-directories-first"
+alias ls="eza --color=auto --group-directories-first --hyperlink"
alias sl="ls"
alias ll="ls -lho --git"
alias la="ls -aa"
alias lr="ls -R"
alias tree="ls -T"
-alias cat="bat"
+alias cat="bat --style=numbers,changes --tabs 8"
alias du="dust -r"
alias duf="duf -hide special"
alias fd="fd -HI"
diff --git a/.local/share/applications/browser.desktop b/.local/share/applications/browser.desktop
index 1c3d6b3..e538943 100644
--- a/.local/share/applications/browser.desktop
+++ b/.local/share/applications/browser.desktop
@@ -1,4 +1,4 @@
[Desktop Entry]
Type=Application
Name=Browser
-Exec=browser %u
+Exec=chromium %u
diff --git a/.local/share/applications/file.desktop b/.local/share/applications/file.desktop
index 1f767e1..f145faa 100644
--- a/.local/share/applications/file.desktop
+++ b/.local/share/applications/file.desktop
@@ -1,4 +1,4 @@
[Desktop Entry]
Type=Application
Name=File Manager
-Exec=st -d %u
+Exec=footclient -D %u
diff --git a/.local/share/applications/git.desktop b/.local/share/applications/git.desktop
index 95dc5a8..9312b6e 100644
--- a/.local/share/applications/git.desktop
+++ b/.local/share/applications/git.desktop
@@ -1,4 +1,4 @@
[Desktop Entry]
Type=Application
Name=git
-Exec=st -e git clone %u
+Exec=footclient -e git clone %u
diff --git a/.local/share/applications/img.desktop b/.local/share/applications/img.desktop
index 5783107..a3b14e5 100644
--- a/.local/share/applications/img.desktop
+++ b/.local/share/applications/img.desktop
@@ -1,4 +1,4 @@
[Desktop Entry]
Type=Application
Name=Image viewer
-Exec=/usr/bin/nsxiv -a %f
+Exec=imv %f
diff --git a/.local/share/applications/irc.desktop b/.local/share/applications/irc.desktop
deleted file mode 100644
index 1bafde3..0000000
--- a/.local/share/applications/irc.desktop
+++ /dev/null
@@ -1,4 +0,0 @@
-[Desktop Entry]
-Type=Application
-Name=IRC
-Exec=st -e irc -xdg %u
diff --git a/.local/share/applications/pdf.desktop b/.local/share/applications/pdf.desktop
index 8c38677..9dbcb2e 100644
--- a/.local/share/applications/pdf.desktop
+++ b/.local/share/applications/pdf.desktop
@@ -1,4 +1,4 @@
[Desktop Entry]
Type=Application
Name=PDF reader
-Exec=/usr/bin/zathura %u
+Exec=zathura %u
diff --git a/.local/share/applications/text.desktop b/.local/share/applications/text.desktop
index f34b8f0..f5fa9b1 100644
--- a/.local/share/applications/text.desktop
+++ b/.local/share/applications/text.desktop
@@ -1,4 +1,4 @@
[Desktop Entry]
Type=Application
Name=Text editor
-Exec=st -e nvim %u
+Exec=footclient -e nvim %u
diff --git a/.local/share/applications/torrent.desktop b/.local/share/applications/torrent.desktop
index 935f8d7..4de12ae 100644
--- a/.local/share/applications/torrent.desktop
+++ b/.local/share/applications/torrent.desktop
@@ -1,4 +1,4 @@
[Desktop Entry]
Type=Application
Name=Torrent
-Exec=/usr/bin/qbittorrent %u
+Exec=qbittorrent %u
diff --git a/.local/share/applications/video.desktop b/.local/share/applications/video.desktop
index 5698a7e..08785ed 100644
--- a/.local/share/applications/video.desktop
+++ b/.local/share/applications/video.desktop
@@ -1,4 +1,4 @@
[Desktop Entry]
Type=Application
Name=Video
-Exec=/usr/bin/mpv -quiet %f
+Exec=mpv -quiet %f
diff --git a/.local/share/navi b/.local/share/navi
deleted file mode 100644
index e4248d4..0000000
--- a/.local/share/navi
+++ /dev/null
@@ -1,2584 +0,0 @@
-oe I, me pn
-lu to be v:cp
-ke not part
-a that (subclause marker) part
-nga you pn
-po he, she pn
-fwa that (subclause marker) ctr
-ulte and (clausal conjunction) conj
-alu that is, in other words conj
-tute person n
-hrh LOL ("laughing out loud") intj
-sì and (noun conjunction) part
-mì in, on adp:len
-slä but conj
-tsun can, be able v:m
-fko one, they (unspecified agent) pn
-tsa’u that (thing) pn
-ma O (vocative marker) part
-si (auxiliary verb) v:si
-new want v:tr
-taluna because conj
-zene must v:m
-sunu be pleasing, be likeable, bring enjoyment v:in
-nìtxan much (abstract), very adv
-nìteng too, also, as well, likewise adv
-pxay many adj
-fte so that, in order to conj
-srak yes/no (question marker for yes-or-no questions) part
-kelku home, house n
-fpìl think v:tr
-eyktan leader n
-set now adv
-kaltxì hello intj
-’efu feel, sense, perceive v:tr
-ne to, towards (direction) adp
-’u thing (object, fact, abstraction) n
-lì’u word n
-lahe other, else adj
-len happen, occur v:in
-plltxe speak v:tr
-ha so, in that case adv
-slu become v:cp
-krr time n
-trr day n
-fa with, by means of adp
-hu with (accompaniment) adp
-fìtrr today adv
-srane yes part
-frapo everyone pn
-nì’ul more adv
-kop too, also, additionally adv
-ta from (locative), from (temporal sense with other time words) adp
-fu or conj
-txo if conj
-zìsìt year n
-tsakrr then, at that time, that time adv
-tsakem that (action) n
-rel image, picture n
-uvan play (a game) nv:si
-nì’aw only adv
-teri about, concerning adp
-lefngap metallic adj
-txanlokxe clan or tribal domain, country n
-tok be at, occupy a space v:tr
-eltu brain n
-tìkangkem work nv:si
-mip new adj
-olo’eyktan clan leader n
-tam suffice, be okay v:in
-pamrel write nv:si
-peng tell v:tr
-hapxì part n
-krra when, at the time that conj
-fìtseng here, this place n
-omum know v:tr
-’a’aw a few, several adj
-pum ‘one’ (refers to another instance of a previously mentioned noun) pn
-pongu group of people, party n
-yom eat v:tr
-hahaw sleep v:in
-lì’fya language n
-teynga that answer (indirect question marker) ctr
-kea no (before a noun) adj
-mi yet, still, as before adv
-pawm ask v:tr
-säomum (piece of) information n
-za’u come v:in
-ngop create v:tr
-sno his self, her self, its self pn
-nìmun again adv
-nìna’vi like the Na’vi, Na’vily adv
-tsnì that (function word) ctr
-pängkxo chat, converse, have a conversation v:in
-tseng place n
-syaw call v:in
-sar use v:tr
-ya air n
-kxì hello (casual) intj
-san (start-of-quote particle) part
-nì’it a bit, a small amount (abstract) adv
-koren rule, guideline n
-terkup die v:in
-irayo thank you, thanks n
-kä go v:in
-sìltsan good (of its kind), well done adj
-ftu from (direction) adp
-fmi try, attempt v:tr
-sran yes (colloquial) part
-li already adv
-na like, as adp
-kem action, deed n
-srake yes/no (question marker for yes-or-no questions) part
-krrka during adp
-ngian however adv
-tse’a see (physical sense) v:tr
-yuesey U.S.A. n:pr
-kxawm perhaps, maybe adv
-kanom acquire, get v:tr
-nìwotx all (of), in toto, completely adv
-nìhawng too, excessively adv
-lì’ukìng sentence n
-sngä’i begin, start v:m
-tslam understand v:tr
-kehe no part
-oeng we, us (inclusive) pn
-tìng give v:tr
-txan much adj
-kin need v:tr
-kifkey world (physical, solid) n
-tìlen event, happening n
-inan read (e.g. the forest), gain knowledge from sensory input v:tr
-zup fall v:in
-tìtxen to wake, to waken, wake up nv:si
-hum leave, depart v:in
-ftxey choose v:tr
-mllte agree v:in
-run find, discover v:tr
-lena’vi having to do with the Na’vi, the People adj
-fya’o path, way, manner n
-herwì snow n
-sìlpey hope v:in
-makto ride v:tr
-tsatseng there, that place n
-tekre skull n
-atxkxe land n
-nume learn v:in
-apxa large adj
-fpom wellbeing, peace, happiness n
-pay water, liquid n
-tsenge place n
-ska’a destroy v:tr
-fpi for the sake of, for the benefit of adp:len
-talun because of, due to adp
-fmawnta that news (reported observations marker) ctr
-maw after (time) adp
-sìk (end-of-quote particle) part
-smon be familiar, be known (with dative) v:in
-txantsan excellent adj
-ko ‘let’s’ (particle to solicit agreement) part
-’awve first (ordinal) adj
-pelun why inter
-tafral therefore, because of that adv
-frato than all (superlative marker) part
-tse well (conversation starter) intj
-tskxekeng exercise, train nv:si
-ngäzìk difficult, hard adj
-ìlä by, via, following, according to adp:len
-’eylan friend n
-kezemplltxe of course, needless to say adv
-yrrap storm n
-tìngäzìk difficulty, problem n
-nìngay truly adv
-pa’li direhorse n
-latem change v:in
-zum object, thing (physical or tangible) n
-nìn look at v:tr
-pe’un decide v:tr
-ngeyn tired adj
-frakrr always, all the time adv
-tìfkeytok state, condition, situation n
-trram yesterday adv
-puk book n
-lam seem, appear v:in
-fmawn news, something to report n
-tìfmetok test n
-lefpom happy, peaceful, joyous, pleasant adj
-olo’ clan n
-sweylu should v:in
-syuve food (collective noun, cannot be pluralised) n
-yafkeyk weather n
-pxìm often adv
-hapxìtu member n
-pamtseo music n
-tengkrr while, same time as conj
-pefya how inter
-alo time, turn, instance, one of a number of repeated or recurring actions n
-keftxo unhappy, upset adj
-kefyak isn’t it?, right? part
-var to persist in a state, to continue to perform an action v:m
-to ‘than’ (comparative marker) part
-tsray village n
-yune listen to (intentionally) v:tr
-’o’ bringing fun, exciting adj
-fkeytok exist v:in
-ioang animal, beast n
-’em cook v:tr
-numeyu student n
-ftia study v:tr
-’rrta Earth n:pr
-tompa rain n
-tut continuation marker part
-nitram happy (of people) adj
-ftang stop v:m
-ftxozä celebration, happy occasion n
-karyu teacher n
-srung help, assistance n
-fayluta these words (reported speech marker) ctr
-kam ago adp
-’eko attack v:tr
-zo be well, be intact, be as it should be, work correctly or as nature intended v:in
-kintrr week n
-mawkrr after, afterwards, later adv
-tsamsiyu warrior n
-natkenong for example, as an example conj
-fìtsenge here, this place n
-lok close to adp
-leymkem protest v:in
-txele matter (subject) n
-ftxìlor delicious, good tasting adj
-txon night n
-yayayr confusion n
-kllte ground n
-txin main, primary adj
-hufwe wind n
-nìkeftxo unfortunately, sadly adv
-tstxo name n
-tì’efu feeling n
-kar teach v:tr
-tawtute Skyperson, human n
-säfpìl idea n
-tätxaw return v:in
-txantsawtsray large city, metropolis n
-sä’o tool, utensil n
-som hot adj
-soaia family n
-spxin sick adj
-txep fire n
-hufwa although conj
-tìftiatu researcher n
-vur story n
-sop travel v:in
-hì’i small, little (in size) adj
-rolun Eureka! I’ve found it! intj
-rutxe please intj
-stum almost adv
-trray tomorrow adv
-kosman wonderful, terrific, fantastic adj
-skxawng moron, idiot n
-steftxaw examine, check v:tr
-pehem what (action) inter
-pam sound n
-nìftxan so, to such an extent adv
-txampay sea, ocean n
-wew cold adj
-kawtu no one pn
-ikran ikran, banshee n
-kempe what (action) inter
-nìltsan well adv
-srer appear, materialize, come into view v:in
-kxìm command, order, assign a task v:tr
-’ì’awn remain, stay v:in
-’eveng child n
-na’vi the People, indigenous Pandoran sentient race n:pr
-tspang kill v:tr
-tìtxula construction, constructed thing n
-fkan resemble in a sensory modality, come to the senses as v:in
-oare moon n
-nivi sleeping hammock (general term) n
-rewon morning n
-muve second (ordinal) adj
-txolar dollar n
-ye’rìn soon adv
-kuma that (as a result) conj
-ham previous adj
-tìran walk v:in
-tsawa that (subclause marker) ctr
-tsawke sun; Alpha Centauri A n
-nìwin fast, quickly adv
-sleyku produce v:tr
-rä’ä do not (for negative imperatives, commands only) part
-tsawl big (in size), tall adj
-zong save, defend v:tr
-tutan man, male (person) n
-säspxin disease, sickness, illness n
-ultxa meeting n
-tsunslu may, be possible v:in
-tung allow v:tr
-nga’ contain v:tr
-zey special, distinct adj
-tson obligation, duty, imposed requirement n
-taw sky n
-lehrrap dangerous adj
-srefwa before conj
-tslolam get it, I understand intj
-wìntxu show v:tr
-fyape how inter
-hay next adj
-tsafya that way, like that adv
-’upxare message n
-sko something as, in the capacity of, or in the role of, something else adp:len
-kangay valid adj
-ngim long (physical length) adj
-vospxì month n
-stxeli gift n
-leykek enforce v:tr
-wutso dinner, served meal n
-tìralpeng translation, interpretation n
-tsonta to (with kxìm) conj
-tsranten matter, be of importance v:in
-numtseng school n
-tuteo somebody, someone pn
-nari eye n
-pey wait, wait for v:in
-hek to be curious, odd, strange, unexpected v:in
-kolan I mean, rather (selfcorrecting) intj
-hasey done, finished adj
-nìprrte’ pleasurably, gladly, with pleasure adv
-pxiset right now adv
-tìpängkxo conversation, discussion n
-keng even, so much as adv
-eyawr correct, right adj
-layon black adj
-vay up to adp
-tìkan aim, goal, purpose, target n
-tsawtsray small or medium-sized city n
-fe’ bad adj
-luke without adp
-tsyänel TV channel n
-pxor explode v:in
-mawfwa after conj
-oeyktìng explain (why) v:tr
-pxaw around adp
-nawm great, noble adj
-tswa’ forget v:tr
-mokri voice n
-fpe’ send v:tr
-kemlì’u verb n
-syura energy (physical or spiritual) n
-lonu release, let go v:tr
-postì (forum/blog) post n
-ralpeng interpret, translate v:tr
-tanhì star, bioluminescent freckle n
-peu what (thing) inter
-salew proceed, go v:?
-nìyey directly, straight to the point adv
-ätxäle request n
-frrfen visit v:tr
-uniltìrantokx avatar n
-sa’nok mother n
-stawm hear v:tr
-tskxe rock, stone n
-ngong lethargic, lacking sufficient energy, lazy adj
-lawk discourse on, talk about, say something concerning v:tr
-wä against (as in: fight against) adp:len
-zeyko heal, fix v:tr
-tìpawm question n
-letokx bodily, physical adj
-kawkrr never adv
-nulkrr longer (time) adv
-lun reason n
-lor beautiful, pleasant to the senses adj
-nì’awve first adv
-nantangtsyìp dog (earth animal); lit. little nantang n
-tokx body n
-’umtsa medicine n
-rey live v:in
-ral meaning n
-tsawlultxa large gathering, conference n
-eyk lead v:tr
-tul run v:in
-nìfkrr lately, currently adv
-hìtxoa excuse me intj
-’ewll plant n
-hayalovay until next time intj
-tel receive v:tr
-ean blue, green adj
-swey best adj
-palulukantsyìp cat (earth animal); lit. little palulukan n
-nìsung besides, additionally, furthermore adv
-ngopyu creator n
-txasunu love greatly, enjoy tremendously v:in
-txankrr for a long time adv
-näk drink v:tr
-’ä’ oops! intj
-ro at (locative) adp:len
-rikx move, shift position v:in
-kilvan river n
-utral tree n
-na’rìng forest n
-ram mountain n
-law clear, certain adj
-kum result n
-lrrtok smile nv:si
-hona endearing, adorable, cute adj
-txen awake adj
-yoa in exchange for adp
-ìì um, er intj
-txasom very hot adj
-meuia honor n
-nìpxi especially, pointedly, unambiguously adv
-tìsraw hurt, be painful nv:si
-ftue easy, simple adj
-txintìn occupation, primary role in society n
-hìkrr second, very short time n
-sìn on, onto adp
-fnu quiet, be quiet v:in
-’i’a end, conclude v:in
-spaw believe v:tr
-sngum worry n
-tìyawr correctness n
-pähem arrive v:in
-yem put, place v:tr
-tsim source n
-txintseng base of operations n
-weptseng website n
-atan light n
-txopu fear n
-tìlatem change (abstract concept) n
-skxakep probable adj
-’ìp disappear, vanish, recede from view v:in
-nìsìlpey hopefully adv
-hawnu protect, shelter v:tr
-rou be, or get drunk v:in
-nìfya’o in a manner adv
-tìkxuke safety n
-nìfkeytongay actually, as a matter of fact adv
-ka across, covering thoroughly adp
-unil dream n
-loi egg n
-sla’tsu describe v:tr
-wrrpa outside n
-letsranten important adj
-tìkangkemvi project, piece of work n
-tswayon fly v:in
-srekrr before, already, ahead of time adv
-tsam war n
-fìkem this (action) pn
-spe’e capture v:tr
-tìkin need n
-tsmuk sibling n
-vewng look after, take care of, be responsible for v:tr
-uran boat n
-sempul father n
-tsleng false adj
-frawzo all is well, everything is fine or OK intj
-sung add v:tr
-rìk leaf n
-tìrey life n
-tì’i’a ending, conclusion n
-nì’i’a finally, at long last adv
-txula build, construct v:tr
-lefkrr current adj
-vaykrr until conj
-hì’ang insect n
-fwew look for, seek, search v:tr
-ki but rather, but instead conj
-släkop but also adv
-alunta because, from the reason conj
-wem fight v:in
-nemfa into, inside adp
-zerok remember v:tr
-hawl prepare v:tr
-kxeyey error, mistake n
-kan aim, to direct a weapon or other object at a target v:tr
-lekoren lawlike adj
-tì’eyng answer, response n
-takuk strike, beat, slap v:tr
-holpxay number n
-ayu things n
-nekx burn, consume v:tr
-txampxì majority, most, large part n
-’it bit, a small amount n
-sang warm adj
-yewla disappointment, emotional letdown, failed expectation n
-rol sing v:?
-tstxolì’u noun n
-tseri note, notice v:tr
-txe’lan heart n
-ngay true adj
-nì’ul’ul increasingly, more and more adv
-txawew very cold adj
-steyki anger, make someone angry v:tr
-tstu closed, shut, overcast (for cloudy skies) adj
-slan support (emotional, social or personal support) v:tr
-txepram volcano n
-säwäsul competition n
-skxir wound nv:si
-syor relax, chill out v:in
-tup instead of, rather than conj
-vawm dark adj
-teya fill (with dative of thing filled) nv:si
-zoslu heal, become well, get fixed v:in
-wur cool, chilly adj
-neytiri female Na’vi of the Omatikaya Clan n:pr
-tun red, orange adj
-yawne beloved adj
-eo before, in front of (place) adp
-yì shelf, ledge, level, step, rung n
-nìtam enough adv
-tare connect, relate to, have a relationship with v:tr
-zeykoyu healer n
-kllpxìltu territory n
-okup milk n
-key face n
-rawn replace, substitute v:tr
-vefya system, process, procedure, approach n
-toltem shoot v:tr
-pxawngip environment n
-hìmtxewvay minimally adv
-sre before (time) adp:len
-sa rise to a challenge v:in
-ewro euro n
-keteng different adj
-ken’aw not only adv
-txonam last night adv
-tsngawvìk cry, weep v:in
-flä succeed v:in
-wätu opponent n
-kxumpay viscous liquid, gel n
-sä’eoio ceremony, ritual, rite n
-spono island n
-ta’leng skin n
-kxanì forbidden adj
-tsyosyu food made from flour n
-’eyng answer, respond v:in
-nìmwey calmly, peacefully adv
-ngaytxoa sorry, my apologies (acknowledgment of guilt and regret) intj
-’ärìp move v:tr
-leymfe’ complain v:in
-spulmokri phone, telephone n
-hifwo flee, escape v:in
-vin request, ask for v:tr
-kawng bad, evil adj
-wan hide v:tr
-tsaktap violence n
-rim yellow adj
-uo behind adp
-hol few adj
-lì’upuk dictionary n
-tìsop journey n
-syep trap v:tr
-tìreyn train n
-kenong model, represent, exemplify v:in
-’awsiteng together adv
-wou be amazing, fascinating (slang) v:in
-muntrr weekend n
-fìfya this way, like this adv
-sim be near v:in
-tolel Eureka! I found it! I understand! intj
-tsan’ul improve, get better v:in
-hrrap danger n
-vey meat, any food of animal origin (including fowl, fish, insects, eggs, milk) n
-tìftia study n
-fmokx jealousy, envy n
-’aku remove, take away, take off v:tr
-kintrram last week n
-lek heed, obey v:tr
-syayvi luck, chance n
-tìftxey choice n
-europa Europe n:pr
-spuwin old, former adj
-muntxatan husband, male spouse n
-payoang fish n
-wiya expression of warning or frustration, ’damn!’ intj
-zawprrte’ be enjoyable v:in
-sa’sem parent or set of parents n
-kekem no action or activity n
-pesu who inter
-tewti wow, expression of surprise and pleasure intj
-nìsok recently adv
-fra’u everything pn
-fratrr daily, every day adv
-kerusey dead adj
-nìlam apparently adv
-stä’nìpam recording n
-am’a doubt n
-kxa mouth n
-eywa’eveng Pandora n:pr
-fmetok test v:tr
-srey version n
-pxeyve third (ordinal) adj
-yrr wild, natural (something in its original, unmodified, untamperedwith natural state) adj
-yur wash v:tr
-penghrr warn v:in
-etrìp favorable, auspicious adj
-lew cover, lid n
-ep’ang complex adj
-poe she pn
-lamaytxa flood n
-tuté woman, female (person) n
-rum ball n
-oeyk cause n
-swizaw arrow n
-’ur sight, look, appearance n
-wätx be bad at v:tr
-mo space, hollow, enclosed open area n
-fwel broken adj
-weyn draw, illustrate v:tr
-srefey expect v:tr
-voìk behavior, how one conducts oneself n
-ohakx hungry adj
-fngap metal n
-kaym evening (before twilight), late afternoon n
-kxakx break, snap in two v:in
-kxap threaten nv:si
-rusey alive, living, living thing n
-hipx control v:tr
-kllfro’ be responsible v:in
-reyfya way of living, culture n
-srätx annoy, bother v:tr
-fuke or not conj
-le’ìnglìsì English, of the English language adj
-mawey calm adj
-laro clean, make free of dirt nv:si
-’opin color n
-piak open, clear (for cloudless skies) adj
-melo twice adv
-sngä’ikrr beginning, starting time n
-wo reach for v:tr
-nìnän less adv
-seykxel strong (emotionally, spiritually, not physical), confident adj
-kaw’it not at all, not a bit (used with ke; see ke kaw’it not...at all in phrases) adv
-lì’fyaolo’ language group, language users n
-kämunge take v:tr
-pak disparagement part
-tìrol song (vocal) n
-lìm be far v:in
-kame see, see into, understand, know (spiritual sense) v:tr
-fteke so that not, lest conj
-tìftang stop (someone or something) nv:si
-lom missing, missed (as an absent person who is longed for) adj
-tor last, ultimate, terminal adj
-pate get to a place, arrive v:?
-’uo something pn
-hawngkrr late adv
-syonlì’u adjective n
-mesrram the day before yesterday, two days ago n
-nìk’ong slowly adv
-fìtxan so, to such an extent adv
-mauti fruit n
-mawl half n
-fìtxon tonight n
-nìfrakrr as always adv
-nì’awtu alone (as one person) adv
-tìk’ìn free time, the absence of business n
-ve’kì hate v:tr
-am’ake sure, confident adj
-lie experience n
-saylahe ’et cetera’ adv
-fratseng everywhere adv
-vll indicate, point at v:tr
-nìlun of course, logically, following common sense adv
-tìkxey mess up, foul, do wrong nv:si
-tsap’alute apologise (apologize) nv:si
-virä spread, proliferate v:?
-skxom chance, opportunity n
-syen last, final adj
-fe’ul worsen, get worse v:in
-tsyeyk Jake n:pr
-toitslan Germany n:pr
-fwopx dust (in the air) n
-sna’o set, group, pile, clump, stand n
-’awstengyem bind / bring two or more things together v:tr
-säleymkem protest, instance of protesting n
-srungsiyu assistant, helper n
-frrtu guest, visitor n
-txi hurry, hurriedness, frenzy n
-’ul increase v:in
-nui fail, falter, go astray, not obtain expected or desired result v:in
-sto refuse (to do something) v:tr
-eywa Eywa, world spirit, Gaia n:pr
-steng similar adj
-kxamtxon midnight n
-kelutral Hometree n:pr
-äo under, below adp
-fìtsap each other adv
-fkxara stress (mental or emotional feeling) n
-lertu colleague n
-fwampop tapirus n
-netrìp luckily, happily adv
-maweypey be patient v:in
-teng same, equal adj
-kxu harm nv:si
-fnel kind, type n
-nìflä successfully adv
-mìftxele in this regard, related to this matter adv
-eytukan male leader of the Omatikaya n:pr
-emza’u pass (a test), overcome v:tr
-yora’ win v:tr
-pìlok blog n
-fyin simple adj
-tompakel drought n
-tiam count v:tr
-pänutìng promise (a thing to someone) v:tr
-fekem accident n
-pxen functional clothing (item of) n
-txewm scary, frightening adj
-’ampi touch v:tr
-tskxepay ice n
-tsìk suddenly, without warning adv
-slantire inspire nv:si
-tì’o’ fun, excitement n
-takrra since (temporal) conj
-tìsom heat n
-tsmukan brother n
-lesar be useful, be of use, come in handy nv:si
-tìtxur strength, power n
-tstunwi kind, thoughtful, considerate adj
-’ìnglìsì English language n
-hena carry v:tr
-zun if (counterfactual use) conj
-zel then (counterfactual use) adv
-yo’ be perfect, flawless v:in
-tsmuke sister n
-o some, (with words of time) during aff:suf
-toitsye German (language) adj
-trrpuve Friday n
-teylu beetle larva n
-tsìve fourth (ordinal) adj
-pängkxoyu chatter, converser n
-txìng leave, abandon v:tr
-muntxa mate (with someone), marry nv:si
-nìsngä’i originally, at first adv
-so’ha be enthusiastic about, show enthusiasm for, be excited about v:tr
-tsulfätu master of an art, craft, or skill, expert n
-yäkx not notice, ignore, snub v:tr
-ketsran no matter, no matter what, whatever adj
-zìskrrsom summer n
-fwi slip, slide v:in
-tsalsungay nevertheless, even so adv
-narlor beautiful visually adj
-zamunge bring v:tr
-mll’an accept v:tr
-tsyul begin, start v:tr
-palon burn v:in
-’okvur history (nonancient) n
-säftxulì’u speech, oration n
-zongtseng safe place, refuge n
-rangal wish v:in
-zìskrrwew winter n
-pehrr when inter
-mungwrr except adp
-sti anger (intransitive), be angry v:in
-nìvingkap by the way, incidentally adv
-muntxatu spouse n
-tìhawl preparations, plan n
-tsurokx rest v:in
-keyawr incorrect, wrong, not right adj
-lefkeytongay real adj
-ekxan exclude, keep out, bar nv:si
-teyr white adj
-wok loud adj
-re’o head n
-mìkam between adp
-säwäsultsyìp contest n
-naer drink, something able to be drunk n
-nrr glow, be luminous v:in
-tuktirey Jake and Neytiri’s daughter n:pr
-lekye’ung insane, crazy adj
-win fast adj
-prrnen infant, baby n
-zìskrrmipaw spring n
-sästarsìm collection (put together intentionally by a person) n
-vun provide v:tr
-’upe what (thing) inter
-nulnew prefer v:tr
-muiä proper, fair, right, justified adj
-fpomtokx health (physical) n
-numultxa class (for instruction) n
-nìsyen lastly adv
-kintrray next week n
-säwìntxu showing, exhibition n
-tìpe’un decision n
-txanso’hayu fan, enthusiast n
-spe’etu captive n
-ye’krr early adv
-kxayl high adj
-tseotu artist (generic term) n
-kxitx death n
-tìmwiä fairness, justice n
-kemwiä improper, unfair, wrong, unjustified adj
-horenleykekyu law enforcer, police officer n
-han lose v:tr
-tsu’tey male of the Omatikaya Clan n:pr
-tsewtx dirty adj
-atokirina’ seed of the great tree n
-’ora lake n
-nikre hair n
-sur taste, flavor n
-swoa intoxicating beverage, or "spirits" n
-sngä’iyu beginner n
-mìso away (position) adv
-way song (ancient, ceremonial) n
-nìfe’ badly adv
-txung disturb, disrupt, bother, affect negatively v:tr
-komum don’t know, no idea (slang) phr
-kxìmyu commander, one with authority over another n
-numtsengvi classroom, division of a school n
-tswesya current n
-mok suggest v:tr
-’ongokx be born v:in
-lini young of an animal, bird, fish, insect n
-kxuke safe adj
-pllngay admit v:in
-nìyrr naturally, without tampering with or changing the nature adv
-toruk toruk, great leonopteryx n
-ha’ngir afternoon n
-kllkxem stand v:in
-neni sand n
-zìsìkrr season n
-zenke must not v:m
-tìomum knowledge n
-venu foot n
-kanu smart, intelligent adj
-krrnekx take/consume time v:in
-tìkanu intelligence n
-me (dual) aff:pre
-fpìlfya thought pattern, way of thinking n
-wrrza’u come out, emerge v:in
-kulat reveal, bring forth, uncover (literally and metaphorically) v:tr
-tsìltsan good (abstract concept), goodness n
-vospxìvomun October n
-semkä bridge n
-zìsìtay next year n
-pìwopx cloud n
-wum approximately, roughly adv
-lekin necessary adj
-hän net, web n
-tìtxurnga’ powerful adj
-txurtel rope n
-atxkxerel map n
-HRH LOL ("laughing out loud") intj
-tsko bow (weapon) n
-zusawkrr future n
-lumpe why inter
-seysonìltsan well done! (derived from hasey soli nìltsan accomplished well) intj
-kxamtrr midday, noon n
-tsyafe mild, moderate, comfortable adj
-txoa forgiveness n
-mun’i cut v:?
-txokefyaw if not, or else, otherwise conj
-tìhawnu protect nv:si
-le’awtu alone, on one’s own, by one’s self; lonely adj
-ftanglen prevent v:tr
-nang surprise, exclamation, encouragement (mirative) part
-mowar advice, bit or piece of advice n
-lì’fyavi expression, bit of language n
-nän decrease v:in
-yayo bird n
-lal old (opposite of mip) adj
-koaktu old person n
-’itan son n
-pup short (physical length) adj
-taron hunt v:tr
-munge take, bring v:tr
-hiyìk funny, strange adj
-spä jump v:?
-syewe fat (substance in meat) n
-swaw moment n
-fpxäkìm enter v:in
-’are poncho, cape, shawl n
-tsawng shatter, break into pieces v:in
-pewn neck n
-pxan worthy adj
-zäfi modified, interfered with, no longer in a natural state adj
-tsapo that one (for people only) pn
-somwew temperature n
-’ong unfold, blossom v:?
-paw grow; germinate and develop (of a plant) v:in
-zoplo offence, insult n
-eyktanay deputy, general, one step down from leader n
-ingyentsim mystery, riddle, enigma, conundrum n
-kunsìp gunship n
-fpeio challenge (ceremonial) n
-tìeyktan leadership n
-tìska’a destruction n
-sähena container, vessel, carrier n
-tsyeym treasure; something rare and of great value n
-krro krro sometimes, from time to time phr
-kxener smoke n
-vezeyko put in order, organize v:tr
-käteng spend time with, hang out with v:in
-meyp weak adj
-tstal knife n
-kip among adp
-io over, above adp
-kìte’e serve nv:si
-yayayrnga’ confusing adj
-ro’a be impressive, inspire awe or respect v:in
-weopx wave (of water) n
-le’aw only adj
-fmong steal, rob v:tr
-tsyoklìt chocolate n
-lehawngkrr late adj
-ronsem mind n
-nong follow, proceed after v:tr
-uolì’uvi suffix n
-nìno in detail, expansively, thoroughly adv
-tsyey snack, light meal n
-hayalo next time adv
-mìfa inside n
-sänumvi lesson n
-’aw one num
-ran intrinsic character or nature, essence, constitution n
-hamalo last time adv
-ronsrelngop imagine, envision (c.w. from ronsem mind, rel picture, ngop create, casual pronunciation [ˈɾon.sɾɛw.ŋ·op̚] ) v:tr
-mawkrra after (temporal) conj
-tsongropx hole, cavity, excavation with a bottom (visible or presumed) n
-syon feature, trait, attribute, characteristic, point, aspect, facet, property n
-reypay blood n
-fngo’ require, demand v:tr
-tìohakx hunger n
-ftxulì’u orate, give speech v:in
-lehawng excessive adj
-hangvur joke, funny story n
-nìftue easily adv
-vospxìam last month n
-tsawn gather growing food from the forest; pick; harvest (in agriculture) v:tr
-’awlie once (in the past) adv
-tsyokx hand n
-vospxìvol August n
-eykyu leader (typically temporary, of a small group like a hunting party) n
-ropx hole (going clear through an object) n
-tong put out, quench v:tr
-zet treat (emotionally), display an attitude towards v:tr
-wäsul compete v:in
-sänrr glow, an instance of glowing; light source, lamp n
-zìsìtsaltrr (yearly) anniversary n
-alìm far away, at a distance adv
-txum poison n
-txon’ongmaw twilight, the time before dark, after sunset n
-tsamsä’o weapon of war n
-fìpo this one person or thing pn
-tseo art n
-mäkxu interrupt, throw out of harmonious balance v:tr
-pe’ngayyu judge n
-sngel garbage, trash, rubbish n
-tìkezin untangle, solve nv:si
-kian blame v:tr
-slele swim v:in
-tem shoot v:in
-palang contact (in a social sense), communicate with v:tr
-kalin sweet to the taste adj
-fnan be good at v:tr
-kxor a wall or bank of powerful waterfalls noted for its deafening roar and deadly force n
-lang investigate, explore v:tr
-nìtengfya as, same way as (similar action) adv
-nìlaw clearly adv
-txon’ong nightfall, sunset, dusk, gloaming n
-yapay mist, fog, steam n
-ngenga you (honorific form) pn
-tìwäte dispute, argument n
-mrrtrr five day work week n
-’emyu cook, cooker n
-leha’ appropriate, suitable, fitting adj
-ramunong well n
-ke’u nothing pn
-tsaheyl bond with, establish a neural connection nv:si
-tsaheylu bond (neural connection) n
-ontu nose n
-hewne soft (of an object) adj
-lapo other person or thing pn
-fil child’s toy, plaything n
-pxi sharp (as a point) adj
-fkxen vegetable (food) n
-txa’ hard adj
-nokx give birth to v:tr
-yawntu loved one n
-kxum viscous, gelatinous, thick adj
-nìtrrtrr on a daily basis, regularly adv
-fpivìl hmm, let’s see, let me think intj
-mei wet adj
-leytslam appreciate v:tr
-kay from now (in the future) adp
-’okrol history (ancient) n
-tengfya as, same way as (situational similarity) conj
-tsulfä mastery n
-’on shape, form n
-tswal power n
-nim timid, shy adj
-tìtsunslu possibility n
-mikyun ear n
-’ewan young adj
-’awpo one individual pn
-sävll sign, indication, signal n
-reypaytun red ("blood tun") adj
-yawo take off, launch v:in
-yll communal adj
-vospxìmun February n
-tsampongu war party n
-txew edge, brink, limit, border, end n
-muntxate wife, female spouse n
-sweriye Sweden n:pr
-vospxìkin July n
-kllrikx earthquake n
-letsim original, unique, not derived from another source adj
-tìnvi task, errand, step (in an instruction) n
-ftawnemkrr past n
-stä’nì catch v:tr
-fpomtokxnga’ healthful (physically) adj
-yo surface n
-heyn sit v:in
-ohe I (deferential or ceremonial form) pn
-tìmu’ni achievement, accomplishment n
-tawng dive, duck (into or under water) v:in
-rawm lightning (general term) n
-tìkemwiä unfairness, injustice n
-hìmtxan amount n
-loho be surprising (experiencer in dative) v:in
-’ipu humorous, funny, amusing adj
-velek give up, surrender, concede defeat v:in
-nìrangal wish (contrary to fact, with perfective or imperfective subjunctive) adv
-ha’ fit, suit, complement, inherently enhance v:in
-kelpxìmrun rare adj
-tìketeng difference n
-syeha breathe nv:si
-yomtìng feed (with dative object) v:in
-srew dance v:in
-taronyu hunter n
-leyn repeat, do again v:tr
-äzan force, compel nv:si
-peseng where inter
-pelì’u what (word, utterance) inter
-hangham laugh v:in
-kato rhythm n
-fkxaranga’ stressful adj
-nìtoitsye German adv
-syeprel camera n
-vospxìmrr May n
-’awlo once adv
-nì’o’ in a manner which is enjoyable, enjoyably adv
-kì’ong slow adj
-nutx thick adj
-snumìna dim adj
-aungia sign, omen n
-ketsuktiam uncountable, infinite adj
-fpxamo terrible, horrible, awful adj
-walak energetic, active adj
-kemlì’uvi infix n
-tìmok abstract idea of a suggestion n
-lefpomtokx healthy (physically) adj
-fyeyntu adult person n
-tsu’o ability n
-susyang fragile, delicate adj
-ukxo dry adj
-säsulìn hobby, pleasureyielding activity n
-mek empty, or metaphorically: having no value adj
-mrrve fifth (ordinal) adj
-sok recent adj
-ngip space, open or borderless area n
-tìsteftxaw examination n
-mìn turn, rotate on an axis v:in
-nip become stuck, get caught in something v:in
-tsre’i throw v:tr
-tsìpxì one-fourth n
-pxìmun’i divide, cut into parts v:tr
-txur strong (physically) adj
-nuä beyond adp:len
-tawsìp skyship n
-la’a physical separation, distance between two places or objects n
-atanzaw forked lightning n
-nìyol briefly, shortly (of time) adv
-tìnew desire n
-kxetse tail n
-slär cave n
-muwìntxu introduce, present v:tr
-keltrrtrr unusual adj
-speng restore v:tr
-wrrkä go out, go outside v:in
-te used in full names part
-emrey survive v:in
-wrrzärìp pull out, extract v:tr
-newomum be curious, want to know v:in
-zam mì zam completely, one hundred percent phr
-rel arusikx movie, film, video phr
-särengop design (a particular instance of designing) n
-sngap sting v:tr
-nìli in advance adv
-’en make an informed guess nv:si
-sosul pleasant smell of nearby running water, rain, moist vegetation adj
-renulke irregular, random adj
-meyam hug, embrace, hold in one’s arms v:tr
-nìzawnong safely adv
-alaksi ready adj
-ftem pass by (something) v:tr
-letrrtrr ordinary adj
-ventil ankle n
-fwäkì mantis n
-paynga’ moist, humid, damp adj
-’evengan boy n
-ramtsyìp hill n
-lìng float in the air, hover v:in
-txanatan bright, vivid adj
-tì’i’avay until the end adv
-txanwawe personally meaningful, significant adj
-srankehe more or less, somewhat, yes and no, kind of part
-tìngay truth n
-tìloho surprise n
-säwem fight n
-uniltsa dream of, dream about v:tr
-fyalì’u adverb n
-pxiswawam just a moment ago adv
-säwìngay proof (particular instance) n
-tsawlhì’ size n
-srunga’ helpful adj
-srä cloth; a piece of cloth woven on a loom n
-ftumfa out of, from inside adp
-tupe who inter
-smaw approve of v:tr
-neto away (direction) adv
-’evi kid (affectionate form of) n
-vospxìtsìng April n
-tìmuntxa mating, marriage n
-krrpe when inter
-seyn chair, stool, bench; any tool or device to facilitate sitting n
-kewan age n
-tìm low adj
-flew throat n
-nìwok loudly adv
-tìsla’tsu description n
-tìkxìm commanding, ordering, assigning tasks n
-kali’weya species of poisonous arachnid n
-kxutu enemy n
-plltxeyu speaker n
-stxong strange, unfamiliar, unknown adj
-txärem bone n
-letam sufficient adj
-pamrelvi letter (phonetic symbol) n
-tìyawn love n
-srungtsyìp helpful hint, tip n
-snanumultxa course (as a collection of classes) n
-fpomron health or wellbeing (mental) n
-kom dare v:m
-sulìn be busy (positive sense), be engrossed in something one finds especially pleasant and energizing v:in
-muntrram last weekend n
-nafì’u such adj
-sämok suggestion n
-tìsyortsyìp break, small rest or relaxation n
-ye satisfied, content, satiated, full adj
-tsyär reject v:tr
-tìme’em harmony (general sense) n
-fäpa top n
-ngrrpongu grassroots movement n
-txeptun orange ("fire tun") adj
-txepìva ash, cinder n
-yora’tu winner n
-’ite daughter n
-spule propel v:tr
-mrrpxì one-fifth n
-tsankum advantage, benefit, upside, gain n
-lomtu missed person n
-tìsung addition, post script n
-starsìm gather, collect v:tr
-pamtseotu musician n
-talioang sturmbeest n
-puve sixth (ordinal) adj
-tìvirä spread, proliferation n
-nìwan secretly, in hiding, by hiding adv
-leyr frozen adj
-txanlal ancient, very old adj
-pizayu ancestor n
-wìngay prove v:tr
-tìpe’ngay conclusion n
-lawnol great joy n
-uniltìrantokxolo’ clan, or group of avatars n
-vospxìpuk June n
-yemstokx put on (clothing), don v:tr
-tìkeftxonga’ sad adj
-yeyfya straight line n
-nìmal trustingly, without hesitation adv
-trrtsìve Wednesday n
-tsmisnrr bladder lantern, nectar lantern n
-reltseotu artist (visual) n
-’evenge girl n
-huru cooking pot n
-pung hurt, injure v:tr
-lelì’fya concerning language, regarding language adj
-txantstew hero n
-tìngop abstract idea of a creation n
-tìmweypey patience n
-yol short (of time) adj
-kxamlä through (via the middle of) adp
-tsyìl climb, scale (pulling entire body up) v:tr
-starlì’u adposition n
-rawmpxom thunder and lightning n
-rofa beside, alongside adp
-loreyu helicoradian, beautiful spiral n
-zawr animal call n
-’rrpxom thunder n
-trr’awve Sunday n
-sätare connection, relationship n
-’e’al worst adj
-asim nearby, at close range adv
-ley be of value, have some positive value, be worth something v:in
-stiwi be naughty, do mischief nv:si
-pxasìk screw that!, no way! (vulgar) intj
-rong tunnel n
-pxesrram three days ago n
-ku’up heavy (physical weight) adj
-fyep hold in the hand, grasp, grip v:tr
-txonay tomorrow night adv
-taweyka because conj
-fäkä go up, ascend v:in
-tìkeftxo sadness n
-kxll charge nv:si
-palulukan thanator n
-nìyo’ perfectly, flawlessly adv
-swirä creature n
-ketuwong alien n
-tì’ongokx birth n
-mo’at tsahìk of the Omatikaya n:pr
-meoauniaea harmony, living at one with nature n
-zevakx cruel adj
-sätswayon flight (an instance of flying) n
-yewn express, convey (a thought or feeling) v:tr
-se’ayl an individual tall, thin waterfall that pours down a sheer high cliff, or off of a floating mountain (countable) n
-mune two num
-fngapsutxwll metalfollowing plant n
-’ìn be busy, be occupied v:in
-nrra pride, feeling of pride n
-nekll down (direction) adv
-poan he pn
-nawmtu great person n
-hìno fine, detailed, precise, intricate (of things) adj
-tsìlpey hope (abstract concept) n
-lisre by, before, up to but not after adp:len
-ultxarun encounter, meet by chance v:tr
-tìtsyul beginning, start n
-la’um pretend v:in
-kelkin unnecessary adj
-ftär left (not right) adj
-kxam middle, midpoint n
-vospxì’aw January n
-tsakrrvay until then, in the meantime adv
-tswalnga’ powerful adj
-may’ taste, try, sample, evaluate, check out, testdrive v:tr
-nìksran in a mediocre manner adv
-ko’on ring, oval, closed shape roughly circular n
-yo’ko circle n
-lì’uvi affix n
-swaran humble, modest, self-effacing adj
-txìm butt, rear end, ass n
-fwìng humiliate nv:si
-lätxayn defeat in battle, conquer v:tr
-pìsaw clumsy, accidentprone adj
-nìtsyungwen Zhongwen adv
-swawtsyìp little moment, second n
-pela’ang what the hell intj
-kelhoan uncomfortable adj
-stiwisiyu mischiefmaker n
-nìyawr correctly, rightly adv
-nantang viperwolf Caniferratus costatus, striped armored wolf n
-flrr gentle, mild, tender (people or things) adj
-lemweypey patient adj
-hawmpam noise. sound that is excessive, unnecessary, inappropriate, unexpected or startling n
-akum that (as a result) conj
-txinfpìl main point n
-’ok remembrance n
-srese’a prophetize, prophesize, prophesy, predict v:tr
-txantxewvay maximally adv
-kxamtseng center, place in the middle n
-fe’pey feel dread, expect something bad to happen, fear v:in
-tìlam appearance n
-lepay watery adj
-’opinsung color, color in v:tr
-tìwew coldness, cold n
-tsukx stab v:tr
-pamrelsiyu writer n
-txayo field, open terrain, plain n
-ve’o order (as opposed to disorder or chaos), organization n
-tìflä success (in general) n
-leioae to respect nv:si
-säfngo’ requirement, demand n
-emkä cross v:tr
-sre’ tooth n
-salewfya direction, course n
-sänume teaching, instruction n
-kavan support (physically) v:tr
-sreton’ong dusk, evening before sunset n
-txukx deep (physically) adj
-sru’ crush, trample v:tr
-hawng overabundance n
-fyeng steep adj
-tìpähem arrival n
-yo’kofya cycle n
-paytxew shoreline, water’s edge n
-txankeltrrtrr extraordinary adj
-yak diverge, change direction, go astray nv:si
-leym call, cry out, exclaim v:in
-tìyora’ victory, a win n
-txekxumpay magma, lava n
-nì’eyng back, in response, in answer adv
-trr’ong dawn, sunrise n
-wäte argue, dispute v:tr
-wotx totality, whole n
-vrrìn be busy (negative sense): be tired out and overwhelmed by an activity that’s keeping one busy v:in
-vingkap occur to one, pop into one’s mind v:tr
-fyanyo table, elevated utilitarian surface n
-ngä’än suffer mentally or emotionally, be miserable v:in
-lewng shame n
-lewnga’ shameful (for things and behavior) adj
-swapxì family member n
-matu excuse me, hey intj
-manga hey, hey you intj
-tsa that aff:pre
-mungwrrtxo unless, except if conj
-am (past tense) aff:in
-metkayina Reef People Clan n:pr
-kerìsmìsì Christmas n:pr
-räptum coarse, vulgar, socially unacceptable adj
-txopunil nightmare n
-tarep save, rescue v:tr
-tewng loincloth n
-txantompa rainstorm, heavy rain n
-renu pattern n
-kinam leg n
-snonivi singleperson hammock n
-vonvä’ butthole, asshole, dickhead (vulgar) n
-koaktan old man n
-sa’nu mum, mommy (affectionate form of) n
-kewong alien adj
-tsin nail, claw n
-tì’al wastefulness n
-tìftanglen prevention n
-’änsyem complete adj
-trrtxon the day and night cycle of Pandora n
-mu’ni accomplish, achieve v:tr
-fahew smell n
-tìnawri talent n
-nìtsleng falsely adv
-tìvawm darkness n
-pxel like, as adp
-pxun arm n
-kakrel blind adj
-syaksyuk prolemuris n
-pxelo thrice, three times adv
-vrrtep demon n
-lì’ukìngvi phrase n
-fwefwi whistle v:in
-snomo private space that one can retreat to n
-tìyo’ perfection n
-tìkenong example n
-lawr melody n
-lepxìmrun common, often found adj
-teylupil teylu-face (vulgar) n
-txal back (of the body) n
-nìran basically, fundamentally, in essence adv
-tìslan support (emotional, social or personal support) n
-tìlor beauty n
-hawre’ hat n
-am’aluke without a doubt adv
-riti stingbat n
-nawfwe fluent (for speech) adj
-miklor pleasant sounding, beautiful sounding adj
-lì’upam accent, pronunciation n
-nìhek strangely, oddly adv
-mo’ara gathering place n
-lì’uvan pun, wordplay n
-pxir beer n
-zìskrrtsawn autumn, fall n
-fngä’ relieve oneself; (on Earth) use the restroom, go to the bathroom v:in
-iv (subjunctive) aff:in
-sresrr’ong before dawn n
-omatikaya Blue Flute Clan n:pr
-lenomum curious adj
-vä’ unpleasant to the senses, noisome adj
-pximaw right after adp
-wip salty adj
-rì’ìr reflection n
-sey cup or bowl minimally modified from naturally occuring resources n
-tìpängkxotsyìp little conversation n
-nìlkeftang continuously, incessantly, without stopping adv
-leye’krr early adj
-lesngä’i original, existing at or from the start, first in a series adj
-lupra style n
-nìksman wonderfully adv
-prrte’ pleasurable (of an activity) adj
-fyeyn ripe, mature, adult adj
-mong depend on, rely on, trust for protection v:tr
-hìmpxì minority, least, small part n
-snayì staircase, series of steplike levels n
-tìleymkem protesting, protest (abstract concept) n
-srefpìl assume v:tr
-txantsawl giant, huge adj
-nawang merge, become one with v:in
-kllvawm brown adj
-sngä’itseng beginning, starting position, initial location n
-päsketpol basketball n
-tsengo somewhere pn
-hultstxem hinder v:tr
-trrmuve Monday n
-ioi adornment, or ceremonial apparel (item of) n
-kawnomum unknown adj
-fekumnga’ disadvantageous adj
-aylaru to the others pn
-fekum disadvantage, drawback, downside n
-pa’o side n
-kinamtil knee n
-tìtxap pressure (physical) n
-lekxan blocked, obstructed; frustrated adj
-wep web (as in world wide web, www) n
-säplltxevi comment n
-vospxìay next month n
-kllwo alight, land (process of) v:in
-’oratsyìp pond, pool n
-tungzup drop v:tr
-trrpxeyve Tuesday n
-kive seventh (ordinal) adj
-volve eighth (ordinal) adj
-tstew brave adj
-tìve’kì hatred n
-hìm small (in quantity) adj
-snaytx lose v:tr
-pxim erect, upright adj
-sraw painful adj
-wempongu squad, military clan, battle party n
-kä’ärìp push v:tr
-syar stick, stick to, adhere v:in
-vospxìvolaw September n
-’eve girl (colloquial) n
-lan resin n
-tskxaytsyìp hail n
-tìkelu lack n
-kxamtxomaw after midnight n
-säpenghrr warning n
-fralo every time, every instance, each time adv
-hiup spit, spit out v:tr
-kenten fan lizard n
-tìmal trustworthiness n
-nìwä on the contrary, conversely adv
-nemrey in a fashion as if one’s life were at stake adv
-’ele’wll thorny paw, cactus n
-tìtsukanom availability n
-zekwä finger n
-trr’ongmaw dawn after sunrise n
-ngam echo n
-sopyu traveller n
-mesrray the day after tomorrow, two days from now n
-ingyentsyìp trick, sleight of hand, clever/special methodology n
-sekrr present n
-r (dative case, indirect object) aff:suf
-tsyo flour n
-tìtxaw punishment n
-äzanluke voluntarily, without force or compulsion adv
-sweyn keep, preserve v:tr
-sum shell (from the ocean) n
-tsenga where, place where conj
-wawe meaning, importance, significance n
-snewsye weird, spooky adj
-tumpin red, orange n
-keye’ung insanity n
-fyole sublime, beyond perfection adj
-tsukyom edible adj
-säspxintsyìp minor ailment n
-tsopì lung n
-säplltxe statement n
-nopx put away, store v:tr
-vospxìvosìng December n
-koak old, aged (for living things) adj
-klltxay lie on the ground v:in
-zam sixty four num
-srefereiey nìprrte’ looking forward to phr
-kawl hard, diligently adv
-lehoan comfortable adj
-tirea spirit n
-ekxtxu rough adj
-ronguway howl v:in
-säfrrfen visit, an instance of visiting n
-vopxì one-eighth n
-mowarsiyu advisor n
-nìNa’vi like the Na’vi, Na’vily adv
-Eytukan Eytukan (male leader of the Omatikaya) n:pr
-’Rrta Earth n:pr
-Na’vi the People, indigenous Pandoran sentient race n:pr
-hìmtxampe how much inter
-neyn light colors, shades of white adj
-tìfkeytongay reality n
-tawtxew horizon, skyline n
-toktor doctor n
-snolup personal style or aesthetic, presence n
-teyrpin white n
-fnepe which kind inter
-kelfpomron unhealthy (mentally) adj
-kxangangang boom (onomatopoeic) intj
-fratxon every night adv
-tì’em the art of cooking n
-tìngong lethargy, laziness n
-lefnelan male adj
-tinan reading n
-lewn endure, stand, tolerate v:tr
-pefnel which kind inter
-kanfpìl concentrate, focus one’s attention v:in
-pxiswaway in just a second from now adv
-tsrul nest; protected area serving as the home of Pandoran fauna n
-zìma’uyu newcomer, someone who has just arrived on the scene n
-uniltìranyu avatar driver n
-prrkxentrrkrr day time smoking pleasure, vibrating tongue (slang for romantic activities) n
-me’em harmonious adj
-sä’ipu something humorous n
-narvä’ ugly, unsightly adj
-iknimaya Stairway to Heaven, the rite of passage for young Na’vi n:pr
-rìkean leaf green adj
-pamtseongopyu music creator, composer n
-’otxang musical instrument (generic term) n
-tìtstunwinga’ kind adj
-kxange yawn v:in
-ä (genitive case, possessive) aff:suf
-ngampam rhyme nv:si
-tspìng austrapede n
-fta knot n
-hafyon wisdom n
-’ak ow, ouch intj
-säflä success (an instance of succeeding) n
-yìm bind v:tr
-kavuk treachery n
-tatlam apparently adv
-flì thin adj
-frir layer n
-txap press, press on, apply (physical) pressure to v:tr
-trrmrrve Thursday n
-kawkxan free, unblocked, unobstructed, clear adj
-tìftxulì’u speechmaking, public speaking n
-letxi hurried, frenzied adj
-lafyon wise adj
-tìprrte’ pleasure n
-tsyìräfì giraffe n
-kelha’ inappropriate adj
-fpap pound v:tr
-ralu male Na’vi n:pr
-tìyewn expression n
-’onglawn exhiliration of first bonding n
-äie vision (spiritual) n
-’ana hanging vine n
-maweypeyyu One who is patient n
-pxe (trial) aff:pre
-mam wrap v:tr
-kur hang v:in
-spxam mushroom, fungus n
-kawnglan malicious, bad hearted adj
-säsrätx annoyance n
-mowan pleasing, enjoyable (physically, sexually) adj
-letrr daily adj
-yawnetu loved one n
-l (agentive case, subject of transitive verb) aff:suf
-anurai Na’vi Clan name n:pr
-tawkami Na’vi Clan name n:pr
-meuianga’ honorable, honorably adj
-hufwetsyìp breeze, light wind n
-väpam noise. ugly or unpleasant sound, screech n
-takip from among adp
-fmongyu thief n
-säkanom something acquired, an acquisition, a possession n
-tsang piercing n
-leyewla disappointing adj
-taksyokx clap hands v:in
-nì’en making an informed guess, acting on intuition adv
-telem cord n
-lenrra proud adj
-ìy (near future tense) aff:in
-mektseng gap, breach n
-er (imperfective aspect) aff:in
-tìoeyktìng explanation n
-ketrìp unfortunate, inauspicious adj
-nìtut continually adv
-’akra soil (fertile) n
-kelemweypey impatient adj
-velke chaotic, messy, disorganized, in shambles adj
-kllpa bottom n
-kan’ìn focus on, specialize in, be particularly interested in v:tr
-numultxatu classmate, member of a class n
-käsrìn lend v:tr
-hafyonga’ wise adj
-zize’ hellfire wasp n
-nìnu failingly, falteringly, in vain, fruitlessly, not achieving the desired or expected end adv
-tìtslam understanding, intelligence n
-pllhrr warn v:in
-tìlang exploration n
-pan third, one third n
-layompin black n
-vultsyìp stick n
-tìhipx control n
-sutx track, follow v:tr
-nìfranse French adv
-lefnele female adj
-akrrta since (temporal) conj
-sälang an exploration or investigation n
-kìng thread n
-’awnìm avoid v:tr
-slukx horn of an animal n
-tswìk suck v:tr
-fwep dust (on a surface) n
-ultxatu meeting participant n
-tsankumnga’ advantageous adj
-nìftxavang passionately, with all heart adv
-tìwìngay proof, proving (abstract) n
-tireapängkxo commune v:?
-kxemyo wall, vertical surface n
-rawng entrance, doorway n
-tìfmong theft n
-kawngsar exploit v:tr
-pari Paris n:pr
-ngäng stomach n
-raw down to adp
-kew zero num
-tatep lose track, lose awareness of something v:tr
-tìhan loss n
-säwäte point of contention, source of argument, thing disputed n
-za’ärìp pull v:tr
-zawng scream v:in
-nìpxay many, manily adv
-stxenutìng offer v:tr
-nìzen necessarily adv
-nalutsa large armored whalelike sea creature n
-smaoe phalanxia, heavily thorned plant n
-utraltsyìp bush n
-le’al wasteful adj
-nìtkanluke accidentally, unintentionally adv
-snep narrow adj
-faoi smooth adj
-pe’ngay judge, conclude v:in
-kllpä land, reach the ground v:in
-ta’em from above adv
-utu forest canopy n
-muntrray next weekend n
-tì’iluke endless, neverending (in a temporal sense) adj
-ler steady, smooth (for motion) adj
-snokfyan personal belongings rack n
-tomperwì sleet n
-letskxe stony, of stone adj
-tsong valley n
-ue’ vomit, vomit up v:tr
-äzantu domineering person; one who is bossy, authoritarian, or dictatorial n
-kllyem bury v:tr
-lemrey surviving (e.g. of entities from a group some of whom have died) adj
-snatxärem skeleton n
-tìsmaw approval n
-skiempa right side n
-fewi chase v:tr
-’eoio ceremonious adj
-fkxile bib necklace n
-rìkxi tremble, shake, shiver v:in
-tìn activity that keeps one busy n
-tompìva raindrop n
-nìyll communally, in a communal manner adv
-klltseng position n
-nìftär to the left adv
-nìskien to the right adv
-pamrelfya spelling n
-tìmungwrr exception n
-tsatu that person n
-txey halt (mainly in military use) v:in
-kesran soso, mediocre adj
-ne’ìm back (direction) adv
-kelsar useless, in vain adj
-few across, aiming for the opposite side of adp
-tsyeytsyìp tiny bite n
-nìhay next adv
-syulang flower n
-yomyo plate, (for food) n
-fe’ranvi blemish, deformity, stain, flawed feature n
-lìngtskxe unobtanium n
-säfmong theft (particular instance) n
-kakan rough adj
-nìkakan roughly adv
-txaw punish v:tr
-ra’un surrender, relinquish, give up v:tr
-tìra’un surrender, relinquishment n
-’älek determined adj
-tì’älek determination n
-nì’älek determinedly, with determination adv
-kemuia dishonor n
-lelewng shameful (for people) adj
-manawmtu excuse me sir, excuse me madam intj
-fì this aff:pre
-leftxozä celebratory adj
-sängop creation n
-kllkulat dig up v:tr
-stiwinga’ mischievous adj
-tangek trunk (of a tree) n
-ay (future tense) aff:in
-t (patientive case, direct object of transitive verb) aff:suf
-’ia lose oneself (spiritual sense) v:in
-’om violet, purple, magenta adj
-herwìva snowflake n
-ilu large plesiosaurlike sea creature n
-’ali’ä collar / choker n
-vospxìvopey November n
-pxiye’rìn immediately (not as soon as pxiswaway) adv
-tìtstewnga’ courageous, brave adj
-tìfmi attempt n
-pìmtxan how much inter
-paysena water container n
-vospxey March n
-nì ...-ly (makes adverbs) aff:pre
-an (male gender suffix) aff:suf
-nik convenient, usable without much expenditure of effort adj
-tsmìm track, trace (of animal or person) n
-atanvi ray n
-kot coat n
-hoan comfort n
-tuvom greatest of all, exceedingly great adj
-tìspxin the state of being ill, sickness n
-ngoa mud n
-la’ang pile of stinking animal matter n
-sämunge transportation tool or device n
-pxisre right before adp:len
-kämakto ride out v:?
-yehakx satisfied from hunger, full adj
-parul miracle n
-nìnänän decreasingly, less and less adv
-yokx shield n
-nìktungzup carefully, firmly adv
-nìloho surprisingly adv
-tìfnunga’ quiet adj
-lekxutslu risky adj
-frìp bite v:tr
-ftxì tongue n
-trrkive Saturday n
-reltseo visual art n
-puktsyìp pamphlet, booklet n
-uk shadow n
-tìflänga’ successful adj
-pxek kick, shove v:tr
-ìm (near past tense) aff:in
-tsamopin warpaint n
-tsngem muscle n
-tsukanom available, obtainable adj
-txantur powerful adj
-tsìng four num
-kxutslu risk n
-payfya stream n
-ngul grey, drab adj
-’ekong beat (rhythmic) n
-eampin blue, green n
-’ompin violet, purple, magenta n
-nongspe’ pursue with an intent to capture v:tr
-e (female gender suffix) aff:suf
-yerik yerik, hexapede n
-ngawng worm n
-ftärpa left side n
-letsaktap violent adj
-fewtusok opposite, on the opposite side adj
-ka wotx generally, for the most part phr
-sevin pretty adj
-fäza’u come up, ascend v:in
-tìwäsul competition n
-pxul formidable, imposing adj
-natxu disapprove of v:tr
-vi (particle used for something spawned from something bigger) aff:suf
-kemuianga’ dishonorable adj
-tìsay loyalty n
-nìtkan purposefully, deliberately adv
-aho pray v:in
-fkew mighty adj
-il bend v:in
-lopx panic v:in
-pxasul fresh, appealing as food adj
-rina’ seed n
-slayk brush, comb v:tr
-yaymak foolish, ignorant adj
-yengwal sorrow n
-fäpyo roof n
-ftxìvä’ bad tasting adj
-klltxeykay lay (something) on the ground v:tr
-utumauti banana fruit n
-pxayopin colorful, multicolored, variegated adj
-pxesrray three days from now adv
-sälatem change (instance of), edit, modification n
-sempu daddy (affectionate form of) n
-sìlronsem clever, smart (thing) adj
-skxirtsyìp cut, bruise, minor wound n
-eyweveng Pandora n:pr
-tìk immediately, without delay adv
-say loyal adj
-nìFranse French adv
-nìToitsye German adv
-Yuesey U.S.A. n:pr
-leNa’vi having to do with the Na’vi, the People adj
-Eywa’eveng Pandora n:pr
-’al waste v:tr
-’ango soft (of a sound) adj
-’angtsìk hammerhead n
-’anla yearn for v:tr
-’asap sudden shock n
-’awkx cliff n
-’awm camp n
-’e’in pod, gourd n
-’ekxin tight adj
-’engeng level adj
-’etnaw shoulder n
-’ewrang loom n
-’llngo hip n
-’rrko roll v:in
-’ä’o pitcher plant n
-’ìheyu spiral n
-akwey male Na’vi n:pr
-amhul female Na’vi n:pr
-aonung male Na’vi of the Metkayina Clan n:pr
-ateyitan son of Ateyo n:pr
-ateyo male Na’vi n:pr
-entu male Na’vi n:pr
-kamun male Na’vi n:pr
-kekunan Na’vi Clan name n:pr
-kelnì Cologne n:pr
-li’ona Na’vi Clan name n:pr
-lo’ak Jake and Neytiri’s second born son n:pr
-lo’akur Toruk Makto Amulet n:pr
-losäntsyelesì Los Angeles n:pr
-mo’at’ite daughter of Mo’at n:pr
-naranawm Polyphemus n:pr
-nawmtoruktek Toruk Makto Totem n:pr
-neteyam Jake and Neytiri’s first born son n:pr
-newey female Na’vi n:pr
-poston Boston n:pr
-rini female Na’vi n:pr
-ronal Female Na’vi of the Metkayina Clan n:pr
-rongloa Na’vi Clan name n:pr
-rotxo male Na’vi of the Metkayina Clan n:pr
-seze Neytiri’s banshee n:pr
-silwanin Neytiri’s sister n:pr
-sorewn female Na’vi n:pr
-swotulu sacred river n:pr
-tipani Na’vi Clan name n:pr
-tonowari male Na’vi of the Metkayina Clan n:pr
-tsawkenay Alpha Centauri B n
-tsenu female Na’vi n:pr
-tsireya female of the Metkayina Clan n:pr
-tskaha Na’vi Clan name n:pr
-tsumongwi original name for the Omatikaya n:pr
-tuke female Na’vi n:pr
-txewì male Na’vi n:pr
-txilte female Na’vi n:pr
-txärpawk Palulukan Bone Horn n:pr
-uniltaron Dream Hunt n:pr
-va’ru male Na’vi n:pr
-vitrautral Tree of Souls n:pr
-yeysu Jesus n:pr
-afpawng grief n
-atxar smell of living animals, as found around a watering hole adj
-au exclamation of consternation intj
-awaiei banshee of paradise n
-epxang stone jar used to hold small toxic arachnid n
-ewku taste (not intentionally) v:tr
-eyaye warbonnet n
-fkay hateful adj
-fkio tetrapteron n
-fkip up among adp
-fkxake itch v:in
-flawkx leather n
-flawm cheek n
-flefle Sol’s delight, magnetotrophic plant n
-fmal sustain v:tr
-fnawe’ cowardly adj
-fpak hold off, suspend action v:in
-fpxafaw medusa n
-ftxavang passionate adj
-fwang savory, umami, rich adj
-fwem dull, blunt (as a point) adj
-fyan constructed device for keeping something off the ground and clean n
-fyel seal, make impervious v:tr
-fyuatx anemonoid n
-fyìp tendril, tentacle n
-hefi smell (not intentionally) v:tr
-heyr chest n
-hoet vast, broad, expansive adj
-hupx miss, not hit a target v:tr
-i’en stringed instrument n
-ikut large pestle (grinding tool); mealmashing pole n
-ingyen feeling of mystery or incomprehension n
-keyn put down v:tr
-kinä seven num
-koum rounded, curved adj
-kung putrid, fetid, rotten adj
-kurakx drive out v:tr
-kuru neural queue n
-kxaylte cillaphant n
-kxeltek pick up, lift v:tr
-kxem be vertical v:in
-kxukx swallow v:tr
-kxänäng smell of decaying animal/flesh, rotting, putrid adj
-kärìp push v:tr
-kìm spin, to spin (something) v:tr
-kìmar in season (of foods, vegetable or animal) adj
-lanay’ka slinger n
-liswa nourishment n
-litx sharp (as a blade) adj
-lo’a totem, amulet n
-lìktap crooked adj
-mal trustworthy, trustinspiring adj
-masat breastplate (armor) n
-mawup turtapede n
-mekre supplies n
-merki ground rack (for smoking meats) n
-mrr five num
-mulpxar roosterhead plant n
-nawri talented adj
-ngep navel n
-nget smell of decaying wood and leaves, dank (nonanimal decay) adj
-ngrr root n
-niä grab v:tr
-nìkx gravel n
-oìsss angry snarl, ’watch it!’ intj
-pasuk berry n
-pawk horn, wind instrument n
-pil facial stripe n
-pom kiss v:tr
-pukap six num
-pxey three num
-pänu promise n
-raspu’ leggings (used in war) n
-rawke alarm cry, call to defense intj
-rawp bladder polyp n
-rem fuel n
-reng shallow (physically) adj
-renten goggles, (made from insect wings, carved from wood, etc) n
-reym dry land n
-ripx pierce v:tr
-rurur water that is aeriated while flowing among the rocks of a very gradually sloping stream (countable) n
-rìn wood n
-saa threatening cry intj
-satu’li heritage n
-sau exclamation upon exertion, urgh intj
-sayrìp handsome, good looking adj
-seyri lip n
-seyto butcher (in the sense of separating or processing the carcass of a dead animal) v:tr
-skepek formal adj
-skien right (not left) adj
-skuka sagittaria n
-sloa wide adj
-sloan pour v:tr
-smar prey, hunted thing n
-snew constrict, tighten v:tr
-sngukx grub plant n
-snäm rot, decay, degrade over time v:in
-srakat dinicthoid n
-srok bead (decorative) n
-srìn transfer from one to another (rarely used without prefix) v:tr
-stxenu offer n
-swek bar, rod, pole n
-swok sacred adj
-swotu sacred place n
-syam to smell (intentionally) v:tr
-syanan a single drop or series of smaller waterfalls occurring sequentially along a stream or series of pools (countable) n
-syawn blessing n
-syay fate n
-syo light (physical weight), lightweight adj
-syä’ä bitter adj
-säro’a do great deeds n:si
-tete dull (as a blade) adj
-tsahey expression of warning or frustration, ’crap!’, ’ah, hell!’ intj
-tseltsul whitewater rapids n
-tsiki reef tick n
-tskalep crossbow n
-tskawr limp v:in
-tsmi nectar n
-tsngal cup n
-tsngan meat, obtained from terrestial animals n
-tstunkem do a favor n:si
-tstxa’a canalyd n
-tsuksìm chin n
-tswin queue, braid n
-tsyal wing n
-tsìsyì whisper v:in
-tukru spear n
-txansngum feel desperate n:si
-txatx bubble n
-txay be horizontal, lie flat v:in
-txewk club (weapon) n
-txll’u hookagourd n
-täftxu weave v:tr
-tì’awm camp n:si
-um loose adj
-unyor sweetly aromatic (a flowery or aromatic woody sort of smell; may also refer to some spices used in Na’vi cooking) adj
-vawt solid, not hollow adj
-vitra soul n
-vol eight num
-vul branch (of a tree) n
-väng thirsty adj
-walew get over, accept some fact, reconcile oneself, move on v:in
-we’ay sour adj
-yaney canoe n
-yemfpay dip into liquid n:si
-yey straight adj
-yuey beautiful (inner beauty) adj
-yän fasten, tie down v:tr
-zare’ forehead, brow n
-zeswa grass n
-zir touch, feel, texture n
-zung crouch v:in
-zärìp pull v:tr
-zìm feel (not intentionally) v:tr
-änsìt male Na’vi n:pr
-ìstaw male Na’vi n:pr
-ìley war cry intj
-ìlva flake, drop, chip n
-ìpxa fern n
-tunu romantic adj
-zin tangled adj
-tìzin tangle, tangle up n:si
-he’a cough v:in
-fwal wipe v:tr
-ngungung rub v:tr
-rungfwam rungfwam, saber hog n
-mungsye inhale v:in
-pìtìk scratch (non-harmfully, as an itch) v:tr
-tsupx scratch (harmfully, as with a claw) v:tr
-lonusye exhale, blow v:in
-tsuk -able/-ible (receptive ability) aff:pre
-ngrrfpìl key assumption n
-fra every, all aff:pre
-uy (formal, ceremonial) aff:in
-pe what, which (question prefix) aff:pre
-ei (positive affect) aff:in
-äng (negative affect) aff:in
-ats (inferential, suppositional) aff:in
-tsyìp little (diminutive suffix) aff:suf
-äp (reflexive) aff:in
-ri (topical case) aff:suf
-ol (perfective aspect) aff:in
-pon balance v:tr
-lipx drip v:in
-torukspxam octoshroom, great leonopteryx fungus n
-loran elegance, grace n
-fyanyì shelf n
-yawnyewla broken heart, broken heartedness n
-txeptseng place where a fire is burning or has burned n
-txepvi spark n
-lì’kong syllable n
-vurway story poem, narrative poem n
-waytelem song cord n
-txurtu strongman/woman, brawny person n
-plltxepam speech sound; phoneme n
-tstalsena knife sheath n
-tutsena stretcher n
-sngumtsim worrisome matter, source of worry n
-sngeltseng rubbish place, garbage dump n
-txanwetseng personally significant or beloved place, heimat (ger.) n
-fngä’tseng restroom (on Earth) n
-kantseng destination n
-’oktrr day of commemoration n
-’evan boy (colloquial) n
-’itetsyìp little daughter (term of endearment) n
-anìheyu fibonacci, blue spiral plant n
-apxangrr delta tree n
-eanean cheadle, herbaceous plant n
-eltungawng brainworm n
-emkäfya ford, crossing n
-eolì’uvi prefix n
-eyawrfya right way (of doing something), correct path n
-srekamtrr the time before noon n
-srekamtxon before midnight n
-onlor goodsmelling adj
-ontsang nose ring n
-onvä’ badsmelling adj
-pa’liwll direhorse pitcher plant n
-pamtseowll cat ear, music plant n
-pamuvan sound play n
-parulnga’ miraculous adj
-parultsyìp term of affection for children n
-paskalin sweet berry (term of endearment) n
-pätsì badge n
-payìva drop of water n
-paynäpll pineapple n
-paysmung water carrier n
-paysyul water lily n
-paywll water plant, dapophet n
-täftxuyu weaver n
-tafkip from up among adp
-ta’lengean skin blue adj
-tanleng bark (of a tree) n
-swizawsena quiver (attached to ikran’s saddle) n
-’e’insey drinking gourd n
-’ekxinumpe how tight, loose? inter
-tireaioang spirit animal n
-’eyt the symbol 8 (not the value eight) n
-’ongopyu designer n
-’opinvultsyìp crayon n
-akrrmaw after (temporal) conj
-aystampe what men inter
-aystepe what women inter
-aysupe what people inter
-ewktswo (sense of) taste n
-nefä up (direction) adv
-nayn the symbol 9 (not the value nine) n
-fe’ran flawed nature, something illconceived or inherently defective n
-fìtseng(e) here, this place adv
-fkxakewll itch plant n
-flìnutx thickness n
-fnawe’tu coward n
-kiantu blameworthy person n
-fkeyk state of, condition of aff:suf
-fne type of aff:pre
-fnelan male n
-fnele female n
-fnetxum allergen n
-fpomronga’ healthful (mentally) adj
-frafya in every way adv
-ftuopa from behind adp
-ftxulì’uyu orator, (public) speaker n
-fwäkìwll mantis orchid n
-fyawìntxu guide (with dative of thing guided) v:in
-fyawìntxuyu guide n
-fyinep’ang degree of complexity n
-fyinep’angpe how complex? inter
-fyìpmaut squid fruit tree n
-fyolup exquisite, sublime in style adj
-hametsì leavened bread n
-hawntsyokx glove n
-hawnven shoe n
-hawtsyìp nap n
-hefitswo (sense of) smell n
-hermeyp snow flurry n
-hertxayo snow field n
-hìmtxew minimum n
-hìpey hesitate, hold back for a short time v:in
-hìrumwll puffer plant n
-holpxaype how many inter
-inanfya sense (means of perception) n
-ingyenga’ mysterious, puzzling, enigmatic adj
-ionar banshee rider visor n
-kakpam deaf adj
-kalweyaveng son of a bitch (vulgar) n
-käpxì rear (part or section) n
-kawtseng nowhere adv
-ke’aw divided, torn apart, striferidden adj
-kefpomronga’ unhealthful (mentally) adj
-kelfpomtokx unhealthy (physically) adj
-keltsun impossible adj
-kenzen not necessarily adv
-käsatseng out there adv
-txeptsyìp flame n
-kesätarenga’ irrelevant adj
-ketsuk in-...-able/-ible (receptive ability) aff:pre
-ketsukanom unavailable, unobtainable adj
-ketsuklewn intolerable, unacceptable, unendurable, unbearable adj
-ketsuktswa’ unforgettable adj
-keynven step v:in
-keyrel facial expression n
-kezin untangled adj
-kipxì one-seventh n
-kllkä go down, descend, (for astronomical bodies) set v:in
-kllza’u come down, descend v:in
-koakte old woman n
-koaktutral goblin thistle n
-kurfyan hamper or suspended rack n
-kurfyavi hook (for hanging or suspending an item) n
-kurkung asshole (vulgar) n
-kxamtrrmaw the time immediately after noon, early afternoon n
-kxamyì intermediate level n
-kxapnga’ threatening adj
-kxaylyì high level n
-kxumpaysyar glue n
-väfewll Centipede, badsmell plant n
-värumut vein pod n
-vawmpin dark color n
-venga’ organized, "on top of things" adj
-venzek toe n
-pxayzekwä spiny whips n
-ralke meaningless, devoid of content adj
-ralnga’ meaningful, instructive, something from which a lesson can be learned adj
-la’ape how near, how far, what distance inter
-lanutral dandetiger n
-le’en speculative, intuitive adj
-lefpomron healthy (mentally) adj
-lefrir layered adj
-lehawmpam noisy adj
-lehìpey hesitant, in a state of hesitation adj
-lepwopx cloudy adj
-lereyfya cultural adj
-lerìk leafy adj
-lerìn wooden, of wood adj
-leronsrel imaginary adj
-leskxir wounded adj
-lesnonrra full of selfpride adj
-leso’ha enthusiastic, keen adj
-letsunslu possible adj
-letswal powerful adj
-letut constant, continual adj
-letwan dodgy, sneaky (of a person) adj
-letxiluke unhurried adj
-lewäte disagreeable, argumentative (of an agent) adj
-leweopx wavelike adj
-leyapay foggy, misty adj
-lezeswa grassy adj
-lì’upe what (word, utterance) inter
-lukpen without clothing, naked adj
-lukftang constant, continual adj
-lortsyal shimmyfly n
-lìmsimpe how near, how far inter
-maitan my son (form of address) phr
-maite my daughter (form of address) phr
-matsa matsa, crackers n
-meitayo wetlands n
-mestampe what two men inter
-mestepe what two women inter
-mesupe what two people inter
-meyptu weakling n
-miktsang earring n
-mikvä’ badsounding adj
-mìnyu turner, twisted lily n
-momek hollow, not solid adj
-munsna pair n
-nafpawng grievingly, with grief adv
-nam’ake confidently adv
-neympin light color n
-ngimpup length n
-ngulpin grey n
-nì’al wastefully adv
-nì’eng equally, on the same level adv
-nì’eoio ceremoniously adv
-nì’eveng like a child, immaturely adv
-nìawnomum as you know, as is known (casual speech [naw.no.mum]) adv
-nìayoeng like us, as we do adv
-nìflrr gently, tenderly adv
-nìfmokx jealously, enviously adv
-nìfnu silently adv
-nìfpxamo horribly, terribly, awfully adv
-nìfrir in layers adv
-nìfwefwi by whistling, in a whistling manner adv
-nìfyeyntu like an adult, maturely adv
-nìhawmpam noisily adv
-nìhìpey hesitantly adv
-nìhoan comfortably adv
-nìhoet widely, pervasively adv
-nìhol few, not many adv
-nìhona endearingly, sweetly adv
-nìk’ärìp steadily adv
-nìkanu intelligently, in a smart way adv
-nìkelkin unnecessarily adv
-nìkemweypey impatiently adv
-nìklonu firmly, steadfastly, faithfully adv
-nìkmar in the right season, opportunely adv
-nikroi hair adornment n
-niktsyey food wrap (food items wrapped in edible leaves or vines) n
-nìkxap threateningly adv
-nìkxem vertically adv
-nìler steadily adv
-nìmeyp weakly, loosely adv
-nìmweypey patiently adv
-nìnäk by drinking, in a liquid way adv
-ninan by reading adv
-nìnew voluntarily, willingly, by desire adv
-nìngong lethargically, lazily adv
-ningyen mysteriously, in a puzzling fashion adv
-nìnrra proudly, with pride adv
-nìolo’ (together) as members of a clan adv
-nìpxim erectly, rightly adv
-nìpxul formidably, imposingly adv
-nìrìkxi shakily, tremblingly adv
-nìronsrel in imagination, by imagination adv
-nìslele by swimming adv
-nìso’ha enthusiastically adv
-nìsngum worryingly, fretfully adv
-nìsoaia (together) as members of a family adv
-nìsteng similarly adv
-nìsti angrily adv
-nìswey optimally, best adv
-nìsyayvi by chance or coincidence adv
-nìsyep tightly, in an iron grip adv
-nìt’iluke neverendingly, forever adv
-nìtsim originally, in an original way, with originality adv
-nìtsìsyì by whispering, in a whisper adv
-nìtson dutifully, as an obligation adv
-nìtstew bravely, courageously adv
-nìtsyìl by climbing adv
-nìtxankeltrrtrr extraordinarily adv
-nìtxay horizontally adv
-nìtxi hurriedly, in a frenzied way adv
-nìtxiluke unhurriedly, leisurely adv
-nìtxukx deeply adv
-nìwäte disagreeably, begrudgingly adv
-nìwawe meaningfully, significantly adv
-nìyewla in a disappointing fashion, in a way failing to meet expectations adv
-nìyeyfya straight ahead, in a straight line adv
-nìzevakx cruelly adv
-paystan what men inter
-payste what women inter
-paysu what people inter
-pefyinep’ang how complex? inter
-pekxinum how tight, loose? inter
-’ekxinum degree of tightness, looseness n
-pela’a how near, how far, what distance inter
-pelìmsim how near, how far inter
-pemste what two women inter
-pemsu what two people inter
-penghrrap binary sunshine, fringed lamp n
-pensìl pencil n
-pemstan what two men inter
-pepstan what three men inter
-pepste what three women inter
-pepsu what three people inter
-peslosnep what width, how wide? inter
-pestan what man inter
-peste what woman inter
-pinvul crayon n
-pìwopxtsyìp nebula n
-polpxay how many inter
-prrku womb n
-prrnesyul bud n
-prrsmung baby carrier n
-prrwll moss n
-pupxì one-sixth n
-pxawpa perimeter, circumference, border n
-pxawpxun armband n
-pxawtxap squeeze v:tr
-pxestampe what three men inter
-pxestepe what three women inter
-pxesupe what three people inter
-kllpxiwll lionberry n
-pxiut razor palm, sharp tree n
-pxiwll hermit bud plant n
-pxorna’lor sari, beautiful exploding seed plant n
-pxorna’ episoth, exploding seed n
-pxorpam ejective consonant n
-pxuntil elbow n
-relvul pen, pencil, writing stick n
-pamrelvul pen, pencil, writing stick n
-rengop design (finer detail) v:tr
-rey’eng the Balance of Life n
-rimpin yellow n
-nguway howl, viperwolf cry n
-ronguwayyu howler n
-ronsrel something imagined n
-rumaut cannonball fruit tree n
-sa’ewrang mother loom, giant loom n
-sa’nutsyìp little mommy (used for young girls) n
-sä’anla yearning n
-säfmi attempt n
-säfe’ul worsening (specific instance) n
-säfrìp bite n
-säfyep handle n
-sähe’a cough, instance of coughing n
-saho prayer n
-säkxange yawn n
-sälätxayn defeat, an instance of defeat n
-säleymfe’ complaint n
-sälipx drop (of a liquid) n
-sämyam hug, embrace n
-sängä’än bout of suffering; episode of depression n
-sänui failure (particular instance of failure) n
-säpllhrr warning n
-säpom kiss n
-särawn replacement, substitute, something that replaces something else n
-säseyto butchering tool n
-säsìlpey hope (particular instance) n
-säsrese’a prediction n
-säsrìn lent or borrowed thing n
-säsyep trap n
-sätarenga’ relevant, pertinent adj
-sätaron hunt n
-sätsan’ul improvement (specific instance) n
-sätseri observation, something noticed n
-sätsìsyì whisper n
-sätsyìl climbing event, a climb n
-säyäkx snub n
-säzärìp face lead, rein n
-skayp Skype n
-slosnep width n
-slosneppe what width, how wide? inter
-snafpìlfya philosophy n
-snapamrelvi alphabet n
-snatanhì constellation n
-snatanhìtsyìp star cluster n
-snaytu loser n
-sngunga’ worrisome, troubling adj
-snonrra selfpride (negative connotation) n
-snotipx selfcontrol n
-somtìlor popsicle, hot beauty n
-späpeng restore oneself (metaphorically) v:in
-spulyaney canoe paddle n
-stawmtswo (sense of) hearing n
-sumsey drinking vessel made of shell n
-sunkesun like it or not adv
-swaynivi family hammock n
-swoasey kava bowl (constructed from seed pods, used for drinking intoxicating beverages), handsized n
-sye’otxang wind instrument n
-syeptute hyneman, person trapper n
-syewenga’ fatty adj
-syokup weight (physical) n
-syuratan bioluminescence n
-syusmung food tray n
-tarnioang predator animal n
-taronyutsyìp little hunter n
-tarpongu hunting party n
-tautral sky tree n
-taweyk because conj
-syuvekel famine n
-rumut puffball tree (Obesus rotundus) n
-tawsyuratan aurora n
-tawtsngal panopyra, sky cup n
-teswotìng grant v:tr
-temrey survival n
-tì’awpo individuality (negative connotation), selfishness n
-tì’eylan friendship n
-tì’ipu humor n
-tì’ul increase n
-tìaho prayer (in general, abstract idea) n
-tìfe’ul worsening (in the general or abstract sense) n
-tìflrr gentleness, tenderness n
-tìfnawe’ cowardice n
-tìfnu quiet, silence n
-tìfpxamo horror n
-tìftxavang passion n
-tìfyawìntxu guidance n
-tìfyeyn ripeness, maturity, full fruition n
-tìhawnuwll spartan, protection plant n
-tìhìpey hesitation n
-tìhona cuteness, adorableness n
-tìkakpam deafness n
-tìkakrel blindness n
-tìkankxan barrier to one’s goals, source of frustration n
-tìkankxanga’ frustrating adj
-tìkawng evil n
-tìktseri unawareness, lack of notice n
-tìkusar teaching (the act) n
-til joint, hinge n
-tìla’um pretence n
-tìleym call n
-tìleymfe’ complaining n
-tilì’u conjunction n
-tìmeyp weakness n
-tìmll’an acceptance n
-tìmyì low level n
-tìnatxu disapproval n
-tìnomum curiosity n
-tìnui failure (abstract concept) n
-tìpalang (social) contact n
-tìpaw growth n
-tìpsaw clumsiness n
-tìpxul formidableness, imposingness n
-tìranpam footstep (sound) n
-tìrawn replacement, the act of replacing n
-tireafya’o spirit path n
-tìrengop design (the act or art of designing n
-tiretu shaman n
-tìronsrel imagination n
-tìsnaytx loss n
-tìso’ha enthusiasm, having a good attitude n
-tìspe’e capture n
-tìsrese’a prophecy n
-tìsti anger n
-tìswaran humility, humbleness n
-tìsyor relaxation n
-tìtaron hunting n
-tìterkup death (in abstract sense) n
-tìtsan’ul improvement (in the general or abstract sense) n
-tìtseri awareness, notice n
-tìtstew courage, bravery n
-tìtstunwi kindness n
-tìtsyär rejection n
-tìtunu romance n
-tìtusaron hunting n
-tìtxanew greed n
-tìtxantslusam wisdom (seldom used) n
-tìväng thirst n
-tìwan obfuscation, cover up n
-tìwusem fighting n
-tìyäkx lack of notice, snubbing n
-tìyusom eating (the act) n
-tìzevakx cruelty n
-tìzevakxnga’ cruel adj
-tompameyp drizzle n
-tompawll geode, rain plant n
-trrpeve which day (derived from trr day and pe interrogative marker and ve ordinal number marker) inter
-karyunay apprentice teacher n
-ikranay forest banshee n
-’eylanay acquaintance (with the potential for becoming a friend) n
-tsawksyul sun lily n
-tsawsngem muscular adj
-tse’atswo (sense of) sight, vision n
-zìmtswo (sense of) touch n
-tsengpe where inter
-tskxevi pebble, small stone polished smooth by natural forces n
-tsmuktu sibling n
-tsngawpay tears n
-tsngawpayvi teardrop n
-tsongtsyìp dimple n
-tstunkemtsyìp little favor n
-tstxolì’ukìngvi noun phrase (phrase whose pivotal or central word is a noun) n
-tsuktswa’ forgettable adj
-tsulfätunay nearmaster n
-tswintsyìp little queue n
-tsyorina’wll cycad, flour seed plant n
-tumpasuk celia fruit tree n
-tunutu object of desire, crush n
-tutampe what man inter
-tutepe what woman inter
-txanew greedy adj
-txanfwerwì blizzard n
-txanfwìngtu bastard, loser (vulgar) n
-txanro’a be famous v:in
-txantslusam wise adj
-txantxew maximum n
-txantxewm terrifying adj
-txavä’ disgusting adj
-txe’lankong heartbeat n
-txewluke endless, boundless, without limit adj
-txewnga’ having a limit, not without bounds, finite adj
-txonkrr at night adv
-txumnga’ poisonous adj
-txumpaywll scorpion thistle, poison water plant n
-vurvi summary, synopsis n
-vozampasukut grinch tree, thousand berry tree n
-wokau pendulum drum n
-yawntutsyìp darling, little loved one n
-yayayrtsim something confusing, source of confusion n
-yayotsrul bird’s nest n
-yeväng satisfied from thirst by drink, feeling quenched, slaked adj
-yìmkxa banshee catcher, mouth-binder n
-ylltxep communal fire or fire pit n
-yomhì’ang small animal/insect eater, dakteron n
-yomioang chalice plant n
-yomvey dine on flesh, be carniverous v:in
-yomzeswa graze v:in
-zapxì front (part or section) n
-zasrìn borrow v:tr
-zave sixty-fourth (ordinal) adj
-zeswavi blade of grass n
-zìtsaltrr (yearly) anniversary n
-zawsena quiver (attached to the ikran’s saddle) n
-yu -er (personification, creates nouns from verbs) aff:suf
-tsawlapx unidelta tree n
-tsawlapxangrr unidelta tree n
-kopenhan Copenhagen n:pr
-tseyk Jake n:pr
-pesomwew what temperature? inter
-somwewpe what temperature? inter
-so’yu fan, enthusiast n
-fe’lup tacky, in poor taste adj
-tsahìk matriarch, high priestess, interpreter n
-tawsnrrtsyìp Alpha Centauri C, Proxima Centauri n:pr
-snrrtsyìp Alpha Centauri C, Proxima Centauri n:pr
-oetsyìp little me, little I pn
-ngatsyìp little you, you little pn
-sivako you can do it!; rise to the challenge! intj
-kefpomtokxnga’ unhealthful (physically) adj
-fkarut peel v:tr
-latsi keep up with someone v:in
-tsä’ squirt v:in
-tuvon lean v:in
-’ongop design v:tr
-reykol play music, make to sing (poetic) v:tr
-tì’ong blooming, unfolding n
-txumtsä’wll Baja tickler, poisonsquirting plant n
-’ampirikx leaf pitcher plant n
-vezo be in order, be organized v:in
-kìreysì Grace n:pr
-tì (noun-creating prefix) aff:pre
-sä (noun-creating prefix, generally specific instance) aff:pre
-sna group of ... (prefix indicating naturally occuring groups or collections) aff:pre
-tu ... person (noun-making suffix) aff:suf
-ve ...th (makes ordinal numbers from cardinal numbers) aff:suf
-nay (particle indicating something lower in the hierarchy) aff:suf
-le having to do with... (makes adjectives from nouns and verbs, non-productive) aff:pre
-us (active participle) aff:in
-awn (passive participle) aff:in
-tareptu rescuee, someone who has been rescued or saved n
-sätarep rescue, an instance of rescuing n
-tsantu good person, "good guy" n
-spakat drown v:in
-fwum float (on the surface of a liquid) v:in
-wapx sink v:in
-tamìfa internal adj
-tawrrpa external adj
-tsantxäl invitation n
-nìsay loyally adv
-särangal wish n
-’avun save (time, food, etc.) v:tr
-ninat Ninat (female singer of the Omatikaya Clan) n:pr
-peyral Peyral (female Na’vi of the Omatikaya Clan) n:pr
-leno thorough, detailorientated (of a person) adj
-tìno thoroughness, attention to detail n
-kawngtu bad person, "bad guy" n
-otranyu Otranyu (probably a clan name) n:pr
diff --git a/.local/share/packages b/.local/share/packages
index a9004af..34f02a0 100644
--- a/.local/share/packages
+++ b/.local/share/packages
@@ -1,4 +1,4 @@
-# base Parabola OpenRC
+## base Parabola OpenRC
archlinux-keyring
parabola-keyring
base
@@ -17,36 +17,21 @@ neovim
opendoas # sudo replacement
git
-# packages
-
## ratakor-repo
-dmenu-ratakor # application launcher
-dwm-ratakor # window manager
-sb # status bar
-st-ratakor # terminal emulator
-slock-ratakor # screen locker
-ratakor-repo/sic # IRC client
+pinentry-dmenu # use dmenu for gpg # TODO: create pinentry-tofi
randhost # set a random hostname (OpenRC service)
blocktooth # block bluetooth with rfkill (OpenRC service)
networkmanager-hardened # set a randomized MAC address + disable co test
quand # a calendar app like when
-#clangbincc # a pacman hook to symlink clang to cc when there is a gcc update
-pinentry-dmenu # use dmenu for gpg
ratakor-repo/dragon # a simple drag-and-drop replacement for graphical stuff
-ratakor-repo/your-privacy # your-privacy but without NM as it's in another pkg
-cli-visualizer # audio visualizer
dashbinsh # a pacman hook to symlink dash to sh when there is a bash update
-dracula-gtk-theme # /usr/share/themes/dracula
gruvbox-gtk-theme # /usr/share/themes/gruvbox-[dark|light]
-xbanish # hide mouse when typing
simple-mtpfs # mount phone easily
dbus-xdg # dbus but without ~/.dbus
ungoogled-chromium-xdg # ungoogled chromium but without ~/.pki
-nsxiv # image viewer
scron # simple cron daemon
htop-vim # process viewer (htop) with vim keybinds
-openssh-dotlocal # openssh but ~/.ssh to ~/.local/etc/ssh
-herbe # notifications
+openssh # TODO openssh-dotlocal # openssh but ~/.ssh to ~/.local/etc/ssh
gomuks # matrix client
poop # Performance Optimizer Observation Platform
2048
@@ -59,10 +44,10 @@ eza # ls replacement
lf # file manager
bat # lf dependency and cat replacement
w3m # lf dependency and terminal based browser
-ueberzug # lf dependency: see image in terminal
atool # lf dependency
odt2txt # lf dependency
ffmpegthumbnailer # lf dependency
+chafa # lf dependency (image in terminal)
mediainfo # lf dependency
yt-dlp # download any video/audio from the web
ytfzf # search youtube video without a browser
@@ -70,7 +55,6 @@ dust # du replacement
duf # df replacement
fd # find replacement
gitui=0.22.1 # tui for git
-vivid # LS_COLORS generator
## dev
#texlive # LaTeX (big package)
@@ -83,16 +67,7 @@ mingw-w64-gcc # windows cc
musl # another libc
libbsd
zig # NOTE: use zig-dev-bin from AUR instead
-pypy3 # JIT python interpreter
-zls # zig lsp
-gopls # go lsp
-rust-analyzer # rust lsp
-texlab # LaTeX lsp
-pyright # python lsp
-bash-language-server
-lua-language-server
-vscode-css-languageserver
-vscode-html-languageserver
+go
astyle # C formatter
shellcheck
cmake # use zig or make please
@@ -102,6 +77,8 @@ dosfstools
mtools
xorriso
gptfdisk
+mariadb-openrc
+jdk17-openjdk
## sound
rtkit
@@ -111,22 +88,29 @@ pipewire-pulse
wireplumber
## grapical
-xorg-server
-sx # init xorg
-xorg-xrdb # Xresources
-sxhkd # hotkey daemon
-hsetroot # wallpaper utility
-#xwallpaper # wallpaper utility for mutliple monitors
-xclip # clipboard management
-picom # compositor (window transparency and stuff)
-redshift # no blue light at night, use nonprism repo to remove geoclue2 support
+river # window manager # TODO: need river-git for XF86ScreenSaver
+waybar # bar
+foot # terminal emulator
+foot-terminfo
+tofi # dynamic menu # TODO: aur
+mako # notification daemon
+swaylock # screen locker
+swaybg # wallpaper utility
+grim # screenshot
+slurp # region selection
+swayidle # idle manager
+wlopm-git # power management # TODO: aur
+wl-clipboard # clipboard management
+wf-recorder # screen recording
+#kanshi # multiple displays
+gammastep # no blue light at night
mpv # video and music player
socat # dependency for the music script that uses mpv
-maim # screenshot tool
zathura # document viewer
zathura-pdf-mupdf
claws-mail # mail client, use nonprism repo to remove libgdata support
gajim # XMPP client
+imv # image viewer
## misc
keepassxc # password manager
@@ -163,5 +147,7 @@ python-gnupg # gajim dependency
git-lfs
xdo # window manipulation
zsh-completions
-slop
cloc
+perf
+python-graphviz
+trash-cli
diff --git a/README.md b/README.md
index d7de54b..b9a7268 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,11 @@
<h1 align="center">My dotfiles</h1>
![screenshot](https://ratakor.com/images/setup/waw.png)
+(Outdated screenshot)
## Installation
I follow the [.local convention](https://gist.github.com/Earnestly/84cf9670b7e11ae2eac6f753910efebe)
-to a point that I have just one dotfile in $HOME (yes no .ssh, .dbus or .pki)
+to a point that I have just one dotfile in $HOME (yes no ~.ssh~, .dbus or .pki)
so you'll need to tweak the Makefile if you don't. Also if you're not using
Parabola OpenRC you will probably need to edit .local/share/packages according
to your distro.
@@ -18,13 +19,12 @@ DO NOT TRY TO INSTALL if it's not a fresh install and you don't know what you're
## Softwares
### Graphical environment
-- Window manager: [dwm](https://github.com/ratakor/dwm)
-- Compositor: [picom](https://github.com/yshui/picom)
-- Bar: [sb](https://github.com/ratakor/sb)
-- Terminal emulator: [st](https://github.com/ratakor/st)
-- Program launcher: [dmenu](https://github.com/ratakor/dmenu)
+- Window manager: [river](https://github.com/riverwm/river)
+- Bar: [waybar](https://github.com/Alexays/Waybar)
+- Terminal emulator: [foot](https://codeberg.org/dnkl/foot)
+- Dynamic menu: [tofi](https://github.com/philj56/tofi)
- Web Browser: [Ungoogled Chromium](https://github.com/ungoogled-software/ungoogled-chromium)
-- Themes: [Dracula](https://draculatheme.com/) and [Gruvbox](https://github.com/morhetz/gruvbox)
+- Theme: [Gruvbox](https://github.com/morhetz/gruvbox)
### Command Line Interface
- Shell: [zsh](https://github.com/zsh-users/zsh)
@@ -32,7 +32,6 @@ DO NOT TRY TO INSTALL if it's not a fresh install and you don't know what you're
- File manager: [lf](https://github.com/gokcehan/lf)
- Calendar: [quand](https://github.com/ratakor/quand)
- RSS reader: [newsboat](https://newsboat.org/)
-- IRC client: [sic](https://tools.suckless.org/sic)
### Fonts
- Serif font: [Noto Serif](https://fonts.google.com/noto/specimen/Noto+Serif)
@@ -44,22 +43,23 @@ DO NOT TRY TO INSTALL if it's not a fresh install and you don't know what you're
- Document viewer: [zathura](https://github.com/pwmt/zathura)
- Video player: [mpv](https://github.com/mpv-player/mpv)
- Music player: [music](.local/bin/music)
-- Image viewer: [nsxiv](https://nsxiv.codeberg.page/)
-- Notifications: [herbe](https://github.com/dudik/herbe)
-- Screenshot tool: [maim](https://github.com/naelstrof/maim)
+- Image viewer: [imv](https://sr.ht/~exec64/imv)
+- Notifications: [mako](https://github.com/emersion/mako)
+- Screenshot tool: [grim](https://sr.ht/~emersion/grim)
- Mail client: [Claws Mail](https://www.claws-mail.org)
-- Screen locker: [slock](https://github.com/ratakor/slock)
+- Screen locker: [swaylock](https://github.com/swaywm/swaylock)
- [Wallpapers](https://github.com/ratakor/wallpapers)
See [packages](.local/share/packages) for a list and a small description of
other programs I use.
## TODO
+- patch tofi then replace tofi with $DMENU in scripts
+- use ii as irc client?
- config mtm (or tmux) to be usable
-- replace sic with ii ?
## LICENSE
-Copyright © 2023 Ratakor <ratakor@disroot.org>
+Copyright (c) Ratakor
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above