WindowMaker-0.95.8/ 0000775 0001750 0001750 00000000000 13061001367 011044 5 0000000 0000000 WindowMaker-0.95.8/update-changelog.pl 0000775 0001750 0001750 00000006450 12650014300 014532 0000000 0000000 #!/usr/bin/perl
# Update Window Maker ChangeLog from git log
# Copyright (C) 2014 Window Maker Developers Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
# DESCRIPTION
#
# This script adds the subject line and author of every commit since ChangeLog
# was last touched by git, in a style consistent with the entries up to version
# 0.92.0.
use warnings;
use strict;
use File::Slurp qw(read_file prepend_file edit_file);
use Git::Repository;
use Git::Repository::Log::Iterator;
use Text::Wrap;
$Text::Wrap::columns = 80;
my $text = read_file('ChangeLog');
my ($initial_entry) = $text =~ /(Changes.+?\n)\nChanges/s;
my $r = Git::Repository->new();
my $initial_commit = $r->run('log', '-n 1', '--pretty=%H', '--', 'ChangeLog');
my $initial_tag = $r->run('describe', '--abbrev=0', $initial_commit);
my $current_entry = '';
my $initial_author = '';
# start a new entry
if ($r->run('describe', $initial_commit) eq $initial_tag) {
my ($version) = $initial_tag =~ /wmaker-(.+)/;
$current_entry .= "Changes since version $version:\n";
for (my $i = 0; $i < 23 + length($version); $i++) {
$current_entry .= '.';
}
$current_entry .= "\n\n";
} else {
# append to an old entry
($initial_author) = $initial_entry =~ /\n (.+)\n$/;
edit_file {s/\Q$initial_entry//} 'ChangeLog';
$initial_entry =~ s/\n(.+)\n$/\n/;
$current_entry = $initial_entry;
}
my $iter = Git::Repository::Log::Iterator->new( $r, '--reverse', "$initial_commit..HEAD");
my $previous_author = '';
my $previous_tag = $initial_tag;
while ( my $log = $iter->next ) {
my $current_author = '(' . $log->author_name . ' <' . $log->author_email . '>)';
# print the author of previous commit if different from current commit
if ($initial_author) {
if ($initial_author ne $current_author) {
chomp $current_entry;
$current_entry .= " $initial_author\n";
}
$initial_author = '';
}
if ($previous_author ne $current_author) {
if ($previous_author) {
$current_entry .= " $previous_author\n";
}
$previous_author = $current_author;
}
$current_entry .= wrap('- ', ' ', $log->subject . "\n");
my $current_commit = $log->commit;
my $current_tag = $r->run('describe', '--abbrev=0', $current_commit);
# start a new entry if new tag
if ($current_tag ne $previous_tag) {
$current_entry .= " $previous_author\n\n";
$previous_author = '';
prepend_file('ChangeLog', $current_entry, binmode => ':raw' );
$current_entry = '';
my ($version) = $current_tag =~ /wmaker-(.+)/;
$current_entry .= "Changes since version $version:\n";
for (my $i = 0; $i < 23 + length($version); $i++) {
$current_entry .= '.';
}
$current_entry .= "\n\n";
$previous_tag = $current_tag;
}
}
$current_entry .= " $previous_author\n\n";
prepend_file('ChangeLog', $current_entry, binmode => ':raw' );
WindowMaker-0.95.8/util/ 0000775 0001750 0001750 00000000000 13061001366 012020 5 0000000 0000000 WindowMaker-0.95.8/util/wmmenugen_parse_xdg.c 0000664 0001750 0001750 00000034077 13014341235 016155 0000000 0000000 /*
* wmmenugen - Window Maker PropList menu generator
*
* Desktop Entry Specification parser functions
*
* Copyright (c) 2010. Tamas Tevesz
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
/*
* http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.1.html
* http://standards.freedesktop.org/menu-spec/menu-spec-1.1.html
*
* We will only deal with Type == "Application" entries in [Desktop Entry]
* groups. Since there is no passing of file name arguments or anything of
* the sort to applications from the menu, execname is determined as follows:
* - If `TryExec' is present, use that;
* - else use `Exec' with any switches stripped
*
* Only the (first, though there should not be more than one) `Main Category'
* is used to place the entry in a submenu.
*
* Basic validation of the .desktop file is done.
*/
#include
#include
#include
#include
#if DEBUG
#include
#endif
#include
#include
#include
#include "wmmenugen.h"
/* LocaleString match levels */
enum {
MATCH_DEFAULT,
MATCH_LANG,
MATCH_LANG_MODIFIER,
MATCH_LANG_COUNTRY,
MATCH_LANG_COUNTRY_MODIFIER
};
typedef struct {
char *Name; /* Name */ /* localestring */
int MatchLevel; /* LocaleString match type */ /* int */
char *TryExec; /* TryExec */ /* string */
char *Exec; /* Exec */ /* string */
char *Path; /* Path */ /* string */
int Flags; /* Flags */
char *Category; /* Categories (first item only) */ /* string */
} XDGMenuEntry;
static void getKey(char **target, const char *line);
static void getStringValue(char **target, const char *line);
static void getLocalizedStringValue(char **target, const char *line, int *match_level);
static int getBooleanValue(const char *line);
static void getMenuHierarchyFor(char **xdgmenuspec);
static int compare_matchlevel(int *current_level, const char *found_locale);
static Bool xdg_to_wm(XDGMenuEntry **xdg, WMMenuEntry **wmentry);
static void init_xdg_storage(XDGMenuEntry **xdg);
static void init_wm_storage(WMMenuEntry **wm);
void parse_xdg(const char *file, cb_add_menu_entry *addWMMenuEntryCallback)
{
FILE *fp;
char buf[1024];
char *p, *tmp, *key;
WMMenuEntry *wm;
XDGMenuEntry *xdg;
int InGroup;
fp = fopen(file, "r");
if (!fp) {
#if DEBUG
fprintf(stderr, "Error opening file %s: %s\n", file, strerror(errno));
#endif
return;
}
xdg = (XDGMenuEntry *)wmalloc(sizeof(XDGMenuEntry));
wm = (WMMenuEntry *)wmalloc(sizeof(WMMenuEntry));
InGroup = 0;
memset(buf, 0, sizeof(buf));
while (fgets(buf, sizeof(buf), fp)) {
p = buf;
/* skip whitespaces */
while (isspace(*p))
p++;
/* skip comments, empty lines */
if (*p == '\r' || *p == '\n' || *p == '#') {
memset(buf, 0, sizeof(buf));
continue;
}
/* trim crlf */
buf[strcspn(buf, "\r\n")] = '\0';
if (strlen(buf) == 0)
continue;
if (strcmp(p, "[Desktop Entry]") == 0) {
/* if currently processing a group, we've just hit the
* end of its definition, try processing it
*/
if (InGroup && xdg_to_wm(&xdg, &wm)) {
(*addWMMenuEntryCallback)(wm);
}
init_xdg_storage(&xdg);
init_wm_storage(&wm);
InGroup = 1;
/* start processing group */
memset(buf, 0, sizeof(buf));
continue;
}
if (!InGroup) {
memset(buf, 0, sizeof(buf));
continue;
}
getKey(&key, p);
if (key == NULL) { /* not `key' = `value' */
memset(buf, 0, sizeof(buf));
continue;
}
if (strcmp(key, "Type") == 0) {
getStringValue(&tmp, p);
if (strcmp(tmp, "Application") != 0)
InGroup = 0; /* if not application, skip current group */
wfree(tmp);
tmp = NULL;
} else if (strcmp(key, "Name") == 0) {
getLocalizedStringValue(&xdg->Name, p, &xdg->MatchLevel);
} else if (strcmp(key, "NoDisplay") == 0) {
if (getBooleanValue(p)) /* if nodisplay, skip current group */
InGroup = 0;
} else if (strcmp(key, "Hidden") == 0) {
if (getBooleanValue(p))
InGroup = 0; /* if hidden, skip current group */
} else if (strcmp(key, "TryExec") == 0) {
getStringValue(&xdg->TryExec, p);
} else if (strcmp(key, "Exec") == 0) {
getStringValue(&xdg->Exec, p);
} else if (strcmp(key, "Path") == 0) {
getStringValue(&xdg->Path, p);
} else if (strcmp(key, "Terminal") == 0) {
if (getBooleanValue(p))
xdg->Flags |= F_TERMINAL;
} else if (strcmp(key, "Categories") == 0) {
getStringValue(&xdg->Category, p);
getMenuHierarchyFor(&xdg->Category);
}
wfree(key);
key = NULL;
}
fclose(fp);
/* at the end of the file, might as well try to menuize what we have
* unless there was no group at all or it was marked as hidden
*/
if (InGroup && xdg_to_wm(&xdg, &wm))
(*addWMMenuEntryCallback)(wm);
}
/* coerce an xdg entry type into a wm entry type
*/
static Bool xdg_to_wm(XDGMenuEntry **xdg, WMMenuEntry **wm)
{
char *p;
/* Exec or TryExec is mandatory */
if (!((*xdg)->Exec || (*xdg)->TryExec))
return False;
/* if there's no Name, use the first word of Exec or TryExec
*/
if ((*xdg)->Name) {
(*wm)->Name = (*xdg)->Name;
} else {
if ((*xdg)->Exec)
(*wm)->Name = wstrdup((*xdg)->Exec);
else /* (*xdg)->TryExec */
(*wm)->Name = wstrdup((*xdg)->TryExec);
p = strchr((*wm)->Name, ' ');
if (p)
*p = '\0';
}
if ((*xdg)->Exec)
(*wm)->CmdLine = (*xdg)->Exec;
else /* (*xdg)->TryExec */
(*wm)->CmdLine = (*xdg)->TryExec;
(*wm)->SubMenu = (*xdg)->Category;
(*wm)->Flags = (*xdg)->Flags;
return True;
}
/* (re-)initialize a XDGMenuEntry storage
*/
static void init_xdg_storage(XDGMenuEntry **xdg)
{
if ((*xdg)->Name)
wfree((*xdg)->Name);
if ((*xdg)->TryExec)
wfree((*xdg)->TryExec);
if ((*xdg)->Exec)
wfree((*xdg)->Exec);
if ((*xdg)->Category)
wfree((*xdg)->Category);
if ((*xdg)->Path)
wfree((*xdg)->Path);
(*xdg)->Name = NULL;
(*xdg)->TryExec = NULL;
(*xdg)->Exec = NULL;
(*xdg)->Category = NULL;
(*xdg)->Path = NULL;
(*xdg)->Flags = 0;
(*xdg)->MatchLevel = -1;
}
/* (re-)initialize a WMMenuEntry storage
*/
static void init_wm_storage(WMMenuEntry **wm)
{
(*wm)->Name = NULL;
(*wm)->CmdLine = NULL;
(*wm)->Flags = 0;
}
/* get a key from line. allocates target, which must be wfreed later */
static void getKey(char **target, const char *line)
{
const char *p;
int kstart, kend;
p = line;
if (strchr(p, '=') == NULL) { /* not `key' = `value' */
*target = NULL;
return;
}
kstart = 0;
/* skip whitespace */
while (isspace(*(p + kstart)))
kstart++;
/* skip up until first whitespace or '[' (localestring) or '=' */
kend = kstart + 1;
while (*(p + kend) && !isspace(*(p + kend)) && *(p + kend) != '=' && *(p + kend) != '[')
kend++;
*target = wstrndup(p + kstart, kend - kstart);
}
/* get a string value from line. allocates target, which must be wfreed later. */
static void getStringValue(char **target, const char *line)
{
const char *p;
int kstart;
p = line;
kstart = 0;
/* skip until after '=' */
while (*(p + kstart) && *(p + kstart) != '=')
kstart++;
kstart++;
/* skip whitespace */
while (*(p + kstart) && isspace(*(p + kstart)))
kstart++;
*target = wstrdup(p + kstart);
}
/* get a localized string value from line. allocates target, which must be wfreed later.
* matching is dependent on the current value of target as well as on the
* level the current value is matched on. guts matching algorithm is in
* compare_matchlevel().
*/
static void getLocalizedStringValue(char **target, const char *line, int *match_level)
{
const char *p;
char *locale;
int kstart;
int sqbstart, sqbend;
p = line;
kstart = 0;
sqbstart = 0;
sqbend = 0;
locale = NULL;
/* skip until after '=', mark if '[' and ']' is found */
while (*(p + kstart) && *(p + kstart) != '=') {
switch (*(p + kstart)) {
case '[': sqbstart = kstart + 1;break;
case ']': sqbend = kstart; break;
default : break;
}
kstart++;
}
kstart++;
/* skip whitespace */
while (isspace(*(p + kstart)))
kstart++;
if (sqbstart > 0 && sqbend > sqbstart)
locale = wstrndup(p + sqbstart, sqbend - sqbstart);
/* if there is no value yet and this is the default key, return */
if (!*target && !locale) {
*match_level = MATCH_DEFAULT;
*target = wstrdup(p + kstart);
return;
}
if (compare_matchlevel(match_level, locale)) {
wfree(locale);
*target = wstrdup(p + kstart);
return;
}
return;
}
/* get a boolean value from line */
static Bool getBooleanValue(const char *line)
{
char *p;
int ret;
getStringValue(&p, line);
ret = strcmp(p, "true") == 0 ? True : False;
wfree(p);
return ret;
}
/* perform locale matching by implementing the algorithm specified in
* xdg desktop entry specification, section "localized values for keys".
*/
static Bool compare_matchlevel(int *current_level, const char *found_locale)
{
/* current key locale */
char *key_lang, *key_ctry, *key_enc, *key_mod;
parse_locale(found_locale, &key_lang, &key_ctry, &key_enc, &key_mod);
if (env_lang && key_lang && /* Shortcut: if key and env languages don't match, */
strcmp(env_lang, key_lang) != 0) /* don't even bother. This takes care of the great */
return False; /* majority of the cases without having to go through */
/* the more theoretical parts of the spec'd algo. */
if (!env_mod && key_mod) /* If LC_MESSAGES does not have a MODIFIER field, */
return False; /* then no key with a modifier will be matched. */
if (!env_ctry && key_ctry) /* Similarly, if LC_MESSAGES does not have a COUNTRY field, */
return False; /* then no key with a country specified will be matched. */
/* LC_MESSAGES value: lang_COUNTRY@MODIFIER */
if (env_lang && env_ctry && env_mod) { /* lang_COUNTRY@MODIFIER */
if (key_lang && key_ctry && key_mod &&
strcmp(env_lang, key_lang) == 0 &&
strcmp(env_ctry, key_ctry) == 0 &&
strcmp(env_mod, key_mod) == 0) {
*current_level = MATCH_LANG_COUNTRY_MODIFIER;
return True;
} else if (key_lang && key_ctry && /* lang_COUNTRY */
strcmp(env_lang, key_lang) == 0 &&
strcmp(env_ctry, key_ctry) == 0 &&
*current_level < MATCH_LANG_COUNTRY) {
*current_level = MATCH_LANG_COUNTRY;
return True;
} else if (key_lang && key_mod && /* lang@MODIFIER */
strcmp(env_lang, key_lang) == 0 &&
strcmp(env_mod, key_mod) == 0 &&
*current_level < MATCH_LANG_MODIFIER) {
*current_level = MATCH_LANG_MODIFIER;
return True;
} else if (key_lang && /* lang */
strcmp(env_lang, key_lang) == 0 &&
*current_level < MATCH_LANG) {
*current_level = MATCH_LANG;
return True;
} else {
return False;
}
}
/* LC_MESSAGES value: lang_COUNTRY */
if (env_lang && env_ctry) { /* lang_COUNTRY */
if (key_lang && key_ctry &&
strcmp(env_lang, key_lang) == 0 &&
strcmp(env_ctry, key_ctry) == 0 &&
*current_level < MATCH_LANG_COUNTRY) {
*current_level = MATCH_LANG_COUNTRY;
return True;
} else if (key_lang && /* lang */
strcmp(env_lang, key_lang) == 0 &&
*current_level < MATCH_LANG) {
*current_level = MATCH_LANG;
return True;
} else {
return False;
}
}
/* LC_MESSAGES value: lang@MODIFIER */
if (env_lang && env_mod) { /* lang@MODIFIER */
if (key_lang && key_mod &&
strcmp(env_lang, key_lang) == 0 &&
strcmp(env_mod, key_mod) == 0 &&
*current_level < MATCH_LANG_MODIFIER) {
*current_level = MATCH_LANG_MODIFIER;
return True;
} else if (key_lang && /* lang */
strcmp(env_lang, key_lang) == 0 &&
*current_level < MATCH_LANG) {
*current_level = MATCH_LANG;
return True;
} else {
return False;
}
}
/* LC_MESSAGES value: lang */
if (env_lang) { /* lang */
if (key_lang &&
strcmp(env_lang, key_lang) == 0 &&
*current_level < MATCH_LANG) {
*current_level = MATCH_LANG;
return True;
} else {
return False;
}
}
/* MATCH_DEFAULT is handled in getLocalizedStringValue */
return False;
}
/* get the (first) xdg main category from a list of categories
*/
static void getMenuHierarchyFor(char **xdgmenuspec)
{
char *category, *p;
char buf[1024];
if (!*xdgmenuspec || !**xdgmenuspec)
return;
category = wstrdup(*xdgmenuspec);
wfree(*xdgmenuspec);
memset(buf, 0, sizeof(buf));
p = strtok(category, ";");
while (p) { /* get a known category */
if (strcmp(p, "AudioVideo") == 0) {
snprintf(buf, sizeof(buf), "%s", _("Audio & Video"));
break;
} else if (strcmp(p, "Audio") == 0) {
snprintf(buf, sizeof(buf), "%s", _("Audio"));
break;
} else if (strcmp(p, "Video") == 0) {
snprintf(buf, sizeof(buf), "%s", _("Video"));
break;
} else if (strcmp(p, "Development") == 0) {
snprintf(buf, sizeof(buf), "%s", _("Development"));
break;
} else if (strcmp(p, "Education") == 0) {
snprintf(buf, sizeof(buf), "%s", _("Education"));
break;
} else if (strcmp(p, "Game") == 0) {
snprintf(buf, sizeof(buf), "%s", _("Game"));
break;
} else if (strcmp(p, "Graphics") == 0) {
snprintf(buf, sizeof(buf), "%s", _("Graphics"));
break;
} else if (strcmp(p, "Network") == 0) {
snprintf(buf, sizeof(buf), "%s", _("Network"));
break;
} else if (strcmp(p, "Office") == 0) {
snprintf(buf, sizeof(buf), "%s", _("Office"));
break;
} else if (strcmp(p, "Settings") == 0) {
snprintf(buf, sizeof(buf), "%s", _("Settings"));
break;
} else if (strcmp(p, "System") == 0) {
snprintf(buf, sizeof(buf), "%s", _("System"));
break;
} else if (strcmp(p, "Utility") == 0) {
snprintf(buf, sizeof(buf), "%s", _("Utility"));
break;
}
p = strtok(NULL, ";");
}
if (!*buf) /* come up with something if nothing found */
snprintf(buf, sizeof(buf), "%s", _("Applications"));
*xdgmenuspec = wstrdup(buf);
}
WindowMaker-0.95.8/util/README 0000664 0001750 0001750 00000002135 12651057551 012634 0000000 0000000 wm-oldmenu2new - converts between the plain text file menu format to the
property list menu format.
bughint- gathers some information for bug reporting
geticonset- outputs the current set of icon assignments. Good for making
themes.
setstyle- load style settings from a style file and setup WindowMaker
getstyle - gets current style settings and save into a file or create
a theme pack.
seticons- merges icon definitions into WMWindowAttributes file
wmaker.inst- quick and dirty script to install necessary files from
global configuration to user's directory. Look in the script to
adapt it to your site.
wxcopy- copy input file or stdin into X cutbuffer
wxpaste- copy content of X cutbuffer into stdout
wmsetbg- set the workspace background into a image and make it persist between
sessions.
wdwrite- write data into the defaults database (configuration files).
wdread- read Simple data from defaults database (for use in scripts for example)
wmagnify- a program to magnify the area near the mouse pointer,
with real-time update
wkdemenu.pl- convert a KDE menu into a wmaker menu (for pipe)
WindowMaker-0.95.8/util/geticonset.c 0000664 0001750 0001750 00000006313 12650014300 014246 0000000 0000000 /* geticonset.c - outputs icon configuration from WindowMaker to stdout
*
* Window Maker window manager
*
* Copyright (c) 1997-2003 Alfredo K. Kojima
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifdef __GLIBC__
#define _GNU_SOURCE /* getopt_long */
#endif
#include "config.h"
#include
#include
#include
#include
#ifdef HAVE_STDNORETURN
#include
#endif
#include
#include "../src/wconfig.h"
static const char *prog_name;
static noreturn void print_help(int print_usage, int exitval)
{
printf("Usage: %s [-h] [-v] [file]\n", prog_name);
if (print_usage) {
puts("Retrieves program icon configuration and output to FILE or to stdout");
puts("");
puts(" -h, --help display this help and exit");
puts(" -v, --version output version information and exit");
}
exit(exitval);
}
int main(int argc, char **argv)
{
WMPropList *window_name, *icon_key, *window_attrs, *icon_value;
WMPropList *all_windows, *iconset, *keylist;
char *path;
int i, ch;
struct option longopts[] = {
{ "version", no_argument, NULL, 'v' },
{ "help", no_argument, NULL, 'h' },
{ NULL, 0, NULL, 0 }
};
prog_name = argv[0];
while ((ch = getopt_long(argc, argv, "hv", longopts, NULL)) != -1)
switch(ch) {
case 'v':
printf("%s (Window Maker %s)\n", prog_name, VERSION);
return 0;
/* NOTREACHED */
case 'h':
print_help(1, 0);
/* NOTREACHED */
case 0:
break;
default:
print_help(0, 1);
/* NOTREACHED */
}
argc -= optind;
argv += optind;
path = wdefaultspathfordomain("WMWindowAttributes");
all_windows = WMReadPropListFromFile(path);
if (!all_windows) {
printf("%s: could not load WindowMaker configuration file \"%s\".\n", prog_name, path);
return 1;
}
iconset = WMCreatePLDictionary(NULL, NULL);
keylist = WMGetPLDictionaryKeys(all_windows);
icon_key = WMCreatePLString("Icon");
for (i = 0; i < WMGetPropListItemCount(keylist); i++) {
WMPropList *icondic;
window_name = WMGetFromPLArray(keylist, i);
if (!WMIsPLString(window_name))
continue;
window_attrs = WMGetFromPLDictionary(all_windows, window_name);
if (window_attrs && WMIsPLDictionary(window_attrs)) {
icon_value = WMGetFromPLDictionary(window_attrs, icon_key);
if (icon_value) {
icondic = WMCreatePLDictionary(icon_key, icon_value, NULL);
WMPutInPLDictionary(iconset, window_name, icondic);
}
}
}
if (argc == 1) {
WMWritePropListToFile(iconset, argv[0]);
} else {
puts(WMGetPropListDescription(iconset, True));
}
return 0;
}
WindowMaker-0.95.8/util/wmiv.c 0000775 0001750 0001750 00000057237 13061001047 013103 0000000 0000000 /*
* Window Maker window manager
*
* Copyright (c) 2014 Window Maker Team - David Maciejak
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#if !defined(_GNU_SOURCE)
#define _GNU_SOURCE
#endif
#include
#include
#include
#include
#include "wraster.h"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "config.h"
#ifdef HAVE_EXIF
#include
#endif
#ifdef HAVE_PTHREAD
#include
#endif
#ifdef USE_XPM
extern int XpmCreatePixmapFromData(Display *, Drawable, char **, Pixmap *, Pixmap *, void *);
/* this is the icon from eog project
git.gnome.org/browse/eog
*/
#include "wmiv.h"
#endif
#define DEBUG 0
#define FILE_SEPARATOR '/'
Display *dpy;
Window win;
RContext *ctx;
RImage *img;
Pixmap pix;
const char *APPNAME = "wmiv";
int APPVERSION_MAJOR = 0;
int APPVERSION_MINOR = 7;
int NEXT = 0;
int PREV = 1;
float zoom_factor = 0;
int max_width = 0;
int max_height = 0;
Bool fullscreen_flag = False;
Bool focus = False;
Bool back_from_fullscreen = False;
#ifdef HAVE_PTHREAD
Bool diaporama_flag = False;
int diaporama_delay = 5;
pthread_t tid = 0;
#endif
XTextProperty title_property;
XTextProperty icon_property;
unsigned current_index = 1;
unsigned max_index = 1;
RColor lightGray;
RColor darkGray;
RColor black;
RColor red;
typedef struct link link_t;
struct link {
const void *data;
link_t *prev;
link_t *next;
};
typedef struct linked_list {
int count;
link_t *first;
link_t *last;
} linked_list_t;
linked_list_t list;
link_t *current_link;
/*
load_oriented_image: used to load an image and optionally
get its orientation if libexif is available
return the image on success, NULL on failure
*/
RImage *load_oriented_image(RContext *context, const char *file, int index)
{
RImage *image;
#ifdef HAVE_EXIF
int orientation = 0;
#endif
image = RLoadImage(context, file, index);
if (!image)
return NULL;
#ifdef HAVE_EXIF
ExifData *exifData = exif_data_new_from_file(file);
if (exifData) {
ExifByteOrder byteOrder = exif_data_get_byte_order(exifData);
ExifEntry *exifEntry = exif_data_get_entry(exifData, EXIF_TAG_ORIENTATION);
if (exifEntry)
orientation = exif_get_short(exifEntry->data, byteOrder);
exif_data_free(exifData);
}
/*
0th Row 0th Column
1 top left side
2 top right side
3 bottom right side
4 bottom left side
5 left side top
6 right side top
7 right side bottom
8 left side bottom
*/
if (image && (orientation > 1)) {
RImage *tmp = NULL;
switch (orientation) {
case 2:
tmp = RFlipImage(image, RHorizontalFlip);
break;
case 3:
tmp = RRotateImage(image, 180);
break;
case 4:
tmp = RFlipImage(image, RVerticalFlip);
break;
case 5: {
RImage *tmp2;
tmp2 = RFlipImage(image, RVerticalFlip);
if (tmp2) {
tmp = RRotateImage(tmp2, 90);
RReleaseImage(tmp2);
}
}
break;
case 6:
tmp = RRotateImage(image, 90);
break;
case 7: {
RImage *tmp2;
tmp2 = RFlipImage(image, RVerticalFlip);
if (tmp2) {
tmp = RRotateImage(tmp2, 270);
RReleaseImage(tmp2);
}
}
break;
case 8:
tmp = RRotateImage(image, 270);
break;
}
if (tmp) {
RReleaseImage(image);
image = tmp;
}
}
#endif
return image;
}
/*
change_title: used to change window title
return EXIT_SUCCESS on success, 1 on failure
*/
int change_title(XTextProperty *prop, char *filename)
{
char *combined_title = NULL;
if (!asprintf(&combined_title, "%s - %u/%u - %s", APPNAME, current_index, max_index, filename))
if (!asprintf(&combined_title, "%s - %u/%u", APPNAME, current_index, max_index))
return EXIT_FAILURE;
XStringListToTextProperty(&combined_title, 1, prop);
XSetWMName(dpy, win, prop);
if (prop->value)
XFree(prop->value);
free(combined_title);
return EXIT_SUCCESS;
}
/*
rescale_image: used to rescale the current image based on the screen size
return EXIT_SUCCESS on success
*/
int rescale_image(void)
{
long final_width = img->width;
long final_height = img->height;
/* check if there is already a zoom factor applied */
if (fabsf(zoom_factor) <= 0.0f) {
final_width = img->width + (int)(img->width * zoom_factor);
final_height = img->height + (int)(img->height * zoom_factor);
}
if ((max_width < final_width) || (max_height < final_height)) {
long val = 0;
if (final_width > final_height) {
val = final_height * max_width / final_width;
final_width = final_width * val / final_height;
final_height = val;
if (val > max_height) {
val = final_width * max_height / final_height;
final_height = final_height * val / final_width;
final_width = val;
}
} else {
val = final_width * max_height / final_height;
final_height = final_height * val / final_width;
final_width = val;
if (val > max_width) {
val = final_height * max_width / final_width;
final_width = final_width * val / final_height;
final_height = val;
}
}
}
if ((final_width != img->width) || (final_height != img->height)) {
RImage *old_img = img;
img = RScaleImage(img, final_width, final_height);
if (!img) {
img = old_img;
return EXIT_FAILURE;
}
RReleaseImage(old_img);
}
if (!RConvertImage(ctx, img, &pix)) {
fprintf(stderr, "%s\n", RMessageForError(RErrorCode));
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
/*
maximize_image: find the best image size for the current display
return EXIT_SUCCESS on success
*/
int maximize_image(void)
{
rescale_image();
XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0,
img->width, img->height, max_width/2-img->width/2, max_height/2-img->height/2);
return EXIT_SUCCESS;
}
/*
merge_with_background: merge the current image with with a checkboard background
return EXIT_SUCCESS on success, 1 on failure
*/
int merge_with_background(RImage *i)
{
if (i) {
RImage *back;
back = RCreateImage(i->width, i->height, True);
if (back) {
int opaq = 255;
int x = 0, y = 0;
RFillImage(back, &lightGray);
for (x = 0; x <= i->width; x += 8) {
if (x/8 % 2)
y = 8;
else
y = 0;
for (; y <= i->height; y += 16)
ROperateRectangle(back, RAddOperation, x, y, x+8, y+8, &darkGray);
}
RCombineImagesWithOpaqueness(i, back, opaq);
RReleaseImage(back);
return EXIT_SUCCESS;
}
}
return EXIT_FAILURE;
}
/*
turn_image: rotate the image by the angle passed
return EXIT_SUCCESS on success, EXIT_FAILURE on failure
*/
int turn_image(float angle)
{
RImage *tmp;
if (!img)
return EXIT_FAILURE;
tmp = RRotateImage(img, angle);
if (!tmp)
return EXIT_FAILURE;
if (!fullscreen_flag) {
if (img->width != tmp->width || img->height != tmp->height)
XResizeWindow(dpy, win, tmp->width, tmp->height);
}
RReleaseImage(img);
img = tmp;
rescale_image();
if (!fullscreen_flag) {
XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0, img->width, img->height, 0, 0);
} else {
XClearWindow(dpy, win);
XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0,
img->width, img->height, max_width/2-img->width/2, max_height/2-img->height/2);
}
return EXIT_SUCCESS;
}
/*
turn_image_right: rotate the image by 90 degree
return EXIT_SUCCESS on success, EXIT_FAILURE on failure
*/
int turn_image_right(void)
{
return turn_image(90.0);
}
/*
turn_image_left: rotate the image by -90 degree
return EXIT_SUCCESS on success, 1 on failure
*/
int turn_image_left(void)
{
return turn_image(-90.0);
}
/*
draw_failed_image: create a red crossed image to indicate an error loading file
return the image on success, NULL on failure
*/
RImage *draw_failed_image(void)
{
RImage *failed_image = NULL;
XWindowAttributes attr;
if (win && (XGetWindowAttributes(dpy, win, &attr) >= 0))
failed_image = RCreateImage(attr.width, attr.height, False);
else
failed_image = RCreateImage(50, 50, False);
if (!failed_image)
return NULL;
RFillImage(failed_image, &black);
ROperateLine(failed_image, RAddOperation, 0, 0, failed_image->width, failed_image->height, &red);
ROperateLine(failed_image, RAddOperation, 0, failed_image->height, failed_image->width, 0, &red);
return failed_image;
}
/*
full_screen: sending event to the window manager to switch from/to full screen mode
return EXIT_SUCCESS on success, 1 on failure
*/
int full_screen(void)
{
XEvent xev;
Atom wm_state = XInternAtom(dpy, "_NET_WM_STATE", True);
Atom fullscreen = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", True);
long mask = SubstructureNotifyMask;
if (fullscreen_flag) {
fullscreen_flag = False;
zoom_factor = 0;
back_from_fullscreen = True;
} else {
fullscreen_flag = True;
zoom_factor = 1000;
}
memset(&xev, 0, sizeof(xev));
xev.type = ClientMessage;
xev.xclient.display = dpy;
xev.xclient.window = win;
xev.xclient.message_type = wm_state;
xev.xclient.format = 32;
xev.xclient.data.l[0] = fullscreen_flag;
xev.xclient.data.l[1] = fullscreen;
if (!XSendEvent(dpy, DefaultRootWindow(dpy), False, mask, &xev)) {
fprintf(stderr, "Error: sending fullscreen event to xserver\n");
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
/*
zoom_in_out: apply a zoom factor on the current image
arg: 1 to zoom in, 0 to zoom out
return EXIT_SUCCESS on success, 1 on failure
*/
int zoom_in_out(int z)
{
RImage *old_img = img;
RImage *tmp = load_oriented_image(ctx, current_link->data, 0);
if (!tmp)
return EXIT_FAILURE;
if (z) {
zoom_factor += 0.2f;
img = RScaleImage(tmp, tmp->width + (int)(tmp->width * zoom_factor),
tmp->height + (int)(tmp->height * zoom_factor));
if (!img) {
img = old_img;
return EXIT_FAILURE;
}
} else {
zoom_factor -= 0.2f;
int new_width = tmp->width + (int) (tmp->width * zoom_factor);
int new_height = tmp->height + (int)(tmp->height * zoom_factor);
if ((new_width <= 0) || (new_height <= 0)) {
zoom_factor += 0.2f;
RReleaseImage(tmp);
return EXIT_FAILURE;
}
img = RScaleImage(tmp, new_width, new_height);
if (!img) {
img = old_img;
return EXIT_FAILURE;
}
}
RReleaseImage(old_img);
RReleaseImage(tmp);
XFreePixmap(dpy, pix);
merge_with_background(img);
if (!RConvertImage(ctx, img, &pix)) {
fprintf(stderr, "%s\n", RMessageForError(RErrorCode));
return EXIT_FAILURE;
}
XResizeWindow(dpy, win, img->width, img->height);
return EXIT_SUCCESS;
}
/*
zoom_in: transitional fct used to call zoom_in_out with zoom in flag
return EXIT_SUCCESS on success, 1 on failure
*/
int zoom_in(void)
{
return zoom_in_out(1);
}
/*
zoom_out: transitional fct used to call zoom_in_out with zoom out flag
return EXIT_SUCCESS on success, 1 on failure
*/
int zoom_out(void)
{
return zoom_in_out(0);
}
/*
change_image: load previous or next image
arg: way which could be PREV or NEXT constant
return EXIT_SUCCESS on success, 1 on failure
*/
int change_image(int way)
{
if (img && current_link) {
int old_img_width = img->width;
int old_img_height = img->height;
RReleaseImage(img);
if (way == NEXT) {
current_link = current_link->next;
current_index++;
} else {
current_link = current_link->prev;
current_index--;
}
if (current_link == NULL) {
if (way == NEXT) {
current_link = list.first;
current_index = 1;
} else {
current_link = list.last;
current_index = max_index;
}
}
if (DEBUG)
fprintf(stderr, "current file is> %s\n", (char *)current_link->data);
img = load_oriented_image(ctx, current_link->data, 0);
if (!img) {
fprintf(stderr, "Error: %s %s\n", (char *)current_link->data,
RMessageForError(RErrorCode));
img = draw_failed_image();
} else {
merge_with_background(img);
}
rescale_image();
if (!fullscreen_flag) {
if ((old_img_width != img->width) || (old_img_height != img->height))
XResizeWindow(dpy, win, img->width, img->height);
else
XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0, img->width, img->height, 0, 0);
change_title(&title_property, (char *)current_link->data);
} else {
XClearWindow(dpy, win);
XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0,
img->width, img->height, max_width/2-img->width/2, max_height/2-img->height/2);
}
return EXIT_SUCCESS;
}
return EXIT_FAILURE;
}
#ifdef HAVE_PTHREAD
/*
diaporama: send a xevent to display the next image at every delay set to diaporama_delay
arg: not used
return void
*/
void *diaporama(void *arg)
{
(void) arg;
XKeyEvent event;
event.display = dpy;
event.window = win;
event.root = DefaultRootWindow(dpy);
event.subwindow = None;
event.time = CurrentTime;
event.x = 1;
event.y = 1;
event.x_root = 1;
event.y_root = 1;
event.same_screen = True;
event.keycode = XKeysymToKeycode(dpy, XK_Right);
event.state = 0;
event.type = KeyPress;
while (diaporama_flag) {
int r;
r = XSendEvent(event.display, event.window, True, KeyPressMask, (XEvent *)&event);
if (!r)
fprintf(stderr, "Error sending event\n");
XFlush(dpy);
/* default sleep time between moving to next image */
sleep(diaporama_delay);
}
tid = 0;
return arg;
}
#endif
/*
linked_list_init: init the linked list
*/
void linked_list_init(linked_list_t *list)
{
list->first = list->last = 0;
list->count = 0;
}
/*
linked_list_add: add an element to the linked list
return EXIT_SUCCESS on success, 1 otherwise
*/
int linked_list_add(linked_list_t *list, const void *data)
{
link_t *link;
/* calloc sets the "next" field to zero. */
link = calloc(1, sizeof(link_t));
if (!link) {
fprintf(stderr, "Error: memory allocation failed\n");
return EXIT_FAILURE;
}
link->data = data;
if (list->last) {
/* Join the two final links together. */
list->last->next = link;
link->prev = list->last;
list->last = link;
} else {
list->first = link;
list->last = link;
}
list->count++;
return EXIT_SUCCESS;
}
/*
linked_list_free: deallocate the whole linked list
*/
void linked_list_free(linked_list_t *list)
{
link_t *link;
link_t *next;
for (link = list->first; link; link = next) {
/* Store the next value so that we don't access freed memory. */
next = link->next;
if (link->data)
free((char *)link->data);
free(link);
}
}
/*
connect_dir: list and sort by name all files from a given directory
arg: the directory path that contains images, the linked list where to add the new file refs
return: the first argument of the list or NULL on failure
*/
link_t *connect_dir(char *dirpath, linked_list_t *li)
{
struct dirent **dir;
int dv, idx;
char path[PATH_MAX] = "";
if (!dirpath)
return NULL;
dv = scandir(dirpath, &dir, 0, alphasort);
if (dv < 0) {
/* maybe it's a file */
struct stat stDirInfo;
if (lstat(dirpath, &stDirInfo) == 0) {
linked_list_add(li, strdup(dirpath));
return li->first;
} else {
return NULL;
}
}
for (idx = 0; idx < dv; idx++) {
struct stat stDirInfo;
if (dirpath[strlen(dirpath)-1] == FILE_SEPARATOR)
snprintf(path, PATH_MAX, "%s%s", dirpath, dir[idx]->d_name);
else
snprintf(path, PATH_MAX, "%s%c%s", dirpath, FILE_SEPARATOR, dir[idx]->d_name);
free(dir[idx]);
if ((lstat(path, &stDirInfo) == 0) && !S_ISDIR(stDirInfo.st_mode))
linked_list_add(li, strdup(path));
}
free(dir);
return li->first;
}
/*
main
*/
int main(int argc, char **argv)
{
int option = -1;
RContextAttributes attr;
XEvent e;
KeySym keysym;
char *reading_filename = "";
int screen, file_i;
int quit = 0;
XClassHint *class_hints;
XSizeHints *size_hints;
XWMHints *win_hints;
#ifdef USE_XPM
Pixmap icon_pixmap, icon_shape;
#endif
class_hints = XAllocClassHint();
if (!class_hints) {
fprintf(stderr, "Error: failure allocating memory\n");
return EXIT_FAILURE;
}
class_hints->res_name = (char *)APPNAME;
class_hints->res_class = "default";
/* init colors */
lightGray.red = lightGray.green = lightGray.blue = 211;
darkGray.red = darkGray.green = darkGray.blue = 169;
lightGray.alpha = darkGray.alpha = 1;
black.red = black.green = black.blue = 0;
red.red = 255;
red.green = red.blue = 0;
static struct option long_options[] = {
{"version", no_argument, 0, 'v'},
{"help", no_argument, 0, 'h'},
{0, 0, 0, 0}
};
int option_index = 0;
option = getopt_long (argc, argv, "hv", long_options, &option_index);
if (option != -1) {
switch (option) {
case 'h':
printf("Usage: %s [image(s)|directory]\n"
"Options:\n"
" -h, --help print this help text\n"
" -v, --version print version\n"
"Keys:\n"
" [+] zoom in\n"
" [-] zoom out\n"
" [Esc] actual size\n"
#ifdef HAVE_PTHREAD
" [D] launch diaporama mode\n"
#endif
" [L] rotate image on the left\n"
" [Q] quit\n"
" [R] rotate image on the right\n"
" [▸] next image\n"
" [◂] previous image\n"
" [▴] first image\n"
" [▾] last image\n",
argv[0]);
return EXIT_SUCCESS;
case 'v':
fprintf(stderr, "%s version %d.%d\n", APPNAME, APPVERSION_MAJOR, APPVERSION_MINOR);
return EXIT_SUCCESS;
case '?':
return EXIT_FAILURE;
}
}
linked_list_init(&list);
dpy = XOpenDisplay(NULL);
if (!dpy) {
fprintf(stderr, "Error: can't open display");
linked_list_free(&list);
return EXIT_FAILURE;
}
screen = DefaultScreen(dpy);
max_width = DisplayWidth(dpy, screen);
max_height = DisplayHeight(dpy, screen);
attr.flags = RC_RenderMode | RC_ColorsPerChannel;
attr.render_mode = RDitheredRendering;
attr.colors_per_channel = 4;
ctx = RCreateContext(dpy, DefaultScreen(dpy), &attr);
if (argc < 2) {
argv[1] = ".";
argc = 2;
}
for (file_i = 1; file_i < argc; file_i++) {
current_link = connect_dir(argv[file_i], &list);
if (current_link) {
reading_filename = (char *)current_link->data;
max_index = list.count;
}
}
img = load_oriented_image(ctx, reading_filename, 0);
if (!img) {
fprintf(stderr, "Error: %s %s\n", reading_filename, RMessageForError(RErrorCode));
img = draw_failed_image();
if (!current_link)
return EXIT_FAILURE;
}
merge_with_background(img);
rescale_image();
if (DEBUG)
fprintf(stderr, "display size: %dx%d\n", max_width, max_height);
win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 0, 0,
img->width, img->height, 0, 0, BlackPixel(dpy, screen));
XSelectInput(dpy, win, KeyPressMask|StructureNotifyMask|ExposureMask|ButtonPressMask|FocusChangeMask);
size_hints = XAllocSizeHints();
if (!size_hints) {
fprintf(stderr, "Error: failure allocating memory\n");
return EXIT_FAILURE;
}
size_hints->width = img->width;
size_hints->height = img->height;
Atom delWindow = XInternAtom(dpy, "WM_DELETE_WINDOW", 0);
XSetWMProtocols(dpy, win, &delWindow, 1);
change_title(&title_property, reading_filename);
win_hints = XAllocWMHints();
if (win_hints) {
win_hints->flags = StateHint|InputHint|WindowGroupHint;
#ifdef USE_XPM
if ((XpmCreatePixmapFromData(dpy, win, wmiv_xpm, &icon_pixmap, &icon_shape, NULL)) == 0) {
win_hints->flags |= IconPixmapHint|IconMaskHint|IconPositionHint;
win_hints->icon_pixmap = icon_pixmap;
win_hints->icon_mask = icon_shape;
win_hints->icon_x = 0;
win_hints->icon_y = 0;
}
#endif
win_hints->initial_state = NormalState;
win_hints->input = True;
win_hints->window_group = win;
XStringListToTextProperty((char **)&APPNAME, 1, &icon_property);
XSetWMProperties(dpy, win, NULL, &icon_property, argv, argc, size_hints, win_hints, class_hints);
if (icon_property.value)
XFree(icon_property.value);
XFree(win_hints);
XFree(class_hints);
XFree(size_hints);
}
XMapWindow(dpy, win);
XFlush(dpy);
XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0, img->width, img->height, 0, 0);
while (!quit) {
XNextEvent(dpy, &e);
if (e.type == ClientMessage) {
if (e.xclient.data.l[0] == delWindow)
quit = 1;
break;
}
if (e.type == FocusIn) {
focus = True;
continue;
}
if (e.type == FocusOut) {
focus = False;
continue;
}
if (!fullscreen_flag && (e.type == Expose)) {
XExposeEvent xev = e.xexpose;
if (xev.count == 0)
XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0, img->width, img->height, 0, 0);
continue;
}
if (!fullscreen_flag && e.type == ConfigureNotify) {
XConfigureEvent xce = e.xconfigure;
if (xce.width != img->width || xce.height != img->height) {
RImage *old_img = img;
img = load_oriented_image(ctx, current_link->data, 0);
if (!img) {
/* keep the old img and window size */
img = old_img;
XResizeWindow(dpy, win, img->width, img->height);
} else {
RImage *tmp2;
if (!back_from_fullscreen)
/* manually resized window */
tmp2 = RScaleImage(img, xce.width, xce.height);
else {
/* back from fullscreen mode, maybe img was rotated */
tmp2 = img;
back_from_fullscreen = False;
XClearWindow(dpy, win);
}
merge_with_background(tmp2);
if (RConvertImage(ctx, tmp2, &pix)) {
RReleaseImage(old_img);
img = RCloneImage(tmp2);
RReleaseImage(tmp2);
change_title(&title_property, (char *)current_link->data);
XSync(dpy, True);
XResizeWindow(dpy, win, img->width, img->height);
XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0,
img->width, img->height, 0, 0);
}
}
}
continue;
}
if (fullscreen_flag && e.type == ConfigureNotify) {
maximize_image();
continue;
}
if (e.type == ButtonPress) {
switch (e.xbutton.button) {
case Button1: {
if (focus) {
if (img && (e.xbutton.x > img->width/2))
change_image(NEXT);
else
change_image(PREV);
}
}
break;
case Button4:
zoom_in();
break;
case Button5:
zoom_out();
break;
case 8:
change_image(PREV);
break;
case 9:
change_image(NEXT);
break;
}
continue;
}
if (e.type == KeyPress) {
keysym = XkbKeycodeToKeysym(dpy, e.xkey.keycode, 0, e.xkey.state & ShiftMask?1:0);
#ifdef HAVE_PTHREAD
if (keysym != XK_Right)
diaporama_flag = False;
#endif
switch (keysym) {
case XK_Right:
change_image(NEXT);
break;
case XK_Left:
change_image(PREV);
break;
case XK_Up:
if (current_link) {
current_link = list.last;
change_image(NEXT);
}
break;
case XK_Down:
if (current_link) {
current_link = list.first;
change_image(PREV);
}
break;
#ifdef HAVE_PTHREAD
case XK_F5:
case XK_d:
if (!tid) {
if (current_link && !diaporama_flag) {
diaporama_flag = True;
pthread_create(&tid, NULL, &diaporama, NULL);
} else {
fprintf(stderr, "Can't use diaporama mode\n");
}
}
break;
#endif
case XK_q:
quit = 1;
break;
case XK_Escape:
if (!fullscreen_flag) {
zoom_factor = -0.2f;
/* zoom_in will increase the zoom factor by 0.2 */
zoom_in();
} else {
/* we are in fullscreen mode already, want to return to normal size */
full_screen();
}
break;
case XK_plus:
zoom_in();
break;
case XK_minus:
zoom_out();
break;
case XK_F11:
case XK_f:
full_screen();
break;
case XK_r:
turn_image_right();
break;
case XK_l:
turn_image_left();
break;
}
}
}
if (img)
RReleaseImage(img);
if (pix)
XFreePixmap(dpy, pix);
#ifdef USE_XPM
if (icon_pixmap)
XFreePixmap(dpy, icon_pixmap);
if (icon_shape)
XFreePixmap(dpy, icon_shape);
#endif
linked_list_free(&list);
RDestroyContext(ctx);
RShutdown();
XCloseDisplay(dpy);
return EXIT_SUCCESS;
}
WindowMaker-0.95.8/util/bughint 0000775 0001750 0001750 00000002335 12650014300 013324 0000000 0000000 #!/bin/sh
#
# Use this to gather data about your system and send me
# the sysinfo.txt file with your bugreport, plus any error
# messages you've received. This program should be run under X.
#
echo gathering information for bug tracking...
uname -a > sysinfo.txt
wmaker --version >> sysinfo.txt
echo "=============== xdpyinfo ================" >> sysinfo.txt
xdpyinfo >> sysinfo.txt
echo "=============== env ================" >> sysinfo.txt
env >> sysinfo.txt
echo "=============== ldconfig ================" >> sysinfo.txt
if [ `uname` = 'Linux' ]; then
/sbin/ldconfig -p >> sysinfo.txt
else
/sbin/ldconfig -r >> sysinfo.txt
fi
echo "=============== config.cache ================" >> sysinfo.txt
cat ../config.cache ../Version >> sysinfo.txt 2> /dev/null
cat config.cache Version >> sysinfo.txt 2> /dev/null
echo "=============== configuration dir ===========" >> sysinfo.txt
WDIR=$HOME/GNUstep/Defaults
if [ -d $WDIR ]; then
for i in WMGLOBAL WMRootMenu WMState WMWindowAttributes WindowMaker; do
if [ -f $WDIR/$i ]; then
echo "============== $i ========" >> sysinfo.txt
cat $WDIR/$i >> sysinfo.txt
fi
done
else
echo "No config directory found" >> sysinfo.txt
fi
bzip2 -9f sysinfo.txt || gzip -9f sysinfo.txt
echo done.
WindowMaker-0.95.8/util/wm-oldmenu2new 0000775 0001750 0001750 00000011760 12651057551 014566 0000000 0000000 #!/bin/sh
#
# wm-oldmenu2new: script to convert from old-style WindowMaker
# menu file to the new PropertyList style of the WMRootMenu.
#
# Note: ex in all the Linux systems I've used is badly
# broken, except for nex. perl can be relied on however.
# Re-written to use perl.
#
# Local dependencies:
# None.
#
# Authors: Luke Kendall, Toby J Sargeant
#
# Copyright waived; no warranty provided.
#
GLW=GNUstep/Library/WindowMaker
GD=GNUstep/Defaults
WLW=$HOME/$GLW
WD=$HOME/$GD
MYNAME=`basename $0`
USAGE="usage: $MYNAME [menu-file-specifier]
E.g. $MYNAME menu.pt
or $MYNAME pt
The default menu if no arguments are given is the English one, 'menu'."
#
# Process arguments - work out which language menu we're converting.
# Note that foreign language locales do *not* have the .lang suffix
# attached to the WMRootMenu name.
#
OLD_MENU=menu
NEW_MENU=WMRootMenu
if [ $# = 1 ]
then
if [ -s "$WLW/menu.$1" ]
then
OLD_MENU="menu.$1"
NEW_MENU="WMRootMenu"
elif [ -s "$WLW/$1" ]
then
OLD_MENU="$1"
x=`expr "$1" : "menu\.\(.*\)"`
[ "x$x" != "x" ] && NEW_MENU="WMRootMenu"
else
echo "$MYNAME: $WLW/$1 does not exist" >&2
exit 1
fi
elif [ $# != 0 ]
then
echo "$USAGE" >&2
exit 1
fi
#
# For working out what cc is installed
#
which1()
{
oldpath=$PATH
PATH=/bin:/usr/bin:/usr/local/bin
IFS=":"
for j in $oldpath
do
test -x $j/$1 && test ! -d $j/$1 && echo $j/$1 && return 0
done
IFS=" "
return 1
}
#
# Expand macros if necessary.
# Create a temp copy of the menu file to edit to turn into the new.
#
TD=$(/bin/mktemp -d /tmp/wmmenu.XXXXXX) || { echo "$0: can not create temporary file" >& 2; exit 1; }
T=$TD/wmmenu$$
echo "Converting $GLW/$OLD_MENU --> $GD/$NEW_MENU"
cd $WLW || exit 1
if [ ! -s "$OLD_MENU" ]
then
echo "$MYNAME: $WLW/$OLD_MENU does not exist" >&2
exit 1
fi
#
# Always pre-process, to join lines split with \, and to strip comments.
# Not to mention the main purpose, include & process wmmacros if used.
#
set -e
CC=`which1 cc`
[ "x$CC" = "x" ] && CC=`which1 gcc`
[ "x$CC" = "x" ] && "$MYNAME: no cc, gcc found - can't preprocess" >&2 && exit 1
#
# Use the "parse as if it's C option" if cc is gcc, because
# newer versions apparently get confused. Apparently gcc -E does
# not simply run the preprocessor (that's sad).
#
strings "$CC" | grep -l gcc > /dev/null && GCC_FLAGS="-x c"
cp $OLD_MENU $T-c
#
# Given the set -e, the exit 1 shouldn't be needed. But it is, on my NeXT!
#
$CC -E -I. $GCC_FLAGS $T-c > $T+c || exit 1
sed '/^#/d;/^[ ]*$/d' $T+c > $T
rm $T-c $T+c
set +e
#
# This is the interesting bit. Edit the old style menu and
# convert into new style property-list menu.
#
perl - $T <<-'EOF' > $T-p
$v=chr(22);
for (<>) {
push @foo,$_;
}
for (@foo) {
s/\s*$//;
s/^(\s*)"*(Workspaces*)"*\s\s*(WORKSPACE_MENU)/\1(\2, \3),/;
s/^(\s*)("[^"]*")\s+MENU/\1($v\n\1\2,/;
push @foo2,split "\n";
}
@foo=();
for (@foo2) {
s/^(\s*)"([^"]*)"\s\s*END/\1),/;
s/^(\s*)"([^"]*)"\s\s*EXEC\s\s*(.*)$/\1($v\n\1"\2",$v\n\1EXEC,$v\n\1"\3"$v\n\1),/;
s/^(\s*)"([^"]*)"\s\s*SHEXEC\s\s*(.*)$/\1($v\n\1"\2",$v\n\1SHEXEC,$v\n\1"\3"$v\n\1),/;
push @foo,split "\n";
}
@foo2=();
for (@foo) {
s/^(\s*)"([^"]*)"\s\s*OPEN_MENU\s\s*(.*)$/\1($v\n\1"\2",$v\n\1OPEN_MENU,$v\n\1"\3"$v\n\1),/;
push @foo2,split "\n";
}
@foo=();
for (@foo2) {
s/^(\s*)([^ ]*)\s\s*MENU/\1($v\n\1"\2",/;
push @foo,split "\n";
}
@foo2=();
for (@foo) {
s/^(\s*)([^ ]*)\s\s*END/\1),/;
s/^(\s*)([^ ]*)\s\s*EXEC\s\s*(.*)$/\1($v\n\1"\2",$v\n\1EXEC,$v\n\1"\3"$v\n\1),/;
s/^(\s*)([^ ]*)\s\s*SHEXEC\s\s*(.*)$/\1($v\n\1"\2",$v\n\1SHEXEC,$v\n\1"\3"$v\n\1),/;
push @foo2,split "\n";
}
@foo=();
for (@foo2) {
s/^(\s*)([^
]*)\s\s*OPEN_MENU\s\s*(.*)$/\1($v\n\1"\2",$v\n\1OPEN_MENU,$v\n\1"\3"$v\n\1),/;
push @foo,split "\n";
}
@foo2=();
for (@foo) {
s/ WITH / QQQjjQQQ /;
s/^(\s*)"([^"]*)"\s\s*([A-Z_][A-Z_]*)$/\1("\2", \3),/;
s/^(\s*)"([^"]*)"\s+([A-Z_][A-Z_]*)\s\s*(.*)$/\1("\2", \3, \4),/;
s/"(.*".*)"/JJJqqJJJ\1JJJqqJJJ/;
/JJJqqJJJ/ && s/"/\\"/g;
s/JJJqqJJJ/"/g;
s/ QQQjjQQQ / WITH /;
print "$_\n";
}
EOF
mv $T-p $T
#
# Now strip off spurious commas from lines like:
# ),
# )
# since comma is a property separator, not terminator. Sigh.
# Also correct for another problem - Linux ex's require the CTRL-V
# above; a real vi/ex doesn't; so we have to strip out any spurious
# CTRL-V characters if we're using a real ex:
#
sed 's///g' $T | awk '
{
if (last_line != null)
{
if ((last_line ~ /,$/) && ($0 ~ /^[ ]*\)/))
print substr(last_line, 0, length(last_line)-1)
else
print last_line
}
last_line = $0
}
END {
if (last_line != null)
{
if (last_line ~ /,$/)
print substr(last_line, 0, length(last_line)-1)
else
print last_line
}
}
' > $WD/$NEW_MENU.new || exit 1
rm -f $T
rm -fr $TD
#
# Now install it.
#
cd $WD
if [ -s $NEW_MENU ]
then
echo "Preserving $NEW_MENU as $NEW_MENU.sav in $WD"
mv $NEW_MENU $NEW_MENU.sav
fi
mv $NEW_MENU.new $NEW_MENU && echo "Created new $WD/$NEW_MENU"
WindowMaker-0.95.8/util/wdwrite.c 0000664 0001750 0001750 00000005303 12650014300 013565 0000000 0000000 /* wdwrite.c - write key/value to defaults database
*
* WindowMaker window manager
*
* Copyright (c) 1997-2003 Alfredo K. Kojima
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifdef __GLIBC__
#define _GNU_SOURCE /* getopt_long */
#endif
/*
* WindowMaker defaults DB writer
*/
#include "config.h"
#include
#include
#include
#include
#include
#include
#ifdef HAVE_STDNORETURN
#include
#endif
#include
#include "../src/wconfig.h"
static const char *prog_name;
static noreturn void print_help(int print_usage, int exitval)
{
printf("Usage: %s [OPTIONS] \n", prog_name);
if (print_usage) {
puts("Write for in 's database");
puts("");
puts(" -h, --help display this help message");
puts(" -v, --version output version information and exit");
}
exit(exitval);
}
int main(int argc, char **argv)
{
char path[PATH_MAX];
WMPropList *key, *value, *dict;
int ch;
struct option longopts[] = {
{ "version", no_argument, NULL, 'v' },
{ "help", no_argument, NULL, 'h' },
{ NULL, 0, NULL, 0 }
};
prog_name = argv[0];
while ((ch = getopt_long(argc, argv, "hv", longopts, NULL)) != -1)
switch(ch) {
case 'v':
printf("%s (Window Maker %s)\n", prog_name, VERSION);
return 0;
/* NOTREACHED */
case 'h':
print_help(1, 0);
/* NOTREACHED */
case 0:
break;
default:
print_help(0, 1);
/* NOTREACHED */
}
argc -= optind;
argv += optind;
if (argc != 3)
print_help(0, 1);
key = WMCreatePLString(argv[1]);
value = WMCreatePropListFromDescription(argv[2]);
if (!value) {
printf("%s: syntax error in value \"%s\"", prog_name, argv[2]);
return 1;
}
snprintf(path, sizeof(path), "%s", wdefaultspathfordomain(argv[0]));
dict = WMReadPropListFromFile(path);
if (!dict) {
dict = WMCreatePLDictionary(key, value, NULL);
} else {
WMPutInPLDictionary(dict, key, value);
}
WMWritePropListToFile(dict, path);
return 0;
}
WindowMaker-0.95.8/util/Makefile.in 0000664 0001750 0001750 00000110054 13061001354 014003 0000000 0000000 # Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
bin_PROGRAMS = wxcopy$(EXEEXT) wxpaste$(EXEEXT) wdwrite$(EXEEXT) \
wdread$(EXEEXT) getstyle$(EXEEXT) setstyle$(EXEEXT) \
convertfonts$(EXEEXT) seticons$(EXEEXT) geticonset$(EXEEXT) \
wmsetbg$(EXEEXT) wmagnify$(EXEEXT) wmgenmenu$(EXEEXT) \
wmmenugen$(EXEEXT) wmiv$(EXEEXT)
subdir = util
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \
$(top_srcdir)/m4/ax_pthread.m4 \
$(top_srcdir)/m4/ld-version-script.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/m4/windowmaker.m4 \
$(top_srcdir)/m4/wm_attributes.m4 \
$(top_srcdir)/m4/wm_cflags_check.m4 \
$(top_srcdir)/m4/wm_i18n.m4 \
$(top_srcdir)/m4/wm_imgfmt_check.m4 \
$(top_srcdir)/m4/wm_libexif.m4 $(top_srcdir)/m4/wm_libmath.m4 \
$(top_srcdir)/m4/wm_prog_cc_c11.m4 \
$(top_srcdir)/m4/wm_xext_check.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"
PROGRAMS = $(bin_PROGRAMS)
am_convertfonts_OBJECTS = convertfonts.$(OBJEXT) fontconv.$(OBJEXT)
convertfonts_OBJECTS = $(am_convertfonts_OBJECTS)
am__DEPENDENCIES_1 =
convertfonts_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la \
$(am__DEPENDENCIES_1)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
geticonset_SOURCES = geticonset.c
geticonset_OBJECTS = geticonset.$(OBJEXT)
geticonset_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la \
$(am__DEPENDENCIES_1)
am_getstyle_OBJECTS = getstyle.$(OBJEXT) fontconv.$(OBJEXT)
getstyle_OBJECTS = $(am_getstyle_OBJECTS)
getstyle_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la \
$(am__DEPENDENCIES_1)
seticons_SOURCES = seticons.c
seticons_OBJECTS = seticons.$(OBJEXT)
seticons_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la \
$(am__DEPENDENCIES_1)
am_setstyle_OBJECTS = setstyle.$(OBJEXT) fontconv.$(OBJEXT)
setstyle_OBJECTS = $(am_setstyle_OBJECTS)
setstyle_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la \
$(am__DEPENDENCIES_1)
wdread_SOURCES = wdread.c
wdread_OBJECTS = wdread.$(OBJEXT)
wdread_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la \
$(am__DEPENDENCIES_1)
wdwrite_SOURCES = wdwrite.c
wdwrite_OBJECTS = wdwrite.$(OBJEXT)
wdwrite_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la \
$(am__DEPENDENCIES_1)
wmagnify_SOURCES = wmagnify.c
wmagnify_OBJECTS = wmagnify.$(OBJEXT)
wmagnify_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la \
$(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/wrlib/libwraster.la
am_wmgenmenu_OBJECTS = wmgenmenu.$(OBJEXT)
wmgenmenu_OBJECTS = $(am_wmgenmenu_OBJECTS)
wmgenmenu_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la
am_wmiv_OBJECTS = wmiv.$(OBJEXT)
wmiv_OBJECTS = $(am_wmiv_OBJECTS)
wmiv_DEPENDENCIES = $(top_builddir)/wrlib/libwraster.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
am_wmmenugen_OBJECTS = wmmenugen.$(OBJEXT) wmmenugen_misc.$(OBJEXT) \
wmmenugen_parse_wmconfig.$(OBJEXT) \
wmmenugen_parse_xdg.$(OBJEXT)
wmmenugen_OBJECTS = $(am_wmmenugen_OBJECTS)
wmmenugen_DEPENDENCIES = $(top_builddir)/WINGs/libWUtil.la
wmsetbg_SOURCES = wmsetbg.c
wmsetbg_OBJECTS = wmsetbg.$(OBJEXT)
wmsetbg_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la \
$(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/wrlib/libwraster.la
wxcopy_SOURCES = wxcopy.c
wxcopy_OBJECTS = wxcopy.$(OBJEXT)
wxcopy_DEPENDENCIES =
wxpaste_SOURCES = wxpaste.c
wxpaste_OBJECTS = wxpaste.$(OBJEXT)
wxpaste_DEPENDENCIES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
SCRIPTS = $(bin_SCRIPTS)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_@AM_V@)
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
am__v_CC_0 = @echo " CC " $@;
am__v_CC_1 =
CCLD = $(CC)
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(convertfonts_SOURCES) geticonset.c $(getstyle_SOURCES) \
seticons.c $(setstyle_SOURCES) wdread.c wdwrite.c wmagnify.c \
$(wmgenmenu_SOURCES) $(wmiv_SOURCES) $(wmmenugen_SOURCES) \
wmsetbg.c wxcopy.c wxpaste.c
DIST_SOURCES = $(convertfonts_SOURCES) geticonset.c \
$(getstyle_SOURCES) seticons.c $(setstyle_SOURCES) wdread.c \
wdwrite.c wmagnify.c $(wmgenmenu_SOURCES) $(wmiv_SOURCES) \
$(wmmenugen_SOURCES) wmsetbg.c wxcopy.c wxpaste.c
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
ctags-recursive dvi-recursive html-recursive info-recursive \
install-data-recursive install-dvi-recursive \
install-exec-recursive install-html-recursive \
install-info-recursive install-pdf-recursive \
install-ps-recursive install-recursive installcheck-recursive \
installdirs-recursive pdf-recursive ps-recursive \
tags-recursive uninstall-recursive
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
am__recursive_targets = \
$(RECURSIVE_TARGETS) \
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
distdir
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
sed_rest='s,^[^/]*/*,,'; \
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
sed_butlast='s,/*[^/]*$$,,'; \
while test -n "$$dir1"; do \
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
if test "$$first" != "."; then \
if test "$$first" = ".."; then \
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
else \
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
if test "$$first2" = "$$first"; then \
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
else \
dir2="../$$dir2"; \
fi; \
dir0="$$dir0"/"$$first"; \
fi; \
fi; \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
pkgdatadir = $(datadir)/@PACKAGE@
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FCLIBS = @FCLIBS@
FGREP = @FGREP@
GFXLIBS = @GFXLIBS@
GREP = @GREP@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLIBS = @INTLIBS@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBBSD = @LIBBSD@
LIBEXIF = @LIBEXIF@
LIBM = @LIBM@
LIBOBJS = @LIBOBJS@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIBXINERAMA = @LIBXINERAMA@
LIBXMU = @LIBXMU@
LIBXRANDR = @LIBXRANDR@
LINGUAS = @LINGUAS@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAGICKFLAGS = @MAGICKFLAGS@
MAGICKLIBS = @MAGICKLIBS@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MANLANGDIRS = @MANLANGDIRS@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PANGOLIBS = @PANGOLIBS@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
UTILMOFILES = @UTILMOFILES@
VERSION = @VERSION@
WINGSMOFILES = @WINGSMOFILES@
WINGS_VERSION = @WINGS_VERSION@
WMAKERMOFILES = @WMAKERMOFILES@
WPREFSMOFILES = @WPREFSMOFILES@
WRASTER_VERSION = @WRASTER_VERSION@
WUTIL_VERSION = @WUTIL_VERSION@
XCFLAGS = @XCFLAGS@
XFTCONFIG = @XFTCONFIG@
XFTFLAGS = @XFTFLAGS@
XFTLIBS = @XFTLIBS@
XGETTEXT = @XGETTEXT@
XLFLAGS = @XLFLAGS@
XLIBS = @XLIBS@
XMKMF = @XMKMF@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBRARY_PATH = @X_LIBRARY_PATH@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
defsdatadir = @defsdatadir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
inc_search_path = @inc_search_path@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
lcov_output_directory = @lcov_output_directory@
lib_search_path = @lib_search_path@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
pixmapdir = @pixmapdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
wprefs_bindir = @wprefs_bindir@
wprefs_datadir = @wprefs_datadir@
SUBDIRS = po
AUTOMAKE_OPTIONS =
bin_SCRIPTS = wmaker.inst wm-oldmenu2new wkdemenu.pl
EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new wkdemenu.pl
AM_CPPFLAGS = \
$(DFLAGS) -I$(top_srcdir)/WINGs -I$(top_srcdir)/wrlib \
@HEADER_SEARCH_PATH@ \
-DETCDIR=\"sysconfdir\" -DDATADIR=\"pkgdatadir\"
liblist = @LIBRARY_SEARCH_PATH@ @INTLIBS@
wdwrite_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist)
wdread_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist)
wxcopy_LDADD = @XLFLAGS@ @XLIBS@
wxpaste_LDADD = @XLFLAGS@ @XLIBS@
getstyle_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist)
getstyle_SOURCES = getstyle.c fontconv.c common.h
setstyle_LDADD = \
$(top_builddir)/WINGs/libWUtil.la \
@XLFLAGS@ @XLIBS@ $(liblist)
setstyle_SOURCES = setstyle.c fontconv.c common.h
convertfonts_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist)
convertfonts_SOURCES = convertfonts.c fontconv.c common.h
seticons_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist)
geticonset_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist)
wmagnify_LDADD = \
$(top_builddir)/WINGs/libWINGs.la \
$(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/wrlib/libwraster.la \
@XLFLAGS@ @XLIBS@ @INTLIBS@
wmsetbg_LDADD = \
$(top_builddir)/WINGs/libWINGs.la \
$(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/wrlib/libwraster.la \
@XLFLAGS@ @LIBXINERAMA@ @XLIBS@ @INTLIBS@
wmgenmenu_LDADD = \
$(top_builddir)/WINGs/libWUtil.la \
@INTLIBS@
wmgenmenu_SOURCES = wmgenmenu.c wmgenmenu.h
wmmenugen_LDADD = \
$(top_builddir)/WINGs/libWUtil.la \
@INTLIBS@
wmmenugen_SOURCES = wmmenugen.c wmmenugen.h wmmenugen_misc.c \
wmmenugen_parse_wmconfig.c \
wmmenugen_parse_xdg.c
wmiv_LDADD = \
$(top_builddir)/wrlib/libwraster.la \
@XLFLAGS@ @XLIBS@ \
@GFXLIBS@ $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(LIBEXIF)
wmiv_SOURCES = wmiv.c wmiv.h
CLEANFILES = wmaker.inst
all: all-recursive
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu util/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu util/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
$(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p \
|| test -f $$p1 \
; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
sed -e 'p;s,.*/,,;n;h' \
-e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
if ($$2 == $$4) files[d] = files[d] " " $$1; \
else { print "f", $$3 "/" $$4, $$1; } } \
END { for (d in files) print "f", d, files[d] }' | \
while read type dir files; do \
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
test -z "$$files" || { \
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
} \
; done
uninstall-binPROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-e 's/$$/$(EXEEXT)/' \
`; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
clean-binPROGRAMS:
@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
echo " rm -f" $$list; \
rm -f $$list || exit $$?; \
test -n "$(EXEEXT)" || exit 0; \
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
convertfonts$(EXEEXT): $(convertfonts_OBJECTS) $(convertfonts_DEPENDENCIES) $(EXTRA_convertfonts_DEPENDENCIES)
@rm -f convertfonts$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(convertfonts_OBJECTS) $(convertfonts_LDADD) $(LIBS)
geticonset$(EXEEXT): $(geticonset_OBJECTS) $(geticonset_DEPENDENCIES) $(EXTRA_geticonset_DEPENDENCIES)
@rm -f geticonset$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(geticonset_OBJECTS) $(geticonset_LDADD) $(LIBS)
getstyle$(EXEEXT): $(getstyle_OBJECTS) $(getstyle_DEPENDENCIES) $(EXTRA_getstyle_DEPENDENCIES)
@rm -f getstyle$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(getstyle_OBJECTS) $(getstyle_LDADD) $(LIBS)
seticons$(EXEEXT): $(seticons_OBJECTS) $(seticons_DEPENDENCIES) $(EXTRA_seticons_DEPENDENCIES)
@rm -f seticons$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(seticons_OBJECTS) $(seticons_LDADD) $(LIBS)
setstyle$(EXEEXT): $(setstyle_OBJECTS) $(setstyle_DEPENDENCIES) $(EXTRA_setstyle_DEPENDENCIES)
@rm -f setstyle$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(setstyle_OBJECTS) $(setstyle_LDADD) $(LIBS)
wdread$(EXEEXT): $(wdread_OBJECTS) $(wdread_DEPENDENCIES) $(EXTRA_wdread_DEPENDENCIES)
@rm -f wdread$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(wdread_OBJECTS) $(wdread_LDADD) $(LIBS)
wdwrite$(EXEEXT): $(wdwrite_OBJECTS) $(wdwrite_DEPENDENCIES) $(EXTRA_wdwrite_DEPENDENCIES)
@rm -f wdwrite$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(wdwrite_OBJECTS) $(wdwrite_LDADD) $(LIBS)
wmagnify$(EXEEXT): $(wmagnify_OBJECTS) $(wmagnify_DEPENDENCIES) $(EXTRA_wmagnify_DEPENDENCIES)
@rm -f wmagnify$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(wmagnify_OBJECTS) $(wmagnify_LDADD) $(LIBS)
wmgenmenu$(EXEEXT): $(wmgenmenu_OBJECTS) $(wmgenmenu_DEPENDENCIES) $(EXTRA_wmgenmenu_DEPENDENCIES)
@rm -f wmgenmenu$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(wmgenmenu_OBJECTS) $(wmgenmenu_LDADD) $(LIBS)
wmiv$(EXEEXT): $(wmiv_OBJECTS) $(wmiv_DEPENDENCIES) $(EXTRA_wmiv_DEPENDENCIES)
@rm -f wmiv$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(wmiv_OBJECTS) $(wmiv_LDADD) $(LIBS)
wmmenugen$(EXEEXT): $(wmmenugen_OBJECTS) $(wmmenugen_DEPENDENCIES) $(EXTRA_wmmenugen_DEPENDENCIES)
@rm -f wmmenugen$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(wmmenugen_OBJECTS) $(wmmenugen_LDADD) $(LIBS)
wmsetbg$(EXEEXT): $(wmsetbg_OBJECTS) $(wmsetbg_DEPENDENCIES) $(EXTRA_wmsetbg_DEPENDENCIES)
@rm -f wmsetbg$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(wmsetbg_OBJECTS) $(wmsetbg_LDADD) $(LIBS)
wxcopy$(EXEEXT): $(wxcopy_OBJECTS) $(wxcopy_DEPENDENCIES) $(EXTRA_wxcopy_DEPENDENCIES)
@rm -f wxcopy$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(wxcopy_OBJECTS) $(wxcopy_LDADD) $(LIBS)
wxpaste$(EXEEXT): $(wxpaste_OBJECTS) $(wxpaste_DEPENDENCIES) $(EXTRA_wxpaste_DEPENDENCIES)
@rm -f wxpaste$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(wxpaste_OBJECTS) $(wxpaste_LDADD) $(LIBS)
install-binSCRIPTS: $(bin_SCRIPTS)
@$(NORMAL_INSTALL)
@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
$(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
done | \
sed -e 'p;s,.*/,,;n' \
-e 'h;s|.*|.|' \
-e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
if ($$2 == $$4) { files[d] = files[d] " " $$1; \
if (++n[d] == $(am__install_max)) { \
print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
else { print "f", d "/" $$4, $$1 } } \
END { for (d in files) print "f", d, files[d] }' | \
while read type dir files; do \
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
test -z "$$files" || { \
echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
$(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
} \
; done
uninstall-binSCRIPTS:
@$(NORMAL_UNINSTALL)
@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 's,.*/,,;$(transform)'`; \
dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/convertfonts.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fontconv.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geticonset.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getstyle.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/seticons.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setstyle.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wdread.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wdwrite.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmagnify.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmgenmenu.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmiv.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmmenugen.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmmenugen_misc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmmenugen_parse_wmconfig.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmmenugen_parse_xdg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wmsetbg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wxcopy.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wxpaste.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
# This directory's subdirectories are mostly independent; you can cd
# into them and run 'make' without going through this Makefile.
# To change the values of 'make' variables: instead of editing Makefiles,
# (1) if the variable is set in 'config.status', edit 'config.status'
# (which will cause the Makefiles to be regenerated when you run 'make');
# (2) otherwise, pass the desired values on the 'make' command line.
$(am__recursive_targets):
@fail=; \
if $(am__make_keepgoing); then \
failcom='fail=yes'; \
else \
failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-recursive
TAGS: tags
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: ctags-recursive
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-recursive
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
$(am__make_dryrun) \
|| test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
dir1=$$subdir; dir2="$(top_distdir)"; \
$(am__relativize); \
new_top_distdir=$$reldir; \
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$new_top_distdir" \
distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-recursive
all-am: Makefile $(PROGRAMS) $(SCRIPTS)
installdirs: installdirs-recursive
installdirs-am:
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
distclean: distclean-recursive
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
install-data-am:
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am: install-binPROGRAMS install-binSCRIPTS
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man:
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS
.MAKE: $(am__recursive_targets) install-am install-strip
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
check-am clean clean-binPROGRAMS clean-generic clean-libtool \
cscopelist-am ctags ctags-am distclean distclean-compile \
distclean-generic distclean-libtool distclean-tags distdir dvi \
dvi-am html html-am info info-am install install-am \
install-binPROGRAMS install-binSCRIPTS install-data \
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-man install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs installdirs-am maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am uninstall-binPROGRAMS \
uninstall-binSCRIPTS
.PRECIOUS: Makefile
wmaker.inst: $(srcdir)/wmaker.inst.in ./Makefile
$(AM_V_GEN)sed -e "s|#pkgdatadir#|$(pkgdatadir)|" \
-e "s|#sysconfdir#|$(sysconfdir)/WindowMaker|" \
-e "s|#version#|$(VERSION)|" \
-e "s|#bindir#|$(bindir)|" \
$(srcdir)/wmaker.inst.in >wmaker.inst ; \
chmod 755 wmaker.inst
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
WindowMaker-0.95.8/util/wmaker.inst.in 0000664 0001750 0001750 00000017204 12651057551 014551 0000000 0000000 #!/bin/sh
#
# Install Window Maker for the current user
#
# xx herbert
if test "x$1" = "x--batch" ; then
BATCH="1"
else
BATCH=""
fi
# /xx herbert
# name of menu file we install (menu, plmenu)
inst_menu=""
LOCALE="${LC_ALL-${LC_MESSAGES-$LANG}}"
# directory where system wide configuration is stored
GLOBALDIR="#pkgdatadir#"
GLOBALDEFDIR="#sysconfdir#"
USERDIR="$HOME"
VERSION="#version#"
BINDIR="#bindir#"
make_dir() {
mkdir "$1"
chmod +rwx "$1"
}
make_script() {
ISCRIPT="$1"
cat << EOF >> "$ISCRIPT"
# Window Maker default X session startup script
PATH="\$PATH:$BINDIR"
# If you login from xdm, uncomment this to make error messages appear
# in the console window.
#
# tail -f "$HOME"/.xsession-errors > /dev/console &
exec wmaker
EOF
chmod +rx "$ISCRIPT"
}
#
# Copy files considering special cases
#
copy() {
source="$1"
target="$2"
file="$(basename "$source")"
rm -f "$target"
if [ "$file" = "WindowMaker" ]; then
sed -e "s|~/GNUstep|$GSDIR|g" "$source" > "$target"
else
if test "x$GNUSTEP_USER_ROOT" = "x"; then
sed -e "s:#wmdatadir#:$GLOBALDIR:g" \
"$source" > "$target"
else
sed -e "s|\$HOME/GNUstep|$GSDIR|g" \
-e "s:#wmdatadir#:$GLOBALDIR:g" \
"$source" > "$target"
fi
fi
}
#
# Generate WMRootmenu
#
GenerateMenu() {
wmgenmenu > $GSDIR/Defaults/WMRootMenu
}
echo "Installing WindowMaker $VERSION for current user..."
if [ ! -d "$GLOBALDIR" ]; then
echo "Could not find global data files"
echo "Make sure you have installed Window Maker correctly"
exit 1
fi
if [ ! -d "$GLOBALDEFDIR" ]; then
echo "Could not find global configurations files"
echo "Make sure you have installed Window Maker correctly"
exit 1
fi
if [ ! -d "$USERDIR" ]; then
echo "Could not find user directory $USERDIR"
exit 1
fi
if test "x$GNUSTEP_USER_ROOT" = "x"; then
cd "$USERDIR"
GSDIR="$USERDIR/GNUstep"
if [ ! -d "$GSDIR" ]; then
echo "Creating $GSDIR user directory"
make_dir "$GSDIR"
fi
else
GSDIR="$GNUSTEP_USER_ROOT"
if [ ! -d "$GSDIR" ]; then
# in this case, and in this case only, mkdir needs -p option
mkdir -p $GSDIR || {
echo "Directory specified in GNUSTEP_USER_ROOT environment variable does not exist and could not be created"
exit 1
}
chmod +rwx $GSDIR || exit 1
fi
cd "$GSDIR"
cd ..
fi
if [ ! -d "$GSDIR/Defaults" ]; then
make_dir "$GSDIR/Defaults"
fi
echo "Copying defaults database..."
FILES="$(cd "$GLOBALDEFDIR" && ls -d *)"
all=""
for i in $FILES; do
if [ ! -d "$GLOBALDEFDIR/$i" ]; then
if [ -f "$GSDIR/Defaults/$i" -a -z "$BATCH" ]; then
echo "The configuration file \"$i\" already exists in your defaults database."
echo "Do you wish to replace it? [n] $all"
if [ "$all" != "a" ]; then
read foo
if [ "$foo" = "a" -o "$foo" = "A" ]; then
all="a"
fi
fi
if [ "$foo" = "y" -o "$foo" = "Y" -o "$all" = "a" ]; then
copy "$GLOBALDEFDIR/$i" "$GSDIR/Defaults/$i"
fi
else
copy "$GLOBALDEFDIR/$i" "$GSDIR/Defaults/$i"
fi
fi
done
GenerateMenu
if [ ! -d "$GSDIR/Library/Icons/" ]; then
echo "Creating icon library directory $GSDIR/Library/Icons"
if [ ! -d "$GSDIR/Library" ]; then
make_dir "$GSDIR/Library"
fi
make_dir "$GSDIR/Library/Icons"
fi
if [ ! -d "$GSDIR/Library/WindowMaker/" ]; then
echo "Creating WindowMaker data library directory $GSDIR/Library/WindowMaker"
if [ ! -d "$GSDIR/Library" ]; then
make_dir "$GSDIR/Library"
fi
make_dir "$GSDIR/Library/WindowMaker"
fi
if [ ! -d "$GSDIR/Library/WindowMaker/Styles" ]; then
echo "Creating style library $GSDIR/Library/WindowMaker/Styles"
make_dir "$GSDIR/Library/WindowMaker/Styles"
fi
if [ ! -d "$GSDIR/Library/WindowMaker/Themes" ]; then
echo "Creating theme library $GSDIR/Library/WindowMaker/Themes"
make_dir "$GSDIR/Library/WindowMaker/Themes"
fi
if [ ! -d "$GSDIR/Library/WindowMaker/Backgrounds" ]; then
echo "Creating bg image library $GSDIR/Library/WindowMaker/Backgrounds"
make_dir "$GSDIR/Library/WindowMaker/Backgrounds"
else
echo "Default Backgrounds directory already exists. Skipping..."
fi
if [ ! -d "$GSDIR/Library/WindowMaker/IconSets" ]; then
echo "Creating icon setup library $GSDIR/Library/WindowMaker/IconSets"
make_dir "$GSDIR/Library/WindowMaker/IconSets"
else
echo "Default IconSets directory already exists. Skipping..."
fi
if [ ! -d "$GSDIR/Library/WindowMaker/Pixmaps" ]; then
echo "Creating pixmap library $GSDIR/Library/WindowMaker/Pixmaps"
make_dir "$GSDIR/Library/WindowMaker/Pixmaps"
else
echo "Default Pixmaps directory already exists. Skipping..."
fi
if [ ! -d "$GSDIR/Library/WindowMaker/CachedPixmaps" ]; then
make_dir "$GSDIR/Library/WindowMaker/CachedPixmaps"
fi
if [ ! -d "$GSDIR/Library/WindowMaker/WPrefs" ]; then
make_dir "$GSDIR/Library/WindowMaker/WPrefs"
fi
if test -z "#LITE#" ; then
FILES="$(cd "$GLOBALDIR" && ls menu menu.* plmenu plmenu.?? wmmacros)"
for i in $FILES; do
# xx herbert
if [ -f "$GSDIR/Library/WindowMaker/$i" -a -z "$BATCH" ]; then
# /xx herbert
echo "The file \"$i\" already exists in $GSDIR/Library/WindowMaker"
echo "Do you wish to replace it? [n] $all"
if [ "$all" != "a" ]; then
read foo
if [ "$foo" = "a" -o "$foo" = "A" ]; then
all="a"
fi
fi
if [ "$foo" = "y" -o "$foo" = "Y" -o "$foo" = "a" ]; then
copy "$GLOBALDIR/$i" "$GSDIR/Library/WindowMaker/$i"
fi
else
copy "$GLOBALDIR/$i" "$GSDIR/Library/WindowMaker/$i"
fi
done
fi
cp "$GLOBALDIR/README.themes" "$GSDIR/Library/WindowMaker"
cp "$GLOBALDIR/README" "$GSDIR/Library/WindowMaker"
test -f "$GSDIR/Library/WindowMaker/autostart" || \
cp "$GLOBALDIR/autostart.sh" "$GSDIR/Library/WindowMaker/autostart"
chmod +rx "$GSDIR/Library/WindowMaker/autostart"
test -f "$GSDIR/Library/WindowMaker/exitscript" || \
cp "$GLOBALDIR/exitscript.sh" "$GSDIR/Library/WindowMaker/exitscript"
chmod +rx "$GSDIR/Library/WindowMaker/exitscript"
# xx herbert
if test -n "$BATCH" ; then
echo "Installation Finished"
exit 0
fi
# /xx herbert
#
#######################
DATE="$(date +%b%d.%T)"
show_end_message() {
echo
echo "Installation Finished"
echo
echo "There are menus in 2 different file formats. The plain text format and"
echo "the property list format. The plain text format is more flexible, but"
echo "the menu in the property list format can be edited graphically. The"
echo "menu that will be used by default is the property list one. Read"
echo " $GSDIR/Library/WindowMaker/README"
echo "for information on how to change it."
if [ "${inst_menu%.*}" = "menu" ]; then
echo "However, since you have locale set to $LOCALE and plmenu for such locale"
echo "was not found, your WMRootMenu contains path to text formated menu:"
echo " $GSDIR/Library/WindowMaker/$inst_menu"
fi
}
wmaker_found=0
for xinit in .xinitrc .Xclients .xsession; do
test ! -f "$HOME/$xinit" && continue
res="$(grep wmaker "$HOME/$xinit")"
if test "x$res" != x; then
wmaker_found=1
break
fi
done
if test "$wmaker_found" = 1; then
echo "Found Window Maker to already be your default window manager."
show_end_message
exit 0
fi
trap "show_end_message;exit" 2
echo
echo "Now the .xinitrc, .Xclients or .xsession script must be updated so that"
echo "it calls wmaker when you start an X session."
echo "Type the name of the file that must be changed (normally .xinitrc)."
echo "If the file already exists, it will be backed up with a .old.$DATE "
echo "extension"
echo "If you want to edit it by hand, hit -C now."
read file
if test "x$file" = "x"; then
echo "Using .xinitrc as a default value"
file=.xinitrc
fi
if [ -f "$USERDIR/$file" ]; then
mv "$USERDIR/$file" "$USERDIR/$file.old.$DATE"
fi
make_script "$USERDIR/$file"
show_end_message
WindowMaker-0.95.8/util/fontconv.c 0000664 0001750 0001750 00000007413 12650014300 013740 0000000 0000000
#include
#include
#include
#include
#include "../src/wconfig.h"
#include "common.h"
#define DEFAULT_FONT "sans serif:pixelsize=12"
/* X Font Name Suffix field names */
enum {
FOUNDRY,
FAMILY_NAME,
WEIGHT_NAME,
SLANT,
SETWIDTH_NAME,
ADD_STYLE_NAME,
PIXEL_SIZE,
POINT_SIZE,
RESOLUTION_X,
RESOLUTION_Y,
SPACING,
AVERAGE_WIDTH,
CHARSET_REGISTRY,
CHARSET_ENCODING
};
static int countChar(const char *str, char c)
{
int count = 0;
if (!str)
return 0;
for (; *str != 0; str++) {
if (*str == c) {
count++;
}
}
return count;
}
typedef struct str {
const char *str;
int len;
} str;
#define XLFD_TOKENS 14
static str *getXLFDTokens(const char *xlfd)
{
static str tokens[XLFD_TOKENS];
int i, len, size;
const char *ptr;
/* XXX: why does this assume there can't ever be XFNextPrefix? */
if (!xlfd || *xlfd != '-' || countChar(xlfd, '-') != XLFD_TOKENS)
return NULL;
memset(tokens, 0, sizeof(str) * XLFD_TOKENS);
len = strlen(xlfd);
for (ptr = xlfd, i = 0; i < XLFD_TOKENS && len > 0; i++) {
/* skip one '-' */
ptr++;
len--;
if (len <= 0)
break;
size = strcspn(ptr, "-,");
tokens[i].str = ptr;
tokens[i].len = size;
ptr += size;
len -= size;
}
return tokens;
}
static int strToInt(str * token)
{
static char buf[32]; /* enough for an Incredibly Big Number */
if (token->len == 0 ||
token->str[0] == '*' ||
token->len >= sizeof(buf))
return -1;
memset(buf, 0, sizeof(buf));
strncpy(buf, token->str, token->len);
/* the code using this will gracefully handle overflows */
return (int)strtol(buf, NULL, 10);
}
static char *mapWeightToName(str * weight)
{
static const char *normalNames[] = { "medium", "normal", "regular" };
static char buf[32];
size_t i;
if (weight->len == 0)
return "";
for (i = 0; i < wlengthof(normalNames); i++) {
if (strlen(normalNames[i]) == weight->len && strncmp(normalNames[i], weight->str, weight->len)) {
return "";
}
}
snprintf(buf, sizeof(buf), ":%.*s", weight->len, weight->str);
return buf;
}
static char *mapSlantToName(str * slant)
{
if (slant->len == 0)
return "";
switch (slant->str[0]) {
case 'i':
return ":italic";
case 'o':
return ":oblique";
case 'r':
default:
return "";
}
}
static char *xlfdToFc(const char *xlfd, const char *useFamily, Bool keepXLFD)
{
str *tokens, *family, *weight, *slant;
char *name, buf[64];
int size, pixelsize;
tokens = getXLFDTokens(xlfd);
if (!tokens)
return wstrdup(DEFAULT_FONT);
family = &(tokens[FAMILY_NAME]);
weight = &(tokens[WEIGHT_NAME]);
slant = &(tokens[SLANT]);
pixelsize = strToInt(&tokens[PIXEL_SIZE]);
size = strToInt(&tokens[POINT_SIZE]);
if (useFamily) {
name = wstrdup(useFamily);
} else {
if (family->len == 0 || family->str[0] == '*')
return wstrdup(DEFAULT_FONT);
snprintf(buf, sizeof(buf), "%.*s", family->len, family->str);
name = wstrdup(buf);
}
if (size > 0 && pixelsize <= 0) {
snprintf(buf, sizeof(buf), "-%d", size / 10);
name = wstrappend(name, buf);
}
name = wstrappend(name, mapWeightToName(weight));
name = wstrappend(name, mapSlantToName(slant));
if (size <= 0 && pixelsize <= 0) {
name = wstrappend(name, ":pixelsize=12");
} else if (pixelsize > 0) {
/* if pixelsize is present size will be ignored so we skip it */
snprintf(buf, sizeof(buf), ":pixelsize=%d", pixelsize);
name = wstrappend(name, buf);
}
if (keepXLFD) {
name = wstrappend(name, ":xlfd=");
name = wstrappend(name, xlfd);
}
return name;
}
/* return converted font (if conversion is needed) else the original font */
char *convertFont(char *font, Bool keepXLFD)
{
if (font[0] == '-') {
if (MB_CUR_MAX < 2) {
return xlfdToFc(font, NULL, keepXLFD);
} else {
return xlfdToFc(font, "sans serif", keepXLFD);
}
} else {
return font;
}
}
WindowMaker-0.95.8/util/wmmenugen.c 0000664 0001750 0001750 00000025161 13061001047 014107 0000000 0000000 /*
* wmmenugen - Window Maker PropList menu generator
*
* Copyright (c) 2010. Tamas Tevesz
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "wmmenugen.h"
static void addWMMenuEntryCallback(WMMenuEntry *aEntry);
static void assemblePLMenuFunc(WMTreeNode *aNode, void *data);
static int dirParseFunc(const char *filename, const struct stat *st, int tflags, struct FTW *ftw);
static int menuSortFunc(const void *left, const void *right);
static int nodeFindSubMenuByNameFunc(const void *item, const void *cdata);
static WMTreeNode *findPositionInMenu(const char *submenu);
typedef void fct_parse_menufile(const char *file, cb_add_menu_entry *addWMMenuEntryCallback);
typedef Bool fct_validate_filename(const char *filename, const struct stat *st, int tflags, struct FTW *ftw);
static WMArray *plMenuNodes;
static const char *terminal;
static fct_parse_menufile *parse;
static fct_validate_filename *validateFilename;
static const char *prog_name;
/* Global Variables from wmmenugen.h */
WMTreeNode *menu;
char *env_lang, *env_ctry, *env_enc, *env_mod;
static void print_help(void)
{
printf("Usage: %s -parser: fspec [fspec...]\n", prog_name);
puts("Dynamically generate a menu in Property List format for Window Maker");
puts("");
puts(" -h, --help\t\tdisplay this help and exit");
puts(" -parser=\tspecify the format of the input, see below");
puts(" --version\t\toutput version information and exit");
puts("");
puts("fspec: the file to be converted or the directory containing all the menu files");
puts("");
puts("Known parsers:");
puts(" xdg\t\tDesktop Entry from FreeDesktop standard");
puts(" wmconfig\tfrom the menu generation tool by the same name");
}
#ifdef DEBUG
static const char *get_parser_name(void)
{
if (parse == &parse_xdg)
return "xdg";
if (parse == &parse_wmconfig)
return "wmconfig";
/* This case is not supposed to happen, but if it does it means that someone to update this list */
return "";
}
#endif
int main(int argc, char **argv)
{
struct stat st;
int i;
int *previousDepth;
prog_name = argv[0];
plMenuNodes = WMCreateArray(8); /* grows on demand */
menu = (WMTreeNode *)NULL;
parse = NULL;
validateFilename = NULL;
/* assemblePLMenuFunc passes this around */
previousDepth = (int *)wmalloc(sizeof(int));
*previousDepth = -1;
/* currently this is used only by the xdg parser, but it might be useful
* in the future localizing other menus, so it won't hurt to have it here.
*/
parse_locale(NULL, &env_lang, &env_ctry, &env_enc, &env_mod);
terminal = find_terminal_emulator();
for (i = 1; i < argc; i++)
{
if (strncmp(argv[i], "-parser", 7) == 0 &&
(argv[i][7] == '=' ||
argv[i][7] == ':' || /* for legacy compatibility */
argv[i][7] == '\0')) {
const char *name;
if (argv[i][7] == '\0') {
if (++i > argc) {
fprintf(stderr, "%s: Missing parser name after \"-parser\"\n", prog_name);
return 2;
}
name = argv[i];
} else {
name = argv[i] + 8;
}
if (strcmp(name, "xdg") == 0) {
parse = &parse_xdg;
} else if (strcmp(name, "wmconfig") == 0) {
parse = &parse_wmconfig;
validateFilename = &wmconfig_validate_file;
} else {
fprintf(stderr, "%s: Unknown parser \"%s\"\n", prog_name, name);
return 2;
}
continue;
}
if (strcmp(argv[i], "--version") == 0) {
printf("%s (Window Maker %s)\n", prog_name, VERSION);
return 0;
}
if (strcmp(argv[i], "-h") == 0 ||
strcmp(argv[i], "-help") == 0 ||
strcmp(argv[i], "--help") == 0) {
print_help();
return 0;
}
if (parse == NULL) {
fprintf(stderr, "%s: argument \"%s\" with no valid parser\n", prog_name, argv[i]);
return 2;
}
#if DEBUG
fprintf(stderr, "%s: Using parser \"%s\" to process \"%s\"\n",
prog_name, get_parser_name(), argv[i]);
#endif
if (stat(argv[i], &st) == -1) {
fprintf(stderr, "%s: unable to stat \"%s\", %s\n",
prog_name, argv[i], strerror(errno));
return 1;
} else if (S_ISREG(st.st_mode)) {
parse(argv[i], addWMMenuEntryCallback);
} else if (S_ISDIR(st.st_mode)) {
nftw(argv[i], dirParseFunc, 16, FTW_PHYS);
} else {
fprintf(stderr, "%s: \"%s\" is not a file or directory\n", prog_name, argv[i]);
return 1;
}
}
if (!menu) {
fprintf(stderr, "%s: parsers failed to create a valid menu\n", prog_name);
return 1;
}
WMSortTree(menu, menuSortFunc);
WMTreeWalk(menu, assemblePLMenuFunc, previousDepth, True);
i = WMGetArrayItemCount(plMenuNodes);
if (i > 2) { /* more than one submenu unprocessed is almost certainly an error */
fprintf(stderr, "%s: unprocessed levels on the stack. fishy.\n", prog_name);
return 3;
} else if (i > 1 ) { /* possibly the top-level attachment is not yet done */
WMPropList *first, *next;
next = WMPopFromArray(plMenuNodes);
first = WMPopFromArray(plMenuNodes);
WMAddToPLArray(first, next);
WMAddToArray(plMenuNodes, first);
}
puts(WMGetPropListDescription((WMPropList *)WMGetFromArray(plMenuNodes, 0), True));
return 0;
}
static int dirParseFunc(const char *filename, const struct stat *st, int tflags, struct FTW *ftw)
{
(void)st;
(void)tflags;
(void)ftw;
if (validateFilename &&
!validateFilename(filename, st, tflags, ftw))
return 0;
parse(filename, addWMMenuEntryCallback);
return 0;
}
/* upon fully deducing one particular menu entry, parsers call back to this
* function to have said menu entry added to the wm menu. initializes wm menu
* with a root element if needed.
*/
static void addWMMenuEntryCallback(WMMenuEntry *aEntry)
{
WMMenuEntry *wm;
WMTreeNode *at;
wm = (WMMenuEntry *)wmalloc(sizeof(WMMenuEntry)); /* this entry */
at = (WMTreeNode *)NULL; /* will be a child of this entry */
if (!menu) {
WMMenuEntry *root;
root = (WMMenuEntry *)wmalloc(sizeof(WMMenuEntry));
root->Name = "Applications";
root->CmdLine = NULL;
root->SubMenu = NULL;
root->Flags = 0;
menu = WMCreateTreeNode(root);
}
if (aEntry->SubMenu)
at = findPositionInMenu(aEntry->SubMenu);
if (!at)
at = menu;
wm->Flags = aEntry->Flags;
wm->Name = wstrdup(aEntry->Name);
wm->CmdLine = wstrdup(aEntry->CmdLine);
wm->SubMenu = NULL;
WMAddItemToTree(at, wm);
}
/* creates the proplist menu out of the abstract menu representation in `menu'.
*/
static void assemblePLMenuFunc(WMTreeNode *aNode, void *data)
{
WMMenuEntry *wm;
WMPropList *pl;
int pDepth, cDepth;
wm = (WMMenuEntry *)WMGetDataForTreeNode(aNode);
cDepth = WMGetTreeNodeDepth(aNode);
pDepth = *(int *)data;
if (pDepth > cDepth) { /* just ascended out of a/several submenu(s) */
WMPropList *last, *but; /* merge the tail up to the current position */
int i;
for (i = pDepth - cDepth; i > 0; i--) {
last = WMPopFromArray(plMenuNodes);
but = WMPopFromArray(plMenuNodes);
WMAddToPLArray(but, last);
WMAddToArray(plMenuNodes, but);
}
}
if (!wm->CmdLine) { /* new submenu */
WMAddToArray(plMenuNodes, WMCreatePLArray(WMCreatePLString(wm->Name), NULL));
} else { /* new menu item */
pl = WMPopFromArray(plMenuNodes);
if (wm->Flags & F_RESTART_OTHER) { /* RESTART, somewm */
char buf[1024];
memset(buf, 0, sizeof(buf));
snprintf(buf, sizeof(buf), "%s %s", _("Restart"), wm->Name);
WMAddToPLArray(pl, WMCreatePLArray(
WMCreatePLString(buf),
WMCreatePLString("RESTART"),
WMCreatePLString(wm->CmdLine),
NULL)
);
} else if (wm->Flags & F_RESTART_SELF) {/* RESTART */
WMAddToPLArray(pl, WMCreatePLArray(
WMCreatePLString(_("Restart Window Maker")),
WMCreatePLString("RESTART"),
NULL)
);
} else if (wm->Flags & F_QUIT) { /* EXIT */
WMAddToPLArray(pl, WMCreatePLArray(
WMCreatePLString(_("Exit Window Maker")),
WMCreatePLString("EXIT"),
NULL)
);
} else { /* plain simple command */
char buf[1024];
memset(buf, 0, sizeof(buf));
if (wm->Flags & F_TERMINAL) /* XXX: quoting! */
snprintf(buf, sizeof(buf), "%s -e \"%s\"", terminal, wm->CmdLine);
else
snprintf(buf, sizeof(buf), "%s", wm->CmdLine);
WMAddToPLArray(pl, WMCreatePLArray(
WMCreatePLString(wm->Name),
WMCreatePLString("SHEXEC"),
WMCreatePLString(buf),
NULL)
);
}
WMAddToArray(plMenuNodes, pl);
}
*(int *)data = cDepth;
return;
}
/* sort the menu tree; callback for WMSortTree()
*/
static int menuSortFunc(const void *left, const void *right)
{
WMMenuEntry *leftwm;
WMMenuEntry *rightwm;
leftwm = (WMMenuEntry *)WMGetDataForTreeNode(*(WMTreeNode **)left);
rightwm = (WMMenuEntry *)WMGetDataForTreeNode(*(WMTreeNode **)right);
/* submenus first */
if (!leftwm->CmdLine && rightwm->CmdLine)
return -1;
if (leftwm->CmdLine && !rightwm->CmdLine)
return 1;
/* the rest lexicographically */
return strcasecmp(leftwm->Name, rightwm->Name);
}
/* returns the leaf an entry with the submenu spec `submenu' attaches to.
* creates `submenu' path (anchored to the root) along the way.
*/
static WMTreeNode *findPositionInMenu(const char *submenu)
{
char *q;
WMMenuEntry *wm;
WMTreeNode *node, *pnode;
char buf[1024];
/* qualify submenu with "Applications/" (the root node) */
memset(buf, 0, sizeof(buf));
snprintf(buf, sizeof(buf), "Applications/%s", submenu);
/* start at the root */
node = menu;
q = strtok(buf, "/");
while (q) {
pnode = node;
node = WMFindInTreeWithDepthLimit(pnode, nodeFindSubMenuByNameFunc, q, 1);
if (!node) {
wm = (WMMenuEntry *)wmalloc(sizeof(WMMenuEntry));
wm->Flags = 0;
wm->Name = wstrdup(q);
wm->CmdLine = NULL;
wm->SubMenu = NULL;
node = WMAddNodeToTree(pnode, WMCreateTreeNode(wm));
}
q = strtok(NULL, "/");
}
return node;
}
/* find node where Name = cdata and node is a submenu
*/
static int nodeFindSubMenuByNameFunc(const void *item, const void *cdata)
{
WMMenuEntry *wm;
wm = (WMMenuEntry *)item;
if (wm->CmdLine) /* if it has a cmdline, it can't be a submenu */
return 0;
return strcmp(wm->Name, (const char *)cdata) == 0;
}
WindowMaker-0.95.8/util/wxcopy.c 0000664 0001750 0001750 00000014652 12650014300 013440 0000000 0000000 /* wxcopy.c- copy stdin or file into cutbuffer
*
* Copyright (c) 1997-2003 Alfredo K. Kojima
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
#include
#include
#include
#include
#include
#include
#include
#include "../src/wconfig.h"
#define LINESIZE (4*1024)
#define MAXDATA (64*1024)
static const char *prog_name;
static void print_help(void)
{
printf("Usage: %s [OPTIONS] [FILE]\n", prog_name);
puts("Copies data from FILE or stdin into X cut buffer.");
puts("");
puts(" -display display to use");
puts(" --cutbuffer cutbuffer number to put data");
puts(" --no-limit do not limit size of input data");
puts(" --clear-selection clears the current PRIMARY selection");
puts(" -h, --help display this help and exit");
puts(" -v, --version output version information and exit");
}
static int errorHandler(Display * dpy, XErrorEvent * err)
{
/* Parameter not used, but tell the compiler that it is ok */
(void) dpy;
(void) err;
/* ignore all errors */
return 0;
}
int main(int argc, char **argv)
{
Display *dpy;
int i;
int buffer = -1;
char *filename = NULL;
FILE *file = stdin;
char *buf = NULL;
char *display_name = "";
int l = 0;
int buf_len = 0;
int limit_check = 1;
int clear_selection = 0;
prog_name = argv[0];
for (i = 1; i < argc; i++) {
if (argv[i][0] == '-') {
if (strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0) {
print_help();
exit(0);
} else if (strcmp(argv[i], "-v") == 0 || strcmp(argv[i], "--version") == 0) {
printf("%s (Window Maker %s)\n", prog_name, VERSION);
exit(0);
} else if (strcmp(argv[i], "-cutbuffer") == 0 || strcmp(argv[i], "--cutbuffer") == 0) {
if (i < argc - 1) {
i++;
if (sscanf(argv[i], "%i", &buffer) != 1) {
fprintf(stderr, "%s: could not convert '%s' to int\n",
prog_name, argv[i]);
exit(1);
}
if (buffer < 0 || buffer > 7) {
fprintf(stderr, "%s: invalid buffer number %i\n", prog_name, buffer);
exit(1);
}
} else {
printf("%s: missing argument for '%s'\n", prog_name, argv[i]);
printf("Try '%s --help' for more information\n", prog_name);
exit(1);
}
} else if (strcmp(argv[i], "-display") == 0) {
if (i < argc - 1) {
display_name = argv[++i];
} else {
printf("%s: missing argument for '%s'\n", prog_name, argv[i]);
printf("Try '%s --help' for more information\n", prog_name);
exit(1);
}
} else if (strcmp(argv[i], "-clearselection") == 0
|| strcmp(argv[i], "--clear-selection") == 0) {
clear_selection = 1;
} else if (strcmp(argv[i], "-nolimit") == 0 || strcmp(argv[i], "--no-limit") == 0) {
limit_check = 0;
} else {
printf("%s: invalid argument '%s'\n", prog_name, argv[i]);
printf("Try '%s --help' for more information\n", prog_name);
exit(1);
}
} else {
filename = argv[i];
}
}
if (filename) {
file = fopen(filename, "rb");
if (!file) {
char line[1024];
snprintf(line, sizeof(line),
"%s: could not open \"%s\"",
prog_name, filename);
perror(line);
exit(1);
}
}
dpy = XOpenDisplay(display_name);
XSetErrorHandler(errorHandler);
if (!dpy) {
fprintf(stderr, "%s: could not open display \"%s\"\n", prog_name, XDisplayName(display_name));
exit(1);
}
if (buffer < 0) {
Atom *rootWinProps;
int exists[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
int i, count;
/* Create missing CUT_BUFFERs */
rootWinProps = XListProperties(dpy, DefaultRootWindow(dpy), &count);
for (i = 0; i < count; i++) {
switch (rootWinProps[i]) {
case XA_CUT_BUFFER0:
exists[0] = 1;
break;
case XA_CUT_BUFFER1:
exists[1] = 1;
break;
case XA_CUT_BUFFER2:
exists[2] = 1;
break;
case XA_CUT_BUFFER3:
exists[3] = 1;
break;
case XA_CUT_BUFFER4:
exists[4] = 1;
break;
case XA_CUT_BUFFER5:
exists[5] = 1;
break;
case XA_CUT_BUFFER6:
exists[6] = 1;
break;
case XA_CUT_BUFFER7:
exists[7] = 1;
break;
default:
break;
}
}
if (rootWinProps) {
XFree(rootWinProps);
}
for (i = 0; i < 8; i++) {
if (!exists[i]) {
XStoreBuffer(dpy, "", 0, i);
}
}
XRotateBuffers(dpy, 1);
buffer = 0;
}
while (!feof(file)) {
char *nbuf;
char tmp[LINESIZE + 2];
int nl = 0;
/*
* Use read() instead of fgets() to preserve NULLs, since
* especially since there's no reason to read one line at a time.
*/
if ((nl = fread(tmp, 1, LINESIZE, file)) <= 0) {
break;
}
if (buf_len == 0) {
nbuf = malloc(buf_len = l + nl + 1);
} else if (buf_len < l + nl + 1) {
/*
* To avoid terrible performance on big input buffers,
* grow by doubling, not by the minimum needed for the
* current line.
*/
buf_len = 2 * buf_len + nl + 1;
/* some realloc implementations don't do malloc if buf==NULL */
if (buf == NULL) {
nbuf = malloc(buf_len);
} else {
nbuf = realloc(buf, buf_len);
}
} else {
nbuf = buf;
}
if (!nbuf) {
fprintf(stderr, "%s: out of memory\n", prog_name);
exit(1);
}
buf = nbuf;
/*
* Don't strcat, since it would make the algorithm n-squared.
* Don't use strcpy, since it stops on a NUL.
*/
memcpy(buf + l, tmp, nl);
l += nl;
if (limit_check && l >= MAXDATA) {
fprintf
(stderr,
"%s: too much data in input - more than %d bytes\n"
" use the -nolimit argument to remove the limit check.\n", prog_name, MAXDATA);
exit(1);
}
}
if (clear_selection) {
XSetSelectionOwner(dpy, XA_PRIMARY, None, CurrentTime);
}
if (buf) {
XStoreBuffer(dpy, buf, l, buffer);
}
XFlush(dpy);
XCloseDisplay(dpy);
exit(buf == NULL || errno != 0);
}
WindowMaker-0.95.8/util/wmagnify.c 0000664 0001750 0001750 00000026011 12650014300 013720 0000000 0000000 /*
* magnify - a X utility for magnifying screen image
*
* 2000/5/21 Alfredo K. Kojima
*
* This program is in the Public Domain.
*/
#include
#include
#include
#include
#include
#include
/*
* TODO:
* - lens that shows where it's magnifying
*
*
*/
int refreshrate = 200;
typedef struct {
Drawable d;
XRectangle *rects;
int rectP;
unsigned long lastpixel;
unsigned long *buffer;
int width, height;
int rwidth, rheight; /* size of window in real pixels */
int magfactor;
int refreshrate;
WMWindow *win;
WMLabel *label;
WMPixmap *pixmap;
WMWindow *dlg;
WMSlider *speed;
WMSlider *magnify;
WMButton *okB;
WMButton *cancelB;
WMButton *newB;
int x, y;
Bool frozen;
Bool firstDraw;
Bool markPointerHotspot;
WMHandlerID tid;
} BufferData;
static BufferData *newWindow(int magfactor);
int windowCount = 0;
int rectBufferSize = 32;
Display *dpy, *vdpy;
WMScreen *scr;
unsigned int black;
WMColor *cursorColor1;
WMColor *cursorColor2;
static BufferData *makeBufferData(WMWindow * win, WMLabel * label, int width, int height, int magfactor)
{
BufferData *data;
data = wmalloc(sizeof(BufferData));
data->rwidth = width;
data->rheight = height;
data->refreshrate = refreshrate;
data->firstDraw = True;
data->magfactor = magfactor;
data->rects = wmalloc(sizeof(XRectangle) * rectBufferSize);
data->rectP = 0;
data->win = win;
data->label = label;
data->pixmap = WMCreatePixmap(scr, width, height, WMScreenDepth(scr), False);
WMSetLabelImage(data->label, data->pixmap);
data->d = WMGetPixmapXID(data->pixmap);
data->frozen = False;
width /= magfactor;
height /= magfactor;
data->buffer = wmalloc(sizeof(unsigned long) * width * height);
data->width = width;
data->height = height;
return data;
}
static void resizeBufferData(BufferData * data, int width, int height, int magfactor)
{
int w = width / magfactor;
int h = height / magfactor;
data->rwidth = width;
data->rheight = height;
data->firstDraw = True;
data->magfactor = magfactor;
data->buffer = wrealloc(data->buffer, sizeof(unsigned long) * w * h);
data->width = w;
data->height = h;
memset(data->buffer, 0, w * h * sizeof(unsigned long));
WMResizeWidget(data->label, width, height);
WMReleasePixmap(data->pixmap);
data->pixmap = WMCreatePixmap(scr, width, height, WMScreenDepth(scr), False);
WMSetLabelImage(data->label, data->pixmap);
data->d = WMGetPixmapXID(data->pixmap);
}
static int drawpoint(BufferData * data, unsigned long pixel, int x, int y)
{
static GC gc = NULL;
Bool flush = (x < 0);
if (!flush) {
if (data->buffer[x + data->width * y] == pixel && !data->firstDraw)
return 0;
data->buffer[x + data->width * y] = pixel;
}
if (gc == NULL) {
gc = XCreateGC(dpy, DefaultRootWindow(dpy), 0, NULL);
}
if (!flush && data->lastpixel == pixel && data->rectP < rectBufferSize) {
data->rects[data->rectP].x = x * data->magfactor;
data->rects[data->rectP].y = y * data->magfactor;
data->rects[data->rectP].width = data->magfactor;
data->rects[data->rectP].height = data->magfactor;
data->rectP++;
return 0;
}
XSetForeground(dpy, gc, data->lastpixel);
XFillRectangles(dpy, data->d, gc, data->rects, data->rectP);
data->rectP = 0;
data->rects[data->rectP].x = x * data->magfactor;
data->rects[data->rectP].y = y * data->magfactor;
data->rects[data->rectP].width = data->magfactor;
data->rects[data->rectP].height = data->magfactor;
data->rectP++;
data->lastpixel = pixel;
return 1;
}
static inline unsigned long getpix(XImage * image, int x, int y, int xoffs, int yoffs)
{
if (x < xoffs || y < yoffs || x >= xoffs + image->width || y >= yoffs + image->height) {
return black;
}
return XGetPixel(image, x - xoffs, y - yoffs);
}
static void updateImage(BufferData * data, int rx, int ry)
{
int gx, gy, gw, gh;
int x, y;
int xoffs, yoffs;
int changedPixels = 0;
XImage *image;
gw = data->width;
gh = data->height;
gx = rx - gw / 2;
gy = ry - gh / 2;
xoffs = yoffs = 0;
if (gx < 0) {
xoffs = abs(gx);
gw += gx;
gx = 0;
}
if (gx + gw >= WidthOfScreen(DefaultScreenOfDisplay(vdpy))) {
gw = WidthOfScreen(DefaultScreenOfDisplay(vdpy)) - gx;
}
if (gy < 0) {
yoffs = abs(gy);
gh += gy;
gy = 0;
}
if (gy + gh >= HeightOfScreen(DefaultScreenOfDisplay(vdpy))) {
gh = HeightOfScreen(DefaultScreenOfDisplay(vdpy)) - gy;
}
image = XGetImage(vdpy, DefaultRootWindow(vdpy), gx, gy, gw, gh, AllPlanes, ZPixmap);
for (y = 0; y < data->height; y++) {
for (x = 0; x < data->width; x++) {
unsigned long pixel;
pixel = getpix(image, x, y, xoffs, yoffs);
if (drawpoint(data, pixel, x, y))
changedPixels++;
}
}
/* flush the point cache */
drawpoint(data, 0, -1, -1);
XDestroyImage(image);
if (data->markPointerHotspot && !data->frozen) {
XRectangle rects[4];
rects[0].x = (data->width / 2 - 3) * data->magfactor;
rects[0].y = (data->height / 2) * data->magfactor;
rects[0].width = 2 * data->magfactor;
rects[0].height = data->magfactor;
rects[1].x = (data->width / 2 + 2) * data->magfactor;
rects[1].y = (data->height / 2) * data->magfactor;
rects[1].width = 2 * data->magfactor;
rects[1].height = data->magfactor;
XFillRectangles(dpy, data->d, WMColorGC(cursorColor1), rects, 2);
rects[2].y = (data->height / 2 - 3) * data->magfactor;
rects[2].x = (data->width / 2) * data->magfactor;
rects[2].height = 2 * data->magfactor;
rects[2].width = data->magfactor;
rects[3].y = (data->height / 2 + 2) * data->magfactor;
rects[3].x = (data->width / 2) * data->magfactor;
rects[3].height = 2 * data->magfactor;
rects[3].width = data->magfactor;
XFillRectangles(dpy, data->d, WMColorGC(cursorColor2), rects + 2, 2);
}
if (changedPixels > 0) {
WMRedisplayWidget(data->label);
}
data->firstDraw = False;
}
static void update(void *d)
{
BufferData *data = (BufferData *) d;
Window win;
int rx, ry;
int bla;
unsigned ubla;
if (data->frozen) {
rx = data->x;
ry = data->y;
} else {
XQueryPointer(dpy, DefaultRootWindow(dpy), &win, &win, &rx, &ry, &bla, &bla, &ubla);
}
updateImage(data, rx, ry);
data->tid = WMAddTimerHandler(data->refreshrate, update, data);
}
static void resizedWindow(void *d, WMNotification * notif)
{
BufferData *data = (BufferData *) d;
WMView *view = (WMView *) WMGetNotificationObject(notif);
WMSize size;
size = WMGetViewSize(view);
resizeBufferData(data, size.width, size.height, data->magfactor);
}
static void closeWindow(WMWidget * w, void *d)
{
BufferData *data = (BufferData *) d;
windowCount--;
if (windowCount == 0) {
WMReleaseApplication();
exit(0);
} else {
WMDeleteTimerHandler(data->tid);
WMDestroyWidget(w);
wfree(data->buffer);
wfree(data->rects);
WMReleasePixmap(data->pixmap);
wfree(data);
}
}
static void keyHandler(XEvent * event, void *d)
{
BufferData *data = (BufferData *) d;
char buf[32];
KeySym ks;
WMView *view = WMWidgetView(data->win);
WMSize size;
size = WMGetViewSize(view);
if (XLookupString(&event->xkey, buf, 31, &ks, NULL) > 0) {
switch (buf[0]) {
case 'n':
newWindow(data->magfactor);
break;
case 'm':
data->markPointerHotspot = !data->markPointerHotspot;
break;
case 'f':
case ' ':
data->frozen = !data->frozen;
if (data->frozen) {
data->x = event->xkey.x_root;
data->y = event->xkey.y_root;
sprintf(buf, "[Magnify %ix]", data->magfactor);
} else {
sprintf(buf, "Magnify %ix", data->magfactor);
}
WMSetWindowTitle(data->win, buf);
break;
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
resizeBufferData(data, size.width, size.height, buf[0] - '0');
if (data->frozen) {
sprintf(buf, "[Magnify %ix]", data->magfactor);
} else {
sprintf(buf, "Magnify %ix", data->magfactor);
}
WMSetWindowTitle(data->win, buf);
break;
}
}
}
static BufferData *newWindow(int magfactor)
{
WMWindow *win;
WMLabel *label;
BufferData *data;
char buf[32];
windowCount++;
win = WMCreateWindow(scr, "magnify");
WMResizeWidget(win, 300, 200);
sprintf(buf, "Magnify %ix", magfactor);
WMSetWindowTitle(win, buf);
WMSetViewNotifySizeChanges(WMWidgetView(win), True);
label = WMCreateLabel(win);
WMResizeWidget(label, 300, 200);
WMMoveWidget(label, 0, 0);
WMSetLabelRelief(label, WRSunken);
WMSetLabelImagePosition(label, WIPImageOnly);
data = makeBufferData(win, label, 300, 200, magfactor);
WMCreateEventHandler(WMWidgetView(win), KeyReleaseMask, keyHandler, data);
WMAddNotificationObserver(resizedWindow, data, WMViewSizeDidChangeNotification, WMWidgetView(win));
WMRealizeWidget(win);
WMMapSubwidgets(win);
WMMapWidget(win);
WMSetWindowCloseAction(win, closeWindow, data);
data->tid = WMAddTimerHandler(refreshrate, update, data);
return data;
}
int main(int argc, char **argv)
{
int i;
char *display = "";
char *vdisplay = NULL;
int magfactor = 2;
WMInitializeApplication("Magnify", &argc, argv);
for (i = 1; i < argc; i++) {
if (strcmp(argv[i], "-display") == 0) {
i++;
if (i >= argc)
goto help;
display = argv[i];
} else if (strcmp(argv[i], "-vdisplay") == 0) {
i++;
if (i >= argc)
goto help;
vdisplay = argv[i];
} else if (strcmp(argv[i], "-m") == 0) {
i++;
if (i >= argc)
goto help;
magfactor = atoi(argv[i]);
if (magfactor < 1 || magfactor > 32) {
printf("%s:invalid magnification factor ``%s''\n", argv[0], argv[i]);
exit(1);
}
} else if (strcmp(argv[i], "-r") == 0) {
i++;
if (i >= argc)
goto help;
refreshrate = atoi(argv[i]);
if (refreshrate < 1) {
printf("%s:invalid refresh rate ``%s''\n", argv[0], argv[i]);
exit(1);
}
} else if (strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0) {
help:
printf("Usage: %s [options]\n", argv[0]);
puts("Options:");
puts(" -display \tdisplay where to magnification is shown");
puts(" -m \t\tchange magnification factor (default 2)");
puts(" -r \t\tchange refresh delay, in milliseconds (default 200)");
puts(" -vdisplay \tdisplay from which the magnification is taken");
puts(" -h, --help\t\tdisplay this help page");
puts("Keys:");
puts(" 1,2,3,4,5,6,7,8,9 change the magnification factor");
puts(" , f freeze the 'camera', making it magnify only the current\n"
" position");
puts(" n create a new window");
puts(" m show/hide the pointer hotspot mark");
exit(0);
}
}
dpy = XOpenDisplay(display);
if (!dpy) {
puts("could not open display");
exit(1);
}
if (vdisplay) {
vdpy = XOpenDisplay(vdisplay);
if (!vdpy) {
puts("could not open display to be viewed");
exit(1);
}
} else {
vdpy = dpy;
}
/* calculate how many rectangles we can send in a trip to the server */
rectBufferSize = XMaxRequestSize(dpy) - 128;
rectBufferSize /= sizeof(XRectangle);
if (rectBufferSize < 1)
rectBufferSize = 1;
black = BlackPixel(dpy, DefaultScreen(dpy));
scr = WMCreateScreen(dpy, 0);
cursorColor1 = WMCreateNamedColor(scr, "#ff0000", False);
cursorColor2 = WMCreateNamedColor(scr, "#00ff00", False);
newWindow(magfactor);
WMScreenMainLoop(scr);
return 0;
}
WindowMaker-0.95.8/util/wmgenmenu.h 0000664 0001750 0001750 00000041672 12650014300 014120 0000000 0000000 /* wmgenmenu.h
*
* Copyright (C) 2010 Carlos R. Mafra
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
/*
* If the program should run from inside a terminal it has
* to end with a space followed by '!', e.g. "mutt !"
*/
char *Terminals[MAX_NR_APPS][2] = {
{ N_("xterm"), "xterm" },
{ N_("mrxvt"), "mrxvt" },
{ N_("Konsole"), "konsole" },
{ N_("Urxvt"), "urxvt" },
{ NULL, NULL }
};
char *File_managers[MAX_NR_APPS][2] = {
{ N_("Dolphin"), "dolphin" },
{ N_("Thunar"), "thunar" },
{ N_("ROX filer"), "rox" },
{ N_("PCManFM"), "pcmanfm" },
{ N_("GWorkspace"), "GWorkspace" },
{ N_("Midnight Commander"), "mc !" },
{ N_("XFTree"), "xftree" },
{ N_("Konqueror"), "konqueror" },
{ N_("Nautilus"), "nautilus --no-desktop" },
{ N_("FSViewer"), "FSViewer" },
{ N_("Xfe"), "xfe" },
{ NULL, NULL }
};
char *Mathematics[MAX_NR_APPS][2] = {
{ N_("Xmaxima"), "xmaxima" },
{ N_("Maxima"), "maxima !" },
{ N_("Maple"), "maple" },
{ N_("Scilab"), "scilab" },
{ N_("bc"), "bc !" },
{ N_("KCalc"), "kcalc" },
{ N_("XCalc"), "xcalc" },
{ N_("Mathematica"), "mathematica" },
{ N_("Math"), "math !" }, /* command-line Mathematica */
{ N_("Free42"), "free42" },
{ N_("X48"), "x48" },
{ NULL, NULL }
};
char *Astronomy[MAX_NR_APPS][2] = {
{ N_("Xplns"), "xplns" },
{ N_("Stellarium"), "stellarium" },
{ NULL, NULL }
};
char *Graphics[MAX_NR_APPS][2] = {
{ N_("GIMP"), "gimp" },
{ N_("Sodipodi"), "sodipodi" },
{ N_("Inkscape"), "inkscape" },
{ N_("KIllustrator"), "killustrator" },
{ N_("Krayon"), "krayon" },
{ N_("KPovModeler"), "kpovmodeler" },
{ N_("XBitmap"), "bitmap" },
{ N_("XPaint"), "xpaint" },
{ N_("XFig"), "xfig" },
{ N_("KPaint"), "kpaint" },
{ N_("Blender"), "blender" },
{ N_("KSnapshot"), "ksnapshot" },
{ N_("GPhoto"), "gphoto" },
{ N_("DigiKam"), "digikam" },
{ N_("GQview"), "gqview" },
{ N_("Geeqie"), "geeqie" },
{ N_("KView"), "kview" },
{ N_("Dia"), "dia" },
{ N_("CompuPic"), "compupic" },
{ N_("Pixie"), "pixie" },
{ N_("ImageMagick Display"), "display" },
{ N_("XV"), "xv" },
{ N_("Eye of GNOME"), "eog" },
{ N_("Quick Image Viewer"), "qiv" },
{ NULL, NULL },
};
char *Multimedia[MAX_NR_APPS][2] = {
{ N_("Audacious"), "audacious" },
{ N_("Kaffeine"), "kaffeine", },
{ N_("Audacity"), "audacity" },
{ N_("Amarok"), "amarok" },
{ N_("XMMS"), "xmms" },
{ N_("K9Copy"), "k9copy" },
{ N_("HandBrake"), "HandBrakeGUI" },
{ N_("OGMRip"), "ogmrip" },
{ N_("DVBcut"), "dvbcut" },
{ N_("AcidRip"), "acidrip" },
{ N_("RipperX"), "ripperX" },
{ N_("Avidemux"), "avidemux2_gtk" },
{ N_("GQmpeg"), "gqmpeg" },
{ N_("SMPlayer"), "smplayer" },
{ N_("Linux MultiMedia Studio"), "lmms" },
{ N_("Freeamp"), "freeamp" },
{ N_("RealPlayer"), "realplay" },
{ N_("Mediathek"), "Mediathek.sh" },
{ N_("KMid"), "kmid" },
{ N_("Kmidi"), "kmidi" },
{ N_("Gtcd"), "gtcd" },
{ N_("Grip"), "grip" },
{ N_("AVIplay"), "aviplay" },
{ N_("Gtv"), "gtv" },
{ N_("VLC"), "vlc" },
{ N_("Sinek"), "sinek" },
{ N_("xine"), "xine" },
{ N_("aKtion"), "aktion" },
{ N_("Gcd"), "gcd" },
{ N_("XawTV"), "xawtv" },
{ N_("XPlayCD"), "xplaycd" },
{ N_("XBMC"), "xbmc" },
{ NULL, NULL}
};
char *Internet[MAX_NR_APPS][2] = {
{ N_("Chromium"), "chromium" },
{ N_("Chromium"), "chromium-browser" },
{ N_("Google Chrome"), "google-chrome" },
{ N_("Mozilla Firefox"), "firefox" },
{ N_("Galeon"), "galeon" },
{ N_("SkipStone"), "skipstone" },
{ N_("Konqueror"), "konqueror" },
{ N_("Dillo"), "dillo" },
{ N_("Epiphany"), "epiphany" },
{ N_("Opera"), "opera" },
{ N_("Midori"), "midori" },
{ N_("Mozilla SeaMonkey"), "seamonkey" },
{ N_("Kazehakase"), "kazehakase" },
{ N_("Links"), "links !" },
{ N_("Lynx"), "lynx !" },
{ N_("W3M"), "w3m !" },
{ NULL, NULL }
};
char *Email[MAX_NR_APPS][2] = {
{ N_("Mozilla Thunderbird"), "thunderbird" },
{ N_("Mutt"), "mutt !" },
{ N_("GNUMail"), "GNUMail" },
{ N_("Claws Mail"), "claws-mail" },
{ N_("Evolution"), "evolution" },
{ N_("Kleopatra"), "kleopatra" },
{ N_("Sylpheed"), "sylpheed" },
{ N_("Spruce"), "spruce" },
{ N_("KMail"), "kmail" },
{ N_("Exmh"), "exmh" },
{ N_("Pine"), "pine !" },
{ N_("ELM"), "elm !" },
{ N_("Alpine"), "alpine !" },
{ NULL, NULL }
};
char *Sound[MAX_NR_APPS][2] = {
{ N_("soundKonverter"), "soundkonverter" },
{ N_("Krecord"), "krecord" },
{ N_("Grecord"), "grecord" },
{ N_("ALSA mixer"), "alsamixer !" },
{ N_("VolWheel"), "volwheel" },
{ N_("Sound configuration"), "sndconfig !" },
{ N_("aumix"), "aumix !" },
{ N_("Gmix"), "gmix" },
{ NULL, NULL }
};
char *Editors[MAX_NR_APPS][2] = {
{ N_("XJed"), "xjed" },
{ N_("Jed"), "jed !" },
{ N_("Emacs"), "emacs" },
{ N_("XEmacs"), "xemacs" },
{ N_("SciTE"), "scite" },
{ N_("Bluefish"), "bluefish" },
{ N_("gVIM"), "gvim" },
{ N_("vi"), "vi !" },
{ N_("VIM"), "vim !" },
{ N_("gedit"), "gedit" },
{ N_("KEdit"), "kedit" },
{ N_("XEdit"), "xedit" },
{ N_("KWrite"), "kwrite" },
{ N_("Kate"), "kate" },
{ N_("Pico"), "pico !" },
{ N_("Nano"), "nano !" },
{ N_("Joe"), "joe !" },
{ NULL, NULL }
};
char *Comics[MAX_NR_APPS][2] = {
{ N_("Omnia data"), "omnia_data" },
{ N_("Comix"), "comix" },
{ N_("QComicBook"), "qcomicbook" },
{ NULL, NULL }
};
char *Viewers[MAX_NR_APPS][2] = {
{ N_("Evince"), "evince" },
{ N_("KGhostView"), "kghostview" },
{ N_("gv"), "gv" },
{ N_("ePDFView"), "epdfview" },
{ N_("GGv"), "ggv" },
{ N_("Xdvi"), "xdvi" },
{ N_("KDVI"), "kdvi" },
{ N_("Xpdf"), "xpdf" },
{ N_("Adobe Reader"), "acroread" },
{ N_("Gless"), "gless" },
{ NULL, NULL }
};
char *Utilities[MAX_NR_APPS][2] = {
{ N_("Google Desktop"), "gdlinux" },
{ N_("K3B"), "k3b" },
{ N_("X-CD-Roast"), "xcdroast" },
{ N_("Nero Linux"), "nero" },
{ N_("Nero Linux Express"), "neroexpress" },
{ N_("gtkfind"), "gtkfind" },
{ N_("gdict"), "gdict" },
{ N_("gpsdrive"), "gpsdrive" },
{ N_("Task Coach"), "taskcoach" },
{ N_("XSnap"), "xsnap" },
{ N_("Screengrab"), "screengrab" },
{ N_("XSane"), "xsane" },
{ N_("wfcmgr"), "wfcmgr" },
{ N_("switch"), "switch" },
{ N_("Cairo Clock"), "cairo-clock" },
{ N_("Conky"), "conky" },
{ N_("GNU Privacy Assistant"), "gpa" },
{ N_("Vidalia (tor)"), "vidalia" },
{ N_("kaddressbook"), "kaddressbook" },
{ N_("kab"), "kab" },
{ N_("Filezilla"), "filezilla" },
{ N_("Bleachbit"), "bleachbit" },
{ N_("Teamviewer"), "teamviewer" },
{ N_("gUVCView"), "guvcview" },
{ N_("LinPopUp"), "linpopup" },
{ N_("Wine Configurator"), "winecfg" },
{ N_("NMap"), "nmapfe" },
{ N_("Hydra"), "xhydra" },
{ N_("XTeddy"), "xteddy" },
{ N_("XTeddy TEST"), "xteddy_test" },
{ N_("VNC Viewer"), "vncviewer" },
{ N_("Java Control Panel"), "ControlPanel" },
{ N_("kfind"), "kfind" },
{ N_("oclock"), "oclock" },
{ N_("rclock"), "rclock" },
{ N_("Isomaster"), "isomaster" },
{ N_("xclock"), "xclock" },
{ N_("HP Systray"), "hp-systray" },
{ N_("kppp"), "kppp" },
{ N_("Xarchiver"), "xarchiver" },
{ NULL, NULL }
};
char *Video[MAX_NR_APPS][2] = {
{ NULL, NULL }
};
char *Chat[MAX_NR_APPS][2] = {
{ N_("Pidgin"), "pidgin" },
{ N_("Skype"), "skype" },
{ N_("Gizmo"), "gizmo" },
{ N_("Gajim"), "gajim" },
{ N_("Kopete"), "kopete" },
{ N_("XChat"), "xchat" },
{ N_("Ekiga"), "Ekiga" },
{ N_("KVIrc"), "kvirc" },
{ N_("BitchX"), "BitchX !" },
{ N_("EPIC"), "epic !" },
{ N_("Linphone"), "linphone" },
{ N_("Mumble"), "mumble" },
{ N_("EPIC4"), "epic4 !" },
{ N_("Irssi"), "irssi !" },
{ N_("TinyIRC"), "tinyirc !" },
{ N_("Ksirc"), "ksirc" },
{ N_("gtalk"), "gtalk" },
{ N_("GnomeICU"), "gnome-icu" },
{ N_("Licq"), "licq" },
{ N_("aMSN"), "amsn" },
{ NULL, NULL }
};
char *P2P[MAX_NR_APPS][2] = {
{ N_("aMule"), "amule" },
{ N_("gFTP"), "gftp" },
{ N_("Smb4K"), "smb4k" },
{ N_("KTorrent"), "ktorrent" },
{ N_("BitTorrent GUI"), "bittorrent-gui" },
{ N_("Transmission GTK"), "transmission-gtk" },
{ N_("ftp"), "ftp !" },
{ N_("Deluge"), "deluge-gtk" },
{ N_("sftp"), "sftp !" },
{ N_("Pavuk"), "pavuk" },
{ N_("gtm"), "gtm !" },
{ N_("Gnut"), "gnut !" },
{ N_("GTK Gnutella"), "gtk-gnutella" },
{ N_("Gnutmeg"), "gnutmeg" },
{ NULL, NULL }
};
char *Games[MAX_NR_APPS][2] = {
{ N_("FlightGear Flight Simulator"), "fgfs" },
{ N_("Tremulous"), "tremulous" },
{ N_("XBoard"), "xboard" },
{ N_("GNOME Chess"), "gnome-chess" },
{ N_("Darkplaces (Quake 1)"), "darkplaces" },
{ N_("QuakeSpasm (Quake 1)"), "quakespasm" },
{ N_("Quake 2"), "quake2" },
{ N_("KM Quake 2 (Quake 2"), "kmquake2" },
{ N_("QMax (Quake 2"), "quake2-qmax" },
{ N_("Quake 3"), "quake3" },
{ N_("Quake 4"), "quake4" },
{ N_("Quake 4 SMP"), "quake4-smp" },
{ N_("Openarena"), "openarena" },
{ N_("Quake 3: Urban Terror 2"), "q3ut2" },
{ N_("Soldier of Fortune"), "sof" },
{ N_("Rune"), "rune" },
{ N_("Doom 3"), "doom3" },
{ N_("Zelda Solarus"), "solarus" },
{ N_("Solarwolf"), "solarwolf" },
{ N_("Pachi"), "pachi" },
{ N_("Tribes 2"), "tribes2" },
{ N_("GNUjump"), "gnujump" },
{ N_("Supertransball 2"), "supertransball2" },
{ N_("Supertux"), "supertux" },
{ N_("Supertux 2"), "supertux2" },
{ N_("Mega Mario"), "megamario" },
{ N_("Frogatto"), "frogatto" },
{ N_("Minecraft"), "minecraft" },
{ N_("Alienarena"), "alienarena" },
{ N_("Nexuiz"), "nexuiz" },
{ N_("Bomberclone"), "bomberclone" },
{ N_("Chromium-BSU"), "chromium-bsu" },
{ N_("Clanbomber"), "clanbomber" },
{ N_("Clanbomber 2"), "clanbomber2" },
{ N_("Defendguin"), "defendguin" },
{ N_("Dosbox"), "dosbox" },
{ N_("Duke Nukem 3D"), "duke3d" },
{ N_("eDuke32"), "eduke32" },
{ N_("Emilia Pinball"), "emilia-pinball" },
{ N_("Extreme-Tuxracer"), "etracer" },
{ N_("Freedroid RPG"), "freedroidRPG" },
{ N_("Frozen Bubble"), "frozen-bubble" },
{ N_("Frozen Bubble Editor"), "frozen-bubble-editor" },
{ N_("GL 117"), "gl-117" },
{ N_("LBreakout 2"), "lbreakout2" },
{ N_("Legends"), "legends" },
{ N_("Lincity-NG"), "lincity-ng" },
{ N_("Neverball"), "neverball" },
{ N_("Neverput"), "neverput" },
{ N_("Openastromenace"), "openastromenace" },
{ N_("Penguin Command"), "penguin-command" },
{ N_("Powermanga"), "powermanga" },
{ N_("Return to Castle Wolfenstein SP"), "rtcwsp" },
{ N_("Return to Castle Wolfenstein MP"), "rtcwmp" },
{ N_("Snes9X"), "snes9x-gtk" },
{ N_("Slune"), "slune" },
{ N_("Torcs"), "torcs" },
{ N_("Speed Dreams"), "speed-dreams" },
{ N_("Trackballs"), "trackballs" },
{ N_("VDrift"), "vdrift" },
{ N_("Warmux"), "warmux" },
{ N_("Warsow"), "warsow" },
{ N_("Wesnoth"), "wesnoth" },
{ N_("World of Padman"), "worldofpadman" },
{ N_("XBlast"), "xblast" },
{ N_("XPenguins"), "xpenguins" },
{ N_("XTux"), "xtux" },
{ N_("The Mana World"), "tmw" },
{ N_("The Mana World"), "mana" },
{ N_("Super Mario Chronicles"), "smc" },
{ N_("Unreal"), "unreal" },
{ N_("Unreal Tournament"), "ut" },
{ N_("Unreal Tournament 2004"), "ut2004" },
{ N_("Xonotic"), "xonotic" },
{ N_("Descent 3"), "descent3" },
{ N_("Myth 2"), "myth2" },
{ N_("Sauerbraten"), "sauerbraten" },
{ N_("Sauerbraten"), "sauerbraten-client" },
{ N_("Sauerbraten"), "sauer_client" },
{ N_("Railroad Tycoon 2"), "rt2" },
{ N_("Heretic 2"), "heretic2" },
{ N_("Kohan"), "kohan" },
{ N_("XQF"), "xqf" },
{ NULL, NULL }
};
char *Office[MAX_NR_APPS][2] = {
{ N_("OpenOffice.org Writer"), "oowriter" },
{ N_("OpenOffice.org Calc"), "oocalc" },
{ N_("OpenOffice.org Draw"), "oodraw" },
{ N_("OpenOffice.org Impress"), "ooimpress" },
{ N_("OpenOffice.org Math"), "oomath" },
{ N_("OpenOffice.org"), "ooffice" },
{ N_("StarOffice Writer"), "swriter" },
{ N_("StarOffice Calc"), "scalc" },
{ N_("StarOffice Draw"), "sdraw" },
{ N_("StarOffice Impress"), "simpress" },
{ N_("StarOffice Math"), "smath" },
{ N_("StarOffice"), "soffice" },
{ N_("LibreOffice Writer"), "lowriter" },
{ N_("LibreOffice Calc"), "localc" },
{ N_("LibreOffice Draw"), "lodraw" },
{ N_("LibreOffice Impress"), "loimpress" },
{ N_("LibreOffice Math"), "lomath" },
{ N_("LibreOffice Base"), "lobase" },
{ N_("LibreOffice Web"), "loweb" },
{ N_("LibreOffice"), "libreoffice" },
{ N_("AbiWord"), "abiword" },
{ N_("KWord"), "kword" },
{ N_("KPresenter"), "kpresenter" },
{ N_("KSpread"), "kspread" },
{ N_("KChart"), "kchart" },
{ N_("KOrganizer"), "Korganizer" },
{ N_("LyX"), "lyx" },
{ N_("Klyx"), "klyx" },
{ N_("GnuCash"), "gnucash" },
{ N_("Gnumeric"), "gnumeric" },
{ N_("GnomeCal"), "gnomecal" },
{ N_("GnomeCard"), "gnomecard" },
{ NULL, NULL }
};
char *Development[MAX_NR_APPS][2] = {
{ N_("gitk"), "gitk" },
{ N_("gitview"), "gitview" },
{ N_("qgit"), "qgit" },
{ N_("git-gui"), "git-gui" },
{ N_("glimmer"), "glimmer" },
{ N_("glade"), "glade" },
{ N_("Geany"), "geany" },
{ N_("Codeblocks"), "codeblocks" },
{ N_("kdevelop"), "kdevelop" },
{ N_("designer"), "designer" },
{ N_("kbabel"), "kbabel" },
{ N_("idle"), "idle" },
{ N_("ghex"), "ghex" },
{ N_("hexedit"), "hexedit !" },
{ N_("memprof"), "memprof" },
{ N_("tclsh"), "tclsh !" },
{ N_("gdb"), "gdb !" },
{ N_("xxgdb"), "xxgdb" },
{ N_("xev"), "xev !" },
{ NULL, NULL }
};
char *System[MAX_NR_APPS][2] = {
{ N_("Iotop"), "iotop -d 4 --only !" },
{ N_("Iostat"), "iostat -p -k 5 !" },
{ N_("keybconf"), "keybconf" },
{ N_("GNOME System Monitor"), "gtop" },
{ N_("top"), "top !" },
{ N_("KDE Process Monitor"), "kpm" },
{ N_("gw"), "gw" },
{ N_("GNOME Control Center"), "gnomecc" },
{ N_("GKrellM"), "gkrellm" },
{ N_("tksysv"), "tksysv" },
{ N_("ksysv"), "ksysv" },
{ N_("GNOME PPP"), "gnome-ppp" },
{ NULL, NULL }
};
char *OpenSUSE[MAX_NR_APPS][2] = {
{ N_("YaST 2"), "yast2" },
{ N_("YaST"), "yast !" },
{ N_("System Settings"), "systemsettings" },
{ N_("UMTSMon"), "umtsmon" },
{ NULL, NULL }
};
char *Mandriva[MAX_NR_APPS][2] = {
{ N_("DrakNetCenter"), "draknetcenter" },
{ N_("RPMDrake"), "rpmdrake" },
{ N_("HardDrake"), "harddrake" },
{ N_("DrakConf"), "drakconf" },
{ N_("MandrakeUpdate"), "MandrakeUpdate" },
{ N_("XDrakRes"), "Xdrakres" },
{ NULL, NULL }
};
char *WindowMaker[MAX_NR_APPS][2] = {
{ N_("Docker"), "docker -wmaker" },
{ N_("Net"), "wmnet -d 100000 -Weth0" },
{ N_("Net Load"), "wmnetload" },
{ N_("Ping"), "wmping" },
{ N_("Ping"), "wmpiki" },
{ N_("Power"), "wmpower" },
{ N_("Audacious"), "wmauda" },
{ N_("Harddisk Monitor"), "wmdiskmon" },
{ N_("Download"), "wmdl" },
{ N_("Dots"), "wmdots" },
{ N_("Matrix"), "wmMatrix" },
{ N_("Fire"), "wmfire" },
{ N_("Net send"), "wmpopup" },
{ N_("Laptop"), "wmlaptop2" },
{ N_("WiFi"), "wmwifi -s" },
{ N_("Interface Info"), "wmifinfo" },
{ N_("Weather"), "wmWeather" },
{ N_("Weather"), "wmWeather+" },
{ N_("Sticky Notes"), "wmstickynotes" },
{ N_("Pinboard"), "wmpinboard" },
{ N_("Mixer"), "wmmixer++ -w" },
{ N_("Mixer"), "wmmixer" },
{ N_("Weather"), "wmWeather -m -s EDDB" },
{ N_("CPU Load"), "wmcpuload" },
{ N_("CPU Freq"), "wmcpufreq" },
{ N_("Memory Load"), "wmmemload" },
{ N_("Memory Free"), "wmmemfree" },
{ N_("Memory Monitor"), "wmmemmon" },
{ N_("Clock Mon"), "wmclockmon" },
{ N_("Network Devices"), "wmnd" },
{ N_("Calendar & Clock"), "wmCalclock -S" },
{ N_("Time"), "wmtime" },
{ N_("Date"), "wmdate" },
{ N_("Time & Date"), "wmclock" },
{ N_("System Monitor"), "wmmon" },
{ N_("System Monitor"), "wmsysmon" },
{ N_("Sensor Monitor"), "wmsorsen" },
{ N_("System Tray"), "wmsystemtray" },
{ N_("System Tray"), "wmsystray" },
{ N_("SMP Monitor"), "wmSMPmon" },
{ N_("Timer"), "wmtimer" },
{ N_("Mounter"), "wmudmount" },
{ N_("Mounter"), "wmvolman" },
{ N_("Uptime"), "wmupmon" },
{ N_("Work Timer"), "wmwork" },
{ N_("Interfaces"), "wmifs" },
{ N_("Button"), "wmbutton" },
{ N_("xmms"), "wmxmms" },
{ N_("Power"), "wmpower" },
{ N_("Magnify"), "wmagnify" },
{ NULL, NULL }
};
char *other_wm[MAX_WMS][2] = {
{ N_("IceWM"), "icewm" },
{ N_("KWin"), "kwin" },
{ N_("twm"), "twm" },
{ N_("Fluxbox"), "fluxbox" },
{ N_("Blackbox"), "blackbox" },
{ N_("Ion"), "ion" },
{ N_("Motif Window Manager"), "mwm" },
{ N_("FVWM"), "fvwm" },
{ N_("FVWM-Crystal"), "fvwm-crystal" },
{ NULL, NULL }
};
WindowMaker-0.95.8/util/po/ 0000775 0001750 0001750 00000000000 13061001366 012436 5 0000000 0000000 WindowMaker-0.95.8/util/po/fr.po 0000664 0001750 0001750 00000054214 12650014300 013326 0000000 0000000 # wmgenmenu French translation
# Copyright (C) 2011 Camille d'Alméras
# This file is distributed under the same license as the Window Maker package.
# Camille d'Alméras , 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: wmgenmenu\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-02-10 00:04+0100\n"
"PO-Revision-Date: 2011-02-05 12:19-0500\n"
"Last-Translator: Camille d'Alméras \n"
"Language-Team: French\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Root -> Applications
#: ../../util/wmgenmenu.c:103
msgid "Applications"
msgstr "Applications"
#. Root -> Applications ->
#: ../../util/wmgenmenu.c:106
msgid "Terminals"
msgstr "Terminaux"
#. always keep terminals the top item
#: ../../util/wmgenmenu.c:107
msgid "Internet"
msgstr "Internet"
#: ../../util/wmgenmenu.c:108
msgid "Email"
msgstr "Courriel"
#: ../../util/wmgenmenu.c:109
msgid "Mathematics"
msgstr "Mathématiques"
#: ../../util/wmgenmenu.c:110
msgid "File Managers"
msgstr "Gestionnaires de fichiers"
#: ../../util/wmgenmenu.c:111
msgid "Graphics"
msgstr "Graphisme"
#: ../../util/wmgenmenu.c:112
msgid "Multimedia"
msgstr "Multimédia"
#: ../../util/wmgenmenu.c:113
msgid "Editors"
msgstr "Éditeurs"
#: ../../util/wmgenmenu.c:114
msgid "Development"
msgstr "Développement"
#: ../../util/wmgenmenu.c:116
msgid "Office"
msgstr "Bureautique"
#: ../../util/wmgenmenu.c:117
msgid "Astronomy"
msgstr "Astronomie"
#: ../../util/wmgenmenu.c:118
msgid "Sound"
msgstr "Son"
#: ../../util/wmgenmenu.c:119
msgid "Comics"
msgstr "Bandes dessinées"
#: ../../util/wmgenmenu.c:120
msgid "Viewers"
msgstr "Visualiseurs"
#: ../../util/wmgenmenu.c:121
msgid "Utilities"
msgstr "Utilitaires"
#: ../../util/wmgenmenu.c:122
msgid "System"
msgstr "Système"
#: ../../util/wmgenmenu.c:123
msgid "Video"
msgstr "Vidéo"
#: ../../util/wmgenmenu.c:124
msgid "Chat and Talk"
msgstr "Conversation"
#: ../../util/wmgenmenu.c:125
msgid "P2P Network"
msgstr "Partage poste à poste"
#: ../../util/wmgenmenu.c:126
msgid "Games"
msgstr "Jeux"
#: ../../util/wmgenmenu.c:134
msgid "Run..."
msgstr "Exécuter..."
#: ../../util/wmgenmenu.c:136
#, c-format
msgid "%A(Run, Type command:)"
msgstr "%A(Exécuter, Tapez une commande:)"
#. Root -> Appearance
#: ../../util/wmgenmenu.c:142
msgid "Appearance"
msgstr "Apparence"
#: ../../util/wmgenmenu.c:146
msgid "Themes"
msgstr "Thèmes"
#: ../../util/wmgenmenu.c:155
msgid "Styles"
msgstr "Styles"
#: ../../util/wmgenmenu.c:164
msgid "Icon Sets"
msgstr "Jeux d'icônes"
#. Root -> Appearance -> Background
#: ../../util/wmgenmenu.c:172
msgid "Background"
msgstr "Fond d'écran"
#. Root -> Appearance -> Background -> Solid
#: ../../util/wmgenmenu.c:175
msgid "Solid"
msgstr "Uni"
#. Root -> Appearance -> Background -> Solid ->
#: ../../util/wmgenmenu.c:187
msgid "Black"
msgstr "Noir"
#: ../../util/wmgenmenu.c:188
msgid "Blue"
msgstr "Bleu turquin"
#: ../../util/wmgenmenu.c:189
msgid "Indigo"
msgstr "Bleu de cobalt"
#: ../../util/wmgenmenu.c:190
msgid "Bluemarine"
msgstr "Bleu marine"
#: ../../util/wmgenmenu.c:191
msgid "Purple"
msgstr "Améthyste foncé"
#: ../../util/wmgenmenu.c:192
msgid "Wheat"
msgstr "Bistre"
#: ../../util/wmgenmenu.c:193
msgid "Dark Gray"
msgstr "Gris de Payne"
#: ../../util/wmgenmenu.c:194
msgid "Wine"
msgstr "Bordeaux"
#. Root -> Appearance -> Background -> Gradient
#: ../../util/wmgenmenu.c:199
msgid "Gradient"
msgstr "Dégradé"
#: ../../util/wmgenmenu.c:213
msgid "Sunset"
msgstr "Coucher de soleil"
#: ../../util/wmgenmenu.c:220
msgid "Sky"
msgstr "Ciel"
#: ../../util/wmgenmenu.c:221
msgid "Blue Shades"
msgstr "Dégradé de bleu turquin"
#: ../../util/wmgenmenu.c:222
msgid "Indigo Shades"
msgstr "Dégradé de bleu de cobalt"
#: ../../util/wmgenmenu.c:223
msgid "Purple Shades"
msgstr "Dégradé d'améthyste foncé"
#: ../../util/wmgenmenu.c:224
msgid "Wheat Shades"
msgstr "Dégradé de bistre"
#: ../../util/wmgenmenu.c:225
msgid "Grey Shades"
msgstr "Dégradé d'anthracite"
#: ../../util/wmgenmenu.c:226
msgid "Wine Shades"
msgstr "Dégradé de bordeaux"
#: ../../util/wmgenmenu.c:232
msgid "Images"
msgstr "Images"
#: ../../util/wmgenmenu.c:243
msgid "Save Theme"
msgstr "Enregistrer le thème"
#: ../../util/wmgenmenu.c:253
msgid "Save IconSet"
msgstr "Enregistrer le jeu d'icônes"
#: ../../util/wmgenmenu.c:264
msgid "Workspaces"
msgstr "Bureaux"
#. Root -> Workspace
#: ../../util/wmgenmenu.c:271
msgid "Workspace"
msgstr "Bureau"
#: ../../util/wmgenmenu.c:273
msgid "Hide Others"
msgstr "Cacher les autres"
#: ../../util/wmgenmenu.c:281
msgid "Show All"
msgstr "Tout montrer"
#: ../../util/wmgenmenu.c:289
msgid "Arrange Icons"
msgstr "Organiser les icônes"
#: ../../util/wmgenmenu.c:297
msgid "Refresh"
msgstr "Actualiser"
#: ../../util/wmgenmenu.c:305
msgid "Save Session"
msgstr "Enregistrer la session"
#: ../../util/wmgenmenu.c:313
msgid "Clear Session"
msgstr "Réinitialiser la session"
#: ../../util/wmgenmenu.c:322
msgid "Configure Window Maker"
msgstr "Configurer Window Maker"
#: ../../util/wmgenmenu.c:331
msgid "Info Panel"
msgstr "Panneau d'information"
#: ../../util/wmgenmenu.c:339
msgid "Restart Window Maker"
msgstr "Redémarrer Window Maker"
#: ../../util/wmgenmenu.c:352
msgid "Lock Screen"
msgstr "Verrouiller l'écran"
#: ../../util/wmgenmenu.c:363
msgid "Exit Window Maker"
msgstr "Quitter Window Maker"
#: ../../util/wmgenmenu.c:458
#, c-format
msgid "Start %s"
msgstr "Lancer %s"
#: ../../util/wmgenmenu.c:468
msgid "Other Window Managers"
msgstr "Autres gestionnaires de fenêtres"
#: ../../util/wmgenmenu.h:9
msgid "xterm"
msgstr ""
#: ../../util/wmgenmenu.h:10
msgid "mrxvt"
msgstr ""
#: ../../util/wmgenmenu.h:11
msgid "Konsole"
msgstr ""
#: ../../util/wmgenmenu.h:16
msgid "Dolphin"
msgstr ""
#: ../../util/wmgenmenu.h:17
msgid "Thunar"
msgstr ""
#: ../../util/wmgenmenu.h:18
msgid "ROX filer"
msgstr ""
#: ../../util/wmgenmenu.h:19
msgid "GWorkspace"
msgstr ""
#: ../../util/wmgenmenu.h:20
msgid "Midnight Commander"
msgstr ""
#: ../../util/wmgenmenu.h:21
msgid "XFTree"
msgstr ""
#: ../../util/wmgenmenu.h:22 ../../util/wmgenmenu.h:118
msgid "Konqueror"
msgstr ""
#: ../../util/wmgenmenu.h:23
msgid "Nautilus"
msgstr ""
#: ../../util/wmgenmenu.h:24
msgid "FSViewer"
msgstr ""
#: ../../util/wmgenmenu.h:25
msgid "Xfe"
msgstr ""
#: ../../util/wmgenmenu.h:30
msgid "Xmaxima"
msgstr ""
#: ../../util/wmgenmenu.h:31
msgid "Maxima"
msgstr ""
#: ../../util/wmgenmenu.h:32
msgid "Maple"
msgstr ""
#: ../../util/wmgenmenu.h:33
msgid "Scilab"
msgstr ""
#: ../../util/wmgenmenu.h:34
msgid "bc"
msgstr ""
#: ../../util/wmgenmenu.h:35
msgid "KCalc"
msgstr ""
#: ../../util/wmgenmenu.h:36
msgid "XCalc"
msgstr ""
#: ../../util/wmgenmenu.h:37
msgid "Mathematica"
msgstr ""
#: ../../util/wmgenmenu.h:38
msgid "Math"
msgstr ""
#. command-line Mathematica
#: ../../util/wmgenmenu.h:39
msgid "Free42"
msgstr ""
#: ../../util/wmgenmenu.h:40
msgid "X48"
msgstr ""
#: ../../util/wmgenmenu.h:45
msgid "Xplns"
msgstr ""
#: ../../util/wmgenmenu.h:46
msgid "Stellarium"
msgstr ""
#: ../../util/wmgenmenu.h:51
msgid "GIMP"
msgstr ""
#: ../../util/wmgenmenu.h:52
msgid "Sodipodi"
msgstr ""
#: ../../util/wmgenmenu.h:53
msgid "Inkscape"
msgstr ""
#: ../../util/wmgenmenu.h:54
msgid "KIllustrator"
msgstr ""
#: ../../util/wmgenmenu.h:55
msgid "Krayon"
msgstr ""
#: ../../util/wmgenmenu.h:56
msgid "KPovModeler"
msgstr ""
#: ../../util/wmgenmenu.h:57
msgid "XBitmap"
msgstr ""
#: ../../util/wmgenmenu.h:58
msgid "XPaint"
msgstr ""
#: ../../util/wmgenmenu.h:59
msgid "XFig"
msgstr ""
#: ../../util/wmgenmenu.h:60
msgid "KPaint"
msgstr ""
#: ../../util/wmgenmenu.h:61
msgid "Blender"
msgstr ""
#: ../../util/wmgenmenu.h:62
msgid "KSnapshot"
msgstr ""
#: ../../util/wmgenmenu.h:63
msgid "GPhoto"
msgstr ""
#: ../../util/wmgenmenu.h:64
msgid "DigiKam"
msgstr ""
#: ../../util/wmgenmenu.h:65
msgid "Dia"
msgstr ""
#: ../../util/wmgenmenu.h:66
msgid "CompuPic"
msgstr ""
#: ../../util/wmgenmenu.h:67
msgid "GQview"
msgstr ""
#: ../../util/wmgenmenu.h:68
msgid "Geeqie"
msgstr ""
#: ../../util/wmgenmenu.h:69
msgid "KView"
msgstr ""
#: ../../util/wmgenmenu.h:70
msgid "Pixie"
msgstr ""
#: ../../util/wmgenmenu.h:71
msgid "ImageMagick Display"
msgstr ""
#: ../../util/wmgenmenu.h:72
msgid "XV"
msgstr ""
#: ../../util/wmgenmenu.h:73
msgid "Eye of GNOME"
msgstr ""
#: ../../util/wmgenmenu.h:74
msgid "Quick Image Viewer"
msgstr ""
#: ../../util/wmgenmenu.h:79
msgid "Audacious"
msgstr ""
#: ../../util/wmgenmenu.h:80 ../../util/wmgenmenu.h:216
msgid "Kaffeine"
msgstr ""
#: ../../util/wmgenmenu.h:81
msgid "Audacity"
msgstr ""
#: ../../util/wmgenmenu.h:82
msgid "Amarok"
msgstr ""
#: ../../util/wmgenmenu.h:83
msgid "XMMS"
msgstr ""
#: ../../util/wmgenmenu.h:84
msgid "K9Copy"
msgstr ""
#: ../../util/wmgenmenu.h:85
msgid "HandBrake"
msgstr ""
#: ../../util/wmgenmenu.h:86
msgid "OGMRip"
msgstr ""
#: ../../util/wmgenmenu.h:87
msgid "DVBcut"
msgstr ""
#: ../../util/wmgenmenu.h:88
msgid "AcidRip"
msgstr ""
#: ../../util/wmgenmenu.h:89
msgid "Avidemux"
msgstr ""
#: ../../util/wmgenmenu.h:90
msgid "GQmpeg"
msgstr ""
#: ../../util/wmgenmenu.h:91
msgid "Freeamp"
msgstr ""
#: ../../util/wmgenmenu.h:92
msgid "RealPlayer"
msgstr ""
#: ../../util/wmgenmenu.h:93
msgid "Mediathek"
msgstr ""
#: ../../util/wmgenmenu.h:94
msgid "KMid"
msgstr ""
#: ../../util/wmgenmenu.h:95
msgid "Kmidi"
msgstr ""
#: ../../util/wmgenmenu.h:96
msgid "Gtcd"
msgstr ""
#: ../../util/wmgenmenu.h:97
msgid "Grip"
msgstr ""
#: ../../util/wmgenmenu.h:98
msgid "AVIplay"
msgstr ""
#: ../../util/wmgenmenu.h:99
msgid "Gtv"
msgstr ""
#: ../../util/wmgenmenu.h:100
msgid "VLC"
msgstr ""
#: ../../util/wmgenmenu.h:101
msgid "Sinek"
msgstr ""
#: ../../util/wmgenmenu.h:102
msgid "xine"
msgstr ""
#: ../../util/wmgenmenu.h:103
msgid "aKtion"
msgstr ""
#: ../../util/wmgenmenu.h:104
msgid "Gcd"
msgstr ""
#: ../../util/wmgenmenu.h:105
msgid "XawTV"
msgstr ""
#: ../../util/wmgenmenu.h:106
msgid "X-CD-Roast"
msgstr ""
#: ../../util/wmgenmenu.h:107
msgid "XPlayCD"
msgstr ""
#: ../../util/wmgenmenu.h:112 ../../util/wmgenmenu.h:113
msgid "Chromium"
msgstr ""
#: ../../util/wmgenmenu.h:114
msgid "Google Chrome"
msgstr ""
#: ../../util/wmgenmenu.h:115
msgid "Mozilla Firefox"
msgstr ""
#: ../../util/wmgenmenu.h:116
msgid "Galeon"
msgstr ""
#: ../../util/wmgenmenu.h:117
msgid "SkipStone"
msgstr ""
#: ../../util/wmgenmenu.h:119
msgid "Dillo"
msgstr ""
#: ../../util/wmgenmenu.h:120
msgid "Epiphany"
msgstr ""
#: ../../util/wmgenmenu.h:121
msgid "Opera"
msgstr ""
#: ../../util/wmgenmenu.h:122
msgid "Midori"
msgstr ""
#: ../../util/wmgenmenu.h:123
msgid "Mozilla SeaMonkey"
msgstr ""
#: ../../util/wmgenmenu.h:124
msgid "Kazehakase"
msgstr ""
#: ../../util/wmgenmenu.h:125
msgid "Links"
msgstr ""
#: ../../util/wmgenmenu.h:126
msgid "Lynx"
msgstr ""
#: ../../util/wmgenmenu.h:127
msgid "W3M"
msgstr ""
#: ../../util/wmgenmenu.h:132
msgid "Mozilla Thunderbird"
msgstr ""
#: ../../util/wmgenmenu.h:133
msgid "Mutt"
msgstr ""
#: ../../util/wmgenmenu.h:134
msgid "GNUMail"
msgstr ""
#: ../../util/wmgenmenu.h:135
msgid "Evolution"
msgstr ""
#: ../../util/wmgenmenu.h:136
msgid "Kleopatra"
msgstr ""
#: ../../util/wmgenmenu.h:137
msgid "Sylpheed"
msgstr ""
#: ../../util/wmgenmenu.h:138
msgid "Spruce"
msgstr ""
#: ../../util/wmgenmenu.h:139
msgid "KMail"
msgstr ""
#: ../../util/wmgenmenu.h:140
msgid "Exmh"
msgstr ""
#: ../../util/wmgenmenu.h:141
msgid "Pine"
msgstr ""
#: ../../util/wmgenmenu.h:142
msgid "ELM"
msgstr ""
#: ../../util/wmgenmenu.h:143
msgid "Alpine"
msgstr ""
#: ../../util/wmgenmenu.h:148
msgid "soundKonverter"
msgstr ""
#: ../../util/wmgenmenu.h:149
msgid "Krecord"
msgstr ""
#: ../../util/wmgenmenu.h:150
msgid "Grecord"
msgstr ""
#: ../../util/wmgenmenu.h:151
msgid "ALSA mixer"
msgstr ""
#: ../../util/wmgenmenu.h:152
msgid "Sound configuration"
msgstr ""
#: ../../util/wmgenmenu.h:153
msgid "aumix"
msgstr ""
#: ../../util/wmgenmenu.h:154
msgid "Gmix"
msgstr ""
#: ../../util/wmgenmenu.h:159
msgid "XJed"
msgstr ""
#: ../../util/wmgenmenu.h:160
msgid "Jed"
msgstr ""
#: ../../util/wmgenmenu.h:161
msgid "Emacs"
msgstr ""
#: ../../util/wmgenmenu.h:162
msgid "XEmacs"
msgstr ""
#: ../../util/wmgenmenu.h:163
msgid "gVIM"
msgstr ""
#: ../../util/wmgenmenu.h:164
msgid "vi"
msgstr ""
#: ../../util/wmgenmenu.h:165
msgid "VIM"
msgstr ""
#: ../../util/wmgenmenu.h:166
msgid "gedit"
msgstr ""
#: ../../util/wmgenmenu.h:167
msgid "KEdit"
msgstr ""
#: ../../util/wmgenmenu.h:168
msgid "XEdit"
msgstr ""
#: ../../util/wmgenmenu.h:169
msgid "KWrite"
msgstr ""
#: ../../util/wmgenmenu.h:170
msgid "Kate"
msgstr ""
#: ../../util/wmgenmenu.h:171
msgid "Pico"
msgstr ""
#: ../../util/wmgenmenu.h:172
msgid "Nano"
msgstr ""
#: ../../util/wmgenmenu.h:173
msgid "Joe"
msgstr ""
#: ../../util/wmgenmenu.h:178
msgid "Omnia data"
msgstr ""
#: ../../util/wmgenmenu.h:179
msgid "Comix"
msgstr ""
#: ../../util/wmgenmenu.h:180
msgid "QComicBook"
msgstr ""
#: ../../util/wmgenmenu.h:185
msgid "Evince"
msgstr ""
#: ../../util/wmgenmenu.h:186
msgid "KGhostView"
msgstr ""
#: ../../util/wmgenmenu.h:187
msgid "gv"
msgstr ""
#: ../../util/wmgenmenu.h:188
msgid "GGv"
msgstr ""
#: ../../util/wmgenmenu.h:189
msgid "Xdvi"
msgstr ""
#: ../../util/wmgenmenu.h:190
msgid "KDVI"
msgstr ""
#: ../../util/wmgenmenu.h:191
msgid "Xpdf"
msgstr ""
#: ../../util/wmgenmenu.h:192
msgid "Adobe Reader"
msgstr ""
#: ../../util/wmgenmenu.h:193
msgid "Gless"
msgstr ""
#: ../../util/wmgenmenu.h:198
msgid "Google Desktop"
msgstr ""
#: ../../util/wmgenmenu.h:199
msgid "K3B"
msgstr ""
#: ../../util/wmgenmenu.h:200
msgid "gtkfind"
msgstr ""
#: ../../util/wmgenmenu.h:201
msgid "gdict"
msgstr ""
#: ../../util/wmgenmenu.h:202
msgid "gpsdrive"
msgstr ""
#: ../../util/wmgenmenu.h:203
msgid "wfcmgr"
msgstr ""
#: ../../util/wmgenmenu.h:204
msgid "switch"
msgstr ""
#: ../../util/wmgenmenu.h:205
msgid "kaddressbook"
msgstr ""
#: ../../util/wmgenmenu.h:206
msgid "kab"
msgstr ""
#: ../../util/wmgenmenu.h:207
msgid "kfind"
msgstr ""
#: ../../util/wmgenmenu.h:208
msgid "oclock"
msgstr ""
#: ../../util/wmgenmenu.h:209
msgid "rclock"
msgstr ""
#: ../../util/wmgenmenu.h:210
msgid "xclock"
msgstr ""
#: ../../util/wmgenmenu.h:211
msgid "kppp"
msgstr ""
#: ../../util/wmgenmenu.h:217
msgid "Ekiga"
msgstr ""
#: ../../util/wmgenmenu.h:222
msgid "Pidgin"
msgstr ""
#: ../../util/wmgenmenu.h:223
msgid "Skype"
msgstr ""
#: ../../util/wmgenmenu.h:224
msgid "Gizmo"
msgstr ""
#: ../../util/wmgenmenu.h:225
msgid "Kopete"
msgstr ""
#: ../../util/wmgenmenu.h:226
msgid "XChat"
msgstr ""
#: ../../util/wmgenmenu.h:227
msgid "KVIrc"
msgstr ""
#: ../../util/wmgenmenu.h:228
msgid "BitchX"
msgstr ""
#: ../../util/wmgenmenu.h:229
msgid "EPIC"
msgstr ""
#: ../../util/wmgenmenu.h:230
msgid "EPIC4"
msgstr ""
#: ../../util/wmgenmenu.h:231
msgid "Irssi"
msgstr ""
#: ../../util/wmgenmenu.h:232
msgid "TinyIRC"
msgstr ""
#: ../../util/wmgenmenu.h:233
msgid "Ksirc"
msgstr ""
#: ../../util/wmgenmenu.h:234
msgid "gtalk"
msgstr ""
#: ../../util/wmgenmenu.h:235
msgid "GnomeICU"
msgstr ""
#: ../../util/wmgenmenu.h:236
msgid "Licq"
msgstr ""
#: ../../util/wmgenmenu.h:237
msgid "aMSN"
msgstr ""
#: ../../util/wmgenmenu.h:242
msgid "aMule"
msgstr ""
#: ../../util/wmgenmenu.h:243
msgid "gFTP"
msgstr ""
#: ../../util/wmgenmenu.h:244
msgid "Smb4K"
msgstr ""
#: ../../util/wmgenmenu.h:245
msgid "KTorrent"
msgstr ""
#: ../../util/wmgenmenu.h:246
msgid "BitTorrent GUI"
msgstr ""
#: ../../util/wmgenmenu.h:247
msgid "ftp"
msgstr ""
#: ../../util/wmgenmenu.h:248
msgid "sftp"
msgstr ""
#: ../../util/wmgenmenu.h:249
msgid "Pavuk"
msgstr ""
#: ../../util/wmgenmenu.h:250
msgid "gtm"
msgstr ""
#: ../../util/wmgenmenu.h:251
msgid "Gnut"
msgstr ""
#: ../../util/wmgenmenu.h:252
msgid "GTK Gnutella"
msgstr ""
#: ../../util/wmgenmenu.h:253
msgid "Gnutmeg"
msgstr ""
#: ../../util/wmgenmenu.h:258
msgid "FlightGear Flight Simulator"
msgstr ""
#: ../../util/wmgenmenu.h:259
msgid "Tremulous"
msgstr ""
#: ../../util/wmgenmenu.h:260
msgid "XBoard"
msgstr ""
#: ../../util/wmgenmenu.h:261
msgid "GNOME Chess"
msgstr ""
#: ../../util/wmgenmenu.h:262
msgid "Quake 2"
msgstr ""
#: ../../util/wmgenmenu.h:263
msgid "Quake 3"
msgstr ""
#: ../../util/wmgenmenu.h:264
msgid "Quake 3: Urban Terror 2"
msgstr ""
#: ../../util/wmgenmenu.h:265
msgid "Soldier of Fortune"
msgstr ""
#: ../../util/wmgenmenu.h:266
msgid "Rune"
msgstr ""
#: ../../util/wmgenmenu.h:267
msgid "Tribes 2"
msgstr ""
#: ../../util/wmgenmenu.h:268
msgid "Unreal Tournament"
msgstr ""
#: ../../util/wmgenmenu.h:269
msgid "Descent 3"
msgstr ""
#: ../../util/wmgenmenu.h:270
msgid "Myth 2"
msgstr ""
#: ../../util/wmgenmenu.h:271 ../../util/wmgenmenu.h:272
msgid "Sauerbraten"
msgstr ""
#: ../../util/wmgenmenu.h:273
msgid "Railroad Tycoon 2"
msgstr ""
#: ../../util/wmgenmenu.h:274
msgid "Heretic 2"
msgstr ""
#: ../../util/wmgenmenu.h:275
msgid "Kohan"
msgstr ""
#: ../../util/wmgenmenu.h:276
msgid "XQF"
msgstr ""
#: ../../util/wmgenmenu.h:281
msgid "OpenOffice.org Writer"
msgstr ""
#: ../../util/wmgenmenu.h:282
msgid "OpenOffice.org Calc"
msgstr ""
#: ../../util/wmgenmenu.h:283
msgid "OpenOffice.org Draw"
msgstr ""
#: ../../util/wmgenmenu.h:284
msgid "OpenOffice.org Impress"
msgstr ""
#: ../../util/wmgenmenu.h:285
msgid "OpenOffice.org Math"
msgstr ""
#: ../../util/wmgenmenu.h:286
msgid "OpenOffice.org"
msgstr ""
#: ../../util/wmgenmenu.h:287
msgid "StarOffice Writer"
msgstr ""
#: ../../util/wmgenmenu.h:288
msgid "StarOffice Calc"
msgstr ""
#: ../../util/wmgenmenu.h:289
msgid "StarOffice Draw"
msgstr ""
#: ../../util/wmgenmenu.h:290
msgid "StarOffice Impress"
msgstr ""
#: ../../util/wmgenmenu.h:291
msgid "StarOffice Math"
msgstr ""
#: ../../util/wmgenmenu.h:292
msgid "StarOffice"
msgstr ""
#: ../../util/wmgenmenu.h:293
msgid "AbiWord"
msgstr ""
#: ../../util/wmgenmenu.h:294
msgid "KWord"
msgstr ""
#: ../../util/wmgenmenu.h:295
msgid "KPresenter"
msgstr ""
#: ../../util/wmgenmenu.h:296
msgid "KSpread"
msgstr ""
#: ../../util/wmgenmenu.h:297
msgid "KChart"
msgstr ""
#: ../../util/wmgenmenu.h:298
msgid "KOrganizer"
msgstr ""
#: ../../util/wmgenmenu.h:299
msgid "LyX"
msgstr ""
#: ../../util/wmgenmenu.h:300
msgid "Klyx"
msgstr ""
#: ../../util/wmgenmenu.h:301
msgid "GnuCash"
msgstr ""
#: ../../util/wmgenmenu.h:302
msgid "Gnumeric"
msgstr ""
#: ../../util/wmgenmenu.h:303
msgid "GnomeCal"
msgstr ""
#: ../../util/wmgenmenu.h:304
msgid "GnomeCard"
msgstr ""
#: ../../util/wmgenmenu.h:309
msgid "gitk"
msgstr ""
#: ../../util/wmgenmenu.h:310
msgid "gitview"
msgstr ""
#: ../../util/wmgenmenu.h:311
msgid "qgit"
msgstr ""
#: ../../util/wmgenmenu.h:312
msgid "git-gui"
msgstr ""
#: ../../util/wmgenmenu.h:313
msgid "glimmer"
msgstr ""
#: ../../util/wmgenmenu.h:314
msgid "glade"
msgstr ""
#: ../../util/wmgenmenu.h:315
msgid "kdevelop"
msgstr ""
#: ../../util/wmgenmenu.h:316
msgid "designer"
msgstr ""
#: ../../util/wmgenmenu.h:317
msgid "kbabel"
msgstr ""
#: ../../util/wmgenmenu.h:318
msgid "idle"
msgstr ""
#: ../../util/wmgenmenu.h:319
msgid "ghex"
msgstr ""
#: ../../util/wmgenmenu.h:320
msgid "hexedit"
msgstr ""
#: ../../util/wmgenmenu.h:321
msgid "memprof"
msgstr ""
#: ../../util/wmgenmenu.h:322
msgid "tclsh"
msgstr ""
#: ../../util/wmgenmenu.h:323
msgid "gdb"
msgstr ""
#: ../../util/wmgenmenu.h:324
msgid "xxgdb"
msgstr ""
#: ../../util/wmgenmenu.h:325
msgid "xev"
msgstr ""
#: ../../util/wmgenmenu.h:330
msgid "Iotop"
msgstr ""
#: ../../util/wmgenmenu.h:331
msgid "Iostat"
msgstr ""
#: ../../util/wmgenmenu.h:332
msgid "keybconf"
msgstr ""
#: ../../util/wmgenmenu.h:333
msgid "GNOME System Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:334
msgid "top"
msgstr ""
#: ../../util/wmgenmenu.h:335
msgid "KDE Process Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:336
msgid "gw"
msgstr ""
#: ../../util/wmgenmenu.h:337
msgid "GNOME Control Center"
msgstr ""
#: ../../util/wmgenmenu.h:338
msgid "GKrellM"
msgstr ""
#: ../../util/wmgenmenu.h:339
msgid "tksysv"
msgstr ""
#: ../../util/wmgenmenu.h:340
msgid "ksysv"
msgstr ""
#: ../../util/wmgenmenu.h:341
msgid "GNOME PPP"
msgstr ""
#: ../../util/wmgenmenu.h:346
msgid "YaST 2"
msgstr ""
#: ../../util/wmgenmenu.h:347
msgid "YaST"
msgstr ""
#: ../../util/wmgenmenu.h:348
msgid "System Settings"
msgstr ""
#: ../../util/wmgenmenu.h:349
msgid "UMTSMon"
msgstr ""
#: ../../util/wmgenmenu.h:354
msgid "DrakNetCenter"
msgstr ""
#: ../../util/wmgenmenu.h:355
msgid "RPMDrake"
msgstr ""
#: ../../util/wmgenmenu.h:356
msgid "HardDrake"
msgstr ""
#: ../../util/wmgenmenu.h:357
msgid "DrakConf"
msgstr ""
#: ../../util/wmgenmenu.h:358
msgid "MandrakeUpdate"
msgstr ""
#: ../../util/wmgenmenu.h:359
msgid "XDrakRes"
msgstr ""
#: ../../util/wmgenmenu.h:364
msgid "Docker"
msgstr ""
#: ../../util/wmgenmenu.h:365
msgid "Net"
msgstr ""
#: ../../util/wmgenmenu.h:366 ../../util/wmgenmenu.h:387
msgid "Power"
msgstr ""
#: ../../util/wmgenmenu.h:367
msgid "Laptop"
msgstr ""
#: ../../util/wmgenmenu.h:368
msgid "WiFi"
msgstr ""
#: ../../util/wmgenmenu.h:369
msgid "Interface Info"
msgstr ""
#: ../../util/wmgenmenu.h:370 ../../util/wmgenmenu.h:373
msgid "Weather"
msgstr ""
#: ../../util/wmgenmenu.h:371
msgid "Sticky Notes"
msgstr ""
#: ../../util/wmgenmenu.h:372
msgid "Mixer"
msgstr ""
#: ../../util/wmgenmenu.h:374
msgid "CPU Load"
msgstr ""
#: ../../util/wmgenmenu.h:375
msgid "CPU Freq"
msgstr ""
#: ../../util/wmgenmenu.h:376
msgid "Clock Mon"
msgstr ""
#: ../../util/wmgenmenu.h:377
msgid "Network Devices"
msgstr ""
#: ../../util/wmgenmenu.h:378
msgid "Calendar & Clock"
msgstr ""
#: ../../util/wmgenmenu.h:379
msgid "Time"
msgstr ""
#: ../../util/wmgenmenu.h:380
msgid "Date"
msgstr ""
#: ../../util/wmgenmenu.h:381 ../../util/wmgenmenu.h:382
msgid "System Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:383
msgid "SMP Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:384
msgid "Interfaces"
msgstr ""
#: ../../util/wmgenmenu.h:385
msgid "Button"
msgstr ""
#: ../../util/wmgenmenu.h:386
msgid "xmms"
msgstr ""
#: ../../util/wmgenmenu.h:388
msgid "Magnify"
msgstr ""
#: ../../util/wmgenmenu.h:393
msgid "IceWM"
msgstr ""
#: ../../util/wmgenmenu.h:394
msgid "KWin"
msgstr ""
#: ../../util/wmgenmenu.h:395
msgid "twm"
msgstr ""
#: ../../util/wmgenmenu.h:396
msgid "Fluxbox"
msgstr ""
#: ../../util/wmgenmenu.h:397
msgid "Blackbox"
msgstr ""
#: ../../util/wmgenmenu.h:398
msgid "Ion"
msgstr ""
#: ../../util/wmgenmenu.h:399
msgid "Motif Window Manager"
msgstr ""
#: ../../util/wmgenmenu.h:400
msgid "FVWM"
msgstr ""
WindowMaker-0.95.8/util/po/README 0000664 0001750 0001750 00000000335 12650014300 013232 0000000 0000000 File Language Note Current Maintainer
------------------------------------------------------------------------------
nl.po Dutch Alwin
fy.po Frisian Alwin
Notes
-----
WindowMaker-0.95.8/util/po/es.po 0000664 0001750 0001750 00000054145 12650014300 013331 0000000 0000000 # wmgenmenu Spanish translation
# Copyright (C) 2011 Camille d'Alméras
# This file is distributed under the same license as the Window Maker package.
# Camille d'Alméras , 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: wmgenmenu\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-02-10 00:04+0100\n"
"PO-Revision-Date: 2011-02-05 12:19-0500\n"
"Last-Translator: Camille d'Alméras \n"
"Language-Team: Spanish\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Root -> Applications
#: ../../util/wmgenmenu.c:103
msgid "Applications"
msgstr "Aplicaciones"
#. Root -> Applications ->
#: ../../util/wmgenmenu.c:106
msgid "Terminals"
msgstr "Terminales"
#. always keep terminals the top item
#: ../../util/wmgenmenu.c:107
msgid "Internet"
msgstr "Internet"
#: ../../util/wmgenmenu.c:108
msgid "Email"
msgstr "Correo electrónico"
#: ../../util/wmgenmenu.c:109
msgid "Mathematics"
msgstr "Matemáticas"
#: ../../util/wmgenmenu.c:110
msgid "File Managers"
msgstr "Gestores de archivos"
#: ../../util/wmgenmenu.c:111
msgid "Graphics"
msgstr "Gráficos"
#: ../../util/wmgenmenu.c:112
msgid "Multimedia"
msgstr "Multimedia"
#: ../../util/wmgenmenu.c:113
msgid "Editors"
msgstr "Editores"
#: ../../util/wmgenmenu.c:114
msgid "Development"
msgstr "Desarrollo"
#: ../../util/wmgenmenu.c:116
msgid "Office"
msgstr "Ofimática"
#: ../../util/wmgenmenu.c:117
msgid "Astronomy"
msgstr "Astronomía"
#: ../../util/wmgenmenu.c:118
msgid "Sound"
msgstr "Sonido"
#: ../../util/wmgenmenu.c:119
msgid "Comics"
msgstr "Tiras cómicas"
#: ../../util/wmgenmenu.c:120
msgid "Viewers"
msgstr "Visualizadores"
#: ../../util/wmgenmenu.c:121
msgid "Utilities"
msgstr "Utilidades"
#: ../../util/wmgenmenu.c:122
msgid "System"
msgstr "Sistema"
#: ../../util/wmgenmenu.c:123
msgid "Video"
msgstr "Video"
#: ../../util/wmgenmenu.c:124
msgid "Chat and Talk"
msgstr "Conversación"
#: ../../util/wmgenmenu.c:125
msgid "P2P Network"
msgstr "Redes P2P"
#: ../../util/wmgenmenu.c:126
msgid "Games"
msgstr "Juegos"
#: ../../util/wmgenmenu.c:134
msgid "Run..."
msgstr "Ejecutar..."
#: ../../util/wmgenmenu.c:136
#, c-format
msgid "%A(Run, Type command:)"
msgstr "%A(Ejecutar, Ingrese un comando:)"
#. Root -> Appearance
#: ../../util/wmgenmenu.c:142
msgid "Appearance"
msgstr "Apariencia"
#: ../../util/wmgenmenu.c:146
msgid "Themes"
msgstr "Temas"
#: ../../util/wmgenmenu.c:155
msgid "Styles"
msgstr "Estilos"
#: ../../util/wmgenmenu.c:164
msgid "Icon Sets"
msgstr "Conjuntos de íconos"
#. Root -> Appearance -> Background
#: ../../util/wmgenmenu.c:172
msgid "Background"
msgstr "Fondo de pantalla"
#. Root -> Appearance -> Background -> Solid
#: ../../util/wmgenmenu.c:175
msgid "Solid"
msgstr "Plano"
#. Root -> Appearance -> Background -> Solid ->
#: ../../util/wmgenmenu.c:187
msgid "Black"
msgstr "Negro"
#: ../../util/wmgenmenu.c:188
msgid "Blue"
msgstr "Amatista oscuro"
#: ../../util/wmgenmenu.c:189
msgid "Indigo"
msgstr "Añil"
#: ../../util/wmgenmenu.c:190
msgid "Bluemarine"
msgstr "Turquí"
#: ../../util/wmgenmenu.c:191
msgid "Purple"
msgstr "Púrpura"
#: ../../util/wmgenmenu.c:192
msgid "Wheat"
msgstr "Pardo"
#: ../../util/wmgenmenu.c:193
msgid "Dark Gray"
msgstr "Gris de Payne"
#: ../../util/wmgenmenu.c:194
msgid "Wine"
msgstr "Vino tinto"
#. Root -> Appearance -> Background -> Gradient
#: ../../util/wmgenmenu.c:199
msgid "Gradient"
msgstr "Degradado"
#: ../../util/wmgenmenu.c:213
msgid "Sunset"
msgstr "Puesta del sol"
#: ../../util/wmgenmenu.c:220
msgid "Sky"
msgstr "Cielo"
#: ../../util/wmgenmenu.c:221
msgid "Blue Shades"
msgstr "Degradado de amatista oscuro"
#: ../../util/wmgenmenu.c:222
msgid "Indigo Shades"
msgstr "Degradado de añil"
#: ../../util/wmgenmenu.c:223
msgid "Purple Shades"
msgstr "Degradado de púrpura"
#: ../../util/wmgenmenu.c:224
msgid "Wheat Shades"
msgstr "Degradado de pardo"
#: ../../util/wmgenmenu.c:225
msgid "Grey Shades"
msgstr "Degradado de gris de Payne"
#: ../../util/wmgenmenu.c:226
msgid "Wine Shades"
msgstr "Degradado de vino tinto"
#: ../../util/wmgenmenu.c:232
msgid "Images"
msgstr "Imágenes"
#: ../../util/wmgenmenu.c:243
msgid "Save Theme"
msgstr "Guardar el tema"
#: ../../util/wmgenmenu.c:253
msgid "Save IconSet"
msgstr "Guardar el conjunto de íconos"
#: ../../util/wmgenmenu.c:264
msgid "Workspaces"
msgstr "Escritorios"
#. Root -> Workspace
#: ../../util/wmgenmenu.c:271
msgid "Workspace"
msgstr "Escritorio"
#: ../../util/wmgenmenu.c:273
msgid "Hide Others"
msgstr "Ocultar los demás"
#: ../../util/wmgenmenu.c:281
msgid "Show All"
msgstr "Mostrar todo"
#: ../../util/wmgenmenu.c:289
msgid "Arrange Icons"
msgstr "Ordenar los íconos"
#: ../../util/wmgenmenu.c:297
msgid "Refresh"
msgstr "Actualizar"
#: ../../util/wmgenmenu.c:305
msgid "Save Session"
msgstr "Guardar la sesión"
#: ../../util/wmgenmenu.c:313
msgid "Clear Session"
msgstr "Reiniciar la sesión"
#: ../../util/wmgenmenu.c:322
msgid "Configure Window Maker"
msgstr "Configurar Window Maker"
#: ../../util/wmgenmenu.c:331
msgid "Info Panel"
msgstr "Panel de información"
#: ../../util/wmgenmenu.c:339
msgid "Restart Window Maker"
msgstr "Reiniciar Window Maker"
#: ../../util/wmgenmenu.c:352
msgid "Lock Screen"
msgstr "Bloquear la pantalla"
#: ../../util/wmgenmenu.c:363
msgid "Exit Window Maker"
msgstr "Salir de Window Maker"
#: ../../util/wmgenmenu.c:458
#, c-format
msgid "Start %s"
msgstr "Lanzar %s"
#: ../../util/wmgenmenu.c:468
msgid "Other Window Managers"
msgstr "Otros gestores de ventanas"
#: ../../util/wmgenmenu.h:9
msgid "xterm"
msgstr ""
#: ../../util/wmgenmenu.h:10
msgid "mrxvt"
msgstr ""
#: ../../util/wmgenmenu.h:11
msgid "Konsole"
msgstr ""
#: ../../util/wmgenmenu.h:16
msgid "Dolphin"
msgstr ""
#: ../../util/wmgenmenu.h:17
msgid "Thunar"
msgstr ""
#: ../../util/wmgenmenu.h:18
msgid "ROX filer"
msgstr ""
#: ../../util/wmgenmenu.h:19
msgid "GWorkspace"
msgstr ""
#: ../../util/wmgenmenu.h:20
msgid "Midnight Commander"
msgstr ""
#: ../../util/wmgenmenu.h:21
msgid "XFTree"
msgstr ""
#: ../../util/wmgenmenu.h:22 ../../util/wmgenmenu.h:118
msgid "Konqueror"
msgstr ""
#: ../../util/wmgenmenu.h:23
msgid "Nautilus"
msgstr ""
#: ../../util/wmgenmenu.h:24
msgid "FSViewer"
msgstr ""
#: ../../util/wmgenmenu.h:25
msgid "Xfe"
msgstr ""
#: ../../util/wmgenmenu.h:30
msgid "Xmaxima"
msgstr ""
#: ../../util/wmgenmenu.h:31
msgid "Maxima"
msgstr ""
#: ../../util/wmgenmenu.h:32
msgid "Maple"
msgstr ""
#: ../../util/wmgenmenu.h:33
msgid "Scilab"
msgstr ""
#: ../../util/wmgenmenu.h:34
msgid "bc"
msgstr ""
#: ../../util/wmgenmenu.h:35
msgid "KCalc"
msgstr ""
#: ../../util/wmgenmenu.h:36
msgid "XCalc"
msgstr ""
#: ../../util/wmgenmenu.h:37
msgid "Mathematica"
msgstr ""
#: ../../util/wmgenmenu.h:38
msgid "Math"
msgstr ""
#. command-line Mathematica
#: ../../util/wmgenmenu.h:39
msgid "Free42"
msgstr ""
#: ../../util/wmgenmenu.h:40
msgid "X48"
msgstr ""
#: ../../util/wmgenmenu.h:45
msgid "Xplns"
msgstr ""
#: ../../util/wmgenmenu.h:46
msgid "Stellarium"
msgstr ""
#: ../../util/wmgenmenu.h:51
msgid "GIMP"
msgstr ""
#: ../../util/wmgenmenu.h:52
msgid "Sodipodi"
msgstr ""
#: ../../util/wmgenmenu.h:53
msgid "Inkscape"
msgstr ""
#: ../../util/wmgenmenu.h:54
msgid "KIllustrator"
msgstr ""
#: ../../util/wmgenmenu.h:55
msgid "Krayon"
msgstr ""
#: ../../util/wmgenmenu.h:56
msgid "KPovModeler"
msgstr ""
#: ../../util/wmgenmenu.h:57
msgid "XBitmap"
msgstr ""
#: ../../util/wmgenmenu.h:58
msgid "XPaint"
msgstr ""
#: ../../util/wmgenmenu.h:59
msgid "XFig"
msgstr ""
#: ../../util/wmgenmenu.h:60
msgid "KPaint"
msgstr ""
#: ../../util/wmgenmenu.h:61
msgid "Blender"
msgstr ""
#: ../../util/wmgenmenu.h:62
msgid "KSnapshot"
msgstr ""
#: ../../util/wmgenmenu.h:63
msgid "GPhoto"
msgstr ""
#: ../../util/wmgenmenu.h:64
msgid "DigiKam"
msgstr ""
#: ../../util/wmgenmenu.h:65
msgid "Dia"
msgstr ""
#: ../../util/wmgenmenu.h:66
msgid "CompuPic"
msgstr ""
#: ../../util/wmgenmenu.h:67
msgid "GQview"
msgstr ""
#: ../../util/wmgenmenu.h:68
msgid "Geeqie"
msgstr ""
#: ../../util/wmgenmenu.h:69
msgid "KView"
msgstr ""
#: ../../util/wmgenmenu.h:70
msgid "Pixie"
msgstr ""
#: ../../util/wmgenmenu.h:71
msgid "ImageMagick Display"
msgstr ""
#: ../../util/wmgenmenu.h:72
msgid "XV"
msgstr ""
#: ../../util/wmgenmenu.h:73
msgid "Eye of GNOME"
msgstr ""
#: ../../util/wmgenmenu.h:74
msgid "Quick Image Viewer"
msgstr ""
#: ../../util/wmgenmenu.h:79
msgid "Audacious"
msgstr ""
#: ../../util/wmgenmenu.h:80 ../../util/wmgenmenu.h:216
msgid "Kaffeine"
msgstr ""
#: ../../util/wmgenmenu.h:81
msgid "Audacity"
msgstr ""
#: ../../util/wmgenmenu.h:82
msgid "Amarok"
msgstr ""
#: ../../util/wmgenmenu.h:83
msgid "XMMS"
msgstr ""
#: ../../util/wmgenmenu.h:84
msgid "K9Copy"
msgstr ""
#: ../../util/wmgenmenu.h:85
msgid "HandBrake"
msgstr ""
#: ../../util/wmgenmenu.h:86
msgid "OGMRip"
msgstr ""
#: ../../util/wmgenmenu.h:87
msgid "DVBcut"
msgstr ""
#: ../../util/wmgenmenu.h:88
msgid "AcidRip"
msgstr ""
#: ../../util/wmgenmenu.h:89
msgid "Avidemux"
msgstr ""
#: ../../util/wmgenmenu.h:90
msgid "GQmpeg"
msgstr ""
#: ../../util/wmgenmenu.h:91
msgid "Freeamp"
msgstr ""
#: ../../util/wmgenmenu.h:92
msgid "RealPlayer"
msgstr ""
#: ../../util/wmgenmenu.h:93
msgid "Mediathek"
msgstr ""
#: ../../util/wmgenmenu.h:94
msgid "KMid"
msgstr ""
#: ../../util/wmgenmenu.h:95
msgid "Kmidi"
msgstr ""
#: ../../util/wmgenmenu.h:96
msgid "Gtcd"
msgstr ""
#: ../../util/wmgenmenu.h:97
msgid "Grip"
msgstr ""
#: ../../util/wmgenmenu.h:98
msgid "AVIplay"
msgstr ""
#: ../../util/wmgenmenu.h:99
msgid "Gtv"
msgstr ""
#: ../../util/wmgenmenu.h:100
msgid "VLC"
msgstr ""
#: ../../util/wmgenmenu.h:101
msgid "Sinek"
msgstr ""
#: ../../util/wmgenmenu.h:102
msgid "xine"
msgstr ""
#: ../../util/wmgenmenu.h:103
msgid "aKtion"
msgstr ""
#: ../../util/wmgenmenu.h:104
msgid "Gcd"
msgstr ""
#: ../../util/wmgenmenu.h:105
msgid "XawTV"
msgstr ""
#: ../../util/wmgenmenu.h:106
msgid "X-CD-Roast"
msgstr ""
#: ../../util/wmgenmenu.h:107
msgid "XPlayCD"
msgstr ""
#: ../../util/wmgenmenu.h:112 ../../util/wmgenmenu.h:113
msgid "Chromium"
msgstr ""
#: ../../util/wmgenmenu.h:114
msgid "Google Chrome"
msgstr ""
#: ../../util/wmgenmenu.h:115
msgid "Mozilla Firefox"
msgstr ""
#: ../../util/wmgenmenu.h:116
msgid "Galeon"
msgstr ""
#: ../../util/wmgenmenu.h:117
msgid "SkipStone"
msgstr ""
#: ../../util/wmgenmenu.h:119
msgid "Dillo"
msgstr ""
#: ../../util/wmgenmenu.h:120
msgid "Epiphany"
msgstr ""
#: ../../util/wmgenmenu.h:121
msgid "Opera"
msgstr ""
#: ../../util/wmgenmenu.h:122
msgid "Midori"
msgstr ""
#: ../../util/wmgenmenu.h:123
msgid "Mozilla SeaMonkey"
msgstr ""
#: ../../util/wmgenmenu.h:124
msgid "Kazehakase"
msgstr ""
#: ../../util/wmgenmenu.h:125
msgid "Links"
msgstr ""
#: ../../util/wmgenmenu.h:126
msgid "Lynx"
msgstr ""
#: ../../util/wmgenmenu.h:127
msgid "W3M"
msgstr ""
#: ../../util/wmgenmenu.h:132
msgid "Mozilla Thunderbird"
msgstr ""
#: ../../util/wmgenmenu.h:133
msgid "Mutt"
msgstr ""
#: ../../util/wmgenmenu.h:134
msgid "GNUMail"
msgstr ""
#: ../../util/wmgenmenu.h:135
msgid "Evolution"
msgstr ""
#: ../../util/wmgenmenu.h:136
msgid "Kleopatra"
msgstr ""
#: ../../util/wmgenmenu.h:137
msgid "Sylpheed"
msgstr ""
#: ../../util/wmgenmenu.h:138
msgid "Spruce"
msgstr ""
#: ../../util/wmgenmenu.h:139
msgid "KMail"
msgstr ""
#: ../../util/wmgenmenu.h:140
msgid "Exmh"
msgstr ""
#: ../../util/wmgenmenu.h:141
msgid "Pine"
msgstr ""
#: ../../util/wmgenmenu.h:142
msgid "ELM"
msgstr ""
#: ../../util/wmgenmenu.h:143
msgid "Alpine"
msgstr ""
#: ../../util/wmgenmenu.h:148
msgid "soundKonverter"
msgstr ""
#: ../../util/wmgenmenu.h:149
msgid "Krecord"
msgstr ""
#: ../../util/wmgenmenu.h:150
msgid "Grecord"
msgstr ""
#: ../../util/wmgenmenu.h:151
msgid "ALSA mixer"
msgstr ""
#: ../../util/wmgenmenu.h:152
msgid "Sound configuration"
msgstr ""
#: ../../util/wmgenmenu.h:153
msgid "aumix"
msgstr ""
#: ../../util/wmgenmenu.h:154
msgid "Gmix"
msgstr ""
#: ../../util/wmgenmenu.h:159
msgid "XJed"
msgstr ""
#: ../../util/wmgenmenu.h:160
msgid "Jed"
msgstr ""
#: ../../util/wmgenmenu.h:161
msgid "Emacs"
msgstr ""
#: ../../util/wmgenmenu.h:162
msgid "XEmacs"
msgstr ""
#: ../../util/wmgenmenu.h:163
msgid "gVIM"
msgstr ""
#: ../../util/wmgenmenu.h:164
msgid "vi"
msgstr ""
#: ../../util/wmgenmenu.h:165
msgid "VIM"
msgstr ""
#: ../../util/wmgenmenu.h:166
msgid "gedit"
msgstr ""
#: ../../util/wmgenmenu.h:167
msgid "KEdit"
msgstr ""
#: ../../util/wmgenmenu.h:168
msgid "XEdit"
msgstr ""
#: ../../util/wmgenmenu.h:169
msgid "KWrite"
msgstr ""
#: ../../util/wmgenmenu.h:170
msgid "Kate"
msgstr ""
#: ../../util/wmgenmenu.h:171
msgid "Pico"
msgstr ""
#: ../../util/wmgenmenu.h:172
msgid "Nano"
msgstr ""
#: ../../util/wmgenmenu.h:173
msgid "Joe"
msgstr ""
#: ../../util/wmgenmenu.h:178
msgid "Omnia data"
msgstr ""
#: ../../util/wmgenmenu.h:179
msgid "Comix"
msgstr ""
#: ../../util/wmgenmenu.h:180
msgid "QComicBook"
msgstr ""
#: ../../util/wmgenmenu.h:185
msgid "Evince"
msgstr ""
#: ../../util/wmgenmenu.h:186
msgid "KGhostView"
msgstr ""
#: ../../util/wmgenmenu.h:187
msgid "gv"
msgstr ""
#: ../../util/wmgenmenu.h:188
msgid "GGv"
msgstr ""
#: ../../util/wmgenmenu.h:189
msgid "Xdvi"
msgstr ""
#: ../../util/wmgenmenu.h:190
msgid "KDVI"
msgstr ""
#: ../../util/wmgenmenu.h:191
msgid "Xpdf"
msgstr ""
#: ../../util/wmgenmenu.h:192
msgid "Adobe Reader"
msgstr ""
#: ../../util/wmgenmenu.h:193
msgid "Gless"
msgstr ""
#: ../../util/wmgenmenu.h:198
msgid "Google Desktop"
msgstr ""
#: ../../util/wmgenmenu.h:199
msgid "K3B"
msgstr ""
#: ../../util/wmgenmenu.h:200
msgid "gtkfind"
msgstr ""
#: ../../util/wmgenmenu.h:201
msgid "gdict"
msgstr ""
#: ../../util/wmgenmenu.h:202
msgid "gpsdrive"
msgstr ""
#: ../../util/wmgenmenu.h:203
msgid "wfcmgr"
msgstr ""
#: ../../util/wmgenmenu.h:204
msgid "switch"
msgstr ""
#: ../../util/wmgenmenu.h:205
msgid "kaddressbook"
msgstr ""
#: ../../util/wmgenmenu.h:206
msgid "kab"
msgstr ""
#: ../../util/wmgenmenu.h:207
msgid "kfind"
msgstr ""
#: ../../util/wmgenmenu.h:208
msgid "oclock"
msgstr ""
#: ../../util/wmgenmenu.h:209
msgid "rclock"
msgstr ""
#: ../../util/wmgenmenu.h:210
msgid "xclock"
msgstr ""
#: ../../util/wmgenmenu.h:211
msgid "kppp"
msgstr ""
#: ../../util/wmgenmenu.h:217
msgid "Ekiga"
msgstr ""
#: ../../util/wmgenmenu.h:222
msgid "Pidgin"
msgstr ""
#: ../../util/wmgenmenu.h:223
msgid "Skype"
msgstr ""
#: ../../util/wmgenmenu.h:224
msgid "Gizmo"
msgstr ""
#: ../../util/wmgenmenu.h:225
msgid "Kopete"
msgstr ""
#: ../../util/wmgenmenu.h:226
msgid "XChat"
msgstr ""
#: ../../util/wmgenmenu.h:227
msgid "KVIrc"
msgstr ""
#: ../../util/wmgenmenu.h:228
msgid "BitchX"
msgstr ""
#: ../../util/wmgenmenu.h:229
msgid "EPIC"
msgstr ""
#: ../../util/wmgenmenu.h:230
msgid "EPIC4"
msgstr ""
#: ../../util/wmgenmenu.h:231
msgid "Irssi"
msgstr ""
#: ../../util/wmgenmenu.h:232
msgid "TinyIRC"
msgstr ""
#: ../../util/wmgenmenu.h:233
msgid "Ksirc"
msgstr ""
#: ../../util/wmgenmenu.h:234
msgid "gtalk"
msgstr ""
#: ../../util/wmgenmenu.h:235
msgid "GnomeICU"
msgstr ""
#: ../../util/wmgenmenu.h:236
msgid "Licq"
msgstr ""
#: ../../util/wmgenmenu.h:237
msgid "aMSN"
msgstr ""
#: ../../util/wmgenmenu.h:242
msgid "aMule"
msgstr ""
#: ../../util/wmgenmenu.h:243
msgid "gFTP"
msgstr ""
#: ../../util/wmgenmenu.h:244
msgid "Smb4K"
msgstr ""
#: ../../util/wmgenmenu.h:245
msgid "KTorrent"
msgstr ""
#: ../../util/wmgenmenu.h:246
msgid "BitTorrent GUI"
msgstr ""
#: ../../util/wmgenmenu.h:247
msgid "ftp"
msgstr ""
#: ../../util/wmgenmenu.h:248
msgid "sftp"
msgstr ""
#: ../../util/wmgenmenu.h:249
msgid "Pavuk"
msgstr ""
#: ../../util/wmgenmenu.h:250
msgid "gtm"
msgstr ""
#: ../../util/wmgenmenu.h:251
msgid "Gnut"
msgstr ""
#: ../../util/wmgenmenu.h:252
msgid "GTK Gnutella"
msgstr ""
#: ../../util/wmgenmenu.h:253
msgid "Gnutmeg"
msgstr ""
#: ../../util/wmgenmenu.h:258
msgid "FlightGear Flight Simulator"
msgstr ""
#: ../../util/wmgenmenu.h:259
msgid "Tremulous"
msgstr ""
#: ../../util/wmgenmenu.h:260
msgid "XBoard"
msgstr ""
#: ../../util/wmgenmenu.h:261
msgid "GNOME Chess"
msgstr ""
#: ../../util/wmgenmenu.h:262
msgid "Quake 2"
msgstr ""
#: ../../util/wmgenmenu.h:263
msgid "Quake 3"
msgstr ""
#: ../../util/wmgenmenu.h:264
msgid "Quake 3: Urban Terror 2"
msgstr ""
#: ../../util/wmgenmenu.h:265
msgid "Soldier of Fortune"
msgstr ""
#: ../../util/wmgenmenu.h:266
msgid "Rune"
msgstr ""
#: ../../util/wmgenmenu.h:267
msgid "Tribes 2"
msgstr ""
#: ../../util/wmgenmenu.h:268
msgid "Unreal Tournament"
msgstr ""
#: ../../util/wmgenmenu.h:269
msgid "Descent 3"
msgstr ""
#: ../../util/wmgenmenu.h:270
msgid "Myth 2"
msgstr ""
#: ../../util/wmgenmenu.h:271 ../../util/wmgenmenu.h:272
msgid "Sauerbraten"
msgstr ""
#: ../../util/wmgenmenu.h:273
msgid "Railroad Tycoon 2"
msgstr ""
#: ../../util/wmgenmenu.h:274
msgid "Heretic 2"
msgstr ""
#: ../../util/wmgenmenu.h:275
msgid "Kohan"
msgstr ""
#: ../../util/wmgenmenu.h:276
msgid "XQF"
msgstr ""
#: ../../util/wmgenmenu.h:281
msgid "OpenOffice.org Writer"
msgstr ""
#: ../../util/wmgenmenu.h:282
msgid "OpenOffice.org Calc"
msgstr ""
#: ../../util/wmgenmenu.h:283
msgid "OpenOffice.org Draw"
msgstr ""
#: ../../util/wmgenmenu.h:284
msgid "OpenOffice.org Impress"
msgstr ""
#: ../../util/wmgenmenu.h:285
msgid "OpenOffice.org Math"
msgstr ""
#: ../../util/wmgenmenu.h:286
msgid "OpenOffice.org"
msgstr ""
#: ../../util/wmgenmenu.h:287
msgid "StarOffice Writer"
msgstr ""
#: ../../util/wmgenmenu.h:288
msgid "StarOffice Calc"
msgstr ""
#: ../../util/wmgenmenu.h:289
msgid "StarOffice Draw"
msgstr ""
#: ../../util/wmgenmenu.h:290
msgid "StarOffice Impress"
msgstr ""
#: ../../util/wmgenmenu.h:291
msgid "StarOffice Math"
msgstr ""
#: ../../util/wmgenmenu.h:292
msgid "StarOffice"
msgstr ""
#: ../../util/wmgenmenu.h:293
msgid "AbiWord"
msgstr ""
#: ../../util/wmgenmenu.h:294
msgid "KWord"
msgstr ""
#: ../../util/wmgenmenu.h:295
msgid "KPresenter"
msgstr ""
#: ../../util/wmgenmenu.h:296
msgid "KSpread"
msgstr ""
#: ../../util/wmgenmenu.h:297
msgid "KChart"
msgstr ""
#: ../../util/wmgenmenu.h:298
msgid "KOrganizer"
msgstr ""
#: ../../util/wmgenmenu.h:299
msgid "LyX"
msgstr ""
#: ../../util/wmgenmenu.h:300
msgid "Klyx"
msgstr ""
#: ../../util/wmgenmenu.h:301
msgid "GnuCash"
msgstr ""
#: ../../util/wmgenmenu.h:302
msgid "Gnumeric"
msgstr ""
#: ../../util/wmgenmenu.h:303
msgid "GnomeCal"
msgstr ""
#: ../../util/wmgenmenu.h:304
msgid "GnomeCard"
msgstr ""
#: ../../util/wmgenmenu.h:309
msgid "gitk"
msgstr ""
#: ../../util/wmgenmenu.h:310
msgid "gitview"
msgstr ""
#: ../../util/wmgenmenu.h:311
msgid "qgit"
msgstr ""
#: ../../util/wmgenmenu.h:312
msgid "git-gui"
msgstr ""
#: ../../util/wmgenmenu.h:313
msgid "glimmer"
msgstr ""
#: ../../util/wmgenmenu.h:314
msgid "glade"
msgstr ""
#: ../../util/wmgenmenu.h:315
msgid "kdevelop"
msgstr ""
#: ../../util/wmgenmenu.h:316
msgid "designer"
msgstr ""
#: ../../util/wmgenmenu.h:317
msgid "kbabel"
msgstr ""
#: ../../util/wmgenmenu.h:318
msgid "idle"
msgstr ""
#: ../../util/wmgenmenu.h:319
msgid "ghex"
msgstr ""
#: ../../util/wmgenmenu.h:320
msgid "hexedit"
msgstr ""
#: ../../util/wmgenmenu.h:321
msgid "memprof"
msgstr ""
#: ../../util/wmgenmenu.h:322
msgid "tclsh"
msgstr ""
#: ../../util/wmgenmenu.h:323
msgid "gdb"
msgstr ""
#: ../../util/wmgenmenu.h:324
msgid "xxgdb"
msgstr ""
#: ../../util/wmgenmenu.h:325
msgid "xev"
msgstr ""
#: ../../util/wmgenmenu.h:330
msgid "Iotop"
msgstr ""
#: ../../util/wmgenmenu.h:331
msgid "Iostat"
msgstr ""
#: ../../util/wmgenmenu.h:332
msgid "keybconf"
msgstr ""
#: ../../util/wmgenmenu.h:333
msgid "GNOME System Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:334
msgid "top"
msgstr ""
#: ../../util/wmgenmenu.h:335
msgid "KDE Process Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:336
msgid "gw"
msgstr ""
#: ../../util/wmgenmenu.h:337
msgid "GNOME Control Center"
msgstr ""
#: ../../util/wmgenmenu.h:338
msgid "GKrellM"
msgstr ""
#: ../../util/wmgenmenu.h:339
msgid "tksysv"
msgstr ""
#: ../../util/wmgenmenu.h:340
msgid "ksysv"
msgstr ""
#: ../../util/wmgenmenu.h:341
msgid "GNOME PPP"
msgstr ""
#: ../../util/wmgenmenu.h:346
msgid "YaST 2"
msgstr ""
#: ../../util/wmgenmenu.h:347
msgid "YaST"
msgstr ""
#: ../../util/wmgenmenu.h:348
msgid "System Settings"
msgstr ""
#: ../../util/wmgenmenu.h:349
msgid "UMTSMon"
msgstr ""
#: ../../util/wmgenmenu.h:354
msgid "DrakNetCenter"
msgstr ""
#: ../../util/wmgenmenu.h:355
msgid "RPMDrake"
msgstr ""
#: ../../util/wmgenmenu.h:356
msgid "HardDrake"
msgstr ""
#: ../../util/wmgenmenu.h:357
msgid "DrakConf"
msgstr ""
#: ../../util/wmgenmenu.h:358
msgid "MandrakeUpdate"
msgstr ""
#: ../../util/wmgenmenu.h:359
msgid "XDrakRes"
msgstr ""
#: ../../util/wmgenmenu.h:364
msgid "Docker"
msgstr ""
#: ../../util/wmgenmenu.h:365
msgid "Net"
msgstr ""
#: ../../util/wmgenmenu.h:366 ../../util/wmgenmenu.h:387
msgid "Power"
msgstr ""
#: ../../util/wmgenmenu.h:367
msgid "Laptop"
msgstr ""
#: ../../util/wmgenmenu.h:368
msgid "WiFi"
msgstr ""
#: ../../util/wmgenmenu.h:369
msgid "Interface Info"
msgstr ""
#: ../../util/wmgenmenu.h:370 ../../util/wmgenmenu.h:373
msgid "Weather"
msgstr ""
#: ../../util/wmgenmenu.h:371
msgid "Sticky Notes"
msgstr ""
#: ../../util/wmgenmenu.h:372
msgid "Mixer"
msgstr ""
#: ../../util/wmgenmenu.h:374
msgid "CPU Load"
msgstr ""
#: ../../util/wmgenmenu.h:375
msgid "CPU Freq"
msgstr ""
#: ../../util/wmgenmenu.h:376
msgid "Clock Mon"
msgstr ""
#: ../../util/wmgenmenu.h:377
msgid "Network Devices"
msgstr ""
#: ../../util/wmgenmenu.h:378
msgid "Calendar & Clock"
msgstr ""
#: ../../util/wmgenmenu.h:379
msgid "Time"
msgstr ""
#: ../../util/wmgenmenu.h:380
msgid "Date"
msgstr ""
#: ../../util/wmgenmenu.h:381 ../../util/wmgenmenu.h:382
msgid "System Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:383
msgid "SMP Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:384
msgid "Interfaces"
msgstr ""
#: ../../util/wmgenmenu.h:385
msgid "Button"
msgstr ""
#: ../../util/wmgenmenu.h:386
msgid "xmms"
msgstr ""
#: ../../util/wmgenmenu.h:388
msgid "Magnify"
msgstr ""
#: ../../util/wmgenmenu.h:393
msgid "IceWM"
msgstr ""
#: ../../util/wmgenmenu.h:394
msgid "KWin"
msgstr ""
#: ../../util/wmgenmenu.h:395
msgid "twm"
msgstr ""
#: ../../util/wmgenmenu.h:396
msgid "Fluxbox"
msgstr ""
#: ../../util/wmgenmenu.h:397
msgid "Blackbox"
msgstr ""
#: ../../util/wmgenmenu.h:398
msgid "Ion"
msgstr ""
#: ../../util/wmgenmenu.h:399
msgid "Motif Window Manager"
msgstr ""
#: ../../util/wmgenmenu.h:400
msgid "FVWM"
msgstr ""
WindowMaker-0.95.8/util/po/Makefile.in 0000664 0001750 0001750 00000036144 13061001354 014430 0000000 0000000 # Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = util/po
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \
$(top_srcdir)/m4/ax_pthread.m4 \
$(top_srcdir)/m4/ld-version-script.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/m4/windowmaker.m4 \
$(top_srcdir)/m4/wm_attributes.m4 \
$(top_srcdir)/m4/wm_cflags_check.m4 \
$(top_srcdir)/m4/wm_i18n.m4 \
$(top_srcdir)/m4/wm_imgfmt_check.m4 \
$(top_srcdir)/m4/wm_libexif.m4 $(top_srcdir)/m4/wm_libmath.m4 \
$(top_srcdir)/m4/wm_prog_cc_c11.m4 \
$(top_srcdir)/m4/wm_xext_check.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
am__DIST_COMMON = $(srcdir)/Makefile.in README
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FCLIBS = @FCLIBS@
FGREP = @FGREP@
GFXLIBS = @GFXLIBS@
GREP = @GREP@
HEADER_SEARCH_PATH = @HEADER_SEARCH_PATH@
ICONEXT = @ICONEXT@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLIBS = @INTLIBS@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBBSD = @LIBBSD@
LIBEXIF = @LIBEXIF@
LIBM = @LIBM@
LIBOBJS = @LIBOBJS@
LIBRARY_SEARCH_PATH = @LIBRARY_SEARCH_PATH@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIBXINERAMA = @LIBXINERAMA@
LIBXMU = @LIBXMU@
LIBXRANDR = @LIBXRANDR@
LINGUAS = @LINGUAS@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAGICKFLAGS = @MAGICKFLAGS@
MAGICKLIBS = @MAGICKLIBS@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MANLANGDIRS = @MANLANGDIRS@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PANGOLIBS = @PANGOLIBS@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
UTILMOFILES = @UTILMOFILES@
VERSION = @VERSION@
WINGSMOFILES = @WINGSMOFILES@
WINGS_VERSION = @WINGS_VERSION@
WMAKERMOFILES = @WMAKERMOFILES@
WPREFSMOFILES = @WPREFSMOFILES@
WRASTER_VERSION = @WRASTER_VERSION@
WUTIL_VERSION = @WUTIL_VERSION@
XCFLAGS = @XCFLAGS@
XFTCONFIG = @XFTCONFIG@
XFTFLAGS = @XFTFLAGS@
XFTLIBS = @XFTLIBS@
XGETTEXT = @XGETTEXT@
XLFLAGS = @XLFLAGS@
XLIBS = @XLIBS@
XMKMF = @XMKMF@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBRARY_PATH = @X_LIBRARY_PATH@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
defsdatadir = @defsdatadir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
inc_search_path = @inc_search_path@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
lcov_output_directory = @lcov_output_directory@
lib_search_path = @lib_search_path@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
pixmapdir = @pixmapdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
wprefs_bindir = @wprefs_bindir@
wprefs_datadir = @wprefs_datadir@
DOMAIN = wmgenmenu
CATALOGS = @UTILMOFILES@
CLEANFILES = $(DOMAIN).pot $(CATALOGS)
EXTRA_DIST = de.po es.po fr.po fy.po nl.po pt.po
POTFILES = \
$(top_srcdir)/util/wmgenmenu.c \
$(top_srcdir)/util/wmgenmenu.h
SUFFIXES = .po .mo
all: all-am
.SUFFIXES:
.SUFFIXES: .po .mo
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu util/po/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu util/po/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
tags TAGS:
ctags CTAGS:
cscope cscopelist:
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile all-local
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am: install-data-local
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-local
.MAKE: install-am install-strip
.PHONY: all all-am all-local check check-am clean clean-generic \
clean-libtool cscopelist-am ctags-am distclean \
distclean-generic distclean-libtool distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-data-local install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-info install-info-am install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
uninstall-am uninstall-local
.PRECIOUS: Makefile
.po.mo:
$(AM_V_GEN)$(MSGFMT) -c -o $@ $<
all-local: $(CATALOGS)
.PHONY: update-lang
@HAVE_XGETTEXT_TRUE@update-lang: $(DOMAIN).pot
@HAVE_XGETTEXT_TRUE@ $(AM_V_GEN)$(top_srcdir)/script/generate-po-from-template.sh \
@HAVE_XGETTEXT_TRUE@ -n "$(PACKAGE_NAME)" -v "$(PACKAGE_VERSION)" -b "$(PACKAGE_BUGREPORT)" \
@HAVE_XGETTEXT_TRUE@ -t "$(DOMAIN).pot" "$(srcdir)/$(PO).po"
@HAVE_XGETTEXT_TRUE@$(DOMAIN).pot: $(POTFILES)
@HAVE_XGETTEXT_TRUE@ $(AM_V_GEN)$(XGETTEXT) --default-domain=$(DOMAIN) \
@HAVE_XGETTEXT_TRUE@ --add-comments --keyword=_ --keyword=N_ $(POTFILES)
@HAVE_XGETTEXT_TRUE@ @if cmp -s $(DOMAIN).po $(DOMAIN).pot; then \
@HAVE_XGETTEXT_TRUE@ rm -f $(DOMAIN).po; \
@HAVE_XGETTEXT_TRUE@ else \
@HAVE_XGETTEXT_TRUE@ mv -f $(DOMAIN).po $(DOMAIN).pot; \
@HAVE_XGETTEXT_TRUE@ fi
install-data-local: $(CATALOGS)
$(mkinstalldirs) $(DESTDIR)$(localedir)
for n in $(CATALOGS) __DuMmY ; do \
if test "$$n" -a "$$n" != "__DuMmY" ; then \
l=`basename $$n .mo`; \
$(mkinstalldirs) $(DESTDIR)$(localedir)/$$l/LC_MESSAGES; \
$(INSTALL_DATA) -m 644 $$n $(DESTDIR)$(localedir)/$$l/LC_MESSAGES/$(DOMAIN).mo; \
fi; \
done
uninstall-local:
for n in $(CATALOGS) ; do \
l=`basename $$n .mo`; \
rm -f $(DESTDIR)$(localedir)/$$l/LC_MESSAGES/$(DOMAIN).mo; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
WindowMaker-0.95.8/util/po/fy.po 0000664 0001750 0001750 00000074015 13061001047 013337 0000000 0000000 # Translation into Western Frisian for Window Maker
# Copyright (C) 2015-2016 Window Maker Developers Team
# This file is distributed under the same license as the windowmaker package.
# Original by Alwin , 2015.
#
msgid ""
msgstr ""
"Project-Id-Version: wmaker-0.95.7+\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-21 16:19+0100\n"
"PO-Revision-Date: 2016-01-21 00:00+0000\n"
"Last-Translator: Alwin \n"
"Language-Team: Western Frisian\n"
"Language: fy\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Root -> Applications
#: ../../util/wmgenmenu.c:117
msgid "Applications"
msgstr "Programma's"
#. Root -> Applications ->
#: ../../util/wmgenmenu.c:120
msgid "Terminals"
msgstr "Terminals"
#. always keep terminals the top item
#: ../../util/wmgenmenu.c:121
msgid "Internet"
msgstr "Ynternet"
#: ../../util/wmgenmenu.c:122
msgid "Email"
msgstr "E-mail"
#: ../../util/wmgenmenu.c:123
msgid "Mathematics"
msgstr "Wiskunde"
#: ../../util/wmgenmenu.c:124
msgid "File Managers"
msgstr "Bestânsbehearders"
#: ../../util/wmgenmenu.c:125
msgid "Graphics"
msgstr "Grafysk"
#: ../../util/wmgenmenu.c:126
msgid "Multimedia"
msgstr "Multymedia"
#: ../../util/wmgenmenu.c:127
msgid "Editors"
msgstr "Tekstbewurkers"
#: ../../util/wmgenmenu.c:128
msgid "Development"
msgstr "Untwikkeljen"
#: ../../util/wmgenmenu.c:130
msgid "Office"
msgstr "Kantoar"
#: ../../util/wmgenmenu.c:131
msgid "Astronomy"
msgstr "Stjerrekunde"
#: ../../util/wmgenmenu.c:132
msgid "Sound"
msgstr "Audio"
#: ../../util/wmgenmenu.c:133
msgid "Comics"
msgstr "Strips"
#: ../../util/wmgenmenu.c:134
msgid "Viewers"
msgstr "Viewers"
#: ../../util/wmgenmenu.c:135
msgid "Utilities"
msgstr "Helpmiddels"
#: ../../util/wmgenmenu.c:136
msgid "System"
msgstr "Systeem"
#: ../../util/wmgenmenu.c:137
msgid "Video"
msgstr "Fideo"
#: ../../util/wmgenmenu.c:138
msgid "Chat and Talk"
msgstr "Berjochten en spraak"
#: ../../util/wmgenmenu.c:139
msgid "P2P Network"
msgstr "P2P-netwurk"
#: ../../util/wmgenmenu.c:140
msgid "Games"
msgstr "Spultsjes"
#: ../../util/wmgenmenu.c:148
msgid "Run..."
msgstr "Utfiere..."
#: ../../util/wmgenmenu.c:150
#, c-format
msgid "%A(Run, Type command:)"
msgstr "%A(Utfiere, Typ kommando:)"
#. Root -> Appearance
#: ../../util/wmgenmenu.c:156
msgid "Appearance"
msgstr "Uterlik"
#: ../../util/wmgenmenu.c:160
msgid "Themes"
msgstr "Tema's"
#: ../../util/wmgenmenu.c:169
msgid "Styles"
msgstr "Stilen"
#: ../../util/wmgenmenu.c:178
msgid "Icon Sets"
msgstr "Ikoanesets"
#. Root -> Appearance -> Background
#: ../../util/wmgenmenu.c:186
msgid "Background"
msgstr "Eftergrûn"
#. Root -> Appearance -> Background -> Solid
#: ../../util/wmgenmenu.c:189
msgid "Solid"
msgstr "Effen"
#. Root -> Appearance -> Background -> Solid ->
#: ../../util/wmgenmenu.c:201
msgid "Black"
msgstr "Swart"
#: ../../util/wmgenmenu.c:202
msgid "Blue"
msgstr "Blau"
#: ../../util/wmgenmenu.c:203
msgid "Indigo"
msgstr "Indigo"
#: ../../util/wmgenmenu.c:204
msgid "Bluemarine"
msgstr "Marineblau"
#: ../../util/wmgenmenu.c:205
msgid "Purple"
msgstr "Poarper"
#: ../../util/wmgenmenu.c:206
msgid "Wheat"
msgstr "Weet"
#: ../../util/wmgenmenu.c:207
msgid "Dark Gray"
msgstr "Donkergriis"
#: ../../util/wmgenmenu.c:208
msgid "Wine"
msgstr "Wynread"
#. Root -> Appearance -> Background -> Gradient
#: ../../util/wmgenmenu.c:213
msgid "Gradient"
msgstr "Kleurferrin"
#: ../../util/wmgenmenu.c:227
msgid "Sunset"
msgstr "Sinne-ûndergong"
#: ../../util/wmgenmenu.c:234
msgid "Sky"
msgstr "Loft"
#: ../../util/wmgenmenu.c:235
msgid "Blue Shades"
msgstr "Blautinten"
#: ../../util/wmgenmenu.c:236
msgid "Indigo Shades"
msgstr "Indigotinten"
#: ../../util/wmgenmenu.c:237
msgid "Purple Shades"
msgstr "Poarpertinten"
#: ../../util/wmgenmenu.c:238
msgid "Wheat Shades"
msgstr "Weettinten"
#: ../../util/wmgenmenu.c:239
msgid "Grey Shades"
msgstr "Griistinten"
#: ../../util/wmgenmenu.c:240
msgid "Wine Shades"
msgstr "Wynreadtinten"
#: ../../util/wmgenmenu.c:246
msgid "Images"
msgstr "Ofbyldingen"
#: ../../util/wmgenmenu.c:257
msgid "Save Theme"
msgstr "Tema bewarje"
#: ../../util/wmgenmenu.c:266
msgid "Save IconSet"
msgstr "Ikoaneset bewarje"
#: ../../util/wmgenmenu.c:277
msgid "Workspaces"
msgstr "Wurkromten"
#. Root -> Workspace
#: ../../util/wmgenmenu.c:284
msgid "Workspace"
msgstr "Wurkromte"
#: ../../util/wmgenmenu.c:286
msgid "Hide Others"
msgstr "Oare ferbergje"
#: ../../util/wmgenmenu.c:294
msgid "Show All"
msgstr "Alles toane"
#: ../../util/wmgenmenu.c:302
msgid "Arrange Icons"
msgstr "Ikoanen skikke"
#: ../../util/wmgenmenu.c:310
msgid "Refresh"
msgstr "Fernije"
#: ../../util/wmgenmenu.c:318
msgid "Save Session"
msgstr "Sesje bewarje"
#: ../../util/wmgenmenu.c:326
msgid "Clear Session"
msgstr "Sesje wiskje"
#: ../../util/wmgenmenu.c:335
msgid "Configure Window Maker"
msgstr "Window Maker ynstelle"
#: ../../util/wmgenmenu.c:344
msgid "Info Panel"
msgstr "Ynfopaniel"
#: ../../util/wmgenmenu.c:352
msgid "Restart Window Maker"
msgstr "Window Maker werstarte"
#: ../../util/wmgenmenu.c:365
msgid "Lock Screen"
msgstr "Skerm beskoattelje"
#: ../../util/wmgenmenu.c:376
msgid "Exit Window Maker"
msgstr "Window Maker ôfslute"
#: ../../util/wmgenmenu.c:480
#, c-format
msgid "Start %s"
msgstr "%s starte"
#: ../../util/wmgenmenu.c:490
msgid "Other Window Managers"
msgstr "Oare finsterbehearders"
#: ../../util/wmgenmenu.h:26
msgid "xterm"
msgstr ""
#: ../../util/wmgenmenu.h:27
msgid "mrxvt"
msgstr ""
#: ../../util/wmgenmenu.h:28
msgid "Konsole"
msgstr ""
#: ../../util/wmgenmenu.h:29
msgid "Urxvt"
msgstr ""
#: ../../util/wmgenmenu.h:34
msgid "Dolphin"
msgstr ""
#: ../../util/wmgenmenu.h:35
msgid "Thunar"
msgstr ""
#: ../../util/wmgenmenu.h:36
msgid "ROX filer"
msgstr ""
#: ../../util/wmgenmenu.h:37
msgid "PCManFM"
msgstr ""
#: ../../util/wmgenmenu.h:38
msgid "GWorkspace"
msgstr ""
#: ../../util/wmgenmenu.h:39
msgid "Midnight Commander"
msgstr ""
#: ../../util/wmgenmenu.h:40
msgid "XFTree"
msgstr ""
#: ../../util/wmgenmenu.h:41 ../../util/wmgenmenu.h:140
msgid "Konqueror"
msgstr ""
#: ../../util/wmgenmenu.h:42
msgid "Nautilus"
msgstr ""
#: ../../util/wmgenmenu.h:43
msgid "FSViewer"
msgstr ""
#: ../../util/wmgenmenu.h:44
msgid "Xfe"
msgstr ""
#: ../../util/wmgenmenu.h:49
msgid "Xmaxima"
msgstr ""
#: ../../util/wmgenmenu.h:50
msgid "Maxima"
msgstr ""
#: ../../util/wmgenmenu.h:51
msgid "Maple"
msgstr ""
#: ../../util/wmgenmenu.h:52
msgid "Scilab"
msgstr ""
#: ../../util/wmgenmenu.h:53
msgid "bc"
msgstr ""
#: ../../util/wmgenmenu.h:54
msgid "KCalc"
msgstr ""
#: ../../util/wmgenmenu.h:55
msgid "XCalc"
msgstr ""
#: ../../util/wmgenmenu.h:56
msgid "Mathematica"
msgstr ""
#: ../../util/wmgenmenu.h:57
msgid "Math"
msgstr ""
#. command-line Mathematica
#: ../../util/wmgenmenu.h:58
msgid "Free42"
msgstr ""
#: ../../util/wmgenmenu.h:59
msgid "X48"
msgstr ""
#: ../../util/wmgenmenu.h:64
msgid "Xplns"
msgstr ""
#: ../../util/wmgenmenu.h:65
msgid "Stellarium"
msgstr ""
#: ../../util/wmgenmenu.h:70
msgid "GIMP"
msgstr ""
#: ../../util/wmgenmenu.h:71
msgid "Sodipodi"
msgstr ""
#: ../../util/wmgenmenu.h:72
msgid "Inkscape"
msgstr ""
#: ../../util/wmgenmenu.h:73
msgid "KIllustrator"
msgstr ""
#: ../../util/wmgenmenu.h:74
msgid "Krayon"
msgstr ""
#: ../../util/wmgenmenu.h:75
msgid "KPovModeler"
msgstr ""
#: ../../util/wmgenmenu.h:76
msgid "XBitmap"
msgstr ""
#: ../../util/wmgenmenu.h:77
msgid "XPaint"
msgstr ""
#: ../../util/wmgenmenu.h:78
msgid "XFig"
msgstr ""
#: ../../util/wmgenmenu.h:79
msgid "KPaint"
msgstr ""
#: ../../util/wmgenmenu.h:80
msgid "Blender"
msgstr ""
#: ../../util/wmgenmenu.h:81
msgid "KSnapshot"
msgstr ""
#: ../../util/wmgenmenu.h:82
msgid "GPhoto"
msgstr ""
#: ../../util/wmgenmenu.h:83
msgid "DigiKam"
msgstr ""
#: ../../util/wmgenmenu.h:84
msgid "GQview"
msgstr ""
#: ../../util/wmgenmenu.h:85
msgid "Geeqie"
msgstr ""
#: ../../util/wmgenmenu.h:86
msgid "KView"
msgstr ""
#: ../../util/wmgenmenu.h:87
msgid "Dia"
msgstr ""
#: ../../util/wmgenmenu.h:88
msgid "CompuPic"
msgstr ""
#: ../../util/wmgenmenu.h:89
msgid "Pixie"
msgstr ""
#: ../../util/wmgenmenu.h:90
msgid "ImageMagick Display"
msgstr ""
#: ../../util/wmgenmenu.h:91
msgid "XV"
msgstr ""
#: ../../util/wmgenmenu.h:92
msgid "Eye of GNOME"
msgstr ""
#: ../../util/wmgenmenu.h:93
msgid "Quick Image Viewer"
msgstr ""
#: ../../util/wmgenmenu.h:98 ../../util/wmgenmenu.h:501
msgid "Audacious"
msgstr ""
#: ../../util/wmgenmenu.h:99
msgid "Kaffeine"
msgstr ""
#: ../../util/wmgenmenu.h:100
msgid "Audacity"
msgstr ""
#: ../../util/wmgenmenu.h:101
msgid "Amarok"
msgstr ""
#: ../../util/wmgenmenu.h:102
msgid "XMMS"
msgstr ""
#: ../../util/wmgenmenu.h:103
msgid "K9Copy"
msgstr ""
#: ../../util/wmgenmenu.h:104
msgid "HandBrake"
msgstr ""
#: ../../util/wmgenmenu.h:105
msgid "OGMRip"
msgstr ""
#: ../../util/wmgenmenu.h:106
msgid "DVBcut"
msgstr ""
#: ../../util/wmgenmenu.h:107
msgid "AcidRip"
msgstr ""
#: ../../util/wmgenmenu.h:108
msgid "RipperX"
msgstr ""
#: ../../util/wmgenmenu.h:109
msgid "Avidemux"
msgstr ""
#: ../../util/wmgenmenu.h:110
msgid "GQmpeg"
msgstr ""
#: ../../util/wmgenmenu.h:111
msgid "SMPlayer"
msgstr ""
#: ../../util/wmgenmenu.h:112
msgid "Linux MultiMedia Studio"
msgstr ""
#: ../../util/wmgenmenu.h:113
msgid "Freeamp"
msgstr ""
#: ../../util/wmgenmenu.h:114
msgid "RealPlayer"
msgstr ""
#: ../../util/wmgenmenu.h:115
msgid "Mediathek"
msgstr ""
#: ../../util/wmgenmenu.h:116
msgid "KMid"
msgstr ""
#: ../../util/wmgenmenu.h:117
msgid "Kmidi"
msgstr ""
#: ../../util/wmgenmenu.h:118
msgid "Gtcd"
msgstr ""
#: ../../util/wmgenmenu.h:119
msgid "Grip"
msgstr ""
#: ../../util/wmgenmenu.h:120
msgid "AVIplay"
msgstr ""
#: ../../util/wmgenmenu.h:121
msgid "Gtv"
msgstr ""
#: ../../util/wmgenmenu.h:122
msgid "VLC"
msgstr ""
#: ../../util/wmgenmenu.h:123
msgid "Sinek"
msgstr ""
#: ../../util/wmgenmenu.h:124
msgid "xine"
msgstr ""
#: ../../util/wmgenmenu.h:125
msgid "aKtion"
msgstr ""
#: ../../util/wmgenmenu.h:126
msgid "Gcd"
msgstr ""
#: ../../util/wmgenmenu.h:127
msgid "XawTV"
msgstr ""
#: ../../util/wmgenmenu.h:128
msgid "XPlayCD"
msgstr ""
#: ../../util/wmgenmenu.h:129
msgid "XBMC"
msgstr ""
#: ../../util/wmgenmenu.h:134 ../../util/wmgenmenu.h:135
msgid "Chromium"
msgstr ""
#: ../../util/wmgenmenu.h:136
msgid "Google Chrome"
msgstr ""
#: ../../util/wmgenmenu.h:137
msgid "Mozilla Firefox"
msgstr ""
#: ../../util/wmgenmenu.h:138
msgid "Galeon"
msgstr ""
#: ../../util/wmgenmenu.h:139
msgid "SkipStone"
msgstr ""
#: ../../util/wmgenmenu.h:141
msgid "Dillo"
msgstr ""
#: ../../util/wmgenmenu.h:142
msgid "Epiphany"
msgstr ""
#: ../../util/wmgenmenu.h:143
msgid "Opera"
msgstr ""
#: ../../util/wmgenmenu.h:144
msgid "Midori"
msgstr ""
#: ../../util/wmgenmenu.h:145
msgid "Mozilla SeaMonkey"
msgstr ""
#: ../../util/wmgenmenu.h:146
msgid "Kazehakase"
msgstr ""
#: ../../util/wmgenmenu.h:147
msgid "Links"
msgstr ""
#: ../../util/wmgenmenu.h:148
msgid "Lynx"
msgstr ""
#: ../../util/wmgenmenu.h:149
msgid "W3M"
msgstr ""
#: ../../util/wmgenmenu.h:154
msgid "Mozilla Thunderbird"
msgstr ""
#: ../../util/wmgenmenu.h:155
msgid "Mutt"
msgstr ""
#: ../../util/wmgenmenu.h:156
msgid "GNUMail"
msgstr ""
#: ../../util/wmgenmenu.h:157
msgid "Claws Mail"
msgstr ""
#: ../../util/wmgenmenu.h:158
msgid "Evolution"
msgstr ""
#: ../../util/wmgenmenu.h:159
msgid "Kleopatra"
msgstr ""
#: ../../util/wmgenmenu.h:160
msgid "Sylpheed"
msgstr ""
#: ../../util/wmgenmenu.h:161
msgid "Spruce"
msgstr ""
#: ../../util/wmgenmenu.h:162
msgid "KMail"
msgstr ""
#: ../../util/wmgenmenu.h:163
msgid "Exmh"
msgstr ""
#: ../../util/wmgenmenu.h:164
msgid "Pine"
msgstr ""
#: ../../util/wmgenmenu.h:165
msgid "ELM"
msgstr ""
#: ../../util/wmgenmenu.h:166
msgid "Alpine"
msgstr ""
#: ../../util/wmgenmenu.h:171
msgid "soundKonverter"
msgstr ""
#: ../../util/wmgenmenu.h:172
msgid "Krecord"
msgstr ""
#: ../../util/wmgenmenu.h:173
msgid "Grecord"
msgstr ""
#: ../../util/wmgenmenu.h:174
msgid "ALSA mixer"
msgstr ""
#: ../../util/wmgenmenu.h:175
msgid "VolWheel"
msgstr ""
#: ../../util/wmgenmenu.h:176
msgid "Sound configuration"
msgstr ""
#: ../../util/wmgenmenu.h:177
msgid "aumix"
msgstr ""
#: ../../util/wmgenmenu.h:178
msgid "Gmix"
msgstr ""
#: ../../util/wmgenmenu.h:183
msgid "XJed"
msgstr ""
#: ../../util/wmgenmenu.h:184
msgid "Jed"
msgstr ""
#: ../../util/wmgenmenu.h:185
msgid "Emacs"
msgstr ""
#: ../../util/wmgenmenu.h:186
msgid "XEmacs"
msgstr ""
#: ../../util/wmgenmenu.h:187
msgid "SciTE"
msgstr ""
#: ../../util/wmgenmenu.h:188
msgid "Bluefish"
msgstr ""
#: ../../util/wmgenmenu.h:189
msgid "gVIM"
msgstr ""
#: ../../util/wmgenmenu.h:190
msgid "vi"
msgstr ""
#: ../../util/wmgenmenu.h:191
msgid "VIM"
msgstr ""
#: ../../util/wmgenmenu.h:192
msgid "gedit"
msgstr ""
#: ../../util/wmgenmenu.h:193
msgid "KEdit"
msgstr ""
#: ../../util/wmgenmenu.h:194
msgid "XEdit"
msgstr ""
#: ../../util/wmgenmenu.h:195
msgid "KWrite"
msgstr ""
#: ../../util/wmgenmenu.h:196
msgid "Kate"
msgstr ""
#: ../../util/wmgenmenu.h:197
msgid "Pico"
msgstr ""
#: ../../util/wmgenmenu.h:198
msgid "Nano"
msgstr ""
#: ../../util/wmgenmenu.h:199
msgid "Joe"
msgstr ""
#: ../../util/wmgenmenu.h:204
msgid "Omnia data"
msgstr ""
#: ../../util/wmgenmenu.h:205
msgid "Comix"
msgstr ""
#: ../../util/wmgenmenu.h:206
msgid "QComicBook"
msgstr ""
#: ../../util/wmgenmenu.h:211
msgid "Evince"
msgstr ""
#: ../../util/wmgenmenu.h:212
msgid "KGhostView"
msgstr ""
#: ../../util/wmgenmenu.h:213
msgid "gv"
msgstr ""
#: ../../util/wmgenmenu.h:214
msgid "ePDFView"
msgstr ""
#: ../../util/wmgenmenu.h:215
msgid "GGv"
msgstr ""
#: ../../util/wmgenmenu.h:216
msgid "Xdvi"
msgstr ""
#: ../../util/wmgenmenu.h:217
msgid "KDVI"
msgstr ""
#: ../../util/wmgenmenu.h:218
msgid "Xpdf"
msgstr ""
#: ../../util/wmgenmenu.h:219
msgid "Adobe Reader"
msgstr ""
#: ../../util/wmgenmenu.h:220
msgid "Gless"
msgstr ""
#: ../../util/wmgenmenu.h:225
msgid "Google Desktop"
msgstr ""
#: ../../util/wmgenmenu.h:226
msgid "K3B"
msgstr ""
#: ../../util/wmgenmenu.h:227
msgid "X-CD-Roast"
msgstr ""
#: ../../util/wmgenmenu.h:228
msgid "Nero Linux"
msgstr ""
#: ../../util/wmgenmenu.h:229
msgid "Nero Linux Express"
msgstr ""
#: ../../util/wmgenmenu.h:230
msgid "gtkfind"
msgstr ""
#: ../../util/wmgenmenu.h:231
msgid "gdict"
msgstr ""
#: ../../util/wmgenmenu.h:232
msgid "gpsdrive"
msgstr ""
#: ../../util/wmgenmenu.h:233
msgid "Task Coach"
msgstr ""
#: ../../util/wmgenmenu.h:234
msgid "XSnap"
msgstr ""
#: ../../util/wmgenmenu.h:235
msgid "Screengrab"
msgstr ""
#: ../../util/wmgenmenu.h:236
msgid "XSane"
msgstr ""
#: ../../util/wmgenmenu.h:237
msgid "wfcmgr"
msgstr ""
#: ../../util/wmgenmenu.h:238
msgid "switch"
msgstr ""
#: ../../util/wmgenmenu.h:239
msgid "Cairo Clock"
msgstr ""
#: ../../util/wmgenmenu.h:240
msgid "Conky"
msgstr ""
#: ../../util/wmgenmenu.h:241
msgid "GNU Privacy Assistant"
msgstr ""
#: ../../util/wmgenmenu.h:242
msgid "Vidalia (tor)"
msgstr ""
#: ../../util/wmgenmenu.h:243
msgid "kaddressbook"
msgstr ""
#: ../../util/wmgenmenu.h:244
msgid "kab"
msgstr ""
#: ../../util/wmgenmenu.h:245
msgid "Filezilla"
msgstr ""
#: ../../util/wmgenmenu.h:246
msgid "Bleachbit"
msgstr ""
#: ../../util/wmgenmenu.h:247
msgid "Teamviewer"
msgstr ""
#: ../../util/wmgenmenu.h:248
msgid "gUVCView"
msgstr ""
#: ../../util/wmgenmenu.h:249
msgid "LinPopUp"
msgstr ""
#: ../../util/wmgenmenu.h:250
msgid "Wine Configurator"
msgstr ""
#: ../../util/wmgenmenu.h:251
msgid "NMap"
msgstr ""
#: ../../util/wmgenmenu.h:252
msgid "Hydra"
msgstr ""
#: ../../util/wmgenmenu.h:253
msgid "XTeddy"
msgstr ""
#: ../../util/wmgenmenu.h:254
msgid "XTeddy TEST"
msgstr ""
#: ../../util/wmgenmenu.h:255
msgid "VNC Viewer"
msgstr ""
#: ../../util/wmgenmenu.h:256
msgid "Java Control Panel"
msgstr ""
#: ../../util/wmgenmenu.h:257
msgid "kfind"
msgstr ""
#: ../../util/wmgenmenu.h:258
msgid "oclock"
msgstr ""
#: ../../util/wmgenmenu.h:259
msgid "rclock"
msgstr ""
#: ../../util/wmgenmenu.h:260
msgid "Isomaster"
msgstr ""
#: ../../util/wmgenmenu.h:261
msgid "xclock"
msgstr ""
#: ../../util/wmgenmenu.h:262
msgid "HP Systray"
msgstr ""
#: ../../util/wmgenmenu.h:263
msgid "kppp"
msgstr ""
#: ../../util/wmgenmenu.h:264
msgid "Xarchiver"
msgstr ""
#: ../../util/wmgenmenu.h:273
msgid "Pidgin"
msgstr ""
#: ../../util/wmgenmenu.h:274
msgid "Skype"
msgstr ""
#: ../../util/wmgenmenu.h:275
msgid "Gizmo"
msgstr ""
#: ../../util/wmgenmenu.h:276
msgid "Gajim"
msgstr ""
#: ../../util/wmgenmenu.h:277
msgid "Kopete"
msgstr ""
#: ../../util/wmgenmenu.h:278
msgid "XChat"
msgstr ""
#: ../../util/wmgenmenu.h:279
msgid "Ekiga"
msgstr ""
#: ../../util/wmgenmenu.h:280
msgid "KVIrc"
msgstr ""
#: ../../util/wmgenmenu.h:281
msgid "BitchX"
msgstr ""
#: ../../util/wmgenmenu.h:282
msgid "EPIC"
msgstr ""
#: ../../util/wmgenmenu.h:283
msgid "Linphone"
msgstr ""
#: ../../util/wmgenmenu.h:284
msgid "Mumble"
msgstr ""
#: ../../util/wmgenmenu.h:285
msgid "EPIC4"
msgstr ""
#: ../../util/wmgenmenu.h:286
msgid "Irssi"
msgstr ""
#: ../../util/wmgenmenu.h:287
msgid "TinyIRC"
msgstr ""
#: ../../util/wmgenmenu.h:288
msgid "Ksirc"
msgstr ""
#: ../../util/wmgenmenu.h:289
msgid "gtalk"
msgstr ""
#: ../../util/wmgenmenu.h:290
msgid "GnomeICU"
msgstr ""
#: ../../util/wmgenmenu.h:291
msgid "Licq"
msgstr ""
#: ../../util/wmgenmenu.h:292
msgid "aMSN"
msgstr ""
#: ../../util/wmgenmenu.h:297
msgid "aMule"
msgstr ""
#: ../../util/wmgenmenu.h:298
msgid "gFTP"
msgstr ""
#: ../../util/wmgenmenu.h:299
msgid "Smb4K"
msgstr ""
#: ../../util/wmgenmenu.h:300
msgid "KTorrent"
msgstr ""
#: ../../util/wmgenmenu.h:301
msgid "BitTorrent GUI"
msgstr ""
#: ../../util/wmgenmenu.h:302
msgid "Transmission GTK"
msgstr ""
#: ../../util/wmgenmenu.h:303
msgid "ftp"
msgstr ""
#: ../../util/wmgenmenu.h:304
msgid "Deluge"
msgstr ""
#: ../../util/wmgenmenu.h:305
msgid "sftp"
msgstr ""
#: ../../util/wmgenmenu.h:306
msgid "Pavuk"
msgstr ""
#: ../../util/wmgenmenu.h:307
msgid "gtm"
msgstr ""
#: ../../util/wmgenmenu.h:308
msgid "Gnut"
msgstr ""
#: ../../util/wmgenmenu.h:309
msgid "GTK Gnutella"
msgstr ""
#: ../../util/wmgenmenu.h:310
msgid "Gnutmeg"
msgstr ""
#: ../../util/wmgenmenu.h:315
msgid "FlightGear Flight Simulator"
msgstr ""
#: ../../util/wmgenmenu.h:316
msgid "Tremulous"
msgstr ""
#: ../../util/wmgenmenu.h:317
msgid "XBoard"
msgstr ""
#: ../../util/wmgenmenu.h:318
msgid "GNOME Chess"
msgstr ""
#: ../../util/wmgenmenu.h:319
msgid "Darkplaces (Quake 1)"
msgstr ""
#: ../../util/wmgenmenu.h:320
msgid "QuakeSpasm (Quake 1)"
msgstr ""
#: ../../util/wmgenmenu.h:321
msgid "Quake 2"
msgstr ""
#: ../../util/wmgenmenu.h:322
msgid "KM Quake 2 (Quake 2"
msgstr ""
#: ../../util/wmgenmenu.h:323
msgid "QMax (Quake 2"
msgstr ""
#: ../../util/wmgenmenu.h:324
msgid "Quake 3"
msgstr ""
#: ../../util/wmgenmenu.h:325
msgid "Quake 4"
msgstr ""
#: ../../util/wmgenmenu.h:326
msgid "Quake 4 SMP"
msgstr ""
#: ../../util/wmgenmenu.h:327
msgid "Openarena"
msgstr ""
#: ../../util/wmgenmenu.h:328
msgid "Quake 3: Urban Terror 2"
msgstr ""
#: ../../util/wmgenmenu.h:329
msgid "Soldier of Fortune"
msgstr ""
#: ../../util/wmgenmenu.h:330
msgid "Rune"
msgstr ""
#: ../../util/wmgenmenu.h:331
msgid "Doom 3"
msgstr ""
#: ../../util/wmgenmenu.h:332
msgid "Zelda Solarus"
msgstr ""
#: ../../util/wmgenmenu.h:333
msgid "Solarwolf"
msgstr ""
#: ../../util/wmgenmenu.h:334
msgid "Pachi"
msgstr ""
#: ../../util/wmgenmenu.h:335
msgid "Tribes 2"
msgstr ""
#: ../../util/wmgenmenu.h:336
msgid "GNUjump"
msgstr ""
#: ../../util/wmgenmenu.h:337
msgid "Supertransball 2"
msgstr ""
#: ../../util/wmgenmenu.h:338
msgid "Supertux"
msgstr ""
#: ../../util/wmgenmenu.h:339
msgid "Supertux 2"
msgstr ""
#: ../../util/wmgenmenu.h:340
msgid "Mega Mario"
msgstr ""
#: ../../util/wmgenmenu.h:341
msgid "Frogatto"
msgstr ""
#: ../../util/wmgenmenu.h:342
msgid "Minecraft"
msgstr ""
#: ../../util/wmgenmenu.h:343
msgid "Alienarena"
msgstr ""
#: ../../util/wmgenmenu.h:344
msgid "Nexuiz"
msgstr ""
#: ../../util/wmgenmenu.h:345
msgid "Bomberclone"
msgstr ""
#: ../../util/wmgenmenu.h:346
msgid "Chromium-BSU"
msgstr ""
#: ../../util/wmgenmenu.h:347
msgid "Clanbomber"
msgstr ""
#: ../../util/wmgenmenu.h:348
msgid "Clanbomber 2"
msgstr ""
#: ../../util/wmgenmenu.h:349
msgid "Defendguin"
msgstr ""
#: ../../util/wmgenmenu.h:350
msgid "Dosbox"
msgstr ""
#: ../../util/wmgenmenu.h:351
msgid "Duke Nukem 3D"
msgstr ""
#: ../../util/wmgenmenu.h:352
msgid "eDuke32"
msgstr ""
#: ../../util/wmgenmenu.h:353
msgid "Emilia Pinball"
msgstr ""
#: ../../util/wmgenmenu.h:354
msgid "Extreme-Tuxracer"
msgstr ""
#: ../../util/wmgenmenu.h:355
msgid "Freedroid RPG"
msgstr ""
#: ../../util/wmgenmenu.h:356
msgid "Frozen Bubble"
msgstr ""
#: ../../util/wmgenmenu.h:357
msgid "Frozen Bubble Editor"
msgstr ""
#: ../../util/wmgenmenu.h:358
msgid "GL 117"
msgstr ""
#: ../../util/wmgenmenu.h:359
msgid "LBreakout 2"
msgstr ""
#: ../../util/wmgenmenu.h:360
msgid "Legends"
msgstr ""
#: ../../util/wmgenmenu.h:361
msgid "Lincity-NG"
msgstr ""
#: ../../util/wmgenmenu.h:362
msgid "Neverball"
msgstr ""
#: ../../util/wmgenmenu.h:363
msgid "Neverput"
msgstr ""
#: ../../util/wmgenmenu.h:364
msgid "Openastromenace"
msgstr ""
#: ../../util/wmgenmenu.h:365
msgid "Penguin Command"
msgstr ""
#: ../../util/wmgenmenu.h:366
msgid "Powermanga"
msgstr ""
#: ../../util/wmgenmenu.h:367
msgid "Return to Castle Wolfenstein SP"
msgstr ""
#: ../../util/wmgenmenu.h:368
msgid "Return to Castle Wolfenstein MP"
msgstr ""
#: ../../util/wmgenmenu.h:369
msgid "Snes9X"
msgstr ""
#: ../../util/wmgenmenu.h:370
msgid "Slune"
msgstr ""
#: ../../util/wmgenmenu.h:371
msgid "Torcs"
msgstr ""
#: ../../util/wmgenmenu.h:372
msgid "Speed Dreams"
msgstr ""
#: ../../util/wmgenmenu.h:373
msgid "Trackballs"
msgstr ""
#: ../../util/wmgenmenu.h:374
msgid "VDrift"
msgstr ""
#: ../../util/wmgenmenu.h:375
msgid "Warmux"
msgstr ""
#: ../../util/wmgenmenu.h:376
msgid "Warsow"
msgstr ""
#: ../../util/wmgenmenu.h:377
msgid "Wesnoth"
msgstr ""
#: ../../util/wmgenmenu.h:378
msgid "World of Padman"
msgstr ""
#: ../../util/wmgenmenu.h:379
msgid "XBlast"
msgstr ""
#: ../../util/wmgenmenu.h:380
msgid "XPenguins"
msgstr ""
#: ../../util/wmgenmenu.h:381
msgid "XTux"
msgstr ""
#: ../../util/wmgenmenu.h:382 ../../util/wmgenmenu.h:383
msgid "The Mana World"
msgstr ""
#: ../../util/wmgenmenu.h:384
msgid "Super Mario Chronicles"
msgstr ""
#: ../../util/wmgenmenu.h:385
msgid "Unreal"
msgstr ""
#: ../../util/wmgenmenu.h:386
msgid "Unreal Tournament"
msgstr ""
#: ../../util/wmgenmenu.h:387
msgid "Unreal Tournament 2004"
msgstr ""
#: ../../util/wmgenmenu.h:388
msgid "Xonotic"
msgstr ""
#: ../../util/wmgenmenu.h:389
msgid "Descent 3"
msgstr ""
#: ../../util/wmgenmenu.h:390
msgid "Myth 2"
msgstr ""
#: ../../util/wmgenmenu.h:391 ../../util/wmgenmenu.h:392
#: ../../util/wmgenmenu.h:393
msgid "Sauerbraten"
msgstr ""
#: ../../util/wmgenmenu.h:394
msgid "Railroad Tycoon 2"
msgstr ""
#: ../../util/wmgenmenu.h:395
msgid "Heretic 2"
msgstr ""
#: ../../util/wmgenmenu.h:396
msgid "Kohan"
msgstr ""
#: ../../util/wmgenmenu.h:397
msgid "XQF"
msgstr ""
#: ../../util/wmgenmenu.h:402
msgid "OpenOffice.org Writer"
msgstr ""
#: ../../util/wmgenmenu.h:403
msgid "OpenOffice.org Calc"
msgstr ""
#: ../../util/wmgenmenu.h:404
msgid "OpenOffice.org Draw"
msgstr ""
#: ../../util/wmgenmenu.h:405
msgid "OpenOffice.org Impress"
msgstr ""
#: ../../util/wmgenmenu.h:406
msgid "OpenOffice.org Math"
msgstr ""
#: ../../util/wmgenmenu.h:407
msgid "OpenOffice.org"
msgstr ""
#: ../../util/wmgenmenu.h:408
msgid "StarOffice Writer"
msgstr ""
#: ../../util/wmgenmenu.h:409
msgid "StarOffice Calc"
msgstr ""
#: ../../util/wmgenmenu.h:410
msgid "StarOffice Draw"
msgstr ""
#: ../../util/wmgenmenu.h:411
msgid "StarOffice Impress"
msgstr ""
#: ../../util/wmgenmenu.h:412
msgid "StarOffice Math"
msgstr ""
#: ../../util/wmgenmenu.h:413
msgid "StarOffice"
msgstr ""
#: ../../util/wmgenmenu.h:414
msgid "LibreOffice Writer"
msgstr ""
#: ../../util/wmgenmenu.h:415
msgid "LibreOffice Calc"
msgstr ""
#: ../../util/wmgenmenu.h:416
msgid "LibreOffice Draw"
msgstr ""
#: ../../util/wmgenmenu.h:417
msgid "LibreOffice Impress"
msgstr ""
#: ../../util/wmgenmenu.h:418
msgid "LibreOffice Math"
msgstr ""
#: ../../util/wmgenmenu.h:419
msgid "LibreOffice Base"
msgstr ""
#: ../../util/wmgenmenu.h:420
msgid "LibreOffice Web"
msgstr ""
#: ../../util/wmgenmenu.h:421
msgid "LibreOffice"
msgstr ""
#: ../../util/wmgenmenu.h:422
msgid "AbiWord"
msgstr ""
#: ../../util/wmgenmenu.h:423
msgid "KWord"
msgstr ""
#: ../../util/wmgenmenu.h:424
msgid "KPresenter"
msgstr ""
#: ../../util/wmgenmenu.h:425
msgid "KSpread"
msgstr ""
#: ../../util/wmgenmenu.h:426
msgid "KChart"
msgstr ""
#: ../../util/wmgenmenu.h:427
msgid "KOrganizer"
msgstr ""
#: ../../util/wmgenmenu.h:428
msgid "LyX"
msgstr ""
#: ../../util/wmgenmenu.h:429
msgid "Klyx"
msgstr ""
#: ../../util/wmgenmenu.h:430
msgid "GnuCash"
msgstr ""
#: ../../util/wmgenmenu.h:431
msgid "Gnumeric"
msgstr ""
#: ../../util/wmgenmenu.h:432
msgid "GnomeCal"
msgstr ""
#: ../../util/wmgenmenu.h:433
msgid "GnomeCard"
msgstr ""
#: ../../util/wmgenmenu.h:438
msgid "gitk"
msgstr ""
#: ../../util/wmgenmenu.h:439
msgid "gitview"
msgstr ""
#: ../../util/wmgenmenu.h:440
msgid "qgit"
msgstr ""
#: ../../util/wmgenmenu.h:441
msgid "git-gui"
msgstr ""
#: ../../util/wmgenmenu.h:442
msgid "glimmer"
msgstr ""
#: ../../util/wmgenmenu.h:443
msgid "glade"
msgstr ""
#: ../../util/wmgenmenu.h:444
msgid "Geany"
msgstr ""
#: ../../util/wmgenmenu.h:445
msgid "Codeblocks"
msgstr ""
#: ../../util/wmgenmenu.h:446
msgid "kdevelop"
msgstr ""
#: ../../util/wmgenmenu.h:447
msgid "designer"
msgstr ""
#: ../../util/wmgenmenu.h:448
msgid "kbabel"
msgstr ""
#: ../../util/wmgenmenu.h:449
msgid "idle"
msgstr ""
#: ../../util/wmgenmenu.h:450
msgid "ghex"
msgstr ""
#: ../../util/wmgenmenu.h:451
msgid "hexedit"
msgstr ""
#: ../../util/wmgenmenu.h:452
msgid "memprof"
msgstr ""
#: ../../util/wmgenmenu.h:453
msgid "tclsh"
msgstr ""
#: ../../util/wmgenmenu.h:454
msgid "gdb"
msgstr ""
#: ../../util/wmgenmenu.h:455
msgid "xxgdb"
msgstr ""
#: ../../util/wmgenmenu.h:456
msgid "xev"
msgstr ""
#: ../../util/wmgenmenu.h:461
msgid "Iotop"
msgstr ""
#: ../../util/wmgenmenu.h:462
msgid "Iostat"
msgstr ""
#: ../../util/wmgenmenu.h:463
msgid "keybconf"
msgstr ""
#: ../../util/wmgenmenu.h:464
msgid "GNOME System Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:465
msgid "top"
msgstr ""
#: ../../util/wmgenmenu.h:466
msgid "KDE Process Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:467
msgid "gw"
msgstr ""
#: ../../util/wmgenmenu.h:468
msgid "GNOME Control Center"
msgstr ""
#: ../../util/wmgenmenu.h:469
msgid "GKrellM"
msgstr ""
#: ../../util/wmgenmenu.h:470
msgid "tksysv"
msgstr ""
#: ../../util/wmgenmenu.h:471
msgid "ksysv"
msgstr ""
#: ../../util/wmgenmenu.h:472
msgid "GNOME PPP"
msgstr ""
#: ../../util/wmgenmenu.h:477
msgid "YaST 2"
msgstr ""
#: ../../util/wmgenmenu.h:478
msgid "YaST"
msgstr ""
#: ../../util/wmgenmenu.h:479
msgid "System Settings"
msgstr ""
#: ../../util/wmgenmenu.h:480
msgid "UMTSMon"
msgstr ""
#: ../../util/wmgenmenu.h:485
msgid "DrakNetCenter"
msgstr ""
#: ../../util/wmgenmenu.h:486
msgid "RPMDrake"
msgstr ""
#: ../../util/wmgenmenu.h:487
msgid "HardDrake"
msgstr ""
#: ../../util/wmgenmenu.h:488
msgid "DrakConf"
msgstr ""
#: ../../util/wmgenmenu.h:489
msgid "MandrakeUpdate"
msgstr ""
#: ../../util/wmgenmenu.h:490
msgid "XDrakRes"
msgstr ""
#: ../../util/wmgenmenu.h:495
msgid "Docker"
msgstr ""
#: ../../util/wmgenmenu.h:496
msgid "Net"
msgstr ""
#: ../../util/wmgenmenu.h:497
msgid "Net Load"
msgstr ""
#: ../../util/wmgenmenu.h:498 ../../util/wmgenmenu.h:499
msgid "Ping"
msgstr ""
#: ../../util/wmgenmenu.h:500 ../../util/wmgenmenu.h:543
msgid "Power"
msgstr ""
#: ../../util/wmgenmenu.h:502
msgid "Harddisk Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:503
msgid "Download"
msgstr ""
#: ../../util/wmgenmenu.h:504
msgid "Dots"
msgstr ""
#: ../../util/wmgenmenu.h:505
msgid "Matrix"
msgstr ""
#: ../../util/wmgenmenu.h:506
msgid "Fire"
msgstr ""
#: ../../util/wmgenmenu.h:507
msgid "Net send"
msgstr ""
#: ../../util/wmgenmenu.h:508
msgid "Laptop"
msgstr ""
#: ../../util/wmgenmenu.h:509
msgid "WiFi"
msgstr ""
#: ../../util/wmgenmenu.h:510
msgid "Interface Info"
msgstr ""
#: ../../util/wmgenmenu.h:511 ../../util/wmgenmenu.h:512
#: ../../util/wmgenmenu.h:517
msgid "Weather"
msgstr ""
#: ../../util/wmgenmenu.h:513
msgid "Sticky Notes"
msgstr ""
#: ../../util/wmgenmenu.h:514
msgid "Pinboard"
msgstr ""
#: ../../util/wmgenmenu.h:515 ../../util/wmgenmenu.h:516
msgid "Mixer"
msgstr ""
#: ../../util/wmgenmenu.h:518
msgid "CPU Load"
msgstr ""
#: ../../util/wmgenmenu.h:519
msgid "CPU Freq"
msgstr ""
#: ../../util/wmgenmenu.h:520
msgid "Memory Load"
msgstr ""
#: ../../util/wmgenmenu.h:521
msgid "Memory Free"
msgstr ""
#: ../../util/wmgenmenu.h:522
msgid "Memory Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:523
msgid "Clock Mon"
msgstr ""
#: ../../util/wmgenmenu.h:524
msgid "Network Devices"
msgstr ""
#: ../../util/wmgenmenu.h:525
msgid "Calendar & Clock"
msgstr ""
#: ../../util/wmgenmenu.h:526
msgid "Time"
msgstr ""
#: ../../util/wmgenmenu.h:527
msgid "Date"
msgstr ""
#: ../../util/wmgenmenu.h:528
msgid "Time & Date"
msgstr ""
#: ../../util/wmgenmenu.h:529 ../../util/wmgenmenu.h:530
msgid "System Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:531
msgid "Sensor Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:532 ../../util/wmgenmenu.h:533
msgid "System Tray"
msgstr ""
#: ../../util/wmgenmenu.h:534
msgid "SMP Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:535
msgid "Timer"
msgstr ""
#: ../../util/wmgenmenu.h:536 ../../util/wmgenmenu.h:537
msgid "Mounter"
msgstr ""
#: ../../util/wmgenmenu.h:538
msgid "Uptime"
msgstr ""
#: ../../util/wmgenmenu.h:539
msgid "Work Timer"
msgstr ""
#: ../../util/wmgenmenu.h:540
msgid "Interfaces"
msgstr ""
#: ../../util/wmgenmenu.h:541
msgid "Button"
msgstr ""
#: ../../util/wmgenmenu.h:542
msgid "xmms"
msgstr ""
#: ../../util/wmgenmenu.h:544
msgid "Magnify"
msgstr ""
#: ../../util/wmgenmenu.h:549
msgid "IceWM"
msgstr ""
#: ../../util/wmgenmenu.h:550
msgid "KWin"
msgstr ""
#: ../../util/wmgenmenu.h:551
msgid "twm"
msgstr ""
#: ../../util/wmgenmenu.h:552
msgid "Fluxbox"
msgstr ""
#: ../../util/wmgenmenu.h:553
msgid "Blackbox"
msgstr ""
#: ../../util/wmgenmenu.h:554
msgid "Ion"
msgstr ""
#: ../../util/wmgenmenu.h:555
msgid "Motif Window Manager"
msgstr ""
#: ../../util/wmgenmenu.h:556
msgid "FVWM"
msgstr ""
#: ../../util/wmgenmenu.h:557
msgid "FVWM-Crystal"
msgstr ""
WindowMaker-0.95.8/util/po/nl.po 0000664 0001750 0001750 00000074026 12650014300 013333 0000000 0000000 # New translation into Dutch for Window Maker
# Copyright (C) 2014 Window Maker Developers Team
# This file is distributed under the same license as the windowmaker package.
# Original by Alwin , 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: wmaker-0.95.6+\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-12-21 21:25+0100\n"
"PO-Revision-Date: 2014-03-05 00:00+0000\n"
"Last-Translator: Alwin \n"
"Language-Team: Dutch\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Root -> Applications
#: ../../util/wmgenmenu.c:117
msgid "Applications"
msgstr "Programma's"
#. Root -> Applications ->
#: ../../util/wmgenmenu.c:120
msgid "Terminals"
msgstr "Terminals"
#. always keep terminals the top item
#: ../../util/wmgenmenu.c:121
msgid "Internet"
msgstr "Internet"
#: ../../util/wmgenmenu.c:122
msgid "Email"
msgstr "E-mail"
#: ../../util/wmgenmenu.c:123
msgid "Mathematics"
msgstr "Wiskunde"
#: ../../util/wmgenmenu.c:124
msgid "File Managers"
msgstr "Bestandsbeheerders"
#: ../../util/wmgenmenu.c:125
msgid "Graphics"
msgstr "Grafisch"
#: ../../util/wmgenmenu.c:126
msgid "Multimedia"
msgstr "Multimedia"
#: ../../util/wmgenmenu.c:127
msgid "Editors"
msgstr "Tekstbewerkers"
#: ../../util/wmgenmenu.c:128
msgid "Development"
msgstr "Ontwikkelen"
#: ../../util/wmgenmenu.c:130
msgid "Office"
msgstr "Kantoor"
#: ../../util/wmgenmenu.c:131
msgid "Astronomy"
msgstr "Sterrenkunde"
#: ../../util/wmgenmenu.c:132
msgid "Sound"
msgstr "Audio"
#: ../../util/wmgenmenu.c:133
msgid "Comics"
msgstr "Strips"
#: ../../util/wmgenmenu.c:134
msgid "Viewers"
msgstr "Viewers"
#: ../../util/wmgenmenu.c:135
msgid "Utilities"
msgstr "Hulpmiddelen"
#: ../../util/wmgenmenu.c:136
msgid "System"
msgstr "Systeem"
#: ../../util/wmgenmenu.c:137
msgid "Video"
msgstr "Video"
#: ../../util/wmgenmenu.c:138
msgid "Chat and Talk"
msgstr "Berichten en spraak"
#: ../../util/wmgenmenu.c:139
msgid "P2P Network"
msgstr "P2P-netwerk"
#: ../../util/wmgenmenu.c:140
msgid "Games"
msgstr "Spellen"
#: ../../util/wmgenmenu.c:148
msgid "Run..."
msgstr "Uitvoeren..."
#: ../../util/wmgenmenu.c:150
#, c-format
msgid "%A(Run, Type command:)"
msgstr "%A(Uitvoeren, Typ commando:)"
#. Root -> Appearance
#: ../../util/wmgenmenu.c:156
msgid "Appearance"
msgstr "Uiterlijk"
#: ../../util/wmgenmenu.c:160
msgid "Themes"
msgstr "Thema's"
#: ../../util/wmgenmenu.c:169
msgid "Styles"
msgstr "Stijlen"
#: ../../util/wmgenmenu.c:178
msgid "Icon Sets"
msgstr "Iconensets"
#. Root -> Appearance -> Background
#: ../../util/wmgenmenu.c:186
msgid "Background"
msgstr "Achtergrond"
#. Root -> Appearance -> Background -> Solid
#: ../../util/wmgenmenu.c:189
msgid "Solid"
msgstr "Effen"
#. Root -> Appearance -> Background -> Solid ->
#: ../../util/wmgenmenu.c:201
msgid "Black"
msgstr "Zwart"
#: ../../util/wmgenmenu.c:202
msgid "Blue"
msgstr "Blauw"
#: ../../util/wmgenmenu.c:203
msgid "Indigo"
msgstr "Indigo"
#: ../../util/wmgenmenu.c:204
msgid "Bluemarine"
msgstr "Marineblauw"
#: ../../util/wmgenmenu.c:205
msgid "Purple"
msgstr "Purper"
#: ../../util/wmgenmenu.c:206
msgid "Wheat"
msgstr "Tarwe"
#: ../../util/wmgenmenu.c:207
msgid "Dark Gray"
msgstr "Donkergrijs"
#: ../../util/wmgenmenu.c:208
msgid "Wine"
msgstr "Wijnrood"
#. Root -> Appearance -> Background -> Gradient
#: ../../util/wmgenmenu.c:213
msgid "Gradient"
msgstr "Kleurverloop"
#: ../../util/wmgenmenu.c:227
msgid "Sunset"
msgstr "Zonsondergang"
#: ../../util/wmgenmenu.c:234
msgid "Sky"
msgstr "Lucht"
#: ../../util/wmgenmenu.c:235
msgid "Blue Shades"
msgstr "Blauwtinten"
#: ../../util/wmgenmenu.c:236
msgid "Indigo Shades"
msgstr "Indigotinten"
#: ../../util/wmgenmenu.c:237
msgid "Purple Shades"
msgstr "Purpertinten"
#: ../../util/wmgenmenu.c:238
msgid "Wheat Shades"
msgstr "Tarwetinten"
#: ../../util/wmgenmenu.c:239
msgid "Grey Shades"
msgstr "Grijstinten"
#: ../../util/wmgenmenu.c:240
msgid "Wine Shades"
msgstr "Wijnroodtinten"
#: ../../util/wmgenmenu.c:246
msgid "Images"
msgstr "Afbeeldingen"
#: ../../util/wmgenmenu.c:257
msgid "Save Theme"
msgstr "Thema opslaan"
#: ../../util/wmgenmenu.c:266
msgid "Save IconSet"
msgstr "Iconenset opslaan"
#: ../../util/wmgenmenu.c:277
msgid "Workspaces"
msgstr "Werkruimten"
#. Root -> Workspace
#: ../../util/wmgenmenu.c:284
msgid "Workspace"
msgstr "Werkruimte"
#: ../../util/wmgenmenu.c:286
msgid "Hide Others"
msgstr "Andere verbergen"
#: ../../util/wmgenmenu.c:294
msgid "Show All"
msgstr "Alles tonen"
#: ../../util/wmgenmenu.c:302
msgid "Arrange Icons"
msgstr "Iconen schikken"
#: ../../util/wmgenmenu.c:310
msgid "Refresh"
msgstr "Vernieuwen"
#: ../../util/wmgenmenu.c:318
msgid "Save Session"
msgstr "Sessie opslaan"
#: ../../util/wmgenmenu.c:326
msgid "Clear Session"
msgstr "Sessie wissen"
#: ../../util/wmgenmenu.c:335
msgid "Configure Window Maker"
msgstr "Window Maker instellen"
#: ../../util/wmgenmenu.c:344
msgid "Info Panel"
msgstr "Infopaneel"
#: ../../util/wmgenmenu.c:352
msgid "Restart Window Maker"
msgstr "Window Maker herstarten"
#: ../../util/wmgenmenu.c:365
msgid "Lock Screen"
msgstr "Scherm vergrendelen"
#: ../../util/wmgenmenu.c:376
msgid "Exit Window Maker"
msgstr "Window Maker afsluiten"
#: ../../util/wmgenmenu.c:480
#, c-format
msgid "Start %s"
msgstr "%s starten"
#: ../../util/wmgenmenu.c:490
msgid "Other Window Managers"
msgstr "Andere vensterbeheerders"
#: ../../util/wmgenmenu.h:26
msgid "xterm"
msgstr ""
#: ../../util/wmgenmenu.h:27
msgid "mrxvt"
msgstr ""
#: ../../util/wmgenmenu.h:28
msgid "Konsole"
msgstr ""
#: ../../util/wmgenmenu.h:29
msgid "Urxvt"
msgstr ""
#: ../../util/wmgenmenu.h:34
msgid "Dolphin"
msgstr ""
#: ../../util/wmgenmenu.h:35
msgid "Thunar"
msgstr ""
#: ../../util/wmgenmenu.h:36
msgid "ROX filer"
msgstr ""
#: ../../util/wmgenmenu.h:37
msgid "PCManFM"
msgstr ""
#: ../../util/wmgenmenu.h:38
msgid "GWorkspace"
msgstr ""
#: ../../util/wmgenmenu.h:39
msgid "Midnight Commander"
msgstr ""
#: ../../util/wmgenmenu.h:40
msgid "XFTree"
msgstr ""
#: ../../util/wmgenmenu.h:41 ../../util/wmgenmenu.h:140
msgid "Konqueror"
msgstr ""
#: ../../util/wmgenmenu.h:42
msgid "Nautilus"
msgstr ""
#: ../../util/wmgenmenu.h:43
msgid "FSViewer"
msgstr ""
#: ../../util/wmgenmenu.h:44
msgid "Xfe"
msgstr ""
#: ../../util/wmgenmenu.h:49
msgid "Xmaxima"
msgstr ""
#: ../../util/wmgenmenu.h:50
msgid "Maxima"
msgstr ""
#: ../../util/wmgenmenu.h:51
msgid "Maple"
msgstr ""
#: ../../util/wmgenmenu.h:52
msgid "Scilab"
msgstr ""
#: ../../util/wmgenmenu.h:53
msgid "bc"
msgstr ""
#: ../../util/wmgenmenu.h:54
msgid "KCalc"
msgstr ""
#: ../../util/wmgenmenu.h:55
msgid "XCalc"
msgstr ""
#: ../../util/wmgenmenu.h:56
msgid "Mathematica"
msgstr ""
#: ../../util/wmgenmenu.h:57
msgid "Math"
msgstr ""
#. command-line Mathematica
#: ../../util/wmgenmenu.h:58
msgid "Free42"
msgstr ""
#: ../../util/wmgenmenu.h:59
msgid "X48"
msgstr ""
#: ../../util/wmgenmenu.h:64
msgid "Xplns"
msgstr ""
#: ../../util/wmgenmenu.h:65
msgid "Stellarium"
msgstr ""
#: ../../util/wmgenmenu.h:70
msgid "GIMP"
msgstr ""
#: ../../util/wmgenmenu.h:71
msgid "Sodipodi"
msgstr ""
#: ../../util/wmgenmenu.h:72
msgid "Inkscape"
msgstr ""
#: ../../util/wmgenmenu.h:73
msgid "KIllustrator"
msgstr ""
#: ../../util/wmgenmenu.h:74
msgid "Krayon"
msgstr ""
#: ../../util/wmgenmenu.h:75
msgid "KPovModeler"
msgstr ""
#: ../../util/wmgenmenu.h:76
msgid "XBitmap"
msgstr ""
#: ../../util/wmgenmenu.h:77
msgid "XPaint"
msgstr ""
#: ../../util/wmgenmenu.h:78
msgid "XFig"
msgstr ""
#: ../../util/wmgenmenu.h:79
msgid "KPaint"
msgstr ""
#: ../../util/wmgenmenu.h:80
msgid "Blender"
msgstr ""
#: ../../util/wmgenmenu.h:81
msgid "KSnapshot"
msgstr ""
#: ../../util/wmgenmenu.h:82
msgid "GPhoto"
msgstr ""
#: ../../util/wmgenmenu.h:83
msgid "DigiKam"
msgstr ""
#: ../../util/wmgenmenu.h:84
msgid "GQview"
msgstr ""
#: ../../util/wmgenmenu.h:85
msgid "Geeqie"
msgstr ""
#: ../../util/wmgenmenu.h:86
msgid "KView"
msgstr ""
#: ../../util/wmgenmenu.h:87
msgid "Dia"
msgstr ""
#: ../../util/wmgenmenu.h:88
msgid "CompuPic"
msgstr ""
#: ../../util/wmgenmenu.h:89
msgid "Pixie"
msgstr ""
#: ../../util/wmgenmenu.h:90
msgid "ImageMagick Display"
msgstr ""
#: ../../util/wmgenmenu.h:91
msgid "XV"
msgstr ""
#: ../../util/wmgenmenu.h:92
msgid "Eye of GNOME"
msgstr ""
#: ../../util/wmgenmenu.h:93
msgid "Quick Image Viewer"
msgstr ""
#: ../../util/wmgenmenu.h:98 ../../util/wmgenmenu.h:501
msgid "Audacious"
msgstr ""
#: ../../util/wmgenmenu.h:99
msgid "Kaffeine"
msgstr ""
#: ../../util/wmgenmenu.h:100
msgid "Audacity"
msgstr ""
#: ../../util/wmgenmenu.h:101
msgid "Amarok"
msgstr ""
#: ../../util/wmgenmenu.h:102
msgid "XMMS"
msgstr ""
#: ../../util/wmgenmenu.h:103
msgid "K9Copy"
msgstr ""
#: ../../util/wmgenmenu.h:104
msgid "HandBrake"
msgstr ""
#: ../../util/wmgenmenu.h:105
msgid "OGMRip"
msgstr ""
#: ../../util/wmgenmenu.h:106
msgid "DVBcut"
msgstr ""
#: ../../util/wmgenmenu.h:107
msgid "AcidRip"
msgstr ""
#: ../../util/wmgenmenu.h:108
msgid "RipperX"
msgstr ""
#: ../../util/wmgenmenu.h:109
msgid "Avidemux"
msgstr ""
#: ../../util/wmgenmenu.h:110
msgid "GQmpeg"
msgstr ""
#: ../../util/wmgenmenu.h:111
msgid "SMPlayer"
msgstr ""
#: ../../util/wmgenmenu.h:112
msgid "Linux MultiMedia Studio"
msgstr ""
#: ../../util/wmgenmenu.h:113
msgid "Freeamp"
msgstr ""
#: ../../util/wmgenmenu.h:114
msgid "RealPlayer"
msgstr ""
#: ../../util/wmgenmenu.h:115
msgid "Mediathek"
msgstr ""
#: ../../util/wmgenmenu.h:116
msgid "KMid"
msgstr ""
#: ../../util/wmgenmenu.h:117
msgid "Kmidi"
msgstr ""
#: ../../util/wmgenmenu.h:118
msgid "Gtcd"
msgstr ""
#: ../../util/wmgenmenu.h:119
msgid "Grip"
msgstr ""
#: ../../util/wmgenmenu.h:120
msgid "AVIplay"
msgstr ""
#: ../../util/wmgenmenu.h:121
msgid "Gtv"
msgstr ""
#: ../../util/wmgenmenu.h:122
msgid "VLC"
msgstr ""
#: ../../util/wmgenmenu.h:123
msgid "Sinek"
msgstr ""
#: ../../util/wmgenmenu.h:124
msgid "xine"
msgstr ""
#: ../../util/wmgenmenu.h:125
msgid "aKtion"
msgstr ""
#: ../../util/wmgenmenu.h:126
msgid "Gcd"
msgstr ""
#: ../../util/wmgenmenu.h:127
msgid "XawTV"
msgstr ""
#: ../../util/wmgenmenu.h:128
msgid "XPlayCD"
msgstr ""
#: ../../util/wmgenmenu.h:129
msgid "XBMC"
msgstr ""
#: ../../util/wmgenmenu.h:134 ../../util/wmgenmenu.h:135
msgid "Chromium"
msgstr ""
#: ../../util/wmgenmenu.h:136
msgid "Google Chrome"
msgstr ""
#: ../../util/wmgenmenu.h:137
msgid "Mozilla Firefox"
msgstr ""
#: ../../util/wmgenmenu.h:138
msgid "Galeon"
msgstr ""
#: ../../util/wmgenmenu.h:139
msgid "SkipStone"
msgstr ""
#: ../../util/wmgenmenu.h:141
msgid "Dillo"
msgstr ""
#: ../../util/wmgenmenu.h:142
msgid "Epiphany"
msgstr ""
#: ../../util/wmgenmenu.h:143
msgid "Opera"
msgstr ""
#: ../../util/wmgenmenu.h:144
msgid "Midori"
msgstr ""
#: ../../util/wmgenmenu.h:145
msgid "Mozilla SeaMonkey"
msgstr ""
#: ../../util/wmgenmenu.h:146
msgid "Kazehakase"
msgstr ""
#: ../../util/wmgenmenu.h:147
msgid "Links"
msgstr ""
#: ../../util/wmgenmenu.h:148
msgid "Lynx"
msgstr ""
#: ../../util/wmgenmenu.h:149
msgid "W3M"
msgstr ""
#: ../../util/wmgenmenu.h:154
msgid "Mozilla Thunderbird"
msgstr ""
#: ../../util/wmgenmenu.h:155
msgid "Mutt"
msgstr ""
#: ../../util/wmgenmenu.h:156
msgid "GNUMail"
msgstr ""
#: ../../util/wmgenmenu.h:157
msgid "Claws Mail"
msgstr ""
#: ../../util/wmgenmenu.h:158
msgid "Evolution"
msgstr ""
#: ../../util/wmgenmenu.h:159
msgid "Kleopatra"
msgstr ""
#: ../../util/wmgenmenu.h:160
msgid "Sylpheed"
msgstr ""
#: ../../util/wmgenmenu.h:161
msgid "Spruce"
msgstr ""
#: ../../util/wmgenmenu.h:162
msgid "KMail"
msgstr ""
#: ../../util/wmgenmenu.h:163
msgid "Exmh"
msgstr ""
#: ../../util/wmgenmenu.h:164
msgid "Pine"
msgstr ""
#: ../../util/wmgenmenu.h:165
msgid "ELM"
msgstr ""
#: ../../util/wmgenmenu.h:166
msgid "Alpine"
msgstr ""
#: ../../util/wmgenmenu.h:171
msgid "soundKonverter"
msgstr ""
#: ../../util/wmgenmenu.h:172
msgid "Krecord"
msgstr ""
#: ../../util/wmgenmenu.h:173
msgid "Grecord"
msgstr ""
#: ../../util/wmgenmenu.h:174
msgid "ALSA mixer"
msgstr ""
#: ../../util/wmgenmenu.h:175
msgid "VolWheel"
msgstr ""
#: ../../util/wmgenmenu.h:176
msgid "Sound configuration"
msgstr ""
#: ../../util/wmgenmenu.h:177
msgid "aumix"
msgstr ""
#: ../../util/wmgenmenu.h:178
msgid "Gmix"
msgstr ""
#: ../../util/wmgenmenu.h:183
msgid "XJed"
msgstr ""
#: ../../util/wmgenmenu.h:184
msgid "Jed"
msgstr ""
#: ../../util/wmgenmenu.h:185
msgid "Emacs"
msgstr ""
#: ../../util/wmgenmenu.h:186
msgid "XEmacs"
msgstr ""
#: ../../util/wmgenmenu.h:187
msgid "SciTE"
msgstr ""
#: ../../util/wmgenmenu.h:188
msgid "Bluefish"
msgstr ""
#: ../../util/wmgenmenu.h:189
msgid "gVIM"
msgstr ""
#: ../../util/wmgenmenu.h:190
msgid "vi"
msgstr ""
#: ../../util/wmgenmenu.h:191
msgid "VIM"
msgstr ""
#: ../../util/wmgenmenu.h:192
msgid "gedit"
msgstr ""
#: ../../util/wmgenmenu.h:193
msgid "KEdit"
msgstr ""
#: ../../util/wmgenmenu.h:194
msgid "XEdit"
msgstr ""
#: ../../util/wmgenmenu.h:195
msgid "KWrite"
msgstr ""
#: ../../util/wmgenmenu.h:196
msgid "Kate"
msgstr ""
#: ../../util/wmgenmenu.h:197
msgid "Pico"
msgstr ""
#: ../../util/wmgenmenu.h:198
msgid "Nano"
msgstr ""
#: ../../util/wmgenmenu.h:199
msgid "Joe"
msgstr ""
#: ../../util/wmgenmenu.h:204
msgid "Omnia data"
msgstr ""
#: ../../util/wmgenmenu.h:205
msgid "Comix"
msgstr ""
#: ../../util/wmgenmenu.h:206
msgid "QComicBook"
msgstr ""
#: ../../util/wmgenmenu.h:211
msgid "Evince"
msgstr ""
#: ../../util/wmgenmenu.h:212
msgid "KGhostView"
msgstr ""
#: ../../util/wmgenmenu.h:213
msgid "gv"
msgstr ""
#: ../../util/wmgenmenu.h:214
msgid "ePDFView"
msgstr ""
#: ../../util/wmgenmenu.h:215
msgid "GGv"
msgstr ""
#: ../../util/wmgenmenu.h:216
msgid "Xdvi"
msgstr ""
#: ../../util/wmgenmenu.h:217
msgid "KDVI"
msgstr ""
#: ../../util/wmgenmenu.h:218
msgid "Xpdf"
msgstr ""
#: ../../util/wmgenmenu.h:219
msgid "Adobe Reader"
msgstr ""
#: ../../util/wmgenmenu.h:220
msgid "Gless"
msgstr ""
#: ../../util/wmgenmenu.h:225
msgid "Google Desktop"
msgstr ""
#: ../../util/wmgenmenu.h:226
msgid "K3B"
msgstr ""
#: ../../util/wmgenmenu.h:227
msgid "X-CD-Roast"
msgstr ""
#: ../../util/wmgenmenu.h:228
msgid "Nero Linux"
msgstr ""
#: ../../util/wmgenmenu.h:229
msgid "Nero Linux Express"
msgstr ""
#: ../../util/wmgenmenu.h:230
msgid "gtkfind"
msgstr ""
#: ../../util/wmgenmenu.h:231
msgid "gdict"
msgstr ""
#: ../../util/wmgenmenu.h:232
msgid "gpsdrive"
msgstr ""
#: ../../util/wmgenmenu.h:233
msgid "Task Coach"
msgstr ""
#: ../../util/wmgenmenu.h:234
msgid "XSnap"
msgstr ""
#: ../../util/wmgenmenu.h:235
msgid "Screengrab"
msgstr ""
#: ../../util/wmgenmenu.h:236
msgid "XSane"
msgstr ""
#: ../../util/wmgenmenu.h:237
msgid "wfcmgr"
msgstr ""
#: ../../util/wmgenmenu.h:238
msgid "switch"
msgstr ""
#: ../../util/wmgenmenu.h:239
msgid "Cairo Clock"
msgstr ""
#: ../../util/wmgenmenu.h:240
msgid "Conky"
msgstr ""
#: ../../util/wmgenmenu.h:241
msgid "GNU Privacy Assistant"
msgstr ""
#: ../../util/wmgenmenu.h:242
msgid "Vidalia (tor)"
msgstr ""
#: ../../util/wmgenmenu.h:243
msgid "kaddressbook"
msgstr ""
#: ../../util/wmgenmenu.h:244
msgid "kab"
msgstr ""
#: ../../util/wmgenmenu.h:245
msgid "Filezilla"
msgstr ""
#: ../../util/wmgenmenu.h:246
msgid "Bleachbit"
msgstr ""
#: ../../util/wmgenmenu.h:247
msgid "Teamviewer"
msgstr ""
#: ../../util/wmgenmenu.h:248
msgid "gUVCView"
msgstr ""
#: ../../util/wmgenmenu.h:249
msgid "LinPopUp"
msgstr ""
#: ../../util/wmgenmenu.h:250
msgid "Wine Configurator"
msgstr ""
#: ../../util/wmgenmenu.h:251
msgid "NMap"
msgstr ""
#: ../../util/wmgenmenu.h:252
msgid "Hydra"
msgstr ""
#: ../../util/wmgenmenu.h:253
msgid "XTeddy"
msgstr ""
#: ../../util/wmgenmenu.h:254
msgid "XTeddy TEST"
msgstr ""
#: ../../util/wmgenmenu.h:255
msgid "VNC Viewer"
msgstr ""
#: ../../util/wmgenmenu.h:256
msgid "Java Control Panel"
msgstr ""
#: ../../util/wmgenmenu.h:257
msgid "kfind"
msgstr ""
#: ../../util/wmgenmenu.h:258
msgid "oclock"
msgstr ""
#: ../../util/wmgenmenu.h:259
msgid "rclock"
msgstr ""
#: ../../util/wmgenmenu.h:260
msgid "Isomaster"
msgstr ""
#: ../../util/wmgenmenu.h:261
msgid "xclock"
msgstr ""
#: ../../util/wmgenmenu.h:262
msgid "HP Systray"
msgstr ""
#: ../../util/wmgenmenu.h:263
msgid "kppp"
msgstr ""
#: ../../util/wmgenmenu.h:264
msgid "Xarchiver"
msgstr ""
#: ../../util/wmgenmenu.h:273
msgid "Pidgin"
msgstr ""
#: ../../util/wmgenmenu.h:274
msgid "Skype"
msgstr ""
#: ../../util/wmgenmenu.h:275
msgid "Gizmo"
msgstr ""
#: ../../util/wmgenmenu.h:276
msgid "Gajim"
msgstr ""
#: ../../util/wmgenmenu.h:277
msgid "Kopete"
msgstr ""
#: ../../util/wmgenmenu.h:278
msgid "XChat"
msgstr ""
#: ../../util/wmgenmenu.h:279
msgid "Ekiga"
msgstr ""
#: ../../util/wmgenmenu.h:280
msgid "KVIrc"
msgstr ""
#: ../../util/wmgenmenu.h:281
msgid "BitchX"
msgstr ""
#: ../../util/wmgenmenu.h:282
msgid "EPIC"
msgstr ""
#: ../../util/wmgenmenu.h:283
msgid "Linphone"
msgstr ""
#: ../../util/wmgenmenu.h:284
msgid "Mumble"
msgstr ""
#: ../../util/wmgenmenu.h:285
msgid "EPIC4"
msgstr ""
#: ../../util/wmgenmenu.h:286
msgid "Irssi"
msgstr ""
#: ../../util/wmgenmenu.h:287
msgid "TinyIRC"
msgstr ""
#: ../../util/wmgenmenu.h:288
msgid "Ksirc"
msgstr ""
#: ../../util/wmgenmenu.h:289
msgid "gtalk"
msgstr ""
#: ../../util/wmgenmenu.h:290
msgid "GnomeICU"
msgstr ""
#: ../../util/wmgenmenu.h:291
msgid "Licq"
msgstr ""
#: ../../util/wmgenmenu.h:292
msgid "aMSN"
msgstr ""
#: ../../util/wmgenmenu.h:297
msgid "aMule"
msgstr ""
#: ../../util/wmgenmenu.h:298
msgid "gFTP"
msgstr ""
#: ../../util/wmgenmenu.h:299
msgid "Smb4K"
msgstr ""
#: ../../util/wmgenmenu.h:300
msgid "KTorrent"
msgstr ""
#: ../../util/wmgenmenu.h:301
msgid "BitTorrent GUI"
msgstr ""
#: ../../util/wmgenmenu.h:302
msgid "Transmission GTK"
msgstr ""
#: ../../util/wmgenmenu.h:303
msgid "ftp"
msgstr ""
#: ../../util/wmgenmenu.h:304
msgid "Deluge"
msgstr ""
#: ../../util/wmgenmenu.h:305
msgid "sftp"
msgstr ""
#: ../../util/wmgenmenu.h:306
msgid "Pavuk"
msgstr ""
#: ../../util/wmgenmenu.h:307
msgid "gtm"
msgstr ""
#: ../../util/wmgenmenu.h:308
msgid "Gnut"
msgstr ""
#: ../../util/wmgenmenu.h:309
msgid "GTK Gnutella"
msgstr ""
#: ../../util/wmgenmenu.h:310
msgid "Gnutmeg"
msgstr ""
#: ../../util/wmgenmenu.h:315
msgid "FlightGear Flight Simulator"
msgstr ""
#: ../../util/wmgenmenu.h:316
msgid "Tremulous"
msgstr ""
#: ../../util/wmgenmenu.h:317
msgid "XBoard"
msgstr ""
#: ../../util/wmgenmenu.h:318
msgid "GNOME Chess"
msgstr ""
#: ../../util/wmgenmenu.h:319
msgid "Darkplaces (Quake 1)"
msgstr ""
#: ../../util/wmgenmenu.h:320
msgid "QuakeSpasm (Quake 1)"
msgstr ""
#: ../../util/wmgenmenu.h:321
msgid "Quake 2"
msgstr ""
#: ../../util/wmgenmenu.h:322
msgid "KM Quake 2 (Quake 2"
msgstr ""
#: ../../util/wmgenmenu.h:323
msgid "QMax (Quake 2"
msgstr ""
#: ../../util/wmgenmenu.h:324
msgid "Quake 3"
msgstr ""
#: ../../util/wmgenmenu.h:325
msgid "Quake 4"
msgstr ""
#: ../../util/wmgenmenu.h:326
msgid "Quake 4 SMP"
msgstr ""
#: ../../util/wmgenmenu.h:327
msgid "Openarena"
msgstr ""
#: ../../util/wmgenmenu.h:328
msgid "Quake 3: Urban Terror 2"
msgstr ""
#: ../../util/wmgenmenu.h:329
msgid "Soldier of Fortune"
msgstr ""
#: ../../util/wmgenmenu.h:330
msgid "Rune"
msgstr ""
#: ../../util/wmgenmenu.h:331
msgid "Doom 3"
msgstr ""
#: ../../util/wmgenmenu.h:332
msgid "Zelda Solarus"
msgstr ""
#: ../../util/wmgenmenu.h:333
msgid "Solarwolf"
msgstr ""
#: ../../util/wmgenmenu.h:334
msgid "Pachi"
msgstr ""
#: ../../util/wmgenmenu.h:335
msgid "Tribes 2"
msgstr ""
#: ../../util/wmgenmenu.h:336
msgid "GNUjump"
msgstr ""
#: ../../util/wmgenmenu.h:337
msgid "Supertransball 2"
msgstr ""
#: ../../util/wmgenmenu.h:338
msgid "Supertux"
msgstr ""
#: ../../util/wmgenmenu.h:339
msgid "Supertux 2"
msgstr ""
#: ../../util/wmgenmenu.h:340
msgid "Mega Mario"
msgstr ""
#: ../../util/wmgenmenu.h:341
msgid "Frogatto"
msgstr ""
#: ../../util/wmgenmenu.h:342
msgid "Minecraft"
msgstr ""
#: ../../util/wmgenmenu.h:343
msgid "Alienarena"
msgstr ""
#: ../../util/wmgenmenu.h:344
msgid "Nexuiz"
msgstr ""
#: ../../util/wmgenmenu.h:345
msgid "Bomberclone"
msgstr ""
#: ../../util/wmgenmenu.h:346
msgid "Chromium-BSU"
msgstr ""
#: ../../util/wmgenmenu.h:347
msgid "Clanbomber"
msgstr ""
#: ../../util/wmgenmenu.h:348
msgid "Clanbomber 2"
msgstr ""
#: ../../util/wmgenmenu.h:349
msgid "Defendguin"
msgstr ""
#: ../../util/wmgenmenu.h:350
msgid "Dosbox"
msgstr ""
#: ../../util/wmgenmenu.h:351
msgid "Duke Nukem 3D"
msgstr ""
#: ../../util/wmgenmenu.h:352
msgid "eDuke32"
msgstr ""
#: ../../util/wmgenmenu.h:353
msgid "Emilia Pinball"
msgstr ""
#: ../../util/wmgenmenu.h:354
msgid "Extreme-Tuxracer"
msgstr ""
#: ../../util/wmgenmenu.h:355
msgid "Freedroid RPG"
msgstr ""
#: ../../util/wmgenmenu.h:356
msgid "Frozen Bubble"
msgstr ""
#: ../../util/wmgenmenu.h:357
msgid "Frozen Bubble Editor"
msgstr ""
#: ../../util/wmgenmenu.h:358
msgid "GL 117"
msgstr ""
#: ../../util/wmgenmenu.h:359
msgid "LBreakout 2"
msgstr ""
#: ../../util/wmgenmenu.h:360
msgid "Legends"
msgstr ""
#: ../../util/wmgenmenu.h:361
msgid "Lincity-NG"
msgstr ""
#: ../../util/wmgenmenu.h:362
msgid "Neverball"
msgstr ""
#: ../../util/wmgenmenu.h:363
msgid "Neverput"
msgstr ""
#: ../../util/wmgenmenu.h:364
msgid "Openastromenace"
msgstr ""
#: ../../util/wmgenmenu.h:365
msgid "Penguin Command"
msgstr ""
#: ../../util/wmgenmenu.h:366
msgid "Powermanga"
msgstr ""
#: ../../util/wmgenmenu.h:367
msgid "Return to Castle Wolfenstein SP"
msgstr ""
#: ../../util/wmgenmenu.h:368
msgid "Return to Castle Wolfenstein MP"
msgstr ""
#: ../../util/wmgenmenu.h:369
msgid "Snes9X"
msgstr ""
#: ../../util/wmgenmenu.h:370
msgid "Slune"
msgstr ""
#: ../../util/wmgenmenu.h:371
msgid "Torcs"
msgstr ""
#: ../../util/wmgenmenu.h:372
msgid "Speed Dreams"
msgstr ""
#: ../../util/wmgenmenu.h:373
msgid "Trackballs"
msgstr ""
#: ../../util/wmgenmenu.h:374
msgid "VDrift"
msgstr ""
#: ../../util/wmgenmenu.h:375
msgid "Warmux"
msgstr ""
#: ../../util/wmgenmenu.h:376
msgid "Warsow"
msgstr ""
#: ../../util/wmgenmenu.h:377
msgid "Wesnoth"
msgstr ""
#: ../../util/wmgenmenu.h:378
msgid "World of Padman"
msgstr ""
#: ../../util/wmgenmenu.h:379
msgid "XBlast"
msgstr ""
#: ../../util/wmgenmenu.h:380
msgid "XPenguins"
msgstr ""
#: ../../util/wmgenmenu.h:381
msgid "XTux"
msgstr ""
#: ../../util/wmgenmenu.h:382 ../../util/wmgenmenu.h:383
msgid "The Mana World"
msgstr ""
#: ../../util/wmgenmenu.h:384
msgid "Super Mario Chronicles"
msgstr ""
#: ../../util/wmgenmenu.h:385
msgid "Unreal"
msgstr ""
#: ../../util/wmgenmenu.h:386
msgid "Unreal Tournament"
msgstr ""
#: ../../util/wmgenmenu.h:387
msgid "Unreal Tournament 2004"
msgstr ""
#: ../../util/wmgenmenu.h:388
msgid "Xonotic"
msgstr ""
#: ../../util/wmgenmenu.h:389
msgid "Descent 3"
msgstr ""
#: ../../util/wmgenmenu.h:390
msgid "Myth 2"
msgstr ""
#: ../../util/wmgenmenu.h:391 ../../util/wmgenmenu.h:392
#: ../../util/wmgenmenu.h:393
msgid "Sauerbraten"
msgstr ""
#: ../../util/wmgenmenu.h:394
msgid "Railroad Tycoon 2"
msgstr ""
#: ../../util/wmgenmenu.h:395
msgid "Heretic 2"
msgstr ""
#: ../../util/wmgenmenu.h:396
msgid "Kohan"
msgstr ""
#: ../../util/wmgenmenu.h:397
msgid "XQF"
msgstr ""
#: ../../util/wmgenmenu.h:402
msgid "OpenOffice.org Writer"
msgstr ""
#: ../../util/wmgenmenu.h:403
msgid "OpenOffice.org Calc"
msgstr ""
#: ../../util/wmgenmenu.h:404
msgid "OpenOffice.org Draw"
msgstr ""
#: ../../util/wmgenmenu.h:405
msgid "OpenOffice.org Impress"
msgstr ""
#: ../../util/wmgenmenu.h:406
msgid "OpenOffice.org Math"
msgstr ""
#: ../../util/wmgenmenu.h:407
msgid "OpenOffice.org"
msgstr ""
#: ../../util/wmgenmenu.h:408
msgid "StarOffice Writer"
msgstr ""
#: ../../util/wmgenmenu.h:409
msgid "StarOffice Calc"
msgstr ""
#: ../../util/wmgenmenu.h:410
msgid "StarOffice Draw"
msgstr ""
#: ../../util/wmgenmenu.h:411
msgid "StarOffice Impress"
msgstr ""
#: ../../util/wmgenmenu.h:412
msgid "StarOffice Math"
msgstr ""
#: ../../util/wmgenmenu.h:413
msgid "StarOffice"
msgstr ""
#: ../../util/wmgenmenu.h:414
msgid "LibreOffice Writer"
msgstr ""
#: ../../util/wmgenmenu.h:415
msgid "LibreOffice Calc"
msgstr ""
#: ../../util/wmgenmenu.h:416
msgid "LibreOffice Draw"
msgstr ""
#: ../../util/wmgenmenu.h:417
msgid "LibreOffice Impress"
msgstr ""
#: ../../util/wmgenmenu.h:418
msgid "LibreOffice Math"
msgstr ""
#: ../../util/wmgenmenu.h:419
msgid "LibreOffice Base"
msgstr ""
#: ../../util/wmgenmenu.h:420
msgid "LibreOffice Web"
msgstr ""
#: ../../util/wmgenmenu.h:421
msgid "LibreOffice"
msgstr ""
#: ../../util/wmgenmenu.h:422
msgid "AbiWord"
msgstr ""
#: ../../util/wmgenmenu.h:423
msgid "KWord"
msgstr ""
#: ../../util/wmgenmenu.h:424
msgid "KPresenter"
msgstr ""
#: ../../util/wmgenmenu.h:425
msgid "KSpread"
msgstr ""
#: ../../util/wmgenmenu.h:426
msgid "KChart"
msgstr ""
#: ../../util/wmgenmenu.h:427
msgid "KOrganizer"
msgstr ""
#: ../../util/wmgenmenu.h:428
msgid "LyX"
msgstr ""
#: ../../util/wmgenmenu.h:429
msgid "Klyx"
msgstr ""
#: ../../util/wmgenmenu.h:430
msgid "GnuCash"
msgstr ""
#: ../../util/wmgenmenu.h:431
msgid "Gnumeric"
msgstr ""
#: ../../util/wmgenmenu.h:432
msgid "GnomeCal"
msgstr ""
#: ../../util/wmgenmenu.h:433
msgid "GnomeCard"
msgstr ""
#: ../../util/wmgenmenu.h:438
msgid "gitk"
msgstr ""
#: ../../util/wmgenmenu.h:439
msgid "gitview"
msgstr ""
#: ../../util/wmgenmenu.h:440
msgid "qgit"
msgstr ""
#: ../../util/wmgenmenu.h:441
msgid "git-gui"
msgstr ""
#: ../../util/wmgenmenu.h:442
msgid "glimmer"
msgstr ""
#: ../../util/wmgenmenu.h:443
msgid "glade"
msgstr ""
#: ../../util/wmgenmenu.h:444
msgid "Geany"
msgstr ""
#: ../../util/wmgenmenu.h:445
msgid "Codeblocks"
msgstr ""
#: ../../util/wmgenmenu.h:446
msgid "kdevelop"
msgstr ""
#: ../../util/wmgenmenu.h:447
msgid "designer"
msgstr ""
#: ../../util/wmgenmenu.h:448
msgid "kbabel"
msgstr ""
#: ../../util/wmgenmenu.h:449
msgid "idle"
msgstr ""
#: ../../util/wmgenmenu.h:450
msgid "ghex"
msgstr ""
#: ../../util/wmgenmenu.h:451
msgid "hexedit"
msgstr ""
#: ../../util/wmgenmenu.h:452
msgid "memprof"
msgstr ""
#: ../../util/wmgenmenu.h:453
msgid "tclsh"
msgstr ""
#: ../../util/wmgenmenu.h:454
msgid "gdb"
msgstr ""
#: ../../util/wmgenmenu.h:455
msgid "xxgdb"
msgstr ""
#: ../../util/wmgenmenu.h:456
msgid "xev"
msgstr ""
#: ../../util/wmgenmenu.h:461
msgid "Iotop"
msgstr ""
#: ../../util/wmgenmenu.h:462
msgid "Iostat"
msgstr ""
#: ../../util/wmgenmenu.h:463
msgid "keybconf"
msgstr ""
#: ../../util/wmgenmenu.h:464
msgid "GNOME System Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:465
msgid "top"
msgstr ""
#: ../../util/wmgenmenu.h:466
msgid "KDE Process Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:467
msgid "gw"
msgstr ""
#: ../../util/wmgenmenu.h:468
msgid "GNOME Control Center"
msgstr ""
#: ../../util/wmgenmenu.h:469
msgid "GKrellM"
msgstr ""
#: ../../util/wmgenmenu.h:470
msgid "tksysv"
msgstr ""
#: ../../util/wmgenmenu.h:471
msgid "ksysv"
msgstr ""
#: ../../util/wmgenmenu.h:472
msgid "GNOME PPP"
msgstr ""
#: ../../util/wmgenmenu.h:477
msgid "YaST 2"
msgstr ""
#: ../../util/wmgenmenu.h:478
msgid "YaST"
msgstr ""
#: ../../util/wmgenmenu.h:479
msgid "System Settings"
msgstr ""
#: ../../util/wmgenmenu.h:480
msgid "UMTSMon"
msgstr ""
#: ../../util/wmgenmenu.h:485
msgid "DrakNetCenter"
msgstr ""
#: ../../util/wmgenmenu.h:486
msgid "RPMDrake"
msgstr ""
#: ../../util/wmgenmenu.h:487
msgid "HardDrake"
msgstr ""
#: ../../util/wmgenmenu.h:488
msgid "DrakConf"
msgstr ""
#: ../../util/wmgenmenu.h:489
msgid "MandrakeUpdate"
msgstr ""
#: ../../util/wmgenmenu.h:490
msgid "XDrakRes"
msgstr ""
#: ../../util/wmgenmenu.h:495
msgid "Docker"
msgstr ""
#: ../../util/wmgenmenu.h:496
msgid "Net"
msgstr ""
#: ../../util/wmgenmenu.h:497
msgid "Net Load"
msgstr ""
#: ../../util/wmgenmenu.h:498 ../../util/wmgenmenu.h:499
msgid "Ping"
msgstr ""
#: ../../util/wmgenmenu.h:500 ../../util/wmgenmenu.h:543
msgid "Power"
msgstr ""
#: ../../util/wmgenmenu.h:502
msgid "Harddisk Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:503
msgid "Download"
msgstr ""
#: ../../util/wmgenmenu.h:504
msgid "Dots"
msgstr ""
#: ../../util/wmgenmenu.h:505
msgid "Matrix"
msgstr ""
#: ../../util/wmgenmenu.h:506
msgid "Fire"
msgstr ""
#: ../../util/wmgenmenu.h:507
msgid "Net send"
msgstr ""
#: ../../util/wmgenmenu.h:508
msgid "Laptop"
msgstr ""
#: ../../util/wmgenmenu.h:509
msgid "WiFi"
msgstr ""
#: ../../util/wmgenmenu.h:510
msgid "Interface Info"
msgstr ""
#: ../../util/wmgenmenu.h:511 ../../util/wmgenmenu.h:512
#: ../../util/wmgenmenu.h:517
msgid "Weather"
msgstr ""
#: ../../util/wmgenmenu.h:513
msgid "Sticky Notes"
msgstr ""
#: ../../util/wmgenmenu.h:514
msgid "Pinboard"
msgstr ""
#: ../../util/wmgenmenu.h:515 ../../util/wmgenmenu.h:516
msgid "Mixer"
msgstr ""
#: ../../util/wmgenmenu.h:518
msgid "CPU Load"
msgstr ""
#: ../../util/wmgenmenu.h:519
msgid "CPU Freq"
msgstr ""
#: ../../util/wmgenmenu.h:520
msgid "Memory Load"
msgstr ""
#: ../../util/wmgenmenu.h:521
msgid "Memory Free"
msgstr ""
#: ../../util/wmgenmenu.h:522
msgid "Memory Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:523
msgid "Clock Mon"
msgstr ""
#: ../../util/wmgenmenu.h:524
msgid "Network Devices"
msgstr ""
#: ../../util/wmgenmenu.h:525
msgid "Calendar & Clock"
msgstr ""
#: ../../util/wmgenmenu.h:526
msgid "Time"
msgstr ""
#: ../../util/wmgenmenu.h:527
msgid "Date"
msgstr ""
#: ../../util/wmgenmenu.h:528
msgid "Time & Date"
msgstr ""
#: ../../util/wmgenmenu.h:529 ../../util/wmgenmenu.h:530
msgid "System Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:531
msgid "Sensor Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:532 ../../util/wmgenmenu.h:533
msgid "System Tray"
msgstr ""
#: ../../util/wmgenmenu.h:534
msgid "SMP Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:535
msgid "Timer"
msgstr ""
#: ../../util/wmgenmenu.h:536 ../../util/wmgenmenu.h:537
msgid "Mounter"
msgstr ""
#: ../../util/wmgenmenu.h:538
msgid "Uptime"
msgstr ""
#: ../../util/wmgenmenu.h:539
msgid "Work Timer"
msgstr ""
#: ../../util/wmgenmenu.h:540
msgid "Interfaces"
msgstr ""
#: ../../util/wmgenmenu.h:541
msgid "Button"
msgstr ""
#: ../../util/wmgenmenu.h:542
msgid "xmms"
msgstr ""
#: ../../util/wmgenmenu.h:544
msgid "Magnify"
msgstr ""
#: ../../util/wmgenmenu.h:549
msgid "IceWM"
msgstr ""
#: ../../util/wmgenmenu.h:550
msgid "KWin"
msgstr ""
#: ../../util/wmgenmenu.h:551
msgid "twm"
msgstr ""
#: ../../util/wmgenmenu.h:552
msgid "Fluxbox"
msgstr ""
#: ../../util/wmgenmenu.h:553
msgid "Blackbox"
msgstr ""
#: ../../util/wmgenmenu.h:554
msgid "Ion"
msgstr ""
#: ../../util/wmgenmenu.h:555
msgid "Motif Window Manager"
msgstr ""
#: ../../util/wmgenmenu.h:556
msgid "FVWM"
msgstr ""
#: ../../util/wmgenmenu.h:557
msgid "FVWM-Crystal"
msgstr ""
WindowMaker-0.95.8/util/po/Makefile.am 0000664 0001750 0001750 00000002450 12650014300 014406 0000000 0000000 DOMAIN = wmgenmenu
CATALOGS = @UTILMOFILES@
CLEANFILES = $(DOMAIN).pot $(CATALOGS)
EXTRA_DIST = de.po es.po fr.po fy.po nl.po pt.po
POTFILES = \
$(top_srcdir)/util/wmgenmenu.c \
$(top_srcdir)/util/wmgenmenu.h
SUFFIXES = .po .mo
.po.mo:
$(AM_V_GEN)$(MSGFMT) -c -o $@ $<
all-local: $(CATALOGS)
.PHONY: update-lang
if HAVE_XGETTEXT
update-lang: $(DOMAIN).pot
$(AM_V_GEN)$(top_srcdir)/script/generate-po-from-template.sh \
-n "$(PACKAGE_NAME)" -v "$(PACKAGE_VERSION)" -b "$(PACKAGE_BUGREPORT)" \
-t "$(DOMAIN).pot" "$(srcdir)/$(PO).po"
$(DOMAIN).pot: $(POTFILES)
$(AM_V_GEN)$(XGETTEXT) --default-domain=$(DOMAIN) \
--add-comments --keyword=_ --keyword=N_ $(POTFILES)
@if cmp -s $(DOMAIN).po $(DOMAIN).pot; then \
rm -f $(DOMAIN).po; \
else \
mv -f $(DOMAIN).po $(DOMAIN).pot; \
fi
endif
install-data-local: $(CATALOGS)
$(mkinstalldirs) $(DESTDIR)$(localedir)
for n in $(CATALOGS) __DuMmY ; do \
if test "$$n" -a "$$n" != "__DuMmY" ; then \
l=`basename $$n .mo`; \
$(mkinstalldirs) $(DESTDIR)$(localedir)/$$l/LC_MESSAGES; \
$(INSTALL_DATA) -m 644 $$n $(DESTDIR)$(localedir)/$$l/LC_MESSAGES/$(DOMAIN).mo; \
fi; \
done
uninstall-local:
for n in $(CATALOGS) ; do \
l=`basename $$n .mo`; \
rm -f $(DESTDIR)$(localedir)/$$l/LC_MESSAGES/$(DOMAIN).mo; \
done
WindowMaker-0.95.8/util/po/de.po 0000664 0001750 0001750 00000007663 12650014300 013315 0000000 0000000 # wmgenmenu German translation
# Copyright (C) 2010 Carlos R. Mafra
# This file is distributed under the same license as the Window Maker package.
# Carlos R. Mafra , 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: wmgenmenu\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-01-27 12:57+0100\n"
"PO-Revision-Date: 2010-04-02 10:39+0200\n"
"Last-Translator: Carlos R. Mafra \n"
"Language-Team: German \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../util/wmgenmenu.c:78 ../../util/wmgenmenu.c:91
msgid "Window Maker"
msgstr "Window Maker"
#: ../../util/wmgenmenu.c:79
msgid "Applications"
msgstr "Anwendungen"
#. Submenus in Applications
#: ../../util/wmgenmenu.c:82
msgid "Terminals"
msgstr "Terminals"
#: ../../util/wmgenmenu.c:83
msgid "Internet"
msgstr "Internet"
#: ../../util/wmgenmenu.c:84
msgid "Email"
msgstr "E-Mail"
#: ../../util/wmgenmenu.c:85
msgid "Mathematics"
msgstr "Mathematik"
#: ../../util/wmgenmenu.c:86
msgid "File Managers"
msgstr "Dateimanager"
#: ../../util/wmgenmenu.c:87
msgid "Graphics"
msgstr "Grafik"
#: ../../util/wmgenmenu.c:88
msgid "Multimedia"
msgstr "Multimedia"
#: ../../util/wmgenmenu.c:89
msgid "Editors"
msgstr "Text-Editoren"
#: ../../util/wmgenmenu.c:90
msgid "Development"
msgstr "Entwicklung"
#: ../../util/wmgenmenu.c:92
msgid "Office"
msgstr "Büro"
#: ../../util/wmgenmenu.c:93
msgid "Astronomy"
msgstr "Astronomie"
#: ../../util/wmgenmenu.c:94
msgid "Sound"
msgstr "Audio"
#: ../../util/wmgenmenu.c:95
msgid "Comics"
msgstr "Comic"
#: ../../util/wmgenmenu.c:96
msgid "Viewers"
msgstr "Dokumentbetrachter"
#: ../../util/wmgenmenu.c:97
msgid "Utilities"
msgstr "Hilfsprogramme"
#: ../../util/wmgenmenu.c:98
msgid "System"
msgstr "System"
#: ../../util/wmgenmenu.c:99
msgid "Video"
msgstr "Video"
#: ../../util/wmgenmenu.c:100
msgid "Chat and Talk"
msgstr "Chat und Besprechung"
#: ../../util/wmgenmenu.c:101
msgid "P2P-Network"
msgstr "P2P-Netzwerk"
#: ../../util/wmgenmenu.c:102
msgid "Games"
msgstr "Spiele"
#: ../../util/wmgenmenu.c:103
msgid "OpenSUSE"
msgstr ""
#: ../../util/wmgenmenu.c:104
msgid "Mandriva"
msgstr ""
#: ../../util/wmgenmenu.c:110
msgid "Run..."
msgstr "Ausführen..."
#: ../../util/wmgenmenu.c:112
msgid "%A(Run, Type command:)"
msgstr "%A(Ausführen, Befehl zum Ausführen eingeben:)"
#. Appearance-related items
#: ../../util/wmgenmenu.c:118
msgid "Appearance"
msgstr "Erscheinungsbild"
#: ../../util/wmgenmenu.c:120
msgid "Themes"
msgstr "Themen"
#: ../../util/wmgenmenu.c:128
msgid "Icons"
msgstr "Iconsätze"
#: ../../util/wmgenmenu.c:136
msgid "Background"
msgstr "Hintergrund"
#: ../../util/wmgenmenu.c:144
msgid "Save Theme"
msgstr "Thema speichern"
#: ../../util/wmgenmenu.c:152
msgid "Save Icons"
msgstr "Iconsatz speichern"
#: ../../util/wmgenmenu.c:162
msgid "Workspaces"
msgstr "Arbeitsflächen"
#: ../../util/wmgenmenu.c:168
msgid "Workspace"
msgstr "Arbeitsfläche"
#: ../../util/wmgenmenu.c:170
msgid "Hide Others"
msgstr "Ändere verstecken"
#: ../../util/wmgenmenu.c:176
msgid "Show All"
msgstr "Alle anzeigen"
#: ../../util/wmgenmenu.c:182
msgid "Arrange Icons"
msgstr "Icons anordnen"
#: ../../util/wmgenmenu.c:189
msgid "Refresh"
msgstr "Neuzeichen"
#: ../../util/wmgenmenu.c:195
msgid "Save Session"
msgstr "Arbeitsplatz sichern"
#: ../../util/wmgenmenu.c:201
msgid "Clear Session"
msgstr "X Sitzung leeren"
#: ../../util/wmgenmenu.c:209
msgid "Configure Window Maker"
msgstr "Window Maker Einstellungen"
#: ../../util/wmgenmenu.c:217
msgid "Info Panel"
msgstr "Info-Panel"
#: ../../util/wmgenmenu.c:224
msgid "Restart"
msgstr "Neustart"
#: ../../util/wmgenmenu.c:237
msgid "Lock Screen"
msgstr "Bildschirm sperren"
#: ../../util/wmgenmenu.c:248
msgid "Exit Window Maker"
msgstr "Window Maker beenden"
#: ../../util/wmgenmenu.c:317
#, c-format
msgid "Start %s"
msgstr "%s starten"
#: ../../util/wmgenmenu.c:325
msgid "Other Window Managers"
msgstr "Andere Fenstermanager"
WindowMaker-0.95.8/util/po/pt.po 0000664 0001750 0001750 00000053731 12650014300 013345 0000000 0000000 # wmgenmenu Portuguese translation
# Copyright (C) 2012 Leandro Vital
# This file is distributed under the same license as the Window Maker package.
# Leandro Vital, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: wmgenmenu\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-02-10 00:04+0100\n"
"PO-Revision-Date: 2011-02-05 12:19-0500\n"
"Last-Translator: Leandro Vital \n"
"Language-Team: Portuguese\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Root -> Applications
#: ../../util/wmgenmenu.c:103
msgid "Applications"
msgstr "Aplicativos"
#. Root -> Applications ->
#: ../../util/wmgenmenu.c:106
msgid "Terminals"
msgstr "Terminais"
#. always keep terminals the top item
#: ../../util/wmgenmenu.c:107
msgid "Internet"
msgstr "Internet"
#: ../../util/wmgenmenu.c:108
msgid "Email"
msgstr "Email"
#: ../../util/wmgenmenu.c:109
msgid "Mathematics"
msgstr "Matemática"
#: ../../util/wmgenmenu.c:110
msgid "File Managers"
msgstr "Gerenciadores de arquivos"
#: ../../util/wmgenmenu.c:111
msgid "Graphics"
msgstr "Gráficos"
#: ../../util/wmgenmenu.c:112
msgid "Multimedia"
msgstr "Multimídia"
#: ../../util/wmgenmenu.c:113
msgid "Editors"
msgstr "Editores"
#: ../../util/wmgenmenu.c:114
msgid "Development"
msgstr "Desenvolvimento"
#: ../../util/wmgenmenu.c:116
msgid "Office"
msgstr "Suítes Office"
#: ../../util/wmgenmenu.c:117
msgid "Astronomy"
msgstr "Astronomía"
#: ../../util/wmgenmenu.c:118
msgid "Sound"
msgstr "Som"
#: ../../util/wmgenmenu.c:119
msgid "Comics"
msgstr "Revistas em quadrinhos"
#: ../../util/wmgenmenu.c:120
msgid "Viewers"
msgstr "Visualizadores"
#: ../../util/wmgenmenu.c:121
msgid "Utilities"
msgstr "Utilitários"
#: ../../util/wmgenmenu.c:122
msgid "System"
msgstr "Sistema"
#: ../../util/wmgenmenu.c:123
msgid "Video"
msgstr "Video"
#: ../../util/wmgenmenu.c:124
msgid "Chat and Talk"
msgstr "Bate-papo"
#: ../../util/wmgenmenu.c:125
msgid "P2P Network"
msgstr "Redes P2P"
#: ../../util/wmgenmenu.c:126
msgid "Games"
msgstr "Jogos"
#: ../../util/wmgenmenu.c:134
msgid "Run..."
msgstr "Executar..."
#: ../../util/wmgenmenu.c:136
#, c-format
msgid "%A(Run, Type command:)"
msgstr "%A(Executar, digite o comando:)"
#. Root -> Appearance
#: ../../util/wmgenmenu.c:142
msgid "Appearance"
msgstr "Aparência"
#: ../../util/wmgenmenu.c:146
msgid "Themes"
msgstr "Temas"
#: ../../util/wmgenmenu.c:155
msgid "Styles"
msgstr "Estilos"
#: ../../util/wmgenmenu.c:164
msgid "Icon Sets"
msgstr "Ícones"
#. Root -> Appearance -> Background
#: ../../util/wmgenmenu.c:172
msgid "Background"
msgstr "Plano de fundo"
#. Root -> Appearance -> Background -> Solid
#: ../../util/wmgenmenu.c:175
msgid "Solid"
msgstr "Sólido"
#. Root -> Appearance -> Background -> Solid ->
#: ../../util/wmgenmenu.c:187
msgid "Black"
msgstr "Preto"
#: ../../util/wmgenmenu.c:188
msgid "Blue"
msgstr "Ametista escuro"
#: ../../util/wmgenmenu.c:189
msgid "Indigo"
msgstr "Anil"
#: ../../util/wmgenmenu.c:190
msgid "Bluemarine"
msgstr "Turquesa"
#: ../../util/wmgenmenu.c:191
msgid "Purple"
msgstr "Púrpura"
#: ../../util/wmgenmenu.c:192
msgid "Wheat"
msgstr "Pardo"
#: ../../util/wmgenmenu.c:193
msgid "Dark Gray"
msgstr "Cinza escuro"
#: ../../util/wmgenmenu.c:194
msgid "Wine"
msgstr "Vinho"
#. Root -> Appearance -> Background -> Gradient
#: ../../util/wmgenmenu.c:199
msgid "Gradient"
msgstr "Degradê"
#: ../../util/wmgenmenu.c:213
msgid "Sunset"
msgstr "Pôr do sol"
#: ../../util/wmgenmenu.c:220
msgid "Sky"
msgstr "Céu"
#: ../../util/wmgenmenu.c:221
msgid "Blue Shades"
msgstr "Ametista escuro"
#: ../../util/wmgenmenu.c:222
msgid "Indigo Shades"
msgstr "Anil"
#: ../../util/wmgenmenu.c:223
msgid "Purple Shades"
msgstr "Púrpura"
#: ../../util/wmgenmenu.c:224
msgid "Wheat Shades"
msgstr "Pardo"
#: ../../util/wmgenmenu.c:225
msgid "Grey Shades"
msgstr "Cinza Escuro"
#: ../../util/wmgenmenu.c:226
msgid "Wine Shades"
msgstr "Vinho"
#: ../../util/wmgenmenu.c:232
msgid "Images"
msgstr "Imagens"
#: ../../util/wmgenmenu.c:243
msgid "Save Theme"
msgstr "Salvar tema"
#: ../../util/wmgenmenu.c:253
msgid "Save IconSet"
msgstr "Salvar ícones"
#: ../../util/wmgenmenu.c:264
msgid "Workspaces"
msgstr "Áreas de trabalho"
#. Root -> Workspace
#: ../../util/wmgenmenu.c:271
msgid "Workspace"
msgstr "Área de trabalho"
#: ../../util/wmgenmenu.c:273
msgid "Hide Others"
msgstr "Minimizar janelas"
#: ../../util/wmgenmenu.c:281
msgid "Show All"
msgstr "Maximizar janelas"
#: ../../util/wmgenmenu.c:289
msgid "Arrange Icons"
msgstr "Organizar ícones"
#: ../../util/wmgenmenu.c:297
msgid "Refresh"
msgstr "Atualizar"
#: ../../util/wmgenmenu.c:305
msgid "Save Session"
msgstr "Salvar sessão"
#: ../../util/wmgenmenu.c:313
msgid "Clear Session"
msgstr "Reiniciar sessão"
#: ../../util/wmgenmenu.c:322
msgid "Configure Window Maker"
msgstr "Configurar WindowMaker"
#: ../../util/wmgenmenu.c:331
msgid "Info Panel"
msgstr "Painel de informações"
#: ../../util/wmgenmenu.c:339
msgid "Restart Window Maker"
msgstr "Reiniciar Window Maker"
#: ../../util/wmgenmenu.c:352
msgid "Lock Screen"
msgstr "Bloquear sessão"
#: ../../util/wmgenmenu.c:363
msgid "Exit Window Maker"
msgstr "Sair do Window Maker"
#: ../../util/wmgenmenu.c:458
#, c-format
msgid "Start %s"
msgstr "Iniciar %s"
#: ../../util/wmgenmenu.c:468
msgid "Other Window Managers"
msgstr "Gerenciadores de janela"
#: ../../util/wmgenmenu.h:9
msgid "xterm"
msgstr ""
#: ../../util/wmgenmenu.h:10
msgid "mrxvt"
msgstr ""
#: ../../util/wmgenmenu.h:11
msgid "Konsole"
msgstr ""
#: ../../util/wmgenmenu.h:16
msgid "Dolphin"
msgstr ""
#: ../../util/wmgenmenu.h:17
msgid "Thunar"
msgstr ""
#: ../../util/wmgenmenu.h:18
msgid "ROX filer"
msgstr ""
#: ../../util/wmgenmenu.h:19
msgid "GWorkspace"
msgstr ""
#: ../../util/wmgenmenu.h:20
msgid "Midnight Commander"
msgstr ""
#: ../../util/wmgenmenu.h:21
msgid "XFTree"
msgstr ""
#: ../../util/wmgenmenu.h:22 ../../util/wmgenmenu.h:118
msgid "Konqueror"
msgstr ""
#: ../../util/wmgenmenu.h:23
msgid "Nautilus"
msgstr ""
#: ../../util/wmgenmenu.h:24
msgid "FSViewer"
msgstr ""
#: ../../util/wmgenmenu.h:25
msgid "Xfe"
msgstr ""
#: ../../util/wmgenmenu.h:30
msgid "Xmaxima"
msgstr ""
#: ../../util/wmgenmenu.h:31
msgid "Maxima"
msgstr ""
#: ../../util/wmgenmenu.h:32
msgid "Maple"
msgstr ""
#: ../../util/wmgenmenu.h:33
msgid "Scilab"
msgstr ""
#: ../../util/wmgenmenu.h:34
msgid "bc"
msgstr ""
#: ../../util/wmgenmenu.h:35
msgid "KCalc"
msgstr ""
#: ../../util/wmgenmenu.h:36
msgid "XCalc"
msgstr ""
#: ../../util/wmgenmenu.h:37
msgid "Mathematica"
msgstr ""
#: ../../util/wmgenmenu.h:38
msgid "Math"
msgstr ""
#. command-line Mathematica
#: ../../util/wmgenmenu.h:39
msgid "Free42"
msgstr ""
#: ../../util/wmgenmenu.h:40
msgid "X48"
msgstr ""
#: ../../util/wmgenmenu.h:45
msgid "Xplns"
msgstr ""
#: ../../util/wmgenmenu.h:46
msgid "Stellarium"
msgstr ""
#: ../../util/wmgenmenu.h:51
msgid "GIMP"
msgstr ""
#: ../../util/wmgenmenu.h:52
msgid "Sodipodi"
msgstr ""
#: ../../util/wmgenmenu.h:53
msgid "Inkscape"
msgstr ""
#: ../../util/wmgenmenu.h:54
msgid "KIllustrator"
msgstr ""
#: ../../util/wmgenmenu.h:55
msgid "Krayon"
msgstr ""
#: ../../util/wmgenmenu.h:56
msgid "KPovModeler"
msgstr ""
#: ../../util/wmgenmenu.h:57
msgid "XBitmap"
msgstr ""
#: ../../util/wmgenmenu.h:58
msgid "XPaint"
msgstr ""
#: ../../util/wmgenmenu.h:59
msgid "XFig"
msgstr ""
#: ../../util/wmgenmenu.h:60
msgid "KPaint"
msgstr ""
#: ../../util/wmgenmenu.h:61
msgid "Blender"
msgstr ""
#: ../../util/wmgenmenu.h:62
msgid "KSnapshot"
msgstr ""
#: ../../util/wmgenmenu.h:63
msgid "GPhoto"
msgstr ""
#: ../../util/wmgenmenu.h:64
msgid "DigiKam"
msgstr ""
#: ../../util/wmgenmenu.h:65
msgid "Dia"
msgstr ""
#: ../../util/wmgenmenu.h:66
msgid "CompuPic"
msgstr ""
#: ../../util/wmgenmenu.h:67
msgid "GQview"
msgstr ""
#: ../../util/wmgenmenu.h:68
msgid "Geeqie"
msgstr ""
#: ../../util/wmgenmenu.h:69
msgid "KView"
msgstr ""
#: ../../util/wmgenmenu.h:70
msgid "Pixie"
msgstr ""
#: ../../util/wmgenmenu.h:71
msgid "ImageMagick Display"
msgstr ""
#: ../../util/wmgenmenu.h:72
msgid "XV"
msgstr ""
#: ../../util/wmgenmenu.h:73
msgid "Eye of GNOME"
msgstr ""
#: ../../util/wmgenmenu.h:74
msgid "Quick Image Viewer"
msgstr ""
#: ../../util/wmgenmenu.h:79
msgid "Audacious"
msgstr ""
#: ../../util/wmgenmenu.h:80 ../../util/wmgenmenu.h:216
msgid "Kaffeine"
msgstr ""
#: ../../util/wmgenmenu.h:81
msgid "Audacity"
msgstr ""
#: ../../util/wmgenmenu.h:82
msgid "Amarok"
msgstr ""
#: ../../util/wmgenmenu.h:83
msgid "XMMS"
msgstr ""
#: ../../util/wmgenmenu.h:84
msgid "K9Copy"
msgstr ""
#: ../../util/wmgenmenu.h:85
msgid "HandBrake"
msgstr ""
#: ../../util/wmgenmenu.h:86
msgid "OGMRip"
msgstr ""
#: ../../util/wmgenmenu.h:87
msgid "DVBcut"
msgstr ""
#: ../../util/wmgenmenu.h:88
msgid "AcidRip"
msgstr ""
#: ../../util/wmgenmenu.h:89
msgid "Avidemux"
msgstr ""
#: ../../util/wmgenmenu.h:90
msgid "GQmpeg"
msgstr ""
#: ../../util/wmgenmenu.h:91
msgid "Freeamp"
msgstr ""
#: ../../util/wmgenmenu.h:92
msgid "RealPlayer"
msgstr ""
#: ../../util/wmgenmenu.h:93
msgid "Mediathek"
msgstr ""
#: ../../util/wmgenmenu.h:94
msgid "KMid"
msgstr ""
#: ../../util/wmgenmenu.h:95
msgid "Kmidi"
msgstr ""
#: ../../util/wmgenmenu.h:96
msgid "Gtcd"
msgstr ""
#: ../../util/wmgenmenu.h:97
msgid "Grip"
msgstr ""
#: ../../util/wmgenmenu.h:98
msgid "AVIplay"
msgstr ""
#: ../../util/wmgenmenu.h:99
msgid "Gtv"
msgstr ""
#: ../../util/wmgenmenu.h:100
msgid "VLC"
msgstr ""
#: ../../util/wmgenmenu.h:101
msgid "Sinek"
msgstr ""
#: ../../util/wmgenmenu.h:102
msgid "xine"
msgstr ""
#: ../../util/wmgenmenu.h:103
msgid "aKtion"
msgstr ""
#: ../../util/wmgenmenu.h:104
msgid "Gcd"
msgstr ""
#: ../../util/wmgenmenu.h:105
msgid "XawTV"
msgstr ""
#: ../../util/wmgenmenu.h:106
msgid "X-CD-Roast"
msgstr ""
#: ../../util/wmgenmenu.h:107
msgid "XPlayCD"
msgstr ""
#: ../../util/wmgenmenu.h:112 ../../util/wmgenmenu.h:113
msgid "Chromium"
msgstr ""
#: ../../util/wmgenmenu.h:114
msgid "Google Chrome"
msgstr ""
#: ../../util/wmgenmenu.h:115
msgid "Mozilla Firefox"
msgstr ""
#: ../../util/wmgenmenu.h:116
msgid "Galeon"
msgstr ""
#: ../../util/wmgenmenu.h:117
msgid "SkipStone"
msgstr ""
#: ../../util/wmgenmenu.h:119
msgid "Dillo"
msgstr ""
#: ../../util/wmgenmenu.h:120
msgid "Epiphany"
msgstr ""
#: ../../util/wmgenmenu.h:121
msgid "Opera"
msgstr ""
#: ../../util/wmgenmenu.h:122
msgid "Midori"
msgstr ""
#: ../../util/wmgenmenu.h:123
msgid "Mozilla SeaMonkey"
msgstr ""
#: ../../util/wmgenmenu.h:124
msgid "Kazehakase"
msgstr ""
#: ../../util/wmgenmenu.h:125
msgid "Links"
msgstr ""
#: ../../util/wmgenmenu.h:126
msgid "Lynx"
msgstr ""
#: ../../util/wmgenmenu.h:127
msgid "W3M"
msgstr ""
#: ../../util/wmgenmenu.h:132
msgid "Mozilla Thunderbird"
msgstr ""
#: ../../util/wmgenmenu.h:133
msgid "Mutt"
msgstr ""
#: ../../util/wmgenmenu.h:134
msgid "GNUMail"
msgstr ""
#: ../../util/wmgenmenu.h:135
msgid "Evolution"
msgstr ""
#: ../../util/wmgenmenu.h:136
msgid "Kleopatra"
msgstr ""
#: ../../util/wmgenmenu.h:137
msgid "Sylpheed"
msgstr ""
#: ../../util/wmgenmenu.h:138
msgid "Spruce"
msgstr ""
#: ../../util/wmgenmenu.h:139
msgid "KMail"
msgstr ""
#: ../../util/wmgenmenu.h:140
msgid "Exmh"
msgstr ""
#: ../../util/wmgenmenu.h:141
msgid "Pine"
msgstr ""
#: ../../util/wmgenmenu.h:142
msgid "ELM"
msgstr ""
#: ../../util/wmgenmenu.h:143
msgid "Alpine"
msgstr ""
#: ../../util/wmgenmenu.h:148
msgid "soundKonverter"
msgstr ""
#: ../../util/wmgenmenu.h:149
msgid "Krecord"
msgstr ""
#: ../../util/wmgenmenu.h:150
msgid "Grecord"
msgstr ""
#: ../../util/wmgenmenu.h:151
msgid "ALSA mixer"
msgstr ""
#: ../../util/wmgenmenu.h:152
msgid "Sound configuration"
msgstr ""
#: ../../util/wmgenmenu.h:153
msgid "aumix"
msgstr ""
#: ../../util/wmgenmenu.h:154
msgid "Gmix"
msgstr ""
#: ../../util/wmgenmenu.h:159
msgid "XJed"
msgstr ""
#: ../../util/wmgenmenu.h:160
msgid "Jed"
msgstr ""
#: ../../util/wmgenmenu.h:161
msgid "Emacs"
msgstr ""
#: ../../util/wmgenmenu.h:162
msgid "XEmacs"
msgstr ""
#: ../../util/wmgenmenu.h:163
msgid "gVIM"
msgstr ""
#: ../../util/wmgenmenu.h:164
msgid "vi"
msgstr ""
#: ../../util/wmgenmenu.h:165
msgid "VIM"
msgstr ""
#: ../../util/wmgenmenu.h:166
msgid "gedit"
msgstr ""
#: ../../util/wmgenmenu.h:167
msgid "KEdit"
msgstr ""
#: ../../util/wmgenmenu.h:168
msgid "XEdit"
msgstr ""
#: ../../util/wmgenmenu.h:169
msgid "KWrite"
msgstr ""
#: ../../util/wmgenmenu.h:170
msgid "Kate"
msgstr ""
#: ../../util/wmgenmenu.h:171
msgid "Pico"
msgstr ""
#: ../../util/wmgenmenu.h:172
msgid "Nano"
msgstr ""
#: ../../util/wmgenmenu.h:173
msgid "Joe"
msgstr ""
#: ../../util/wmgenmenu.h:178
msgid "Omnia data"
msgstr ""
#: ../../util/wmgenmenu.h:179
msgid "Comix"
msgstr ""
#: ../../util/wmgenmenu.h:180
msgid "QComicBook"
msgstr ""
#: ../../util/wmgenmenu.h:185
msgid "Evince"
msgstr ""
#: ../../util/wmgenmenu.h:186
msgid "KGhostView"
msgstr ""
#: ../../util/wmgenmenu.h:187
msgid "gv"
msgstr ""
#: ../../util/wmgenmenu.h:188
msgid "GGv"
msgstr ""
#: ../../util/wmgenmenu.h:189
msgid "Xdvi"
msgstr ""
#: ../../util/wmgenmenu.h:190
msgid "KDVI"
msgstr ""
#: ../../util/wmgenmenu.h:191
msgid "Xpdf"
msgstr ""
#: ../../util/wmgenmenu.h:192
msgid "Adobe Reader"
msgstr ""
#: ../../util/wmgenmenu.h:193
msgid "Gless"
msgstr ""
#: ../../util/wmgenmenu.h:198
msgid "Google Desktop"
msgstr ""
#: ../../util/wmgenmenu.h:199
msgid "K3B"
msgstr ""
#: ../../util/wmgenmenu.h:200
msgid "gtkfind"
msgstr ""
#: ../../util/wmgenmenu.h:201
msgid "gdict"
msgstr ""
#: ../../util/wmgenmenu.h:202
msgid "gpsdrive"
msgstr ""
#: ../../util/wmgenmenu.h:203
msgid "wfcmgr"
msgstr ""
#: ../../util/wmgenmenu.h:204
msgid "switch"
msgstr ""
#: ../../util/wmgenmenu.h:205
msgid "kaddressbook"
msgstr ""
#: ../../util/wmgenmenu.h:206
msgid "kab"
msgstr ""
#: ../../util/wmgenmenu.h:207
msgid "kfind"
msgstr ""
#: ../../util/wmgenmenu.h:208
msgid "oclock"
msgstr ""
#: ../../util/wmgenmenu.h:209
msgid "rclock"
msgstr ""
#: ../../util/wmgenmenu.h:210
msgid "xclock"
msgstr ""
#: ../../util/wmgenmenu.h:211
msgid "kppp"
msgstr ""
#: ../../util/wmgenmenu.h:217
msgid "Ekiga"
msgstr ""
#: ../../util/wmgenmenu.h:222
msgid "Pidgin"
msgstr ""
#: ../../util/wmgenmenu.h:223
msgid "Skype"
msgstr ""
#: ../../util/wmgenmenu.h:224
msgid "Gizmo"
msgstr ""
#: ../../util/wmgenmenu.h:225
msgid "Kopete"
msgstr ""
#: ../../util/wmgenmenu.h:226
msgid "XChat"
msgstr ""
#: ../../util/wmgenmenu.h:227
msgid "KVIrc"
msgstr ""
#: ../../util/wmgenmenu.h:228
msgid "BitchX"
msgstr ""
#: ../../util/wmgenmenu.h:229
msgid "EPIC"
msgstr ""
#: ../../util/wmgenmenu.h:230
msgid "EPIC4"
msgstr ""
#: ../../util/wmgenmenu.h:231
msgid "Irssi"
msgstr ""
#: ../../util/wmgenmenu.h:232
msgid "TinyIRC"
msgstr ""
#: ../../util/wmgenmenu.h:233
msgid "Ksirc"
msgstr ""
#: ../../util/wmgenmenu.h:234
msgid "gtalk"
msgstr ""
#: ../../util/wmgenmenu.h:235
msgid "GnomeICU"
msgstr ""
#: ../../util/wmgenmenu.h:236
msgid "Licq"
msgstr ""
#: ../../util/wmgenmenu.h:237
msgid "aMSN"
msgstr ""
#: ../../util/wmgenmenu.h:242
msgid "aMule"
msgstr ""
#: ../../util/wmgenmenu.h:243
msgid "gFTP"
msgstr ""
#: ../../util/wmgenmenu.h:244
msgid "Smb4K"
msgstr ""
#: ../../util/wmgenmenu.h:245
msgid "KTorrent"
msgstr ""
#: ../../util/wmgenmenu.h:246
msgid "BitTorrent GUI"
msgstr ""
#: ../../util/wmgenmenu.h:247
msgid "ftp"
msgstr ""
#: ../../util/wmgenmenu.h:248
msgid "sftp"
msgstr ""
#: ../../util/wmgenmenu.h:249
msgid "Pavuk"
msgstr ""
#: ../../util/wmgenmenu.h:250
msgid "gtm"
msgstr ""
#: ../../util/wmgenmenu.h:251
msgid "Gnut"
msgstr ""
#: ../../util/wmgenmenu.h:252
msgid "GTK Gnutella"
msgstr ""
#: ../../util/wmgenmenu.h:253
msgid "Gnutmeg"
msgstr ""
#: ../../util/wmgenmenu.h:258
msgid "FlightGear Flight Simulator"
msgstr ""
#: ../../util/wmgenmenu.h:259
msgid "Tremulous"
msgstr ""
#: ../../util/wmgenmenu.h:260
msgid "XBoard"
msgstr ""
#: ../../util/wmgenmenu.h:261
msgid "GNOME Chess"
msgstr ""
#: ../../util/wmgenmenu.h:262
msgid "Quake 2"
msgstr ""
#: ../../util/wmgenmenu.h:263
msgid "Quake 3"
msgstr ""
#: ../../util/wmgenmenu.h:264
msgid "Quake 3: Urban Terror 2"
msgstr ""
#: ../../util/wmgenmenu.h:265
msgid "Soldier of Fortune"
msgstr ""
#: ../../util/wmgenmenu.h:266
msgid "Rune"
msgstr ""
#: ../../util/wmgenmenu.h:267
msgid "Tribes 2"
msgstr ""
#: ../../util/wmgenmenu.h:268
msgid "Unreal Tournament"
msgstr ""
#: ../../util/wmgenmenu.h:269
msgid "Descent 3"
msgstr ""
#: ../../util/wmgenmenu.h:270
msgid "Myth 2"
msgstr ""
#: ../../util/wmgenmenu.h:271 ../../util/wmgenmenu.h:272
msgid "Sauerbraten"
msgstr ""
#: ../../util/wmgenmenu.h:273
msgid "Railroad Tycoon 2"
msgstr ""
#: ../../util/wmgenmenu.h:274
msgid "Heretic 2"
msgstr ""
#: ../../util/wmgenmenu.h:275
msgid "Kohan"
msgstr ""
#: ../../util/wmgenmenu.h:276
msgid "XQF"
msgstr ""
#: ../../util/wmgenmenu.h:281
msgid "OpenOffice.org Writer"
msgstr ""
#: ../../util/wmgenmenu.h:282
msgid "OpenOffice.org Calc"
msgstr ""
#: ../../util/wmgenmenu.h:283
msgid "OpenOffice.org Draw"
msgstr ""
#: ../../util/wmgenmenu.h:284
msgid "OpenOffice.org Impress"
msgstr ""
#: ../../util/wmgenmenu.h:285
msgid "OpenOffice.org Math"
msgstr ""
#: ../../util/wmgenmenu.h:286
msgid "OpenOffice.org"
msgstr ""
#: ../../util/wmgenmenu.h:287
msgid "StarOffice Writer"
msgstr ""
#: ../../util/wmgenmenu.h:288
msgid "StarOffice Calc"
msgstr ""
#: ../../util/wmgenmenu.h:289
msgid "StarOffice Draw"
msgstr ""
#: ../../util/wmgenmenu.h:290
msgid "StarOffice Impress"
msgstr ""
#: ../../util/wmgenmenu.h:291
msgid "StarOffice Math"
msgstr ""
#: ../../util/wmgenmenu.h:292
msgid "StarOffice"
msgstr ""
#: ../../util/wmgenmenu.h:293
msgid "AbiWord"
msgstr ""
#: ../../util/wmgenmenu.h:294
msgid "KWord"
msgstr ""
#: ../../util/wmgenmenu.h:295
msgid "KPresenter"
msgstr ""
#: ../../util/wmgenmenu.h:296
msgid "KSpread"
msgstr ""
#: ../../util/wmgenmenu.h:297
msgid "KChart"
msgstr ""
#: ../../util/wmgenmenu.h:298
msgid "KOrganizer"
msgstr ""
#: ../../util/wmgenmenu.h:299
msgid "LyX"
msgstr ""
#: ../../util/wmgenmenu.h:300
msgid "Klyx"
msgstr ""
#: ../../util/wmgenmenu.h:301
msgid "GnuCash"
msgstr ""
#: ../../util/wmgenmenu.h:302
msgid "Gnumeric"
msgstr ""
#: ../../util/wmgenmenu.h:303
msgid "GnomeCal"
msgstr ""
#: ../../util/wmgenmenu.h:304
msgid "GnomeCard"
msgstr ""
#: ../../util/wmgenmenu.h:309
msgid "gitk"
msgstr ""
#: ../../util/wmgenmenu.h:310
msgid "gitview"
msgstr ""
#: ../../util/wmgenmenu.h:311
msgid "qgit"
msgstr ""
#: ../../util/wmgenmenu.h:312
msgid "git-gui"
msgstr ""
#: ../../util/wmgenmenu.h:313
msgid "glimmer"
msgstr ""
#: ../../util/wmgenmenu.h:314
msgid "glade"
msgstr ""
#: ../../util/wmgenmenu.h:315
msgid "kdevelop"
msgstr ""
#: ../../util/wmgenmenu.h:316
msgid "designer"
msgstr ""
#: ../../util/wmgenmenu.h:317
msgid "kbabel"
msgstr ""
#: ../../util/wmgenmenu.h:318
msgid "idle"
msgstr ""
#: ../../util/wmgenmenu.h:319
msgid "ghex"
msgstr ""
#: ../../util/wmgenmenu.h:320
msgid "hexedit"
msgstr ""
#: ../../util/wmgenmenu.h:321
msgid "memprof"
msgstr ""
#: ../../util/wmgenmenu.h:322
msgid "tclsh"
msgstr ""
#: ../../util/wmgenmenu.h:323
msgid "gdb"
msgstr ""
#: ../../util/wmgenmenu.h:324
msgid "xxgdb"
msgstr ""
#: ../../util/wmgenmenu.h:325
msgid "xev"
msgstr ""
#: ../../util/wmgenmenu.h:330
msgid "Iotop"
msgstr ""
#: ../../util/wmgenmenu.h:331
msgid "Iostat"
msgstr ""
#: ../../util/wmgenmenu.h:332
msgid "keybconf"
msgstr ""
#: ../../util/wmgenmenu.h:333
msgid "GNOME System Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:334
msgid "top"
msgstr ""
#: ../../util/wmgenmenu.h:335
msgid "KDE Process Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:336
msgid "gw"
msgstr ""
#: ../../util/wmgenmenu.h:337
msgid "GNOME Control Center"
msgstr ""
#: ../../util/wmgenmenu.h:338
msgid "GKrellM"
msgstr ""
#: ../../util/wmgenmenu.h:339
msgid "tksysv"
msgstr ""
#: ../../util/wmgenmenu.h:340
msgid "ksysv"
msgstr ""
#: ../../util/wmgenmenu.h:341
msgid "GNOME PPP"
msgstr ""
#: ../../util/wmgenmenu.h:346
msgid "YaST 2"
msgstr ""
#: ../../util/wmgenmenu.h:347
msgid "YaST"
msgstr ""
#: ../../util/wmgenmenu.h:348
msgid "System Settings"
msgstr ""
#: ../../util/wmgenmenu.h:349
msgid "UMTSMon"
msgstr ""
#: ../../util/wmgenmenu.h:354
msgid "DrakNetCenter"
msgstr ""
#: ../../util/wmgenmenu.h:355
msgid "RPMDrake"
msgstr ""
#: ../../util/wmgenmenu.h:356
msgid "HardDrake"
msgstr ""
#: ../../util/wmgenmenu.h:357
msgid "DrakConf"
msgstr ""
#: ../../util/wmgenmenu.h:358
msgid "MandrakeUpdate"
msgstr ""
#: ../../util/wmgenmenu.h:359
msgid "XDrakRes"
msgstr ""
#: ../../util/wmgenmenu.h:364
msgid "Docker"
msgstr ""
#: ../../util/wmgenmenu.h:365
msgid "Net"
msgstr ""
#: ../../util/wmgenmenu.h:366 ../../util/wmgenmenu.h:387
msgid "Power"
msgstr ""
#: ../../util/wmgenmenu.h:367
msgid "Laptop"
msgstr ""
#: ../../util/wmgenmenu.h:368
msgid "WiFi"
msgstr ""
#: ../../util/wmgenmenu.h:369
msgid "Interface Info"
msgstr ""
#: ../../util/wmgenmenu.h:370 ../../util/wmgenmenu.h:373
msgid "Weather"
msgstr ""
#: ../../util/wmgenmenu.h:371
msgid "Sticky Notes"
msgstr ""
#: ../../util/wmgenmenu.h:372
msgid "Mixer"
msgstr ""
#: ../../util/wmgenmenu.h:374
msgid "CPU Load"
msgstr ""
#: ../../util/wmgenmenu.h:375
msgid "CPU Freq"
msgstr ""
#: ../../util/wmgenmenu.h:376
msgid "Clock Mon"
msgstr ""
#: ../../util/wmgenmenu.h:377
msgid "Network Devices"
msgstr ""
#: ../../util/wmgenmenu.h:378
msgid "Calendar & Clock"
msgstr ""
#: ../../util/wmgenmenu.h:379
msgid "Time"
msgstr ""
#: ../../util/wmgenmenu.h:380
msgid "Date"
msgstr ""
#: ../../util/wmgenmenu.h:381 ../../util/wmgenmenu.h:382
msgid "System Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:383
msgid "SMP Monitor"
msgstr ""
#: ../../util/wmgenmenu.h:384
msgid "Interfaces"
msgstr ""
#: ../../util/wmgenmenu.h:385
msgid "Button"
msgstr ""
#: ../../util/wmgenmenu.h:386
msgid "xmms"
msgstr ""
#: ../../util/wmgenmenu.h:388
msgid "Magnify"
msgstr ""
#: ../../util/wmgenmenu.h:393
msgid "IceWM"
msgstr ""
#: ../../util/wmgenmenu.h:394
msgid "KWin"
msgstr ""
#: ../../util/wmgenmenu.h:395
msgid "twm"
msgstr ""
#: ../../util/wmgenmenu.h:396
msgid "Fluxbox"
msgstr ""
#: ../../util/wmgenmenu.h:397
msgid "Blackbox"
msgstr ""
#: ../../util/wmgenmenu.h:398
msgid "Ion"
msgstr ""
#: ../../util/wmgenmenu.h:399
msgid "Motif Window Manager"
msgstr ""
#: ../../util/wmgenmenu.h:400
msgid "FVWM"
msgstr ""
WindowMaker-0.95.8/util/getstyle.c 0000664 0001750 0001750 00000022553 13061001047 013747 0000000 0000000 /* getstyle.c - outputs style related options from WindowMaker to stdout
*
* WindowMaker window manager
*
* Copyright (c) 1997-2003 Alfredo K. Kojima
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifdef __GLIBC__
#define _GNU_SOURCE /* getopt_long */
#endif
#include "config.h"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#ifdef HAVE_STDNORETURN
#include
#endif
#include
#include "common.h"
#ifndef PATH_MAX
#define PATH_MAX 1024
#endif
#include "../src/wconfig.h"
/* table of style related options */
static char *options[] = {
"TitleJustify",
"ClipTitleFont",
"WindowTitleFont",
"MenuTitleFont",
"MenuTextFont",
"IconTitleFont",
"LargeDisplayFont",
"HighlightColor",
"HighlightTextColor",
"ClipTitleColor",
"CClipTitleColor",
"FTitleColor",
"PTitleColor",
"UTitleColor",
"FTitleBack",
"PTitleBack",
"UTitleBack",
"ResizebarBack",
"MenuTitleColor",
"MenuTextColor",
"MenuDisabledColor",
"MenuTitleBack",
"MenuTextBack",
"IconBack",
"IconTitleColor",
"IconTitleBack",
"FrameBorderWidth",
"FrameBorderColor",
"FrameFocusedBorderColor",
"FrameSelectedBorderColor",
"MenuStyle",
"WindowTitleExtendSpace",
"MenuTitleExtendSpace",
"MenuTextExtendSpace",
NULL
};
/* table of theme related options */
static char *theme_options[] = {
"WorkspaceBack",
"NormalCursor",
"ArrowCursor",
"MoveCursor",
"ResizeCursor",
"TopLeftResizeCursor",
"TopRightResizeCursor",
"BottomLeftResizeCursor",
"BottomRightResizeCursor",
"VerticalResizeCursor",
"HorizontalResizeCursor",
"WaitCursor",
"QuestionCursor",
"TextCursor",
"SelectCursor",
NULL
};
/* table of style related fonts */
static char *font_options[] = {
"ClipTitleFont",
"WindowTitleFont",
"MenuTitleFont",
"MenuTextFont",
"IconTitleFont",
"LargeDisplayFont",
NULL
};
static const char *prog_name;
WMPropList *PixmapPath = NULL;
char *ThemePath = NULL;
static noreturn void print_help(int print_usage, int exitval)
{
printf("Usage: %s [-t] [-p] [-h] [-v] [file]\n", prog_name);
if (print_usage) {
puts("Retrieves style/theme configuration and outputs to ~/GNUstep/Library/WindowMaker/Themes/file.themed/style or to stdout");
puts("");
puts(" -h, --help display this help and exit");
puts(" -v, --version output version information and exit");
puts(" -t, --theme-options output theme related options when producing a style file");
puts(" -p, --pack produce output as a theme pack");
}
exit(exitval);
}
static Bool isFontOption(const char *option)
{
int i;
for (i = 0; font_options[i] != NULL; i++) {
if (strcasecmp(option, font_options[i]) == 0) {
return True;
}
}
return False;
}
static void findCopyFile(const char *dir, const char *file)
{
char *fullPath;
fullPath = wfindfileinarray(PixmapPath, file);
if (!fullPath) {
wwarning("Could not find file %s", file);
if (ThemePath)
(void)wrmdirhier(ThemePath);
return;
}
wcopy_file(dir, fullPath, file);
wfree(fullPath);
}
#define THEME_SUBPATH "/Library/WindowMaker/Themes/"
#define THEME_EXTDIR ".themed/"
static void makeThemePack(WMPropList * style, const char *themeName)
{
WMPropList *keys;
WMPropList *key;
WMPropList *value;
int i;
size_t themeNameLen;
char *themeDir;
const char *user_base;
user_base = wusergnusteppath();
if (user_base == NULL)
return;
themeNameLen = strlen(user_base) + sizeof(THEME_SUBPATH) + strlen(themeName) + sizeof(THEME_EXTDIR) + 1;
themeDir = wmalloc(themeNameLen);
snprintf(themeDir, themeNameLen,
"%s" THEME_SUBPATH "%s" THEME_EXTDIR,
user_base, themeName);
ThemePath = themeDir;
if (!wmkdirhier(themeDir)) {
wwarning("Could not make theme dir %s\n", themeDir);
return;
}
keys = WMGetPLDictionaryKeys(style);
for (i = 0; i < WMGetPropListItemCount(keys); i++) {
key = WMGetFromPLArray(keys, i);
value = WMGetFromPLDictionary(style, key);
if (value && WMIsPLArray(value) && WMGetPropListItemCount(value) > 2) {
WMPropList *type;
char *t;
type = WMGetFromPLArray(value, 0);
t = WMGetFromPLString(type);
if (t == NULL)
continue;
if (strcasecmp(t, "tpixmap") == 0 ||
strcasecmp(t, "spixmap") == 0 ||
strcasecmp(t, "cpixmap") == 0 ||
strcasecmp(t, "mpixmap") == 0 ||
strcasecmp(t, "tdgradient") == 0 ||
strcasecmp(t, "tvgradient") == 0 ||
strcasecmp(t, "thgradient") == 0) {
WMPropList *file;
char *p;
char *newPath;
file = WMGetFromPLArray(value, 1);
p = strrchr(WMGetFromPLString(file), '/');
if (p) {
newPath = wstrdup(p + 1);
wcopy_file(themeDir, WMGetFromPLString(file), newPath);
WMDeleteFromPLArray(value, 1);
WMInsertInPLArray(value, 1, WMCreatePLString(newPath));
free(newPath);
} else {
findCopyFile(themeDir, WMGetFromPLString(file));
}
} else if (strcasecmp(t, "bitmap") == 0) {
WMPropList *file;
char *p;
char *newPath;
file = WMGetFromPLArray(value, 1);
p = strrchr(WMGetFromPLString(file), '/');
if (p) {
newPath = wstrdup(p + 1);
wcopy_file(themeDir, WMGetFromPLString(file), newPath);
WMDeleteFromPLArray(value, 1);
WMInsertInPLArray(value, 1, WMCreatePLString(newPath));
free(newPath);
} else {
findCopyFile(themeDir, WMGetFromPLString(file));
}
file = WMGetFromPLArray(value, 2);
p = strrchr(WMGetFromPLString(file), '/');
if (p) {
newPath = wstrdup(p + 1);
wcopy_file(themeDir, WMGetFromPLString(file), newPath);
WMDeleteFromPLArray(value, 2);
WMInsertInPLArray(value, 2, WMCreatePLString(newPath));
free(newPath);
} else {
findCopyFile(themeDir, WMGetFromPLString(file));
}
}
}
}
WMReleasePropList(keys);
}
int main(int argc, char **argv)
{
WMPropList *prop, *style, *key, *val;
char *path;
int i, ch, theme_too = 0, make_pack = 0;
char *style_file = NULL;
struct option longopts[] = {
{ "pack", no_argument, NULL, 'p' },
{ "theme-options", no_argument, NULL, 't' },
{ "version", no_argument, NULL, 'v' },
{ "help", no_argument, NULL, 'h' },
{ NULL, 0, NULL, 0 }
};
prog_name = argv[0];
while ((ch = getopt_long(argc, argv, "ptvh", longopts, NULL)) != -1)
switch(ch) {
case 'v':
printf("%s (Window Maker %s)\n", prog_name, VERSION);
return 0;
/* NOTREACHED */
case 'h':
print_help(1, 0);
/* NOTREACHED */
case 'p':
make_pack = 1;
theme_too = 1;
break;
case 't':
theme_too = 1;
case 0:
break;
default:
print_help(0, 1);
/* NOTREACHED */
}
/* At most one non-option ARGV-element is accepted (the theme name) */
if (argc - optind > 1)
print_help(0, 1);
if (argc - optind == 1)
style_file = argv[argc - 1];
if (make_pack && !style_file) {
printf("%s: you must supply a name for the theme pack\n", prog_name);
return 1;
}
WMPLSetCaseSensitive(False);
path = wdefaultspathfordomain("WindowMaker");
prop = WMReadPropListFromFile(path);
if (!prop) {
printf("%s: could not load WindowMaker configuration file \"%s\".\n", prog_name, path);
return 1;
}
/* get global value */
path = wglobaldefaultspathfordomain("WindowMaker");
val = WMReadPropListFromFile(path);
if (val) {
WMMergePLDictionaries(val, prop, True);
WMReleasePropList(prop);
prop = val;
}
style = WMCreatePLDictionary(NULL, NULL);
for (i = 0; options[i] != NULL; i++) {
key = WMCreatePLString(options[i]);
val = WMGetFromPLDictionary(prop, key);
if (val) {
WMRetainPropList(val);
if (isFontOption(options[i])) {
char *newfont, *oldfont;
oldfont = WMGetFromPLString(val);
newfont = convertFont(oldfont, False);
/* newfont is a reference to old if conversion is not needed */
if (newfont != oldfont) {
WMReleasePropList(val);
val = WMCreatePLString(newfont);
wfree(newfont);
}
}
WMPutInPLDictionary(style, key, val);
WMReleasePropList(val);
}
WMReleasePropList(key);
}
val = WMGetFromPLDictionary(prop, WMCreatePLString("PixmapPath"));
if (val)
PixmapPath = val;
if (theme_too) {
for (i = 0; theme_options[i] != NULL; i++) {
key = WMCreatePLString(theme_options[i]);
val = WMGetFromPLDictionary(prop, key);
if (val)
WMPutInPLDictionary(style, key, val);
}
}
if (make_pack) {
char *path;
makeThemePack(style, style_file);
path = wmalloc(strlen(ThemePath) + 32);
strcpy(path, ThemePath);
strcat(path, "/style");
WMWritePropListToFile(style, path);
wfree(path);
} else {
if (style_file) {
WMWritePropListToFile(style, style_file);
} else {
puts(WMGetPropListDescription(style, True));
}
}
return 0;
}
WindowMaker-0.95.8/util/wmiv.h 0000775 0001750 0001750 00000066365 12650014300 013111 0000000 0000000 /* XPM */
static char * wmiv_xpm[] = {
"64 64 1212 2",
" c None",
". c #DBDBDA",
"+ c #E1E1E1",
"@ c #D9D9D9",
"# c #E4E4E4",
"$ c #ECECEB",
"% c #EAEAEA",
"& c #E8E8E8",
"* c #E2E2E2",
"= c #D6D6D6",
"- c #EDEDED",
"; c #EDEDEC",
"> c #EAEAE9",
", c #E9E9E8",
"' c #EBEBEB",
") c #E3E3E3",
"! c #EFEFEF",
"~ c #ECECEC",
"{ c #EBEBEA",
"] c #E9E9E9",
"^ c #E8E8E7",
"/ c #A5A5A5",
"( c #F2F2F1",
"_ c #EFEFEE",
": c #E7E7E7",
"< c #C7C7C7",
"[ c #DEDEDD",
"} c #F3F3F2",
"| c #EEEEEE",
"1 c #EEEEED",
"2 c #F4F4F3",
"3 c #F1F1F0",
"4 c #F0F0F0",
"5 c #F0F0EF",
"6 c #E6E6E5",
"7 c #F6F6F5",
"8 c #F4F4F2",
"9 c #EAEAED",
"0 c #D6D5D9",
"a c #CBCFC2",
"b c #AFAFB0",
"c c #F7F7F6",
"d c #F2F2F2",
"e c #F1F1F1",
"f c #EFEEF0",
"g c #DFDEE4",
"h c #C9CDBD",
"i c #B5C08E",
"j c #A3B666",
"k c #A6BF53",
"l c #A7BF53",
"m c #DDDCDF",
"n c #D4D4D5",
"o c #F8F8F7",
"p c #F5F5F4",
"q c #F4F4F4",
"r c #E7E6EC",
"s c #D1D3CC",
"t c #BAC49A",
"u c #A5B76A",
"v c #A2BB4D",
"w c #A7C04E",
"x c #A8C055",
"y c #AAC05A",
"z c #ABC15F",
"A c #ACC261",
"B c #CACFB9",
"C c #E5E5E5",
"D c #F6F6F4",
"E c #F3F3F3",
"F c #F0EFF2",
"G c #D9D9DB",
"H c #C2CAA8",
"I c #A9BA73",
"J c #9FB74C",
"K c #A3BF41",
"L c #A5C04C",
"M c #A7BF50",
"N c #A8C056",
"O c #A9C059",
"P c #ABC15D",
"Q c #ACC162",
"R c #ADC266",
"S c #AEC26A",
"T c #BAC597",
"U c #F0F0F1",
"V c #8C8C8C",
"W c #F5F5F5",
"X c #F5F4F6",
"Y c #E2E1E7",
"Z c #CAD0B6",
"` c #B0BF7F",
" . c #9DB44E",
".. c #9FBD38",
"+. c #A2BF40",
"@. c #A4BE47",
"#. c #A5BF4B",
"$. c #A6BF4F",
"%. c #A9C156",
"&. c #A9C058",
"*. c #AAC15C",
"=. c #ABC161",
"-. c #ADC265",
";. c #AFC36A",
">. c #AFC36D",
",. c #B1C372",
"'. c #ADBD7B",
"). c #EBEAED",
"!. c #BABABA",
"~. c #DDDDDC",
"{. c #F7F6F7",
"]. c #EAE8F0",
"^. c #D2D5C7",
"/. c #B8C58B",
"(. c #9EB453",
"_. c #9BBA33",
":. c #9EBE35",
"<. c #A0BD3D",
"[. c #A2BE42",
"}. c #A3BE46",
"|. c #A4BF4A",
"1. c #A6BF4E",
"2. c #A7C053",
"3. c #A9C057",
"4. c #ACC161",
"5. c #ADC269",
"6. c #AFC36C",
"7. c #B0C370",
"8. c #B3C476",
"9. c #B2C478",
"0. c #B3C479",
"a. c #D6D7D6",
"b. c #E0E0DF",
"c. c #C5C5C5",
"d. c #F6F6F6",
"e. c #F1F0F5",
"f. c #DADAD8",
"g. c #BFC99B",
"h. c #A3B85D",
"i. c #98B631",
"j. c #9BBC28",
"k. c #9DBC33",
"l. c #9CBB36",
"m. c #AEC65E",
"n. c #B2C864",
"o. c #A1BC45",
"p. c #A5BF4D",
"q. c #A7C052",
"r. c #AAC05B",
"s. c #ABC15E",
"t. c #B0C46C",
"u. c #B0C46D",
"v. c #B0C36F",
"w. c #B5C57C",
"x. c #B4C47E",
"y. c #B6C581",
"z. c #C8CDB7",
"A. c #F7F6F9",
"B. c #E1E0E5",
"C. c #C7CFAD",
"D. c #ABBD6F",
"E. c #98B439",
"F. c #98BB20",
"G. c #97BA21",
"H. c #96B726",
"I. c #98B829",
"J. c #9EBD37",
"K. c #A0BD3B",
"L. c #B1C367",
"M. c #F7EBF7",
"N. c #FFFCFF",
"O. c #FFFFFF",
"P. c #FEFEFE",
"Q. c #B1C56E",
"R. c #A9C05B",
"S. c #ABC160",
"T. c #A9BF5F",
"U. c #AABF63",
"V. c #B1C470",
"W. c #B2C574",
"X. c #B2C477",
"Y. c #B1C274",
"Z. c #B5C57D",
"`. c #B5C67D",
" + c #B3C37C",
".+ c #B2C37A",
"++ c #B7C293",
"@+ c #979797",
"#+ c #F8F8F6",
"$+ c #FAF9FB",
"%+ c #EAE8EF",
"&+ c #D0D5BF",
"*+ c #B3C280",
"=+ c #9BB445",
"-+ c #98BA23",
";+ c #9ABC25",
">+ c #9ABB28",
",+ c #9ABB2A",
"'+ c #A2BD40",
")+ c #E3E0CC",
"!+ c #FFFBFF",
"~+ c #F6F8EE",
"{+ c #B1C665",
"]+ c #9BB938",
"^+ c #EAD8E1",
"/+ c #FCF7FC",
"(+ c #FDFCFC",
"_+ c #E5E8D7",
":+ c #A3B95A",
"<+ c #A8BD5F",
"[+ c #CAD0A4",
"}+ c #F0EDE7",
"|+ c #F6F7F1",
"1+ c #D6DFB8",
"2+ c #AEC074",
"3+ c #B6C683",
"4+ c #AFC170",
"5+ c #B2C377",
"6+ c #B1C375",
"7+ c #AFC272",
"8+ c #A9BB6D",
"9+ c #E5E5E9",
"0+ c #C4C4C4",
"a+ c #F2F1F5",
"b+ c #D8DAD1",
"c+ c #BCC992",
"d+ c #A0B654",
"e+ c #99BB23",
"f+ c #9ABB27",
"g+ c #9ABA2E",
"h+ c #9BBC2B",
"i+ c #96B729",
"j+ c #EEDCE9",
"k+ c #FAF5FA",
"l+ c #FFFEFE",
"m+ c #9CB254",
"n+ c #F8E2FC",
"o+ c #FEFCFE",
"p+ c #FCFBFC",
"q+ c #FBFBFB",
"r+ c #F2F3EF",
"s+ c #8C9F4B",
"t+ c #E3DAD5",
"u+ c #FBF3FC",
"v+ c #DBDBDB",
"w+ c #A5AA92",
"x+ c #8A956A",
"y+ c #8A9467",
"z+ c #909D65",
"A+ c #9EAE66",
"B+ c #B2C56F",
"C+ c #AFC46B",
"D+ c #AABF60",
"E+ c #D0D3CA",
"F+ c #E7E7E6",
"G+ c #BCBCBC",
"H+ c #FCFBFD",
"I+ c #A5BB5B",
"J+ c #9ABB26",
"K+ c #9BBB2A",
"L+ c #9BBB2B",
"M+ c #9CBC2F",
"N+ c #9DBA3A",
"O+ c #9BB444",
"P+ c #F7E1FB",
"Q+ c #FEFCFD",
"R+ c #F9F8F9",
"S+ c #DFE0D2",
"T+ c #EFE3EC",
"U+ c #FAFBFA",
"V+ c #FBFAFA",
"W+ c #D9DACF",
"X+ c #D4CCC4",
"Y+ c #EDE6ED",
"Z+ c #A3A4A3",
"`+ c #646663",
" @ c #40433F",
".@ c #454743",
"+@ c #484A47",
"@@ c #494B49",
"#@ c #484B48",
"$@ c #444745",
"%@ c #414243",
"&@ c #404140",
"*@ c #5B6249",
"=@ c #829152",
"-@ c #C0CAA2",
";@ c #BACA82",
">@ c #9ABB2B",
",@ c #9ABB29",
"'@ c #9EBD34",
")@ c #A6C147",
"!@ c #9AB734",
"~@ c #92AF30",
"{@ c #E5D4DD",
"]@ c #FCF7FB",
"^@ c #FDFDFD",
"/@ c #F7F6F6",
"(@ c #FCFFFF",
"_@ c #FDFFFF",
":@ c #DADAD5",
"<@ c #858384",
"[@ c #434642",
"}@ c #4F514D",
"|@ c #545652",
"1@ c #494A4C",
"2@ c #3E4147",
"3@ c #343641",
"4@ c #30323F",
"5@ c #323440",
"6@ c #383A43",
"7@ c #404247",
"8@ c #484B49",
"9@ c #494B47",
"0@ c #404241",
"a@ c #404141",
"b@ c #9C9D9B",
"c@ c #A7A6A7",
"d@ c #D5DCC0",
"e@ c #99BB22",
"f@ c #9DBC31",
"g@ c #99B92A",
"h@ c #D0D2A7",
"i@ c #FFF6FF",
"j@ c #DDE5BE",
"k@ c #A5AE75",
"l@ c #F9EBFA",
"m@ c #FDFDFE",
"n@ c #F8F5F3",
"o@ c #F5D394",
"p@ c #F1BB5E",
"q@ c #EEA832",
"r@ c #EA9E1C",
"s@ c #F2A31B",
"t@ c #A78748",
"u@ c #454847",
"v@ c #52544F",
"w@ c #4A4C4E",
"x@ c #171930",
"y@ c #0F122B",
"z@ c #0C0E29",
"A@ c #0C0E28",
"B@ c #0D0F29",
"C@ c #0F112A",
"D@ c #12142B",
"E@ c #15172D",
"F@ c #191B30",
"G@ c #272938",
"H@ c #3C3F44",
"I@ c #474946",
"J@ c #3D403D",
"K@ c #3D3F3D",
"L@ c #CDCDCD",
"M@ c #F1F0F6",
"N@ c #96B724",
"O@ c #9BBC2C",
"P@ c #9CBC30",
"Q@ c #9FBC3A",
"R@ c #A7BA57",
"S@ c #F8E4FB",
"T@ c #E0DDD7",
"U@ c #FDFDFF",
"V@ c #F4D08D",
"W@ c #ECA424",
"X@ c #EDA12D",
"Y@ c #EC9D32",
"Z@ c #EB9A36",
"`@ c #ED9833",
" # c #756041",
".# c #494C4A",
"+# c #4F5250",
"@# c #2F313E",
"## c #171A30",
"$# c #13152D",
"%# c #10122B",
" c #090C29",
"*# c #080A23",
"=# c #1D1F35",
"-# c #2B2D41",
";# c #2A2C3F",
"># c #25263A",
",# c #0E1028",
"'# c #13152C",
")# c #17192E",
"!# c #1A1C2F",
"~# c #242737",
"{# c #3F4244",
"]# c #424441",
"^# c #3A3D3B",
"/# c #ABABAB",
"(# c #FDFCFF",
"_# c #A6BD57",
":# c #A0BD3F",
"<# c #ADB970",
"[# c #F7E6F8",
"}# c #FAFAFA",
"|# c #EEBC57",
"1# c #EFA722",
"2# c #EC9E2B",
"3# c #EB9630",
"4# c #EA9135",
"5# c #EC8D38",
"6# c #665644",
"7# c #4C4F4B",
"8# c #47494B",
"9# c #212335",
"0# c #181B30",
"a# c #14172F",
"b# c #1B1B30",
"c# c #4D4331",
"d# c #837038",
"e# c #A4A5A7",
"f# c #A6A6A5",
"g# c #A6A5A5",
"h# c #A8A8A8",
"i# c #A6A6A6",
"j# c #8D8E89",
"k# c #6E706E",
"l# c #353C30",
"m# c #191B2E",
"n# c #1A1D2F",
"o# c #1E2031",
"p# c #35373F",
"q# c #434542",
"r# c #393B39",
"s# c #C3CF99",
"t# c #9EBD35",
"u# c #A1BD3E",
"v# c #A1BD3F",
"w# c #A2BE44",
"x# c #93AC42",
"y# c #C9C2B7",
"z# c #FFF7FF",
"A# c #FDFCFD",
"B# c #F1D293",
"C# c #EFA912",
"D# c #ED9D1A",
"E# c #EB901D",
"F# c #E98720",
"G# c #EE8122",
"H# c #71563F",
"I# c #4A4D4A",
"J# c #424549",
"K# c #202334",
"L# c #1B1D31",
"M# c #181A31",
"N# c #594933",
"O# c #9C7C34",
"P# c #9C8033",
"Q# c #9D863B",
"R# c #A6A8AB",
"S# c #9A9B96",
"T# c #86897D",
"U# c #676C54",
"V# c #4E5633",
"W# c #4F592D",
"X# c #566329",
"Y# c #798453",
"Z# c #728045",
"`# c #3A432C",
" $ c #1A1B30",
".$ c #1E2130",
"+$ c #30313B",
"@$ c #363937",
"#$ c #DCDCDB",
"$$ c #DEE1D4",
"%$ c #9FBC37",
"&$ c #A3BE43",
"*$ c #A3BE4B",
"=$ c #A4BC53",
"-$ c #859B3E",
";$ c #889061",
">$ c #BFBFB0",
",$ c #E7E4E3",
"'$ c #FFFDFF",
")$ c #EEB938",
"!$ c #EFAA19",
"~$ c #EE9E1E",
"{$ c #EC9221",
"]$ c #EB8A25",
"^$ c #9F6935",
"/$ c #444846",
"($ c #474A4B",
"_$ c #222435",
":$ c #1E2032",
"<$ c #262531",
"[$ c #8E6F3C",
"}$ c #9F7D3B",
"|$ c #A58534",
"1$ c #AF943A",
"2$ c #BDAC78",
"3$ c #CECECF",
"4$ c #D7D6D7",
"5$ c #DDDCDD",
"6$ c #DDDDDD",
"7$ c #C5C7BF",
"8$ c #A9AF94",
"9$ c #839055",
"0$ c #6A7A2F",
"a$ c #667829",
"b$ c #697A2D",
"c$ c #56652B",
"d$ c #202331",
"e$ c #202230",
"f$ c #31343C",
"g$ c #3F413F",
"h$ c #373937",
"i$ c #C3C3C3",
"j$ c #F8F6FC",
"k$ c #A0B949",
"l$ c #A6BF4D",
"m$ c #A6BE57",
"n$ c #A8C057",
"o$ c #A5BD55",
"p$ c #AEBC79",
"q$ c #C1C3A9",
"r$ c #CECEC2",
"s$ c #E7E5E2",
"t$ c #FCFEFF",
"u$ c #EEB92C",
"v$ c #F1AF17",
"w$ c #EEA019",
"x$ c #EC941B",
"y$ c #DD8521",
"z$ c #3F4545",
"A$ c #4D4F4D",
"B$ c #282B38",
"C$ c #202233",
"D$ c #2F2C34",
"E$ c #967437",
"F$ c #A68134",
"G$ c #B38F36",
"H$ c #BD9F40",
"I$ c #C6AB48",
"J$ c #D6D2C8",
"K$ c #E0DFDF",
"L$ c #EEEDED",
"M$ c #F8F7F7",
"N$ c #FAF9FA",
"O$ c #D9D8DB",
"P$ c #B0B59D",
"Q$ c #738438",
"R$ c #657629",
"S$ c #66772A",
"T$ c #62722E",
"U$ c #212232",
"V$ c #232531",
"W$ c #373A3F",
"X$ c #3E403E",
"Y$ c #FCFCFC",
"Z$ c #B5C57F",
"`$ c #A8C054",
" % c #A9C159",
".% c #A8C059",
"+% c #DDD8C5",
"@% c #FDF5FF",
"#% c #FEFFFF",
"$% c #F1CE6C",
"%% c #F3BC1C",
"&% c #EFA90F",
"*% c #F19B0E",
"=% c #795E33",
"-% c #494B48",
";% c #393B42",
">% c #222434",
",% c #252735",
"'% c #98772E",
")% c #AC8A33",
"!% c #BB9B3F",
"~% c #C7AA48",
"{% c #CFB340",
"]% c #D5C8A6",
"^% c #E6E6E7",
"/% c #FAFBF7",
"(% c #DAD9DA",
"_% c #AFB694",
":% c #6D802F",
"<% c #66762A",
"[% c #616F33",
"}% c #272834",
"|% c #3E4140",
"1% c #313432",
"2% c #CED5B4",
"3% c #A9C158",
"4% c #B9C483",
"5% c #F7E4F8",
"6% c #FEFDFE",
"7% c #F9F8F8",
"8% c #F8F8F8",
"9% c #FAF9F9",
"0% c #F7F1EB",
"a% c #F2C62B",
"b% c #F4C124",
"c% c #E4A718",
"d% c #383E42",
"e% c #4B4E4B",
"f% c #262835",
"g% c #7D6930",
"h% c #B1953D",
"i% c #C0A543",
"j% c #CEB344",
"k% c #D2B64A",
"l% c #DCD1B9",
"m% c #EAEAEB",
"n% c #F8F7F8",
"o% c #ECEFE3",
"p% c #BAC29D",
"q% c #7C8E39",
"r% c #6E7F2F",
"s% c #677928",
"t% c #464E3A",
"u% c #21242F",
"v% c #33353B",
"w% c #383B38",
"x% c #3E403F",
"y% c #D5D5D5",
"z% c #E5E5E4",
"A% c #ADC268",
"B% c #AEC36A",
"C% c #AFB97F",
"D% c #F7E5F8",
"E% c #FFFEFF",
"F% c #F3E9D9",
"G% c #F1C837",
"H% c #988635",
"I% c #444644",
"J% c #3D3F43",
"K% c #262735",
"L% c #3C3B35",
"M% c #B6A03A",
"N% c #C0A739",
"O% c #C7AC51",
"P% c #D4C498",
"Q% c #E4E2E6",
"R% c #EBEAEA",
"S% c #F9F9F9",
"T% c #EBECE8",
"U% c #DCDED5",
"V% c #EDEFE7",
"W% c #DEE1D6",
"X% c #97A75E",
"Y% c #829739",
"Z% c #7B8F36",
"`% c #6B7D2D",
" & c #6C7E2F",
".& c #272933",
"+& c #3D403E",
"@& c #2F3130",
"#& c #B7B7B7",
"$& c #FBFAFC",
"%& c #ABBD71",
"&& c #B0C36E",
"*& c #93A55A",
"=& c #E0D3DB",
"-& c #F3F2F1",
";& c #B6B6A6",
">& c #E6DFE2",
",& c #55544A",
"'& c #494C48",
")& c #30323B",
"!& c #232533",
"~& c #817968",
"{& c #B8AC96",
"]& c #C8C2C3",
"^& c #DDE0DD",
"/& c #EAE9E9",
"(& c #EEEDEC",
"_& c #F3F2F2",
":& c #F4F3F3",
"<& c #FBFCFB",
"[& c #FCFCFB",
"}& c #9EA784",
"|& c #757E53",
"1& c #9CA385",
"2& c #ABB195",
"3& c #A7AE8C",
"4& c #88994B",
"5& c #8FA544",
"6& c #89A03A",
"7& c #84993B",
"8& c #758832",
"9& c #67792B",
"0& c #667729",
"a& c #484F3B",
"b& c #24262F",
"c& c #3A3D3D",
"d& c #313332",
"e& c #464846",
"f& c #C1CB9F",
"g& c #B2C473",
"h& c #B3C477",
"i& c #717F44",
"j& c #7A835B",
"k& c #7F8761",
"l& c #6A7445",
"m& c #697242",
"n& c #F1E4EF",
"o& c #FCF8FC",
"p& c #323532",
"q& c #4A4C49",
"r& c #292B35",
"s& c #242630",
"t& c #BBBBB8",
"u& c #CFCECF",
"v& c #BCBDB5",
"w& c #E1E3D8",
"x& c #F2F1F1",
"y& c #F4F4F1",
"z& c #F7F5F5",
"A& c #FDFDFC",
"B& c #E4E9D4",
"C& c #758C25",
"D& c #73872D",
"E& c #74882E",
"F& c #829835",
"G& c #8FA73A",
"H& c #99AF4B",
"I& c #90A83B",
"J& c #8CA13F",
"K& c #7D9136",
"L& c #6E802E",
"M& c #647139",
"N& c #20232D",
"O& c #343739",
"P& c #363736",
"Q& c #D6DBCA",
"R& c #B3C478",
"S& c #B5C57E",
"T& c #B5C581",
"U& c #ACBB78",
"V& c #9AAA63",
"W& c #94A560",
"X& c #91A258",
"Y& c #EFDDEC",
"Z& c #FBFAFB",
"`& c #D5D6D5",
" * c #373A37",
".* c #464947",
"+* c #282A35",
"@* c #43454B",
"#* c #C8C7C7",
"$* c #D5D5D4",
"%* c #A0A48F",
"&* c #DEE2D0",
"** c #F1F2E8",
"=* c #E2E9C8",
"-* c #90AF25",
";* c #92B02C",
">* c #93B02E",
",* c #94B22E",
"'* c #98B23D",
")* c #99B045",
"!* c #94AC40",
"~* c #90A641",
"{* c #829839",
"]* c #74872F",
"^* c #647625",
"/* c #6D7C37",
"(* c #262833",
"_* c #2F3136",
":* c #383B39",
"<* c #383A39",
"[* c #CCCCCB",
"}* c #EBEBED",
"|* c #B3C37D",
"1* c #B3C47D",
"2* c #B4C37C",
"3* c #B1C378",
"4* c #ADC06B",
"5* c #AEC16D",
"6* c #AFB780",
"7* c #F6E3F7",
"8* c #BEBFBE",
"9* c #3B3D3B",
"0* c #424543",
"a* c #282A34",
"b* c #646568",
"c* c #CCCCCC",
"d* c #D8D9D4",
"e* c #BABFA3",
"f* c #7F8E48",
"g* c #E8EBDD",
"h* c #F8F9F5",
"i* c #FCFBFB",
"j* c #FEFDFD",
"k* c #FEFEFD",
"l* c #9BB04E",
"m* c #94B328",
"n* c #95B42A",
"o* c #96B52C",
"p* c #97B52D",
"q* c #97B52F",
"r* c #97B13D",
"s* c #94AD3A",
"t* c #97AD4D",
"u* c #A0AE71",
"v* c #A4AA8E",
"w* c #A0A0A0",
"x* c #869064",
"y* c #34363D",
"z* c #2D2F33",
"A* c #393C3A",
"B* c #2E302F",
"C* c #A9A9A8",
"D* c #B5C18D",
"E* c #B1C276",
"F* c #AFC270",
"G* c #A9BE61",
"H* c #ABBF66",
"I* c #8FA151",
"J* c #ECDAE9",
"K* c #A1A39D",
"L* c #3C3F3D",
"M* c #424442",
"N* c #6C6D6F",
"O* c #D1D1D1",
"P* c #D8DBCE",
"Q* c #B4BD91",
"R* c #88A038",
"S* c #819341",
"T* c #D1D6C2",
"U* c #E6E8E1",
"V* c #7E8D48",
"W* c #87A425",
"X* c #94B327",
"Y* c #95B427",
"Z* c #92B323",
"`* c #96B42E",
" = c #B2C76A",
".= c #CED9A5",
"+= c #E2E4D9",
"@= c #E2E0E5",
"#= c #D1D1CF",
"$= c #BCBCBB",
"%= c #939785",
"&= c #393C3C",
"*= c #2D3032",
"== c #3A3C3A",
"-= c #2A2C2C",
";= c #F7F7F7",
">= c #A9BF61",
",= c #ACC06A",
"'= c #A5BC55",
")= c #A8BE5E",
"!= c #9FB553",
"~= c #809145",
"{= c #B6B89F",
"]= c #BBC1A7",
"^= c #8B9762",
"/= c #5A682E",
"(= c #3C3E3E",
"_= c #424542",
":= c #292B34",
"<= c #717274",
"[= c #D4D3D4",
"}= c #D7DBC8",
"|= c #8C9D50",
"1= c #97AF44",
"2= c #8DA831",
"3= c #788E2C",
"4= c #72823D",
"5= c #86915E",
"6= c #6E7C41",
"7= c #5E711A",
"8= c #7B971E",
"9= c #8BAB1B",
"0= c #A8C153",
"a= c #C6D592",
"b= c #E4E9D1",
"c= c #FAF8FD",
"d= c #F6F5F6",
"e= c #ECECEA",
"f= c #E1E0DF",
"g= c #D2D2D0",
"h= c #C0BFBF",
"i= c #9E9F9D",
"j= c #333737",
"k= c #2E3132",
"l= c #292C2B",
"m= c #DBDED2",
"n= c #A1BB4C",
"o= c #A5BD56",
"p= c #A2BB4E",
"q= c #9EB74B",
"r= c #91A941",
"s= c #8BA43A",
"t= c #93AD3B",
"u= c #7C9138",
"v= c #383A3A",
"w= c #434643",
"x= c #2B2D34",
"y= c #5F6063",
"z= c #CACBC7",
"A= c #919F60",
"B= c #8CA141",
"C= c #98B13E",
"D= c #97B239",
"E= c #92AF2D",
"F= c #88A427",
"G= c #7E9A1D",
"H= c #8DA53E",
"I= c #B0C178",
"J= c #D7DFBA",
"K= c #F8F7F9",
"L= c #F8F7FA",
"M= c #E2E2E0",
"N= c #D3D3D2",
"O= c #C1C1C0",
"P= c #ABABAA",
"Q= c #A09FA0",
"R= c #2F3234",
"S= c #323533",
"T= c #2D302E",
"U= c #F2F1F6",
"V= c #A5BA60",
"W= c #A4BC52",
"X= c #A2BA4C",
"Y= c #9EB942",
"Z= c #A1BA4B",
"`= c #A0BA48",
" - c #9DB943",
".- c #9DB83F",
"+- c #9BB73B",
"@- c #99B736",
"#- c #89A232",
"$- c #333538",
"%- c #434543",
"&- c #2F3135",
"*- c #647233",
"=- c #8CA045",
"-- c #96AE44",
";- c #95AE3B",
">- c #9AB836",
",- c #B6CA72",
"'- c #D2DDAD",
")- c #EEEFE8",
"!- c #F4F5F3",
"~- c #F5F5F3",
"{- c #F4F3F2",
"]- c #F3F3F1",
"^- c #E1E1E0",
"/- c #D3D3D1",
"(- c #C0C0BF",
"_- c #AAA9A9",
":- c #919291",
"<- c #25272A",
"[- c #343735",
"}- c #333634",
"|- c #363837",
"1- c #949494",
"2- c #B0C07E",
"3- c #9FBA46",
"4- c #9BB73A",
"5- c #9DB942",
"6- c #9AB738",
"7- c #9AB637",
"8- c #98B533",
"9- c #97B52E",
"0- c #99BA29",
"a- c #323435",
"b- c #424541",
"c- c #353737",
"d- c #2E2F37",
"e- c #7D8F3E",
"f- c #A0B164",
"g- c #C3CD9A",
"h- c #E3E6D5",
"i- c #F4F4F5",
"j- c #F2F2F0",
"k- c #EBEAE9",
"l- c #DFDFDE",
"m- c #BEBDBD",
"n- c #A7A7A6",
"o- c #767675",
"p- c #272A2B",
"q- c #373A38",
"r- c #C7D0A9",
"s- c #A1BB4A",
"t- c #9CB83D",
"u- c #9AB73A",
"v- c #9AB739",
"w- c #99B634",
"x- c #96B52D",
"y- c #90B11E",
"z- c #94B625",
"A- c #545C41",
"B- c #2A2C31",
"C- c #87878A",
"D- c #D8D7D8",
"E- c #E3E2E1",
"F- c #F2F1F0",
"G- c #F5F4F4",
"H- c #F0EFEE",
"I- c #E8E7E6",
"J- c #DCDBDA",
"K- c #BAB9B8",
"L- c #464847",
"M- c #2C2F2E",
"N- c #393C39",
"O- c #282B2A",
"P- c #DEE0DA",
"Q- c #9CB83C",
"R- c #9CB83F",
"S- c #99B635",
"T- c #95B42C",
"U- c #91B124",
"V- c #C3D290",
"W- c #DEE4CC",
"X- c #F4F2F9",
"Y- c #ACADAD",
"Z- c #3F423F",
"`- c #313333",
" ; c #3D3F41",
".; c #DEDEDC",
"+; c #F1F0EE",
"@; c #E3E3E1",
"#; c #D7D7D5",
"$; c #C7C7C5",
"%; c #B2B2B1",
"&; c #898989",
"*; c #292B2A",
"=; c #343635",
"-; c #292C2A",
";; c #B7B7B6",
">; c #99B342",
",; c #95B32D",
"'; c #A3BD4D",
"); c #BECE85",
"!; c #D9E0BE",
"~; c #F3F2F5",
"{; c #3E403D",
"]; c #2C2D30",
"^; c #7F807F",
"/; c #E4E4E2",
"(; c #F1F2F0",
"_; c #F5F4F3",
":; c #E8E8E6",
"<; c #DDDCDB",
"[; c #C3C3C2",
"}; c #A2A2A1",
"|; c #777777",
"1; c #2A2D2C",
"2; c #FBFBFA",
"3; c #E6EAD7",
"4; c #EEEFEA",
"5; c #F6F5F9",
"6; c #F2F1F2",
"7; c #9A9A99",
"8; c #2D3031",
"9; c #B5B5B3",
"0; c #E5E5E3",
"a; c #F1F1EF",
"b; c #E7E6E6",
"c; c #CACAC9",
"d; c #A7A6A6",
"e; c #737373",
"f; c #4E4E4E",
"g; c #2E2E2E",
"h; c #282B29",
"i; c #252828",
"j; c #303231",
"k; c #333535",
"l; c #BFBFBD",
"m; c #E5E4E3",
"n; c #EFEEED",
"o; c #D9D8D7",
"p; c #BBBABA",
"q; c #8A8A89",
"r; c #5D5D5C",
"s; c #424141",
"t; c #333331",
"u; c #434341",
"v; c #2C2F2D",
"w; c #262929",
"x; c #3B3E3C",
"y; c #CACACA",
"z; c #D1D2D0",
"A; c #2A2D2B",
"B; c #3B3D3C",
"C; c #353836",
"D; c #ADADAC",
"E; c #E0E0DE",
"F; c #E8E7E5",
"G; c #DAD8D8",
"H; c #C2C2C1",
"I; c #9B9A9A",
"J; c #656564",
"K; c #474746",
"L; c #2E2D2C",
"M; c #2B2D2C",
"N; c #A2A2A3",
"O; c #D4D4D4",
"P; c #A3A3A3",
"Q; c #4E4F4E",
"R; c #2E312F",
"S; c #2B2E2C",
"T; c #70716F",
"U; c #9C9C9B",
"V; c #6D6D6C",
"W; c #515150",
"X; c #353433",
"Y; c #3B3A39",
"Z; c #545453",
"`; c #363936",
" > c #262928",
".> c #DADADA",
"+> c #B3B3B3",
"@> c #343434",
"#> c #050505",
"$> c #000000",
"%> c #383938",
"&> c #323434",
"*> c #454746",
"=> c #595A58",
"-> c #4C4D4B",
";> c #272A29",
">> c #CECECE",
",> c #C2C2C2",
"'> c #848484",
")> c #424242",
"!> c #141414",
"~> c #323432",
"{> c #333534",
"]> c #393B3A",
"^> c #323433",
"/> c #343736",
"(> c #252827",
"_> c #909291",
":> c #C5CBCC",
"<> c #272727",
"[> c #7A7A7A",
"}> c #545454",
"|> c #222222",
"1> c #333633",
"2> c #2A2C2B",
"3> c #242726",
"4> c #7B7F80",
"5> c #6F7270",
"6> c #A2A29C",
"7> c #D0D4D5",
"8> c #CBB58E",
"9> c #393C3B",
"0> c #353735",
"a> c #727675",
"b> c #878A89",
"c> c #B28D4F",
"d> c #D2A158",
"e> c #E4B573",
"f> c #424443",
"g> c #373939",
"h> c #323534",
"i> c #2B2E2D",
"j> c #272928",
"k> c #282A29",
"l> c #2C2E2D",
"m> c #785B2A",
"n> c #A06A14",
"o> c #B78433",
"p> c #D9AA6A",
"q> c #E6B87A",
"r> c #E9BA74",
"s> c #593805",
"t> c #815103",
"u> c #9F6A14",
"v> c #BA883A",
"w> c #DCAD71",
"x> c #E6B97D",
"y> c #E9BA75",
"z> c #57390B",
"A> c #7F4F02",
"B> c #9E6913",
"C> c #BD8B40",
"D> c #DDAF75",
"E> c #E6B87F",
"F> c #E9BA77",
"G> c #553A0E",
"H> c #7D4E02",
"I> c #C28F47",
"J> c #DEB177",
"K> c #E6B97F",
"L> c #EABB78",
"M> c #553B11",
"N> c #7C4D01",
"O> c #9E6914",
"P> c #C3924C",
"Q> c #DEB178",
"R> c #E9BB79",
"S> c #553C13",
"T> c #7A4C01",
"U> c #C5944F",
"V> c #E6B87E",
"W> c #563D16",
"X> c #794B01",
"Y> c #C79653",
"Z> c #DEB078",
"`> c #E5B77C",
" , c #563E18",
"., c #784B02",
"+, c #9F6914",
"@, c #C89856",
"#, c #E4B67A",
"$, c #56401B",
"%, c #784B04",
"&, c #9F6A16",
"*, c #C99957",
"=, c #DBAC71",
"-, c #59411E",
";, c #7A4E08",
">, c #9B6712",
",, c #B48131",
"', c #513811",
"), c #734801",
" ",
" ",
" ",
" . + ",
" @ # $ % & & * ",
" = # - ; % > > , & & ' ",
" ) ; ! ~ $ ' { % > ] , , ^ & / ",
" + $ ( _ - ; ; ~ $ ' { % > ] ] & & : < ",
" [ { } ( _ _ | 1 1 ; ~ ~ $ { { % > ] , & & : ^ ",
" @ & } 2 3 4 5 5 _ _ | 1 - ; ; $ $ { % % > ] , & & : % ",
" 6 ( 7 8 ( ( ( 3 4 5 5 _ _ | 1 - ; ~ $ $ { % > ] ] { 9 0 a > b ",
" * _ c 7 2 2 } } d ( e 3 4 5 5 _ | | 1 - ; ~ $ ' { $ f g h i j k l m n ",
" [ $ c o 7 p p q 2 2 } } d ( 3 3 4 5 5 _ | | 1 ; ; - e r s t u v w x y z A B ! ",
" C o 7 7 7 7 7 D p 2 2 E } } ( ( 3 3 5 5 5 _ | 1 e F G H I J K L M N O P Q R S T U V ",
" $ 7 7 7 7 7 7 W p q 2 2 } d ( ( e 3 5 5 e X Y Z ` ...+.@.#.$.%.&.*.=.-.;.>.,.'.).!. ",
" ~.7 7 7 7 7 7 p p q 2 8 } d ( e ( {.].^./.(._.:.<.[.}.|.1.2.3.P 4.-.5.6.7.8.9.0.a.b. ",
" c.c 7 7 7 7 7 p p 2 2 } } d.e.f.g.h.i.j.k...l.m.n.o.p.q.N r.s.Q t.u.v.,.9.w.x.y.z.d ",
" c 7 7 7 7 7 p p d.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.=.T.U.V.W.X.Y.Z.`. +.+++d @+ ",
" { 7 7 7 #+$+%+&+*+=+-+;+>+,+'+)+!+~+{+]+^+/+(+P.O._+:+<+[+}+|+1+2+x.3+4+5+6+7+8+9+0+ ",
" = 7 a+b+c+d+I.e+f+>+>+g+h+i+j+k+l+O.O.m+n+o+p+q+O.r+s+t+u+O.O.v+w+x+y+z+A+B+C+D+E+F+ ",
" G+H+I+F.J+>+>+K+>+>+L+M+N+O+P+Q+R+P.O.S+T+o+U+V+O.W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@E ",
" 7 ;@>+>+>+>+>@,@,+'@)@!@~@{@]@^@/@l+O.' O.(@_@O.:@<@[@}@|@1@2@3@4@5@6@7@8@9@0@a@b@c@ ",
" # d@e@>+>+,@f@g@h@i@O.O.j@k@l@o+m@n@o@p@q@r@s@t@u@v@w@4@x@y@z@A@B@C@D@E@F@G@H@I@J@K@ ",
" L@M@N@>+O@P@Q@R@S@o+(+(+O.O.T@U@V@W@X@Y@Z@`@ #.#+#@###$#%#*#=#-#;#>#,#'#)#!#~#{#]#^# ",
" /#(#_#M+k...:#<#[#l+P.V+{.}#O.|#1#2#3#4#5#6#7#8#9#0#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r# ",
" 3 s#t#u#v#w#x#y#z#o+O.P.A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#`# $.$+$]#@$ ",
" #$$$%$&$*$#.=$-$;$>$,$'$O.)$!$~${$]$^$/$($_$:$<$[$}$|$1$2$3$4$5$6$7$8$9$0$a$b$c$d$e$f$g$h$ ",
" i$j$k$l$l$m$n$o$p$q$r$s$t$u$v$w$x$y$z$A$B$C$D$E$F$G$H$I$J$K$L$M$N$A#e O$P$Q$R$S$T$U$V$W$r#X$ ",
" Y$Z$x `$ %.%+%@%o+P.A##%$%%%&%*%=%-%;%>%,%'%)%!%~%{%]%^%$ {.q+A#q+/%} (%_%:%S$<%[%o#}%|%1% ",
" $ 2%3%z Q 4%5%6%q+7%8%9%0%a%b%c%d%e%f%K#g%h%i%j%k%l%m%_ 2 n%V+Y$O.O.o%C p%q%r%S$s%t%u%v%w%x% ",
" y%z%.%A%B%C%D%E%O.O.O.O.E%F%G%H%I%J%K%L%M%N%O%P%Q%R%2 c S%T%U%O.6%8%V%W%X%Y%Z%`%S$ &K%.&+&@& ",
" #&$&%&&&7.*&=&N.O.O.-&;&>&N.E%,&'&)&!&~&{&]&^&/&(&_&:&<&[&O.}&|&1&2&3&4&5&6&7&8&9&0&a&b&c&d&e& ",
" }#f&g&h&I i&j&k&l&m&n&o&n%M$p&q&r&s&t&u&v&w&x&y&z&{.7%Y$A&B&C&D&E&F&G&H&I&J&K&L&<%M&N&O&P&x% ",
" C Q&R&S&T&U&V&W&X&Y&o&Z&p+`& *.*+*@*#*$*%*&*n%**n%Y$V+A&A&=*-*;*>*,*'*)*!*~*{*]*^*/*(*_*:*<* ",
" [*}*|*1*2*3*4*5*6*7*6%P.O.8*9*0*a*b*c*d*e*f*g*h*i*Y$j*k*O.l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*A*B* ",
" C*A#D*E*F*F*G*H*I*J*]@O.O.K*L*M*a*N*O*P*Q*R*S*T*O.O.O.U*V*W*X*Y*Z*`* =.=+=@=#=$=/ %=&=*===-= ",
" ;=C.F*>=,='=)=!=~={=]=^=/=(=_=:=<=[=}=|=1=2=3=4=5=6=7=8=9=0=a=b=c=d=( e=f=g=h=C*i=j=k=r#l= ",
" [ m=T.U.'=n=o=p=q=r=s=t=u=v=w=x=y=z=A=B=C=D=E=F=G=H=I=J=K=L=p q q 8 -&$ M=N=O=P=Q=R=S=@$T= ",
" i$U=V=W=X=Y=Z=`= -.-+-@-#-$-%-&-<**-=---;->-,-'-)-A.7 7 7 p p !-~-{-]-e=^-/-(-_-:-<-[-}-|- ",
" 1-E%2-=$3-4-5-Y=6-7-8-9-0-a-b-c-d-e-f-g-h-j$i-2 2 p p p p p ~-q !-8 j-k-l-#=m-n-o-p-q-B*^# ",
" e r-s-Y=t-u-v-w-x-n*y-z-A-J@9*B-C-D-E-$ F-{-~-p G-~-p p ~-q ~-8 } H-I-J-[*K-i#L-M-N-O- ",
" y%P-Q-R-4-S-T-U-x V-W-X-Y-S=Z-`- ;g=.;^ +;{-8 2 ~-p q ~-q ~-2 8 -&$ @;#;$;%;&;*;d&=;-; ",
" ;;j$>;,;';);!;a+~;! _ | } [-{;h$];^;f./;e=(;{-8 2 _;p 2 2 2 8 -&1 :;<;[;};|;K@1;q-1;:* ",
" 2;3;4;5;6;3 4 5 ! _ | _ 7;1%X$1%8;9;#$0;$ a;} {-8 {-} 8 _;( b;c;d;e;f;g;|-h;d&S=i; ",
" : d ( e 3 3 4 5 _ _ | 1 ( 0*r#N-j;k;l;#$m;> n;F-]-( 3 o;p;q;r;s;t;u; %-1;v;h$w;x; ",
" y;( ( ( 3 4 5 5 _ _ | 1 - z;A;B;C;@&c-D;~.E;F;G;H;I;J;K;L; q#O-M;h$A;T= ",
" N;7 ( ( 3 4 5 ! ! 5 | $ O;P;Q;R;^#C;R;S;T;U;V;W;X;Y; Z;`; >S;h$v;*; ",
" d.( 3 3 e a;4 .>+>e;@>#>$> %>T=:*q-R;M;&>*>=> ->:*h;O-R;C;-=;> ",
" >>p ( + ,>'>)>!>$> @&~>A*{>v;A;h;T=]>A*:*^>;> >h;v;/>S=(>M;_>:> ",
" <>[>}>|>$>$> B;O-1>w%C;j;M-1;2>A;-=M-1%`;{>O-3>h$4>5>6>7>8> ",
" 9>O-M;^>0>@$|-|-[-1%v;(> >[- a>b>c>d>e> ",
" f>g>h>i>j>k>l>d&[- m>n>o>p>q>r> ",
" s>t>u>v>w>x>y> ",
" z>A>B>C>D>E>F> ",
" G>H>B>I>J>K>L> ",
" M>N>O>P>Q>E>R> ",
" S>T>O>U>Q>V> ",
" W>X>O>Y>Z>`> ",
" ,.,+,@,Q>#, ",
" $,%,&,*,=, ",
" -,;,>,,, ",
" ',), ",
" ",
" "};
WindowMaker-0.95.8/util/common.h 0000664 0001750 0001750 00000002140 12650014300 013371 0000000 0000000 /*
* Command-line utilities for WindowMaker
*
* Copyright (c) 1997-2003 Alfredo K. Kojima
* Copyright (c) 2004 Dan Pascu
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
/*
* Functions that are used by more than one tool
*/
#ifndef UTIL_COMMON_H
#define UTIL_COMMON_H
/* ---[ util/fontconv.c ]------------------------------------------------- */
char *convertFont(char *font, Bool keepXLFD);
#endif
WindowMaker-0.95.8/util/wmsetbg.c 0000664 0001750 0001750 00000103130 12650014300 013545 0000000 0000000 /* wmsetbg.c- sets root window background image and also works as
* workspace background setting helper for wmaker
*
* WindowMaker window manager
*
* Copyright (c) 1998-2003 Alfredo K. Kojima
* Copyright (c) 1998-2003 Dan Pascu
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
/*
* TODO: rewrite, too dirty
*/
#include "config.h"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#ifdef USE_XINERAMA
# ifdef SOLARIS_XINERAMA /* sucks */
# include
# else
# include
# endif
#endif
#ifdef HAVE_STDNORETURN
#include
#endif
#include "../src/wconfig.h"
#include
#include
typedef struct {
WMRect *screens;
int count; /* screen count, 0 = inactive */
} WXineramaInfo;
#define WORKSPACE_COUNT (MAX_WORKSPACES+1)
Display *dpy;
char *display = "";
Window root;
int scr;
int scrWidth;
int scrHeight;
int scrX, scrY;
WXineramaInfo xineInfo;
Bool smooth = False;
#ifdef USE_XINERAMA
Bool xineStretch = False;
#endif
Pixmap CurrentPixmap = None;
char *PixmapPath = NULL;
static const char *prog_name;
typedef struct BackgroundTexture {
int refcount;
int solid;
char *spec;
XColor color;
Pixmap pixmap; /* for all textures, including solid */
int width; /* size of the pixmap */
int height;
} BackgroundTexture;
static noreturn void quit(int rcode)
{
WMReleaseApplication();
exit(rcode);
}
static void initXinerama(void)
{
xineInfo.screens = NULL;
xineInfo.count = 0;
#ifdef USE_XINERAMA
# ifdef SOLARIS_XINERAMA
if (XineramaGetState(dpy, scr)) {
XRectangle head[MAXFRAMEBUFFERS];
unsigned char hints[MAXFRAMEBUFFERS];
int i;
if (XineramaGetInfo(dpy, scr, head, hints, &xineInfo.count)) {
xineInfo.screens = wmalloc(sizeof(WMRect) * (xineInfo.count + 1));
for (i = 0; i < xineInfo.count; i++) {
xineInfo.screens[i].pos.x = head[i].x;
xineInfo.screens[i].pos.y = head[i].y;
xineInfo.screens[i].size.width = head[i].width;
xineInfo.screens[i].size.height = head[i].height;
}
}
}
# else /* !SOLARIS_XINERAMA */
if (XineramaIsActive(dpy)) {
XineramaScreenInfo *xine_screens;
int i;
xine_screens = XineramaQueryScreens(dpy, &xineInfo.count);
xineInfo.screens = wmalloc(sizeof(WMRect) * (xineInfo.count + 1));
for (i = 0; i < xineInfo.count; i++) {
xineInfo.screens[i].pos.x = xine_screens[i].x_org;
xineInfo.screens[i].pos.y = xine_screens[i].y_org;
xineInfo.screens[i].size.width = xine_screens[i].width;
xineInfo.screens[i].size.height = xine_screens[i].height;
}
XFree(xine_screens);
}
# endif /* !SOLARIS_XINERAMA */
#endif /* USE_XINERAMA */
}
static RImage *loadImage(RContext * rc, const char *file)
{
char *path;
RImage *image;
if (access(file, F_OK) != 0) {
path = wfindfile(PixmapPath, file);
if (!path) {
wwarning("%s:could not find image file used in texture", file);
return NULL;
}
} else {
path = wstrdup(file);
}
image = RLoadImage(rc, path, 0);
if (!image) {
wwarning("%s:could not load image file used in texture:%s", path, RMessageForError(RErrorCode));
}
wfree(path);
return image;
}
static void
applyImage(RContext * rc, BackgroundTexture * texture, RImage * image, char type,
int x, int y, int width, int height)
{
int w, h;
Bool fimage = False;
switch (toupper(type)) {
case 'S':
case 'M':
case 'F':
if (toupper(type) == 'S') {
w = width;
h = height;
} else if(toupper(type) == 'F') {
if (image->width * height > image->height * width) {
w = (height * image->width) / image->height;
h = height;
} else {
w = width;
h = (width * image->height) / image->width;
}
} else {
if (image->width * height > image->height * width) {
w = width;
h = (width * image->height) / image->width;
} else {
w = (height * image->width) / image->height;
h = height;
}
}
if (w != image->width || h != image->height) {
RImage *simage;
if (smooth) {
simage = RSmoothScaleImage(image, w, h);
} else {
simage = RScaleImage(image, w, h);
}
if (!simage) {
wwarning("could not scale image:%s", RMessageForError(RErrorCode));
return;
}
fimage = True;
image = simage;
}
/* fall through */
case 'C':
{
Pixmap pixmap;
if (!RConvertImage(rc, image, &pixmap)) {
wwarning("could not convert texture:%s", RMessageForError(RErrorCode));
if (fimage)
RReleaseImage(image);
return;
}
if (image->width != width || image->height != height) {
int sx, sy, w, h;
if (image->height < height) {
h = image->height;
y += (height - h) / 2;
sy = 0;
} else {
sy = (image->height - height) / 2;
h = height;
}
if (image->width < width) {
w = image->width;
x += (width - w) / 2;
sx = 0;
} else {
sx = (image->width - width) / 2;
w = width;
}
XCopyArea(dpy, pixmap, texture->pixmap, DefaultGC(dpy, scr), sx, sy, w, h, x, y);
} else
XCopyArea(dpy, pixmap, texture->pixmap, DefaultGC(dpy, scr), 0, 0, width, height,
x, y);
XFreePixmap(dpy, pixmap);
if (fimage) {
RReleaseImage(image);
}
}
break;
}
}
static BackgroundTexture *parseTexture(RContext * rc, char *text)
{
BackgroundTexture *texture = NULL;
WMPropList *texarray;
WMPropList *val;
int count;
char *tmp;
char *type;
#define GETSTRORGOTO(val, str, i, label) \
val = WMGetFromPLArray(texarray, i);\
if (!WMIsPLString(val)) {\
wwarning("could not parse texture %s", text);\
goto label;\
}\
str = WMGetFromPLString(val)
texarray = WMCreatePropListFromDescription(text);
if (!texarray || !WMIsPLArray(texarray)
|| (count = WMGetPropListItemCount(texarray)) < 2) {
wwarning("could not parse texture %s", text);
if (texarray)
WMReleasePropList(texarray);
return NULL;
}
texture = wmalloc(sizeof(BackgroundTexture));
GETSTRORGOTO(val, type, 0, error);
if (strcasecmp(type, "solid") == 0) {
XColor color;
Pixmap pixmap;
texture->solid = 1;
GETSTRORGOTO(val, tmp, 1, error);
if (!XParseColor(dpy, DefaultColormap(dpy, scr), tmp, &color)) {
wwarning("could not parse color %s in texture %s", tmp, text);
goto error;
}
XAllocColor(dpy, DefaultColormap(dpy, scr), &color);
pixmap = XCreatePixmap(dpy, root, 8, 8, DefaultDepth(dpy, scr));
XSetForeground(dpy, DefaultGC(dpy, scr), color.pixel);
XFillRectangle(dpy, pixmap, DefaultGC(dpy, scr), 0, 0, 8, 8);
texture->pixmap = pixmap;
texture->color = color;
texture->width = 8;
texture->height = 8;
} else if (strcasecmp(type, "vgradient") == 0
|| strcasecmp(type, "dgradient") == 0 || strcasecmp(type, "hgradient") == 0) {
XColor color;
RColor color1, color2;
RImage *image;
Pixmap pixmap;
RGradientStyle gtype;
int iwidth, iheight;
GETSTRORGOTO(val, tmp, 1, error);
if (!XParseColor(dpy, DefaultColormap(dpy, scr), tmp, &color)) {
wwarning("could not parse color %s in texture %s", tmp, text);
goto error;
}
color1.red = color.red >> 8;
color1.green = color.green >> 8;
color1.blue = color.blue >> 8;
GETSTRORGOTO(val, tmp, 2, error);
if (!XParseColor(dpy, DefaultColormap(dpy, scr), tmp, &color)) {
wwarning("could not parse color %s in texture %s", tmp, text);
goto error;
}
color2.red = color.red >> 8;
color2.green = color.green >> 8;
color2.blue = color.blue >> 8;
switch (type[0]) {
case 'h':
case 'H':
gtype = RHorizontalGradient;
iwidth = scrWidth;
iheight = 32;
break;
case 'V':
case 'v':
gtype = RVerticalGradient;
iwidth = 32;
iheight = scrHeight;
break;
default:
gtype = RDiagonalGradient;
iwidth = scrWidth;
iheight = scrHeight;
break;
}
image = RRenderGradient(iwidth, iheight, &color1, &color2, gtype);
if (!image) {
wwarning("could not render gradient texture:%s", RMessageForError(RErrorCode));
goto error;
}
if (!RConvertImage(rc, image, &pixmap)) {
wwarning("could not convert texture:%s", RMessageForError(RErrorCode));
RReleaseImage(image);
goto error;
}
texture->width = image->width;
texture->height = image->height;
RReleaseImage(image);
texture->pixmap = pixmap;
} else if (strcasecmp(type, "mvgradient") == 0
|| strcasecmp(type, "mdgradient") == 0 || strcasecmp(type, "mhgradient") == 0) {
XColor color;
RColor **colors;
RImage *image;
Pixmap pixmap;
int i, j;
RGradientStyle gtype;
int iwidth, iheight;
colors = malloc(sizeof(RColor *) * (count - 1));
if (!colors) {
wwarning("out of memory while parsing texture");
goto error;
}
memset(colors, 0, sizeof(RColor *) * (count - 1));
for (i = 2; i < count; i++) {
val = WMGetFromPLArray(texarray, i);
if (!WMIsPLString(val)) {
wwarning("could not parse texture %s", text);
for (j = 0; colors[j] != NULL; j++)
wfree(colors[j]);
wfree(colors);
goto error;
}
tmp = WMGetFromPLString(val);
if (!XParseColor(dpy, DefaultColormap(dpy, scr), tmp, &color)) {
wwarning("could not parse color %s in texture %s", tmp, text);
for (j = 0; colors[j] != NULL; j++)
wfree(colors[j]);
wfree(colors);
goto error;
}
if (!(colors[i - 2] = malloc(sizeof(RColor)))) {
wwarning("out of memory while parsing texture");
for (j = 0; colors[j] != NULL; j++)
wfree(colors[j]);
wfree(colors);
goto error;
}
colors[i - 2]->red = color.red >> 8;
colors[i - 2]->green = color.green >> 8;
colors[i - 2]->blue = color.blue >> 8;
}
switch (type[1]) {
case 'h':
case 'H':
gtype = RHorizontalGradient;
iwidth = scrWidth;
iheight = 32;
break;
case 'V':
case 'v':
gtype = RVerticalGradient;
iwidth = 32;
iheight = scrHeight;
break;
default:
gtype = RDiagonalGradient;
iwidth = scrWidth;
iheight = scrHeight;
break;
}
image = RRenderMultiGradient(iwidth, iheight, colors, gtype);
for (j = 0; colors[j] != NULL; j++)
wfree(colors[j]);
wfree(colors);
if (!image) {
wwarning("could not render gradient texture:%s", RMessageForError(RErrorCode));
goto error;
}
if (!RConvertImage(rc, image, &pixmap)) {
wwarning("could not convert texture:%s", RMessageForError(RErrorCode));
RReleaseImage(image);
goto error;
}
texture->width = image->width;
texture->height = image->height;
RReleaseImage(image);
texture->pixmap = pixmap;
} else if (strcasecmp(type, "cpixmap") == 0
|| strcasecmp(type, "spixmap") == 0 || strcasecmp(type, "fpixmap") == 0
|| strcasecmp(type, "mpixmap") == 0 || strcasecmp(type, "tpixmap") == 0) {
XColor color;
Pixmap pixmap = None;
RImage *image = NULL;
int iwidth = 0, iheight = 0;
RColor rcolor;
GETSTRORGOTO(val, tmp, 1, error);
/*
if (toupper(type[0]) == 'T' || toupper(type[0]) == 'C')
pixmap = LoadJPEG(rc, tmp, &iwidth, &iheight);
*/
if (!pixmap) {
image = loadImage(rc, tmp);
if (!image) {
goto error;
}
iwidth = image->width;
iheight = image->height;
}
GETSTRORGOTO(val, tmp, 2, error);
if (!XParseColor(dpy, DefaultColormap(dpy, scr), tmp, &color)) {
wwarning("could not parse color %s in texture %s", tmp, text);
RReleaseImage(image);
goto error;
}
if (!XAllocColor(dpy, DefaultColormap(dpy, scr), &color)) {
rcolor.red = color.red >> 8;
rcolor.green = color.green >> 8;
rcolor.blue = color.blue >> 8;
RGetClosestXColor(rc, &rcolor, &color);
} else {
rcolor.red = 0;
rcolor.green = 0;
rcolor.blue = 0;
}
/* for images with a transparent color */
if (image && image->data[3])
RCombineImageWithColor(image, &rcolor);
switch (toupper(type[0])) {
case 'T':
texture->width = iwidth;
texture->height = iheight;
if (!pixmap && !RConvertImage(rc, image, &pixmap)) {
wwarning("could not convert texture:%s", RMessageForError(RErrorCode));
RReleaseImage(image);
goto error;
}
texture->pixmap = pixmap;
texture->color = color;
break;
case 'S':
case 'M':
case 'C':
case 'F':
{
Pixmap tpixmap =
XCreatePixmap(dpy, root, scrWidth, scrHeight, DefaultDepth(dpy, scr));
XSetForeground(dpy, DefaultGC(dpy, scr), color.pixel);
XFillRectangle(dpy, tpixmap, DefaultGC(dpy, scr), 0, 0, scrWidth, scrHeight);
texture->pixmap = tpixmap;
texture->color = color;
texture->width = scrWidth;
texture->height = scrHeight;
if (!image)
break;
#ifdef USE_XINERAMA
if (xineInfo.count && ! xineStretch) {
int i;
for (i = 0; i < xineInfo.count; ++i) {
applyImage(rc, texture, image, type[0],
xineInfo.screens[i].pos.x, xineInfo.screens[i].pos.y,
xineInfo.screens[i].size.width,
xineInfo.screens[i].size.height);
}
} else {
applyImage(rc, texture, image, type[0], 0, 0, scrWidth, scrHeight);
}
#else /* !USE_XINERAMA */
applyImage(rc, texture, image, type[0], 0, 0, scrWidth, scrHeight);
#endif /* !USE_XINERAMA */
}
break;
}
if (image)
RReleaseImage(image);
} else if (strcasecmp(type, "thgradient") == 0
|| strcasecmp(type, "tvgradient") == 0 || strcasecmp(type, "tdgradient") == 0) {
XColor color;
RColor color1, color2;
RImage *image;
RImage *gradient;
RImage *tiled;
Pixmap pixmap;
int opaq;
char *file;
RGradientStyle gtype;
int twidth, theight;
GETSTRORGOTO(val, file, 1, error);
GETSTRORGOTO(val, tmp, 2, error);
opaq = atoi(tmp);
GETSTRORGOTO(val, tmp, 3, error);
if (!XParseColor(dpy, DefaultColormap(dpy, scr), tmp, &color)) {
wwarning("could not parse color %s in texture %s", tmp, text);
goto error;
}
color1.red = color.red >> 8;
color1.green = color.green >> 8;
color1.blue = color.blue >> 8;
GETSTRORGOTO(val, tmp, 4, error);
if (!XParseColor(dpy, DefaultColormap(dpy, scr), tmp, &color)) {
wwarning("could not parse color %s in texture %s", tmp, text);
goto error;
}
color2.red = color.red >> 8;
color2.green = color.green >> 8;
color2.blue = color.blue >> 8;
image = loadImage(rc, file);
if (!image) {
goto error;
}
switch (type[1]) {
case 'h':
case 'H':
gtype = RHorizontalGradient;
twidth = scrWidth;
theight = image->height > scrHeight ? scrHeight : image->height;
break;
case 'V':
case 'v':
gtype = RVerticalGradient;
twidth = image->width > scrWidth ? scrWidth : image->width;
theight = scrHeight;
break;
default:
gtype = RDiagonalGradient;
twidth = scrWidth;
theight = scrHeight;
break;
}
gradient = RRenderGradient(twidth, theight, &color1, &color2, gtype);
if (!gradient) {
wwarning("could not render texture:%s", RMessageForError(RErrorCode));
RReleaseImage(image);
goto error;
}
tiled = RMakeTiledImage(image, twidth, theight);
if (!tiled) {
wwarning("could not render texture:%s", RMessageForError(RErrorCode));
RReleaseImage(gradient);
RReleaseImage(image);
goto error;
}
RReleaseImage(image);
RCombineImagesWithOpaqueness(tiled, gradient, opaq);
RReleaseImage(gradient);
if (!RConvertImage(rc, tiled, &pixmap)) {
wwarning("could not convert texture:%s", RMessageForError(RErrorCode));
RReleaseImage(tiled);
goto error;
}
texture->width = tiled->width;
texture->height = tiled->height;
RReleaseImage(tiled);
texture->pixmap = pixmap;
} else if (strcasecmp(type, "function") == 0) {
/* Leave this in to handle the unlikely case of
* someone actually having function textures configured */
wwarning("function texture support has been removed");
goto error;
} else {
wwarning("invalid texture type %s", text);
goto error;
}
texture->spec = wstrdup(text);
return texture;
error:
if (texture)
wfree(texture);
if (texarray)
WMReleasePropList(texarray);
return NULL;
}
static void freeTexture(BackgroundTexture * texture)
{
if (texture->solid) {
unsigned long pixel[1];
pixel[0] = texture->color.pixel;
/* dont free black/white pixels */
if (pixel[0] != BlackPixelOfScreen(DefaultScreenOfDisplay(dpy))
&& pixel[0] != WhitePixelOfScreen(DefaultScreenOfDisplay(dpy)))
XFreeColors(dpy, DefaultColormap(dpy, scr), pixel, 1, 0);
}
if (texture->pixmap) {
XFreePixmap(dpy, texture->pixmap);
}
wfree(texture->spec);
wfree(texture);
}
static void setupTexture(RContext * rc, BackgroundTexture ** textures, int *maxTextures, int workspace, char *texture)
{
BackgroundTexture *newTexture = NULL;
int i;
/* unset the texture */
if (!texture) {
if (textures[workspace] != NULL) {
textures[workspace]->refcount--;
if (textures[workspace]->refcount == 0)
freeTexture(textures[workspace]);
}
textures[workspace] = NULL;
return;
}
if (textures[workspace]
&& strcasecmp(textures[workspace]->spec, texture) == 0) {
/* texture did not change */
return;
}
/* check if the same texture is already created */
for (i = 0; i < *maxTextures; i++) {
if (textures[i] && strcasecmp(textures[i]->spec, texture) == 0) {
newTexture = textures[i];
break;
}
}
if (!newTexture) {
/* create the texture */
newTexture = parseTexture(rc, texture);
}
if (!newTexture)
return;
if (textures[workspace] != NULL) {
textures[workspace]->refcount--;
if (textures[workspace]->refcount == 0)
freeTexture(textures[workspace]);
}
newTexture->refcount++;
textures[workspace] = newTexture;
if (*maxTextures < workspace)
*maxTextures = workspace;
}
static Pixmap duplicatePixmap(Pixmap pixmap, int width, int height)
{
Display *tmpDpy;
Pixmap copyP;
/* must open a new display or the RetainPermanent will
* leave stuff allocated in RContext unallocated after exit */
tmpDpy = XOpenDisplay(display);
if (!tmpDpy) {
wwarning("could not open display to update background image information");
return None;
} else {
XSync(dpy, False);
copyP = XCreatePixmap(tmpDpy, root, width, height, DefaultDepth(tmpDpy, scr));
XCopyArea(tmpDpy, pixmap, copyP, DefaultGC(tmpDpy, scr), 0, 0, width, height, 0, 0);
XSync(tmpDpy, False);
XSetCloseDownMode(tmpDpy, RetainPermanent);
XCloseDisplay(tmpDpy);
}
return copyP;
}
static int dummyErrorHandler(Display * dpy, XErrorEvent * err)
{
/* Parameter not used, but tell the compiler that it is ok */
(void) dpy;
(void) err;
return 0;
}
static void setPixmapProperty(Pixmap pixmap)
{
static Atom prop = 0;
Atom type;
int format;
unsigned long length, after;
unsigned char *data;
int mode;
if (!prop) {
prop = XInternAtom(dpy, "_XROOTPMAP_ID", False);
}
XGrabServer(dpy);
/* Clear out the old pixmap */
XGetWindowProperty(dpy, root, prop, 0L, 1L, False, AnyPropertyType,
&type, &format, &length, &after, &data);
if ((type == XA_PIXMAP) && (format == 32) && (length == 1)) {
XSetErrorHandler(dummyErrorHandler);
XKillClient(dpy, *((Pixmap *) data));
XSync(dpy, False);
XSetErrorHandler(NULL);
mode = PropModeReplace;
} else {
mode = PropModeAppend;
}
if (pixmap)
XChangeProperty(dpy, root, prop, XA_PIXMAP, 32, mode, (unsigned char *)&pixmap, 1);
else
XDeleteProperty(dpy, root, prop);
XUngrabServer(dpy);
XFlush(dpy);
}
static void changeTexture(BackgroundTexture * texture)
{
if (!texture) {
return;
}
if (texture->solid) {
XSetWindowBackground(dpy, root, texture->color.pixel);
} else {
XSetWindowBackgroundPixmap(dpy, root, texture->pixmap);
}
XClearWindow(dpy, root);
XSync(dpy, False);
{
Pixmap pixmap;
pixmap = duplicatePixmap(texture->pixmap, texture->width, texture->height);
setPixmapProperty(pixmap);
}
}
static int readmsg(int fd, char *buffer, int size)
{
int count;
while (size > 0) {
count = read(fd, buffer, size);
if (count < 0)
return -1;
size -= count;
buffer += count;
*buffer = 0;
}
return size;
}
/*
* Message Format:
* sizeSntexture_spec - sets the texture for workspace n
* sizeCn - change background texture to the one for workspace n
* sizePpath - set the pixmap search path
*
* n is 4 bytes
* size = 4 bytes for length of the message data
*/
static noreturn void helperLoop(RContext * rc)
{
BackgroundTexture *textures[WORKSPACE_COUNT];
int maxTextures = 0;
char buffer[2048], buf[8];
int size;
int errcount = 4;
memset(textures, 0, WORKSPACE_COUNT * sizeof(BackgroundTexture *));
while (1) {
int workspace = -1;
/* get length of message */
if (readmsg(0, buffer, 4) < 0) {
werror("error reading message from Window Maker");
errcount--;
if (errcount == 0) {
wfatal("quitting");
quit(1);
}
continue;
}
memcpy(buf, buffer, 4);
buf[4] = 0;
size = atoi(buf);
if (size < 0 || size > sizeof(buffer)) {
wfatal("received invalid size %d for message from WindowMaker", size);
quit(1);
}
if (size == 0) {
werror("received 0-sized message from WindowMaker, trying to continue");
continue;
}
/* get message */
if (readmsg(0, buffer, size) < 0) {
werror("error reading message from Window Maker");
errcount--;
if (errcount == 0) {
wfatal("quitting");
quit(1);
}
continue;
}
#ifdef DEBUG
printf("RECEIVED %s\n", buffer);
#endif
if (buffer[0] != 'P' && buffer[0] != 'K') {
memcpy(buf, &buffer[1], 4);
buf[4] = 0;
workspace = atoi(buf);
if (workspace < 0 || workspace >= WORKSPACE_COUNT) {
wwarning("received message with invalid workspace number %i", workspace);
continue;
}
}
switch (buffer[0]) {
case 'S':
#ifdef DEBUG
printf("set texture %s\n", &buffer[5]);
#endif
setupTexture(rc, textures, &maxTextures, workspace, &buffer[5]);
break;
case 'C':
#ifdef DEBUG
printf("change texture %i\n", workspace);
#endif
if (!textures[workspace]) {
changeTexture(textures[0]);
} else {
changeTexture(textures[workspace]);
}
break;
case 'P':
#ifdef DEBUG
printf("change pixmappath %s\n", &buffer[1]);
#endif
if (PixmapPath)
wfree(PixmapPath);
PixmapPath = wstrdup(&buffer[1]);
break;
case 'U':
#ifdef DEBUG
printf("unset workspace %i\n", workspace);
#endif
setupTexture(rc, textures, &maxTextures, workspace, NULL);
break;
case 'K':
#ifdef DEBUG
printf("exit command\n");
#endif
quit(0);
default:
wwarning("unknown message received");
break;
}
}
}
static void updateDomain(const char *domain, const char *key, const char *texture)
{
int result;
char *program = "wdwrite";
char cmd_smooth[1024];
snprintf(cmd_smooth, sizeof(cmd_smooth),
"wdwrite %s SmoothWorkspaceBack %s",
domain, smooth ? "YES" : "NO");
result = system(cmd_smooth);
if (result == -1)
werror("error executing system(\"%s\")", cmd_smooth);
execlp(program, program, domain, key, texture, NULL);
wwarning("warning could not run \"%s\"", program);
}
static WMPropList *getValueForKey(const char *domain, const char *keyName)
{
char *path;
WMPropList *key, *val, *d;
key = WMCreatePLString(keyName);
/* try to find PixmapPath in user defaults */
path = wdefaultspathfordomain(domain);
d = WMReadPropListFromFile(path);
if (!d) {
wwarning("could not open domain file %s", path);
}
wfree(path);
if (d && !WMIsPLDictionary(d)) {
WMReleasePropList(d);
d = NULL;
}
if (d) {
val = WMGetFromPLDictionary(d, key);
} else {
val = NULL;
}
/* try to find PixmapPath in global defaults */
if (!val) {
path = wglobaldefaultspathfordomain(domain);
if (!path) {
wwarning("could not locate file for domain %s", domain);
d = NULL;
} else {
d = WMReadPropListFromFile(path);
wfree(path);
}
if (d && !WMIsPLDictionary(d)) {
WMReleasePropList(d);
d = NULL;
}
if (d) {
val = WMGetFromPLDictionary(d, key);
} else {
val = NULL;
}
}
if (val)
WMRetainPropList(val);
WMReleasePropList(key);
if (d)
WMReleasePropList(d);
return val;
}
static char *getPixmapPath(const char *domain)
{
WMPropList *val;
char *ptr, *data;
int len, i, count;
val = getValueForKey(domain, "PixmapPath");
if (!val || !WMIsPLArray(val)) {
if (val)
WMReleasePropList(val);
return wstrdup("");
}
count = WMGetPropListItemCount(val);
len = 0;
for (i = 0; i < count; i++) {
WMPropList *v;
v = WMGetFromPLArray(val, i);
if (!v || !WMIsPLString(v)) {
continue;
}
len += strlen(WMGetFromPLString(v)) + 1;
}
ptr = data = wmalloc(len + 1);
*ptr = 0;
for (i = 0; i < count; i++) {
WMPropList *v;
v = WMGetFromPLArray(val, i);
if (!v || !WMIsPLString(v)) {
continue;
}
strcpy(ptr, WMGetFromPLString(v));
ptr += strlen(WMGetFromPLString(v));
*ptr = ':';
ptr++;
}
if (i > 0)
ptr--;
*(ptr--) = 0;
WMReleasePropList(val);
return data;
}
static char *getFullPixmapPath(const char *file)
{
char *tmp;
if (!PixmapPath || !(tmp = wfindfile(PixmapPath, file))) {
int bsize = 512;
char *path = wmalloc(bsize);
while (!getcwd(path, bsize)) {
bsize += bsize / 2;
path = wrealloc(path, bsize);
}
tmp = wstrconcat(path, "/");
wfree(path);
path = wstrconcat(tmp, file);
wfree(tmp);
return path;
}
/* the file is in the PixmapPath */
wfree(tmp);
return wstrdup(file);
}
static void print_help(void)
{
printf("Usage: %s [options] [image]\n", prog_name);
puts("Sets the workspace background to the specified image or a texture and");
puts("optionally update Window Maker configuration");
puts("");
puts(" -display display to use");
puts(" -d, --dither dither image");
puts(" -m, --match match colors");
puts(" -S, --smooth smooth scaled image");
#ifdef USE_XINERAMA
puts(" -X, --xinerama stretch image across Xinerama heads");
#endif
puts(" -b, --back-color background color");
puts(" -t, --tile tile image");
puts(" -e, --center center image");
puts(" -s, --scale scale image (default)");
puts(" -a, --maxscale scale image and keep aspect ratio");
puts(" -f, --fillscale scale image to fill screen and keep aspect ratio");
puts(" -u, --update-wmaker update WindowMaker domain database");
puts(" -D, --update-domain update database");
puts(" -c, --colors colors per channel to use");
puts(" -p, --parse proplist style texture specification");
puts(" -w, --workspace update background for the specified workspace");
puts(" -v, --version show version of wmsetbg and exit");
puts(" -h, --help show this help and exit");
}
static void changeTextureForWorkspace(const char *domain, char *texture, int workspace)
{
WMPropList *array, *val;
char *value;
int j;
val = WMCreatePropListFromDescription(texture);
if (!val) {
wwarning("could not parse texture %s", texture);
return;
}
array = getValueForKey("WindowMaker", "WorkspaceSpecificBack");
if (!array) {
array = WMCreatePLArray(NULL, NULL);
}
j = WMGetPropListItemCount(array);
if (workspace >= j) {
WMPropList *empty;
empty = WMCreatePLArray(NULL, NULL);
while (j++ < workspace - 1) {
WMAddToPLArray(array, empty);
}
WMAddToPLArray(array, val);
WMReleasePropList(empty);
} else {
WMDeleteFromPLArray(array, workspace);
WMInsertInPLArray(array, workspace, val);
}
value = WMGetPropListDescription(array, False);
updateDomain(domain, "WorkspaceSpecificBack", value);
WMReleasePropList(array);
}
int main(int argc, char **argv)
{
int i;
int helperMode = 0;
RContext *rc;
RContextAttributes rattr;
char *style = "spixmap";
char *back_color = "gray20";
char *image_name = NULL;
char *domain = "WindowMaker";
int update = 0, cpc = 4, obey_user = 0;
RRenderingMode render_mode = RDitheredRendering;
char *texture = NULL;
int workspace = -1;
signal(SIGINT, SIG_DFL);
signal(SIGTERM, SIG_DFL);
signal(SIGQUIT, SIG_DFL);
signal(SIGSEGV, SIG_DFL);
signal(SIGBUS, SIG_DFL);
signal(SIGFPE, SIG_DFL);
signal(SIGABRT, SIG_DFL);
signal(SIGHUP, SIG_DFL);
signal(SIGPIPE, SIG_DFL);
signal(SIGCHLD, SIG_DFL);
WMInitializeApplication("wmsetbg", &argc, argv);
prog_name = argv[0];
for (i = 1; i < argc; i++) {
if (strcmp(argv[i], "-helper") == 0) {
helperMode = 1;
} else if (strcmp(argv[i], "-display") == 0) {
i++;
if (i >= argc) {
wfatal("too few arguments for %s", argv[i - 1]);
quit(1);
}
display = argv[i];
} else if (strcmp(argv[i], "-s") == 0 || strcmp(argv[i], "--scale") == 0) {
style = "spixmap";
} else if (strcmp(argv[i], "-t") == 0 || strcmp(argv[i], "--tile") == 0) {
style = "tpixmap";
} else if (strcmp(argv[i], "-e") == 0 || strcmp(argv[i], "--center") == 0) {
style = "cpixmap";
} else if (strcmp(argv[i], "-a") == 0 || strcmp(argv[i], "--maxscale") == 0) {
style = "mpixmap";
} else if (strcmp(argv[i], "-f") == 0 || strcmp(argv[i], "--fillscale") == 0) {
style = "fpixmap";
} else if (strcmp(argv[i], "-d") == 0 || strcmp(argv[i], "--dither") == 0) {
render_mode = RDitheredRendering;
obey_user++;
} else if (strcmp(argv[i], "-m") == 0 || strcmp(argv[i], "--match") == 0) {
render_mode = RBestMatchRendering;
obey_user++;
} else if (strcmp(argv[i], "-S") == 0 || strcmp(argv[i], "--smooth") == 0) {
smooth = True;
#ifdef USE_XINERAMA
} else if (strcmp(argv[i], "-X") == 0 || strcmp(argv[i], "--xinerama") == 0) {
xineStretch = True;
#endif
} else if (strcmp(argv[i], "-u") == 0 || strcmp(argv[i], "--update-wmaker") == 0) {
update++;
} else if (strcmp(argv[i], "-D") == 0 || strcmp(argv[i], "--update-domain") == 0) {
update++;
i++;
if (i >= argc) {
wfatal("too few arguments for %s", argv[i - 1]);
quit(1);
}
domain = wstrdup(argv[i]);
} else if (strcmp(argv[i], "-c") == 0 || strcmp(argv[i], "--colors") == 0) {
i++;
if (i >= argc) {
wfatal("too few arguments for %s", argv[i - 1]);
quit(1);
}
if (sscanf(argv[i], "%i", &cpc) != 1) {
wfatal("bad value for colors per channel: \"%s\"", argv[i]);
quit(1);
}
} else if (strcmp(argv[i], "-b") == 0 || strcmp(argv[i], "--back-color") == 0) {
i++;
if (i >= argc) {
wfatal("too few arguments for %s", argv[i - 1]);
quit(1);
}
back_color = argv[i];
} else if (strcmp(argv[i], "-p") == 0 || strcmp(argv[i], "--parse") == 0) {
i++;
if (i >= argc) {
wfatal("too few arguments for %s", argv[i - 1]);
quit(1);
}
texture = argv[i];
} else if (strcmp(argv[i], "-w") == 0 || strcmp(argv[i], "--workspace") == 0) {
i++;
if (i >= argc) {
wfatal("too few arguments for %s", argv[i - 1]);
quit(1);
}
if (sscanf(argv[i], "%i", &workspace) != 1) {
wfatal("bad value for workspace number: \"%s\"", argv[i]);
quit(1);
}
} else if (strcmp(argv[i], "-v") == 0 || strcmp(argv[i], "--version") == 0) {
printf("%s (Window Maker %s)\n", prog_name, VERSION);
quit(0);
} else if (strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0) {
print_help();
quit(0);
} else if (argv[i][0] != '-') {
image_name = argv[i];
} else {
printf("%s: invalid argument '%s'\n", prog_name, argv[i]);
printf("Try '%s --help' for more information\n", prog_name);
quit(1);
}
}
if (!image_name && !texture && !helperMode) {
printf("%s: you must specify a image file name or a texture\n", prog_name);
printf("Try '%s --help' for more information\n", prog_name);
quit(1);
}
PixmapPath = getPixmapPath(domain);
if (!smooth) {
WMPropList *val;
/* carlos, don't remove this */
#if 0 /* some problem with Alpha... TODO: check if its right */
val = WMGetFromPLDictionary(domain, WMCreatePLString("SmoothWorkspaceBack"));
#else
val = getValueForKey(domain, "SmoothWorkspaceBack");
#endif
if (val && WMIsPLString(val) && strcasecmp(WMGetFromPLString(val), "YES") == 0)
smooth = True;
}
dpy = XOpenDisplay(display);
if (!dpy) {
wfatal("could not open display");
quit(1);
}
#if 0
XSynchronize(dpy, 1);
#endif
root = DefaultRootWindow(dpy);
scr = DefaultScreen(dpy);
scrWidth = WidthOfScreen(DefaultScreenOfDisplay(dpy));
scrHeight = HeightOfScreen(DefaultScreenOfDisplay(dpy));
scrX = scrY = 0;
initXinerama();
if (!obey_user && DefaultDepth(dpy, scr) <= 8)
render_mode = RDitheredRendering;
rattr.flags = RC_RenderMode | RC_ColorsPerChannel | RC_StandardColormap | RC_DefaultVisual;
rattr.render_mode = render_mode;
rattr.colors_per_channel = cpc;
rattr.standard_colormap_mode = RCreateStdColormap;
rc = RCreateContext(dpy, scr, &rattr);
if (!rc) {
rattr.standard_colormap_mode = RIgnoreStdColormap;
rc = RCreateContext(dpy, scr, &rattr);
}
if (!rc) {
wfatal("could not initialize wrlib: %s", RMessageForError(RErrorCode));
quit(1);
}
if (helperMode) {
int result;
/* lower priority, so that it wont use all the CPU */
result = nice(15);
if (result == -1)
wwarning("error could not nice process");
helperLoop(rc);
} else {
BackgroundTexture *tex;
char buffer[4098];
if (!texture) {
char *image_path = getFullPixmapPath(image_name);
snprintf(buffer, sizeof(buffer), "(%s, \"%s\", %s)", style, image_path, back_color);
wfree(image_path);
texture = (char *)buffer;
}
if (update && workspace < 0) {
updateDomain(domain, "WorkspaceBack", texture);
}
tex = parseTexture(rc, texture);
if (!tex)
quit(1);
if (workspace < 0)
changeTexture(tex);
else {
/* always update domain */
changeTextureForWorkspace(domain, texture, workspace);
}
}
WMReleaseApplication();
return 0;
}
WindowMaker-0.95.8/util/Makefile.am 0000664 0001750 0001750 00000004430 12651057551 014010 0000000 0000000 SUBDIRS = po
AUTOMAKE_OPTIONS =
pkgdatadir = $(datadir)/@PACKAGE@
bin_PROGRAMS = wxcopy wxpaste wdwrite wdread getstyle setstyle convertfonts \
seticons geticonset wmsetbg wmagnify wmgenmenu wmmenugen wmiv
bin_SCRIPTS = wmaker.inst wm-oldmenu2new wkdemenu.pl
EXTRA_DIST = wmaker.inst.in bughint wm-oldmenu2new wkdemenu.pl
AM_CPPFLAGS = \
$(DFLAGS) -I$(top_srcdir)/WINGs -I$(top_srcdir)/wrlib \
@HEADER_SEARCH_PATH@ \
-DETCDIR=\"sysconfdir\" -DDATADIR=\"pkgdatadir\"
liblist= @LIBRARY_SEARCH_PATH@ @INTLIBS@
wdwrite_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist)
wdread_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist)
wxcopy_LDADD = @XLFLAGS@ @XLIBS@
wxpaste_LDADD = @XLFLAGS@ @XLIBS@
getstyle_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist)
getstyle_SOURCES = getstyle.c fontconv.c common.h
setstyle_LDADD = \
$(top_builddir)/WINGs/libWUtil.la \
@XLFLAGS@ @XLIBS@ $(liblist)
setstyle_SOURCES = setstyle.c fontconv.c common.h
convertfonts_LDADD = $(top_builddir)/WINGs/libWUtil.la $(liblist)
convertfonts_SOURCES = convertfonts.c fontconv.c common.h
seticons_LDADD= $(top_builddir)/WINGs/libWUtil.la $(liblist)
geticonset_LDADD= $(top_builddir)/WINGs/libWUtil.la $(liblist)
wmagnify_LDADD = \
$(top_builddir)/WINGs/libWINGs.la \
$(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/wrlib/libwraster.la \
@XLFLAGS@ @XLIBS@ @INTLIBS@
wmsetbg_LDADD = \
$(top_builddir)/WINGs/libWINGs.la \
$(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/wrlib/libwraster.la \
@XLFLAGS@ @LIBXINERAMA@ @XLIBS@ @INTLIBS@
wmgenmenu_LDADD = \
$(top_builddir)/WINGs/libWUtil.la \
@INTLIBS@
wmgenmenu_SOURCES = wmgenmenu.c wmgenmenu.h
wmmenugen_LDADD = \
$(top_builddir)/WINGs/libWUtil.la \
@INTLIBS@
wmmenugen_SOURCES = wmmenugen.c wmmenugen.h wmmenugen_misc.c \
wmmenugen_parse_wmconfig.c \
wmmenugen_parse_xdg.c
wmiv_LDADD = \
$(top_builddir)/wrlib/libwraster.la \
@XLFLAGS@ @XLIBS@ \
@GFXLIBS@ $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(LIBEXIF)
wmiv_SOURCES = wmiv.c wmiv.h
CLEANFILES = wmaker.inst
wmaker.inst: $(srcdir)/wmaker.inst.in ./Makefile
$(AM_V_GEN)sed -e "s|#pkgdatadir#|$(pkgdatadir)|" \
-e "s|#sysconfdir#|$(sysconfdir)/WindowMaker|" \
-e "s|#version#|$(VERSION)|" \
-e "s|#bindir#|$(bindir)|" \
$(srcdir)/wmaker.inst.in >wmaker.inst ; \
chmod 755 wmaker.inst
WindowMaker-0.95.8/util/wmgenmenu.c 0000664 0001750 0001750 00000033113 13014066244 014113 0000000 0000000 /* Copyright (C) 2010 Carlos R. Mafra */
#ifdef __GLIBC__
#define _GNU_SOURCE /* getopt_long */
#endif
#include "config.h"
#include
#include
#include
#include
#include
#include
#include
#ifdef HAVE_STDNORETURN
#include
#endif
#include
#include "../src/wconfig.h"
#define MAX_NR_APPS 128 /* Maximum number of entries in each apps list */
#define MAX_WMS 10 /* Maximum number of other window managers to check */
#include "wmgenmenu.h"
static void find_and_write(const char *group, char *list[][2], int this_is_terminals);
static void other_window_managers(void);
static void print_help(int print_usage, int exitval);
static const char *prog_name;
char *path, *terminal = NULL;
WMPropList *RMenu, *L1Menu, *L2Menu, *L3Menu, *L4Menu;
int main(int argc, char *argv[])
{
char *t;
int ch;
char *tmp, *theme_paths, *style_paths, *icon_paths;
tmp = wstrconcat("-noext ", PKGDATADIR);
theme_paths = wstrconcat(tmp, "/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle");
style_paths = wstrconcat(tmp, "/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle");
icon_paths = wstrconcat(tmp, "/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons");
struct option longopts[] = {
{ "version", no_argument, NULL, 'v' },
{ "help", no_argument, NULL, 'h' },
{ NULL, 0, NULL, 0 }
};
prog_name = argv[0];
while ((ch = getopt_long(argc, argv, "hv", longopts, NULL)) != -1)
switch (ch) {
case 'v':
printf("%s (Window Maker %s)\n", prog_name, VERSION);
return 0;
/* NOTREACHED */
case 'h':
print_help(1, 0);
/* NOTREACHED */
default:
print_help(0, 1);
/* NOTREACHED */
}
argc -= optind;
argv += optind;
if (argc != 0)
print_help(0, 1);
path = getenv("PATH");
setlocale(LC_ALL, "");
#if defined(HAVE_LIBINTL_H) && defined(I18N)
if (getenv("NLSPATH"))
bindtextdomain("wmgenmenu", getenv("NLSPATH"));
else
bindtextdomain("wmgenmenu", LOCALEDIR);
bind_textdomain_codeset("wmgenmenu", "UTF-8");
textdomain("wmgenmenu");
#endif
/*
* The menu generated is a five-level hierarchy, of which the
* top level (RMenu) is only used to hold the others (a single
* PLString, which will be the title of the root menu)
*
* RMenu Window Maker
* L1Menu Applications
* L2Menu Terminals
* L3Menu XTerm
* L3Menu RXVT
* L2Menu Internet
* L3Menu Firefox
* L2Menu E-mail
* L1Menu Appearance
* L2Menu Themes
* L2Menu Background
* L3Menu Solid
* L4Menu Indigo
* L1Menu Configure Window Maker
*
*/
/* Root */
RMenu = WMCreatePLArray(WMCreatePLString("Window Maker"), NULL);
/* Root -> Applications */
L1Menu = WMCreatePLArray(WMCreatePLString(_("Applications")), NULL);
/* Root -> Applications -> */
find_and_write(_("Terminals"), Terminals, 1); /* always keep terminals the top item */
find_and_write(_("Internet"), Internet, 0);
find_and_write(_("Email"), Email, 0);
find_and_write(_("Mathematics"), Mathematics, 0);
find_and_write(_("File Managers"), File_managers, 0);
find_and_write(_("Graphics"), Graphics, 0);
find_and_write(_("Multimedia"), Multimedia, 0);
find_and_write(_("Editors"), Editors, 0);
find_and_write(_("Development"), Development, 0);
find_and_write("Window Maker", WindowMaker, 0);
find_and_write(_("Office"), Office, 0);
find_and_write(_("Astronomy"), Astronomy, 0);
find_and_write(_("Sound"), Sound, 0);
find_and_write(_("Comics"), Comics, 0);
find_and_write(_("Viewers"), Viewers, 0);
find_and_write(_("Utilities"), Utilities, 0);
find_and_write(_("System"), System, 0);
find_and_write(_("Video"), Video, 0);
find_and_write(_("Chat and Talk"), Chat, 0);
find_and_write(_("P2P Network"), P2P, 0);
find_and_write(_("Games"), Games, 0);
find_and_write("OpenSUSE", OpenSUSE, 0);
find_and_write("Mandriva", Mandriva, 0);
WMAddToPLArray(RMenu, L1Menu);
/* Root -> `Run' dialog */
L1Menu = WMCreatePLArray(
WMCreatePLString(_("Run...")),
WMCreatePLString("SHEXEC"),
WMCreatePLString(_("%A(Run, Type command:)")),
NULL
);
WMAddToPLArray(RMenu, L1Menu);
/* Root -> Appearance */
L1Menu = WMCreatePLArray(WMCreatePLString(_("Appearance")), NULL);
/* Root -> Appearance -> Themes */
L2Menu = WMCreatePLArray(
WMCreatePLString(_("Themes")),
WMCreatePLString("OPEN_MENU"),
WMCreatePLString(theme_paths),
NULL
);
WMAddToPLArray(L1Menu, L2Menu);
/* Root -> Appearance -> Styles */
L2Menu = WMCreatePLArray(
WMCreatePLString(_("Styles")),
WMCreatePLString("OPEN_MENU"),
WMCreatePLString(style_paths),
NULL
);
WMAddToPLArray(L1Menu, L2Menu);
/* Root -> Appearance -> Icon Sets */
L2Menu = WMCreatePLArray(
WMCreatePLString(_("Icon Sets")),
WMCreatePLString("OPEN_MENU"),
WMCreatePLString(icon_paths),
NULL
);
WMAddToPLArray(L1Menu, L2Menu);
/* Root -> Appearance -> Background */
L2Menu = WMCreatePLArray(WMCreatePLString(_("Background")), NULL);
/* Root -> Appearance -> Background -> Solid */
L3Menu = WMCreatePLArray(WMCreatePLString(_("Solid")), NULL);
#define SOLID_BACK(label, colorspec) \
L4Menu = WMCreatePLArray( \
WMCreatePLString(label), \
WMCreatePLString("EXEC"), \
WMCreatePLString("wdwrite WindowMaker WorkspaceBack '(solid, \"" colorspec "\")'"), \
NULL \
); \
WMAddToPLArray(L3Menu, L4Menu)
/* Root -> Appearance -> Background -> Solid -> */
SOLID_BACK(_("Black"), "black");
SOLID_BACK(_("Blue"), "#505075");
SOLID_BACK(_("Indigo"), "#243e6c");
SOLID_BACK(_("Bluemarine"), "#243e6c");
SOLID_BACK(_("Purple"), "#554466");
SOLID_BACK(_("Wheat"), "wheat4");
SOLID_BACK(_("Dark Gray"), "#333340");
SOLID_BACK(_("Wine"), "#400020");
#undef SOLID_BACK
WMAddToPLArray(L2Menu, L3Menu);
/* Root -> Appearance -> Background -> Gradient */
L3Menu = WMCreatePLArray(WMCreatePLString(_("Gradient")), NULL);
#define GRADIENT_BACK(label, fcolorspec, tcolorspec) \
L4Menu = WMCreatePLArray( \
WMCreatePLString(label), \
WMCreatePLString("EXEC"), \
WMCreatePLString("wdwrite WindowMaker WorkspaceBack '(vgradient, \"" \
fcolorspec "\", \"" tcolorspec "\"'"), \
NULL \
); \
WMAddToPLArray(L3Menu, L4Menu)
/* Root -> Appearance -> Background -> Gradient -> */
L4Menu = WMCreatePLArray(
WMCreatePLString(_("Sunset")),
WMCreatePLString("EXEC"),
WMCreatePLString("wdwrite WindowMaker WorkspaceBack "
"'(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"),
NULL
);
WMAddToPLArray(L3Menu, L4Menu);
GRADIENT_BACK(_("Sky"), "blue4", "white");
GRADIENT_BACK(_("Blue Shades"), "#7080a5", "#101020");
GRADIENT_BACK(_("Indigo Shades"), "#746ebc", "#242e4c");
GRADIENT_BACK(_("Purple Shades"), "#654c66", "#151426");
GRADIENT_BACK(_("Wheat Shades"), "#a09060", "#302010");
GRADIENT_BACK(_("Grey Shades"), "#636380", "#131318");
GRADIENT_BACK(_("Wine Shades"), "#600040", "#180010");
#undef GRADIENT_BACK
WMAddToPLArray(L2Menu, L3Menu);
/* Root -> Appearance -> Background -> Images */
L3Menu = WMCreatePLArray(
WMCreatePLString(_("Images")),
WMCreatePLString("OPEN_MENU"),
WMCreatePLString("-noext $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t"),
NULL
);
WMAddToPLArray(L2Menu, L3Menu);
WMAddToPLArray(L1Menu, L2Menu);
/* Root -> Appearance -> Save Theme */
L2Menu = WMCreatePLArray(
WMCreatePLString(_("Save Theme")),
WMCreatePLString("SHEXEC"),
WMCreatePLString("getstyle -p \"%a(Theme name, Name to save theme as)\""),
NULL
);
WMAddToPLArray(L1Menu, L2Menu);
/* Root -> Appearance -> Save IconSet */
L2Menu = WMCreatePLArray(
WMCreatePLString(_("Save IconSet")),
WMCreatePLString("SHEXEC"),
WMCreatePLString("geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/"
"\"%a(IconSet name,Name to save icon set as)\""),
NULL
);
WMAddToPLArray(L1Menu, L2Menu);
WMAddToPLArray(RMenu, L1Menu);
/* Root -> Workspaces */
L1Menu = WMCreatePLArray(
WMCreatePLString(_("Workspaces")),
WMCreatePLString("WORKSPACE_MENU"),
NULL
);
WMAddToPLArray(RMenu, L1Menu);
/* Root -> Workspace */
L1Menu = WMCreatePLArray(WMCreatePLString(_("Workspace")), NULL);
L2Menu = WMCreatePLArray(
WMCreatePLString(_("Hide Others")),
WMCreatePLString("HIDE_OTHERS"),
NULL
);
WMAddToPLArray(L1Menu, L2Menu);
/* Root -> Workspace -> Show All */
L2Menu = WMCreatePLArray(
WMCreatePLString(_("Show All")),
WMCreatePLString("SHOW_ALL"),
NULL
);
WMAddToPLArray(L1Menu, L2Menu);
/* Root -> Workspace -> Arrange Icons */
L2Menu = WMCreatePLArray(
WMCreatePLString(_("Arrange Icons")),
WMCreatePLString("ARRANGE_ICONS"),
NULL
);
WMAddToPLArray(L1Menu, L2Menu);
/* Root -> Workspace -> Refresh */
L2Menu = WMCreatePLArray(
WMCreatePLString(_("Refresh")),
WMCreatePLString("REFRESH"),
NULL
);
WMAddToPLArray(L1Menu, L2Menu);
/* Root -> Workspace -> Save Session */
L2Menu = WMCreatePLArray(
WMCreatePLString(_("Save Session")),
WMCreatePLString("SAVE_SESSION"),
NULL
);
WMAddToPLArray(L1Menu, L2Menu);
/* Root -> Workspace -> Clear Session */
L2Menu = WMCreatePLArray(
WMCreatePLString(_("Clear Session")),
WMCreatePLString("CLEAR_SESSION"),
NULL
);
WMAddToPLArray(L1Menu, L2Menu);
WMAddToPLArray(RMenu, L1Menu);
/* Root -> Configure Window Maker */
L1Menu = WMCreatePLArray(
WMCreatePLString(_("Configure Window Maker")),
WMCreatePLString("EXEC"),
WMCreatePLString("WPrefs"),
NULL
);
WMAddToPLArray(RMenu, L1Menu);
/* Root -> Info Panel */
L1Menu = WMCreatePLArray(
WMCreatePLString(_("Info Panel")),
WMCreatePLString("INFO_PANEL"),
NULL
);
WMAddToPLArray(RMenu, L1Menu);
/* Root -> Restart Window Maker */
L1Menu = WMCreatePLArray(
WMCreatePLString(_("Restart Window Maker")),
WMCreatePLString("RESTART"),
NULL
);
WMAddToPLArray(RMenu, L1Menu);
/* Root -> Other Window Managers [-> ...] */
other_window_managers();
/* Root -> Lock Screen */
t = wfindfile(path, "xlock");
if (t) {
L1Menu = WMCreatePLArray(
WMCreatePLString(_("Lock Screen")),
WMCreatePLString("EXEC"),
WMCreatePLString("xlock -allowroot -usefirst -mode matrix"),
NULL
);
WMAddToPLArray(RMenu, L1Menu);
wfree(t);
}
/* Root -> Exit Window Maker */
L1Menu = WMCreatePLArray(
WMCreatePLString(_("Exit Window Maker")),
WMCreatePLString("EXIT"),
NULL
);
WMAddToPLArray(RMenu, L1Menu);
printf("%s", WMGetPropListDescription(RMenu, True));
puts("");
return 0;
}
/*
* Creates an L2Menu made of L3Menu items
* Attaches to L1Menu
* - make sure previous menus of these levels are
* attached to their parent before calling
*/
static void find_and_write(const char *group, char *list[][2], int this_is_terminals)
{
int i, argc;
char *t, **argv, buf[PATH_MAX];
/* or else pre-existing menus of these levels
* will badly disturb empty group detection */
L2Menu = NULL;
L3Menu = NULL;
i = 0;
while (list[i][0]) {
/* Before checking if app exists, split its options */
wtokensplit(list[i][1], &argv, &argc);
t = wfindfile(path, argv[0]);
if (t) {
/* find a terminal to be used for cmnds that need a terminal */
if (this_is_terminals && !terminal)
terminal = wstrdup(list[i][1]);
if (*(argv[argc-1]) != '!') {
L3Menu = WMCreatePLArray(
WMCreatePLString(_(list[i][0])),
WMCreatePLString("EXEC"),
WMCreatePLString(list[i][1]),
NULL
);
} else {
char comm[PATH_MAX], *ptr;
strncpy(comm, list[i][1], sizeof(comm) - 1);
comm[sizeof(comm) - 1] = '\0';
/* delete character " !" from the command */
ptr = strchr(comm, '!');
if (ptr != NULL) {
while (ptr > comm) {
if (!isspace(ptr[-1]))
break;
ptr--;
}
*ptr = '\0';
}
snprintf(buf, sizeof(buf), "%s -e %s", terminal ? terminal : "xterm" , comm);
/* Root -> Applications -> -> */
L3Menu = WMCreatePLArray(
WMCreatePLString(_(list[i][0])),
WMCreatePLString("EXEC"),
WMCreatePLString(buf),
NULL
);
}
if (!L2Menu)
L2Menu = WMCreatePLArray(
WMCreatePLString(group),
NULL
);
WMAddToPLArray(L2Menu, L3Menu);
wfree(t);
}
i++;
}
if (L2Menu)
WMAddToPLArray(L1Menu, L2Menu);
}
/*
* Creates an L1Menu made of L2Menu items
* - make sure previous menus of these levels are
* attached to their parent before calling
* Attaches to RMenu
*/
static void other_window_managers(void)
{
int i;
char *t, buf[PATH_MAX];
/* or else pre-existing menus of these levels
* will badly disturb empty group detection */
L1Menu = NULL;
L2Menu = NULL;
i = 0;
while (other_wm[i][0]) {
t = wfindfile(path, other_wm[i][1]);
if (t) {
snprintf(buf, sizeof(buf), _("Start %s"), _(other_wm[i][0]));
/* Root -> Other Window Managers -> */
L2Menu = WMCreatePLArray(
WMCreatePLString(buf),
WMCreatePLString("RESTART"),
WMCreatePLString(other_wm[i][1]),
NULL
);
if (!L1Menu)
L1Menu = WMCreatePLArray(
WMCreatePLString(_("Other Window Managers")),
NULL
);
WMAddToPLArray(L1Menu, L2Menu);
wfree(t);
}
i++;
}
if (L1Menu)
WMAddToPLArray(RMenu, L1Menu);
}
noreturn void print_help(int print_usage, int exitval)
{
printf("Usage: %s [-h] [-v]\n", prog_name);
if (print_usage) {
puts("Writes a menu structure usable as ~/GNUstep/Defaults/WMRootMenu to stdout");
puts("");
puts(" -h, --help display this help and exit");
puts(" -v, --version output version information and exit");
}
exit(exitval);
}
WindowMaker-0.95.8/util/convertfonts.c 0000664 0001750 0001750 00000010171 12651060407 014643 0000000 0000000 /* convertfonts.c - converts fonts in a style file to fontconfig format
*
* WindowMaker window manager
*
* Copyright (c) 2004 Dan Pascu
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifdef __GLIBC__
#define _GNU_SOURCE /* getopt_long */
#endif
#include "config.h"
#include
#include
#include
#include
#include
#include
#ifdef HAVE_STDNORETURN
#include
#endif
#include
#include "../src/wconfig.h"
#include "common.h"
char *FontOptions[] = {
"IconTitleFont",
"ClipTitleFont",
"LargeDisplayFont",
"MenuTextFont",
"MenuTitleFont",
"WindowTitleFont",
"SystemFont",
"BoldSystemFont",
NULL
};
static const char *prog_name;
static noreturn void print_help(int print_usage, int exitval)
{
printf("Usage: %s [-h] [-v] [--keep-xlfd] \n", prog_name);
if (print_usage) {
puts("Converts fonts in a style file into fontconfig format");
puts("");
puts(" -h, --help display this help and exit");
puts(" -v, --version output version information and exit");
puts(" --keep-xlfd preserve the original xlfd by appending a ':xlfd=' hint");
puts(" to the font name. This property is not used by the fontconfig");
puts(" matching engine to find the font, but it is useful as a hint");
puts(" about what the original font was to allow hand tuning the");
puts(" result or restoring the xlfd. The default is to not add it");
puts(" as it results in long, unreadable and confusing names.");
}
exit(exitval);
}
int main(int argc, char **argv)
{
WMPropList *style, *key, *val;
char *file = NULL, *oldfont, *newfont;
struct stat st;
Bool keepXLFD = False;
int i, ch;
struct option longopts[] = {
{ "version", no_argument, NULL, 'v' },
{ "help", no_argument, NULL, 'h' },
{ "keep-xlfd", no_argument, &keepXLFD, True },
{ NULL, 0, NULL, 0 }
};
prog_name = argv[0];
while ((ch = getopt_long(argc, argv, "hv", longopts, NULL)) != -1)
switch(ch) {
case 'v':
printf("%s (Window Maker %s)\n", prog_name, VERSION);
return 0;
/* NOTREACHED */
case 'h':
print_help(1, 0);
/* NOTREACHED */
case 0:
break;
default:
print_help(0, 1);
/* NOTREACHED */
}
argc -= optind;
argv += optind;
if (argc != 1)
print_help(0, 1);
file = argv[0];
if (stat(file, &st) != 0) {
perror(file);
return 1;
}
if (!S_ISREG(st.st_mode)) { /* maybe symlink too? */
fprintf(stderr, "%s: `%s' is not a regular file\n", prog_name, file);
return 1;
}
/* we need this in order for MB_CUR_MAX to work */
/* this contradicts big time with getstyle */
setlocale(LC_ALL, "");
WMPLSetCaseSensitive(False);
style = WMReadPropListFromFile(file);
if (!style) {
perror(file);
printf("%s: could not load style file\n", prog_name);
return 1;
}
if (!WMIsPLDictionary(style)) {
printf("%s: '%s' is not a well formatted style file\n", prog_name, file);
return 1;
}
for (i = 0; FontOptions[i] != NULL; i++) {
key = WMCreatePLString(FontOptions[i]);
val = WMGetFromPLDictionary(style, key);
if (val) {
oldfont = WMGetFromPLString(val);
newfont = convertFont(oldfont, keepXLFD);
if (oldfont != newfont) {
val = WMCreatePLString(newfont);
WMPutInPLDictionary(style, key, val);
WMReleasePropList(val);
wfree(newfont);
}
}
WMReleasePropList(key);
}
WMWritePropListToFile(style, file);
return 0;
}
WindowMaker-0.95.8/util/wmmenugen_misc.c 0000664 0001750 0001750 00000010145 12650014300 015115 0000000 0000000 /*
* wmmenugen - Window Maker PropList menu generator
*
* miscellaneous functions
*
* Copyright (c) 2010. Tamas Tevesz
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include
#include
#include
#include
static const char *const terminals[] = {
"x-terminal-emulator", /* Debian wrapper to launch user's prefered X terminal */
"aterm", /* AfterStep's X terminal, which provides "transparency" */
"eterm", /* Enlightenment's terminal, designed for eye-candyness (and efficiency) */
"gnome-terminal", /* GNOME project's terminal */
"konsole", /* KDE project's terminals */
"kterm", /* a Multi-Lingual Terminal based on xterm, originally by Katsuya Sano */
"mlterm", /* a Multi-Lingual Terminal emulator written from scratch */
"rxvt", /* a slimmed-down xterm */
"mrxvt", /* rxvt with support for tabs amongst other things */
"pterm", /* terminal based on PuTTY, a popular SSH client for Windows */
"xterm", /* the standard terminal provided by the X Window System */
"dtterm" /* provided by CDE, a frequent Desktop Environment in proprietary UNIXs */
};
/* pick a terminal emulator by finding the first existing entry of `terminals'
* in $PATH. the returned pointer should be wfreed later.
* if $WMMENU_TERMINAL exists in the environment, it's value overrides this
* detection.
*/
char *find_terminal_emulator(void)
{
char *path, *t;
int i;
t = getenv("WMMENU_TERMINAL");
if (t)
return wstrdup(t);
path = getenv("PATH");
if (!path)
return NULL;
for (i = 0; i < wlengthof(terminals); i++) {
t = wfindfile(path, terminals[i]);
if (t) {
wfree(t);
return wstrdup(terminals[i]);
}
}
return NULL;
}
/* tokenize `what' (LC_MESSAGES or LANG if `what' is NULL) in the form of
* `language[_territory][.codeset][@modifier]' into separate language, country,
* encoding, modifier components, which are allocated on demand and should be
* wfreed later. components that do not exist in `what' are set to NULL.
*/
void parse_locale(const char *what, char **language, char **country, char **encoding, char **modifier)
{
char *e, *p;
*language = *country = *encoding = *modifier = NULL;
if (what == NULL) {
e = getenv("LC_MESSAGES");
if (e == NULL) {
e = getenv("LANG"); /* this violates the spec */
if (e == NULL)
return;
}
e = wstrdup(e);
} else {
e = wstrdup(what);
}
if (strlen(e) == 0 ||
strcmp(e, "POSIX") == 0 ||
strcmp(e, "C") == 0)
goto out;
p = strchr(e, '@');
if (p) {
*modifier = wstrdup(p + 1);
*p = '\0';
}
p = strchr(e, '.');
if (p) {
*encoding = wstrdup(p + 1);
*p = '\0';
}
p = strchr(e, '_');
if (p) {
*country = wstrdup(p + 1);
*p = '\0';
}
if (strlen(e) > 0)
*language = wstrdup(e);
out:
free(e);
return;
}
/* determine whether (first token of) given file is in $PATH
*/
Bool fileInPath(const char *file)
{
char *p, *t;
static char *path = NULL;
if (!file || !*file)
return False;
/* if it's an absolute path spec, don't override the user.
* s/he might just know better.
*/
if (*file == '/')
return True;
/* if it has a directory separator at random places,
* we might know better.
*/
p = strchr(file, '/');
if (p)
return False;
if (!path) {
path = getenv("PATH");
if (!path)
return False;
}
p = wstrdup(file);
t = strpbrk(p, " \t");
if (t)
*t = '\0';
t = wfindfile(path, p);
wfree(p);
if (t) {
wfree(t);
return True;
}
return False;
}
WindowMaker-0.95.8/util/wdread.c 0000664 0001750 0001750 00000005220 12650014300 013344 0000000 0000000 /* wdread.c - read value from defaults database
*
* WindowMaker window manager
*
* Copyright (c) 1997-2003 Alfredo K. Kojima
* (cowardly remade from wdwrite.c; by judas@hell on Jan 26 2001)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifdef __GLIBC__
#define _GNU_SOURCE /* getopt_long */
#endif
/*
* WindowMaker defaults DB reader
*/
#include "config.h"
#include
#include
#include
#include
#include
#include
#ifdef HAVE_STDNORETURN
#include
#endif
#include
#include "../src/wconfig.h"
static const char *prog_name;
static noreturn void print_help(int print_usage, int exitval)
{
printf("Usage: %s [OPTIONS] \n", prog_name);
if (print_usage) {
puts("Read from 's database");
puts("");
puts(" -h, --help display this help message");
puts(" -v, --version output version information and exit");
}
exit(exitval);
}
int main(int argc, char **argv)
{
char path[PATH_MAX];
WMPropList *key, *value, *dict;
int ch;
struct option longopts[] = {
{ "version", no_argument, NULL, 'v' },
{ "help", no_argument, NULL, 'h' },
{ NULL, 0, NULL, 0 }
};
prog_name = argv[0];
while ((ch = getopt_long(argc, argv, "hv", longopts, NULL)) != -1)
switch(ch) {
case 'v':
printf("%s (Window Maker %s)\n", prog_name, VERSION);
return 0;
/* NOTREACHED */
case 'h':
print_help(1, 0);
/* NOTREACHED */
case 0:
break;
default:
print_help(0, 1);
/* NOTREACHED */
}
argc -= optind;
argv += optind;
if (argc != 2)
print_help(0, 1);
key = WMCreatePLString(argv[1]);
snprintf(path, sizeof(path), "%s", wdefaultspathfordomain(argv[0]));
dict = WMReadPropListFromFile(path);
if (dict == NULL)
return 1; /* bad domain */
value = WMGetFromPLDictionary(dict, key);
if (value == NULL)
return 2; /* bad key */
printf("%s\n", WMGetPropListDescription(value, True));
return 0;
}
WindowMaker-0.95.8/util/wkdemenu.pl 0000664 0001750 0001750 00000027363 12651057551 014142 0000000 0000000 #!/usr/bin/perl
#
#
# kde2wmaker.pl:
#
#
# This script, made for users of Window Maker (http://windowmaker.info) is to
# be used along with KDE (http://www.kde.org).
#
#
# The default directory, /usr/share/applnk, will contain various
# sub-directories such as Development, Editors, Internet, etc. If for some
# reason, you wish to use an alternate (parent) directory that contains the
# various applnk files, it can be specified on the command line.
#
# The directory, if an alternate is specified, MUST be a parent directory to
# any/all sub-directories.
#
# Usage: kde2wmaker.pl [ Options... ]
#
# Options:
#
# -d
# -f