Skip to content

Releases: nferhat/fht-compositor

v0.1.1

11 Jul 11:03
79167f7
Compare
Choose a tag to compare

fht-compositor is a Wayland compositor that aims to have simple window management inspired by X11 window managers, mainly DWM and AwesomeWM.

Not a lot of groundbreaking stuff, but still some improvements over the previous release.

fht-share-picker moved out

Due to dependency conflicts (between egui and iced dependencies), fht-share-picker moved out to a different repository, and with it got a rewrite! I personally really like it, since it describes what output you are going to use better.

image

xdg-activation support

I actually forgot to implement this protocol, and left a TODO message in the implementation. Well, now its working! Example here is with pcmanfm focusing its child window.

xdg-activation-preview.mp4

Interactive window resizing

For quite some time, we supported dragging a tile out of its usual area in order to swap it with another one, in this release, I am really happy to announce that we now have the resizing of tiles! This was quite a tricky to implement, as we are in a tiled environment, meaning that every other window that is managed by the workspace layout needs to adapt.

Another challenge is to actually make resizing any tile, in any direction, be sensible and logical for the user. A tile can only grow its own stack (in our case, we have the master and slave stack(s)). This is possibly by tweaking both the master width factor (commonly known as mwfact) and the cfact (a proportion of how much the tile should take space relative to its siblings)

On the actual implementation, I wrote custom code that adapts the mouse delta position to make this happen, but it was 100% worth it! Take a look at the result:

interactive-resize.mp4

Other fixes and improvements

  • New insert_window_strategy option, to decide where should we insert a window inside a workspace 5a462e3
  • New focused_window_opacity and normal_window_opacity options. 2d386b9
  • Various fixes to focusing, on cases where a layer-shell/window dies 0c27ad7, 26c638d
  • Fix parent workspace detection db206cf
  • Re-implement fullscreening 651d27a
  • Re-implement some xdg-shell requests for maximizing/fullscreening ac6279b
  • Egui can now get the GL_MAX_TEXTURE_SIZE value from the renderer b151c01
  • Remove egui's ability to get keyboard input, as this could lock up input 186456e

0.1.0

29 May 07:33
c78dbfb
Compare
Choose a tag to compare

The first official release of fht-compositor, finally!

fht-compositor is a Wayland compositor built using the rust language, with a window management system inspired by DWM and AwesomeWM; in other words, we have static workspaces managed in a single set. Each output has its own workspace set. Each workspace tiles dynamically its windows based on a layout, and some parameters like the size percentage of the master width area, and the number of master clients

example of a tiled layout using the Tile layout

Even though this is the first release, we got quite a good part of the basics down

  • Can be spawned nested into another compositor (using an X11 window), or from a TTY
  • Core protocols supported + Additional wp/wlr ones:
    - wlr_screencopy for legacy screen recording/screen shotting clients
    - xdg_decoration to force clients to use SSD/CSD
    - wlr_layer_shell for your beautiful panels and overlays
    - Very preliminary wp_fractional_scale support
    - wp_security_context + wlr_data_control
  • In addition to these protocols, we have some nice-to-have features
    - Output recording support via the XDG screen cast portal (version 5 is supported, restore tokens soon)
    - Customizable window borders, with rounded corner support, and gradient borders!
    - Window rules to organize your workspace(s)
    - Other debugging features: debug overlay, damage drawing, etc.

With this said, I'd like to thank the following projects for code and helping me figure out how to handle Wayland stuff properly: