diff --git a/xkeyboard-config/PKGBUILD b/xkeyboard-config/PKGBUILD new file mode 100644 index 0000000..6b8bd41 --- /dev/null +++ b/xkeyboard-config/PKGBUILD @@ -0,0 +1,51 @@ +# +# Original maintainer: Andreas Radke +# Original maintainer: Jan de Groot +# +# This is a modified version of xkeyboard-config to provide emulation for ducky +# mini fn key layout that I got used to very much +# +# they don't make those keyboards any more :( + +pkgname=xkeyboard-config +pkgver=2.22 +pkgrel=1 +pkgdesc="X keyboard configuration files" +arch=(any) +license=('custom') +url="https://www.freedesktop.org/wiki/Software/XKeyboardConfig" +makedepends=('intltool' 'xorg-xkbcomp' 'libxslt') +provides=('xkbdata') +replaces=('xkbdata') +conflicts=('xkbdata') +source=("https://xorg.freedesktop.org/archive/individual/data/${pkgname}/${pkgname}-${pkgver}.tar.bz2" + 'ducky_mini' + 'ru.patch' + 'us.patch') +sha256sums=('deaec9989fbc443358b43864437b7b6d39caff07890a4a8055105ce9fcaa59bd' + '8068381fb15735e60e636ab1b42f99f98e7112be8e9bd03f436688eb2a19ea80' + '3f62c3684339c3fb4c51a33c485685f881d20013971d114774ece3b613001832' + '215471b50a3c9544dd2e185cc34dd60bec3be8c54c12ed66723f81846f73eb38') + +build() { + cd ${pkgname}-${pkgver} + cp -v ${srcdir}/ducky_mini symbols + patch -p1 < ${srcdir}/ru.patch + patch -p1 < ${srcdir}/us.patch + ./configure --prefix=/usr \ + --with-xkb-base=/usr/share/X11/xkb \ + --with-xkb-rules-symlink=xorg \ + --enable-compat-rules=yes + make + } + + package() { + cd ${pkgname}-${pkgver} + + make DESTDIR="${pkgdir}" install + rm -f "${pkgdir}/usr/share/X11/xkb/compiled" + + install -m755 -d "${pkgdir}/var/lib/xkb" + install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" + install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/xkeyboard-config/ducky_mini b/xkeyboard-config/ducky_mini new file mode 100644 index 0000000..97b48e7 --- /dev/null +++ b/xkeyboard-config/ducky_mini @@ -0,0 +1,94 @@ +// This is a wip layout that mimicks ducky shine mini keyboard layout. +// Uses us standard and ru typewriter keyboard layouts. +// WIP, should be used with lv3 and grp switches +// Has to be copied to /usr/share/X11/xkb/symbols/ducky_mini + +default partial alphanumeric_keys +xkb_symbols "us" { + name[Group1] = "English (US, with a layout mimicking the Ducky Shine Mini fn functionality)"; + + include "us(basic)" + include "ducky_mini(common)" + + // chromium doesn't like it when esc is bound to a normal key :( + // key { [ Escape, asciitilde, grave, Escape ] }; + key { [ 1, exclam, F1, F1 ] }; + key { [ 2, at, F2, F2 ] }; + key { [ 3, numbersign, F3, F3 ] }; + key { [ 4, dollar, F4, F4 ] }; + key { [ 5, percent, F5, F5 ] }; + key { [ 6, asciicircum, F6, F6 ] }; + key { [ 7, ampersand, F7, F7 ] }; + key { [ 8, asterisk, F8, F8 ] }; + key { [ 9, parenleft, F9, F9 ] }; + key { [ 0, parenright, F10, F10 ] }; + key { [ minus, underscore, F11, F11 ] }; + key { [ equal, plus, F12, F12 ] }; + + key { [ o, O, Up, Up ] }; + key { [ p, P, Print, Sys_Req ] }; + key { [ bracketleft, braceleft, Scroll_Lock, Scroll_Lock ] }; + key { [ bracketright, braceright, Pause, Break ] }; + + key { [ j, J, Prior, Prior ] }; + key { [ k, K, Left, Left ] }; + key { [ l, L, Down, Down ] }; + key { [ semicolon, colon, Right, Right ] }; + key { [ apostrophe, quotedbl, Menu, Menu ] }; + + key { [ m, M, Next, Next ] }; + key { [ comma, less, Home, Home ] }; + key { [ period, greater, End, End ] }; + + key { [ backslash, bar, Insert, Insert ] }; + key { [ BackSpace, BackSpace, Delete, Delete ] }; +}; + +partial alphanumeric_keys +xkb_symbols "ru" { + name[Group1] = "Russian (RU typewriter, with a layout mimicking the Ducky Shine Mini fn functionality)"; + + include "ru(typewriter)" + include "ducky_mini(common)" + + // chromium doesn't like it when esc is bound to a normal key :( + // key { [ Escape, plus, bar, Escape ] }; + key { [ numerosign, 1, F1, F1 ] }; + key { [ minus, 2, F2, F2 ] }; + key { [ slash, 3, F3, F3 ] }; + key { [ quotedbl, 4, F4, F4 ] }; + key { [ colon, 5, F5, F5 ] }; + key { [ comma, 6, F6, F6 ] }; + key { [ period, 7, F7, F7 ] }; + key { [ underscore, 8, F8, F8 ] }; + key { [ question, 9, F9, F9 ] }; + key { [ percent, 0, F10, F10 ] }; + key { [ exclam, equal, F11, F11 ] }; + key { [ semicolon, backslash, F12, F12 ] }; + + key { [ Cyrillic_shcha, Cyrillic_SHCHA, Up ] }; + key { [ Cyrillic_ze, Cyrillic_ZE, Print, Sys_Req ] }; + key { [ Cyrillic_ha, Cyrillic_HA, Scroll_Lock, Scroll_Lock ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, Pause, Break ] }; + + key { [ Cyrillic_o, Cyrillic_O, Prior, Prior ] }; + key { [ Cyrillic_el, Cyrillic_EL, Left, Left ] }; + key { [ Cyrillic_de, Cyrillic_DE, Down, Down ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, Right, Right ] }; + key { [ Cyrillic_e, Cyrillic_E, Menu, Menu ] }; + + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, Next, Next ] }; + key { [ Cyrillic_be, Cyrillic_BE, Home, Home ] }; + key { [ Cyrillic_yu, Cyrillic_YU, End, End ] }; + + key { [ parenright, parenleft, Insert, Insert ] }; + key { [ BackSpace, BackSpace, Delete, Delete ] }; +}; + +partial modifier_keys +xkb_symbols "common" { + name[Group1] = "Common (layout mimicking the Ducky Shine Mini fn functionality)"; + + replace key { [ Control_L ] }; + replace key { [ ISO_Level3_Shift ] }; +}; diff --git a/xkeyboard-config/ru.patch b/xkeyboard-config/ru.patch new file mode 100644 index 0000000..0c1d945 --- /dev/null +++ b/xkeyboard-config/ru.patch @@ -0,0 +1,11 @@ +--- a/symbols/ru 2017-10-04 14:29:44.000000000 +0300 ++++ b/symbols/ru 2017-12-06 15:21:17.855795258 +0300 +@@ -959,3 +959,8 @@ + // srp: Потребно да се ставља lv5:rwin_switch_lock или једна из других брава петег ступња, да би шљакао пребацивач Caps! + // https://bugs.freedesktop.org/show_bug.cgi?id=102189 + }; ++ ++xkb_symbols "ducky" { ++ name[Group1] = "Russian (RU typewriter, with a layout mimicking the Ducky Shine Mini fn functionality)"; ++ include "ducky_mini(ru)" ++}; diff --git a/xkeyboard-config/us.patch b/xkeyboard-config/us.patch new file mode 100644 index 0000000..2012ae6 --- /dev/null +++ b/xkeyboard-config/us.patch @@ -0,0 +1,12 @@ +--- a/symbols/us 2017-10-04 14:29:44.000000000 +0300 ++++ b/symbols/us 2017-12-06 15:21:23.275832820 +0300 +@@ -1787,3 +1787,9 @@ + xkb_symbols "sun_type6" { + include "sun_vndr/us(sun_type6)" + }; ++ ++ ++xkb_symbols "ducky" { ++ name[Group1] = "English (US, with a layout mimicking the Ducky Shine Mini fn functionality)"; ++ include "ducky_mini(us)" ++};