Add hot corners, media keys, orionshot, orionclip, notification history, autostart, GTK accent update, wallpaper slideshow, ISO build
- wm: hot corner polling via select()-based wm_run loop; TL=Exposé, TR=show desktop, BL=launcher, BR=lock - wm: XF86 media key grabs (volume, brightness, playback) + Super+V for clipboard - wm: autostart reads ~/.config/orionos/autostart on startup - events: media key dispatch (amixer/brightnessctl/playerctl); Super+V → orionclip --show; Print → orionshot - orionshot: new X11 screenshot tool, full-screen and rubber-band region modes, saves PNG to ~/Pictures/Screenshots/ - orionclip: new clipboard manager daemon; polls clipboard, stores 20 entries, popup via Super+V IPC - orionnotify: append-only notification history log at ~/.local/share/orionos/notif-history.log - themes: GTK accent updated from #3A6898 to #1E58A8 to match WM/deskbar - themes: orionwallpaper gains --slideshow DIR [SECS] mode using feh + sleep loop - iso: Docker-based archiso builder, live-session xinitrc, profiledef.sh - Makefile: add orionshot and orionclip to all/clean/install; Docker-based iso target
This commit is contained in:
15 files changed
+957
-84
No files matched your search
+36
-5
@@ -392,16 +392,47 @@ void on_key_press(WM *wm, XKeyEvent *e) {
|
||||
if ((e->state & Mod1Mask) && sym == XK_F1)
|
||||
system("orionlauncher &");
|
||||
|
||||
/* PrintScreen — full screenshot to ~/Pictures */
|
||||
/* PrintScreen — screenshot */
|
||||
if (sym == XK_Print) {
|
||||
if (e->state & ShiftMask)
|
||||
system("mkdir -p ~/Pictures && scrot -s ~/Pictures/screenshot_%Y%m%d_%H%M%S.png"
|
||||
" && notify-send 'Screenshot' 'Region saved to ~/Pictures' &");
|
||||
system("orionshot region &");
|
||||
else
|
||||
system("mkdir -p ~/Pictures && scrot ~/Pictures/screenshot_%Y%m%d_%H%M%S.png"
|
||||
" && notify-send 'Screenshot' 'Saved to ~/Pictures' &");
|
||||
system("orionshot full &");
|
||||
}
|
||||
|
||||
/* XF86 media keys */
|
||||
if (sym == XF86XK_AudioRaiseVolume)
|
||||
system("pactl set-sink-volume @DEFAULT_SINK@ +5% 2>/dev/null; "
|
||||
"pactl get-sink-volume @DEFAULT_SINK@ 2>/dev/null | "
|
||||
"grep -oP '[0-9]+%' | head -1 | "
|
||||
"xargs -I{} notify-send -t 1500 'Volume' '{}' 2>/dev/null &");
|
||||
if (sym == XF86XK_AudioLowerVolume)
|
||||
system("pactl set-sink-volume @DEFAULT_SINK@ -5% 2>/dev/null; "
|
||||
"pactl get-sink-volume @DEFAULT_SINK@ 2>/dev/null | "
|
||||
"grep -oP '[0-9]+%' | head -1 | "
|
||||
"xargs -I{} notify-send -t 1500 'Volume' '{}' 2>/dev/null &");
|
||||
if (sym == XF86XK_AudioMute)
|
||||
system("pactl set-sink-mute @DEFAULT_SINK@ toggle 2>/dev/null; "
|
||||
"notify-send -t 1500 'Volume' 'Muted toggled' 2>/dev/null &");
|
||||
if (sym == XF86XK_AudioPlay)
|
||||
system("playerctl play-pause 2>/dev/null &");
|
||||
if (sym == XF86XK_AudioNext)
|
||||
system("playerctl next 2>/dev/null &");
|
||||
if (sym == XF86XK_AudioPrev)
|
||||
system("playerctl previous 2>/dev/null &");
|
||||
if (sym == XF86XK_MonBrightnessUp)
|
||||
system("brightnessctl set +10% 2>/dev/null; "
|
||||
"notify-send -t 1200 'Brightness' "
|
||||
"\"$(brightnessctl g 2>/dev/null)\" 2>/dev/null &");
|
||||
if (sym == XF86XK_MonBrightnessDown)
|
||||
system("brightnessctl set 10%- 2>/dev/null; "
|
||||
"notify-send -t 1200 'Brightness' "
|
||||
"\"$(brightnessctl g 2>/dev/null)\" 2>/dev/null &");
|
||||
|
||||
/* Super+V — clipboard manager */
|
||||
if ((e->state & Mod4Mask) && sym == XK_v)
|
||||
system("orionclip --show &");
|
||||
|
||||
/* Super+Left — snap left */
|
||||
if ((e->state & Mod4Mask) && sym == XK_Left && wm->focused)
|
||||
client_snap_left(wm, wm->focused);
|
||||
|
||||
Reference in new issue
Block a user