SHOW:
|
|
- or go back to the newest paste.
| 1 | diff -Nuar g15daemon-1.9.5.3.orig/g15daemon/utility_funcs.c g15daemon-1.9.5.3/g15daemon/utility_funcs.c | |
| 2 | --- g15daemon-1.9.5.3.orig/g15daemon/utility_funcs.c 2008-01-26 07:02:07.000000000 +0200 | |
| 3 | +++ g15daemon-1.9.5.3/g15daemon/utility_funcs.c 2011-11-09 09:19:43.000000000 +0200 | |
| 4 | @@ -356,7 +356,7 @@ | |
| 5 | config_items_t * item=NULL; | |
| 6 | char line[1024]; | |
| 7 | ||
| 8 | - config_fd = open(filename,O_CREAT|O_RDWR|O_TRUNC); | |
| 9 | + config_fd = open(filename,O_CREAT|O_RDWR|O_TRUNC, 0644); | |
| 10 | if(config_fd){
| |
| 11 | snprintf(line,1024,"# G15Daemon Configuration File\n# any items entered before a [section] header\n# will be in the Global config space\n# comments you wish to keep should start with a semicolon';'\n"); | |
| 12 | write(config_fd,line,strlen(line)); | |
| 13 | ||
| 14 | --- g15daemon-1.9.5.3.orig/libg15daemon_client/g15daemon_net.c | |
| 15 | +++ g15daemon-1.9.5.3/libg15daemon_client/g15daemon_net.c | |
| 16 | @@ -217,7 +217,7 @@ | |
| 17 | if(poll(pfd,1,100)>0){
| |
| 18 | if(pfd[0].revents & POLLPRI && !(pfd[0].revents & POLLERR || pfd[0].revents & POLLHUP || pfd[0].revents & POLLNVAL)) {
| |
| 19 | memset(packet,0,sizeof(packet)); | |
| 20 | - msgret = recv(sock, packet, 10 , MSG_OOB); | |
| 21 | + msgret = recv(sock, packet, sizeof(packet) , MSG_OOB); | |
| 22 | if (msgret < 1) {
| |
| 23 | return -1; | |
| 24 | } | |
| 25 | --- a/plugins/g15_plugin_uinput.c 2008-01-24 12:51:07.000000000 +0000 | |
| 26 | +++ b/plugins/g15_plugin_uinput.c 2014-05-09 09:34:44.000000000 +0000 | |
| 27 | @@ -46,6 +46,12 @@ | |
| 28 | static int uinp_fd = -1; | |
| 29 | static config_section_t *uinput_cfg=NULL; | |
| 30 | static int map_Lkeys = 0; | |
| 31 | +static int vol_state = 0; | |
| 32 | +static int mkey_state = 0; | |
| 33 | +static int mr_state = 0; | |
| 34 | +static unsigned int mled_state = G15_LED_M1; | |
| 35 | +/*mkey state 0,1 and 2 = M1, M2 and M3*/ | |
| 36 | + | |
| 37 | ||
| 38 | #define GKEY_OFFSET 167 | |
| 39 | #define MKEY_OFFSET 185 | |
| 40 | @@ -125,6 +129,16 @@ | |
| 41 | event.value = G15KEY_DOWN; | |
| 42 | ||
| 43 | write (uinp_fd, &event, sizeof(event)); | |
| 44 | + | |
| 45 | + /* Need to write sync event */ | |
| 46 | + memset(&event, 0, sizeof(event)); | |
| 47 | + | |
| 48 | + event.type = EV_SYN; | |
| 49 | + event.code = SYN_REPORT; | |
| 50 | + event.value = 0; | |
| 51 | + | |
| 52 | + write(uinp_fd, &event, sizeof(event)); | |
| 53 | + | |
| 54 | } | |
| 55 | ||
| 56 | static void g15_uinput_keyup(unsigned char code) | |
| 57 | @@ -137,8 +151,17 @@ | |
| 58 | event.value = G15KEY_UP; | |
| 59 | ||
| 60 | write (uinp_fd, &event, sizeof(event)); | |
| 61 | -} | |
| 62 | ||
| 63 | + /* Need to write sync event */ | |
| 64 | + memset(&event, 0, sizeof(event)); | |
| 65 | + | |
| 66 | + event.type = EV_SYN; | |
| 67 | + event.code = SYN_REPORT; | |
| 68 | + event.value = 0; | |
| 69 | + | |
| 70 | + write(uinp_fd, &event, sizeof(event)); | |
| 71 | + | |
| 72 | +} | |
| 73 | void (*keyup)(unsigned char code) = &g15_uinput_keyup; | |
| 74 | void (*keydown)(unsigned char code) = &g15_uinput_keydown; | |
| 75 | #else | |
| 76 | @@ -147,151 +170,406 @@ | |
| 77 | #endif | |
| 78 | #endif | |
| 79 | ||
| 80 | +/*The layout of the 'G' keys is now hard-coded here below. See /usr/include/linux/input.h for details on the keys you can use*/ | |
| 81 | static void g15_process_keys(g15daemon_t *masterlist, unsigned int currentkeys, unsigned int lastkeys) | |
| 82 | {
| |
| 83 | - /* 'G' keys */ | |
| 84 | - if((currentkeys & G15_KEY_G1) && !(lastkeys & G15_KEY_G1)) | |
| 85 | - keydown(GKEY_OFFSET); | |
| 86 | - else if(!(currentkeys & G15_KEY_G1) && (lastkeys & G15_KEY_G1)) | |
| 87 | - keyup(GKEY_OFFSET); | |
| 88 | - | |
| 89 | - if((currentkeys & G15_KEY_G2) && !(lastkeys & G15_KEY_G2)) | |
| 90 | - keydown(GKEY_OFFSET+1); | |
| 91 | - else if(!(currentkeys & G15_KEY_G2) && (lastkeys & G15_KEY_G2)) | |
| 92 | - keyup(GKEY_OFFSET+1); | |
| 93 | - | |
| 94 | - if((currentkeys & G15_KEY_G3) && !(lastkeys & G15_KEY_G3)) | |
| 95 | - keydown(GKEY_OFFSET+2); | |
| 96 | - else if(!(currentkeys & G15_KEY_G3) && (lastkeys & G15_KEY_G3)) | |
| 97 | - keyup(GKEY_OFFSET+2); | |
| 98 | - | |
| 99 | - if((currentkeys & G15_KEY_G4) && !(lastkeys & G15_KEY_G4)) | |
| 100 | - keydown(GKEY_OFFSET+3); | |
| 101 | - else if(!(currentkeys & G15_KEY_G4) && (lastkeys & G15_KEY_G4)) | |
| 102 | - keyup(GKEY_OFFSET+3); | |
| 103 | - | |
| 104 | - if((currentkeys & G15_KEY_G5) && !(lastkeys & G15_KEY_G5)) | |
| 105 | - keydown(GKEY_OFFSET+4); | |
| 106 | - else if(!(currentkeys & G15_KEY_G5) && (lastkeys & G15_KEY_G5)) | |
| 107 | - keyup(GKEY_OFFSET+4); | |
| 108 | - | |
| 109 | - if((currentkeys & G15_KEY_G6) && !(lastkeys & G15_KEY_G6)) | |
| 110 | - keydown(GKEY_OFFSET+5); | |
| 111 | - else if(!(currentkeys & G15_KEY_G6) && (lastkeys & G15_KEY_G6)) | |
| 112 | - keyup(GKEY_OFFSET+5); | |
| 113 | - | |
| 114 | - if((currentkeys & G15_KEY_G7) && !(lastkeys & G15_KEY_G7)) | |
| 115 | - keydown(GKEY_OFFSET+6); | |
| 116 | - else if(!(currentkeys & G15_KEY_G7) && (lastkeys & G15_KEY_G7)) | |
| 117 | - keyup(GKEY_OFFSET+6); | |
| 118 | - | |
| 119 | - if((currentkeys & G15_KEY_G8) && !(lastkeys & G15_KEY_G8)) | |
| 120 | - keydown(GKEY_OFFSET+7); | |
| 121 | - else if(!(currentkeys & G15_KEY_G8) && (lastkeys & G15_KEY_G8)) | |
| 122 | - keyup(GKEY_OFFSET+7); | |
| 123 | - | |
| 124 | - if((currentkeys & G15_KEY_G9) && !(lastkeys & G15_KEY_G9)) | |
| 125 | - keydown(GKEY_OFFSET+8); | |
| 126 | - else if(!(currentkeys & G15_KEY_G9) && (lastkeys & G15_KEY_G9)) | |
| 127 | - keyup(GKEY_OFFSET+8); | |
| 128 | - | |
| 129 | - if((currentkeys & G15_KEY_G10) && !(lastkeys & G15_KEY_G10)) | |
| 130 | - keydown(GKEY_OFFSET+9); | |
| 131 | - else if(!(currentkeys & G15_KEY_G10) && (lastkeys & G15_KEY_G10)) | |
| 132 | - keyup(GKEY_OFFSET+9); | |
| 133 | - | |
| 134 | - if((currentkeys & G15_KEY_G11) && !(lastkeys & G15_KEY_G11)) | |
| 135 | - keydown(GKEY_OFFSET+10); | |
| 136 | - else if(!(currentkeys & G15_KEY_G11) && (lastkeys & G15_KEY_G11)) | |
| 137 | - keyup(GKEY_OFFSET+10); | |
| 138 | - | |
| 139 | - if((currentkeys & G15_KEY_G12) && !(lastkeys & G15_KEY_G12)) | |
| 140 | - keydown(GKEY_OFFSET+11); | |
| 141 | - else if(!(currentkeys & G15_KEY_G12) && (lastkeys & G15_KEY_G12)) | |
| 142 | - keyup(GKEY_OFFSET+11); | |
| 143 | - | |
| 144 | - if((currentkeys & G15_KEY_G13) && !(lastkeys & G15_KEY_G13)) | |
| 145 | - keydown(GKEY_OFFSET+12); | |
| 146 | - else if(!(currentkeys & G15_KEY_G13) && (lastkeys & G15_KEY_G13)) | |
| 147 | - keyup(GKEY_OFFSET+12); | |
| 148 | - | |
| 149 | - if((currentkeys & G15_KEY_G14) && !(lastkeys & G15_KEY_G14)) | |
| 150 | - keydown(GKEY_OFFSET+13); | |
| 151 | - else if(!(currentkeys & G15_KEY_G14) && (lastkeys & G15_KEY_G14)) | |
| 152 | - keyup(GKEY_OFFSET+13); | |
| 153 | - | |
| 154 | - if((currentkeys & G15_KEY_G15) && !(lastkeys & G15_KEY_G15)) | |
| 155 | - keydown(GKEY_OFFSET+14); | |
| 156 | - else if(!(currentkeys & G15_KEY_G15) && (lastkeys & G15_KEY_G15)) | |
| 157 | - keyup(GKEY_OFFSET+14); | |
| 158 | - | |
| 159 | - if((currentkeys & G15_KEY_G16) && !(lastkeys & G15_KEY_G16)) | |
| 160 | - keydown(GKEY_OFFSET+15); | |
| 161 | - else if(!(currentkeys & G15_KEY_G16) && (lastkeys & G15_KEY_G16)) | |
| 162 | - keyup(GKEY_OFFSET+15); | |
| 163 | - | |
| 164 | - if((currentkeys & G15_KEY_G17) && !(lastkeys & G15_KEY_G17)) | |
| 165 | - keydown(GKEY_OFFSET+16); | |
| 166 | - else if(!(currentkeys & G15_KEY_G17) && (lastkeys & G15_KEY_G17)) | |
| 167 | - keyup(GKEY_OFFSET+16); | |
| 168 | - | |
| 169 | - if((currentkeys & G15_KEY_G18) && !(lastkeys & G15_KEY_G18)) | |
| 170 | - keydown(GKEY_OFFSET+17); | |
| 171 | - else if(!(currentkeys & G15_KEY_G18) && (lastkeys & G15_KEY_G18)) | |
| 172 | - keyup(GKEY_OFFSET+17); | |
| 173 | - | |
| 174 | - /* 'M' keys */ | |
| 175 | - | |
| 176 | - if((currentkeys & G15_KEY_M1) && !(lastkeys & G15_KEY_M1)) | |
| 177 | - keydown(MKEY_OFFSET); | |
| 178 | - else if(!(currentkeys & G15_KEY_M1) && (lastkeys & G15_KEY_M1)) | |
| 179 | - keyup(MKEY_OFFSET); | |
| 180 | - | |
| 181 | - if((currentkeys & G15_KEY_M2) && !(lastkeys & G15_KEY_M2)) | |
| 182 | - keydown(MKEY_OFFSET+1); | |
| 183 | - else if(!(currentkeys & G15_KEY_M2) && (lastkeys & G15_KEY_M2)) | |
| 184 | - keyup(MKEY_OFFSET+1); | |
| 185 | - | |
| 186 | - if((currentkeys & G15_KEY_M3) && !(lastkeys & G15_KEY_M3)) | |
| 187 | - keydown(MKEY_OFFSET+2); | |
| 188 | - else if(!(currentkeys & G15_KEY_M3) && (lastkeys & G15_KEY_M3)) | |
| 189 | - keyup(MKEY_OFFSET+2); | |
| 190 | - | |
| 191 | - if((currentkeys & G15_KEY_MR) && !(lastkeys & G15_KEY_MR)) | |
| 192 | - keydown(MKEY_OFFSET+3); | |
| 193 | - else if(!(currentkeys & G15_KEY_MR) && (lastkeys & G15_KEY_MR)) | |
| 194 | - keyup(MKEY_OFFSET+3); | |
| 195 | - | |
| 196 | - if(map_Lkeys){
| |
| 197 | - /* 'L' keys... */ | |
| 198 | - if((currentkeys & G15_KEY_L1) && !(lastkeys & G15_KEY_L1)) | |
| 199 | - keydown(LKEY_OFFSET); | |
| 200 | - else if(!(currentkeys & G15_KEY_L1) && (lastkeys & G15_KEY_L1)) | |
| 201 | - keyup(LKEY_OFFSET); | |
| 202 | - | |
| 203 | - if((currentkeys & G15_KEY_L2) && !(lastkeys & G15_KEY_L2)) | |
| 204 | - keydown(LKEY_OFFSET+1); | |
| 205 | - else if(!(currentkeys & G15_KEY_L2) && (lastkeys & G15_KEY_L2)) | |
| 206 | - keyup(LKEY_OFFSET+1); | |
| 207 | - | |
| 208 | - if((currentkeys & G15_KEY_L3) && !(lastkeys & G15_KEY_L3)) | |
| 209 | - keydown(LKEY_OFFSET+2); | |
| 210 | - else if(!(currentkeys & G15_KEY_L3) && (lastkeys & G15_KEY_L3)) | |
| 211 | - keyup(LKEY_OFFSET+2); | |
| 212 | - | |
| 213 | - if((currentkeys & G15_KEY_L4) && !(lastkeys & G15_KEY_L4)) | |
| 214 | - keydown(LKEY_OFFSET+3); | |
| 215 | - else if(!(currentkeys & G15_KEY_L4) && (lastkeys & G15_KEY_L4)) | |
| 216 | - keyup(LKEY_OFFSET+3); | |
| 217 | - | |
| 218 | - if((currentkeys & G15_KEY_L5) && !(lastkeys & G15_KEY_L5)) | |
| 219 | - keydown(LKEY_OFFSET+4); | |
| 220 | - else if(!(currentkeys & G15_KEY_L5) && (lastkeys & G15_KEY_L5)) | |
| 221 | - keyup(LKEY_OFFSET+4); | |
| 222 | + if(!(currentkeys & G15_KEY_LIGHT)) | |
| 223 | + {
| |
| 224 | + /*Note: ALL system(""); commands will be run as root as g15daemon needs to be activated by root. Use "su USERNAME -c command" to avoid it.
| |
| 225 | + also if a command is run from terminal that would post output into the terminal the ability to run commands will hang. to avoid that add "& disown" to command*/ | |
| 226 | + /*Note2: There's a bug with detecting key release; this means that sometimes if you use key-release function to release the keys, the key will be "stuck" down until you press it again | |
| 227 | + that's why I only use the key-release functionality for macros where I need to be able to hold down the button (like tab-switching)*/ | |
| 228 | + switch(mkey_state) | |
| 229 | + {
| |
| 230 | + //M1 and the default layout (This one i use for commands while in X. | |
| 231 | + case 0: | |
| 232 | + {
| |
| 233 | +/*M1*/ /*G Keys 1-6 open folders i use all the time.*/ | |
| 234 | +/*M1*/ if((currentkeys & G15_KEY_G1) && !(lastkeys & G15_KEY_G1)) | |
| 235 | +/*M1*/ system("sudo -H -u '#1000' dbus-launch thunar /mnt/Storage/Anime & disown");
| |
| 236 | +/*M1*/ | |
| 237 | +/*M1*/ if((currentkeys & G15_KEY_G2) && !(lastkeys & G15_KEY_G2)) | |
| 238 | +/*M1*/ system("sudo -H -u '#1000' dbus-launch thunar /mnt/Storage/Biomyndir & disown");
| |
| 239 | +/*M1*/ | |
| 240 | +/*M1*/ if((currentkeys & G15_KEY_G3) && !(lastkeys & G15_KEY_G3)) | |
| 241 | +/*M1*/ system("sudo -H -u '#1000' dbus-launch thunar /mnt/Storage/Music & disown");
| |
| 242 | +/*M1*/ | |
| 243 | +/*M1*/ if((currentkeys & G15_KEY_G4) && !(lastkeys & G15_KEY_G4)) | |
| 244 | +/*M1*/ system("sudo -H -u '#1000' dbus-launch thunar /mnt/Storage/Downloads & disown");
| |
| 245 | +/*M1*/ | |
| 246 | +/*M1*/ if((currentkeys & G15_KEY_G5) && !(lastkeys & G15_KEY_G5)) | |
| 247 | +/*M1*/ system("sudo -H -u '#1000' dbus-launch thunar /mnt/Storage/Art & disown");
| |
| 248 | +/*M1*/ | |
| 249 | +/*M1*/ if((currentkeys & G15_KEY_G6) && !(lastkeys & G15_KEY_G6)) | |
| 250 | - | +/*M1*/ system("sudo -H -u '#1000' dbus-launch thunar /mnt/Storage/Hentai & disown");
|
| 250 | + | +/*M1*/ system("sudo -H -u '#1000' dbus-launch thunar $HOME/ & disown");
|
| 251 | +/*M1*/ | |
| 252 | +/*M1*/ | |
| 253 | +/*M1*/ /*G Keys 7-12* Switch workspaces 1-6 with Win(META)+F1-F6 keys.*/ | |
| 254 | +/*M1*/ if((currentkeys & G15_KEY_G7) && !(lastkeys & G15_KEY_G7)) | |
| 255 | +/*M1*/ {keydown(KEY_LEFTMETA);keydown(KEY_F1);keyup(KEY_F1);keyup(KEY_LEFTMETA);}
| |
| 256 | +/*M1*/ | |
| 257 | +/*M1*/ if((currentkeys & G15_KEY_G8) && !(lastkeys & G15_KEY_G8)) | |
| 258 | +/*M1*/ {keydown(KEY_LEFTMETA);keydown(KEY_F2);keyup(KEY_F2);keyup(KEY_LEFTMETA);}
| |
| 259 | +/*M1*/ | |
| 260 | +/*M1*/ if((currentkeys & G15_KEY_G9) && !(lastkeys & G15_KEY_G9)) | |
| 261 | +/*M1*/ {keydown(KEY_LEFTMETA);keydown(KEY_F3);keyup(KEY_F3);keyup(KEY_LEFTMETA);}
| |
| 262 | +/*M1*/ | |
| 263 | +/*M1*/ if((currentkeys & G15_KEY_G10) && !(lastkeys & G15_KEY_G10)) | |
| 264 | +/*M1*/ {keydown(KEY_LEFTMETA);keydown(KEY_F4);keyup(KEY_F4);keyup(KEY_LEFTMETA);}
| |
| 265 | +/*M1*/ | |
| 266 | +/*M1*/ if((currentkeys & G15_KEY_G11) && !(lastkeys & G15_KEY_G11)) | |
| 267 | +/*M1*/ {keydown(KEY_LEFTMETA);keydown(KEY_F5);keyup(KEY_F5);keyup(KEY_LEFTMETA);}
| |
| 268 | +/*M1*/ | |
| 269 | +/*M1*/ if((currentkeys & G15_KEY_G12) && !(lastkeys & G15_KEY_G12)) | |
| 270 | +/*M1*/ {keydown(KEY_LEFTMETA);keydown(KEY_F6);keyup(KEY_F6);keyup(KEY_LEFTMETA);}
| |
| 271 | +/*M1*/ | |
| 272 | +/*M1*/ | |
| 273 | +/*M1*/ /*G Keys 13-18 13(Close Tab) 16(Mouseclick(via terminal)) 14(Alt+F4) 17(Open Terminal) 15 and 18 (Next/Prev tab, Ctrl+PgUp/PgDn)*/ | |
| 274 | +/*M1*/ if((currentkeys & G15_KEY_G13) && !(lastkeys & G15_KEY_G13)) | |
| 275 | +/*M1*/ {keydown(KEY_LEFTCTRL);keydown(KEY_W);keyup(KEY_W);keyup(KEY_LEFTCTRL);}
| |
| 276 | +/*M1*/ | |
| 277 | +/*M1*/ if((currentkeys & G15_KEY_G14) && !(lastkeys & G15_KEY_G14)) | |
| 278 | +/*M1*/ {keydown(KEY_LEFTALT);keydown(KEY_F4);keyup(KEY_F4);keyup(KEY_LEFTALT);}
| |
| 279 | +/*M1*/ | |
| 280 | +/*M1*/ if((currentkeys & G15_KEY_G15) && !(lastkeys & G15_KEY_G15)) | |
| 281 | +/*M1*/ {keydown(KEY_LEFTCTRL);keydown(KEY_PAGEUP);}
| |
| 282 | +/*M1*/ else if(!(currentkeys & G15_KEY_G15) && (lastkeys & G15_KEY_G15)) | |
| 283 | +/*M1*/ {keyup(KEY_PAGEUP);keyup(KEY_LEFTCTRL);}
| |
| 284 | +/*M1*/ | |
| 285 | +/*M1*/ /*Mouse Click Emulation requires xdotool installed*/ | |
| 286 | - | +/*M1*/ if(currentkeys & G15_KEY_G16) && !(lastkeys & G15_KEY_G16)) |
| 286 | + | +/*M1*/ if((currentkeys & G15_KEY_G16) && !(lastkeys & G15_KEY_G16)) |
| 287 | +/*M1*/ system("sudo -H -u '#1000' xdotool mousedown 1");
| |
| 288 | +/*M1*/ else if(!(currentkeys & G15_KEY_G16) && (lastkeys & G15_KEY_G16)) | |
| 289 | +/*M1*/ system("sudo -H -u '#1000' xdotool mouseup 1");
| |
| 290 | +/*M1*/ | |
| 291 | +/*M1*/ if((currentkeys & G15_KEY_G17) && !(lastkeys & G15_KEY_G17)) | |
| 292 | - | +/*M1*/ system("sudo -H -u '#1000' terminator --working-directory=$HOME & disown");
|
| 292 | + | +/*M1*/ system("sudo -H -u '#1000' terminator --working-directory=~$HOME & disown");
|
| 293 | +/*M1*/ | |
| 294 | +/*M1*/ if((currentkeys & G15_KEY_G18) && !(lastkeys & G15_KEY_G18)) | |
| 295 | +/*M1*/ {keydown(KEY_LEFTCTRL);keydown(KEY_PAGEDOWN);}
| |
| 296 | +/*M1*/ else if(!(currentkeys & G15_KEY_G18) && (lastkeys & G15_KEY_G18)) | |
| 297 | +/*M1*/ {keyup(KEY_PAGEDOWN);keyup(KEY_LEFTCTRL);}
| |
| 298 | + /*M1 END*/ | |
| 299 | + | |
| 300 | + break; | |
| 301 | + } | |
| 302 | + | |
| 303 | + //M2 layout, This one i use for terminal shortcuts | |
| 304 | + case 1: | |
| 305 | + {
| |
| 306 | + /*G Keys 1-6 | |
| 307 | + G1((?)) G2(Levels(CTRL+L)) G3(Color Selector(Shift+I)) | |
| 308 | + G4(?) G5(HSL/HSV(CTRL+U)) G6(Shade Selector (Shift+M)) | |
| 309 | + */ | |
| 310 | +/*M2*/ if((currentkeys & G15_KEY_G1) && !(lastkeys & G15_KEY_G1)) | |
| 311 | +/*M2*/ {keydown(KEY_LEFTCTRL); keydown(KEY_LEFTSHIFT); keydown(KEY_F);keyup(KEY_LEFTCTRL); keyup(KEY_LEFTSHIFT); keyup(KEY_F);}
| |
| 312 | +/*M2*/ | |
| 313 | +/*M2*/ if((currentkeys & G15_KEY_G2) && !(lastkeys & G15_KEY_G2)) | |
| 314 | +/*M2*/ {keydown(KEY_LEFTCTRL); keydown(KEY_L); keyup(KEY_LEFTCTRL); keyup(KEY_L);}
| |
| 315 | +/*M2*/ | |
| 316 | +/*M2*/ if((currentkeys & G15_KEY_G3) && !(lastkeys & G15_KEY_G3)) | |
| 317 | +/*M2*/ {keydown(KEY_LEFTSHIFT); keydown(KEY_I); keyup(KEY_LEFTSHIFT); keyup(KEY_I);}
| |
| 318 | +/*M2*/ | |
| 319 | +/*M2*/ if((currentkeys & G15_KEY_G4) && !(lastkeys & G15_KEY_G4)) | |
| 320 | +/*M2*/ {keydown(KEY_LEFTCTRL);keydown(KEY_K);}
| |
| 321 | +/*M2*/ else if(!(currentkeys & G15_KEY_G4) && (lastkeys & G15_KEY_G4)) | |
| 322 | +/*M2*/ {keyup(KEY_K);keyup(KEY_LEFTCTRL);}
| |
| 323 | +/*M2*/ | |
| 324 | +/*M2*/ if((currentkeys & G15_KEY_G5) && !(lastkeys & G15_KEY_G5)) | |
| 325 | +/*M2*/ {keydown(KEY_LEFTCTRL); keydown(KEY_U); keyup(KEY_LEFTCTRL); keyup(KEY_U);}
| |
| 326 | +/*M2*/ | |
| 327 | +/*M2*/ if((currentkeys & G15_KEY_G6) && !(lastkeys & G15_KEY_G6)) | |
| 328 | +/*M2*/ {keydown(KEY_LEFTSHIFT);keydown(KEY_M);keyup(KEY_M);keyup(KEY_LEFTSHIFT);}
| |
| 329 | +/*M2*/ | |
| 330 | +/*M2*/ | |
| 331 | +/*M2*/ /*G Keys 7-12, | |
| 332 | + G7 (Reset Rotation/Canvas View(CTRL+')) G8 (Flip Canvas Vert(Ctrl+M)) G9(Move Layer(T)) | |
| 333 | + G10 (Merge Down (Ctrl+E)) G11 (Flip Canvas Horizontally(M)) G12 (Transform Layer (CTRL+T)) | |
| 334 | + */ | |
| 335 | +/*M2*/ if((currentkeys & G15_KEY_G7) && !(lastkeys & G15_KEY_G7)) | |
| 336 | +/*M2*/ {keydown(KEY_LEFTCTRL);keydown(KEY_APOSTROPHE);keyup(KEY_LEFTCTRL);keyup(KEY_APOSTROPHE);}
| |
| 337 | +/*M2*/ | |
| 338 | +/*M2*/ if((currentkeys & G15_KEY_G8) && !(lastkeys & G15_KEY_G8)) | |
| 339 | +/*M2*/ {keydown(KEY_LEFTCTRL);keydown(KEY_M);keyup(KEY_M);keyup(KEY_LEFTCTRL);}
| |
| 340 | +/*M2*/ | |
| 341 | +/*M2*/ if((currentkeys & G15_KEY_G9) && !(lastkeys & G15_KEY_G9)) | |
| 342 | +/*M2*/ {keydown(KEY_T);keyup(KEY_T);}
| |
| 343 | +/*M2*/ | |
| 344 | +/*M2*/ if((currentkeys & G15_KEY_G10) && !(lastkeys & G15_KEY_G10)) | |
| 345 | +/*M2*/ {keydown(KEY_LEFTCTRL);keydown(KEY_E);keyup(KEY_E);keyup(KEY_LEFTCTRL);}
| |
| 346 | +/*M2*/ | |
| 347 | +/*M2*/ if((currentkeys & G15_KEY_G11) && !(lastkeys & G15_KEY_G11)) | |
| 348 | +/*M2*/ {keydown(KEY_M);keyup(KEY_M);}
| |
| 349 | +/*M2*/ | |
| 350 | +/*M2*/ if((currentkeys & G15_KEY_G12) && !(lastkeys & G15_KEY_G12)) | |
| 351 | +/*M2*/ {keydown(KEY_LEFTCTRL);keydown(KEY_T);keyup(KEY_T);keyup(KEY_LEFTCTRL);}
| |
| 352 | +/*M2*/ | |
| 353 | +/*M2*/ | |
| 354 | +/*M2*/ /*G Keys 13-18, | |
| 355 | + G13(Freehand Select (?)) G14(Increase Opacity of Brush(I)) G15(Darker Color(K)) | |
| 356 | + G16(Deselect (CTRL+D) G17(Decrease Opacity of Brush(O)) G18(Lighter color (L)) | |
| 357 | + */ | |
| 358 | +/*M2*/ if((currentkeys & G15_KEY_G13) && !(lastkeys & G15_KEY_G13)) | |
| 359 | +/*M2*/ {keydown(KEY_LEFTCTRL);keydown(KEY_LEFTSHIFT);keydown(KEY_F);keyup(KEY_F);keyup(KEY_LEFTSHIFT);keyup(KEY_LEFTCTRL);}
| |
| 360 | +/*M2*/ | |
| 361 | +/*M2*/ if((currentkeys & G15_KEY_G14) && !(lastkeys & G15_KEY_G14)) | |
| 362 | +/*M2*/ {keydown(KEY_I);}
| |
| 363 | +/*M2*/ else if(!(currentkeys & G15_KEY_G14) && (lastkeys & G15_KEY_G14)) | |
| 364 | +/*M2*/ {keyup(KEY_I);}
| |
| 365 | +/*M2*/ | |
| 366 | +/*M2*/ if((currentkeys & G15_KEY_G15) && !(lastkeys & G15_KEY_G15)) | |
| 367 | +/*M2*/ {keydown(KEY_K);}
| |
| 368 | +/*M2*/ else if(!(currentkeys & G15_KEY_G15) && (lastkeys & G15_KEY_G15)) | |
| 369 | +/*M2*/ {keyup(KEY_K);}
| |
| 370 | +/*M2*/ | |
| 371 | +/*M2*/ if((currentkeys & G15_KEY_G16) && !(lastkeys & G15_KEY_G16)) | |
| 372 | +/*M2*/ {keydown(KEY_LEFTCTRL);keydown(KEY_D); keyup(KEY_LEFTCTRL); keyup(KEY_D);}
| |
| 373 | +/*M2*/ | |
| 374 | +/*M2*/ if((currentkeys & G15_KEY_G17) && !(lastkeys & G15_KEY_G17)) | |
| 375 | +/*M2*/ {keydown(KEY_O);}
| |
| 376 | +/*M2*/ else if(!(currentkeys & G15_KEY_G17) && (lastkeys & G15_KEY_G17)) | |
| 377 | +/*M2*/ {keyup(KEY_O);}
| |
| 378 | +/*M2*/ | |
| 379 | +/*M2*/ if((currentkeys & G15_KEY_G18) && !(lastkeys & G15_KEY_G18)) | |
| 380 | +/*M2*/ {keydown(KEY_L);}
| |
| 381 | +/*M2*/ else if(!(currentkeys & G15_KEY_G18) && (lastkeys & G15_KEY_G18)) | |
| 382 | +/*M2*/ {keyup(KEY_L);}
| |
| 383 | + /*M2 END*/ | |
| 384 | + break; | |
| 385 | + } | |
| 386 | + //M3 layout for terminal commands (Placeholder) | |
| 387 | + case 2: | |
| 388 | + {
| |
| 389 | + /*G Keys 1-6*/ | |
| 390 | + /*G keys 1-6 G1(EraseLineLeft) G2(EraseWordLeft) G3(WordLeft) G4(EraseLineRight) G5(EraseWordRight) G6(WordRight)*/ | |
| 391 | +/*M3*/ if((currentkeys & G15_KEY_G1) && !(lastkeys & G15_KEY_G1)) | |
| 392 | +/*M3*/ {keydown(KEY_LEFTCTRL); keydown(KEY_U);}
| |
| 393 | +/*M3*/ else if(!(currentkeys & G15_KEY_G1) && (lastkeys & G15_KEY_G1)) | |
| 394 | +/*M3*/ {keyup(KEY_U);keyup(KEY_LEFTCTRL);}
| |
| 395 | +/*M3*/ | |
| 396 | +/*M3*/ if((currentkeys & G15_KEY_G2) && !(lastkeys & G15_KEY_G2)) | |
| 397 | +/*M3*/ {keydown(KEY_LEFTCTRL);keydown(KEY_W);}
| |
| 398 | +/*M3*/ else if(!(currentkeys & G15_KEY_G2) && (lastkeys & G15_KEY_G2)) | |
| 399 | +/*M3*/ {keyup(KEY_W);keyup(KEY_LEFTCTRL);}
| |
| 400 | +/*M3*/ | |
| 401 | +/*M3*/ if((currentkeys & G15_KEY_G3) && !(lastkeys & G15_KEY_G3)) | |
| 402 | +/*M3*/ {keydown(KEY_LEFTALT);keydown(KEY_B);}
| |
| 403 | +/*M3*/ else if(!(currentkeys & G15_KEY_G3) && (lastkeys & G15_KEY_G3)) | |
| 404 | +/*M3*/ {keyup(KEY_B);keyup(KEY_LEFTALT);}
| |
| 405 | +/*M3*/ | |
| 406 | +/*M3*/ if((currentkeys & G15_KEY_G4) && !(lastkeys & G15_KEY_G4)) | |
| 407 | +/*M3*/ {keydown(KEY_LEFTCTRL);keydown(KEY_K);}
| |
| 408 | +/*M3*/ else if(!(currentkeys & G15_KEY_G4) && (lastkeys & G15_KEY_G4)) | |
| 409 | +/*M3*/ {keyup(KEY_K);keyup(KEY_LEFTCTRL);}
| |
| 410 | +/*M3*/ | |
| 411 | +/*M3*/ if((currentkeys & G15_KEY_G5) && !(lastkeys & G15_KEY_G5)) | |
| 412 | +/*M3*/ {keydown(KEY_LEFTALT);keydown(KEY_D);}
| |
| 413 | +/*M3*/ else if(!(currentkeys & G15_KEY_G5) && (lastkeys & G15_KEY_G5)) | |
| 414 | +/*M3*/ {keyup(KEY_D);keyup(KEY_LEFTALT);}
| |
| 415 | +/*M3*/ | |
| 416 | +/*M3*/ if((currentkeys & G15_KEY_G6) && !(lastkeys & G15_KEY_G6)) | |
| 417 | +/*M3*/ {keydown(KEY_LEFTALT);keydown(KEY_F);}
| |
| 418 | +/*M3*/ else if(!(currentkeys & G15_KEY_G6) && (lastkeys & G15_KEY_G6)) | |
| 419 | +/*M3*/ {keyup(KEY_F);keyup(KEY_LEFTALT);}
| |
| 420 | +/*M3*/ | |
| 421 | +/*M3*/ | |
| 422 | +/*M3*/ /*G Keys 7-12, Switch between terms 1-6 with Ctrl+Alt+F1-F6*/ | |
| 423 | +/*M3*/ if((currentkeys & G15_KEY_G7) && !(lastkeys & G15_KEY_G7)) | |
| 424 | +/*M3*/ {keydown(KEY_LEFTCTRL);keydown(KEY_LEFTALT);keydown(KEY_F1);}
| |
| 425 | +/*M3*/ else if(!(currentkeys & G15_KEY_G7) && (lastkeys & G15_KEY_G7)) | |
| 426 | +/*M3*/ {keyup(KEY_F1);keyup(KEY_LEFTALT);keyup(KEY_LEFTCTRL);}
| |
| 427 | +/*M3*/ | |
| 428 | +/*M3*/ if((currentkeys & G15_KEY_G8) && !(lastkeys & G15_KEY_G8)) | |
| 429 | +/*M3*/ {keydown(KEY_LEFTCTRL);keydown(KEY_LEFTALT);keydown(KEY_F2);}
| |
| 430 | +/*M3*/ else if(!(currentkeys & G15_KEY_G8) && (lastkeys & G15_KEY_G8)) | |
| 431 | +/*M3*/ {keyup(KEY_F2);keyup(KEY_LEFTALT);keyup(KEY_LEFTCTRL);}
| |
| 432 | +/*M3*/ | |
| 433 | +/*M3*/ if((currentkeys & G15_KEY_G9) && !(lastkeys & G15_KEY_G9)) | |
| 434 | +/*M3*/ {keydown(KEY_LEFTCTRL);keydown(KEY_LEFTALT);keydown(KEY_F3);}
| |
| 435 | +/*M3*/ else if(!(currentkeys & G15_KEY_G9) && (lastkeys & G15_KEY_G9)) | |
| 436 | +/*M3*/ {keyup(KEY_F3);keyup(KEY_LEFTALT);keyup(KEY_LEFTCTRL);}
| |
| 437 | +/*M3*/ | |
| 438 | +/*M3*/ if((currentkeys & G15_KEY_G10) && !(lastkeys & G15_KEY_G10)) | |
| 439 | +/*M3*/ {keydown(KEY_LEFTCTRL);keydown(KEY_LEFTALT);keydown(KEY_F4);}
| |
| 440 | +/*M3*/ else if(!(currentkeys & G15_KEY_G10) && (lastkeys & G15_KEY_G10)) | |
| 441 | +/*M3*/ {keyup(KEY_F4);keyup(KEY_LEFTALT);keyup(KEY_LEFTCTRL);}
| |
| 442 | +/*M3*/ | |
| 443 | +/*M3*/ if((currentkeys & G15_KEY_G11) && !(lastkeys & G15_KEY_G11)) | |
| 444 | +/*M3*/ {keydown(KEY_LEFTCTRL);keydown(KEY_LEFTALT);keydown(KEY_F5);}
| |
| 445 | +/*M3*/ else if(!(currentkeys & G15_KEY_G11) && (lastkeys & G15_KEY_G11)) | |
| 446 | +/*M3*/ {keyup(KEY_F5);keyup(KEY_LEFTALT);keyup(KEY_LEFTCTRL);}
| |
| 447 | +/*M3*/ | |
| 448 | +/*M3*/ if((currentkeys & G15_KEY_G12) && !(lastkeys & G15_KEY_G12)) | |
| 449 | +/*M3*/ {keydown(KEY_LEFTCTRL);keydown(KEY_LEFTALT);keydown(KEY_F6);}
| |
| 450 | +/*M3*/ else if(!(currentkeys & G15_KEY_G12) && (lastkeys & G15_KEY_G12)) | |
| 451 | +/*M3*/ {keyup(KEY_F6);keyup(KEY_LEFTALT);keyup(KEY_LEFTCTRL);}
| |
| 452 | +/*M3*/ | |
| 453 | +/*M3*/ | |
| 454 | +/*M3*/ /*G Keys 13-18 13(Switch to GUI) 16(Kill X11) 14(Ctrl+C) 17(Q+Enter) 15/18(Shift+PgUp/PgDn for Scroll Up/Dn)*/ | |
| 455 | +/*M3*/ if((currentkeys & G15_KEY_G13) && !(lastkeys & G15_KEY_G13)) | |
| 456 | +/*M3*/ {keydown(KEY_LEFTCTRL);keydown(KEY_LEFTALT);keydown(KEY_F7);}
| |
| 457 | +/*M3*/ else if(!(currentkeys & G15_KEY_G13) && (lastkeys & G15_KEY_G13)) | |
| 458 | +/*M3*/ {keyup(KEY_F7);keyup(KEY_LEFTALT);keyup(KEY_LEFTCTRL);}
| |
| 459 | +/*M3*/ | |
| 460 | +/*M3*/ if((currentkeys & G15_KEY_G14) && !(lastkeys & G15_KEY_G14)) | |
| 461 | +/*M3*/ {keydown(KEY_LEFTCTRL);keydown(KEY_C);}
| |
| 462 | +/*M3*/ else if(!(currentkeys & G15_KEY_G14) && (lastkeys & G15_KEY_G14)) | |
| 463 | +/*M3*/ {keyup(KEY_C);keyup(KEY_LEFTCTRL);}
| |
| 464 | +/*M3*/ | |
| 465 | +/*M3*/ if((currentkeys & G15_KEY_G15) && !(lastkeys & G15_KEY_G15)) | |
| 466 | +/*M3*/ {keydown(KEY_LEFTSHIFT);keydown(KEY_PAGEUP);}
| |
| 467 | +/*M3*/ else if(!(currentkeys & G15_KEY_G15) && (lastkeys & G15_KEY_G15)) | |
| 468 | +/*M3*/ {keyup(KEY_PAGEUP);keyup(KEY_LEFTSHIFT);}
| |
| 469 | +/*M3*/ | |
| 470 | +/*M3*/ if((currentkeys & G15_KEY_G16) && !(lastkeys & G15_KEY_G16)) | |
| 471 | +/*M3*/ {keydown(KEY_LEFTCTRL);keydown(KEY_LEFTALT);keydown(KEY_BACKSPACE);}
| |
| 472 | +/*M3*/ else if(!(currentkeys & G15_KEY_G16) && (lastkeys & G15_KEY_G16)) | |
| 473 | +/*M3*/ {keyup(KEY_BACKSPACE);keyup(KEY_LEFTALT);keyup(KEY_LEFTCTRL);}
| |
| 474 | +/*M3*/ | |
| 475 | +/*M3*/ if((currentkeys & G15_KEY_G17) && !(lastkeys & G15_KEY_G17)) | |
| 476 | +/*M3*/ {keydown(KEY_Q);}
| |
| 477 | +/*M3*/ else if(!(currentkeys & G15_KEY_G17) && (lastkeys & G15_KEY_G17)) | |
| 478 | +/*M3*/ {keyup(KEY_Q);keydown(KEY_ENTER);keyup(KEY_ENTER);}
| |
| 479 | +/*M3*/ | |
| 480 | +/*M3*/ if((currentkeys & G15_KEY_G18) && !(lastkeys & G15_KEY_G18)) | |
| 481 | +/*M3*/ {keydown(KEY_LEFTSHIFT);keydown(KEY_PAGEDOWN);}
| |
| 482 | +/*M3*/ else if(!(currentkeys & G15_KEY_G18) && (lastkeys & G15_KEY_G18)) | |
| 483 | +/*M3*/ {keyup(KEY_PAGEDOWN);keyup(KEY_LEFTSHIFT);}
| |
| 484 | + /*M3 END*/ | |
| 485 | + break; | |
| 486 | + } | |
| 487 | } | |
| 488 | + | |
| 489 | + /* 'M' keys... */ | |
| 490 | + | |
| 491 | + if((currentkeys & G15_KEY_M1) && !(lastkeys & G15_KEY_M1)) | |
| 492 | + //keydown(MKEY_OFFSET); | |
| 493 | + mkey_state = 0; | |
| 494 | + /*else if(!(currentkeys & G15_KEY_M1) && (lastkeys & G15_KEY_M1)) | |
| 495 | + keyup(MKEY_OFFSET);*/ | |
| 496 | + | |
| 497 | + if((currentkeys & G15_KEY_M2) && !(lastkeys & G15_KEY_M2)) | |
| 498 | + //keydown(MKEY_OFFSET+1); | |
| 499 | + mkey_state = 1; | |
| 500 | + /*else if(!(currentkeys & G15_KEY_M2) && (lastkeys & G15_KEY_M2)) | |
| 501 | + keyup(MKEY_OFFSET+1);*/ | |
| 502 | + | |
| 503 | + if((currentkeys & G15_KEY_M3) && !(lastkeys & G15_KEY_M3)) | |
| 504 | + //keydown(MKEY_OFFSET+2); | |
| 505 | + mkey_state = 2; | |
| 506 | + /*else if(!(currentkeys & G15_KEY_M3) && (lastkeys & G15_KEY_M3)) | |
| 507 | + keyup(MKEY_OFFSET+2);*/ | |
| 508 | + | |
| 509 | + if((currentkeys & G15_KEY_MR) && !(lastkeys & G15_KEY_MR) && mr_state == 0){
| |
| 510 | + mr_state = 1; | |
| 511 | + } | |
| 512 | + else if(!(currentkeys & G15_KEY_MR) && (lastkeys & G15_KEY_MR) && mr_state == 1){
| |
| 513 | + /*Toggle function on first key release*/ | |
| 514 | + } | |
| 515 | + else if((currentkeys & G15_KEY_MR) && !(lastkeys & G15_KEY_MR) && mr_state == 1){
| |
| 516 | + mr_state = 0; | |
| 517 | + } | |
| 518 | + else if(!(currentkeys & G15_KEY_MR) && (lastkeys & G15_KEY_MR) && mr_state == 0){
| |
| 519 | + /*Úntoggle function on second key release*/ | |
| 520 | + } | |
| 521 | + | |
| 522 | + if(map_Lkeys){
| |
| 523 | + /* 'L' keys... */ | |
| 524 | + if((currentkeys & G15_KEY_L1) && !(lastkeys & G15_KEY_L1)) | |
| 525 | + keydown(LKEY_OFFSET); | |
| 526 | + else if(!(currentkeys & G15_KEY_L1) && (lastkeys & G15_KEY_L1)) | |
| 527 | + keyup(LKEY_OFFSET); | |
| 528 | + | |
| 529 | + if((currentkeys & G15_KEY_L2) && !(lastkeys & G15_KEY_L2)) | |
| 530 | + keydown(LKEY_OFFSET+1); | |
| 531 | + else if(!(currentkeys & G15_KEY_L2) && (lastkeys & G15_KEY_L2)) | |
| 532 | + keyup(LKEY_OFFSET+1); | |
| 533 | + | |
| 534 | + if((currentkeys & G15_KEY_L3) && !(lastkeys & G15_KEY_L3)) | |
| 535 | + keydown(LKEY_OFFSET+2); | |
| 536 | + else if(!(currentkeys & G15_KEY_L3) && (lastkeys & G15_KEY_L3)) | |
| 537 | + keyup(LKEY_OFFSET+2); | |
| 538 | + | |
| 539 | + if((currentkeys & G15_KEY_L4) && !(lastkeys & G15_KEY_L4)) | |
| 540 | + keydown(LKEY_OFFSET+3); | |
| 541 | + else if(!(currentkeys & G15_KEY_L4) && (lastkeys & G15_KEY_L4)) | |
| 542 | + keyup(LKEY_OFFSET+3); | |
| 543 | + | |
| 544 | + if((currentkeys & G15_KEY_L5) && !(lastkeys & G15_KEY_L5)) | |
| 545 | + keydown(LKEY_OFFSET+4); | |
| 546 | + else if(!(currentkeys & G15_KEY_L5) && (lastkeys & G15_KEY_L5)) | |
| 547 | + keyup(LKEY_OFFSET+4); | |
| 548 | + } | |
| 549 | + | |
| 550 | + } | |
| 551 | + | |
| 552 | + | |
| 553 | + else | |
| 554 | + {
| |
| 555 | + // G15_KEY_LIGHT - Key modifier for Logitech G510 Media Keys implementation | |
| 556 | + | |
| 557 | + // XF86AudioPlay | |
| 558 | + if((currentkeys & G15_KEY_G1) && !(lastkeys & G15_KEY_G1)) | |
| 559 | + keydown(KEY_PLAYPAUSE); | |
| 560 | + else if(!(currentkeys & G15_KEY_G1) && (lastkeys & G15_KEY_G1)) | |
| 561 | + keyup(KEY_PLAYPAUSE); | |
| 562 | + | |
| 563 | + // XF86AudioStop | |
| 564 | + if((currentkeys & G15_KEY_G2) && !(lastkeys & G15_KEY_G2)) | |
| 565 | + keydown(KEY_STOPCD); | |
| 566 | + else if(!(currentkeys & G15_KEY_G2) && (lastkeys & G15_KEY_G2)) | |
| 567 | + keyup(KEY_STOPCD); | |
| 568 | + | |
| 569 | + // XF86AudioPrev | |
| 570 | + if((currentkeys & G15_KEY_G3) && !(lastkeys & G15_KEY_G3)) | |
| 571 | + keydown(KEY_PREVIOUSSONG); | |
| 572 | + else if(!(currentkeys & G15_KEY_G3) && (lastkeys & G15_KEY_G3)) | |
| 573 | + keyup(KEY_PREVIOUSSONG); | |
| 574 | + | |
| 575 | + // XF86AudioNext | |
| 576 | + if((currentkeys & G15_KEY_G4) && !(lastkeys & G15_KEY_G4)) | |
| 577 | + keydown(KEY_NEXTSONG); | |
| 578 | + else if(!(currentkeys & G15_KEY_G4) && (lastkeys & G15_KEY_G4)) | |
| 579 | + keyup(KEY_NEXTSONG); | |
| 580 | + | |
| 581 | + // XF86AudioMute | |
| 582 | + if((currentkeys & G15_KEY_G5) && !(lastkeys & G15_KEY_G5)) | |
| 583 | + keydown(KEY_MUTE); | |
| 584 | + else if(!(currentkeys & G15_KEY_G5) && (lastkeys & G15_KEY_G5)) | |
| 585 | + keyup(KEY_MUTE); | |
| 586 | + | |
| 587 | + // XF86AudioRaise/LowerVolume (this was a pain to figure out, i dropped it at one point while it was semi-functioning and fixed it later) | |
| 588 | + if(((currentkeys & G15_KEY_G6) && !(lastkeys & G15_KEY_G6)) && (vol_state == 0 || vol_state == 1)){
| |
| 589 | + keydown(KEY_VOLUMEUP); | |
| 590 | + vol_state = 1; | |
| 591 | + } | |
| 592 | + else if(((currentkeys & G15_KEY_G7) && !(lastkeys & G15_KEY_G7)) && (vol_state == 0 || vol_state == 2)){
| |
| 593 | + keydown(KEY_VOLUMEDOWN); | |
| 594 | + vol_state = 2; | |
| 595 | + } | |
| 596 | + else if((!(currentkeys & G15_KEY_G6) || !(currentkeys & G15_KEY_G7)) && ((lastkeys & G15_KEY_G7) || (lastkeys & G15_KEY_G6))){
| |
| 597 | + keyup(KEY_VOLUMEUP); | |
| 598 | + keyup(KEY_VOLUMEDOWN); | |
| 599 | + vol_state = 0; | |
| 600 | + } | |
| 601 | + } | |
| 602 | +/*Set led states per M key (Doing this in the switch was slow and didn't activate till after button release)*/ | |
| 603 | + if(mkey_state == 0) | |
| 604 | + mled_state = G15_LED_M1; | |
| 605 | + else if(mkey_state == 1) | |
| 606 | + mled_state = G15_LED_M2; | |
| 607 | + else if(mkey_state == 2) | |
| 608 | + mled_state = G15_LED_M3; | |
| 609 | + | |
| 610 | +/*Set leds and toggle MR led depending on mr_state*/ | |
| 611 | + if(mr_state == 0) | |
| 612 | + setLEDs(mled_state -0x20); | |
| 613 | + else if(mr_state == 1) | |
| 614 | + setLEDs(mled_state -0x20 | G15_LED_MR -0x20); | |
| 615 | + | |
| 616 | } | |
| 617 | ||
| 618 | ||
| 619 | static int keyevents(plugin_event_t *myevent) {
| |
| 620 | lcd_t *lcd = (lcd_t*) myevent->lcd; | |
| 621 | static int lastkeys; | |
| 622 | ||
| 623 | --- a/contrib/xmodmaprc 2008-01-24 12:51:08.000000000 +0000 | |
| 624 | +++ b/contrib/xmodmaprc 2013-04-11 15:25:26.000000000 +0000 | |
| 625 | @@ -3,7 +3,7 @@ | |
| 626 | keycode 130 = XF86Launch9 | |
| 627 | keycode 131 = XF86Launch2 | |
| 628 | keycode 132 = XF86Phone | |
| 629 | -keycode 133 = XF86Messenger | |
| 630 | +keycode 133 = Super_L | |
| 631 | keycode 136 = XF86LaunchD | |
| 632 | keycode 137 = XF86Support | |
| 633 | keycode 138 = XF86Word |