init script

This commit is contained in:
tavo 2025-01-05 12:15:23 -06:00
parent 951ef339ff
commit 248b7e644d
4 changed files with 101 additions and 104 deletions

14
X11/init.d/init.sh Normal file
View file

@ -0,0 +1,14 @@
STATUS_BLOCKS="tray vol mic net bat kbd time date" dwmstatus &
dbus-update-activation-environment --systemd --all
systemctl --user import-environment DISPLAY
xset r rate 300 70
setxkbmap en
#clipmenud &
#dunst
#picom --experimental-backends --animation-for-open-window=zoom &
#emacs --daemon &
#xrandr --output DVI-D-0 --right-of HDMI-0
xsetroot -solid '#1e2326'
clear
sleep 0.2

View file

@ -1,5 +1,12 @@
#!/bin/sh #!/bin/sh
# $ printf '#!/bin/sh\n\n[ -f ~/.config/X11/xinitrc ] && . ~/.config/X11/xinitrc || . /etc/X11/Xsession\n' | sudo tee /etc/X11/xinit/xinitrc # `/etc/X11/xinit/xinitrc`:
#
# #!/bin/sh
# if [ -f ~/.config/X11/xinitrc ] ; then
# . ~/.config/X11/xinitrc
# else
# . /etc/X11/Xsession
# fi
userresources=$XDG_CONFIG_HOME/X11/Xresources userresources=$XDG_CONFIG_HOME/X11/Xresources
ERRFILE=$XDG_CACHE_HOME/X11/xsession-errors ERRFILE=$XDG_CACHE_HOME/X11/xsession-errors
@ -7,34 +14,35 @@ usermodmap=$XDG_CONFIG_HOME/X11/Xmodmap
sysresources=/etc/X11/xinit/.Xresources sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap sysmodmap=/etc/X11/xinit/.Xmodmap
# merge in defaults and keymaps if [ -f $sysresources ] ; then
[ -f $sysresources ] && xrdb -merge $sysresources xrdb -merge $sysresources
[ -f $sysmodmap ] && xmodmap $sysmodmap fi
[ -f "$userresources" ] && xrdb -merge "$userresources"
[ -f "$usermodmap" ] && xmodmap "$usermodmap"
[ -d /etc/X11/xinit/xinitrc.d ] && if [ -f $sysmodmap ] ; then
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do [ -x "$f" ] && . "$f" ; done && xmodmap $sysmodmap
fi
if [ -f "$userresources" ] ; then
xrdb -merge "$userresources"
fi
if [ -f "$usermodmap" ] ; then
xmodmap "$usermodmap"
fi
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
[ -x "$f" ] && . "$f"
done
unset f unset f
fi
# Added xinitrc config if test -d ~/.config/X11/init.d/; then
dbus-update-activation-environment --systemd --all & for config in ~/.config/X11/init.d/*.sh; do
systemctl --user import-environment DISPLAY & test -r "$config" && . "$config"
xset r rate 300 70 & done
setxkbmap en & unset config
STATUS_BLOCKS="tray vol mic net bat kbd time date" dwmstatus & fi
clipmenud &
dunst &
picom --experimental-backends --animation-for-open-window=zoom &
emacs --daemon &
dropbox &
clear &
# Multiple displays, add this into xinitrc.displays:
# xrandr --output DVI-D-0 --right-of HDMI-0
[ -f "$HOME/.config/X11/xinitrc.displays" ] && . /home/tavo/.config/X11/xinitrc.displays
xsetroot -solid '#1e2326' &
sleep 0.2
while true; do while true; do
dwm >/dev/null 2>&1 dwm >/dev/null 2>&1

View file

@ -4,8 +4,6 @@
# a fetch in pure POSIX shell # a fetch in pure POSIX shell
# #
[ "$1" = "min" ] && mode="min"
# supress errors # supress errors
exec 2>/dev/null exec 2>/dev/null
set -- set --
@ -27,7 +25,6 @@ for os in /etc/os-release /usr/lib/os-release; do
# some POSIX shells exit when trying to source a file that doesn't exist # some POSIX shells exit when trying to source a file that doesn't exist
[ -f $os ] && . $os && break [ -f $os ] && . $os && break
done done
[ -e "/data/data/com.termux" ] && ID="android $(getprop ro.build.version.release)"
if [ -e /proc/$$/comm ]; then if [ -e /proc/$$/comm ]; then
## Terminal ## Terminal
@ -63,20 +60,20 @@ if [ -e /proc/$$/comm ]; then
read -r c < "$i" read -r c < "$i"
case $c in case $c in
*bar*|*rc) ;; *bar*|*rc) ;;
dwm|awesome|xmonad*|qtile|sway|i3|[bfo]*box|*wm) wm=${c%%-*}; break;; awesome|xmonad*|qtile|sway|i3|[bfo]*box|*wm*) wm=${c%%-*}; break;;
esac esac
done done
## Memory ## Memory
# loop over lines in /proc/meminfo until it reaches MemTotal, # loop over lines in /proc/meminfo until it reaches MemTotal,
# then convert the amount (second word) from KB to MB # then convert the amount (second word) from KB to MB
while read -r line; [ "$mode" != "min" ]; do while read -r line; do
eq "$line" 'MemTotal*' && set -- $line && break eq "$line" 'MemTotal*' && set -- $line && break
done < /proc/meminfo done < /proc/meminfo
[ "$mode" != "min" ] && mem="$(( $2 / 1000 ))MB" mem="$(( $2 / 1000 ))MB"
## Processor ## Processor
while read -r line; [ "$mode" != "min" ] ; do while read -r line; do
case $line in case $line in
vendor_id*) vendor="${line##*: } ";; vendor_id*) vendor="${line##*: } ";;
model\ name*) cpu=${line##*: }; break;; model\ name*) cpu=${line##*: }; break;;
@ -92,14 +89,13 @@ if [ -e /proc/$$/comm ]; then
## Kernel ## Kernel
read -r _ _ version _ < /proc/version read -r _ _ version _ < /proc/version
[ -z "$version" ] && version=$(uname -r)
kernel=${version%%-*} kernel=${version%%-*}
eq "$version" '*Microsoft*' && ID="fake $ID" eq "$version" '*Microsoft*' && ID="fake $ID"
## Motherboard // laptop ## Motherboard // laptop
[ "$mode" != "min" ] && read -r model < /sys/devices/virtual/dmi/id/product_name read -r model < /sys/devices/virtual/dmi/id/product_name
# invalid model handling # invalid model handling
[ "$mode" != "min" ] && case $model in case $model in
# alternate file with slightly different info # alternate file with slightly different info
# on my laptop it has the device model (instead of 'hp notebook') # on my laptop it has the device model (instead of 'hp notebook')
# on my desktop it has the extended motherboard model # on my desktop it has the extended motherboard model
@ -118,20 +114,6 @@ if [ -e /proc/$$/comm ]; then
[ $# -gt 1 ] && pkgs=$# && break [ $# -gt 1 ] && pkgs=$# && break
done done
[ -d "/var/db/kiss" ] && pkgs="$pkgs (kiss)"
[ -d "/var/lib/pacman" ] && pkgs="$pkgs (pacman)"
[ -d "/var/lib/dpkg" ] && pkgs="$pkgs (dpkg)"
[ -d "/var/db/xbps" ] && pkgs="$pkgs (xbps)"
[ -d "/var/db/pkg" ] && pkgs="$pkgs (emerge)"
set --
# Universal formats
for i in '/var/lib/flatpak/exports/bin/* /var/lib/flatpak/runtime/*' ; do
set -- $i
[ $# -gt 2 ] && flatpak=$# && break
done
[ "$flatpak" ] && pkgs="$pkgs $flatpak (flatpak)"
read -r host < /proc/sys/kernel/hostname read -r host < /proc/sys/kernel/hostname
elif [ -f /var/run/dmesg.boot ]; then elif [ -f /var/run/dmesg.boot ]; then
# Both OpenBSD and FreeBSD use this file, however they're formatted differently # Both OpenBSD and FreeBSD use this file, however they're formatted differently
@ -226,11 +208,13 @@ elif v=/System/Library/CoreServices/SystemVersion.plist; [ -f "$v" ]; then
done < "$v" done < "$v"
fi fi
eq "$0" '*fetish' && printf 'Step on me daddy\n' && exit
# help i dont know if it's a capital consistently # help i dont know if it's a capital consistently
eq "$wm" '*[Gg][Nn][Oo][Mm][Ee]*' && wm='foot DE' eq "$wm" '*[Gg][Nn][Oo][Mm][Ee]*' && wm='foot DE'
## GTK ## GTK
while read -r line; [ "$mode" != "min" ]; do while read -r line; do
eq "$line" 'gtk-theme*' && gtk=${line##*=} && break eq "$line" 'gtk-theme*' && gtk=${line##*=} && break
done < "${XDG_CONFIG_HOME:=$HOME/.config}/gtk-3.0/settings.ini" done < "${XDG_CONFIG_HOME:=$HOME/.config}/gtk-3.0/settings.ini"
@ -247,55 +231,36 @@ cpu=${cpu%% with*}
cpu=${cpu% *-Core*} cpu=${cpu% *-Core*}
col() { col() {
char="●" printf ' '
printf ' \033[91m%s \033[92m%s \033[93m%s \033[94m%s \033[95m%s \033[96m%s for i in 1 2 3 4 5 6; do
\033[0m' "$char" "$char" "$char" "$char" "$char" "$char" printf '\033[9%sm%s' "$i" "${colourblocks:-▅▅}"
done
printf '\033[0m\n'
} }
full() { print() {
printf ' [ "$2" ] && printf '\033[9%sm%6s\033[0m%b%s\n' \
\033[1mDIST\033[0m %s "${accent:-4}" "$1" "${separator:- ~ }" "$2"
\033[1mKERN\033[0m %s
\033[1mPKGS\033[0m %s
\033[1mTERM\033[0m %s
\033[1mSHLL\033[0m %s
\033[1mWDMG\033[0m %s
\033[1mTHME\033[0m %s
\033[1mHOST\033[0m %s
\033[1mPCSR\033[0m %s
\033[1mMMRY\033[0m %s
\033[1mUPTM\033[0m %s
' "$ID" \
"$kernel" \
"$pkgs" \
"$term" \
"${SHELL##*/}" \
"${wm##*/}" \
"${gtk# }" \
"$model" \
"$vendor$cpu" \
"$mem" \
"$up"
col
} }
min() { # default value
printf ' : "${info:=n user os sh wm up gtk cpu mem host kern pkgs term col n}"
\033[1mDIST\033[0m %s
\033[1mKERN\033[0m %s
\033[1mPKGS\033[0m %s
\033[1mTERM\033[0m %s
\033[1mSHLL\033[0m %s
\033[1mWDMG\033[0m %s
\033[1mUPTM\033[0m %s
' "$ID" \
"$kernel" \
"$pkgs" \
"$term" \
"${SHELL##*/}" \
"${wm##*/}" \
"$up"
col
}
[ "$mode" = "min" ] && min || full for i in $info; do
case $i in
n) echo;;
os) print os "$ID";;
sh) print sh "${SHELL##*/}";;
wm) print wm "${wm##*/}";;
up) print up "$up";;
gtk) print gtk "${gtk# }";;
cpu) print cpu "$vendor$cpu";;
mem) print mem "$mem";;
host) print host "$model";;
kern) print kern "$kernel";;
pkgs) print pkgs "$pkgs";;
term) print term "$term";;
user) printf '%7s@%s\n' "$USER" "$host";;
col) col;;
esac
done

View file

@ -3,15 +3,25 @@
option=$(printf "Shutdown\nRestart\nLog out" | ~/.config/scripts/menu/menu "Power:") option=$(printf "Shutdown\nRestart\nLog out" | ~/.config/scripts/menu/menu "Power:")
slogout() { _logout() {
killall xinit if ps -a | grep -q 'tty1.*xinit' ; then
swaymsg exit pkill xinit
return 0
fi
}
_shutdown() {
shutdown now
}
_reboot() {
shutdown -r 0
} }
case "$option" in case "$option" in
"Shutdown") systemctl poweroff ;; "Shutdown") _shutdown ;;
"Restart") systemctl reboot ;; "Restart") _reboot ;;
"Log out") pkill xinit;; "Log out") _logout ;;
*) exit 1 ;; *) exit 1 ;;
esac esac