diff --git a/nwg_shell_config/autotiling.py b/nwg_shell_config/autotiling.py
index b5e64c5..d5eec10 100644
--- a/nwg_shell_config/autotiling.py
+++ b/nwg_shell_config/autotiling.py
@@ -35,11 +35,11 @@
from nwg_shell_config.tools import temp_dir, get_data_dir, load_json, check_key
-# The `~/.local/share/nwg-shell-config/settings` json file should contain the "autotiling-output-limits" key,
-# e.g. like this: "autotiling-output-limits": {"DP-1": 3, "HDMI-A-1": 2, "eDP-1": 2}
settings = load_json(os.path.join(get_data_dir(), "settings"))
-# Set None if it does not. It's also the value to turn limits off.
+check_key(settings, "autotiling-workspaces", "")
check_key(settings, "autotiling-output-limits", {})
+check_key(settings, "autotiling-output-splitwidths", {})
+check_key(settings, "autotiling-output-splitheights", {})
def save_string(string, file):
@@ -63,10 +63,11 @@ def find_output_name(con):
return find_output_name(p)
-def switch_splitting(i3, e, debug, workspaces):
+def switch_splitting(i3, e, debug):
try:
con = i3.get_tree().find_focused()
- if con and not workspaces or (str(con.workspace().num) in workspaces):
+ if con and not settings["autotiling-workspaces"] or (
+ str(con.workspace().num) in settings["autotiling-workspaces"]):
if con.floating:
# We're on i3: on sway it would be None
# May be 'auto_on' or 'user_on'
@@ -75,35 +76,35 @@ def switch_splitting(i3, e, debug, workspaces):
# We are on sway
is_floating = con.type == "floating_con"
- # depth_limit contributed by @Syphdias to original autotiling script
- # We only use per-output depth limits (the original depth_limit argument has been abandoned).
+ # Depth_limit contributed by @Syphdias to original autotiling script
+ output_name = find_output_name(con)
if settings["autotiling-output-limits"]:
- output_name = find_output_name(con)
output_depth_limit = settings["autotiling-output-limits"][output_name] if output_name in settings[
"autotiling-output-limits"] else 0
- # Assume we reached the depth limit, unless we can find a workspace
- depth_limit_reached = True
- current_con = con
- current_depth = 0
- while current_depth < output_depth_limit:
- # Check if we found the workspace of the current container
- if current_con.type == "workspace":
- # Found the workspace within the depth limitation
- depth_limit_reached = False
- break
-
- # Look at the parent for next iteration
- current_con = current_con.parent
-
- # Only count up the depth, if the container has more than one container as child
- if len(current_con.nodes) > 1:
- current_depth += 1
-
- if depth_limit_reached:
- if debug:
- print("Debug: Depth limit reached")
- return
+ if output_depth_limit:
+ # Assume we reached the depth limit, unless we can find a workspace
+ depth_limit_reached = True
+ current_con = con
+ current_depth = 0
+ while current_depth < output_depth_limit:
+ # Check if we found the workspace of the current container
+ if current_con.type == "workspace":
+ # Found the workspace within the depth limitation
+ depth_limit_reached = False
+ break
+
+ # Look at the parent for next iteration
+ current_con = current_con.parent
+
+ # Only count up the depth, if the container has more than one container as child
+ if len(current_con.nodes) > 1:
+ current_depth += 1
+
+ if depth_limit_reached:
+ if debug:
+ print("Debug: Depth limit reached", file=sys.stderr)
+ return
is_full_screen = con.fullscreen_mode == 1
is_stacked = con.parent.layout == "stacked"
@@ -114,6 +115,7 @@ def switch_splitting(i3, e, debug, workspaces):
and not is_stacked
and not is_tabbed
and not is_full_screen):
+
new_layout = "splitv" if con.rect.height > con.rect.width else "splith"
if new_layout != con.parent.layout:
@@ -123,6 +125,25 @@ def switch_splitting(i3, e, debug, workspaces):
elif debug:
print("Error: Switch failed with err {}".format(result[0].error), file=sys.stderr, )
+ # splitwidth & splitheight contributed by @JoseConseco to original autotiling script
+ if e.change in ["new", "move"] and con.percent:
+ if con.parent.layout == "splitv": # top / bottom
+ if output_name in settings["autotiling-output-splitheights"] and \
+ settings["autotiling-output-splitheights"][output_name] != 1.0:
+ i3.command("resize set height {} ppt".format(
+ int(con.percent * settings["autotiling-output-splitheights"][output_name] * 100)))
+ if debug:
+ print("Debug: Scaling height x {}".format(
+ settings["autotiling-output-splitheights"][output_name]), file=sys.stderr)
+ else: # left / right
+ if output_name in settings["autotiling-output-splitwidths"] and \
+ settings["autotiling-output-splitwidths"][output_name] != 1.0:
+ i3.command("resize set width {} ppt".format(
+ int(con.percent * settings["autotiling-output-splitwidths"][output_name] * 100)))
+ if debug:
+ print("Debug: Scaling width x {}".format(
+ settings["autotiling-output-splitwidths"][output_name]), file=sys.stderr)
+
elif debug:
print("Debug: No focused container found or autotiling on the workspace turned off", file=sys.stderr)
@@ -143,27 +164,6 @@ def main():
"--debug",
action="store_true",
help="print debug messages to stderr")
- parser.add_argument("-v",
- "--version",
- action="version",
- version="%(prog)s {}, Python {}".format(__version__, sys.version),
- help="display version information", )
- parser.add_argument("-w",
- "--workspaces",
- help="restricts autotiling to certain workspaces; example: autotiling --workspaces 8 9",
- nargs="*",
- type=str,
- default=[], )
- """
- Changing event subscription has already been the objective of several pull request. To avoid doing this again
- and again, let's allow to specify them in the `--events` argument.
- """
- parser.add_argument("-e",
- "--events",
- help="list of events to trigger switching split orientation; default: WINDOW MODE",
- nargs="*",
- type=str,
- default=["WINDOW", "MODE"])
args = parser.parse_args()
@@ -180,27 +180,27 @@ def main():
for sig in catchable_sigs:
signal.signal(sig, signal_handler)
- if args.debug and args.workspaces:
- print("Debug: autotiling is only active on workspaces:", ','.join(args.workspaces))
-
- if args.debug and settings["autotiling-output-limits"]:
- print("Debug: autotiling per-output limits: {}".format(settings["autotiling-output-limits"]))
+ if args.debug:
+ if settings["autotiling-workspaces"]:
+ print("Debug: autotiling is only active on workspaces:", settings["autotiling-workspaces"], file=sys.stderr)
+ if settings["autotiling-output-limits"]:
+ print("Debug: per-output limits: {}".format(settings["autotiling-output-limits"]), file=sys.stderr)
+ if settings["autotiling-output-splitwidths"]:
+ print("Debug: per-output split widths: {}".format(settings["autotiling-output-splitwidths"]), file=sys.stderr)
+ if settings["autotiling-output-splitheights"]:
+ print("Debug: per-output split heights: {}".format(settings["autotiling-output-splitheights"]), file=sys.stderr)
# For use w/ nwg-panel
ws_file = os.path.join(temp_dir(), "autotiling")
- if args.workspaces:
- save_string(','.join(args.workspaces), ws_file)
+ if settings["autotiling-workspaces"]:
+ save_string(settings["autotiling-workspaces"], ws_file)
else:
if os.path.isfile(ws_file):
os.remove(ws_file)
- if not args.events:
- print("No events specified", file=sys.stderr)
- sys.exit(1)
-
- handler = partial(switch_splitting, debug=args.debug, workspaces=args.workspaces)
+ handler = partial(switch_splitting, debug=args.debug)
i3 = Connection()
- for e in args.events:
+ for e in ["WINDOW", "MODE"]:
try:
i3.on(Event[e], handler)
print("{} subscribed".format(Event[e]))
diff --git a/nwg_shell_config/langs/en_US.json b/nwg_shell_config/langs/en_US.json
index 4b36426..b616f1b 100644
--- a/nwg_shell_config/langs/en_US.json
+++ b/nwg_shell_config/langs/en_US.json
@@ -24,6 +24,9 @@
"autotiling-tooltip": "Automates changing the horizontal/vertical window split orientation.",
"autotiling-depth-limit": "Depth limit",
"autotiling-depth-limit-tooltip": "Depth limit determines how deep will autotiling work. The '2' value allows to mimic the master/stack layout on horizontal displays. On vertical displays you may like the '3' value. Use '0' for no limit. Beyond the limit, tabbed and stacking layouts will work back again. The '1' value is not recommended, as it will spoil autotiling.",
+ "autotiling-split-height": "Split height",
+ "autotiling-split-width": "Split width",
+ "autotiling-split-tooltip": "Split width/height specifies the horizontal/vertical value multiplier to resize descendant containers to after splitting.",
"backgrounds": "Backgrounds",
"before-sleep": "Before sleep",
"before-sleep-tooltip": "Command to execute before systemd puts the computer to sleep.",
@@ -89,6 +92,8 @@
"gtklock": "Gtklock",
"help-window": "Help window",
"horizontal-alignment": "Horizontal alignment",
+ "hotspot-delay": "Hotspot delay",
+ "hotspot-delay-tooltip": "Hotspot delay in milliseconds: the smaller, the faster the mouse\npointer needs to enter the hotspot for the dock to appear.\nSet 0 to disable this feature (default 20).",
"icon-size": "Icon size",
"idle-lock-screen": "Idle & Lock screen",
"idle-settings": "Idle settings",
@@ -137,6 +142,7 @@
"middle-emulation": "Middle emulation",
"middle-emulation-tooltip": "Enables or disables middle click emulation",
"modules": "Modules",
+ "more-info": "More info",
"name": "name",
"natural-scroll": "Natural scroll",
"natural-scroll-tooltip": "Enables or disables natural (inverted) scrolling.",
@@ -167,6 +173,7 @@
"panel-css-name-tooltip": "Panel css style sheet file name",
"panel-settings": "Panel settings",
"pending-updates": "Pending updates",
+ "per-output": "Per output",
"permanent": "Permanent",
"permanent-tooltip": "Keeps the dock resident, but w/o the hotspot.",
"playerctl-module": "Playerctl module",
diff --git a/nwg_shell_config/langs/pl_PL.json b/nwg_shell_config/langs/pl_PL.json
index b6b56cc..eb8e863 100644
--- a/nwg_shell_config/langs/pl_PL.json
+++ b/nwg_shell_config/langs/pl_PL.json
@@ -24,6 +24,9 @@
"autotiling-tooltip": "Automatyzuje zmianę poziom/pion orientacji podziału okna.",
"autotiling-depth-limit": "Limit głębokości",
"autotiling-depth-limit-tooltip": "Limit głębokości określa jak głęboko ma działać autotiling. Wartość '2' naśladuje układ master/stack na wyświetlaczach poziomych. Na pionowych może Ci się spodobać wartość '3'. Użyj '0' by wyłączyć limit. Poza limitem układ tabbed i stacking będą ponownie działać. Nie polecana jest wartość '1', która zepsuje autotiling.",
+ "autotiling-split-height": "Wysokość podziału",
+ "autotiling-split-width": "Szerokość podziału",
+ "autotiling-split-tooltip": "Szerokość/wysokość podziału określa mnożnik wymiaru,\ndo którego kontener potomny zostanie przeskalowany po podziale.",
"backgrounds": "Tapety",
"before-sleep": "Przed uśpieniem",
"before-sleep-tooltip": "Komenda do wykonania zanim `systemd` uśpi komputer.",
@@ -89,6 +92,8 @@
"gtklock": "Gtklock",
"help-window": "Okno pomocy",
"horizontal-alignment": "Wyrównywanie w poziomie",
+ "hotspot-delay": "Opóźnienie hotspota",
+ "hotspot-delay-tooltip": "Opóźnienie hotspota w milisekundach: im mniejsze, tym szybciej\nmysz musi być wprowadzona nad gorący punkt, by dok się pojawił.\nUstaw 0 by wyłączyć tę funkcję (domyślnie 20).",
"icon-size": "Wielkość ikony",
"idle-lock-screen": "Bezczynność i blokada",
"idle-settings": "Bezczynność",
@@ -137,6 +142,7 @@
"middle-emulation": "Emulacja środkowego",
"middle-emulation-tooltip": "Włącza / wyłącza emulację kliknięcia środkowym przyciskiem.",
"modules": "Moduły",
+ "more-info": "Więcej informacji",
"name": "nazwa",
"natural-scroll": "Naturalne przewijanie",
"natural-scroll-tooltip": "Włącza / wyłącza naturalne (odwrócone) przewijanie.",
@@ -165,8 +171,9 @@
"panel-css": "Panel i css",
"panel-css-name": "Arkusz stylów panelu",
"panel-css-name-tooltip": "Nazwa pliku css z arkuszem stylów panelu",
- "panel-settings": "Ustawienia panelu",
+ "panel-settings": "Ust. panelu",
"pending-updates": "Oczekujące aktualizacje",
+ "per-output": "Na wyjście",
"permanent": "Stały",
"permanent-tooltip": "Trzymaj dok w pamięci, ale bez hotspota.",
"playerctl-module": "Moduł playerctl",
@@ -200,7 +207,7 @@
"show-category-buttons": "Pokazuj przyciski kategorii",
"show-category-buttons-tooltip": "Pokazuj na górze przyciski kategorii freedesktop.",
"show-labels": "Pokazuj etykiety",
- "show-on-startup": "Pokazuj po uruchomieniu",
+ "show-on-startup": "Pokazuj na start",
"show-on-startup-tooltip": "Odznacz by nie uruchamiać tego okna podczas startu systemu.",
"sleep-command": "Komenda uśpienia",
"sleep-timeout-tooltip": "Opóźnienie uśpienia w sekundach.\nMusi być dłuższe niż opóźnienie blokady.",
diff --git a/nwg_shell_config/main.py b/nwg_shell_config/main.py
index 3a28af4..695de72 100644
--- a/nwg_shell_config/main.py
+++ b/nwg_shell_config/main.py
@@ -591,6 +591,8 @@ def save_includes():
if preset["dock-icon-size"]:
cmd_dock += " -i {}".format(preset["dock-icon-size"])
+ cmd_dock += " -hd {}".format(preset["dock-hotspot-delay"])
+
if preset["dock-exclusive"]:
cmd_dock += " -x"
@@ -760,6 +762,8 @@ def load_settings():
"autotiling-on": True,
"autotiling-limit": False,
"autotiling-output-limits": {},
+ "autotiling-output-splitwidths": {},
+ "autotiling-output-splitheights": {},
"appindicator": True,
"night-lat": -1,
"night-long": -1,
@@ -896,6 +900,7 @@ def load_preset(file_name):
"dock-alignment": "center",
"dock-margin": 0,
"dock-icon-size": 48,
+ "dock-hotspot-delay": 20,
"dock-css": "",
"dock-on": False,
"swaync-positionX": "right",
diff --git a/nwg_shell_config/shell/custom b/nwg_shell_config/shell/custom
index a51c946..09238b3 100644
--- a/nwg_shell_config/shell/custom
+++ b/nwg_shell_config/shell/custom
@@ -25,6 +25,7 @@
"dock-alignment": "center",
"dock-margin": 0,
"dock-icon-size": 48,
+ "dock-hotspot-delay": 20,
"dock-css": "",
"dock-on": false,
"swaync-positionX": "right",
diff --git a/nwg_shell_config/shell/preset-0 b/nwg_shell_config/shell/preset-0
index 4e43a20..52082d5 100644
--- a/nwg_shell_config/shell/preset-0
+++ b/nwg_shell_config/shell/preset-0
@@ -25,6 +25,7 @@
"dock-alignment": "center",
"dock-margin": 0,
"dock-icon-size": 48,
+ "dock-hotspot-delay": 20,
"dock-css": "preset-0.css",
"dock-on": false,
"swaync-positionX": "right",
diff --git a/nwg_shell_config/shell/preset-1 b/nwg_shell_config/shell/preset-1
index 1e42f22..c767f70 100644
--- a/nwg_shell_config/shell/preset-1
+++ b/nwg_shell_config/shell/preset-1
@@ -25,6 +25,7 @@
"dock-alignment": "center",
"dock-margin": 0,
"dock-icon-size": 48,
+ "dock-hotspot-delay": 20,
"dock-css": "preset-1.css",
"dock-on": true,
"swaync-positionX": "center",
diff --git a/nwg_shell_config/shell/preset-2 b/nwg_shell_config/shell/preset-2
index 5816b46..8529fb6 100644
--- a/nwg_shell_config/shell/preset-2
+++ b/nwg_shell_config/shell/preset-2
@@ -25,6 +25,7 @@
"dock-alignment": "center",
"dock-margin": 0,
"dock-icon-size": 48,
+ "dock-hotspot-delay": 20,
"dock-css": "preset-2.css",
"dock-on": false,
"swaync-positionX": "right",
diff --git a/nwg_shell_config/shell/preset-3 b/nwg_shell_config/shell/preset-3
index 573223e..63cd223 100644
--- a/nwg_shell_config/shell/preset-3
+++ b/nwg_shell_config/shell/preset-3
@@ -25,6 +25,7 @@
"dock-alignment": "start",
"dock-margin": 0,
"dock-icon-size": 42,
+ "dock-hotspot-delay": 20,
"dock-css": "preset-3.css",
"dock-on": true,
"swaync-positionX": "right",
diff --git a/nwg_shell_config/ui_components.py b/nwg_shell_config/ui_components.py
index f9a61ab..3a03ef0 100644
--- a/nwg_shell_config/ui_components.py
+++ b/nwg_shell_config/ui_components.py
@@ -30,6 +30,19 @@ def set_limit_per_output(cb, settings, output_name):
settings["autotiling-output-limits"][output_name] = int(cb.get_value())
+def set_split_per_output(cb, settings, key, output_name):
+ settings[key][output_name] = round(cb.get_value(), 2)
+
+
+def reset_autotiling(btn, l_spin_boxes, w_spin_boxes, h_spin_boxes):
+ for sb in l_spin_boxes:
+ sb.set_value(0)
+ for sb in w_spin_boxes:
+ sb.set_value(1.0)
+ for sb in h_spin_boxes:
+ sb.set_value(1.0)
+
+
def set_keywords_from_entry(entry, settings):
txt = entry.get_text()
# Sanitize
@@ -487,6 +500,13 @@ def autotiling_tab(settings, outputs, voc):
cb_autotiling_use_settings.connect("toggled", set_from_checkbutton, settings, "autotiling-on")
grid.attach(cb_autotiling_use_settings, 0, 0, 2, 1)
+ lbl = Gtk.Label()
+ lbl.set_markup(
+ '{}'.format(
+ voc["more-info"]))
+ lbl.set_property("halign", Gtk.Align.END)
+ grid.attach(lbl, 3, 0, 2, 1)
+
lbl = Gtk.Label()
lbl.set_markup("{}".format(voc["workspaces"]))
lbl.set_property("halign", Gtk.Align.START)
@@ -497,8 +517,9 @@ def autotiling_tab(settings, outputs, voc):
entry.set_property("halign", Gtk.Align.START)
entry.set_text(settings["autotiling-workspaces"])
entry.set_tooltip_text(voc["workspaces-tooltip"])
+ entry.set_property("margin-bottom", 6)
entry.connect("changed", set_from_workspaces, settings)
- grid.attach(entry, 1, 1, 1, 1)
+ grid.attach(entry, 1, 1, 2, 1)
lbl = Gtk.Label()
lbl.set_markup("{}".format(voc["workspaces"]))
@@ -506,10 +527,25 @@ def autotiling_tab(settings, outputs, voc):
grid.attach(lbl, 0, 1, 1, 1)
lbl = Gtk.Label()
- lbl.set_markup("{}".format(voc["autotiling-depth-limit"]))
+ lbl.set_markup("{}".format(voc["per-output"]))
lbl.set_property("halign", Gtk.Align.START)
grid.attach(lbl, 0, 2, 1, 1)
+ lbl = Gtk.Label.new(voc["autotiling-depth-limit"])
+ lbl.set_property("halign", Gtk.Align.START)
+ grid.attach(lbl, 1, 2, 1, 1)
+
+ lbl = Gtk.Label.new(voc["autotiling-split-width"])
+ lbl.set_property("halign", Gtk.Align.START)
+ grid.attach(lbl, 2, 2, 1, 1)
+
+ lbl = Gtk.Label.new(voc["autotiling-split-height"])
+ lbl.set_property("halign", Gtk.Align.START)
+ grid.attach(lbl, 3, 2, 1, 1)
+
+ l_spin_boxes = []
+ w_spin_boxes = []
+ h_spin_boxes = []
i = 0
for i in range(len(outputs)):
o_name = outputs[i]
@@ -521,14 +557,35 @@ def autotiling_tab(settings, outputs, voc):
sb = Gtk.SpinButton.new_with_range(0, 256, 1)
sb.set_property("halign", Gtk.Align.START)
sb.set_value(limit)
+ sb.set_tooltip_text(voc["autotiling-depth-limit-tooltip"])
sb.connect("value-changed", set_limit_per_output, settings, o_name)
- # sb.set_tooltip_text(voc["autotiling-depth-limit-tooltip"])
+ l_spin_boxes.append(sb)
grid.attach(sb, 1, 3 + i, 1, 1)
- lbl = Gtk.Label()
- lbl.set_line_wrap(True)
- lbl.set_text(voc["autotiling-depth-limit-tooltip"])
- grid.attach(lbl, 1, 4 + i, 2, 3)
+ split_width = settings["autotiling-output-splitwidths"][o_name] if o_name in settings[
+ "autotiling-output-splitwidths"] else 1.0
+ sb = Gtk.SpinButton.new_with_range(0.2, 1.9, 0.01)
+ sb.set_property("halign", Gtk.Align.START)
+ sb.set_value(split_width)
+ sb.set_tooltip_text(voc["autotiling-split-tooltip"])
+ sb.connect("value-changed", set_split_per_output, settings, "autotiling-output-splitwidths", o_name)
+ w_spin_boxes.append(sb)
+ grid.attach(sb, 2, 3 + i, 1, 1)
+
+ split_height = settings["autotiling-output-splitheights"][o_name] if o_name in settings[
+ "autotiling-output-splitheights"] else 1.0
+ sb = Gtk.SpinButton.new_with_range(0.2, 1.9, 0.01)
+ sb.set_property("halign", Gtk.Align.START)
+ sb.set_value(split_height)
+ sb.set_tooltip_text(voc["autotiling-split-tooltip"])
+ sb.connect("value-changed", set_split_per_output, settings, "autotiling-output-splitheights", o_name)
+ h_spin_boxes.append(sb)
+ grid.attach(sb, 3, 3 + i, 1, 1)
+
+ btn = Gtk.Button()
+ btn.set_label(voc["restore-defaults"])
+ btn.connect("clicked", reset_autotiling, l_spin_boxes, w_spin_boxes, h_spin_boxes)
+ grid.attach(btn, 1, 3 + i + 1, 3, 1)
frame.show_all()
@@ -1459,29 +1516,39 @@ def dock_tab(preset, preset_name, outputs, voc):
combo_outputs.set_active_id(preset["dock-output"])
combo_outputs.connect("changed", set_dict_key_from_combo, preset, "dock-output")
+ lbl = Gtk.Label.new("{}:".format(voc["hotspot-delay"]))
+ lbl.set_property("halign", Gtk.Align.END)
+ grid.attach(lbl, 0, 6, 1, 1)
+
+ sb_hotspot_delay = Gtk.SpinButton.new_with_range(0, 10000, 1)
+ sb_hotspot_delay.set_value(preset["dock-hotspot-delay"])
+ sb_hotspot_delay.connect("value-changed", set_int_from_spinbutton, preset, "dock-hotspot-delay")
+ sb_hotspot_delay.set_tooltip_text(voc["hotspot-delay-tooltip"])
+ grid.attach(sb_hotspot_delay, 1, 6, 1, 1)
+
cb_permanent = Gtk.CheckButton.new_with_label(voc["permanent"])
cb_permanent.set_active(preset["dock-permanent"])
cb_permanent.connect("toggled", set_from_checkbutton, preset, "dock-permanent")
cb_permanent.set_tooltip_text(voc["permanent-tooltip"])
- grid.attach(cb_permanent, 0, 6, 2, 1)
+ grid.attach(cb_permanent, 0, 7, 2, 1)
cb_full = Gtk.CheckButton.new_with_label(voc["full-width-height"])
cb_full.set_active(preset["dock-full"])
cb_full.connect("toggled", set_from_checkbutton, preset, "dock-full")
cb_full.set_tooltip_text(voc["full-width-height-tooltip"])
- grid.attach(cb_full, 0, 7, 2, 1)
+ grid.attach(cb_full, 0, 8, 2, 1)
cb_autohide = Gtk.CheckButton.new_with_label(voc["auto-show-hide"])
cb_autohide.set_active(preset["dock-autohide"])
cb_autohide.connect("toggled", set_from_checkbutton, preset, "dock-autohide")
cb_autohide.set_tooltip_text(voc["auto-show-hide-tooltip"])
- grid.attach(cb_autohide, 0, 8, 2, 1)
+ grid.attach(cb_autohide, 0, 9, 2, 1)
cb_exclusive = Gtk.CheckButton.new_with_label(voc["exclusive-zone"])
cb_exclusive.set_active(preset["dock-exclusive"])
cb_exclusive.connect("toggled", set_from_checkbutton, preset, "dock-exclusive")
cb_exclusive.set_tooltip_text(voc["exclusive-zone-tooltip"])
- grid.attach(cb_exclusive, 0, 9, 1, 1)
+ grid.attach(cb_exclusive, 0, 10, 1, 1)
frame.show_all()
diff --git a/setup.py b/setup.py
index 9527fb8..6fdd247 100644
--- a/setup.py
+++ b/setup.py
@@ -9,7 +9,7 @@ def read(f_name):
setup(
name='nwg-shell-config',
- version='0.4.7',
+ version='0.4.8',
description='nwg-shell configuration utility',
packages=find_packages(),
include_package_data=True,