Hello!
I’m excited to share a project I’ve been working on for the past few months, oxbow.
It’s heavily inspired by my time using dwm, with some ideas taken from other window managers like Hyprland and Niri. Features include:
- Per-tag configuration (layout, mfact, gaps, etc.)
- Tiling layouts including even, diminish, dwindle, spiral, deck, and monocle
- Niri-ish scrolling in four orientations
- “alt-tab”-like overview
- Pure floating layout; oxbow respects native drag and resize requests on windows, making floating mode feel more natural
- Popular dwm patches such as scratchpads, sticky windows, window swallowing, and gaps
- Regex-based window rules to configure initial tags, output, size, position, and more
- IPC control via
oxctlto configure all of the above, query state, and subscribe to events
oxbow is packaged in opam, but you can also install it with Nix/NixOS.
You may notice this is my first post; that is because this project is my first venture into OCaml! I wrote oxbow to be the window manager I’ve always wanted, but also to learn OCaml. I’ve really enjoyed the experience, and I plan to use OCaml in a few other projects. I’ve done my best to take advantage of OCaml’s strengths, but I’m fully open to any suggestions/PRs/etc. to improve the internals or any other aspect of oxbow.
Thank you for having me!
Project page: https://github.com/3L0C/oxbow