ratpoison-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[RP] [PATCH] Allowing for next and prev workspace switching.


From: Hatem Nassrat
Subject: [RP] [PATCH] Allowing for next and prev workspace switching.
Date: Mon, 23 Feb 2009 09:57:18 -0400
User-agent: Mutt/1.5.18 (2008-05-17)

---
 contrib/rpws |   32 +++++++++++++++++++++++++++++++-
 1 files changed, 31 insertions(+), 1 deletions(-)

diff --git a/contrib/rpws b/contrib/rpws
index 089e0a2..eab752e 100755
--- a/contrib/rpws
+++ b/contrib/rpws
@@ -1,6 +1,12 @@
 #!/usr/bin/perl -w
 
 #
+# Copyright (c) 2009 Hatem Nassrat <address@hidden>
+# All rights reserved. Modifications under same license as original script.
+# ChangeLog:
+#   
+#   Added C-M-Right and C-M-Left for next and prev workspace
+# 
 # Copyright (c) 2005 Mike O'Connor
 # All rights reserved.
 # Author Mike O'Connor <address@hidden>
@@ -72,6 +78,9 @@ sub ws_init
     rp_call( "setenv fspl1 $fd" );
     rp_call( "setenv wspl 1" );
 
+    # Keep track of workspace count 
+    rp_call( "setenv wspc $num" );
+
     # restore the frames
     rp_call( "frestore $fd" );
 
@@ -94,6 +103,22 @@ sub ws_restore
 
     ws_save();
 
+    if ( $which =~ /^(?:next|prev)$/ )
+    {
+        my $ws = rp_call( "getenv wspl" );
+        my $wspc = rp_call( "getenv wspc" );
+
+        if ( $which eq 'next' )
+        { 
+            $ws++;
+        }
+        else
+        { 
+            $ws--;
+        }
+        $which = ( ( $ws - 1 ) % $wspc ) + 1;
+    }
+
     if( $which == 1 )
     {
         rp_call( "gselect default" );
@@ -115,6 +140,8 @@ sub add_aliases
     foreach my $i (1..$n) {
         rp_call ( "alias rpws$i exec $0 $i" );
     }
+    rp_call ( "alias rpwsn exec $0 next" );
+    rp_call ( "alias rpwsp exec $0 prev" );
 }
 
 sub add_keys
@@ -123,6 +150,8 @@ sub add_keys
     foreach my $i (1..$n) {
         rp_call ( "definekey top M-F$i rpws$i" );
     }
+    rp_call ( "definekey top C-M-Right rpwsn" );
+    rp_call ( "definekey top C-M-Left rpwsp" );
 }
 
 my $arg = shift @ARGV || 'help';
@@ -170,7 +199,8 @@ Add the following line in ~/.ratpoisonrc
      exec /path/to/rpws init 6 -k
 
 This creates 6 aliases rpws1, rpws2, etc. It also binds the keys M-F1,
-M-F2, etc to each rpwsN alias.
+M-F2, etc to each rpwsN alias. Moreover, rpwsn (Next) and rpwsp (Prev) are
+created, and C-M-{Right,Left} are bound to rpws{n,p}.
 
 =head1 FILES
 
-- 
1.6.1.1


-- 
Hatem Nassrat




reply via email to

[Prev in Thread] Current Thread [Next in Thread]