/[pxelator]/lib/PXElator/x11.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /lib/PXElator/x11.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 202 - (show annotations)
Wed Aug 12 01:29:11 2009 UTC (14 years, 8 months ago) by dpavlin
File size: 960 byte(s)
return of the screen: log, scrollback buffers and remote access again!

1 package x11;
2
3 use warnings;
4 use strict;
5
6 use log;
7 use File::Slurp;
8
9 my @cols;
10
11 my $last_col = '';
12 open(my $rgb, '<', '/etc/X11/rgb.txt');
13 while(<$rgb>) {
14 chomp;
15 my (undef,$col) = split(/\s\s+/,$_,2);
16 next unless $col =~ m{Light};
17 push @cols, $col if $last_col ne $col;
18 $last_col = $col;
19 }
20 close($rgb);
21
22 sub xterm {
23 my ( $name, $cmd ) = @_;
24
25 my $screenrc = "/tmp/$name.screenrc";
26
27 my ($autodetach,$detach) = $ENV{DISPLAY} ? ('off','') : ( 'on', 'detach' );
28
29 write_file $screenrc, qq|
30
31 autodetach $autodetach
32 altscreen off
33 defscrollback 10000
34 startup_message off
35
36 sessionname $name
37
38 screen -t $name $cmd
39 logfile $log::dir/$name.log
40 log on
41
42 $detach
43
44 |;
45
46 my $screen = "screen -R $name -c $screenrc";
47 my $exec;
48
49 if ( $ENV{DISPLAY} ) {
50 my $fg = $cols[ unpack('C*', $name) % $#cols ];
51 $exec = "xterm -fg $fg -T '$name' -n '$name' -e '$screen'";
52 } else {
53 warn "system $screen";
54 system $screen;
55 return;
56 }
57
58 warn "exec $exec";
59 exec $exec;
60 }
61
62 1;

  ViewVC Help
Powered by ViewVC 1.1.26