LINUX.ORG.RU

Rgba и никакой муррины


0

0

Очень напрягало меня то, что rgba есть только у муррины, которая мне, мягко говоря, не нравится, а у моей любимой Nodoka (которая весьма похорошела в последней версии) прозрачности нет. И в результате ковыряния gtkrc родилось это чудо - помесь nodoka и murrina под названием Norrina :) Как видно на скрине, за мурриной осталась только отрисовка бэкграунда GtkWidget, а все остальное было перекинуто на нодоку. Rgba в rhythmbox и gedit включена с помощью плагинов с http://www.cimitan.com/murrine/rgba-support/list , gimp запущен через геков librgba (2geek: когда blacklist допиляешь?)

Как вам оно? Если надо, выложу на gnome-look.org.

Полноцветная версия скреншода - http://img168.imageshack.us/img168/5092/screenshotpa7.png

>>> Просмотр (1280x1024, 211 Kb)

★★★★★

Проверено: JB ()

Гламурненько, интересно как по скорости работы, не подтормаживает? И это, логотип темы грызет глаза.

wfrr ★★☆
()
Ответ на: комментарий от AP

Гтк все-таки не отличается особой изысканностью в плане ширины, а я не люблю горизонтальную прокрутку. Поэтому пришлось идти на жертвы

lester_dev ★★★★★
() автор топика
Ответ на: комментарий от wfrr

>Гламурненько, интересно как по скорости работы, не подтормаживает? И это, логотип темы грызет глаза.

нет конечно, все через компиз идет.

lester_dev ★★★★★
() автор топика
Ответ на: комментарий от enby

>логотип без АА, как кто-то выразился, грызет глаза

это не логотип, это я на скорую руку намалевал, не показывать же пустой гимп :)

lester_dev ★★★★★
() автор топика

Мне понравилось, миленько так, только если бы не MonoDevelop... пять с минусом короче :)

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

>ОХТУНГ! Это виста!

АЛЯРМ! Это гиниратырь!

lester_dev ★★★★★
() автор топика

Может все что в описании скрина аффигеть как круто, не буду спорить, но на самом скрине тихий ужас. В лучших традициях худших скринов почувствовавших себя крутыми вендузятнегов и сумевших (по их, конечно, мнению) настроить себе KDE. :(

CkuB
()
Ответ на: комментарий от squareroot

Шрифты как раз ужасные. За сглаженные по-разному в разных местах шрифты вообще убивать надо.

Sikon ★★★
()

первый раз вижу красивый скрин с Гномом.

+100

Slackware_user ★★★★★
()

А теперь про английский:

"my favorite theme was allways nodoka" <-- ну, во-первых, always пишется с одним l, а во-вторых. лучше здесь применить Present Perfect: "has always been Nodoka".

"And I thought -" - не дефис, а двоеточие.

"why not to create a theme, which looks like nodoka" - здесь "to" не надо, как и запятую перед which. Кстати, вопрос на засыпку: чем who/which с запятой отличается от who/which без запятой?

Это только явные нарушения правил языка. Там много чего из категории "не говорят они так" и "я бы по-другому написал", но к этому уж придираться не буду.

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

по скрину: здорово.

> шрифты на удивление приятны

в каком месте? ничего что в слове «Безымянное» “ое” прорисовывается почти как “œ”?

да и размыты они явно без меры…

dmiceman ★★★★★
()

What a fucking colours and the terrifying window decorations!

anonymous
()
Ответ на: комментарий от Sikon

>А теперь про английский:

Зануда ;P

Все равно cimi попросил меня убрать эту запись, так что ничего боюсь не выйдет.

lester_dev ★★★★★
() автор топика

Впрочем, так как гекова blacklistа мы не дождемся, то выкладываю мою версию. Работает конечно кое-как, но работает :)

/*
 * gtk rgba module
 *
 * Original code: geek
 * Improvements: lester
 *
 * Copyright (c) 2008 geek <geek@jabber.ru>,
 * 		lester <lester.dev@gmail.com>
 * 
 * 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 <glib/gtypes.h>
#include <glib/gstdio.h>
#include <gtk/gtk.h>
#include <glib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/time.h>
#include <time.h>
 
static	GdkColormap *colormap;
 
 
gchar *config = ".librgba.conf";
 
 
gboolean
rgba_cmp_prgname_config (const gchar *config,
                   const gchar *prgname)
{
 
	gchar **contents;
 
	gsize size;
 
	g_file_get_contents(config, contents, &size, NULL);
 
	gint i = 0;
	while (contents[i] != NULL)
	{
		/* look if we have a progname in the config */
		if (g_strrstr (contents[i], prgname) != NULL)
		{
			return TRUE;
		}
		i++;
	}
 
	return FALSE;
}
 
G_MODULE_EXPORT void
gtk_module_init (gint * argc, gchar *** argv)
{
 
    gchar *prgname = g_get_prgname();
 
#if 0
    FILE *f = g_fopen("/home/lester/rgba.log", "a");
 
    if (f)
    {
 
    	struct timeval tv;
    	struct timezone tz;
 
    	gettimeofday(&tv, &tz);
 
    	gchar *timestamp = ctime (&tv.tv_sec);
 
    	g_fprintf(f, "Found %s at %s\n", prgname, timestamp);
 
    	fclose(f);
    }
#endif
 
    g_print ("%s\n", prgname);
 
    gboolean ready_to_go = TRUE;
 
    struct stat buf;
 
    gchar filename[255];
 
    g_sprintf(filename, "%s/%s", g_get_home_dir(), config);
 
    /* check whether we have a config */
    if (!g_stat(filename, &buf))
    	{
    		/* we just wanna know is the progname simply 
    		 * in the config or not */
    		if (rgba_cmp_prgname_config(filename, prgname))
    		{
    			/* if it is, cry without rgba */
    			ready_to_go = FALSE;
    		}
    	}
 
    /* 
     * We have a normal application
     * which won't glitch 			
     */
    if (ready_to_go) 
    {
 
    	colormap = gdk_screen_get_rgba_colormap(gdk_screen_get_default());
 
    	gtk_widget_push_colormap(colormap);
 
    	gtk_widget_set_default_colormap(colormap);
    }
 
}

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

надо создать файлик ~/.librgba.conf, куда можно писать исключения - программы которые не работают.

Вот примерное содержание я набросал

firefox-bin eclipse soffice thunderbird-bin gxine banshee codeblocks pidgin gajim audacity ekiga gnome-panel deskbar-applet gnome-keyboard-applet gnome-globalmenu-applet mixer_applet2 awn-applet-activation rhythmbox update-notifier beagle-search

lester_dev ★★★★★
() автор топика

Пока вся эта ботва не будет о официальной ветке, массовости не получитцо. Список несовместимых прог вводит в ужос. Иными словами - это все пока еще не глобально и не надежно. )

anonymous
()
Ответ на: комментарий от anonymous

Ну да, а что делать. Кушать хочется севодня (с)

В принципе, хуже от этой прозрачности не станет, так что каждый решает для себя.

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

> firefox-bin eclipse soffice thunderbird-bin gxine banshee codeblocks pidgin gajim audacity ekiga gnome-panel deskbar-applet gnome-keyboard-applet gnome-globalmenu-applet mixer_applet2 awn-applet-activation rhythmbox update-notifier beagle-search

вообщем получается что с этим rgba нихрена не работает =)

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

>в предыдущем скрине выкладывали патчи на трей и ещё на что-то

патчи на трей не нужны - в блеклист я включил всю панель

lester_dev ★★★★★
() автор топика
Ответ на: комментарий от wfrr

>GiMP работает и ладно.

чисто гткашные апликухи, без жабы, моно, разных тулкитов-over-gtk работают замечательно.

lester_dev ★★★★★
() автор топика
Ответ на: комментарий от troorl

>У меня только один вопрос: зачем нужна эта прозрачность?

чтобы стимулировать свое непомерное эго, зачем же еще?

lester_dev ★★★★★
() автор топика

первый скрин гнома с которого не тошнит.

респект

anonymous
()
Ответ на: комментарий от lester_dev

> Все равно cimi попросил меня убрать эту запись

Cimi в своём репертуаре. Я помню, как он припёрся на страницу движка dyndyn на gnome-look и начал ругаться, мол "my engine is not repository" (dyndyn - прикольно допиленный murrine). Ему там пытались объяснить про GPL и т.п., но у него один ответ, или сворачивайтесь, или я сам больше ничего не буду делать. Ну не идиот-ли? В общем какой автор, такой и движок (буэээ) - "муррина".

Bohtvaroh ★★★★
()

Все отлично, только на мой вкус неплохо бы включить хинтинг (уточнение) для шрифтов.

Капча: potner.

anonymous
()
Ответ на: комментарий от Bohtvaroh

>Ну не идиот-ли?

прикол в том, что nodoka это тоже допиленный murrine :D Однако никаких наездов - видимо сцыт идти против федорчуков, знает что какашками закидают :)

lester_dev ★★★★★
() автор топика
Ответ на: комментарий от anonymous

>Все отлично, только на мой вкус неплохо бы включить хинтинг (уточнение) для шрифтов.

это уже liberation с хинтингом

lester_dev ★★★★★
() автор топика

ужос ... прозрачность как обычно ацтой ...

PIn
()
Ответ на: комментарий от anonymous

>Поделись, как сделал такие шрифты, тоже хочу. Где читать?

Ничего не делал, абсолютно. Фритайп стандартный убунтовский. Поставил liberation sans везде только

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

>это классик?

Это песня из "Обыкновенного чуда" =)

AsphyX ★★★
()

Кошмар, сколько оказывается латентных виста-юзеров на ЛОРе.

nu11 ★★★★★
()

за Работу - респект!

только вот как пользователь Enlightenment-а дерзну заметить, что модель работы с композитом в E16-ом, когда в зависимости от состояния окна (активно или нет) WM помнит параметры "прозрачности" (причём сохраняет эти параметры при желании на будущее для каждого приложения) и применяет нисколько не напрягая систему (что отдельный плюс) - как-то гораздо предпочтительнее. для этого единственное условие - загруженный композит модуль Xorg-а. в E17-ом rgba вообще является стандартом де-факто для всех приложений на EFL (только их к сожалению раз-два и усё...).

так что как пользователь Enlightenment-а поздравлю от всей души всех пользователей Gnome и пожелаю порвать три бояна на могиле kde!

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

>так что как пользователь Enlightenment-а поздравлю от всей души всех пользователей Gnome и пожелаю порвать три бояна на могиле kde!

Вы какой-то скучный тролль, неизобретательный...

anonymous
()
Ответ на: комментарий от lester_dev

код порвал мозк...
почитал тут http://library.gnome.org/devel/glib/stable/glib-File-Utilities.html#g-file-get-
contents

пытаюсь понять почему работает этот кусок:
gchar **contents;
gsize size;
g_file_get_contents(config, contents, &size, NULL);

Ведь contents есть "бешеный указатель" и в то место куда он показывает при вызове  будет записан gchar *
Потом, судя по тому же описанию, config[i] при i > 0 есть выход за границы буфера.
Выделенную в функции память хорошы бы и освобождать, или в glib изобрели автоматический сборщик?
Ну и напоследок проверять возвращаемое значение на == TRUE.
Предлагаю поменять на:

gchar *contents;
gboolean result = FALSE;

if (g_file_get_contents(config, &contents, NULL, NULL) == TRUE && contents != NULL) {
	/* look if we have a progname in the config */
	result = (g_strrstr (contents, prgname) != NULL);
	g_free(contents); /* <-- right way for glib? */
}
return result;

правда, если документация по ссылке устарела, то ой =/

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