about summary refs log tree commit diff
path: root/pkgs/tools/misc/kanshi/default.nix
blob: 8909a0c0eb5aeba514d4a543ad305b249d54c34c (plain) (blame)
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
{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, udev }:
rustPlatform.buildRustPackage 
{
  pname = "kanshi-unstable";
  version = "2019-02-02";

  src = fetchFromGitHub {
    owner = "emersion";
    repo = "kanshi";
    rev = "970267e400c21a6bb51a1c80a0aadfd1e6660a7b";
    sha256 = "10lfdan86bmwazpma6ixnv46z9cnf879gxln8gx87v7a1x3ss0bh";
  };

  buildInputs = [ pkgconfig udev ];

  cargoSha256 = "sha256:0lf1zfmq9ypxk86ma0n4nczbklmjs631wdzfx4wd3cvhghyr8nkq";

  meta = {
    description = "Dynamic display configuration tool";
    longDescription = 
    ''
    Kanshi uses a configuration file and a list of available displays to choose 
    the right settings for each display. It's useful if your window manager 
    doesn't support multiple display configurations (e.g. i3/Sway).
    
    For now, it only supports:
    - sysfs as backend
    - udev as notifier (optional)
    - Configuration file
      - GNOME (~/.config/monitors.xml)
      - Kanshi (see below)
    - Sway as frontend
    '';
    homepage = "https://github.com/emersion/kanshi";
    downloadPage = "https://github.com/emersion/kanshi";
    license = stdenv.lib.licenses.mit;
    maintainers = [ stdenv.lib.maintainers.balsoft ];
    platforms = stdenv.lib.platforms.linux;
  };
}