Knowasiak
Cloak HN: A tiling window manager like i3wm written fully in C#

Cloak HN: A tiling window manager like i3wm written fully in C#

That is the desirable ingredient ever!

GlazeWM is a tiling window manager for House windows inspired by i3 and Polybar.

Why use a tiling window manager? A tiling WM permits you to without distress put together windows and adjust their format on the lag by using keyboard-pushed instructions.

  • Easy YAML configuration
  • Multi-video display improve
  • Customizable bar window
  • Handles video display connections & disconnections
  • Customizable suggestions for particular windows

demo

Beneath the hood, GlazeWM adds functionality to the constructed-in DWM and uses the House windows API is feeble to dwelling windows thru P/Invoke.

The latest runnable binary would possibly per chance presumably be downloaded thru releases. No installation crucial, merely breeze the executable.

Alternatively, to invent from source, use the .NET CLI advise dotnet post ./GlazeWM.Bootstrapper/GlazeWM.Bootstrapper.csproj --configuration=Release --runtime=take-x64 --output=. -p:PublishSingleFile=lawful and breeze GlazeWM.exe from the compiled output. Varied readily available runtime identifiers would possibly per chance presumably be found here.

  • Enhance handling of fullscreen and maximized windows.
  • Extra bar ingredients.
  • Switch the dimension of sibling windows when a tiling window is resized with the sizing border.

The configuration file for GlazeWM would possibly per chance presumably be found at C:Users.glaze-wmconfig.yaml. If this file would now not exist, it is going to optionally be generated with some smart defaults on application commence.

Keybindings

The readily available keybindings would possibly per chance presumably be personalized thru the keybindings property within the config file. A keybinding includes 1 or more key combos and one or more instructions to breeze when pressed.

A full list of keys that will presumably be feeble for keybindings would possibly per chance presumably be found here. Numbers would possibly per chance presumably be feeble in keybindings with and without a D prefix (eg. both D1 or 1 works).

Or now not it’s urged to utilize the alt key for keybindings. The windows key’s unfortunately a anguish to remap, since determined keybindings (eg. LWin+L) are reserved by the OS.

keybindings:
  # Snarl to breeze.
  - advise: "focus workspace 1"

  # Key aggregate to subject off the keybinding.
  binding: "Alt+1"

  # To breeze multiple instructions in a chain, use the `instructions` property (eg. to pass a window to a workspace + focus workspace).
  - instructions: ["move to workspace 1", "focus workspace 1"]
  binding: "Alt+Shift+1"

  - advise: "focus left"
  # To bear multiple key combos that will subject off a advise, use the `bindings` property.
  bindings: ["Alt+H", "Alt+Left"]

Default keybindings

Keybindings with Alt pressed:

Alt key pressed - with keybindings

Keybindings with Alt+Shift pressed:

Alt+shift key pressed - with keybindings

As opposed to the Alt+Shift+E binding for exiting GlazeWM, it be furthermore presumably to securely exit thru the machine tray icon.

Gap configuration

The gaps between windows would possibly per chance presumably be modified thru the gaps property within the config file. Internal and outer gaps are subject individually.

gaps:
  # Gap between adjacent windows.
  inner_gap: 20

  # Gap between windows and the conceal edge.
  outer_gap: 20

Workspaces configuration

Workspaces want to be predefined thru the workspaces property within the config file. A workspace is robotically assigned to each video display on startup.

workspaces:
  # Uniquely identifies the workspace and is feeble because the impress for the workspace within the bar.
  - title: 1

Bar configuration

The appearance of the bar would possibly per chance presumably be modified thru the bar property within the config file.

bar:
  # Peak of the bar in pixels.
  top: 30

  # Opacity price between 0.0 and 1.0.
  opacity: 1.0

  # Background color of the bar.
  background: "#101010"

  # Default font color. Also can furthermore be overriden by surroundings `foreground` in a part's config.
  foreground: "white"

  # Default font household. Also can furthermore be overriden by surroundings `font_family` in a part's config.
  font_family: "Segoe UI"

  # Default font dimension. Also can furthermore be overriden by surroundings `font_size` in a part's config.
  font_size: "13"

  # Horizontal and vertical borders in pixels. Borders are for the period of the dimension of the bar and scheme
  # now not have an effect on bar top. Witness "Shorthand properties" for more files.
  border_width: "0"

  # Color of the border.
  border_color: "blue"

  # Horizontal and vertical spacing between ingredients for the period of the bar and the perimeters of the bar. Witness
  # "Shorthand properties" for more files.
  padding: "1 6 1 6"

  # Substances to advise on the left side of the bar.
  components_left:
    - form: "workspaces"

  # Substances to advise on the shapely side of the bar.
  components_right:
    - form: "clock"

Bar part configuration

The appearance of bar ingredients can furthermore be personalized. The next properties can commerce the styling of a part, without reference to the part form.

# Horizontal and vertical margins. See “Shorthand properties” for more info.
margin: “0 10 0 0”

# Horizontal and vertical padding. See “Shorthand properties” for more info.
padding: “0”

# Opacity value between 0.0 and 1.0.
opacity: 1.0

# Background color of the component.
background: “#101010”

# Font color used within the component.
foreground: “white”

# Font family used within the component.
font_family: “Segoe UI”

# Font family used within the component.
font_size: “13”

# Horizontal and vertical borders in pixels. Borders are inside the dimensions of the component.
# See “Shorthand properties” for more info.
border_width: “0”

# Color of the border.
border_color: “blue””>

# Make of part to advise. Currently most efficient 2 part kinds exist:  "workspaces" and "clock".
form: 

# Horizontal and vertical margins. Witness "Shorthand properties" for more files.
margin: "0 10 0 0"

# Horizontal and vertical padding. Witness "Shorthand properties" for more files.
padding: "0"

# Opacity price between 0.0 and 1.0.
opacity: 1.0

# Background color of the part.
background: "#101010"

# Font color feeble for the period of the part.
foreground: "white"

# Font household feeble for the period of the part.
font_family: "Segoe UI"

# Font household feeble for the period of the part.
font_size: "13"

# Horizontal and vertical borders in pixels. Borders are for the period of the dimension of the part.
# Witness "Shorthand properties" for more files.
border_width: "0"

# Color of the border.
border_color: "blue"

Shorthand properties

Properties linked to the perimeters of the bar or a part, like padding, margin, and border_width, use a 1-to-4 price syntax. That is a linked convention that’s long-established in CSS.

The utilization of the instance of padding:

  • When one price is specified, it applies the same padding to all four aspects.
  • When two values are specified, the first padding applies to the highest and backside, the second to the left and shapely.
  • When three values are specified, the first padding applies to the highest, the second to the shapely and left, the third to the backside.
  • When four values are specified, the paddings put together to the highest, shapely, backside, and left in that declare (clockwise).

Window suggestions

Instructions would possibly per chance presumably be breeze when a window is initally launched. That is also feeble to keep an app to a particular workspace or to always commence an app in floating mode.

Quite lots of matching requirements would possibly per chance presumably be feeble together to aim a window more precisely. Regex syntax can furthermore be feeble by wrapping the sample with / (eg. /notepad|chrome/)

window_rules:
  # Snarl to breeze. Exhaust `instructions` to specify an array of instructions t

Read More
Piece this on knowasiak.com to examine with of us on this topicRegister on Knowasiak.com now even as you occur to aren’t registered but.

About the author: Charlie
Fill your life with experiences so you always have a great story to tell

Get involved!

Get Connected!
One of the Biggest Social Platform for Entrepreneurs, College Students and all. Come and join our community. Expand your network and get to know new people!

Discussion(s)

No comments yet
Knowasiak We would like to show you notifications so you don't miss chats & status updates.
Dismiss
Allow Notifications