Merge branch 'master' into workspace-movement
This commit is contained in:
commit
59c2b7a884
29
.github/workflows/arch-build-git.yml
vendored
29
.github/workflows/arch-build-git.yml
vendored
|
@ -1,29 +0,0 @@
|
||||||
name: Check git build for Arch.
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ main ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ main ]
|
|
||||||
|
|
||||||
# Allows you to run this workflow manually from the Actions tab
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
arch-build-git:
|
|
||||||
container: archlinux:latest
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
# It is necessary to checkout into sub-directory, because of some weird ownership problems cause by using containers
|
|
||||||
- name: Check out sources
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
path: swayfx
|
|
||||||
|
|
||||||
- name: Git makepkg build and check
|
|
||||||
id: makepkg
|
|
||||||
uses: edlanglois/pkgbuild-action@v1
|
|
||||||
with:
|
|
||||||
pkgdir: ./swayfx/build-scripts/aur-git
|
|
29
.github/workflows/arch-build-stable.yml
vendored
29
.github/workflows/arch-build-stable.yml
vendored
|
@ -1,29 +0,0 @@
|
||||||
name: Check stable build for Arch.
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ main ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ main ]
|
|
||||||
|
|
||||||
# Allows you to run this workflow manually from the Actions tab
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
arch-build-stable:
|
|
||||||
container: archlinux:latest
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
# It is necessary to checkout into sub-directory, because of some weird ownership problems cause by using containers
|
|
||||||
- name: Check out sources
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
path: swayfx
|
|
||||||
|
|
||||||
- name: Stable makepkg build and check
|
|
||||||
id: makepkg
|
|
||||||
uses: edlanglois/pkgbuild-action@v1
|
|
||||||
with:
|
|
||||||
pkgdir: ./swayfx/build-scripts/aur
|
|
51
.github/workflows/fedora-build.yml
vendored
51
.github/workflows/fedora-build.yml
vendored
|
@ -1,51 +0,0 @@
|
||||||
name: Check build for Fedora.
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ main ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ main ]
|
|
||||||
|
|
||||||
# Allows you to run this workflow manually from the Actions tab
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
fedora-build:
|
|
||||||
container: fedora:latest
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Install tooling for source RPM build
|
|
||||||
run: |
|
|
||||||
dnf -y install @development-tools @rpm-development-tools
|
|
||||||
dnf -y install rpkg git
|
|
||||||
dnf -y install 'dnf-command(builddep)'
|
|
||||||
|
|
||||||
# It is necessary to checkout into sub-directory, because of some weird ownership problems cause by using containers
|
|
||||||
- name: Check out sources
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
path: swayfx
|
|
||||||
|
|
||||||
- name: Copy spec into root dir
|
|
||||||
run: |
|
|
||||||
cd swayfx
|
|
||||||
cp ./build-scripts/swayfx.rpkg.spec ./
|
|
||||||
|
|
||||||
- name: Generate spec
|
|
||||||
run: |
|
|
||||||
cd swayfx
|
|
||||||
mkdir specs
|
|
||||||
rpkg spec --source --outdir specs
|
|
||||||
|
|
||||||
- name: Install build dependencies
|
|
||||||
run: |
|
|
||||||
cd swayfx
|
|
||||||
dnf -y builddep ./specs/swayfx.rpkg.spec
|
|
||||||
|
|
||||||
- name: Local build
|
|
||||||
run: |
|
|
||||||
cd swayfx
|
|
||||||
mkdir -p out
|
|
||||||
rpkg local --out `pwd`/out
|
|
86
.github/workflows/fedora-copr.yml
vendored
86
.github/workflows/fedora-copr.yml
vendored
|
@ -1,86 +0,0 @@
|
||||||
name: Package for Fedora Copr repo
|
|
||||||
|
|
||||||
on:
|
|
||||||
release:
|
|
||||||
types: [published]
|
|
||||||
|
|
||||||
# Allows you to run this workflow manually from the Actions tab
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
fedora-copr:
|
|
||||||
container: fedora:latest
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Install API token for copr-cli
|
|
||||||
env:
|
|
||||||
# To generate a new token: https://copr.fedorainfracloud.org/api/.
|
|
||||||
API_LOGIN: ${{ secrets.COPR_API_LOGIN }}
|
|
||||||
API_USERNAME: ${{ secrets.COPR_API_USERNAME }}
|
|
||||||
API_TOKEN_CONTENT: ${{ secrets.COPR_API_TOKEN }}
|
|
||||||
run: |
|
|
||||||
mkdir -p "$HOME/.config"
|
|
||||||
# To generate a new token: https://copr.fedorainfracloud.org/api/.
|
|
||||||
echo "[copr-cli]" >> "$HOME/.config/copr"
|
|
||||||
echo "login = $API_LOGIN" >> "$HOME/.config/copr"
|
|
||||||
echo "username = $API_USERNAME" >> "$HOME/.config/copr"
|
|
||||||
echo "token = $API_TOKEN_CONTENT" >> "$HOME/.config/copr"
|
|
||||||
echo "copr_url = https://copr.fedorainfracloud.org" >> "$HOME/.config/copr"
|
|
||||||
|
|
||||||
- name: Install tooling for source RPM build
|
|
||||||
run: |
|
|
||||||
dnf -y install @development-tools @rpm-development-tools copr-cli rpkg git 'dnf-command(builddep)'
|
|
||||||
|
|
||||||
# It is necessary to checkout into sub-directory, because of some weird ownership problems cause by using containers
|
|
||||||
- name: Check out sources
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
path: swayfx
|
|
||||||
|
|
||||||
- name: Check out the latest tag
|
|
||||||
run: |
|
|
||||||
cp ./swayfx/build-scripts/swayfx.rpkg.spec ./
|
|
||||||
cd swayfx
|
|
||||||
git stash save "Action stashing changes"
|
|
||||||
latestTag=$(git describe --abbrev=0 --tags)
|
|
||||||
git checkout $latestTag
|
|
||||||
|
|
||||||
- name: Copy master spec into root dir
|
|
||||||
run: |
|
|
||||||
cd swayfx
|
|
||||||
cp ../swayfx.rpkg.spec ./
|
|
||||||
|
|
||||||
- name: Generate spec
|
|
||||||
run: |
|
|
||||||
cd swayfx
|
|
||||||
mkdir specs
|
|
||||||
rpkg spec --source --outdir specs
|
|
||||||
|
|
||||||
- name: Install build dependencies
|
|
||||||
run: |
|
|
||||||
cd swayfx
|
|
||||||
dnf -y builddep ./specs/swayfx.rpkg.spec
|
|
||||||
|
|
||||||
- name: Local build
|
|
||||||
run: |
|
|
||||||
cd swayfx
|
|
||||||
mkdir -p out
|
|
||||||
rpkg local --out `pwd`/out
|
|
||||||
|
|
||||||
- name: Test if installation of package is successful
|
|
||||||
run: |
|
|
||||||
cd swayfx/out
|
|
||||||
|
|
||||||
packages=(`rpmspec -q --nodebuginfo --qf \
|
|
||||||
"./%{ARCH}/%{Name}-%{Version}-%{Release}.%{ARCH}.rpm\n" \
|
|
||||||
../specs/swayfx.rpkg.spec`)
|
|
||||||
for i in "${packages[@]}"; do
|
|
||||||
dnf -y install "$i"
|
|
||||||
done
|
|
||||||
|
|
||||||
- name: Submit the build to copr
|
|
||||||
run: |
|
|
||||||
cd swayfx
|
|
||||||
rpkg -v copr-build -w ${{ secrets.COPR_REPO_NAME }}
|
|
|
@ -1,16 +0,0 @@
|
||||||
# sway does not set DISPLAY/WAYLAND_DISPLAY in the systemd user environment
|
|
||||||
# See FS#63021
|
|
||||||
# Adapted from xorg's 50-systemd-user.sh, which achieves a similar goal.
|
|
||||||
|
|
||||||
# Upstream refuses to set XDG_CURRENT_DESKTOP so we have to.
|
|
||||||
exec systemctl --user set-environment XDG_CURRENT_DESKTOP=sway
|
|
||||||
exec systemctl --user import-environment DISPLAY \
|
|
||||||
SWAYSOCK \
|
|
||||||
WAYLAND_DISPLAY \
|
|
||||||
XDG_CURRENT_DESKTOP
|
|
||||||
|
|
||||||
exec hash dbus-update-activation-environment 2>/dev/null && \
|
|
||||||
dbus-update-activation-environment --systemd DISPLAY \
|
|
||||||
SWAYSOCK \
|
|
||||||
XDG_CURRENT_DESKTOP=sway \
|
|
||||||
WAYLAND_DISPLAY
|
|
|
@ -1,83 +0,0 @@
|
||||||
# Maintainer: Erik Reider <erik.reider@protonmail.com>
|
|
||||||
_pkgname=swayfx
|
|
||||||
pkgname="$_pkgname-git"
|
|
||||||
pkgver=r7023.9cd02fc4
|
|
||||||
pkgrel=5
|
|
||||||
license=("MIT")
|
|
||||||
pkgdesc="SwayFX: Sway, but with eye candy!"
|
|
||||||
makedepends=(
|
|
||||||
"git"
|
|
||||||
"meson"
|
|
||||||
"scdoc"
|
|
||||||
"wayland-protocols"
|
|
||||||
)
|
|
||||||
depends=(
|
|
||||||
"cairo"
|
|
||||||
"gdk-pixbuf2"
|
|
||||||
"libevdev.so"
|
|
||||||
"libinput"
|
|
||||||
"libjson-c.so"
|
|
||||||
"libudev.so"
|
|
||||||
"libwayland-server.so"
|
|
||||||
"libwlroots.so=11"
|
|
||||||
"libxcb"
|
|
||||||
"libxkbcommon.so"
|
|
||||||
"pango"
|
|
||||||
"pcre2"
|
|
||||||
"ttf-font"
|
|
||||||
)
|
|
||||||
optdepends=(
|
|
||||||
"alacritty: Terminal emulator used by the default config"
|
|
||||||
"dmenu: Application launcher"
|
|
||||||
"grim: Screenshot utility"
|
|
||||||
"i3status: Status line"
|
|
||||||
"mako: Lightweight notification daemon"
|
|
||||||
"slurp: Select a region"
|
|
||||||
"swayidle: Idle management daemon"
|
|
||||||
"swaylock: Screen locker"
|
|
||||||
"wallutils: Timed wallpapers"
|
|
||||||
"waybar: Highly customizable bar"
|
|
||||||
"xdg-desktop-portal-gtk: Default xdg-desktop-portal for file picking"
|
|
||||||
"xdg-desktop-portal-wlr: xdg-desktop-portal backend"
|
|
||||||
)
|
|
||||||
backup=(etc/sway/config)
|
|
||||||
arch=("i686" "x86_64")
|
|
||||||
url="https://github.com/WillPower3309/swayfx"
|
|
||||||
source=("${pkgname%-*}::git+${url}.git"
|
|
||||||
50-systemd-user.conf
|
|
||||||
sway-portals.conf)
|
|
||||||
sha512sums=(
|
|
||||||
"SKIP"
|
|
||||||
"d5f9aadbb4bbef067c31d4c8c14dad220eb6f3e559e9157e20e1e3d47faf2f77b9a15e52519c3ffc53dc8a5202cb28757b81a4b3b0cc5dd50a4ddc49e03fe06e"
|
|
||||||
"790741df028822bf4d83170dea57e1c63f7d7938cf31969e4cd347b0fc07330322b603c9ec0091b7a3f425132bed9dee6f261074cc273555120858beaaaf5da1")
|
|
||||||
provides=("sway" "swayfx")
|
|
||||||
conflicts=("sway" "swayfx")
|
|
||||||
options=(debug)
|
|
||||||
install=sway.install
|
|
||||||
|
|
||||||
pkgver() {
|
|
||||||
cd "$_pkgname"
|
|
||||||
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
|
||||||
}
|
|
||||||
|
|
||||||
build() {
|
|
||||||
export PKG_CONFIG_PATH='/usr/lib/wlroots0.16/pkgconfig'
|
|
||||||
arch-meson \
|
|
||||||
-Dwerror=false \
|
|
||||||
-Dsd-bus-provider=libsystemd \
|
|
||||||
"$_pkgname" build
|
|
||||||
meson compile -C build
|
|
||||||
}
|
|
||||||
|
|
||||||
package() {
|
|
||||||
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"
|
|
||||||
|
|
||||||
DESTDIR="$pkgdir" meson install -C build
|
|
||||||
|
|
||||||
cd "$_pkgname"
|
|
||||||
install -Dm644 "LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
|
|
||||||
for util in autoname-workspaces.py inactive-windows-transparency.py grimshot; do
|
|
||||||
install -Dm755 "contrib/$util" -t "$pkgdir/usr/share/$pkgname/scripts"
|
|
||||||
done
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
[preferred]
|
|
||||||
# Use xdg-desktop-portal-gtk for every portal interface...
|
|
||||||
default=gtk
|
|
||||||
# ... except for the ScreenCast and Screenshot
|
|
||||||
org.freedesktop.impl.portal.ScreenCast=wlr
|
|
||||||
org.freedesktop.impl.portal.Screenshot=wlr
|
|
|
@ -1,31 +0,0 @@
|
||||||
post_install() {
|
|
||||||
cat << EOD
|
|
||||||
Sway requires additional setup for privilege escalation. Without this setup,
|
|
||||||
sway will fail to start with session activation permission failures. Choose one
|
|
||||||
of the two available options (In alphabetical, not recommended, order):
|
|
||||||
|
|
||||||
1. polkit: This will make sway "just work" right after installation but may be
|
|
||||||
a weightier solution than desired.
|
|
||||||
|
|
||||||
2. seatd: Already required as a sway dependency, this is a lighter-weight
|
|
||||||
solution but requires some user configuration: Enabling the service,
|
|
||||||
adding your user to the "seat" group, then logging out/in again.
|
|
||||||
|
|
||||||
Either option should provide the same functionality/stability. Refer to the
|
|
||||||
Sway wiki page for information.
|
|
||||||
EOD
|
|
||||||
}
|
|
||||||
|
|
||||||
post_upgrade() {
|
|
||||||
cat << EOD
|
|
||||||
Sway's necessary privileges can now be obtained through seatd as well as the
|
|
||||||
incumbent polkit package. As such, polkit has been relegated to an optional
|
|
||||||
dependency.
|
|
||||||
|
|
||||||
Note that using seatd instead of polkit means that a user must be a part of the
|
|
||||||
"seat" group: Otherwise, the user will not be able to achieve the appropriate
|
|
||||||
privileged actions.
|
|
||||||
|
|
||||||
For more information, refer to the Sway wiki page.
|
|
||||||
EOD
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
# sway does not set DISPLAY/WAYLAND_DISPLAY in the systemd user environment
|
|
||||||
# See FS#63021
|
|
||||||
# Adapted from xorg's 50-systemd-user.sh, which achieves a similar goal.
|
|
||||||
|
|
||||||
# Upstream refuses to set XDG_CURRENT_DESKTOP so we have to.
|
|
||||||
exec systemctl --user set-environment XDG_CURRENT_DESKTOP=sway
|
|
||||||
exec systemctl --user import-environment DISPLAY \
|
|
||||||
SWAYSOCK \
|
|
||||||
WAYLAND_DISPLAY \
|
|
||||||
XDG_CURRENT_DESKTOP
|
|
||||||
|
|
||||||
exec hash dbus-update-activation-environment 2>/dev/null && \
|
|
||||||
dbus-update-activation-environment --systemd DISPLAY \
|
|
||||||
SWAYSOCK \
|
|
||||||
XDG_CURRENT_DESKTOP=sway \
|
|
||||||
WAYLAND_DISPLAY
|
|
|
@ -1,78 +0,0 @@
|
||||||
# Maintainer: Erik Reider <erik.reider@protonmail.com>
|
|
||||||
_pkgname=swayfx
|
|
||||||
pkgname="$_pkgname"
|
|
||||||
pkgver=0.3.2
|
|
||||||
pkgrel=5
|
|
||||||
license=("MIT")
|
|
||||||
pkgdesc="SwayFX: Sway, but with eye candy!"
|
|
||||||
makedepends=(
|
|
||||||
"git"
|
|
||||||
"meson"
|
|
||||||
"scdoc"
|
|
||||||
"wayland-protocols"
|
|
||||||
)
|
|
||||||
depends=(
|
|
||||||
"cairo"
|
|
||||||
"gdk-pixbuf2"
|
|
||||||
"libevdev.so"
|
|
||||||
"libinput"
|
|
||||||
"libjson-c.so"
|
|
||||||
"libudev.so"
|
|
||||||
"libwayland-server.so"
|
|
||||||
"libwlroots.so=11"
|
|
||||||
"libxcb"
|
|
||||||
"libxkbcommon.so"
|
|
||||||
"pango"
|
|
||||||
"pcre2"
|
|
||||||
"ttf-font"
|
|
||||||
)
|
|
||||||
optdepends=(
|
|
||||||
"alacritty: Terminal emulator used by the default config"
|
|
||||||
"dmenu: Application launcher"
|
|
||||||
"grim: Screenshot utility"
|
|
||||||
"i3status: Status line"
|
|
||||||
"mako: Lightweight notification daemon"
|
|
||||||
"slurp: Select a region"
|
|
||||||
"swayidle: Idle management daemon"
|
|
||||||
"swaylock: Screen locker"
|
|
||||||
"wallutils: Timed wallpapers"
|
|
||||||
"waybar: Highly customizable bar"
|
|
||||||
"xdg-desktop-portal-gtk: Default xdg-desktop-portal for file picking"
|
|
||||||
"xdg-desktop-portal-wlr: xdg-desktop-portal backend"
|
|
||||||
)
|
|
||||||
backup=(etc/sway/config)
|
|
||||||
arch=("i686" "x86_64")
|
|
||||||
url="https://github.com/WillPower3309/swayfx"
|
|
||||||
source=("${_pkgname}-${pkgver}.tar.gz::${url}/archive/refs/tags/$pkgver.tar.gz"
|
|
||||||
50-systemd-user.conf
|
|
||||||
sway-portals.conf)
|
|
||||||
sha512sums=(
|
|
||||||
"SKIP"
|
|
||||||
"d5f9aadbb4bbef067c31d4c8c14dad220eb6f3e559e9157e20e1e3d47faf2f77b9a15e52519c3ffc53dc8a5202cb28757b81a4b3b0cc5dd50a4ddc49e03fe06e"
|
|
||||||
"790741df028822bf4d83170dea57e1c63f7d7938cf31969e4cd347b0fc07330322b603c9ec0091b7a3f425132bed9dee6f261074cc273555120858beaaaf5da1")
|
|
||||||
provides=("sway" "swayfx")
|
|
||||||
conflicts=("sway" "swayfx")
|
|
||||||
options=(debug)
|
|
||||||
install=sway.install
|
|
||||||
|
|
||||||
build() {
|
|
||||||
export PKG_CONFIG_PATH='/usr/lib/wlroots0.16/pkgconfig'
|
|
||||||
arch-meson \
|
|
||||||
-Dwerror=false \
|
|
||||||
-Dsd-bus-provider=libsystemd \
|
|
||||||
"${_pkgname}-${pkgver}" build
|
|
||||||
meson compile -C build
|
|
||||||
}
|
|
||||||
|
|
||||||
package() {
|
|
||||||
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"
|
|
||||||
|
|
||||||
DESTDIR="$pkgdir" meson install -C build
|
|
||||||
|
|
||||||
cd "${_pkgname}-${pkgver}"
|
|
||||||
install -Dm644 "LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
|
|
||||||
for util in autoname-workspaces.py inactive-windows-transparency.py grimshot; do
|
|
||||||
install -Dm755 "contrib/$util" -t "$pkgdir/usr/share/$pkgname/scripts"
|
|
||||||
done
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
[preferred]
|
|
||||||
# Use xdg-desktop-portal-gtk for every portal interface...
|
|
||||||
default=gtk
|
|
||||||
# ... except for the ScreenCast and Screenshot
|
|
||||||
org.freedesktop.impl.portal.ScreenCast=wlr
|
|
||||||
org.freedesktop.impl.portal.Screenshot=wlr
|
|
|
@ -1,31 +0,0 @@
|
||||||
post_install() {
|
|
||||||
cat << EOD
|
|
||||||
Sway requires additional setup for privilege escalation. Without this setup,
|
|
||||||
sway will fail to start with session activation permission failures. Choose one
|
|
||||||
of the two available options (In alphabetical, not recommended, order):
|
|
||||||
|
|
||||||
1. polkit: This will make sway "just work" right after installation but may be
|
|
||||||
a weightier solution than desired.
|
|
||||||
|
|
||||||
2. seatd: Already required as a sway dependency, this is a lighter-weight
|
|
||||||
solution but requires some user configuration: Enabling the service,
|
|
||||||
adding your user to the "seat" group, then logging out/in again.
|
|
||||||
|
|
||||||
Either option should provide the same functionality/stability. Refer to the
|
|
||||||
Sway wiki page for information.
|
|
||||||
EOD
|
|
||||||
}
|
|
||||||
|
|
||||||
post_upgrade() {
|
|
||||||
cat << EOD
|
|
||||||
Sway's necessary privileges can now be obtained through seatd as well as the
|
|
||||||
incumbent polkit package. As such, polkit has been relegated to an optional
|
|
||||||
dependency.
|
|
||||||
|
|
||||||
Note that using seatd instead of polkit means that a user must be a part of the
|
|
||||||
"seat" group: Otherwise, the user will not be able to achieve the appropriate
|
|
||||||
privileged actions.
|
|
||||||
|
|
||||||
For more information, refer to the Sway wiki page.
|
|
||||||
EOD
|
|
||||||
}
|
|
|
@ -1,158 +0,0 @@
|
||||||
# vim: syntax=spec
|
|
||||||
|
|
||||||
### CHANGE THESE VARIABLES BEFORE RELEASE:
|
|
||||||
# Change to current Sway base version!
|
|
||||||
%global SwayBaseVersion 1.8.1
|
|
||||||
# Change to current SwayFX tag!
|
|
||||||
%global Tag 0.3.2
|
|
||||||
|
|
||||||
Name: {{{ git_dir_name }}}
|
|
||||||
Version: %{Tag}
|
|
||||||
Release: 2%{?dist}
|
|
||||||
Summary: SwayFX: Sway, but with eye candy!
|
|
||||||
License: MIT
|
|
||||||
URL: https://github.com/WillPower3309/swayfx
|
|
||||||
VCS: {{{ git_dir_vcs }}}
|
|
||||||
Source: {{{ git_dir_pack }}}
|
|
||||||
Source101: sway-portals.conf
|
|
||||||
|
|
||||||
BuildRequires: gcc-c++
|
|
||||||
BuildRequires: gnupg2
|
|
||||||
BuildRequires: meson >= 0.60.0
|
|
||||||
BuildRequires: pkgconfig(cairo)
|
|
||||||
BuildRequires: pkgconfig(gdk-pixbuf-2.0)
|
|
||||||
BuildRequires: pkgconfig(glesv2)
|
|
||||||
BuildRequires: pkgconfig(json-c) >= 0.13
|
|
||||||
BuildRequires: pkgconfig(libdrm)
|
|
||||||
BuildRequires: pkgconfig(libevdev)
|
|
||||||
BuildRequires: pkgconfig(libinput) >= 1.21.0
|
|
||||||
BuildRequires: pkgconfig(libpcre2-8)
|
|
||||||
BuildRequires: pkgconfig(libsystemd) >= 239
|
|
||||||
BuildRequires: pkgconfig(libudev)
|
|
||||||
BuildRequires: pkgconfig(pango)
|
|
||||||
BuildRequires: pkgconfig(pangocairo)
|
|
||||||
BuildRequires: pkgconfig(pixman-1)
|
|
||||||
BuildRequires: pkgconfig(scdoc)
|
|
||||||
BuildRequires: pkgconfig(wayland-client)
|
|
||||||
BuildRequires: pkgconfig(wayland-cursor)
|
|
||||||
BuildRequires: pkgconfig(wayland-server) >= 1.21.0
|
|
||||||
BuildRequires: pkgconfig(wayland-protocols) >= 1.24
|
|
||||||
BuildRequires: (pkgconfig(wlroots) >= 0.16.0 with pkgconfig(wlroots) < 0.17)
|
|
||||||
BuildRequires: pkgconfig(xcb)
|
|
||||||
BuildRequires: pkgconfig(xcb-icccm)
|
|
||||||
BuildRequires: pkgconfig(xkbcommon)
|
|
||||||
# Dmenu is the default launcher in sway
|
|
||||||
Recommends: dmenu
|
|
||||||
# In addition, xargs is recommended for use in such a launcher arrangement
|
|
||||||
Recommends: findutils
|
|
||||||
# Install configs and scripts for better integration with systemd user session
|
|
||||||
Recommends: sway-systemd
|
|
||||||
|
|
||||||
Requires: swaybg
|
|
||||||
Recommends: swayidle
|
|
||||||
Recommends: swaylock
|
|
||||||
# By default the Fedora background is used
|
|
||||||
Recommends: desktop-backgrounds-compat
|
|
||||||
|
|
||||||
# Lack of graphical drivers may hurt the common use case
|
|
||||||
Recommends: mesa-dri-drivers
|
|
||||||
# Minimal installation doesn't include Qt Wayland backend
|
|
||||||
Recommends: (qt5-qtwayland if qt5-qtbase-gui)
|
|
||||||
Recommends: (qt6-qtwayland if qt6-qtbase-gui)
|
|
||||||
|
|
||||||
# dmenu (as well as rxvt any many others) requires XWayland on Sway
|
|
||||||
Requires: xorg-x11-server-Xwayland
|
|
||||||
# Sway binds the terminal shortcut to one specific terminal. In our case foot
|
|
||||||
Recommends: foot
|
|
||||||
# grim is the recommended way to take screenshots on sway 1.0+
|
|
||||||
Recommends: grim
|
|
||||||
%{?systemd_requires}
|
|
||||||
|
|
||||||
Conflicts: sway
|
|
||||||
Provides: sway = %{SwayBaseVersion}
|
|
||||||
|
|
||||||
%description
|
|
||||||
SwayFX: Sway, but with eye candy!
|
|
||||||
|
|
||||||
# The artwork is heavy and we don't use it with our default config
|
|
||||||
%package wallpapers
|
|
||||||
Summary: Wallpapers for Sway
|
|
||||||
BuildArch: noarch
|
|
||||||
License: CC0
|
|
||||||
|
|
||||||
%description wallpapers
|
|
||||||
Wallpaper collection provided with Sway
|
|
||||||
|
|
||||||
|
|
||||||
%package -n grimshot
|
|
||||||
Summary: Helper for screenshots within sway
|
|
||||||
Requires: grim
|
|
||||||
Requires: jq
|
|
||||||
Requires: slurp
|
|
||||||
Requires: /usr/bin/wl-copy
|
|
||||||
Recommends: /usr/bin/notify-send
|
|
||||||
|
|
||||||
%description -n grimshot
|
|
||||||
Grimshot is an easy to use screenshot tool for sway. It relies on grim,
|
|
||||||
slurp and jq to do the heavy lifting, and mostly provides an easy to use
|
|
||||||
interface.
|
|
||||||
|
|
||||||
%prep
|
|
||||||
{{{ git_dir_setup_macro }}}
|
|
||||||
|
|
||||||
%build
|
|
||||||
%meson \
|
|
||||||
-Dsd-bus-provider=libsystemd \
|
|
||||||
-Dwerror=false
|
|
||||||
|
|
||||||
%meson_build
|
|
||||||
|
|
||||||
%install
|
|
||||||
%meson_install
|
|
||||||
# Set Fedora background as default background
|
|
||||||
sed -i "s|^output \* bg .*|output * bg /usr/share/backgrounds/default.png fill|" %{buildroot}%{_sysconfdir}/sway/config
|
|
||||||
# Create directory for extra config snippets
|
|
||||||
install -d -m755 -pv %{buildroot}%{_sysconfdir}/sway/config.d
|
|
||||||
|
|
||||||
# Install portals.conf for xdg-desktop-portal
|
|
||||||
install -D -m644 -pv %{SOURCE101} %{buildroot}%{_datadir}/xdg-desktop-portal/sway-portals.conf
|
|
||||||
|
|
||||||
# install python scripts from contrib
|
|
||||||
install -D -m644 -pv -t %{buildroot}%{_datadir}/sway/contrib contrib/*.py
|
|
||||||
|
|
||||||
# install contrib/grimshot tool
|
|
||||||
scdoc <contrib/grimshot.1.scd >%{buildroot}%{_mandir}/man1/grimshot.1
|
|
||||||
install -D -m755 -pv contrib/grimshot %{buildroot}%{_bindir}/grimshot
|
|
||||||
|
|
||||||
%files
|
|
||||||
%license LICENSE
|
|
||||||
%doc README.md
|
|
||||||
%dir %{_sysconfdir}/sway
|
|
||||||
%dir %{_sysconfdir}/sway/config.d
|
|
||||||
%config(noreplace) %{_sysconfdir}/sway/config
|
|
||||||
%{_mandir}/man1/sway*
|
|
||||||
%{_mandir}/man5/*
|
|
||||||
%{_mandir}/man7/*
|
|
||||||
%{_bindir}/sway
|
|
||||||
%{_bindir}/swaybar
|
|
||||||
%{_bindir}/swaymsg
|
|
||||||
%{_bindir}/swaynag
|
|
||||||
%{_datadir}/sway
|
|
||||||
%{_datadir}/wayland-sessions/sway.desktop
|
|
||||||
%dir %{_datadir}/xdg-desktop-portal
|
|
||||||
%{_datadir}/xdg-desktop-portal/sway-portals.conf
|
|
||||||
%{bash_completions_dir}/sway*
|
|
||||||
%{fish_completions_dir}/sway*.fish
|
|
||||||
%{zsh_completions_dir}/_sway*
|
|
||||||
|
|
||||||
%files wallpapers
|
|
||||||
%license assets/LICENSE
|
|
||||||
%{_datadir}/backgrounds/sway
|
|
||||||
|
|
||||||
%files -n grimshot
|
|
||||||
%{_bindir}/grimshot
|
|
||||||
%{_mandir}/man1/grimshot.1*
|
|
||||||
|
|
||||||
# Changelog will be empty until you make first annotated Git tag.
|
|
||||||
%changelog
|
|
||||||
{{{ git_dir_changelog }}}
|
|
12
flake.lock
12
flake.lock
|
@ -2,11 +2,11 @@
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713349283,
|
"lastModified": 1715037484,
|
||||||
"narHash": "sha256-2bjFu3+1zPWZPPGqF+7rumTvEwmdBHBhjPva/AMSruQ=",
|
"narHash": "sha256-OUt8xQFmBU96Hmm4T9tOWTu4oCswCzoVl+pxSq/kiFc=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "2e359fb3162c85095409071d131e08252d91a14f",
|
"rev": "ad7efee13e0d216bf29992311536fce1d3eefbef",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -43,11 +43,11 @@
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713495445,
|
"lastModified": 1715160751,
|
||||||
"narHash": "sha256-dMvGkhjt72NznwI57HLR+Oc6QMctf16W4zI1XYuwnZI=",
|
"narHash": "sha256-S8m7phTU7QYgAq4B0hjH5WdtTjHDcNVhYfPFdhbty+A=",
|
||||||
"owner": "wlrfx",
|
"owner": "wlrfx",
|
||||||
"repo": "scenefx",
|
"repo": "scenefx",
|
||||||
"rev": "5ada125a56012923c47fcf3d049fab32eb7104ff",
|
"rev": "2ec3505248e819191c37cb831197629f373326fb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
let
|
let
|
||||||
mkPackage = pkgs: {
|
mkPackage = pkgs: {
|
||||||
swayfx-unwrapped =
|
swayfx-unwrapped =
|
||||||
(pkgs.swayfx-unwrapped.override { wlroots_0_16 = pkgs.wlroots_0_17; }).overrideAttrs
|
(pkgs.swayfx-unwrapped.override { wlroots = pkgs.wlroots_0_17; }).overrideAttrs
|
||||||
(old: {
|
(old: {
|
||||||
version = "0.4.0-git";
|
version = "0.4.0-git";
|
||||||
src = pkgs.lib.cleanSource ./.;
|
src = pkgs.lib.cleanSource ./.;
|
||||||
|
|
|
@ -285,7 +285,6 @@ void render_blur(struct fx_render_context *ctx, struct wlr_texture *texture,
|
||||||
.src_box = *src_box,
|
.src_box = *src_box,
|
||||||
.dst_box = proj_box,
|
.dst_box = proj_box,
|
||||||
.transform = WL_OUTPUT_TRANSFORM_NORMAL,
|
.transform = WL_OUTPUT_TRANSFORM_NORMAL,
|
||||||
.alpha = &deco_data.alpha,
|
|
||||||
.clip = &damage,
|
.clip = &damage,
|
||||||
.filter_mode = WLR_SCALE_FILTER_BILINEAR,
|
.filter_mode = WLR_SCALE_FILTER_BILINEAR,
|
||||||
},
|
},
|
||||||
|
|
|
@ -45,17 +45,27 @@ static void handle_render(struct sway_seat *seat, struct fx_render_context *ctx)
|
||||||
memcpy(&box, &e->drop_box, sizeof(struct wlr_box));
|
memcpy(&box, &e->drop_box, sizeof(struct wlr_box));
|
||||||
scale_box(&box, ctx->output->wlr_output->scale);
|
scale_box(&box, ctx->output->wlr_output->scale);
|
||||||
|
|
||||||
// Render blur
|
|
||||||
pixman_region32_t opaque_region;
|
|
||||||
pixman_region32_init(&opaque_region);
|
|
||||||
struct decoration_data deco_data = get_undecorated_decoration_data();
|
struct decoration_data deco_data = get_undecorated_decoration_data();
|
||||||
deco_data.blur = e->con->blur_enabled;
|
deco_data.blur = e->con->blur_enabled;
|
||||||
deco_data.corner_radius = e->con->corner_radius;
|
deco_data.corner_radius = e->con->corner_radius * ctx->output->wlr_output->scale;
|
||||||
struct wlr_fbox src_box = {0};
|
|
||||||
render_blur(ctx, NULL, &src_box, &box, false, &opaque_region, deco_data);
|
|
||||||
pixman_region32_fini(&opaque_region);
|
|
||||||
|
|
||||||
render_rounded_rect(ctx, &box, color, e->con->corner_radius * ctx->output->wlr_output->scale, ALL);
|
// Render blur
|
||||||
|
if (deco_data.blur && color[3] < 1.0f) {
|
||||||
|
pixman_region32_t opaque_region;
|
||||||
|
pixman_region32_init(&opaque_region);
|
||||||
|
struct wlr_fbox src_box = {0};
|
||||||
|
struct wlr_box blur_box;
|
||||||
|
memcpy(&blur_box, &e->drop_box, sizeof(struct wlr_box));
|
||||||
|
// The render_blur function doesn't use root-relative coordinates
|
||||||
|
blur_box.x -= ctx->output->lx;
|
||||||
|
blur_box.y -= ctx->output->ly;
|
||||||
|
scale_box(&blur_box, ctx->output->wlr_output->scale);
|
||||||
|
|
||||||
|
render_blur(ctx, NULL, &src_box, &blur_box, false, &opaque_region, deco_data);
|
||||||
|
pixman_region32_fini(&opaque_region);
|
||||||
|
}
|
||||||
|
|
||||||
|
render_rounded_rect(ctx, &box, color, deco_data.corner_radius, ALL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue