You beat me to it. I finally got it working.

I've submitted a pull request (https://github.com/qtile/qtile/pull/1955)
but you can ignore it if you want to go with your approach.

On Sat, 7 Nov 2020 at 13:45, tcld <[email protected]> wrote:

> I played around with the widget a bit, and the following seems to work
> fine:
>
> (replaces a line of code in the __init__-method)
>
>         if self.execute:
>             def prepare():
>                 def worker():
>                     try:
>                         check_call(self.execute, shell=True)
>                     except:  # noqa: E722
>                         logger.exception("Problem running update script:
> %s", self.execute)
>                     self.qtile.call_soon_threadsafe(self.tick)
>                 threading.Thread(target=worker).start()
>             self.add_callbacks({'Button1': prepare})
>
> The try/except can possibly be skipped, since it wasn't there before.
>
> On Saturday, 7 November 2020 at 14:26:29 UTC+1 tcld wrote:
>
>> And you're certain that's not caused by your changes? If not, how about
>> you open a PR?
>> (When doing certain things in the main thread, it freezes up. It's pretty
>> easy to get there.)
>>
>> On Saturday, 7 November 2020 at 14:19:36 UTC+1 elParaguayo wrote:
>>
>>> Thanks. I guess there's something wrong with my setup then as that
>>> doesn't work for me. Process is still spawning in the background.
>>>
>>> The system also gets stuck when the update check is being run (hadn't
>>> noticed the default 60 second interval).
>>>
>>> On Sat, 7 Nov 2020 at 12:59, tcld <[email protected]> wrote:
>>>
>>>> I'm doing this:
>>>>
>>>>         widget.CheckUpdates(distro='Arch_checkupdates',
>>>> display_format='Updates: {updates}',
>>>>                             execute='alacritty --title "updates"
>>>> --command ' + home + '/.config/qtile/do_update.sh',
>>>>                             update_interval=900),
>>>> With the script being called containg this code:
>>>>
>>>> #!/bin/sh
>>>> echo "Installing updates..."
>>>> sudo pacman -Syyu
>>>> read -n 1 -p "Press any key to quit..."
>>>>
>>>> I'll give the widget code another look, since it might teach me
>>>> something about threads in Python. :)
>>>>
>>>> On Saturday, 7 November 2020 at 12:42:22 UTC+1 elParaguayo wrote:
>>>>
>>>>> I'm drawing a complete blank here as I can't get the widget to spawn
>>>>> the update process in a visible terminal. I've tried using kitty as per
>>>>> Justine's original post to see if the issue was with me using alacritty 
>>>>> but
>>>>> that's not working either.
>>>>>
>>>>> The process spawns in the background and makes qtile unresponsive. I
>>>>> have to switch to a different TTY to kill the process to unlock qtile.
>>>>>
>>>>> I'd be *fairly *optimistic that the changes I've made would work but
>>>>> it's impossible for me to test.
>>>>>
>>>>> On Sat, 7 Nov 2020 at 10:16, elParaguayo <[email protected]> wrote:
>>>>>
>>>>>> May have been over-confident!
>>>>>>
>>>>>> I've cloned it but I can't actually get the widget to create a
>>>>>> terminal to run the update command. The window doesn't display so it's 
>>>>>> just
>>>>>> trying to run in the background (my execute command calls alacritty and 
>>>>>> the
>>>>>> update command).
>>>>>>
>>>>>> Need to understand what the issue here is before I can test.
>>>>>>
>>>>>> On Saturday, 7 November 2020 at 10:01:04 UTC tcld wrote:
>>>>>>
>>>>>>> Then please go for it. :)
>>>>>>>
>>>>>>> On Saturday, 7 November 2020 at 10:57:56 UTC+1 elParaguayo wrote:
>>>>>>>
>>>>>>>> It's a pretty simple edit to the code, I think. I don't currently
>>>>>>>> have the repository cloned because I'm running the version from the 
>>>>>>>> Arch
>>>>>>>> repos but I'm happy to clone and make a pull request for this.
>>>>>>>>
>>>>>>>> I'll need to run against the 0.16.1 tag rather than the latest
>>>>>>>> commit but assume that's ok.
>>>>>>>>
>>>>>>>> On Sat, 7 Nov 2020 at 09:04, tcld <[email protected]> wrote:
>>>>>>>>
>>>>>>>>> I have come across this as well. At the moment the widget updates
>>>>>>>>> in predefined intervals. So if you wait a "little" (mine updates 
>>>>>>>>> every 15
>>>>>>>>> minutes), the display will be changed accordingly.
>>>>>>>>>
>>>>>>>>> I'll have a look at the code, maybe the update can be triggered
>>>>>>>>> after the "execute"-command is finished.
>>>>>>>>>
>>>>>>>>> On Thursday, 5 November 2020 at 22:47:53 UTC+1 Justine Smithies
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Thanks for your reply. A code modification was what I was
>>>>>>>>>> thinking but wondered if I could avoid that. Possibly not though.
>>>>>>>>>>
>>>>>>>>>> On Thu, 5 Nov 2020, 21:36 el Paraguayo, <[email protected]>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Looking at the code, the button press just runs the "execute"
>>>>>>>>>>> command but doesn't trigger a refresh of the widget (see:
>>>>>>>>>>> https://github.com/qtile/qtile/blob/master/libqtile/widget/check_updates.py#L71
>>>>>>>>>>> ).
>>>>>>>>>>>
>>>>>>>>>>> You could either modify the code in the widget to trigger a
>>>>>>>>>>> refresh or write a shell script that runs your update command and 
>>>>>>>>>>> then
>>>>>>>>>>> refreshes the widget, and use that shell script in your "execute" 
>>>>>>>>>>> field.
>>>>>>>>>>>
>>>>>>>>>>> However, I'm not sure how you can trigger the refresh from a
>>>>>>>>>>> shell script but it feels like it should be possible!
>>>>>>>>>>>
>>>>>>>>>>> On Thu, 5 Nov 2020 at 11:08, Justine Smithies <
>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Wondering if anyone has an issue with widget.CheckUpdates. I'm
>>>>>>>>>>>> using Arch with yay and have that set in the distro field and in 
>>>>>>>>>>>> the custom
>>>>>>>>>>>> command I have checkuodates+aur which runs fine and shows updates. 
>>>>>>>>>>>> I have
>>>>>>>>>>>> kitty -e yay -Syu in the execute field so when I click on the 
>>>>>>>>>>>> updates bar
>>>>>>>>>>>> when there are some showing it opens the terminal and updates. The 
>>>>>>>>>>>> issue I
>>>>>>>>>>>> have is that after this when the terminal window closes it still 
>>>>>>>>>>>> says the
>>>>>>>>>>>> updates are available when I think it should re run the 
>>>>>>>>>>>> widget.CheckUpdates
>>>>>>>>>>>> so it sees none are now available and clears the update widget.
>>>>>>>>>>>>
>>>>>>>>>>>> PS I'm loving Qtile and learning a new language at the same
>>>>>>>>>>>> time after spending a long time jumping from KDE to xfce and back.
>>>>>>>>>>>>
>>>>>>>>>>>> Justine
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> 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/CADrRWNY2O0NyYDo%2BkNy8%2BR6tYeBm%3DumcxUWbJ_wHdhC4G%2BtXpA%40mail.gmail.com
>>>>>>>>>>>> <https://groups.google.com/d/msgid/qtile-dev/CADrRWNY2O0NyYDo%2BkNy8%2BR6tYeBm%3DumcxUWbJ_wHdhC4G%2BtXpA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>>>>>>> .
>>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> 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/CADPQLhDBoSnp2bXdoONex6SHkBXWxLnhqkOUmUJVDYuSgXpy_A%40mail.gmail.com
>>>>>>>>>>> <https://groups.google.com/d/msgid/qtile-dev/CADPQLhDBoSnp2bXdoONex6SHkBXWxLnhqkOUmUJVDYuSgXpy_A%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>>>>>> .
>>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>> 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/3fbe80ec-4fbe-482c-a0d2-048ebada2d65n%40googlegroups.com
>>>>>>>>> <https://groups.google.com/d/msgid/qtile-dev/3fbe80ec-4fbe-482c-a0d2-048ebada2d65n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>> .
>>>>>>>>>
>>>>>>>> --
>>>>>> 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/b6561e53-ea24-4cfa-b680-e184b52dff3bn%40googlegroups.com
>>>>>> <https://groups.google.com/d/msgid/qtile-dev/b6561e53-ea24-4cfa-b680-e184b52dff3bn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>> --
>>>> 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/184a81c3-2977-4cf6-a060-94ae90b8880en%40googlegroups.com
>>>> <https://groups.google.com/d/msgid/qtile-dev/184a81c3-2977-4cf6-a060-94ae90b8880en%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> --
> 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/86a88e75-6fc3-4a62-a5fc-df52394a2fe4n%40googlegroups.com
> <https://groups.google.com/d/msgid/qtile-dev/86a88e75-6fc3-4a62-a5fc-df52394a2fe4n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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/CADPQLhD8666B4e-cd_Bev-zP5eBBp16ak_ssOgT5OxQj1TJE7w%40mail.gmail.com.

Reply via email to