thomasadam/cow
3
12
Fork
You've already forked cow
4
4 Home
okraits edited this page 2026年07月07日 11:12:52 +02:00

Welcome to CoW -- the Compositor on Wayland (Mooo!)

This page will help get you going with using CoW.

First Time Usage

This assumes you've already installed CoW -- Instructions are here....

Because CoW has no official release everything is still somewhat cobbled together. That being said, there's really only a few steps that you need to do.

  1. Customise the default configuration file. This is found in ./config/cow.conf in the repo -- this file should be copied to ~/.config/cow or $XDG_HOME -- hence: mkdir -p ~/.config/cow/ first.
  2. Configuring River: Because there are certain actions which need to be started with the compositor, before starting CoW, there is a file which bootstraps this, see: ./config/river/init. This should be copied to ~/.config/river (create as necessary). What's in there shows how to ensure screen sharing can be enabled, as well as starting CoW.

Configuring Peripherals (Screens, Mouse, Keyboard Layout, etc.)

CoW doesn't provide any mechanism to configure devices directly. That's a property of River -- in that River exposes input protocols to allow external programs to configure these things such that river can be told about them.

For simple things like output resolution, ordering, etc., wlr-randr works well. Since this should be configured after CoW has started, the file ~/.config/cow/after-start.sh -- a shell script -- can be used.

For other more complex things like keyboard layouts, pointer acceleration, etc., the best third-party program to use is channel.

Using CoW (via moocow)

At this point, man cow albeit crudely, lists the options you can configure and how -- but the config file is still the most up-to-date example of how to apply some of these configuration options.

To get a "live" config, the moocow command can be used to send commands directly to CoW.

Installing CoW with the nix package manager

If your linux distro doesn't provide the dependencies needed by CoW, you can try to install CoW with the help of the nix package manager.

  1. Make sure that nix is installed.
  2. Clone the CoW repo: git clone https://codeberg.org/thomasadam/cow.git && cd cow
  3. Build and install CoW: nix develop --extra-experimental-features 'nix-command flakes' --command bash -c "meson setup build && meson compile -C build && meson install -C build"
  4. Create the configuration for CoW, River and Waybar as described above.
  5. Install River and Waybar: nix-env -i river waybar
  6. You might need nixGL to be able to run River and CoW: https://github.com/nix-community/nixGL
  7. Run CoW through River, possibly with nixGL: nixGL river

Development

See: Development