@EyeOdin (Ricardo) posted a new topic, subject "Timer Watch". It read:

   Picture466×100 1.38 KB
    
    ##  Purpose
    
    Timer Watch is a Krita plugin and it is Time Management Tool.
    
    ##  Link
    
    https://github.com/EyeOdin/timer_watch
    
    ##  Features
    
      * Clock
      * Stopwatch
      * Progress Bar
      * Read  for more information
    
    
    
    ##  Preview

@Andreich_DMBL (Александр 1987) replied

    Is it possible to take into account only the “time of active use” of the program? Or just automatically stopping the timer when the user is “idle”?

@tiar replied

    This is already in Krita: Go to File -> Document Information, it will tell you the summarized time spent on this document (of course you need to save in .kra for it to work, otherwise it will be reset to 0 every time; and working with .kra files is better anyway).

Then @Andreich_DMBL (Александр 1987) said

    I know about the timer attached to the file. I was looking for a similar stopwatch in the program, because I wanted to see this “time data” constantly, and not in a hidden menu. The plugin that is offered in this topic looks exactly as I imagined, and I would like to see in it just this missing function from “Document Information” or its equivalent, it would be great.  
    p.s. I apologize for this machine translation)

So @Rakurri replied

    Sounds lovely, excited to try it!  I like that it's in a docker and that it has a lot of nice features other than just counting the time spent, like the progress bar!  The Progress bar sounds like something I would like to use

@EyeOdin (Ricardo) replied

    Andreich_DMBL:
    
    > Is it possible to take into account only the “time of active use” of the program? Or just automatically stopping the timer when the user is “idle”?
    
    tiar:
    
    > This is already in Krita: Go to File -> Document Information, it will tell you the summarized time spent on this document (of course you need to save in .kra for it to work, otherwise it will be reset to 0 every time; and working with .kra files is better anyway).
    
    I did not even know this option existed, but the use seems a bit different. it seems to read the total time spent on a piece and I want to know when I need to stop to go and eat or not cheat myself from working too little. I think I could make a new tab to read that value too but odds are that value is not open in the API yet, but if i can I will try and add the link to it too sounds like a good idea actually.

To which @EyeOdin (Ricardo) replied

    well I updated the plugin to the suggestion and now it has a new tab called “info” that displays general information about the active document.
    
    The initial link has been updated so just use that.
    
    values worth noting are :
    
      * Date Delta - how long was the document created
      * Active Time - how much time was spent editing the file since creation or last reset.
    
    
    
    timer_watch_info_preview522×276 5.13 KB
    
    Note: I tested it out with several files but if a bug pops up just send me a Personal Message with the error message so I can correct it. thanks in advance.

To which @raghukamath (Raghavendra Kamath) replied

    I think @I9S submitted a MR to add the plugin script by blender guys into the resources page of krita documentation. I think you should also send an Merge Request to add yours to the list too.  
    @tiar has given a nice introduction about it in this post - Blender Institute developed a Krita script!

Then @Andreich_DMBL (Александр 1987) said

    Thanks! this is what I need!  
    I noticed that the minute counter shows the value “zero” and it is unchanged.  
    From the screenshot  
    
    
    timer599×395 24.4 KB
    
      
    you can see that from 94 335s where 1d 2h 0m 15s(93 615s) are not shown 12m (720s)  
    Simply, the minutes value is not displayed in the specified area.  
    I checked on several files, including the newly created one.  
    Can someone else check this plugin for themselves? Maybe I did something wrong.

After which, @EyeOdin (Ricardo) added

    Andreich_DMBL:
    
    > I noticed that the minute counter shows the value “zero” and it is unchanged.
    
    oopseys hehe. I wrote “month” instead of “minute” there for some odd reason. that is why it was always zero on the read. thank you for pointing it out @Andreich_DMBL.  
    As a side note it is worth noting that the “work” value only updates upon saving.
    
    raghukamath:
    
    > I think you should also send an Merge Request to add yours to the list too.
    
    I did not even think about that yet. I will have to take a look into it to see how it is done.

Then @Metallicow said

    I'm kind of neutral as to the usefulness of these things.  
    A lot of time when I'm programming or painting I don't even bother with them.  
    Why? because unless they are implemented very strictly and used very strictly, then results can actually vary because of real-world circumstances.  
    Often times I get called away from keyboard(afk) for whatever reasons and might be away for hour or two.  
    Then sometimes you get people that ask how long something took and I really don't have a accurate answer because maybe I was pulled away and came back.  
    A work environment is a bit better for these things.
    
    Also if you got auto complete snippets in programming it really doesn't reflect the time it would normally take to write something. The .kra timer is ok, but what if it is a workshop document already set up for a specific purpose. Maybe it has been edited 100s of times or have branches of revisions.  
    … so overall I'd say it might be useful for those who would take the time to stop the timer when called away or maybe if it had settings that was specific to every 10seconds after a edit.
    
    so idunno really. I guess it all depends on the end user and if accurate results are truly important.

Then @EyeOdin (Ricardo) said

    well I had need for it so I made it, I forget to eat loads of times because of work and this will help me go eat on time. Eating on time is cool I think even though I don't do it.
    
    But to answer some points.
    
    Metallicow:
    
    > Often times I get called away from keyboard(afk) for whatever reasons and might be away for hour or two.
    
    The stopwatch is not meant to measure the time doing the work but the amount of time your in front of the screen , you can pause it anytime like normal.
    
    Metallicow:
    
    > Then sometimes you get people that ask how long something took and I really don't have a accurate answer because maybe I was pulled away and came back.
    
    As you said Krita has a internal timer that updates upon saving. On the info tab, it exposes the xml values of the *.kra of exactley that, so when you save you get the Active Time of work of that given piece (in human readable time) if the file was not reset you will have the values since creation. And it will display the name of the original creator too if possible. Worth to note that really old files don't have the xml with the same organization so sometimes it wont load up properly or at all (but if you know where the number is you can tweak the code for it, I left the current entries that i did not use on the code so you can read from where stuff is comming inside the code and not just some random numbers out of sequence).
    
    long story short you can see the total editing time of a piece just as you can see from document info.

So @EyeOdin (Ricardo) replied

    Update: Small UI tweak
    
    When the Docker starts, it will display the “Clock” instead of the document “Info”.  
    When I made this I did not know it was even possible. nice

To which @Drayldan (Michal G.) replied

    Hi @EyeOdin, could you add another feature for your plugin? I'd ask for counting and showing elapsed time, ability to set particular amount of time, e.g. 5 or 10 minutes, just for speedpainting-alike task.

To which @EyeOdin (Ricardo) replied

    Drayldan:
    
    > I'd ask for counting and showing elapsed time, ability to set particular amount of time, e.g. 5 or 10 minutes
    
    The progress bar on the stopwatch does that. just set the time limit and it stops once it reaches 100%.

@Kapyia (Kapyia) replied

    Have you considered adding a Pomodoro tab?   
    I think it'd be useful to have a timer where you could specify two intervals: one for work duration and another for break duration. You press “start” and the plugins starts counting down from (or up to) the work duration time. When the time is up, the plugin opens a dialog box prompting the user if want to start a break timer or end the drawing session. The former will start the break timer, which in turn will spawn another dialog box when the time is up.

After which, @EyeOdin (Ricardo) added

    Update: added a Alarm warning when active.
    
    Kapyia:
    
    > Have you considered adding a Pomodoro tab?
    
    Well I never thought about it actually. I was taking a look into it and making a break timer seems a bit hard to work if your not inside Krita to begin with you will never see anything not to mention you would have an odd doubly clock or something… the conversation would become like how many cyles too.
    
    As an alternative to start with, I thought in just making the break happen once every time span you set to “Start”. Just activate the “Alarm” button and once the timer reaches 100% your Done! “Time is Over” !!!
    
    timer_watch_alarm_preview804×223 12.5 KB
    
    Better lift your Pen before the warning hits or you will loose that stroke too! That will teach you finishing things on TIME XD  
    **Evil laughter as lightnning strikes on the background**

So @Venn (Venn) replied

    Awesome idea, I've some problems,
    
    1)The countdown continues to count after the timer set, I guess that's a bug…  
    2) it seems there's no alarm sound after touching the time limit

So @EyeOdin (Ricardo) replied

    1. that is not a bug it works like that by design. because if you go pass your time limit set you can still see how long you worked in the end.
      2. that does not sound like a good idea. having your painting application making sounds.

So @Venn (Venn) replied

    For point 1, I say, understandable. Still a countdown should be a countdown. I know, scripting is very subjective
    
    For point 2, yeah i fully agree. It's more for convenience if the dockers aren't visible, and I was thinking of the system beep, nothing too fancy. Usually I work full screen, so I can't make good use of your otherwise interesting plugin

So @EyeOdin (Ricardo) replied

    1. but I made a stopwatch not a countdown… :V the progress bar is just for your aimed goal and the alarm reacts to that. Just because you reached your target goal that does not mean you will have to stop so it makes sense to keep counting and not stop or count negative time numbers.
      2. the alarm works quite well in full screen if you want a warnning. If your in full screen it is because you don't want to look at the time or progress either way as you go along or any other docker for that matter. The argument of convenience here seems exclusive of how you want to use it.
    
    
    
    if your not interested in using it your not forced to and that's cool.

Then @mourgos said

    I hate to derail this topic (the plugin looks awesome by the way  ), but I just found out about this! Do you know what this actually counts? Is it the active drawing time or the time the document is in focus (or something else entirely)?

To which @tiar replied

    Active drawing time, approximately. Time during which you make strokes.

To which @EyeOdin (Ricardo) replied

    Not long ago Windows updated the way how they scaled the display.  
    Some of my plugins where affected by this (mainly pigmento) on the windows side however this change is very beneficial to the Linux side as the display ratios seem much more similar in Qt than before it allow much smoother transitions of the same plugin in windows and linux without resorting to 2 UI files.
    
    This update change is just the ui scalling of buttons as the functions remain the same.
    
    timer_watch731×313 6.39 KB

Then @hulmanen (Heikki Ulmanen) said

    Hi, what does the alarm do, exactly? In fullscreen there's no indication that the alarm has been triggered as far as I can tell. Maybe I misunderstood what you were saying.

After which, @EyeOdin (Ricardo) added

    The alarm is working properly in full screen and canvas only mode.  
    
    
    desktop3840×2160 335 KB

Then @hulmanen (Heikki Ulmanen) said

    Aha! I don't get a popup for some reason. Could it be because I'm using Linux Mint?

After which, @hulmanen (Heikki Ulmanen) added

    Sorry, this was my mistake! I _do_ get the popup, I just didn't notice it as it was on my 2nd monitor.

Then @EyeOdin (Ricardo) said

    Update: UI display of the Info tab
    
    I was using it and found that the organization of the Info tab was not as clear to read as I was initially expecting it when I grouped it up. Not using it very often makes it harder to read. So I split everything up and made each entry their own line and also tweaked the text for the “Date Delta” and “Active Time” so it is more easily understandable what it means. Also corrected some name entries.
    
    sample file:  
    
    
    info416×439 6.53 KB
    
    This should make this tab much more usable.

@EyeOdin (Ricardo) replied

    Update: BUG Fix update and minor updates
    
    github.com
    
    ### EyeOdin/timer_watch
    
    Krita - Plugin - Time Management Tool. Contribute to EyeOdin/timer_watch development by creating an account on GitHub.
    
    **Bug Fix**
    
    Please update to the new version please if you use this!
    
    I detected a nasty bug that can do a soft lock on krita and force you to kill krita through the task manager as the only way out. With this all should be good.
    
    **UI**
    
    As I was pressing buttons to try and solve my issue I redid a bit the UI. I have been always upset with the tab widget format in krita because it creates a highlight section over your theme you have not to mention you have a horizontal tab sequence under a horizontal tab sequence. I was trying to come up with a easy to use and clean display for it and choose the comboBox it seems in line with my older dockers horizontal display and respects the krita ui and the highlight is just for itself under the tab text. Alarm clock scaling adjusted. At least the buttons are equally sized even if the functions are not as equally important. but regardless of that function is all the same.
    
    clock571×228 2.92 KB
    
    stopwatch571×228 5.33 KB
    
    information571×228 4.92 KB
    
    **Manual**
    
    I was reviewing the manual and it was outdated from the previous version I forgot to touch on it after as the information there was essentially the same just not quite in the same order. but now it is up to date.

After which, @ejimarubr (Edimar Pacheco de Souza Silva) added

    hello, I don't know how to activate this on krita. Should it work immediatly after the installation? Because… nothing happened.

So @EyeOdin (Ricardo) replied

    yes it starts working right after installation.
    
    Krita Manual
    
    ### Managing Python plugins

@Michelist (Michael Strothotte) replied

    Hello and welcome to the forum @ejimarubr!
    
    After the installation you have to restart Krita, after the restart click on “Settings” >>> “Configure Krita” and scroll down to the “Python Plugin Manager” click on it scroll down to the plugin “Timer Watch” check the box in front of it confirm with “OK” in the bottom right corner and restart Krita again. After that restart, you should find the plugin in the bottom right corner of your Krita.
    
    Michelist

Then @EyeOdin (Ricardo) said

    Small UI tweaks for window scaling:
    
      * Stopwatch buttons where not scaling to zero
      * Information tab displayed the information was hard to read when widget was too big
      * Information tab had top and bottom spacing that would unaligned zero scale of widget

So @le_dino replied

    I would like to request being able to set the time to start from and the possibility to remember the last time through sessions
    
    I've been looking for a timer to keep track of the elapsed time but also to resume it later, display it on obs and so on
    
    I think this plugin would be perfect for it if it had those features

Then @EyeOdin (Ricardo) said

    if you go to the “Information” tab you will find all of that information you seek.

To which @Eqlipse (Eqlipse) replied

    Running this on Linux (Manjaro), I'm getting an exception error when I try to start the stopwatch function.
    
    > TypeError  
    >  Python 3.10.4: /usr/bin/python3  
    >  Sun Apr 17 18:51:33 2022
    > 
    > A problem occurred in a Python script. Here is the sequence of  
    >  function calls leading up to the error, in the order they occurred.
    > 
    > /home/eqlipse/.local/share/krita/pykrita/timer_watch/timer_watch.py in SW_StartPause(self=<timer_watch.timer_watch.TimerWatchDocker object>)  
    >  126 # Select Operation  
    >  127 if self.switch == 0:  
    >  128 self.SW_Start() # 0=Pause change to Start  
    >  129 elif self.switch == 1:  
    >  130 self.SW_Pause() # 1=Start change to Pause  
    >  self = <timer_watch.timer_watch.TimerWatchDocker object>  
    >  self.SW_Start = <bound method TimerWatchDocker.SW_Start of <timer_watch.timer_watch.TimerWatchDocker object>>
    > 
    > /home/eqlipse/.local/share/krita/pykrita/timer_watch/timer_watch.py in SW_Start(self=<timer_watch.timer_watch.TimerWatchDocker object>)  
    >  135 # Start Ready  
    >  136 self.maximum = self.SW_Time()  
    >  137 self.layout.progressBar_1.setMaximum(self.maximum)  
    >  138 self.layout.progressBar_2.setMaximum(self.maximum)  
    >  139 # Commands  
    >  self = <timer_watch.timer_watch.TimerWatchDocker object>  
    >  self.layout = <PyQt5.QtWidgets.QWidget object>  
    >  self.layout.progressBar_1 = <PyQt5.QtWidgets.QProgressBar object>  
    >  self.layout.progressBar_1.setMaximum =   
    >  self.maximum = 0.0  
    >  TypeError: setMaximum(self, int): argument 1 has unexpected type ‘float'  
    >  **cause** = None  
    >  **class** = <class ‘TypeError'>  
    >  **context** = None  
    >  **delattr** = <method-wrapper ‘ **delattr** ' of TypeError object>  
    >  **dict** = {}  
    >  **dir** =   
    >  **doc** = ‘Inappropriate argument type.'  
    >  **eq** = <method-wrapper ‘ **eq** ' of TypeError object>  
    >  **format** =   
    >  **ge** = <method-wrapper ‘ **ge** ' of TypeError object>  
    >  **getattribute** = <method-wrapper ‘ **getattribute** ' of TypeError object>  
    >  **gt** = <method-wrapper ‘ **gt** ' of TypeError object>  
    >  **hash** = <method-wrapper ‘ **hash** ' of TypeError object>  
    >  **init** = <method-wrapper ‘ **init** ' of TypeError object>  
    >  **init_subclass** =   
    >  **le** = <method-wrapper ‘ **le** ' of TypeError object>  
    >  **lt** = <method-wrapper ‘ **lt** ' of TypeError object>  
    >  **ne** = <method-wrapper ‘ **ne** ' of TypeError object>  
    >  **new** =   
    >  **reduce** =   
    >  **reduce_ex** =   
    >  **repr** = <method-wrapper ‘ **repr** ' of TypeError object>  
    >  **setattr** = <method-wrapper ‘ **setattr** ' of TypeError object>  
    >  **setstate** =   
    >  **sizeof** =   
    >  **str** = <method-wrapper ‘ **str** ' of TypeError object>  
    >  **subclasshook** =   
    >  **suppress_context** = False  
    >  **traceback** =   
    >  args = (“setMaximum(self, int): argument 1 has unexpected type ‘float'”,)  
    >  with_traceback = 
    > 
    > The above is a description of an error in a Python program. Here is  
    >  the original traceback:
    > 
    > Traceback (most recent call last):  
    >  File “/home/eqlipse/.local/share/krita/pykrita/timer_watch/timer_watch.py”, line 128, in SW_StartPause  
    >  self.SW_Start() # 0=Pause change to Start  
    >  File “/home/eqlipse/.local/share/krita/pykrita/timer_watch/timer_watch.py”, line 137, in SW_Start  
    >  self.layout.progressBar_1.setMaximum(self.maximum)  
    >  TypeError: setMaximum(self, int): argument 1 has unexpected type ‘float'

After which, @EyeOdin (Ricardo) added

    try taking a look at it now. I just updated it.  
    I don't know how but some linux distros really seem to make Python work worse. This bug is non reproducable on my side so you need to check it it works.

@Eqlipse (Eqlipse) replied

    Yep, working perfectly now! Thanks you very much!

To which @TheTwo (Du Yu（杜聿）) replied

    I just ran into a bug that kept appearing when I created a new Japanese manga template. It no longer appears after restarting the software.
    [code] 
        TypeError
        Python 3.8.1: C:\工作软件\Krita (x64)\bin\krita.exe
        Tue Jul 26 04:02:31 2022
        
        A problem occurred in a Python script.  Here is the sequence of
        function calls leading up to the error, in the order they occurred.
        
         C:\Users\123\AppData\Roaming\krita\pykrita\timer_watch\timer_watch.py in Info_Display(self=<timer_watch.timer_watch.TimerWatchDocker object>)
          201             self.layout.label_06_editing_cycles.setText("Editing Cycles")
          202         else:  # Requesto to active Document
          203             self.Info_Document()
          204 
          205     def Info_Document(self):
        self = <timer_watch.timer_watch.TimerWatchDocker object>
        self.Info_Document = <bound method TimerWatchDocker.Info_Document of <timer_watch.timer_watch.TimerWatchDocker object>>
        
         C:\Users\123\AppData\Roaming\krita\pykrita\timer_watch\timer_watch.py in Info_Document(self=<timer_watch.timer_watch.TimerWatchDocker object>)
          256         creator_first_last_name = str(creator_first_name)+" "+str(creator_last_name)
          257 
          258         cd2 = list(creation_date)
          259         cd2[10] = ' '
          260         cd3 = "".join(cd2)
        cd2 undefined
        builtinlist = <class 'list'>
        creation_date = None
        TypeError: 'NoneType' object is not iterable
            __cause__ = None
            __class__ = <class 'TypeError'>
            __context__ = None
            __delattr__ = <method-wrapper '__delattr__' of TypeError object>
            __dict__ = {}
            __dir__ = <built-in method __dir__ of TypeError object>
            __doc__ = 'Inappropriate argument type.'
            __eq__ = <method-wrapper '__eq__' of TypeError object>
            __format__ = <built-in method __format__ of TypeError object>
            __ge__ = <method-wrapper '__ge__' of TypeError object>
            __getattribute__ = <method-wrapper '__getattribute__' of TypeError object>
            __gt__ = <method-wrapper '__gt__' of TypeError object>
            __hash__ = <method-wrapper '__hash__' of TypeError object>
            __init__ = <method-wrapper '__init__' of TypeError object>
            __init_subclass__ = <built-in method __init_subclass__ of type object>
            __le__ = <method-wrapper '__le__' of TypeError object>
            __lt__ = <method-wrapper '__lt__' of TypeError object>
            __ne__ = <method-wrapper '__ne__' of TypeError object>
            __new__ = <built-in method __new__ of type object>
            __reduce__ = <built-in method __reduce__ of TypeError object>
            __reduce_ex__ = <built-in method __reduce_ex__ of TypeError object>
            __repr__ = <method-wrapper '__repr__' of TypeError object>
            __setattr__ = <method-wrapper '__setattr__' of TypeError object>
            __setstate__ = <built-in method __setstate__ of TypeError object>
            __sizeof__ = <built-in method __sizeof__ of TypeError object>
            __str__ = <method-wrapper '__str__' of TypeError object>
            __subclasshook__ = <built-in method __subclasshook__ of type object>
            __suppress_context__ = False
            __traceback__ = <traceback object>
            args = ("'NoneType' object is not iterable",)
            with_traceback = <built-in method with_traceback of TypeError object>
        
        The above is a description of an error in a Python program.  Here is
        the original traceback:
        
        Traceback (most recent call last):
          File "C:\Users\123\AppData\Roaming\krita\pykrita\timer_watch\timer_watch.py", line 203, in Info_Display
            self.Info_Document()
          File "C:\Users\123\AppData\Roaming\krita\pykrita\timer_watch\timer_watch.py", line 258, in Info_Document
            cd2 = list(creation_date)
        TypeError: 'NoneType' object is not iterable
        
    [/code]

Then @KingRey (KingsRey2010) said

    how do you restart krita so I can download your plugin?

@EyeOdin (Ricardo) replied

    @TheTwo  
    That is a bit odd but will check that out. I can make it not give error message and such but for what I read on the error message you got that template does not have a creation date assigned to it.
    
    All created documents should have a creation date and that is time watcher expecting too. That sounds like a krita mistake.
    
    Either way that section will now be transferred into imagine board I will be correcting that. I will redo the clock to be more simple in the future.
    
    I started redoing pigmento from scratch so imagine board could use it as a module. But the new version will have some slight changes to fix bugs and scalability. Redoing timer watch I guess I could but I will have too see if I can slot it in I can't remake all of them at the same time and still work. When I can I will post an update with a fix.
    
    @KingRey  
    Well you restart by restarting… Restarting means closing and opening it again. But that does not block downloads donno what is the problem there but ok.

Then @Andreich_DMBL (Александр 1987) said

    I don't remember if there was a similar question earlier…  
    In stopwatch mode, will it be possible to remember the last “entered” value?

To which @EyeOdin (Ricardo) replied

    I can do that yes

To which @TheTwo (Du Yu（杜聿）) replied

    EyeOdin:
    
    > All created documents should have a creation date and that is time watcher expecting too. That sounds like a krita mistake.
    
    I just tested it again and found that every krita comics template will trigger it.  
    
    
    image650×597 18.4 KB
    
    EyeOdin:
    
    > I started redoing pigmento from scratch
    
    Look forward to okhsv/okhsl in the new version!

Then @EyeOdin (Ricardo) said

    Update:
    
      * Full Rework
    
    
    
    Looks the same outside and everything inside is different.
    
    New Logo:  
    
    
    timer_watch_logo_S466×100 1.38 KB
    
    Code:  
    The code was fully reworked and things are just more simple and as efficient.  
    XML Information tab was taken off from “Timer Watch” as it will be transferred into “Image Board” as it relates to saved files more actively than “Timer Watch”.  
    Saves the mode state and time limit to kritarc.
    
    Ui was adjusted to be stream lined with my other plugins:  
    
    
    clock492×231 2.42 KB
    
    stopwatch492×231 4.84 KB
    
    Operations:
    
      * LMB - Changes quickly mode between Clock and Stopwatch.
      * RMB - Open context menu to change mode.
      * wheel - Changes quickly mode.
    
    
    
    Alarm:  
    Now the alarm plays a small mp3 ping sound to warn the time goal has been reached. “pop”.
    
    Preview:

So @EyeOdin (Ricardo) replied

    update: Manual
    
    This is a update to the quality of life around the plugin and if it works it will be reflected on all my other plugins alike.
    
    The manual was rewritten and moved into the Github wiki page instead of being present on the python plugin manual area because no one reads it and teaching people how to even reach the manual is the biggest hurdle for people that do not care to read the least bit but still need to be directed. Also this allows me to make some better framing of things with more space to be more readable.
    
    new manual
    
    GitHub
    
    ### Home · EyeOdin/timer_watch Wiki
    
    Krita - Plugin - Time Management Tool. Contribute to EyeOdin/timer_watch development by creating an account on GitHub.
    
    I also rewrote the how to install plugins file and placed it on the wiki also. Because of that change I tweaked the settings a bit.
    
    GitHub
    
    ### Plugin Instalation · EyeOdin/timer_watch Wiki
    
    Krita - Plugin - Time Management Tool. Contribute to EyeOdin/timer_watch development by creating an account on GitHub.
    
    New manual inside Krita:  
    
    
    new manual948×597 41.2 KB
    
    * * *
    
    The settings has some new options that are not really that important. The most significant change here is the Manual and copyright buttons having hyperlink connections to the respective pages.
    
    settings467×109 3.19 KB
    
    Alarm Message - Edit your alarm message  
    Alarm Sound - Toggle on and off the sound
    
    Manual - opens a hyperlink on the browser to the manual indicated above  
    License - opens a hyperlink on the browser to the License.
    
    Reviews to this system might still happen.

After which, @Andreich_DMBL (Александр 1987) added

    For a compact size, maybe switch the buttons to icons only mode, or use alignment from the left edge?
    
    The second thought that comes to me is that with strong lateral compression, the row of buttons and timer input can be divided into two by reducing the empty fields of a large timer. If you think about it, such transfers in the Krita interface are practically not found, I don't know if this is practical in implementation.  
    >

To which @EyeOdin (Ricardo) replied

    only way to solve that compression is to use icons only.  
    the way I am building there is no dynamic allowed of the UI.  
    changed.  
    
    
    compact icons457×196 4.03 KB

To which @Andreich_DMBL (Александр 1987) replied

    In this case, the question is removed, it is better to keep the original version with text and icons.

To which @raghukamath (Raghavendra Kamath) replied

    Are you able to edit the original post the first one? I remember I had enabled topic edit in this category.

To which @EyeOdin (Ricardo) replied

    The icons change and also the tool tips. It should work alike without the text. Also I already adjusted the preview images. As you showed the compression is not good.
    
    Yes I am able to edit the first post.

@TheTwo (Du Yu（杜聿）) replied

    An interesting phenomenon is that after the plug-in is installed, the icon shown in the following figure appears in my krita:  
    
    
    image366×562 18.2 KB
    
    As far as I know, it seems that the icon will appear in the Linux version but not in windows. So when I found out the reason for timer watch, I felt very incredible… (this is not a bad aspect. In fact, I hope windows has it because it is more beautiful.)

After which, @EyeOdin (Ricardo) added

    “Timer Watch” and “Imagine Board” both do it. I still have not found a draw back to unlocking it so I will keep it for now.

After which, @Andreich_DMBL (Александр 1987) added

    I was wondering where the icons in version 4.4.8 came from, I thought it was because of update 5… it turns out to be a bonus from EyeOdin


{'source': 'discourse', 'url': 'https://krita-artists.org/t/timer-watch/3281', 'title': 'Timer Watch', 'views': 7076, 'has_accepted_answer': False, 'word_count': 4803, 'like_count': 99, 'reply_count': 27, 'participant_count': 17, 'posts': 55, 'tags': '', 'author': '@EyeOdin (Ricardo)', 'participants': '@EyeOdin (Ricardo), @Andreich_DMBL (Александр 1987), @tiar, @Rakurri, @raghukamath (Raghavendra Kamath), @Metallicow, @Drayldan (Michal G.), @Kapyia (Kapyia), @Venn (Venn), @mourgos, @hulmanen (Heikki Ulmanen), @ejimarubr (Edimar Pacheco de Souza Silva), @Michelist (Michael Strothotte), @le_dino, @Eqlipse (Eqlipse), @TheTwo (Du Yu（杜聿）), @KingRey (KingsRey2010)', 'image_url': ['https://krita-artists.org/uploads/default/original/3X/1/9/196d12e47b7f7feb8a65e6a9f88244d805450b47.png'], 'created_at': '2020-02-03T07:52:33.986Z', 'last_posted_at': '2022-08-23T17:25:30.925Z'}