#include "group.h"
#include "config.h"
#include "ping.h"
+#include "prompt.h"
+#include "hooks.h"
#include "gettext.h"
#include "render/render.h"
#include "render/theme.h"
#include <X11/Xlib.h>
#include <X11/keysym.h>
-RrInstance *ob_rr_inst;
-RrTheme *ob_rr_theme;
-ObtMainLoop *ob_main_loop;
-gint ob_screen;
-gboolean ob_replace_wm = FALSE;
-gboolean ob_sm_use = TRUE;
-gchar *ob_sm_id = NULL;
-gchar *ob_sm_save_file = NULL;
-gboolean ob_sm_restore = TRUE;
-gboolean ob_debug_xinerama = FALSE;
+RrInstance *ob_rr_inst;
+RrImageCache *ob_rr_icons;
+RrTheme *ob_rr_theme;
+ObtMainLoop *ob_main_loop;
+gint ob_screen;
+gboolean ob_replace_wm = FALSE;
+gboolean ob_sm_use = TRUE;
+gchar *ob_sm_id = NULL;
+gchar *ob_sm_save_file = NULL;
+gboolean ob_sm_restore = TRUE;
+gboolean ob_debug_xinerama = FALSE;
static ObState state;
static gboolean xsync = FALSE;
bind_textdomain_codeset(PACKAGE_NAME, "UTF-8");
textdomain(PACKAGE_NAME);
+ if (chdir(g_get_home_dir()) == -1)
+ g_message(_("Unable to change to home directory \"%s\": %s"),
+ g_get_home_dir(), g_strerror(errno));
+
/* parse the command line args, which can change the argv[0] */
parse_args(&argc, argv);
/* parse the environment variables */
* remote_control = 2 -> restart */
OBT_PROP_MSG(ob_screen, obt_root(ob_screen),
OB_CONTROL, remote_control, 0, 0, 0, 0);
- obt_display_close(obt_display);
+ obt_display_close();
exit(EXIT_SUCCESS);
}
ob_rr_inst = RrInstanceNew(obt_display, ob_screen);
if (ob_rr_inst == NULL)
ob_exit_with_error(_("Failed to initialize the obrender library."));
+ /* Saving 3 resizes of an RrImage makes a lot of sense for icons, as there
+ are generally 3 icon sizes needed: the titlebar icon, the menu icon,
+ and the alt-tab icon
+ */
+ ob_rr_icons = RrImageCacheNew(3);
XSynchronize(obt_display, xsync);
keys[OB_KEY_RIGHT] = obt_keyboard_keysym_to_keycode(XK_Right);
keys[OB_KEY_UP] = obt_keyboard_keysym_to_keycode(XK_Up);
keys[OB_KEY_DOWN] = obt_keyboard_keysym_to_keycode(XK_Down);
+ keys[OB_KEY_TAB] = obt_keyboard_keysym_to_keycode(XK_Tab);
+ keys[OB_KEY_SPACE] = obt_keyboard_keysym_to_keycode(XK_space);
{
ObtParseInst *i;
/* register all the available actions */
actions_startup(reconfigure);
+ hooks_startup(reconfigure);
/* start up config which sets up with the parser */
config_startup(i);
grab_startup(reconfigure);
group_startup(reconfigure);
ping_startup(reconfigure);
+ prompt_startup(reconfigure);
client_startup(reconfigure);
dock_startup(reconfigure);
moveresize_startup(reconfigure);
moveresize_shutdown(reconfigure);
dock_shutdown(reconfigure);
client_shutdown(reconfigure);
+ prompt_shutdown(reconfigure);
ping_shutdown(reconfigure);
group_shutdown(reconfigure);
grab_shutdown(reconfigure);
sn_shutdown(reconfigure);
event_shutdown(reconfigure);
config_shutdown();
+ hooks_shutdown(reconfigure);
actions_shutdown(reconfigure);
} while (reconfigure);
}
XSync(obt_display, FALSE);
RrThemeFree(ob_rr_theme);
+ RrImageCacheUnref(ob_rr_icons);
RrInstanceFree(ob_rr_inst);
session_shutdown(being_replaced);
- obt_display_close(obt_display);
+ obt_display_close();
if (restart) {
if (restart_path != NULL) {
g_strfreev(argvp);
} else {
g_message(
- _("Restart failed to execute new executable '%s': %s"),
+ _("Restart failed to execute new executable \"%s\": %s"),
restart_path, err->message);
g_error_free(err);
}
}
}
-static void print_version()
+static void print_version(void)
{
g_print("Openbox %s\n", PACKAGE_VERSION);
g_print(_("Copyright (c)"));
g_print("under certain conditions. See the file COPYING for details.\n\n");
}
-static void print_help()
+static void print_help(void)
{
g_print(_("Syntax: openbox [options]\n"));
g_print(_("\nOptions:\n"));
g_print(_(" --help Display this help and exit\n"));
g_print(_(" --version Display the version and exit\n"));
g_print(_(" --replace Replace the currently running window manager\n"));
+ /* TRANSLATORS: if you translate "FILE" here, make sure to keep the "Specify..."
+ aligned still, if you have to, make a new line with \n and 22 spaces. It's
+ fine to leave it as FILE though. */
g_print(_(" --config-file FILE Specify the path to the config file to use\n"));
g_print(_(" --sm-disable Disable connection to the session manager\n"));
g_print(_("\nPassing messages to a running Openbox instance:\n"));
*argc -= num;
}
-static void parse_env()
+static void parse_env(void)
{
/* unset this so we don't pass it on unknowingly */
unsetenv("DESKTOP_STARTUP_ID");
}
else if (!strcmp(argv[i], "--config-file")) {
if (i == *argc - 1) /* no args left */
- /* not translated cuz it's sekret */
g_printerr(_("--config-file requires an argument\n"));
else {
/* this will be in the current locale encoding, which is
else {
/* this is a memleak.. oh well.. heh */
gchar *err = g_strdup_printf
- (_("Invalid command line argument '%s'\n"), argv[i]);
+ (_("Invalid command line argument \"%s\"\n"), argv[i]);
ob_exit_with_error(err);
}
}
ob_restart();
}
-void ob_restart()
+void ob_restart(void)
{
restart = TRUE;
ob_exit(0);
}
-void ob_reconfigure()
+void ob_reconfigure(void)
{
reconfigure = TRUE;
ob_exit(0);
obt_main_loop_exit(ob_main_loop);
}
-void ob_exit_replace()
+void ob_exit_replace(void)
{
exitcode = 0;
being_replaced = TRUE;
return keys[key];
}
-ObState ob_state()
+ObState ob_state(void)
{
return state;
}