commandline-info
Kurze Kommandozeilen-Ausgabe in ein anwenderfreundliches Fenster. Beispielsweise Lüfterdrehzahl und Temperatur der CPU:
commandline-info.tcl sensors
Bei jedem Mausklick erneuert sich der Inhalt.
#!/usr/bin/tclsh package require Tk bind [winfo class .] <Destroy> exit namespace import ::tcl::mathop::* tcl::tm::path add ~/bin/TM # set argv df package require History # source ~/bin/TM/history-0.1.tm set history [obj new history -unique true] if {$argv eq ""} then { set argv Spruchweisheit.tcl set font Monospace } elseif {[lindex $argv 0] eq "-font"} then { set argv [lassign $argv - font] } else { set font Monospace } exec echo font $font & proc setText str { variable font .info configure -text $str if {[regexp {(^|\n) } $str]} then { .info configure -font Monospace } else { .info configure -font $font } set str } event add <<Forward>> <Down> <Right> <Button-5> event add <<Backward>> <Up> <Left> <BackSpace> <Button-4> pack [label .info\ -font $font\ -bg white\ -justify left] $history add [setText [string trim [exec {*}$argv] \n]] wm resizable . no no wm title . $argv bind .info <Button-3> "tk_popup [menu .info.copy -tearoff no] %X %Y" .info.copy add command -label copy -command { clipboard clear clipboard append [.info cget -text] } bind .info <Button-1> { $history add [setText [string trim [exec {*}$argv] \n]] } bind . <Key-Return> { event generate .info <Button-1> } bind . <<Backward>> { if {![$history atStart]} then { setText [$history back] } break } bind . <<Forward>> { if {![$history atEnd]} then { setText [$history forward] } else { # event generate .info <Button-1> } }
12.10.2022
<< | Heimatseite | Verzeichnis | Stichworte | Autor | >>