commit
9179a3a406
@ -129,7 +129,6 @@
|
||||
./programs/sysdig.nix
|
||||
./programs/systemtap.nix
|
||||
./programs/sway.nix
|
||||
./programs/sway-beta.nix
|
||||
./programs/thefuck.nix
|
||||
./programs/tmux.nix
|
||||
./programs/udevil.nix
|
||||
|
@ -1,91 +0,0 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.programs.sway-beta;
|
||||
swayPackage = cfg.package;
|
||||
|
||||
swayWrapped = pkgs.writeShellScriptBin "sway" ''
|
||||
set -o errexit
|
||||
|
||||
if [ ! "$_SWAY_WRAPPER_ALREADY_EXECUTED" ]; then
|
||||
export _SWAY_WRAPPER_ALREADY_EXECUTED=1
|
||||
${cfg.extraSessionCommands}
|
||||
fi
|
||||
|
||||
if [ "$DBUS_SESSION_BUS_ADDRESS" ]; then
|
||||
export DBUS_SESSION_BUS_ADDRESS
|
||||
exec ${swayPackage}/bin/sway "$@"
|
||||
else
|
||||
exec ${pkgs.dbus}/bin/dbus-run-session ${swayPackage}/bin/sway "$@"
|
||||
fi
|
||||
'';
|
||||
swayJoined = pkgs.symlinkJoin {
|
||||
name = "sway-joined";
|
||||
paths = [ swayWrapped swayPackage ];
|
||||
};
|
||||
in {
|
||||
options.programs.sway-beta = {
|
||||
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`.
|
||||
'';
|
||||
};
|
||||
|
||||
extraSessionCommands = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
example = ''
|
||||
export SDL_VIDEODRIVER=wayland
|
||||
# needs qt5.qtwayland in systemPackages
|
||||
export QT_QPA_PLATFORM=wayland
|
||||
export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
|
||||
# Fix for some Java AWT applications (e.g. Android Studio),
|
||||
# use this if they aren't displayed properly:
|
||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||
'';
|
||||
description = ''
|
||||
Shell commands executed just before Sway is started.
|
||||
'';
|
||||
};
|
||||
|
||||
extraPackages = mkOption {
|
||||
type = with types; listOf package;
|
||||
default = with pkgs; [
|
||||
swaylock swayidle
|
||||
xwayland rxvt_unicode dmenu
|
||||
];
|
||||
defaultText = literalExample ''
|
||||
with pkgs; [ swaylock swayidle xwayland rxvt_unicode dmenu ];
|
||||
'';
|
||||
example = literalExample ''
|
||||
with pkgs; [
|
||||
xwayland
|
||||
i3status i3status-rust
|
||||
termite rofi light
|
||||
]
|
||||
'';
|
||||
description = ''
|
||||
Extra packages to be installed system wide.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [ swayJoined ] ++ cfg.extraPackages;
|
||||
security.pam.services.swaylock = {};
|
||||
hardware.opengl.enable = mkDefault true;
|
||||
fonts.enableDefaultFonts = mkDefault true;
|
||||
programs.dconf.enable = mkDefault true;
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ gnidorah primeos colemickens ];
|
||||
}
|
@ -16,9 +16,9 @@ let
|
||||
|
||||
if [ "$DBUS_SESSION_BUS_ADDRESS" ]; then
|
||||
export DBUS_SESSION_BUS_ADDRESS
|
||||
exec sway-setcap "$@"
|
||||
exec ${swayPackage}/bin/sway "$@"
|
||||
else
|
||||
exec ${pkgs.dbus}/bin/dbus-run-session sway-setcap "$@"
|
||||
exec ${pkgs.dbus}/bin/dbus-run-session ${swayPackage}/bin/sway "$@"
|
||||
fi
|
||||
'';
|
||||
swayJoined = pkgs.symlinkJoin {
|
||||
@ -28,22 +28,24 @@ let
|
||||
in {
|
||||
options.programs.sway = {
|
||||
enable = mkEnableOption ''
|
||||
the tiling Wayland compositor Sway. After adding yourself to the "sway"
|
||||
group you can manually launch Sway by executing "sway" from a terminal.
|
||||
If you call "sway" with any parameters the extraSessionCommands won't be
|
||||
executed and Sway won't be launched with dbus-launch'';
|
||||
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;
|
||||
default = "";
|
||||
example = ''
|
||||
# Define a keymap (US QWERTY is the default)
|
||||
export XKB_DEFAULT_LAYOUT=de,us
|
||||
export XKB_DEFAULT_VARIANT=nodeadkeys
|
||||
export XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle,caps:escape
|
||||
# Change the Keyboard repeat delay and rate
|
||||
export WLC_REPEAT_DELAY=660
|
||||
export WLC_REPEAT_RATE=25
|
||||
export SDL_VIDEODRIVER=wayland
|
||||
# needs qt5.qtwayland in systemPackages
|
||||
export QT_QPA_PLATFORM=wayland
|
||||
export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
|
||||
# Fix for some Java AWT applications (e.g. Android Studio),
|
||||
# use this if they aren't displayed properly:
|
||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||
'';
|
||||
description = ''
|
||||
Shell commands executed just before Sway is started.
|
||||
@ -53,14 +55,17 @@ in {
|
||||
extraPackages = mkOption {
|
||||
type = with types; listOf package;
|
||||
default = with pkgs; [
|
||||
i3status xwayland rxvt_unicode dmenu
|
||||
swaylock swayidle
|
||||
xwayland rxvt_unicode dmenu
|
||||
];
|
||||
defaultText = literalExample ''
|
||||
with pkgs; [ i3status xwayland rxvt_unicode dmenu ];
|
||||
with pkgs; [ swaylock swayidle xwayland rxvt_unicode dmenu ];
|
||||
'';
|
||||
example = literalExample ''
|
||||
with pkgs; [
|
||||
i3lock light termite
|
||||
xwayland
|
||||
i3status i3status-rust
|
||||
termite rofi light
|
||||
]
|
||||
'';
|
||||
description = ''
|
||||
@ -70,23 +75,19 @@ in {
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [ swayJoined ] ++ cfg.extraPackages;
|
||||
security.wrappers.sway = {
|
||||
program = "sway-setcap";
|
||||
source = "${swayPackage}/bin/sway";
|
||||
capabilities = "cap_sys_ptrace,cap_sys_tty_config=eip";
|
||||
owner = "root";
|
||||
group = "sway";
|
||||
permissions = "u+rx,g+rx";
|
||||
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/";
|
||||
};
|
||||
};
|
||||
|
||||
users.groups.sway = {};
|
||||
security.pam.services.swaylock = {};
|
||||
|
||||
hardware.opengl.enable = mkDefault true;
|
||||
fonts.enableDefaultFonts = mkDefault true;
|
||||
programs.dconf.enable = mkDefault true;
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ gnidorah primeos ];
|
||||
meta.maintainers = with lib.maintainers; [ gnidorah primeos colemickens ];
|
||||
}
|
||||
|
@ -1,54 +0,0 @@
|
||||
{ stdenv, fetchFromGitHub, fetchpatch
|
||||
, meson, ninja
|
||||
, pkgconfig, scdoc
|
||||
, wayland, libxkbcommon, pcre, json_c, dbus, libevdev
|
||||
, pango, cairo, libinput, libcap, pam, gdk_pixbuf
|
||||
, wlroots, wayland-protocols
|
||||
, buildDocs ? true
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "${pname}-${version}";
|
||||
pname = "sway";
|
||||
version = "1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "swaywm";
|
||||
repo = "sway";
|
||||
rev = version;
|
||||
sha256 = "09cndc2nl39d3l7g5634xp0pxcz60pvc5277mfw89r22mh0j78rx";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix for a compiler warning that causes a build failure
|
||||
# (see https://github.com/swaywm/sway/issues/3862):
|
||||
(fetchpatch {
|
||||
url = "https://github.com/swaywm/sway/commit/bcde298a719f60b9913133dbd2a169dedbc8dd7d.patch";
|
||||
sha256 = "0r583nmqvq43ib93yv6flw8pj833v32lbs0q0xld56s3rnzvvdcp";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkgconfig meson ninja
|
||||
] ++ stdenv.lib.optional buildDocs scdoc;
|
||||
|
||||
buildInputs = [
|
||||
wayland libxkbcommon pcre json_c dbus libevdev
|
||||
pango cairo libinput libcap pam gdk_pixbuf
|
||||
wlroots wayland-protocols
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
mesonFlags = [
|
||||
"-Dxwayland=enabled" "-Dgdk-pixbuf=enabled" "-Dtray=enabled"
|
||||
] ++ stdenv.lib.optional buildDocs "-Dman-pages=enabled";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "i3-compatible window manager for Wayland";
|
||||
homepage = https://swaywm.org;
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ primeos synthetica ];
|
||||
};
|
||||
}
|
@ -1,40 +1,53 @@
|
||||
{ stdenv, fetchFromGitHub
|
||||
, cmake, pkgconfig, asciidoc, libxslt, docbook_xsl
|
||||
, wayland, wlc, libxkbcommon, pcre, json_c, dbus
|
||||
, pango, cairo, libinput, libcap, pam, gdk_pixbuf, libpthreadstubs
|
||||
, libXdmcp
|
||||
, buildDocs ? true
|
||||
{ stdenv, fetchFromGitHub, fetchpatch
|
||||
, meson, ninja
|
||||
, pkgconfig, scdoc
|
||||
, wayland, libxkbcommon, pcre, json_c, dbus, libevdev
|
||||
, pango, cairo, libinput, libcap, pam, gdk_pixbuf
|
||||
, wlroots, wayland-protocols
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "sway-${version}";
|
||||
version = "0.15.2";
|
||||
name = "${pname}-${version}";
|
||||
pname = "sway";
|
||||
version = "1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "swaywm";
|
||||
repo = "sway";
|
||||
rev = version;
|
||||
sha256 = "1p9j5gv85lsgj4z28qja07dqyvqk41w6mlaflvvm9yxafx477g5n";
|
||||
sha256 = "09cndc2nl39d3l7g5634xp0pxcz60pvc5277mfw89r22mh0j78rx";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake pkgconfig
|
||||
] ++ stdenv.lib.optional buildDocs [ asciidoc libxslt docbook_xsl ];
|
||||
patches = [
|
||||
# Fix for a compiler warning that causes a build failure
|
||||
# (see https://github.com/swaywm/sway/issues/3862):
|
||||
(fetchpatch {
|
||||
url = "https://github.com/swaywm/sway/commit/bcde298a719f60b9913133dbd2a169dedbc8dd7d.patch";
|
||||
sha256 = "0r583nmqvq43ib93yv6flw8pj833v32lbs0q0xld56s3rnzvvdcp";
|
||||
})
|
||||
./sway-config-no-nix-store-references.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkgconfig meson ninja scdoc ];
|
||||
|
||||
buildInputs = [
|
||||
wayland wlc libxkbcommon pcre json_c dbus
|
||||
pango cairo libinput libcap pam gdk_pixbuf libpthreadstubs
|
||||
libXdmcp
|
||||
wayland libxkbcommon pcre json_c dbus libevdev
|
||||
pango cairo libinput libcap pam gdk_pixbuf
|
||||
wlroots wayland-protocols
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
cmakeFlags = "-DVERSION=${version} -DLD_LIBRARY_PATH=/run/opengl-driver/lib:/run/opengl-driver-32/lib";
|
||||
mesonFlags = [
|
||||
"-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;
|
||||
maintainers = with maintainers; [ primeos ]; # Trying to keep it up-to-date.
|
||||
maintainers = with maintainers; [ primeos synthetica ];
|
||||
};
|
||||
}
|
||||
|
@ -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/*
|
||||
|
@ -17718,7 +17718,6 @@ in
|
||||
orbment = callPackage ../applications/window-managers/orbment { };
|
||||
|
||||
sway = callPackage ../applications/window-managers/sway { };
|
||||
sway-beta = callPackage ../applications/window-managers/sway/beta.nix { };
|
||||
swayidle = callPackage ../applications/window-managers/sway/idle.nix { };
|
||||
swaylock = callPackage ../applications/window-managers/sway/lock.nix { };
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user