Compare commits
70 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c15289f256 | ||
|
|
ecf1c2a202 | ||
|
|
519c7b74d0 | ||
|
|
d7cea7556d | ||
|
|
df30a3ba8b | ||
|
|
ec4f1c94fa | ||
|
|
da176870d3 | ||
|
|
fac6e6fd66 | ||
|
|
bb69724b82 | ||
|
|
fcf2dcdb06 | ||
|
|
9ebd99a8a9 | ||
|
|
a0c5fd8179 | ||
|
|
02cd56be9f | ||
|
|
4f59b89887 | ||
|
|
538b8a9951 | ||
|
|
e2e012a900 | ||
|
|
dc5fdda26f | ||
|
|
5ebdc9f36b | ||
|
|
9505fcee96 | ||
|
|
56d1937abd | ||
|
|
515c4e82f7 | ||
|
|
7ab6491db4 | ||
|
|
6686f2eda7 | ||
|
|
22c966a6ce | ||
|
|
0c05a8d893 | ||
|
|
9ab2ba9e5b | ||
|
|
16993a0cba | ||
|
|
d264c72005 | ||
|
|
f015c5d0aa | ||
| a0d3e620d3 | |||
|
|
45a5edf5db | ||
|
|
3799f579f5 | ||
|
|
1f78fc3b0a | ||
|
|
79bc53b349 | ||
|
|
aa3375fc38 | ||
|
|
570af1dcf7 | ||
|
|
0a17192029 | ||
|
|
f803053bff | ||
|
|
bed7f45659 | ||
|
|
261ce9a6da | ||
|
|
8eaa2c2438 | ||
|
|
c03e678995 | ||
|
|
2233aa4021 | ||
|
|
4c96147b3d | ||
|
|
7048fb346f | ||
|
|
7b5e7ccbe1 | ||
|
|
f69ce204b4 | ||
|
|
3fbd74b7d7 | ||
|
|
6b93040490 | ||
|
|
83bc9c5f70 | ||
|
|
1747e5e9bb | ||
|
|
9d417f62f6 | ||
| cc4327b623 | |||
|
|
88cb713f3b | ||
|
|
371635a8d9 | ||
|
|
d3b0bc3952 | ||
|
|
f3bc2562b0 | ||
|
|
45c55fe807 | ||
|
|
7b4fc14d35 | ||
|
|
74391687cd | ||
|
|
4bf12d3b88 | ||
|
|
52fa9ccb0d | ||
|
|
3c940d070c | ||
|
|
528ccb92be | ||
|
|
441ff2e395 | ||
|
|
17ca91fe7b | ||
|
|
4edb1fd18e | ||
|
|
60314f81b9 | ||
|
|
186e4dd22b | ||
|
|
3b5971e640 |
11 changed files with 357 additions and 400 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1,2 +1,2 @@
|
|||
/setlayout.c
|
||||
/openbox-3.5.0.tar.gz
|
||||
/openbox-3.6.1.tar.xz
|
||||
|
|
|
|||
|
|
@ -1,28 +0,0 @@
|
|||
From 339c19d1b3a7a5139aed8b59bad755ddd0e518ff Mon Sep 17 00:00:00 2001
|
||||
From: Mikael Magnusson <mikachu@gmail.com>
|
||||
Date: Sun, 3 Jun 2012 20:18:48 +0200
|
||||
Subject: [PATCH] Fix crash on unexpected NET_WM_MOVERESIZE_CANCEL messages
|
||||
|
||||
gtk+ 3.4 apparently sends these randomly when you select text in a
|
||||
GtkEntry. This also fixes bug #5460.
|
||||
---
|
||||
openbox/event.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/openbox/event.c b/openbox/event.c
|
||||
index b9ec1c5..4d091bf 100644
|
||||
--- a/openbox/event.c
|
||||
+++ b/openbox/event.c
|
||||
@@ -1495,7 +1495,8 @@ static void event_handle_client(ObClient *client, XEvent *e)
|
||||
}
|
||||
else if ((Atom)e->xclient.data.l[2] ==
|
||||
OBT_PROP_ATOM(NET_WM_MOVERESIZE_CANCEL))
|
||||
- moveresize_end(TRUE);
|
||||
+ if (moveresize_client)
|
||||
+ moveresize_end(TRUE);
|
||||
} else if (msgtype == OBT_PROP_ATOM(NET_MOVERESIZE_WINDOW)) {
|
||||
gint ograv, x, y, w, h;
|
||||
|
||||
--
|
||||
1.7.10
|
||||
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
From: Dana Jansens <danakj@orodu.net>
|
||||
Date: Sat, 15 Oct 2011 19:07:59 +0000 (-0400)
|
||||
Subject: Fixes for gnome-session 3.
|
||||
X-Git-Url: http://git.openbox.org/?p=dana%2Fopenbox.git;a=commitdiff_plain;h=3991e148e2acbc3da3b9c31e2459b20a4e598a03
|
||||
|
||||
Fixes for gnome-session 3.
|
||||
|
||||
We run by default with a panel (default gnome-panel) and then run Openbox
|
||||
without any panel if one cannot be found.
|
||||
|
||||
- Adds a fallback session for if a panel (default gnome-panel) not found.
|
||||
- Removes notifications as a requirement. Seems to be a legacy thing judging
|
||||
from the ubuntu .session files. Notifications are being provided by
|
||||
notify-osd on modern systems, and you can't check for its presence in
|
||||
gnome-session (gnome-classic.session always fails because it looks for it, so
|
||||
ubuntu falls back to gnome-fallback.session).
|
||||
---
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 4f60bd0..1f7427c 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -516,7 +516,8 @@ nodist_xsessions_DATA = \
|
||||
data/xsession/openbox-kde.desktop
|
||||
|
||||
dist_gnomesession_DATA = \
|
||||
- data/xsession/openbox-gnome.session
|
||||
+ data/gnome-session/openbox-gnome.session \
|
||||
+ data/gnome-session/openbox-gnome-fallback.session
|
||||
|
||||
dist_noinst_DATA = \
|
||||
data/rc.xsd \
|
||||
diff --git a/data/gnome-session/Makefile b/data/gnome-session/Makefile
|
||||
new file mode 100644
|
||||
index 0000000..b90edac
|
||||
--- /dev/null
|
||||
+++ b/data/gnome-session/Makefile
|
||||
@@ -0,0 +1,4 @@
|
||||
+all clean install:
|
||||
+ $(MAKE) -C .. -$(MAKEFLAGS) $@
|
||||
+
|
||||
+.PHONY: all clean install
|
||||
diff --git a/data/gnome-session/openbox-gnome-fallback.session b/data/gnome-session/openbox-gnome-fallback.session
|
||||
new file mode 100644
|
||||
index 0000000..156f2c3
|
||||
--- /dev/null
|
||||
+++ b/data/gnome-session/openbox-gnome-fallback.session
|
||||
@@ -0,0 +1,6 @@
|
||||
+[GNOME Session]
|
||||
+Name=GNOME/Openbox fallback (Safe Mode)
|
||||
+RequiredComponents=gnome-settings-daemon;
|
||||
+RequiredProviders=windowmanager;
|
||||
+DefaultProvider-windowmanager=openbox
|
||||
+DesktopName=GNOME
|
||||
diff --git a/data/gnome-session/openbox-gnome.session b/data/gnome-session/openbox-gnome.session
|
||||
new file mode 100644
|
||||
index 0000000..3399c2c
|
||||
--- /dev/null
|
||||
+++ b/data/gnome-session/openbox-gnome.session
|
||||
@@ -0,0 +1,9 @@
|
||||
+[GNOME Session]
|
||||
+Name=GNOME/Openbox
|
||||
+RequiredComponents=gnome-settings-daemon;
|
||||
+# Try load with the gnome-panel and use the fallback if we can't load a panel
|
||||
+RequiredProviders=windowmanager;panel
|
||||
+DefaultProvider-windowmanager=openbox
|
||||
+DefaultProvider-panel=gnome-panel
|
||||
+FallbackSession=openbox-gnome-fallback
|
||||
+DesktopName=GNOME
|
||||
diff --git a/data/openbox.desktop b/data/openbox.desktop
|
||||
index 9c19e67..d49ae22 100644
|
||||
--- a/data/openbox.desktop
|
||||
+++ b/data/openbox.desktop
|
||||
@@ -7,6 +7,10 @@ Icon=openbox
|
||||
NoDisplay=true
|
||||
# name we put on the WM spec check window
|
||||
X-GNOME-WMName=Openbox
|
||||
+# gnome-session autostart
|
||||
X-GNOME-Autostart-Phase=WindowManager
|
||||
X-GNOME-Provides=windowmanager
|
||||
+# Ubuntu stuff
|
||||
+X-Ubuntu-Gettext-Domain=openbox
|
||||
+# back compat
|
||||
X-GNOME-Autostart-Notify=true
|
||||
diff --git a/data/xsession/openbox-gnome.session b/data/xsession/openbox-gnome.session
|
||||
deleted file mode 100644
|
||||
index 2d8f07b..0000000
|
||||
--- a/data/xsession/openbox-gnome.session
|
||||
+++ /dev/null
|
||||
@@ -1,6 +0,0 @@
|
||||
-[GNOME Session]
|
||||
-Name=GNOME/Openbox
|
||||
-RequiredComponents=gnome-panel;gnome-settings-daemon;
|
||||
-RequiredProviders=windowmanager;notifications;
|
||||
-DefaultProvider-windowmanager=openbox
|
||||
-DefaultProvider-notifications=notification-daemon
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
From: Geoffrey Antos <dynamotwain@aim.com>
|
||||
Date: Fri, 7 Oct 2011 13:29:30 +0000 (-0400)
|
||||
Subject: Make openbox-gnome-session compatible with gnome3 with gnome-session 3.0+ support.
|
||||
X-Git-Url: http://git.openbox.org/?p=dana%2Fopenbox.git;a=commitdiff_plain;h=3f870080de978e905f764b6cbc8e662a419d8983
|
||||
|
||||
Make openbox-gnome-session compatible with gnome3 with gnome-session 3.0+ support.
|
||||
|
||||
Yay they did something nice and made it easier for other window managers to be used. How unexpected and pleasant.
|
||||
---
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index c62a594..7ed1f6a 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -6,6 +6,7 @@ localedir = $(datadir)/locale
|
||||
configdir = $(sysconfdir)/xdg
|
||||
rcdir = $(configdir)/openbox
|
||||
xsessionsdir = $(datadir)/xsessions
|
||||
+gnomesessiondir = $(datadir)/gnome-session/sessions
|
||||
gnomewmfilesdir = $(datadir)/gnome/wm-properties
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
obtpubincludedir= $(includedir)/openbox/@OBT_VERSION@/obt
|
||||
@@ -513,6 +514,9 @@ nodist_xsessions_DATA = \
|
||||
data/xsession/openbox-gnome.desktop \
|
||||
data/xsession/openbox-kde.desktop
|
||||
|
||||
+dist_gnomesession_DATA = \
|
||||
+ data/xsession/openbox-gnome.session
|
||||
+
|
||||
dist_noinst_DATA = \
|
||||
data/rc.xsd \
|
||||
data/menu.xsd \
|
||||
diff --git a/data/xsession/openbox-gnome-session.in b/data/xsession/openbox-gnome-session.in
|
||||
index 8dd799c..f31c9ad 100644
|
||||
--- a/data/xsession/openbox-gnome-session.in
|
||||
+++ b/data/xsession/openbox-gnome-session.in
|
||||
@@ -21,11 +21,11 @@ MINOR=$(echo $VER | cut -d . -f 2)
|
||||
# run GNOME with Openbox as its window manager
|
||||
|
||||
if test $MAJOR -lt 2 || (test $MAJOR = 2 && test $MINOR -le 22); then
|
||||
- # old gnome-session was easy to work with
|
||||
+ # older gnome-session was easy to work with
|
||||
export WINDOW_MANAGER="@bindir@/openbox"
|
||||
exec gnome-session --choose-session=openbox-session "$@"
|
||||
-else
|
||||
- # new gnome-session requires openbox to be set in gconf and an
|
||||
+elif test $MAJOR -lt 3; then
|
||||
+ # old gnome-session requires openbox to be set in gconf and an
|
||||
# openbox.desktop to be installed in the applications directory
|
||||
|
||||
SPATH=/desktop/gnome/session
|
||||
@@ -54,6 +54,12 @@ else
|
||||
|
||||
# run GNOME/Openbox
|
||||
exec gnome-session --default-session-key $SPATH/openbox_session "$@"
|
||||
+else
|
||||
+ # new gnome-session requires session file installed in
|
||||
+ # /usr/share/gnome-session/sessions as well as openbox.desktop to be
|
||||
+ # installed in the applications directory
|
||||
+
|
||||
+ exec gnome-session --session=openbox-gnome
|
||||
fi
|
||||
|
||||
|
||||
diff --git a/data/xsession/openbox-gnome.session b/data/xsession/openbox-gnome.session
|
||||
new file mode 100644
|
||||
index 0000000..2d8f07b
|
||||
--- /dev/null
|
||||
+++ b/data/xsession/openbox-gnome.session
|
||||
@@ -0,0 +1,6 @@
|
||||
+[GNOME Session]
|
||||
+Name=GNOME/Openbox
|
||||
+RequiredComponents=gnome-panel;gnome-settings-daemon;
|
||||
+RequiredProviders=windowmanager;notifications;
|
||||
+DefaultProvider-windowmanager=openbox
|
||||
+DefaultProvider-notifications=notification-daemon
|
||||
36
openbox-calc-layer.patch
Normal file
36
openbox-calc-layer.patch
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
From https://bugzilla.icculus.org/show_bug.cgi?id=6669#c2
|
||||
|
||||
diff --git a/openbox/client.c b/openbox/client.c
|
||||
index 3ff278ae..ac4ff827 100644
|
||||
--- a/openbox/client.c
|
||||
+++ b/openbox/client.c
|
||||
@@ -2702,9 +2702,10 @@ static void client_calc_layer_internal(ObClient *self)
|
||||
void client_calc_layer(ObClient *self)
|
||||
{
|
||||
GList *it;
|
||||
+ GList *list = g_list_copy(stacking_list);
|
||||
|
||||
/* skip over stuff above fullscreen layer */
|
||||
- for (it = stacking_list; it; it = g_list_next(it))
|
||||
+ for (it = list; it; it = g_list_next(it))
|
||||
if (window_layer(it->data) <= OB_STACKING_LAYER_FULLSCREEN) break;
|
||||
|
||||
/* find the windows in the fullscreen layer, and mark them not-visited */
|
||||
@@ -2717,7 +2718,7 @@ void client_calc_layer(ObClient *self)
|
||||
client_calc_layer_internal(self);
|
||||
|
||||
/* skip over stuff above fullscreen layer */
|
||||
- for (it = stacking_list; it; it = g_list_next(it))
|
||||
+ for (it = list; it; it = g_list_next(it))
|
||||
if (window_layer(it->data) <= OB_STACKING_LAYER_FULLSCREEN) break;
|
||||
|
||||
/* now recalc any windows in the fullscreen layer which have not
|
||||
@@ -2728,6 +2729,8 @@ void client_calc_layer(ObClient *self)
|
||||
!WINDOW_AS_CLIENT(it->data)->visited)
|
||||
client_calc_layer_internal(it->data);
|
||||
}
|
||||
+
|
||||
+ g_list_free(it);
|
||||
}
|
||||
|
||||
gboolean client_should_show(ObClient *self)
|
||||
|
|
@ -1,97 +0,0 @@
|
|||
commit c885c9a676e4860a68f0bdce4b926902f6597ebb
|
||||
Author: Mikael Magnusson <mikachu@gmail.com>
|
||||
Date: Thu Aug 4 18:34:54 2011 +0200
|
||||
|
||||
Change default doubleclick timeout to 500ms and keep track of where last click was
|
||||
|
||||
Bug #5152 - "mouse double-click time is too low by default - 200ms"
|
||||
|
||||
We only use the doubleclick in one place in the default configuration,
|
||||
for doubleclicking titlebars to maximize windows, so any negative impact
|
||||
of increasing the timeout should be minimal, especially with the
|
||||
addition of requiring the two clicks to be in the same place.
|
||||
|
||||
Doubleclicks are hardcoded to occur within 8 pixels for now, it doesn't
|
||||
seem worth it to add a config until someone complains. A possibility is
|
||||
using the drag threshold, but some people have that set very low so it
|
||||
could be hard to doubleclick then.
|
||||
|
||||
diff --git a/data/rc.xml b/data/rc.xml
|
||||
index 7598a72..209cc2d 100644
|
||||
--- a/data/rc.xml
|
||||
+++ b/data/rc.xml
|
||||
@@ -313,7 +313,7 @@
|
||||
<mouse>
|
||||
<dragThreshold>1</dragThreshold>
|
||||
<!-- number of pixels the mouse must move before a drag begins -->
|
||||
- <doubleClickTime>200</doubleClickTime>
|
||||
+ <doubleClickTime>500</doubleClickTime>
|
||||
<!-- in milliseconds (1000 = 1 second) -->
|
||||
<screenEdgeWarpTime>400</screenEdgeWarpTime>
|
||||
<!-- Time before changing desktops when the pointer touches the edge of the
|
||||
diff --git a/doc/rc-mouse-focus.xml b/doc/rc-mouse-focus.xml
|
||||
index 06c3ce5..dc7f2e9 100644
|
||||
--- a/doc/rc-mouse-focus.xml
|
||||
+++ b/doc/rc-mouse-focus.xml
|
||||
@@ -226,7 +226,7 @@
|
||||
<mouse>
|
||||
<dragThreshold>8</dragThreshold>
|
||||
<!-- number of pixels the mouse must move before a drag begins -->
|
||||
- <doubleClickTime>200</doubleClickTime>
|
||||
+ <doubleClickTime>500</doubleClickTime>
|
||||
<!-- in milliseconds (1000 = 1 second) -->
|
||||
|
||||
<context name="Frame">
|
||||
diff --git a/openbox/config.c b/openbox/config.c
|
||||
index debd9fb..8e0e5ac 100644
|
||||
--- a/openbox/config.c
|
||||
+++ b/openbox/config.c
|
||||
@@ -1070,7 +1070,7 @@ void config_startup(ObtXmlInst *i)
|
||||
obt_xml_register(i, "keyboard", parse_keyboard, NULL);
|
||||
|
||||
config_mouse_threshold = 8;
|
||||
- config_mouse_dclicktime = 200;
|
||||
+ config_mouse_dclicktime = 500;
|
||||
config_mouse_screenedgetime = 400;
|
||||
config_mouse_screenedgewarp = FALSE;
|
||||
|
||||
diff --git a/openbox/mouse.c b/openbox/mouse.c
|
||||
index ddf6851..2f0c8f5 100644
|
||||
--- a/openbox/mouse.c
|
||||
+++ b/openbox/mouse.c
|
||||
@@ -211,7 +211,7 @@ gboolean mouse_event(ObClient *client, XEvent *e)
|
||||
static Time ltime;
|
||||
static guint button = 0, state = 0, lbutton = 0;
|
||||
static Window lwindow = None;
|
||||
- static gint px, py, pwx = -1, pwy = -1;
|
||||
+ static gint px, py, pwx = -1, pwy = -1, lx = -10, ly = -10;
|
||||
gboolean used = FALSE;
|
||||
|
||||
ObFrameContext context;
|
||||
@@ -290,18 +290,24 @@ gboolean mouse_event(ObClient *client, XEvent *e)
|
||||
if (e->xbutton.x >= (signed)-b &&
|
||||
e->xbutton.y >= (signed)-b &&
|
||||
e->xbutton.x < (signed)(w+b) &&
|
||||
- e->xbutton.y < (signed)(h+b)) {
|
||||
+ e->xbutton.y < (signed)(h+b))
|
||||
+ {
|
||||
click = TRUE;
|
||||
/* double clicks happen if there were 2 in a row! */
|
||||
if (lbutton == button &&
|
||||
lwindow == e->xbutton.window &&
|
||||
e->xbutton.time - config_mouse_dclicktime <=
|
||||
- ltime) {
|
||||
+ ltime &&
|
||||
+ ABS(e->xbutton.x - lx) < 8 &&
|
||||
+ ABS(e->xbutton.y - ly) < 8)
|
||||
+ {
|
||||
dclick = TRUE;
|
||||
lbutton = 0;
|
||||
} else {
|
||||
lbutton = button;
|
||||
lwindow = e->xbutton.window;
|
||||
+ lx = e->xbutton.x;
|
||||
+ ly = e->xbutton.y;
|
||||
}
|
||||
} else {
|
||||
lbutton = 0;
|
||||
12
openbox-kf5menu.patch
Normal file
12
openbox-kf5menu.patch
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
diff -up openbox-3.6.1/data/xsession/openbox-kde-session.in.kf5menu openbox-3.6.1/data/xsession/openbox-kde-session.in
|
||||
--- openbox-3.6.1/data/xsession/openbox-kde-session.in.kf5menu 2011-10-16 18:13:18.000000000 +0200
|
||||
+++ openbox-3.6.1/data/xsession/openbox-kde-session.in 2020-11-09 10:42:43.755217411 +0100
|
||||
@@ -8,7 +8,7 @@ if test -n "$1"; then
|
||||
fi
|
||||
|
||||
# Set the prefix for the menu layout to use
|
||||
-export XDG_MENU_PREFIX="kde-4-"
|
||||
+export XDG_MENU_PREFIX="kf5-"
|
||||
|
||||
# Clean up after GDM
|
||||
xprop -root -remove _NET_NUMBER_OF_DESKTOPS \
|
||||
113
openbox-python3.patch
Normal file
113
openbox-python3.patch
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
diff -up openbox-3.6.1/data/autostart/openbox-xdg-autostart.python3 openbox-3.6.1/data/autostart/openbox-xdg-autostart
|
||||
--- openbox-3.6.1/data/autostart/openbox-xdg-autostart.python3 2013-04-17 14:27:27.000000000 +0200
|
||||
+++ openbox-3.6.1/data/autostart/openbox-xdg-autostart 2018-04-17 15:52:23.849765020 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/python3
|
||||
|
||||
# openbox-xdg-autostart runs things based on the XDG autostart specification
|
||||
# Copyright (C) 2008 Dana Jansens
|
||||
@@ -28,9 +28,9 @@ try:
|
||||
from xdg.DesktopEntry import DesktopEntry
|
||||
from xdg.Exceptions import ParsingError
|
||||
except ImportError:
|
||||
- print
|
||||
- print >>sys.stderr, "ERROR:", ME, "requires PyXDG to be installed"
|
||||
- print
|
||||
+ print()
|
||||
+ print("ERROR:", ME, "requires PyXDG to be installed", file=sys.stderr)
|
||||
+ print()
|
||||
sys.exit(1)
|
||||
|
||||
def main(argv=sys.argv):
|
||||
@@ -51,7 +51,7 @@ def main(argv=sys.argv):
|
||||
try:
|
||||
autofile = AutostartFile(path)
|
||||
except ParsingError:
|
||||
- print "Invalid .desktop file: " + path
|
||||
+ print("Invalid .desktop file: " + path)
|
||||
else:
|
||||
if not autofile in files:
|
||||
files.append(autofile)
|
||||
@@ -99,9 +99,9 @@ class AutostartFile:
|
||||
|
||||
def _alert(self, str, info=False):
|
||||
if info:
|
||||
- print "\t ", str
|
||||
+ print("\t ", str)
|
||||
else:
|
||||
- print "\t*", str
|
||||
+ print("\t*", str)
|
||||
|
||||
def _showInEnvironment(self, envs, verbose=False):
|
||||
default = not self.de.getOnlyShowIn()
|
||||
@@ -146,9 +146,9 @@ class AutostartFile:
|
||||
|
||||
def display(self, envs):
|
||||
if self._shouldRun(envs):
|
||||
- print "[*] " + self.de.getName()
|
||||
+ print("[*] " + self.de.getName())
|
||||
else:
|
||||
- print "[ ] " + self.de.getName()
|
||||
+ print("[ ] " + self.de.getName())
|
||||
self._alert("File: " + self.path, info=True)
|
||||
if self.de.getExec():
|
||||
self._alert("Executes: " + self.de.getExec(), info=True)
|
||||
@@ -165,33 +165,33 @@ class AutostartFile:
|
||||
os.chdir(here)
|
||||
|
||||
def show_help():
|
||||
- print "Usage:", ME, "[OPTION]... [ENVIRONMENT]..."
|
||||
- print
|
||||
- print "This tool will run xdg autostart .desktop files"
|
||||
- print
|
||||
- print "OPTIONS"
|
||||
- print " --list Show a list of the files which would be run"
|
||||
- print " Files which would be run are marked with an asterix"
|
||||
- print " symbol [*]. For files which would not be run,"
|
||||
- print " information is given for why they are excluded"
|
||||
- print " --help Show this help and exit"
|
||||
- print " --version Show version and copyright information"
|
||||
- print
|
||||
- print "ENVIRONMENT specifies a list of environments for which to run autostart"
|
||||
- print "applications. If none are specified, only applications which do not "
|
||||
- print "limit themselves to certain environments will be run."
|
||||
- print
|
||||
- print "ENVIRONMENT can be one or more of:"
|
||||
- print " GNOME Gnome Desktop"
|
||||
- print " KDE KDE Desktop"
|
||||
- print " ROX ROX Desktop"
|
||||
- print " XFCE XFCE Desktop"
|
||||
- print " Old Legacy systems"
|
||||
+ print("Usage:", ME, "[OPTION]... [ENVIRONMENT]...")
|
||||
+ print()
|
||||
+ print("This tool will run xdg autostart .desktop files")
|
||||
+ print()
|
||||
+ print("OPTIONS")
|
||||
+ print(" --list Show a list of the files which would be run")
|
||||
+ print(" Files which would be run are marked with an asterix")
|
||||
+ print(" symbol [*]. For files which would not be run,")
|
||||
+ print(" information is given for why they are excluded")
|
||||
+ print(" --help Show this help and exit")
|
||||
+ print(" --version Show version and copyright information")
|
||||
+ print()
|
||||
+ print("ENVIRONMENT specifies a list of environments for which to run autostart")
|
||||
+ print("applications. If none are specified, only applications which do not ")
|
||||
+ print("limit themselves to certain environments will be run.")
|
||||
+ print
|
||||
+ print("ENVIRONMENT can be one or more of:")
|
||||
+ print(" GNOME Gnome Desktop")
|
||||
+ print(" KDE KDE Desktop")
|
||||
+ print(" ROX ROX Desktop")
|
||||
+ print(" XFCE XFCE Desktop")
|
||||
+ print(" Old Legacy systems")
|
||||
print
|
||||
|
||||
def show_version():
|
||||
- print ME, VERSION
|
||||
- print "Copyright (c) 2008 Dana Jansens"
|
||||
+ print(ME, VERSION)
|
||||
+ print("Copyright (c) 2008 Dana Jansens")
|
||||
print
|
||||
|
||||
if __name__ == "__main__":
|
||||
266
openbox.spec
266
openbox.spec
|
|
@ -1,33 +1,30 @@
|
|||
Name: openbox
|
||||
Version: 3.5.0
|
||||
Release: 9%{?dist}
|
||||
Version: 3.6.1
|
||||
Release: 31%{?dist}
|
||||
Summary: A highly configurable and standards-compliant X11 window manager
|
||||
|
||||
Group: User Interface/Desktops
|
||||
License: GPLv2+
|
||||
License: GPL-2.0-or-later
|
||||
URL: http://openbox.org
|
||||
Source0: http://openbox.org/releases/%{name}-%{version}.tar.gz
|
||||
Source0: http://openbox.org/dist/%{name}/%{name}-%{version}.tar.xz
|
||||
Source1: http://icculus.org/openbox/tools/setlayout.c
|
||||
Source2: xdg-menu
|
||||
Source3: menu.xml
|
||||
Source4: terminals.menu
|
||||
Patch1: openbox-python3.patch
|
||||
Patch2: openbox-kf5menu.patch
|
||||
Patch3: openbox-calc-layer.patch
|
||||
|
||||
Patch1: openbox-doubleclick.patch
|
||||
#Patch2: openbox-3.4.11.2-gnomesession.patch
|
||||
# http://git.openbox.org/?p=dana/openbox.git;a=commit;h=3f870080
|
||||
Patch2: openbox-3.5.0-gnomesession.patch
|
||||
# http://git.openbox.org/?p=dana/openbox.git;a=commit;h=3991e148
|
||||
Patch3: openbox-3.5.0-gnomesession-fixes.patch
|
||||
# https://github.com/Mikachu/openbox/commit/339c19d1
|
||||
Patch4: openbox-3.5.0-Fix-crash-on-unexpected-NET_WM_MOVERESIZE_CANCEL-messages.patch
|
||||
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
|
||||
# required by xdg-menu and xdg-autostart scripts
|
||||
Requires: pyxdg
|
||||
Requires: python3-pyxdg
|
||||
# used by xdg-menu for icon support (optional)
|
||||
Suggests: python3-gobject
|
||||
# as discussed in https://bugzilla.redhat.com/860997
|
||||
Requires: redhat-menus
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gettext
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: pango-devel
|
||||
|
|
@ -38,8 +35,15 @@ BuildRequires: libXt-devel
|
|||
BuildRequires: libXrandr-devel
|
||||
BuildRequires: libXinerama-devel
|
||||
BuildRequires: imlib2-devel
|
||||
# workaround for yum to install correct libpng-devel
|
||||
BuildRequires: libpng-devel
|
||||
Provides: firstboot(windowmanager)
|
||||
|
||||
# gdm-control, gnome-control-center and openbox-gnome were removed in 3.5.2-5
|
||||
Obsoletes: gdm-control < 3.5.2-5
|
||||
Obsoletes: gnome-panel-control < 3.5.2-5
|
||||
Obsoletes: %{name}-gnome < 3.5.2-5
|
||||
|
||||
%description
|
||||
Openbox is a window manager designed explicity for standards-compliance and
|
||||
speed. It is fast, lightweight, and heavily configurable (using XML for its
|
||||
|
|
@ -50,14 +54,12 @@ actions, multi-head/Xinerama support, and dynamically generated "pipe menus."
|
|||
For a full list of the FreeDesktop.org standards with which it is compliant,
|
||||
please see the COMPLIANCE file in the included documentation of this package.
|
||||
For a graphical configuration editor, you'll need to install the obconf
|
||||
package. For a graphical menu editor, you'll need to install the obmenu
|
||||
package.
|
||||
|
||||
|
||||
%package devel
|
||||
Summary: Development files for %{name}
|
||||
Group: Development/Libraries
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
Requires: pkgconfig
|
||||
Requires: pango-devel
|
||||
Requires: libxml2-devel
|
||||
|
|
@ -70,55 +72,16 @@ developing applications that use %{name}.
|
|||
|
||||
%package libs
|
||||
Summary: Shared libraries for %{name}
|
||||
Group: Development/Libraries
|
||||
|
||||
%description libs
|
||||
The %{name}-libs package contains shared libraries used by %{name}.
|
||||
|
||||
|
||||
%package gnome
|
||||
Summary: GNOME integration for %{name}
|
||||
Group: User Interface/Desktops
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: gnome-session
|
||||
Requires: gnome-panel-control
|
||||
Requires: gdm-control
|
||||
|
||||
%description gnome
|
||||
The %{name}-gnome package contains the files needed for using %{name} inside a
|
||||
GNOME session.
|
||||
|
||||
|
||||
%package -n gnome-panel-control
|
||||
Summary: Command line utility to control the GNOME panel
|
||||
Group: User Interface/Desktops
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: gnome-panel
|
||||
|
||||
%description -n gnome-panel-control
|
||||
gnome-panel-control can be used to invoke the GNOME panel run or main menu from
|
||||
the command line. It is originally a helper utility of openbox since
|
||||
gnome-panel is no longer managing its own key bindings.
|
||||
|
||||
|
||||
%package -n gdm-control
|
||||
Summary: Command line utility to control the GNOME Display Manager
|
||||
Group: User Interface/Desktops
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: gnome-panel
|
||||
|
||||
%description -n gdm-control
|
||||
gdm-control can be used to control the GNOME Display Manager. It can invoke
|
||||
it's power management functions, shut down and reboot a machine or switch users.
|
||||
It is originally a helper utility of openbox since gdm lacks control over these
|
||||
features.
|
||||
|
||||
|
||||
%package kde
|
||||
Summary: KDE integration for %{name}
|
||||
Group: User Interface/Desktops
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: kdebase-workspace
|
||||
Requires: plasma-workspace
|
||||
BuildArch: noarch
|
||||
|
||||
%description kde
|
||||
The %{name}-kde package contains the files needed for using %{name} inside a
|
||||
|
|
@ -127,11 +90,9 @@ KDE session.
|
|||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch1 -p1 -b .doubleclick
|
||||
# patch 3 depends on patch2!
|
||||
%patch2 -p1 -b .gnomesession
|
||||
%patch3 -p1 -b .gnomesession-fixes
|
||||
%patch4 -p1 -b .fix-crash
|
||||
%patch -P1 -p1 -b .python3
|
||||
%patch -P2 -p1 -b .kf5menu
|
||||
%patch -P3 -p1 -b .calc-layer
|
||||
|
||||
|
||||
%build
|
||||
|
|
@ -140,12 +101,12 @@ KDE session.
|
|||
## Fix RPATH hardcoding.
|
||||
sed -ie 's|^hardcode_libdir_flag_spec=.*$|hardcode_libdir_flag_spec=""|g' libtool
|
||||
sed -ie 's|^runpath_var=LD_RUN_PATH$|runpath_var=DIE_RPATH_DIE|g' libtool
|
||||
make %{?_smp_mflags}
|
||||
%make_build
|
||||
|
||||
gcc %{optflags} -o setlayout %{SOURCE1} -lX11
|
||||
gcc $RPM_OPT_FLAGS $RPM_LD_FLAGS -o setlayout %{SOURCE1} -lX11
|
||||
|
||||
%install
|
||||
make install DESTDIR=%{buildroot}
|
||||
%make_install
|
||||
|
||||
install setlayout %{buildroot}%{_bindir}
|
||||
install -p %{SOURCE2} %{buildroot}%{_libexecdir}/openbox-xdg-menu
|
||||
|
|
@ -160,6 +121,14 @@ install -m644 -D data/gnome-session/openbox-gnome.session \
|
|||
install -m644 -D data/gnome-session/openbox-gnome-fallback.session \
|
||||
%{buildroot}%{_datadir}/gnome-session/sessions/openbox-gnome-fallback.session
|
||||
|
||||
# remove unpackaged files
|
||||
pushd %{buildroot}
|
||||
rm ./%{_bindir}/{gdm-control,gnome-panel-control,%{name}-gnome-session}
|
||||
rm ./%{_datadir}/xsessions/%{name}-gnome.desktop
|
||||
rm ./%{_datadir}/gnome/wm-properties/openbox.desktop
|
||||
rm ./%{_datadir}/gnome-session/sessions/openbox-gnome*.session
|
||||
rm ./%{_mandir}/man1/%{name}-gnome-session*.1*
|
||||
popd
|
||||
|
||||
|
||||
%find_lang %{name}
|
||||
|
|
@ -196,32 +165,153 @@ rm -rf %{buildroot}%{_datadir}/doc/%{name}
|
|||
%{_libdir}/libobt.so
|
||||
%{_libdir}/pkgconfig/*.pc
|
||||
|
||||
%files gnome
|
||||
%{_bindir}/%{name}-gnome-session
|
||||
%{_datadir}/xsessions/%{name}-gnome.desktop
|
||||
%{_datadir}/gnome/wm-properties/openbox.desktop
|
||||
%{_datadir}/gnome-session/sessions/openbox-gnome*.session
|
||||
%{_mandir}/man1/%{name}-gnome-session*.1*
|
||||
|
||||
%files -n gnome-panel-control
|
||||
%{_bindir}/gnome-panel-control
|
||||
|
||||
%files -n gdm-control
|
||||
%{_bindir}/gdm-control
|
||||
|
||||
%files kde
|
||||
%{_bindir}/%{name}-kde-session
|
||||
%{_datadir}/xsessions/%{name}-kde.desktop
|
||||
%{_mandir}/man1/%{name}-kde-session*.1*
|
||||
|
||||
|
||||
%post libs -p /sbin/ldconfig
|
||||
|
||||
|
||||
%postun libs -p /sbin/ldconfig
|
||||
|
||||
%ldconfig_scriptlets libs
|
||||
|
||||
%changelog
|
||||
* Thu Jul 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-31
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
|
||||
|
||||
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-30
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
|
||||
|
||||
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-29
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
|
||||
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-28
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-27
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-26
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-25
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-24
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Tue Jun 13 2023 Leigh Scott <leigh123linux@gmail.com> - 3.6.1-23
|
||||
- Rebuild fo new imlib2
|
||||
|
||||
* Thu Apr 27 2023 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-22
|
||||
- fix crash with new glib (#2178299)
|
||||
|
||||
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-21
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-20
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-19
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-18
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-17
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Mon Nov 09 2020 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-16
|
||||
- update XDG menu prefix in KDE session script (#1851755)
|
||||
- drop obsolete KDE4 requirement
|
||||
|
||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-15
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-14
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Wed Oct 09 2019 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-13
|
||||
- remove obmenu from description
|
||||
|
||||
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-12
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-11
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Tue Apr 17 2018 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-9
|
||||
- fix pyxdg requirement
|
||||
|
||||
* Tue Apr 17 2018 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-8
|
||||
- switch packaged python scripts to python3
|
||||
|
||||
* Mon Feb 26 2018 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-7
|
||||
- build setlayout with hardening LDFLAGS (#1548830)
|
||||
- use macro for ldconfig scriptlets
|
||||
- add gcc to build requirements
|
||||
|
||||
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Thu Jul 02 2015 Miroslav Lichvar <mlichvar@redhat.com> - 3.6.1-1
|
||||
- update to 3.6.1
|
||||
|
||||
* Thu Jun 25 2015 Miroslav Lichvar <mlichvar@redhat.com> - 3.6-3
|
||||
- restore libobrender compatibility (#1231693)
|
||||
|
||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.6-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Mon Jun 01 2015 Miroslav Lichvar <mlichvar@redhat.com> - 3.6-1
|
||||
- update to 3.6
|
||||
|
||||
* Thu Mar 05 2015 Rex Dieter <rdieter@fedoraproject.org> 3.5.2-7
|
||||
- -kde: fix deps for plasma5
|
||||
|
||||
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.2-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
* Mon Jul 07 2014 Miroslav Lichvar <mlichvar@redhat.com> - 3.5.2-5
|
||||
- drop gnome subpackages (#964977)
|
||||
- fix typo in description (#1064959)
|
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.2-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Tue Dec 10 2013 Christoph Wickert <cwickert@fedoraproject.org> - 3.5.2-3
|
||||
- gdm-control depends on gdm, not on gnome-panel (#964977)
|
||||
|
||||
* Thu Aug 15 2013 Miroslav Lichvar <mlichvar@redhat.com> - 3.5.2-2
|
||||
- Add workaround for yum to install correct libpng-devel in build
|
||||
|
||||
* Tue Aug 13 2013 Miroslav Lichvar <mlichvar@redhat.com> - 3.5.2-1
|
||||
- Update to 3.5.2
|
||||
|
||||
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.0-12.20121001git782b28
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
* Mon Mar 11 2013 Miroslav Lichvar <mlichvar@redhat.com> - 3.5.0-11.20121001git782b28
|
||||
- Update to git snapshot 20121001git782b28
|
||||
- Update xdg-menu to work with latest gtk3 (#914830)
|
||||
- Make some dependencies arch-specific
|
||||
- Make gnome and kde subpackages noarch
|
||||
|
||||
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5.0-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||
|
||||
* Tue Nov 13 2012 Miroslav Lichvar <mlichvar@redhat.com> - 3.5.0-9
|
||||
- Update xdg-menu to work with latest pyxdg (#874633)
|
||||
- Remove unnecessary macros
|
||||
|
|
@ -410,7 +500,7 @@ rm -rf %{buildroot}%{_datadir}/doc/%{name}
|
|||
- Allow building with startup-notification as an rpmbuild option (though it is
|
||||
disabled by default as recommended by upstream).
|
||||
|
||||
* Sun Sep 09 2006 Peter Gordon <peter@thecodergeek.com> - 3.3.1-1
|
||||
* Sat Sep 09 2006 Peter Gordon <peter@thecodergeek.com> - 3.3.1-1
|
||||
- Update to new 3.3.1 from upstream
|
||||
|
||||
* Sun Aug 27 2006 Peter Gordon <peter@thecodergeek.com> - 3.3-3
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1,2 +1,2 @@
|
|||
16ca0d290cae2f4c16a35e9cdfb6f503 setlayout.c
|
||||
00441b53cf14c03566c8e82643544ff9 openbox-3.5.0.tar.gz
|
||||
46bf5f1edda0eda0d9e824b585988be9 openbox-3.6.1.tar.xz
|
||||
|
|
|
|||
35
xdg-menu
35
xdg-menu
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/python
|
||||
#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (C) 2008 Red Hat, Inc.
|
||||
#
|
||||
|
|
@ -26,6 +26,8 @@ from xml.sax.saxutils import escape
|
|||
|
||||
icons = True
|
||||
try:
|
||||
import gi
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk
|
||||
except ImportError:
|
||||
icons = False
|
||||
|
|
@ -47,13 +49,14 @@ def icon_attr(entry):
|
|||
iconinfo = theme.lookup_icon(name, 22, Gtk.IconLookupFlags.NO_SVG)
|
||||
if iconinfo:
|
||||
iconfile = iconinfo.get_filename()
|
||||
iconinfo.free()
|
||||
if hasattr(iconinfo, 'free'):
|
||||
iconinfo.free()
|
||||
if iconfile:
|
||||
return ' icon="' + iconfile + '"'
|
||||
return ''
|
||||
|
||||
def escape_utf8(s):
|
||||
if isinstance(s, unicode):
|
||||
if sys.version_info[0] < 3 and isinstance(s, unicode):
|
||||
s = s.encode('utf-8', 'xmlcharrefreplace')
|
||||
return escape(s)
|
||||
|
||||
|
|
@ -62,25 +65,25 @@ def entry_name(entry):
|
|||
|
||||
def walk_menu(entry):
|
||||
if isinstance(entry, xdg.Menu.Menu) and entry.Show is True:
|
||||
print '<menu id="%s" label="%s"%s>' \
|
||||
print('<menu id="%s" label="%s"%s>' \
|
||||
% (entry_name(entry),
|
||||
entry_name(entry),
|
||||
escape_utf8(icon_attr(entry)))
|
||||
map(walk_menu, entry.getEntries())
|
||||
print '</menu>'
|
||||
escape_utf8(icon_attr(entry))))
|
||||
list(map(walk_menu, entry.getEntries()))
|
||||
print('</menu>')
|
||||
elif isinstance(entry, xdg.Menu.MenuEntry) and entry.Show is True:
|
||||
name = entry_name(entry.DesktopEntry)
|
||||
print ' <item label="%s"%s>' % (name.replace('"', ''),
|
||||
escape_utf8(icon_attr(entry.DesktopEntry)))
|
||||
print(' <item label="%s"%s>' % (name.replace('"', ''),
|
||||
escape_utf8(icon_attr(entry.DesktopEntry))))
|
||||
command = re.sub(' -caption "%c"| -caption %c',
|
||||
' -caption "%s"' % name,
|
||||
escape_utf8(entry.DesktopEntry.getExec()))
|
||||
command = re.sub(' [^ ]*%[fFuUdDnNickvm]', '', command)
|
||||
if entry.DesktopEntry.getTerminal():
|
||||
command = 'xterm -title "%s" -e %s' % (name, command)
|
||||
print ' <action name="Execute">' + \
|
||||
'<command>%s</command></action>' % command
|
||||
print ' </item>'
|
||||
print(' <action name="Execute">' + \
|
||||
'<command>%s</command></action>' % command)
|
||||
print(' </item>')
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
menufile = sys.argv[1] + '.menu'
|
||||
|
|
@ -99,7 +102,7 @@ if icons:
|
|||
|
||||
menu = xdg.Menu.parse(menufile)
|
||||
|
||||
print '<?xml version="1.0" encoding="UTF-8"?>'
|
||||
print '<openbox_pipe_menu>'
|
||||
map(walk_menu, menu.getEntries())
|
||||
print '</openbox_pipe_menu>'
|
||||
print('<?xml version="1.0" encoding="UTF-8"?>')
|
||||
print('<openbox_pipe_menu>')
|
||||
list(map(walk_menu, menu.getEntries()))
|
||||
print('</openbox_pipe_menu>')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue