aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMarvin Borner2019-06-12 14:48:03 +0200
committerMarvin Borner2019-06-12 14:48:03 +0200
commit90279987e68c54b499c442f743c2f1d98ae44211 (patch)
treef7bda8fe31d495da936d2090f229622a2c3880f3
parentd9aebf9fcef4fd04f4db8903f620a322fd189994 (diff)
Added up and down cycling support
-rw-r--r--example.ini8
-rw-r--r--freedowm.py9
2 files changed, 11 insertions, 6 deletions
diff --git a/example.ini b/example.ini
index 9164398..80441fc 100644
--- a/example.ini
+++ b/example.ini
@@ -13,8 +13,9 @@ BORDER = 1
; Mod key - super / alt
MOD = super
-; Cycle between windows - 23: Tab
-CYCLE = 23
+; Cycle windows (up and down)
+CYCLEUP = k
+CYCLEDOWN = j
; Toggle tiling state
TILE = t
@@ -65,4 +66,5 @@ MENU = dmenu_run
ACTIVE_BORDER = #fff
; Inactive border color
-INACTIVE_BORDER = #595959 \ No newline at end of file
+INACTIVE_BORDER = #595959
+
diff --git a/freedowm.py b/freedowm.py
index b49f7d1..e89dc1e 100644
--- a/freedowm.py
+++ b/freedowm.py
@@ -38,6 +38,7 @@ class FreedoWM(object):
self.program_stack = []
self.program_stack_index = self.bar = -1
self.current_tag = 1
+ self.previous_tag = 1
self.monitors = []
self.monitor_id = self.zero_coordinate = self.x_center = self.y_center = 0
self.monitor_count = 1
@@ -337,13 +338,15 @@ class FreedoWM(object):
elif (self.event.type == X.KeyPress or self.event.type == X.KeyRelease) and self.event.detail == 50:
self.shift_mask = not self.shift_mask
- # Cycle between windows (MOD + Tab) // X11's "tab" keysym is 0, but it's 23
- elif self.event.type == X.KeyPress and self.event.detail == int(self.keys["CYCLE"]) \
+ # Cycle between windows (MOD + J/K)
+ elif (self.is_key(self.keys["CYCLEUP"]) or self.is_key(self.keys["CYCLEDOWN"])) \
and len(self.program_stack) > 0:
if self.program_stack_index + 1 >= len(self.program_stack):
self.program_stack_index = 0
- else:
+ elif self.is_key(self.keys["CYCLEUP"]):
self.program_stack_index += 1
+ else:
+ self.program_stack_index -= 1
self.current_tag = self.program_stack[self.program_stack_index]["tag"]
self.update_tags()
active_window = self.program_stack[self.program_stack_index]["window"]