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
# $ 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
ERRFILE=$XDG_CACHE_HOME/X11/xsession-errors
@ -7,34 +14,35 @@ usermodmap=$XDG_CONFIG_HOME/X11/Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap
# merge in defaults and keymaps
[ -f $sysresources ] && xrdb -merge $sysresources
[ -f $sysmodmap ] && xmodmap $sysmodmap
[ -f "$userresources" ] && xrdb -merge "$userresources"
[ -f "$usermodmap" ] && xmodmap "$usermodmap"
if [ -f $sysresources ] ; then
xrdb -merge $sysresources
fi
[ -d /etc/X11/xinit/xinitrc.d ] &&
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do [ -x "$f" ] && . "$f" ; done &&
if [ -f $sysmodmap ] ; then
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
fi
# Added xinitrc config
dbus-update-activation-environment --systemd --all &
systemctl --user import-environment DISPLAY &
xset r rate 300 70 &
setxkbmap en &
STATUS_BLOCKS="tray vol mic net bat kbd time date" dwmstatus &
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
if test -d ~/.config/X11/init.d/; then
for config in ~/.config/X11/init.d/*.sh; do
test -r "$config" && . "$config"
done
unset config
fi
while true; do
dwm >/dev/null 2>&1

View file

@ -4,8 +4,6 @@
# a fetch in pure POSIX shell
#
[ "$1" = "min" ] && mode="min"
# supress errors
exec 2>/dev/null
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
[ -f $os ] && . $os && break
done
[ -e "/data/data/com.termux" ] && ID="android $(getprop ro.build.version.release)"
if [ -e /proc/$$/comm ]; then
## Terminal
@ -63,20 +60,20 @@ if [ -e /proc/$$/comm ]; then
read -r c < "$i"
case $c in
*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
done
## Memory
# loop over lines in /proc/meminfo until it reaches MemTotal,
# 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
done < /proc/meminfo
[ "$mode" != "min" ] && mem="$(( $2 / 1000 ))MB"
mem="$(( $2 / 1000 ))MB"
## Processor
while read -r line; [ "$mode" != "min" ] ; do
while read -r line; do
case $line in
vendor_id*) vendor="${line##*: } ";;
model\ name*) cpu=${line##*: }; break;;
@ -92,14 +89,13 @@ if [ -e /proc/$$/comm ]; then
## Kernel
read -r _ _ version _ < /proc/version
[ -z "$version" ] && version=$(uname -r)
kernel=${version%%-*}
eq "$version" '*Microsoft*' && ID="fake $ID"
## 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
[ "$mode" != "min" ] && case $model in
case $model in
# alternate file with slightly different info
# on my laptop it has the device model (instead of 'hp notebook')
# on my desktop it has the extended motherboard model
@ -118,20 +114,6 @@ if [ -e /proc/$$/comm ]; then
[ $# -gt 1 ] && pkgs=$# && break
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
elif [ -f /var/run/dmesg.boot ]; then
# 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"
fi
eq "$0" '*fetish' && printf 'Step on me daddy\n' && exit
# help i dont know if it's a capital consistently
eq "$wm" '*[Gg][Nn][Oo][Mm][Ee]*' && wm='foot DE'
## GTK
while read -r line; [ "$mode" != "min" ]; do
while read -r line; do
eq "$line" 'gtk-theme*' && gtk=${line##*=} && break
done < "${XDG_CONFIG_HOME:=$HOME/.config}/gtk-3.0/settings.ini"
@ -247,55 +231,36 @@ cpu=${cpu%% with*}
cpu=${cpu% *-Core*}
col() {
char="●"
printf ' \033[91m%s \033[92m%s \033[93m%s \033[94m%s \033[95m%s \033[96m%s
\033[0m' "$char" "$char" "$char" "$char" "$char" "$char"
printf ' '
for i in 1 2 3 4 5 6; do
printf '\033[9%sm%s' "$i" "${colourblocks:-▅▅}"
done
printf '\033[0m\n'
}
full() {
printf '
\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[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
print() {
[ "$2" ] && printf '\033[9%sm%6s\033[0m%b%s\n' \
"${accent:-4}" "$1" "${separator:- ~ }" "$2"
}
min() {
printf '
\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
}
# default value
: "${info:=n user os sh wm up gtk cpu mem host kern pkgs term col n}"
[ "$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:")
slogout() {
killall xinit
swaymsg exit
_logout() {
if ps -a | grep -q 'tty1.*xinit' ; then
pkill xinit
return 0
fi
}
_shutdown() {
shutdown now
}
_reboot() {
shutdown -r 0
}
case "$option" in
"Shutdown") systemctl poweroff ;;
"Restart") systemctl reboot ;;
"Log out") pkill xinit;;
"Shutdown") _shutdown ;;
"Restart") _reboot ;;
"Log out") _logout ;;
*) exit 1 ;;
esac