Skip to content

Commit 93f8d4b

Browse files
committed
regreet
1 parent 1c27de9 commit 93f8d4b

10 files changed

Lines changed: 107 additions & 34 deletions

File tree

build_files/apps/01-apps.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/bash
2+
# Hypercube Applications
3+
# User-facing applications
4+
5+
set -ouex pipefail
6+
7+
echo "Installing applications..."
8+
9+
### Web Browser
10+
dnf5 -y install firefox
11+
12+
echo "Applications installed successfully"

build_files/base/01-base-system.sh

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,14 @@ echo "Installing Hypercube base system..."
99
# Clean DNF cache first
1010
dnf5 -y clean all
1111

12-
### Display Manager: greetd + tuigreet
13-
# Both are in official Fedora repos
14-
# Note: Can switch to regreet (GTK greeter) when F43 COPR is available
12+
### Display Manager: greetd + regreet
13+
# greetd is in official Fedora repos, regreet from binarypie/hypercube COPR
14+
# cage is a minimal Wayland compositor to host regreet
1515
dnf5 -y install \
1616
greetd \
1717
greetd-selinux \
18-
tuigreet
18+
cage \
19+
regreet
1920

2021
### Desktop Portals & Integration
2122
dnf5 -y install \

build_files/dx/01-dx-tooling.sh

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@ dnf5 -y install \
1616
buildah \
1717
skopeo
1818

19-
### Podman Desktop - GUI for containers and Kubernetes
20-
# Installed via Flatpak for automatic updates
21-
flatpak install -y flathub io.podman_desktop.PodmanDesktop
22-
2319
### Additional dev utilities
2420
dnf5 -y install \
2521
just \

build_files/hypercube/03-hypercube-configs.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,4 +72,7 @@ install -Dm644 "${CONFIG_DIR}/gtk-4.0/settings.ini" /etc/xdg/gtk-4.0/settings.in
7272
install -Dm644 "${CONFIG_DIR}/qt6ct/qt6ct.conf" /etc/xdg/qt6ct/qt6ct.conf
7373
install -Dm644 "${CONFIG_DIR}/qt6ct/colors/TokyoNight.conf" /usr/share/qt6ct/colors/TokyoNight.conf
7474

75+
### ReGreet login greeter configuration (Tokyo Night themed)
76+
install -Dm644 "${CONFIG_DIR}/regreet/regreet.toml" /etc/greetd/regreet.toml
77+
7578
echo "Hypercube configurations installed successfully"

dot_files/quickshell/modules/sidebars/SidebarLeft.qml

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -388,13 +388,6 @@ PanelWindow {
388388
}
389389
}
390390

391-
// Datacube activate process
392-
Process {
393-
id: datacubeActivate
394-
property string itemJson: ""
395-
command: ["bash", "-lc", "echo '" + itemJson + "' | datacube-cli activate --json"]
396-
}
397-
398391
function getIconPath(iconName) {
399392
if (!iconName) return ""
400393
if (iconName.startsWith("/")) return "file://" + iconName
@@ -416,22 +409,17 @@ PanelWindow {
416409
}
417410

418411
function launchApp(app) {
419-
if (!app) return
420-
421-
if (app._raw) {
422-
const itemJson = JSON.stringify(app._raw).replace(/'/g, "'\\''")
423-
datacubeActivate.itemJson = itemJson
424-
datacubeActivate.running = true
425-
} else if (app.exec) {
426-
appLaunchProcess.command = ["sh", "-c", app.exec]
427-
appLaunchProcess.running = true
428-
}
412+
if (!app || !app.exec) return
413+
414+
// Use hyprctl dispatch exec to inherit Hyprland's environment
415+
appLaunchProcess.command = ["hyprctl", "dispatch", "exec", app.exec]
416+
appLaunchProcess.running = true
429417

430418
Root.GlobalStates.sidebarLeftOpen = false
431419
searchInput.text = ""
432420
}
433421

434-
// Fallback app launcher process
422+
// App launcher process - uses hyprctl to inherit compositor environment
435423
Process {
436424
id: appLaunchProcess
437425
command: ["true"]

dot_files/regreet/regreet.toml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# ReGreet configuration for Hypercube
2+
# See https://github.com/rharish101/ReGreet for full options
3+
4+
[background]
5+
path = "/usr/share/backgrounds/hypercube-background.png"
6+
fit = "Cover"
7+
8+
[GTK]
9+
application_prefer_dark_theme = true
10+
cursor_theme_name = "Adwaita"
11+
icon_theme_name = "Tokyonight-Dark"
12+
theme_name = "Tokyonight-Dark"
13+
font_name = "JetBrains Mono 11"

flatpaks/system-flatpaks.list

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,7 @@
11
# Hypercube System Flatpaks
22
be.alexandervanhee.gradia
3+
io.podman_desktop.PodmanDesktop
4+
org.mozilla.Thunderbird
5+
io.github.dvlv.boxbuddyrs
6+
io.github.flattool.Warehouse
7+
com.github.tchx84.Flatseal

iso_files/hook-post-rootfs.sh

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,8 @@ windowrule = tile, class:^(liveinst)$
8888
windowrule = noinitialfocus, class:^(anaconda)$
8989
windowrule = noinitialfocus, class:^(liveinst)$
9090
91-
# Auto-launch terminal and network applet for live environment
92-
exec-once = nm-applet --indicator
93-
exec-once = $terminal
94-
95-
# Live ISO - Auto-launch installer (after terminal so it doesn't grab focus first)
96-
exec-once = sleep 1 && liveinst
91+
# Live ISO - Auto-launch installer
92+
exec-once = liveinst
9793
EOF
9894
fi
9995

@@ -114,5 +110,6 @@ systemctl disable hypercube-first-boot.service || true
114110
# Disable services that fail in live environment
115111
systemctl disable mcelog.service || true
116112
systemctl disable ublue-nvctk-cdi.service || true
113+
systemctl disable systemd-modules-load.service || true
117114

118115
echo "Hypercube post-rootfs hook completed successfully"

packages/regreet/regreet.spec

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# NOTE: This package requires "Enable internet access during builds" in COPR settings
2+
# because cargo needs to download dependencies
3+
4+
%global debug_package %{nil}
5+
6+
Name: regreet
7+
Version: 0.2.0
8+
Release: 1%{?dist}
9+
Summary: Clean and customizable GTK4 greeter for greetd
10+
11+
License: GPL-3.0-or-later
12+
URL: https://github.com/rharish101/ReGreet
13+
Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz
14+
15+
ExcludeArch: %{ix86}
16+
17+
BuildRequires: rust >= 1.75.0
18+
BuildRequires: cargo
19+
BuildRequires: pkgconfig(gtk4) >= 4.0
20+
BuildRequires: pkgconfig(glib-2.0)
21+
BuildRequires: pkgconfig(pango)
22+
BuildRequires: pkgconfig(cairo)
23+
24+
Requires: greetd
25+
Requires: gtk4
26+
Requires: cage
27+
28+
%description
29+
ReGreet is a clean and customizable GTK4-based greeter for greetd.
30+
It provides a modern login screen experience for Wayland compositors.
31+
32+
Features:
33+
- Customizable appearance with CSS
34+
- Background image support
35+
- Session selection
36+
- User management
37+
38+
%prep
39+
%autosetup -n ReGreet-%{version}
40+
41+
%build
42+
cargo build --release -F gtk4_8
43+
44+
%install
45+
install -Dpm 0755 target/release/%{name} %{buildroot}%{_bindir}/%{name}
46+
47+
# Create cache directory
48+
install -dm 0755 %{buildroot}%{_localstatedir}/cache/%{name}
49+
50+
%files
51+
%license LICENSE.md
52+
%doc README.md
53+
%{_bindir}/%{name}
54+
%dir %{_localstatedir}/cache/%{name}
55+
56+
%changelog
57+
* Tue Dec 31 2024 Hypercube <hypercube@binarypie.dev> - 0.2.0-1
58+
- Initial package for Hypercube

system_files/shared/etc/greetd/config.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
vt = 1
44

55
[default_session]
6-
# Run tuigreet with Hyprland as the default session
7-
command = "tuigreet --remember --remember-session --time --greeting 'Welcome to Hypercube' --asterisks --cmd Hyprland"
6+
# Run regreet in cage (minimal Wayland compositor)
7+
command = "cage -s -- regreet"
88
user = "greeter"

0 commit comments

Comments
 (0)