[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/xelb ae7da13 40/42: Add support for XF86 keysyms
From: |
Chris Feng |
Subject: |
[elpa] externals/xelb ae7da13 40/42: Add support for XF86 keysyms |
Date: |
Thu, 17 Sep 2015 23:16:52 +0000 |
branch: externals/xelb
commit ae7da13819420dbebf17b2635cc43c38cf269627
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>
Add support for XF86 keysyms
* xcb-keysyms.el: new vector xcb:keysyms:-xf86-keys
* xcb-keysyms.el (xcb:keysyms:event->keysym, xcb:keysyms:keysym->event): add
support for XF86 keysyms
---
xcb-keysyms.el | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 68 insertions(+), 5 deletions(-)
diff --git a/xcb-keysyms.el b/xcb-keysyms.el
index 91b293b..a4c795f 100644
--- a/xcb-keysyms.el
+++ b/xcb-keysyms.el
@@ -240,6 +240,63 @@ SHIFT LOCK is ignored."
,@(make-list 15 nil) delete]
"Emacs event representations of X function keys (keysym #xff00 to #xffff).")
+;; This list is adapted from 'XF86keysym.h' in X source.
+;; FIXME: We've intentionally left out keysyms outside the range 0x1008FF00 ~
+;; 0x1008FFFF.
+;; REVIEW: Could anybody verify this list?
+(defconst xcb:keysyms:-xf86-keys
+ `[ ;#x1008ff00 - #x1008ff0f
+ nil XF86ModeLock XF86MonBrightnessUp XF86MonBrightnessDown
+ XF86KbdLightOnOff XF86KbdBrightnessUp XF86KbdBrightnessDown
+ ,@(make-list 9 0)
+ ;#x1008ff10 - #x1008ff1f
+ XF86Standby XF86AudioLowerVolume XF86AudioMute XF86AudioRaiseVolume
+ XF86AudioPlay XF86AudioStop XF86AudioPrev XF86AudioNext XF86HomePage
+ XF86Mail XF86Start XF86Search XF86AudioRecord XF86Calculator XF86Memo
+ XF86ToDoList
+ ;#x1008ff20 - #x1008ff2f
+ XF86Calendar XF86PowerDown XF86ContrastAdjust XF86RockerUp
+ XF86RockerDown XF86RockerEnter XF86Back XF86Forward XF86Stop
+ XF86Refresh XF86PowerOff XF86WakeUp XF86Eject XF86ScreenSaver XF86WWW
+ XF86Sleep
+ ;#x1008ff30 - #x1008ff3f
+ XF86Favorites XF86AudioPause XF86AudioMedia XF86MyComputer
+ XF86VendorHome XF86LightBulb XF86Shop XF86History XF86OpenURL
+ XF86AddFavorite XF86HotLinks XF86BrightnessAdjust XF86Finance
+ XF86Community XF86AudioRewind XF86BackForward
+ ;#x1008ff40 - #x1008ff4f
+ XF86Launch0 XF86Launch1 XF86Launch2 XF86Launch3 XF86Launch4 XF86Launch5
+ XF86Launch6 XF86Launch7 XF86Launch8 XF86Launch9 XF86LaunchA XF86LaunchB
+ XF86LaunchC XF86LaunchD XF86LaunchE XF86LaunchF
+ ;#x1008ff50 - #x1008ff5f
+ XF86ApplicationLeft XF86ApplicationRight XF86Book XF86CD XF86Calculater
+ XF86Clear XF86Close XF86Copy XF86Cut XF86Display XF86DOS XF86Documents
+ XF86Excel XF86Explorer XF86Game XF86Go
+ ;#x1008ff60 - #x1008ff6f
+ XF86iTouch XF86LogOff XF86Market XF86Meeting nil XF86MenuKB XF86MenuPB
+ XF86MySites XF86New XF86News XF86OfficeHome XF86Open XF86Option
+ XF86Paste XF86Phone nil
+ ;#x1008ff70 - #x1008ff7f
+ XF86Q nil XF86Reply XF86Reload XF86RotateWindows XF86RotationPB
+ XF86RotationKB XF86Save XF86ScrollUp XF86ScrollDown XF86ScrollClick
+ XF86Send XF86Spell XF86SplitScreen XF86Support XF86TaskPane
+ ;#x1008ff80 - #x1008ff8f
+ XF86Terminal XF86Tools XF86Travel nil XF86UserPB XF86User1KB
+ XF86User2KB XF86Video XF86WheelButton XF86Word XF86Xfer XF86ZoomIn
+ XF86ZoomOut XF86Away XF86Messenger XF86WebCam
+ ;#x1008ff90 - #x1008ff9f
+ XF86MailForward XF86Pictures XF86Music XF86Battery XF86Bluetooth
+ XF86WLAN XF86UWB XF86AudioForward XF86AudioRepeat XF86AudioRandomPlay
+ XF86Subtitle XF86AudioCycleTrack XF86CycleAngle XF86FrameBack
+ XF86FrameForward XF86Time
+ ;#x1008ffa0 - #x1008ffaf
+ XF86Select XF86View XF86TopMenu XF86Red XF86Green XF86Yellow XF86Blue
+ XF86Suspend XF86Hibernate XF86TouchpadToggle ,@(make-list 6 0)
+ ;#x1008ffb0 - #x1008ffbf
+ XF86TouchpadOn XF86TouchpadOff XF86AudioMicMute ,@(make-list 13 0)
+ ;everything rest
+ ,@(make-list 64 0)])
+
(defun xcb:keysyms:event->keysym (event)
"Translate Emacs key event EVENT to X Keysym.
@@ -255,15 +312,19 @@ This function returns nil when it fails to convert an
event."
(`mouse-3 xcb:ButtonIndex:3)
(`mouse-4 xcb:ButtonIndex:4)
(`mouse-5 xcb:ButtonIndex:5)
- ;; Function keys
- (_ (cl-position event xcb:keysyms:-function-keys))))
+ (_ (if (setq keysym (cl-position event
+ xcb:keysyms:-function-keys))
+ ;; Function keys
+ (logior keysym #xff00)
+ (if (setq keysym (cl-position event
+ xcb:keysyms:-xf86-keys))
+ ;; XF86 keys
+ (logior keysym #x1008ff00))))))
(if (and (<= #x20 event) (>= #xff event)) ;Latin-1
(setq keysym event)
(when (and (<= #x100 event) (>= #x10ffff event)) ;Unicode
(setq keysym (+ #x1000000 event)))))
(when keysym
- (when (and (not (integerp event)) (< 5 keysym))
- (setq keysym (logior keysym #xff00)))
`(,keysym
;; state for KeyPress event
,(apply #'logior
@@ -292,7 +353,9 @@ this function will also return symbols for pure modifiers
keys."
((and (<= #x1000100 keysym) (>= #x110ffff keysym))
(- keysym #x1000000))
((and (<= 1 keysym) (>= 5 keysym)) ;ButtonPress assuemd
- (intern-soft (format "down-mouse-%d" keysym))))))
+ (intern-soft (format "down-mouse-%d" keysym)))
+ ((and (<= #x1008ff00) (>= #x1008ffff))
+ (aref xcb:keysyms:-xf86-keys (logand keysym #xff))))))
(when (and (not allow-modifiers)
(memq event
'(lshift* rshift* lcontrol* rcontrol*
- [elpa] externals/xelb ad845df 28/42: Merge pull request #4 from pipcet/data-offset, (continued)
- [elpa] externals/xelb ad845df 28/42: Merge pull request #4 from pipcet/data-offset, Chris Feng, 2015/09/17
- [elpa] externals/xelb 1ab5bb9 29/42: Fix a typo in 32-bit version `xcb:-unpack-u4-lsb`, Chris Feng, 2015/09/17
- [elpa] externals/xelb 76ab2fb 25/42: Improve performance when unmarshalling long vectors., Chris Feng, 2015/09/17
- [elpa] externals/xelb f655ec9 27/42: Merge pull request #2 from pipcet/data-offset, Chris Feng, 2015/09/17
- [elpa] externals/xelb 4621160 30/42: Move generated libraries to lib/, Chris Feng, 2015/09/17
- [elpa] externals/xelb 846f4c0 33/42: Fix race conditions, Chris Feng, 2015/09/17
- [elpa] externals/xelb 81c699f 37/42: Protect process-send-string, Chris Feng, 2015/09/17
- [elpa] externals/xelb 41cca58 35/42: Fix compiling issues, Chris Feng, 2015/09/17
- [elpa] externals/xelb 8215991 39/42: Add a missing function key, Chris Feng, 2015/09/17
- [elpa] externals/xelb f5a7ca9 42/42: Minor fix, Chris Feng, 2015/09/17
- [elpa] externals/xelb ae7da13 40/42: Add support for XF86 keysyms,
Chris Feng <=
- [elpa] externals/xelb b8f3029 36/42: Flatten directory structure, Chris Feng, 2015/09/17
- [elpa] externals/xelb 5a74daa 32/42: Generate implicit paddings at compile time, Chris Feng, 2015/09/17
- [elpa] externals/xelb 9a0612c 41/42: Fix remaining compile warnings, Chris Feng, 2015/09/17
- [elpa] externals/xelb 2edbaa0 38/42: Code cleanups, Chris Feng, 2015/09/17
- [elpa] externals/xelb c99266a 31/42: Merge xelb-util into this repo, Chris Feng, 2015/09/17
- [elpa] externals/xelb 16e774c 02/42: First commit, Chris Feng, 2015/09/17
- [elpa] externals/xelb ab96086 34/42: Prepare for GNU ELPA release, Chris Feng, 2015/09/17
- [elpa] externals/xelb 1f9470c 01/42: First commit, Chris Feng, 2015/09/17