package oxbow
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
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_pattern.ml.html
Source file window_pattern.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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49open! Ppx_yojson_conv_lib.Yojson_conv type t = { title : string option [@yojson.option] ; app_id : string option [@yojson.option] ; identifier : string option [@yojson.option] ; label : string option [@yojson.option] ; case : Pattern.Case.t } [@@deriving yojson] let equal (a : t) (b : t) = a = b let is_empty = function | { title = None; app_id = None; identifier = None; label = None; case = _ } -> true | _ -> false ;; let to_string p = let field_value name value = match value with | None -> None | Some s -> Some (Printf.sprintf "%s=%s" name s) in let parts = List.filter_map Fun.id [ field_value "title" p.title ; field_value "app-id" p.app_id ; field_value "identifier" p.identifier ; field_value "label" p.label ] in match p.case with | Sensitive -> String.concat " " parts | Insensitive -> String.concat " " parts |> Printf.sprintf "%s (insensitive)" ;; let compile m = Pattern.compile_specs ~case:m.case [ (m.title, fun (t, _, _, _) -> Option.to_list t) ; (m.app_id, fun (_, a, _, _) -> Option.to_list a) ; (m.identifier, fun (_, _, i, _) -> Option.to_list i) ; (m.label, fun (_, _, _, ls) -> ls) ] |> Result.map (fun m ~title ~app_id ~identifier ~labels -> m (title, app_id, identifier, labels)) ;;
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>