Compare commits
7 Commits
fe174ba2e0
..
v2.0.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
740411f194
|
|||
| 1a2daec165 | |||
| 524b53b7b2 | |||
| b5ea96bb8b | |||
| 470bb1620a | |||
| b1372cacd7 | |||
| e59fba0689 |
@@ -1,4 +1,4 @@
|
|||||||
name: CI/CD
|
name: Release
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
@@ -6,8 +6,8 @@ on:
|
|||||||
- 'v*'
|
- 'v*'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build-arch:
|
||||||
name: Package
|
name: Build ArchLinux Package
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Code
|
- name: Checkout Code
|
||||||
@@ -33,13 +33,14 @@ jobs:
|
|||||||
url="https://git.uyani.de/Uyanide/WallReel"
|
url="https://git.uyani.de/Uyanide/WallReel"
|
||||||
license=('MIT')
|
license=('MIT')
|
||||||
depends=('qt6-base' 'qt6-declarative' 'gcc-libs' 'glibc')
|
depends=('qt6-base' 'qt6-declarative' 'gcc-libs' 'glibc')
|
||||||
makedepends=('cmake' 'ninja')
|
makedepends=('cmake')
|
||||||
|
options=('!debug')
|
||||||
source=("${pkgname}-${pkgver}.tar.gz::https://git.uyani.de/Uyanide/WallReel/archive/v${pkgver}.tar.gz")
|
source=("${pkgname}-${pkgver}.tar.gz::https://git.uyani.de/Uyanide/WallReel/archive/v${pkgver}.tar.gz")
|
||||||
sha256sums=('INSERT_SHA256_HERE')
|
sha256sums=('INSERT_SHA256_HERE')
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
cd "wallreel"
|
cd "wallreel"
|
||||||
cmake -B build -S . -G Ninja \
|
cmake -B build -S . \
|
||||||
-DCMAKE_BUILD_TYPE='Release' \
|
-DCMAKE_BUILD_TYPE='Release' \
|
||||||
-DCMAKE_INSTALL_PREFIX='/usr' \
|
-DCMAKE_INSTALL_PREFIX='/usr' \
|
||||||
-Wno-dev
|
-Wno-dev
|
||||||
@@ -64,40 +65,41 @@ jobs:
|
|||||||
|
|
||||||
pacman-key --init && pacman-key --populate
|
pacman-key --init && pacman-key --populate
|
||||||
pacman -Sy --noconfirm archlinux-keyring
|
pacman -Sy --noconfirm archlinux-keyring
|
||||||
pacman -Su --noconfirm base-devel cmake ninja qt6-base qt6-declarative sudo
|
pacman -Su --noconfirm base-devel cmake qt6-base qt6-declarative sudo
|
||||||
|
|
||||||
|
echo 'MAKEFLAGS="-j$(nproc)"' >> /etc/makepkg.conf
|
||||||
|
|
||||||
useradd -m builduser
|
useradd -m builduser
|
||||||
chown -R builduser:builduser /workspace
|
chown -R builduser:builduser /workspace
|
||||||
echo 'builduser ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
echo 'builduser ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
||||||
|
|
||||||
su - builduser -c 'cd /workspace && makepkg -sf --noconfirm'
|
su - builduser -c 'cd /workspace && makepkg -sf --noconfirm'
|
||||||
su - builduser -c 'cd /workspace && makepkg --printsrcinfo > .SRCINFO'
|
su - builduser -c 'cd /workspace && makepkg --printsrcinfo' > SRCINFO.txt
|
||||||
|
|
||||||
tar -cf - *.pkg.tar.zst PKGBUILD LICENSE .SRCINFO >&3
|
tar -cf - *.pkg.tar.zst PKGBUILD SRCINFO.txt >&3
|
||||||
" | tar -xf -
|
" | tar -xf -
|
||||||
|
|
||||||
- name: Upload Artifacts
|
- name: Upload Arch Artifacts
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: release-artifacts
|
name: arch-artifacts
|
||||||
path: |
|
path: |
|
||||||
*.pkg.tar.zst
|
*.pkg.tar.zst
|
||||||
PKGBUILD
|
PKGBUILD
|
||||||
LICENSE
|
SRCINFO.txt
|
||||||
.SRCINFO
|
|
||||||
|
|
||||||
release:
|
publish-gitea:
|
||||||
name: Publish
|
name: Publish to Gitea Release
|
||||||
needs: build
|
needs: [build-arch]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Extract Version
|
- name: Extract Version
|
||||||
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
|
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Download Artifacts
|
- name: Download Arch Artifacts
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: release-artifacts
|
name: arch-artifacts
|
||||||
path: .
|
path: .
|
||||||
|
|
||||||
- name: Publish to Gitea Release
|
- name: Publish to Gitea Release
|
||||||
@@ -110,6 +112,20 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
publish-aur:
|
||||||
|
name: Publish to AUR
|
||||||
|
needs: [build-arch]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Extract Version
|
||||||
|
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Download Arch Artifacts
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: arch-artifacts
|
||||||
|
path: .
|
||||||
|
|
||||||
- name: Publish to AUR
|
- name: Publish to AUR
|
||||||
env:
|
env:
|
||||||
AUR_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
|
AUR_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
|
||||||
@@ -129,9 +145,18 @@ jobs:
|
|||||||
git config --global user.email "me@uyani.de"
|
git config --global user.email "me@uyani.de"
|
||||||
|
|
||||||
git clone ssh://aur@aur.archlinux.org/wallreel.git aur-repo
|
git clone ssh://aur@aur.archlinux.org/wallreel.git aur-repo
|
||||||
cp PKGBUILD LICENSE .SRCINFO aur-repo/
|
cp PKGBUILD aur-repo/
|
||||||
|
cp SRCINFO.txt aur-repo/.SRCINFO
|
||||||
cd aur-repo
|
cd aur-repo
|
||||||
|
|
||||||
|
cat << 'EOF' > LICENSE
|
||||||
|
Copyright (C) 2026 by Uyanide me@uyani.de
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
EOF
|
||||||
|
|
||||||
git add PKGBUILD LICENSE .SRCINFO
|
git add PKGBUILD LICENSE .SRCINFO
|
||||||
git commit -m "Release v${{ env.VERSION }}"
|
git commit -m "Release v${{ env.VERSION }}"
|
||||||
git push origin master
|
git push origin master
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
cmake_minimum_required(VERSION 3.16)
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
project(WallReel VERSION 2.0.0 LANGUAGES CXX)
|
project(WallReel VERSION 2.0.2 LANGUAGES CXX)
|
||||||
|
|
||||||
set(EXECUTABLE_NAME "wallreel")
|
set(EXECUTABLE_NAME "wallreel")
|
||||||
set(CORELIB_NAME "wallreel-core")
|
set(CORELIB_NAME "wallreel-core")
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
.\" Automatically generated by Pandoc 3.5
|
.\" Automatically generated by Pandoc 3.5
|
||||||
.\"
|
.\"
|
||||||
.TH "WALLREEL" "1" "2026\-03\-24" "WallReel 2.0.0" "User Commands"
|
.TH "WALLREEL" "1" "2026\-03\-24" "WallReel 2.0.2" "User Commands"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
wallreel \- Choose and set desktop wallpapers with customizable themes
|
wallreel \- Choose and set desktop wallpapers with customizable themes
|
||||||
and actions
|
and actions
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
.\" Automatically generated by Pandoc 3.5
|
.\" Automatically generated by Pandoc 3.5
|
||||||
.\"
|
.\"
|
||||||
.TH "WALLREEL" "5" "2026\-03\-24" "WallReel 2.0.0" "File Formats Manual"
|
.TH "WALLREEL" "5" "2026\-03\-24" "WallReel 2.0.2" "File Formats Manual"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
wallreel\-config \- configuration format for wallreel
|
wallreel\-config \- configuration format for wallreel
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|||||||
@@ -26,8 +26,9 @@ Manager::Manager(
|
|||||||
const QDir& picturesDir,
|
const QDir& picturesDir,
|
||||||
const QStringList& searchDirs,
|
const QStringList& searchDirs,
|
||||||
const QString& configPath,
|
const QString& configPath,
|
||||||
|
bool disableActions,
|
||||||
QObject* parent)
|
QObject* parent)
|
||||||
: QObject(parent), m_configDir(configDir) {
|
: QObject(parent), m_configDir(configDir), m_disableActions(disableActions) {
|
||||||
connect(this, &Manager::stateCaptured, this, [this]() {
|
connect(this, &Manager::stateCaptured, this, [this]() {
|
||||||
m_stateCaptured = true;
|
m_stateCaptured = true;
|
||||||
WR_INFO("State capture completed");
|
WR_INFO("State capture completed");
|
||||||
@@ -398,6 +399,13 @@ void Manager::captureState() {
|
|||||||
if (m_stateCaptured) {
|
if (m_stateCaptured) {
|
||||||
WR_DEBUG("State already captured, skipping capture");
|
WR_DEBUG("State already captured, skipping capture");
|
||||||
emit stateCaptured();
|
emit stateCaptured();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_disableActions) {
|
||||||
|
WR_DEBUG("Actions are disabled, skipping state capture");
|
||||||
|
emit stateCaptured();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_pendingCaptures > 0) {
|
if (m_pendingCaptures > 0) {
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ class Manager : public QObject {
|
|||||||
* @param searchDirs Additional directories to search for wallpapers (not recursive)
|
* @param searchDirs Additional directories to search for wallpapers (not recursive)
|
||||||
* @param configPath Optional path to a specific configuration file (overrides the default config path)
|
* @param configPath Optional path to a specific configuration file (overrides the default config path)
|
||||||
* @param picturesDir The pictures directory (default location for user wallpapers)
|
* @param picturesDir The pictures directory (default location for user wallpapers)
|
||||||
|
* @param disableActions Whether to disable actions
|
||||||
* @param parent QObject parent
|
* @param parent QObject parent
|
||||||
*
|
*
|
||||||
* @note The constructor will load the configuration and scan for wallpapers immediately.
|
* @note The constructor will load the configuration and scan for wallpapers immediately.
|
||||||
@@ -36,6 +37,7 @@ class Manager : public QObject {
|
|||||||
const QDir& picturesDir,
|
const QDir& picturesDir,
|
||||||
const QStringList& searchDirs = {},
|
const QStringList& searchDirs = {},
|
||||||
const QString& configPath = "",
|
const QString& configPath = "",
|
||||||
|
bool disableActions = false,
|
||||||
QObject* parent = nullptr);
|
QObject* parent = nullptr);
|
||||||
|
|
||||||
~Manager();
|
~Manager();
|
||||||
@@ -88,6 +90,8 @@ class Manager : public QObject {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
const QDir m_configDir;
|
const QDir m_configDir;
|
||||||
|
bool m_disableActions = false;
|
||||||
|
|
||||||
WallpaperConfigItems m_wallpaperConfig;
|
WallpaperConfigItems m_wallpaperConfig;
|
||||||
ThemeConfigItems m_themeConfig;
|
ThemeConfigItems m_themeConfig;
|
||||||
ActionConfigItems m_actionConfig;
|
ActionConfigItems m_actionConfig;
|
||||||
|
|||||||
@@ -18,12 +18,13 @@ class Bootstrap {
|
|||||||
friend class Carousel;
|
friend class Carousel;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Bootstrap(const AppOptions& options) {
|
Bootstrap(const AppOptions& options) : options(options) {
|
||||||
configMgr = new Config::Manager(
|
configMgr = new Config::Manager(
|
||||||
Utils::getConfigDir(),
|
Utils::getConfigDir(),
|
||||||
Utils::getPicturesDir(),
|
Utils::getPicturesDir(),
|
||||||
options.appendDirs,
|
options.appendDirs,
|
||||||
options.configPath);
|
options.configPath,
|
||||||
|
options.disableActions);
|
||||||
|
|
||||||
cacheMgr = new Cache::Manager(
|
cacheMgr = new Cache::Manager(
|
||||||
Utils::getCacheDir(),
|
Utils::getCacheDir(),
|
||||||
@@ -58,6 +59,11 @@ class Bootstrap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool apply(const QString& path) {
|
bool apply(const QString& path) {
|
||||||
|
if (options.disableActions) {
|
||||||
|
Logger::warn("Bootstrap", "Actions are disabled, cannot apply wallpaper");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
bool successFlag = false;
|
bool successFlag = false;
|
||||||
|
|
||||||
@@ -122,6 +128,7 @@ class Bootstrap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
const AppOptions& options;
|
||||||
Cache::Manager* cacheMgr{};
|
Cache::Manager* cacheMgr{};
|
||||||
Config::Manager* configMgr{};
|
Config::Manager* configMgr{};
|
||||||
Image::Manager* imageMgr{};
|
Image::Manager* imageMgr{};
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
title: WALLREEL
|
title: WALLREEL
|
||||||
section: 1
|
section: 1
|
||||||
header: User Commands
|
header: User Commands
|
||||||
footer: WallReel 2.0.0
|
footer: WallReel 2.0.2
|
||||||
date: 2026-03-24
|
date: 2026-03-24
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
title: WALLREEL
|
title: WALLREEL
|
||||||
section: 5
|
section: 5
|
||||||
header: File Formats Manual
|
header: File Formats Manual
|
||||||
footer: WallReel 2.0.0
|
footer: WallReel 2.0.2
|
||||||
date: 2026-03-24
|
date: 2026-03-24
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user