It looks like the bar class has a show method that might clean up you config a bit: https://github.com/qtile/qtile/blob/55f73f4c504673b3df3d26b5a4066a0594b5cdd7/libqtile/bar.py#L462 you might want to replace ``` bar.size = 0 bar.window.hide() ``` with: ``` bar.show(False) ``` but I'm not sure if they do the exact same thing. p.s. glad I could help :)
On Monday, July 19, 2021 at 2:55:49 PM UTC-4 [email protected] wrote: > This is what worked for me, its hard coded but it works. > Thank you for your help > > def toggle_bar(qtile): > global bar_is_hidden > bar = qtile.current_screen.top > current_group = qtile.current_group > if current_group.name == " ": > bar.size = 0 > bar.window.hide() > else: > bar.size = 24 > bar.window.unhide() > qtile.currentGroup.layoutAll() > > On Monday, July 19, 2021 at 9:58:30 PM UTC+5:30 yobleck wrote: > >> After some poking around it seems that the change group hook has a weird >> version of the qtile object that is missing some attributes. >> So I've come up with the following solution: >> In your config place: >> ``` >> from libqtile import qtile #this is the correct version of the qtile >> object with all attributes >> bar_is_hidden = False #flip this if www is your main group >> def toggle_bar(qtile): >> global bar_is_hidden #I've commited a python nasty here, but >> cmd_hide_show_bar() doesn't store bar state so the config has too >> if qtile.current_group.name == "www" and not bar_is_hidden: >> qtile.cmd_hide_show_bar("top") >> bar_is_hidden = True >> if qtile.current_group.name != "www" and bar_is_hidden: >> qtile.cmd_hide_show_bar("top") >> bar_is_hidden = False >> ``` >> >> Then from your group toggle keybind do something like: >> ``` >> Key([mod], "a", lazy.screen.toggle_Group(), lazy.function(toggle_bar), >> desc="toggle group"), >> ``` >> note that the keybind wont work with the groups widget. you'll have to >> bind a mouse callback to lazy.function(toggle_bar) if you want to use that. >> >> also if you are using keybinds to switch to specific groups you might >> have to change the logic in the toggle_bar function so that it triggers at >> the appropriate times. >> >> hope this helps. feel free to ask any questions >> On Monday, July 19, 2021 at 9:49:19 AM UTC-4 [email protected] >> wrote: >> >>> I am trying to hide the status bar when the group is "WWW" and unhide >>> the status bar when on any other group. I tried the following code but the >>> qtile log gives an error that says libqtile.qtile is None. >>> >>> ===========CODE========== >>> @hook.subscribe.changegroup >>> def toggle_bar(): >>> bar = qtile.current_screen.top >>> current_group = qtile.current_group >>> if current_group == "WWW": >>> bar.size = 0 >>> bar.window.hide() >>> current_group.layout_all() >>> else: >>> bar.size = 24 >>> bar.window.unhide() >>> current_group.layout_all() >>> ========================== >>> >>> ===========ERROR=========== >>> 2021-07-19 19:10:45,941 ERROR libqtile hook.py:fire():L391 Error in hook >>> changegroup Traceback (most recent call last): File >>> "/usr/lib/python3.9/site-packages/libqtile/hook.py", line 389, in fire >>> i(*args, **kwargs) File "/home/chaitanya/.config/qtile/config.py", line 24, >>> in toggle_bar bar = qtile.current_screen.top AttributeError: 'NoneType' >>> object has no attribute 'top' >>> ========================== >>> >>> I tried the same thing with with the setgroup hook and I get the a >>> different error. >>> >>> ===========ERROR=========== >>> 2021-07-19 19:10:03,735 ERROR libqtile hook.py:fire():L391 Error in hook >>> setgroup >>> Traceback (most recent call last): >>> File "/usr/lib/python3.9/site-packages/libqtile/hook.py", line 389, in >>> fire >>> i(*args, **kwargs) >>> File "/home/chaitanya/.config/qtile/config.py", line 32, in toggle_bar >>> bar.window.unhide() >>> AttributeError: 'NoneType' object has no attribute 'unhide' >>> ========================== >>> >>> >>> -- You received this message because you are subscribed to the Google Groups "qtile-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/qtile-dev/0b928ec8-68ec-44e0-83d3-54e2b99c7e71n%40googlegroups.com.
