From a8aacd1df505c2762dba92eddcd9c899658bbe71 Mon Sep 17 00:00:00 2001 From: 2ndbeam <2ndbeam@disroot.org> Date: Mon, 6 Apr 2026 14:01:42 +0300 Subject: [PATCH 1/3] feat: Set up window size at app start - Changed wording of load_config logging - Updated docs to mention Windows status --- README.md | 9 ++++++--- src/lib.rs | 2 +- src/main.rs | 4 ++++ ui/app-window.slint | 6 ++++++ 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2615359..5d71099 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,8 @@ By clicking on the timeline in Record mode you can hide controls to make app sma Review mode may be used to show some activity, tracked on another day: ![Review mode example](images/review.png) -Aliveline currently supports Linux only, but you can compile it to your platform. +Aliveline currently supports Linux only, but Windows executable seems to work. +You can also compile Aliveline yourself (see building section). ## Features @@ -38,7 +39,8 @@ Requirements: - Slint dependencies (see [Platforms](https://docs.slint.dev/latest/docs/slint/guide/platforms/desktop/) and [Backends & Renderers](https://docs.slint.dev/latest/docs/slint/guide/backends-and-renderers/backends_and_renderers/)) Instructions: -Run `cargo build --release` +Just run `cargo build --release` and the resulting binary can be located at `target/release/aliveline[.exe]` if compilation succeeds. +If compilation fails, double check that you have all required dependencies. If it still fails, file an issue on [Codeberg](https://codeberg.org/2ndbeam/aliveline/issues), including logs and system info. ## Usage @@ -46,6 +48,7 @@ Just run `aliveline` by any preferred way, for example: ``` $ ./aliveline ``` +or via file explorer. ## Configuration Aliveline tries to find config at: @@ -62,4 +65,4 @@ If config isn't found, Aliveline uses default values defined in [config.toml](ht Keep in mind that default paths are relative, and in this case logs will be written to and read from current working directory. ## Contribution -You can contribute to Aliveline by creating an issue/PR on [Codeberg mirror](https://codeberg.org/2ndbeam/aliveline) +You can contribute to Aliveline by creating an issue/PR on [Codeberg mirror](https://codeberg.org/2ndbeam/aliveline/issues) diff --git a/src/lib.rs b/src/lib.rs index df9b81e..df734c9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -42,7 +42,7 @@ pub fn load_config() -> Config { } println!("Config not found at ${place_var} / {place:?}"); } - println!("Using last resort config path ./config.toml"); + println!("Using config path ./config.toml"); Config::new(PathBuf::from("./config.toml")) } /// Get random-like color id in range 0..16 by computing string hash diff --git a/src/main.rs b/src/main.rs index d96caa4..f466a39 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,6 +8,9 @@ use chrono::{Datelike, Timelike}; use slint::{Color, Model, ModelRc, SharedString, ToSharedString, VecModel, Weak}; use toml::value::{Date as TomlDate, Time}; +const DEFAULT_WINDOW_WIDTH: f32 = 800.; +const DEFAULT_WINDOW_HEIGHT: f32 = 600.; + slint::include_modules!(); impl From for TimelineEvent { @@ -106,6 +109,7 @@ fn main() -> Result<(), Box> { load_colors(ui_weak, config_arc); ui.invoke_update_record_offset(offset as i32); + ui.invoke_update_window_size(DEFAULT_WINDOW_WIDTH, DEFAULT_WINDOW_HEIGHT); ui.on_fetch_log({ let config = config.clone(); diff --git a/ui/app-window.slint b/ui/app-window.slint index 76cbad1..311de17 100644 --- a/ui/app-window.slint +++ b/ui/app-window.slint @@ -11,6 +11,7 @@ export component AppWindow inherits Window { callback new-day-started <=> record.new-day-started; callback get-previous-event <=> record.get-previous-event; callback update-record-offset(int); + callback update-window-size(length, length); callback save-log; callback fetch-log <=> review.fetch-log; @@ -21,6 +22,11 @@ export component AppWindow inherits Window { record.offset = new-offset; } + update-window-size(width, height) => { + self.width = width; + self.height = height; + } + in-out property record-events <=> record.events; in-out property record-offset <=> record.offset; in-out property record-visible-time <=> record.visible-time; From e94e779fec0acd71308282233baf35a406cca619 Mon Sep 17 00:00:00 2001 From: 2ndbeam <2ndbeam@disroot.org> Date: Mon, 6 Apr 2026 15:25:20 +0300 Subject: [PATCH 2/3] feat: Bundle script --- scripts/bundle.sh | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 scripts/bundle.sh diff --git a/scripts/bundle.sh b/scripts/bundle.sh new file mode 100755 index 0000000..5a97ba9 --- /dev/null +++ b/scripts/bundle.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +print_usage() { + echo "Usage: scripts/bundle.sh [TARGET]" +} + +fail() { + echo "$1" + exit 1 +} + +if [ ! -n "$1" ]; then + print_usage + exit 1 +fi + +toml --version > /dev/null || fail "toml-cli is required to fetch version from Cargo.toml" + +version=$(toml get -r Cargo.toml package.version) + +target=$1 + +extension="" + +case "$target" in + *"windows"*) + exe=".exe" + ;; +esac + +echo "Building aliveline$exe for $target..." + +cargo build --release --target $target || fail "Could not build aliveline for target $target" + +prefix=target/$target/release +binary_name=aliveline-$version-$target$exe + +echo "Renaming aliveline$exe to $binary_name..." +mv -v $prefix/aliveline$exe $prefix/$binary_name + +echo "Computing checksum..." +cd $prefix +sha256sum $binary_name > $binary_name.sha256 From 601eb63f3a63100c05f0a712bb13e87c0dd0f6f0 Mon Sep 17 00:00:00 2001 From: 2ndbeam <2ndbeam@disroot.org> Date: Mon, 6 Apr 2026 15:27:56 +0300 Subject: [PATCH 3/3] Bump version to 0.2.1 --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 283cabe..4c81faf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -147,7 +147,7 @@ dependencies = [ [[package]] name = "aliveline" -version = "0.2.0" +version = "0.2.1" dependencies = [ "chrono", "serde", diff --git a/Cargo.toml b/Cargo.toml index 4780d86..c1ecef4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "aliveline" -version = "0.2.0" +version = "0.2.1" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html