Compare commits

...

10 Commits

Author SHA1 Message Date
LEdoian 7a86293b17 Do not use portals. 5 months ago
LEdoian 91e2bf0efa Add my patch for fixing includes 5 months ago
Andreas Radke 44b72315cd
upgpkg: 1:1.9-4;
- add virtual provider "wayland-compositor" to allow easy replacements
  in use with reetd-regreet (regreet issue #1)
5 months ago
Brett Cornwall 8aa59c86c5
Add dmenu as optdepend 8 months ago
Brett Cornwall 9405c3e6e2
upgpkg: 1:1.9-2 8 months ago
Brett Cornwall 9ef703d58a
Remove PKG_CONFIG_PATH for wlroots 0.16 8 months ago
trillian 87acbcfcc8
Add Inhibit=none to sway-portals.conf
default=gtk is used for org.freedesktop.impl.portal.Inhibit. However,
xdg-desktop-portal-gtk's implementation of this interface tries to use
the DBus interfaces org.gnome.SessionManager and
org.freedesktop.ScreenSaver, neither of which is implemented by Sway.

One way this manifests is that newer versions of Firefox will not
idle-inhibit when playing videos.

Adding org.freedesktop.impl.portal.Inhibit=none to sway-portals.conf
will cause at least Firefox to use wayland's idle-inhibit protocol
instead, which sway does implement.

Fixes #2
8 months ago
Brett Cornwall e93da93ff0
upgpkg: 1:1.9-1
* contrib is removed, see sway-contrib package now
9 months ago
Brett Cornwall 7b79783456
upgpkg: 1:1.8.1-5 11 months ago
Ferdinand Bachmann 3dfb6db712 Fix typo in XDG Desktop Portal configuration file
The ScreenCast portal was misspelled as Screencast, which causes
xdg-desktop-portal to fall back to using the deprecated UseIn key from
the portal definitions, leading to a different portal being used if
multiple portals providing ScreenCast are installed.

Fixes #1


(cherry picked from commit e6a592c9d59ecbec5b5f89be989b8cc6e1072822)
11 months ago

@ -1,6 +1,6 @@
pkgbase = sway
pkgdesc = Tiling Wayland compositor and replacement for the i3 window manager
pkgver = 1.8.1
pkgver = 1.9
pkgrel = 4
epoch = 1
url = https://swaywm.org/
@ -17,40 +17,42 @@ pkgbase = sway
depends = libevdev.so
depends = libinput
depends = libjson-c.so
depends = libpixman-1.so
depends = libudev.so
depends = libwayland-server.so
depends = libwlroots.so=11
depends = libwlroots.so
depends = libxcb
depends = libxkbcommon.so
depends = pango
depends = pcre2
depends = ttf-font
optdepends = bemenu: Wayland-native alternative to dmenu
optdepends = dmenu: Application launcher used in default config
depends = xcb-util-wm
optdepends = dmenu: dmenu_path support (used alongside wmenu in default $menu)
optdepends = foot: Terminal emulator used in the default configuration
optdepends = i3status: Status line generation
optdepends = mako: Lightweight notification daemon
optdepends = polkit: System privilege control. Required if not using seatd service
optdepends = swaybg: Wallpaper tool for sway
optdepends = sway-contrib: Collection of user-contributed scripts for sway
optdepends = swayidle: Idle management daemon
optdepends = swaylock: Screen locker
optdepends = waybar: Highly customizable bar
optdepends = wmenu: Application launcher used in default config
optdepends = xorg-xwayland: X11 support
optdepends = xdg-desktop-portal-gtk: Default xdg-desktop-portal for file picking
optdepends = xdg-desktop-portal-wlr: xdg-desktop-portal backend
provides = wayland-compositor
backup = etc/sway/config
backup = etc/sway/config.d/50-systemd-user.conf
source = https://github.com/swaywm/sway/releases/download/1.8.1/sway-1.8.1.tar.gz
source = https://github.com/swaywm/sway/releases/download/1.8.1/sway-1.8.1.tar.gz.sig
source = https://github.com/swaywm/sway/releases/download/1.9/sway-1.9.tar.gz
source = https://github.com/swaywm/sway/releases/download/1.9/sway-1.9.tar.gz.sig
source = 50-systemd-user.conf
source = sys_nice_user_xkb_configs.patch
source = sway-portals.conf
validpgpkeys = 34FF9526CFEF0E97A340E2E40FDE7BE0E88F5E48
validpgpkeys = 9DDA3B9FA5D58DD5392C78E652CB6609B22DA89A
sha512sums = 1504312a199608532e22336c5031e8f4749f5102ab321d13d97a1f93d49c8ec435e9097af729d8f7dfa81e2e96cee7de91cf4c04b6a7b7151ea740a1e43eb086
sha512sums = 1d2a47bb8b838573a32f3719a7329fd744119c2c7efc5e5a4168b2bacfb09a3901a569177e5e10c129141fafe00e823ab78c04b76b502d23caa7621bbccd5919
sha512sums = SKIP
sha512sums = d5f9aadbb4bbef067c31d4c8c14dad220eb6f3e559e9157e20e1e3d47faf2f77b9a15e52519c3ffc53dc8a5202cb28757b81a4b3b0cc5dd50a4ddc49e03fe06e
sha512sums = 156719e93d0213d1b54ce6e3a9b2dcc9246da5689dd2d3281546f9c042cbc69072f99b087e112fe777dcd786d2b9d1be1e1c9200feddffb5e2d16f8dfb27515d
sha512sums = 091a205bca875b6a78150b5b14ffaca996b7c7c3d6f68910e5891e5409ca070d27b3307e8c4916c1562a998d5bcb94406e961bf376d86e64c8ddf5afe5b41f76
sha512sums = 4f9576b7218aef8152eb60e646985e96b13540b7a4fd34ba68fdc490199cf7a7b46bbee85587e41bffe81fc730222cf408d5712e6251edc85a0a0b0408c1a2df
pkgname = sway

@ -3,7 +3,7 @@
# Contributor: Alexander F. Rødseth <xyproto@archlinux.org>
pkgname=sway
pkgver=1.8.1
pkgver=1.9
epoch=1
pkgrel=4
pkgdesc='Tiling Wayland compositor and replacement for the i3 window manager'
@ -16,31 +16,35 @@ depends=(
'libevdev.so'
'libinput'
'libjson-c.so'
'libpixman-1.so'
'libudev.so'
'libwayland-server.so'
'libwlroots.so=11'
'libwlroots.so'
'libxcb'
'libxkbcommon.so'
'pango'
'pcre2'
'ttf-font'
'xcb-util-wm'
)
makedepends=(meson ninja scdoc setconf wayland-protocols)
provides=('wayland-compositor')
backup=(
etc/sway/config
etc/sway/config.d/50-systemd-user.conf
)
optdepends=(
'bemenu: Wayland-native alternative to dmenu'
'dmenu: Application launcher used in default config'
'dmenu: dmenu_path support (used alongside wmenu in default $menu)'
'foot: Terminal emulator used in the default configuration'
'i3status: Status line generation'
'mako: Lightweight notification daemon'
'polkit: System privilege control. Required if not using seatd service'
'swaybg: Wallpaper tool for sway'
'sway-contrib: Collection of user-contributed scripts for sway'
'swayidle: Idle management daemon'
'swaylock: Screen locker'
'waybar: Highly customizable bar'
'wmenu: Application launcher used in default config'
'xorg-xwayland: X11 support'
'xdg-desktop-portal-gtk: Default xdg-desktop-portal for file picking'
'xdg-desktop-portal-wlr: xdg-desktop-portal backend'
@ -48,35 +52,26 @@ optdepends=(
source=("https://github.com/swaywm/sway/releases/download/$pkgver/sway-$pkgver.tar.gz"
"https://github.com/swaywm/sway/releases/download/$pkgver/sway-$pkgver.tar.gz.sig"
"50-systemd-user.conf"
"sys_nice_user_xkb_configs.patch"
"sway-portals.conf")
"sway-portals.conf"
"fix-includes.patch"
)
install=sway.install
sha512sums=('1504312a199608532e22336c5031e8f4749f5102ab321d13d97a1f93d49c8ec435e9097af729d8f7dfa81e2e96cee7de91cf4c04b6a7b7151ea740a1e43eb086'
sha512sums=('1d2a47bb8b838573a32f3719a7329fd744119c2c7efc5e5a4168b2bacfb09a3901a569177e5e10c129141fafe00e823ab78c04b76b502d23caa7621bbccd5919'
'SKIP'
'd5f9aadbb4bbef067c31d4c8c14dad220eb6f3e559e9157e20e1e3d47faf2f77b9a15e52519c3ffc53dc8a5202cb28757b81a4b3b0cc5dd50a4ddc49e03fe06e'
'156719e93d0213d1b54ce6e3a9b2dcc9246da5689dd2d3281546f9c042cbc69072f99b087e112fe777dcd786d2b9d1be1e1c9200feddffb5e2d16f8dfb27515d'
'091a205bca875b6a78150b5b14ffaca996b7c7c3d6f68910e5891e5409ca070d27b3307e8c4916c1562a998d5bcb94406e961bf376d86e64c8ddf5afe5b41f76')
'e4695434af029a445ed7ab43de68eb76e7df9b9f61c37ca95b4e695ef7a3fc54ac941e1b2b6143bfab8a0f1cef50f6884d8df61d10dd7cf44ae8a91742d82f0a'
'9ed8957779922cdc99869ea9ce34821c1eb1cac20e3a8cc52369fbbf3237f6a8e754ccdd445f48624c23d7bf599538083405cec599787addc423e47d28dcf6ca')
validpgpkeys=('34FF9526CFEF0E97A340E2E40FDE7BE0E88F5E48' # Simon Ser
'9DDA3B9FA5D58DD5392C78E652CB6609B22DA89A') # Drew DeVault
prepare() {
cd "$pkgname-$pkgver"
# Enable user xkb configs with cap_sys_nice - otherwise user xkb configs will
# break.
#
# This patch was originally at
# https://github.com/swaywm/sway/commit/2f2cdd60def006f6d3cbe318f9edd7d68fcb239a.patch
# but failed to apply correctly to meson.build. We don't need that part of
# the patch so just drop it.
patch -p1 < ../sys_nice_user_xkb_configs.patch
# Set the version information to 'Arch Linux' instead of 'makepkg'
sed -i "s/branch \\\'@1@\\\'/Arch Linux/g" meson.build
patch -p1 < ../fix-includes.patch
}
build() {
export PKG_CONFIG_PATH='/usr/lib/wlroots0.16/pkgconfig'
mkdir -p build
arch-meson build "$pkgname-$pkgver" -D sd-bus-provider=libsystemd -D werror=false -D b_ndebug=true
ninja -C build
@ -87,11 +82,6 @@ package() {
install -Dm644 "$pkgname-$pkgver/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
install -Dm644 50-systemd-user.conf -t "$pkgdir/etc/sway/config.d/"
install -Dm644 sway-portals.conf "$pkgdir/usr/share/xdg-desktop-portal/sway-portals.conf"
for util in autoname-workspaces.py inactive-windows-transparency.py grimshot; do
install -Dm755 "$pkgname-$pkgver/contrib/$util" -t \
"$pkgdir/usr/share/$pkgname/scripts"
done
}
# vim: ts=2 sw=2 et

@ -0,0 +1,45 @@
diff --git a/sway/config.c b/sway/config.c
index f9131e0f..a7784f13 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -593,28 +593,12 @@ bool load_main_config(const char *file, bool is_active, bool validating) {
return success;
}
-static bool load_include_config(const char *path, const char *parent_dir,
- struct sway_config *config, struct swaynag_instance *swaynag) {
+static bool load_include_config(const char *path, struct sway_config *config,
+ struct swaynag_instance *swaynag) {
// save parent config
const char *parent_config = config->current_config_path;
- char *full_path;
- int len = strlen(path);
- if (len >= 1 && path[0] != '/') {
- len = len + strlen(parent_dir) + 2;
- full_path = malloc(len * sizeof(char));
- if (!full_path) {
- sway_log(SWAY_ERROR,
- "Unable to allocate full path to included config");
- return false;
- }
- snprintf(full_path, len, "%s/%s", parent_dir, path);
- } else {
- full_path = strdup(path);
- }
-
- char *real_path = realpath(full_path, NULL);
- free(full_path);
+ char *real_path = realpath(path, NULL);
if (real_path == NULL) {
sway_log(SWAY_DEBUG, "%s not found.", path);
@@ -666,7 +650,7 @@ void load_include_configs(const char *path, struct sway_config *config,
char **w = p.we_wordv;
size_t i;
for (i = 0; i < p.we_wordc; ++i) {
- load_include_config(w[i], parent_dir, config, swaynag);
+ load_include_config(w[i], config, swaynag);
}
wordfree(&p);
}

@ -1,4 +1,2 @@
[preferred]
default=gtk
org.freedesktop.impl.portal.Screencast=wlr
org.freedesktop.impl.portal.Screenshot=wlr
default=none

@ -1,27 +0,0 @@
diff --git a/sway/config.c b/sway/config.c
index 1f2bb68604..f5efa98a8e 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -37,7 +37,7 @@ struct sway_config *config = NULL;
static struct xkb_state *keysym_translation_state_create(
struct xkb_rule_names rules) {
- struct xkb_context *context = xkb_context_new(XKB_CONTEXT_NO_FLAGS);
+ struct xkb_context *context = xkb_context_new(XKB_CONTEXT_NO_SECURE_GETENV);
struct xkb_keymap *xkb_keymap = xkb_keymap_new_from_names(
context,
&rules,
diff --git a/sway/input/keyboard.c b/sway/input/keyboard.c
index 3f4a7289b9..45a588ecbf 100644
--- a/sway/input/keyboard.c
+++ b/sway/input/keyboard.c
@@ -754,7 +754,7 @@ static void handle_xkb_context_log(struct xkb_context *context,
struct xkb_keymap *sway_keyboard_compile_keymap(struct input_config *ic,
char **error) {
- struct xkb_context *context = xkb_context_new(XKB_CONTEXT_NO_FLAGS);
+ struct xkb_context *context = xkb_context_new(XKB_CONTEXT_NO_SECURE_GETENV);
if (!sway_assert(context, "cannot create XKB context")) {
return NULL;
}
Loading…
Cancel
Save