packages feed

ymonad-0.1.0.0: ymonad.cabal

cabal-version: 3.4
name:          ymonad
version:       0.1.0.0
license:       AGPL-3.0-or-later
license-file:  LICENSE
author:        Edward Tjörnhammar
maintainer:    ed@cflags.cc
build-type:    Simple
synopsis:      The Wayland Yutani-Monad
description:
  ymonad is a tiling window manager for Wayland that utilizes river for
  low-level Wayland integration. It is designed to offer an API surface similar
  to xmonad, ensuring familiarity for existing xmonad users and delivering a
  composable, keyboard-driven workflow on Wayland.

data-files:    protocol/river/*.xml
homepage:      https://ymonad.org
bug-reports:   https://codeberg.org/ymonad/ymonad/issues
tested-with:   GHC ==9.10.3
category:      System

source-repository head
  type:     git 
  location: https://codeberg.org/ymonad/ymonad

flag dev
  description: Enable strict warnings (-Werror) for development.
  manual:      True
  default:     False

common warnings
  ghc-options:
    -Wall -Wincomplete-record-updates -Wincomplete-uni-patterns
    -Wmissing-deriving-strategies -Wunused-foralls -Wunused-foralls
    -fprint-explicit-foralls -fprint-explicit-kinds

  if flag(dev)
    ghc-options: -Werror

common shared
  mixins:
    base (Prelude as Brolude),
    base hiding (Prelude),
    relude (Relude as Prelude, Relude.Container.One),
    relude

  hs-source-dirs:     src
  build-depends:
    , base        >=4.14 && <5
    , binary      >=0.8  && <0.9
    , bytestring  >=0.12 && <0.13
    , containers  >=0.7  && <0.8
    , directory   >=1.3  && <1.4
    , effectful   >=2.6  && <2.7
    , filepath    >=1.5  && <1.6
    , hxt         >=9.3  && <9.4
    , network     >=3.2  && <3.3
    , process     >=1.6  && <1.7
    , relude      >=1    && <2
    , stm         >=2.5  && <2.6
    , text        >=2.1  && <2.2
    , time        >=1.12 && <1.13

  default-extensions:
    DerivingStrategies
    GeneralizedNewtypeDeriving
    ImportQualifiedPost
    OverloadedStrings
    StrictData

  default-language:   Haskell2010

library
  import:          warnings, shared
  exposed-modules:
    YMonad
    YMonad.Config
    YMonad.Core
    YMonad.Layout
    YMonad.StackSet

  other-modules:
    Paths_ymonad
    YMonad.Backend.River
    YMonad.Backend.River.Decode
    YMonad.Backend.River.Encode
    YMonad.Backend.River.Interpreter
    YMonad.Backend.River.Protocol
    YMonad.Backend.River.Translate
    YMonad.Backend.River.Types
    YMonad.ControlCommand
    YMonad.Core.Common
    YMonad.Core.Layout
    YMonad.Core.Reduce
    YMonad.Core.StackSet
    YMonad.Core.Types
    YMonad.Keys
    YMonad.Prompt
    YMonad.Prompt.Internal
    YMonad.Protocol.Wayland.Types
    YMonad.Protocol.Wayland.Wire
    YMonad.Protocol.Wayland.Xml
    YMonad.Run

  autogen-modules: Paths_ymonad

executable ymonad
  import:          warnings, shared
  main-is:         Main.hs
  other-modules:
    Paths_ymonad
    YMonad.Launcher

  autogen-modules: Paths_ymonad
  build-depends:   ymonad

executable ymonadctl
  import:          warnings, shared
  main-is:         ControlMain.hs
  other-modules:   Paths_ymonad
  autogen-modules: Paths_ymonad
  build-depends:   ymonad