From eec4d730254fbd44ade96cbdc4201ada96c60dbc Mon Sep 17 00:00:00 2001 From: binarypie Date: Fri, 30 Jan 2026 12:24:20 -0800 Subject: [PATCH 01/10] Yazi + resvg dep --- packages/README.md | 28 ++++++++++++++ packages/resvg/resvg.spec | 39 +++++++++++++++++++ packages/yazi/yazi.spec | 77 ++++++++++++++++++++++++++++++++++++++ scripts/packages/config.sh | 6 ++- 4 files changed, 149 insertions(+), 1 deletion(-) create mode 100644 packages/resvg/resvg.spec create mode 100644 packages/yazi/yazi.spec diff --git a/packages/README.md b/packages/README.md index 2be6323..75cbb02 100644 --- a/packages/README.md +++ b/packages/README.md @@ -329,6 +329,30 @@ These have no hyprland dependencies and can be built in parallel. --- +### 27. resvg + +| Setting | Value | +|---------|-------| +| Subdir | `packages/resvg` | +| Spec File | `resvg.spec` | +| Version | 0.46.0 | +| Dependencies | None | +| Notes | SVG rendering library and CLI tool, used by yazi for SVG previews | + +--- + +### 28. yazi + +| Setting | Value | +|---------|-------| +| Subdir | `packages/yazi` | +| Spec File | `yazi.spec` | +| Version | 26.1.22 | +| Dependencies | None | +| Notes | Terminal file manager written in Rust. Recommends resvg for SVG previews | + +--- + ## Build Order Summary To ensure dependencies are satisfied, build in this order: @@ -346,6 +370,8 @@ To ensure dependencies are satisfied, build in this order: 10. quickshell 11. livesys-scripts 12. wifitui +13. resvg +14. yazi **Batch 2** (depends on Batch 1): 1. hyprlang (needs hyprutils) @@ -404,3 +430,5 @@ To ensure dependencies are satisfied, build in this order: | 23 | quickshell | `packages/quickshell` | `quickshell.spec` | 0.2.1 | | 24 | livesys-scripts | `packages/livesys-scripts` | `livesys-scripts.spec` | 0.9.1 | | 25 | wifitui | `packages/wifitui` | `wifitui.spec` | 0.9.0 | +| 26 | resvg | `packages/resvg` | `resvg.spec` | 0.46.0 | +| 27 | yazi | `packages/yazi` | `yazi.spec` | 26.1.22 | diff --git a/packages/resvg/resvg.spec b/packages/resvg/resvg.spec new file mode 100644 index 0000000..ccedde2 --- /dev/null +++ b/packages/resvg/resvg.spec @@ -0,0 +1,39 @@ +# NOTE: This package requires "Enable internet access during builds" in COPR settings +# because cargo needs to download dependencies + +%global debug_package %{nil} + +Name: resvg +Version: 0.46.0 +Release: 1%{?dist} +Summary: SVG rendering library and CLI tool + +License: Apache-2.0 OR MIT +URL: https://github.com/linebender/resvg +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +BuildRequires: cargo >= 1.80 +BuildRequires: rust >= 1.80 +BuildRequires: gcc + +%description +resvg is an SVG rendering library and CLI tool. It can be used to render SVG +files to PNG images or to parse SVG files for further processing. + +%prep +%autosetup -n %{name}-%{version} + +%build +RUSTFLAGS='-C strip=symbols' cargo build --release --locked -p resvg + +%install +install -Dpm 0755 target/release/resvg %{buildroot}%{_bindir}/resvg + +%files +%license LICENSE-APACHE LICENSE-MIT +%doc README.md +%{_bindir}/resvg + +%changelog +* Thu Jan 30 2026 Hypercube - 0.46.0-1 +- Initial package for Hypercube diff --git a/packages/yazi/yazi.spec b/packages/yazi/yazi.spec new file mode 100644 index 0000000..544a764 --- /dev/null +++ b/packages/yazi/yazi.spec @@ -0,0 +1,77 @@ +# NOTE: This package requires "Enable internet access during builds" in COPR settings +# because cargo needs to download dependencies + +%global debug_package %{nil} + +Name: yazi +Version: 26.1.22 +Release: 1%{?dist} +Summary: Blazing fast terminal file manager written in Rust + +License: MIT +URL: https://github.com/sxyazi/yazi +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +BuildRequires: cargo >= 1.80 +BuildRequires: rust >= 1.80 +BuildRequires: gcc +BuildRequires: make +BuildRequires: git + +Requires: file + +Recommends: ffmpeg +Recommends: p7zip +Recommends: jq +Recommends: poppler-utils +Recommends: fd-find +Recommends: ripgrep +Recommends: fzf +Recommends: zoxide +Recommends: ImageMagick +Recommends: resvg + +%description +Yazi is a blazing fast terminal file manager written in Rust, based on async I/O. +It provides an efficient, user-friendly, and customizable file management experience +with features like image preview, plugin support, and multi-tab interface. + +%prep +%autosetup -n %{name}-%{version} + +%build +export YAZI_GEN_COMPLETIONS=1 +RUSTFLAGS='-C strip=symbols' cargo build --release --locked + +%install +install -Dpm 0755 target/release/yazi %{buildroot}%{_bindir}/yazi +install -Dpm 0755 target/release/ya %{buildroot}%{_bindir}/ya + +# Install shell completions +install -Dpm 0644 yazi-boot/completions/yazi.bash %{buildroot}%{_datadir}/bash-completion/completions/yazi +install -Dpm 0644 yazi-boot/completions/yazi.fish %{buildroot}%{_datadir}/fish/vendor_completions.d/yazi.fish +install -Dpm 0644 yazi-boot/completions/_yazi %{buildroot}%{_datadir}/zsh/site-functions/_yazi + +install -Dpm 0644 yazi-cli/completions/ya.bash %{buildroot}%{_datadir}/bash-completion/completions/ya +install -Dpm 0644 yazi-cli/completions/ya.fish %{buildroot}%{_datadir}/fish/vendor_completions.d/ya.fish +install -Dpm 0644 yazi-cli/completions/_ya %{buildroot}%{_datadir}/zsh/site-functions/_ya + +# Remove cargo artifacts +rm -f %{buildroot}%{_prefix}/.crates.toml +rm -f %{buildroot}%{_prefix}/.crates2.json + +%files +%license LICENSE +%doc README.md +%{_bindir}/yazi +%{_bindir}/ya +%{_datadir}/bash-completion/completions/yazi +%{_datadir}/bash-completion/completions/ya +%{_datadir}/fish/vendor_completions.d/yazi.fish +%{_datadir}/fish/vendor_completions.d/ya.fish +%{_datadir}/zsh/site-functions/_yazi +%{_datadir}/zsh/site-functions/_ya + +%changelog +* Thu Jan 30 2026 Hypercube - 26.1.22-1 +- Initial package for Hypercube diff --git a/scripts/packages/config.sh b/scripts/packages/config.sh index 2475973..40b5548 100755 --- a/scripts/packages/config.sh +++ b/scripts/packages/config.sh @@ -28,6 +28,8 @@ declare -gA PACKAGE_REPOS=( [starship]="starship/starship" [lazygit]="jesseduffield/lazygit" [wifitui]="shazow/wifitui" + [yazi]="sxyazi/yazi" + [resvg]="linebender/resvg" # Other [glaze]="stephenberry/glaze" @@ -56,6 +58,8 @@ declare -gA PACKAGE_DEPS=( [quickshell]="" [livesys-scripts]="" [wifitui]="" + [resvg]="" + [yazi]="" # Packages with dependencies [hyprlang]="hyprutils" @@ -75,7 +79,7 @@ declare -gA PACKAGE_DEPS=( # Build batches (packages in same batch can build in parallel) declare -gA BUILD_BATCHES=( - [1]="hyprutils hyprwayland-scanner hyprland-protocols hyprwire glaze uwsm eza starship lazygit quickshell livesys-scripts wifitui" + [1]="hyprutils hyprwayland-scanner hyprland-protocols hyprwire glaze uwsm eza starship lazygit quickshell livesys-scripts wifitui resvg yazi" [2]="hyprlang hyprgraphics aquamarine" [3]="hyprcursor hyprland-qt-support" [4]="hyprland hyprlock hypridle xdg-desktop-portal-hyprland hyprpolkitagent hyprtoolkit" From 51140ed70fe8dbd919cf39b04586d08d1376184c Mon Sep 17 00:00:00 2001 From: binarypie Date: Fri, 30 Jan 2026 12:28:42 -0800 Subject: [PATCH 02/10] bluetui and iamb. --- packages/README.md | 28 +++++++++++++++++++++++ packages/bluetui/bluetui.spec | 43 +++++++++++++++++++++++++++++++++++ packages/iamb/iamb.spec | 41 +++++++++++++++++++++++++++++++++ scripts/packages/config.sh | 6 ++++- 4 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 packages/bluetui/bluetui.spec create mode 100644 packages/iamb/iamb.spec diff --git a/packages/README.md b/packages/README.md index 75cbb02..2d6f6fc 100644 --- a/packages/README.md +++ b/packages/README.md @@ -353,6 +353,30 @@ These have no hyprland dependencies and can be built in parallel. --- +### 29. bluetui + +| Setting | Value | +|---------|-------| +| Subdir | `packages/bluetui` | +| Spec File | `bluetui.spec` | +| Version | 0.8.1 | +| Dependencies | None | +| Notes | TUI for managing Bluetooth devices. Requires bluez at runtime | + +--- + +### 30. iamb + +| Setting | Value | +|---------|-------| +| Subdir | `packages/iamb` | +| Spec File | `iamb.spec` | +| Version | 0.0.11 | +| Dependencies | None | +| Notes | Matrix chat client with Vim-like keybindings | + +--- + ## Build Order Summary To ensure dependencies are satisfied, build in this order: @@ -372,6 +396,8 @@ To ensure dependencies are satisfied, build in this order: 12. wifitui 13. resvg 14. yazi +15. bluetui +16. iamb **Batch 2** (depends on Batch 1): 1. hyprlang (needs hyprutils) @@ -432,3 +458,5 @@ To ensure dependencies are satisfied, build in this order: | 25 | wifitui | `packages/wifitui` | `wifitui.spec` | 0.9.0 | | 26 | resvg | `packages/resvg` | `resvg.spec` | 0.46.0 | | 27 | yazi | `packages/yazi` | `yazi.spec` | 26.1.22 | +| 28 | bluetui | `packages/bluetui` | `bluetui.spec` | 0.8.1 | +| 29 | iamb | `packages/iamb` | `iamb.spec` | 0.0.11 | diff --git a/packages/bluetui/bluetui.spec b/packages/bluetui/bluetui.spec new file mode 100644 index 0000000..fbe00d1 --- /dev/null +++ b/packages/bluetui/bluetui.spec @@ -0,0 +1,43 @@ +# NOTE: This package requires "Enable internet access during builds" in COPR settings +# because cargo needs to download dependencies + +%global debug_package %{nil} + +Name: bluetui +Version: 0.8.1 +Release: 1%{?dist} +Summary: TUI for managing Bluetooth devices + +License: GPL-3.0-only +URL: https://github.com/pythops/bluetui +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +BuildRequires: cargo >= 1.80 +BuildRequires: rust >= 1.80 +BuildRequires: gcc +BuildRequires: dbus-devel + +Requires: bluez + +%description +Bluetui is a TUI (Terminal User Interface) for managing Bluetooth devices on Linux. +It provides an intuitive interface for scanning, pairing, connecting, and managing +Bluetooth devices from the terminal. + +%prep +%autosetup -n %{name}-%{version} + +%build +RUSTFLAGS='-C strip=symbols' cargo build --release --locked + +%install +install -Dpm 0755 target/release/bluetui %{buildroot}%{_bindir}/bluetui + +%files +%license LICENSE +%doc README.md +%{_bindir}/bluetui + +%changelog +* Thu Jan 30 2026 Hypercube - 0.8.1-1 +- Initial package for Hypercube diff --git a/packages/iamb/iamb.spec b/packages/iamb/iamb.spec new file mode 100644 index 0000000..9fe25c9 --- /dev/null +++ b/packages/iamb/iamb.spec @@ -0,0 +1,41 @@ +# NOTE: This package requires "Enable internet access during builds" in COPR settings +# because cargo needs to download dependencies + +%global debug_package %{nil} + +Name: iamb +Version: 0.0.11 +Release: 1%{?dist} +Summary: Matrix chat client with Vim-like keybindings + +License: Apache-2.0 +URL: https://github.com/ulyssa/iamb +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +BuildRequires: cargo >= 1.83 +BuildRequires: rust >= 1.83 +BuildRequires: gcc + +%description +iamb is a Matrix client for the terminal that uses Vim keybindings. It supports +multiple profiles, threads, spaces, notifications, custom commands, and more. +The interface is designed to be familiar to Vim users while providing full +Matrix functionality. + +%prep +%autosetup -n %{name}-%{version} + +%build +RUSTFLAGS='-C strip=symbols' cargo build --release --locked + +%install +install -Dpm 0755 target/release/iamb %{buildroot}%{_bindir}/iamb + +%files +%license LICENSE +%doc README.md +%{_bindir}/iamb + +%changelog +* Thu Jan 30 2026 Hypercube - 0.0.11-1 +- Initial package for Hypercube diff --git a/scripts/packages/config.sh b/scripts/packages/config.sh index 40b5548..79e2c0e 100755 --- a/scripts/packages/config.sh +++ b/scripts/packages/config.sh @@ -30,6 +30,8 @@ declare -gA PACKAGE_REPOS=( [wifitui]="shazow/wifitui" [yazi]="sxyazi/yazi" [resvg]="linebender/resvg" + [bluetui]="pythops/bluetui" + [iamb]="ulyssa/iamb" # Other [glaze]="stephenberry/glaze" @@ -60,6 +62,8 @@ declare -gA PACKAGE_DEPS=( [wifitui]="" [resvg]="" [yazi]="" + [bluetui]="" + [iamb]="" # Packages with dependencies [hyprlang]="hyprutils" @@ -79,7 +83,7 @@ declare -gA PACKAGE_DEPS=( # Build batches (packages in same batch can build in parallel) declare -gA BUILD_BATCHES=( - [1]="hyprutils hyprwayland-scanner hyprland-protocols hyprwire glaze uwsm eza starship lazygit quickshell livesys-scripts wifitui resvg yazi" + [1]="hyprutils hyprwayland-scanner hyprland-protocols hyprwire glaze uwsm eza starship lazygit quickshell livesys-scripts wifitui resvg yazi bluetui iamb" [2]="hyprlang hyprgraphics aquamarine" [3]="hyprcursor hyprland-qt-support" [4]="hyprland hyprlock hypridle xdg-desktop-portal-hyprland hyprpolkitagent hyprtoolkit" From 9005c4cd5c97aabb45abb66f2603b2d7731c552c Mon Sep 17 00:00:00 2001 From: binarypie Date: Fri, 30 Jan 2026 12:32:13 -0800 Subject: [PATCH 03/10] mali --- packages/README.md | 14 ++++++++++++ packages/meli/meli.spec | 45 ++++++++++++++++++++++++++++++++++++++ scripts/packages/config.sh | 3 ++- 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 packages/meli/meli.spec diff --git a/packages/README.md b/packages/README.md index 2d6f6fc..5ae5937 100644 --- a/packages/README.md +++ b/packages/README.md @@ -377,6 +377,18 @@ These have no hyprland dependencies and can be built in parallel. --- +### 31. meli + +| Setting | Value | +|---------|-------| +| Subdir | `packages/meli` | +| Spec File | `meli.spec` | +| Version | 0.8.13 | +| Dependencies | None | +| Notes | Terminal email client. Source from git.meli-email.org, not GitHub | + +--- + ## Build Order Summary To ensure dependencies are satisfied, build in this order: @@ -398,6 +410,7 @@ To ensure dependencies are satisfied, build in this order: 14. yazi 15. bluetui 16. iamb +17. meli **Batch 2** (depends on Batch 1): 1. hyprlang (needs hyprutils) @@ -460,3 +473,4 @@ To ensure dependencies are satisfied, build in this order: | 27 | yazi | `packages/yazi` | `yazi.spec` | 26.1.22 | | 28 | bluetui | `packages/bluetui` | `bluetui.spec` | 0.8.1 | | 29 | iamb | `packages/iamb` | `iamb.spec` | 0.0.11 | +| 30 | meli | `packages/meli` | `meli.spec` | 0.8.13 | diff --git a/packages/meli/meli.spec b/packages/meli/meli.spec new file mode 100644 index 0000000..59ceb8f --- /dev/null +++ b/packages/meli/meli.spec @@ -0,0 +1,45 @@ +# NOTE: This package requires "Enable internet access during builds" in COPR settings +# because cargo needs to download dependencies + +%global debug_package %{nil} + +Name: meli +Version: 0.8.13 +Release: 1%{?dist} +Summary: Terminal email client + +License: GPL-3.0-or-later +URL: https://meli-email.org +Source0: https://git.meli-email.org/meli/meli/archive/v%{version}.tar.gz + +BuildRequires: cargo >= 1.85 +BuildRequires: rust >= 1.85 +BuildRequires: gcc +BuildRequires: pkgconfig(sqlite3) +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(openssl) + +Recommends: gpgme + +%description +meli is a configurable and extensible terminal email client with sane defaults. +It supports IMAP, Maildir, notmuch, JMAP, mbox, and NNTP backends. Features include +email threading, tabs for multitasking, GPG support, and contact management. + +%prep +%autosetup -n %{name} + +%build +RUSTFLAGS='-C strip=symbols' cargo build --release --locked --bin meli + +%install +install -Dpm 0755 target/release/meli %{buildroot}%{_bindir}/meli + +%files +%license COPYING +%doc README.md +%{_bindir}/meli + +%changelog +* Thu Jan 30 2026 Hypercube - 0.8.13-1 +- Initial package for Hypercube diff --git a/scripts/packages/config.sh b/scripts/packages/config.sh index 79e2c0e..008ca47 100755 --- a/scripts/packages/config.sh +++ b/scripts/packages/config.sh @@ -64,6 +64,7 @@ declare -gA PACKAGE_DEPS=( [yazi]="" [bluetui]="" [iamb]="" + [meli]="" # Packages with dependencies [hyprlang]="hyprutils" @@ -83,7 +84,7 @@ declare -gA PACKAGE_DEPS=( # Build batches (packages in same batch can build in parallel) declare -gA BUILD_BATCHES=( - [1]="hyprutils hyprwayland-scanner hyprland-protocols hyprwire glaze uwsm eza starship lazygit quickshell livesys-scripts wifitui resvg yazi bluetui iamb" + [1]="hyprutils hyprwayland-scanner hyprland-protocols hyprwire glaze uwsm eza starship lazygit quickshell livesys-scripts wifitui resvg yazi bluetui iamb meli" [2]="hyprlang hyprgraphics aquamarine" [3]="hyprcursor hyprland-qt-support" [4]="hyprland hyprlock hypridle xdg-desktop-portal-hyprland hyprpolkitagent hyprtoolkit" From 14f9da425282d62ce731f73c81be3aec8ffd3dc8 Mon Sep 17 00:00:00 2001 From: binarypie Date: Fri, 30 Jan 2026 13:00:43 -0800 Subject: [PATCH 04/10] lazy*, podman, and resterm --- packages/README.md | 56 +++++++++++++++++++++++++++ packages/lazyjournal/lazyjournal.spec | 39 +++++++++++++++++++ packages/lazysql/lazysql.spec | 41 ++++++++++++++++++++ packages/podman-tui/podman-tui.spec | 41 ++++++++++++++++++++ packages/resterm/resterm.spec | 39 +++++++++++++++++++ scripts/packages/config.sh | 10 ++++- 6 files changed, 225 insertions(+), 1 deletion(-) create mode 100644 packages/lazyjournal/lazyjournal.spec create mode 100644 packages/lazysql/lazysql.spec create mode 100644 packages/podman-tui/podman-tui.spec create mode 100644 packages/resterm/resterm.spec diff --git a/packages/README.md b/packages/README.md index 5ae5937..54e2708 100644 --- a/packages/README.md +++ b/packages/README.md @@ -389,6 +389,54 @@ These have no hyprland dependencies and can be built in parallel. --- +### 32. lazyjournal + +| Setting | Value | +|---------|-------| +| Subdir | `packages/lazyjournal` | +| Spec File | `lazyjournal.spec` | +| Version | 0.8.4 | +| Dependencies | None | +| Notes | TUI for viewing journalctl, Docker, Podman, and Kubernetes logs | + +--- + +### 33. lazysql + +| Setting | Value | +|---------|-------| +| Subdir | `packages/lazysql` | +| Spec File | `lazysql.spec` | +| Version | 0.4.6 | +| Dependencies | None | +| Notes | TUI database client for PostgreSQL, MySQL, SQLite, MSSQL | + +--- + +### 34. resterm + +| Setting | Value | +|---------|-------| +| Subdir | `packages/resterm` | +| Spec File | `resterm.spec` | +| Version | 0.20.3 | +| Dependencies | None | +| Notes | TUI REST, gRPC, and WebSocket API client | + +--- + +### 35. podman-tui + +| Setting | Value | +|---------|-------| +| Subdir | `packages/podman-tui` | +| Spec File | `podman-tui.spec` | +| Version | 1.10.0 | +| Dependencies | None | +| Notes | TUI for managing Podman containers. Requires podman at runtime | + +--- + ## Build Order Summary To ensure dependencies are satisfied, build in this order: @@ -411,6 +459,10 @@ To ensure dependencies are satisfied, build in this order: 15. bluetui 16. iamb 17. meli +18. lazyjournal +19. lazysql +20. resterm +21. podman-tui **Batch 2** (depends on Batch 1): 1. hyprlang (needs hyprutils) @@ -474,3 +526,7 @@ To ensure dependencies are satisfied, build in this order: | 28 | bluetui | `packages/bluetui` | `bluetui.spec` | 0.8.1 | | 29 | iamb | `packages/iamb` | `iamb.spec` | 0.0.11 | | 30 | meli | `packages/meli` | `meli.spec` | 0.8.13 | +| 31 | lazyjournal | `packages/lazyjournal` | `lazyjournal.spec` | 0.8.4 | +| 32 | lazysql | `packages/lazysql` | `lazysql.spec` | 0.4.6 | +| 33 | resterm | `packages/resterm` | `resterm.spec` | 0.20.3 | +| 34 | podman-tui | `packages/podman-tui` | `podman-tui.spec` | 1.10.0 | diff --git a/packages/lazyjournal/lazyjournal.spec b/packages/lazyjournal/lazyjournal.spec new file mode 100644 index 0000000..800fa41 --- /dev/null +++ b/packages/lazyjournal/lazyjournal.spec @@ -0,0 +1,39 @@ +# NOTE: This package requires "Enable internet access during builds" in COPR settings +# because go needs to download dependencies + +%global debug_package %{nil} + +Name: lazyjournal +Version: 0.8.4 +Release: 1%{?dist} +Summary: TUI for viewing systemd journal and container logs + +License: MIT +URL: https://github.com/Lifailon/lazyjournal +Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz + +BuildRequires: golang >= 1.21 +BuildRequires: git + +%description +LazyJournal is a TUI for viewing journalctl/systemd logs as well as Docker, +Podman, and Kubernetes container logs. It provides a unified interface for +browsing and filtering logs from multiple sources. + +%prep +%autosetup -n %{name}-%{version} + +%build +go build -ldflags "-X main.version=%{version}" -o %{name} + +%install +install -Dpm 0755 %{name} %{buildroot}%{_bindir}/%{name} + +%files +%license LICENSE +%doc README.md +%{_bindir}/%{name} + +%changelog +* Thu Jan 30 2026 Hypercube - 0.8.4-1 +- Initial package for Hypercube diff --git a/packages/lazysql/lazysql.spec b/packages/lazysql/lazysql.spec new file mode 100644 index 0000000..77a00a5 --- /dev/null +++ b/packages/lazysql/lazysql.spec @@ -0,0 +1,41 @@ +# NOTE: This package requires "Enable internet access during builds" in COPR settings +# because go needs to download dependencies + +%global debug_package %{nil} + +Name: lazysql +Version: 0.4.6 +Release: 1%{?dist} +Summary: TUI database management client + +License: MIT +URL: https://github.com/jorgerojas26/lazysql +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +BuildRequires: golang >= 1.21 +BuildRequires: git + +Recommends: xclip + +%description +LazySQL is a cross-platform TUI database management tool. It supports +PostgreSQL, MySQL, SQLite, and Microsoft SQL Server. Features include +query execution, table browsing, and connection management. + +%prep +%autosetup -n %{name}-%{version} + +%build +go build -ldflags "-X main.version=%{version}" -o %{name} + +%install +install -Dpm 0755 %{name} %{buildroot}%{_bindir}/%{name} + +%files +%license LICENSE.txt +%doc README.md +%{_bindir}/%{name} + +%changelog +* Thu Jan 30 2026 Hypercube - 0.4.6-1 +- Initial package for Hypercube diff --git a/packages/podman-tui/podman-tui.spec b/packages/podman-tui/podman-tui.spec new file mode 100644 index 0000000..f1a8868 --- /dev/null +++ b/packages/podman-tui/podman-tui.spec @@ -0,0 +1,41 @@ +# NOTE: This package requires "Enable internet access during builds" in COPR settings +# because go needs to download dependencies + +%global debug_package %{nil} + +Name: podman-tui +Version: 1.10.0 +Release: 1%{?dist} +Summary: TUI for managing Podman containers + +License: Apache-2.0 +URL: https://github.com/containers/podman-tui +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +BuildRequires: golang >= 1.21 +BuildRequires: git + +Requires: podman + +%description +Podman TUI is a terminal user interface for managing Podman containers, +pods, images, volumes, and networks. It communicates with local or remote +Podman machines through the Podman socket or SSH. + +%prep +%autosetup -n %{name}-%{version} + +%build +go build -ldflags "-X main.version=%{version}" -o %{name} + +%install +install -Dpm 0755 %{name} %{buildroot}%{_bindir}/%{name} + +%files +%license LICENSE +%doc README.md +%{_bindir}/%{name} + +%changelog +* Thu Jan 30 2026 Hypercube - 1.10.0-1 +- Initial package for Hypercube diff --git a/packages/resterm/resterm.spec b/packages/resterm/resterm.spec new file mode 100644 index 0000000..0f61224 --- /dev/null +++ b/packages/resterm/resterm.spec @@ -0,0 +1,39 @@ +# NOTE: This package requires "Enable internet access during builds" in COPR settings +# because go needs to download dependencies + +%global debug_package %{nil} + +Name: resterm +Version: 0.20.3 +Release: 1%{?dist} +Summary: TUI REST, gRPC, and WebSocket API client + +License: Apache-2.0 +URL: https://github.com/unkn0wn-root/resterm +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +BuildRequires: golang >= 1.21 +BuildRequires: git + +%description +Resterm is a terminal-based API client supporting REST, gRPC, and WebSocket +protocols. Features include request history, environment variables, SSH tunnels, +and OpenTelemetry integration. + +%prep +%autosetup -n %{name}-%{version} + +%build +go build -ldflags "-X main.version=%{version}" -o %{name} ./cmd/resterm + +%install +install -Dpm 0755 %{name} %{buildroot}%{_bindir}/%{name} + +%files +%license LICENSE +%doc README.md +%{_bindir}/%{name} + +%changelog +* Thu Jan 30 2026 Hypercube - 0.20.3-1 +- Initial package for Hypercube diff --git a/scripts/packages/config.sh b/scripts/packages/config.sh index 008ca47..8bac5c3 100755 --- a/scripts/packages/config.sh +++ b/scripts/packages/config.sh @@ -32,6 +32,10 @@ declare -gA PACKAGE_REPOS=( [resvg]="linebender/resvg" [bluetui]="pythops/bluetui" [iamb]="ulyssa/iamb" + [lazyjournal]="Lifailon/lazyjournal" + [lazysql]="jorgerojas26/lazysql" + [resterm]="unkn0wn-root/resterm" + [podman-tui]="containers/podman-tui" # Other [glaze]="stephenberry/glaze" @@ -65,6 +69,10 @@ declare -gA PACKAGE_DEPS=( [bluetui]="" [iamb]="" [meli]="" + [lazyjournal]="" + [lazysql]="" + [resterm]="" + [podman-tui]="" # Packages with dependencies [hyprlang]="hyprutils" @@ -84,7 +92,7 @@ declare -gA PACKAGE_DEPS=( # Build batches (packages in same batch can build in parallel) declare -gA BUILD_BATCHES=( - [1]="hyprutils hyprwayland-scanner hyprland-protocols hyprwire glaze uwsm eza starship lazygit quickshell livesys-scripts wifitui resvg yazi bluetui iamb meli" + [1]="hyprutils hyprwayland-scanner hyprland-protocols hyprwire glaze uwsm eza starship lazygit quickshell livesys-scripts wifitui resvg yazi bluetui iamb meli lazyjournal lazysql resterm podman-tui" [2]="hyprlang hyprgraphics aquamarine" [3]="hyprcursor hyprland-qt-support" [4]="hyprland hyprlock hypridle xdg-desktop-portal-hyprland hyprpolkitagent hyprtoolkit" From 5a38924b1bbd460fd7ccfdb5c42ad663b9f0e1cb Mon Sep 17 00:00:00 2001 From: binarypie Date: Fri, 30 Jan 2026 13:26:46 -0800 Subject: [PATCH 05/10] add packages to image --- build_files/apps/01-apps.sh | 5 +++++ build_files/dx/01-dx-tooling.sh | 7 +++++++ build_files/hyprland/01-hyprland-desktop.sh | 5 ++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/build_files/apps/01-apps.sh b/build_files/apps/01-apps.sh index 8eb046b..9cfc1fa 100644 --- a/build_files/apps/01-apps.sh +++ b/build_files/apps/01-apps.sh @@ -9,6 +9,11 @@ echo "Installing applications..." ### Web Browser dnf5 -y install firefox +### TUI Communication Apps - From Hypercube COPR +dnf5 -y install \ + iamb \ + meli + ### Flatpak Applications (system-wide, baked into image) flatpak remote-add --if-not-exists --system flathub https://flathub.org/repo/flathub.flatpakrepo flatpak install --system --noninteractive flathub \ diff --git a/build_files/dx/01-dx-tooling.sh b/build_files/dx/01-dx-tooling.sh index abac0a2..c36404d 100755 --- a/build_files/dx/01-dx-tooling.sh +++ b/build_files/dx/01-dx-tooling.sh @@ -46,6 +46,13 @@ dnf5 -y install \ ### Container signing dnf5 -y install cosign +### TUI Developer Tools - From Hypercube COPR +dnf5 -y install \ + lazyjournal \ + lazysql \ + resterm \ + podman-tui + ### Enable libvirtd for VM management systemctl enable libvirtd.service diff --git a/build_files/hyprland/01-hyprland-desktop.sh b/build_files/hyprland/01-hyprland-desktop.sh index 842e4c9..88ec444 100755 --- a/build_files/hyprland/01-hyprland-desktop.sh +++ b/build_files/hyprland/01-hyprland-desktop.sh @@ -48,7 +48,10 @@ dnf5 -y install \ eza \ starship \ lazygit \ - wifitui + wifitui \ + bluetui \ + yazi \ + resvg ### Fish Shell (set as default) dnf5 -y install fish From ede42ed1fd25c8f5fc93e9faa30b1a88a010c92f Mon Sep 17 00:00:00 2001 From: binarypie Date: Fri, 30 Jan 2026 13:30:57 -0800 Subject: [PATCH 06/10] build fixes --- build_files/dx/01-dx-tooling.sh | 4 +-- packages/README.md | 14 ---------- packages/bluetui/bluetui.spec | 2 +- packages/meli/meli.spec | 4 ++- packages/podman-tui/podman-tui.spec | 41 ----------------------------- scripts/packages/config.sh | 4 +-- 6 files changed, 7 insertions(+), 62 deletions(-) delete mode 100644 packages/podman-tui/podman-tui.spec diff --git a/build_files/dx/01-dx-tooling.sh b/build_files/dx/01-dx-tooling.sh index c36404d..a8a1aa9 100755 --- a/build_files/dx/01-dx-tooling.sh +++ b/build_files/dx/01-dx-tooling.sh @@ -14,6 +14,7 @@ dnf5 -y install \ podman \ podman-compose \ podman-docker \ + podman-tui \ buildah \ skopeo @@ -50,8 +51,7 @@ dnf5 -y install cosign dnf5 -y install \ lazyjournal \ lazysql \ - resterm \ - podman-tui + resterm ### Enable libvirtd for VM management systemctl enable libvirtd.service diff --git a/packages/README.md b/packages/README.md index 54e2708..87c194a 100644 --- a/packages/README.md +++ b/packages/README.md @@ -425,18 +425,6 @@ These have no hyprland dependencies and can be built in parallel. --- -### 35. podman-tui - -| Setting | Value | -|---------|-------| -| Subdir | `packages/podman-tui` | -| Spec File | `podman-tui.spec` | -| Version | 1.10.0 | -| Dependencies | None | -| Notes | TUI for managing Podman containers. Requires podman at runtime | - ---- - ## Build Order Summary To ensure dependencies are satisfied, build in this order: @@ -462,7 +450,6 @@ To ensure dependencies are satisfied, build in this order: 18. lazyjournal 19. lazysql 20. resterm -21. podman-tui **Batch 2** (depends on Batch 1): 1. hyprlang (needs hyprutils) @@ -529,4 +516,3 @@ To ensure dependencies are satisfied, build in this order: | 31 | lazyjournal | `packages/lazyjournal` | `lazyjournal.spec` | 0.8.4 | | 32 | lazysql | `packages/lazysql` | `lazysql.spec` | 0.4.6 | | 33 | resterm | `packages/resterm` | `resterm.spec` | 0.20.3 | -| 34 | podman-tui | `packages/podman-tui` | `podman-tui.spec` | 1.10.0 | diff --git a/packages/bluetui/bluetui.spec b/packages/bluetui/bluetui.spec index fbe00d1..6b4aa17 100644 --- a/packages/bluetui/bluetui.spec +++ b/packages/bluetui/bluetui.spec @@ -35,7 +35,7 @@ install -Dpm 0755 target/release/bluetui %{buildroot}%{_bindir}/bluetui %files %license LICENSE -%doc README.md +%doc Readme.md %{_bindir}/bluetui %changelog diff --git a/packages/meli/meli.spec b/packages/meli/meli.spec index 59ceb8f..1dda6a4 100644 --- a/packages/meli/meli.spec +++ b/packages/meli/meli.spec @@ -17,7 +17,8 @@ BuildRequires: rust >= 1.85 BuildRequires: gcc BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(dbus-1) -BuildRequires: pkgconfig(openssl) +BuildRequires: openssl-devel +BuildRequires: perl-interpreter Recommends: gpgme @@ -30,6 +31,7 @@ email threading, tabs for multitasking, GPG support, and contact management. %autosetup -n %{name} %build +export OPENSSL_NO_VENDOR=1 RUSTFLAGS='-C strip=symbols' cargo build --release --locked --bin meli %install diff --git a/packages/podman-tui/podman-tui.spec b/packages/podman-tui/podman-tui.spec deleted file mode 100644 index f1a8868..0000000 --- a/packages/podman-tui/podman-tui.spec +++ /dev/null @@ -1,41 +0,0 @@ -# NOTE: This package requires "Enable internet access during builds" in COPR settings -# because go needs to download dependencies - -%global debug_package %{nil} - -Name: podman-tui -Version: 1.10.0 -Release: 1%{?dist} -Summary: TUI for managing Podman containers - -License: Apache-2.0 -URL: https://github.com/containers/podman-tui -Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz - -BuildRequires: golang >= 1.21 -BuildRequires: git - -Requires: podman - -%description -Podman TUI is a terminal user interface for managing Podman containers, -pods, images, volumes, and networks. It communicates with local or remote -Podman machines through the Podman socket or SSH. - -%prep -%autosetup -n %{name}-%{version} - -%build -go build -ldflags "-X main.version=%{version}" -o %{name} - -%install -install -Dpm 0755 %{name} %{buildroot}%{_bindir}/%{name} - -%files -%license LICENSE -%doc README.md -%{_bindir}/%{name} - -%changelog -* Thu Jan 30 2026 Hypercube - 1.10.0-1 -- Initial package for Hypercube diff --git a/scripts/packages/config.sh b/scripts/packages/config.sh index 8bac5c3..c1c5f5e 100755 --- a/scripts/packages/config.sh +++ b/scripts/packages/config.sh @@ -35,7 +35,6 @@ declare -gA PACKAGE_REPOS=( [lazyjournal]="Lifailon/lazyjournal" [lazysql]="jorgerojas26/lazysql" [resterm]="unkn0wn-root/resterm" - [podman-tui]="containers/podman-tui" # Other [glaze]="stephenberry/glaze" @@ -72,7 +71,6 @@ declare -gA PACKAGE_DEPS=( [lazyjournal]="" [lazysql]="" [resterm]="" - [podman-tui]="" # Packages with dependencies [hyprlang]="hyprutils" @@ -92,7 +90,7 @@ declare -gA PACKAGE_DEPS=( # Build batches (packages in same batch can build in parallel) declare -gA BUILD_BATCHES=( - [1]="hyprutils hyprwayland-scanner hyprland-protocols hyprwire glaze uwsm eza starship lazygit quickshell livesys-scripts wifitui resvg yazi bluetui iamb meli lazyjournal lazysql resterm podman-tui" + [1]="hyprutils hyprwayland-scanner hyprland-protocols hyprwire glaze uwsm eza starship lazygit quickshell livesys-scripts wifitui resvg yazi bluetui iamb meli lazyjournal lazysql resterm" [2]="hyprlang hyprgraphics aquamarine" [3]="hyprcursor hyprland-qt-support" [4]="hyprland hyprlock hypridle xdg-desktop-portal-hyprland hyprpolkitagent hyprtoolkit" From 2ce11caa289c7e947ff1bd394d003f27e88ab8c8 Mon Sep 17 00:00:00 2001 From: binarypie Date: Fri, 30 Jan 2026 13:37:27 -0800 Subject: [PATCH 07/10] require doc for build --- packages/meli/meli.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/meli/meli.spec b/packages/meli/meli.spec index 1dda6a4..d305319 100644 --- a/packages/meli/meli.spec +++ b/packages/meli/meli.spec @@ -19,6 +19,7 @@ BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(dbus-1) BuildRequires: openssl-devel BuildRequires: perl-interpreter +BuildRequires: mandoc Recommends: gpgme From be96e94d831ab0cdb55832b64376e347c2bb8791 Mon Sep 17 00:00:00 2001 From: binarypie Date: Fri, 30 Jan 2026 13:38:43 -0800 Subject: [PATCH 08/10] add notmuch for meli --- packages/meli/meli.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/meli/meli.spec b/packages/meli/meli.spec index d305319..9397f79 100644 --- a/packages/meli/meli.spec +++ b/packages/meli/meli.spec @@ -22,6 +22,7 @@ BuildRequires: perl-interpreter BuildRequires: mandoc Recommends: gpgme +Recommends: notmuch %description meli is a configurable and extensible terminal email client with sane defaults. From de067acf548ce1ea19fe01e64da5dd15d6d05bf7 Mon Sep 17 00:00:00 2001 From: binarypie Date: Fri, 30 Jan 2026 13:49:21 -0800 Subject: [PATCH 09/10] use system libs for meli build --- packages/meli/meli.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/meli/meli.spec b/packages/meli/meli.spec index 9397f79..7a13015 100644 --- a/packages/meli/meli.spec +++ b/packages/meli/meli.spec @@ -15,11 +15,15 @@ Source0: https://git.meli-email.org/meli/meli/archive/v%{version}.tar.gz BuildRequires: cargo >= 1.85 BuildRequires: rust >= 1.85 BuildRequires: gcc +BuildRequires: pkgconfig BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(dbus-1) BuildRequires: openssl-devel BuildRequires: perl-interpreter BuildRequires: mandoc +BuildRequires: zlib-devel +BuildRequires: libcurl-devel +BuildRequires: libnghttp2-devel Recommends: gpgme Recommends: notmuch @@ -34,7 +38,9 @@ email threading, tabs for multitasking, GPG support, and contact management. %build export OPENSSL_NO_VENDOR=1 -RUSTFLAGS='-C strip=symbols' cargo build --release --locked --bin meli +export LIBZ_SYS_STATIC=0 +export LIBSQLITE3_SYS_USE_PKG_CONFIG=1 +RUSTFLAGS='-C strip=symbols' cargo build --release --locked --bin meli --no-default-features --features "sqlite3 notmuch smtp dbus-notifications gpgme cli-docs jmap" %install install -Dpm 0755 target/release/meli %{buildroot}%{_bindir}/meli From 3781c2306d60e6d3b7cc385116d02346dac1c3a7 Mon Sep 17 00:00:00 2001 From: binarypie Date: Fri, 30 Jan 2026 15:34:34 -0800 Subject: [PATCH 10/10] TUI apps --- build_files/apps/01-apps.sh | 0 .../shared/usr/local/share/applications/bluetui.desktop | 9 +++++++++ .../shared/usr/local/share/applications/iamb.desktop | 9 +++++++++ .../usr/local/share/applications/lazyjournal.desktop | 9 +++++++++ .../shared/usr/local/share/applications/lazysql.desktop | 9 +++++++++ .../shared/usr/local/share/applications/meli.desktop | 9 +++++++++ .../usr/local/share/applications/podman-tui.desktop | 9 +++++++++ .../shared/usr/local/share/applications/resterm.desktop | 9 +++++++++ .../shared/usr/local/share/applications/yazi.desktop | 9 +++++++++ 9 files changed, 72 insertions(+) mode change 100644 => 100755 build_files/apps/01-apps.sh create mode 100644 system_files/shared/usr/local/share/applications/bluetui.desktop create mode 100644 system_files/shared/usr/local/share/applications/iamb.desktop create mode 100644 system_files/shared/usr/local/share/applications/lazyjournal.desktop create mode 100644 system_files/shared/usr/local/share/applications/lazysql.desktop create mode 100644 system_files/shared/usr/local/share/applications/meli.desktop create mode 100644 system_files/shared/usr/local/share/applications/podman-tui.desktop create mode 100644 system_files/shared/usr/local/share/applications/resterm.desktop create mode 100644 system_files/shared/usr/local/share/applications/yazi.desktop diff --git a/build_files/apps/01-apps.sh b/build_files/apps/01-apps.sh old mode 100644 new mode 100755 diff --git a/system_files/shared/usr/local/share/applications/bluetui.desktop b/system_files/shared/usr/local/share/applications/bluetui.desktop new file mode 100644 index 0000000..a0a531b --- /dev/null +++ b/system_files/shared/usr/local/share/applications/bluetui.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Bluetooth Settings +Comment=Manage Bluetooth devices +Exec=ghostty-kiosk bluetui +Icon=bluetooth +Terminal=false +Type=Application +Categories=Settings; +Keywords=bluetooth;wireless;connect;pair; diff --git a/system_files/shared/usr/local/share/applications/iamb.desktop b/system_files/shared/usr/local/share/applications/iamb.desktop new file mode 100644 index 0000000..7a0919f --- /dev/null +++ b/system_files/shared/usr/local/share/applications/iamb.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=iamb +Comment=Matrix chat client +Exec=ghostty-kiosk iamb +Icon=internet-chat +Terminal=false +Type=Application +Categories=Network;Chat;InstantMessaging; +Keywords=matrix;chat;messaging;im; diff --git a/system_files/shared/usr/local/share/applications/lazyjournal.desktop b/system_files/shared/usr/local/share/applications/lazyjournal.desktop new file mode 100644 index 0000000..7cf9385 --- /dev/null +++ b/system_files/shared/usr/local/share/applications/lazyjournal.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=LazyJournal +Comment=System log viewer +Exec=ghostty-kiosk lazyjournal +Icon=utilities-log-viewer +Terminal=false +Type=Application +Categories=System;Monitor; +Keywords=logs;journal;systemd;docker;podman; diff --git a/system_files/shared/usr/local/share/applications/lazysql.desktop b/system_files/shared/usr/local/share/applications/lazysql.desktop new file mode 100644 index 0000000..bada99b --- /dev/null +++ b/system_files/shared/usr/local/share/applications/lazysql.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=LazySQL +Comment=Database management client +Exec=ghostty-kiosk lazysql +Icon=database +Terminal=false +Type=Application +Categories=Development;Database; +Keywords=database;sql;postgresql;mysql;sqlite; diff --git a/system_files/shared/usr/local/share/applications/meli.desktop b/system_files/shared/usr/local/share/applications/meli.desktop new file mode 100644 index 0000000..9cb5156 --- /dev/null +++ b/system_files/shared/usr/local/share/applications/meli.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=meli +Comment=Terminal email client +Exec=ghostty-kiosk meli +Icon=mail-client +Terminal=false +Type=Application +Categories=Network;Email; +Keywords=email;mail;imap; diff --git a/system_files/shared/usr/local/share/applications/podman-tui.desktop b/system_files/shared/usr/local/share/applications/podman-tui.desktop new file mode 100644 index 0000000..19f48b5 --- /dev/null +++ b/system_files/shared/usr/local/share/applications/podman-tui.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Podman TUI +Comment=Manage Podman containers +Exec=ghostty-kiosk podman-tui +Icon=podman +Terminal=false +Type=Application +Categories=Development;System; +Keywords=podman;containers;docker; diff --git a/system_files/shared/usr/local/share/applications/resterm.desktop b/system_files/shared/usr/local/share/applications/resterm.desktop new file mode 100644 index 0000000..2846599 --- /dev/null +++ b/system_files/shared/usr/local/share/applications/resterm.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Resterm +Comment=REST and API client +Exec=ghostty-kiosk resterm +Icon=network-transmit-receive +Terminal=false +Type=Application +Categories=Development;Network; +Keywords=rest;api;grpc;websocket;http; diff --git a/system_files/shared/usr/local/share/applications/yazi.desktop b/system_files/shared/usr/local/share/applications/yazi.desktop new file mode 100644 index 0000000..da406fd --- /dev/null +++ b/system_files/shared/usr/local/share/applications/yazi.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Yazi +Comment=Terminal file manager +Exec=ghostty-kiosk yazi +Icon=system-file-manager +Terminal=false +Type=Application +Categories=System;FileTools;FileManager; +Keywords=files;file;manager;browser;