LINUX.ORG.RU
Ответ на: комментарий от debugger

~/.config/geany/geany.css пробовал править?

Пробывал, не работает, что-то вида

/* custom GTK3 CSS for Geany (gtk>=3.20) */

/* rotate labels on sidebar(notebook3) [is not gtk4!]
#notebook3 label {transform: rotate(90deg);}*/

/* GtkSourceView/Cobalt colors */
@define-color gsvc_faded_yellow  #ffee80;
@define-color gsvc_bright_orange #ff9d00; 
@define-color gsvc_faded_orange  #ffb054;
@define-color gsvc_npfull_pink   #ff0044; 
@define-color gsvc_neon_pink     #ffdd00;
@define-color gsvc_sky_blue      #0088ff; 
@define-color gsvc_teal_blue     #80ffbb;
@define-color gsvc_light_blue    #0065bf; 
@define-color gsvc_medium_blue   #003b70;
@define-color gsvc_dark_blue     #001b33; 
@define-color gsvc_black_blue    #000d1a; 
@define-color gsvc_white         #ffffff; 
@define-color gsvc_pale_grey     #eeeeee;
@define-color gsvc_steel_grey    #333333;
@define-color gsvc_spring_green  #3ad900; 
@define-color gsvc_sea_green     #00BF8C;
@define-color gsvc_light_grey    #cccccc; 
@define-color gsvc_dark_red      #990000; 
@define-color gsvc_dark_maroon   #002f29;
@define-color gsvc_bluish_grey   #777777;
@define-color gsvc_steelblue3    #4f94cd;

/* use Cobalt colors */
#notebook_info .view, #notebook_info text, #notebook3 scrolledwindow>label,
#notebook3     .view, #notebook3     text { 
    color: @gsvc_white; background-color: @gsvc_dark_blue; 
    caret-color: @gsvc_white;
}
#notebook_info text selection { color: @gsvc_white; background-color: @gsvc_sky_blue; }
statusbar {
    color: @gsvc_light_blue; background-color: @gsvc_black_blue;
    font: 14px terminus; margin: -9px -10px;
}
statusbar label {
    margin: -5px 0px -1px 0px;
}

/* make X smaller */
#notebook_info, #notebook3, #notebook1, #vpaned1, #hpaned1 { border: 0; border-image-width: 0px; }
#geany-close-tab-button {
    outline-offset: 0; outline-width: 0;
    margin-left: 0.5em; margin: 0; padding: 0;
    min-width: 0; min-height: 0;
}
#geany-close-tab-button image { padding: 0; }

/* use monospaced font */
#notebook_info treeview.view        { font: 14px terminus; }
#notebook_info textview.view,
#notebook_info scrolledwindow label { font: 16px terminus; }
#notebook3 treeview.view            { font: 14px terminus; }
#notebook3 textview.view,
#notebook3 scrolledwindow label     { font: 16px terminus; }
#GeanyDialogSearch entry            { font: 16px terminus; }

/* set red background for GtkEntries showing unmatched searches */
#entry-find { color: @gsvc_white; background-color: @gsvc_dark_blue; }
#geany-search-entry-no-match { color: @gsvc_white; background-color: @gsvc_dark_red; }
#geany-search-entry-no-match selection { background-color: @gsvc_sky_blue;}

/* document (tab) status colors */
#geany-document-status-changed      { color: @gsvc_npfull_pink;   }
#geany-document-status-disk-changed { color: @gsvc_bright_orange; }
#geany-document-status-readonly     { color: @gsvc_spring_green;  }
/* compiler message colors */
#geany-compiler-default             { color: @gsvc_white;         }
#geany-compiler-context             { color: @gsvc_light_grey;    }
#geany-compiler-error               { color: @gsvc_dark_red;      }
#geany-compiler-message             { color: @gsvc_sky_blue;      }
/* red "Terminal" tab label when terminal dirty */
#geany-terminal-dirty               { color: @gsvc_dark_red;      }
tnray
() автор топика
Ответ на: комментарий от tnray

Мой первый ты вопрос проигнорировал. Это потому, что в ОЗУ влезает не более одного предложения, и последующее вытесняет предыдущее? Это риторический вопрос, на него отвечать не надо. Ответь на этот:

Возможно ли повернуть ярлыки в боковой панели на 270° с GTK_DEBUG=interactive?

debugger ★★★★★
()
Ответ на: комментарий от tnray

А вот простой плагин для решения проблемы:

(angler.c)

#include <geanyplugin.h> 

static gulong angler_sidebar_hook_id;
guint angler_k = 3; /* means enum { DOWN RIGHT UP LEFT }; */
GtkWidget *angler_k_cb;
GeanyPlugin *main;

static void
angler_update_all_tabs(GeanyPlugin *plugin) {
    GtkNotebook *nb=plugin->geany_data->main_widgets->sidebar_notebook;
    GtkWidget *shitty_label;
    guint n = gtk_notebook_get_n_pages(nb);
    for (guint i=0; i<n; i++) {
        shitty_label=gtk_notebook_get_tab_label(nb,gtk_notebook_get_nth_page(nb, i));
        gtk_label_set_angle(GTK_LABEL(shitty_label), (gdouble) angler_k*90);
    }
}

static void
angler_sidebar_hook(GtkNotebook *nb, GtkWidget *child, guint page_num, gpointer user_data){
    GtkWidget *shitty_label = GTK_LABEL(gtk_notebook_get_tab_label(nb, child));
    gtk_label_set_angle(GTK_LABEL(shitty_label), (gdouble) angler_k*90);
}

static void
on_configure_response(GtkDialog *dialog, gint response, gpointer user_data){
    if (! (response == GTK_RESPONSE_OK || response == GTK_RESPONSE_APPLY)) return;
    angler_k = gtk_combo_box_get_active(angler_k_cb);
    angler_update_all_tabs(main);
}

static GtkWidget*
angler_configure(GeanyPlugin *plugin, GtkDialog *dialog, gpointer pdata){
    main=plugin;
    GtkWidget *vbox  = gtk_vbox_new(FALSE, 0);
    GtkWidget *hbox  = gtk_hbox_new(FALSE, 0);
    GtkWidget *label = gtk_label_new("Tabs' label direction");
    angler_k_cb = gtk_combo_box_text_new();
    gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(angler_k_cb), "Down");
    gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(angler_k_cb), "Right");
    gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(angler_k_cb), "Up");
    gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(angler_k_cb), "Left");
    gtk_combo_box_set_active(GTK_COMBO_BOX_TEXT(angler_k_cb), angler_k);
    gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 6);
    gtk_box_pack_start(GTK_BOX(hbox), angler_k_cb, FALSE, FALSE, 6);
    gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 6);
    
    g_signal_connect(dialog, "response", G_CALLBACK(on_configure_response), NULL);
    return vbox;
}

static gboolean
angler_init(GeanyPlugin *plugin, gpointer pdata) {
    main=plugin;
    angler_sidebar_hook_id = g_signal_connect (main->geany_data->main_widgets->sidebar_notebook, "page-added", 
            G_CALLBACK(angler_sidebar_hook), NULL);
    angler_update_all_tabs(main);
    geany_plugin_set_data(main, NULL, NULL);
    return TRUE;
}

static void
angler_cleanup(GeanyPlugin *plugin, gpointer pdata) {
    main=plugin;
    g_signal_handler_disconnect (main->geany_data->main_widgets->sidebar_notebook,
            angler_sidebar_hook_id);
}

static void
angler_help(GeanyPlugin *plugin, gpointer pdata) {
    dialogs_show_msgbox(GTK_MESSAGE_INFO, "Lol wut, you read help secion of the most simple plug-in");
}

G_MODULE_EXPORT
void
geany_load_module(GeanyPlugin *plugin){
    plugin->info->name        = "Angler";
    plugin->info->description = "Just do sidebar more beautiful";
    plugin->info->version     = "n/a; this plug-in is pretty simple for version control";
    plugin->info->author      = "tnray";
    plugin->funcs->init       = angler_init;
    plugin->funcs->cleanup    = angler_cleanup;
    plugin->funcs->configure  = angler_configure;
    plugin->funcs->help       = angler_help;
    GEANY_PLUGIN_REGISTER(plugin, 225);
}

Собирать так:

FILE=angler
gcc -c $FILE.c -fPIC `pkg-config --cflags geany`

if [ -e $FILE.o ] ; then
    gcc $FILE.o -o $FILE.so -shared `pkg-config --libs geany`
    rm $FILE.o
else
    echo "[build] $FILE.o no found, build failed"
fi

if [ -e $FILE.so ]; then
    sudo mv $FILE.so `pkg-config --variable=libdir geany`/geany/$FILE.so
else
    echo "[build] $FILE.so no found, build failed"
fi
tnray
() автор топика