[gnome-tweaks] windows: split titlebar tweaks to separate panel



commit 0c96b3beb804a4d19aa00ebdb5e52948ae5dcb28
Author: Jeremy Bicha <jbicha ubuntu com>
Date:   Tue May 1 10:19:06 2018 -0400

    windows: split titlebar tweaks to separate panel
    
    so that we have more room for tweaks without scrolling

 gtweak/tweaks/tweak_group_title_bar.py | 119 +++++++++++++++++++++++++++++++++
 gtweak/tweaks/tweak_group_windows.py   | 105 +----------------------------
 2 files changed, 120 insertions(+), 104 deletions(-)
---
diff --git a/gtweak/tweaks/tweak_group_title_bar.py b/gtweak/tweaks/tweak_group_title_bar.py
new file mode 100644
index 0000000..08ae606
--- /dev/null
+++ b/gtweak/tweaks/tweak_group_title_bar.py
@@ -0,0 +1,119 @@
+# Copyright (c) 2011 John Stowers
+# SPDX-License-Identifier: GPL-3.0+
+# License-Filename: LICENSES/GPL-3.0
+
+import gtweak
+from gtweak.tweakmodel import Tweak
+from gtweak.widgets import ListBoxTweakGroup, GSettingsComboEnumTweak, Title, GSettingsSwitchTweakValue, 
build_label_beside_widget, _GSettingsTweak
+
+from gi.repository import Gtk
+
+
+class ShowWindowButtons(GSettingsSwitchTweakValue):
+
+    def __init__(self, name, value, **options):
+        self.value = value
+        GSettingsSwitchTweakValue.__init__(self,
+                                           name,
+                                           "org.gnome.desktop.wm.preferences",
+                                           "button-layout",
+                                           **options)
+    def get_active(self):
+        return self.value in self.settings.get_string(self.key_name)
+
+    def set_active(self, v):
+        val = self.settings.get_string(self.key_name)
+        (left, colon, right) = val.partition(":")
+
+        if "close" in right:
+            rsplit = right.split(",")
+            rsplit = [x for x in rsplit if x in ['appmenu', 'minimize', 'maximize', 'close']]
+
+            if v:
+                rsplit.append(self.value)
+            else:
+                rsplit.remove(self.value)
+
+            rsplit.sort(key=lambda x: ["appmenu", "minimize", "maximize", "close"].index(x))
+
+            self.settings.set_string(self.key_name, left + colon + ",".join(rsplit))
+
+        else:
+            rsplit = left.split(",")
+            rsplit = [x for x in rsplit if x in ['appmenu', 'minimize', 'maximize', 'close']]
+
+            if v:
+                rsplit.append(self.value)
+            else:
+                rsplit.remove(self.value)
+
+            rsplit.sort(key=lambda x: ["close", "minimize", "maximize", "appmenu"].index(x))
+
+            self.settings.set_string(self.key_name, ",".join(rsplit) + colon + right)
+
+class PlaceWindowButtons(Gtk.Box, _GSettingsTweak):
+
+    def __init__(self, **options):
+        name = _("Placement")
+        Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL, spacing=0)
+
+        _GSettingsTweak.__init__(self,
+                                 name,
+                                 "org.gnome.desktop.wm.preferences",
+                                 "button-layout",
+                                 **options)
+
+        box_btn = Gtk.ButtonBox()
+        box_btn.set_layout(Gtk.ButtonBoxStyle.EXPAND)
+
+        # Translators: For RTL languages, this is the "Right" direction since the
+        # interface is flipped
+        btn1 = Gtk.RadioButton.new_with_label_from_widget(None, _("Left"))
+        btn1.set_property("draw-indicator", False)
+
+        btn2 = Gtk.RadioButton.new_from_widget(btn1)
+        # Translators: For RTL languages, this is the "Left" direction since the
+        # interface is flipped
+        btn2.set_label(_("Right"))
+        btn2.set_property("draw-indicator", False)
+
+        val = self.settings.get_string(self.key_name)
+        (left, colon, right) = val.partition(":")
+        if "close" in right:
+           btn2.set_active(True)
+        btn2.connect("toggled", self.on_button_toggled)
+
+        box_btn.pack_start(btn1, True, True, 0)
+        box_btn.pack_start(btn2, True, True, 0)
+
+        build_label_beside_widget(name, box_btn, hbox=self)
+
+    def on_button_toggled(self, v):
+        val = self.settings.get_string(self.key_name)
+        (left, colon, right) = val.partition(":")
+
+        if "close" in left:
+            rsplit = left.split(",")
+            rsplit = [x for x in rsplit if x in ['appmenu', 'minimize', 'maximize', 'close']]
+            rsplit.sort(key=lambda x: ["appmenu", "minimize", "maximize", "close"].index(x))
+            self.settings.set_string(self.key_name, right + colon + ",".join(rsplit))
+        else:
+            rsplit = right.split(",")
+            rsplit = [x for x in rsplit if x in ['appmenu', 'minimize', 'maximize', 'close']]
+            rsplit.sort(key=lambda x: ["close", "minimize", "maximize", "appmenu"].index(x))
+            self.settings.set_string(self.key_name, ",".join(rsplit) + colon + left)
+
+
+TWEAK_GROUPS = [
+    ListBoxTweakGroup(_("Window Titlebars"),
+        Title(_("Titlebar Actions"), "", uid="title-titlebar-actions"),
+        GSettingsComboEnumTweak(_("Double-Click"),"org.gnome.desktop.wm.preferences", 
"action-double-click-titlebar"),
+        GSettingsComboEnumTweak(_("Middle-Click"),"org.gnome.desktop.wm.preferences", 
"action-middle-click-titlebar"),
+        GSettingsComboEnumTweak(_("Secondary-Click"),"org.gnome.desktop.wm.preferences", 
"action-right-click-titlebar"),
+        Title(_("Titlebar Buttons"), "", uid="title-theme"),
+        ShowWindowButtons(_("Maximize"), "maximize"),
+        ShowWindowButtons(_("Minimize"), "minimize"),
+        PlaceWindowButtons(),
+    )
+]
+
diff --git a/gtweak/tweaks/tweak_group_windows.py b/gtweak/tweaks/tweak_group_windows.py
index 3ac8964..c0f12d6 100644
--- a/gtweak/tweaks/tweak_group_windows.py
+++ b/gtweak/tweaks/tweak_group_windows.py
@@ -3,9 +3,8 @@
 # License-Filename: LICENSES/GPL-3.0
 
 import gtweak
-from gtweak.gshellwrapper import GnomeShellFactory
 from gtweak.tweakmodel import Tweak
-from gtweak.widgets import ListBoxTweakGroup, GSettingsComboEnumTweak, GSettingsComboTweak, 
GSettingsSwitchTweak, Title, GSettingsSwitchTweakValue, build_label_beside_widget, _GSettingsTweak
+from gtweak.widgets import ListBoxTweakGroup, GSettingsComboTweak, GSettingsSwitchTweak, Title, 
build_label_beside_widget
 from gtweak.utils import XSettingsOverrides
 import gettext
 
@@ -124,100 +123,6 @@ class Focus(Gtk.ListBox, Tweak):
             self.check_mouse.show()
 
 
-class ShowWindowButtons(GSettingsSwitchTweakValue):
-
-    def __init__(self, name, value, **options):
-        self.value = value
-        GSettingsSwitchTweakValue.__init__(self,
-                                           name,
-                                           "org.gnome.desktop.wm.preferences",
-                                           "button-layout",
-                                           **options)
-    def get_active(self):
-        return self.value in self.settings.get_string(self.key_name)
-
-    def set_active(self, v):
-        val = self.settings.get_string(self.key_name)
-        (left, colon, right) = val.partition(":")
-
-        if "close" in right:
-            rsplit = right.split(",")
-            rsplit = [x for x in rsplit if x in ['appmenu', 'minimize', 'maximize', 'close']]
-
-            if v:
-                rsplit.append(self.value)
-            else:
-                rsplit.remove(self.value)
-
-            rsplit.sort(key=lambda x: ["appmenu", "minimize", "maximize", "close"].index(x))
-
-            self.settings.set_string(self.key_name, left + colon + ",".join(rsplit))
-
-        else:
-            rsplit = left.split(",")
-            rsplit = [x for x in rsplit if x in ['appmenu', 'minimize', 'maximize', 'close']]
-
-            if v:
-                rsplit.append(self.value)
-            else:
-                rsplit.remove(self.value)
-
-            rsplit.sort(key=lambda x: ["close", "minimize", "maximize", "appmenu"].index(x))
-
-            self.settings.set_string(self.key_name, ",".join(rsplit) + colon + right)
-
-class PlaceWindowButtons(Gtk.Box, _GSettingsTweak):
-
-    def __init__(self, **options):
-        name = _("Placement")
-        Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL, spacing=0)
-
-        _GSettingsTweak.__init__(self,
-                                 name,
-                                 "org.gnome.desktop.wm.preferences",
-                                 "button-layout",
-                                 **options)
-
-        box_btn = Gtk.ButtonBox()
-        box_btn.set_layout(Gtk.ButtonBoxStyle.EXPAND)
-
-        # Translators: For RTL languages, this is the "Right" direction since the
-        # interface is flipped
-        btn1 = Gtk.RadioButton.new_with_label_from_widget(None, _("Left"))
-        btn1.set_property("draw-indicator", False)
-
-        btn2 = Gtk.RadioButton.new_from_widget(btn1)
-        # Translators: For RTL languages, this is the "Left" direction since the
-        # interface is flipped
-        btn2.set_label(_("Right"))
-        btn2.set_property("draw-indicator", False)
-
-        val = self.settings.get_string(self.key_name)
-        (left, colon, right) = val.partition(":")
-        if "close" in right:
-           btn2.set_active(True)
-        btn2.connect("toggled", self.on_button_toggled)
-
-        box_btn.pack_start(btn1, True, True, 0)
-        box_btn.pack_start(btn2, True, True, 0)
-
-        build_label_beside_widget(name, box_btn, hbox=self)
-
-    def on_button_toggled(self, v):
-        val = self.settings.get_string(self.key_name)
-        (left, colon, right) = val.partition(":")
-
-        if "close" in left:
-            rsplit = left.split(",")
-            rsplit = [x for x in rsplit if x in ['appmenu', 'minimize', 'maximize', 'close']]
-            rsplit.sort(key=lambda x: ["appmenu", "minimize", "maximize", "close"].index(x))
-            self.settings.set_string(self.key_name, right + colon + ",".join(rsplit))
-        else:
-            rsplit = right.split(",")
-            rsplit = [x for x in rsplit if x in ['appmenu', 'minimize', 'maximize', 'close']]
-            rsplit.sort(key=lambda x: ["close", "minimize", "maximize", "appmenu"].index(x))
-            self.settings.set_string(self.key_name, ",".join(rsplit) + colon + left)
-
 class WindowScalingFactorTweak(Gtk.Box, Tweak):
     def __init__(self, **options):
         Gtk.Box.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)
@@ -306,14 +211,6 @@ TWEAK_GROUPS = [
         Title(_("Window Focus"), _("Click to Focus"), uid="title-theme"),
         Focus(),
         GSettingsSwitchTweak(_("Raise Windows When Focused"),"org.gnome.desktop.wm.preferences", 
"auto-raise", depends_on=Focus(), depends_how=depends_how),
-        Title(_("Titlebar Actions"), "", uid="title-titlebar-actions"),
-        GSettingsComboEnumTweak(_("Double-Click"),"org.gnome.desktop.wm.preferences", 
"action-double-click-titlebar"),
-        GSettingsComboEnumTweak(_("Middle-Click"),"org.gnome.desktop.wm.preferences", 
"action-middle-click-titlebar"),
-        GSettingsComboEnumTweak(_("Secondary-Click"),"org.gnome.desktop.wm.preferences", 
"action-right-click-titlebar"),
-        Title(_("Titlebar Buttons"), "", uid="title-theme"),
-        ShowWindowButtons(_("Maximize"), "maximize"),
-        ShowWindowButtons(_("Minimize"), "minimize"),
-        PlaceWindowButtons(),
     )
 ]
 


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