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.
