You are browsing as a guest. Sign up (or log in) to start making projects!

SilentSword

@SilentSword

Joined May 31st, 2026

  • 14Devlogs
  • 2Projects
  • 0Ships
  • 0Votes
Open comments for this post

3h 28m 33s logged

Holla, I’ve been working on a kind of useless bug that took me a long time to fix. The problem was that when the app was enabled to start automatically, you could still disable it from task manager. The bad thing is, I had no way of knowing if it was enabled or disabled from task manager, so I build one, and after that, I wanted a way to get notified when the user changed the disabled/enabled state, so I used a function named RegNotifyChangeKeyValue witch I’ve configured to notify the app when ICare’s state changed. I created a hole separate class for that named AutostartWatcher.cs, and it works flawlessly!
Thanks for reading!

0
0
4
Open comments for this post

8h 14m 59s logged

Hy there, I implemented two major things, those being a dark theme and an actual installer and updater.
The dark theme:
For this, I created two xaml files with the same SolidColorBrush names but with different colors, then I used ResourceDictionary and MergedDictionaries to change the current used file for the theme. After this I had to play with the color values because apparently you have to have layers to your app and yeah, it was a long and boring process of running the app, thinking if it needs to be darker or lighter, then going to the color picker and changing the value accordantly, then copying that into the program and repeating, but it worked!
To make the title bar change color I found out that you need to import some of those weird libraries, again. I don’t understand every part of that function, but it does work.
To change the theme, I removed the custom message box from settings and replaced it with a light/dark toggle for the theme.
The installer and updater:
For this, I used Velopack, which is great! It doesn’t require admin to install, it also has an updater, and it just works! Unfortunately, for the GitHub build action, I had no ideea how to write it, so just used Claude to do it for me, but that’s not really part of the app so it’s ok (I think?). Then, I wanted to have a way for the user to update the app with some confirmation things, because before I just had one button that you clicked, it shows no progress, and if it did find an update it would immediately restart the app, no questions asked. Now, in the bottom right of settings, there is some text that acts like a button which has all the states from let’s say no update found to ready to download to ready to install and more.
That’s pretty much it, thanks for reading!

0
0
1
Open comments for this post

7h 6m 5s logged

Dear reader, thank you for reading. I promise this devlog is gonna be fun to read trough.
The biggest utility change is that the timer now pauses when the screen goes to sleep. To do this, I had to use some low-level hooks that I’m not a master in, but it was fun to use them and debug the errors.
Then I wandered about how I could make the app report errors it had back to me while also putting YOUR 🫵 privacy on the first place. I found Sentry, an app which has a more than enough free plan for this use case. What Sentry does it’s that it collects all the errors and stores them in one dashboard, along with many other features. The setup was fairly simple; it wasn’t that big of a hustle.
Next, I also added a darker picture for the background for when the pc is in dark mode so that you don’t get flash banged when a break suddenly starts and its 3am. To choose the correct picture, it checks a specific value from a specific path where Windows keeps the current theme. Here I had a problem with memory leak which required more debugging because the images were being kept in memory, twice, and they would also get deleted after each use? It was a mess, but now its fixed.
The last change is in the UI. I decided to keep ICare at a fixed size so that the layout is more consistent, and then I adapted the Settings view to the new dimensions.

Thank you so much for staying! I’m sure I have a long way to go until ICare reaches a reasonable standard, but I hope you had fun reading through my journey. Thanks again!
P.S: You can show me that you’re interested in this by just leaving a like on this devlog and it will make me happy to know that someone read it!

0
0
1
Open comments for this post

2h 47m 52s logged

Hello there, I added a few features that I needed while I was using ICare, and those being a nice background because the black one was just too basic and the timer stopping when the screen goes to sleep or when I lock the pc. To know when the pc went to sleep or the user locked the pc, I attached a listener to a SystemEvents thing, I don’t really know what it is, and now it constantly checks for SessionLock and SessionUnlock and pauses and starts the timer accordantly.
For the pausing and starting the timer, I have redone its logic. Now, instead of calculating the exact time the break should start I use a stopwatch to track how much time has passed and when it reaches the desired time it triggers the break. It wasn’t easy because I runed into many bugs where, for example, it would just instantly start the break once the app launched and many such errors, but the latest version works flawlessly!
Thanks for reading! Consider leaving a like or a comment if you enjoyed this devlog q(≧▽≦q)!

0
0
5
Open comments for this post

3h 9m 19s logged

Holla, I worked on some core features but also some little improvements. The biggest change is that the app can now automatically start and this is a togglable feature from the settings with also has a nice toggle. It wasn’t hard to implement it science there is already api for it and all I had to do is create some basic functions to use it. Next, I added dismiss buttons in the notification for 5 and 10 minutes respectively. I also fixed the bug where when dismissing the break, it would only add the minutes to the visual timer, but it wouldn’t actually dismiss the break.
Also, I figured that the break message and the countdown timer during the blackout (the break) was a bit distracting, so now only the primary monitor has the break message and the countdown, the rest are just blacked out.
I added some small coloring touches to the Work time and the Break time, and they now look so much better.
The final feature I added is a warning when the break time is smaller than the worktime; I figured that if you work or game or just use your computer for 60min, you should take a 60sec break, so for every X minutes of screentime you should take at least X seconds of break, so now that’s what the break message says.
Thank you for reading, I appreciate all feedback!
Bye!

0
0
3
Open comments for this post

3h 20m 7s logged

Hey there!
I have been working on quality-of-life improvements, such as adding a nice visual indicator when the next break is skipped by making the timer red, adding dismiss buttons to the notification, making the hotkey field automatically register the key pressed and adding the option to write a custom break message.
Behind the scenes I also made some quality-of-life changes to the codebase. Now the configuration autosaves after each change, so I don’t need to worry about losing the config, and thats the only big change to the codebase.
Im also proud to report that now the icon is also present on the notification, which is a small but important and elegant addition😆
Now I want to focus on making the app automaticly start on user login and figuring out how to properly install it on the computer.

0
0
4
Open comments for this post

6h 17m 49s logged

I decided that python wasn’t going to cut it anymore, so I decided to learn some basic C# (I was already pretty familiar with cpp, so it wasn’t that hard) and build the program in C#. It was so much fun, and it was also simpler, because it was VERY, VERY easy with C# to do a lot of things that with python required me to use a backdoor or something.
I used Rider from IntelliJ to create my project that is using WPF, a thing for designing windows apps so easily. I also used some templates I found online to just get it working (and ok, I’m guilty, I used AI for the math on the circle, and good thing I did because I have no idea how that math works) and then tried to get them working together.
For the notification, well, I almost committed a crime while coding it (for legal reasons, this is a joke(●’◡’●) ) because there is always a catch with windows APIs. Either I couldn’t have a button on the notification, or I had to have a notification manager instance (or something similar, I don’t remember), or I just needed to install yet another library for it. Fortunately, it worked! It doesn’t have an icon, don’t even get me started on the icon because I don’t want to break my computer😭.
Anyway, for the keyboard handler, I was blessed enough to find a template on the web for it (apparently it is standard to do it that way), and I just got it, tweaked it a little bit, and it worked!
The rest just went smoothly, with a bug here… a bug there… but it worked! It works and I’m so happy! I kind of want to improve the design of the dashboard a little bit, because even though it’s clean, it still could use a little work.

And if u got here, ayyy, thank you for reading. Just comment something, anything, it would make me so happy to know someone else read this whole thing!
Thank you!

0
0
2
Open comments for this post

37m 9s logged

I learned to use ifs, loops, create classes and many more in C#. It was kinda a test project for learning, but it helped me a lot

0
0
2
Open comments for this post

48m 37s logged

Hi there! I worked a little bit on the app and added two core features: a Config class and a way to make the program launch as admin every time.
I made the config class generate a file named config.json to store all the data, and I made a function to read the data from it. I also added setters for the current hotkey, break time, work time and other fields, and it worked after fixing a few bugs.
Then I focused on the program launching as admin, for which I created two new functions, one to check if the program is already running as admin (which uses a long command to check it, I found it online) and another big command to relaunch the script with admin privileges(witch I also found online). Everything works well as shown in the video!

0
0
5
Open comments for this post

24m 53s logged

I added support to skip the break with a hotkey combination “Ctrl+Shift+S”. I also used a library I found online for this, and it works! I’m so happy with how this is coming together!

0
0
14
Open comments for this post

25m 28s logged

I added a function to send notifications so that you can dismiss the break if you’re in a meeting or in the middle of a game. It was actually the most fun part of the program! I sed a library with a weird name I found online; win11toast. Then all I had to do is to call a method, and then questioning reality because the on_click method didn’t work, but now it does! I even added an icon to the notification! I LOVE IT!

0
0
21
Open comments for this post

39m 51s logged

I made the black screen work. I used a fancy library called tkinter to create a black screen on every monitor, and to get all the monitors I used the screeninfo library. Then I looped trough every screen and added a new window to it using that tkinter class.
After this, I created two methods that block and unblock some keys on the keyboard, specifically the win key, the alt key and the control key so that you can’t exit the screen and cheat your way through the break

0
0
14
Open comments for this post

18m 18s logged

I improved the time tracking feature. I noticed that it before it was always ~1 second late and stacked up the more time it had to track. Now I’m using time.time() function to keep track of the exact start time so that it’s always exact, compared to waiting 1 second and incrementing a counter

0
0
10
Open comments for this post

1h 16m 21s logged

I got started by creating the GitHub repo, creating the IntelliJ project, then creating multiple .py files to separate their functionalities clearly. I had to search and learn how to use the threading class, which is pretty complicated in my option, but it works, and you know what they say: “If it works, don’t touch it”. Then I found a closed eye icon on the internet and used it as the ico for the systemtray. For now, it’s just in cli, but after I make the blackout screen work, I’m going to add a nice gui.

0
0
8

Followers

Loading…