nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
Вот тут набросал маленький скриптик, который переделывает текущую консольную раскладку для переключения с помощью сочетания Alt+Shift#!/bin/bash # # kbd_alt_sh.sh # # Copyright (c) 2012 ArchAnTavr <archlinux@antavr.ru> # http://archlinux.antavr.ru # # 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, see <http://www.gnu.org/licenses/>. # # Цвет и вид текста сообщений BLDRED='\e[1;31m' # Red BLDGRN='\e[1;32m' # Green BLDYLW='\e[1;33m' # Yellow BLDBLU='\e[1;34m' # Blue BLDWHT='\e[1;37m' # White TXTRST='\e[0m' # Text Reset # Если не root то выход [[ ${EUID} -ne 0 ]] && echo -e "${BLDRED}$(gettext 'You must have root privileges to run!!!')${TXTRST}" >&2 && exit -1 CONFFILE='/etc/vconsole.conf' KEYMAPSDIR='/etc/kbd/keymaps/' [ ! -f "${CONFFILE}" ] && echo -e "${BLDRED}${CONFFILE} $(gettext 'Файл не найден!!!')${TXTRST}" >&2 && exit 1 source "${CONFFILE}" mkdir -p "${KEYMAPSDIR}" add_strs() { local P_KEYNAME_S="${1}" local P_KEYNAME_A="${2}" local P_KEYMAP_FILE="${3}" local KEYCODE local STR grep "${P_KEYNAME_S}$" "${P_KEYMAP_FILE}" \ | while read STR do KEYCODE=(${STR}) sed -i "/${STR}/ a${P_KEYNAME_A} keycode ${KEYCODE[1]} = AltGr_Lock\naltgr ${P_KEYNAME_A} keycode ${KEYCODE[1]} = AltGr_Lock" "${P_KEYMAP_FILE}" done } conv_alt_sh() { local P_KEYMAP="${1}" local KEYMAP_FILE=$(find '/usr/share/kbd/keymaps/' -iname "${P_KEYMAP}.map.gz") [ ! "${KEYMAP_FILE}" ] && echo -e "${BLDRED}$(gettext 'Файл раскладки клавиатуры не найден!!!')${TXTRST}" >&2 && exit 4 local KEYMAP_FILE_NEW="${KEYMAPSDIR}${P_KEYMAP}.map" gzip -dc "${KEYMAP_FILE}" | grep -v 'AltGr_Lock' | sed 's/#\(.*\)//;s/^[ \t]*//;s/[ \t]*$//;s/ \{1,\}/ /g' | sed '/^ *$/d' > "${KEYMAP_FILE_NEW}" add_strs 'Alt' 'shift' "${KEYMAP_FILE_NEW}" add_strs 'Shift' 'alt' "${KEYMAP_FILE_NEW}" sed -i "1i # Gen `date '+%Y-%m-%d %H:%M'`. From ${P_KEYMAP}.map.gz. Mode is switched by the Alt+Shift" "${KEYMAP_FILE_NEW}" gzip -9f "${KEYMAP_FILE_NEW}" echo "${KEYMAP_FILE_NEW}.gz" } [ ! "${KEYMAP}" ] && echo -e "${BLDRED}KEYMAP $(gettext 'Не определен в файле ')${CONFFILE}${TXTRST}" >&2 && exit 2 [ -f "${KEYMAP}" ] && echo -e "${BLDRED} KEYMAP=${KEYMAP} $(gettext 'Параметр является файлом!!!')${TXTRST}" >&2 && exit 3 KEYMAP_FILE_NEW=$(conv_alt_sh "${KEYMAP}") loadkeys "${KEYMAP_FILE_NEW}" 2> /dev/null sed -i "s/KEYMAP=${KEYMAP}/KEYMAP='$(echo "${KEYMAP_FILE_NEW}" | sed 's/\//\\\//g')'/" "${CONFFILE}" [ ! "${KEYMAP_TOGGLE}" ] && echo -e "${BLDYLW}KEYMAP_TOGGLE $(gettext 'Не определен в файле ')${CONFFILE}${TXTRST}" >&2 && exit [ -f "${KEYMAP_TOGGLE}" ] && echo -e "${BLDRED} KEYMAP_TOGGLE=${KEYMAP_TOGGLE} $(gettext 'Параметр является файлом!!!')${TXTRST}" >&2 && exit 3 KEYMAP_FILE_NEW=$(conv_alt_sh "${KEYMAP_TOGGLE}") loadkeys "${KEYMAP_FILE_NEW}" 2> /dev/null sed -i "s/KEYMAP_TOGGLE=${KEYMAP}/KEYMAP_TOGGLE='$(echo "${KEYMAP_FILE_NEW}" | sed 's/\//\\\//g')'/" "${CONFFILE}"
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
lampslave |
|
Темы:
32
Сообщения:
4796
Участник с: 05 июля 2011
|
А пораньше на пару лет нельзя было такое написать? Глядишь, я бы только в консоли и сидел :) |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
lampslaveДаже не знаю почему раньше не написали скрипт для смены комбинаций переключения консольных раскладок. Там же все просто. Вообще есть идея доделать скрипт что бы он на выбор мог менять комбинации. но что то лень. )))
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
xSPiRiTx |
|
Темы:
110
Сообщения:
574
Участник с: 21 февраля 2009
|
о! вот это за ништяк спасибо! еще бы инструкцию что с ним делать для таких лохов как я и было бы ваще шикарно |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
Да тут все просто. Нужно запустить скрипт с правами рута и все. Скрипт прочитает из /etc/vconsole.conf какая раскладка сейчас установлена, найдет ее тут /usr/share/kbd/keymaps/, скопирует в /etc/kbd/keymaps/, удалит из копии текущую комбинацию и добавит комбинацию Alt+Shift, потом пропишет новую раскладку в /etc/vconsole.conf. И после перезагрузки будет использоваться новая раскладка с комбинацией Alt+Shift. В приципе должно работать с любой раскладкой, но проверялось только на раскладке “ru” Кто потестирует скрипт на других раскладках буду очень признателен.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |