From ef7c1605a027b52bbff1b01ea693b60f53fa3a71 Mon Sep 17 00:00:00 2001 From: yuzu-eva Date: Thu, 8 May 2025 14:01:37 +0200 Subject: initial commit --- motd | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100755 motd (limited to 'motd') diff --git a/motd b/motd new file mode 100755 index 0000000..a41efa6 --- /dev/null +++ b/motd @@ -0,0 +1,111 @@ +#!/usr/bin/env tclsh + +# * Variables +set var(user) $env(USER) +set var(path) $env(PWD) +set var(home) $env(HOME) + +# * somewhere in /home or /usr/home? +#if {![string match -nocase "/home*" $var(path)]} { +if {![string match -nocase "/home*" $var(path)] && ![string match -nocase "/usr/home*" $var(path)] } { + return 0 +} + +# * last login +set lastlog [exec -- lastlog -u $var(user)] +set ll(p) [lindex $lastlog 5] +if {![string match -nocase "tty*" $ll(p)] && ![string match -nocase "pts*" $ll(p)]} { + set ll(1) [lindex $lastlog 7] + set ll(2) [lindex $lastlog 8] + set ll(3) [lindex $lastlog 9] + set ll(4) [lindex $lastlog 10] + set ll(5) [lindex $lastlog 6] +} else { + set ll(1) [lindex $lastlog 6] + set ll(2) [lindex $lastlog 7] + set ll(3) [lindex $lastlog 8] + set ll(4) [lindex $lastlog 9] + set ll(5) [lindex $lastlog 5] +} + +# * current system uptime +set uptime [exec -- /usr/bin/cut -d. -f1 /proc/uptime] +set up(d) [expr {$uptime/60/60/24}] +set up(h) [expr {$uptime/60/60%24}] +set up(m) [expr {$uptime/60%60}] +set up(s) [expr {$uptime%60}] + +expr { $up(d) > 1 ? [set timemod(d) "days"] : [set timemod(d) "day"]} +expr { $up(h) > 1 ? [set timemod(h) "hours"] : [set timemod(h) "hours"]} +expr { $up(m) > 1 ? [set timemod(m) "minutes"] : [set timemod(m) "minutes"]} +expr { $up(s) > 1 ? [set timemod(s) "seconds"] : [set timemod(s) "seconds"]} + +# * calculate usage of home directory; only use if your disk is +# * relatively small, otherwise it will take forever! +# set usage [lindex [exec -- /usr/bin/du -ms $var(home)] 0] + +# * list processes +set psa [expr {[lindex [exec -- ps -A h | wc -l] 0]-000}] +set psu [expr {[lindex [exec -- ps U $var(user) h | wc -l] 0]-002}] +set verb are +if [expr $psu < 2] { + if [expr $psu = 0] { + set psu none + } else { + set verb is + } +} + +# * current system load +set loadavg [exec -- /bin/cat /proc/loadavg] +set sysload(1) [lindex $loadavg 0] +set sysload(5) [lindex $loadavg 1] +set sysload(15) [lindex $loadavg 2] + +# * memory and swap +set memory [exec -- free -m] +set mem(t) [lindex $memory 7] +set mem(u) [lindex $memory 8] +set mem(f) [lindex $memory 9] +set mem(c) [lindex $memory 11] +set swap(t) [lindex $memory 14] +set swap(u) [lindex $memory 15] +set swap(f) [lindex $memory 16] + +# * temperature from lm-sensors, probably need to change +# * depending on your hardware +set temperature [exec -- sensors | grep °C | tr -d '+'] +set tem(c) [lindex $temperature 1] +set tem(d) [lindex $temperature 5] +set tem(g) [lindex $temperature 45] + +set title "WELCOME TO MAKAI" + +# * length of title string + 26 for left padding +set titlepad 42 + +# * terminal width - 2 for the padding +set w 70 + +puts "" +puts [format " \033\[01;32m%*s\033\[0m" $titlepad $title] +puts [format " \033\[0;96m%s\033\[0m" [string repeat - $w]] +puts [format " \033\[35mLast Login....:\033\[0m \033\[36m%s, %s %s %s from\033\[0m \033\[33m%s\033\[0m" $ll(1) $ll(2) $ll(3) $ll(4) $ll(5)] +puts [format " \033\[35mUptime........:\033\[0m \033\[36m%s %s, %s %s, %s %s, %s %s\033\[0m" $up(d) $timemod(d) $up(h) $timemod(h) $up(m) $timemod(m) $up(s) $timemod(s)] +puts [format " \033\[35mLoad..........:\033\[0m \033\[36m%s (1minute), %s (5minutes), %s (15minutes)\033\[0m" $sysload(1) $sysload(5) $sysload(15)] +puts [format " \033\[35mMemory MB.....:\033\[0m \033\[36mTotal: %5d Used: %5d Free: %5d Buff/Cache: %5d" $mem(t) $mem(u) $mem(f) $mem(c)] +puts [format " \033\[35mSwap MB.......:\033\[0m \033\[36mTotal: %5d Used: %5d Free: %5d " $swap(t) $swap(u) $swap(f)] +puts [format " \033\[35mTemperature...:\033\[0m \033\[36mCPU: %s GPU: %s SSD: %s\033\[0m" $tem(c) $tem(g) $tem(d)] +# puts [format " \033\[35mDisk Usage....:\033\[0m \033\[36mYou're using %sMB in %s\033\[0m" $usage $var(home)] +puts [format " \033\[35mProcesses.....:\033\[0m \033\[36m%s total running of which %s %s yours\033\[0m" $psa $psu $verb] +puts "" + +if {[file exists /etc/changelog]&&[file readable /etc/changelog]} { + puts " . .. More or less important system informations:\n" + set fp [open /etc/changelog] + while {-1!=[gets $fp line]} { + puts " ..) $line" + } + close $fp + puts "" +} -- cgit v1.2.3