THDance is an overlay / desktop utility for Linux made with Qt6 that allows you to load multiple customizable GIFs within different widgets with low resource consumption.
- Install git and python3 with your favorite package manager
- Run the following command in the terminal:
git clone https://github.com/SleepyHazu/THDance.git && cd THDance && chmod +x install.sh && ./install.sh - Run "thdance" in the terminal to verify that everything is working
You can directly modify the GIFs available in the "~/.config/thdance/dancers" directory
--char NAME: Specify which character (gif) to display (example: thdance --char rumia).
--add FILE: Register a new character / GIF from a local file path into the library.
--remove NAME: Delete a character / GIF from the library.
--mode MODE: Set execution mode, example: thdance --mode list (show all available characters / gifs).
--overlay STATE: Defines whether character / GIF will work on top of applications or not; the default is "true," any other value will prevent them from appearing on top of windows.
--load STATE: Load the settings you last saved. Default: "false".
ESC: Close all instances.
Q: Creates new instance with random character / gif.
X: Remove the currently selected instance.
S: Save current characters / GIFS state and positions.
L: Load the latest save of the characters / GIFS with their previous positions and data.
F: Lock all characters / GIFS.
V: Increment character / GIF size.
B: Reduce character / GIF size.
U: Unlock all characters / GIFS.
CTRL: Toggle the current instance block to prevent the execution of controls.
@SleepyHazu - Developer ~ "It worked on my computer"
@Saikynt - Tester ~ "rm -rf should not exists"
This might have a couple of bugs; currently I've only tested it on Ubuntu with GNOME and Arch with Hyprland.
If you're in Hyprland and want to remove the background from the dancers, you can use these window rules:
For hyprland.conf:
windowrule = no_blur on, match:initial_title THDance
windowrule = no_shadow on, match:initial_title THDance
winodwrule = decorate off, match:initial_title THDance
windowrule = border_size 0, match:initial_title THDance
For hyprland.lua:
hl.window_rule ({ match = { initial_title = "THDance" }, no_blur = true })
hl.window_rule ({ match = { initial_title = "THDance" }, no_shadow = true })
hl.window_rule ({ match = { initial_title = "THDance" }, decorate = false })
hl.window_rule ({ match = { initial_title = "THDance" }, border_size = 0 })



