stumpwm-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[STUMP] roblem with changing Escape key to Windows key (found problem, n


From: Bill Clementson
Subject: [STUMP] roblem with changing Escape key to Windows key (found problem, need advice on fix)
Date: Fri, 16 May 2008 13:10:09 -0700

Hi all,

I had the following lines in my .stumpwmrc file to change the Stumpwm
escape key to the Windows key:

(run-shell-command "xmodmap -e \'keycode 115 = F20\'" t)
(set-prefix-key (kbd "F20"))

This used to work on the git version of Stumpwm that I downloaded on
April 11. However, after building yesterday's git version of Stumpwm,
I got the following error on the "set-prefix-key" line:

The value NIL is not of type (UNSIGNED-BYTE 8).
0: (SB-DEBUG::MAP-BACKTRACE #<CLOSURE (LAMBDA #) {B4D45FD}>)[:EXTERNAL]
1: (SB-DEBUG:BACKTRACE 100 #<SB-IMPL::STRING-OUTPUT-STREAM {B4D45A9}>)
2: (BACKTRACE-STRING)
3: ((LAMBDA (C)) #<TYPE-ERROR {B4D4301}>)
4: (SIGNAL #<TYPE-ERROR {B4D4301}>)[:EXTERNAL]
5: (ERROR TYPE-ERROR)[:EXTERNAL]
6: (SB-KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER
    #<unavailable argument>
    #.(SB-SYS:INT-SAP #XB79F7320)
    #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #XB79F700C :TYPE (*
                                                            (SB-ALIEN:STRUCT

SB-VM::OS-CONTEXT-T-STRUCT))>
    (462 14))
7: (SB-KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER
    #<unavailable argument>
    #.(SB-SYS:INT-SAP #XB79F7320)
    #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #XB79F700C :TYPE (*
                                                            (SB-ALIEN:STRUCT

SB-VM::OS-CONTEXT-T-STRUCT))>
    (462 14))[:EXTERNAL]
8: (SB-KERNEL:INTERNAL-ERROR
    #.(SB-SYS:INT-SAP #XB79F700C)
    #<unavailable argument>)
9: ("foreign function: #x806170C")
10: ("foreign function: #x80514AC")
11: ("foreign function: #x8055567")
12: ("foreign function: #x8055732")
13: (XLIB:KEYCODE->KEYSYM
     #<XLIB:DISPLAY :0 (The X.Org Foundation R10300000)>
     NIL
     0)[:EXTERNAL]
14: (XWIN-GRAB-KEYS #<XLIB:WINDOW :0 A000BA>)
15: (SYNC-KEYS)
16: (SET-PREFIX-KEY #<unavailable argument>)
17: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SET-PREFIX-KEY (KBD "F20")) #<NULL-LEXENV>)
18: ((LAMBDA ()))
19: ((LAMBDA (SWANK-BACKEND::FN)) #<CLOSURE (LAMBDA #) {B4D0CAD}>)
20: (SWANK::CALL-WITH-BUFFER-SYNTAX #<CLOSURE (LAMBDA #) {B4D0CAD}>)
21: (SB-INT:SIMPLE-EVAL-IN-LEXENV
     (SWANK:INTERACTIVE-EVAL "(set-prefix-key (kbd \"F20\"))")
     #<NULL-LEXENV>)
22: ((LAMBDA ()))
23: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN))
     #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK>
     #<CLOSURE (LAMBDA #) {B4D0605}>)
24: (SWANK::PROCESS-AVAILABLE-INPUT
     #<SB-SYS:FD-STREAM for "a socket" {B68FFA1}>
     #<FUNCTION SWANK::READ-FROM-EMACS>)
25: ((LAMBDA (SWANK-BACKEND::_)) #<unused argument>)
26: (SB-IMPL::SUB-SUB-SERVE-EVENT 0 0)
27: (SB-IMPL::SUB-SERVE-EVENT 0 0 NIL)
28: (SB-SYS:SERVE-ALL-EVENTS 1)
29: (SB-EXT:PROCESS-WAIT #<SB-IMPL::PROCESS :EXITED 0> NIL)
30: (SB-EXT:RUN-PROGRAM "/bin/sh" ("-c" "xmodmap -e 'keycode 115 =
F20'"))[:EXTERNAL]
31: (RUN-PROG-COLLECT-OUTPUT "/bin/sh")[:EXTERNAL]
32: (SB-INT:SIMPLE-EVAL-IN-LEXENV
     (RUN-SHELL-COMMAND "xmodmap -e 'keycode 115 = F20'" T)
     #<NULL-LEXENV>)
33: ((LAMBDA ()))
34: ((LAMBDA (SWANK-BACKEND::FN)) #<CLOSURE (LAMBDA #) {B444EBD}>)
35: (SWANK::CALL-WITH-BUFFER-SYNTAX #<CLOSURE (LAMBDA #) {B444EBD}>)
36: (SB-INT:SIMPLE-EVAL-IN-LEXENV
     (SWANK:INTERACTIVE-EVAL
      "(run-shell-command \"xmodmap -e \\'keycode 115 = F20\\'\" t)")
     #<NULL-LEXENV>)
37: ((LAMBDA ()))
38: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN))
     #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK>
     #<CLOSURE (LAMBDA #) {B444815}>)
39: ((LAMBDA ()))
40: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN))
     #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK>
     #<FUNCTION (LAMBDA #) {C0382C5}>)
41: (SWANK::CALL-WITH-REDIRECTED-IO
     #<SWANK::CONNECTION {B690891}>
     #<CLOSURE (LAMBDA #) {B443035}>)
42: (SWANK::CALL-WITH-CONNECTION
     #<SWANK::CONNECTION {B690891}>
     #<FUNCTION (LAMBDA #) {C0382C5}>)
43: (SWANK::HANDLE-REQUEST #<SWANK::CONNECTION {B690891}>)
44: (SWANK::PROCESS-AVAILABLE-INPUT
     #<SB-SYS:FD-STREAM for "a socket" {B68FFA1}>
     #<CLOSURE (LAMBDA #) {B443025}>)
45: ((FLET SWANK::HANDLER))
46: ((LAMBDA (SWANK-BACKEND::_)) #<unused argument>)
47: (SB-IMPL::SUB-SUB-SERVE-EVENT NIL NIL)
48: (SB-IMPL::SUB-SERVE-EVENT NIL NIL NIL)
49: (SB-SYS:WAIT-UNTIL-FD-USABLE 4 :INPUT NIL)
50: (XLIB::BUFFER-INPUT-WAIT-DEFAULT
     #<XLIB:DISPLAY :0 (The X.Org Foundation R10300000)>
     NIL)
51: (XLIB::BUFFER-INPUT-WAIT
     #<XLIB:DISPLAY :0 (The X.Org Foundation R10300000)>
     NIL)
52: (XLIB::READ-INPUT
     #<XLIB:DISPLAY :0 (The X.Org Foundation R10300000)>
     NIL
     T
     #<FUNCTION (LAMBDA #) {A79FC95}>)[:EXTERNAL]
53: (XLIB::WAIT-FOR-EVENT
     #<XLIB:DISPLAY :0 (The X.Org Foundation R10300000)>
     NIL
     T)
54: (XLIB::EVENT-LOOP-STEP-BEFORE
     #<XLIB:DISPLAY :0 (The X.Org Foundation R10300000)>
     NIL
     T
     #:G1892)
55: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK))
56: (XLIB:PROCESS-EVENT #<XLIB:DISPLAY :0 (The X.Org Foundation
R10300000)>)[:EXTERNAL]
57: (STUMPWM-INTERNAL-LOOP)
58: (STUMPWM-INTERNAL-LOOP)[:EXTERNAL]
59: (STUMPWM-INTERNAL ":0")
60: (STUMPWM ":0")
61: ((LAMBDA ()))
62: ((LABELS SB-IMPL::RESTART-LISP))

I tracked the problem down to the call to xlib:keycode->keysym in
xwin-grab-keys (in window.lisp). The first "when" was added after the
April 11 code. To eliminate the error, I commented out the new code as
follows:

(defun xwin-grab-keys (win)
  (labels ((grabit (w key)
             (let* ((code (xlib:keysym->keycodes *display* (key-keysym key))))
               ;; Some keysyms, such as upper case letters, need the
               ;; shift modifier to be set in order to grab properly.
;;                (when (and (not (eql (key-keysym key)
(xlib:keycode->keysym *display* code 0)))
;;                           (eql (key-keysym key)
(xlib:keycode->keysym *display* code 1)))
;;                  ;; don't butcher the caller's structure
;;                  (setf key (copy-structure key)
;;                        (key-shift key) t))
               ;; some keysyms aren't mapped to keycodes so just ignore them.
               (when code

I also had to change my .stumpwmrc code from:

(run-shell-command "xmodmap -e \'keycode 115 = F20\'" t)
(set-prefix-key (kbd "F20"))

to:

(run-shell-command "xmodmap -e \'keycode 115 = F20\'" t)
(set-prefix-key (kbd "L10"))

I'm not sure who made the changes to xwin-grab-keys; however, that
particular change should probably be fixed. As I'm not sure what the
original rationale for the change was, I'm not sure what the correct
fix should be.

--
Bill Clementson




reply via email to

[Prev in Thread] Current Thread [Next in Thread]