Package Details: kanshi-git 1.5.1.r6.g0602cd3-1

Git Clone URL: (read-only, click to copy)
Package Base: kanshi-git
Description: Dynamic output configuration for Wayland WMs
Upstream URL:
Keywords: sway wayland
Licenses: MIT
Conflicts: kanshi
Provides: kanshi
Submitter: lowercase
Maintainer: pychuang
Last Packager: pychuang
Votes: 9
Popularity: 0.007709
First Submitted: 2019-03-19 14:21 (UTC)
Last Updated: 2024-02-04 22:37 (UTC)

Latest Comments

1 2 3 Next › Last »

pychuang commented on 2024-02-04 22:44 (UTC)

Thanks @vikbar54.9 and @yrlf. Let me know if there's any issues!

yrlf commented on 2024-02-04 21:54 (UTC) (edited on 2024-02-04 21:56 (UTC) by yrlf)

As @vikbar54.9 said, please add libscfg-git to depends.

Also, the versioning scheme in this package does not fit the Arch Linux VCS package guidelines. The version should usually contain the latest upstream version before the disambiguation tag with revision count and git hash, to be able to compare upstream versions and development versions easily.

Additionally, the provides entry can be set to also include the version.

Here is a patch that fixes all three issues in the PKGBUILD:

diff --git a/PKGBUILD b/PKGBUILD
index 2fcd064..aee8401 100644
@@ -1,16 +1,16 @@
 # Maintainer: Pi-Yueh Chuang <>
 # Contributor: Ben Widawsky <>
 pkgdesc="Dynamic output configuration for Wayland WMs"
-depends=('wayland' 'libvarlink')
+depends=('wayland' 'libvarlink' 'libscfg-git')
 makedepends=('git' 'meson' 'ninja' 'scdoc' 'wlroots>=0.7')
@@ -25,7 +25,7 @@ md5sums=('SKIP' '204747a0d0e0dd77d0e4f88f229c9c28')

 pkgver() {
     cd "$srcdir/${pkgname%-git}"
-    printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+    git describe --long --tags --abbrev=7 | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'

 build() {

vikbar54.9 commented on 2024-02-03 19:23 (UTC)

It requires libscfg now, otherwise it errors out on not finding scfg runtime dependecy.

pychuang commented on 2021-02-24 18:58 (UTC) (edited on 2021-02-24 19:00 (UTC) by pychuang)

This package comes with a systemd unit file that is not supported by the upstream. To enable the unit, run $ systemctl --user enable kanshi.service. Some notes:

  1. This unit won't automatically start unless has already started. Though on many users' systems, always starts under Sway, Sway actually does not activate by default. The may be activated silently by some other applications/units or by explicit exec command in the Sway config.
  2. Many other X11 window managers or Wayland compositors also activate This says, if you sometimes use other WM, like gnome or kde, kanshi.service will also automatically start (and then fail because kanshi is a Sway-only application).

The best practice is to create your own, and modify (or create your own) the kanshi.service to be wanted by See the Wiki at Sway's GitHub and also ArchWiki:

gmy commented on 2021-02-22 23:43 (UTC)

Despite that service might not fit into each and every setup, I was pretty happy to find service units to be included in some other packages while switching to systemd as the only apps startup manager for Sway. Current setup has been my only daily driver for a few weeks already, so I thought, that someone else could also benefit from having similar service units added to the packages, which don't yet provide one.

For example, gammastep, being a community package and wlroots-specific, does include a user service and uses

~ $ yay -Q | grep gammastep
gammastep 2.0.7-1
~ $ yay -Ql gammastep | grep service
gammastep /usr/lib/systemd/user/gammastep-indicator.service
gammastep /usr/lib/systemd/user/gammastep.service
~ $ cat /usr/lib/systemd/user/gammastep.service | head -4
Description=Display colour temperature adjustment

Same applies to flashfocus-git. Mako also includes a service, althought it's service is not attached to any target.

pychuang commented on 2021-02-19 15:24 (UTC)

@lowercase I would suggest putting the kanshi service unit under /usr/lib/systemd/user or /etc/systemd/user because is a user-space unit (launched with --user flag). And should be something depending on

@gmy I'm not sure how many Wayland WMs support wlr-output-management, but at least kanshi does not work with gnome's Wayland session. Also, runs even under X11 WMs, i.e., not just Wayland WMs use I think that's probably why Arch's official kanshi package and other Sway-specific utilities (like swayidle) do not include a service file.

I'm thinking about including either @lowercase's or @gmy's systemd unit in this package and adding documentation in wiki or somewhere to let users know about the caveats.

gmy commented on 2021-02-19 13:57 (UTC) (edited on 2021-02-19 14:01 (UTC) by gmy)

@pychuang, @lowercase, but how kanshi is related specifically to sway? Shouldn't it support any wayland WM?

kanshi can be used on Wayland compositors supporting the wlr-output-management protocol.

Also, isn't it up to user to deside whether enable systemd service or not? And, isn't it disabled by default?

AFAIK, even if service file gets installed with the package, user won't see any differences, until he/she enables it. Also, user is free to override it or change.

lowercase commented on 2021-02-19 13:54 (UTC)


just looked around and there is indeed an aur package that implements the necessary service unit. Here is my proposal:

lowercase commented on 2021-02-19 13:41 (UTC)


sorry for the late reply. As pychuang indicated it is tricky to just pump a systemd-unit that would only work in a specific setting. A would indeed make sense, but that should be implemented in the respective sway packages first.