package oxbow

  1. Overview
  2. Docs
Dynamic window manager for the river Wayland compositor

Install

dune-project
 Dependency

Authors

Maintainers

Sources

v0.1.0.tar.gz
md5=a637acaa0e19046cd65fff733874eb97
sha512=76230cbecd7510de7a05b5d1f335915ef7b6c4aa557d8dbfd23591606618d2cfa25082d17b93f2f4b53a118d1cbf6a80e4ad51cf0f099b4921fb83d6df0c9801

Description

oxbow is a window manager for river 0.4.6+, written in OCaml. It speaks the river-window-management-v1 protocol and manages windows with built-in dynamic layouts.

The package installs two executables:

  • oxbow: the window manager
  • oxctl: a CLI client for commands, queries, and event subscriptions

Configuration is an init script of oxctl commands.

Added to opam-repository:

README

oxbow logo oxbow

demo

oxbow is a dynamic tiling window manager for the Wayland compositor River, written in OCaml. Inspired by dwm and river-classic, oxbow aims to manage your windows predictably. Configure it with a simple init script, and control it with oxctl from your own scripts.

Features

  • Tags: Group windows with tag sets, per-tag layouts, and operations on tags.
  • Layouts: dwm-like tiling, niri-ish scrolling in four orientations, "alt-tab" overview, and pure floating.
  • Windows: Scratchpads, sticky windows, user labels, window swallowing, and drag with retile.
  • Rules: Regex window matching to configure initial tags, output, floating, size, and presentation.
  • IPC: Control windows, configure tags, query objects, and subscribe to events.

Documentation

Full documentation is available at oxbow-wm.readthedocs.io.

Installation

oxbow requires river 0.4.6 or later.

Install with opam:

opam pin add oxbow https://github.com/3L0C/oxbow.git

Or with Nix:

nix profile install github:3L0C/oxbow

See the installation guide for build dependencies, NixOS and Home Manager configuration, and shell completion.

Contributing

Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request.

AI disclosure

Claude Code was used in the following ways:

  • design discussions
  • debugging

I've written and will continue to write the code.

Dependencies (17)

  1. yojson >= "3.0"
  2. xkbcommon >= "0.1"
  3. wayland >= "2.3"
  4. re >= "1.12"
  5. ppx_yojson_conv_lib >= "0.17"
  6. ppx_yojson_conv >= "0.17"
  7. logs >= "0.10"
  8. landmarks-ppx >= "1.7"
  9. landmarks >= "1.7"
  10. fmt >= "0.11"
  11. eio_posix >= "1.3"
  12. eio_main >= "1.2"
  13. eio >= "1.3"
  14. cmdliner >= "2.1"
  15. dune-build-info >= "3.22"
  16. ocaml >= "5.4"
  17. dune >= "3.22"

Dev Dependencies (2)

  1. odoc with-doc
  2. cstruct >= "6.2" & with-test

Used by

None

Conflicts

None