diff --git a/.direnv/bin/nix-direnv-reload b/.direnv/bin/nix-direnv-reload index be817d8..f63b15c 100755 --- a/.direnv/bin/nix-direnv-reload +++ b/.direnv/bin/nix-direnv-reload @@ -1,19 +1,19 @@ #!/usr/bin/env bash set -e -if [[ ! -d "/mnt/removable/Projects/Rust/floating-calculator" ]]; then +if [[ ! -d "/home/maxag/Projects/Rust/floating-calculator" ]]; then echo "Cannot find source directory; Did you move it?" - echo "(Looking for "/mnt/removable/Projects/Rust/floating-calculator")" + echo "(Looking for "/home/maxag/Projects/Rust/floating-calculator")" echo 'Cannot force reload with this script - use "direnv reload" manually and then try again' exit 1 fi # rebuild the cache forcefully -_nix_direnv_force_reload=1 direnv exec "/mnt/removable/Projects/Rust/floating-calculator" true +_nix_direnv_force_reload=1 direnv exec "/home/maxag/Projects/Rust/floating-calculator" true # Update the mtime for .envrc. # This will cause direnv to reload again - but without re-building. -touch "/mnt/removable/Projects/Rust/floating-calculator/.envrc" +touch "/home/maxag/Projects/Rust/floating-calculator/.envrc" # Also update the timestamp of whatever profile_rc we have. # This makes sure that we know we are up to date. -touch -r "/mnt/removable/Projects/Rust/floating-calculator/.envrc" "/mnt/removable/Projects/Rust/floating-calculator/.direnv"/*.rc +touch -r "/home/maxag/Projects/Rust/floating-calculator/.envrc" "/home/maxag/Projects/Rust/floating-calculator/.direnv"/*.rc diff --git a/.direnv/flake-inputs/a4780bxfsf30qy5r6mwsg1crhbir9zp6-source b/.direnv/flake-inputs/a4780bxfsf30qy5r6mwsg1crhbir9zp6-source new file mode 120000 index 0000000..15b5fd1 --- /dev/null +++ b/.direnv/flake-inputs/a4780bxfsf30qy5r6mwsg1crhbir9zp6-source @@ -0,0 +1 @@ +/nix/store/a4780bxfsf30qy5r6mwsg1crhbir9zp6-source \ No newline at end of file diff --git a/.direnv/flake-inputs/kcr4344gjcn3bapm00x8mj1lcbq5ad0d-source b/.direnv/flake-inputs/kcr4344gjcn3bapm00x8mj1lcbq5ad0d-source deleted file mode 120000 index 7a82a67..0000000 --- a/.direnv/flake-inputs/kcr4344gjcn3bapm00x8mj1lcbq5ad0d-source +++ /dev/null @@ -1 +0,0 @@ -/nix/store/kcr4344gjcn3bapm00x8mj1lcbq5ad0d-source \ No newline at end of file diff --git a/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc b/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc index 5652bb6..40a0d9a 100644 --- a/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc +++ b/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc @@ -47,7 +47,7 @@ NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1' export NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu NIX_BINTOOLS_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu='1' export NIX_BINTOOLS_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu -NIX_BUILD_CORES='16' +NIX_BUILD_CORES='12' export NIX_BUILD_CORES NIX_CC='/nix/store/a245z3cvf9x9sn0xlk6k8j9xhxbhda1z-gcc-wrapper-15.2.0' export NIX_CC @@ -65,7 +65,7 @@ NIX_ENFORCE_NO_NATIVE='1' export NIX_ENFORCE_NO_NATIVE NIX_HARDENING_ENABLE='bindnow format fortify fortify3 libcxxhardeningextensive libcxxhardeningfast pic relro stackclashprotection stackprotector strictoverflow zerocallusedregs' export NIX_HARDENING_ENABLE -NIX_LDFLAGS='-rpath /mnt/removable/Projects/Rust/floating-calculator/outputs/out/lib -L/nix/store/9k0snv1492aqrkahlai724yd53qszh7z-rust-default-1.93.1/lib -L/nix/store/9k0snv1492aqrkahlai724yd53qszh7z-rust-default-1.93.1/lib -L/nix/store/81cfgyhfaadhh0vs4nf74yhcclgbav87-libxml2-2.15.1/lib -L/nix/store/81cfgyhfaadhh0vs4nf74yhcclgbav87-libxml2-2.15.1/lib -L/nix/store/c5p8phmycgqjfrwzf0cpc740b6gvdac5-gmp-with-cxx-6.3.0/lib -L/nix/store/c5p8phmycgqjfrwzf0cpc740b6gvdac5-gmp-with-cxx-6.3.0/lib -L/nix/store/rx9c12rcc10273xrgb21kcpglddh1sry-mpfr-4.2.2/lib -L/nix/store/rx9c12rcc10273xrgb21kcpglddh1sry-mpfr-4.2.2/lib -L/nix/store/q34rjcffjcmhbnsx8nd6w0i2xamz66i3-icu4c-76.1/lib -L/nix/store/q34rjcffjcmhbnsx8nd6w0i2xamz66i3-icu4c-76.1/lib -L/nix/store/wwkx16bp7i0v7qalqc3cdqr477pc21h8-libqalculate-5.9.0/lib -L/nix/store/wwkx16bp7i0v7qalqc3cdqr477pc21h8-libqalculate-5.9.0/lib -L/nix/store/ri9paa3mri4kqakljak8ldvbcp7lpmif-zlib-1.3.1/lib -L/nix/store/ri9paa3mri4kqakljak8ldvbcp7lpmif-zlib-1.3.1/lib -L/nix/store/s644cyhhkg9zjgk924ap5wwr96jn71d3-libffi-3.5.2/lib -L/nix/store/s644cyhhkg9zjgk924ap5wwr96jn71d3-libffi-3.5.2/lib -L/nix/store/ykz6g9bnl3kka132wiw355rzk0bibdqn-gettext-0.25.1/lib -L/nix/store/ykz6g9bnl3kka132wiw355rzk0bibdqn-gettext-0.25.1/lib -L/nix/store/fgzpllmvbk3l258j0f3ib7k44lksbqnp-glib-2.86.3/lib -L/nix/store/fgzpllmvbk3l258j0f3ib7k44lksbqnp-glib-2.86.3/lib -L/nix/store/9k0snv1492aqrkahlai724yd53qszh7z-rust-default-1.93.1/lib -L/nix/store/9k0snv1492aqrkahlai724yd53qszh7z-rust-default-1.93.1/lib -L/nix/store/81cfgyhfaadhh0vs4nf74yhcclgbav87-libxml2-2.15.1/lib -L/nix/store/81cfgyhfaadhh0vs4nf74yhcclgbav87-libxml2-2.15.1/lib -L/nix/store/c5p8phmycgqjfrwzf0cpc740b6gvdac5-gmp-with-cxx-6.3.0/lib -L/nix/store/c5p8phmycgqjfrwzf0cpc740b6gvdac5-gmp-with-cxx-6.3.0/lib -L/nix/store/rx9c12rcc10273xrgb21kcpglddh1sry-mpfr-4.2.2/lib -L/nix/store/rx9c12rcc10273xrgb21kcpglddh1sry-mpfr-4.2.2/lib -L/nix/store/q34rjcffjcmhbnsx8nd6w0i2xamz66i3-icu4c-76.1/lib -L/nix/store/q34rjcffjcmhbnsx8nd6w0i2xamz66i3-icu4c-76.1/lib -L/nix/store/wwkx16bp7i0v7qalqc3cdqr477pc21h8-libqalculate-5.9.0/lib -L/nix/store/wwkx16bp7i0v7qalqc3cdqr477pc21h8-libqalculate-5.9.0/lib -L/nix/store/ri9paa3mri4kqakljak8ldvbcp7lpmif-zlib-1.3.1/lib -L/nix/store/ri9paa3mri4kqakljak8ldvbcp7lpmif-zlib-1.3.1/lib -L/nix/store/s644cyhhkg9zjgk924ap5wwr96jn71d3-libffi-3.5.2/lib -L/nix/store/s644cyhhkg9zjgk924ap5wwr96jn71d3-libffi-3.5.2/lib -L/nix/store/ykz6g9bnl3kka132wiw355rzk0bibdqn-gettext-0.25.1/lib -L/nix/store/ykz6g9bnl3kka132wiw355rzk0bibdqn-gettext-0.25.1/lib -L/nix/store/fgzpllmvbk3l258j0f3ib7k44lksbqnp-glib-2.86.3/lib -L/nix/store/fgzpllmvbk3l258j0f3ib7k44lksbqnp-glib-2.86.3/lib' +NIX_LDFLAGS='-rpath /home/maxag/Projects/Rust/floating-calculator/outputs/out/lib -L/nix/store/9k0snv1492aqrkahlai724yd53qszh7z-rust-default-1.93.1/lib -L/nix/store/9k0snv1492aqrkahlai724yd53qszh7z-rust-default-1.93.1/lib -L/nix/store/81cfgyhfaadhh0vs4nf74yhcclgbav87-libxml2-2.15.1/lib -L/nix/store/81cfgyhfaadhh0vs4nf74yhcclgbav87-libxml2-2.15.1/lib -L/nix/store/c5p8phmycgqjfrwzf0cpc740b6gvdac5-gmp-with-cxx-6.3.0/lib -L/nix/store/c5p8phmycgqjfrwzf0cpc740b6gvdac5-gmp-with-cxx-6.3.0/lib -L/nix/store/rx9c12rcc10273xrgb21kcpglddh1sry-mpfr-4.2.2/lib -L/nix/store/rx9c12rcc10273xrgb21kcpglddh1sry-mpfr-4.2.2/lib -L/nix/store/q34rjcffjcmhbnsx8nd6w0i2xamz66i3-icu4c-76.1/lib -L/nix/store/q34rjcffjcmhbnsx8nd6w0i2xamz66i3-icu4c-76.1/lib -L/nix/store/wwkx16bp7i0v7qalqc3cdqr477pc21h8-libqalculate-5.9.0/lib -L/nix/store/wwkx16bp7i0v7qalqc3cdqr477pc21h8-libqalculate-5.9.0/lib -L/nix/store/ri9paa3mri4kqakljak8ldvbcp7lpmif-zlib-1.3.1/lib -L/nix/store/ri9paa3mri4kqakljak8ldvbcp7lpmif-zlib-1.3.1/lib -L/nix/store/s644cyhhkg9zjgk924ap5wwr96jn71d3-libffi-3.5.2/lib -L/nix/store/s644cyhhkg9zjgk924ap5wwr96jn71d3-libffi-3.5.2/lib -L/nix/store/ykz6g9bnl3kka132wiw355rzk0bibdqn-gettext-0.25.1/lib -L/nix/store/ykz6g9bnl3kka132wiw355rzk0bibdqn-gettext-0.25.1/lib -L/nix/store/fgzpllmvbk3l258j0f3ib7k44lksbqnp-glib-2.86.3/lib -L/nix/store/fgzpllmvbk3l258j0f3ib7k44lksbqnp-glib-2.86.3/lib -L/nix/store/9k0snv1492aqrkahlai724yd53qszh7z-rust-default-1.93.1/lib -L/nix/store/9k0snv1492aqrkahlai724yd53qszh7z-rust-default-1.93.1/lib -L/nix/store/81cfgyhfaadhh0vs4nf74yhcclgbav87-libxml2-2.15.1/lib -L/nix/store/81cfgyhfaadhh0vs4nf74yhcclgbav87-libxml2-2.15.1/lib -L/nix/store/c5p8phmycgqjfrwzf0cpc740b6gvdac5-gmp-with-cxx-6.3.0/lib -L/nix/store/c5p8phmycgqjfrwzf0cpc740b6gvdac5-gmp-with-cxx-6.3.0/lib -L/nix/store/rx9c12rcc10273xrgb21kcpglddh1sry-mpfr-4.2.2/lib -L/nix/store/rx9c12rcc10273xrgb21kcpglddh1sry-mpfr-4.2.2/lib -L/nix/store/q34rjcffjcmhbnsx8nd6w0i2xamz66i3-icu4c-76.1/lib -L/nix/store/q34rjcffjcmhbnsx8nd6w0i2xamz66i3-icu4c-76.1/lib -L/nix/store/wwkx16bp7i0v7qalqc3cdqr477pc21h8-libqalculate-5.9.0/lib -L/nix/store/wwkx16bp7i0v7qalqc3cdqr477pc21h8-libqalculate-5.9.0/lib -L/nix/store/ri9paa3mri4kqakljak8ldvbcp7lpmif-zlib-1.3.1/lib -L/nix/store/ri9paa3mri4kqakljak8ldvbcp7lpmif-zlib-1.3.1/lib -L/nix/store/s644cyhhkg9zjgk924ap5wwr96jn71d3-libffi-3.5.2/lib -L/nix/store/s644cyhhkg9zjgk924ap5wwr96jn71d3-libffi-3.5.2/lib -L/nix/store/ykz6g9bnl3kka132wiw355rzk0bibdqn-gettext-0.25.1/lib -L/nix/store/ykz6g9bnl3kka132wiw355rzk0bibdqn-gettext-0.25.1/lib -L/nix/store/fgzpllmvbk3l258j0f3ib7k44lksbqnp-glib-2.86.3/lib -L/nix/store/fgzpllmvbk3l258j0f3ib7k44lksbqnp-glib-2.86.3/lib' export NIX_LDFLAGS NIX_LDFLAGS_FOR_TARGET=' -L/nix/store/9k0snv1492aqrkahlai724yd53qszh7z-rust-default-1.93.1/lib -L/nix/store/81cfgyhfaadhh0vs4nf74yhcclgbav87-libxml2-2.15.1/lib -L/nix/store/c5p8phmycgqjfrwzf0cpc740b6gvdac5-gmp-with-cxx-6.3.0/lib -L/nix/store/rx9c12rcc10273xrgb21kcpglddh1sry-mpfr-4.2.2/lib -L/nix/store/q34rjcffjcmhbnsx8nd6w0i2xamz66i3-icu4c-76.1/lib -L/nix/store/wwkx16bp7i0v7qalqc3cdqr477pc21h8-libqalculate-5.9.0/lib -L/nix/store/ri9paa3mri4kqakljak8ldvbcp7lpmif-zlib-1.3.1/lib -L/nix/store/s644cyhhkg9zjgk924ap5wwr96jn71d3-libffi-3.5.2/lib -L/nix/store/ykz6g9bnl3kka132wiw355rzk0bibdqn-gettext-0.25.1/lib -L/nix/store/fgzpllmvbk3l258j0f3ib7k44lksbqnp-glib-2.86.3/lib' export NIX_LDFLAGS_FOR_TARGET @@ -187,7 +187,7 @@ name='nix-shell-env' export name nativeBuildInputs='' export nativeBuildInputs -out='/mnt/removable/Projects/Rust/floating-calculator/outputs/out' +out='/home/maxag/Projects/Rust/floating-calculator/outputs/out' export out outputBin='out' outputDev='out' @@ -220,7 +220,7 @@ declare -a preFixupHooks=('_moveToShare' '_multioutDocs' '_multioutDevs' ) preInstallPhases=' glibPreInstallPhase' preferLocalBuild='1' export preferLocalBuild -prefix='/mnt/removable/Projects/Rust/floating-calculator/outputs/out' +prefix='/home/maxag/Projects/Rust/floating-calculator/outputs/out' declare -a propagatedBuildDepFiles=('propagated-build-build-deps' 'propagated-native-build-inputs' 'propagated-build-target-deps' ) propagatedBuildInputs='' export propagatedBuildInputs diff --git a/.qtcreator/project.json b/.qtcreator/project.json deleted file mode 100644 index d9860ad..0000000 --- a/.qtcreator/project.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "$schema": "https://download.qt.io/official_releases/qtcreator/latest/installer_source/jsonschemas/project.json", - "build.configuration": [ - { - "name": "cargo build", - "steps": [ - { - "arguments": [ - "build" - ], - "executable": "cargo", - "workingDirectory": "%{ActiveProject:ProjectDirectory}" - } - ] - } - ], - "files.exclude": [ - ".qtcreator/project.json.user" - ], - "targets": [ - { - "arguments": [ - "run" - ], - "executable": "cargo", - "name": "cargo run", - "workingDirectory": "%{ActiveProject:ProjectDirectory}" - } - ] -} diff --git a/.qtcreator/project.json.user b/.qtcreator/project.json.user deleted file mode 100644 index 4af5fea..0000000 --- a/.qtcreator/project.json.user +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - EnvironmentId - {5d8e8680-89de-4c24-ba30-601d18fb330e} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - true - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 0 - 80 - true - true - 1 - 0 - false - true - false - 2 - true - true - 0 - 8 - true - false - 1 - true - true - true - *.md, *.MD, Makefile - false - true - true - - - - ProjectExplorer.Project.PluginSettings - - - true - false - true - true - true - true - - false - - - 0 - true - - true - true - Builtin.DefaultTidyAndClazy - 8 - true - - - - true - - 0 - - - - ProjectExplorer.Project.Target.0 - - Desktop - true - Desktop - Desktop - {b8a5a6e7-b294-43dc-8d9b-fbedef43caf2} - 0 - 0 - 0 - - /mnt/removable/Projects/Rust/floating-calculator - - - true - build - cargo - %{ActiveProject:ProjectDirectory} - /mnt/removable/Projects/Rust/floating-calculator - ProjectExplorer.ProcessStep - - 1 - Build - Build - ProjectExplorer.BuildSteps.Build - - - 0 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - false - - cargo build - WorkspaceProject.BuildConfiguration - 0 - 0 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - - false - ProjectExplorer.DefaultDeployConfiguration - - 1 - - true - true - 0 - true - - -e cpu-cycles --call-graph dwarf,4096 -F 250 - cargo run - WorkspaceProject.RunConfiguration: - cargo run1 - false - - true - true - run - cargo - %{ActiveProject:ProjectDirectory} - - 1 - - true - cargo build - - - - build - - cargo - %{ActiveProject:ProjectDirectory} - - - - - 1 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - - false - ProjectExplorer.DefaultDeployConfiguration - - 1 - - true - true - 0 - true - - -e cpu-cycles --call-graph dwarf,4096 -F 250 - cargo run - WorkspaceProject.RunConfiguration: - cargo run1 - false - - true - true - run - cargo - %{ActiveProject:ProjectDirectory} - - 1 - - - - ProjectExplorer.Project.TargetCount - 1 - - - Version - 22 - - diff --git a/src/main.rs b/src/main.rs index dee3c82..ab20915 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,6 @@ -use iced::widget::{Column, Container, Id, TextInput, container, operation, stack, text}; -use iced::{Color, Element, Event, Task as Command}; +use iced::widget::{Column, Id, TextInput, column, container, operation, text, text_input}; +use iced::{Background, Color, Element, Event, Task as Command}; +use iced::{Border, color}; use iced_layershell::application; use iced_layershell::reexport::Anchor; use iced_layershell::settings::{LayerShellSettings, Settings, StartMode}; @@ -131,39 +132,48 @@ fn update(state: &mut State, message: Message) -> Command { } } -fn view(state: &State) -> Container<'_, Message> { +fn view(state: &State) -> Element<'_, Message> { let input: TextInput<'_, Message> = TextInput::new("Type something here...", &state.current_message) .on_input(Message::TextInput) .on_submit(Message::TextSubmit) .id(state.input_id.clone()); + let input = input.style(|_theme, _status| text_input::Style { + background: Background::Color(Color::TRANSPARENT), + border: Border::default(), + icon: Color::TRANSPARENT, + placeholder: color!(0xbbbbbb), + value: Color::WHITE, + selection: color!(0x0000ff), + }); + let content = Column::with_children( std::iter::once(input.into()) - .chain( - state - .history - .iter() - .rev() - .map(|msg| text!("{}", msg.output).into()), - ) + .chain(state.history.iter().rev().map(|msg| { + column![ + text!("{}", msg.promt).size(12).color(color!(0x999999)), + text!(" {}", msg.output) + ] + .into() + })) .collect::>>(), ); - let bg = container(iced::widget::Space::new()) + container(content) .width(iced::Length::Fill) .height(iced::Length::Fill) + .padding(8.) .style(|_theme| container::Style { + text_color: Some(Color::WHITE), background: Some(iced::Background::Color(Color::from_rgba8(30, 30, 46, 0.75))), + border: iced::Border::default() + .rounded(15.) + .color(color!(0xaaaaff)) + .width(2.), ..Default::default() - }); - - let layered = stack![bg, content]; - - container(layered).style(|_theme| container::Style { - text_color: Some(Color::WHITE), - ..Default::default() - }) + }) + .into() } fn style(_state: &State, theme: &iced::Theme) -> iced::theme::Style {