LINUX.ORG.RU
ФорумTalks

openbox и shade options


0

0

Играю в ogame во весь экран, точнее изредка посматриваю. Также запущен jabber клиент Psi. Получается так что толи Psi надо наперед вытащить толи alt + tab жать все время, для проверку если написал кто..

Так вот, придумал для себя удобную штуку: если окно свернуть (shade, или Roll Up/Down в меню), и выставить прорисовку поверх остальных окон то оно вполне не мешает. Кто знает, в том же Psi когда сообщение приходит в заголовке появляются звездочки =) Получается довольно таки удобно. А для того чтобы переключаясь между окнами (alt + tab) и это окно туда не лезло, ставится _NET_WM_STATE_SKIP_TASKBAR.

Набросал оную фонкциональность для openbox'а, за 30 мин =) Далее кому интересно изменения в rc.xml

<shadeOptions> <hideTaskbar>yes</hideTaskbar> <placeOnTop>yes</placeOnTop> </shadeOptions>

hideTaskbar - прятать из списка окон placeOnTop - поверх остальных

ниже diff

ЗЫ

потом подумал: надо было назвать shade actions но теперь уже лень..

anonymous

diff -aur openbox-3.2-orig/openbox/client.c openbox-3.2/openbox/client.c
--- openbox-3.2-orig/openbox/client.c   2004-03-31 10:40:06.000000000 +0300
+++ openbox-3.2/openbox/client.c        2005-06-18 03:03:22.000000000 +0300
@@ -2388,6 +2388,11 @@
     }
 
     self->shaded = shade;
+    if (config_shade_skip_taskbar == TRUE)
+        self->skip_taskbar = shade; 
+    if (config_shade_place_on_top == TRUE)
+        self->above = shade;
+    
     client_change_state(self);
     /* resize the frame to just the titlebar */
     frame_adjust_area(self->frame, FALSE, FALSE, FALSE);
diff -aur openbox-3.2-orig/openbox/config.c openbox-3.2/openbox/config.c
--- openbox-3.2-orig/openbox/config.c   2004-04-17 15:12:49.000000000 +0300
+++ openbox-3.2/openbox/config.c        2005-06-18 03:03:14.000000000 +0300
@@ -31,6 +31,9 @@
 gboolean config_focus_raise;
 gboolean config_focus_last;
 
+gboolean config_shade_skip_taskbar;
+gboolean config_shade_place_on_top;
+
 ObPlacePolicy config_place_policy;

 gchar   *config_theme;
@@ -219,6 +222,19 @@
         config_focus_last = parse_bool(doc, n);
 }

+static void parse_shade_options(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
+                                gpointer d)
+{
+    xmlNodePtr n;
+
+    node = node->children;
+    
+    if ((n = parse_find_node("hideTaskbar", node)))
+        config_shade_skip_taskbar = parse_bool(doc, n);
+    if ((n = parse_find_node("placeOnTop", node)))
+        config_shade_place_on_top = parse_bool(doc, n);
+}
+
 static void parse_placement(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
                             gpointer d)
 {
@@ -529,12 +545,17 @@

 void config_startup(ObParseInst *i)
 {
+    config_shade_skip_taskbar = TRUE;
+    config_shade_place_on_top = TRUE;
+
     config_focus_new = TRUE;
     config_focus_follow = FALSE;
     config_focus_delay = 0;
     config_focus_raise = FALSE;
     config_focus_last = FALSE;

+    parse_register(i, "shadeOptions", parse_shade_options, NULL);
+    
     parse_register(i, "focus", parse_focus, NULL);

     config_place_policy = OB_PLACE_POLICY_SMART;
diff -aur openbox-3.2-orig/openbox/config.h openbox-3.2/openbox/config.h
--- openbox-3.2-orig/openbox/config.h   2004-03-21 22:06:40.000000000 +0200
+++ openbox-3.2/openbox/config.h        2005-06-18 03:03:09.000000000 +0300
@@ -28,6 +28,9 @@

 struct _ObParseInst;

+extern gboolean config_shade_skip_taskbar;
+extern gboolean config_shade_place_on_top;
+
 /*! Should new windows be focused */
 extern gboolean config_focus_new;
 /*! Focus windows when the mouse enters them */

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.