Bug 17288 - Нет возможности вызвать xmodmap после fixkeyboard
Summary: Нет возможности вызвать xmodmap после fixkeyboard
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: xinitrc (show other bugs)
Version: unstable
Hardware: x86 Linux
: P2 normal
Assignee: placeholder@altlinux.org
QA Contact: qa-4.1@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-09-23 02:28 MSD by Yuri Bushmelev
Modified: 2016-10-19 23:21 MSK (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yuri Bushmelev 2008-09-23 02:28:16 MSD
В /etc/X11/Xsession все вызовы пользовательских скриптов выполняются до fixkeyboard. При необходимости выполнить вызов xmodmap (и при использовании XKB) нет места, куда его можно было бы прописать рядовому пользователю. Связано это с тем, что последующий запуск fixkeyboard сбросит изменения xmodmap, касающиеся настроек клавиатуры. Подобный вызов xmodmap может потребоваться, например, при переназначении мультимедийных клавиш для соответствия кодам XF86*. Я использую xmodmap, чтобы включить ввод знаков препинания в русской раскладке без необходимости нажимать Shift.
Comment 1 Yuri Bushmelev 2008-09-23 02:30:20 MSD
Хорошо бы в branch 4.1 исправить...
Comment 2 Yuri Bushmelev 2008-09-23 02:36:58 MSD
Решение-то я и забыл предложить :)
Собственно, нужно переместить вызов fixkeyboard выше, до .xsession.d/* (и, может быть, .xprofile).
Либо можно убрать проверку на включенный XKB в fixkeyboard и разрешить вызов пользовательского .Xmodmap (если это потенциально не потянет за собой другие проблемы).
Comment 3 Ivan Zakharyaschev 2016-10-19 23:21:20 MSK
Исправлено в 2.4.30 (но не в 4.1, где 2.4.29) -- http://git.altlinux.org/gears/x/xinitrc.git?p=xinitrc.git;a=commitdiff;h=2fa7ccc9522d8d2775418a0392329f3f044dc6bc :

author	Dmitry V. Levin <ldv@altlinux.org>	
Thu, 6 Nov 2008 23:35:07 +0000 (23:35 +0000)
committer	Dmitry V. Levin <ldv@altlinux.org>	
Thu, 6 Nov 2008 23:35:07 +0000 (23:35 +0000)
commit	2fa7ccc9522d8d2775418a0392329f3f044dc6bc
fixkeyboard: Run xmodmap also in case when XKEYBOARD extension is enabled

Теперь так:


if xdpyinfo |fgrep -qs XKEYBOARD; then
	[ -s "$sysxkbmap" ] && setxkbmap -option '' `cat "$sysxkbmap"`
	[ -s "$userxkbmap" ] && setxkbmap -option '' `cat "$userxkbmap"`
fi

[ -s $sysmodmap ] && xmodmap "$sysmodmap"
[ -s $usermodmap ] && xmodmap "$usermodmap"