What is Wincuts

Project Website

GitHub Page

WinCuts is a Windows-native (via Qt) tool for easily setting up and managing custom keyboard shortcuts. It’s designed for usage simplicity and is aimed at anyone who wants to save time and increase productivity by using keyboard shortcuts.

How it works

As of now, WinCuts lets you set up custom keyboard shortcuts for running shell/cmd commands that get launched whenever the shortcut is activated. It’s useful if you need to launch specific commands frequently and want to save time by using a keyboard shortcut instead of typing the command every single time. What’s also cool is that none of the shortcuts will go deep enough in your system to cause any damage. They’re all running in the context of the user and are limited to the user’s permissions. And, of course, the shortcuts are only active within the app and hence won’t interfere with any other shortcuts you might have set up (basically, you can’t accidentally override a system shortcut).

Why I picked Wincuts

I chose to contribute to WinCuts because it could improve my productivity when developing on Windows. Since I can fix several issues, I decided to help this project out.

Resources

The project provided both contribution guide, code of conduct and the license this project uses is BSD-3-Clause license. Since this is a relatively new project, there are few participants, but the project’s owner is very active; he can always respond to you within a day, from my experience.

One negative side of this project is the need for more documentation. This does make it difficult to understand the project at the beginning, but since this is a small project and the task I chose to do didn’t interact too much with the main part of the software itself, this didn’t cause too many problems when I was developing.

The Issue

The issue I investigated in this project was Creating an uninstaller for the app. Instead of the cleanup file, an uninstaller can be created to ensure everything is done swiftly. Also, it may help people who need to be more tech-savvy avoid confusion and potential mistakes. issue

Screenshot 2024-04-07 131600

Contribution process

First, I read the project’s current code and understood what libraries were used. Then, I downloaded the libraries needed for the project. image

Then, I coded what an uninstaller would need, including the UI, uninstalling feature, and the feature of asking the user to quit the main application to ensure the uninstaller would function properly.

image

Blocker

During the development, everything went smoothly, but in the end, when I needed to test the software, I faced a major problem that I couldn’t find a solution for on the internet. So, I decided to open a discussion to seek help from the community image

LyubomirT, who is also the owner of the project, quickly responded to the discussion I opened and provided me with the perfect solution image

Pull Request

As of the writing of this blog post, the PR opened has not been accepted yet since there are still some small problems with my solution, which I am still working on now, Link to pull request

Conclusion

Overall, I had a good experience working on this issue and project. While the specific issue I chose to work on was pretty simple, this was a great experience for me because it was the first time I contributed to open source, even if this was a very small and not well-known project.