Merge branch 'backport' into work

Conflicts:

	openbox/client.c
	openbox/config.c
	openbox/event.c
	openbox/extensions.c
	openbox/focus_cycle_indicator.c
	openbox/focus_cycle_popup.c
	openbox/menuframe.c
	openbox/moveresize.c
	openbox/openbox.c
	openbox/screen.c
	openbox/stacking.c
	openbox/startupnotify.c
This commit is contained in:
Dana Jansens 2008-01-31 12:36:06 -05:00
commit 20b8fcfa33
63 changed files with 1073 additions and 623 deletions

39
.gitignore vendored
View file

@ -44,6 +44,9 @@ po/insert-header.sin
po/quot.sed
po/remove-potcdate.sin
po/stamp-po
po/en@boldquot.insert-header
po/en@quot.insert-header
po/remove-potcdate.sed
*.gmo
render/obrender-4.0.pc
obt/obt-4.0.pc
@ -51,3 +54,39 @@ tools/gnome-panel-control/gnome-panel-control
version.h
.libs
.deps
tests/aspect
tests/big
tests/borderchange
tests/confignotify
tests/confignotifymax
tests/duplicatesession
tests/extentsrequest
tests/fakeunmap
tests/fallback
tests/focusout
tests/fullscreen
tests/grav
tests/groupmodal
tests/grouptran
tests/grouptran2
tests/grouptrancircular
tests/grouptrancircular2
tests/icons
tests/mapiconic
tests/modal
tests/modal2
tests/modal3
tests/noresize
tests/override
tests/positioned
tests/resize
tests/restack
tests/shape
tests/showhide
tests/skiptaskbar
tests/skiptaskbar2
tests/stacking
tests/strut
tests/title
tests/urgent
tests/usertimewin

View file

@ -301,6 +301,10 @@ clearlooks_themedir = $(themedir)/Clearlooks/openbox-3
dist_clearlooks_theme_DATA= \
themes/Clearlooks/openbox-3/themerc
clearlooks34_themedir = $(themedir)/Clearlooks/openbox-3
dist_clearlooks34_theme_DATA= \
themes/Clearlooks-3.4/openbox-3/themerc
clearlooksolive_themedir = $(themedir)/Clearlooks-Olive/openbox-3
dist_clearlooksolive_theme_DATA= \
themes/Clearlooks-Olive/openbox-3/themerc

View file

@ -7,3 +7,6 @@ X-GNOME-WMName=Openbox
# our config tool
ConfigExec=obconf
[Window Manager]
SessionManaged=true

View file

@ -35,16 +35,17 @@
<center>yes</center>
<!-- whether to place windows in the center of the free area found or
the top left corner -->
<active>no</active>
<!-- force new windows ont the active monitor on a multi-head system, unless
they are part of an application already on another monitor -->
<monitor>Any</monitor>
<!-- with Smart placement on a multi-monitor system, try to place new windows
on: 'Any' - any monitor, 'Mouse' - where the mouse is, 'Active' - where
the active window is -->
</placement>
<theme>
<name>Clearlooks</name>
<titleLayout>NLIMC</titleLayout>
<!--
avaible characters are NDSLIMC, each can occur at most once.
available characters are NDSLIMC, each can occur at most once.
N: window icon
L: window label (AKA title).
I: iconify

View file

@ -54,7 +54,7 @@
</xsd:annotation>
<xsd:element name="policy" type="ob:placementpolicy"/>
<xsd:element name="center" type="ob:bool"/>
<xsd:element name="active" type="ob:bool"/>
<xsd:element name="monitor" type="ob:placementmonitor"/>
</xsd:complexType>
<xsd:complexType name="margins">
<xsd:annotation>
@ -402,6 +402,13 @@
<xsd:enumeration value="UnderMouse"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="placementmonitor">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Any"/>
<xsd:enumeration value="Mouse"/>
<xsd:enumeration value="Active"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="popupposition">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Top"/>

View file

@ -337,9 +337,7 @@ void actions_client_move(ObActionsData *data, gboolean start)
else if (config_focus_follow &&
data->context != OB_FRAME_CONTEXT_CLIENT)
{
if (!data->button && data->client && !config_focus_under_mouse)
event_end_ignore_all_enters(ignore_start);
else {
if (data->uact == OB_USER_ACTION_MOUSE_PRESS) {
struct _ObClient *c;
/* usually this is sorta redundant, but with a press action
@ -354,5 +352,7 @@ void actions_client_move(ObActionsData *data, gboolean start)
event_enter_client(c);
}
}
else if (!data->button && !config_focus_under_mouse)
event_end_ignore_all_enters(ignore_start);
}
}

View file

@ -5,6 +5,10 @@
#include "obt/paths.h"
#include "gettext.h"
#ifdef HAVE_STDLIB_H
# include <stdlib.h>
#endif
typedef struct {
gchar *cmd;
gboolean sn;
@ -101,6 +105,7 @@ static gboolean run_func(ObActionsData *data, gpointer options)
program = g_path_get_basename(argv[0]);
/* sets up the environment */
sn_setup_spawn_environment(program, o->sn_name, o->sn_icon,
o->sn_wmclass,
/* launch it on the current desktop */
screen_desktop);
}

View file

@ -200,6 +200,9 @@ void client_manage_all(void)
}
}
/* manage windows in reverse order from how they were originally mapped.
this is an attempt to manage children windows before their parents, so
that when the parent is mapped, it can find the child */
for (i = 0; i < nchild; ++i) {
if (children[i] == None)
continue;
@ -288,6 +291,11 @@ void client_manage(Window window)
ob_debug("Window type: %d\n", self->type);
ob_debug("Window group: 0x%x\n", self->group?self->group->leader:0);
/* now we have all of the window's information so we can set this up.
do this before creating the frame, so it can tell that we are still
mapping and doesn't go applying things right away */
client_setup_decor_and_functions(self, FALSE);
/* specify that if we exit, the window should not be destroyed and
should be reparented back to root automatically */
XChangeSaveSet(obt_display, window, SetModeInsert);
@ -308,11 +316,8 @@ void client_manage(Window window)
/* the session should get the last say though */
client_restore_session_state(self);
/* now we have all of the window's information so we can set this up */
client_setup_decor_and_functions(self, FALSE);
/* tell startup notification that this app started */
launch_time = sn_app_started(self->startup_id, self->class);
launch_time = sn_app_started(self->startup_id, self->class, self->name);
/* do this after we have a frame.. it uses the frame to help determine the
WM_STATE to apply. */
@ -797,6 +802,7 @@ void client_unmanage(ObClient *self)
g_free(self->icons[j].data);
if (self->nicons > 0)
g_free(self->icons);
g_free(self->startup_id);
g_free(self->wm_command);
g_free(self->title);
g_free(self->icon_title);
@ -1832,11 +1838,11 @@ static void client_change_allowed_actions(ObClient *self)
OBT_PROP_SETA32(self->window, NET_WM_ALLOWED_ACTIONS, ATOM, actions, num);
/* make sure the window isn't breaking any rules now
/* make sure the window isn't breaking any rules now
don't check ICONIFY here. just cuz a window can't iconify doesnt mean
it can't be iconified with its parent
*/
don't check ICONIFY here. just cuz a window can't iconify doesnt mean
it can't be iconified with its parent
*/
if (!(self->functions & OB_CLIENT_FUNC_SHADE) && self->shaded) {
if (self->frame) client_shade(self, FALSE);
@ -2069,11 +2075,17 @@ void client_update_strut(ObClient *self)
}
}
/* Avoid storing icons above this size if possible */
#define AVOID_ABOVE 64
void client_update_icons(ObClient *self)
{
guint num;
guint32 *data;
guint w, h, i, j;
guint num_seen; /* number of icons present */
guint num_small_seen; /* number of icons small enough present */
guint smallest, smallest_area;
for (i = 0; i < self->nicons; ++i)
g_free(self->icons[i].data);
@ -2084,25 +2096,54 @@ void client_update_icons(ObClient *self)
if (OBT_PROP_GETA32(self->window, NET_WM_ICON, CARDINAL, &data, &num)) {
/* figure out how many valid icons are in here */
i = 0;
while (num - i > 2) {
w = data[i++];
h = data[i++];
i += w * h;
if (i > num || w*h == 0) break;
++self->nicons;
}
num_seen = num_small_seen = 0;
smallest = smallest_area = 0;
if (num > 2)
while (i < num) {
w = data[i++];
h = data[i++];
i += w * h;
/* watch for it being too small for the specified size, or for
zero sized icons. */
if (i > num || w == 0 || h == 0) break;
if (!smallest_area || w*h < smallest_area) {
smallest = num_seen;
smallest_area = w*h;
}
++num_seen;
if (w <= AVOID_ABOVE && h <= AVOID_ABOVE)
++num_small_seen;
}
if (num_small_seen > 0)
self->nicons = num_small_seen;
else if (num_seen)
self->nicons = 1;
self->icons = g_new(ObClientIcon, self->nicons);
/* store the icons */
i = 0;
for (j = 0; j < self->nicons; ++j) {
for (j = 0; j < self->nicons;) {
guint x, y, t;
w = self->icons[j].width = data[i++];
h = self->icons[j].height = data[i++];
if (w*h == 0) continue;
/* if there are some icons smaller than the threshold, we're
skipping all the ones above */
if (num_small_seen > 0) {
if (w > AVOID_ABOVE || h > AVOID_ABOVE) {
i += w*h;
continue;
}
}
/* if there were no icons smaller than the threshold, then we are
only taking the smallest available one we saw */
else if (j != smallest) {
i += w*h;
continue;
}
self->icons[j].data = g_new(RrPixel32, w * h);
for (x = 0, y = 0, t = 0; t < w * h; ++t, ++x, ++i) {
@ -2117,6 +2158,8 @@ void client_update_icons(ObClient *self)
(((data[i] >> 0) & 0xff) << RrDefaultBlueOffset);
}
g_assert(i <= num);
++j;
}
g_free(data);
@ -2179,11 +2222,13 @@ void client_update_icon_geometry(ObClient *self)
RECT_SET(self->icon_geometry, 0, 0, 0, 0);
if (OBT_PROP_GETA32(self->window, NET_WM_ICON_GEOMETRY, CARDINAL,
&data, &num) && num == 4)
&data, &num))
{
/* don't let them set it with an area < 0 */
RECT_SET(self->icon_geometry, data[0], data[1],
MAX(data[2],0), MAX(data[3],0));
if (num == 4)
/* don't let them set it with an area < 0 */
RECT_SET(self->icon_geometry, data[0], data[1],
MAX(data[2],0), MAX(data[3],0));
g_free(data);
}
}

View file

@ -22,6 +22,7 @@
#include "menuframe.h"
#include "screen.h"
#include "client.h"
#include "client_list_combined_menu.h"
#include "focus.h"
#include "config.h"
#include "gettext.h"

View file

@ -22,6 +22,7 @@
#include "menuframe.h"
#include "screen.h"
#include "client.h"
#include "client_list_menu.h"
#include "focus.h"
#include "config.h"
#include "gettext.h"

View file

@ -22,6 +22,7 @@
#include "config.h"
#include "screen.h"
#include "client.h"
#include "client_menu.h"
#include "openbox.h"
#include "frame.h"
#include "moveresize.h"

View file

@ -35,9 +35,9 @@ gboolean config_focus_raise;
gboolean config_focus_last;
gboolean config_focus_under_mouse;
ObPlacePolicy config_place_policy;
gboolean config_place_center;
gboolean config_place_active;
ObPlacePolicy config_place_policy;
gboolean config_place_center;
ObPlaceMonitor config_place_monitor;
StrutPartial config_margins;
@ -54,7 +54,7 @@ RrFont *config_font_menuitem;
RrFont *config_font_menutitle;
RrFont *config_font_osd;
gint config_desktops_num;
guint config_desktops_num;
GSList *config_desktops_names;
guint config_screen_firstdesk;
guint config_desktop_popup_time;
@ -481,8 +481,12 @@ static void parse_placement(xmlNodePtr node, gpointer d)
config_place_policy = OB_PLACE_POLICY_MOUSE;
if ((n = obt_parse_find_node(node, "center")))
config_place_center = obt_parse_node_bool(n);
if ((n = obt_parse_find_node(node, "active")))
config_place_active = obt_parse_node_bool(n);
if ((n = obt_parse_find_node(node, "monitor"))) {
if (obt_parse_node_contains(n, "active"))
config_place_monitor = OB_PLACE_MONITOR_ACTIVE;
else if (obt_parse_node_contains(n, "mouse"))
config_place_monitor = OB_PLACE_MONITOR_MOUSE;
}
}
static void parse_margins(xmlNodePtr node, gpointer d)
@ -592,7 +596,7 @@ static void parse_desktops(xmlNodePtr node, gpointer d)
if ((n = obt_parse_find_node(node, "number"))) {
gint d = obt_parse_node_int(n);
if (d > 0)
config_desktops_num = d;
config_desktops_num = (unsigned) d;
}
if ((n = obt_parse_find_node(node, "firstdesk"))) {
gint d = obt_parse_node_int(n);
@ -870,7 +874,7 @@ void config_startup(ObtParseInst *i)
config_place_policy = OB_PLACE_POLICY_SMART;
config_place_center = TRUE;
config_place_active = FALSE;
config_place_monitor = OB_PLACE_MONITOR_ANY;
obt_parse_register(i, "placement", parse_placement, NULL);
@ -966,6 +970,7 @@ void config_shutdown(void)
RrFontClose(config_font_inactivewindow);
RrFontClose(config_font_menuitem);
RrFontClose(config_font_menutitle);
RrFontClose(config_font_osd);
for (it = config_desktops_names; it; it = g_slist_next(it))
g_free(it->data);

View file

@ -77,7 +77,7 @@ extern ObPlacePolicy config_place_policy;
extern gboolean config_place_center;
/*! Place windows on the active monitor (unless they are part of an application
already on another monitor) */
extern gboolean config_place_active;
extern ObPlaceMonitor config_place_monitor;
/*! User-specified margins around the edge of the screen(s) */
extern StrutPartial config_margins;
@ -142,7 +142,7 @@ extern RrFont *config_font_menuitem;
extern RrFont *config_font_osd;
/*! The number of desktops */
extern gint config_desktops_num;
extern guint config_desktops_num;
/*! Desktop to start on, put 5 to start in the center of a 3x3 grid */
extern guint config_screen_firstdesk;
/*! Names for the desktops */

View file

@ -243,8 +243,10 @@ void dock_configure(void)
}
}
dock->area.width += l + r;
dock->area.height += t + b;
if (dock->dock_apps) {
dock->area.width += l + r;
dock->area.height += t + b;
}
hspot = l;
vspot = t;
@ -421,11 +423,12 @@ void dock_configure(void)
if (!dock->dock_apps) {
STRUT_PARTIAL_SET(dock_strut, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0);
} else if (config_dock_floating || config_dock_nostrut)
{
}
else if (config_dock_floating || config_dock_nostrut) {
STRUT_PARTIAL_SET(dock_strut, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0);
} else {
}
else {
switch (config_dock_pos) {
case OB_DIRECTION_NORTHWEST:
switch (config_dock_orient) {
@ -523,9 +526,12 @@ void dock_configure(void)
} else
XUnmapWindow(obt_display, dock->frame);
/* but they are useful outside of this function! */
dock->area.width += ob_rr_theme->obwidth * 2;
dock->area.height += ob_rr_theme->obwidth * 2;
/* but they are useful outside of this function! but don't add it if the
dock is actually not visible */
if (dock->dock_apps) {
dock->area.width += ob_rr_theme->obwidth * 2;
dock->area.height += ob_rr_theme->obwidth * 2;
}
screen_update_areas();

View file

@ -269,7 +269,8 @@ static void event_hack_mods(XEvent *e)
magic. Our X core protocol stuff won't work, so we use this to
find what the modifier state is instead. */
if (XkbGetState(obt_display, XkbUseCoreKbd, &xkb_state) == Success)
e->xkey.state = xkb_state.compat_state;
e->xkey.state =
obt_keyboard_only_modmasks(xkb_state.compat_state);
else
#endif
{
@ -1929,8 +1930,7 @@ void event_halt_focus_delay(void)
gulong event_start_ignore_all_enters(void)
{
XSync(obt_display, FALSE);
return LastKnownRequestProcessed(obt_display);
return NextRequest(obt_display);
}
static void event_ignore_enter_range(gulong start, gulong end)
@ -1949,13 +1949,18 @@ static void event_ignore_enter_range(gulong start, gulong end)
r->start, r->end);
/* increment the serial so we don't ignore events we weren't meant to */
XSync(obt_display, FALSE);
OBT_PROP_ERASE(screen_support_win, MOTIF_WM_HINTS);
}
void event_end_ignore_all_enters(gulong start)
{
XSync(obt_display, FALSE);
event_ignore_enter_range(start, LastKnownRequestProcessed(obt_display));
/* Use (NextRequest-1) so that we ignore up to the current serial only.
Inside event_ignore_enter_range, we increment the serial by one, but if
we ignore that serial too, then any enter events generated by mouse
movement will be ignored until we create some further network traffic.
Instead ignore up to NextRequest-1, then when we increment the serial,
we will be *past* the range of ignored serials */
event_ignore_enter_range(start, NextRequest(obt_display)-1);
}
static gboolean is_enter_focus_event_ignored(XEvent *e)

View file

@ -158,6 +158,7 @@ void focus_cycle_draw_indicator(ObClient *c)
*/
gint x, y, w, h;
gint wt, wl, wr, wb;
gulong ignore_start;
wt = wl = wr = wb = FOCUS_INDICATOR_WIDTH;
@ -166,6 +167,9 @@ void focus_cycle_draw_indicator(ObClient *c)
w = c->frame->area.width;
h = wt;
/* kill enter events cause by this moving */
ignore_start = event_start_ignore_all_enters();
XMoveResizeWindow(obt_display, focus_indicator.top.window,
x, y, w, h);
a_focus_indicator->texture[0].data.lineart.x1 = 0;
@ -270,6 +274,8 @@ void focus_cycle_draw_indicator(ObClient *c)
XMapWindow(obt_display, focus_indicator.right.window);
XMapWindow(obt_display, focus_indicator.bottom.window);
event_end_ignore_all_enters(ignore_start);
visible = TRUE;
}
}

View file

@ -480,6 +480,7 @@ void focus_cycle_popup_hide(void)
g_free(t->text);
XDestroyWindow(obt_display, t->win);
g_free(t);
popup.targets = g_list_delete_link(popup.targets, popup.targets);
}

View file

@ -214,27 +214,10 @@ static void set_theme_statics(ObFrame *self)
ob_rr_theme->paddingx + 1, ob_rr_theme->title_height);
XResizeWindow(obt_display, self->trrresize,
ob_rr_theme->paddingx + 1, ob_rr_theme->title_height);
/* set up the dynamic appearances */
self->a_unfocused_title = RrAppearanceCopy(ob_rr_theme->a_unfocused_title);
self->a_focused_title = RrAppearanceCopy(ob_rr_theme->a_focused_title);
self->a_unfocused_label = RrAppearanceCopy(ob_rr_theme->a_unfocused_label);
self->a_focused_label = RrAppearanceCopy(ob_rr_theme->a_focused_label);
self->a_unfocused_handle =
RrAppearanceCopy(ob_rr_theme->a_unfocused_handle);
self->a_focused_handle = RrAppearanceCopy(ob_rr_theme->a_focused_handle);
self->a_icon = RrAppearanceCopy(ob_rr_theme->a_icon);
}
static void free_theme_statics(ObFrame *self)
{
RrAppearanceFree(self->a_unfocused_title);
RrAppearanceFree(self->a_focused_title);
RrAppearanceFree(self->a_unfocused_label);
RrAppearanceFree(self->a_focused_label);
RrAppearanceFree(self->a_unfocused_handle);
RrAppearanceFree(self->a_focused_handle);
RrAppearanceFree(self->a_icon);
}
void frame_free(ObFrame *self)

View file

@ -137,16 +137,6 @@ struct _ObFrame
Colormap colormap;
RrAppearance *a_unfocused_title;
RrAppearance *a_focused_title;
RrAppearance *a_unfocused_label;
RrAppearance *a_focused_label;
RrAppearance *a_icon;
RrAppearance *a_unfocused_handle;
RrAppearance *a_focused_handle;
GSList *clients;
gint icon_on; /* if the window icon button is on */
gint label_on; /* if the window title is on */
gint iconify_on; /* if the window iconify button is on */

View file

@ -124,10 +124,8 @@ void framerender_frame(ObFrame *self)
if (self->decorations & OB_FRAME_DECOR_TITLEBAR) {
RrAppearance *t, *l, *m, *n, *i, *d, *s, *c, *clear;
if (self->focused) {
t = self->a_focused_title;
l = self->a_focused_label;
t = ob_rr_theme->a_focused_title;
l = ob_rr_theme->a_focused_label;
m = (!(self->decorations & OB_FRAME_DECOR_MAXIMIZE) ?
ob_rr_theme->a_disabled_focused_max :
(self->client->max_vert || self->client->max_horz ?
@ -141,7 +139,7 @@ void framerender_frame(ObFrame *self)
(self->max_hover ?
ob_rr_theme->a_hover_focused_max :
ob_rr_theme->a_focused_unpressed_max))));
n = self->a_icon;
n = ob_rr_theme->a_icon;
i = (!(self->decorations & OB_FRAME_DECOR_ICONIFY) ?
ob_rr_theme->a_disabled_focused_iconify :
(self->iconify_press ?
@ -183,8 +181,8 @@ void framerender_frame(ObFrame *self)
ob_rr_theme->a_hover_focused_close :
ob_rr_theme->a_focused_unpressed_close)));
} else {
t = self->a_unfocused_title;
l = self->a_unfocused_label;
t = ob_rr_theme->a_unfocused_title;
l = ob_rr_theme->a_unfocused_label;
m = (!(self->decorations & OB_FRAME_DECOR_MAXIMIZE) ?
ob_rr_theme->a_disabled_unfocused_max :
(self->client->max_vert || self->client->max_horz ?
@ -198,7 +196,7 @@ void framerender_frame(ObFrame *self)
(self->max_hover ?
ob_rr_theme->a_hover_unfocused_max :
ob_rr_theme->a_unfocused_unpressed_max))));
n = self->a_icon;
n = ob_rr_theme->a_icon;
i = (!(self->decorations & OB_FRAME_DECOR_ICONIFY) ?
ob_rr_theme->a_disabled_unfocused_iconify :
(self->iconify_press ?
@ -318,7 +316,7 @@ void framerender_frame(ObFrame *self)
RrAppearance *h, *g;
h = (self->focused ?
self->a_focused_handle : self->a_unfocused_handle);
ob_rr_theme->a_focused_handle : ob_rr_theme->a_unfocused_handle);
RrPaint(h, self->handle, self->width, ob_rr_theme->handle_height);

View file

@ -77,7 +77,7 @@ ObMenuFrame* menu_frame_new(ObMenu *menu, guint show_from, ObClient *client)
XSetWindowAttributes attr;
self = g_new0(ObMenuFrame, 1);
self->type = OB_WINDOW_CLASS_MENUFRAME;
self->obwin.type = OB_WINDOW_CLASS_MENUFRAME;
self->menu = menu;
self->selected = NULL;
self->client = client;
@ -92,7 +92,6 @@ ObMenuFrame* menu_frame_new(ObMenu *menu, guint show_from, ObClient *client)
XSetWindowBorder(obt_display, self->window,
RrColorPixel(ob_rr_theme->menu_border_color));
self->a_title = RrAppearanceCopy(ob_rr_theme->a_menu_title);
self->a_items = RrAppearanceCopy(ob_rr_theme->a_menu);
window_add(&self->window, MENUFRAME_AS_WINDOW(self));
@ -112,10 +111,9 @@ void menu_frame_free(ObMenuFrame *self)
stacking_remove(MENUFRAME_AS_WINDOW(self));
window_remove(self->window);
XDestroyWindow(obt_display, self->window);
RrAppearanceFree(self->a_items);
RrAppearanceFree(self->a_title);
XDestroyWindow(obt_display, self->window);
g_free(self);
}
@ -150,37 +148,6 @@ static ObMenuEntryFrame* menu_entry_frame_new(ObMenuEntry *entry,
XMapWindow(obt_display, self->window);
XMapWindow(obt_display, self->text);
self->a_normal = RrAppearanceCopy(ob_rr_theme->a_menu_normal);
self->a_selected = RrAppearanceCopy(ob_rr_theme->a_menu_selected);
self->a_disabled = RrAppearanceCopy(ob_rr_theme->a_menu_disabled);
self->a_disabled_selected =
RrAppearanceCopy(ob_rr_theme->a_menu_disabled_selected);
if (entry->type == OB_MENU_ENTRY_TYPE_SEPARATOR) {
self->a_separator = RrAppearanceCopy(ob_rr_theme->a_clear_tex);
self->a_separator->texture[0].type = RR_TEXTURE_LINE_ART;
} else {
self->a_icon = RrAppearanceCopy(ob_rr_theme->a_clear_tex);
self->a_icon->texture[0].type = RR_TEXTURE_RGBA;
self->a_mask = RrAppearanceCopy(ob_rr_theme->a_clear_tex);
self->a_mask->texture[0].type = RR_TEXTURE_MASK;
self->a_bullet_normal =
RrAppearanceCopy(ob_rr_theme->a_menu_bullet_normal);
self->a_bullet_selected =
RrAppearanceCopy(ob_rr_theme->a_menu_bullet_selected);
}
self->a_text_normal =
RrAppearanceCopy(ob_rr_theme->a_menu_text_normal);
self->a_text_selected =
RrAppearanceCopy(ob_rr_theme->a_menu_text_selected);
self->a_text_disabled =
RrAppearanceCopy(ob_rr_theme->a_menu_text_disabled);
self->a_text_disabled_selected =
RrAppearanceCopy(ob_rr_theme->a_menu_text_disabled_selected);
self->a_text_title =
RrAppearanceCopy(ob_rr_theme->a_menu_text_title);
window_add(&self->window, MENUFRAME_AS_WINDOW(self->frame));
return self;
@ -206,22 +173,6 @@ static void menu_entry_frame_free(ObMenuEntryFrame *self)
g_hash_table_remove(menu_frame_map, &self->bullet);
}
RrAppearanceFree(self->a_normal);
RrAppearanceFree(self->a_selected);
RrAppearanceFree(self->a_disabled);
RrAppearanceFree(self->a_disabled_selected);
RrAppearanceFree(self->a_separator);
RrAppearanceFree(self->a_icon);
RrAppearanceFree(self->a_mask);
RrAppearanceFree(self->a_text_normal);
RrAppearanceFree(self->a_text_selected);
RrAppearanceFree(self->a_text_disabled);
RrAppearanceFree(self->a_text_disabled_selected);
RrAppearanceFree(self->a_text_title);
RrAppearanceFree(self->a_bullet_normal);
RrAppearanceFree(self->a_bullet_selected);
g_free(self);
}
}
@ -367,18 +318,20 @@ static void menu_entry_frame_render(ObMenuEntryFrame *self)
!self->entry->data.normal.enabled ?
/* disabled */
(self == self->frame->selected ?
self->a_disabled_selected : self->a_disabled) :
ob_rr_theme->a_menu_disabled_selected :
ob_rr_theme->a_menu_disabled) :
/* enabled */
(self == self->frame->selected ?
self->a_selected : self->a_normal));
ob_rr_theme->a_menu_selected :
ob_rr_theme->a_menu_normal));
th = ITEM_HEIGHT;
break;
case OB_MENU_ENTRY_TYPE_SEPARATOR:
if (self->entry->data.separator.label) {
item_a = self->frame->a_title;
item_a = ob_rr_theme->a_menu_title;
th = ob_rr_theme->menu_title_height;
} else {
item_a = self->a_normal;
item_a = ob_rr_theme->a_menu_normal;
th = SEPARATOR_HEIGHT + 2*PADDING;
}
break;
@ -399,10 +352,12 @@ static void menu_entry_frame_render(ObMenuEntryFrame *self)
!self->entry->data.normal.enabled ?
/* disabled */
(self == self->frame->selected ?
self->a_text_disabled_selected : self->a_text_disabled) :
ob_rr_theme->a_menu_text_disabled_selected :
ob_rr_theme->a_menu_text_disabled) :
/* enabled */
(self == self->frame->selected ?
self->a_text_selected : self->a_text_normal));
ob_rr_theme->a_menu_text_selected :
ob_rr_theme->a_menu_text_normal));
text_a->texture[0].data.text.string = self->entry->data.normal.label;
if (self->entry->data.normal.shortcut &&
(self->frame->menu->show_all_shortcuts ||
@ -417,8 +372,8 @@ static void menu_entry_frame_render(ObMenuEntryFrame *self)
break;
case OB_MENU_ENTRY_TYPE_SUBMENU:
text_a = (self == self->frame->selected ?
self->a_text_selected :
self->a_text_normal);
ob_rr_theme->a_menu_text_selected :
ob_rr_theme->a_menu_text_normal);
sub = self->entry->data.submenu.submenu;
text_a->texture[0].data.text.string = sub ? sub->title : "";
if (sub->shortcut && (self->frame->menu->show_all_shortcuts ||
@ -432,9 +387,9 @@ static void menu_entry_frame_render(ObMenuEntryFrame *self)
break;
case OB_MENU_ENTRY_TYPE_SEPARATOR:
if (self->entry->data.separator.label != NULL)
text_a = self->a_text_title;
text_a = ob_rr_theme->a_menu_text_title;
else
text_a = self->a_text_normal;
text_a = ob_rr_theme->a_menu_text_normal;
break;
}
@ -477,20 +432,24 @@ static void menu_entry_frame_render(ObMenuEntryFrame *self)
ob_rr_theme->menu_title_height -
2*ob_rr_theme->paddingy);
} else {
RrAppearance *clear;
/* unlabeled separaator */
XMoveResizeWindow(obt_display, self->text, PADDING, PADDING,
self->area.width - 2*PADDING, SEPARATOR_HEIGHT);
self->a_separator->surface.parent = item_a;
self->a_separator->surface.parentx = PADDING;
self->a_separator->surface.parenty = PADDING;
self->a_separator->texture[0].data.lineart.color =
clear = ob_rr_theme->a_clear_tex;
clear->texture[0].type = RR_TEXTURE_LINE_ART;
clear->surface.parent = item_a;
clear->surface.parentx = PADDING;
clear->surface.parenty = PADDING;
clear->texture[0].data.lineart.color =
text_a->texture[0].data.text.color;
self->a_separator->texture[0].data.lineart.x1 = 2*PADDING;
self->a_separator->texture[0].data.lineart.y1 = SEPARATOR_HEIGHT/2;
self->a_separator->texture[0].data.lineart.x2 =
self->area.width - 4*PADDING;
self->a_separator->texture[0].data.lineart.y2 = SEPARATOR_HEIGHT/2;
RrPaint(self->a_separator, self->text,
clear->texture[0].data.lineart.x1 = 2*PADDING;
clear->texture[0].data.lineart.y1 = SEPARATOR_HEIGHT/2;
clear->texture[0].data.lineart.x2 = self->area.width - 4*PADDING;
clear->texture[0].data.lineart.y2 = SEPARATOR_HEIGHT/2;
RrPaint(clear, self->text,
self->area.width - 2*PADDING, SEPARATOR_HEIGHT);
}
break;
@ -499,24 +458,29 @@ static void menu_entry_frame_render(ObMenuEntryFrame *self)
if (self->entry->type == OB_MENU_ENTRY_TYPE_NORMAL &&
self->entry->data.normal.icon_data)
{
RrAppearance *clear;
XMoveResizeWindow(obt_display, self->icon,
PADDING, frame->item_margin.top,
ITEM_HEIGHT - frame->item_margin.top
- frame->item_margin.bottom,
ITEM_HEIGHT - frame->item_margin.top
- frame->item_margin.bottom);
self->a_icon->texture[0].data.rgba.width =
clear = ob_rr_theme->a_clear_tex;
clear->texture[0].type = RR_TEXTURE_RGBA;
clear->texture[0].data.rgba.width =
self->entry->data.normal.icon_width;
self->a_icon->texture[0].data.rgba.height =
clear->texture[0].data.rgba.height =
self->entry->data.normal.icon_height;
self->a_icon->texture[0].data.rgba.alpha =
clear->texture[0].data.rgba.alpha =
self->entry->data.normal.icon_alpha;
self->a_icon->texture[0].data.rgba.data =
clear->texture[0].data.rgba.data =
self->entry->data.normal.icon_data;
self->a_icon->surface.parent = item_a;
self->a_icon->surface.parentx = PADDING;
self->a_icon->surface.parenty = frame->item_margin.top;
RrPaint(self->a_icon, self->icon,
clear->surface.parent = item_a;
clear->surface.parentx = PADDING;
clear->surface.parenty = frame->item_margin.top;
RrPaint(clear, self->icon,
ITEM_HEIGHT - frame->item_margin.top
- frame->item_margin.bottom,
ITEM_HEIGHT - frame->item_margin.top
@ -526,6 +490,7 @@ static void menu_entry_frame_render(ObMenuEntryFrame *self)
self->entry->data.normal.mask)
{
RrColor *c;
RrAppearance *clear;
XMoveResizeWindow(obt_display, self->icon,
PADDING, frame->item_margin.top,
@ -533,7 +498,10 @@ static void menu_entry_frame_render(ObMenuEntryFrame *self)
- frame->item_margin.bottom,
ITEM_HEIGHT - frame->item_margin.top
- frame->item_margin.bottom);
self->a_mask->texture[0].data.mask.mask =
clear = ob_rr_theme->a_clear_tex;
clear->texture[0].type = RR_TEXTURE_MASK;
clear->texture[0].data.mask.mask =
self->entry->data.normal.mask;
c = (self->entry->type == OB_MENU_ENTRY_TYPE_NORMAL &&
@ -546,12 +514,12 @@ static void menu_entry_frame_render(ObMenuEntryFrame *self)
(self == self->frame->selected ?
self->entry->data.normal.mask_selected_color :
self->entry->data.normal.mask_normal_color));
self->a_mask->texture[0].data.mask.color = c;
clear->texture[0].data.mask.color = c;
self->a_mask->surface.parent = item_a;
self->a_mask->surface.parentx = PADDING;
self->a_mask->surface.parenty = frame->item_margin.top;
RrPaint(self->a_mask, self->icon,
clear->surface.parent = item_a;
clear->surface.parentx = PADDING;
clear->surface.parenty = frame->item_margin.top;
RrPaint(clear, self->icon,
ITEM_HEIGHT - frame->item_margin.top
- frame->item_margin.bottom,
ITEM_HEIGHT - frame->item_margin.top
@ -568,8 +536,8 @@ static void menu_entry_frame_render(ObMenuEntryFrame *self)
ITEM_HEIGHT - 2*PADDING,
ITEM_HEIGHT - 2*PADDING);
bullet_a = (self == self->frame->selected ?
self->a_bullet_selected :
self->a_bullet_normal);
ob_rr_theme->a_menu_bullet_selected :
ob_rr_theme->a_menu_bullet_normal);
bullet_a->surface.parent = item_a;
bullet_a->surface.parentx =
self->frame->text_x + self->frame->text_w - ITEM_HEIGHT + PADDING;
@ -645,31 +613,31 @@ void menu_frame_render(ObMenuFrame *self)
gint l, t, r, b;
e = self->entries->data;
e->a_text_normal->texture[0].data.text.string = "";
tw = RrMinWidth(e->a_text_normal);
ob_rr_theme->a_menu_text_normal->texture[0].data.text.string = "";
tw = RrMinWidth(ob_rr_theme->a_menu_text_normal);
tw += 2*PADDING;
th = ITEM_HEIGHT;
RrMargins(e->a_normal, &l, &t, &r, &b);
RrMargins(ob_rr_theme->a_menu_normal, &l, &t, &r, &b);
STRUT_SET(self->item_margin,
MAX(self->item_margin.left, l),
MAX(self->item_margin.top, t),
MAX(self->item_margin.right, r),
MAX(self->item_margin.bottom, b));
RrMargins(e->a_selected, &l, &t, &r, &b);
RrMargins(ob_rr_theme->a_menu_selected, &l, &t, &r, &b);
STRUT_SET(self->item_margin,
MAX(self->item_margin.left, l),
MAX(self->item_margin.top, t),
MAX(self->item_margin.right, r),
MAX(self->item_margin.bottom, b));
RrMargins(e->a_disabled, &l, &t, &r, &b);
RrMargins(ob_rr_theme->a_menu_disabled, &l, &t, &r, &b);
STRUT_SET(self->item_margin,
MAX(self->item_margin.left, l),
MAX(self->item_margin.top, t),
MAX(self->item_margin.right, r),
MAX(self->item_margin.bottom, b));
RrMargins(e->a_disabled_selected, &l, &t, &r, &b);
RrMargins(ob_rr_theme->a_menu_disabled_selected, &l, &t, &r, &b);
STRUT_SET(self->item_margin,
MAX(self->item_margin.left, l),
MAX(self->item_margin.top, t),
@ -710,10 +678,12 @@ void menu_frame_render(ObMenuFrame *self)
!e->entry->data.normal.enabled ?
/* disabled */
(e == self->selected ?
e->a_text_disabled_selected : e->a_text_disabled) :
ob_rr_theme->a_menu_text_disabled_selected :
ob_rr_theme->a_menu_text_disabled) :
/* enabled */
(e == self->selected ?
e->a_text_selected : e->a_text_normal));
ob_rr_theme->a_menu_text_selected :
ob_rr_theme->a_menu_text_normal));
switch (e->entry->type) {
case OB_MENU_ENTRY_TYPE_NORMAL:
text_a->texture[0].data.text.string = e->entry->data.normal.label;
@ -740,9 +710,10 @@ void menu_frame_render(ObMenuFrame *self)
break;
case OB_MENU_ENTRY_TYPE_SEPARATOR:
if (e->entry->data.separator.label != NULL) {
e->a_text_title->texture[0].data.text.string =
ob_rr_theme->a_menu_text_title->texture[0].data.text.string =
e->entry->data.separator.label;
tw = RrMinWidth(e->a_text_title) + 2*ob_rr_theme->paddingx;
tw = RrMinWidth(ob_rr_theme->a_menu_text_title) +
2*ob_rr_theme->paddingx;
tw = MIN(tw, MAX_MENU_WIDTH);
th = ob_rr_theme->menu_title_height +
(ob_rr_theme->mbwidth - PADDING) *2;

View file

@ -38,7 +38,7 @@ extern GList *menu_frame_visible;
struct _ObMenuFrame
{
/* stuff to be an ObWindow */
ObWindow type;
ObWindow obwin;
Window window;
struct _ObMenu *menu;
@ -71,7 +71,9 @@ struct _ObMenuFrame
gint monitor; /* monitor on which to show the menu in xinerama */
RrAppearance *a_title;
/* We make a copy of this for each menu, so that we don't have to re-render
the background of the entire menu each time we render an item inside it.
*/
RrAppearance *a_items;
gboolean got_press; /* don't allow a KeyRelease event to run things in the
@ -94,22 +96,6 @@ struct _ObMenuEntryFrame
Window icon;
Window text;
Window bullet;
RrAppearance *a_normal;
RrAppearance *a_selected;
RrAppearance *a_disabled;
RrAppearance *a_disabled_selected;
RrAppearance *a_icon;
RrAppearance *a_mask;
RrAppearance *a_bullet_normal;
RrAppearance *a_bullet_selected;
RrAppearance *a_separator;
RrAppearance *a_text_normal;
RrAppearance *a_text_selected;
RrAppearance *a_text_disabled;
RrAppearance *a_text_disabled_selected;
RrAppearance *a_text_title;
};
extern GHashTable *menu_frame_map;

View file

@ -256,7 +256,8 @@ void moveresize_start(ObClient *c, gint x, gint y, guint b, guint32 cnr)
#ifdef SYNC
if (config_resize_redraw && !moving && obt_display_extension_sync &&
moveresize_client->sync_request && moveresize_client->sync_counter)
moveresize_client->sync_request && moveresize_client->sync_counter &&
!moveresize_client->not_responding)
{
/* Initialize values for the resize syncing, and create an alarm for
the client's xsync counter */
@ -371,7 +372,8 @@ static void do_resize(void)
#ifdef SYNC
if (config_resize_redraw && obt_display_extension_sync &&
moveresize_client->sync_request && moveresize_client->sync_counter)
moveresize_client->sync_request && moveresize_client->sync_counter &&
!moveresize_client->not_responding)
{
XEvent ce;
XSyncValue val;

View file

@ -33,6 +33,7 @@
#include "focus_cycle_popup.h"
#include "moveresize.h"
#include "frame.h"
#include "framerender.h"
#include "keyboard.h"
#include "mouse.h"
#include "menuframe.h"
@ -177,7 +178,7 @@ gint main(gint argc, gchar **argv)
/* set the DISPLAY environment variable for any lauched children, to the
display we're using, so they open in the right place. */
putenv(g_strdup_printf("DISPLAY=%s", DisplayString(obt_display)));
setenv("DISPLAY", DisplayString(obt_display), TRUE);
/* create available cursors */
cursors[OB_CURSOR_NONE] = None;
@ -490,9 +491,7 @@ static void remove_args(gint *argc, gchar **argv, gint index, gint num)
static void parse_env()
{
/* unset this so we don't pass it on unknowingly */
gchar *s = g_strdup("DESKTOP_STARTUP_ID");
putenv(s);
g_free(s);
unsetenv("DESKTOP_STARTUP_ID");
}
static void parse_args(gint *argc, gchar **argv)

View file

@ -108,7 +108,10 @@ static Rect **pick_head(ObClient *c)
}
}
if (focus_client && client_normal(focus_client)) {
/* skip this if placing by the mouse position */
if (focus_client && client_normal(focus_client) &&
config_place_monitor != OB_PLACE_MONITOR_MOUSE)
{
add_choice(choice, client_monitor(focus_client));
ob_debug("placement adding choice %d for normal focused window\n",
client_monitor(focus_client));
@ -146,7 +149,8 @@ static gboolean place_random(ObClient *client, gint *x, gint *y)
guint i;
areas = pick_head(client);
i = config_place_active ? 0 : g_random_int_range(0, screen_num_monitors);
i = (config_place_monitor != OB_PLACE_MONITOR_ANY) ?
0 : g_random_int_range(0, screen_num_monitors);
l = areas[i]->x;
t = areas[i]->y;
@ -255,9 +259,9 @@ static gboolean place_nooverlap(ObClient *c, gint *x, gint *y)
/* try ignoring different things to find empty space */
for (ignore = 0; ignore < IGNORE_END && !ret; ignore++) {
/* try all monitors in order of preference, but only the first one
if config_place_active is true */
for (i = 0; (i < (config_place_active ? 1 : screen_num_monitors) &&
!ret); ++i)
if config_place_monitor is MOUSE or ACTIVE */
for (i = 0; (i < (config_place_monitor != OB_PLACE_MONITOR_ANY ?
1 : screen_num_monitors) && !ret); ++i)
{
GList *it;

View file

@ -31,6 +31,13 @@ typedef enum
OB_PLACE_POLICY_MOUSE
} ObPlacePolicy;
typedef enum
{
OB_PLACE_MONITOR_ANY,
OB_PLACE_MONITOR_ACTIVE,
OB_PLACE_MONITOR_MOUSE
} ObPlaceMonitor;
gboolean place_client(struct _ObClient *client, gint *x, gint *y,
struct _ObAppSettings *settings);

View file

@ -256,6 +256,8 @@ void popup_delay_show(ObPopup *self, gulong usec, gchar *text)
x=MAX(MIN(x, area->x+area->width-w),area->x);
y=MAX(MIN(y, area->y+area->height-h),area->y);
g_free(area);
if (m == screen_num_monitors) {
RECT_SET(mon, x, y, w, h);
m = screen_find_monitor(&mon);
@ -265,6 +267,8 @@ void popup_delay_show(ObPopup *self, gulong usec, gchar *text)
x=MAX(MIN(x, area->x+area->width-w),area->x);
y=MAX(MIN(y, area->y+area->height-h),area->y);
g_free(area);
}
/* set the windows/appearances up */
@ -300,8 +304,6 @@ void popup_delay_show(ObPopup *self, gulong usec, gchar *text)
popup_show_timeout(self);
}
}
g_free(area);
}
void popup_hide(ObPopup *self)

View file

@ -391,7 +391,13 @@ void screen_startup(gboolean reconfig)
screen_num_desktops = 0;
if (OBT_PROP_GET32(obt_root(ob_screen),
NET_NUMBER_OF_DESKTOPS, CARDINAL, &d))
{
if (d != config_desktops_num) {
g_warning(_("Openbox is configured for %d desktops, but the current session has %d. Overriding the Openbox configuration."),
config_desktops_num, d);
}
screen_set_num_desktops(d);
}
/* restore from session if possible */
else if (session_num_desktops)
screen_set_num_desktops(session_num_desktops);
@ -1284,7 +1290,6 @@ static void get_xinerama_screens(Rect **xin_areas, guint *nxin)
gint l, r, t, b;
if (ob_debug_xinerama) {
g_print("Using fake xinerama !\n");
gint w = WidthOfScreen(ScreenOfDisplay(obt_display, ob_screen));
gint h = HeightOfScreen(ScreenOfDisplay(obt_display, ob_screen));
*nxin = 2;

View file

@ -24,6 +24,7 @@
#include "group.h"
#include "frame.h"
#include "window.h"
#include "event.h"
#include "debug.h"
#include "obt/prop.h"
@ -114,6 +115,7 @@ void stacking_temp_raise(ObWindow *window)
{
Window win[2];
GList *it;
gulong start;
/* don't use this for internal windows..! it would lower them.. */
g_assert(window_layer(window) < OB_STACKING_LAYER_INTERNAL);
@ -129,7 +131,9 @@ void stacking_temp_raise(ObWindow *window)
}
win[1] = window_top(window);
start = event_start_ignore_all_enters();
XRestackWindows(obt_display, win, 2);
event_end_ignore_all_enters(start);
pause_changes = TRUE;
}
@ -139,12 +143,15 @@ void stacking_restore(void)
Window *win;
GList *it;
gint i;
gulong start;
win = g_new(Window, g_list_length(stacking_list) + 1);
win[0] = screen_support_win;
for (i = 1, it = stacking_list; it; ++i, it = g_list_next(it))
win[i] = window_top(it->data);
start = event_start_ignore_all_enters();
XRestackWindows(obt_display, win, i);
event_end_ignore_all_enters(start);
g_free(win);
pause_changes = FALSE;

View file

@ -21,20 +21,23 @@
#include "gettext.h"
#include "event.h"
#include <stdlib.h>
#ifdef HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifndef USE_LIBSN
void sn_startup(gboolean reconfig) {}
void sn_shutdown(gboolean reconfig) {}
gboolean sn_app_starting() { return FALSE; }
Time sn_app_started(const gchar *id, const gchar *wmclass)
Time sn_app_started(const gchar *id, const gchar *wmclass, const gchar *name)
{
return CurrentTime;
}
gboolean sn_get_desktop(gchar *id, guint *desktop) { return FALSE; }
void sn_setup_spawn_environment(gchar *program, gchar *name,
gchar *icon_name, gint desktop) {}
void sn_setup_spawn_environment(const gchar *program, const gchar *name,
const gchar *icon_name, const gchar *wmclass,
gint desktop) {}
void sn_spawn_cancel() {}
#else
@ -57,15 +60,8 @@ static void sn_event_func(SnMonitorEvent *event, gpointer data);
void sn_startup(gboolean reconfig)
{
gchar *s;
if (reconfig) return;
/* unset this so we don't pass it on unknowingly */
s = g_strdup("DESKTOP_STARTUP_ID");
putenv(s);
g_free(s);
sn_display = sn_display_new(obt_display, NULL, NULL);
sn_context = sn_monitor_context_new(sn_display, ob_screen,
sn_event_func, NULL, NULL);
@ -168,7 +164,7 @@ static void sn_event_func(SnMonitorEvent *ev, gpointer data)
screen_set_root_cursor();
}
Time sn_app_started(const gchar *id, const gchar *wmclass)
Time sn_app_started(const gchar *id, const gchar *wmclass, const gchar *name)
{
GSList *it;
Time t = CurrentTime;
@ -179,10 +175,9 @@ Time sn_app_started(const gchar *id, const gchar *wmclass)
for (it = sn_waits; it; it = g_slist_next(it)) {
SnStartupSequence *seq = it->data;
gboolean found = FALSE;
const gchar *seqid, *seqclass, *seqname, *seqbin;
const gchar *seqid, *seqclass, *seqbin;
seqid = sn_startup_sequence_get_id(seq);
seqclass = sn_startup_sequence_get_wmclass(seq);
seqname = sn_startup_sequence_get_name(seq);
seqbin = sn_startup_sequence_get_binary_name(seq);
if (id && seqid) {
@ -190,15 +185,21 @@ Time sn_app_started(const gchar *id, const gchar *wmclass)
accuracy */
if (!strcmp(seqid, id))
found = TRUE;
} else {
seqclass = sn_startup_sequence_get_wmclass(seq);
seqname = sn_startup_sequence_get_name(seq);
seqbin = sn_startup_sequence_get_binary_name(seq);
if ((seqname && !g_ascii_strcasecmp(seqname, wmclass)) ||
(seqbin && !g_ascii_strcasecmp(seqbin, wmclass)) ||
(seqclass && !strcmp(seqclass, wmclass)))
found = TRUE;
}
else if (seqclass) {
/* seqclass = "a string to match against the "resource name" or
"resource class" hints. These are WM_CLASS[0] and WM_CLASS[1]"
- from the startup-notification spec
*/
found = (seqclass && !strcmp(seqclass, wmclass)) ||
(seqclass && !strcmp(seqclass, name));
}
else if (seqbin) {
/* Check the binary name against the class and name hints
as well, to help apps that don't have the class set
correctly */
found = (seqbin && !g_ascii_strcasecmp(seqbin, wmclass)) ||
(seqbin && !g_ascii_strcasecmp(seqbin, name));
}
if (found) {
@ -231,8 +232,9 @@ static gboolean sn_launch_wait_timeout(gpointer data)
return FALSE; /* don't repeat */
}
void sn_setup_spawn_environment(gchar *program, gchar *name,
gchar *icon_name, gint desktop)
void sn_setup_spawn_environment(const gchar *program, const gchar *name,
const gchar *icon_name, const gchar *wmclass,
gint desktop)
{
gchar *desc;
const char *id;
@ -249,6 +251,7 @@ void sn_setup_spawn_environment(gchar *program, gchar *name,
sn_launcher_context_set_icon_name(sn_launcher, icon_name ?
icon_name : program);
sn_launcher_context_set_binary_name(sn_launcher, program);
if (wmclass) sn_launcher_context_set_wmclass(sn_launcher, wmclass);
if (desktop >= 0 && (unsigned) desktop < screen_num_desktops)
sn_launcher_context_set_workspace(sn_launcher, (signed) desktop);
sn_launcher_context_initiate(sn_launcher, "openbox", program,
@ -262,7 +265,7 @@ void sn_setup_spawn_environment(gchar *program, gchar *name,
g_direct_equal,
(GDestroyNotify)sn_launcher_context_unref);
putenv(g_strdup_printf("DESKTOP_STARTUP_ID=%s", id));
setenv("DESKTOP_STARTUP_ID", id, TRUE);
g_free(desc);
}

View file

@ -27,16 +27,20 @@ void sn_shutdown(gboolean reconfig);
gboolean sn_app_starting();
/*! Notify that an app has started */
Time sn_app_started(const gchar *id, const gchar *wmclass);
/*! Notify that an app has started
@param wmclass the WM_CLASS[1] hint
@param name the WM_CLASS[0] hint
*/
Time sn_app_started(const gchar *id, const gchar *wmclass, const gchar *name);
/*! Get the desktop requested via the startup-notiication protocol if one
was requested */
gboolean sn_get_desktop(gchar *id, guint *desktop);
/* Get the environment to run the program in, with startup notification */
void sn_setup_spawn_environment(gchar *program, gchar *name,
gchar *icon_name, gint desktop);
void sn_setup_spawn_environment(const gchar *program, const gchar *name,
const gchar *icon_name, const gchar *wmclass,
gint desktop);
/* Tell startup notification we're not actually running the program we
told it we were

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2007-07-21 14:43+0300\n"
"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
"Language-Team: Arabic <doc@arabeyes.org>\n"
@ -28,7 +28,7 @@ msgstr ""
msgid "Failed to convert the path '%s' from utf8"
msgstr "فشلت في تحويل المسار '%s' من utf8"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "فشلت في تنفيذ '%s': %s"
@ -287,7 +287,7 @@ msgstr ""
"\n"
"من فضلك أبلغ عن العلل إلى %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "معامل سطر أوامر غير سليم '%s'\n"
@ -307,7 +307,14 @@ msgstr "تعذّر الحصول على انتقاء مدير النوافذ عل
msgid "The WM on screen %d is not exiting"
msgstr "مدير النوافذ على الشاشة %Id لا وجود له"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "سطح المكتب %Ii"
@ -327,7 +334,7 @@ msgstr "لم أستطِع حفظ الجلسة إلى '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "خطأ أثناء حفظ الجلسة إلى '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "تشغيل %s\n"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2007-06-01 19:02+0530\n"
"Last-Translator: Runa Bhattacharjee <runabh@gmail.com>\n"
"Language-Team: Bengali (India) <en@li.org>\n"
@ -28,7 +28,7 @@ msgstr ""
msgid "Failed to convert the path '%s' from utf8"
msgstr "'%s' পাথটি utf8 থেকে রূপান্তর করতে ব্যর্থ"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "'%s' সঞ্চালন করতে ব্যর্থ: %s"
@ -290,7 +290,7 @@ msgstr ""
"\n"
"অনুগ্রহ করে %s-এ বাগ সংক্রান্ত সূচনা দায়ের করুন\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "অবৈধ কমান্ড-লাইন আর্গুমেন্ট '%s'\n"
@ -310,7 +310,14 @@ msgstr "পর্দা %d-এ উইন্ডো পরিচালন ব্
msgid "The WM on screen %d is not exiting"
msgstr "পর্দা %d-র উপর চলমান উইন্ডো পরিচালন ব্যবস্থাটি বন্ধ করতে ব্যর্থ"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "desktop %i"
@ -330,7 +337,7 @@ msgstr "'%s'-র সেশান সংরক্ষণ করতে ব্যর
msgid "Error while saving the session to '%s': %s"
msgstr "'%s'-এ সেশান সংরক্ষণকালে সমস্যা: %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "%s সঞ্চালিত হচ্ছে\n"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2007-05-28 15:54+0200\n"
"Last-Translator: David Majà Martínez <davidmaja@gmail.com>\n"
"Language-Team: catalan\n"
@ -25,7 +25,7 @@ msgstr "L'acció sollicitada '%s' no és vàlida. Aquesta acció no existeix."
msgid "Failed to convert the path '%s' from utf8"
msgstr "No s'ha pogut convertir el camí '%s' des de utf8"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "No s'ha pogut executar '%s': %s"
@ -296,7 +296,7 @@ msgstr ""
"\n"
"Informeu dels errors a %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Opció '%s' no vàlida a la línia d'ordres\n"
@ -317,7 +317,14 @@ msgstr ""
msgid "The WM on screen %d is not exiting"
msgstr "El gestor de finestres de la pantalla %d no està sortint"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "escriptori %i"
@ -337,7 +344,7 @@ msgstr "No s'ha pogut desar la sessió a '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "S'ha produït un error mentre es desava la sessió a '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Executant %s\n"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2007-07-21 00:15+0200\n"
"Last-Translator: tezlo <tezlo@gmx.net>\n"
"Language-Team: Czech <cs@li.org>\n"
@ -25,7 +25,7 @@ msgstr "Požadována neplatná akce '%s'. Žádná taková akce neexistuje."
msgid "Failed to convert the path '%s' from utf8"
msgstr "Nepodařilo se převést cestu '%s' z utf8"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Nepodařilo se spustit '%s': %s"
@ -286,7 +286,7 @@ msgstr ""
"\n"
"Prosím hlašte chyby na %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Neplatný argument příkazové řádky '%s'\n"
@ -306,7 +306,14 @@ msgstr "Nepodařilo se získat výseč pro window manager na obrazovce %d"
msgid "The WM on screen %d is not exiting"
msgstr "Window manager na obrazovce %d ne a ne skončit"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "plochu %i"
@ -326,7 +333,7 @@ msgstr "Nepodařilo se uložit session do '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Chyba během ukládání session do '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Spouštím %s\n"

View file

@ -8,9 +8,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.6\n"
"Project-Id-Version: Openbox 3.4.5\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2008-01-17 22:49+0100\n"
"Last-Translator: Finn Zirngibl <finn@s23.org>\n"
"Language-Team: <de@li.org>\n"
@ -28,7 +28,7 @@ msgstr "Unzulässige Aktion '%s' angefordert. Diese Aktion existiert nicht."
msgid "Failed to convert the path '%s' from utf8"
msgstr "Konnte Pfad '%s' nicht von utf8 konvertieren"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Konnte '%s' nicht ausführen: %s"
@ -292,7 +292,7 @@ msgstr ""
"\n"
"Bitte melden Sie Bugreports an: %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Ungültiges Kommandozeilen Argument '%s'\n"
@ -312,7 +312,14 @@ msgstr "Konnte die Fenstermanagerauswahl auf Bildschirm %d nicht reservieren"
msgid "The WM on screen %d is not exiting"
msgstr "Der Fenstermanager auf Bildschirm %d beendet sich nicht"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "desktop %i"
@ -332,7 +339,7 @@ msgstr "Konnte die Sitzung '%s' nicht sichern: %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Fehler beim Speichern der Sitzung nach '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Starte %s\n"

View file

@ -30,10 +30,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: openbox 3.999.0\n"
"Project-Id-Version: openbox 3.4.5\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"PO-Revision-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2008-01-25 03:51+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@ -51,7 +51,7 @@ msgstr "Invalid action %s requested. No such action exists."
msgid "Failed to convert the path '%s' from utf8"
msgstr "Failed to convert the path %s from utf8"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Failed to execute '%s': %s"
@ -310,7 +310,7 @@ msgstr ""
"\n"
"Please report bugs at %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Invalid command line argument %s\n"
@ -330,7 +330,16 @@ msgstr "Could not acquire window manager selection on screen %d"
msgid "The WM on screen %d is not exiting"
msgstr "The WM on screen %d is not exiting"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "desktop %i"
@ -350,7 +359,7 @@ msgstr "Unable to save the session to '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Error while saving the session to '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Running %s\n"

View file

@ -27,10 +27,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: openbox 3.999.0\n"
"Project-Id-Version: openbox 3.4.5\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"PO-Revision-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2008-01-25 03:51+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@ -48,7 +48,7 @@ msgstr "Invalid action %s requested. No such action exists."
msgid "Failed to convert the path '%s' from utf8"
msgstr "Failed to convert the path %s from utf8"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Failed to execute '%s': %s"
@ -307,7 +307,7 @@ msgstr ""
"\n"
"Please report bugs at %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Invalid command line argument %s\n"
@ -327,7 +327,16 @@ msgstr "Could not acquire window manager selection on screen %d"
msgid "The WM on screen %d is not exiting"
msgstr "The WM on screen %d is not exiting"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "desktop %i"
@ -347,7 +356,7 @@ msgstr "Unable to save the session to '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Error while saving the session to '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Running %s\n"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2007-07-21 21:26+0200\n"
"Last-Translator: David Merino <rastiazul at yahoo . com>\n"
"Language-Team: None\n"
@ -27,7 +27,7 @@ msgstr "La acción '%s' solicitada es inválida. No existe tal acción."
msgid "Failed to convert the path '%s' from utf8"
msgstr "Falló al convertir el path '%s' desde utf8"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Falló al ejecutar '%s': %s"
@ -293,7 +293,7 @@ msgstr ""
"\n"
"Por favor reportar errores a %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Argumento de linea de comando inválido '%s'\n"
@ -314,7 +314,14 @@ msgstr ""
msgid "The WM on screen %d is not exiting"
msgstr "El WM en la pantalla %d no esta saliendo"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "Escritorio %i"
@ -334,7 +341,7 @@ msgstr "No se puede salvar la sesión a '%s': '%s'"
msgid "Error while saving the session to '%s': %s"
msgstr "Error mientras se salvaba la sesión a '%s': '%s'"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Ejecutando %s\n"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2007-07-20 16:54+0200\n"
"Last-Translator: Andres Järv <andresjarv@gmail.com>\n"
"Language-Team: Estonian <et@li.org>\n"
@ -26,7 +26,7 @@ msgstr "Taotleti kehtetut käsklust '%s'. Sellist käsklust pole olemas."
msgid "Failed to convert the path '%s' from utf8"
msgstr "Raja '%s' ümberkodeerimine UTF8-st ebaõnnestus"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "'%s' käivitamine ebaõnnestus: %s"
@ -287,7 +287,7 @@ msgstr ""
"\n"
"Palun teata vigadest siia %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Vigane käsurea argument '%s'\n"
@ -307,7 +307,14 @@ msgstr "Ei suuda hankida aknahaldurite loetelu ekraanil %d"
msgid "The WM on screen %d is not exiting"
msgstr "Aknahaldur ekraanil %d ei sulgu"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "töölaud %i"
@ -327,7 +334,7 @@ msgstr "Seansi '%s' salvestamine ebaõnnestus: %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Seansi '%s' salvestamisel ilmnes viga: %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Jooksev %s\n"

View file

@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.6\n"
"Project-Id-Version: Openbox 3.4.5\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2008-01-19 14:34+0100\n"
"Last-Translator: Inko I. A. <inkoia@gmail.com>\n"
"Language-Team: Inko I. A. <inkoia@gmail.com>\n"
@ -25,7 +25,7 @@ msgstr "Eskatutako '%s' ekintza baliogabea. Ez da ekintza hori existitzen."
msgid "Failed to convert the path '%s' from utf8"
msgstr "Hutsegitea '%s' helbidea utf8-tik bihurtzean"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Hutsegitea '%s' exekutatzean: %s"
@ -287,7 +287,7 @@ msgstr ""
"\n"
"%s helbidean erroreen berri eman mesedez\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "'%s' komando lerro argumentu baliogabea\n"
@ -310,7 +310,14 @@ msgstr ""
msgid "The WM on screen %d is not exiting"
msgstr "%d bistaratze pantailako leiho-kudeatzailea ez da irteten"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "%i Idazmahaia"
@ -330,7 +337,7 @@ msgstr "Ezin da saioa '%s'-n gorde: %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Errorea saioa '%s'-n gordetzean: %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Egikaritzen %s\n"

View file

@ -8,9 +8,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.6\n"
"Project-Id-Version: Openbox 3.4.5\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2008-01-18 14:55+0100\n"
"Last-Translator: Jarkko Piiroinen <jarkkop@iki.fi>\n"
"Language-Team: None\n"
@ -28,7 +28,7 @@ msgstr "Virheellinen tapahtuma '%s' yritetty. Tapahtumaa ei ole."
msgid "Failed to convert the path '%s' from utf8"
msgstr "Polun muuntaminen utf8:sta epäonnistui: '%s'"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Ohjelman suorittaminen epäonnistui '%s': %s"
@ -202,7 +202,8 @@ msgstr "Teeman lataaminen epäonnistui."
#: openbox/openbox.c:405
#, c-format
msgid "Restart failed to execute new executable '%s': %s"
msgstr "Uudelleenkäynnistys ei onnistunut käynnistämään uutta ohjelmaa '%s': %s"
msgstr ""
"Uudelleenkäynnistys ei onnistunut käynnistämään uutta ohjelmaa '%s': %s"
#: openbox/openbox.c:475 openbox/openbox.c:477
msgid "Copyright (c)"
@ -289,7 +290,7 @@ msgstr ""
"\n"
"Ilmoita virheistä: %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Virheellinen valitsin '%s'\n"
@ -309,7 +310,14 @@ msgstr "Ikkunointiohjelman valinta ruudulla %d ei onnistunut"
msgid "The WM on screen %d is not exiting"
msgstr "Ikkunointiohjelma ruudulla %d ei sulkeudu"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "työtila %i"
@ -329,7 +337,7 @@ msgstr "Istuntoa ei voitu tallentaa hakemistoon '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Virhe tallennettaessa istuntoa hakemistoon '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Suoritetaan %s\n"

View file

@ -9,9 +9,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.6\n"
"Project-Id-Version: Openbox 3.4.5\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2008-01-17 22:53+0100\n"
"Last-Translator: Cyrille Bagard <nocbos@gmail.com>\n"
"Language-Team: français <fr@li.org>\n"
@ -29,7 +29,7 @@ msgstr "Action demand
msgid "Failed to convert the path '%s' from utf8"
msgstr "Échec de la conversion du chemin « %s » depuis l'UTF-8"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Échec de l'exécution de « %s » : %s"
@ -300,7 +300,7 @@ msgstr ""
"\n"
"Veuillez soumettre les rapports de bogues à %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Argument de la ligne de commande invalide « %s »\n"
@ -323,7 +323,14 @@ msgid "The WM on screen %d is not exiting"
msgstr ""
"Le gestionnaire de fenêtres sur l'écran %d n'est pas en train de se terminer"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "bureau %i"
@ -343,7 +350,7 @@ msgstr "Impossible de sauvegarder la session dans
msgid "Error while saving the session to '%s': %s"
msgstr "Erreur lors de la sauvegarde de la session depuis « %s » : %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Exécution de %s\n"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2007-12-21 14:33+0100\n"
"Last-Translator: Robert Kuszinger <hiding@freemail.hu>\n"
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@ -26,7 +26,7 @@ msgstr ""
msgid "Failed to convert the path '%s' from utf8"
msgstr "Az útvonalat nem sikerült átalakítani utf8-ból: '%s'"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Nem sikerült futtatni ezt a programot '%s': %s"
@ -287,7 +287,7 @@ msgstr ""
"\n"
"Légyszi jelentsd a hibát itt: %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Érvénytelen parancssori opció: '%s'\n"
@ -307,7 +307,14 @@ msgstr "Nem tudok ablakkezelőt váltani ezen a képernyőn %d"
msgid "The WM on screen %d is not exiting"
msgstr "Ezen a képernyőn: %d az ablakkezelő nem lép ki"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "%i. munkaasztal"
@ -327,7 +334,7 @@ msgstr "Nem tudom elmenti ide a futó környezetet '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Hiba a futási környezet mentése közben '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Futtatás %s\n"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2007-07-20 15:18+0200\n"
"Last-Translator: Davide Truffa <davide@catoblepa.org>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
@ -26,7 +26,7 @@ msgstr ""
msgid "Failed to convert the path '%s' from utf8"
msgstr "Impossibile convertire il percorso utf8 '%s'"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Impossibile eseguire il comando '%s': %s"
@ -293,7 +293,7 @@ msgstr ""
"\n"
"Segnalate eventuali bug a %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Argomento da linea di comando non valido '%s'\n"
@ -313,7 +313,14 @@ msgstr "Impossibile acquisire la selezione del window manager sullo schermo %d"
msgid "The WM on screen %d is not exiting"
msgstr "Il WM sullo schermo %d non è terminato"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "desktop %i"
@ -333,7 +340,7 @@ msgstr "Impossibile salvare la sessione in '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Errore durante il salvataggio della sessione in '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Sto eseguendo %s\n"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2007-06-07 14:49+0200\n"
"Last-Translator: Ryoichiro Suzuki <ryoichiro.suzuki@gmail.com>\n"
"Language-Team: Japanese <ja@li.org>\n"
@ -28,7 +28,7 @@ msgstr ""
msgid "Failed to convert the path '%s' from utf8"
msgstr "パス'%s'を utf8 から変換するのに失敗しました。"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "'%s'の実行に失敗しました: %s"
@ -280,7 +280,7 @@ msgid ""
"Please report bugs at %s\n"
msgstr ""
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "不正なコマンドライン引数 '%s'\n"
@ -300,7 +300,14 @@ msgstr "スクリーン%dでウィンドウマネージャの選択を取得で
msgid "The WM on screen %d is not exiting"
msgstr "スクリーン%dのWMが終了しません。"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "デスクトップ%i"
@ -320,7 +327,7 @@ msgstr "セッションを'%s'に保存できません: %s"
msgid "Error while saving the session to '%s': %s"
msgstr "セッションを'%s'に保存中にエラーが起きました: %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "起動中 %s\n"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2007-07-12 13:01+0200\n"
"Last-Translator: Jochem Kossen <jkossen@xs4all.nl>\n"
"Language-Team: Dutch <nl@li.org>\n"
@ -26,7 +26,7 @@ msgstr "Ongeldige actie '%s' gevraagd. Deze actie bestaat niet"
msgid "Failed to convert the path '%s' from utf8"
msgstr "Converteren van het pad '%s' vanuit utf8 mislukt"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Uitvoeren van '%s' mislukt: %s"
@ -287,7 +287,7 @@ msgstr ""
"\n"
"Gelieve bugs te melden bij %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Onbekende optie '%s'\n"
@ -307,7 +307,14 @@ msgstr "Kon window manager selectie op scherm %d niet verkrijgen"
msgid "The WM on screen %d is not exiting"
msgstr "De window manager op scherm %d sluit zichzelf niet af"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "bureaublad %i"
@ -327,7 +334,7 @@ msgstr "Kan de sessie niet opslaan naar '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Fout tijdens het opslaan van de sessie naar '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Starten %s\n"

135
po/no.po
View file

@ -2,14 +2,14 @@
# Copyright (C) 2007 Dana Jansens
# This file is distributed under the same license as the openbox package.
#
# Michael Kjelbergvik Thung <postlogic@switch-case.org>, 2007.
# Michael Kjelbergvik Thung <postlogic@gmail.com>, 2008.
msgid ""
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"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"PO-Revision-Date: 2007-05-20 18:41+0200\n"
"Last-Translator: Michael Kjelbergvik Thung <postlogic@switch-case.org>\n"
"POT-Creation-Date: 2008-01-29 13:43+0100\n"
"PO-Revision-Date: 2008-01-29 13:37+0100\n"
"Last-Translator: Michael Kjelbergvik Thung <postlogic@gmail.com>\n"
"Language-Team: None\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -20,109 +20,109 @@ msgstr ""
msgid "Invalid action '%s' requested. No such action exists."
msgstr "Ugyldig operasjon '%s' etterspurt. Operasjonen finnes ikke."
#: openbox/actions/execute.c:88
#: openbox/actions/execute.c:92
#, c-format
msgid "Failed to convert the path '%s' from utf8"
msgstr "Feil ved konvertering av '%s' fra utf8 "
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:101 openbox/actions/execute.c:120
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Kunne ikke kjøre '%s': %s"
#: openbox/client.c:1973 openbox/client.c:2005
#: openbox/client.c:1979 openbox/client.c:2011
msgid "Killing..."
msgstr ""
msgstr "Dreper..."
#: openbox/client.c:1975 openbox/client.c:2007
#: openbox/client.c:1981 openbox/client.c:2013
msgid "Not Responding"
msgstr ""
msgstr "Svarer Ikke"
#: openbox/client_list_combined_menu.c:90 openbox/client_list_menu.c:93
#: openbox/client_list_combined_menu.c:91 openbox/client_list_menu.c:94
msgid "Go there..."
msgstr "Gå dit..."
#: openbox/client_list_combined_menu.c:96
#: openbox/client_list_combined_menu.c:97
msgid "Manage desktops"
msgstr "Behandle skrivebord"
#: openbox/client_list_combined_menu.c:97 openbox/client_list_menu.c:156
#: openbox/client_list_combined_menu.c:98 openbox/client_list_menu.c:157
msgid "_Add new desktop"
msgstr "_Nytt skrivebord"
#: 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 "_Remove last desktop"
msgstr "_Fjern siste skrivebord"
#: openbox/client_list_combined_menu.c:150
#: openbox/client_list_combined_menu.c:151
msgid "Windows"
msgstr "Vinduer"
#: openbox/client_list_menu.c:203
#: openbox/client_list_menu.c:204
msgid "Desktops"
msgstr "Skrivebord"
#: openbox/client_menu.c:256
#: openbox/client_menu.c:257
msgid "All desktops"
msgstr "Alle skrivebord"
#: openbox/client_menu.c:360
#: openbox/client_menu.c:361
msgid "_Layer"
msgstr "La_g"
#: openbox/client_menu.c:365
#: openbox/client_menu.c:366
msgid "Always on _top"
msgstr "Alltid ø_verst"
#: openbox/client_menu.c:366
#: openbox/client_menu.c:367
msgid "_Normal"
msgstr "Nor_mal"
#: openbox/client_menu.c:367
#: openbox/client_menu.c:368
msgid "Always on _bottom"
msgstr "Alltid _nederst"
#: openbox/client_menu.c:370
#: openbox/client_menu.c:371
msgid "_Send to desktop"
msgstr "_Send til"
#: openbox/client_menu.c:374
#: openbox/client_menu.c:375
msgid "Client menu"
msgstr "Klient-meny"
#: openbox/client_menu.c:384
#: openbox/client_menu.c:385
msgid "R_estore"
msgstr "Tilbak_estill"
#: openbox/client_menu.c:392
#: openbox/client_menu.c:393
msgid "_Move"
msgstr "_Flytt"
#: openbox/client_menu.c:394
#: openbox/client_menu.c:395
msgid "Resi_ze"
msgstr "Endre s_tørrelse"
#: openbox/client_menu.c:396
#: openbox/client_menu.c:397
msgid "Ico_nify"
msgstr "_Minimer"
#: openbox/client_menu.c:404
#: openbox/client_menu.c:405
msgid "Ma_ximize"
msgstr "Ma_ximer"
#: openbox/client_menu.c:412
#: openbox/client_menu.c:413
msgid "_Roll up/down"
msgstr "_Rull opp/ned"
#: openbox/client_menu.c:414
#: openbox/client_menu.c:415
msgid "Un/_Decorate"
msgstr "Fjern/Legg til _dekorasjon"
#: openbox/client_menu.c:418
#: openbox/client_menu.c:419
msgid "_Close"
msgstr "_Lukk"
#: openbox/config.c:746
#: openbox/config.c:750
#, c-format
msgid "Invalid button '%s' specified in config file"
msgstr "Ugyldig tast '%s' spesifisert i konfigurasjonsfilen"
@ -165,49 +165,49 @@ msgstr "Ugyldig knapp '%s' i binding for mus"
msgid "Invalid context '%s' in mouse binding"
msgstr "Ugyldig innhold '%s' i binding for mus"
#: openbox/openbox.c:130
#: openbox/openbox.c:131
#, c-format
msgid "Unable to change to home directory '%s': %s"
msgstr "Kan ikke endre til hjemmekatalogen '%s': %s"
#: openbox/openbox.c:150
#: openbox/openbox.c:151
msgid "Failed to open the display from the DISPLAY environment variable."
msgstr "Kunne ikke åpne displayet fra DISPLAY-miljøvariabelen"
#: openbox/openbox.c:181
#: openbox/openbox.c:182
msgid "Failed to initialize the obrender library."
msgstr "Kunne ikke starte obrender-biblioteket."
#: openbox/openbox.c:187
#: openbox/openbox.c:188
msgid "X server does not support locale."
msgstr "X-serveren støtter ikke lokalisering."
#: openbox/openbox.c:189
#: openbox/openbox.c:190
msgid "Cannot set locale modifiers for the X server."
msgstr "Kan ikke stille inn lokaliseringsmodifikatorene for X-serveren."
#: openbox/openbox.c:252
#: openbox/openbox.c:253
msgid "Unable to find a valid config file, using some simple defaults"
msgstr "Kunne ikke finne en gyldig konfigurasjonsfil, bruker standardverdier"
#: openbox/openbox.c:278
#: openbox/openbox.c:279
msgid "Unable to load a theme."
msgstr "Kan ikke laste et tema."
#: openbox/openbox.c:405
#: openbox/openbox.c:406
#, c-format
msgid "Restart failed to execute new executable '%s': %s"
msgstr "Restart kunne ikke starte nytt program '%s': %s"
#: openbox/openbox.c:475 openbox/openbox.c:477
#: openbox/openbox.c:476 openbox/openbox.c:478
msgid "Copyright (c)"
msgstr ""
msgstr "Copyright (c)"
#: openbox/openbox.c:486
#: openbox/openbox.c:487
msgid "Syntax: openbox [options]\n"
msgstr "Syntax: openbox [alternativer\n"
#: openbox/openbox.c:487
#: openbox/openbox.c:488
msgid ""
"\n"
"Options:\n"
@ -215,23 +215,23 @@ msgstr ""
"\n"
"Alternativ:\n"
#: openbox/openbox.c:488
#: openbox/openbox.c:489
msgid " --help Display this help and exit\n"
msgstr " --help Vise denne hjelpeteksten og avslutt\n"
#: openbox/openbox.c:489
#: openbox/openbox.c:490
msgid " --version Display the version and exit\n"
msgstr " --version Vis versjonsnummeret og avslutt\n"
#: openbox/openbox.c:490
#: openbox/openbox.c:491
msgid " --replace Replace the currently running window manager\n"
msgstr " --replace Erstatt den kjørende vindusbehandleren\n"
#: openbox/openbox.c:491
#: openbox/openbox.c:492
msgid " --sm-disable Disable connection to the session manager\n"
msgstr " --sm-disable Deaktiver tilkobling til sesjonsbehandleren\n"
#: openbox/openbox.c:492
#: openbox/openbox.c:493
msgid ""
"\n"
"Passing messages to a running Openbox instance:\n"
@ -239,19 +239,19 @@ msgstr ""
"\n"
"Sender beskjeder til en kjørende Openbox-instans:\n"
#: openbox/openbox.c:493
#: openbox/openbox.c:494
msgid " --reconfigure Reload Openbox's configuration\n"
msgstr " --reconfigure Oppdater Openbox' konfigurasjon\n"
#: openbox/openbox.c:494
#: openbox/openbox.c:495
msgid " --restart Restart Openbox\n"
msgstr " --restart Start Openbox på nytt\n"
#: openbox/openbox.c:495
msgid " --exit Exit Openbox\n"
msgstr ""
#: openbox/openbox.c:496
msgid " --exit Exit Openbox\n"
msgstr " --exit Avslutt Openbox\n"
#: openbox/openbox.c:497
msgid ""
"\n"
"Debugging options:\n"
@ -259,23 +259,23 @@ msgstr ""
"\n"
"Debug-alternativ:\n"
#: openbox/openbox.c:497
#: openbox/openbox.c:498
msgid " --sync Run in synchronous mode\n"
msgstr " --sync Kjør i synkron-modus\n"
#: openbox/openbox.c:498
#: openbox/openbox.c:499
msgid " --debug Display debugging output\n"
msgstr " --debug Vis debuggingsinformasjon\n"
#: openbox/openbox.c:499
#: openbox/openbox.c:500
msgid " --debug-focus Display debugging output for focus handling\n"
msgstr " --debug-focus Vis debuggingsinformasjon for fokus-håndtering\n"
#: openbox/openbox.c:500
#: openbox/openbox.c:501
msgid " --debug-xinerama Split the display into fake xinerama screens\n"
msgstr " -debug-xinerama Splitt displayet for falske xinerama-skjermer\n"
#: openbox/openbox.c:501
#: openbox/openbox.c:502
#, c-format
msgid ""
"\n"
@ -284,7 +284,7 @@ msgstr ""
"\n"
"Vennligst rapporter bugs til %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:603
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Ugyldig kommandolinje-argument '%s'\n"
@ -304,7 +304,14 @@ msgstr "Kunne ikke hendte vindusbehandlerens markering på skjerm %d"
msgid "The WM on screen %d is not exiting"
msgstr "Vindusbehandleren på skjerm %d vil ikke avslutte"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr "Openbox er innstillt til %d skrivebord, men nåværende sesjon har %d. Benytter sesjonens innstilling."
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "skrivebord %i"
@ -324,7 +331,7 @@ msgstr "Kan ikke lagre sesjon til '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Feil ved lagring av sesjon til '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:243
#, c-format
msgid "Running %s\n"
msgstr "Kjører %s\n"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -26,7 +26,7 @@ msgstr ""
msgid "Failed to convert the path '%s' from utf8"
msgstr ""
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr ""
@ -277,7 +277,7 @@ msgid ""
"Please report bugs at %s\n"
msgstr ""
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr ""
@ -297,7 +297,14 @@ msgstr ""
msgid "The WM on screen %d is not exiting"
msgstr ""
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr ""
@ -317,7 +324,7 @@ msgstr ""
msgid "Error while saving the session to '%s': %s"
msgstr ""
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr ""

View file

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2007-07-14 00:43+0200\n"
"Last-Translator: Piotr Drąg <raven@pmail.pl>\n"
"Language-Team: Polish <pl@li.org>\n"
@ -27,7 +27,7 @@ msgstr ""
msgid "Failed to convert the path '%s' from utf8"
msgstr "Nie można przekonwertować ścieżki '%s' z UTF-8"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Wykonanie '%s' nie powiodło się: %s"
@ -291,7 +291,7 @@ msgstr ""
"\n"
"Proszę zgłaszać błędy (w języku angielskim) pod adresem %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Nieprawidłowy argument wiersza poleceń '%s'\n"
@ -311,7 +311,14 @@ msgstr "Nie można uzyskać wyboru menedżera okien na ekranie %d"
msgid "The WM on screen %d is not exiting"
msgstr "Menedżer okien na ekranie %d nie kończy działania"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "pulpit %i"
@ -331,7 +338,7 @@ msgstr "Nie można zapisać sesji do '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Wystąpił błąd podczas zapisywania sesji do '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Uruchamianie %s\n"

View file

@ -2,14 +2,14 @@
# Copyright (C) 2007 Mikael Magnusson
# This file is distributed under the same license as the openbox package.
# Gonçalo Ferreira <gonsas@gmail.com>, 2006.
# Althaser <Althaser@gmail.com>, 2007.
# Althaser <Althaser@gmail.com>, 2008.
#
msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.3\n"
"Project-Id-Version: Openbox 3.4.5\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"PO-Revision-Date: 2007-07-21 18:03+0200\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2008-01-22 22:17+0100\n"
"Last-Translator: Althaser <Althaser@gmail.com>\n"
"Language-Team: None\n"
"MIME-Version: 1.0\n"
@ -26,18 +26,18 @@ msgstr "Pedido de ac
msgid "Failed to convert the path '%s' from utf8"
msgstr "Falha a converter o caminho '%s' do utf8"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Falha a executar '%s': %s"
#: openbox/client.c:1973 openbox/client.c:2005
msgid "Killing..."
msgstr ""
msgstr "Terminando..."
#: openbox/client.c:1975 openbox/client.c:2007
msgid "Not Responding"
msgstr ""
msgstr "Não está a responder"
#: openbox/client_list_combined_menu.c:90 openbox/client_list_menu.c:93
msgid "Go there..."
@ -113,7 +113,7 @@ msgstr "Ma_ximizar"
#: openbox/client_menu.c:412
msgid "_Roll up/down"
msgstr "En/Desen_rolar"
msgstr "Des/en_rolar"
#: openbox/client_menu.c:414
msgid "Un/_Decorate"
@ -252,7 +252,7 @@ msgstr " --restart Reinicia o Openbox\n"
#: openbox/openbox.c:495
msgid " --exit Exit Openbox\n"
msgstr ""
msgstr " --saida Sai do Openbox\n"
#: openbox/openbox.c:496
msgid ""
@ -289,7 +289,7 @@ msgstr ""
"\n"
"Por favor reporte erros em %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Argumento inválido na linha de comandos '%s'\n"
@ -307,9 +307,16 @@ msgstr "N
#: openbox/screen.c:145
#, c-format
msgid "The WM on screen %d is not exiting"
msgstr "O gestor de janelas no ecrã %d não está fechando"
msgstr "O gestor de janelas no ecrã %d não está a fechar"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "área de trabalho %i"
@ -329,7 +336,7 @@ msgstr "Incapaz de guardar a sess
msgid "Error while saving the session to '%s': %s"
msgstr "Erro enquanto guardava a sessão em '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Executando %s\n"

View file

@ -2,15 +2,15 @@
# Copyright (C) 2007 Mikael Magnusson
# This file is distributed under the same license as the openbox package.
# crimeboy, 2007.
# Og Maciel <ogmaciel@ubuntu.com>, 2007.
# Og Maciel <ogmaciel@gnome.org>, 2007, 2008.
#
msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.3\n"
"Project-Id-Version: Openbox 3.4.5\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"PO-Revision-Date: 2007-07-20 16:43+0200\n"
"Last-Translator: Og Maciel <ogmaciel@ubuntu.com>\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2008-01-22 21:42+0100\n"
"Last-Translator: Og Maciel <ogmaciel@gnome.org>\n"
"Language-Team: Brazilian Portuguese <gnome-l10n-br@listas.cipsga.org.br>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -27,18 +27,18 @@ msgstr "Ação inválida '%s' requisitada. Ação não existe."
msgid "Failed to convert the path '%s' from utf8"
msgstr "Falha ao converter o caminho '%s' do utf8"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Falha ao executar '%s': %s"
#: openbox/client.c:1973 openbox/client.c:2005
msgid "Killing..."
msgstr ""
msgstr "Terminando..."
#: openbox/client.c:1975 openbox/client.c:2007
msgid "Not Responding"
msgstr ""
msgstr "Não Responsivo"
#: openbox/client_list_combined_menu.c:90 openbox/client_list_menu.c:93
msgid "Go there..."
@ -255,7 +255,7 @@ msgstr " --restart Reinicia o Openbox\n"
#: openbox/openbox.c:495
msgid " --exit Exit Openbox\n"
msgstr ""
msgstr " --exit Sai do Openbox\n"
#: openbox/openbox.c:496
msgid ""
@ -293,7 +293,7 @@ msgstr ""
"\n"
"Por favor reporte erros em %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Argumento de linha de comando inválido '%s'\n"
@ -314,7 +314,14 @@ msgstr ""
msgid "The WM on screen %d is not exiting"
msgstr "O gerenciador de janelas na tela %d não está saindo"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "área de trabalho %i"
@ -334,7 +341,7 @@ msgstr "Não foi possível salvar a sessão em '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Erro enquanto salvando a sessão em '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Executando %s\n"

View file

@ -6,10 +6,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.3\n"
"Project-Id-Version: Openbox 3.4.5\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"PO-Revision-Date: 2007-08-17 22:36+0200\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2008-01-22 07:56+0100\n"
"Last-Translator: Nikita Bukhvostov <dragon.djanic@gmail.com>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
@ -19,25 +19,25 @@ msgstr ""
#: openbox/actions.c:149
#, c-format
msgid "Invalid action '%s' requested. No such action exists."
msgstr ""
msgstr "Запрошенное действие '%s' не найдено."
#: openbox/actions/execute.c:88
#, c-format
msgid "Failed to convert the path '%s' from utf8"
msgstr "Не удалось сконвертировать путь '%s' из utf8"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Не удалось запустить '%s': %s"
#: openbox/client.c:1973 openbox/client.c:2005
msgid "Killing..."
msgstr ""
msgstr "Завершение..."
#: openbox/client.c:1975 openbox/client.c:2007
msgid "Not Responding"
msgstr ""
msgstr "Не отвечает"
#: openbox/client_list_combined_menu.c:90 openbox/client_list_menu.c:93
msgid "Go there..."
@ -252,7 +252,7 @@ msgstr " --restart Перезапустить Openbox\n"
#: openbox/openbox.c:495
msgid " --exit Exit Openbox\n"
msgstr ""
msgstr " --exit Выход из Openbox\n"
#: openbox/openbox.c:496
msgid ""
@ -289,7 +289,7 @@ msgstr ""
"\n"
"Пожалуйста, сообщайте об ошибках на %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Некорректный командный параметр '%s'\n"
@ -309,7 +309,14 @@ msgstr "Не могу получить выбор менеджера окон н
msgid "The WM on screen %d is not exiting"
msgstr "Менеджер окон на экране %d не завершается"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "рабочий стол %i"
@ -329,7 +336,7 @@ msgstr "Не могу сохранить сессию в '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Ошибка при сохранении сессии в '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Запущен %s\n"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Openbox-3.4.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2007-12-7 13:43Central Europe Daylight Time\n"
"Last-Translator: Jozef Riha <jose1711@gmail.com\n"
"Language-Team: Slovak <sk@sk.org>\n"
@ -25,7 +25,7 @@ msgstr "Vyžiadaná neplatná akcia '%s'. Takáto akcia neexistuje."
msgid "Failed to convert the path '%s' from utf8"
msgstr "Nepodarilo sa skonvertovať cestu '%s' z utf8"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Nepodarilo sa spustiť '%s': %s"
@ -251,9 +251,8 @@ msgid " --restart Restart Openbox\n"
msgstr " --restart Restartuje Openbox\n"
#: openbox/openbox.c:495
#, fuzzy
msgid " --exit Exit Openbox\n"
msgstr " --restart Restartuje Openbox\n"
msgstr ""
#: openbox/openbox.c:496
msgid ""
@ -289,7 +288,7 @@ msgstr ""
"\n"
"Prosim hlaste chyby na %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Neplatny parameter prikazoveho riadku '%s'\n"
@ -309,7 +308,14 @@ msgstr "Nepodarilo sa získať výber okenného manažéra na obrazovke %d"
msgid "The WM on screen %d is not exiting"
msgstr "Okenný manažér na obrazovke %d sa neukončuje"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "plocha %i"
@ -329,7 +335,7 @@ msgstr "Nepodarilo sa uložiť sedenie '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Chyba pri ukladaní sedenia do '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Spúšťam %s\n"

View file

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.6\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"PO-Revision-Date: 2008-01-17 22:19+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2008-01-25 03:52+0100\n"
"Last-Translator: Mikael Magnusson <mikachu@icculus.org>\n"
"Language-Team: None\n"
"MIME-Version: 1.0\n"
@ -25,7 +25,7 @@ msgstr "Ogiltig action '%s' efterfr
msgid "Failed to convert the path '%s' from utf8"
msgstr "Lyckades inte konvertera sökvägen '%s' från utf8"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Kunde inte exekvera '%s': %s"
@ -285,7 +285,7 @@ msgstr ""
"\n"
"Rapportera buggar till %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Ogiltigt kommandoradsargument '%s'\n"
@ -305,7 +305,16 @@ msgstr "Kunde inte erh
msgid "The WM on screen %d is not exiting"
msgstr "Fönsterhanteraren på skärm %d avslutar inte"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
"Openbox är inställt på %d skrivbord, men nuvarande session har %d. Använder "
"sessionens inställning."
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "skrivbord %i"
@ -325,7 +334,7 @@ msgstr "Kunde inte spara sessionen till '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Fel inträffade när sessionen skulle sparas till '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Kör %s\n"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2007-06-16 13:02+0200\n"
"Last-Translator: Dmitriy Moroz <zux@dimaka.org.ua>\n"
"Language-Team: Ukrainian <root@archlinux.org.ua>\n"
@ -25,7 +25,7 @@ msgstr "Здійснено запит на некоректну дію '%s'. Н
msgid "Failed to convert the path '%s' from utf8"
msgstr "Не вдалося сконвертувати шлях '%s' з utf8"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Невдалося виконати '%s': %s"
@ -288,7 +288,7 @@ msgstr ""
"\n"
"Будь-ласка, повідомляйте про помилки на %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Некоректний командний аргумент '%s'\n"
@ -308,7 +308,14 @@ msgstr "Не можу отримати вибір менеджера вікон
msgid "The WM on screen %d is not exiting"
msgstr "Менеджео вікон на дисплеї %d не завершується"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "стільниця %i"
@ -328,7 +335,7 @@ msgstr "Не вдалося зберегти сесію в '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Помилка при збереженні сесії в '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Виконується %s\n"

View file

@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.6\n"
"Project-Id-Version: Openbox 3.4.5\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2008-01-17 23:08+0100\n"
"Last-Translator: Quan Tran <qeed.quan@gmail.com>\n"
"Language-Team: None\n"
@ -25,7 +25,7 @@ msgstr "Hành động '%s' làm không được. Hành động đó không có."
msgid "Failed to convert the path '%s' from utf8"
msgstr "Không thể chuyển chỗ '%s' từ utf8"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "Làm không được '%s': %s"
@ -286,7 +286,7 @@ msgstr ""
"\n"
"Làm ơn báo cáo bugs ở chỗ %s\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "Mệnh lệnh viết sai '%s'\n"
@ -306,7 +306,14 @@ msgstr "Không thể lấy được chương trình quản lý cửa sổ ở tr
msgid "The WM on screen %d is not exiting"
msgstr "Chương trình quản lý cửa sổ trên màn hình %d không đi ra"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "chỗ làm việc %i"
@ -326,7 +333,7 @@ msgstr "Không thể tiết kiệm thời kỳ cho '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "Bĩ trục chật lúc tiết kiệm thời kỳ cho '%s': %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "Đan Chạy %s\n"

View file

@ -6,9 +6,9 @@
# Shaodong Di <gnuyhlfh@gmail.com>, 2008.
msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.6\n"
"Project-Id-Version: Openbox 3.4.5\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2008-01-18 15:02+0100\n"
"Last-Translator: Shaodong Di <gnuyhlfh@gmail.com>\n"
"Language-Team: 简体中文\n"
@ -26,7 +26,7 @@ msgstr "请求的动作 '%s' 无效。该动作不存在。"
msgid "Failed to convert the path '%s' from utf8"
msgstr "从 utf8 转换路径 '%s' 时失败"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "执行 '%s' 时失败: %s"
@ -285,7 +285,7 @@ msgstr ""
"\n"
"请向 %s 报告错误\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "无效的命令行参数 '%s'\n"
@ -305,7 +305,14 @@ msgstr "在屏幕 %d 无法被选为窗口管理器"
msgid "The WM on screen %d is not exiting"
msgstr "屏幕 %d 的窗口管理器没有退出"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "桌面 %i"
@ -325,7 +332,7 @@ msgstr "无法保存会话到 '%s': %s"
msgid "Error while saving the session to '%s': %s"
msgstr "在保存会话到 '%s' 时出错: %s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "运行 %s\n"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Openbox 3.4.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.icculus.org\n"
"POT-Creation-Date: 2008-01-17 22:13+0100\n"
"POT-Creation-Date: 2008-01-25 03:51+0100\n"
"PO-Revision-Date: 2007-07-23 23:22+0200\n"
"Last-Translator: Wei-Lun Chao <chaoweilun@gmail.com>\n"
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
@ -26,7 +26,7 @@ msgstr "要求的動作「%s」無效。無此類動作存在。"
msgid "Failed to convert the path '%s' from utf8"
msgstr "轉換路徑「%s」自 utf8 時失敗"
#: openbox/actions/execute.c:97 openbox/actions/execute.c:115
#: openbox/actions/execute.c:97 openbox/actions/execute.c:116
#, c-format
msgid "Failed to execute '%s': %s"
msgstr "執行「%s」時失敗%s"
@ -285,7 +285,7 @@ msgstr ""
"\n"
"請向 %s 報告錯誤\n"
#: openbox/openbox.c:604
#: openbox/openbox.c:602
#, c-format
msgid "Invalid command line argument '%s'\n"
msgstr "無效的命令列引數「%s」\n"
@ -305,7 +305,14 @@ msgstr "無法於螢幕 %d 獲選為視窗管理員"
msgid "The WM on screen %d is not exiting"
msgstr "螢幕 %d 中的視窗管理員並未離開"
#: openbox/screen.c:1162
#: openbox/screen.c:407
#, c-format
msgid ""
"Openbox is configured for %d desktops, but the current session has %d. "
"Overriding the Openbox configuration."
msgstr ""
#: openbox/screen.c:1168
#, c-format
msgid "desktop %i"
msgstr "桌面 %i"
@ -325,7 +332,7 @@ msgstr "無法儲存執行階段到「%s」%s"
msgid "Error while saving the session to '%s': %s"
msgstr "當儲存執行階段「%s」時發生錯誤%s"
#: openbox/startupnotify.c:237
#: openbox/startupnotify.c:241
#, c-format
msgid "Running %s\n"
msgstr "正在運行 %s\n"

View file

@ -2,7 +2,7 @@
gradient.c for the Openbox window manager
Copyright (c) 2006 Mikael Magnusson
Copyright (c) 2003-2007 Dana Jansens
Copyright (c) 2003-2008 Dana Jansens
Copyright (c) 2003 Derek Foreman
This program is free software; you can redistribute it and/or modify
@ -22,6 +22,7 @@
#include "gradient.h"
#include "color.h"
#include <glib.h>
#include <string.h>
static void highlight(RrSurface *s, RrPixel32 *x, RrPixel32 *y,
gboolean raised);
@ -483,64 +484,60 @@ static void gradient_horizontal(RrSurface *sf, gint w, gint h)
{
gint x, y;
RrPixel32 *data = sf->pixel_data, *datav;
RrPixel32 current;
VARS(x);
SETUP(x, sf->primary, sf->secondary, w);
for (x = w - 1; x > 0; --x) { /* 0 -> w-1 */
current = COLOR(x);
datav = data;
for (y = h - 1; y >= 0; --y) { /* 0 -> h */
*datav = current;
datav += w;
}
++data;
datav = data;
for (x = w - 1; x > 0; --x) { /* 0 -> w - 1 */
*datav = COLOR(x);
++datav;
NEXT(x);
}
current = COLOR(x);
for (y = h - 1; y >= 0; --y) /* 0 -> h */
*(data + y * w) = current;
*datav = COLOR(x);
++datav;
for (y = h - 1; y > 0; --y) { /* 1 -> h */
memcpy(datav, data, w * sizeof(RrPixel32));
datav += w;
}
}
static void gradient_mirrorhorizontal(RrSurface *sf, gint w, gint h)
{
gint x, y;
gint x, y, half1, half2;
RrPixel32 *data = sf->pixel_data, *datav;
RrPixel32 current;
VARS(x);
SETUP(x, sf->primary, sf->secondary, w/2);
if (w > 1) {
for (x = w - 1; x > w/2-1; --x) { /* 0 -> w-1 */
current = COLOR(x);
datav = data;
for (y = h - 1; y >= 0; --y) { /* 0 -> h */
*datav = current;
datav += w;
}
++data;
half1 = (w + 1) / 2;
half2 = w / 2;
NEXT(x);
}
SETUP(x, sf->secondary, sf->primary, w/2);
for (x = w/2 - 1; x > 0; --x) { /* 0 -> w-1 */
current = COLOR(x);
datav = data;
for (y = h - 1; y >= 0; --y) { /* 0 -> h */
*datav = current;
datav += w;
}
++data;
NEXT(x);
}
SETUP(x, sf->primary, sf->secondary, half1);
datav = data;
for (x = half1 - 1; x > 0; --x) { /* 0 -> half1 - 1 */
*datav = COLOR(x);
++datav;
NEXT(x);
}
*datav = COLOR(x);
++datav;
if (half2 > 0) {
SETUP(x, sf->secondary, sf->primary, half2);
for (x = half2 - 1; x > 0; --x) { /* 0 -> half2 - 1 */
*datav = COLOR(x);
++datav;
NEXT(x);
}
*datav = COLOR(x);
++datav;
}
for (y = h - 1; y > 0; --y) { /* 1 -> h */
memcpy(datav, data, w * sizeof(RrPixel32));
datav += w;
}
current = COLOR(x);
for (y = h - 1; y >= 0; --y) /* 0 -> h */
*(data + y * w) = current;
}
static void gradient_vertical(RrSurface *sf, gint w, gint h)

View file

@ -1455,6 +1455,7 @@ void RrThemeFree(RrTheme *theme)
RrFontClose(theme->win_font_unfocused);
RrFontClose(theme->menu_title_font);
RrFontClose(theme->menu_font);
RrFontClose(theme->osd_font);
RrAppearanceFree(theme->a_disabled_focused_max);
RrAppearanceFree(theme->a_disabled_unfocused_max);

View file

@ -0,0 +1,126 @@
# Name: Clearlooks
# Author: John McKnight <jmcknight@gmail.com>
# Note: This is a port of the Clearlooks metacity theme to Openbox.
### Menu
#menu.border.color: #b5aa99
menu.title.bg: Flat Border Gradient Vertical
menu.title.bg.color: #589bda
menu.title.bg.colorTo: #3c7cb7
menu.title.bg.border.color: #7cb6ec
menu.title.text.color: #ffffff
menu.title.text.justify: Center
menu.items.bg: Flat Solid
menu.items.bg.color: #fcfbfa
menu.items.text.color: #000000
menu.items.disable.text.color: #b5b3ac
menu.items.active.bg: Flat Gradient Vertical
menu.items.active.bg.color: #5c9edb
menu.items.active.bg.colorTo: #4489ca
menu.items.active.text.color: #ffffff
### Window active
window.active.title.bg: Flat Border Gradient Vertical
window.active.title.bg.color: #589bda
window.active.title.bg.colorTo: #3c7cb7
window.active.title.bg.border.color: #7cb6ec
window.active.title.separator.color: #334c62
window.active.label.bg: Parentrelative
window.active.label.text.color: #ffffff
window.active.handle.bg: Flat Border Solid
window.active.handle.bg.color: #3c7cb7
window.active.handle.bg.border.color: #7cb6ec
window.active.grip.bg: Flat Border Solid
window.active.grip.bg.color: #3c7cb7
window.active.grip.bg.border.color: #7cb6ec
window.active.button.unpressed.bg: Flat Border Gradient Vertical
window.active.button.unpressed.bg.color: #5ea0dd
window.active.button.unpressed.bg.colorTo: #3f85c5
window.active.button.unpressed.bg.border.color: #36536f
window.active.button.unpressed.image.color: #ffffff
window.active.button.pressed.bg: Flat Border Gradient Vertical
window.active.button.pressed.bg.color: #3c82c3
window.active.button.pressed.bg.colorTo: #3c7ab5
window.active.button.pressed.bg.border.color: #36536f
window.active.button.pressed.image.color: #ffffff
window.active.button.disabled.bg: Flat Border Gradient Vertical
window.active.button.disabled.bg.color: #3c82c3
window.active.button.disabled.bg.colorTo: #3c7ab5
window.active.button.disabled.bg.border.color: #36536f
window.active.button.disabled.image.color: #36536f
window.active.button.toggled.bg: Flat Border Gradient Vertical
window.active.button.toggled.bg.color: #5ea0dd
window.active.button.toggled.bg.colorTo: #3f85c5
window.active.button.toggled.bg.border.color: #36536f
window.active.button.toggled.image.color: #dcd4c9
### Window inactive
window.inactive.border.color: #3d3a37
window.inactive.title.bg: Flat Border Gradient Vertical
window.inactive.title.bg.color: #efece6
window.inactive.title.bg.colorTo: #d9d2c7
window.inactive.title.bg.border.color: #ffffff
window.inactive.title.separator.color: #9a8e7c
window.inactive.label.bg: Parentrelative
window.inactive.label.text.color: #000000
window.inactive.handle.bg: Flat Border Solid
window.inactive.handle.bg.color: #d9d2c7
window.inactive.handle.bg.border.color: #ffffff
window.inactive.grip.bg: Flat Border Solid
window.inactive.grip.bg.color: #d9d2c7
window.inactive.grip.bg.border.color: #ffffff
window.inactive.button.unpressed.bg: Flat Border Gradient Vertical
window.inactive.button.unpressed.bg.color: #ede9e3
window.inactive.button.unpressed.bg.colorTo: #dbd5ca
window.inactive.button.unpressed.bg.border.color: #8f8370
window.inactive.button.unpressed.image.color: #000000
window.inactive.button.pressed.bg: Flat Border Gradient Vertical
window.inactive.button.pressed.bg.color: #ede9e3
window.inactive.button.pressed.bg.colorTo: #dbd5ca
window.inactive.button.pressed.bg.border.color: #8f8370
window.inactive.button.pressed.image.color: #000000
window.inactive.button.disabled.bg: Flat Border Gradient Vertical
window.inactive.button.disabled.bg.color: #ede9e3
window.inactive.button.disabled.bg.colorTo: #dbd5ca
window.inactive.button.disabled.bg.border.color: #8f8370
window.inactive.button.disabled.image.color: #000000
window.inactive.button.toggled.bg: Flat Border Gradient Vertical
window.inactive.button.toggled.bg.color: #ede9e3
window.inactive.button.toggled.bg.colorTo: #dbd5ca
window.inactive.button.toggled.bg.border.color: #8f8370
window.inactive.button.toggled.image.color: #000000
### Everything else
border.width: 1
padding.width: 2
window.handle.width: 4
window.client.padding.width: 0
border.color: #1f252b
menu.overlap: 0
### Fonts
window.active.label.text.font:
window.inactive.label.text.font:
menu.items.font:
menu.title.text.font:

View file

@ -1,126 +1,159 @@
# Name: Clearlooks
# Author: John McKnight <jmcknight@gmail.com>
# Note: This is a port of the Clearlooks metacity theme to Openbox.
! Clearlooks Evolving
! Clearlooks as it evolves in gnome-svn...
### Menu
#menu.border.color: #b5aa99
# Fonts
# these are really halos, but who cares?
window.active.label.text.font:shadow=y:shadowtint=45:shadowoffset=1
window.inactive.label.text.font:shadow=y:shadowtint=00:shadowoffset=0
menu.title.text.font:shadow=y:shadowtint=20:shadowoffset=1
menu.items.font:shadow=y:shadowtint=0:shadowoffset=2
# lettuce set some stuff
border.width: 1
padding.width: 3
padding.height: 2
window.handle.width: 3
window.client.padding.width: 0
menu.overlap: 0
*.justify: center
*.bg.highlight: 50
*.bg.shadow: 01
# Menu settings
menu.border.color: #aaaaaa
menu.border.width: 1
*.title.bg: Raised Gradient splitvertical
*.title.bg.color: #8fb2de
*.title.bg.color.splitTo: #9ebde5
*.title.bg.colorTo: #86abd9
*.title.bg.colorTo.splitTo: #749dcf
menu.title.bg: Flat Border Gradient Vertical
menu.title.bg.color: #589bda
menu.title.bg.colorTo: #3c7cb7
menu.title.bg.border.color: #7cb6ec
menu.title.text.color: #ffffff
menu.title.text.justify: Center
menu.items.bg: Flat Solid
menu.items.bg.color: #fcfbfa
menu.items.text.color: #000000
menu.items.disable.text.color: #b5b3ac
menu.items.bg.color: #ffffff
menu.items.text.color: #444444
menu.items.disabled.text.color: #aaaaaa
menu.items.active.bg: Flat Gradient Vertical
menu.items.active.bg.color: #5c9edb
menu.items.active.bg.colorTo: #4489ca
menu.items.active.bg: Flat Gradient splitvertical border
menu.items.active.bg.color: #97b8e2
menu.items.active.bg.color.splitTo: #a8c5e9
menu.items.active.bg.colorTo: #91b3de
menu.items.active.bg.colorTo.splitTo: #80a7d6
menu.items.active.bg.border.color: #4b6e99
menu.items.active.text.color: #ffffff
# start with the active
!# no handles
#window.active.border.color: #455d7c
!# handles
window.active.border.color: #686a6d
window.active.title.separator.color: #4e76a8
!!!
### Window active
window.active.title.bg: Flat Border Gradient Vertical
window.active.title.bg.color: #589bda
window.active.title.bg.colorTo: #3c7cb7
window.active.title.bg.border.color: #7cb6ec
window.active.title.separator.color: #334c62
#window.active.title.bg: Raised Gradient splitvertical
#window.active.title.bg.color: #8db0dd
#window.active.title.bg.color.splitTo: #9ebde5
#window.active.title.bg.colorTo: #86abd9
#window.active.title.bg.colorTo.splitTo: #749dcf
window.active.title.bg: Raised Gradient splitvertical
window.active.title.bg.color: #8fb2de
window.active.title.bg.color.splitTo: #9ebde5
window.active.title.bg.colorTo: #86abd9
window.active.title.bg.colorTo.splitTo: #749dcf
window.active.title.bg.highlight: 35
window.active.title.bg.shadow: 00
window.active.label.bg: Parentrelative
window.active.label.text.color: #ffffff
window.active.handle.bg: Flat Border Solid
window.active.handle.bg.color: #3c7cb7
window.active.handle.bg.border.color: #7cb6ec
window.active.grip.bg: Flat Border Solid
window.active.grip.bg.color: #3c7cb7
window.active.grip.bg.border.color: #7cb6ec
window.active.button.*.bg: Flat Gradient splitvertical Border
window.active.button.unpressed.bg: Flat Border Gradient Vertical
window.active.button.unpressed.bg.color: #5ea0dd
window.active.button.unpressed.bg.colorTo: #3f85c5
window.active.button.unpressed.bg.border.color: #36536f
window.active.button.unpressed.image.color: #ffffff
#window.active.button.*.bg.color: #94B5E0
window.active.button.*.bg.color: #97b8e1
window.active.button.*.bg.color.splitTo: #B7D0EF
window.active.button.*.bg.colorTo: #86ABD9
window.active.button.*.bg.colorTo.splitTo: #7099CC
#window.active.button.*.bg.border.color: #4F77A9
!#this is the real colour, but hey...
window.active.button.*.bg.border.color: #49678B
window.active.button.*.image.color: #F4F5F6
window.active.button.pressed.bg: Flat Border Gradient Vertical
window.active.button.pressed.bg.color: #3c82c3
window.active.button.pressed.bg.colorTo: #3c7ab5
window.active.button.pressed.bg.border.color: #36536f
window.active.button.pressed.image.color: #ffffff
window.active.button.hover.bg.color: #b5d3ef
window.active.button.hover.bg.color.splitTo: #b5d3ef
window.active.button.hover.bg.colorTo: #9cbae7
window.active.button.hover.bg.colorTo.splitTo: #8caede
window.active.button.hover.bg.border.color: #4A658C
window.active.button.hover.image.color: #ffffff
window.active.button.disabled.bg: Flat Border Gradient Vertical
window.active.button.disabled.bg.color: #3c82c3
window.active.button.disabled.bg.colorTo: #3c7ab5
window.active.button.disabled.bg.border.color: #36536f
window.active.button.disabled.image.color: #36536f
window.active.button.pressed.bg: Flat solid Border
window.active.button.pressed.bg.color: #7aa1d2
window.active.button.toggled.bg: Flat Border Gradient Vertical
window.active.button.toggled.bg.color: #5ea0dd
window.active.button.toggled.bg.colorTo: #3f85c5
window.active.button.toggled.bg.border.color: #36536f
window.active.button.toggled.image.color: #dcd4c9
window.active.button.hover.bg.border.color: #4A658C
# inactive
### Window inactive
window.inactive.border.color: #3d3a37
window.inactive.border.color: #7e8285
window.inactive.title.separator.color: #96999d
window.inactive.title.bg: Flat Border Gradient Vertical
window.inactive.title.bg.color: #efece6
window.inactive.title.bg.colorTo: #d9d2c7
window.inactive.title.bg.border.color: #ffffff
window.inactive.title.separator.color: #9a8e7c
window.inactive.title.bg: Raised Gradient splitvertical
window.inactive.title.bg.color: #e0e2e3
window.inactive.title.bg.color.splitTo: #e9eaeb
window.inactive.title.bg.colorTo: #dadcde
window.inactive.title.bg.colorTo.splitTo: #d0d2d4
window.inactive.title.bg.highlight: 30
window.inactive.title.bg.shadow: 00
window.inactive.label.bg: Parentrelative
window.inactive.label.text.color: #000000
window.inactive.label.text.color: #70747d
window.inactive.handle.bg: Flat Border Solid
window.inactive.handle.bg.color: #d9d2c7
window.inactive.handle.bg.border.color: #ffffff
window.*.handle.bg: Raised solid
window.*.handle.bg.color: #eaebec
window.inactive.grip.bg: Flat Border Solid
window.inactive.grip.bg.color: #d9d2c7
window.inactive.grip.bg.border.color: #ffffff
window.*.grip.bg: Raised solid
window.*.grip.bg.color: #eaebec
window.inactive.button.unpressed.bg: Flat Border Gradient Vertical
window.inactive.button.unpressed.bg.color: #ede9e3
window.inactive.button.unpressed.bg.colorTo: #dbd5ca
window.inactive.button.unpressed.bg.border.color: #8f8370
window.inactive.button.unpressed.image.color: #000000
window.inactive.button.pressed.bg: Flat Border Gradient Vertical
window.inactive.button.pressed.bg.color: #ede9e3
window.inactive.button.pressed.bg.colorTo: #dbd5ca
window.inactive.button.pressed.bg.border.color: #8f8370
window.inactive.button.pressed.image.color: #000000
window.inactive.button.disabled.bg: Flat Border Gradient Vertical
window.inactive.button.disabled.bg.color: #ede9e3
window.inactive.button.disabled.bg.colorTo: #dbd5ca
window.inactive.button.disabled.bg.border.color: #8f8370
window.inactive.button.disabled.image.color: #000000
window.inactive.button.toggled.bg: Flat Border Gradient Vertical
window.inactive.button.toggled.bg.color: #ede9e3
window.inactive.button.toggled.bg.colorTo: #dbd5ca
window.inactive.button.toggled.bg.border.color: #8f8370
window.inactive.button.toggled.image.color: #000000
window.inactive.button.*.bg: Flat Gradient splitVertical Border
window.inactive.button.*.bg.color: #ffffff
window.inactive.button.*.bg.color.splitto: #f8f8f9
window.inactive.button.*.bg.colorTo: #f4f4f5
window.inactive.button.*.bg.colorTo.splitto: #dfe1e2
window.inactive.button.*.bg.border.color: #8a8e91
window.inactive.button.*.image.color: #757676
### Everything else
border.width: 1
padding.width: 2
window.handle.width: 4
window.client.padding.width: 0
border.color: #1f252b
menu.overlap: 0
!#osd
### Fonts
window.active.label.text.font:
window.inactive.label.text.font:
menu.items.font:
menu.title.text.font:
osd.border.width: 1
osd.border.color: #5c5e5c
osd.bg: flat border gradient splitvertical
osd.bg.color: #EEEFF0
osd.bg.color.splitto: #EEEFF0
osd.bg.colorTo: #EAEBEC
osd.bg.colorTo.splitto: #EAEBEC
osd.bg.border.color: #ffffff
osd.label.bg: parentrelative
osd.label.bg.color: #efefef
osd.label.bg.border.color: #9c9e9c
osd.label.text.color: #444
!# yeah whatever, this is fine anyhoo?
osd.hilight.bg: flat vertical gradient
osd.hilight.bg.color: #9ebde5
osd.hilight.bg.colorTo: #749dcf
osd.unhilight.bg: flat vertical gradient
osd.unhilight.bg.color: #BABDB6
osd.unhilight.bg.colorTo: #efefef