From 37bb867e3e3999ca11cc3be7bffa6991ddedb160 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 11 Nov 2025 15:06:57 +0600 Subject: [PATCH] Console settings edits; localisation updates; localisation fixes --- font-list.csv | 377 +++++++++++++++++++++ gresource.xml | 5 +- keymap-list.csv | 248 ++++++++++++++ locale/ubl-settings-keyboard-options.pot | 120 +++++++ locale/ubl-settings-keyboard-options_ru.po | 96 +++++- locale/ubl-settings-keyboard.pot | 12 + locale/ubl-settings-keyboard_ru.po | 12 + source/CMakeLists.txt | 7 +- source/ubl-settings-keyboard-font.c | 87 +++++ source/ubl-settings-keyboard-keymaps.c | 105 ++++++ source/ubl-settings-keyboard.c | 156 ++++----- source/ubl-settings-keyboard.h | 41 ++- source/ubl-strings.h | 6 +- ubl-settings-keyboard-font.glade | 239 +++++++++++++ ubl-settings-keyboard-keymaps.glade | 254 ++++++++++++++ ubl-settings-keyboard.glade | 117 ++++++- 16 files changed, 1776 insertions(+), 106 deletions(-) create mode 100644 font-list.csv create mode 100644 keymap-list.csv create mode 100644 source/ubl-settings-keyboard-font.c create mode 100644 source/ubl-settings-keyboard-keymaps.c create mode 100644 ubl-settings-keyboard-font.glade create mode 100644 ubl-settings-keyboard-keymaps.glade diff --git a/font-list.csv b/font-list.csv new file mode 100644 index 0000000..5834028 --- /dev/null +++ b/font-list.csv @@ -0,0 +1,377 @@ +FONT;DESCRIPTION +Agafari-12; +Agafari-14; +Agafari-16; +aply16; +cp850-8x8; +cp850-8x14; +cp850-8x16; +cp865-8x8; +cp865-8x14; +cp865-8x16; +cp866-8x8; +cp866-8x14; +cp866-8x16; +cp1250; +cyr-sun16;Fonts that support Cyrillic characters +Cyr_a8x8;Fonts that support Cyrillic characters +Cyr_a8x14;Fonts that support Cyrillic characters +Cyr_a8x16;Fonts that support Cyrillic characters +default8x9; +default8x16; +drdos8x6; +drdos8x8; +drdos8x14; +drdos8x16; +eurlatgr; +GohaClassic-12; +GohaClassic-14; +GohaClassic-16; +Goha-12; +Goha-14; +Goha-16; +gr737a-8x8; +gr737a-9x14; +gr737a-9x16; +gr737b-8x11; +gr737b-9x16-medieval; +gr737c-8x6; +gr737c-8x7; +gr737c-8x8; +gr737c-8x14; +gr737c-8x16; +gr737d-8x16; +gr928a-8x14; +gr928a-8x16; +gr928b-8x14; +gr928b-8x16; +gr928-8x16-thin; +gr928-9x14; +gr928-9x16; +greek-polytonic; +iso01-12x22; +iso02-12x22; +iso07u-16; +koi8r.8x8;Fonts that support Cyrillic characters +koi8u_8x8;Fonts that support Cyrillic characters +koi8u_8x14;Fonts that support Cyrillic characters +koi8u_8x16;Fonts that support Cyrillic characters +koi8-14;Fonts that support Cyrillic characters +lat0-08; +lat0-10; +lat0-12; +lat0-14; +lat0-16; +lat0-sun16; +lat1-08; +lat1-10; +lat1-12; +lat1-14; +lat1-16; +lat2a-16; +lat2-08; +lat2-10; +lat2-12; +lat2-14; +lat2-16; +lat2-sun16; +Lat2-Terminus16; +lat4a-08; +lat4a-10; +lat4a-12; +lat4a-14; +lat4a-16+; +lat4a-16; +lat4a-19; +lat4-08; +lat4-10; +lat4-12; +lat4-14; +lat4-16+; +lat4-16; +lat4-19; +lat5-12; +lat5-14; +lat5-16; +lat7a-14; +lat7a-16; +lat7-14; +lat9u-08; +lat9u-10; +lat9u-12; +lat9u-14; +lat9u-16; +lat9v-08; +lat9v-10; +lat9v-12; +lat9v-14; +lat9v-16; +lat9w-08; +lat9w-10; +lat9w-12; +lat9w-14; +lat9w-16; +lat9-08; +lat9-10; +lat9-12; +lat9-14; +lat9-16; +LatArCyrHeb-08;Fonts that support Latin Arabic Cyrillic Hebrew characters +LatArCyrHeb-14;Fonts that support Latin Arabic Cyrillic Hebrew characters +LatArCyrHeb-16+;Fonts that support Latin Arabic Cyrillic Hebrew characters +LatArCyrHeb-16;Fonts that support Latin Arabic Cyrillic Hebrew characters +LatArCyrHeb-19;Fonts that support Latin Arabic Cyrillic Hebrew characters +latarcyrheb-sun16;Fonts that support Latin Arabic Cyrillic Hebrew characters +latarcyrheb-sun32;Fonts that support Latin Arabic Cyrillic Hebrew characters +LatGrkCyr-8x16;Fonts that support Latin Greek Cyrillic characters +LatGrkCyr-12x22;Fonts that support Latin Greek Cyrillic characters +LatKaCyrHeb-14; +pancyrillic.f16; +ruscii_8x8;Fonts that support Cyrillic characters +ruscii_8x16;Fonts that support Cyrillic characters +solar24x32; +sun12x22; +tcvn8x16; +ter-112n;Terminus fonts that support Cyrillic characters +ter-114b; +ter-114n; +ter-116b; +ter-116n; +ter-118b; +ter-118n; +ter-120b; +ter-120n; +ter-122b; +ter-122n; +ter-124b; +ter-124n; +ter-128b; +ter-128n; +ter-132b; +ter-132n; +ter-212n; +ter-214b; +ter-214n; +ter-216b; +ter-216n; +ter-218b; +ter-218n; +ter-220b; +ter-220n; +ter-222b; +ter-222n; +ter-224b; +ter-224n; +ter-228b; +ter-228n; +ter-232b; +ter-232n; +ter-712n; +ter-714b; +ter-714n; +ter-716b; +ter-716n; +ter-718b; +ter-718n; +ter-720b; +ter-720n; +ter-722b; +ter-722n; +ter-724b; +ter-724n; +ter-728b; +ter-728n; +ter-732b; +ter-732n; +ter-912n; +ter-914b; +ter-914n; +ter-916b; +ter-916n; +ter-918b; +ter-918n; +ter-920b; +ter-920n; +ter-922b; +ter-922n; +ter-924b; +ter-924n; +ter-928b; +ter-928n; +ter-932b; +ter-932n; +ter-c12n; +ter-c14b; +ter-c14n; +ter-c16b; +ter-c16n; +ter-c18b; +ter-c18n; +ter-c20b; +ter-c20n; +ter-c22b; +ter-c22n; +ter-c24b; +ter-c24n; +ter-c28b; +ter-c28n; +ter-c32b; +ter-c32n; +ter-d12n; +ter-d14b; +ter-d14n; +ter-d16b; +ter-d16n; +ter-d18b; +ter-d18n; +ter-d20b; +ter-d20n; +ter-d22b; +ter-d22n; +ter-d24b; +ter-d24n; +ter-d28b; +ter-d28n; +ter-d32b; +ter-d32n; +ter-g12n; +ter-g14b; +ter-g14n; +ter-g16b; +ter-g16n; +ter-g18b; +ter-g18n; +ter-g20b; +ter-g20n; +ter-g22b; +ter-g22n; +ter-g24b; +ter-g24n; +ter-g28b; +ter-g28n; +ter-g32b; +ter-g32n; +ter-h12n; +ter-h14b; +ter-h14n; +ter-h16b; +ter-h16n; +ter-h18b; +ter-h18n; +ter-h20b; +ter-h20n; +ter-h22b; +ter-h22n; +ter-h24b; +ter-h24n; +ter-h28b; +ter-h28n; +ter-h32b; +ter-h32n; +ter-i12n; +ter-i14b; +ter-i14n; +ter-i16b; +ter-i16n; +ter-i18b; +ter-i18n; +ter-i20b; +ter-i20n; +ter-i22b; +ter-i22n; +ter-i24b; +ter-i24n; +ter-i28b; +ter-i28n; +ter-i32b; +ter-i32n; +ter-k12n; +ter-k14b; +ter-k14n; +ter-k16b; +ter-k16n; +ter-k18b; +ter-k18n; +ter-k20b; +ter-k20n; +ter-k22b; +ter-k22n; +ter-k24b; +ter-k24n; +ter-k28b; +ter-k28n; +ter-k32b; +ter-k32n; +ter-m12n; +ter-m14b; +ter-m14n; +ter-m16b; +ter-m16n; +ter-m18b; +ter-m18n; +ter-m20b; +ter-m20n; +ter-m22b; +ter-m22n; +ter-m24b; +ter-m24n; +ter-m28b; +ter-m28n; +ter-m32b; +ter-m32n; +ter-p12n; +ter-p14b; +ter-p14n; +ter-p16b; +ter-p16n; +ter-p18b; +ter-p18n; +ter-p20b; +ter-p20n; +ter-p22b; +ter-p22n; +ter-p24b; +ter-p24n; +ter-p28b; +ter-p28n; +ter-p32b; +ter-p32n; +ter-u12n; +ter-u14b; +ter-u14n; +ter-u16b; +ter-u16n; +ter-u18b; +ter-u18n; +ter-u20b; +ter-u20n; +ter-u22b; +ter-u22n; +ter-u24b; +ter-u24n; +ter-u28b; +ter-u28n; +ter-u32b; +ter-u32n; +ter-v12n; +ter-v14b; +ter-v14n; +ter-v16b; +ter-v16n; +ter-v18b; +ter-v18n; +ter-v20b; +ter-v20n; +ter-v22b; +ter-v22n; +ter-v24b; +ter-v24n; +ter-v28b; +ter-v28n; +ter-v32b; +ter-v32n; +UniCyrExt_8x16; +UniCyr_8x8; +UniCyr_8x14; +UniCyr_8x16; +viscii10-8x16; \ No newline at end of file diff --git a/gresource.xml b/gresource.xml index 507d914..056455f 100644 --- a/gresource.xml +++ b/gresource.xml @@ -4,11 +4,14 @@ ubl-settings-keyboard.glade ubl-settings-keyboard-layouts.glade ubl-settings-keyboard-options.glade + ubl-settings-keyboard-keymaps.glade + ubl-settings-keyboard-font.glade ubl-settings-keyboard.css - layouts.csv + keymap-list.csv + font-list.csv \ No newline at end of file diff --git a/keymap-list.csv b/keymap-list.csv new file mode 100644 index 0000000..ad2f730 --- /dev/null +++ b/keymap-list.csv @@ -0,0 +1,248 @@ +KEYMAP;GROUP;DESCRIPTION +3l;; +adnw;; +amiga-de;amiga; +amiga-us;amiga; +ANSI-dvorak;; +apple-a1048-sv;mac; +apple-a1243-sv-fn-reverse;mac; +apple-a1243-sv;mac; +apple-internal-0x0253-sv-fn-reverse;mac; +apple-internal-0x0253-sv;mac; +applkey;; +atari-de;atari; +atari-se;atari; +atari-uk-falcon;atari; +atari-us;atari; +azerty;; +backspace;; +bashkir;; +be-latin1;; +bg-cp855;; +bg-cp1251;; +bg_bds-cp1251;; +bg_bds-utf8;; +bg_pho-cp1251;; +bg_pho-utf8;; +bone;; +br-abnt2;; +br-abnt;; +br-latin1-abnt2;; +br-latin1-us;; +bywin-cp1251;; +by-cp1251;; +by;; +carpalx-full;; +carpalx;; +ca;; +cf;; +colemak;; +croat;; +ctrl;; +cz-cp1250;; +cz-lat2-prog;; +cz-lat2;; +cz-qwertz;; +cz-us-qwertz;; +cz;; +defkeymap;; +defkeymap_V1.0;; +de-latin1-nodeadkeys;; +de-latin1;; +de-mobii;; +de;; +de_alt_UTF-8;; +de_CH-latin1;; +dk-latin1;; +dk;; +dvorak-ca-fr;; +dvorak-de;; +dvorak-es;; +dvorak-fr;; +dvorak-la;; +dvorak-l;; +dvorak-no;; +dvorak-programmer;; +dvorak-ru;; +dvorak-r;; +dvorak-sv-a1;; +dvorak-sv-a5;; +dvorak-ukp;; +dvorak-uk;; +dvorak;; +emacs2;; +emacs;; +en;pine; +es-cp850;; +es-olpc;; +es;; +et-nodeadkeys;; +et;; +euro1;; +euro2;; +euro;; +fa;qwerty;Persian ISIRI-2901 Unicode console. Toggled by Shift+AltGr key. +fi;; +fr-bepo-latin9;; +fr-bepo;; +fr-latin1;; +fr-latin9;; +fr-pc;; +fr;; +fr_CH-latin1;; +fr_CH;; +gr-pc;; +gr;; +hu101;; +hu;; +ie;; +il-heb;; +il-phonetic;; +il;; +is-latin1-us;; +is-latin1;; +it2;; +it-ibm;; +it;; +jp106;; +kazakh;; +keypad;; +koy;; +kyrgyz;; +ky_alt_sh-UTF-8;; +la-latin1;; +lt.baltic;; +lt.l4;; +lt;; +lv-tilde;; +lv;; +mac-be;mac; +mac-de-latin1-nodeadkeys;mac; +mac-de-latin1;mac; +mac-de_CH;mac; +mac-dk-latin1;mac; +mac-dvorak;mac; +mac-es;mac; +mac-euro2;mac; +mac-euro;mac; +mac-fi-latin1;mac; +mac-fr-legacy;mac; +mac-fr;mac; +mac-fr_CH-latin1;mac; +mac-it;mac; +mac-no-latin1;mac; +mac-pl;mac; +mac-pt-latin1;mac; +mac-se;mac; +mac-template;mac; +mac-uk;mac; +mac-us;mac; +mk0;; +mk-cp1251;; +mk-utf;; +mk;; +mod-dh-ansi-us-awing;; +mod-dh-ansi-us-fatz-wide;; +mod-dh-ansi-us-fatz;; +mod-dh-ansi-us-wide;; +mod-dh-ansi-us;; +mod-dh-iso-uk-wide;; +mod-dh-iso-uk;; +mod-dh-iso-us-wide;; +mod-dh-iso-us;; +mod-dh-matrix-us;; +neoqwertz;; +neo;; +nl2;; +nl;; +no-latin1;; +no;; +pc110;; +pl1;; +pl2;; +pl3;; +pl4;; +pl;; +pt-latin1;; +pt-latin9;; +pt-olpc;; +ro;; +ro_std;; +ro_win;; +ru1;qwerty; +ru2;qwerty; +ru3;qwerty; +ru4;qwerty; +ruwin_alt-CP1251;qwerty; +ruwin_alt-KOI8-R;qwerty; +ruwin_alt-UTF-8;qwerty; +ruwin_alt_sh-UTF-8;qwerty; +ruwin_cplk-CP1251;qwerty; +ruwin_cplk-KOI8-R;qwerty; +ruwin_cplk-UTF-8;qwerty; +ruwin_ctrl-CP1251;qwerty; +ruwin_ctrl-KOI8-R;qwerty; +ruwin_ctrl-UTF-8;qwerty; +ruwin_ct_sh-CP1251;qwerty; +ruwin_ct_sh-KOI8-R;qwerty; +ruwin_ct_sh-UTF-8;qwerty; +ru-cp1251;qwerty;Russian CP1251 Cyrillic keyboard.map. "Cyrillic" mode is toggled by Right_Ctrl key and shifted by AltGr key. +ru-ms;qwerty; +ru-yawerty;qwerty; +ru;qwerty;Only Russian UTF-8 keymap (GOST 19768-74) for a 102 key keyboard. Both Ctrl+Shift is used to change rus/lat. +ru_win;qwerty; +se-fi-ir209;; +se-fi-lat6;; +se-ir209;; +se-lat6;; +sg-latin1-lk450;; +sg-latin1;; +sg;; +sk-prog-qwerty;; +sk-prog-qwertz;; +sk-qwerty;; +sk-qwertz;; +slovene;; +sr-cy;; +sr-latin;; +sundvorak;sun; +sunkeymap;sun; +sunt4-es;sun; +sunt4-fi-latin1;sun; +sunt4-no-latin1;sun; +sunt5-cz-us;sun; +sunt5-de-latin1;sun; +sunt5-es;sun; +sunt5-fi-latin1;sun; +sunt5-fr-latin1;sun; +sunt5-ru;sun; +sunt5-uk;sun; +sunt5-us-cz;sun; +sunt6-uk;sun; +sun-pl-altgraph;sun; +sun-pl;sun; +sv-latin1;; +tj_alt-UTF8;; +tralt;; +trf-fgGIod;; +trf;; +trq;; +tr_f-latin5;; +tr_q-latin5;; +ttwin_alt-UTF-8;; +ttwin_cplk-UTF-8;; +ttwin_ctrl-UTF-8;; +ttwin_ct_sh-UTF-8;; +ua-cp1251;; +ua-utf-ws;; +ua-utf;; +ua-ws;; +ua;; +uk;; +unicode;; +us1;; +us-acentos;; +us;; +wangbe2;; +wangbe;; +windowkeys;; \ No newline at end of file diff --git a/locale/ubl-settings-keyboard-options.pot b/locale/ubl-settings-keyboard-options.pot index 21d1ef8..96ca08d 100644 --- a/locale/ubl-settings-keyboard-options.pot +++ b/locale/ubl-settings-keyboard-options.pot @@ -422,4 +422,124 @@ msgid "Sun key compatibility" msgstr "" msgid "Ctrl+Alt+Backspace" +msgstr "" + +msgid "Right Alt (while pressed)" +msgstr "" + +msgid "Left Alt (while pressed)" +msgstr "" + +msgid "Left Win (while pressed)" +msgstr "" + +msgid "Right Win (while pressed)" +msgstr "" + +msgid "Any Win (while pressed)" +msgstr "" + +msgid "Menu (while pressed), Shift+Menu for Menu" +msgstr "" + +msgid "Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action" +msgstr "" + +msgid "Right Ctrl (while pressed)" +msgstr "" + +msgid "Right Alt" +msgstr "" + +msgid "Left Alt" +msgstr "" + +msgid "Caps Lock" +msgstr "" + +msgid "Shift+Caps Lock" +msgstr "" + +msgid "Caps Lock to first layout; Shift+Caps Lock to second layout" +msgstr "" + +msgid "Left Win to first layout; Right Win/Menu to second layout" +msgstr "" + +msgid "Left Ctrl to first layout; Right Ctrl to second layout" +msgstr "" + +msgid "Alt+Caps Lock" +msgstr "" + +msgid "Both Shifts together" +msgstr "" + +msgid "Both Alts together" +msgstr "" + +msgid "Both Alts together; AltGr alone chooses third level" +msgstr "" + +msgid "Both Ctrls together" +msgstr "" + +msgid "Ctrl+Shift" +msgstr "" + +msgid "Left Ctrl+Left Shift" +msgstr "" + +msgid "Right Ctrl+Right Shift" +msgstr "" + +msgid "Alt+Ctrl" +msgstr "" + +msgid "Alt+Shift" +msgstr "" + +msgid "Left Alt+Left Shift" +msgstr "" + +msgid "Right Alt+Right Shift" +msgstr "" + +msgid "Menu" +msgstr "" + +msgid "Left Win" +msgstr "" + +msgid "Alt+Space" +msgstr "" + +msgid "Win+Space" +msgstr "" + +msgid "Ctrl+Space" +msgstr "" + +msgid "Right Win" +msgstr "" + +msgid "Left Shift" +msgstr "" + +msgid "Right Shift" +msgstr "" + +msgid "Left Ctrl" +msgstr "" + +msgid "Right Ctrl" +msgstr "" + +msgid "Scroll Lock" +msgstr "" + +msgid "Ctrl+Left Win to first layout; Ctrl+Menu to second layout" +msgstr "" + +msgid "Left Ctrl+Left Win" msgstr "" \ No newline at end of file diff --git a/locale/ubl-settings-keyboard-options_ru.po b/locale/ubl-settings-keyboard-options_ru.po index 1eba714..cd1775f 100644 --- a/locale/ubl-settings-keyboard-options_ru.po +++ b/locale/ubl-settings-keyboard-options_ru.po @@ -420,4 +420,98 @@ msgid "Sun key compatibility" msgstr "Совместимость с клавишей Sun" msgid "Ctrl+Alt+Backspace" -msgstr "Ctrl+Alt+Backspac" \ No newline at end of file +msgstr "Ctrl+Alt+Backspac" + +msgid "Right Alt (while pressed)" +msgstr "Правый Alt (удерживая нажатой)" + +msgid "Left Alt (while pressed)" +msgstr "Левый Alt (удерживая нажатой)" + +msgid "Left Win (while pressed)" +msgstr "Левая Win (удерживая нажатой)" + +msgid "Right Win (while pressed)" +msgstr "Правая Win (удерживая нажатой)" + +msgid "Any Win (while pressed)" +msgstr "Любая Win (удерживая нажатой)" + +msgid "Menu (while pressed), Shift+Menu for Menu" +msgstr "Меню (удерживая нажатой), Shift+Menu для меню" + +msgid "Caps Lock (while pressed), Alt+Caps Lock for the original Caps Lock action" +msgstr "Caps Lock (удерживая нажатой), Alt+Caps Lock для исходного действия Caps Lock" + +msgid "Right Ctrl (while pressed)" +msgstr "Правый Ctrl (удерживая нажатой)" + +msgid "Shift+Caps Lock" +msgstr "Shift+Caps Lock" + +msgid "Caps Lock to first layout; Shift+Caps Lock to second layout" +msgstr "Caps Lock на первую раскладку; Shift+Caps Lock на вторую раскладку" + +msgid "Left Win to first layout; Right Win/Menu to second layout" +msgstr "Левая Win на первую раскладку; Правая Win/Menu на вторую раскладку" + +msgid "Left Ctrl to first layout; Right Ctrl to second layout" +msgstr "Левый Ctrl на первую раскладку; Правый Ctrl на вторую раскладку" + +msgid "Alt+Caps Lock" +msgstr "Alt+Caps Lock" + +msgid "Both Shifts together" +msgstr "Оба Shift одновременно" + +msgid "Both Alts together" +msgstr "Оба Alt одновременно" + +msgid "Both Alts together; AltGr alone chooses third level" +msgstr "Оба Alt одновременно; AltGr отдельно выбирает третий уровень" + +msgid "Both Ctrls together" +msgstr "Оба Ctrl вместе" + +msgid "Ctrl+Shift" +msgstr "Ctrl+Shift" + +msgid "Left Ctrl+Left Shift" +msgstr "Левый Ctrl+Левый Shift" + +msgid "Right Ctrl+Right Shift" +msgstr "Правый Ctrl+Правый Shift" + +msgid "Alt+Ctrl" +msgstr "Alt+Ctrl" + +msgid "Alt+Shift" +msgstr "Alt+Shift" + +msgid "Left Alt+Left Shift" +msgstr "Левый Alt+Левый Shift" + +msgid "Right Alt+Right Shift" +msgstr "Правый Alt+Правый Shift" + +msgid "Alt+Space" +msgstr "Alt+Пробел" + +msgid "Win+Space" +msgstr "Win+Пробел" + +msgid "Ctrl+Space" +msgstr "Ctrl+Пробел" + +msgid "Left Shift" +msgstr "Левый Shift" + +msgid "Right Shift" +msgstr "Правый Shift" + + +msgid "Ctrl+Left Win to first layout; Ctrl+Menu to second layout" +msgstr "Ctrl+Левый Win на первую раскладку; Ctrl+Меню на вторую раскладку" + +msgid "Left Ctrl+Left Win" +msgstr "Левый Ctrl+Левый Win" \ No newline at end of file diff --git a/locale/ubl-settings-keyboard.pot b/locale/ubl-settings-keyboard.pot index 490493d..d58bcb3 100644 --- a/locale/ubl-settings-keyboard.pot +++ b/locale/ubl-settings-keyboard.pot @@ -161,3 +161,15 @@ msgstr "" #: source/ubl-strings.h:20 msgid "Font:" msgstr "" + +#: source/ubl-strings.h:20 +msgid "Group" +msgstr "" + +#: source/ubl-strings.h:20 +msgid "Second keyboard layout" +msgstr "" + +#: source/ubl-strings.h:20 +msgid "Font" +msgstr "" diff --git a/locale/ubl-settings-keyboard_ru.po b/locale/ubl-settings-keyboard_ru.po index 74aeb7b..0284af2 100644 --- a/locale/ubl-settings-keyboard_ru.po +++ b/locale/ubl-settings-keyboard_ru.po @@ -163,3 +163,15 @@ msgstr "Вторая раскладка клавиш для клавиатуры #: source/ubl-strings.h:20 msgid "Font:" msgstr "Шрифт:" + +#: source/ubl-strings.h:20 +msgid "Group" +msgstr "Группа" + +#: source/ubl-strings.h:20 +msgid "Second keyboard layout" +msgstr "Вторая раскладка клавиш для клавиатуры" + +#: source/ubl-strings.h:20 +msgid "Font" +msgstr "Шрифт" diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 416c8fd..f6ef902 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -34,7 +34,10 @@ set(DEPENDFILES ../ubl-settings-keyboard.glade ../ubl-settings-keyboard-layouts.glade ../ubl-settings-keyboard-options.glade - ../layouts.csv + ../ubl-settings-keyboard-keymaps.glade + ../ubl-settings-keyboard-font.glade + ../keymap-list.csv + ../font-list.csv ../gresource.xml ../ubl-settings-keyboard.css ) @@ -77,6 +80,8 @@ set(SOURCE_FILES ubl-settings-keyboard-layouts.c ubl-settings-keyboard-options.c ubl-settings-keyboard-save.c + ubl-settings-keyboard-font.c + ubl-settings-keyboard-keymaps.c ubl-settings-keyboard.h ubl-strings.h ) diff --git a/source/ubl-settings-keyboard-font.c b/source/ubl-settings-keyboard-font.c new file mode 100644 index 0000000..c61470c --- /dev/null +++ b/source/ubl-settings-keyboard-font.c @@ -0,0 +1,87 @@ +#include "ubl-settings-keyboard.h" + +void on_font_accept(GtkWidget *, layouts_window *window){ + GtkWidget *output_widget = g_object_get_data(G_OBJECT(window->Window),"output"); + if (gtk_switch_get_active(GTK_SWITCH(window->OptionsFilterCombo))){ + gtk_entry_set_text(GTK_ENTRY(output_widget),""); + yon_config_remove_by_key(console_keymap_parameter); + on_subwindow_close(window->Window); + return; + } + char *target = (char*)gtk_entry_get_text(GTK_ENTRY(window->OptionsEntry)); + if (yon_char_is_empty(target)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(NOTHING_CHOSEN_LABEL),5,BACKGROUND_IMAGE_FAIL_TYPE); + return; + } + gtk_entry_set_text(GTK_ENTRY(output_widget),target); + yon_config_register(console_font_parameter,console_font_parameter_command,target); + on_subwindow_close(window->Window); +} + +void on_font_selection_changed(GtkWidget *,layouts_window *window){ + GtkTreeModel *model; + GtkTreeIter iter; + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->MainTree)),&model, &iter)){ + char *target; + gtk_tree_model_get(model,&iter,0,&target,-1); + gtk_entry_set_text(GTK_ENTRY(window->OptionsEntry),target); + } else { + gtk_entry_set_text(GTK_ENTRY(window->OptionsEntry),""); + } +} + +layouts_window *yon_font_window_new(){ + GtkBuilder *builder = gtk_builder_new_from_resource(glade_font_path); + layouts_window *window = malloc(sizeof(layouts_window)); + memset(window,0,sizeof(layouts_window)); + window->Window = yon_gtk_builder_get_widget(builder,"Window"); + window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox"); + window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton"); + window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton"); + window->MainTree = yon_gtk_builder_get_widget(builder,"FontTree"); + window->OptionsEntry = yon_gtk_builder_get_widget(builder,"ManualEntry"); + window->OptionsFilterCombo = yon_gtk_builder_get_widget(builder,"DefaultSwitch"); + window->OptionsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"FontList")); + window->parameters = yon_char_new(config(keyboard_layout_parameter)); + + g_signal_connect(G_OBJECT(window->OptionsFilterCombo),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),window->MainTree); + g_signal_connect(G_OBJECT(window->OptionsFilterCombo),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),window->OptionsEntry); + g_signal_connect(G_OBJECT(window->MainTree),"cursor-changed",G_CALLBACK(on_font_selection_changed),window); + g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); + int font_size; + int size; + config_str fonts = yon_resource_open_file(font_list_path, &font_size); + for (int i=0;iOptionsList),&iter); + gtk_list_store_set(GTK_LIST_STORE(window->OptionsList),&iter,0,parsed[0],1,parsed[1],-1); + if (!yon_char_is_empty(config_value)&&!strcmp(parsed[0],config_value)){ + gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->MainTree)),&iter); + gtk_entry_set_text(GTK_ENTRY(window->OptionsEntry),config_value); + } + } + } + if (yon_char_is_empty(config_value)){ + gtk_switch_set_active(GTK_SWITCH(window->OptionsFilterCombo),1); + } + return window; +} + +void yon_font_open(GtkWidget *,main_window *widgets){ + layouts_window *window = yon_font_window_new(); + g_object_set_data(G_OBJECT(window->Window),"output",widgets->TTYFontEntry); + yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window),FONT_TITLE_LABEL,icon_path,"font-window"); + + g_object_set_data(G_OBJECT(window->Window),"widgets",widgets); + g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_font_accept),window); +} \ No newline at end of file diff --git a/source/ubl-settings-keyboard-keymaps.c b/source/ubl-settings-keyboard-keymaps.c new file mode 100644 index 0000000..f0cbbaa --- /dev/null +++ b/source/ubl-settings-keyboard-keymaps.c @@ -0,0 +1,105 @@ +#include "ubl-settings-keyboard.h" + +void on_keymaps_accept(GtkWidget *, layouts_window *window){ + main_window *widgets = g_object_get_data(G_OBJECT(window->Window),"widgets"); + GtkWidget *output_widget = g_object_get_data(G_OBJECT(window->Window),"output"); + if (gtk_switch_get_active(GTK_SWITCH(window->OptionsFilterCombo))){ + gtk_entry_set_text(GTK_ENTRY(output_widget),""); + yon_config_remove_by_key(console_keymap_parameter); + on_subwindow_close(window->Window); + return; + } + char *target = (char*)gtk_entry_get_text(GTK_ENTRY(window->OptionsEntry)); + if (yon_char_is_empty(target)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(NOTHING_CHOSEN_LABEL),5,BACKGROUND_IMAGE_FAIL_TYPE); + return; + } + if (output_widget == widgets->TTYLayoutEntry){ + gtk_entry_set_text(GTK_ENTRY(output_widget),target); + yon_config_register(console_keymap_parameter,console_keymap_parameter_command,target); + + } else { + gtk_entry_set_text(GTK_ENTRY(output_widget),target); + yon_config_register(console_keymap_toggle_parameter,console_keymap_parameter_command,target); + + } + on_subwindow_close(window->Window); +} + +void on_keymaps_selection_changed(GtkWidget *,layouts_window *window){ + GtkTreeModel *model; + GtkTreeIter iter; + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->MainTree)),&model, &iter)){ + char *target; + gtk_tree_model_get(model,&iter,0,&target,-1); + gtk_entry_set_text(GTK_ENTRY(window->OptionsEntry),target); + } else { + gtk_entry_set_text(GTK_ENTRY(window->OptionsEntry),""); + } +} + +layouts_window *yon_keymaps_window_new(){ + GtkBuilder *builder = gtk_builder_new_from_resource(glade_keymaps_path); + layouts_window *window = malloc(sizeof(layouts_window)); + memset(window,0,sizeof(layouts_window)); + window->Window = yon_gtk_builder_get_widget(builder,"Window"); + window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox"); + window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton"); + window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton"); + window->MainTree = yon_gtk_builder_get_widget(builder,"KeymapTree"); + window->parameters = yon_char_new(config(keyboard_layout_parameter)); + window->OptionsEntry = yon_gtk_builder_get_widget(builder,"ManualEntry"); + window->OptionsFilterCombo = yon_gtk_builder_get_widget(builder,"DefaultSwitch"); + window->OptionsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"KeymapList")); + + g_signal_connect(G_OBJECT(window->OptionsFilterCombo),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),window->MainTree); + g_signal_connect(G_OBJECT(window->OptionsFilterCombo),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),window->OptionsEntry); + g_signal_connect(G_OBJECT(window->MainTree),"cursor-changed",G_CALLBACK(on_keymaps_selection_changed),window); + g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); + return window; +} + +void yon_keymaps_open(GtkWidget *self,main_window *widgets){ + layouts_window *window = yon_keymaps_window_new(); + if (self == widgets->TTYLayoutButton){ + yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window),KEYBOARD_LAYOUT_LABEL,icon_path,"font-window"); + g_object_set_data(G_OBJECT(window->Window),"output",widgets->TTYLayoutEntry); + } else { + yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window),KEYMAP_TITLE_LABEL,icon_path,"font-window"); + g_object_set_data(G_OBJECT(window->Window),"output",widgets->TTYSecondLayoutEntry); + } + g_object_set_data(G_OBJECT(window->Window),"widgets",widgets); + g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_keymaps_accept),window); + + int keymap_size; + int size; + config_str keymaps = yon_resource_open_file(keymap_list_path, &keymap_size); + for (int i=0;iTTYLayoutButton){ + config_value = config(console_keymap_parameter); + } else { + config_value = config(console_keymap_toggle_parameter); + } + for (int i=0;iOptionsList),&iter); + gtk_list_store_set(GTK_LIST_STORE(window->OptionsList),&iter,0,parsed[0],1,parsed[1],2,parsed[2],-1); + if (!yon_char_is_empty(config_value)&&!strcmp(parsed[0],config_value)){ + gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->MainTree)),&iter); + gtk_entry_set_text(GTK_ENTRY(window->OptionsEntry),config_value); + } + } + } + if (yon_char_is_empty(config_value)){ + gtk_switch_set_active(GTK_SWITCH(window->OptionsFilterCombo),1); + } +} \ No newline at end of file diff --git a/source/ubl-settings-keyboard.c b/source/ubl-settings-keyboard.c index 740ab83..4b8b262 100644 --- a/source/ubl-settings-keyboard.c +++ b/source/ubl-settings-keyboard.c @@ -8,7 +8,7 @@ gboolean yon_interface_update(main_window *widgets){ g_signal_handlers_block_by_func(G_OBJECT(widgets->OptionsEditButton),G_CALLBACK(on_options_open),widgets); g_signal_handlers_block_by_func(G_OBJECT(widgets->NumLockCombo),G_CALLBACK(on_num_lock_changed),widgets); g_signal_handlers_block_by_func(G_OBJECT(widgets->LayoutChangingCombo),G_CALLBACK(on_options_save),widgets); - g_signal_handlers_block_by_func(G_OBJECT(widgets->TTYLayoutCombo),G_CALLBACK(on_tty_changed),widgets); + // g_signal_handlers_block_by_func(G_OBJECT(widgets->TTYLayoutCombo),G_CALLBACK(on_tty_changed),widgets); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->KeyboardModelCombo),0); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),0); @@ -45,24 +45,24 @@ gboolean yon_interface_update(main_window *widgets){ } } - char *tty_keymap = config(console_keymap_parameter); - if (!yon_char_is_empty(tty_keymap)){ - gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->TTYLayoutCombo),tty_keymap); - } else { - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TTYLayoutCombo),0); - } - char *tty_keymap_change = config(console_keymap_toggle_parameter); - if (!yon_char_is_empty(tty_keymap_change)){ - gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->TTYKeymapCombo),tty_keymap_change); - } else { - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TTYKeymapCombo),0); - } - char *tty_font = config(console_font_parameter); - if (!yon_char_is_empty(tty_font)){ - gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->TTYFontCombo),tty_font); - } else { - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TTYFontCombo),0); - } + // char *tty_keymap = config(console_keymap_parameter); + // if (!yon_char_is_empty(tty_keymap)){ + // gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->TTYLayoutCombo),tty_keymap); + // } else { + // gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TTYLayoutCombo),0); + // } + // char *tty_keymap_change = config(console_keymap_toggle_parameter); + // if (!yon_char_is_empty(tty_keymap_change)){ + // gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->TTYKeymapCombo),tty_keymap_change); + // } else { + // gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TTYKeymapCombo),0); + // } + // char *tty_font = config(console_font_parameter); + // if (!yon_char_is_empty(tty_font)){ + // gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->TTYFontCombo),tty_font); + // } else { + // gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TTYFontCombo),0); + // } } { gtk_list_store_clear(widgets->OptionsList); @@ -97,7 +97,7 @@ gboolean yon_interface_update(main_window *widgets){ g_signal_handlers_unblock_by_func(G_OBJECT(widgets->OptionsEditButton),G_CALLBACK(on_options_open),widgets); g_signal_handlers_unblock_by_func(G_OBJECT(widgets->NumLockCombo),G_CALLBACK(on_num_lock_changed),widgets); g_signal_handlers_unblock_by_func(G_OBJECT(widgets->LayoutChangingCombo),G_CALLBACK(on_options_save),widgets); - g_signal_handlers_unblock_by_func(G_OBJECT(widgets->TTYLayoutCombo),G_CALLBACK(on_tty_changed),widgets); + // g_signal_handlers_unblock_by_func(G_OBJECT(widgets->TTYLayoutCombo),G_CALLBACK(on_tty_changed),widgets); return G_SOURCE_REMOVE; } @@ -217,32 +217,32 @@ void on_scroll_lock_switch(GtkWidget *,int status,main_window *widgets){ yon_interface_update(widgets); } -void on_tty_changed(GtkWidget *, main_window *widgets){ - char *tty_layout = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->TTYLayoutCombo)); - if (!yon_char_is_empty(tty_layout)){ - yon_config_register(console_keymap_parameter,console_keymap_parameter_command,tty_layout); - } else { - yon_config_remove_by_key(console_keymap_parameter); - } -} - -void on_tty_keymap_changed(GtkWidget *, main_window *widgets){ - char *tty_layout = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->TTYKeymapCombo)); - if (!yon_char_is_empty(tty_layout)){ - yon_config_register(console_keymap_toggle_parameter,console_keymap_toggle_parameter_command,tty_layout); - } else { - yon_config_remove_by_key(console_keymap_toggle_parameter); - } -} - -void on_tty_font_changed(GtkWidget *, main_window *widgets){ - char *tty_layout = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->TTYFontCombo)); - if (!yon_char_is_empty(tty_layout)){ - yon_config_register(console_font_parameter,console_font_parameter_command,tty_layout); - } else { - yon_config_remove_by_key(console_font_parameter); - } -} +// void on_tty_changed(GtkWidget *, main_window *widgets){ +// char *tty_layout = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->TTYLayoutCombo)); +// if (!yon_char_is_empty(tty_layout)){ +// yon_config_register(console_keymap_parameter,console_keymap_parameter_command,tty_layout); +// } else { +// yon_config_remove_by_key(console_keymap_parameter); +// } +// } + +// void on_tty_keymap_changed(GtkWidget *, main_window *widgets){ +// char *tty_layout = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->TTYKeymapCombo)); +// if (!yon_char_is_empty(tty_layout)){ +// yon_config_register(console_keymap_toggle_parameter,console_keymap_toggle_parameter_command,tty_layout); +// } else { +// yon_config_remove_by_key(console_keymap_toggle_parameter); +// } +// } + +// void on_tty_font_changed(GtkWidget *, main_window *widgets){ +// char *tty_layout = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->TTYFontCombo)); +// if (!yon_char_is_empty(tty_layout)){ +// yon_config_register(console_font_parameter,console_font_parameter_command,tty_layout); +// } else { +// yon_config_remove_by_key(console_font_parameter); +// } +// } void yon_main_window_complete(main_window *widgets){ widgets = yon_remalloc(widgets,sizeof(main_window)); @@ -265,9 +265,13 @@ void yon_main_window_complete(main_window *widgets){ widgets->ComposeSwitch = yon_gtk_builder_get_widget(builder,"ComposeSwitch"); widgets->ScrollLockSwitch = yon_gtk_builder_get_widget(builder,"ScrollLockSwitch"); widgets->NumLockCombo = yon_gtk_builder_get_widget(builder,"NumLockCombo"); - widgets->TTYLayoutCombo = yon_gtk_builder_get_widget(builder,"TTYLayoutCombo"); - widgets->TTYKeymapCombo = yon_gtk_builder_get_widget(builder,"TTYKeymapCombo"); - widgets->TTYFontCombo = yon_gtk_builder_get_widget(builder,"TTYFontCombo"); + + widgets->TTYLayoutEntry = yon_gtk_builder_get_widget(builder,"TTYLayoutEntry"); + widgets->TTYLayoutButton = yon_gtk_builder_get_widget(builder,"TTYLayoutButton"); + widgets->TTYSecondLayoutEntry = yon_gtk_builder_get_widget(builder,"TTYSecondLayoutEntry"); + widgets->TTYSecondLayoutButton = yon_gtk_builder_get_widget(builder,"TTYSecondLayoutButton"); + widgets->TTYFontEntry = yon_gtk_builder_get_widget(builder,"TTYFontEntry"); + widgets->TTYFontButton = yon_gtk_builder_get_widget(builder,"TTYFontButton"); widgets->LayoutsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"LayoutsList")); widgets->OptionsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"OptionsList")); @@ -278,9 +282,9 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->LayoutAddButton),"clicked",G_CALLBACK(on_system_layouts_add),widgets); g_signal_connect(G_OBJECT(widgets->LayoutRemoveButton),"clicked",G_CALLBACK(on_system_layouts_remove),widgets); - g_signal_connect(G_OBJECT(widgets->TTYLayoutCombo),"changed",G_CALLBACK(on_tty_changed),widgets); - g_signal_connect(G_OBJECT(widgets->TTYKeymapCombo),"changed",G_CALLBACK(on_tty_keymap_changed),widgets); - g_signal_connect(G_OBJECT(widgets->TTYFontCombo),"changed",G_CALLBACK(on_tty_font_changed),widgets); + g_signal_connect(G_OBJECT(widgets->TTYLayoutButton),"clicked",G_CALLBACK(yon_keymaps_open),widgets); + g_signal_connect(G_OBJECT(widgets->TTYSecondLayoutButton),"clicked",G_CALLBACK(yon_keymaps_open),widgets); + g_signal_connect(G_OBJECT(widgets->TTYFontButton),"clicked",G_CALLBACK(yon_font_open),widgets); g_signal_connect(G_OBJECT(widgets->KeyboardModelCombo),"changed",G_CALLBACK(on_model_changed),widgets); g_signal_connect(G_OBJECT(widgets->OptionsEditButton),"clicked",G_CALLBACK(on_options_open),widgets); g_signal_connect(G_OBJECT(widgets->OptionsRemoveButton),"clicked",G_CALLBACK(on_option_remove),widgets); @@ -335,30 +339,30 @@ void yon_main_window_complete(main_window *widgets){ } yon_char_parsed_free(models,size); - { - config_str parsed = yon_config_load(tty_layout_command,&size); - for (int i=0;iTTYLayoutCombo),parsed[i],parsed[i]); - } - yon_char_parsed_free(parsed,size); - } - { - config_str parsed = yon_config_load(tty_keymap_command,&size); - for (int i=0;iTTYKeymapCombo),parsed[i],parsed[i]); - } - yon_char_parsed_free(parsed,size); - } - { - config_str parsed = yon_config_load(tty_font_command,&size); - for (int i=0;iTTYFontCombo),parsed[i],parsed[i]); - } - yon_char_parsed_free(parsed,size); - } + // { + // config_str parsed = yon_config_load(tty_layout_command,&size); + // for (int i=0;iTTYLayoutCombo),parsed[i],parsed[i]); + // } + // yon_char_parsed_free(parsed,size); + // } + // { + // config_str parsed = yon_config_load(tty_keymap_command,&size); + // for (int i=0;iTTYKeymapCombo),parsed[i],parsed[i]); + // } + // yon_char_parsed_free(parsed,size); + // } + // { + // config_str parsed = yon_config_load(tty_font_command,&size); + // for (int i=0;iTTYFontCombo),parsed[i],parsed[i]); + // } + // yon_char_parsed_free(parsed,size); + // } yon_root_button_setup((template_main_window*)widgets,main_config.launch_arguments,main_config.launch_size); yon_save_window_set_postsave_function(on_save_done,widgets); gtk_tree_view_column_clicked(GTK_TREE_VIEW_COLUMN(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->LayoutTree),0))); diff --git a/source/ubl-settings-keyboard.h b/source/ubl-settings-keyboard.h index 6de6fa3..ebbee16 100644 --- a/source/ubl-settings-keyboard.h +++ b/source/ubl-settings-keyboard.h @@ -21,27 +21,33 @@ #define glade_path "/com/ublinux/ui/ubl-settings-keyboard.glade" #define glade_layouts_path "/com/ublinux/ui/ubl-settings-keyboard-layouts.glade" #define glade_options_path "/com/ublinux/ui/ubl-settings-keyboard-options.glade" +#define glade_keymaps_path "/com/ublinux/ui/ubl-settings-keyboard-keymaps.glade" +#define glade_font_path "/com/ublinux/ui/ubl-settings-keyboard-font.glade" #define banner_path "/com/ublinux/images/ubl-settings-keyboard-banner.png" #define CssPath "/com/ublinux/css/ubl-settings-keyboard.css" #define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL) #define icon_path "com.ublinux.ubl-settings-keyboard" +#define keymap_list_path "resource://com/ublinux/csv/keymap-list.csv" +#define font_list_path "resource://com/ublinux/csv/font-list.csv" + #define LocaleName "ubl-settings-keyboard" #define model_parameter "XKBMODEL" -#define model_parameter_command "ubconfig --source global get keyboard XKBMODEL" +#define model_parameter_command "ubconfig --source global get [keyboard] XKBMODEL" #define keyboard_layout_parameter "XKBLAYOUT" -#define keyboard_layout_parameter_command "ubconfig --source global get keyboard XKBLAYOUT" +#define keyboard_layout_parameter_command "ubconfig --source global get [keyboard] XKBLAYOUT" #define options_parameter "XKBOPTIONS" -#define options_parameter_command "ubconfig --source global get keyboard XKBOPTIONS" +#define options_parameter_command "ubconfig --source global get [keyboard] XKBOPTIONS" #define num_lock_boot_parameter "NUMLOCK" -#define num_lock_boot_parameter_command "ubconfig --source global get keyboard NUMLOCK" +#define num_lock_boot_parameter_command "ubconfig --source global get [keyboard] NUMLOCK" + #define console_keymap_parameter "CONSOLE_KEYMAP" -#define console_keymap_parameter_command "ubconfig --source global get keyboard CONSOLE_KEYMAP" +#define console_keymap_parameter_command "ubconfig --source global get [keyboard] CONSOLE_KEYMAP" #define console_keymap_toggle_parameter "CONSOLE_KEYMAP_TOGGLE" -#define console_keymap_toggle_parameter_command "ubconfig --source global get keyboard CONSOLE_KEYMAP_TOGGLE" +#define console_keymap_toggle_parameter_command "ubconfig --source global get [keyboard] CONSOLE_KEYMAP_TOGGLE" #define console_font_parameter "CONSOLE_FONT" -#define console_font_parameter_command "ubconfig --source global get keyboard CONSOLE_FONT" +#define console_font_parameter_command "ubconfig --source global get [locale] CONSOLE_FONT" #define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get keyboard XKBMODEL XKBLAYOUT XKBOPTIONS NUMLOCK",NULL) #define config_get_local_command "ubconfig --source system get keyboard XKBMODEL XKBLAYOUT XKBOPTIONS NUMLOCK" @@ -162,9 +168,12 @@ typedef struct { GtkWidget *ComposeSwitch; GtkWidget *ScrollLockSwitch; GtkWidget *NumLockCombo; - GtkWidget *TTYLayoutCombo; - GtkWidget *TTYKeymapCombo; - GtkWidget *TTYFontCombo; + GtkWidget *TTYLayoutEntry; + GtkWidget *TTYLayoutButton; + GtkWidget *TTYSecondLayoutEntry; + GtkWidget *TTYSecondLayoutButton; + GtkWidget *TTYFontEntry; + GtkWidget *TTYFontButton; GtkListStore *LayoutsList; GtkListStore *OptionsList; } main_window; @@ -184,6 +193,7 @@ typedef struct { typedef struct { GtkWidget *Window; + GtkWidget *StatusBox; GtkWidget *MainTree; GtkWidget *CancelButton; GtkWidget *AcceptButton; @@ -254,4 +264,13 @@ void on_layout_dnd_inserted(GtkTreeModel *, GtkTreePath* path, GtkTreeIter* it void on_layout_dnd_deleted(GtkTreeModel *, GtkTreePath* path, GtkTreeIter* iter, main_window *widgets); void on_tty_changed(GtkWidget *, main_window *widgets); void on_tty_keymap_changed(GtkWidget *, main_window *widgets); -void on_tty_font_changed(GtkWidget *, main_window *widgets); \ No newline at end of file +void on_tty_font_changed(GtkWidget *, main_window *widgets); +void yon_keymaps_open(GtkWidget *,main_window *widgets); +layouts_window *yon_keymaps_window_new(); +void on_keymaps_accept(GtkWidget *, layouts_window *window); +void on_font_accept(GtkWidget *, layouts_window *window); +layouts_window *yon_font_window_new(); +void yon_font_open(GtkWidget *,main_window *widgets); +void on_keymaps_selection_changed(GtkWidget *,layouts_window *window); +void on_font_accept(GtkWidget *, layouts_window *window); +void on_font_selection_changed(GtkWidget *,layouts_window *window); \ No newline at end of file diff --git a/source/ubl-strings.h b/source/ubl-strings.h index a5fa9f2..2b265c5 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -40,4 +40,8 @@ #define DESCRIPTION_LABEL _("Description") #define OPTIONS_LABEL _("Options:") #define KEYMAP_LABEL _("Second keyboard layout:") -#define FONT_LABEL _("Font:") \ No newline at end of file +#define FONT_LABEL _("Font:") + +#define GROUP_LABEL _("Group") +#define KEYMAP_TITLE_LABEL _("Second keyboard layout") +#define FONT_TITLE_LABEL _("Font") \ No newline at end of file diff --git a/ubl-settings-keyboard-font.glade b/ubl-settings-keyboard-font.glade new file mode 100644 index 0000000..7a336ad --- /dev/null +++ b/ubl-settings-keyboard-font.glade @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + 450 + 550 + True + False + com.ublinux.ubl-settings-keyboard + + + True + False + 5 + vertical + 5 + + + True + False + vertical + 5 + + + + + + False + True + 0 + + + + + True + False + 5 + 5 + 5 + + + True + True + + + False + True + 0 + + + + + True + False + Default + + + False + True + 1 + + + + + False + True + 1 + + + + + True + True + 5 + 5 + in + + + True + True + FontList + 1 + both + + + Font + True + 0 + + + + 0 + + + + + + + Description + + + + 1 + + + + + + + + + True + True + 2 + + + + + True + False + 5 + 5 + 5 + + + True + False + Manual input: + + + False + True + 0 + + + + + True + True + + + True + True + 1 + + + + + False + True + 3 + + + + + + + True + False + + + True + False + 5 + 5 + 5 + 5 + 2 + Keyboard + + + + + + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + 32 + com.ublinux.ubl-settings-keyboard + + + + + Cancel + True + True + True + image2 + + + 1 + + + + + Accept + True + True + True + image1 + + + end + 2 + + + + + + + + True + False + com.ublinux.libublsettingsui-gtk3.accept-symbolic + + + True + False + com.ublinux.libublsettingsui-gtk3.cancel-uncolored-symbolic + + diff --git a/ubl-settings-keyboard-keymaps.glade b/ubl-settings-keyboard-keymaps.glade new file mode 100644 index 0000000..b6788ac --- /dev/null +++ b/ubl-settings-keyboard-keymaps.glade @@ -0,0 +1,254 @@ + + + + + + + + + + + + + + + + 450 + 550 + True + False + com.ublinux.ubl-settings-keyboard + + + True + False + 5 + vertical + 5 + + + True + False + vertical + 5 + + + + + + False + True + 0 + + + + + True + False + 5 + 5 + 5 + + + True + True + + + False + True + 0 + + + + + True + False + Default + + + False + True + 1 + + + + + False + True + 1 + + + + + True + True + 5 + 5 + in + + + True + True + KeymapList + 1 + both + + + Name + 0 + + + + 0 + + + + + + + Group + + + + 1 + + + + + + + Description + + + word + 120 + + + 2 + + + + + + + + + True + True + 2 + + + + + True + False + 5 + 5 + 5 + + + True + False + Manual input: + + + False + True + 0 + + + + + True + True + + + True + True + 1 + + + + + False + True + 3 + + + + + + + True + False + + + True + False + 5 + 5 + 5 + 5 + 2 + Keyboard + + + + + + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + 32 + com.ublinux.ubl-settings-keyboard + + + + + Cancel + True + True + True + image2 + + + 1 + + + + + Accept + True + True + True + image1 + + + end + 2 + + + + + + + + True + False + com.ublinux.libublsettingsui-gtk3.accept-symbolic + + + True + False + com.ublinux.libublsettingsui-gtk3.cancel-uncolored-symbolic + + diff --git a/ubl-settings-keyboard.glade b/ubl-settings-keyboard.glade index 2531f56..4c5cb4f 100644 --- a/ubl-settings-keyboard.glade +++ b/ubl-settings-keyboard.glade @@ -73,6 +73,21 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. False com.ublinux.libublsettingsui-gtk3.trash-symbolic + + True + False + com.ublinux.libublsettingsui-gtk3.edit-symbolic + + + True + False + com.ublinux.libublsettingsui-gtk3.edit-symbolic + + + True + False + com.ublinux.libublsettingsui-gtk3.edit-symbolic + True False @@ -772,13 +787,37 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - + True False - 0 - - Default - + 5 + + + True + True + + + True + True + 0 + + + + + True + True + True + image9 + + + + False + True + 1 + + True @@ -812,13 +851,37 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - + True False - 0 - - Default - + 5 + + + True + True + + + True + True + 0 + + + + + True + True + True + image8 + + + + False + True + 1 + + True @@ -852,13 +915,37 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - + True False - 0 - - Default - + 5 + + + True + True + + + True + True + 0 + + + + + True + True + True + image7 + + + + False + True + 1 + + True