LINUX.ORG.RU

68
Всего сообщений: 915

xdg-desktop-portal-gtk > ...gnome

Стал сегодня обновлять Manjaro XFCE, и как водится не придал значения смене зависимости с xdg-desktop-portal-gtk на xdg-desktop-portal-gnome. В результате пришлось загружать бэкап, ибо графоний после обновления не загрузился.

Вопрос в том, как выявить и устранить причину тянущую эту зависимость?

 , ,

strw ()

Зачем нужны GTK/Qt?

Зачем нужны такие тяжелые и неудобные инструменты вроде GTK и Qt? Можно же просто использовать файл, на подобии Xresoures, только с адекватным синтаксизом, вроде .ini, или просто .conf. К примеру вот примерное содержимое theme.ini:

[color]
bg="282828FF"
fg="EBDBB2FF"

Тут bg=BackGround=Фон, fg=ForeGround=Текст, кнопочки, другое. Последние две буквы - Alpha канал, т.е. прозрачность

Так же помимо цветов нужно указывать всякие кнопочки, переключатели, ползунки, вот пример для кнопочки:

[button]
button=/usr/share/MyBestSettingsKit/button.png
text_on_button=true
text_on_button_side=right
image_on_button=true
image_on_button_side=left

Тут из контекста, думаю понятно

Ну и конечно сами картинки, что все-таки будет нарисовано на кнопочке?

[image]
settings=/usr/share/MyBestSettingsKit/images/settings.png
brush=/usr/share/MyBestSettingsKit/images/brush.png

Думаю мою идею вы поняли. Не нужен никакой софт, есть только файл, из которого другие проги собственноручно будут брать настройки. Это самый универсальный вариант, т.к это может использоваться даже в TUI интерфейсах. Также универсальность заключается в том, что можно делать отдельные настройки для разного софта:

[color/ProgrammName]
bg="#00000000"
fg="#FFFFFF00"

[button/ProgrammName]
button=/usr/share/MyProprietaryToolPath/button.png
text_on_button=true
text_on_button_side=right
image_on_button=true
image_on_button_side=left

[image]
settings=/usr/share/MyProprietaryToolPath/images/settings.png
brush=/usr/share/MyProprietaryToolPath/images/brush.png

Ну а путь к самому этому стандартному файлу можно указывать в переменной окружения

P.s. Я понимаю, что в терминале (по стандарту) нет никаких картинок, я говорил про текст.

Перемещено xaizek из desktop

 , ,

madreyk ()

Как мне заставить spacefm показывать окно настроек?

Здравствуйте.

Есть малинка 4B+, на ней Raspbian, установлен spacefm (конкретно spacefm-gtk3, но на простом spacefm имею то же самое). Собственно с ним, как с файловым менеджером, всё обстоит прекрасно.

Затруднение в следующем: При попытках открыть окно настроек (View/Preferences) или окно настроек рабочего стола (spacefm --desktop-pref или пункт в выпадающем меню рабстола) происходит... ничего. Окна настроек не появляются, сам spacefm не фризится, вообще ноль реакции.

Сдаётся мне, что я какихто библиотек недоставил, но не понимаю, каких.

На другой машине с Убунтой spacefm исправно показывает все служебные окна.

Помогите советом, спасибо за внимание.

 ,

piyavking ()

Программа на GTK+JS

Как написать приложение на GTK+JS хотя бы аля «Hello, Anna»?

 , , ,

ChaChaRiga ()

Fedora KDE c Wayland и программы на GTK

Посмотрел я нынче на LiveCD последней Федоры с Кедами и мне прям так понравилось, аж захотелось поставить. HIDPI на 4К мониторе подхватился автоматом, всё работает быстро, плавно, красиво, ну прям радость. Вот только GTK софт выглядит «смазано», ну то есть контролы масштабированы правильно, но шрифты все мыльные, размытые, нечёткие, пользоваться невозможно. Кто знает, что с этим делать? Как поправить? Хочу переходить на Кеды с Wayland, но эта проблема всё портит. Хотя я точно знаю, что работать оно может, ведь в Gnome редакции всё работает отлично.

Подскажите что-нибудь?

Скриншот: https://www.dropbox.com/s/0evmcie5gujob23/Screenshot_20211016_064549.png?dl=0

 , , ,

Alve ()

libWebKitGtk (не загружается файл HTML)

Привет всем!

Кто нибудь знает почему браузер не загружает HTML файл с локального диска , содержащий:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
</head>
<body 
<P><A href="page.html">this page</A></P>
</body>
</html>

СИ код простейший:

static void destroyWindowCb(GtkWidget* widget, GtkWidget* window);
static gboolean closeWebViewCb(WebKitWebView* webView, GtkWidget* window);

int main(int argc, char* argv[])
{
    gtk_init(&argc, &argv);
    GtkWidget *main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_default_size(GTK_WINDOW(main_window), 800, 600);
    WebKitWebView *webView = WEBKIT_WEB_VIEW(webkit_web_view_new());
    gtk_container_add(GTK_CONTAINER(main_window), GTK_WIDGET(webView));
    g_signal_connect(main_window, "destroy", G_CALLBACK(destroyWindowCb), NULL);
    g_signal_connect(webView, "close", G_CALLBACK(closeWebViewCb), main_window);
    webkit_web_view_load_uri(webView, "file:///home/user/test.html");
    gtk_widget_grab_focus(GTK_WIDGET(webView));
    gtk_widget_show_all(main_window);
    gtk_main();
    return 0;
}

static void destroyWindowCb(GtkWidget* widget, GtkWidget* window)
{
    gtk_main_quit();
}

static gboolean closeWebViewCb(WebKitWebView* webView, GtkWidget* window)
{
    gtk_widget_destroy(window);
    return TRUE;
}

Если у HTML файла убрать тег DOCTYPE , и содержимое тега HTML очистить (то есть убрать xmlns) , то страница грузится.

Похоже я что-то упускаю. Подскажите , как настроить webkit , что-бы он начал отображать такого рода страницы?

 , ,

xpqpx ()

Перепись тулкитов с поддержкой древовидного табличного виджета

В GTK+ и Qt он есть: GtkTreeView и QTreeView соответственно.

Используем его аж в двух своих приложениях: smstree и DrugStore. Также часто встречаем в серьёзных программах, таких как Atril, Tixati, или хотя бы более простой недревовидный QTableView, как в SQLiteBrowser или DoubleContact от @hobbit.

Из сего заключаем, что данный виджет — хороший индикатор матёрости тулкита, и при его отсутствии тулкит вообще не следует воспринимать всерьёз. Наделать на коленке флажков с комбобоксами каждый школьник может — а увы, именно подобное убожество часто всплывает на ЛОРе как очередной нескучный графический тулкит.

Так что перечислите-ка тулкиты, в которых оный или что-то приближённое есть (тупой вертикальный список не считается), с пруфами. Не обязательно даже в штатной поставке, можно даже левой либой — главное, чтобы в принципе существовал.

Тулкиты, для которых такого определённо нет, тоже завезите: будет доска позора.

Доска почёта:

  • GTK+: GtkTreeView
  • Qt: QTreeView / QTableView
  • Tk: TreeView / TkTreeCtrl
  • wxWidgets: wxGrid / wxTreeCtrl
  • LCL: TListView / TTreeView, VirtualTreeView
  • SwingX: JXTreeTable
  • JavaFX: TableView / TreeView / TreeTableView
  • ImGui: Unity-IMGUI-TreeView / Unity-IMGUI-List-View
  • IUP: IupTree
  • 1С: ТаблицаФормы
  • FLTK: Fl_Tree
  • Serenity LibGUI: TreeView

Доска позора:

Перемещено hobbit из desktop

 , , , ,

mertvoprog ()

Как заставить gtk3 приложение использовать файловый диалог от gtk2.

Интересуюсь из-за geany, который в грядущей версии не соберется с gtk2.

 ,

zombi_pony ()

GTK vs Qt в 2021?

Чё-то я смотрю, GTK нифига не сдох. Всякие современные убунты предпочитают иметь дефолтным его, а не Qt.

На Qt я писал, но мне не нравится его раздутость, всякие *** с лицензиями-коммерческостью, какой-то этот их moc и в целом размеры этого поделия, делающего его уже не «либой для гуя», а целым фреймворком, где уже и сеть и звук и вебчик и хрен с чертом. Это всё как-то плохо.

GTK кажется более стройной и минималистичной хренью, не пытающейся лезть куда не надо и не пытающейся стать фреймворком для всего, а только GUI-либой, что хорошо. Лицензионный дух более опенсорсовый. Если хотеть её юзать только для GUI и ни для чего более, а особенно если тебе пофиг на сборку под винду/мак (я думаю что оно под них соберётся, но если мне пофиг - то ещё проще), то оно выглядит более няшно под задачу пиления гуёв.

В общем, в чём катастрофическо-стратегические минусы выбора GTK в 2021? Что я сильно теряю, если возьму старое поделие, написанное на Qt в 2011 году и перепишу сейчас его GUI-часть на GTK? Хочется актуализировать одну тулзу, но как вспомню монструозность Qt, то браться не хочется.

Последний прочитанный срач по сабжу: https://www.reddit.com/r/gnome/comments/dhvbqg/what_are_your_reasons_for_choosing_gtk_over_qt/

Софтина уровня «звуковой редактор», но не сложный. Буквально просто нарезка и копипасть кусков звука, плюс спектрограмма-водопад, зум ин, зумаут, save as, load.

 ,

kilokolyan ()

Схема mate-screensaver не применяет изменения выставленные в ключи

Всем привет. Проблема такая, пробую дописать mate-screensaver, что бы прямо на окне был свитч включения и выключения экранной клавиатуры (onboard). Весь функционал готов, использую 2 настройки схемы org.mate.screensaver:

  • embedded-keyboard-enabled
  • embedded-keyboard-command «onboard –xid»

При переключении свитча я меняю значение embedded-keyboard-enabled на true или false соответственно, но клавиатура появляется или пропадает лишь после перезапуска окна mate-sreensaver. Есть ли какой то способ применить изменения прямо во время выполнения, и вообще на сколько правильно такое через схемы реализовывать?

Из функций использую g_settings_set_boolaen() для установки параметра ключа и g_settings_apply() для применения изменений.

 , , ,

hollou ()

Как настроить тему некоторых непослушных gtk приложений в KDE?

Нет, она в общем настроена, навскидку от qt-шной так не отличишь, но проблему представляют несколько приложений: gtkwave, inskape из официальных репрезеториев, xournal и gtkam. Последние меня вообще мало колышет так как либо заменены аналогами либо обновлены, а вот первой надо пользоваться много и часто. Проблема в совершенно кривом цеплянии системной темы у вышеуказанных программ. То есть при тёмной теме breeze они белые. Но это пол беды, хуже то что они цепляют белые системные иконки для тёмной темы и вот тут становится просто неудобно работать, когда кнопки есть но их не видно. Можно просто поменять на другую тему gtk, что я в общем то и сделал, но тогда начинает ныть внутренний протекционист: как вариант цепануть эту тему только для этих приложух(подскажите как), но хочется что то более красивое.


Дистрибутив kde neon user edition


У меня есть подозрение, что разрабы этих программ зачем-то хардкодят темы, хотя это не тру вей, да и если делаешь свою тему делай до конца через стили, иначе не удобно же потом нихрена. Я так как то кнопку перекрасил для fusion-а, а потом запустил с тёмным breeze. Не надо так.


Это были приложения gtk2 как мне подумалось изначально. По этому да ставить lxappearance и жить спокойно.


Ситуацию не спасло. Во всей видимости тут gtk2 приложения читают не свой конфиг, в общем непонятно.


Дешевле проще и эффектнее оказалось просто компиляция программы из исходников с gtk3 и установка префикса в opt. Ещё и запуск быстрее и дизайн вкуснее вышли. Движусь в сторону gentoo.

 , ,

nikitalol ()

Как отмасштабировать GTK под KDE?

Здравствуйте. Впервые в жизни поставил KDE. Всё нравится, но есть одна проблема, связанная, я полагаю, с 4k монитором либо wayland-ом. Програмы на GTK имеют крошечный заголовок окна. Кнопки закрытия, название окна и прочие элементы будто не масштабируются в соосветствии с системными настройками KDE. А из настроек у меня масштаб 175% и фикcированный DPI в 150 dpp. Можно ли это как-нибудь исправить?

Дистрибутив Manjaro, видеокарта AMD, если это имеет значение

 , ,

kijllfatncdaplp ()

GTK+-devel на arch.

В общем, нужно поставить на arch пакет для разработки на C под GTK4. В ubuntu-подобных это делается установкой пакета с названием из разряда libgtk+-3.0-devel. Для Арча же подобного пакета не существует. Вопрос: как сие чудо поставить?

 ,

Evlampiy ()

Взаимодействие между программным и аппаратным рендерингом

Как в тулкитах совмещается программный и аппаратный рендеринг так чтобы не было тормозов при копировании из/в видеопамять и чтобы не было избыточных буферов/копирования? Далеко не всё рисование в тулкитах делается через GPU. Можно примеры на места в коде реализации тулкитов.

В частности интересно возможно ли нарисовать буфер в RAM на OpenGL рендербуфере с клиппингом без дополнительных буферов и копирований? Буфер в RAM можно выделить с необходимым выравниванием и прочими параметрами если требуется.

 , ,

X512 ()

Реализация Gio::ListModel, G_IS_LIST_MODEL assertion failed

Продолжаю грызть mm-кактус.

class Model: public Gio::ListModel {
    std::vector<Glib::RefPtr<Gtk::Button>> gobjects;

protected:
    Model() = default;
    GType get_item_type_vfunc() override {
        return Gtk::Button::get_type();
    }
    guint get_n_items_vfunc() override {
        return gobjects.size();
    }
    gpointer get_item_vfunc(guint position) override {
        if (position < gobjects.size()) {
            return gobjects[position].get();
        }
        return nullptr;
    }
public:
    static auto create() {
        return Glib::RefPtr<Model>{ new Model{} };
    }
    void add(const Glib::RefPtr<Gtk::Button>& button) {
        gobjects.push_back(button);
        items_changed(gobjects.size(), 0, 1);
    }
};

Реализация сыпет варнингами при вставке

g_list_model_items_changed: assertion 'G_IS_LIST_MODEL (list)' failed

ЧЯДНТ?

 , , , ,

Siborgium ()

Ryan C. Gordon aka icculus разработчик SDL2 собирает на SDL бекенд для GTK+

If I can hit this goal, I will write an SDL backend for GTK+, so that all sorts of new and wild platforms can suddenly have access to a powerful GUI toolkit.

Если я смогу достичь этой цели, я напишу бэкэнд SDL для GTK +, чтобы все виды новых и диких платформ могли внезапно получить доступ к мощному набору инструментов GUI.

Если вам такое нужно то можете поддержать идею https://github.com/sponsors/icculus

Цена вопросы штука баксов в месяц, пока есть 1$ в месяц ))))))))) негуста.

 , , , ,

LINUX-ORG-RU ()

firefox 90 и сборка

Вышел 90. Джва года ждал.

Вопрос к тем, кто ночами компилял: gtk2 наконец из зависимостей выпилили?

https://www.opennet.ru/opennews/art.shtml?num=55477

 , ,

shleemypants ()

Common lisp, GTK и лапшелогика

Вот есть код:

(let ((some (trick 'construct)))
  (if (very-bad? some)
      (trick 'good-bye)
      (progn (when (bad? some)
               (setf some
                     (trick 'fix some)))
             (trick 'show some))))

В данный момент код в теле функций и форма с trick - вызов функции с созданием gtk окна, работой в этом окне, закрытием и, уже после, trick возвращает значение.

Сейчас вот думаю чтобы проделать всё в рамках одного создания-закрытия окна. Как всем известно, что таким образом с gtk в теле функции может быть что-то типа такого:

(low-level-init-gtk)
(let ((window (build-...)))
  ;; Здесь создаём объекты и рассовываем лямбды для отрисовки
  ;; и обработки событий
  ...
  
  ;; ииии
  (gtk-main-loop))

Ещё хочу это обернуть в unwind-protect чтобы высвобождать систему звука, например. Тут уже мало того формы с trick перестают быть просто вызовами функций, так вообще всю логику из первого куска кода нужно раздробить и размазать по обработчикам. Без этого только продолжения использовать? Или есть другие практики описания такой логики?

 , ,

ados ()

Унификация внешнего вида софта на GTK и Qt

Вопрос больше к пользователям тайлинговых WM.

Есть ли какие-нибудь современные способы приведения всего к одному виду? Может быть какие-то генераторы тем одновременно для Qt и GTK?

QGnomePlatform - кривой костыль.

 , ,

Meyer ()

GIMP 2.99.6 в классическом Windows стиле

Я знаю, что здесь многие озабочены тем, как тулкит умеет использовать нативные виджеты на Windows, ну вот, смотрите: https://ibb.co/jD3F4jT.

Потребовалось создать файл C:\Program Files\GIMP 2.99\etc\gtk-3.0\settings.ini со следующим содержимым:

[Settings]
gtk-theme-name=win32

Да, это выглядит хуже тёмной Адвайты, которая там по дефолту, и тут куча мелких багов интерфейса. Но адвайта сильно отличается от классического Windows стиля, а под него GIMP никто не затачивал. Кроме того, это GTK+ 3, а не 4, в последнем дела могут обстоять лучше. Думаю, что если речь идёт не о таком большом проекте как GIMP, то перевести GTK+ программу на классический Windows стиль можно лишь небольшой правкой CSS.

P.S. Винда, как водится, в QEMU c virt-manager, линукс приплёл :)

 , , ,

ArkaDOSik ()