mirror of
https://github.com/rbreaves/kinto.git
synced 2025-08-13 06:09:14 +02:00
Merge pull request #22 from rbreaves/dev
Updated kintox11 binary with better error handling
This commit is contained in:
@@ -49,7 +49,7 @@
|
|||||||
"type":"chromebook",
|
"type":"chromebook",
|
||||||
"active": false,
|
"active": false,
|
||||||
"description":"Standard Chromebook Keyboards",
|
"description":"Standard Chromebook Keyboards",
|
||||||
"gui":"setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.chromebook.gui $DISPLAY",
|
"gui":"setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.mac.gui $DISPLAY",
|
||||||
"term":"setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.mac.term $DISPLAY",
|
"term":"setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.mac.term $DISPLAY",
|
||||||
"xkb_symbols_gui":"+chromebook(swap_lalt_lctrl)+mac_gui(mac_levelssym)",
|
"xkb_symbols_gui":"+chromebook(swap_lalt_lctrl)+mac_gui(mac_levelssym)",
|
||||||
"xkb_symbols_term":"+altwin(swap_alt_win)+mac_term_chromebook(mac_levelssym)",
|
"xkb_symbols_term":"+altwin(swap_alt_win)+mac_term_chromebook(mac_levelssym)",
|
||||||
@@ -62,9 +62,9 @@
|
|||||||
"type":"chromebook",
|
"type":"chromebook",
|
||||||
"active": false,
|
"active": false,
|
||||||
"description":"Chromebook with Windows 104 Keyboard",
|
"description":"Chromebook with Windows 104 Keyboard",
|
||||||
"gui":"setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.chromebook.gui $DISPLAY; setxkbmap -device $usbid -option altwin:ctrl_alt_win",
|
"gui":"setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.mac.gui $DISPLAY; setxkbmap -device $usbid -option altwin:ctrl_alt_win",
|
||||||
"term":"setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.mac.term $DISPLAY",
|
"term":"setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.mac.term $DISPLAY",
|
||||||
"fallbackgui":"setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.chromebook.gui $DISPLAY",
|
"fallbackgui":"setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.mac.gui $DISPLAY",
|
||||||
"xkb_symbols_gui":"+chromebook(swap_lalt_lctrl)+mac_gui(mac_levelssym)",
|
"xkb_symbols_gui":"+chromebook(swap_lalt_lctrl)+mac_gui(mac_levelssym)",
|
||||||
"xkb_symbols_term":"+altwin(swap_alt_win)+mac_term_chromebook(mac_levelssym)",
|
"xkb_symbols_term":"+altwin(swap_alt_win)+mac_term_chromebook(mac_levelssym)",
|
||||||
"xkb_types_gui":"+mac_gui(addmac_levels)",
|
"xkb_types_gui":"+mac_gui(addmac_levels)",
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
"type":"chromebook",
|
"type":"chromebook",
|
||||||
"active": false,
|
"active": false,
|
||||||
"description":"Chromebook with Mac Keyboard",
|
"description":"Chromebook with Mac Keyboard",
|
||||||
"gui":"setxkbmap -option;setxkbmap -option ctrl:swap_lwin_lctl; xkbcomp -w0 -i $internalid -I$HOME/.xkb ~/.xkb/keymap/kbd.chromebook.gui $DISPLAY",
|
"gui":"setxkbmap -option;setxkbmap -option ctrl:swap_lwin_lctl; xkbcomp -w0 -i $internalid -I$HOME/.xkb ~/.xkb/keymap/kbd.mac.gui $DISPLAY",
|
||||||
"term":"setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.mac.term $DISPLAY",
|
"term":"setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.mac.term $DISPLAY",
|
||||||
"xkb_symbols_gui":"+chromebook(swap_lalt_lctrl)+mac_gui(mac_levelssym)",
|
"xkb_symbols_gui":"+chromebook(swap_lalt_lctrl)+mac_gui(mac_levelssym)",
|
||||||
"xkb_symbols_term":"+altwin(swap_alt_win)+mac_term_chromebook(mac_levelssym)",
|
"xkb_symbols_term":"+altwin(swap_alt_win)+mac_term_chromebook(mac_levelssym)",
|
||||||
|
@@ -1,13 +1,16 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
systemctl --user stop keyswap >/dev/null 2>&1
|
||||||
|
systemctl --user disable keyswap >/dev/null 2>&1
|
||||||
|
systemctl --user stop keyswap.timer >/dev/null 2>&1
|
||||||
|
systemctl --user disable keyswap.timer >/dev/null 2>&1
|
||||||
swapcmd="\/bin\/bash\ \/home\/`whoami`\/.config\/kinto\/xactive.sh"
|
swapcmd="\/bin\/bash\ \/home\/`whoami`\/.config\/kinto\/xactive.sh"
|
||||||
mkdir -p ~/.config/systemd/user
|
mkdir -p ~/.config/systemd/user
|
||||||
mkdir -p ~/.config/autostart
|
mkdir -p ~/.config/autostart
|
||||||
cp ./system-config/keyswap.service ~/.config/systemd/user/keyswap.service
|
cp ./system-config/keyswap.service ~/.config/systemd/user/keyswap.service
|
||||||
cp ./system-config/keyswap.timer ~/.config/systemd/user/keyswap.timer
|
|
||||||
cp ./kintox11/binary/kintox11 ~/.config/kinto/kintox11
|
cp ./kintox11/binary/kintox11 ~/.config/kinto/kintox11
|
||||||
cp ./system-config/xactive.sh ~/.config/kinto/xactive.sh
|
cp ./system-config/xactive.sh ~/.config/kinto/xactive.sh
|
||||||
sed -i "s/{username}/`whoami`/g" ~/.config/systemd/user/keyswap.service
|
sed -i "s/{username}/`whoami`/g" ~/.config/systemd/user/keyswap.service
|
||||||
sed -i "s/ExecStart=/ExecStart=${swapcmd}/g" ~/.config/systemd/user/keyswap.service
|
sed -i "s/ExecStart=/ExecStart=${swapcmd}/g" ~/.config/systemd/user/keyswap.service
|
||||||
systemctl --user enable keyswap.timer
|
systemctl --user daemon-reload
|
||||||
systemctl --user start keyswap.timer
|
systemctl --user start keyswap
|
||||||
|
Binary file not shown.
@@ -67,10 +67,10 @@ Display* open_display(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
int handle_error(Display* display, XErrorEvent* error){
|
int handle_error(Display* display, XErrorEvent* error){
|
||||||
// printf("X11 error: type=%d, serial=%lu, code=%d\n",
|
printf("X11 error: type=%d, serial=%lu, code=%d\n",
|
||||||
// error->type, error->serial, (int)error->error_code);
|
error->type, error->serial, (int)error->error_code);
|
||||||
// xerror = True;
|
xerror = True;
|
||||||
return 0;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Window get_focus_window(Display* d){
|
Window get_focus_window(Display* d){
|
||||||
@@ -108,7 +108,7 @@ Window get_top_window(Display* d, Window start){
|
|||||||
if (s)
|
if (s)
|
||||||
XFree(children);
|
XFree(children);
|
||||||
|
|
||||||
if(xerror){
|
if(xerror || w == 0){
|
||||||
printf("fail\n");
|
printf("fail\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@@ -121,6 +121,17 @@ Window get_top_window(Display* d, Window start){
|
|||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// search a named window (that has a WM_STATE prop)
|
||||||
|
// on the descendent windows of the argment Window.
|
||||||
|
Window get_named_window(Display* d, Window start){
|
||||||
|
Window w;
|
||||||
|
// printf("getting named window ... ");
|
||||||
|
w = XmuClientWindow(d, start); // see man
|
||||||
|
// if(w == start)
|
||||||
|
// printf("fail\n");
|
||||||
|
// printf("success (window: %d)\n", (int) w);
|
||||||
|
return w;
|
||||||
|
}
|
||||||
|
|
||||||
const char * str_window_class(Display* d, Window w, char *prior_app ){
|
const char * str_window_class(Display* d, Window w, char *prior_app ){
|
||||||
Status s;
|
Status s;
|
||||||
@@ -162,6 +173,7 @@ int main(void){
|
|||||||
|
|
||||||
size_t i,n,r;
|
size_t i,n,r;
|
||||||
|
|
||||||
|
printf("Importing user_config.json...\n");
|
||||||
fp = fopen("user_config.json","r");
|
fp = fopen("user_config.json","r");
|
||||||
fread(buffer, 10240, 1, fp);
|
fread(buffer, 10240, 1, fp);
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
@@ -267,6 +279,8 @@ int main(void){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
printf("Data from user_config.json imported successfully.\n");
|
||||||
|
|
||||||
for (i = 0; i < init_len; i++) {
|
for (i = 0; i < init_len; i++) {
|
||||||
init_array[i] = json_object_get_int(json_object_array_get_idx(init, i));
|
init_array[i] = json_object_get_int(json_object_array_get_idx(init, i));
|
||||||
int de_id_idx = in_int(de_id_array, de_len, init_array[i]);
|
int de_id_idx = in_int(de_id_array, de_len, init_array[i]);
|
||||||
@@ -292,9 +306,12 @@ int main(void){
|
|||||||
|
|
||||||
int remap_bool = 2;
|
int remap_bool = 2;
|
||||||
|
|
||||||
|
printf("Starting keyswap...\n");
|
||||||
|
|
||||||
// get active window
|
// get active window
|
||||||
w = get_focus_window(d);
|
w = get_focus_window(d);
|
||||||
w = get_top_window(d, w);
|
w = get_top_window(d, w);
|
||||||
|
w = get_named_window(d, w);
|
||||||
|
|
||||||
// XFetchName(d, w, &name);
|
// XFetchName(d, w, &name);
|
||||||
// printf("window:%#x name:%s\n", w, name);
|
// printf("window:%#x name:%s\n", w, name);
|
||||||
@@ -339,6 +356,7 @@ int main(void){
|
|||||||
break;
|
break;
|
||||||
} // Else command for ignoring similar app category based on config
|
} // Else command for ignoring similar app category based on config
|
||||||
else if((strcicmp(appnames_array[i][n], current_app) == 0 && remap_bool == 0)){
|
else if((strcicmp(appnames_array[i][n], current_app) == 0 && remap_bool == 0)){
|
||||||
|
printf(" %s\n",current_app);
|
||||||
// printf("in 2nd elseif %s i:%ld n:%ld %s\n",name_array[i],i,n,appnames_array[i][n]);
|
// printf("in 2nd elseif %s i:%ld n:%ld %s\n",name_array[i],i,n,appnames_array[i][n]);
|
||||||
// printf("%s\n","4");
|
// printf("%s\n","4");
|
||||||
breakouter = 1;
|
breakouter = 1;
|
||||||
@@ -365,6 +383,12 @@ int main(void){
|
|||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
breakouter = 1;
|
breakouter = 1;
|
||||||
break;
|
break;
|
||||||
|
} // GUI app still - no switching needed
|
||||||
|
else if ((i == arraylen-1 && appnames_max == n+1) && remap_bool == 1){
|
||||||
|
printf(" %s\n",current_app);
|
||||||
|
}
|
||||||
|
else if ((i == arraylen-1 && appnames_max == n+1)){
|
||||||
|
printf("%s - Failed to match any keyswap requirements\n",current_app);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -381,6 +405,7 @@ int main(void){
|
|||||||
XEvent e;
|
XEvent e;
|
||||||
XNextEvent(d, &e);
|
XNextEvent(d, &e);
|
||||||
w = get_focus_window(d);
|
w = get_focus_window(d);
|
||||||
|
w = get_top_window(d, w);
|
||||||
|
w = get_named_window(d, w);
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -1,10 +0,0 @@
|
|||||||
# keyswap.timer
|
|
||||||
[Unit]
|
|
||||||
Description=Runs the keyswap.service 5 seconds after boot up
|
|
||||||
|
|
||||||
[Timer]
|
|
||||||
OnBootSec=5s
|
|
||||||
Unit=keyswap.service
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=default.target
|
|
Reference in New Issue
Block a user