5 сентября 2015 Как я перешёл на XFCE
Мне действительно очень нравится Гном 3 за внешний вид и удобство. На самом деле, я разными версиями Гнома пользовался, как минимум, со времён 1.2, когда ещё в качестве оконного менеджера с ним шёл Enlightenment. Однако, после недавнего обновления до 22ой Федоры, многие вещи начали слишком уж раздражать. Например, иногда им начинает съедаться 100% одного из ядер процессора, иногда расширения самопроизвольно выгружаются, и некоторые привычные расширения так и не оказываются обновлёнными до текущей версии Гнома, и дисплейный менеджер зачем-то постоянно загружен, и т.д. Это всё сподвигло меня наконец-то переключиться на нечто более простое и лёгкое.
Я и так уже пользовался xfce4-panel в качестве сайдбара под Гномом, так что перейти именно на XFCE было логичным. Здесь я постарался воссоздать привычное окружение, с примерно следующим результатом:
ещё пара скриншотов и кучка патчей
Используется тема Ceti-2, слегка подправленная с целью уменьшения отступов в табах и замены шрифта на панелях:
diff -u -r Ceti-2.orig/gtk-2.0/gtkrc Ceti-2/gtk-2.0/gtkrc
--- Ceti-2.orig/gtk-2.0/gtkrc 2015-09-05 23:07:25.158255238 +0600
+++ Ceti-2/gtk-2.0/gtkrc 2015-09-04 00:10:27.000000000 +0600
@@ -16,7 +16,7 @@
GtkWidget::focus-line-width = 1
GtkMenuBar::window-dragging = 1
GtkToolbar::window-dragging = 1
- GtkToolbar::internal-padding = 4
+ GtkToolbar::internal-padding = 0
GtkToolButton::icon-spacing = 4
GtkWidget::tooltip-radius = 2
diff -u -r Ceti-2.orig/gtk-2.0/panel.rc Ceti-2/gtk-2.0/panel.rc
--- Ceti-2.orig/gtk-2.0/panel.rc 2015-09-05 23:05:12.411546816 +0600
+++ Ceti-2/gtk-2.0/panel.rc 2015-08-31 22:41:08.000000000 +0600
@@ -1,6 +1,9 @@
+gtk-icon-sizes = "panel-tasklist-menu=64,64"
+
style "theme-panel" {
ythickness = 0
+ font_name = "RobotoAC Bold 9"
bg[NORMAL] = "#2D3136"
bg[ACTIVE] = shade(0.9, "#2D3136")
@@ -44,6 +47,8 @@
style "panelbuttons" {
+ font_name = "RobotoAC Bold Condensed 10"
+
xthickness = 4
ythickness = 3
@@ -55,6 +60,8 @@
gradient_shades = {1.0,0.9,0.9,0.8}
border_shades = { 0.6, 0.6 }
}
+
+ XfceTasklist::max-button-size = 32
}
style "theme-panel-text" {
После применения вышеприведённого фикса internal-padding'а, тулбар и табы редактора в Эклипсе выглядят почти нормально:
Шрифт на панелях и заголовках окон — Roboto от Гугла, вручную (с помощью fontforge) сконвертированный в all-caps. Модифицированные шрифты я выложил сюда.
Кроме того, для улучшения внешнего вида, пришлось подправить код апплетов: добавил отступы мониторов производительности, изменил шрифты и цвета клавиатурных индикаторов, сделал иконку громкости белой вместо тёмно-серой. До некоторые из этих настроек, возможно, можно было добраться с помощью темы, но некоторые другие захардкожены, так что патчить всё равно бы пришлось. Я банально заменил одни захардкоженные значения на другие, так что код всё равно страшен, но, хотя бы, апплеты теперь вписываются в общую тему визуально:
diff -u -r xfce4-kbdleds-plugin-0.0.6.orig/panel-plugin/kbdleds.c xfce4-kbdleds-plugin-0.0.6/panel-plugin/kbdleds.c
--- xfce4-kbdleds-plugin-0.0.6.orig/panel-plugin/kbdleds.c 2011-10-13 22:51:23.000000000 +0700
+++ xfce4-kbdleds-plugin-0.0.6/panel-plugin/kbdleds.c 2015-09-01 00:07:03.000966168 +0600
@@ -220,7 +220,7 @@
gboolean kbdleds_update_state(gpointer data) {
int i;
gchar *str;
- gchar *template_on="<span background=\"#00ff00\" foreground=\"#000000\">%c</span>";
+ gchar *template_on="<span background=\"#ffffff\" foreground=\"#000000\">%c</span>";
gchar *template_off="%c";
gchar *tempstr[NUM_LEDS];
gchar *templates[NUM_LEDS];
diff -u -r xfce4-pulseaudio-plugin-0.2.3.orig/panel-plugin/pulseaudio-button.c xfce4-pulseaudio-plugin-0.2.3/panel-plugin/pulseaudio-button.c
--- xfce4-pulseaudio-plugin-0.2.3.orig/panel-plugin/pulseaudio-button.c 2015-05-04 02:52:14.000000000 +0600
+++ xfce4-pulseaudio-plugin-0.2.3/panel-plugin/pulseaudio-button.c 2015-09-01 20:18:10.908803274 +0600
@@ -137,7 +137,7 @@
/* Setup Gtk style */
css_provider = gtk_css_provider_new ();
- gtk_css_provider_load_from_data (css_provider, "#pulseaudio-button { -GtkWidget-focus-padding: 0; -GtkWidget-focus-line-width: 0; -GtkButton-default-border: 0; -GtkButton-inner-border: 0; padding: 1px; border-width: 1px;}", -1, NULL);
+ gtk_css_provider_load_from_data (css_provider, "#pulseaudio-button { -GtkWidget-focus-padding: 0; -GtkWidget-focus-line-width: 0; -GtkButton-default-border: 0; -GtkButton-inner-border: 0; padding: 1px; border-width: 1px; color: #ffffff; }", -1, NULL);
gtk_style_context_add_provider (GTK_STYLE_CONTEXT (gtk_widget_get_style_context (GTK_WIDGET (button))), GTK_STYLE_PROVIDER (css_provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
/* Intercept scroll events */
diff -u -r xfce4-xkb-plugin-0.7.1.orig/panel-plugin/xkb-cairo.c xfce4-xkb-plugin-0.7.1/panel-plugin/xkb-cairo.c
--- xfce4-xkb-plugin-0.7.1.orig/panel-plugin/xkb-cairo.c 2015-02-28 03:53:11.000000000 +0600
+++ xfce4-xkb-plugin-0.7.1/panel-plugin/xkb-cairo.c 2015-09-01 21:20:52.883016118 +0600
@@ -31,7 +31,7 @@
#include <librsvg/rsvg-cairo.h>
#endif
-#define XKB_PREFERRED_FONT "Courier New, Courier 10 Pitch, Monospace Bold"
+#define XKB_PREFERRED_FONT "RobotoAC Bold 9"
#define xkb_cairo_arc_for_flag(cr, x, y, r, a1, a2) \
xx = layoutx + width - 12 + x; \
Панель xfce4-panel также была пропатчена, чтобы позволить сделать широкий сайдбар и более крупные иконки в списке задач:
diff -u -r xfce4-panel-4.12.0.orig/panel/panel-itembar.c xfce4-panel-4.12.0/panel/panel-itembar.c
--- xfce4-panel-4.12.0.orig/panel/panel-itembar.c 2014-04-25 03:16:37.000000000 +0700
+++ xfce4-panel-4.12.0/panel/panel-itembar.c 2015-08-23 17:19:45.000000000 +0600
@@ -193,7 +193,7 @@
PROP_SIZE,
g_param_spec_uint ("size",
NULL, NULL,
- 16, 128, 30,
+ 16, 256, 30,
EXO_PARAM_WRITABLE));
g_object_class_install_property (gobject_class,
diff -u -r xfce4-panel-4.12.0.orig/panel/panel-preferences-dialog.glade xfce4-panel-4.12.0/panel/panel-preferences-dialog.glade
--- xfce4-panel-4.12.0.orig/panel/panel-preferences-dialog.glade 2015-02-27 02:32:17.000000000 +0600
+++ xfce4-panel-4.12.0/panel/panel-preferences-dialog.glade 2015-08-23 16:21:07.000000000 +0600
@@ -73,7 +73,7 @@
<object class="GtkAdjustment" id="size">
<property name="value">16</property>
<property name="lower">16</property>
- <property name="upper">128</property>
+ <property name="upper">256</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
diff -u -r xfce4-panel-4.12.0.orig/panel/panel-preferences-dialog-ui.h xfce4-panel-4.12.0/panel/panel-preferences-dialog-ui.h
--- xfce4-panel-4.12.0.orig/panel/panel-preferences-dialog-ui.h 2015-02-28 22:22:40.000000000 +0600
+++ xfce4-panel-4.12.0/panel/panel-preferences-dialog-ui.h 2015-08-23 16:21:22.000000000 +0600
@@ -28,7 +28,7 @@
"id=\"0\" translatable=\"yes\">Background image</col></row></data></obje"
"ct><object class=\"GtkAdjustment\" id=\"size\"><property name=\"value\""
">16</property><property name=\"lower\">16</property><property name=\"up"
- "per\">128</property><property name=\"step_increment\">1</property><prop"
+ "per\">256</property><property name=\"step_increment\">1</property><prop"
"erty name=\"page_increment\">10</property></object><object class=\"GtkA"
"djustment\" id=\"length\"><property name=\"value\">25</property><proper"
"ty name=\"lower\">1</property><property name=\"upper\">100</property><p"
diff -u -r xfce4-panel-4.12.0.orig/panel/panel-window.c xfce4-panel-4.12.0/panel/panel-window.c
--- xfce4-panel-4.12.0.orig/panel/panel-window.c 2015-02-28 20:52:27.000000000 +0600
+++ xfce4-panel-4.12.0/panel/panel-window.c 2015-08-23 17:19:38.000000000 +0600
@@ -392,7 +392,7 @@
g_object_class_install_property (gobject_class,
PROP_SIZE,
g_param_spec_uint ("size", NULL, NULL,
- 16, 128, 48,
+ 16, 256, 48,
EXO_PARAM_READWRITE));
g_object_class_install_property (gobject_class,
diff -u -r xfce4-panel-4.12.0.orig/plugins/tasklist/tasklist-widget.c xfce4-panel-4.12.0/plugins/tasklist/tasklist-widget.c
--- xfce4-panel-4.12.0.orig/plugins/tasklist/tasklist-widget.c 2015-02-27 02:32:17.000000000 +0600
+++ xfce4-panel-4.12.0/plugins/tasklist/tasklist-widget.c 2015-09-05 22:35:33.794372013 +0600
@@ -46,7 +46,7 @@
#define DEFAULT_BUTTON_SIZE (25)
#define DEFAULT_MAX_BUTTON_LENGTH (200)
-#define DEFAULT_MENU_ICON_SIZE (16)
+#define DEFAULT_MENU_ICON_SIZE (32)
#define DEFAULT_MIN_BUTTON_LENGTH (DEFAULT_MAX_BUTTON_LENGTH / 4)
#define DEFAULT_ICON_LUCENCY (50)
#define DEFAULT_ELLIPSIZE_MODE (PANGO_ELLIPSIZE_END)
@@ -2449,7 +2449,7 @@
return;
/* get the window icon */
- if (tasklist->show_labels)
+ if (0 && tasklist->show_labels)
pixbuf = wnck_window_get_mini_icon (window);
else
pixbuf = wnck_window_get_icon (window);
@@ -3495,7 +3495,7 @@
return;
/* get the class group icon */
- if (group_child->tasklist->show_labels)
+ if (0 && group_child->tasklist->show_labels)
pixbuf = wnck_class_group_get_mini_icon (class_group);
else
pixbuf = wnck_class_group_get_icon (class_group);
В общем, результатом я вполне доволен. Вот, для сравнения, скриншот до, с использованием третьего Гнома:
Разница по сравнению со скриншотами после не так велика, но в этом и была вся задумка.