Xu Xiaodong avatar Xu Xiaodong committed f6ac63d

rewrite setres

Comments (0)

Files changed (1)

 # author:    Xu Xiaodong <xxdlhy@gmail.com>
 # license:   GPL
 # created:   2011 May 23
-# modified:  2011 May 23
+# modified:  2011 May 24
 #
 
 use strict;
 use warnings;
 
-my $cmd  = 'xrandr';
-my $mode = '1280x768';
-my $out  = 'VGA-0';
+my $cmd  = 'xrandr';        # 设置命令
+my $mode = '1280x768';      # 要设置的分辨率大小
+my $out  = get_out($cmd);
 
-system
-  qq{$cmd --newmode $mode   79.50  1280 1344 1472 1664  768 771 781 798 -hsync +vsync};
-system qq{$cmd --addmode $out $mode};
-system qq{$cmd --output $out --mode $mode};
+set_res( $cmd, $out, $mode );
+
+#
+# 设置屏幕分辨率
+#
+sub set_res {
+  my ( $cmd, $out, $mode ) = @_;
+
+  my $newmode
+    = qq{$cmd --newmode $mode   79.50  1280 1344 1472 1664  768 771 781 798 -hsync +vsync};
+  my $addmode = qq{$cmd --addmode $out $mode};
+  my $setmode = qq{$cmd --output $out --mode $mode};
+
+  open my $out_fh, '>', "$ENV{HOME}/.xprofile"
+    or die "Can't write .xprofile: $!\n";
+
+  print $out_fh $newmode, "\n";
+  system $newmode;
+  print $out_fh $addmode, "\n";
+  system $addmode;
+  print $out_fh $setmode, "\n";
+  system $setmode;
+
+  close $out_fh;
+}
+
+#
+# 获取已连接的显示器名称
+#
+sub get_out {
+  my $cmd = shift;
+
+  my $line = qx($cmd);
+  my $out;
+
+  $out = $1 if $line =~ /\n(.*)\s+connected\s+/;
+
+  return $out;
+}
 
 # vim: ai:et:ts=2:sw=2:sts=2:tw=78:ft=perl
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.