Merge branch 'backport'
This commit is contained in:
commit
3167fc223e
6 changed files with 238 additions and 28 deletions
|
@ -32,6 +32,9 @@ bin_PROGRAMS = \
|
||||||
openbox/openbox \
|
openbox/openbox \
|
||||||
tools/gnome-panel-control/gnome-panel-control
|
tools/gnome-panel-control/gnome-panel-control
|
||||||
|
|
||||||
|
bin_SCRIPTS = \
|
||||||
|
tools/xdg-autostart/xdg-autostart
|
||||||
|
|
||||||
nodist_bin_SCRIPTS = \
|
nodist_bin_SCRIPTS = \
|
||||||
data/xsession/openbox-session \
|
data/xsession/openbox-session \
|
||||||
data/xsession/openbox-gnome-session \
|
data/xsession/openbox-gnome-session \
|
||||||
|
|
|
@ -30,3 +30,10 @@ fi
|
||||||
if which start_kdeinit >/dev/null; then
|
if which start_kdeinit >/dev/null; then
|
||||||
LD_BIND_NOW=true start_kdeinit --new-startup +kcminit_startup &
|
LD_BIND_NOW=true start_kdeinit --new-startup +kcminit_startup &
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Run XDG autostart things. By default don't run anything desktop-specific
|
||||||
|
# See xdg-autostart --help more info
|
||||||
|
DESKTOP_ENV=""
|
||||||
|
if which xdg-autostart; then
|
||||||
|
xdg-autostart $DESKTOP_ENV
|
||||||
|
fi
|
||||||
|
|
|
@ -58,7 +58,7 @@ static void screen_fallback_focus(void);
|
||||||
guint screen_num_desktops;
|
guint screen_num_desktops;
|
||||||
guint screen_num_monitors;
|
guint screen_num_monitors;
|
||||||
guint screen_desktop;
|
guint screen_desktop;
|
||||||
guint screen_last_desktop = 1;
|
guint screen_last_desktop;
|
||||||
gboolean screen_showing_desktop;
|
gboolean screen_showing_desktop;
|
||||||
ObDesktopLayout screen_desktop_layout;
|
ObDesktopLayout screen_desktop_layout;
|
||||||
gchar **screen_desktop_names;
|
gchar **screen_desktop_names;
|
||||||
|
|
32
po/cs.po
32
po/cs.po
|
@ -5,10 +5,10 @@
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Openbox 3.4.3\n"
|
"Project-Id-Version: Openbox 3.4.6\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
|
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
|
||||||
"POT-Creation-Date: 2008-02-02 11:51-0500\n"
|
"POT-Creation-Date: 2008-02-09 09:34+0100\n"
|
||||||
"PO-Revision-Date: 2007-07-21 00:15+0200\n"
|
"PO-Revision-Date: 2008-02-09 09:33+0100\n"
|
||||||
"Last-Translator: tezlo <tezlo@gmx.net>\n"
|
"Last-Translator: tezlo <tezlo@gmx.net>\n"
|
||||||
"Language-Team: Czech <cs@li.org>\n"
|
"Language-Team: Czech <cs@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
@ -32,33 +32,33 @@ msgstr "Nepodařilo se spustit '%s': %s"
|
||||||
|
|
||||||
#: openbox/client.c:1988 openbox/client.c:2020
|
#: openbox/client.c:1988 openbox/client.c:2020
|
||||||
msgid "Killing..."
|
msgid "Killing..."
|
||||||
msgstr ""
|
msgstr "Ukončování..."
|
||||||
|
|
||||||
#: openbox/client.c:1990 openbox/client.c:2022
|
#: openbox/client.c:1990 openbox/client.c:2022
|
||||||
msgid "Not Responding"
|
msgid "Not Responding"
|
||||||
msgstr ""
|
msgstr "Neodpovídá"
|
||||||
|
|
||||||
#: openbox/client_list_combined_menu.c:91 openbox/client_list_menu.c:94
|
#: openbox/client_list_combined_menu.c:91 openbox/client_list_menu.c:94
|
||||||
msgid "Go there..."
|
msgid "Go there..."
|
||||||
msgstr "Jdi tam..."
|
msgstr "Jdi tam..."
|
||||||
|
|
||||||
#: openbox/client_list_combined_menu.c:97
|
#: openbox/client_list_combined_menu.c:98
|
||||||
msgid "Manage desktops"
|
msgid "Manage desktops"
|
||||||
msgstr "Spravovat plochy"
|
msgstr "Spravovat plochy"
|
||||||
|
|
||||||
#: openbox/client_list_combined_menu.c:98 openbox/client_list_menu.c:157
|
#: openbox/client_list_combined_menu.c:99 openbox/client_list_menu.c:158
|
||||||
msgid "_Add new desktop"
|
msgid "_Add new desktop"
|
||||||
msgstr "_Přidat novou plochu"
|
msgstr "_Přidat novou plochu"
|
||||||
|
|
||||||
#: openbox/client_list_combined_menu.c:99 openbox/client_list_menu.c:158
|
#: openbox/client_list_combined_menu.c:100 openbox/client_list_menu.c:159
|
||||||
msgid "_Remove last desktop"
|
msgid "_Remove last desktop"
|
||||||
msgstr "_Odstranit poslední plochu"
|
msgstr "_Odstranit poslední plochu"
|
||||||
|
|
||||||
#: openbox/client_list_combined_menu.c:151
|
#: openbox/client_list_combined_menu.c:153
|
||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "Okna"
|
msgstr "Okna"
|
||||||
|
|
||||||
#: openbox/client_list_menu.c:204
|
#: openbox/client_list_menu.c:206
|
||||||
msgid "Desktops"
|
msgid "Desktops"
|
||||||
msgstr "Plochy"
|
msgstr "Plochy"
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ msgstr "Oz_dobit/Odzdobit"
|
||||||
msgid "_Close"
|
msgid "_Close"
|
||||||
msgstr "_Zavřít"
|
msgstr "_Zavřít"
|
||||||
|
|
||||||
#: openbox/config.c:750
|
#: openbox/config.c:754
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid button '%s' specified in config file"
|
msgid "Invalid button '%s' specified in config file"
|
||||||
msgstr "Neplatné tlačítko '%s' v konfiguračním souboru"
|
msgstr "Neplatné tlačítko '%s' v konfiguračním souboru"
|
||||||
|
@ -255,7 +255,7 @@ msgstr " --restart Restartovat Openbox\n"
|
||||||
|
|
||||||
#: openbox/openbox.c:507
|
#: openbox/openbox.c:507
|
||||||
msgid " --exit Exit Openbox\n"
|
msgid " --exit Exit Openbox\n"
|
||||||
msgstr ""
|
msgstr " --exit Ukončit Openbox\n"
|
||||||
|
|
||||||
#: openbox/openbox.c:508
|
#: openbox/openbox.c:508
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -290,11 +290,11 @@ msgstr ""
|
||||||
"\n"
|
"\n"
|
||||||
"Prosím hlašte chyby na %s\n"
|
"Prosím hlašte chyby na %s\n"
|
||||||
|
|
||||||
#: openbox/openbox.c:583
|
#: openbox/openbox.c:582
|
||||||
msgid "--config-file requires an argument\n"
|
msgid "--config-file requires an argument\n"
|
||||||
msgstr ""
|
msgstr "--config-file vyžaduje argument\n"
|
||||||
|
|
||||||
#: openbox/openbox.c:626
|
#: openbox/openbox.c:625
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid command line argument '%s'\n"
|
msgid "Invalid command line argument '%s'\n"
|
||||||
msgstr "Neplatný argument příkazové řádky '%s'\n"
|
msgstr "Neplatný argument příkazové řádky '%s'\n"
|
||||||
|
@ -320,6 +320,8 @@ msgid ""
|
||||||
"Openbox is configured for %d desktops, but the current session has %d. "
|
"Openbox is configured for %d desktops, but the current session has %d. "
|
||||||
"Overriding the Openbox configuration."
|
"Overriding the Openbox configuration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Openbox je konfigurován pro %d ploch, ale současné sezení má %d. "
|
||||||
|
"KOnfigurace Openboxu bude změněna."
|
||||||
|
|
||||||
#: openbox/screen.c:1169
|
#: openbox/screen.c:1169
|
||||||
#, c-format
|
#, c-format
|
||||||
|
|
24
po/sv.po
24
po/sv.po
|
@ -5,10 +5,10 @@
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Openbox 3.4.6\n"
|
"Project-Id-Version: Openbox 3.4.6.1\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
|
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
|
||||||
"POT-Creation-Date: 2008-02-02 11:51-0500\n"
|
"POT-Creation-Date: 2008-02-09 09:34+0100\n"
|
||||||
"PO-Revision-Date: 2008-01-25 03:52+0100\n"
|
"PO-Revision-Date: 2008-02-09 09:41+0100\n"
|
||||||
"Last-Translator: Mikael Magnusson <mikachu@icculus.org>\n"
|
"Last-Translator: Mikael Magnusson <mikachu@icculus.org>\n"
|
||||||
"Language-Team: None\n"
|
"Language-Team: None\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
@ -42,23 +42,23 @@ msgstr "Svarar Inte"
|
||||||
msgid "Go there..."
|
msgid "Go there..."
|
||||||
msgstr "Gå dit..."
|
msgstr "Gå dit..."
|
||||||
|
|
||||||
#: openbox/client_list_combined_menu.c:97
|
#: openbox/client_list_combined_menu.c:98
|
||||||
msgid "Manage desktops"
|
msgid "Manage desktops"
|
||||||
msgstr "Hantera skrivbord"
|
msgstr "Hantera skrivbord"
|
||||||
|
|
||||||
#: openbox/client_list_combined_menu.c:98 openbox/client_list_menu.c:157
|
#: openbox/client_list_combined_menu.c:99 openbox/client_list_menu.c:158
|
||||||
msgid "_Add new desktop"
|
msgid "_Add new desktop"
|
||||||
msgstr "_Lägg till nytt skrivbord"
|
msgstr "_Lägg till nytt skrivbord"
|
||||||
|
|
||||||
#: openbox/client_list_combined_menu.c:99 openbox/client_list_menu.c:158
|
#: openbox/client_list_combined_menu.c:100 openbox/client_list_menu.c:159
|
||||||
msgid "_Remove last desktop"
|
msgid "_Remove last desktop"
|
||||||
msgstr "_Ta bort sista skrivbordet"
|
msgstr "_Ta bort sista skrivbordet"
|
||||||
|
|
||||||
#: openbox/client_list_combined_menu.c:151
|
#: openbox/client_list_combined_menu.c:153
|
||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "Fönster"
|
msgstr "Fönster"
|
||||||
|
|
||||||
#: openbox/client_list_menu.c:204
|
#: openbox/client_list_menu.c:206
|
||||||
msgid "Desktops"
|
msgid "Desktops"
|
||||||
msgstr "Skrivbord"
|
msgstr "Skrivbord"
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ msgstr "_Dekorationer"
|
||||||
msgid "_Close"
|
msgid "_Close"
|
||||||
msgstr "Stän_g"
|
msgstr "Stän_g"
|
||||||
|
|
||||||
#: openbox/config.c:750
|
#: openbox/config.c:754
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid button '%s' specified in config file"
|
msgid "Invalid button '%s' specified in config file"
|
||||||
msgstr "Ogiltig knapp '%s' angiven i konfigurationsfilen"
|
msgstr "Ogiltig knapp '%s' angiven i konfigurationsfilen"
|
||||||
|
@ -230,7 +230,7 @@ msgstr " --replace Ers
|
||||||
|
|
||||||
#: openbox/openbox.c:502
|
#: openbox/openbox.c:502
|
||||||
msgid " --config-file FILE Specify the path to the config file to use\n"
|
msgid " --config-file FILE Specify the path to the config file to use\n"
|
||||||
msgstr ""
|
msgstr " --config-file FIL Ange sökvägen till konfigurationsfil att använda\n"
|
||||||
|
|
||||||
#: openbox/openbox.c:503
|
#: openbox/openbox.c:503
|
||||||
msgid " --sm-disable Disable connection to the session manager\n"
|
msgid " --sm-disable Disable connection to the session manager\n"
|
||||||
|
@ -289,11 +289,11 @@ msgstr ""
|
||||||
"\n"
|
"\n"
|
||||||
"Rapportera buggar till %s\n"
|
"Rapportera buggar till %s\n"
|
||||||
|
|
||||||
#: openbox/openbox.c:583
|
#: openbox/openbox.c:582
|
||||||
msgid "--config-file requires an argument\n"
|
msgid "--config-file requires an argument\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: openbox/openbox.c:626
|
#: openbox/openbox.c:625
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid command line argument '%s'\n"
|
msgid "Invalid command line argument '%s'\n"
|
||||||
msgstr "Ogiltigt kommandoradsargument '%s'\n"
|
msgstr "Ogiltigt kommandoradsargument '%s'\n"
|
||||||
|
|
198
tools/xdg-autostart/xdg-autostart
Executable file
198
tools/xdg-autostart/xdg-autostart
Executable file
|
@ -0,0 +1,198 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
# xdg-autostart runs things based on the XDG autostart specification
|
||||||
|
# Copyright (C) 2008 Dana Jansens
|
||||||
|
#
|
||||||
|
# XDG autostart specification can be found here:
|
||||||
|
# http://standards.freedesktop.org/autostart-spec/
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# LICENSE:
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
ME="xdg-autostart"
|
||||||
|
VERSION="1.0"
|
||||||
|
|
||||||
|
import os, glob, sys
|
||||||
|
try:
|
||||||
|
from xdg import BaseDirectory
|
||||||
|
from xdg.DesktopEntry import DesktopEntry
|
||||||
|
from xdg.Exceptions import ParsingError
|
||||||
|
except ImportError:
|
||||||
|
print
|
||||||
|
print "ERROR:", ME, "requires PyXDG to be installed"
|
||||||
|
print
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
def main(argv=sys.argv):
|
||||||
|
if "--help" in argv[1:]:
|
||||||
|
show_help()
|
||||||
|
return 0
|
||||||
|
if "--version" in argv[1:]:
|
||||||
|
show_version()
|
||||||
|
return 0
|
||||||
|
|
||||||
|
# get the autostart directories
|
||||||
|
autodirs = BaseDirectory.load_config_paths("autostart")
|
||||||
|
|
||||||
|
# find all the autostart files
|
||||||
|
files = []
|
||||||
|
for dir in autodirs:
|
||||||
|
for path in glob.glob(os.path.join(dir, '*.desktop')):
|
||||||
|
try:
|
||||||
|
autofile = AutostartFile(path)
|
||||||
|
except ParsingError:
|
||||||
|
print "Invalid .desktop file: " + path
|
||||||
|
else:
|
||||||
|
if not autofile in files:
|
||||||
|
files.append(autofile)
|
||||||
|
|
||||||
|
list = False
|
||||||
|
if "--list" in argv[1:]:
|
||||||
|
list = True
|
||||||
|
argv.remove("--list")
|
||||||
|
|
||||||
|
# run them !
|
||||||
|
environments = argv[1:]
|
||||||
|
for autofile in files:
|
||||||
|
if list: autofile.list(environments)
|
||||||
|
else: autofile.run(environments)
|
||||||
|
|
||||||
|
class AutostartFile():
|
||||||
|
def __init__(self, path):
|
||||||
|
self.path = path
|
||||||
|
self.filename = os.path.basename(path)
|
||||||
|
self.dirname = os.path.dirname(path)
|
||||||
|
self.de = DesktopEntry(path)
|
||||||
|
|
||||||
|
def __eq__(self, other):
|
||||||
|
return self.filename == other.filename
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.path + " : " + self.de.getName()
|
||||||
|
|
||||||
|
def isexecfile(path):
|
||||||
|
return os.access(path, os.X_OK)
|
||||||
|
|
||||||
|
def findFile(self, path, search, match_func):
|
||||||
|
# check empty path
|
||||||
|
if not path: return None
|
||||||
|
# check absolute path
|
||||||
|
if path[0] == '/':
|
||||||
|
if match_func(path): return path
|
||||||
|
else: return None
|
||||||
|
# check relative path
|
||||||
|
for dirname in search.split(os.pathsep):
|
||||||
|
if dirname != "":
|
||||||
|
candidate = os.path.join(dirname, path)
|
||||||
|
if (match_func(candidate)): return candidate
|
||||||
|
|
||||||
|
def alert(self, str, info=False):
|
||||||
|
if info:
|
||||||
|
print "\t ", str
|
||||||
|
else:
|
||||||
|
print "\t*", str
|
||||||
|
|
||||||
|
def showInEnvironment(self, envs, verbose=False):
|
||||||
|
default = not self.de.getOnlyShowIn()
|
||||||
|
noshow = False
|
||||||
|
force = False
|
||||||
|
for i in self.de.getOnlyShowIn():
|
||||||
|
if i in envs: force = True
|
||||||
|
for i in self.de.getNotShowIn():
|
||||||
|
if i in envs: noshow = True
|
||||||
|
|
||||||
|
if verbose:
|
||||||
|
if not default and not force:
|
||||||
|
s = ""
|
||||||
|
for i in self.de.getOnlyShowIn():
|
||||||
|
if s: s += ", "
|
||||||
|
s += i
|
||||||
|
self.alert("Excluded by: OnlyShowIn (" + s + ")")
|
||||||
|
if default and noshow and not force:
|
||||||
|
s = ""
|
||||||
|
for i in self.de.getOnlyShowIn():
|
||||||
|
if s: s += ", "
|
||||||
|
s += i
|
||||||
|
self.alert("Excluded by: NotShowIn (" + s + ")")
|
||||||
|
return (default and not noshow) or force
|
||||||
|
|
||||||
|
def shouldRun(self, envs, verbose=False):
|
||||||
|
if not self.de.getExec():
|
||||||
|
if verbose: self.alert("Excluded by: Missing Exec field")
|
||||||
|
return False
|
||||||
|
if self.de.getHidden():
|
||||||
|
if verbose: self.alert("Excluded by: Hidden")
|
||||||
|
return False
|
||||||
|
if self.de.getTryExec():
|
||||||
|
if not self.findFile(self.de.getTryExec(), os.getenv("PATH"),
|
||||||
|
self.isexecfile):
|
||||||
|
if verbose: self.alert("Excluded by: TryExec (" +
|
||||||
|
self.de.getTryExec() + ")")
|
||||||
|
return False
|
||||||
|
if not self.showInEnvironment(envs, verbose):
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
def list(self, envs):
|
||||||
|
running = False
|
||||||
|
if self.shouldRun(envs):
|
||||||
|
print "[*] " + self.de.getName()
|
||||||
|
else:
|
||||||
|
print "[ ] " + self.de.getName()
|
||||||
|
self.alert("File: " + self.path, info=True)
|
||||||
|
if self.de.getExec():
|
||||||
|
self.alert("Executes: " + self.de.getExec(), info=True)
|
||||||
|
self.shouldRun(envs, True)
|
||||||
|
print
|
||||||
|
|
||||||
|
def run(self, envs):
|
||||||
|
here = os.getcwd()
|
||||||
|
if self.de.getPath():
|
||||||
|
os.chdir(self.de.getPath())
|
||||||
|
if self.shouldRun(envs):
|
||||||
|
args = ["/bin/sh", "-c", "exec " + self.de.getExec()]
|
||||||
|
os.spawnv(os.P_NOWAIT, args[0], args);
|
||||||
|
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 for. 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
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys.exit(main())
|
Loading…
Reference in a new issue