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:
Claude committed 2026-08-30 20:47:47 +00:00
1 parent 2a42b826fb
commit a2092fd989
15 files changed
+957 -84

No files matched your search

+27 -52
View File
@@ -1,58 +1,33 @@
# OrionOS ISO builder
# Uses official Arch Linux as the base — provides pacman, pacstrap, archiso.
# Build context: the repo root (OS/)
#
# Build: docker build -t orionos-builder -f iso/docker/Dockerfile .
# Run: docker run --privileged -v $(pwd)/dist:/dist orionos-builder
# Output: dist/orionos.iso
FROM archlinux:latest
# ── disable pacman seccomp sandbox (breaks under QEMU on Apple Silicon) ──
RUN echo "DisableSandbox" >> /etc/pacman.conf
# Install archiso and build dependencies
RUN pacman -Syu --noconfirm \
archiso \
base-devel \
git \
libx11 \
libxft \
libxfixes \
dbus \
libpng \
feh \
picom \
libpam \
ttf-dejavu \
xorg-server \
xorg-xinit \
xterm \
notify-send-py \
&& pacman -Scc --noconfirm
# ── install build tools ────────────────────────────────────────────────
RUN pacman -Syu --noconfirm && \
pacman -S --noconfirm \
archiso \
base-devel \
libx11 \
libxft \
fontconfig \
freetype2 \
imlib2 \
imagemagick \
fakeroot \
git \
sudo \
&& pacman -Scc --noconfirm
WORKDIR /build
COPY . /build/orionos
# ── build OnlyOffice from AUR (as a non-root build user) ─────────────
RUN useradd -m builder && \
echo "builder ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/builder
RUN su builder -c " \
git clone --depth=1 https://aur.archlinux.org/onlyoffice-bin.git /tmp/onlyoffice && \
cd /tmp/onlyoffice && \
makepkg -s --noconfirm 2>&1 | tail -5 \
" && \
find /tmp/onlyoffice -name '*.pkg.tar.zst' -exec cp {} /onlyoffice.pkg.tar.zst \; || \
echo "OnlyOffice AUR build failed — will be skipped in ISO"
# Build OrionOS components
RUN cd /build/orionos && make && make install
# ── show which mkinitcpio hooks archiso installed (helps debugging) ───
RUN echo "=== archiso initcpio hooks ===" && \
ls /usr/lib/initcpio/hooks/ 2>/dev/null || echo "(none found)"
# Copy archiso profile and build the ISO
RUN cp -r /build/orionos/iso/profile /tmp/orionos-profile
RUN mkarchiso -v -w /tmp/iso-work -o /output /tmp/orionos-profile
# ── copy the entire OrionOS source tree ──────────────────────────────
WORKDIR /orionos
COPY . .
# ── build the OrionOS binaries inside the container ───────────────────
# pkg-config finds X11/Xft headers automatically on Arch — no overrides needed
RUN make
# ── generate the default wallpaper ───────────────────────────────────
RUN bash themes/wallpapers/generate-default.sh || true
# ── run the ISO build script ──────────────────────────────────────────
# --privileged is required for loop device mounts inside the container
ENTRYPOINT ["/orionos/iso/docker/entrypoint.sh"]
CMD ["/bin/bash"]