Це цікавий виклик, і я погоджуюся з тим, що xinput, здається, не ідеально підходить. Я провів деякий час, обмінюючись здібностями xmodmap, і настільки розчаровуюче наблизився до досягнення того, що ти хочеш зробити ..., не маючи насправді доїхати туди.
Використовуючи xmodmap, можна призначити батьківський ліворуч як зміщений клавішний символ на клавіші зсуву ліворуч:
xmodmap -e 'keysym Shift_L = Shift_L parenleft Shift_L parenleft'
які сорти працюють, принаймні, під час тестування на моїй коробці Fedora 17, але не задовільно. Я виявив, що при такому картографуванні клавіша перемикання все ще функціонувала нормально і не створювала помилкових паронів, але (розчаровуючи) вона також не створювала надійних лівих паронів. З будь-якої причини ключ не здається надійно модифікувати себе , що порушує його зміщене призначення ... спочатку. З будь-якої причини, натискання лівої зміни кілька разів поспіль, в кінцевому підсумку призведе до того, що вона почне виробляти ліві парени, але лише після четвертої чи п’ятої преси.
Одне поведінку я зробив повідомлення, однак, що ви могли б бути в змозі працювати з як «досить близько» аналог: я виявив , що після відображення parenleft і parenright на Shift_L і Shift_R, я міг надійно ввести дужки шляхом «прокатки» по обидві клавіші зсуву - іншими словами, за допомогою цього відображення:
xmodmap -e 'keysym Shift_L = Shift_L parenleft Shift_L parenleft'
xmodmap -e 'keysym Shift_R = Shift_R parenright Shift_R parenright'
Якщо натиснути Shift_L, а потім Shift_R, то випустити обидва, виведе право-батьківське або ліве-батьківське в іншому напрямку. (Звичайно, батьківські відображення можна було змінити; я не міг повністю визначити, який спосіб відчував себе більш "природним".)
Це було так близько, як я прийшов до досягнення точної поведінки, яку ви шукаєте; не здається, що це можливо, використовуючи лише xmodmap.
Я був напівпереконаний, що це просто неможливо, період, але тоді я зрозумів, що є принаймні одна клавіша, яка функціонує саме так, як ви описуєте: клавіша Super ("Windows"). Під Gnome Shell це клавіша модифікатора (mod4), яка створює інший ефект (спрацьовуючи Огляд), коли натискається окремо. Тож, принаймні теоретично, можливо здійснити бажане перевантаження клавіш таким же чином.
... Але я абсолютно не маю уявлення, як це було б зробити, або наскільки інвазивно було б зануритися в необхідну обробку кожного разу, коли ви натискаєте клавішу Shift. :-)