Compare commits
3 commits
8ff9ce269d
...
601eb63f3a
| Author | SHA1 | Date | |
|---|---|---|---|
| 601eb63f3a | |||
| e94e779fec | |||
| a8aacd1df5 |
7 changed files with 62 additions and 6 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
|
@ -147,7 +147,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aliveline"
|
name = "aliveline"
|
||||||
version = "0.2.0"
|
version = "0.2.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"serde",
|
"serde",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "aliveline"
|
name = "aliveline"
|
||||||
version = "0.2.0"
|
version = "0.2.1"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
|
||||||
|
|
@ -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 may be used to show some activity, tracked on another day:
|
||||||

|

|
||||||
|
|
||||||
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
|
## 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/))
|
- 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:
|
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
|
## Usage
|
||||||
|
|
||||||
|
|
@ -46,6 +48,7 @@ Just run `aliveline` by any preferred way, for example:
|
||||||
```
|
```
|
||||||
$ ./aliveline
|
$ ./aliveline
|
||||||
```
|
```
|
||||||
|
or via file explorer.
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
Aliveline tries to find config at:
|
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.
|
Keep in mind that default paths are relative, and in this case logs will be written to and read from current working directory.
|
||||||
|
|
||||||
## Contribution
|
## 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)
|
||||||
|
|
|
||||||
43
scripts/bundle.sh
Executable file
43
scripts/bundle.sh
Executable file
|
|
@ -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
|
||||||
|
|
@ -42,7 +42,7 @@ pub fn load_config() -> Config {
|
||||||
}
|
}
|
||||||
println!("Config not found at ${place_var} / {place:?}");
|
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"))
|
Config::new(PathBuf::from("./config.toml"))
|
||||||
}
|
}
|
||||||
/// Get random-like color id in range 0..16 by computing string hash
|
/// Get random-like color id in range 0..16 by computing string hash
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,9 @@ use chrono::{Datelike, Timelike};
|
||||||
use slint::{Color, Model, ModelRc, SharedString, ToSharedString, VecModel, Weak};
|
use slint::{Color, Model, ModelRc, SharedString, ToSharedString, VecModel, Weak};
|
||||||
use toml::value::{Date as TomlDate, Time};
|
use toml::value::{Date as TomlDate, Time};
|
||||||
|
|
||||||
|
const DEFAULT_WINDOW_WIDTH: f32 = 800.;
|
||||||
|
const DEFAULT_WINDOW_HEIGHT: f32 = 600.;
|
||||||
|
|
||||||
slint::include_modules!();
|
slint::include_modules!();
|
||||||
|
|
||||||
impl From<Event> for TimelineEvent {
|
impl From<Event> for TimelineEvent {
|
||||||
|
|
@ -106,6 +109,7 @@ fn main() -> Result<(), Box<dyn Error>> {
|
||||||
load_colors(ui_weak, config_arc);
|
load_colors(ui_weak, config_arc);
|
||||||
|
|
||||||
ui.invoke_update_record_offset(offset as i32);
|
ui.invoke_update_record_offset(offset as i32);
|
||||||
|
ui.invoke_update_window_size(DEFAULT_WINDOW_WIDTH, DEFAULT_WINDOW_HEIGHT);
|
||||||
|
|
||||||
ui.on_fetch_log({
|
ui.on_fetch_log({
|
||||||
let config = config.clone();
|
let config = config.clone();
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ export component AppWindow inherits Window {
|
||||||
callback new-day-started <=> record.new-day-started;
|
callback new-day-started <=> record.new-day-started;
|
||||||
callback get-previous-event <=> record.get-previous-event;
|
callback get-previous-event <=> record.get-previous-event;
|
||||||
callback update-record-offset(int);
|
callback update-record-offset(int);
|
||||||
|
callback update-window-size(length, length);
|
||||||
callback save-log;
|
callback save-log;
|
||||||
|
|
||||||
callback fetch-log <=> review.fetch-log;
|
callback fetch-log <=> review.fetch-log;
|
||||||
|
|
@ -21,6 +22,11 @@ export component AppWindow inherits Window {
|
||||||
record.offset = new-offset;
|
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-events <=> record.events;
|
||||||
in-out property record-offset <=> record.offset;
|
in-out property record-offset <=> record.offset;
|
||||||
in-out property record-visible-time <=> record.visible-time;
|
in-out property record-visible-time <=> record.visible-time;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue