nixos/sway: Improve the module and adapt it to NixOS

This commit contains the following changes:
- nixos/sway: Remove the beta references
- sway: Drop buildDocs
- nixos/sway: Improve the documentation
- sway,nixos/sway: Adapt Sway to NixOS
  - Copy the default configuration file to /etc/sway/config (Sway will
    still load the identical file from the Nix store but this makes it
    easier to copy the default configuration file).
  - This will also remove all references to the Nix store from the
    default configuration file as they will eventually be garbage
    collected which is a problem if the user copies it.
  - I've also decided to drop the default wallpaper (alternatively we
    could copy it to a fixed location).
- nixos/sway: Drop the package option
This commit is contained in:
Michael Weiss 2019-03-11 17:32:38 +01:00
parent 45004c6f63
commit 578fe3f5a0
No known key found for this signature in database
GPG key ID: 5BE487C4D4771D83
3 changed files with 44 additions and 22 deletions

View file

@ -3,8 +3,8 @@
with lib;
let
cfg = config.programs.sway-beta;
swayPackage = cfg.package;
cfg = config.programs.sway;
swayPackage = pkgs.sway;
swayWrapped = pkgs.writeShellScriptBin "sway" ''
set -o errexit
@ -26,19 +26,14 @@ let
paths = [ swayWrapped swayPackage ];
};
in {
options.programs.sway-beta = {
options.programs.sway = {
enable = mkEnableOption ''
Sway, the i3-compatible tiling Wayland compositor. This module will be removed after the final release of Sway 1.0
'';
package = mkOption {
type = types.package;
default = pkgs.sway-beta;
defaultText = "pkgs.sway-beta";
description = ''
The package to be used for `sway`.
'';
};
Sway, the i3-compatible tiling Wayland compositor. You can manually launch
Sway by executing "exec sway" on a TTY. Copy /etc/sway/config to
~/.config/sway/config to modify the default configuration. See
https://github.com/swaywm/sway/wiki and "man 5 sway" for more information.
Please have a look at the "extraSessionCommands" example for running
programs natively under Wayland'';
extraSessionCommands = mkOption {
type = types.lines;
@ -80,7 +75,14 @@ in {
};
config = mkIf cfg.enable {
environment.systemPackages = [ swayJoined ] ++ cfg.extraPackages;
environment = {
systemPackages = [ swayJoined ] ++ cfg.extraPackages;
etc = {
"sway/config".source = "${swayPackage}/etc/sway/config";
#"sway/security.d".source = "${swayPackage}/etc/sway/security.d/";
#"sway/config.d".source = "${swayPackage}/etc/sway/config.d/";
};
};
security.pam.services.swaylock = {};
hardware.opengl.enable = mkDefault true;
fonts.enableDefaultFonts = mkDefault true;

View file

@ -4,7 +4,6 @@
, wayland, libxkbcommon, pcre, json_c, dbus, libevdev
, pango, cairo, libinput, libcap, pam, gdk_pixbuf
, wlroots, wayland-protocols
, buildDocs ? true
}:
stdenv.mkDerivation rec {
@ -26,11 +25,10 @@ stdenv.mkDerivation rec {
url = "https://github.com/swaywm/sway/commit/bcde298a719f60b9913133dbd2a169dedbc8dd7d.patch";
sha256 = "0r583nmqvq43ib93yv6flw8pj833v32lbs0q0xld56s3rnzvvdcp";
})
./sway-config-no-nix-store-references.patch
];
nativeBuildInputs = [
pkgconfig meson ninja
] ++ stdenv.lib.optional buildDocs scdoc;
nativeBuildInputs = [ pkgconfig meson ninja scdoc ];
buildInputs = [
wayland libxkbcommon pcre json_c dbus libevdev
@ -41,11 +39,12 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
mesonFlags = [
"-Dxwayland=enabled" "-Dgdk-pixbuf=enabled" "-Dtray=enabled"
] ++ stdenv.lib.optional buildDocs "-Dman-pages=enabled";
"-Ddefault-wallpaper=false" "-Dxwayland=enabled" "-Dgdk-pixbuf=enabled"
"-Dtray=enabled" "-Dman-pages=enabled"
];
meta = with stdenv.lib; {
description = "i3-compatible window manager for Wayland";
description = "i3-compatible tiling Wayland compositor";
homepage = https://swaywm.org;
license = licenses.mit;
platforms = platforms.linux;

View file

@ -0,0 +1,21 @@
diff --git a/config.in b/config.in
--- a/config.in
+++ b/config.in
@@ -21,8 +21,8 @@ set $menu dmenu_path | dmenu | xargs swaymsg exec
### Output configuration
#
-# Default wallpaper (more resolutions are available in @datadir@/backgrounds/sway/)
-output * bg @datadir@/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
+# Default wallpaper
+#output * bg ~/.config/sway/backgrounds/Sway_Wallpaper_Blue_1920x1080.png fill
#
# Example configuration:
#
@@ -213,5 +213,3 @@ bar {
inactive_workspace #32323200 #32323200 #5c5c5c
}
}
-
-include @sysconfdir@/sway/config.d/*