diff options
-rw-r--r-- | examples/plugin-test | 14 | ||||
-rw-r--r-- | src/plugins/uname.py | 52 |
2 files changed, 63 insertions, 3 deletions
diff --git a/examples/plugin-test b/examples/plugin-test index db316ee..d9ead29 100644 --- a/examples/plugin-test +++ b/examples/plugin-test @@ -7,6 +7,7 @@ import os from plugins.uptime import Uptime from plugins.loadavg import AverageLoad from plugins.users import Users +from plugins.uname import Uname OUTPUT, HEIGHT, YPOS, TOP = 0, 24, 24, True @@ -15,6 +16,8 @@ OUTPUT, HEIGHT, YPOS, TOP = 0, 24, 24, True def redraw(): bar.clear() + time = spawn_read('date', '+%Y-(%m)%b-%d %T, %a w%V, %Z') + uptime_ = Uptime() uptime = '%id %02i:%02i:%0.2f' % uptime_.uptime tot_idle = '%id %02i:%02i:%0.2f' % uptime_.total_idle @@ -41,9 +44,14 @@ def redraw(): users = ['%s{%i}' % (colour_user(u) % u, len(users_[u])) for u in users_.keys()] users = 'Users: %s' % (' '.join(users)) - time = spawn_read('date', '+%Y-(%m)%b-%d %T, %a w%V, %Z') + uname_ = Uname() + nodename = uname_.nodename + kernel_release = uname_.kernel_release + operating_system = uname_.operating_system + uname = '%s %s %s' + uname %= (nodename, kernel_release, operating_system) - text = '%s │ %s │ %s │ %s │ %s' - text %= (time, uptime, idle, loadavg, users) + text = '%s │ %s │ %s │ %s │ %s │ %s' + text %= (time, uptime, idle, loadavg, users, uname) bar.draw_coloured_text(0, 10, 0, 2, text) diff --git a/src/plugins/uname.py b/src/plugins/uname.py new file mode 100644 index 0000000..6b05a96 --- /dev/null +++ b/src/plugins/uname.py @@ -0,0 +1,52 @@ +# -*- python -*- +''' +xpybar – xmobar replacement written in python +Copyright © 2014 Mattias Andrée (maandree@member.fsf.org) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +''' + +from util import * + + +class Uname: + ''' + Retrieve certain system information + + @variable kernel_name:str The kernel name + @variable nodename:str The network node hostname + @variable kernel_release:str The kernel release + @variable kernel_version:str The kernel version + @variable machine:str The machine hardware name + @variable processor:str? The processor type, `None` if unknown + @variable hardware_platform:str? The hardware platform, `None` if unknown + @variable operating_system:str The operating system + ''' + + + def __init__(self): + ''' + Constructor + ''' + u = lambda s : None if s == 'unknown' else s + self.kernel_name = spawn_read('uname', '-s') + self.nodename = spawn_read('uname', '-n') + self.kernel_release = spawn_read('uname', '-r') + self.kernel_version = spawn_read('uname', '-v') + self.machine = spawn_read('uname', '-m') + self.processor = u(spawn_read('uname', '-p')) + self.hardware_platform = u(spawn_read('uname', '-i')) + self.operating_system = spawn_read('uname', '-o') + + |