Accepting request 693024 from home:zhengqiang:branches:X11:windowmanagers
- Update to 1.5.3 - Rebase patches - icewm-susemenu.patch: rebase "suseprog" function - icewm-desktop-nodisplay.patch: rebase, set NoDisplay for icewm.desktop - icewm-preferences.patch: rebase, only IconPath hunk not in upstream now - Drop patches - icewm-mate.patch: upstream no longer uses icewm-menu-gnome2 to generate a default menu, the current freedesktop.org approach is superior for current distros - icewm-use-iproute2-ss-instead-of-netstat.patch: was accepted by upstream OBS-URL: https://build.opensuse.org/request/show/693024 OBS-URL: https://build.opensuse.org/package/show/X11:windowmanagers/icewm?expand=0&rev=97
This commit is contained in:
parent
37afeb8dbb
commit
ab3f97e789
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9920901c5eadb6df95af68dcb4f044b16e76e80ccd2c420b66c2ab83559477a7
|
||||
size 1731772
|
3
icewm-1.5.3.tar.xz
Normal file
3
icewm-1.5.3.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:98d0b59a75c86aa4272b5855f602ae8692ff6b748a703b8ee54b2abac45e5afb
|
||||
size 1679384
|
@ -1,17 +1,8 @@
|
||||
From 3d09111fa081005c772c2942d42cc2d1600047f5 Mon Sep 17 00:00:00 2001
|
||||
From: Chingkai <qkzhu@suse.com>
|
||||
Date: Wed, 20 Dec 2017 15:13:07 +0800
|
||||
Subject: [PATCH] Set NoDisplay for icewm.desktop
|
||||
|
||||
---
|
||||
lib/icewm.desktop | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: icewm-1.4.2/lib/icewm.desktop
|
||||
===================================================================
|
||||
--- icewm-1.4.2.orig/lib/icewm.desktop
|
||||
+++ icewm-1.4.2/lib/icewm.desktop
|
||||
@@ -11,7 +11,7 @@ Comment[da]=Simpel og hurtig vindueshån
|
||||
diff --git a/lib/icewm.desktop b/lib/icewm.desktop
|
||||
index d6e5a04..02618b5 100644
|
||||
--- a/lib/icewm.desktop
|
||||
+++ b/lib/icewm.desktop
|
||||
@@ -11,7 +11,7 @@ Comment[da]=Simpel og hurtig vindueshåndtering
|
||||
Icon=icewm
|
||||
TryExec=/usr/bin/icewm
|
||||
Exec=icewm
|
||||
|
298
icewm-mate.patch
298
icewm-mate.patch
@ -1,298 +0,0 @@
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -53,5 +53,5 @@ add_subdirectory(po)
|
||||
add_subdirectory(lib)
|
||||
add_subdirectory(doc)
|
||||
|
||||
+install(FILES icewm-set-matewm DESTINATION ${BINDIR} PERMISSIONS WORLD_EXECUTE OWNER_EXECUTE GROUP_EXECUTE WORLD_READ OWNER_READ OWNER_WRITE GROUP_READ)
|
||||
install(FILES icewm-set-gnomewm DESTINATION ${BINDIR} PERMISSIONS WORLD_EXECUTE OWNER_EXECUTE GROUP_EXECUTE WORLD_READ OWNER_READ OWNER_WRITE GROUP_READ)
|
||||
-
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -344,6 +344,18 @@ fi
|
||||
AC_SUBST([GNOME1_CFLAGS])
|
||||
AC_SUBST([GNOME1_LIBS])
|
||||
|
||||
+AC_ARG_ENABLE([menus-mate],
|
||||
+ AC_HELP_STRING([--disable-menus-mate],[Disable display of MATE menus.]))
|
||||
+if test x$enable_menus_mate != xno; then
|
||||
+ PKG_CHECK_MODULES([GNOME2],[mate-desktop-2.0],[
|
||||
+ enable_menus_gnome2=no
|
||||
+ AC_DEFINE([CONFIG_MATE_MENUS],[1],[Define to make IceWM more MATE-friendly])
|
||||
+ AC_DEFINE([CONFIG_GNOME_MENUS],[1],[Define to make IceWM more GNOME-friendly])
|
||||
+ BUILD_MENU_MATE=yes
|
||||
+ APPLICATIONS="${APPLICATIONS} icewm-menu-mate"],[
|
||||
+ AC_MSG_WARN([MATE menus not supported.])])
|
||||
+fi
|
||||
+
|
||||
AC_ARG_ENABLE([menus-gnome2],
|
||||
AC_HELP_STRING([--disable-menus-gnome2],[Disable display of GNOME 2 menus.]))
|
||||
if test x$enable_menus_gnome2 != xno; then
|
||||
@@ -383,6 +395,7 @@ AM_CONDITIONAL([BUILD_HELP],[test x$BUIL
|
||||
AM_CONDITIONAL([BUILD_SOUND],[test x$BUILD_SOUND = xyes])
|
||||
AM_CONDITIONAL([BUILD_MENU_GNOME1],[test x$BUILD_MENU_GNOME1 = xyes])
|
||||
AM_CONDITIONAL([BUILD_MENU_GNOME2],[test x$BUILD_MENU_GNOME2 = xyes])
|
||||
+AM_CONDITIONAL([BUILD_MENU_MATE],[test x$BUILD_MENU_MATE = xyes])
|
||||
AM_CONDITIONAL([BUILD_MENU_FDO],[test x$BUILD_MENU_FDO = xyes])
|
||||
|
||||
test "x$prefix" = xNONE && prefix="$ac_default_prefix"
|
||||
--- a/icewm.desktop
|
||||
+++ b/icewm.desktop
|
||||
@@ -0,0 +1,13 @@
|
||||
+[Desktop Entry]
|
||||
+Type=Application
|
||||
+Name=IceWM
|
||||
+Exec=icewm
|
||||
+NoDisplay=true
|
||||
+X-MATE-WMName=IceWM
|
||||
+X-MATE-Autostart-Phase=WindowManager
|
||||
+X-MATE-Provides=windowmanager
|
||||
+X-MATE-Autostart-Notify=true
|
||||
+X-GNOME-WMName=IceWM
|
||||
+X-GNOME-Autostart-Phase=WindowManager
|
||||
+X-GNOME-Provides=windowmanager
|
||||
+X-GNOME-Autostart-Notify=true
|
||||
--- a/icewm-set-matewm
|
||||
+++ b/icewm-set-matewm
|
||||
@@ -0,0 +1,9 @@
|
||||
+#!/bin/sh
|
||||
+
|
||||
+echo -n "Previous window manager: "
|
||||
+gsettings get org.mate.session.required-components windowmanager
|
||||
+
|
||||
+gsettings set org.mate.session.required-components windowmanager "'icewm'"
|
||||
+
|
||||
+echo -n "New window manager: "
|
||||
+gsettings get org.mate.session.required-components windowmanager
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -106,5 +106,8 @@ icewm.lsm: icewm.lsm.in
|
||||
sed -r -e 's:%%PACKAGE%%:$(PACKAGE):g;s:%%VERSION%%:$(VERSION):g;s:%%DATE%%:$(DATE):g' $< >$@
|
||||
|
||||
dist_bin_SCRIPTS = \
|
||||
+ icewm-set-matewm \
|
||||
icewm-set-gnomewm
|
||||
|
||||
+desktopdir = $(datadir)/applications
|
||||
+desktop_DATA = icewm.desktop
|
||||
--- a/src/gnome2.cc
|
||||
+++ b/src/gnome2.cc
|
||||
@@ -25,10 +25,16 @@ char const * ApplicationName = "icewm-menu-gnome2";
|
||||
#include <dirent.h>
|
||||
#include <string.h>
|
||||
|
||||
-#include <gnome.h>
|
||||
+#include "yarray.h"
|
||||
+#ifdef CONFIG_MATE_MENUS
|
||||
+#include <libmate-desktop/mate-desktop-item.h>
|
||||
+
|
||||
+char const * ApplicationName = "icewm-menu-mate";
|
||||
+#else
|
||||
#include <libgnome/gnome-desktop-item.h>
|
||||
#include <libgnomevfs/gnome-vfs-init.h>
|
||||
-#include "yarray.h"
|
||||
+
|
||||
+#endif
|
||||
|
||||
class GnomeMenu;
|
||||
|
||||
@@ -58,14 +63,16 @@ void dumpMenu(GnomeMenu *menu) {
|
||||
GnomeMenuItem *item = menu->items.getItem(i);
|
||||
|
||||
if (item->dentry && !item->submenu) {
|
||||
- printf("prog \"%s\" %s icewm-menu-gnome2 --open \"%s\"\n",
|
||||
+ printf("prog \"%s\" %s %s --open \"%s\"\n",
|
||||
item->title,
|
||||
item->icon ? item->icon : "-",
|
||||
+ ApplicationName,
|
||||
item->dentry);
|
||||
} else if (item->dentry && item->submenu) {
|
||||
- printf("menuprog \"%s\" %s icewm-menu-gnome2 --list \"%s\"\n",
|
||||
+ printf("menuprog \"%s\" %s %s --list \"%s\"\n",
|
||||
item->title,
|
||||
item->icon ? item->icon : "-",
|
||||
+ ApplicationName,
|
||||
(!strcmp(my_basename(item->dentry), ".directory") ?
|
||||
g_dirname(item->dentry) : item->dentry));
|
||||
}
|
||||
@@ -101,16 +108,27 @@ void GnomeMenu::addEntry(const char *fPa
|
||||
GnomeMenuItem *item = new GnomeMenuItem();
|
||||
item->title = name;
|
||||
|
||||
+#ifdef CONFIG_MATE_MENUS
|
||||
+ MateDesktopItem *ditem =
|
||||
+ mate_desktop_item_new_from_file(npath,
|
||||
+ (MateDesktopItemLoadFlags)0,
|
||||
+#else
|
||||
GnomeDesktopItem *ditem =
|
||||
gnome_desktop_item_new_from_file(npath,
|
||||
(GnomeDesktopItemLoadFlags)0,
|
||||
+#endif
|
||||
NULL);
|
||||
|
||||
struct stat sb;
|
||||
const char *type;
|
||||
bool isDir = (!stat(npath, &sb) && S_ISDIR(sb.st_mode));
|
||||
+#ifdef CONFIG_MATE_MENUS
|
||||
+ type = mate_desktop_item_get_string(ditem,
|
||||
+ MATE_DESKTOP_ITEM_TYPE);
|
||||
+#else
|
||||
type = gnome_desktop_item_get_string(ditem,
|
||||
GNOME_DESKTOP_ITEM_TYPE);
|
||||
+#endif
|
||||
if (!isDir && type && strstr(type, "Directory")) {
|
||||
isDir = 1;
|
||||
}
|
||||
@@ -119,7 +137,9 @@ void GnomeMenu::addEntry(const char *fPa
|
||||
GnomeMenu *submenu = new GnomeMenu();
|
||||
|
||||
item->title = g_path_get_basename(npath);
|
||||
- item->icon = gnome_pixmap_file("gnome-folder.png");
|
||||
+ item->icon = gtk_icon_info_get_filename(gtk_icon_theme_lookup_icon(
|
||||
+ gtk_icon_theme_get_default(), "folder",
|
||||
+ 16, GTK_ICON_LOOKUP_NO_SVG));
|
||||
item->submenu = submenu;
|
||||
|
||||
char *epath = new char[nlen + sizeof("/.directory")];
|
||||
@@ -130,19 +150,35 @@ void GnomeMenu::addEntry(const char *fPa
|
||||
strcpy(epath, npath);
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_MATE_MENUS
|
||||
+ ditem = mate_desktop_item_new_from_file(epath,
|
||||
+ (MateDesktopItemLoadFlags)0,
|
||||
+#else
|
||||
ditem = gnome_desktop_item_new_from_file(epath,
|
||||
(GnomeDesktopItemLoadFlags)0,
|
||||
+#endif
|
||||
NULL);
|
||||
if (ditem) {
|
||||
+#ifdef CONFIG_MATE_MENUS
|
||||
+ item->title = mate_desktop_item_get_localestring(ditem, MATE_DESKTOP_ITEM_NAME); //LXP FX
|
||||
+ item->icon = mate_desktop_item_get_string(ditem, MATE_DESKTOP_ITEM_ICON);
|
||||
+#else
|
||||
item->title = gnome_desktop_item_get_localestring(ditem, GNOME_DESKTOP_ITEM_NAME); //LXP FX
|
||||
item->icon = gnome_desktop_item_get_string(ditem, GNOME_DESKTOP_ITEM_ICON);
|
||||
+#endif
|
||||
}
|
||||
item->dentry = epath;
|
||||
} else {
|
||||
if (type && !strstr(type, "Directory")) {
|
||||
+#ifdef CONFIG_MATE_MENUS
|
||||
+ item->title = mate_desktop_item_get_localestring(ditem, MATE_DESKTOP_ITEM_NAME);
|
||||
+ if (mate_desktop_item_get_string(ditem, MATE_DESKTOP_ITEM_ICON))
|
||||
+ item->icon = mate_desktop_item_get_string(ditem, MATE_DESKTOP_ITEM_ICON);
|
||||
+#else
|
||||
item->title = gnome_desktop_item_get_localestring(ditem, GNOME_DESKTOP_ITEM_NAME);
|
||||
if (gnome_desktop_item_get_string(ditem, GNOME_DESKTOP_ITEM_ICON))
|
||||
item->icon = gnome_desktop_item_get_string(ditem, GNOME_DESKTOP_ITEM_ICON);
|
||||
+#endif
|
||||
item->dentry = npath;
|
||||
}
|
||||
}
|
||||
@@ -281,13 +281,24 @@ void GnomeMenu::populateMenu(const char *fPath) {
|
||||
char fullpath[256];
|
||||
strlcpy(fullpath, dirname, sizeof fullpath);
|
||||
strlcat(fullpath, file->d_name, sizeof fullpath);
|
||||
+#ifdef CONFIG_MATE_MENUS
|
||||
+ MateDesktopItem *ditem =
|
||||
+ mate_desktop_item_new_from_file(fullpath,
|
||||
+ (MateDesktopItemLoadFlags)0,
|
||||
+#else
|
||||
GnomeDesktopItem *ditem =
|
||||
gnome_desktop_item_new_from_file(fullpath,
|
||||
(GnomeDesktopItemLoadFlags)0,
|
||||
+#endif
|
||||
NULL);
|
||||
const char *categories =
|
||||
+#ifdef CONFIG_MATE_MENUS
|
||||
+ mate_desktop_item_get_string(ditem,
|
||||
+ MATE_DESKTOP_ITEM_CATEGORIES);
|
||||
+#else
|
||||
gnome_desktop_item_get_string(ditem,
|
||||
GNOME_DESKTOP_ITEM_CATEGORIES);
|
||||
+#endif
|
||||
|
||||
if (categories && strstr(categories, category)) {
|
||||
if (*file->d_name != '.') {
|
||||
@@ -323,9 +370,15 @@ int runFile(const char *dentry_path) {
|
||||
char arg[32];
|
||||
int i;
|
||||
|
||||
+#ifdef CONFIG_MATE_MENUS
|
||||
+ MateDesktopItem *ditem =
|
||||
+ mate_desktop_item_new_from_file(dentry_path,
|
||||
+ (MateDesktopItemLoadFlags)0,
|
||||
+#else
|
||||
GnomeDesktopItem *ditem =
|
||||
gnome_desktop_item_new_from_file(dentry_path,
|
||||
(GnomeDesktopItemLoadFlags)0,
|
||||
+#endif
|
||||
NULL);
|
||||
|
||||
if (ditem == NULL) {
|
||||
@@ -334,7 +387,11 @@ int runFile(const char *dentry_path) {
|
||||
// FIXME: leads to segfault for some reason, so using execlp instead
|
||||
// gnome_desktop_item_launch(ditem, NULL, 0, NULL);
|
||||
|
||||
+#ifdef CONFIG_MATE_MENUS
|
||||
+ const char *app = mate_desktop_item_get_string(ditem, MATE_DESKTOP_ITEM_EXEC);
|
||||
+#else
|
||||
const char *app = gnome_desktop_item_get_string(ditem, GNOME_DESKTOP_ITEM_EXEC);
|
||||
+#endif
|
||||
if(!app)
|
||||
return 1;
|
||||
|
||||
@@ -351,7 +408,10 @@ int runFile(const char *dentry_path) {
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
|
||||
+ gtk_init(&argc, &argv);
|
||||
+#ifndef CONFIG_MATE_MENUS
|
||||
gnome_vfs_init();
|
||||
+#endif
|
||||
|
||||
for (char ** arg = argv + 1; arg < argv + argc; ++arg) {
|
||||
if (**arg == '-') {
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -11,6 +11,7 @@ EXTRA_PROGRAMS = \
|
||||
icesound \
|
||||
icewm-menu-gnome1 \
|
||||
icewm-menu-gnome2 \
|
||||
+ icewm-menu-mate \
|
||||
icewm-menu-fdo \
|
||||
testarray \
|
||||
testlocale \
|
||||
@@ -72,6 +73,10 @@ bin_PROGRAMS += icewm-menu-gnome2
|
||||
AM_INSTALLCHECK_STD_OPTIONS_EXEMPT += icewm-menu-gnome2
|
||||
endif
|
||||
|
||||
+if BUILD_MENU_MATE
|
||||
+bin_PROGRAMS += icewm-menu-mate
|
||||
+endif
|
||||
+
|
||||
if BUILD_MENU_FDO
|
||||
bin_PROGRAMS += icewm-menu-fdo
|
||||
AM_INSTALLCHECK_STD_OPTIONS_EXEMPT += icewm-menu-fdo
|
||||
@@ -371,6 +376,20 @@ icewm_menu_gnome1_SOURCES = \
|
||||
ascii.h
|
||||
icewm_menu_gnome1_LDADD = libice.la $(GNOME1_LIBS) $(CORE_LIBS)
|
||||
|
||||
+icewm_menu_mate_SOURCES = \
|
||||
+ intl.h \
|
||||
+ debug.h \
|
||||
+ sysdep.h \
|
||||
+ base.h \
|
||||
+ themable.h \
|
||||
+ default.h \
|
||||
+ ylib.h \
|
||||
+ gnome2.cc \
|
||||
+ ascii.h \
|
||||
+ ycmdline.cc \
|
||||
+ ycmdline.h
|
||||
+icewm_menu_mate_LDADD = libice.la $(GNOME2_LIBS) $(CORE_LIBS)
|
||||
+
|
||||
icewm_menu_gnome2_SOURCES = \
|
||||
intl.h \
|
||||
debug.h \
|
@ -14,22 +14,19 @@ a file generated by ./src/genpref. To edit the patch:
|
||||
vi lib/preferences
|
||||
quilt refresh
|
||||
---
|
||||
src/preferences | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
Index: src/preferences
|
||||
===================================================================
|
||||
diff --git a/src/preferences b/src/preferences
|
||||
index dbf965e..94d8053 100644
|
||||
--- a/src/preferences
|
||||
+++ b/src/preferences
|
||||
@@ -543,6 +543,7 @@
|
||||
@@ -555,6 +555,7 @@
|
||||
|
||||
# Icon search path (colon separated)
|
||||
# IconPath="/usr/share/icons/hicolor:/usr/share/icons:/usr/share/pixmaps"
|
||||
# IconPath="/usr/share/icons/oxygen/base:/usr/share/icons/Adwaita:/usr/share/icons/hicolor:/usr/share/icons:/usr/share/pixmaps:/usr/local/share/icons/hicolor:"
|
||||
+IconPath="/usr/share/icons/Adwaita/16x16/apps:/usr/share/icons/hicolor:/usr/share/icons:/usr/share/pixmaps"
|
||||
|
||||
# Mailbox path (use $MAIL instead)
|
||||
# MailBoxPath=""
|
||||
@@ -545,7 +545,7 @@
|
||||
@@ -569,7 +570,7 @@
|
||||
# NewMailCommand=""
|
||||
|
||||
# Command to lock display/screensaver
|
||||
@ -38,21 +35,21 @@ Index: src/preferences
|
||||
|
||||
# Command to run on clock
|
||||
# ClockCommand="xclock -name icewm -title Clock"
|
||||
@@ -569,10 +569,10 @@
|
||||
@@ -592,10 +593,10 @@
|
||||
# LogoutCancelCommand=""
|
||||
|
||||
# Command to shutdown the system
|
||||
-# ShutdownCommand="/bin/sh -c "{ test -e /run/systemd/system && systemctl poweroff; } ||:""
|
||||
-# ShutdownCommand="test -e /run/systemd/system && systemctl poweroff"
|
||||
+ShutdownCommand="/bin/sh -c 'systemctl poweroff ||:'"
|
||||
|
||||
# Command to reboot the system
|
||||
-# RebootCommand="/bin/sh -c "{ test -e /run/systemd/system && systemctl reboot; } ||:""
|
||||
-# RebootCommand="test -e /run/systemd/system && systemctl reboot"
|
||||
+RebootCommand="/bin/sh -c 'systemctl reboot ||:'"
|
||||
|
||||
# Command to run on CPU status
|
||||
# CPUStatusCommand="xterm -name top -title Process\ Status -e top"
|
||||
@@ -1328,19 +1328,19 @@
|
||||
#
|
||||
# Command to send the system to standby mode
|
||||
# SuspendCommand="test -e /run/systemd/system && systemctl suspend"
|
||||
@@ -1323,16 +1324,16 @@ WorkspaceNames=" 1 ", " 2 ", " 3 ", " 4 "
|
||||
# DesktopBackgroundMultihead=0 # 0/1
|
||||
|
||||
# Display desktop background centered and not tiled
|
||||
-# DesktopBackgroundCenter=0 # 0/1
|
||||
@ -61,16 +58,13 @@ Index: src/preferences
|
||||
# Support for semitransparent terminals like Eterm or gnome-terminal
|
||||
# SupportSemitransparency=1 # 0/1
|
||||
|
||||
# Desktop background scaled to full screen
|
||||
# Resize desktop background to full screen
|
||||
-# DesktopBackgroundScaled=0 # 0/1
|
||||
+DesktopBackgroundScaled=1 # 0/1
|
||||
|
||||
# Desktop background color
|
||||
# DesktopBackgroundColor="rgb:00/20/40"
|
||||
|
||||
# Desktop background image
|
||||
# Desktop background image(s)
|
||||
-# DesktopBackgroundImage=""
|
||||
+DesktopBackgroundImage="BRANDING_PICTURE"
|
||||
|
||||
# Color to announce for semi-transparent windows
|
||||
# DesktopTransparencyColor=""
|
||||
# Desktop background color(s)
|
||||
# DesktopBackgroundColor=""
|
||||
|
@ -1,60 +1,89 @@
|
||||
diff --git a/lib/menu.in b/lib/menu.in
|
||||
index 88a3d70..e79d828 100644
|
||||
index f200514..3118471 100644
|
||||
--- a/lib/menu.in
|
||||
+++ b/lib/menu.in
|
||||
@@ -13,5 +13,6 @@ prog XChat xchat xchat
|
||||
@@ -12,5 +12,6 @@ prog Firefox mozilla firefox
|
||||
prog Hexchat xchat hexchat
|
||||
prog Gimp gimp gimp
|
||||
separator
|
||||
menuprog "Desktop Apps" folder icewm-menu-fdo
|
||||
includeprog icewm-menu-fdo --sep-before --no-sep-others
|
||||
-menufile Programs folder programs
|
||||
+#menufile Programs folder programs
|
||||
menufile Tool_bar folder toolbar
|
||||
+menuprog SUSE folder xdg_menu --format icewm
|
||||
diff --git a/src/wmprog.cc b/src/wmprog.cc
|
||||
index d1ce6b0..5190d80 100644
|
||||
--- a/src/wmprog.cc
|
||||
+++ b/src/wmprog.cc
|
||||
@@ -429,7 +429,42 @@ char *parseMenus(
|
||||
if (progmenu)
|
||||
container->addContainer(name.cstr(), icon, progmenu);
|
||||
}
|
||||
- } else if (!strcmp(word, "menuprogreload")) {
|
||||
+ } else if (!strcmp(word, "suseprog")) {
|
||||
+ Argument name;
|
||||
+
|
||||
+ p = YConfig::getArgument(&name, p);
|
||||
+ if (p == 0) return p;
|
||||
+
|
||||
+ Argument icons;
|
||||
+
|
||||
+ p = YConfig::getArgument(&icons, p);
|
||||
+ if (p == 0) return p;
|
||||
+
|
||||
+ Argument command;
|
||||
+ YStringArray args;
|
||||
+
|
||||
+ p = getCommandArgs(p, &command, args);
|
||||
+ if (p == 0) {
|
||||
+ msg(_("Error at prog %s"), name.cstr());
|
||||
+ return p;
|
||||
+ }
|
||||
+
|
||||
+ ref<YIcon> icon;
|
||||
+#ifndef LITE
|
||||
+ if (icons[0] != '-')
|
||||
+ icon = YIcon::getIcon(icons);
|
||||
+#endif
|
||||
+ MSG(("suseprog %s %s", name.cstr(), command.cstr()));
|
||||
+
|
||||
+ upath fullPath = findPath(getenv("PATH"), X_OK, command.cstr());
|
||||
+ if (fullPath != null) {
|
||||
+ ObjectMenu *progmenu = new MenuProgMenu(
|
||||
+ app, smActionListener, wmActionListener,
|
||||
+ name.cstr(), command.cstr(), args, 0);
|
||||
+ if (progmenu)
|
||||
+ container->addContainer(name.cstr(), icon, progmenu);
|
||||
+ }
|
||||
+ } else if (!strcmp(word, "menuprogreload")) {
|
||||
Argument name;
|
||||
diff --git a/src/wmmenu.cc b/src/wmmenu.cc
|
||||
index ccee25e..ec2ff81 100644
|
||||
--- a/src/wmmenu.cc
|
||||
+++ b/src/wmmenu.cc
|
||||
@@ -297,6 +297,45 @@ char* MenuLoader::parseMenuProg(char *p, ObjectContainer *container)
|
||||
return p;
|
||||
}
|
||||
|
||||
p = YConfig::getArgument(&name, p);
|
||||
+char* MenuLoader::parseSuseProg(char *p, ObjectContainer *container)
|
||||
+{
|
||||
+ Argument name;
|
||||
+
|
||||
+ p = YConfig::getArgument(&name, p);
|
||||
+ if (p == 0) return p;
|
||||
+
|
||||
+ Argument icons;
|
||||
+
|
||||
+ p = YConfig::getArgument(&icons, p);
|
||||
+ if (p == 0) return p;
|
||||
+
|
||||
+ Argument command;
|
||||
+ YStringArray args;
|
||||
+
|
||||
+ p = getCommandArgs(p, &command, args);
|
||||
+ if (p == 0) {
|
||||
+ msg(_("Error at prog %s"), name.cstr());
|
||||
+ return p;
|
||||
+ }
|
||||
+
|
||||
+ ref<YIcon> icon;
|
||||
+#ifndef LITE
|
||||
+ if (icons[0] != '-')
|
||||
+ icon = YIcon::getIcon(icons);
|
||||
+#endif
|
||||
+ MSG(("suseprog %s %s", name.cstr(), command.cstr()));
|
||||
+
|
||||
+ upath fullPath = findPath(getenv("PATH"), X_OK, command.cstr());
|
||||
+ if (fullPath != null) {
|
||||
+ ObjectMenu *progmenu = new MenuProgMenu(
|
||||
+ app, smActionListener, wmActionListener,
|
||||
+ name.cstr(), command.cstr(), args, 0);
|
||||
+ if (progmenu)
|
||||
+ container->addContainer(name.cstr(), icon, progmenu);
|
||||
+ }
|
||||
+ return p;
|
||||
+}
|
||||
+
|
||||
char* MenuLoader::parseMenuProgReload(char *p, ObjectContainer *container)
|
||||
{
|
||||
Argument name;
|
||||
@@ -398,6 +437,9 @@ char* MenuLoader::parseWord(char *word, char *p, ObjectContainer *container)
|
||||
else if (!strcmp(word, "menuprogreload")) {
|
||||
p = parseMenuProgReload(p, container);
|
||||
}
|
||||
+ else if (!strcmp(word, "suseprog")) {
|
||||
+ p = parseSuseProg(p, container);
|
||||
+ }
|
||||
else if (!strcmp(word, "include")) {
|
||||
p = parseIncludeStatement(p, container);
|
||||
}
|
||||
diff --git a/src/wmprog.h b/src/wmprog.h
|
||||
index 4e9bd1f..d5b9827 100644
|
||||
--- a/src/wmprog.h
|
||||
+++ b/src/wmprog.h
|
||||
@@ -31,10 +31,12 @@ private:
|
||||
char* parseMenuFile(char *data, ObjectContainer *container);
|
||||
char* parseMenuProg(char *data, ObjectContainer *container);
|
||||
char* parseMenuProgReload(char *data, ObjectContainer *container);
|
||||
+ char* parseSuseProg(char *p, ObjectContainer *container);
|
||||
char* parseKey(char *word, char *p);
|
||||
char* parseProgram(char *word, char *p, ObjectContainer *container);
|
||||
char* parseWord(char *word, char *p, ObjectContainer *container);
|
||||
|
||||
+
|
||||
IApp *app;
|
||||
YSMListener *smActionListener;
|
||||
YActionListener *wmActionListener;
|
||||
|
@ -1,18 +0,0 @@
|
||||
diff --git a/src/default.h b/src/default.h
|
||||
index a5e9a52..acc671a 100644
|
||||
--- a/src/default.h
|
||||
+++ b/src/default.h
|
||||
@@ -200,8 +200,12 @@ XIV(int, taskBarNetDelay, 500)
|
||||
XSV(const char *, cpuCommand, "xterm -name top -title Process\\ Status -e top")
|
||||
XSV(const char *, cpuClassHint, "top.XTerm")
|
||||
XIV(bool, cpuCombine, true)
|
||||
-XSV(const char *, netCommand, "xterm -name netstat -title 'Network Status' -e netstat -c")
|
||||
XSV(const char *, netClassHint, "netstat.XTerm")
|
||||
+#ifdef __linux__
|
||||
+XSV(const char *, netCommand, "xterm -name netstat -title 'Network Status' -e sh -c 'which ss > /dev/null && watch -t ss -putsw || netstat -c'")
|
||||
+#else
|
||||
+XSV(const char *, netCommand, "xterm -name netstat -title 'Network Status' -e netstat -c")
|
||||
+#endif
|
||||
XSV(const char *, netDevice, "eth0 wlan0")
|
||||
XSV(const char *, addressBarCommand, 0)
|
||||
#ifdef CONFIG_I18N
|
@ -1,3 +1,20 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 3 06:00:40 UTC 2019 - qzheng <qzheng@suse.com>
|
||||
|
||||
- Update to 1.5.3
|
||||
- Rebase patches
|
||||
- icewm-susemenu.patch: rebase "suseprog" function
|
||||
- icewm-desktop-nodisplay.patch: rebase, set NoDisplay for
|
||||
icewm.desktop
|
||||
- icewm-preferences.patch: rebase, only IconPath hunk not in
|
||||
upstream now
|
||||
- Drop patches
|
||||
- icewm-mate.patch: upstream no longer uses icewm-menu-gnome2 to
|
||||
generate a default menu, the current freedesktop.org approach
|
||||
is superior for current distros
|
||||
- icewm-use-iproute2-ss-instead-of-netstat.patch:
|
||||
was accepted by upstream
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 7 07:49:13 UTC 2018 - qzheng@suse.com
|
||||
|
||||
|
20
icewm.spec
20
icewm.spec
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package icewm
|
||||
#
|
||||
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -18,21 +18,17 @@
|
||||
|
||||
%global lites icewm icewmhint icewmbg icesh icewm-session
|
||||
Name: icewm
|
||||
Version: 1.4.2
|
||||
Version: 1.5.3
|
||||
Release: 0
|
||||
Summary: Window Manager with a Taskbar
|
||||
License: LGPL-2.1-or-later
|
||||
Group: System/GUI/Other
|
||||
Url: http://www.icewm.org/
|
||||
Source0: https://github.com/bbidulock/%{name}/releases/download/%{version}/%{name}-%{version}.tar.bz2
|
||||
# PATCH-FIX-OPENSUSE icewm-mate.patch sor.alexei@meowr.ru -- Add MATE Menus support.
|
||||
Patch0: icewm-mate.patch
|
||||
Url: https://ice-wm.org/
|
||||
Source0: https://github.com/ice-wm/%{name}/releases/download/%{version}/%{name}-%{version}.tar.xz
|
||||
# PATCH-FEATURE-SUSE icewm-susemenu.patch tyang@suse.com -- Add xdg-menu for SLED icewm
|
||||
Patch1: icewm-susemenu.patch
|
||||
# PATCH-FIX-OPENSUSE icewm-desktop-nodisplay.patch qkzhu@suse.com -- Set NoDisplay for icewm.desktop
|
||||
Patch2: icewm-desktop-nodisplay.patch
|
||||
# PATCH-FIX-UPSTREAM icewm-use-iproute2-ss-instead-of-netstat.patch qzheng@suse.com -- Use ss instead of netstat
|
||||
Patch3: icewm-use-iproute2-ss-instead-of-netstat.patch
|
||||
Patch99: icewm-preferences.patch
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
@ -142,10 +138,9 @@ mailbox status, and a digital clock. It is fast and small.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
|
||||
# Do not require needlessly new gettext.
|
||||
sed -i 's/0.19.6/0.18.3/g' configure.ac
|
||||
|
||||
@ -279,7 +274,8 @@ fi
|
||||
%{_datadir}/xsessions/icewm-session.desktop
|
||||
%{_datadir}/xsessions/icewm.desktop
|
||||
%{_datadir}/xsessions/default.desktop
|
||||
%{_mandir}/man1/icewm.1%{?ext_man}
|
||||
%{_mandir}/man1/
|
||||
%{_mandir}/man5/
|
||||
|
||||
%files config-upstream
|
||||
%dir %{_sysconfdir}/icewm/
|
||||
@ -307,7 +303,7 @@ fi
|
||||
%{_bindir}/icesh
|
||||
%{_bindir}/icewm-session
|
||||
%{_bindir}/icewm-menu-fdo
|
||||
%{_datadir}/applications/icewm.desktop
|
||||
%{_bindir}/icewm-menu-xrandr
|
||||
|
||||
%files lite
|
||||
%ghost %{_sysconfdir}/alternatives/icewm
|
||||
|
Loading…
x
Reference in New Issue
Block a user