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
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
# OrionOS live session autostart — sourced by ~/.xinitrc on the ISO
|
||||
|
||||
# Compositor
|
||||
picom --config /etc/orionos/picom.conf &
|
||||
|
||||
# Set wallpaper
|
||||
orionwallpaper &
|
||||
|
||||
# Notification daemon
|
||||
orionnotify &
|
||||
|
||||
# Clipboard manager
|
||||
orionclip &
|
||||
|
||||
# Deskbar
|
||||
oriondeskbar &
|
||||
|
||||
# Window manager (blocking)
|
||||
exec orionwm
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
source /etc/orionos/xinitrc
|
||||
+27
-52
@@ -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"]
|
||||
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
# archiso profile definition for OrionOS
|
||||
|
||||
iso_name="OrionOS"
|
||||
iso_label="ORIONOS_$(date +%Y%m)"
|
||||
iso_publisher="OrionOS Project"
|
||||
iso_application="OrionOS Live"
|
||||
iso_version="$(date +%Y.%m)"
|
||||
install_dir="arch"
|
||||
buildmodes=('iso')
|
||||
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito'
|
||||
'uefi-ia32.grub.esp' 'uefi-x64.grub.esp'
|
||||
'uefi-ia32.grub.eltorito' 'uefi-x64.grub.eltorito')
|
||||
arch="x86_64"
|
||||
pacman_conf="pacman.conf"
|
||||
airootfs_image_type="squashfs"
|
||||
airootfs_image_tool_options=('-comp' 'zstd' '-Xcompression-level' '15')
|
||||
file_permissions=(
|
||||
["/etc/orionos/xinitrc"]="0:0:755"
|
||||
["/root/.xinitrc"]="0:0:755"
|
||||
)
|
||||
Reference in new issue
Block a user