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

doc/src/oxbow.core/window_match.ml.html

Source file window_match.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
open! Ppx_yojson_conv_lib.Yojson_conv

module Matcher = struct
  type t =
    title:string option
    -> app_id:string option
    -> identifier:string option
    -> labels:string list
    -> bool
end

type t =
  { pattern : Window_pattern.t
  ; invert : bool
  ; scope : Scope.t
  }
[@@deriving yojson]

let to_string m =
  let pattern = Window_pattern.to_string m.pattern in
  let invert = if m.invert then Some "invert" else None in
  let scope =
    match m.scope with
    | All -> None
    | Focused -> Some "focused"
    | Output name -> Some (Printf.sprintf "output %s" name)
  in
  let tags = List.filter_map Fun.id [ invert; scope ] in
  match tags with
  | [] -> pattern
  | _ -> String.concat ", " tags |> Printf.sprintf "%s [%s]" pattern
;;