From d2546426a4aeee00d00f64087dbfe88579c9ae52 Mon Sep 17 00:00:00 2001 From: James Wright Date: Wed, 9 Jun 2021 16:30:37 -0600 Subject: [PATCH] feat: Add margin_single option - Allows margin to be set for single window instances --- README.md | 3 ++- plasma/layout.py | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f279367..4920924 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,8 @@ layouts = [ border_focus_fixed='#00e8dc', border_width=1, border_width_single=0, - margin=0 + margin=0, + margin_single=0 ), ... ] diff --git a/plasma/layout.py b/plasma/layout.py index 9e19bd3..a098bfa 100644 --- a/plasma/layout.py +++ b/plasma/layout.py @@ -26,6 +26,7 @@ class Plasma(Layout): ('border_width', 1, 'Border width'), ('border_width_single', 0, 'Border width for single window'), ('margin', 0, 'Layout margin'), + ('margin_single', 0, 'Layout margin for single window'), ] # If windows are added before configure() was called, the screen size is # still unknown, so we need to set some arbitrary initial root dimensions @@ -80,6 +81,8 @@ def configure(self, client, screen_rect): node = self.root.find_payload(client) border_width = self.border_width_single if self.root.tree == [node] \ else self.border_width + margin = self.margin_single if self.root.tree == [node] \ + else self.margin border_color = getattr(self, 'border_' + ('focus' if client.has_focus else 'normal') + ('' if node.flexible else '_fixed')) @@ -91,7 +94,7 @@ def configure(self, client, screen_rect): height-2*border_width, border_width, border_color, - margin=self.margin, + margin=margin, ) # Always keep tiles below floating windows client.window.configure(stackmode=StackMode.Below)