+

+
+# HTT - Hyprland Toggle Tiling
+
+Logo taken from [Papirus](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme). I'm not a designer, don't judge me.
+
+[](https://cplusplus.com/)
+[](https://hyprland.org/)
+[](https://typofelho.ddns.net/TypoMustakes/hyprland-toggle-tiling/src/branch/master/LICENSE)
+[](https://typofelho.ddns.net/TypoMustakes/hyprland-toggle-tiling/graph)
+
+A simple program to toggle tiling and floating modes for windows in the Hyprland Wayland compositor.
+
+Check out [the demo](https://typofelho.ddns.net/TypoMustakes/hyprland-toggle-tiling/src/commit/da423421aaa99f906962e3fd0330d0d88b5b1aa2/assets/demo.webm)!
+
+[Features](#features) •
+[Installation](#installation) •
+[Usage](#usage) •
+[Integration with Hyprland](#integration-with-hyprland)
+
+
+
+## Features
+
+- Quickly switch between tiling and floating modes for all windows on the active workspace.
+- After switching, the program creates a hyprland config file to respect the new windowing mode.
+ Let's say you switched to tiling mode. From that point on, new windows will open in tiling mode as well.
+ Switch to floating mode again and newly opened windows will be in floating mode.
+- Floating/tiling window rules are isolated between workspaces. You can set one workspace to be floating, and all the rest to tiling for example.
+- Returns applied rule for the current workspace. Useful for scripting.
+- Moving a window from a tiling workspace to a floating one changes the float state of the window to respect the new workspace.
+- Useful for workflows that require both tiling and floating window management.
+- Lightweight and easy to integrate with your Hyprland setup.
+
+## Installation
+
+You have a few options of obtainting the program.
+
+### Install from AUR
+
+You may install this program [from the AUR.](https://aur.archlinux.org/packages/hyprland-toggle-tiling-git)
+
+### Nix Flake (for Nix users)
+
+This project provides a Nix flake for reproducible builds and easy installation.
+
+#### Build the package
+
+```shell
+nix build git+ssh://gitea@typofelho.ddns.net/TypoMustakes/hyprland-toggle-tiling.git
+```
+
+The binary will be at `./result/bin/htt`.
+
+#### Add to Home Manager
+
+1. Add the flake as an input:
+
+```shell
+inputs.htt.url = "git+ssh://gitea@typofelho.ddns.net/TypoMustakes/hyprland-toggle-tiling.git";
+```
+
+2. Then include it in your configuration:
+
+```shell
+home.packages = [
+ inputs.htt.packages.${pkgs.system}.default
+];
+```
+
+### Download the release
+
+You can also [download the release binary.](https://typofelho.ddns.net/TypoMustakes/hyprland-toggle-tiling/releases)
+
+or go nuts and...
+
+### Compile from source
+
+1. Clone this repository:
+ ```shell
+ git clone https://typofelho.ddns.net/TypoMustakes/hyprland-toggle-tiling.git
+ ```
+
+2. Enter project directory:
+ ```shell
+ cd hyprland-toggle-tiling/
+ ```
+
+3. Create build directory:
+ ```shell
+ cmake -S . -B build/
+ ```
+
+4. Enter build directory:
+ ```shell
+ cd build/
+ ```
+
+5. Build the projects:
+ ```shell
+ cmake --build .
+ ```
+
+# Usage
+```shell
+./htt