Advertisement
Dobbie03

obsysinfo.pl

Jan 23rd, 2017
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. #!/usr/bin/env perl
  2. use strict;
  3. use warnings;
  4. use autodie;
  5. use POSIX qw(strftime);
  6. use XML::Simple;
  7. use Data::Dumper;
  8.  
  9. # Distro -------------------------------------------------------------------
  10. open (my $issue, "<", "/etc/issue");
  11. my $distro;
  12. while (<$issue>) {
  13. if (/^[^\s]/) {
  14. $distro = (split / /, ((split /\\/)[0]))[0];
  15. last;
  16. }
  17. }
  18. close $issue;
  19.  
  20. # Host ---------------------------------------------------------------------
  21. my $host = `uname -n`;
  22. chomp $host;
  23.  
  24. # Kernel -------------------------------------------------------------------
  25. my $kernel = `uname -r`;
  26. chomp $kernel;
  27.  
  28. # Load ---------------------------------------------------------------------
  29. my $load = (split ' ', (split ':', `uptime`)[4])[0];
  30. chop $load;
  31.  
  32. # Machine ------------------------------------------------------------------
  33. my $machine = `uname -m`;
  34. chomp $machine;
  35.  
  36. # Memory (active) ----------------------------------------------------------
  37. open (my $meminfo, "<", "/proc/meminfo");
  38. my $mem_act;
  39. while (<$meminfo>) {
  40. chomp;
  41. if (/^Active:/) {
  42. $mem_act = int(((split)[-2])/1024);
  43. last;
  44. }
  45. }
  46. close $meminfo;
  47.  
  48. # Openbox theme ------------------------------------------------------------
  49. my $file = "$ENV{HOME}/.config/openbox/rc.xml";
  50. my $xs1 = XML::Simple->new();
  51. my $doc = $xs1->XMLin($file);
  52. my $obtheme = $doc->{theme}->{'name'};
  53.  
  54. # OS -----------------------------------------------------------------------
  55. my $os = `uname -o`;
  56. chomp $os;
  57.  
  58. # Time ---------------------------------------------------------------------
  59. my $time_date = strftime "%D, %R", localtime;
  60.  
  61. # Uptime -------------------------------------------------------------------
  62. my $uptime = (split ' ', `uptime`)[0];
  63.  
  64.  
  65. # Writing the pipemenu -----------------------------------------------------
  66.  
  67. print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
  68. . "<openbox_pipe_menu>\n"
  69. . "<item label=\"+ $ENV{USER}\@$host +\" />\n"
  70. . "<separator />"
  71. . "<item label=\"OS: $distro $os $machine \" />\n"
  72. . "<item label=\"Kernel: $kernel \" />\n"
  73. . "<item label=\"Uptime: $uptime \" />\n"
  74. . "<item label=\"Load: $load \" />\n"
  75. . "<item label=\"Mem: $mem_act MB\" />\n"
  76. . "<item label=\"Theme: $obtheme \" />\n"
  77. . "<separator />"
  78. . "<item label=\"+ $time_date +\" />\n"
  79. . "</openbox_pipe_menu>\n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement