mirror of
https://github.com/Xetibo/ReSet.git
synced 2025-04-12 08:28:32 +02:00
Compare commits
13 commits
Author | SHA1 | Date | |
---|---|---|---|
|
f229ed7dea | ||
|
f09ed75581 | ||
|
6c1291bd19 | ||
|
a369356b49 | ||
|
ee7129009a | ||
|
e7c0995aa3 | ||
|
0b12d95c83 | ||
|
e4971391be | ||
|
d36e79614c | ||
|
7532c1e065 | ||
|
a9ee1b7bc3 | ||
![]() |
77c53a3efc | ||
|
2b0898b809 |
|
@ -1 +1 @@
|
||||||
flake-profile-11-link
|
flake-profile-4-link
|
|
@ -1 +0,0 @@
|
||||||
/nix/store/51yb1yhqssknlmxvvscvj0cqbvs0z915-nix-shell-env
|
|
1
.direnv/flake-profile-4-link
Symbolic link
1
.direnv/flake-profile-4-link
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
/nix/store/30prmd5nyydss0bcs7d578grjav6i7x3-nix-shell-env
|
42
.github/workflows/rust.yml
vendored
42
.github/workflows/rust.yml
vendored
|
@ -1,25 +1,33 @@
|
||||||
name: Rust
|
# inspired by https://github.com/danth/stylix/blob/master/.github/workflows/docs.yml
|
||||||
|
name: Rust-build
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ "main" ]
|
branches: ["main"]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ "main" ]
|
branches: ["main"]
|
||||||
|
|
||||||
env:
|
|
||||||
CARGO_TERM_COLOR: always
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: [self-hosted, ubuntu]
|
name: Build
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- name: Install Nix
|
||||||
- name: nightly-rust
|
uses: DeterminateSystems/nix-installer-action@main
|
||||||
uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
with:
|
||||||
profile: minimal
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
toolchain: nightly
|
extra-conf: |
|
||||||
|
extra-experimental-features = nix-command flakes
|
||||||
|
- name: Set up cache
|
||||||
|
uses: DeterminateSystems/magic-nix-cache-action@main
|
||||||
|
- name: action
|
||||||
|
uses: cachix/install-nix-action@v25
|
||||||
|
with:
|
||||||
|
nix_path: nixpkgs=channel:nixos-unstable
|
||||||
|
- name: cache
|
||||||
|
uses: cachix/cachix-action@v14
|
||||||
|
with:
|
||||||
|
name: reset
|
||||||
|
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
||||||
- name: Build
|
- name: Build
|
||||||
run: cargo build --verbose
|
run: nix -L build github:${{ github.repository }}/${{ github.sha }} --no-write-lock-file
|
||||||
- name: Run clippy
|
|
||||||
run: cargo clippy --fix
|
|
||||||
|
|
10
Cargo.lock
generated
10
Cargo.lock
generated
|
@ -926,9 +926,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "re_set-lib"
|
name = "re_set-lib"
|
||||||
version = "5.2.4"
|
version = "5.2.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f1f1aa52c35d115b4efc5de2d41d0288f20705dd7f3ca6a49a68f2bab9c31a8e"
|
checksum = "69ec9fc4d9e919feb030e5382de1aa49447404a57ecc19361bf7710f1cf9063e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"dbus",
|
"dbus",
|
||||||
"dbus-crossroads",
|
"dbus-crossroads",
|
||||||
|
@ -952,7 +952,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "reset"
|
name = "reset"
|
||||||
version = "1.2.6"
|
version = "2.0.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"dbus",
|
"dbus",
|
||||||
"fork",
|
"fork",
|
||||||
|
@ -968,9 +968,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "reset_daemon"
|
name = "reset_daemon"
|
||||||
version = "2.1.3"
|
version = "2.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "aa3666f8d12729c489f0d5d60fa8f03299da80859d72507c9e4ae6d56e61fe79"
|
checksum = "f72dd51da41c2fc3ac37ae55fbdeb2670d32cad39cc85cc95a9ea25fc02b6086"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"crossbeam",
|
"crossbeam",
|
||||||
"dbus",
|
"dbus",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "reset"
|
name = "reset"
|
||||||
version = "1.2.6"
|
version = "2.0.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
description = "A wip universal Linux settings application."
|
description = "A wip universal Linux settings application."
|
||||||
repository = "https://github.com/Xetibo/ReSet"
|
repository = "https://github.com/Xetibo/ReSet"
|
||||||
|
@ -11,8 +11,8 @@ name = "ReSet"
|
||||||
path = "src/main.rs"
|
path = "src/main.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
reset_daemon = "2.1.3"
|
reset_daemon = "2.2.0"
|
||||||
re_set-lib = "5.2.4"
|
re_set-lib = "5.2.5"
|
||||||
adw = { version = "0.6.0", package = "libadwaita", features = ["v1_4"] }
|
adw = { version = "0.6.0", package = "libadwaita", features = ["v1_4"] }
|
||||||
dbus = "0.9.7"
|
dbus = "0.9.7"
|
||||||
gtk = { version = "0.8.1", package = "gtk4", features = ["v4_12"] }
|
gtk = { version = "0.8.1", package = "gtk4", features = ["v4_12"] }
|
||||||
|
|
7
PKGBUILD
7
PKGBUILD
|
@ -1,12 +1,15 @@
|
||||||
# Maintainer: Fabio Lenherr <dashie@dashie.org>
|
# Maintainer: Fabio Lenherr <dashie@dashie.org>
|
||||||
|
|
||||||
pkgname=ReSet
|
pkgname=ReSet
|
||||||
pkgver=1.2.6
|
pkgver=2.0.0
|
||||||
pkgrel=0
|
pkgrel=0
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
pkgdir="/usr/bin/${pkgname}"
|
pkgdir="/usr/bin/${pkgname}"
|
||||||
pkgdesc="A wip universal Linux settings application."
|
pkgdesc="A wip universal Linux settings application."
|
||||||
depends=('rust' 'gtk4' 'dbus')
|
depends=('gtk4' 'dbus' 'libadwaita')
|
||||||
|
optdepends=('pipewire-pulse' 'networkmanager' 'bluez')
|
||||||
|
makedepends=('rust')
|
||||||
|
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
cargo build --release
|
cargo build --release
|
||||||
|
|
23
README.md
23
README.md
|
@ -34,7 +34,22 @@ A window manager/compositor agnostic settings application for Linux written in r
|
||||||
## Plugins
|
## Plugins
|
||||||
|
|
||||||
ReSet features a plugin system by loading dynamic libraries for both the daemon and the ReSet graphical user interface.
|
ReSet features a plugin system by loading dynamic libraries for both the daemon and the ReSet graphical user interface.
|
||||||
A list of official plugins and their documentation can be found at [ReSet-Plugins](https://github.com/Xetibo/ReSet-Plugins).
|
A list of official plugins, installation guides and their documentation can be found at [ReSet-Plugins](https://github.com/Xetibo/ReSet-Plugins).
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
|
||||||
|
Plugins are loaded either from `/usr/lib/reset` or `~/.config/reset/plugins`. In order to install the plugin, either install a distribution specific package that places the library into the specified system folder, or place the library in the plugins folder in your config directory.
|
||||||
|
|
||||||
|
Note, after installation, please move to confirmation.
|
||||||
|
|
||||||
|
### Confirmation
|
||||||
|
|
||||||
|
In order for your plugins to load, you have to define them in `.config/reset/ReSet.toml`.
|
||||||
|
This is done to avoid loading of arbitrary plugins that might be placed within this folder by accident.
|
||||||
|
|
||||||
|
```toml
|
||||||
|
plugins = ["libreset_monitors.so", "libreset_keyboard_plugin.so"]
|
||||||
|
```
|
||||||
|
|
||||||
## Packaging
|
## Packaging
|
||||||
|
|
||||||
|
@ -46,7 +61,7 @@ We are currently not published on flatpak due to issues with permissions.
|
||||||
This is being worked on...
|
This is being worked on...
|
||||||
|
|
||||||
Installation:
|
Installation:
|
||||||
Download the flatpak package from the release and install with the terminal.
|
Download the flatpak package (reset.flatpak) from the release and install with the terminal.
|
||||||
|
|
||||||
```
|
```
|
||||||
flatpak install --user reset.flatpak
|
flatpak install --user reset.flatpak
|
||||||
|
@ -59,7 +74,7 @@ flatpak install --user reset.flatpak
|
||||||
<!-- ```paru -S ReSet``` -->
|
<!-- ```paru -S ReSet``` -->
|
||||||
|
|
||||||
Manually:
|
Manually:
|
||||||
Download the package from the releases tab and install it with pacman.
|
Download the package (ReSet-version-x86_64.pkg.tar.zst) from the releases tab and install it with pacman.
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo pacman -U /path/to/reset
|
sudo pacman -U /path/to/reset
|
||||||
|
@ -67,7 +82,7 @@ sudo pacman -U /path/to/reset
|
||||||
|
|
||||||
### Debian Package(Ubuntu 23.04 dependencies)
|
### Debian Package(Ubuntu 23.04 dependencies)
|
||||||
|
|
||||||
Download the package from the releases tab and install it with apt.
|
Download the package (ReSet.deb) from the releases tab and install it with apt.
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo apt install ./path/to/reset
|
sudo apt install ./path/to/reset
|
||||||
|
|
6
debian/DEBIAN/control
vendored
6
debian/DEBIAN/control
vendored
|
@ -1,5 +1,9 @@
|
||||||
Package: ReSet
|
Package: ReSet
|
||||||
Version: 1.2.6
|
Version: 2.0.0
|
||||||
Maintainer: DashieTM
|
Maintainer: DashieTM
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Description: A wip universal Linux settings application.
|
Description: A wip universal Linux settings application.
|
||||||
|
Homepage: https://github.com/Xetibo/ReSet
|
||||||
|
Build-Depends: rust
|
||||||
|
Depends: libadwaita-1-0, libgtk-4-1, dbus
|
||||||
|
Recommends: pipewire-pulse, network-manager, bluez
|
||||||
|
|
58
flake.lock
58
flake.lock
|
@ -7,11 +7,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1715865404,
|
"lastModified": 1738453229,
|
||||||
"narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=",
|
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9",
|
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -20,31 +20,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1705309234,
|
|
||||||
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1716137900,
|
"lastModified": 1739446958,
|
||||||
"narHash": "sha256-sowPU+tLQv8GlqtVtsXioTKeaQvlMz/pefcdwg8MvfM=",
|
"narHash": "sha256-+/bYK3DbPxMIvSL4zArkMX0LQvS7rzBKXnDXLfKyRVc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "6c0b7a92c30122196a761b440ac0d46d3d9954f1",
|
"rev": "2ff53fe64443980e139eaa286017f53f88336dd0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -56,11 +38,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1706487304,
|
"lastModified": 1736320768,
|
||||||
"narHash": "sha256-LE8lVX28MV2jWJsidW13D2qrHU/RUUONendL2Q/WlJg=",
|
"narHash": "sha256-nIYdTAiKIGnFNugbomgBJR+Xv5F1ZQU+HfaBqJKroC0=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "90f456026d284c22b3e3497be980b2e47d0b28ac",
|
"rev": "4bc9c909d9ac828a039f288cf872d16d38185db8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -79,15 +61,14 @@
|
||||||
},
|
},
|
||||||
"rust-overlay": {
|
"rust-overlay": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1716171463,
|
"lastModified": 1739586408,
|
||||||
"narHash": "sha256-lc7wOh5BjYUoxdhcPkeUY8BmuL2qtRaHlW1403RW48E=",
|
"narHash": "sha256-UN9hRKRE1eLU8C0cioTZubaCZQTA8NDc8/4vCpS5pS0=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "04d61d14803854fd8453ec43c5c53a471e5407a8",
|
"rev": "3dbc0ce1c0690b83cfb9a9a51fbe90c3bc8f9916",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -95,21 +76,6 @@
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"systems": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|
|
@ -285,32 +285,6 @@
|
||||||
"dest": "cargo/vendor/dbus-tokio-0.7.6",
|
"dest": "cargo/vendor/dbus-tokio-0.7.6",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/directories-next/directories-next-2.0.0.crate",
|
|
||||||
"sha256": "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc",
|
|
||||||
"dest": "cargo/vendor/directories-next-2.0.0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/directories-next-2.0.0",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/dirs-sys-next/dirs-sys-next-0.1.2.crate",
|
|
||||||
"sha256": "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d",
|
|
||||||
"dest": "cargo/vendor/dirs-sys-next-0.1.2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/dirs-sys-next-0.1.2",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
|
@ -519,19 +493,6 @@
|
||||||
"dest": "cargo/vendor/gdk4-sys-0.8.1",
|
"dest": "cargo/vendor/gdk4-sys-0.8.1",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/getrandom/getrandom-0.2.14.crate",
|
|
||||||
"sha256": "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c",
|
|
||||||
"dest": "cargo/vendor/getrandom-0.2.14"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/getrandom-0.2.14",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
|
@ -896,19 +857,6 @@
|
||||||
"dest": "cargo/vendor/libpulse-sys-1.21.0",
|
"dest": "cargo/vendor/libpulse-sys-1.21.0",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/libredox/libredox-0.1.3.crate",
|
|
||||||
"sha256": "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d",
|
|
||||||
"dest": "cargo/vendor/libredox-0.1.3"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/libredox-0.1.3",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
|
@ -1211,14 +1159,14 @@
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/re_set-lib/re_set-lib-4.0.1.crate",
|
"url": "https://static.crates.io/crates/re_set-lib/re_set-lib-5.2.4.crate",
|
||||||
"sha256": "06cb3803fff21953f1c17a685ae01e92b6b4d3231b99726d389520c48fbc1310",
|
"sha256": "f1f1aa52c35d115b4efc5de2d41d0288f20705dd7f3ca6a49a68f2bab9c31a8e",
|
||||||
"dest": "cargo/vendor/re_set-lib-4.0.1"
|
"dest": "cargo/vendor/re_set-lib-5.2.4"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"06cb3803fff21953f1c17a685ae01e92b6b4d3231b99726d389520c48fbc1310\", \"files\": {}}",
|
"contents": "{\"package\": \"f1f1aa52c35d115b4efc5de2d41d0288f20705dd7f3ca6a49a68f2bab9c31a8e\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/re_set-lib-4.0.1",
|
"dest": "cargo/vendor/re_set-lib-5.2.4",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1237,27 +1185,14 @@
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/redox_users/redox_users-0.4.5.crate",
|
"url": "https://static.crates.io/crates/reset_daemon/reset_daemon-2.1.3.crate",
|
||||||
"sha256": "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891",
|
"sha256": "aa3666f8d12729c489f0d5d60fa8f03299da80859d72507c9e4ae6d56e61fe79",
|
||||||
"dest": "cargo/vendor/redox_users-0.4.5"
|
"dest": "cargo/vendor/reset_daemon-2.1.3"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891\", \"files\": {}}",
|
"contents": "{\"package\": \"aa3666f8d12729c489f0d5d60fa8f03299da80859d72507c9e4ae6d56e61fe79\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/redox_users-0.4.5",
|
"dest": "cargo/vendor/reset_daemon-2.1.3",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/reset_daemon/reset_daemon-1.4.0.crate",
|
|
||||||
"sha256": "4c9858fdb8b54d8d81a2e0c16f5f2f16837c627da54ea9f3e7a27a888c0ef1fa",
|
|
||||||
"dest": "cargo/vendor/reset_daemon-1.4.0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"4c9858fdb8b54d8d81a2e0c16f5f2f16837c627da54ea9f3e7a27a888c0ef1fa\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/reset_daemon-1.4.0",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1936,6 +1871,19 @@
|
||||||
"dest": "cargo/vendor/winnow-0.6.6",
|
"dest": "cargo/vendor/winnow-0.6.6",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "archive",
|
||||||
|
"archive-type": "tar-gzip",
|
||||||
|
"url": "https://static.crates.io/crates/xdg/xdg-2.5.2.crate",
|
||||||
|
"sha256": "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546",
|
||||||
|
"dest": "cargo/vendor/xdg-2.5.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "inline",
|
||||||
|
"contents": "{\"package\": \"213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546\", \"files\": {}}",
|
||||||
|
"dest": "cargo/vendor/xdg-2.5.2",
|
||||||
|
"dest-filename": ".cargo-checksum.json"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "[source.vendored-sources]\ndirectory = \"cargo/vendor\"\n\n[source.crates-io]\nreplace-with = \"vendored-sources\"\n",
|
"contents": "[source.vendored-sources]\ndirectory = \"cargo/vendor\"\n\n[source.crates-io]\nreplace-with = \"vendored-sources\"\n",
|
||||||
|
|
|
@ -285,32 +285,6 @@
|
||||||
"dest": "cargo/vendor/dbus-tokio-0.7.6",
|
"dest": "cargo/vendor/dbus-tokio-0.7.6",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/directories-next/directories-next-2.0.0.crate",
|
|
||||||
"sha256": "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc",
|
|
||||||
"dest": "cargo/vendor/directories-next-2.0.0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/directories-next-2.0.0",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/dirs-sys-next/dirs-sys-next-0.1.2.crate",
|
|
||||||
"sha256": "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d",
|
|
||||||
"dest": "cargo/vendor/dirs-sys-next-0.1.2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/dirs-sys-next-0.1.2",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
|
@ -519,19 +493,6 @@
|
||||||
"dest": "cargo/vendor/gdk4-sys-0.8.1",
|
"dest": "cargo/vendor/gdk4-sys-0.8.1",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/getrandom/getrandom-0.2.14.crate",
|
|
||||||
"sha256": "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c",
|
|
||||||
"dest": "cargo/vendor/getrandom-0.2.14"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/getrandom-0.2.14",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
|
@ -896,19 +857,6 @@
|
||||||
"dest": "cargo/vendor/libpulse-sys-1.21.0",
|
"dest": "cargo/vendor/libpulse-sys-1.21.0",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/libredox/libredox-0.1.3.crate",
|
|
||||||
"sha256": "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d",
|
|
||||||
"dest": "cargo/vendor/libredox-0.1.3"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/libredox-0.1.3",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
|
@ -1211,14 +1159,14 @@
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/re_set-lib/re_set-lib-4.0.1.crate",
|
"url": "https://static.crates.io/crates/re_set-lib/re_set-lib-5.2.4.crate",
|
||||||
"sha256": "06cb3803fff21953f1c17a685ae01e92b6b4d3231b99726d389520c48fbc1310",
|
"sha256": "f1f1aa52c35d115b4efc5de2d41d0288f20705dd7f3ca6a49a68f2bab9c31a8e",
|
||||||
"dest": "cargo/vendor/re_set-lib-4.0.1"
|
"dest": "cargo/vendor/re_set-lib-5.2.4"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"06cb3803fff21953f1c17a685ae01e92b6b4d3231b99726d389520c48fbc1310\", \"files\": {}}",
|
"contents": "{\"package\": \"f1f1aa52c35d115b4efc5de2d41d0288f20705dd7f3ca6a49a68f2bab9c31a8e\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/re_set-lib-4.0.1",
|
"dest": "cargo/vendor/re_set-lib-5.2.4",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1237,27 +1185,14 @@
|
||||||
{
|
{
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"archive-type": "tar-gzip",
|
"archive-type": "tar-gzip",
|
||||||
"url": "https://static.crates.io/crates/redox_users/redox_users-0.4.5.crate",
|
"url": "https://static.crates.io/crates/reset_daemon/reset_daemon-2.1.3.crate",
|
||||||
"sha256": "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891",
|
"sha256": "aa3666f8d12729c489f0d5d60fa8f03299da80859d72507c9e4ae6d56e61fe79",
|
||||||
"dest": "cargo/vendor/redox_users-0.4.5"
|
"dest": "cargo/vendor/reset_daemon-2.1.3"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "{\"package\": \"bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891\", \"files\": {}}",
|
"contents": "{\"package\": \"aa3666f8d12729c489f0d5d60fa8f03299da80859d72507c9e4ae6d56e61fe79\", \"files\": {}}",
|
||||||
"dest": "cargo/vendor/redox_users-0.4.5",
|
"dest": "cargo/vendor/reset_daemon-2.1.3",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "archive",
|
|
||||||
"archive-type": "tar-gzip",
|
|
||||||
"url": "https://static.crates.io/crates/reset_daemon/reset_daemon-1.4.0.crate",
|
|
||||||
"sha256": "4c9858fdb8b54d8d81a2e0c16f5f2f16837c627da54ea9f3e7a27a888c0ef1fa",
|
|
||||||
"dest": "cargo/vendor/reset_daemon-1.4.0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "inline",
|
|
||||||
"contents": "{\"package\": \"4c9858fdb8b54d8d81a2e0c16f5f2f16837c627da54ea9f3e7a27a888c0ef1fa\", \"files\": {}}",
|
|
||||||
"dest": "cargo/vendor/reset_daemon-1.4.0",
|
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1936,6 +1871,19 @@
|
||||||
"dest": "cargo/vendor/winnow-0.6.6",
|
"dest": "cargo/vendor/winnow-0.6.6",
|
||||||
"dest-filename": ".cargo-checksum.json"
|
"dest-filename": ".cargo-checksum.json"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "archive",
|
||||||
|
"archive-type": "tar-gzip",
|
||||||
|
"url": "https://static.crates.io/crates/xdg/xdg-2.5.2.crate",
|
||||||
|
"sha256": "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546",
|
||||||
|
"dest": "cargo/vendor/xdg-2.5.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "inline",
|
||||||
|
"contents": "{\"package\": \"213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546\", \"files\": {}}",
|
||||||
|
"dest": "cargo/vendor/xdg-2.5.2",
|
||||||
|
"dest-filename": ".cargo-checksum.json"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "inline",
|
"type": "inline",
|
||||||
"contents": "[source.vendored-sources]\ndirectory = \"cargo/vendor\"\n\n[source.crates-io]\nreplace-with = \"vendored-sources\"\n",
|
"contents": "[source.vendored-sources]\ndirectory = \"cargo/vendor\"\n\n[source.crates-io]\nreplace-with = \"vendored-sources\"\n",
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"app-id": "org.Xetibo.ReSet",
|
"app-id": "org.Xetibo.ReSet",
|
||||||
"runtime": "org.gnome.Platform",
|
"runtime": "org.gnome.Platform",
|
||||||
"runtime-version": "45",
|
"runtime-version": "46",
|
||||||
"sdk": "org.gnome.Sdk",
|
"sdk": "org.gnome.Sdk",
|
||||||
"sdk-extensions": [
|
"sdk-extensions": [
|
||||||
"org.freedesktop.Sdk.Extension.rust-nightly"
|
"org.freedesktop.Sdk.Extension.rust-nightly"
|
||||||
],
|
],
|
||||||
"command": "reset",
|
"command": "ReSet",
|
||||||
"finish-args": [
|
"finish-args": [
|
||||||
"--socket=pulseaudio",
|
"--socket=pulseaudio",
|
||||||
"--share=network",
|
"--share=network",
|
||||||
|
@ -17,8 +17,7 @@
|
||||||
"--device=all",
|
"--device=all",
|
||||||
"--allow=bluetooth",
|
"--allow=bluetooth",
|
||||||
"--socket=system-bus",
|
"--socket=system-bus",
|
||||||
"--socket=session-bus",
|
"--socket=session-bus"
|
||||||
"--persist=~/.config/reset:create"
|
|
||||||
],
|
],
|
||||||
"build-options": {
|
"build-options": {
|
||||||
"append-path": "/usr/lib/sdk/rust-nightly/bin"
|
"append-path": "/usr/lib/sdk/rust-nightly/bin"
|
||||||
|
@ -34,8 +33,8 @@
|
||||||
},
|
},
|
||||||
"build-commands": [
|
"build-commands": [
|
||||||
"cargo --offline fetch --manifest-path Cargo.toml --verbose",
|
"cargo --offline fetch --manifest-path Cargo.toml --verbose",
|
||||||
"cargo --offline build --release --verbose",
|
"cargo --offline build --verbose",
|
||||||
"install -Dm755 ./target/release/reset -t /app/bin/",
|
"install -Dm755 ./target/debug/ReSet -t /app/bin/",
|
||||||
"install -Dm644 ./src/resources/icons/ReSet.svg /app/share/icons/hicolor/scalable/apps/org.Xetibo.ReSet.svg",
|
"install -Dm644 ./src/resources/icons/ReSet.svg /app/share/icons/hicolor/scalable/apps/org.Xetibo.ReSet.svg",
|
||||||
"install -Dm644 ./flatpak/org.Xetibo.ReSet.desktop /app/share/applications/org.Xetibo.ReSet.desktop"
|
"install -Dm644 ./flatpak/org.Xetibo.ReSet.desktop /app/share/applications/org.Xetibo.ReSet.desktop"
|
||||||
],
|
],
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"app-id": "org.Xetibo.ReSet",
|
"app-id": "org.Xetibo.ReSet",
|
||||||
"runtime": "org.gnome.Platform",
|
"runtime": "org.gnome.Platform",
|
||||||
"runtime-version": "45",
|
"runtime-version": "46",
|
||||||
"sdk": "org.gnome.Sdk",
|
"sdk": "org.gnome.Sdk",
|
||||||
"sdk-extensions": [
|
"sdk-extensions": [
|
||||||
"org.freedesktop.Sdk.Extension.rust-nightly"
|
"org.freedesktop.Sdk.Extension.rust-nightly"
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
},
|
},
|
||||||
"build-commands": [
|
"build-commands": [
|
||||||
"cargo --offline fetch --manifest-path Cargo.toml --verbose",
|
"cargo --offline fetch --manifest-path Cargo.toml --verbose",
|
||||||
"cargo --offline build --verbose",
|
"cargo --offline build --release --verbose",
|
||||||
"install -Dm755 ./target/release/ReSet -t /app/bin/",
|
"install -Dm755 ./target/release/ReSet -t /app/bin/",
|
||||||
"install -Dm644 ./src/resources/icons/ReSet.svg /app/share/icons/hicolor/scalable/apps/org.Xetibo.ReSet.svg",
|
"install -Dm644 ./src/resources/icons/ReSet.svg /app/share/icons/hicolor/scalable/apps/org.Xetibo.ReSet.svg",
|
||||||
"install -Dm644 ./flatpak/org.Xetibo.ReSet.desktop /app/share/applications/org.Xetibo.ReSet.desktop"
|
"install -Dm644 ./flatpak/org.Xetibo.ReSet.desktop /app/share/applications/org.Xetibo.ReSet.desktop"
|
||||||
|
|
|
@ -1,50 +0,0 @@
|
||||||
{
|
|
||||||
"app-id": "org.Xetibo.ReSet",
|
|
||||||
"runtime": "org.gnome.Platform",
|
|
||||||
"runtime-version": "45",
|
|
||||||
"sdk": "org.gnome.Sdk",
|
|
||||||
"sdk-extensions": [
|
|
||||||
"org.freedesktop.Sdk.Extension.rust-stable"
|
|
||||||
],
|
|
||||||
"command": "reset",
|
|
||||||
"finish-args": [
|
|
||||||
"--system-talk-name=org.freedesktop.NetworkManager",
|
|
||||||
"--system-talk-name=org.bluez",
|
|
||||||
"--socket=pulseaudio",
|
|
||||||
"--share=network",
|
|
||||||
"--share=ipc",
|
|
||||||
"--socket=fallback-x11",
|
|
||||||
"--socket=wayland",
|
|
||||||
"--device=dri",
|
|
||||||
"--device=all",
|
|
||||||
"--allow=bluetooth"
|
|
||||||
],
|
|
||||||
"build-options": {
|
|
||||||
"append-path": "/usr/lib/sdk/rust-stable/bin"
|
|
||||||
},
|
|
||||||
"modules": [
|
|
||||||
{
|
|
||||||
"name": "reset",
|
|
||||||
"buildsystem": "simple",
|
|
||||||
"build-options": {
|
|
||||||
"env": {
|
|
||||||
"CARGO_HOME": "/run/build/reset/cargo"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"build-commands": [
|
|
||||||
"cargo --offline fetch --manifest-path Cargo.toml --verbose",
|
|
||||||
"cargo --offline build --release --verbose",
|
|
||||||
"install -Dm755 ./target/release/reset -t /app/bin/",
|
|
||||||
"install -Dm644 ./src/resources/icons/ReSet.svg /app/share/icons/hicolor/scalable/apps/org.Xetibo.ReSet.svg",
|
|
||||||
"install -Dm644 ./flatpak/org.Xetibo.ReSet.desktop /app/share/applications/org.Xetibo.ReSet.desktop"
|
|
||||||
],
|
|
||||||
"sources": [
|
|
||||||
{
|
|
||||||
"type": "dir",
|
|
||||||
"path": ".."
|
|
||||||
},
|
|
||||||
"cargo-sources.json"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
118
nix/default.nix
118
nix/default.nix
|
@ -1,69 +1,69 @@
|
||||||
{ rustPlatform
|
{
|
||||||
, rust-bin
|
rustPlatform,
|
||||||
, pulseaudio
|
rust-bin,
|
||||||
, dbus
|
pulseaudio,
|
||||||
, gdk-pixbuf
|
dbus,
|
||||||
, gnome
|
gdk-pixbuf,
|
||||||
, pkg-config
|
adwaita-icon-theme,
|
||||||
, wrapGAppsHook4
|
pkg-config,
|
||||||
, gtk4
|
wrapGAppsHook4,
|
||||||
, libadwaita
|
gtk4,
|
||||||
, python312Packages
|
libadwaita,
|
||||||
, flatpak
|
python312Packages,
|
||||||
, flatpak-builder
|
flatpak,
|
||||||
, lib
|
flatpak-builder,
|
||||||
, lockFile
|
lib,
|
||||||
, ...
|
lockFile,
|
||||||
}:
|
...
|
||||||
let
|
}: let
|
||||||
cargoToml = builtins.fromTOML (builtins.readFile ../Cargo.toml);
|
cargoToml = builtins.fromTOML (builtins.readFile ../Cargo.toml);
|
||||||
in
|
in
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "ReSet";
|
pname = "ReSet";
|
||||||
version = cargoToml.package.version;
|
version = cargoToml.package.version;
|
||||||
|
|
||||||
src = ../.;
|
src = ../.;
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
gtk4
|
gtk4
|
||||||
libadwaita
|
libadwaita
|
||||||
pulseaudio
|
pulseaudio
|
||||||
dbus
|
dbus
|
||||||
gdk-pixbuf
|
gdk-pixbuf
|
||||||
gnome.adwaita-icon-theme
|
adwaita-icon-theme
|
||||||
python312Packages.aiohttp
|
python312Packages.aiohttp
|
||||||
python312Packages.toml
|
python312Packages.toml
|
||||||
flatpak
|
flatpak
|
||||||
flatpak-builder
|
flatpak-builder
|
||||||
];
|
];
|
||||||
|
|
||||||
cargoLock = {
|
cargoLock = {
|
||||||
inherit lockFile;
|
inherit lockFile;
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
pkg-config
|
pkg-config
|
||||||
wrapGAppsHook4
|
wrapGAppsHook4
|
||||||
rust-bin.nightly."2024-05-10".default
|
rust-bin.nightly."2024-05-10".default
|
||||||
];
|
];
|
||||||
|
|
||||||
copyLibs = true;
|
copyLibs = true;
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
install -D --mode=444 $src/${pname}.desktop $out/share/applications/${pname}.desktop
|
install -D --mode=444 $src/${pname}.desktop $out/share/applications/${pname}.desktop
|
||||||
install -D --mode=444 $src/src/resources/icons/${pname}.svg $out/share/pixmaps/${pname}.svg
|
install -D --mode=444 $src/src/resources/icons/${pname}.svg $out/share/pixmaps/${pname}.svg
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# test is broken in nix for some reason
|
# test is broken in nix for some reason
|
||||||
doInstallCheck = false;
|
doInstallCheck = false;
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A wip universal Linux settings application.";
|
description = "A wip universal Linux settings application.";
|
||||||
homepage = "https://github.com/Xetibo/ReSet";
|
homepage = "https://github.com/Xetibo/ReSet";
|
||||||
changelog = "https://github.com/Xetibo/ReSet/releases/tag/${version}";
|
changelog = "https://github.com/Xetibo/ReSet/releases/tag/${version}";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
maintainers = with maintainers; [ DashieTM ];
|
maintainers = with maintainers; [DashieTM];
|
||||||
mainProgram = "ReSet";
|
mainProgram = "ReSet";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -334,7 +334,7 @@ pub fn start_audio_box_listener<
|
||||||
get_default_name_function: &'static DBusFunction,
|
get_default_name_function: &'static DBusFunction,
|
||||||
dummy_name: &'static str,
|
dummy_name: &'static str,
|
||||||
) -> Connection {
|
) -> Connection {
|
||||||
// TODO: make the failed logs generically sound -> deynamic output for both
|
// FUTURE TODO: make the failed logs generically sound -> deynamic output for both
|
||||||
let object_added =
|
let object_added =
|
||||||
ObjectAdded::match_rule(Some(&BASE.into()), Some(&Path::from(DBUS_PATH))).static_clone();
|
ObjectAdded::match_rule(Some(&BASE.into()), Some(&Path::from(DBUS_PATH))).static_clone();
|
||||||
let object_changed =
|
let object_changed =
|
||||||
|
|
|
@ -117,7 +117,7 @@ pub fn new_entry<
|
||||||
reset_box: Arc<AudioBox>,
|
reset_box: Arc<AudioBox>,
|
||||||
) -> Arc<AudioEntry> {
|
) -> Arc<AudioEntry> {
|
||||||
let obj: Arc<AudioEntry> = Arc::new(Object::builder().build());
|
let obj: Arc<AudioEntry> = Arc::new(Object::builder().build());
|
||||||
// TODO use event callback for progress bar -> this is the "im speaking" indicator
|
// FUTURE TODO: use event callback for progress bar -> this is the "im speaking" indicator
|
||||||
{
|
{
|
||||||
let imp = obj.entry_imp();
|
let imp = obj.entry_imp();
|
||||||
let slider_obj_ref = obj.clone();
|
let slider_obj_ref = obj.clone();
|
||||||
|
|
|
@ -91,7 +91,7 @@ pub fn new_stream_entry<
|
||||||
stream: StreamObject,
|
stream: StreamObject,
|
||||||
) -> Arc<AudioStream> {
|
) -> Arc<AudioStream> {
|
||||||
let obj: Arc<AudioStream> = Arc::new(Object::builder().build());
|
let obj: Arc<AudioStream> = Arc::new(Object::builder().build());
|
||||||
// TODO use event callback for progress bar -> this is the "im speaking" indicator
|
// FUTURE TODO: use event callback for progress bar -> this is the "im speaking" indicator
|
||||||
let output_box_mute_ref = audio_box.clone();
|
let output_box_mute_ref = audio_box.clone();
|
||||||
let output_box_volume_ref = audio_box.clone();
|
let output_box_volume_ref = audio_box.clone();
|
||||||
let output_box_sink_ref = audio_box.clone();
|
let output_box_sink_ref = audio_box.clone();
|
||||||
|
|
|
@ -54,7 +54,7 @@ pub fn show_error<T: ReSetErrorImpl + Send + Sync + 'static>(
|
||||||
parent: Arc<T>,
|
parent: Arc<T>,
|
||||||
message: &'static str,
|
message: &'static str,
|
||||||
) {
|
) {
|
||||||
// TODO: Add error to log
|
// FUTURE TODO: Add error to log
|
||||||
glib::spawn_future(async move {
|
glib::spawn_future(async move {
|
||||||
glib::idle_add_once(move || {
|
glib::idle_add_once(move || {
|
||||||
let error = parent.error();
|
let error = parent.error();
|
||||||
|
|
|
@ -57,7 +57,7 @@ impl BluetoothBox {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO
|
// FUTURE TODO:
|
||||||
// handle bonded -> this means saved but not connected
|
// handle bonded -> this means saved but not connected
|
||||||
// handle rssi below x -> don't show device
|
// handle rssi below x -> don't show device
|
||||||
|
|
||||||
|
@ -185,7 +185,6 @@ pub fn populate_connected_bluetooth_devices(
|
||||||
listeners: Arc<Listeners>,
|
listeners: Arc<Listeners>,
|
||||||
bluetooth_box: Arc<BluetoothBox>,
|
bluetooth_box: Arc<BluetoothBox>,
|
||||||
) {
|
) {
|
||||||
// TODO handle saved devices -> they also exist
|
|
||||||
gio::spawn_blocking(move || {
|
gio::spawn_blocking(move || {
|
||||||
let ref_box = bluetooth_box.clone();
|
let ref_box = bluetooth_box.clone();
|
||||||
let adapters = get_bluetooth_adapters(ref_box.clone());
|
let adapters = get_bluetooth_adapters(ref_box.clone());
|
||||||
|
|
|
@ -70,7 +70,7 @@ impl BluetoothEntry {
|
||||||
});
|
});
|
||||||
let gesture = GestureClick::new();
|
let gesture = GestureClick::new();
|
||||||
// paired is not what we think
|
// paired is not what we think
|
||||||
// TODO implement paired
|
// FUTURE TODO: implement paired
|
||||||
gesture.connect_released(move |_, _, _, _| {
|
gesture.connect_released(move |_, _, _, _| {
|
||||||
let imp = entry_ref.imp();
|
let imp = entry_ref.imp();
|
||||||
let borrow = imp.bluetooth_device.borrow();
|
let borrow = imp.bluetooth_device.borrow();
|
||||||
|
|
|
@ -69,7 +69,7 @@ pub fn device_removed_handler(
|
||||||
if list_entry.imp().bluetooth_device.borrow().connected {
|
if list_entry.imp().bluetooth_device.borrow().connected {
|
||||||
imp.reset_bluetooth_connected_devices.remove(&*list_entry);
|
imp.reset_bluetooth_connected_devices.remove(&*list_entry);
|
||||||
} else {
|
} else {
|
||||||
// TODO: is there a better way for this?
|
// FUTURE TODO: is there a better way for this?
|
||||||
imp.reset_bluetooth_available_devices.remove(&*list_entry);
|
imp.reset_bluetooth_available_devices.remove(&*list_entry);
|
||||||
imp.reset_bluetooth_saved_devices.remove(&*list_entry);
|
imp.reset_bluetooth_saved_devices.remove(&*list_entry);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,9 @@ use glib::prelude::Cast;
|
||||||
use glib::Object;
|
use glib::Object;
|
||||||
use gtk::prelude::{GObjectPropertyExpressionExt, ListBoxRowExt, ListItemExt, WidgetExt};
|
use gtk::prelude::{GObjectPropertyExpressionExt, ListBoxRowExt, ListItemExt, WidgetExt};
|
||||||
use gtk::{Align, SignalListItemFactory, StringObject};
|
use gtk::{Align, SignalListItemFactory, StringObject};
|
||||||
|
use re_set_lib::ERROR;
|
||||||
|
#[cfg(debug_assertions)]
|
||||||
|
use re_set_lib::{utils::macros::ErrorLevel, write_log_to_file};
|
||||||
|
|
||||||
pub const DBUS_PATH: &str = "/org/Xetibo/ReSet/Daemon";
|
pub const DBUS_PATH: &str = "/org/Xetibo/ReSet/Daemon";
|
||||||
pub const WIRELESS: &str = "org.Xetibo.ReSet.Network";
|
pub const WIRELESS: &str = "org.Xetibo.ReSet.Network";
|
||||||
|
@ -93,5 +96,12 @@ pub fn get_capabilities() -> Vec<String> {
|
||||||
let conn = Connection::new_session().unwrap();
|
let conn = Connection::new_session().unwrap();
|
||||||
let proxy = conn.with_proxy(BASE, DBUS_PATH, Duration::from_millis(10000));
|
let proxy = conn.with_proxy(BASE, DBUS_PATH, Duration::from_millis(10000));
|
||||||
let res: Result<(Vec<String>,), Error> = proxy.method_call(BASE, "GetCapabilities", ());
|
let res: Result<(Vec<String>,), Error> = proxy.method_call(BASE, "GetCapabilities", ());
|
||||||
|
if res.is_err() {
|
||||||
|
ERROR!(
|
||||||
|
"Could not call capabilities from daemon",
|
||||||
|
ErrorLevel::Critical
|
||||||
|
);
|
||||||
|
return Vec::new();
|
||||||
|
}
|
||||||
res.unwrap().0
|
res.unwrap().0
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,7 +55,7 @@ impl SavedWifiEntry {
|
||||||
let entry_ref = entry.clone();
|
let entry_ref = entry.clone();
|
||||||
delete_button.connect_clicked(clone!(@weak wifi_box => move |_| {
|
delete_button.connect_clicked(clone!(@weak wifi_box => move |_| {
|
||||||
delete_connection(entry_ref.imp().reset_connection_path.take());
|
delete_connection(entry_ref.imp().reset_connection_path.take());
|
||||||
// TODO handle error
|
// FUTURE TODO: handle error
|
||||||
wifi_box.reset_stored_wifi_list.remove(&*entry_ref);
|
wifi_box.reset_stored_wifi_list.remove(&*entry_ref);
|
||||||
|
|
||||||
}));
|
}));
|
||||||
|
|
|
@ -209,7 +209,7 @@ pub fn show_stored_connections(wifi_box: Arc<WifiBox>) {
|
||||||
glib::idle_add_once(move || {
|
glib::idle_add_once(move || {
|
||||||
let self_imp = wifibox_ref.imp();
|
let self_imp = wifibox_ref.imp();
|
||||||
for connection in connections {
|
for connection in connections {
|
||||||
// TODO include button for settings
|
// FUTURE TODO: include button for settings
|
||||||
let name =
|
let name =
|
||||||
&String::from_utf8(connection.1).unwrap_or_else(|_| String::from(""));
|
&String::from_utf8(connection.1).unwrap_or_else(|_| String::from(""));
|
||||||
let entry = SavedWifiEntry::new(name, connection.0, self_imp);
|
let entry = SavedWifiEntry::new(name, connection.0, self_imp);
|
||||||
|
|
|
@ -48,7 +48,7 @@ impl WifiEntry {
|
||||||
.build(),
|
.build(),
|
||||||
);
|
);
|
||||||
|
|
||||||
// TODO handle encryption thing
|
// FUTURE TODO: handle encryption
|
||||||
let wifi_strength = Image::builder()
|
let wifi_strength = Image::builder()
|
||||||
.icon_name(match strength {
|
.icon_name(match strength {
|
||||||
WifiStrength::Excellent => "network-wireless-signal-excellent-symbolic",
|
WifiStrength::Excellent => "network-wireless-signal-excellent-symbolic",
|
||||||
|
@ -177,7 +177,7 @@ pub fn click_stored_network(entry: Arc<WifiEntry>) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
// TODO crate spinner animation and block UI
|
// FUTURE TODO: crate spinner animation and block UI
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn click_new_network(entry: Arc<WifiEntry>) {
|
pub fn click_new_network(entry: Arc<WifiEntry>) {
|
||||||
|
@ -228,7 +228,7 @@ pub fn click_new_network(entry: Arc<WifiEntry>) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
// TODO crate spinner animation and block UI
|
// FUTURE TODO: crate spinner animation and block UI
|
||||||
};
|
};
|
||||||
|
|
||||||
let entry_imp = entry.imp();
|
let entry_imp = entry.imp();
|
||||||
|
|
|
@ -72,7 +72,7 @@ pub fn access_point_changed_handler(wifi_box: Arc<WifiBox>, ir: AccessPointChang
|
||||||
let name = name_opt.as_str();
|
let name = name_opt.as_str();
|
||||||
entry_imp.wifi_strength.set(strength);
|
entry_imp.wifi_strength.set(strength);
|
||||||
entry.set_title(name);
|
entry.set_title(name);
|
||||||
// TODO handle encryption thing
|
// FUTURE TODO: handle encryption thing
|
||||||
entry_imp
|
entry_imp
|
||||||
.reset_wifi_strength
|
.reset_wifi_strength
|
||||||
.borrow()
|
.borrow()
|
||||||
|
|
|
@ -207,7 +207,6 @@ impl ReSetWindow {
|
||||||
.connect_row_activated(clone!(@ weak self_imp => move |_, _| {
|
.connect_row_activated(clone!(@ weak self_imp => move |_, _| {
|
||||||
self_imp.reset_search_entry.set_text("");
|
self_imp.reset_search_entry.set_text("");
|
||||||
}));
|
}));
|
||||||
// TODO: refactor this
|
|
||||||
let mut i = 0;
|
let mut i = 0;
|
||||||
for info in sidebar_list {
|
for info in sidebar_list {
|
||||||
if info.parent.is_none() && i != 0 {
|
if info.parent.is_none() && i != 0 {
|
||||||
|
|
|
@ -11,7 +11,7 @@ use crate::components::window::sidebar_entry;
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
pub enum Categories {
|
pub enum Categories {
|
||||||
// TODO: are these ever used ?
|
// FUTURE TODO: are these ever used ?
|
||||||
// Connectivity,
|
// Connectivity,
|
||||||
// Audio,
|
// Audio,
|
||||||
// Peripherals,
|
// Peripherals,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use std::hint::{self};
|
use std::hint::{self};
|
||||||
use std::sync::atomic::AtomicBool;
|
use std::sync::atomic::{AtomicBool, Ordering};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::thread;
|
use std::thread;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
@ -81,5 +81,7 @@ async fn daemon_check(ready: Arc<AtomicBool>) {
|
||||||
let res = handle.join();
|
let res = handle.join();
|
||||||
if res.unwrap().is_err() {
|
if res.unwrap().is_err() {
|
||||||
run_daemon(Some(ready)).await;
|
run_daemon(Some(ready)).await;
|
||||||
|
} else {
|
||||||
|
ready.store(true, Ordering::SeqCst);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,5 +38,5 @@ row.selectedLanguage {
|
||||||
}
|
}
|
||||||
|
|
||||||
row.activeLanguage {
|
row.activeLanguage {
|
||||||
background-color: darker(darker(darker(@window_fg_color)));
|
background-color: @blue_2;
|
||||||
}
|
}
|
|
@ -14,7 +14,6 @@ async fn test_plugins() {
|
||||||
hint::spin_loop();
|
hint::spin_loop();
|
||||||
}
|
}
|
||||||
unsafe {
|
unsafe {
|
||||||
println!("pang");
|
|
||||||
for plugin in FRONTEND_PLUGINS.iter() {
|
for plugin in FRONTEND_PLUGINS.iter() {
|
||||||
let name = (plugin.frontend_name)();
|
let name = (plugin.frontend_name)();
|
||||||
let tests = (plugin.frontend_tests)();
|
let tests = (plugin.frontend_tests)();
|
||||||
|
|
|
@ -8,7 +8,7 @@ use gtk::prelude::{BoxExt, ButtonExt};
|
||||||
use re_set_lib::utils::plugin::{PluginCapabilities, PluginImplementation, PluginTestFunc, SidebarInfo};
|
use re_set_lib::utils::plugin::{PluginCapabilities, PluginImplementation, PluginTestFunc, SidebarInfo};
|
||||||
|
|
||||||
pub const BASE: &str = "org.Xetibo.ReSet.Daemon";
|
pub const BASE: &str = "org.Xetibo.ReSet.Daemon";
|
||||||
pub const DBUS_PATH: &str = "/org/Xebito/ReSet/Plugins/test";
|
pub const DBUS_PATH: &str = "/org/Xetibo/ReSet/Plugins/test";
|
||||||
pub const INTERFACE: &str = "org.Xetibo.ReSet.TestPlugin";
|
pub const INTERFACE: &str = "org.Xetibo.ReSet.TestPlugin";
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
|
|
Loading…
Reference in a new issue