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

Tuff Top

  • 7 Devlogs
  • 16 Total hours

Extremely obnoxious phonk overlay to "enhance" the gaming experience made using pyqt with native linux wayland support

Ship #1 Changes requested

Watch this video to get a better idea of what it does, my description doesnt do it justice:
https://www.youtube.com/watch?v=HbPldsK_V3k

I made TuffTop which is a python program for linux that turns anything TUFF by mimicking those phonk edits that were popular ~8 months ago, and have since then long died in the mud.

I made sure it is very customisable, you can change fonts, music, icons and the various phrases on screen. You can also turn things off in the handy config.
---------------------------------------------------------------------
Built with PyQt6 for drawing the overlay windows, PIL for image grayscaling effects and screenshot support on Wayland. I also use mpg123 for music and Evdev for input capturing

This is my first real python project, please share any constructive criticism you may have as I want to improve!

  • 7 devlogs
  • 16h
Try project → See source code →
Open comments for this post

45m 32s logged

Most people dont use linux, so I made a showcase so people can preview the project easier!

https://youtu.be/HbPldsK_V3k

I know, the video is quite shoddy, I was kinda doing my homework at the same time ¯_(ツ)_/¯

In the 45 min tracked I setup paths relative to the script so now it works as a compiled pyinstaller binary.
If you want to, you can click and run now instead of messing with python stuff.
https://github.com/Spaagz/tuff-top

Most people dont use linux, so I made a showcase so people can preview the project easier!

https://youtu.be/HbPldsK_V3k

I know, the video is quite shoddy, I was kinda doing my homework at the same time ¯_(ツ)_/¯

In the 45 min tracked I setup paths relative to the script so now it works as a compiled pyinstaller binary.
If you want to, you can click and run now instead of messing with python stuff.
https://github.com/Spaagz/tuff-top

Replying to @Spaagz

0
3
Open comments for this post

1h 51m 12s logged

Added random phrases to the top of the screen using a randomised selection of fonts from a folder

Added random phrases to the top of the screen using a randomised selection of fonts from a folder

Replying to @Spaagz

0
9
Open comments for this post

41m 47s logged

Icons now scale according to aspect ratio instead of being squished into a uniform box.

Heres a preview of the whole abomination in action:

Icons now scale according to aspect ratio instead of being squished into a uniform box.

Heres a preview of the whole abomination in action:

Replying to @Spaagz

0
20
Open comments for this post

5h 2m 27s logged

The Youtube Shorts™ experience 🔥

Black bars can now be added to the sides to mimic a phone aspect ratio, this is configurable. More music and icons have been added as well.
Ive also setup a github for this at: github.com/Spaagz/tuff-top
Plans:
a fake likes and comments overlay
random text to accompany the icon
Figure out a way to release this as a linux executable

The Youtube Shorts™ experience 🔥

Black bars can now be added to the sides to mimic a phone aspect ratio, this is configurable. More music and icons have been added as well.
Ive also setup a github for this at: github.com/Spaagz/tuff-top
Plans:
a fake likes and comments overlay
random text to accompany the icon
Figure out a way to release this as a linux executable

Replying to @Spaagz

0
15
Open comments for this post

4h 55m 28s logged

Progress update!
The project is Linux only now. Pynput doesnt work on wayland and while I could have it detect your platform and use a different input capturing method based on that, It’s not one of my priorities

Anyways, I have finished some things up:
Input detection works using evdev, I listen for mouse clicks and decide if it is “tuff” based on a % value set in the config, you can also configure how many seconds the icon stays on screen for.
Icons are automatically selected from an icons directory and shuffled randomly - They do repeat sometimes but I feel that makes it funnier. This works for the phonk music too. I don’t know if this is optimal (please do say so if there are any better ways), Currently it spawns a mpg123 subprocess and then terminates it after the interval so you don’t have to cut your clips to length.
The icon also now bounces randomly as if it were audio reactive but it actually isn’t

Next:
Make the screen grayscale. It makes it MUCH more funny but I don’t know how to do this in pyqt6, and also if it will work on wayland (Please tell me someone)
Add black bars to mimic the aspect ratio of a vertical phone screen

I want to setup a github for this but since I’m stupid I have actually never used it.

Progress update!
The project is Linux only now. Pynput doesnt work on wayland and while I could have it detect your platform and use a different input capturing method based on that, It’s not one of my priorities

Anyways, I have finished some things up:
Input detection works using evdev, I listen for mouse clicks and decide if it is “tuff” based on a % value set in the config, you can also configure how many seconds the icon stays on screen for.
Icons are automatically selected from an icons directory and shuffled randomly - They do repeat sometimes but I feel that makes it funnier. This works for the phonk music too. I don’t know if this is optimal (please do say so if there are any better ways), Currently it spawns a mpg123 subprocess and then terminates it after the interval so you don’t have to cut your clips to length.
The icon also now bounces randomly as if it were audio reactive but it actually isn’t

Next:
Make the screen grayscale. It makes it MUCH more funny but I don’t know how to do this in pyqt6, and also if it will work on wayland (Please tell me someone)
Add black bars to mimic the aspect ratio of a vertical phone screen

I want to setup a github for this but since I’m stupid I have actually never used it.

Replying to @Spaagz

0
9
Open comments for this post

28m 7s logged

Got the bounce animation working.

So far I am just using the nerd emoji for my icon

Trigger logic is the next thing to be done, but I’m unsure of how to go about it as I’m on Wayland which I heard doesn’t like capturing input if an app isn’t in focus.

I didn’t put this in my first devlog, the goal is to interrupt gameplay at notable moments to cause an annoying fullscreen animation that works in any game or application.
This is inspired by the Minecraft mod “Tuffcraft” and the one in gd that does the same thing

yes I know this meme genre is long dead but idrc

Got the bounce animation working.

So far I am just using the nerd emoji for my icon

Trigger logic is the next thing to be done, but I’m unsure of how to go about it as I’m on Wayland which I heard doesn’t like capturing input if an app isn’t in focus.

I didn’t put this in my first devlog, the goal is to interrupt gameplay at notable moments to cause an annoying fullscreen animation that works in any game or application.
This is inspired by the Minecraft mod “Tuffcraft” and the one in gd that does the same thing

yes I know this meme genre is long dead but idrc

Replying to @Spaagz

0
7

Followers

Loading…