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/32056caa-e169-4224-a3fe-ed7ceaec53c9n%40googlegroups.com.