You are not logged in.
This is really small and simple tool that runs in the background and lets you mark any window using any letter (a-z) and then jump back to it whenever you want. (Even if you're on a different desktop.)
Right now, all you can do is assign a mark to a window and jump to it. I'll probably add another option that lets you bring a window to the current desktop.
For example, while in Gmail press Super+m then hit 'g'. Browse to some other desktop, and when you want to check your mail press Super+' and then hit 'g'. So the idea is to have two keybindings; one for marking and one for jumping. After you've initiated one of the keybindings, window-marker expects one more letter to complete the command.
The keybindings can be set on the command line.
usage: window-marker [-h] [-m KEYBINDING] [-g KEYBINDING]
Vim-like marks for windows.
optional arguments:
-h, --help show this help message and exit
-m KEYBINDING, --mark KEYBINDING
keybinding to add a mark (default: Mod4-m)
-g KEYBINDING, --goto KEYBINDING
keybinding to goto a mark (default Mod4-apostrophe)Using window-marker is exactly like using marks in vim. Namely, by pressing
the keybinding for "mark", window-marker then listens for one more letter
(a-z) to be entered. Whichever letter is entered will now be associated with
the active window.If you now want to go back to that window (even if you're
on a different desktop), simply press the keybinding for "goto" and then enter
the letter you used to mark the window.To set your own keybinding, please
consult /usr/include/X11/keysymdef.h and the output of `xmodmap`. The `xev`
program may also be useful.
Last edited by BurntSushi (2011-08-18 04:59:01)
Education is favorable to liberty. Freedom can exist only in a society of knowledge. Without learning, men are incapable of knowing their rights, and where learning is confined to a few people, liberty can be neither equal nor universal.
Tu ne cede malis sed contra audentior ito
Offline
I wanted to give it a try, installed it from the AUR. What I get is
% window-marker
Traceback (most recent call last):
File "/usr/bin/window-marker", line 111, in <module>
if not keysym.grab_key(conn, root, mods, kc):
File "/usr/lib/python2.7/site-packages/xpybutil/keysym.py", line 153, in grab_key
xcb.xproto.GrabMode.Async).check()
File "/usr/lib/python2.7/site-packages/xcb/xproto.py", line 1900, in GrabKeyChecked
buf.write(pack('xB2xIHBBB3x', owner_events, grab_window, modifiers, key, pointer_mode, keyboard_mode))
struct.error: cannot convert argument to integer
Offline
@Army -
Could you post your output of the following command?
xmodmap -pk
It'll be long, so make sure to wrap it in [ code ] tags :-) Thanks!
Education is favorable to liberty. Freedom can exist only in a society of knowledge. Without learning, men are incapable of knowing their rights, and where learning is confined to a few people, liberty can be neither equal nor universal.
Tu ne cede malis sed contra audentior ito
Offline
It'll be long, so make sure to wrap it in [ code ] tags :-) Thanks!
Hey, I never missed using them!
There are 7 KeySyms per KeyCode; KeyCodes range from 8 to 255.
KeyCode Keysym (Keysym) ...
Value Value (Name) ...
8
9 0xff1b (Escape) 0x0000 (NoSymbol) 0xff1b (Escape)
10 0x0031 (1) 0x0021 (exclam) 0x0031 (1) 0x0021 (exclam) 0x00b9 (onesuperior) 0x00a1 (exclamdown) 0x00b9 (onesuperior)
11 0x0032 (2) 0x0022 (quotedbl) 0x0032 (2) 0x0022 (quotedbl) 0x00b2 (twosuperior) 0x0ac3 (oneeighth) 0x00b2 (twosuperior)
12 0x0033 (3) 0x00a7 (section) 0x0033 (3) 0x00a7 (section) 0x00b3 (threesuperior) 0x00a3 (sterling) 0x00b3 (threesuperior)
13 0x0034 (4) 0x0024 (dollar) 0x0034 (4) 0x0024 (dollar) 0x00bc (onequarter) 0x00a4 (currency) 0x00bc (onequarter)
14 0x0035 (5) 0x0025 (percent) 0x0035 (5) 0x0025 (percent) 0x00bd (onehalf) 0x0ac4 (threeeighths) 0x00bd (onehalf)
15 0x0036 (6) 0x0026 (ampersand) 0x0036 (6) 0x0026 (ampersand) 0x00ac (notsign) 0x0ac5 (fiveeighths) 0x00ac (notsign)
16 0x0037 (7) 0x002f (slash) 0x0037 (7) 0x002f (slash) 0x007b (braceleft) 0x0ac6 (seveneighths) 0x007b (braceleft)
17 0x0038 (8) 0x0028 (parenleft) 0x0038 (8) 0x0028 (parenleft) 0x005b (bracketleft) 0x0ac9 (trademark) 0x005b (bracketleft)
18 0x0039 (9) 0x0029 (parenright) 0x0039 (9) 0x0029 (parenright) 0x005d (bracketright) 0x00b1 (plusminus) 0x005d (bracketright)
19 0x0030 (0) 0x003d (equal) 0x0030 (0) 0x003d (equal) 0x007d (braceright) 0x00b0 (degree) 0x007d (braceright)
20 0x00df (ssharp) 0x003f (question) 0x00df (ssharp) 0x003f (question) 0x005c (backslash) 0x00bf (questiondown) 0x1001e9e (U1E9E)
21 0xfe51 (dead_acute) 0xfe50 (dead_grave) 0xfe51 (dead_acute) 0xfe50 (dead_grave) 0xfe5b (dead_cedilla) 0xfe5c (dead_ogonek) 0xfe5b (dead_cedilla)
22 0xff08 (BackSpace) 0x0000 (NoSymbol) 0xff08 (BackSpace)
23 0xff09 (Tab) 0xfe20 (ISO_Left_Tab) 0xff09 (Tab) 0xfe20 (ISO_Left_Tab)
24 0x0071 (q) 0x0051 (Q) 0x0071 (q) 0x0051 (Q) 0x0040 (at) 0x07d9 (Greek_OMEGA) 0x0040 (at)
25 0x0077 (w) 0x0057 (W) 0x0077 (w) 0x0057 (W) 0x01b3 (lstroke) 0x01a3 (Lstroke) 0x01b3 (lstroke)
26 0x0065 (e) 0x0045 (E) 0x0065 (e) 0x0045 (E) 0x20ac (EuroSign) 0x20ac (EuroSign) 0x20ac (EuroSign)
27 0x0072 (r) 0x0052 (R) 0x0072 (r) 0x0052 (R) 0x00b6 (paragraph) 0x00ae (registered) 0x00b6 (paragraph)
28 0x0074 (t) 0x0054 (T) 0x0074 (t) 0x0054 (T) 0x03bc (tslash) 0x03ac (Tslash) 0x03bc (tslash)
29 0x007a (z) 0x005a (Z) 0x007a (z) 0x005a (Z) 0x08fb (leftarrow) 0x00a5 (yen) 0x08fb (leftarrow)
30 0x0075 (u) 0x0055 (U) 0x0075 (u) 0x0055 (U) 0x08fe (downarrow) 0x08fc (uparrow) 0x08fe (downarrow)
31 0x0069 (i) 0x0049 (I) 0x0069 (i) 0x0049 (I) 0x08fd (rightarrow) 0x02b9 (idotless) 0x08fd (rightarrow)
32 0x006f (o) 0x004f (O) 0x006f (o) 0x004f (O) 0x00f8 (oslash) 0x00d8 (Oslash) 0x00f8 (oslash)
33 0x0070 (p) 0x0050 (P) 0x0070 (p) 0x0050 (P) 0x00fe (thorn) 0x00de (THORN) 0x00fe (thorn)
34 0x00fc (udiaeresis) 0x00dc (Udiaeresis) 0x00fc (udiaeresis) 0x00dc (Udiaeresis) 0xfe57 (dead_diaeresis) 0xfe58 (dead_abovering) 0xfe57 (dead_diaeresis)
35 0x002b (plus) 0x002a (asterisk) 0x002b (plus) 0x002a (asterisk) 0xfe53 (dead_tilde) 0xfe54 (dead_macron) 0xfe53 (dead_tilde)
36 0xff0d (Return) 0x0000 (NoSymbol) 0xff0d (Return)
37 0xffe3 (Control_L) 0x0000 (NoSymbol) 0xffe3 (Control_L)
38 0x0061 (a) 0x0041 (A) 0x0061 (a) 0x0041 (A) 0x00e6 (ae) 0x00c6 (AE) 0x00e6 (ae)
39 0x0073 (s) 0x0053 (S) 0x0073 (s) 0x0053 (S) 0x100017f (U017F) 0x1001e9e (U1E9E) 0x100017f (U017F)
40 0x0064 (d) 0x0044 (D) 0x0064 (d) 0x0044 (D) 0x00f0 (eth) 0x00d0 (ETH) 0x00f0 (eth)
41 0x0066 (f) 0x0046 (F) 0x0066 (f) 0x0046 (F) 0x01f0 (dstroke) 0x00aa (ordfeminine) 0x01f0 (dstroke)
42 0x0067 (g) 0x0047 (G) 0x0067 (g) 0x0047 (G) 0x03bf (eng) 0x03bd (ENG) 0x03bf (eng)
43 0x0068 (h) 0x0048 (H) 0x0068 (h) 0x0048 (H) 0x02b1 (hstroke) 0x02a1 (Hstroke) 0x02b1 (hstroke)
44 0x006a (j) 0x004a (J) 0x006a (j) 0x004a (J) 0xfe60 (dead_belowdot) 0xfe56 (dead_abovedot) 0xfe60 (dead_belowdot)
45 0x006b (k) 0x004b (K) 0x006b (k) 0x004b (K) 0x03a2 (kra) 0x0026 (ampersand) 0x03a2 (kra)
46 0x006c (l) 0x004c (L) 0x006c (l) 0x004c (L) 0x01b3 (lstroke) 0x01a3 (Lstroke) 0x01b3 (lstroke)
47 0x00f6 (odiaeresis) 0x00d6 (Odiaeresis) 0x00f6 (odiaeresis) 0x00d6 (Odiaeresis) 0xfe59 (dead_doubleacute) 0xfe60 (dead_belowdot) 0xfe59 (dead_doubleacute)
48 0x00e4 (adiaeresis) 0x00c4 (Adiaeresis) 0x00e4 (adiaeresis) 0x00c4 (Adiaeresis) 0xfe52 (dead_circumflex) 0xfe5a (dead_caron) 0xfe52 (dead_circumflex)
49 0xfe52 (dead_circumflex) 0x00b0 (degree) 0xfe52 (dead_circumflex) 0x00b0 (degree) 0x1002032 (U2032) 0x1002033 (U2033) 0x1002032 (U2032)
50 0xffe1 (Shift_L) 0x0000 (NoSymbol) 0xffe1 (Shift_L)
51 0x0023 (numbersign) 0x0027 (apostrophe) 0x0023 (numbersign) 0x0027 (apostrophe) 0x0ad1 (rightsinglequotemark) 0xfe55 (dead_breve) 0x0ad1 (rightsinglequotemark)
52 0x0079 (y) 0x0059 (Y) 0x0079 (y) 0x0059 (Y) 0x00bb (guillemotright) 0x100203a (U203A) 0x00bb (guillemotright)
53 0x0078 (x) 0x0058 (X) 0x0078 (x) 0x0058 (X) 0x00ab (guillemotleft) 0x1002039 (U2039) 0x00ab (guillemotleft)
54 0x0063 (c) 0x0043 (C) 0x0063 (c) 0x0043 (C) 0x00a2 (cent) 0x00a9 (copyright) 0x00a2 (cent)
55 0x0076 (v) 0x0056 (V) 0x0076 (v) 0x0056 (V) 0x0afe (doublelowquotemark) 0x0afd (singlelowquotemark) 0x0afe (doublelowquotemark)
56 0x0062 (b) 0x0042 (B) 0x0062 (b) 0x0042 (B) 0x0ad2 (leftdoublequotemark) 0x0ad0 (leftsinglequotemark) 0x0ad2 (leftdoublequotemark)
57 0x006e (n) 0x004e (N) 0x006e (n) 0x004e (N) 0x0ad3 (rightdoublequotemark) 0x0ad1 (rightsinglequotemark) 0x0ad3 (rightdoublequotemark)
58 0x006d (m) 0x004d (M) 0x006d (m) 0x004d (M) 0x00b5 (mu) 0x00ba (masculine) 0x00b5 (mu)
59 0x002c (comma) 0x003b (semicolon) 0x002c (comma) 0x003b (semicolon) 0x00b7 (periodcentered) 0x00d7 (multiply) 0x00b7 (periodcentered)
60 0x002e (period) 0x003a (colon) 0x002e (period) 0x003a (colon) 0x1002026 (U2026) 0x00f7 (division) 0x1002026 (U2026)
61 0x002d (minus) 0x005f (underscore) 0x002d (minus) 0x005f (underscore) 0x0aaa (endash) 0x0aa9 (emdash) 0x0aaa (endash)
62 0xffe2 (Shift_R) 0x0000 (NoSymbol) 0xffe2 (Shift_R)
63 0xffaa (KP_Multiply) 0x1008fe21 (XF86ClearGrab) 0xffaa (KP_Multiply) 0x1008fe21 (XF86ClearGrab)
64 0xffe9 (Alt_L) 0xffe7 (Meta_L) 0xffe9 (Alt_L) 0xffe7 (Meta_L)
65 0x0020 (space) 0x0000 (NoSymbol) 0x0020 (space)
66 0xffe5 (Caps_Lock) 0x0000 (NoSymbol) 0xffe5 (Caps_Lock)
67 0xffbe (F1) 0x1008fe01 (XF86Switch_VT_1) 0xffbe (F1) 0x1008fe01 (XF86Switch_VT_1)
68 0xffbf (F2) 0x1008fe02 (XF86Switch_VT_2) 0xffbf (F2) 0x1008fe02 (XF86Switch_VT_2)
69 0xffc0 (F3) 0x1008fe03 (XF86Switch_VT_3) 0xffc0 (F3) 0x1008fe03 (XF86Switch_VT_3)
70 0xffc1 (F4) 0x1008fe04 (XF86Switch_VT_4) 0xffc1 (F4) 0x1008fe04 (XF86Switch_VT_4)
71 0xffc2 (F5) 0x1008fe05 (XF86Switch_VT_5) 0xffc2 (F5) 0x1008fe05 (XF86Switch_VT_5)
72 0xffc3 (F6) 0x1008fe06 (XF86Switch_VT_6) 0xffc3 (F6) 0x1008fe06 (XF86Switch_VT_6)
73 0xffc4 (F7) 0x1008fe07 (XF86Switch_VT_7) 0xffc4 (F7) 0x1008fe07 (XF86Switch_VT_7)
74 0xffc5 (F8) 0x1008fe08 (XF86Switch_VT_8) 0xffc5 (F8) 0x1008fe08 (XF86Switch_VT_8)
75 0xffc6 (F9) 0x1008fe09 (XF86Switch_VT_9) 0xffc6 (F9) 0x1008fe09 (XF86Switch_VT_9)
76 0xffc7 (F10) 0x1008fe0a (XF86Switch_VT_10) 0xffc7 (F10) 0x1008fe0a (XF86Switch_VT_10)
77 0xff7f (Num_Lock) 0x0000 (NoSymbol) 0xff7f (Num_Lock)
78 0xff14 (Scroll_Lock) 0x0000 (NoSymbol) 0xff14 (Scroll_Lock)
79 0xff95 (KP_Home) 0xffb7 (KP_7) 0xff95 (KP_Home) 0xffb7 (KP_7)
80 0xff97 (KP_Up) 0xffb8 (KP_8) 0xff97 (KP_Up) 0xffb8 (KP_8)
81 0xff9a (KP_Prior) 0xffb9 (KP_9) 0xff9a (KP_Prior) 0xffb9 (KP_9)
82 0xffad (KP_Subtract) 0x1008fe23 (XF86Prev_VMode) 0xffad (KP_Subtract) 0x1008fe23 (XF86Prev_VMode)
83 0xff96 (KP_Left) 0xffb4 (KP_4) 0xff96 (KP_Left) 0xffb4 (KP_4)
84 0xff9d (KP_Begin) 0xffb5 (KP_5) 0xff9d (KP_Begin) 0xffb5 (KP_5)
85 0xff98 (KP_Right) 0xffb6 (KP_6) 0xff98 (KP_Right) 0xffb6 (KP_6)
86 0xffab (KP_Add) 0x1008fe22 (XF86Next_VMode) 0xffab (KP_Add) 0x1008fe22 (XF86Next_VMode)
87 0xff9c (KP_End) 0xffb1 (KP_1) 0xff9c (KP_End) 0xffb1 (KP_1)
88 0xff99 (KP_Down) 0xffb2 (KP_2) 0xff99 (KP_Down) 0xffb2 (KP_2)
89 0xff9b (KP_Next) 0xffb3 (KP_3) 0xff9b (KP_Next) 0xffb3 (KP_3)
90 0xff9e (KP_Insert) 0xffb0 (KP_0) 0xff9e (KP_Insert) 0xffb0 (KP_0)
91 0xff9f (KP_Delete) 0xffac (KP_Separator) 0xff9f (KP_Delete) 0xffac (KP_Separator)
92 0xfe03 (ISO_Level3_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)
93
94 0x003c (less) 0x003e (greater) 0x003c (less) 0x003e (greater) 0x007c (bar) 0x00a6 (brokenbar) 0x007c (bar)
95 0xffc8 (F11) 0x1008fe0b (XF86Switch_VT_11) 0xffc8 (F11) 0x1008fe0b (XF86Switch_VT_11)
96 0xffc9 (F12) 0x1008fe0c (XF86Switch_VT_12) 0xffc9 (F12) 0x1008fe0c (XF86Switch_VT_12)
97
98 0xff26 (Katakana) 0x0000 (NoSymbol) 0xff26 (Katakana)
99 0xff25 (Hiragana) 0x0000 (NoSymbol) 0xff25 (Hiragana)
100 0xff23 (Henkan_Mode) 0x0000 (NoSymbol) 0xff23 (Henkan_Mode)
101 0xff27 (Hiragana_Katakana) 0x0000 (NoSymbol) 0xff27 (Hiragana_Katakana)
102 0xff22 (Muhenkan) 0x0000 (NoSymbol) 0xff22 (Muhenkan)
103
104 0xff8d (KP_Enter) 0x0000 (NoSymbol) 0xff8d (KP_Enter)
105 0xffe4 (Control_R) 0x0000 (NoSymbol) 0xffe4 (Control_R)
106 0xffaf (KP_Divide) 0x1008fe20 (XF86Ungrab) 0xffaf (KP_Divide) 0x1008fe20 (XF86Ungrab)
107 0xff61 (Print) 0xff15 (Sys_Req) 0xff61 (Print) 0xff15 (Sys_Req)
108 0xfe03 (ISO_Level3_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)
109 0xff0a (Linefeed) 0x0000 (NoSymbol) 0xff0a (Linefeed)
110 0xff50 (Home) 0x0000 (NoSymbol) 0xff50 (Home)
111 0xff52 (Up) 0x0000 (NoSymbol) 0xff52 (Up)
112 0xff55 (Prior) 0x0000 (NoSymbol) 0xff55 (Prior)
113 0xff51 (Left) 0x0000 (NoSymbol) 0xff51 (Left)
114 0xff53 (Right) 0x0000 (NoSymbol) 0xff53 (Right)
115 0xff57 (End) 0x0000 (NoSymbol) 0xff57 (End)
116 0xff54 (Down) 0x0000 (NoSymbol) 0xff54 (Down)
117 0xff56 (Next) 0x0000 (NoSymbol) 0xff56 (Next)
118 0xff63 (Insert) 0x0000 (NoSymbol) 0xff63 (Insert)
119 0xffff (Delete) 0x0000 (NoSymbol) 0xffff (Delete)
120
121 0x1008ff12 (XF86AudioMute) 0x0000 (NoSymbol) 0x1008ff12 (XF86AudioMute)
122 0x1008ff11 (XF86AudioLowerVolume) 0x0000 (NoSymbol) 0x1008ff11 (XF86AudioLowerVolume)
123 0x1008ff13 (XF86AudioRaiseVolume) 0x0000 (NoSymbol) 0x1008ff13 (XF86AudioRaiseVolume)
124 0x1008ff2a (XF86PowerOff) 0x0000 (NoSymbol) 0x1008ff2a (XF86PowerOff)
125 0xffbd (KP_Equal) 0x0000 (NoSymbol) 0xffbd (KP_Equal)
126 0x00b1 (plusminus) 0x0000 (NoSymbol) 0x00b1 (plusminus)
127 0xff13 (Pause) 0xff6b (Break) 0xff13 (Pause) 0xff6b (Break)
128 0x1008ff4a (XF86LaunchA) 0x0000 (NoSymbol) 0x1008ff4a (XF86LaunchA)
129 0xffae (KP_Decimal) 0xffae (KP_Decimal) 0xffae (KP_Decimal) 0xffae (KP_Decimal)
130 0xff31 (Hangul) 0x0000 (NoSymbol) 0xff31 (Hangul)
131 0xff34 (Hangul_Hanja) 0x0000 (NoSymbol) 0xff34 (Hangul_Hanja)
132
133 0xffeb (Super_L) 0x0000 (NoSymbol) 0xffeb (Super_L)
134 0xffec (Super_R) 0x0000 (NoSymbol) 0xffec (Super_R)
135 0xff67 (Menu) 0x0000 (NoSymbol) 0xff67 (Menu)
136 0xff69 (Cancel) 0x0000 (NoSymbol) 0xff69 (Cancel)
137 0xff66 (Redo) 0x0000 (NoSymbol) 0xff66 (Redo)
138 0x1005ff70 (SunProps) 0x0000 (NoSymbol) 0x1005ff70 (SunProps)
139 0xff65 (Undo) 0x0000 (NoSymbol) 0xff65 (Undo)
140 0x1005ff71 (SunFront) 0x0000 (NoSymbol) 0x1005ff71 (SunFront)
141 0x1008ff57 (XF86Copy) 0x0000 (NoSymbol) 0x1008ff57 (XF86Copy)
142 0x1005ff73 (SunOpen) 0x0000 (NoSymbol) 0x1005ff73 (SunOpen)
143 0x1008ff6d (XF86Paste) 0x0000 (NoSymbol) 0x1008ff6d (XF86Paste)
144 0xff68 (Find) 0x0000 (NoSymbol) 0xff68 (Find)
145 0x1008ff58 (XF86Cut) 0x0000 (NoSymbol) 0x1008ff58 (XF86Cut)
146 0xff6a (Help) 0x0000 (NoSymbol) 0xff6a (Help)
147 0x1008ff65 (XF86MenuKB) 0x0000 (NoSymbol) 0x1008ff65 (XF86MenuKB)
148 0x1008ff1d (XF86Calculator) 0x0000 (NoSymbol) 0x1008ff1d (XF86Calculator)
149
150 0x1008ff2f (XF86Sleep) 0x0000 (NoSymbol) 0x1008ff2f (XF86Sleep)
151 0x1008ff2b (XF86WakeUp) 0x0000 (NoSymbol) 0x1008ff2b (XF86WakeUp)
152 0x1008ff5d (XF86Explorer) 0x0000 (NoSymbol) 0x1008ff5d (XF86Explorer)
153 0x1008ff7b (XF86Send) 0x0000 (NoSymbol) 0x1008ff7b (XF86Send)
154
155 0x1008ff8a (XF86Xfer) 0x0000 (NoSymbol) 0x1008ff8a (XF86Xfer)
156 0x1008ff41 (XF86Launch1) 0x0000 (NoSymbol) 0x1008ff41 (XF86Launch1)
157 0x1008ff42 (XF86Launch2) 0x0000 (NoSymbol) 0x1008ff42 (XF86Launch2)
158 0x1008ff2e (XF86WWW) 0x0000 (NoSymbol) 0x1008ff2e (XF86WWW)
159 0x1008ff5a (XF86DOS) 0x0000 (NoSymbol) 0x1008ff5a (XF86DOS)
160 0x1008ff2d (XF86ScreenSaver) 0x0000 (NoSymbol) 0x1008ff2d (XF86ScreenSaver)
161
162 0x1008ff74 (XF86RotateWindows) 0x0000 (NoSymbol) 0x1008ff74 (XF86RotateWindows)
163 0x1008ff19 (XF86Mail) 0x0000 (NoSymbol) 0x1008ff19 (XF86Mail)
164 0x1008ff30 (XF86Favorites) 0x0000 (NoSymbol) 0x1008ff30 (XF86Favorites)
165 0x1008ff33 (XF86MyComputer) 0x0000 (NoSymbol) 0x1008ff33 (XF86MyComputer)
166 0x1008ff26 (XF86Back) 0x0000 (NoSymbol) 0x1008ff26 (XF86Back)
167 0x1008ff27 (XF86Forward) 0x0000 (NoSymbol) 0x1008ff27 (XF86Forward)
168
169 0x1008ff2c (XF86Eject) 0x0000 (NoSymbol) 0x1008ff2c (XF86Eject)
170 0x1008ff2c (XF86Eject) 0x1008ff2c (XF86Eject) 0x1008ff2c (XF86Eject) 0x1008ff2c (XF86Eject)
171 0x1008ff17 (XF86AudioNext) 0x0000 (NoSymbol) 0x1008ff17 (XF86AudioNext)
172 0x1008ff14 (XF86AudioPlay) 0x1008ff31 (XF86AudioPause) 0x1008ff14 (XF86AudioPlay) 0x1008ff31 (XF86AudioPause)
173 0x1008ff16 (XF86AudioPrev) 0x0000 (NoSymbol) 0x1008ff16 (XF86AudioPrev)
174 0x1008ff15 (XF86AudioStop) 0x1008ff2c (XF86Eject) 0x1008ff15 (XF86AudioStop) 0x1008ff2c (XF86Eject)
175 0x1008ff1c (XF86AudioRecord) 0x0000 (NoSymbol) 0x1008ff1c (XF86AudioRecord)
176 0x1008ff3e (XF86AudioRewind) 0x0000 (NoSymbol) 0x1008ff3e (XF86AudioRewind)
177 0x1008ff6e (XF86Phone) 0x0000 (NoSymbol) 0x1008ff6e (XF86Phone)
178
179 0x1008ff81 (XF86Tools) 0x0000 (NoSymbol) 0x1008ff81 (XF86Tools)
180 0x1008ff18 (XF86HomePage) 0x0000 (NoSymbol) 0x1008ff18 (XF86HomePage)
181 0x1008ff73 (XF86Reload) 0x0000 (NoSymbol) 0x1008ff73 (XF86Reload)
182 0x1008ff56 (XF86Close) 0x0000 (NoSymbol) 0x1008ff56 (XF86Close)
183
184
185 0x1008ff78 (XF86ScrollUp) 0x0000 (NoSymbol) 0x1008ff78 (XF86ScrollUp)
186 0x1008ff79 (XF86ScrollDown) 0x0000 (NoSymbol) 0x1008ff79 (XF86ScrollDown)
187 0x0028 (parenleft) 0x0000 (NoSymbol) 0x0028 (parenleft)
188 0x0029 (parenright) 0x0000 (NoSymbol) 0x0029 (parenright)
189 0x1008ff68 (XF86New) 0x0000 (NoSymbol) 0x1008ff68 (XF86New)
190 0xff66 (Redo) 0x0000 (NoSymbol) 0xff66 (Redo)
191 0x1008ff81 (XF86Tools) 0x0000 (NoSymbol) 0x1008ff81 (XF86Tools)
192 0x1008ff45 (XF86Launch5) 0x0000 (NoSymbol) 0x1008ff45 (XF86Launch5)
193 0x1008ff46 (XF86Launch6) 0x0000 (NoSymbol) 0x1008ff46 (XF86Launch6)
194 0x1008ff47 (XF86Launch7) 0x0000 (NoSymbol) 0x1008ff47 (XF86Launch7)
195 0x1008ff48 (XF86Launch8) 0x0000 (NoSymbol) 0x1008ff48 (XF86Launch8)
196 0x1008ff49 (XF86Launch9) 0x0000 (NoSymbol) 0x1008ff49 (XF86Launch9)
197
198
199 0x1008ffa9 (XF86TouchpadToggle) 0x0000 (NoSymbol) 0x1008ffa9 (XF86TouchpadToggle)
200 0x1008ffb0 (XF86TouchpadOn) 0x0000 (NoSymbol) 0x1008ffb0 (XF86TouchpadOn)
201 0x1008ffb1 (XF86TouchpadOff) 0x0000 (NoSymbol) 0x1008ffb1 (XF86TouchpadOff)
202
203 0xff7e (Mode_switch) 0x0000 (NoSymbol) 0xff7e (Mode_switch)
204 0x0000 (NoSymbol) 0xffe9 (Alt_L) 0x0000 (NoSymbol) 0xffe9 (Alt_L)
205 0x0000 (NoSymbol) 0xffe7 (Meta_L) 0x0000 (NoSymbol) 0xffe7 (Meta_L)
206 0x0000 (NoSymbol) 0xffeb (Super_L) 0x0000 (NoSymbol) 0xffeb (Super_L)
207 0x0000 (NoSymbol) 0xffed (Hyper_L) 0x0000 (NoSymbol) 0xffed (Hyper_L)
208 0x1008ff14 (XF86AudioPlay) 0x0000 (NoSymbol) 0x1008ff14 (XF86AudioPlay)
209 0x1008ff31 (XF86AudioPause) 0x0000 (NoSymbol) 0x1008ff31 (XF86AudioPause)
210 0x1008ff43 (XF86Launch3) 0x0000 (NoSymbol) 0x1008ff43 (XF86Launch3)
211 0x1008ff44 (XF86Launch4) 0x0000 (NoSymbol) 0x1008ff44 (XF86Launch4)
212 0x1008ff4b (XF86LaunchB) 0x0000 (NoSymbol) 0x1008ff4b (XF86LaunchB)
213 0x1008ffa7 (XF86Suspend) 0x0000 (NoSymbol) 0x1008ffa7 (XF86Suspend)
214 0x1008ff56 (XF86Close) 0x0000 (NoSymbol) 0x1008ff56 (XF86Close)
215 0x1008ff14 (XF86AudioPlay) 0x0000 (NoSymbol) 0x1008ff14 (XF86AudioPlay)
216 0x1008ff97 (XF86AudioForward) 0x0000 (NoSymbol) 0x1008ff97 (XF86AudioForward)
217
218 0xff61 (Print) 0x0000 (NoSymbol) 0xff61 (Print)
219
220 0x1008ff8f (XF86WebCam) 0x0000 (NoSymbol) 0x1008ff8f (XF86WebCam)
221
222
223 0x1008ff19 (XF86Mail) 0x0000 (NoSymbol) 0x1008ff19 (XF86Mail)
224 0x1008ff8e (XF86Messenger) 0x0000 (NoSymbol) 0x1008ff8e (XF86Messenger)
225 0x1008ff1b (XF86Search) 0x0000 (NoSymbol) 0x1008ff1b (XF86Search)
226 0x1008ff5f (XF86Go) 0x0000 (NoSymbol) 0x1008ff5f (XF86Go)
227 0x1008ff3c (XF86Finance) 0x0000 (NoSymbol) 0x1008ff3c (XF86Finance)
228 0x1008ff5e (XF86Game) 0x0000 (NoSymbol) 0x1008ff5e (XF86Game)
229 0x1008ff36 (XF86Shop) 0x0000 (NoSymbol) 0x1008ff36 (XF86Shop)
230
231 0xff69 (Cancel) 0x0000 (NoSymbol) 0xff69 (Cancel)
232 0x1008ff03 (XF86MonBrightnessDown) 0x0000 (NoSymbol) 0x1008ff03 (XF86MonBrightnessDown)
233 0x1008ff02 (XF86MonBrightnessUp) 0x0000 (NoSymbol) 0x1008ff02 (XF86MonBrightnessUp)
234 0x1008ff32 (XF86AudioMedia) 0x0000 (NoSymbol) 0x1008ff32 (XF86AudioMedia)
235 0x1008ff59 (XF86Display) 0x0000 (NoSymbol) 0x1008ff59 (XF86Display)
236 0x1008ff04 (XF86KbdLightOnOff) 0x0000 (NoSymbol) 0x1008ff04 (XF86KbdLightOnOff)
237 0x1008ff06 (XF86KbdBrightnessDown) 0x0000 (NoSymbol) 0x1008ff06 (XF86KbdBrightnessDown)
238 0x1008ff05 (XF86KbdBrightnessUp) 0x0000 (NoSymbol) 0x1008ff05 (XF86KbdBrightnessUp)
239 0x1008ff7b (XF86Send) 0x0000 (NoSymbol) 0x1008ff7b (XF86Send)
240 0x1008ff72 (XF86Reply) 0x0000 (NoSymbol) 0x1008ff72 (XF86Reply)
241 0x1008ff90 (XF86MailForward) 0x0000 (NoSymbol) 0x1008ff90 (XF86MailForward)
242 0x1008ff77 (XF86Save) 0x0000 (NoSymbol) 0x1008ff77 (XF86Save)
243 0x1008ff5b (XF86Documents) 0x0000 (NoSymbol) 0x1008ff5b (XF86Documents)
244 0x1008ff93 (XF86Battery) 0x0000 (NoSymbol) 0x1008ff93 (XF86Battery)
245 0x1008ff94 (XF86Bluetooth) 0x0000 (NoSymbol) 0x1008ff94 (XF86Bluetooth)
246 0x1008ff95 (XF86WLAN) 0x0000 (NoSymbol) 0x1008ff95 (XF86WLAN)
247
248
249
250
251
252
253
254
255
Offline
BurntSushi wrote:It'll be long, so make sure to wrap it in [ code ] tags :-) Thanks!
Hey, I never missed using them!
My apologies, just playing it safe :-)
Anyway, the good news is your xmodmap output shows what I guessed was the problem when you first posted; so I've already added a bug fix. If you're using yaourt, then a 'yaourt -Syua' should set you straight. If you're installing manually, you'll need to grab fresh versions of xpybutil-git and window-marker-git.
The problem is that window-marker uses "Mod4-apostrophe" by default; and your 'apostrophe' keysym wasn't the first in the list for its corresponding keycode. So I've fixed my libraries to support a keysym being in any position in the list instead of assuming it was first. X key mapping is a bitch, unfortunately.
In either case, if you get the same error, could you try changing the keybindings to see if that works?
window-marker --mark 'Mod4-m' --goto 'Mod4-g'
By the way, you have an interesting key map. Your number sign is on the same key as your apostrophe? What kind of keyboard do you have?
Last edited by BurntSushi (2011-08-18 14:38:39)
Education is favorable to liberty. Freedom can exist only in a society of knowledge. Without learning, men are incapable of knowing their rights, and where learning is confined to a few people, liberty can be neither equal nor universal.
Tu ne cede malis sed contra audentior ito
Offline
By the way, you have an interesting key map. Your number sign is on the same key as your apostrophe? What kind of keyboard do you have?
It's a german qwertz keyboard, see here.
Back to your application:
The command line you gave as an example happens to be exactly the one I intended to try. I launched this command line, highlighted the browser, typed a (Super+m)+b, went to a urxvt terminal, typed (Super+g)+b and this is my output.
% window-marker --mark 'Mod4-m' --goto 'Mod4-g'
Traceback (most recent call last):
File "/usr/bin/window-marker", line 130, in <module>
event.event_loop(conn)
File "/usr/lib/python2.7/site-packages/xpybutil/event.py", line 104, in event_loop
cb(e)
File "/usr/bin/window-marker", line 87, in cb_get_letter
grabbing(letter.lower())
File "/usr/bin/window-marker", line 61, in do_goto_window
ewmh.request_current_desktop_checked(conn, wdesk).check()
File "/usr/lib/python2.7/site-packages/xpybutil/ewmh.py", line 524, in request_current_desktop_checked
[desktop_number, timestamp])
File "/usr/lib/python2.7/site-packages/xpybutil/util.py", line 169, in root_send_client_event_checked
data))
File "/usr/lib/python2.7/site-packages/xpybutil/util.py", line 150, in _root_send_client_event_pack
*data # Data
struct.error: cannot convert argument to integer
I use i3 (version 3, see AUR package i3-wm-old) as window manager, if that helps...
It might be that some wonder why I'm interested in this window-marker, because i3 already has something like this implemented. That's true, but
1. it works a little bit different
2. it's always good to know stuff like that in case for some reason I'll go away from i3 again
Offline
It's a german qwertz keyboard, see here.
Wow. Well, I'm happy to see now that my keybinding libraries work with a keyboard like that! Thanks for helping me with that :-)
Back to your application:
The command line you gave as an example happens to be exactly the one I intended to try. I launched this command line, highlighted the browser, typed a (Super+m)+b, went to a urxvt terminal, typed (Super+g)+b and this is my output....
I use i3 (version 3, see AUR package i3-wm-old) as window manager, if that helps...
Total bummer. You've got to use an EWMH-compliant window manager, and i3 just doesn't cut it. I actually installed it and tried to get it working (going so far as to ignore the desktop switching and just trying to send an "activate window" message to the apropriate window, but no dice there either). Sorry :-(
It might be that some wonder why I'm interested in this window-marker, because i3 already has something like this implemented. That's true, but
1. it works a little bit different
2. it's always good to know stuff like that in case for some reason I'll go away from i3 again
Yeah, when I started working on my own window manager at the beginning of this year, I checked out i3 for ideas and the window marking was one that I found pretty neat. I sort-of forgot about it until yesterday when I said, "Hmmm I sure could use vim-like window marking."
Otherwise, my tool should work for most window managers. (I tested it on KWin too.) Even window managers that barely support EWMH; unfortunately i3 doesn't even do that. (It is otherwise a very cool WM though, it's probably my third or fourth favorite.)
Education is favorable to liberty. Freedom can exist only in a society of knowledge. Without learning, men are incapable of knowing their rights, and where learning is confined to a few people, liberty can be neither equal nor universal.
Tu ne cede malis sed contra audentior ito
Offline
Cool stuff. Works with e17, just wanted to mention that. Now let's see if I can make a habit of using this .
Offline
Total bummer. You've got to use an EWMH-compliant window manager, and i3 just doesn't cut it. I actually installed it and tried to get it working (going so far as to ignore the desktop switching and just trying to send an "activate window" message to the apropriate window, but no dice there either). Sorry :-(
Not a problem, the lack of EWMH-compliance is the biggest criticism I have with i3. I'll test the new version of i3, maybe it's more EWMH-compliant (I actually guess it is)
Offline