Đó là một thử thách thú vị và tôi đồng ý một điều rằng xinput dường như không hoàn toàn phù hợp. Tôi đã dành một chút thời gian loay hoay với các khả năng của xmodmap, và đã đến rất gần để đạt được những gì bạn muốn làm ... mà không thực sự quản lý để đạt được điều đó.
Sử dụng xmodmap, có thể gán parenleft dưới dạng một keyymbol được dịch chuyển trên phím shift trái:
xmodmap -e 'keysym Shift_L = Shift_L parenleft Shift_L parenleft'
mà sorta công trình, ít nhất là trong thử nghiệm trên hộp Fedora 17 của tôi, nhưng không phải trong một cách thỏa đáng. Tôi thấy rằng, với ánh xạ này, phím shift vẫn hoạt động bình thường và không hiển thị bất kỳ dấu hiệu giả nào, nhưng (bực bội) nó cũng không tạo ra các dấu ngang trái một cách đáng tin cậy. Vì bất kỳ lý do gì, khóa không xuất hiện để tự sửa đổi một cách đáng tin cậy , điều này phá vỡ sự phân công đã thay đổi của nó ... ban đầu. Vì bất kỳ lý do gì, việc nhấn sang trái một vài lần liên tiếp cuối cùng sẽ khiến nó bắt đầu tạo ra các cú đánh trái, nhưng chỉ sau lần nhấn thứ tư hoặc thứ năm.
Tuy nhiên, một hành vi tôi đã nhận thấy rằng bạn có thể làm việc với tư cách tương tự "gần đủ": Tôi thấy rằng sau khi ánh xạ parenleft và parenright vào Shift_L và Shift_R, tôi có thể gõ parens một cách đáng tin cậy bằng cách "lăn" qua cả hai phím shift - nói cách khác, với ánh xạ này:
xmodmap -e 'keysym Shift_L = Shift_L parenleft Shift_L parenleft'
xmodmap -e 'keysym Shift_R = Shift_R parenright Shift_R parenright'
nhấn Shift_L theo sau là Shift_R, sau đó giải phóng cả hai, sẽ tạo ra một paren phải hoặc một paren trái theo hướng khác. (Tất nhiên, ánh xạ paren có thể bị đảo ngược; tôi hoàn toàn không thể quyết định cách nào cảm thấy "tự nhiên" hơn.)
Đó là gần như tôi đã đạt được hành vi chính xác mà bạn đang tìm kiếm; có vẻ như không thể sử dụng xmodmap một mình.
Tôi đã bị thuyết phục một nửa rằng đơn giản là không thể, nhưng sau đó tôi nhận ra rằng có ít nhất một phím có chức năng chính xác như bạn mô tả: Phím Super ("Windows"). Trong Gnome Shell, đó là một phím bổ trợ (mod4), tạo ra hiệu ứng khác (kích hoạt Tổng quan) khi nhấn một mình. Vì vậy, ít nhất là về mặt lý thuyết, có thể thực hiện quá tải phím shift mong muốn của bạn theo cách tương tự.
... Nhưng, tôi hoàn toàn không biết làm thế nào điều đó sẽ được thực hiện hoặc xâm lấn đến mức nào để bị sa lầy vào quá trình xử lý cần thiết mỗi khi bạn nhấn phím Shift. :-)