package oxbow

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file cmd_output_focus.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
open! Oxbow_core
open! Oxbow_ipc

let dir_command dir =
  let open Cmdliner.Term.Syntax in
  let+ warp = Ctl_cli.warp_flag in
  let open Direction in
  match dir with
  | Logical dir -> Command.Output (Focus_logical { dir; warp })
  | Spatial dir -> Command.Output (Focus_spatial { dir; warp })
;;

let dir_leaf (name, dir) =
  Ctl_cli.cmd_pair ~name ~doc:(Printf.sprintf "Focus the %s output" name)
  @@ dir_command dir
;;

let name = "focus"
let doc = "Focus an output by direction or match pattern"

let cmd, bind_cmd =
  Ctl_cli.group_pair ~name ~doc
  @@ [ Cmd_output_focus_match.(cmd, bind_cmd) ]
  @ List.map dir_leaf Ctl_cli.direction_targets
;;