[PATCH] Allowing for next and prev workspace switching.

Hatem Nassrat <[email protected]>
Newsgroups gmane.comp.window-managers.ratpoison.devel
Message-ID <[email protected]>
---
 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 <[email protected]>
+# 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 <[email protected]>
@@ -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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.