A read-only mirror of https://github.com/hyprwm/Hypr
Find a file
anomaloushuman 43da6b51ab Preventing orphaned processes from rising from the grave and haunting our window manager.
Turns out, some windows weren’t properly cleaning up after themselves, leaving behind undead nested processes lurking in the shadows of our system. To fix this, I’ve introduced proper PID tracking with a shiny new windowIDToPIDMap, facilitating keeping tabs on which windows are still breathing and which need a swift, merciful execution.

The new cleanupTerminatedWindows() function patrols for these lost souls, checking if their process is actually terminated using kill(0), and if that’s not convincing enough, windowManager will peek into /proc/[pid]/cmdline to verify if they’re who they say they are. If a process is missing or pretending to be something it's not, it is exorcised from our system.

To keep our execution order from turning into a chaotic zombie apocalypse of race conditions, I’ve wrapped windowIDToPIDMap in a std::mutex, ensuring that multiple threads don’t accidentally resurrect the dead while another is trying to bury them.

Lastly, because everyone should respect basic survival instincts, I’ve added error handling for directory creation. No more blindly assuming /tmp/hypr exists—we should check before we start dumping files there, because even the undead deserve some proper housekeeping.

:)
2025-03-11 02:54:54 -05:00
.github this will 2022-01-07 10:26:01 +01:00
example Various fixes (#103) 2023-01-25 13:00:56 +00:00
src Preventing orphaned processes from rising from the grave and haunting our window manager. 2025-03-11 02:54:54 -05:00
.gitignore added a makefile and edited the codeql 2021-11-26 21:14:25 +01:00
CMakeLists.txt cmake: bump minimum version to 3.5 2024-03-28 02:12:47 +00:00
CONTRIBUTING.md created contributing guidelines 2021-11-23 22:33:41 +01:00
LICENSE added a license 2021-11-23 14:26:04 +01:00
Makefile Added -p to mkdir to only recompile changed files instead of everything 2022-03-11 15:26:24 +01:00
README.md Added notice of hyprland to the readme 2022-05-16 17:44:52 +02:00



Hypr is a dynamic Linux tiling window manager for Xorg. It's written in XCB with modern C++ and aims to provide easily readable and expandable code.

For Hypr with land, see Hyprland, the Wayland Compositor.


Hypr is _only_ a window manager. It is not a compositor and does not implement a compositor's functionality. You can run it without one (e.g. Picom) though, since it runs on Xorg, which doesn't require a compositor.

Key Features

  • True parabolic animations
  • Rounded corners and borders
  • Config reloaded instantly upon saving
  • A built-in status bar with modules
  • Easily expandable and readable codebase
  • Pseudotiling
  • Multiple tiling modes (dwindling and master)
  • Window rules
  • Intelligent transients
  • Support for EWMH-compatible bars (e.g. Polybar)
  • Keybinds config
  • Tiling windows
  • Floating windows
  • Workspaces
  • Moving / Fullscreening windows
  • Mostly EWMH and ICCCM compliant

Installation

I do not maintain any packages, but some kind people have made them for me. If I missed any, please let me know.

IMPORTANT: Hypr requires xmodmap to correctly apply keybinds. Make sure you have it installed.

For stable releases, use the Releases tab here on github, and follow the instructions to install it in the Wiki

Arch (AUR)

yay -S hypr-git

Void Linux

https://github.com/Flammable-Duck/hypr-template

Manual building

If your distro doesn't have Hypr in its repositories, or you want to modify hypr,

see the Wiki to see build and installation instructions.

Configuring

See the Wiki Page for a detailed overview on the config, or refer to the example config in examples/hypr.conf.

You have to use a config, place it in ~/.config/hypr/hypr.conf

Screenshot Gallery

One Two Three

Known issues

  • Picom's shadow and effects do not update for cheap animations while animating
  • Non-cheap animations are choppy (duh!)

Contributions

Refer to CONTRIBUTING.md and the Wiki for contributing instructions and guidelines.

Stars over time

Stars over time