2 #ArchLinux Daemon Manager Gui! by Harvie 2oo9
10 print "You are not root! Trying GKSU...\n";
15 my $aldm = '/usr/sbin/aldm';
19 my $builder = Gtk2
::Builder
->new();
20 $builder->add_from_file('/usr/share/aldm-gui/aldm.ui');
23 foreach my $widget qw(window1 aboutdialog1 treeview1 liststore1 label2)
25 $widgets{$widget}=$builder->get_object($widget);
28 $builder->connect_signals( undef );
31 #create columns in treeview
32 my $column = Gtk2
::TreeViewColumn
->new_with_attributes('Daemon', Gtk2
::CellRendererText
->new, text
=> 0);
33 $widgets{'treeview1'}->append_column($column);
35 $column = Gtk2
::TreeViewColumn
->new_with_attributes('Running', Gtk2
::CellRendererText
->new, text
=> 1);
36 $widgets{'treeview1'}->append_column($column);
38 $column = Gtk2
::TreeViewColumn
->new_with_attributes('WhatIs', Gtk2
::CellRendererText
->new, text
=> 2);
39 $widgets{'treeview1'}->append_column($column);
43 $widgets{'window1'}->show();
49 sub on_window1_destroy
54 sub on_imagemenuitem10_activate
56 $widgets{'aboutdialog1'}->show();
59 sub on_aboutdialog1_close
61 $widgets{'aboutdialog1'}->hide();
67 #$widgets{'liststore1'}->clear();
70 open(my $daemon_list, "$aldm list|");
71 while(<$daemon_list>) {
72 no warnings
'uninitialized';
73 $_ =~ s/^\s+|\s+$//g; #trim
74 open(my $whatis, "'$aldm' whatis '$_'|"); my $w = <$whatis>; close($whatis); $w =~ s/^\s+|\s+$//g; #trim
75 (my $run, $w) = split(/ /,$w,2);
77 #my $iter = $widgets{'liststore1'}->append();
78 #$widgets{'liststore1'}->set($iter, 0 => "$_", 1=> "$run", 2 => "$w");
83 if(!defined($iterators{$serv})) {
84 $iterators{$serv} = $widgets{'liststore1'}->append();
86 $widgets{'liststore1'}->set($iterators{$serv}, 0 => "$_", 1=> "$run", 2 => "$w");
91 sub get_selected_daemon
93 my $path = $widgets{'treeview1'}->get_selection->get_selected_rows;
94 my $model = $widgets{'treeview1'}->get_model;
95 my $iter = $model->get_iter($path);
96 my $str = $model->get ($iter, 0);
102 $_[0] =~ s/^\s+|\s+$//g; #trim
103 $widgets{'label2'}->set_text($_[0]);
108 open(my $pipe, "$_[0]|");
109 while(<$pipe>) { status
($_); }
113 sub on_button_start_clicked
{ s_system
"$aldm start ".get_selected_daemon
(); refresh_view
(); }
114 sub on_button_stop_clicked
{ s_system
"$aldm stop ".get_selected_daemon
(); refresh_view
(); }
115 sub on_button_restart_clicked
{ s_system
"$aldm restart ".get_selected_daemon
(); refresh_view
(); }
117 sub on_button_enable_fg_clicked
{
118 my $d = get_selected_daemon
();
119 system "$aldm enable-fg ".$d;
121 status
($d." enabled on init!");
124 sub on_button_enable_bg_clicked
{
125 my $d = get_selected_daemon
();
126 system "$aldm enable-bg ".$d;
128 status
($d." enabled on init background!");
131 sub on_button_disable_clicked
{
132 my $d = get_selected_daemon
();
133 system "$aldm disable ".$d;
135 status
($d." disabled!");