- Super+1-4: switch virtual desktop; Super+Shift+1-4: move focused window to desktop N - Super+Space: Exposé window overview (tiled grid), click to select, Escape to cancel - wm/src/expose.c: expose_show/expose_hide using ceil(sqrt) grid layout with saved/restored geometry - client_move_to_desktop(): moves window between desktops, fires _NET_WM_DESKTOP update - on_client_message: handles _NET_WM_DESKTOP to move windows from external requests - deskbar: optional imlib2 app icon rendering (Papirus-Dark → Papirus → hicolor → pixmaps fallback) - deskbar: XGetClassHint populates cls field for better icon lookup - deskbar: context menu extended with separator + "→ Desktop 1-4" items via _NET_WM_DESKTOP - orionnotify/: freedesktop.org notification daemon (libdbus-1), stacks up to 5 popups top-right - orionlock/: PAM-authenticated fullscreen screen lock with clock, date, password dots - Lock Screen menu item wired to orionlock - Root Makefile includes orionnotify and orionlock targets Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GHiBQKPfUoaJgCKuA9op1H
35 lines
868 B
Makefile
35 lines
868 B
Makefile
CC = gcc
|
|
|
|
PKG_XFT_C := $(shell pkg-config --cflags xft x11 2>/dev/null)
|
|
PKG_XFT_L := $(shell pkg-config --libs xft x11 2>/dev/null)
|
|
ifeq ($(PKG_XFT_C),)
|
|
PKG_XFT_C := -I/opt/homebrew/include
|
|
PKG_XFT_L := -L/opt/homebrew/lib -lXft -lfontconfig
|
|
endif
|
|
|
|
# optional imlib2 for app icon rendering
|
|
PKG_IL_C := $(shell pkg-config --cflags imlib2 2>/dev/null)
|
|
PKG_IL_L := $(shell pkg-config --libs imlib2 2>/dev/null)
|
|
ifneq ($(PKG_IL_C),)
|
|
PKG_XFT_C += $(PKG_IL_C) -DHAVE_IMLIB2
|
|
PKG_XFT_L += $(PKG_IL_L)
|
|
endif
|
|
|
|
CFLAGS = -Wall -Wextra -O2 -Iinclude $(PKG_XFT_C)
|
|
LDFLAGS = $(PKG_XFT_L)
|
|
|
|
SRC = src/deskbar.c
|
|
OBJ = $(SRC:.c=.o)
|
|
BIN = oriondeskbar
|
|
|
|
.PHONY: all clean install
|
|
all: $(BIN)
|
|
$(BIN): $(OBJ)
|
|
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
|
|
%.o: %.c
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
install: $(BIN)
|
|
install -Dm755 $(BIN) /usr/local/bin/$(BIN)
|
|
clean:
|
|
rm -f $(OBJ) $(BIN)
|