mirror of
https://codeberg.org/frosty/dotfiles.git
synced 2024-09-19 03:37:10 -04:00
Compare commits
8 commits
c3ed78ecb9
...
7ebe7d335c
Author | SHA1 | Date | |
---|---|---|---|
frosty | 7ebe7d335c | ||
frosty | a0f6d24712 | ||
frosty | a002585eb1 | ||
frosty | b3f158db1a | ||
frosty | d80d645292 | ||
frosty | 9c3ba6025e | ||
frosty | 4fdfeb1a29 | ||
frosty | 5662f5c172 |
28
.Xresources
Normal file
28
.Xresources
Normal file
|
@ -0,0 +1,28 @@
|
|||
dwm.font: Terminus:size=12
|
||||
dwm.normbgcolor: #121212
|
||||
|
||||
dmenu.font: Terminus:size=12
|
||||
dmenu.normbgcolor: #121212
|
||||
|
||||
!! st
|
||||
st.background: #121212
|
||||
st.foreground: #ebdbb2
|
||||
st.cursorColor: #ebdbb2
|
||||
st.color0: #282828
|
||||
st.color1: #cc241d
|
||||
st.color2: #98971a
|
||||
st.color3: #d79921
|
||||
st.color4: #458588
|
||||
st.color5: #b16286
|
||||
st.color6: #689d6a
|
||||
st.color7: #a89984
|
||||
st.color8: #928374
|
||||
st.color9: #fb4934
|
||||
st.color10: #b8bb26
|
||||
st.color11: #fabd2f
|
||||
st.color12: #83a598
|
||||
st.color13: #d3869b
|
||||
st.color14: #8ec07c
|
||||
st.color15: #ebdbb2
|
||||
st.alpha: 0.93
|
||||
st.borderpx: 4
|
|
@ -1,13 +1,13 @@
|
|||
# shellcheck shell=sh disable=SC1091
|
||||
|
||||
[ -f "$HOME/.bashrc" ] && . "$HOME/.bashrc"
|
||||
|
||||
# XDG base directories
|
||||
export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
|
||||
export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
|
||||
export XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}"
|
||||
export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
|
||||
|
||||
[ -f "$HOME/.bashrc" ] && . "$HOME/.bashrc"
|
||||
|
||||
# Default programs
|
||||
export TERMINAL="${TERMINAL:-st}"
|
||||
export EDITOR="${EDITOR:-nvim}"
|
||||
|
@ -15,7 +15,7 @@ export BROWSER="${BROWSER:-firefox}"
|
|||
|
||||
# $HOME cleanup
|
||||
export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority"
|
||||
export XINITRC="$XDG_CONFIG_HOME/X11/xinitrc"
|
||||
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc"
|
||||
export XCURSOR_PATH="/usr/share/icons:$XDG_DATA_HOME/icons"
|
||||
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
|
||||
export GOPATH="$XDG_DATA_HOME/go"
|
||||
|
@ -26,18 +26,14 @@ export NODE_REPL_HISTORY="$XDG_DATA_HOME/node_repl_history"
|
|||
export CUDA_CACHE_PATH="$XDG_CACHE_HOME/nv"
|
||||
|
||||
# Other program settings
|
||||
export SVDIR="$XDG_CONFIG_HOME/service"
|
||||
export _JAVA_OPTIONS="-Djava.util.prefs.userRoot=$XDG_CONFIG_HOME/java"
|
||||
export XIDLEHOOK_SOCK="$XDG_STATE_HOME/xidlehook.sock"
|
||||
|
||||
# $PATH additions
|
||||
export PATH="$PATH:$HOME/.local/bin"
|
||||
export PATH="$PATH:$HOME/.local/bin/screenlayouts"
|
||||
export PATH="$PATH:$HOME/.ghcup/bin"
|
||||
export PATH="$PATH:$HOME/.cabal/bin"
|
||||
export PATH="$PATH:$GOPATH/bin"
|
||||
export PATH="$PATH:$CARGO_HOME/bin"
|
||||
export PATH="$PATH:$XDG_DATA_HOME/npm/bin"
|
||||
|
||||
# Automatic graphical start on tty1
|
||||
[ "$(tty)" = "/dev/tty2" ] && ! pidof -s Xorg >/dev/null 2>&1 && exec startx >/dev/null 2>&1
|
||||
# Automatic graphical start
|
||||
[ "$(tty)" = "/dev/tty2" ] && exec startx || :
|
||||
|
|
25
.bashrc
25
.bashrc
|
@ -1,12 +1,10 @@
|
|||
# shellcheck shell=sh
|
||||
|
||||
case "$-" in
|
||||
case $- in
|
||||
*i*) ;;
|
||||
*) return ;;
|
||||
esac
|
||||
|
||||
export HISTFILE="$XDG_STATE_HOME/bash/history"
|
||||
|
||||
lfcd() {
|
||||
cd "$(command lf -print-last-dir "$@")" || return
|
||||
}
|
||||
|
@ -16,18 +14,27 @@ alias cp='cp -iv'
|
|||
alias mv='mv -iv'
|
||||
alias rm='rm -vI'
|
||||
alias mkdir='mkdir -pv'
|
||||
alias lf='lfub'
|
||||
alias ls='ls --color=auto -AF'
|
||||
cd() {
|
||||
builtin cd "$@" && ls
|
||||
}
|
||||
cd() { builtin cd "$@" && ls; }
|
||||
alias grep='grep --color=auto'
|
||||
# alias wget='wget --no-hsts-file'
|
||||
alias wget='wget --no-hsts'
|
||||
alias vim='nvim'
|
||||
|
||||
# Utilities
|
||||
alias ipp='curl https://ipinfo.io/ip && echo'
|
||||
alias ipl='monitors local_ip'
|
||||
ipl() {
|
||||
if address="$(ip route get 1 2>/dev/null)"; then
|
||||
address="${address#* via * dev * src }"
|
||||
address="${address% uid *}"
|
||||
fi
|
||||
|
||||
if [ -n "$address" ]; then
|
||||
printf '%s' "$address"
|
||||
else
|
||||
printf 'Offline'
|
||||
fi
|
||||
printf '\n'
|
||||
}
|
||||
|
||||
# Shorthands
|
||||
alias l='ls'
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
[ -f "$XDG_DATA_HOME/screenlayout" ] && . "$XDG_DATA_HOME/screenlayout"
|
||||
[ -f "$XDG_DATA_HOME/wallpaper" ] && xwallpaper --zoom "$XDG_DATA_HOME/wallpaper"
|
||||
xrdb "$XDG_CONFIG_HOME/X11/xinitrc"
|
||||
runsvdir "$SVDIR" &
|
||||
|
||||
xinput set-prop "SOAI USB Gaming Mouse" "libinput Accel Profile Enabled" 0 1 0
|
||||
xinput set-prop "SOAI USB Gaming Mouse" "libinput Accel Speed" 0.1
|
||||
setxkbmap -option caps:escape
|
||||
xsetroot -cursor_name left_ptr
|
||||
|
||||
modbot -x &
|
||||
while :; do
|
||||
dbus-launch --exit-with-session dwm || exit 1
|
||||
done
|
||||
|
||||
# exec dbus-launch --exit-with-session startxfce4
|
|
@ -1,51 +0,0 @@
|
|||
!! st
|
||||
st.font: Fira Mono:size=9
|
||||
st.background: #121212
|
||||
st.foreground: #ebdbb2
|
||||
st.cursorColor: #ebdbb2
|
||||
st.color0: #282828
|
||||
st.color1: #cc241d
|
||||
st.color2: #98971a
|
||||
st.color3: #d79921
|
||||
st.color4: #458588
|
||||
st.color5: #b16286
|
||||
st.color6: #689d6a
|
||||
st.color7: #a89984
|
||||
st.color8: #928374
|
||||
st.color9: #fb4934
|
||||
st.color10: #b8bb26
|
||||
st.color11: #fabd2f
|
||||
st.color12: #83a598
|
||||
st.color13: #d3869b
|
||||
st.color14: #8ec07c
|
||||
st.color15: #ebdbb2
|
||||
st.alpha: 0.95
|
||||
st.borderpx: 4
|
||||
|
||||
!! dwm
|
||||
dwm.font: Terminus:size=10
|
||||
dwm.normbgcolor: #121212
|
||||
dwm.normbordercolor: #282828
|
||||
dwm.normfgcolor: #a89984
|
||||
dwm.selbgcolor: #458588
|
||||
dwm.selbordercolor: #83a598
|
||||
dwm.selfgcolor: #ebdbb2
|
||||
|
||||
!! dmenu
|
||||
dmenu.font: Terminus:size=10
|
||||
dmenu.normbgcolor: #121212
|
||||
dmenu.normfgcolor: #a89984
|
||||
dmenu.selbgcolor: #458588
|
||||
dmenu.selfgcolor: #ebdbb2
|
||||
dmenu.normhifgcolor: #cc241d
|
||||
dmenu.normhibgcolor: #121212
|
||||
dmenu.selhifgcolor: #ebdbb2
|
||||
dmenu.selhibgcolor: #cc241d
|
||||
|
||||
!! nsxiv
|
||||
Nsxiv.bar.font: Terminus:size=8
|
||||
Nsxiv.window.background: #121212
|
||||
Nsxiv.window.foreground: #a89984
|
||||
Nsxiv.mark.foreground: #a89984
|
||||
Nsxiv.bar.background: #a89984
|
||||
Nsxiv.bar.foreground: #1d2021
|
|
@ -1,9 +1,8 @@
|
|||
[general]
|
||||
sensitivity = 60
|
||||
sensitivity = 40
|
||||
|
||||
[input]
|
||||
method = fifo
|
||||
source = /tmp/mpd_visualizer.fifo
|
||||
method = pipewire
|
||||
|
||||
[output]
|
||||
channels = mono
|
||||
|
|
73
.config/ezrun/ezrunrc
Executable file
73
.config/ezrun/ezrunrc
Executable file
|
@ -0,0 +1,73 @@
|
|||
#!/bin/sh
|
||||
|
||||
# shellcheck disable=SC2034
|
||||
|
||||
CHOICE_COMMAND="dmenu -l 4 -g 8"
|
||||
REPLACEMENTS="_plus:+
|
||||
_:-
|
||||
0: "
|
||||
|
||||
_st() {
|
||||
command st -e "$@"
|
||||
}
|
||||
|
||||
# General system utilities
|
||||
st() { command st; }
|
||||
xterm() { command xterm; }
|
||||
thunar() { command thunar; }
|
||||
nnn() { _st nnn; }
|
||||
lf() { _st lf; }
|
||||
xarchiver() { command xarchiver; }
|
||||
stalonetray() { command stalonetray; }
|
||||
flatseal() { flatpak run com.github.tchx84.Flatseal; }
|
||||
xkill() { command xkill; }
|
||||
xev() { _st sh -c "xev | grep XLookupString"; }
|
||||
lock() { i3lock; }
|
||||
|
||||
# Settings
|
||||
pulsemixer() { _st pulsemixer; }
|
||||
pavucontrol() { command pavucontrol; }
|
||||
arandr() { command arandr; }
|
||||
iwctl() { _st iwctl; }
|
||||
lxappearance() { command lxappearance; }
|
||||
|
||||
# Development
|
||||
nvim() { _st nvim; }
|
||||
emacs() { command emacs; }
|
||||
tmux_new() { _st tmux; }
|
||||
tmux_attach() { _st tmux attach; }
|
||||
|
||||
# Internet
|
||||
firefox() { command firefox; }
|
||||
qutebrowser() { command qutebrowser; }
|
||||
signal() { signal-desktop; }
|
||||
gajim() { command gajim; }
|
||||
vesktop() { vesktop-bin; }
|
||||
deluge() { deluge-gtk; }
|
||||
nicotine_plus() { nicotine; }
|
||||
|
||||
# Media
|
||||
ncmpcpp() { _st ncmpcpp; }
|
||||
ncspot() { _st ncspot; }
|
||||
newsraft() { _st newsraft; }
|
||||
|
||||
# Etc.
|
||||
gimp() { command gimp; }
|
||||
obs_studio() { obs-studio; }
|
||||
darktable() { command darktable; }
|
||||
|
||||
# Showcases/toys
|
||||
cowsay() {
|
||||
text=$(printf '' | dmenu -p 'cowsay')
|
||||
[ "$text" ] || return 1
|
||||
_st "$SHELL" -c "cowsay $text && read -srn1"
|
||||
}
|
||||
fastfetch() { _st "$SHELL" -c "fastfetch && read -srn1"; }
|
||||
|
||||
# Games
|
||||
steam() { flatpak run com.valvesoftware.Steam; }
|
||||
lutris() { flatpak run net.lutris.Lutris; }
|
||||
prism_launcher() { flatpak run org.prismlauncher.PrismLauncher; }
|
||||
flycast() { flatpak run org.flycast.Flycast; }
|
||||
dolphin_emu() { flatpak run org.DolphinEmu.dolphin-emu; }
|
||||
openrct2() { command openrct2; }
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
ueberzugpp cmd -s "$UB_SOCKET" -a remove -i PREVIEW
|
|
@ -1,2 +0,0 @@
|
|||
set previewer ~/.config/lf/previewer
|
||||
set cleaner ~/.config/lf/cleaner
|
|
@ -1,85 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
|
||||
|
||||
true_input_path="$(readlink -f "$1")"
|
||||
|
||||
image() {
|
||||
file_path="$1"
|
||||
mw="$(($2 - 1))"
|
||||
mh="$3"
|
||||
x="$4"
|
||||
y="$5"
|
||||
|
||||
ueberzugpp cmd -s "$UB_SOCKET" -a add -i PREVIEW -x "$x" -y "$y" --max-width "$mw" --max-height "$mh" -f "$file_path"
|
||||
|
||||
exit 1
|
||||
}
|
||||
|
||||
plaintext() {
|
||||
if command -v bat >/dev/null 2>&1; then
|
||||
bat --color=never --style=numbers --pager=never "$@"
|
||||
else
|
||||
cat "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
generate_cache_path() {
|
||||
while IFS=' ' read -r thumbnail _; do
|
||||
printf '%s' "$thumbnail"
|
||||
done <<EOF
|
||||
$XDG_CACHE_HOME/lf/thumbnail.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' "$true_input_path" | sha256sum).jpg
|
||||
EOF
|
||||
}
|
||||
|
||||
case "$(printf '%s' "$true_input_path" | tr '[:upper:]' '[:lower:]')" in
|
||||
*.tgz | *.tar.gz)
|
||||
tar tzf "$1"
|
||||
;;
|
||||
*.tar.bz2 | *.tbz2)
|
||||
tar tjf "$1"
|
||||
;;
|
||||
*.tar.txz | *.txz)
|
||||
xz -l "$1"
|
||||
;;
|
||||
*.tar)
|
||||
tar tf "$1"
|
||||
;;
|
||||
*.zip | *.jar)
|
||||
unzip -l "$1"
|
||||
;;
|
||||
*.rar)
|
||||
unrar l "$1"
|
||||
;;
|
||||
*.7z)
|
||||
7z l "$1"
|
||||
;;
|
||||
*.iso)
|
||||
iso-info --no-header -l "$1"
|
||||
;;
|
||||
*.wav | *.mp3 | *.flac | *.m4a | *.ogg | *.opus)
|
||||
exiftool "$1"
|
||||
;;
|
||||
*.avi | *.mp4 | *.mkv | *.mov | *.webm | *.m4v)
|
||||
shift
|
||||
thumbnail="$(generate_cache_path)"
|
||||
[ -f "$thumbnail" ] || ffmpegthumbnailer -i "$true_input_path" -o "$thumbnail" -s 0 -q 5
|
||||
image "$thumbnail" "$@"
|
||||
;;
|
||||
*.bmp | *.jpg | *.jpeg | *.png | *.xpm | *.webp | *.gif)
|
||||
shift
|
||||
image "$true_input_path" "$@"
|
||||
;;
|
||||
*.svg)
|
||||
shift
|
||||
thumbnail="$(generate_cache_path)"
|
||||
[ -f "$thumbnail" ] || convert "$true_input_path" "$thumbnail"
|
||||
image "$thumbnail" "$@"
|
||||
;;
|
||||
*.[1-8])
|
||||
man "$1" | col -b
|
||||
;;
|
||||
*)
|
||||
plaintext "$@"
|
||||
;;
|
||||
esac
|
|
@ -1,7 +1,7 @@
|
|||
XDG_DESKTOP_DIR="$HOME"
|
||||
XDG_DOCUMENTS_DIR="$HOME/docs"
|
||||
XDG_DOWNLOAD_DIR="$HOME/dl"
|
||||
XDG_DOCUMENTS_DIR="$HOME/documents"
|
||||
XDG_DOWNLOAD_DIR="$HOME/downloads"
|
||||
XDG_MUSIC_DIR="$HOME/music"
|
||||
XDG_PICTURES_DIR="$HOME/pics"
|
||||
XDG_VIDEOS_DIR="$HOME/vids"
|
||||
XDG_SCREENSHOTS_DIR="$HOME/pics/screenshots"
|
||||
XDG_PICTURES_DIR="$HOME/pictures"
|
||||
XDG_VIDEOS_DIR="$HOME/videos"
|
||||
XDG_SCREENSHOTS_DIR="$HOME/pictures/screenshots"
|
||||
|
|
3
.gitmodules
vendored
3
.gitmodules
vendored
|
@ -1,3 +0,0 @@
|
|||
[submodule ".local/share/bash/iceline"]
|
||||
path = .local/share/bash/iceline
|
||||
url = git@codeberg.org:frosty/iceline.git
|
|
@ -1,35 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
|
||||
EDITOR="${EDITOR:-vim}"
|
||||
|
||||
BM_DIRS="$XDG_CONFIG_HOME/bookmarks/directories"
|
||||
BM_FILES="$XDG_CONFIG_HOME/bookmarks/files"
|
||||
OUTPUT_FILE="$XDG_CONFIG_HOME/shell/10-bookmarks.sh"
|
||||
|
||||
cleanup_file() {
|
||||
while IFS= read -r line; do
|
||||
[ -z "$line" ] && continue
|
||||
|
||||
while IFS='#' read -r content _; do
|
||||
[ -n "$content" ] && printf '%s\n' "$content"
|
||||
done <<EOF
|
||||
$line
|
||||
EOF
|
||||
done <"$1"
|
||||
}
|
||||
|
||||
{
|
||||
while IFS=' ' read -r name value; do
|
||||
printf "alias %s='cd %s'\n" "$name" "$value"
|
||||
done <<EOF
|
||||
$(cleanup_file "$BM_DIRS")
|
||||
EOF
|
||||
|
||||
# TODO(frosty): Support other applications per line, instead of only using $EDITOR.
|
||||
while IFS=' ' read -r name value; do
|
||||
printf "alias %s='%s %s'\n" "$name" "$EDITOR" "$value"
|
||||
done <<EOF
|
||||
$(cleanup_file "$BM_FILES")
|
||||
EOF
|
||||
} >"$OUTPUT_FILE"
|
|
@ -1,40 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
languages="go
|
||||
rust"
|
||||
coreutils="awk
|
||||
sed"
|
||||
|
||||
while IFS= read -r line; do
|
||||
case "$languages" in
|
||||
*$line*)
|
||||
tool="language"
|
||||
selected="$line"
|
||||
break
|
||||
;;
|
||||
esac
|
||||
case "$coreutils" in
|
||||
*$line*)
|
||||
tool="coreutil"
|
||||
selected="$line"
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done <<EOF
|
||||
$(printf '%s\n%s' "$languages" "$coreutils" | shuf | fzf)
|
||||
EOF
|
||||
[ -z "$selected" ] && exit 1
|
||||
|
||||
printf "enter a query: " >&2
|
||||
read -r query
|
||||
|
||||
if [ -n "$query" ]; then
|
||||
case "$tool" in
|
||||
language) url="$selected/$query" ;;
|
||||
coreutil) url="$selected~$query" ;;
|
||||
esac
|
||||
else
|
||||
url="$selected"
|
||||
fi
|
||||
|
||||
curl -s "https://cht.sh/$url"
|
|
@ -1,29 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
|
||||
UEBERZUG_TMP_DIR="${UEBERZUG_TMP_DIR:-/tmp}"
|
||||
|
||||
UB_PID=
|
||||
UB_SOCKET=
|
||||
|
||||
cleanup() {
|
||||
exec 3>&-
|
||||
ueberzugpp cmd -s "$UB_SOCKET" -a exit
|
||||
}
|
||||
|
||||
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
|
||||
lf "$@"
|
||||
else
|
||||
[ -d "$XDG_CACHE_HOME/lf" ] || mkdir -p "$XDG_CACHE_HOME/lf"
|
||||
|
||||
UB_PID_FILE="$UEBERZUG_TMP_DIR/.$(uuidgen)"
|
||||
ueberzugpp layer --silent --no-stdin --use-escape-codes --pid-file "$UB_PID_FILE"
|
||||
read -r UB_PID <"$UB_PID_FILE"
|
||||
rm "$UB_PID_FILE"
|
||||
|
||||
UB_SOCKET="$UEBERZUG_TMP_DIR/ueberzugpp-$UB_PID.socket"
|
||||
export UB_PID UB_SOCKET
|
||||
trap cleanup HUP INT QUIT TERM EXIT
|
||||
|
||||
lf "$@" 3>&-
|
||||
fi
|
25
.local/bin/mod-battery
Executable file
25
.local/bin/mod-battery
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
FULL_THRESHOLD=90
|
||||
|
||||
for battery in /sys/class/power_supply/BAT*; do
|
||||
if [ ! -f "$battery/capacity" ] || [ ! -f "$battery/status" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
read -r capacity <"$battery/capacity"
|
||||
read -r status <"$battery/status"
|
||||
|
||||
if [ "$status" = "Charging" ] || ([ "$capacity" -ge "$FULL_THRESHOLD" ] && [ "$status" = "Not charging" ]); then
|
||||
prefix="AC"
|
||||
else
|
||||
prefix="BAT"
|
||||
fi
|
||||
printf '%s %s%%' "$prefix" "$capacity"
|
||||
|
||||
exit 0
|
||||
done
|
||||
|
||||
exit 1
|
53
.local/bin/mod-memory
Executable file
53
.local/bin/mod-memory
Executable file
|
@ -0,0 +1,53 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
DISPLAY_DECIMAL_PLACES=2
|
||||
|
||||
MEBI=1024
|
||||
GIBI=$((MEBI * MEBI))
|
||||
TEBI=$((GIBI * MEBI))
|
||||
|
||||
display_kib_unit() {
|
||||
size_kib=$1
|
||||
decimal_places=$2
|
||||
|
||||
if [ "$size_kib" -lt "$MEBI" ]; then
|
||||
size=$size_kib
|
||||
unit="K"
|
||||
elif [ "$size_kib" -lt "$GIBI" ]; then
|
||||
size=$(printf 'scale=%s; %s / %s\n' "$decimal_places" "$size_kib" "$MEBI" | bc)
|
||||
unit="M"
|
||||
elif [ "$size_kib" -lt "$TEBI" ]; then
|
||||
size=$(printf 'scale=%s; %s / %s\n' "$decimal_places" "$size_kib" "$GIBI" | bc)
|
||||
unit="G"
|
||||
else
|
||||
size=$(printf 'scale=%s; %s / %s\n' "$decimal_places" "$size_kib" "$TEBI" | bc)
|
||||
unit="T"
|
||||
fi
|
||||
|
||||
printf '%.*f%s' "$decimal_places" "$size" "$unit"
|
||||
}
|
||||
|
||||
mem_total=
|
||||
mem_free=
|
||||
mem_buffers=
|
||||
mem_cached=
|
||||
mem_sreclaimable=
|
||||
mem_shmem=
|
||||
|
||||
while read -r type value _; do
|
||||
case $type in
|
||||
MemTotal:) mem_total=$value ;;
|
||||
MemFree:) mem_free=$value ;;
|
||||
Buffers:) mem_buffers=$value ;;
|
||||
Cached:) mem_cached=$value ;;
|
||||
SReclaimable:) mem_sreclaimable=$value ;;
|
||||
Shmem:) mem_shmem=$value ;;
|
||||
esac
|
||||
done </proc/meminfo
|
||||
|
||||
mem_used=$((mem_total - mem_free))
|
||||
mem_non_cache_buffer=$((mem_used - (mem_buffers + (mem_cached + mem_sreclaimable - mem_shmem))))
|
||||
|
||||
printf 'MEM %s' $(display_kib_unit "$mem_non_cache_buffer" "$DISPLAY_DECIMAL_PLACES")
|
14
.local/bin/mod-network
Executable file
14
.local/bin/mod-network
Executable file
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
if address="$(ip route get 1 2>/dev/null)"; then
|
||||
address="${address#* via * dev * src }"
|
||||
address="${address% uid *}"
|
||||
fi
|
||||
|
||||
if [ -n "$address" ]; then
|
||||
printf '%s' "$address"
|
||||
else
|
||||
printf 'Offline'
|
||||
fi
|
24
.local/bin/mod-volume
Executable file
24
.local/bin/mod-volume
Executable file
|
@ -0,0 +1,24 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
SINK="@DEFAULT_AUDIO_SINK@"
|
||||
|
||||
muted=
|
||||
volume=$(wpctl get-volume "$SINK")
|
||||
|
||||
case $volume in
|
||||
*\[MUTED\]) muted=1 ;;
|
||||
esac
|
||||
volume=${volume#Volume: }
|
||||
volume=${volume%.*}${volume#*.}
|
||||
volume=${volume#0}
|
||||
volume=${volume#0}
|
||||
volume=${volume% \[MUTED\]}
|
||||
|
||||
if [ -n "$muted" ]; then
|
||||
prefix="MUTE"
|
||||
else
|
||||
prefix="VOL"
|
||||
fi
|
||||
printf '%s %s%%' "$prefix" "$volume"
|
|
@ -1,19 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
notify() {
|
||||
notify-send -r 9991 "$@"
|
||||
}
|
||||
|
||||
i=0
|
||||
while IFS= read -r line; do
|
||||
case "$i" in
|
||||
0) track_artist="$line" ;;
|
||||
1) track_title="$line" ;;
|
||||
*) break ;;
|
||||
esac
|
||||
i=$((i + 1))
|
||||
done <<EOF
|
||||
$(MPC_FORMAT="%artist%\n%title%" mpc)
|
||||
EOF
|
||||
|
||||
notify "$track_title" "by $track_artist"
|
|
@ -4,58 +4,28 @@ set -eu
|
|||
|
||||
# shellcheck disable=SC1091
|
||||
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" ] && . "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs"
|
||||
OUTPUT_DIRECTORY="${XDG_SCREENSHOTS_DIR:-${XDG_PICTURES_DIR:-$HOME}}"
|
||||
OUTPUT_DIRECTORY=${XDG_SCREENSHOTS_DIR:-${XDG_PICTURES_DIR:-$HOME}}
|
||||
FILENAME_BASE=
|
||||
FILENAME_DATE_FORMAT="%Y-%m-%d_%H-%M-%S"
|
||||
|
||||
QUIET=
|
||||
COPY=
|
||||
SAVE=
|
||||
NOTIFY=1
|
||||
COPY=1
|
||||
SAVE=1
|
||||
|
||||
die() {
|
||||
printf '%s: %s\n' "${0##*/}" "$1"
|
||||
exit 1
|
||||
}
|
||||
screenshot_type=$1
|
||||
|
||||
notify() {
|
||||
notify-send "${0##*/}" "$@"
|
||||
}
|
||||
if [ "$SAVE" ]; then
|
||||
FILE_PATH=${FILE_PATH:-$OUTPUT_DIRECTORY/$FILENAME_BASE$(date "+$FILENAME_DATE_FORMAT").png}
|
||||
else
|
||||
FILE_PATH="/tmp/${0##*/}-$!.png"
|
||||
fi
|
||||
|
||||
screenshot_select() {
|
||||
maim -qsu "$@"
|
||||
}
|
||||
|
||||
screenshot_full() {
|
||||
maim -qu "$@"
|
||||
}
|
||||
|
||||
while getopts :hVqcos opt; do
|
||||
case "$opt" in
|
||||
q) QUIET=1 ;;
|
||||
c) COPY=1 ;;
|
||||
s) SAVE=1 ;;
|
||||
*) die "invalid option: -$OPTARG" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift "$((OPTIND - 1))"
|
||||
|
||||
SCREENSHOT_TYPE="${1:-full}"
|
||||
FILE_PATH="${2:-}"
|
||||
|
||||
case "$SCREENSHOT_TYPE" in
|
||||
select | full) ;;
|
||||
case $screenshot_type in
|
||||
select) maim -qug "$(slop || exit 0)" "$FILE_PATH" ;;
|
||||
full) maim -qu "$FILE_PATH" ;;
|
||||
*) exit 1 ;;
|
||||
esac
|
||||
|
||||
if [ -n "$SAVE" ]; then
|
||||
FILE_PATH="${FILE_PATH:-$OUTPUT_DIRECTORY/$FILENAME_BASE$(date "+$FILENAME_DATE_FORMAT").png}"
|
||||
else
|
||||
FILE_PATH="/tmp/${0##*/}-$(date '+%s').png"
|
||||
fi
|
||||
|
||||
screenshot_"$SCREENSHOT_TYPE" "$FILE_PATH" || exit 0
|
||||
|
||||
[ -z "$QUIET" ] && notify -i "$FILE_PATH" "Screenshot saved to <b>${FILE_PATH##*/}</b>."
|
||||
[ -n "$COPY" ] && xclip -sel clip -t image/png "$FILE_PATH"
|
||||
[ -z "$SAVE" ] && rm "$FILE_PATH"
|
||||
[ "$NOTIFY" ] && notify-send "${0##*/}" "Screenshot taken"
|
||||
[ "$COPY" ] && xclip -sel clip -t image/png "$FILE_PATH"
|
||||
[ "$SAVE" ] || rm "$FILE_PATH"
|
||||
|
|
18
.local/bin/sys-volume
Executable file
18
.local/bin/sys-volume
Executable file
|
@ -0,0 +1,18 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
SINK="@DEFAULT_AUDIO_SINK@"
|
||||
STATUSBAR="modbot"
|
||||
STATUSBAR_SIGNAL=1
|
||||
|
||||
action=$1
|
||||
|
||||
if [ "$action" = "toggle" ]; then
|
||||
wpctl set-mute "$SINK" toggle
|
||||
else
|
||||
wpctl set-mute "$SINK" 0
|
||||
wpctl set-volume "$SINK" "$action"
|
||||
fi
|
||||
|
||||
pkill -RTMIN+"$STATUSBAR_SIGNAL" "$STATUSBAR"
|
|
@ -1,8 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
pipe="$1"
|
||||
update="$2"
|
||||
|
||||
PIPE_FILE="/tmp/pipe-$pipe"
|
||||
[ -p "$PIPE_FILE" ] || mkfifo "$PIPE_FILE"
|
||||
$update >"$PIPE_FILE"
|
|
@ -1,39 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
SINK="@DEFAULT_AUDIO_SINK@"
|
||||
NOTIFY_ID=9990
|
||||
NOTIFY_URGENCY="low"
|
||||
|
||||
action="${1:-}"
|
||||
[ -z "$action" ] && exit 1
|
||||
|
||||
if [ "$action" = "toggle" ]; then
|
||||
wpctl set-mute "$SINK" "$action" || exit 1
|
||||
else
|
||||
wpctl set-volume "$SINK" "$action" || exit 1
|
||||
fi
|
||||
|
||||
volume="$(wpctl get-volume "$SINK")"
|
||||
case "$volume" in
|
||||
*\[MUTED\]*) muted=1 ;;
|
||||
*) muted=0 ;;
|
||||
esac
|
||||
volume="${volume% \[MUTED\]}"
|
||||
volume="${volume#Volume: }"
|
||||
volume="${volume%.*}${volume#*.}"
|
||||
volume="${volume#0}"
|
||||
|
||||
if [ "$muted" -eq 1 ]; then
|
||||
icon="audio-volume-muted-symbolic"
|
||||
title="Volume Muted"
|
||||
else
|
||||
case "$volume" in
|
||||
[0-9] | [1-2][0-9] | 3[0-3]) icon="audio-volume-low-symbolic" ;;
|
||||
3[4-9] | [4-5][0-9] | 6[0-6]) icon="audio-volume-medium-symbolic" ;;
|
||||
6[7-9] | [7-9][0-9] | 100) icon="audio-volume-high-symbolic" ;;
|
||||
esac
|
||||
title="Volume"
|
||||
fi
|
||||
|
||||
notify-send -r "$NOTIFY_ID" -u "$NOTIFY_URGENCY" -h int:value:"$volume" -i "$icon" "$title"
|
||||
update-pipe volume 'monitors volume'
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 26a39ab5f3a3a43fc2c443cd163c512d0ebdcf8d
|
33
.xinitrc
Executable file
33
.xinitrc
Executable file
|
@ -0,0 +1,33 @@
|
|||
#!/bin/sh
|
||||
|
||||
xrandr --setprovideroutputsource modesetting NVIDIA-0
|
||||
xrandr --auto
|
||||
xrandr --dpi 96
|
||||
xrandr \
|
||||
--output eDP-1 --off \
|
||||
--output HDMI-2 --primary --mode 1280x1024 --pos 0x0 --rate 75
|
||||
|
||||
export __NV_PRIME_RENDER_OFFLOAD=1
|
||||
export __GLX_VENDOR_LIBRARY_NAME="nvidia"
|
||||
|
||||
[ -f "$XDG_DATA_HOME/wallpaper" ] && xwallpaper --zoom "$XDG_DATA_HOME/wallpaper" &
|
||||
xrdb -merge "$HOME/.Xresources"
|
||||
|
||||
pipewire &
|
||||
pipewire-pulse &
|
||||
wireplumber &
|
||||
|
||||
dunst &
|
||||
picom &
|
||||
udiskie &
|
||||
mpd --no-daemon &
|
||||
|
||||
modbot -x &
|
||||
|
||||
while :; do
|
||||
if command -v dbus-launch >/dev/null; then
|
||||
dbus-launch --sh-syntax --exit-with-session dwm
|
||||
elif command -v dbus-run-session >/dev/null; then
|
||||
dbus-run-session dwm
|
||||
fi
|
||||
done
|
Loading…
Reference in a new issue