Phase 1: Alt+Tab switcher, dark GTK theme, alacritty terminal
- Alt+Tab now shows a centered visual switcher overlay with window cards; cycling with Tab, committing on Alt release, cancelling with Escape - GTK3 and GTK2 themes rewritten in dark navy palette matching skywm/ skydeskbar color constants (was an off-brand tan/BeOS palette) - Add alacritty to ISO packages with pre-configured dark color scheme; update all menu Terminal entries to launch alacritty instead of xterm - Add KeyReleaseMask to WM root event selection to detect Alt release Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
e641720a3c
commit
9089c14a19
10 files changed
+378
-101
No files matched your search
+23
-7
@@ -66,6 +66,10 @@ void on_expose(WM *wm, XExposeEvent *e) {
|
||||
menu_draw(wm);
|
||||
return;
|
||||
}
|
||||
if (wm->swl_visible && e->window == wm->swl_win) {
|
||||
switcher_draw(wm);
|
||||
return;
|
||||
}
|
||||
Client *c = client_find_by_frame(wm, e->window);
|
||||
if (c && !c->minimized) frame_draw(wm, c);
|
||||
}
|
||||
@@ -259,13 +263,17 @@ void on_key_press(WM *wm, XKeyEvent *e) {
|
||||
if ((e->state & Mod1Mask) && sym == XK_F4 && wm->focused)
|
||||
send_delete(wm, wm->focused->win);
|
||||
|
||||
/* Alt+Tab — cycle windows */
|
||||
if ((e->state & Mod1Mask) && sym == XK_Tab && wm->clients) {
|
||||
Client *start = wm->focused ? wm->focused->next : wm->clients;
|
||||
Client *n = start;
|
||||
while (n && n->minimized) n = n->next;
|
||||
if (!n) { n = wm->clients; while (n && n->minimized) n = n->next; }
|
||||
if (n && n != wm->focused) client_focus(wm, n);
|
||||
/* Alt+Tab — visual switcher */
|
||||
if ((e->state & Mod1Mask) && sym == XK_Tab) {
|
||||
if (wm->swl_visible) switcher_next(wm);
|
||||
else if (wm->clients) switcher_show(wm);
|
||||
return;
|
||||
}
|
||||
|
||||
/* While switcher is visible, eat all other keys until Alt released */
|
||||
if (wm->swl_visible) {
|
||||
if (sym == XK_Escape) switcher_hide(wm, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Alt+F9 — minimize */
|
||||
@@ -300,3 +308,11 @@ void on_key_press(WM *wm, XKeyEvent *e) {
|
||||
if (sym == XK_Escape && wm->menu_visible)
|
||||
menu_hide(wm);
|
||||
}
|
||||
|
||||
void on_key_release(WM *wm, XKeyEvent *e) {
|
||||
if (!wm->swl_visible) return;
|
||||
KeySym sym = XLookupKeysym(e, 0);
|
||||
if (sym == XK_Alt_L || sym == XK_Alt_R ||
|
||||
sym == XK_Meta_L || sym == XK_Meta_R)
|
||||
switcher_hide(wm, 1);
|
||||
}
|
||||
Reference in new issue
Block a user