- build with gcc14
- use existing openSUSE wallpaper image file - use FvwmBacker module for background instead of external program - do not depend on xli anymore - modified sources % system.fvwm2rc - added patches fix https://github.com/fvwmorg/fvwm/pull/100 + fvwm2-gcc14.patch OBS-URL: https://build.opensuse.org/package/show/X11:windowmanagers/fvwm2?expand=0&rev=55
This commit is contained in:
commit
03e3a48f7b
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.osc
|
17
fvwm-2.5.26-sv_SE.patch
Normal file
17
fvwm-2.5.26-sv_SE.patch
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
configure.ac | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
Index: configure.ac
|
||||||
|
===================================================================
|
||||||
|
--- configure.ac.orig
|
||||||
|
+++ configure.ac
|
||||||
|
@@ -1263,7 +1263,7 @@ AC_ARG_ENABLE(perllib,
|
||||||
|
AC_SUBST(FVWM_PERLLIB)
|
||||||
|
|
||||||
|
# ******* gettext
|
||||||
|
-ALL_LINGUAS="ar da de fr sv_SE zh_CN ru es"
|
||||||
|
+ALL_LINGUAS="ar da de fr sv zh_CN ru es"
|
||||||
|
FVWM_DOMAIN="fvwm"
|
||||||
|
FVWMSCRIPT_DOMAIN="FvwmScript"
|
||||||
|
ALL_DOMAINS="$FVWM_DOMAIN $FVWMTASKBAR_DOMAIN $FVWMSCRIPT_DOMAIN"
|
3
fvwm-2.7.0.tar.gz
Normal file
3
fvwm-2.7.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:66826dd60b774447170037d9078fd43e75f7230a49acfb84a988eebce7e3418b
|
||||||
|
size 3933529
|
11
fvwm-FvwmAuto-overflow.patch
Normal file
11
fvwm-FvwmAuto-overflow.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- modules/FvwmAuto/FvwmAuto.c.orig
|
||||||
|
+++ modules/FvwmAuto/FvwmAuto.c
|
||||||
|
@@ -340,6 +340,8 @@ main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
len = max(len, strlen(leave_fn));
|
||||||
|
}
|
||||||
|
+ /* add space for newline and trailing 0 */
|
||||||
|
+ len += 2;
|
||||||
|
if (do_pass_id)
|
||||||
|
{
|
||||||
|
len += 32;
|
17
fvwm-configure.patch
Normal file
17
fvwm-configure.patch
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
Index: configure.ac
|
||||||
|
===================================================================
|
||||||
|
---
|
||||||
|
configure.ac | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- configure.ac
|
||||||
|
+++ configure.ac 2017-02-07 10:53:27.290904016 +0000
|
||||||
|
@@ -104,7 +104,7 @@ AC_ARG_ENABLE(package-subdirs,
|
||||||
|
fi], [])
|
||||||
|
|
||||||
|
|
||||||
|
-FVWM_MODULEDIR='${libexecdir}'"$FVWM_MODULESUBDIR"
|
||||||
|
+FVWM_MODULEDIR='${libexecdir}'
|
||||||
|
FVWM_DATADIR='${datadir}'"$FVWM_DATASUBDIR"
|
||||||
|
FVWM_DOCDIR='${datadir}'"$FVWM_DOCSUBDIR"
|
||||||
|
FVWM_PERLLIBDIR='${datadir}'"$FVWM_DATASUBDIR/perllib"
|
29
fvwm-no-date-time.patch
Normal file
29
fvwm-no-date-time.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
---
|
||||||
|
fvwm/fvwm.c | 4 ++--
|
||||||
|
fvwm/session.c | 2 +-
|
||||||
|
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
--- fvwm/fvwm.c
|
||||||
|
+++ fvwm/fvwm.c 2017-02-07 11:11:29.990180773 +0000
|
||||||
|
@@ -1295,8 +1295,8 @@ static void setVersionInfo(void)
|
||||||
|
int support_len;
|
||||||
|
|
||||||
|
/* Set version information string */
|
||||||
|
- sprintf(version_str, "fvwm %s%s compiled on %s at %s",
|
||||||
|
- VERSION, VERSIONINFO, __DATE__, __TIME__);
|
||||||
|
+ sprintf(version_str, "fvwm %s%s",
|
||||||
|
+ VERSION, VERSIONINFO);
|
||||||
|
Fvwm_VersionInfo = safestrdup(version_str);
|
||||||
|
|
||||||
|
sprintf(license_str,
|
||||||
|
--- fvwm/session.c
|
||||||
|
+++ fvwm/session.c 2017-02-07 11:11:29.990180773 +0000
|
||||||
|
@@ -136,7 +136,7 @@ static char *get_version_string(void)
|
||||||
|
{
|
||||||
|
/* migo (14-Mar-2001): it is better to manually update a version string
|
||||||
|
* in the stable branch, otherwise saving sessions becomes useless */
|
||||||
|
- return CatString3(VERSION, ", ", __DATE__);
|
||||||
|
+ return CatString3(VERSION, ", ", "??? ?? ????");
|
||||||
|
/* return "2.6-0"; */
|
||||||
|
}
|
||||||
|
|
97
fvwm2-gcc14.patch
Normal file
97
fvwm2-gcc14.patch
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
From 0b4daddf6b88b696daf54714448b8d89a615abf2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Florian Weimer <fweimer@redhat.com>
|
||||||
|
Date: Thu, 24 Nov 2022 13:06:50 +0100
|
||||||
|
Subject: [PATCH 1/3] configure: Do not require support for implicit ints
|
||||||
|
|
||||||
|
Implicit ints have not been part of C since 1999, and future
|
||||||
|
compilers will disable support for them by default. Fortunatenly,
|
||||||
|
only one configure check needs adjusting.
|
||||||
|
---
|
||||||
|
acinclude.m4 | 2 +-
|
||||||
|
configure.ac | 2 +-
|
||||||
|
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/acinclude.m4 b/acinclude.m4
|
||||||
|
index 8b74ff1e5..b66042f9f 100644
|
||||||
|
--- acinclude.m4
|
||||||
|
+++ acinclude.m4
|
||||||
|
@@ -30,7 +30,7 @@ if test "$ac_cv_func_select" = yes; then
|
||||||
|
#ifdef HAVE_SYS_SOCKET_H
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#endif],
|
||||||
|
-[extern select ($ac_cv_type_fd_set_size_t,
|
||||||
|
+[extern int select ($ac_cv_type_fd_set_size_t,
|
||||||
|
$ac_cv_type_fd_set *, $ac_cv_type_fd_set *, $ac_cv_type_fd_set *,
|
||||||
|
$ac_type_timeval *);],
|
||||||
|
[ac_found=yes ; break 3],ac_found=no)
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 97ab9e7a1..c9fcede6a 100644
|
||||||
|
--- configure.ac
|
||||||
|
+++ configure.ac
|
||||||
|
@@ -220,7 +220,7 @@ AC_MINIX
|
||||||
|
|
||||||
|
# catch -Werror and similar options when running configure
|
||||||
|
AC_TRY_COMPILE([#include <stdio.h>],
|
||||||
|
-[int i; static j; int *p; char *c;
|
||||||
|
+[int i; int *p; char *c;
|
||||||
|
switch (*p = p = *c) { case 0: printf("%Q", c, p); }
|
||||||
|
*c = &i; c = p;
|
||||||
|
while (1 || (unsigned int)3 >= 0 || ((int)-1) == ((unsigned int)1));
|
||||||
|
|
||||||
|
From 6b9d100ae4e784821b5189474dc58e646417bcf6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Florian Weimer <fweimer@redhat.com>
|
||||||
|
Date: Thu, 24 Nov 2022 13:07:56 +0100
|
||||||
|
Subject: [PATCH 2/3] acinclude.m4: Add missing <unistd.h> to
|
||||||
|
AM_SAFETY_CHECK_MKSTEMP
|
||||||
|
|
||||||
|
Otherwise, the check fails on a compiler which does not support
|
||||||
|
implicit function declarations (a language feature removed in 1999).
|
||||||
|
---
|
||||||
|
acinclude.m4 | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/acinclude.m4 b/acinclude.m4
|
||||||
|
index b66042f9f..4dee2abeb 100644
|
||||||
|
--- acinclude.m4
|
||||||
|
+++ acinclude.m4
|
||||||
|
@@ -1154,6 +1154,9 @@ AC_DEFUN([AM_SAFETY_CHECK_MKSTEMP],[
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
+#ifdef HAVE_UNISTD_H
|
||||||
|
+#include <unistd.h>
|
||||||
|
+#endif
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
char template[128];
|
||||||
|
|
||||||
|
From 33537b8ae5a302e4016dc1c6cfe5577fb3fa36c9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Florian Weimer <fweimer@redhat.com>
|
||||||
|
Date: Tue, 19 Dec 2023 13:24:50 +0100
|
||||||
|
Subject: [PATCH 3/3] configure: Further defang the -Werror check
|
||||||
|
|
||||||
|
Incompatible pointer types are actually errors (in the sense
|
||||||
|
that they are invalid C). Compilers have merely tolerated them as
|
||||||
|
warnings for backwards compatibility. This is changing with Clang 16
|
||||||
|
and GCC 14, so relax the check a little.
|
||||||
|
---
|
||||||
|
configure.ac | 5 ++---
|
||||||
|
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index c9fcede6a..2e9615b2b 100644
|
||||||
|
--- configure.ac
|
||||||
|
+++ configure.ac
|
||||||
|
@@ -220,9 +220,8 @@ AC_MINIX
|
||||||
|
|
||||||
|
# catch -Werror and similar options when running configure
|
||||||
|
AC_TRY_COMPILE([#include <stdio.h>],
|
||||||
|
-[int i; int *p; char *c;
|
||||||
|
- switch (*p = p = *c) { case 0: printf("%Q", c, p); }
|
||||||
|
- *c = &i; c = p;
|
||||||
|
+[int unused; int *p; char *c;
|
||||||
|
+ printf("%Q", c, p);
|
||||||
|
while (1 || (unsigned int)3 >= 0 || ((int)-1) == ((unsigned int)1));
|
||||||
|
], , AC_MSG_ERROR("
|
||||||
|
configure is not able to compile programs with warnings. Please
|
||||||
|
|
1146
fvwm2.changes
Normal file
1146
fvwm2.changes
Normal file
File diff suppressed because it is too large
Load Diff
57
fvwm2.desktop
Normal file
57
fvwm2.desktop
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Encoding=UTF-8
|
||||||
|
Type=XSession
|
||||||
|
Exec=fvwm
|
||||||
|
TryExec=fvwm
|
||||||
|
Name=FVWM
|
||||||
|
Name[hi]=एफ़वीडबल्यूएम
|
||||||
|
Name[xx]=xxFVWMxx
|
||||||
|
Comment=A powerful ICCCM-compliant multiple virtual desktop window manager
|
||||||
|
Comment[ar]=مدير نوافذ قوي ومتوافق مع ICCCM ذي أسطح مكتب وهمية متعددة
|
||||||
|
Comment[bn]= একটি শক্তিশালী ICCCM-compliant উইণ্ডো ম্যানেজার, যাতে একাধিক ভার্চুয়াল ডেস্কটপ সম্ভব
|
||||||
|
Comment[bs]=Moćan ICCCM-sukladan window manager sa podrškom za više virtuelnih desktopa
|
||||||
|
Comment[ca]=Un poderós gestor de finestres per a múltiples escriptoris virtuals que compleix amb ICCCM
|
||||||
|
Comment[cy]=Trefnydd ffenestri pwerus efo penbyrddau rhith lluosol, sy'n cydymffurfio â ICCCM
|
||||||
|
Comment[da]=En kraftig ICCCM-kompliant vindueshåndtering med flere virtuelle desktoppe
|
||||||
|
Comment[de]=Ein mächtiger ICCCM-kompatibler Fenstermanager mit vielen virtuellen Arbeitsflächen
|
||||||
|
Comment[el]=Ένας πολύ δυνατός, συμβατός με το ICCCM, διαχειριστής παραθύρων με πολλαπλές εικονικές επιφάνειες εργασίας
|
||||||
|
Comment[eo]=Fenestroadministrilo
|
||||||
|
Comment[es]=Un potente administrador de ventanas, compatible con ICCCM y que soporta varios escritorios virtuales
|
||||||
|
Comment[et]=Võimas ICCCM nõuetele vastav mitme virtuaalse töölauaga aknahaldur
|
||||||
|
Comment[eu]=ICCCM konpatiblea den, eta mahaigain birtual ugari dituen leiho kudeatzaile bortitza
|
||||||
|
Comment[fi]=Tehokas ICCCM-mukautuva virtuaalityöpöytiä tukeva ikkunaohjelma
|
||||||
|
Comment[fr]=Un gestionnaire de fenêtres puissant compatible ICCCM avec gestion de bureaux virtuels multiples
|
||||||
|
Comment[fy]=In krêftige ICCCM-compliant finstersmanager mei meardere buroblêden
|
||||||
|
Comment[gl]=Un xestor de fiestras potente acorde coa ICCCM con múltiples escritorios virtuais
|
||||||
|
Comment[he]=מנהל חלונות עצמתי עם תאימות ל־ICCCM בעל שולחנות עבודה וירטואליים רבים
|
||||||
|
Comment[hi]=शक्तिशाली आईसीसीसीएम-कम्पलाएंट अनेक आभासी डेस्कटॉप विंडो प्रबंधक
|
||||||
|
Comment[hr]=Moćni, ICCCM kompatibilni, upravitelj prozora s više virtualnih radnih površina
|
||||||
|
Comment[hu]=Egy sokoldalú, ICCCM-kompatibilis ablakkezelő, virtuális munkaasztal-kezeléssel
|
||||||
|
Comment[is]=Öflugur ICCCM samhæfður gluggastjóri með sýndarskjáborðum
|
||||||
|
Comment[it]=Un window manager molto potente e ICCCM-compatibile che supporta i desktop virtuali
|
||||||
|
Comment[ja]=複数の仮想デスクトップをサポートしたICCCM準拠のパワフルなウィンドウマネージャ
|
||||||
|
Comment[lt]=galinga, su ICCCM suderinama daugelio virtualių darbastalių langų tvarkyklė
|
||||||
|
Comment[mk]=Моќен менаџер на прозорци со повеќе виртуелни површини во согласност со ICCCM
|
||||||
|
Comment[mt]=Window manager b'saħħtu, konformi ma' ICCCM, b'desktops virtwali.
|
||||||
|
Comment[nb]=En slagkraftig vindusbehandler med flere virtuelle skrivbord, som støtter ICCCM
|
||||||
|
Comment[nds]=En kraftvulle, ICCCM-kompatible Finsterpleger, mit vele virtuelle Schriefdischen
|
||||||
|
Comment[nl]=Een krachtige ICCCM-compliant windowmanager met meerdere bureaubladen
|
||||||
|
Comment[nn]=Ein slagkraftig vindaugssjef med fleire virtuelle skrivebord, som støttar ICCCM
|
||||||
|
Comment[pa]=ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ICCCM-ਅਨੁਕੂਲ ਬਹੁ-ਫਰਜ਼ੀ ਵਿਹੜਿਆਂ ਵਾਲਾ ਝਰੋਖਾ ਪ੍ਰਬੰਧਕ
|
||||||
|
Comment[pl]=Potężny menedżer okien zgodny z ICCCM obsługujący wirtualne pulpity
|
||||||
|
Comment[pt]=Um gestor de janelas poderoso em conformidade com o ICCCM e que suporta vários ecrãs virtuais
|
||||||
|
Comment[pt_BR]=Um poderoso gerenciador de janelas compatível com o ICCM, com suporte a múltiplas áreas de trabalho virtuais
|
||||||
|
Comment[ro]=Un manager de ferestre puternic compliant ICCCM ce suportă ecrane virtuale
|
||||||
|
Comment[ru]=Мощный ICCCM-совместимый оконный менеджер, поддерживающий виртуальные рабочие столы
|
||||||
|
Comment[sk]=Výkonný správca okien kompatibilný s ICCCM s podporou virtuálnych plôch
|
||||||
|
Comment[sl]=Močan okenski upravitelj z večimi navideznimi namizji in popolnoma v skladu z ICCCM
|
||||||
|
Comment[sr]=Моћни, ICCCM-сагласни, менаџер прозора са више виртуелних радних површина
|
||||||
|
Comment[sr@Latn]=Moćni, ICCCM-saglasni, menadžer prozora sa više virtuelnih radnih površina
|
||||||
|
Comment[sv]=Kraftfull fönsterhanterare med flera virtuella skrivbord som följer ICCCM
|
||||||
|
Comment[ta]=ICCCM-தரத்தில் பலதரப்பட்ட மெய்நிகர் மேல் மேசை சாளர மேளாளர்
|
||||||
|
Comment[tr]=Güçlü ICCCM-uyumlu çoklu sanal masaüstü yöneticisi
|
||||||
|
Comment[uk]=Потужний, сумісний з ICCCM менеджер вікон, з підтримкою віртуальних стільниць
|
||||||
|
Comment[vi]=Trình quản lý cửa sổ ICCCM tương thích đa desktop ảo
|
||||||
|
Comment[xx]=xxA powerful ICCCM-compliant multiple virtual desktop window managerxx
|
||||||
|
Comment[zh_CN]=强大的多虚拟桌面窗口管理器,与 ICCCM 兼容
|
||||||
|
Comment[zh_TW]=一個強大的 ICCCM 相容的多重虛擬桌面視窗管理程式
|
175
fvwm2.spec
Normal file
175
fvwm2.spec
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
#
|
||||||
|
# spec file for package fvwm2
|
||||||
|
#
|
||||||
|
# Copyright (c) 2024 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
Name: fvwm2
|
||||||
|
Version: 2.7.0
|
||||||
|
Release: 0
|
||||||
|
Summary: The F Virtual Window Manager
|
||||||
|
License: GPL-2.0-or-later
|
||||||
|
Group: System/GUI/Other
|
||||||
|
URL: http://www.fvwm.org
|
||||||
|
Source0: https://github.com/fvwmorg/fvwm/releases/download/%{version}/fvwm-%{version}.tar.gz
|
||||||
|
Source1: fvwm_icons.tar.bz2
|
||||||
|
Source3: %{name}.desktop
|
||||||
|
Source4: system.fvwm2rc
|
||||||
|
Source6: openSUSE.xpm
|
||||||
|
Patch0: fvwm-configure.patch
|
||||||
|
Patch1: fvwm-2.5.26-sv_SE.patch
|
||||||
|
Patch2: fvwm-no-date-time.patch
|
||||||
|
Patch3: fvwm-FvwmAuto-overflow.patch
|
||||||
|
Patch4: threadlocking.patch
|
||||||
|
# https://github.com/fvwmorg/fvwm/pull/100
|
||||||
|
Patch5: fvwm2-gcc14.patch
|
||||||
|
BuildRequires: automake
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
BuildRequires: libpng-devel
|
||||||
|
BuildRequires: libstroke-devel
|
||||||
|
BuildRequires: libxslt-tools
|
||||||
|
BuildRequires: pkgconfig
|
||||||
|
BuildRequires: python3-base
|
||||||
|
BuildRequires: readline-devel
|
||||||
|
BuildRequires: update-desktop-files
|
||||||
|
BuildRequires: pkgconfig(cairo)
|
||||||
|
BuildRequires: pkgconfig(fontconfig)
|
||||||
|
BuildRequires: pkgconfig(fribidi)
|
||||||
|
BuildRequires: pkgconfig(gobject-2.0)
|
||||||
|
BuildRequires: pkgconfig(ice)
|
||||||
|
BuildRequires: pkgconfig(librsvg-2.0)
|
||||||
|
BuildRequires: pkgconfig(sm)
|
||||||
|
BuildRequires: pkgconfig(x11)
|
||||||
|
BuildRequires: pkgconfig(xcursor)
|
||||||
|
BuildRequires: pkgconfig(xext)
|
||||||
|
BuildRequires: pkgconfig(xft)
|
||||||
|
BuildRequires: pkgconfig(xinerama)
|
||||||
|
BuildRequires: pkgconfig(xpm)
|
||||||
|
BuildRequires: pkgconfig(xrender)
|
||||||
|
#not actually used but includes its headers anyway..
|
||||||
|
BuildRequires: pkgconfig(xt)
|
||||||
|
Requires: desktop-data
|
||||||
|
Requires: mktemp
|
||||||
|
Requires: wallpaper-branding
|
||||||
|
Requires: xdg-menu
|
||||||
|
Requires(post): update-alternatives
|
||||||
|
Requires(postun): update-alternatives
|
||||||
|
Provides: fvwm
|
||||||
|
Provides: fvwmicns
|
||||||
|
Provides: windowmanager
|
||||||
|
Provides: xpmroot
|
||||||
|
Obsoletes: fvwm
|
||||||
|
Obsoletes: xpmroot
|
||||||
|
|
||||||
|
%description
|
||||||
|
FVWM is a virtual desktop window manager for the X Window System.
|
||||||
|
|
||||||
|
FVWM is intended to have a small memory footprint but a rich feature
|
||||||
|
set, to be extremely customizable and extendible, and to be very
|
||||||
|
compatible with the Motif Window Manager (mwm).
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n fvwm-%{version}
|
||||||
|
%autopatch -p0
|
||||||
|
find . -name *sv_SE* -exec rename --verbose sv_SE sv '{}' \+
|
||||||
|
mkdir icons
|
||||||
|
tar -C icons -j -x -v -f $RPM_SOURCE_DIR/fvwm_icons.tar.bz2
|
||||||
|
cp %{SOURCE6} icons
|
||||||
|
|
||||||
|
%build
|
||||||
|
autoreconf -fvi
|
||||||
|
%configure \
|
||||||
|
--sysconfdir=%{_sysconfdir}/X11/fvwm2 \
|
||||||
|
--libexecdir=%{_prefix}/lib/X11/fvwm2 \
|
||||||
|
--with-imagepath=%{_datadir}/X11/fvwm2/pixmaps:%{_datadir}/X11/fvwm2/bitmaps:%{_datadir}/pixmaps:%{_datadir}/wallpapers
|
||||||
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install
|
||||||
|
|
||||||
|
# missed main manual page
|
||||||
|
install -m 644 doc/fvwm/fvwm.1 %{buildroot}%{_mandir}/man1
|
||||||
|
|
||||||
|
# default config
|
||||||
|
install -d -m 755 %{buildroot}%{_sysconfdir}/X11/fvwm2
|
||||||
|
install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/X11/fvwm2/system.fvwm2rc
|
||||||
|
# documentation for modules
|
||||||
|
rm -vf sample.fvwmrc/Makefile* sample.fvwmrc/system.fvwm2rc-sample-95
|
||||||
|
|
||||||
|
rm -vf docs/Makefile*
|
||||||
|
install -d -m 755 docu-module
|
||||||
|
for i in $(find -name "README*" -not -name "*,v" -and -not -name "*.orig")
|
||||||
|
do
|
||||||
|
TMPDIR=$(dirname ${i#./})
|
||||||
|
if [ "x$TMPDIR" = "x." ]; then
|
||||||
|
install -m 644 $i docu-module/${i#./}
|
||||||
|
else
|
||||||
|
install -m 644 $i docu-module/README.$(basename "$TMPDIR")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# forbidden links
|
||||||
|
pushd %{buildroot}/
|
||||||
|
find . -type l -printf '%%P %%l\n' | while read dst src
|
||||||
|
do
|
||||||
|
case "$src" in
|
||||||
|
%{buildroot}/*)
|
||||||
|
src=${src#%{buildroot}/}
|
||||||
|
rm -vf $dst
|
||||||
|
ln -frsv $src $dst
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
popd
|
||||||
|
|
||||||
|
# icons
|
||||||
|
install -d -m 755 %{buildroot}%{_datadir}/X11/fvwm2/pixmaps
|
||||||
|
install -m 644 icons/* %{buildroot}%{_datadir}/X11/fvwm2/pixmaps
|
||||||
|
|
||||||
|
# install kdm/gdm entry
|
||||||
|
install -m 0755 -d %{buildroot}%{_datadir}/xsessions/
|
||||||
|
install -m 0644 %{SOURCE3} %{buildroot}%{_datadir}/xsessions/
|
||||||
|
# removing the useless README.vms file
|
||||||
|
rm -f %{buildroot}/%{_docdir}/fvwm2/README.vms
|
||||||
|
%suse_update_desktop_file %{buildroot}%{_datadir}/xsessions/%{name}.desktop
|
||||||
|
%find_lang fvwm %{name}.lang
|
||||||
|
%find_lang FvwmScript %{name}.lang
|
||||||
|
|
||||||
|
%post
|
||||||
|
%{_sbindir}/update-alternatives --install %{_datadir}/xsessions/default.desktop \
|
||||||
|
default-xsession.desktop %{_datadir}/xsessions/fvwm2.desktop 20
|
||||||
|
|
||||||
|
%postun
|
||||||
|
[ -f %{_datadir}/xsessions/lxqt.desktop ] || %{_sbindir}/update-alternatives \
|
||||||
|
--remove default-xsession.desktop %{_datadir}/xsessions/fvwm2.desktop
|
||||||
|
|
||||||
|
%files -f %{name}.lang
|
||||||
|
%license COPYING
|
||||||
|
%doc NEWS docs docu-module/*
|
||||||
|
%dir %{_sysconfdir}/X11/fvwm2
|
||||||
|
%config %{_sysconfdir}/X11/fvwm2/system.fvwm2rc
|
||||||
|
%{_bindir}/*
|
||||||
|
%{_prefix}/lib/X11/fvwm2/*
|
||||||
|
%{_datadir}/X11/fvwm2/pixmaps/*
|
||||||
|
%dir %{_prefix}/lib/X11/fvwm2
|
||||||
|
%{_datadir}/fvwm
|
||||||
|
%dir %{_datadir}/X11/fvwm2
|
||||||
|
%dir %{_datadir}/X11/fvwm2/pixmaps
|
||||||
|
%{_mandir}/man1/*
|
||||||
|
%{_datadir}/xsessions/*desktop
|
||||||
|
|
||||||
|
%changelog
|
3
fvwm_icons.tar.bz2
Normal file
3
fvwm_icons.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:741c1100478177d1989203cb04ff1332e8280789d5c76b42d945b8b9d040fa64
|
||||||
|
size 329871
|
39
openSUSE.xpm
Normal file
39
openSUSE.xpm
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char * openSUSE1_xpm[] = {
|
||||||
|
"51 34 2 1",
|
||||||
|
" c None",
|
||||||
|
". c #084404",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ........ ",
|
||||||
|
" ................. .... ",
|
||||||
|
" .............................. ",
|
||||||
|
" ............................ . ",
|
||||||
|
" ............................. ..... ",
|
||||||
|
" ............................... . . . ",
|
||||||
|
" ................................ ... . ",
|
||||||
|
" .............................. ... ... ",
|
||||||
|
" ............................... ...... ",
|
||||||
|
" .................................. ",
|
||||||
|
" ..... ................................ ",
|
||||||
|
" .... ............................ ",
|
||||||
|
" .... ..... ................. ",
|
||||||
|
" ... ....... ..... ..... ",
|
||||||
|
" ... .. ... ... .... ",
|
||||||
|
" ... .. .. ... .... ",
|
||||||
|
" ... .... .. ... ... ",
|
||||||
|
" ... ... .. . . ",
|
||||||
|
" .... ... ",
|
||||||
|
" .......... ",
|
||||||
|
" ........ ",
|
||||||
|
" ... ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
460
system.fvwm2rc
Normal file
460
system.fvwm2rc
Normal file
@ -0,0 +1,460 @@
|
|||||||
|
## Major cleanup.
|
||||||
|
##
|
||||||
|
## Thomas Adam <thomas.adam22@gmail.com>
|
||||||
|
|
||||||
|
# window buttons
|
||||||
|
#
|
||||||
|
#Large up Triangle for Maximize
|
||||||
|
|
||||||
|
## The least we can do here is define a decor.
|
||||||
|
DestroyDecor DefaultDecor
|
||||||
|
AddToDecor DefaultDecor
|
||||||
|
+ ButtonStyle 2 4 50x24@1 75x74@0 25x74@0 50x24@1
|
||||||
|
+ ButtonStyle 4 4 50x74@1 75x24@0 25x24@1 50x74@1
|
||||||
|
+ ButtonStyle 3 13 20x60@1 20x40@1 40x40@1 40x20@1 60x20@1 60x40@0 80x40@1 80x60@0 60x60@0 60x80@0 40x80@0 40x60@1 20x60@0
|
||||||
|
+ BorderStyle Inactive -- HiddenHandles NoInset
|
||||||
|
|
||||||
|
#general configuration
|
||||||
|
|
||||||
|
DeskTopSize 3x2
|
||||||
|
EdgeResistance 250 10
|
||||||
|
EdgeScroll 0 0
|
||||||
|
ClickTime 750
|
||||||
|
ColormapFocus FollowsMouse
|
||||||
|
IgnoreModifiers L2
|
||||||
|
## Having this set to unlimited ensures potential users aren't confused due
|
||||||
|
## to the XGrabServer() call when having to draw the rubber-band which would
|
||||||
|
## have happened had OpaqueMoveSize been set to the default.
|
||||||
|
OpaqueMoveSize -1
|
||||||
|
|
||||||
|
#paths specific to fvwm2
|
||||||
|
#
|
||||||
|
## The difference between X.org 6.x and 7.x
|
||||||
|
## If you switch to X.org version 6.9 or below change the paths for ImagePath
|
||||||
|
## /usr/lib/X11/fvwm2 -> /usr/X11R6/lib...
|
||||||
|
## /usr/share/X11/fvwm2/pixmaps -> /usr/X11R6/lib/X11/fvwm2/pixmaps
|
||||||
|
|
||||||
|
### No, redefining ModulePath is the wrong thing to do.
|
||||||
|
##ModulePath /usr/lib/X11/fvwm2
|
||||||
|
|
||||||
|
## Adding $[FVWM_USERDIR] here doesn't hurt, and neither does prepending the
|
||||||
|
## *internal* ImagePath.
|
||||||
|
|
||||||
|
ImagePath /usr/share/X11/fvwm2/pixmaps:/usr/share/wallpapers:$[FVWM_USERDIR]:+
|
||||||
|
|
||||||
|
#colors
|
||||||
|
|
||||||
|
# 0 = Default colors
|
||||||
|
# 1 = Inactive windows
|
||||||
|
# 2 = Active windows
|
||||||
|
# 3 = Inactive menu entry and menu background
|
||||||
|
# 4 = Active menu entry
|
||||||
|
# 5 = greyed out menu entry (only bg used)
|
||||||
|
# 6 = module foreground and background)
|
||||||
|
# 7 = hilight colors
|
||||||
|
|
||||||
|
Colorset 0 fg black, bg rgb:6f/a1/dc
|
||||||
|
Colorset 1 fg black, bg rgb:a1/b2/c8
|
||||||
|
Colorset 2 fg black, bg rgb:70/a2/dd
|
||||||
|
Colorset 3 fg black, bg rgb:c8/d3/e5
|
||||||
|
Colorset 4 fg black, bg rgb:91/ae/d6
|
||||||
|
Colorset 5 fg rgb:d2/bf/a8, bg rgb:b4/aa/94
|
||||||
|
Colorset 6 fg black, bg rgb:b4/aa/94
|
||||||
|
Colorset 7 fg black, bg rgb:94/ab/bf
|
||||||
|
|
||||||
|
|
||||||
|
# run FvwmTheme before anything else is done
|
||||||
|
##ModuleSynchronous Timeout 5 FvwmTheme
|
||||||
|
#
|
||||||
|
# general setup
|
||||||
|
#
|
||||||
|
Style * Colorset 1
|
||||||
|
Style * HilightColorset 2
|
||||||
|
MenuStyle * MenuColorset 3
|
||||||
|
MenuStyle * ActiveColorset 4
|
||||||
|
MenuStyle * GreyedColorset 5
|
||||||
|
|
||||||
|
XORvalue 255
|
||||||
|
|
||||||
|
#fonts
|
||||||
|
DefaultFont "StringEncoding=UTF-8:xft:sans-serif:encoding=iso10646-1:size=10;-misc-*-medium-r-semicondensed-*-13-*-*-*-*-*-iso10646-1"
|
||||||
|
IconFont "StringEncoding=UTF-8:xft:sans-serif:encoding=iso10646-1:size=8;-misc-fixed-medium-r-normal-*-10-*-*-*-*-*-iso10646-1"
|
||||||
|
|
||||||
|
|
||||||
|
#fvwm system functions
|
||||||
|
|
||||||
|
AddToFunc QuitSave
|
||||||
|
+ "I" Quit
|
||||||
|
|
||||||
|
|
||||||
|
AddToFunc StartFunction
|
||||||
|
+ I Test (Init) Module FvwmBanner
|
||||||
|
+ I Test (Init) Exec exec xterm -ls -geometry +150+85
|
||||||
|
+ I Module FvwmButtons
|
||||||
|
|
||||||
|
AddToFunc ExitFunction
|
||||||
|
+ I Exec xsetroot
|
||||||
|
+ I Exec xsetroot
|
||||||
|
|
||||||
|
|
||||||
|
#fvwm window modifier functions
|
||||||
|
|
||||||
|
AddToFunc MoveOrRaise
|
||||||
|
+ C Raise
|
||||||
|
+ M Raise
|
||||||
|
+ M Move
|
||||||
|
+ D Lower
|
||||||
|
AddToFunc ResizeOrRaise
|
||||||
|
+ C Raise
|
||||||
|
+ M Raise
|
||||||
|
+ M Resize
|
||||||
|
+ D Lower
|
||||||
|
AddToFunc MaximizeFunc
|
||||||
|
+ M Maximize 0 100
|
||||||
|
+ C Maximize 0 80
|
||||||
|
+ D Maximize 100 100
|
||||||
|
|
||||||
|
## all.
|
||||||
|
AddToFunc MoveOrIconify
|
||||||
|
+ I Raise
|
||||||
|
+ M Move
|
||||||
|
+ D Iconify
|
||||||
|
|
||||||
|
|
||||||
|
#buttonbar menu
|
||||||
|
|
||||||
|
AddToMenu bargraphicspopup "Graphics" Title
|
||||||
|
+ "Gimp" Exec exec gimp
|
||||||
|
+ "Inkscape" Exec exec inkscape
|
||||||
|
+ "XV" Exec exec xv
|
||||||
|
|
||||||
|
AddToMenu bartoolspopup "Tools" Title
|
||||||
|
+ "Firefox" Exec exec firefox
|
||||||
|
+ "OpenOffice" Exec exec soffice
|
||||||
|
|
||||||
|
AddToMenu barshellspopup "Shell in XTerm" Title
|
||||||
|
+ "Shell in XTerm" Exec exec xterm -ls
|
||||||
|
+ "Root shell" Exec exec xterm -ls -vb -sb -sl 2000 -T Root -n Root -j -rw +vb -bg \#ff8c6d -e su -
|
||||||
|
|
||||||
|
|
||||||
|
AddToMenu barsusepopup "openSUSE" Title
|
||||||
|
+ "Control Center" Exec exec xterm -e su - -cyast2
|
||||||
|
+ "Help" Exec exec susehelp
|
||||||
|
+ "openSUSE menu" Popup xdg_menu
|
||||||
|
|
||||||
|
## Adding Pick here ensures we always ensure a window context.
|
||||||
|
AddToMenu windowops "Window menu (Shift-Alt-Space)" Title
|
||||||
|
+ "Mo&ve (Alt-F5) " Pick Move
|
||||||
|
+ "Resi&ze (Alt-F6) " Pick Resize
|
||||||
|
+ "&Iconify (Alt-F4) " Pick Iconify
|
||||||
|
+ "&Maximize/Normal (Shift-Alt-F3) " Pick Maximize
|
||||||
|
+ "(Un)St&ick (Shift-Alt-F4) " Pick Stick
|
||||||
|
+ "" Nop
|
||||||
|
+ "Window &list (Alt-F11) " WindowList
|
||||||
|
+ "" Nop
|
||||||
|
+ "&Close (Alt-F9) " Pick Delete
|
||||||
|
+ "&Kill (Alt-F11) " Pick Destroy
|
||||||
|
|
||||||
|
|
||||||
|
#Menu: Fvwm-Manpages
|
||||||
|
|
||||||
|
AddToMenu manpages_popup "Fvwm-Manpages" Title
|
||||||
|
+ "FvwmEvent" Exec exec xterm -e man FvwmEvent
|
||||||
|
+ "FvwmAuto" Exec exec xterm -e man FvwmAuto
|
||||||
|
+ "FvwmBacker" Exec exec xterm -e man FvwmBacker
|
||||||
|
+ "FvwmBanner" Exec exec xterm -e man FvwmBanner
|
||||||
|
+ "FvwmButtons" Exec exec xterm -e man FvwmButtons
|
||||||
|
## + "FvwmCascade" Exec exec xterm -e man FvwmCascade
|
||||||
|
+ "FvwmCommand" Exec exec xterm -e man FvwmCommand
|
||||||
|
+ "FvwmConfig" Exec exec xterm -e man fvwm-config
|
||||||
|
+ "FvwmConsole" Exec exec xterm -e man FvwmConsole
|
||||||
|
+ "FvwmConsoleC" Exec exec xterm -e man FvwmConsoleC
|
||||||
|
+ "FvwmCpp" Exec exec xterm -e man FvwmCpp
|
||||||
|
+ "FvwmDebug" Exec exec xterm -e man FvwmDebug
|
||||||
|
+ "FvwmForm" Exec exec xterm -e man FvwmForm
|
||||||
|
## + "FvwmGoodStuff" Exec exec xterm -e man FvwmGoodStuff
|
||||||
|
+ "FvwmIconBox" Exec exec xterm -e man FvwmIconBox
|
||||||
|
+ "FvwmIconMan" Exec exec xterm -e man FvwmIconMan
|
||||||
|
+ "FvwmIdent" Exec exec xterm -e man FvwmIdent
|
||||||
|
+ "FvwmM4" Exec exec xterm -e man FvwmM4
|
||||||
|
+ "FvwmPager" Exec exec xterm -e man FvwmPager
|
||||||
|
+ "FvwmSave" Exec exec xterm -e man FvwmSave
|
||||||
|
+ "FvwmSaveDesk" Exec exec xterm -e man FvwmSaveDesk
|
||||||
|
+ "FvwmScript" Exec exec xterm -e man FvwmScript
|
||||||
|
+ "FvwmScroll" Exec exec xterm -e man FvwmScroll
|
||||||
|
## + "FvwmTalk" Exec exec xterm -e man FvwmTalk
|
||||||
|
+ "FvwmTaskBar" Exec exec xterm -e man FvwmTaskBar
|
||||||
|
+ "FvwmTile" Exec exec xterm -e man FvwmTile
|
||||||
|
+ "FvwmWharf" Exec exec xterm -e man FvwmWharf
|
||||||
|
+ "FvwmWinList" Exec exec xterm -e man FvwmWinList
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#Menu: Modules
|
||||||
|
|
||||||
|
AddToMenu modules_popup "Modules" Title
|
||||||
|
+ "Event" Module FvwmEvent
|
||||||
|
+ "Autoraise off" KillModule FvwmAuto
|
||||||
|
+ "Autoraise 500ms" Module FvwmAuto 500
|
||||||
|
+ "Banner" Module FvwmBanner
|
||||||
|
+ "Buttons" Module FvwmButtons
|
||||||
|
+ "Cascade" Module FvwmCascade
|
||||||
|
+ "Command" Module FvwmCommandS
|
||||||
|
##+ "Config" Module FvwmConfig
|
||||||
|
+ "Console" Module FvwmConsole
|
||||||
|
+ "Debug" Module FvwmDebug
|
||||||
|
+ "Form" Module FvwmForm
|
||||||
|
## + "GoodStuff" Module FvwmGoodStuff
|
||||||
|
+ "IconBox" Module FvwmIconBox
|
||||||
|
+ "IconMan" Module FvwmIconMan
|
||||||
|
+ "Ident" Module FvwmIdent
|
||||||
|
+ "M4" Module FvwmM4
|
||||||
|
+ "Pager" Module FvwmPager 0 0
|
||||||
|
## + "Pipe" Module FvwmPipe
|
||||||
|
+ "Save" Module FvwmSave
|
||||||
|
## + "SaveDesk" Module FvwmSaveDesk
|
||||||
|
+ "Script" Module FvwmScript
|
||||||
|
+ "Scroll" Module FvwmScroll
|
||||||
|
+ "Talk" Module FvwmTalk
|
||||||
|
+ "TaskBar" Module FvwmTaskBar
|
||||||
|
+ "Tile" Module FvwmTile
|
||||||
|
+ "Wharf" Module FvwmWharf
|
||||||
|
+ "WindowMenu" Module FvwmWindowMenu
|
||||||
|
+ "WinList" Module FvwmWinList
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#Menu: WindowManager
|
||||||
|
|
||||||
|
AddToMenu THISWM_MENU_popup "WindowManager" Title
|
||||||
|
+ "Modules" Popup modules_popup
|
||||||
|
+ "Fvwm-Manpages" Popup manpages_popup
|
||||||
|
+ "" Nop
|
||||||
|
+ "Fvwm2-Manpage" Exec exec xterm -e man fvwm
|
||||||
|
+ "" Nop
|
||||||
|
+ "Restart Fvwm2" Restart
|
||||||
|
+ "" Nop
|
||||||
|
+ "Exit" Quit
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#Menu: Keyboardclicks
|
||||||
|
|
||||||
|
AddToMenu settings_kbdclick_popup "Keyboardclicks" Title
|
||||||
|
+ "hard" Exec exec xset c 100
|
||||||
|
+ "Off" Exec exec xset c off
|
||||||
|
+ "soft" Exec exec xset c on
|
||||||
|
|
||||||
|
|
||||||
|
#Menu: Mouse
|
||||||
|
|
||||||
|
AddToMenu settings_mouse_popup "Mouse" Title
|
||||||
|
+ "fast" Exec exec xset m 4 2
|
||||||
|
+ "Left handed mouse" Exec exec xmodmap -e
|
||||||
|
+ "normal" Exec exec xset m 2 5
|
||||||
|
+ "slow" Exec exec xset m 1 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#Menu: Speaker
|
||||||
|
|
||||||
|
AddToMenu settings_speaker_popup "Speaker" Title
|
||||||
|
+ "loud" Exec exec xset b 100 600 50
|
||||||
|
+ "normal" Exec exec xset b on
|
||||||
|
+ "loud and long" Exec exec xset b 100 600 300
|
||||||
|
+ "Off" Exec exec xset b off
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#Menu: Screensaver
|
||||||
|
|
||||||
|
AddToMenu screen_popup "Screensaver" Title
|
||||||
|
+ "Blank" Exec exec xset s blank
|
||||||
|
+ "Off" Exec exec xset s off
|
||||||
|
+ "Pattern after 5 min" Exec exec xset s noblank s 300 300
|
||||||
|
+ "Immediately" Exec exec xset s activate
|
||||||
|
+ "Default" Exec exec xset s default
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#Menu: Settings
|
||||||
|
|
||||||
|
AddToMenu settings_popup "Settings" Title
|
||||||
|
+ "Keyboardclicks" Popup settings_kbdclick_popup
|
||||||
|
+ "Mouse" Popup settings_mouse_popup
|
||||||
|
+ "Speaker" Popup settings_speaker_popup
|
||||||
|
+ "Screensaver" Popup screen_popup
|
||||||
|
|
||||||
|
|
||||||
|
#Menu: Work
|
||||||
|
|
||||||
|
PipeRead 'xdg_menu --charset UTF-8 --format fvwm2'
|
||||||
|
|
||||||
|
AddToMenu WORK_MENU_popup "Work Menu" Title
|
||||||
|
+ "xterm" Exec exec xterm
|
||||||
|
+ "Firefox" Exec exec firefox
|
||||||
|
+ "" Nop
|
||||||
|
+ "Top" Exec exec xterm -e top
|
||||||
|
+ "" Nop
|
||||||
|
+ "Settings" Popup settings_popup
|
||||||
|
+ "WindowManager" Popup THISWM_MENU_popup
|
||||||
|
+ "openSUSE" Popup xdg_menu
|
||||||
|
|
||||||
|
Style "FvwmPager" !Title, Sticky, WindowListSkip
|
||||||
|
*FvwmPager: Rows 1
|
||||||
|
*FvwmPager: Columns 1
|
||||||
|
*FvwmPager: Geometry -0+0
|
||||||
|
*FvwmPager: Fore Black
|
||||||
|
*FvwmPager: Back grey67
|
||||||
|
*FvwmPager: Hilight grey50
|
||||||
|
*FvwmPager: Font none
|
||||||
|
*FvwmPager: SmallFont "StringEncoding=UTF-8:xft:sans-serif:encoding=iso10646-1:size=6;-misc-fixed-medium-r-normal--7-*-*-*-*-*-iso10646-1"
|
||||||
|
|
||||||
|
AddToFunc barthiswmpopupfunc
|
||||||
|
+ "I" Popup THISWM_MENU_popup
|
||||||
|
|
||||||
|
AddToFunc barsusepopupfunc
|
||||||
|
+ "I" Popup barsusepopup
|
||||||
|
|
||||||
|
AddToFunc bargraphicspopupfunc
|
||||||
|
+ "I" Popup bargraphicspopup
|
||||||
|
|
||||||
|
AddToFunc bartoolspopupfunc
|
||||||
|
+ "I" Popup bartoolspopup
|
||||||
|
|
||||||
|
AddToFunc barshellspopupfunc
|
||||||
|
+ "I" Popup barshellspopup
|
||||||
|
|
||||||
|
*FvwmButtons: Font "StringEncoding=UTF-8:xft:sans-serif:encoding=iso10646-1:size=9;-*-*-medium-*-semicondensed-*-12-*-*-*-*-*-iso10646-1"
|
||||||
|
#*FvwmButtonsFore Black
|
||||||
|
*FvwmButtons: Back rgb:91/ae/d6
|
||||||
|
*FvwmButtons: Geometry +0+0
|
||||||
|
*FvwmButtons: Rows 1
|
||||||
|
*FvwmButtons: (2x1 Frame 0 Swallow(UseOld, Respawn, NoClose) "FvwmPager" "Module FvwmPager 0 0")
|
||||||
|
*FvwmButtons: (Swallow FvwmXeyes 'Exec xeyes -name "FvwmXeyes" -geometry +0+0 -bg grey67 &')
|
||||||
|
*FvwmButtons: (Swallow FvwmXclock 'Exec xclock -name "FvwmXclock" -geometry +0+0 -padding 1 -bg rgb:91/ae/d6 &')
|
||||||
|
*FvwmButtons:(Title "Fvwm2", Icon fvwm.xpm, Action (Mouse 0) Function barthiswmpopupfunc)
|
||||||
|
*FvwmButtons: (Title "openSUSE", Icon openSUSE.xpm, Action (Mouse 0) Function barsusepopupfunc)
|
||||||
|
*FvwmButtons: (Title "Graphics", Icon gimp.xpm, Action (Mouse 0) Function bargraphicspopupfunc)
|
||||||
|
*FvwmButtons (Title "Tools", Icon toolbox.xpm, Action (Mouse 0) Function bartoolspopupfunc)
|
||||||
|
*FvwmButtons (Title "Shells", Icon xterm.xpm, Action (Mouse 0) Function barshellspopupfunc)
|
||||||
|
#style options for modules and programs in fvwm2
|
||||||
|
|
||||||
|
|
||||||
|
##Style "*" BackColor Grey
|
||||||
|
##Style "*" ForeColor DimGrey
|
||||||
|
Style * UseDecor DefaultDecor
|
||||||
|
Style * SloppyFocus
|
||||||
|
Style * DecorateTransient
|
||||||
|
Style * IconBox +55 +85 +130 +480
|
||||||
|
Style * StickyIcon
|
||||||
|
Style * SmartPlacement, RandomPlacement, ActivePlacement
|
||||||
|
Style * NoPPosition
|
||||||
|
Style FvwmWinList !Title, WindowListSkip
|
||||||
|
Style FvwmButtons !Title, Sticky, WindowListSkip
|
||||||
|
Style FvwmBanner !Title, Sticky, StaysOnTop, WindowListSkip
|
||||||
|
Style IconManModule !Title, Sticky, !Handles, Icon toolbox.xpm
|
||||||
|
|
||||||
|
Style "xeyes" SmartPlacement, RandomPlacement
|
||||||
|
Style "xclock" SmartPlacement, RandomPlacement
|
||||||
|
|
||||||
|
# see bug n#51189
|
||||||
|
Style "AcroRead" SmartPlacement, RandomPlacement
|
||||||
|
# see bug n#51188
|
||||||
|
# Style "OpenOffice*" NoPPosition, RandomPlacement, EWMHIgnoreStrutHints, EWMHMaximizeIgnoreWorkingArea, EWMHPlacementIgnoreWorkingArea, IgnoreGravity
|
||||||
|
|
||||||
|
Module FvwmBacker
|
||||||
|
Colorset 10 Pixmap /usr/share/wallpapers/openSUSEdefault/contents/images/1600x1200.png
|
||||||
|
*FvwmBacker: Command (Desk *) Colorset 10
|
||||||
|
|
||||||
|
*FvwmIdent: Back MidnightBlue
|
||||||
|
*FvwmIdent: Fore Yellow
|
||||||
|
*FvwmIdent: Font "StringEncoding=UTF-8:xft:sans-serif:encoding=iso10646-1:size=10;-misc-fixed-medium-r-normal--13-*-*-*-*-*-iso10646-1"
|
||||||
|
|
||||||
|
*FvwmWinList: Back Grey
|
||||||
|
*FvwmWinList: Fore Black
|
||||||
|
*FvwmWinList: FocusBack Black
|
||||||
|
*FvwmWinList: FocusFore Grey
|
||||||
|
*FvwmWinList: IconBack LightGrey
|
||||||
|
*FvwmWinList: IconFore DimGrey
|
||||||
|
*FvwmWinList: Font "StringEncoding=UTF-8:xft:sans-serif:encoding=iso10646-1:size=11;-misc-fixed-medium-r-normal--15-*-*-*-*-*-iso10646-1"
|
||||||
|
*FvwmWinList: Action Click1 Iconify -1,Focus
|
||||||
|
*FvwmWinList: Action Click2 Iconify
|
||||||
|
*FvwmWinList: Action Click3 Module "FvwmIdent" FvwmIdent
|
||||||
|
*FvwmWinList: Geometry +0-1
|
||||||
|
*FvwmWinList: UseSkipList
|
||||||
|
*FvwmWinList: UseIconNames
|
||||||
|
|
||||||
|
# Key bindings
|
||||||
|
|
||||||
|
Key Left A SM Scroll -100 +0
|
||||||
|
Key Left A C CursorMove -1 0
|
||||||
|
Key Left A SC CursorMove -10 +0
|
||||||
|
|
||||||
|
Key Right A SM Scroll +100 +0
|
||||||
|
Key Right A C CursorMove +1 0
|
||||||
|
Key Right A SC CursorMove +10 +0
|
||||||
|
|
||||||
|
Key Up A SM Scroll +0 -100
|
||||||
|
Key Up A C CursorMove +0 -1
|
||||||
|
Key Up A SC CursorMove +0 -10
|
||||||
|
|
||||||
|
Key Down A SM Scroll +0 +100
|
||||||
|
Key Down A C CursorMove +0 +1
|
||||||
|
Key Down A SC CursorMove +0 +10
|
||||||
|
|
||||||
|
Key F1 A M Menu WORK_MENU_popup
|
||||||
|
Key F2 A M WindowList
|
||||||
|
Key F3 A M Menu xdg_menu
|
||||||
|
Key F4 A M Pick Iconify
|
||||||
|
Key F5 A M Pick Move
|
||||||
|
Key F6 A M Pick Resize
|
||||||
|
Key F7 A M Pick Raise
|
||||||
|
Key F8 A M Pick Lower
|
||||||
|
Key F9 A M Pick Delete
|
||||||
|
Key F10 A M Pick Destroy
|
||||||
|
|
||||||
|
Key F11 A M Prev (AcceptsFocus) focus
|
||||||
|
Key F12 A M Next (AcceptsFocus) focus
|
||||||
|
Key Tab A 4 Next (AcceptsFocus) focus
|
||||||
|
Key Tab A S4 Prev (AcceptsFocus) focus
|
||||||
|
|
||||||
|
Key F3 A SM Pick Maximize
|
||||||
|
Key F4 A SM Pick Stick
|
||||||
|
Key F5 A SM Pick RefreshWindow
|
||||||
|
|
||||||
|
Key BackSpace A SM Function QuitSave
|
||||||
|
|
||||||
|
#button bar popup menus
|
||||||
|
Key s A SM Function barsusepopupfunc
|
||||||
|
Key g A SM Function bargraphicpopupfunc
|
||||||
|
Key t A SM Function bartoolspopupfunc
|
||||||
|
Key l A SM Function barshellpopupfunc
|
||||||
|
Key m A SM Function MailFunc
|
||||||
|
|
||||||
|
Key F1 A SM Restart
|
||||||
|
|
||||||
|
# Mouse bindings
|
||||||
|
|
||||||
|
Mouse 1 R A Menu WORK_MENU_popup Nop
|
||||||
|
Mouse 2 R A Module FvwmWinList Transient
|
||||||
|
Mouse 3 R A Menu xdg_menu Nop
|
||||||
|
Mouse 2 FST A Menu windowops Nop
|
||||||
|
|
||||||
|
Mouse 1 1 A Menu windowops Delete
|
||||||
|
Mouse 2 1 A Menu windowops Destroy
|
||||||
|
Mouse 3 1 A Menu windowops Nop
|
||||||
|
|
||||||
|
Mouse 1 SF A Function "ResizeOrRaise"
|
||||||
|
|
||||||
|
Mouse 1 T A Function "MoveOrRaise"
|
||||||
|
|
||||||
|
Mouse 1 I A Iconify
|
||||||
|
Mouse 2 I A Iconify
|
||||||
|
Mouse 3 TSIF A RaiseLower
|
||||||
|
|
||||||
|
Mouse 1 2 A Maximize 0 100
|
||||||
|
Mouse 2 2 A Maximize 100 100
|
||||||
|
Mouse 3 2 A Maximize 100 0
|
||||||
|
Mouse 0 4 A Iconify
|
||||||
|
Mouse 1 3 A Stick
|
105
threadlocking.patch
Normal file
105
threadlocking.patch
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
From 58cc099368de9b0dd8bf5d2daa0f31d5c373f812 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Thomas Adam <thomas@xteddy.org>
|
||||||
|
Date: Tue, 2 May 2023 16:53:10 +0100
|
||||||
|
Subject: [PATCH] debian bug 1034054: backport fvwm3 xthreadlock()
|
||||||
|
|
||||||
|
Backport this fix from fvwm3 to fvwm2:
|
||||||
|
|
||||||
|
https://github.com/fvwmorg/fvwm3/commit/5c17c83df4605d2d97999740cf180af983298896
|
||||||
|
|
||||||
|
XCheckIfEvent() holds the X display lock and the predicate
|
||||||
|
function it calls is not allowed to call any Xlib function that
|
||||||
|
would re-enter the lock.
|
||||||
|
libX11 1.8.1 enables X display locks unconditionnaly (it was only
|
||||||
|
enabled by XInitThreads() when called explicitely before) and
|
||||||
|
thus exposes the issue.
|
||||||
|
|
||||||
|
So don't process events in the FCheckPeekIfEvent() predicate, but
|
||||||
|
instead use a separate handler that is called for the returned event
|
||||||
|
out of the lock.
|
||||||
|
|
||||||
|
---
|
||||||
|
fvwm/events.c | 9 ++++++++-
|
||||||
|
libs/FEvent.c | 22 ++++++++++++++++++++++
|
||||||
|
libs/FEvent.h | 8 ++++++++
|
||||||
|
3 files changed, 38 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/fvwm/events.c b/fvwm/events.c
|
||||||
|
index a2d024068..7a3d06c3b 100644
|
||||||
|
--- fvwm/events.c
|
||||||
|
+++ fvwm/events.c
|
||||||
|
@@ -258,6 +258,12 @@ static int _pred_weed_accumulate_expose(
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static int _pred_weed_is_expose(
|
||||||
|
+ Display *display, XEvent *event, XPointer arg)
|
||||||
|
+{
|
||||||
|
+ return (event->type == Expose);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static int _pred_weed_handle_expose(
|
||||||
|
Display *display, XEvent *event, XPointer arg)
|
||||||
|
{
|
||||||
|
@@ -4542,7 +4548,8 @@ void handle_all_expose(void)
|
||||||
|
|
||||||
|
saved_event = fev_save_event();
|
||||||
|
FPending(dpy);
|
||||||
|
- FWeedIfEvents(dpy, _pred_weed_handle_expose, NULL);
|
||||||
|
+ FWeedAndHandleIfEvents(dpy, _pred_weed_is_expose,
|
||||||
|
+ _pred_weed_handle_expose, NULL);
|
||||||
|
fev_restore_event(saved_event);
|
||||||
|
|
||||||
|
return;
|
||||||
|
diff --git a/libs/FEvent.c b/libs/FEvent.c
|
||||||
|
index 24d019dd1..ec31728a9 100644
|
||||||
|
--- libs/FEvent.c
|
||||||
|
+++ libs/FEvent.c
|
||||||
|
@@ -532,6 +532,28 @@ int FWeedIfEvents(
|
||||||
|
return weed_args.count;
|
||||||
|
}
|
||||||
|
|
||||||
|
+int FWeedAndHandleIfEvents(
|
||||||
|
+ Display *display,
|
||||||
|
+ int (*weed_predicate) (Display *display, XEvent *event, XPointer arg),
|
||||||
|
+ int (*handler) (Display *display, XEvent *event, XPointer arg),
|
||||||
|
+ XPointer arg)
|
||||||
|
+{
|
||||||
|
+ _fev_weed_args weed_args;
|
||||||
|
+ XEvent e;
|
||||||
|
+
|
||||||
|
+ assert(fev_is_invalid_event_type_set);
|
||||||
|
+ memset(&weed_args, 0, sizeof(weed_args));
|
||||||
|
+ weed_args.weed_predicate = weed_predicate;
|
||||||
|
+ weed_args.arg = arg;
|
||||||
|
+ if (FCheckPeekIfEvent(display, &e, _fev_pred_weed_if,
|
||||||
|
+ (XPointer)&weed_args)) {
|
||||||
|
+ handler(display, &e, arg);
|
||||||
|
+ }
|
||||||
|
+ _fev_pred_weed_if_finish(&weed_args);
|
||||||
|
+
|
||||||
|
+ return weed_args.count;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
int FWeedIfWindowEvents(
|
||||||
|
Display *display, Window window,
|
||||||
|
int (*weed_predicate) (
|
||||||
|
diff --git a/libs/FEvent.h b/libs/FEvent.h
|
||||||
|
index 821aef51a..2622f4474 100644
|
||||||
|
--- libs/FEvent.h
|
||||||
|
+++ libs/FEvent.h
|
||||||
|
@@ -113,6 +113,14 @@ int FWeedIfEvents(
|
||||||
|
Display *display, XEvent *current_event, XPointer arg),
|
||||||
|
XPointer arg);
|
||||||
|
|
||||||
|
+/* Same as FWeedIfEvents but with a second callback out of XLockDisplay()
|
||||||
|
+ * to handle events in a lock-safe manner */
|
||||||
|
+int FWeedAndHandleIfEvents(
|
||||||
|
+ Display *display,
|
||||||
|
+ int (*weed_predicate) (Display *display, XEvent *event, XPointer arg),
|
||||||
|
+ int (*handler) (Display *display, XEvent *event, XPointer arg),
|
||||||
|
+ XPointer arg);
|
||||||
|
+
|
||||||
|
/* Same as FWeedIfEvents but weeds only events for the given window. The
|
||||||
|
* weed_predicate is only called for events with a matching window. */
|
||||||
|
int FWeedIfWindowEvents(
|
Loading…
Reference in New Issue
Block a user