Skip to content

zakk4223/hyprWorkspaceLayouts

Repository files navigation

Workspace and monitor specific window layouts for Hyprland

Do you wish you could run different window tiling layouts on individual workspaces? This plugin makes it possible!

Note

If you would like to see per-workspace layouts implemented in hyprland itself, please add a reaction (👍) to the corresponding issue.

Using hyprpm, Hyprland's official plugin manager (recommended)

  1. Run hyprpm add https://github.com/zakk4223/hyprWorkspaceLayouts and wait for hyprpm to build the plugin.
  2. Run hyprpm enable hyprWorkspaceLayouts

Using hyprload

Add the line "zakk4223/hyprWorkspaceLayouts", to your hyprload.toml config, like this

plugins = [
    "zakk4223/hyprWorkspaceLayouts",
]

Then update via the hyprload,update dispatcher.

NixOS Installation

Add this flake to your inputs, note that using a mismatched/unsupported Hyprland release will fail to build or load the plugin:

inputs = {
    hyprland.url = "github:hyprwm/Hyprland"; # follows development branch of hyprland
    hyprWorkspaceLayouts = {
        url = "github:zakk4223/hyprWorkspaceLayouts";
        inputs.hyprland.follows = "hyprland"; # to make sure that the plugin is built for the correct version of hyprland
    };
};

Then, in your home-manager config, add the plugin:

wayland.windowManager.hyprland = {
    enable = true;
    plugins = [ inputs.hyprWorkspaceLayouts.packages.${pkgs.system}.default ];
};

Manual installation

  1. Build the plugin
    • make all
  2. Load the plugin however you load other Hyprland plugins.
    • exec-once = hyprctl plugin load <ABSOLUTE PATH TO workspaceLayoutPlugin.so>

Configuration

Set a default layout to use for workspaces you don't specifically configure:

plugin {
    wslayout {
        default_layout=master
    }
}

If you don't set one, "dwindle" is used.

Set your global layout to 'workspacelayout'

general {
    layout=workspacelayout
}

Configure workspace specific layouts

workspace=1,layoutopt:wslayout-layout:master #workspace id
workspace=name:badanime,layoutopt:wslayout-layout:dwindle #named workspace
workspace=special,layoutopt:wslayout-layout:dwindle #special
workspace=special:hiddenyaoi,layoutopt:wslayout-layout:nstack #named special

Dispatcher

You can dynamically change the layout of the currently active workspace via a dispatcher.

hyprctl dispatch layoutmsg setlayout dwindle

Per monitor layouts

If you want to configure a layout for each monitor, consider using one of my other plugins: hyprland-workspace-rules

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •