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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# r21 (::personal): QoL find-pointer module on the r20 sources.
# r22 (::personal): QoL clipboard-keys module (Super+C/V copy and paste in every app).
# r23 (::personal): QoL hold-super, raise-on-release and open-here modules.
# r24 (::personal): QoL batch 7: clipboard-keys keeps each copy, so it still pastes after its app quits.
# r25 (::personal): QoL raise-on-release: after a drag, the window you drop on keeps focus.
# 0.1.1: first release cut from Git, tag v0.1.1 of https://git.hedronfire.com/wayfire-plugins-custom (crucible distfiles); no patches.
EAPI=8
inherit meson
DESCRIPTION="Independent custom Wayfire plugins for window actions, Show Desktop, workspace backgrounds, the screensaver, finding the pointer, clipboard keys, holding Super for shortcuts, raise on release and opening windows where you work"
HOMEPAGE="https://www.hedronfire.com/"
SRC_URI="https://www.hedronfire.com/distfiles/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
IUSE="+window-actions +panel-desktop +workspace-backgrounds +screensaver +find-pointer +clipboard-keys +hold-super +raise-on-release +open-here test"
REQUIRED_USE="|| ( window-actions panel-desktop workspace-backgrounds screensaver find-pointer clipboard-keys hold-super raise-on-release open-here )"
RESTRICT="mirror !test? ( test )"
RDEPEND="
>=gui-wm/wayfire-0.11.0-r19:0=
gui-libs/wf-config:=
gui-libs/wlroots:0.20=
workspace-backgrounds? ( >=gui-wm/wayfire-0.11.0-r29:0= x11-libs/cairo x11-libs/gdk-pixbuf:2 )
screensaver? ( >=gui-wm/wayfire-0.11.0-r73:0= )
!<gui-apps/wayfire-panel-0.1.0-r7
!<gui-apps/wayfire-dock-0.1.1-r5
!<gui-apps/wayfire-settings-0.1.4-r3
!<gui-apps/wayfire-session-0.1.11-r3
"
DEPEND="${RDEPEND}
workspace-backgrounds? ( dev-cpp/nlohmann_json )
window-actions? ( dev-cpp/nlohmann_json )
"
BDEPEND="virtual/pkgconfig"
src_configure() {
local emesonargs=(
$(meson_use window-actions)
$(meson_use panel-desktop)
$(meson_use workspace-backgrounds)
$(meson_use screensaver)
$(meson_use find-pointer)
$(meson_use clipboard-keys)
$(meson_use hold-super)
$(meson_use raise-on-release)
$(meson_use open-here)
-Dworkspace-backgrounds-test-api=false
$(meson_use test tests)
)
meson_src_configure
}
src_install() {
meson_src_install
# meson installs package docs under ${PN}; Gentoo keeps them under ${PF}.
if [[ -d ${ED}/usr/share/doc/${PN} ]]; then
mkdir -p "${ED}/usr/share/doc/${PF}" || die
mv "${ED}/usr/share/doc/${PN}"/* "${ED}/usr/share/doc/${PF}/" || die
rmdir "${ED}/usr/share/doc/${PN}" || die
fi
dodoc README.md ORIGINS.json
local plugin
for plugin in window-actions panel-desktop workspace-backgrounds screensaver find-pointer clipboard-keys hold-super raise-on-release open-here; do
if use "${plugin}"; then
docinto "plugins/${plugin}"
dodoc "plugins/${plugin}/README.md" "plugins/${plugin}/LICENSE"
fi
done
}
pkg_postinst() {
elog "Workspace backgrounds: start the matching Wayfire, enable workspace-backgrounds and ipc, then open WCM Displays → Backgrounds."
elog "Load plugins by bare name; versioned library paths are no longer installed."
elog "Select modules with USE flags; enable them separately in Wayfire. Drag snapping is configured in Move."
if use screensaver; then
elog "Screensaver: add screensaver to [core] plugins (/usr/libexec/live-wallpaper/migrate"
elog "does this when coming from ambient-background). Settings: WCM -> Screensaver."
fi
if use find-pointer; then
elog "Find the pointer: add find-pointer to [core] plugins ('pyr defaults --apply' does it),"
elog "then press Ctrl twice."
fi
if use clipboard-keys; then
elog "Copy and paste everywhere: add clipboard-keys to [core] plugins ('pyr defaults --apply'"
elog "does it), log out and back in, then use Super+C and Super+V in any app. Terminals"
elog "get Ctrl+Shift+C/V; list another terminal's app id in [clipboard-keys] terminals."
fi
if use hold-super; then
elog "Hold Super for the shortcuts: add hold-super to [core] plugins ('pyr defaults --apply'"
elog "does it), log out and back in, then hold Super alone for a moment."
fi
if use raise-on-release; then
elog "Raise on release: add raise-on-release to [core] plugins and take BTN_LEFT out of"
elog "core/focus_buttons ('pyr defaults --apply' does both where focus_buttons is Wayfire's default)."
fi
if use open-here; then
elog "Open here: add open-here to [core] plugins ('pyr defaults --apply' does it) and log in again;"
elog "new windows then open on the monitor under the pointer, at their app's last size."
fi
if use window-actions; then
elog "The window-state plugin is now window-actions (libwindow-actions.so). In wayfire.ini,"
elog "replace window-state with window-actions in [core] plugins and delete any"
elog "[window-state] section, then log out and back in so the panel, dock and session"
elog "daemon reconnect. Activity placements now live in the session daemon's"
elog "activities.json; ~/.local/state/wayfire/layouts.db* is no longer used and can be deleted."
fi
}
|