From 6f5884a8a39517d98f9f92d1ce2f7a8fce58bc83 Mon Sep 17 00:00:00 2001 From: Schrottkatze Date: Thu, 1 Aug 2024 10:27:38 +0200 Subject: [PATCH] add hrt counter to shell startup --- modules/shell/nu.nix | 2 ++ other/scripts/desktop/shell-startup.nu | 46 ++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 other/scripts/desktop/shell-startup.nu diff --git a/modules/shell/nu.nix b/modules/shell/nu.nix index dbf1df8..2d9aa98 100644 --- a/modules/shell/nu.nix +++ b/modules/shell/nu.nix @@ -25,6 +25,8 @@ plugin use query; plugin use polars; plugin use formats; + + nu ${../../other/scripts/desktop/shell-startup.nu}; ''; }; programs.starship.enableNushellIntegration = true; diff --git a/other/scripts/desktop/shell-startup.nu b/other/scripts/desktop/shell-startup.nu new file mode 100644 index 0000000..d4b9a51 --- /dev/null +++ b/other/scripts/desktop/shell-startup.nu @@ -0,0 +1,46 @@ +def "is even" [] { + $in mod 2 == 0 +} + +const TRANS = [ 5BCEFA F5A9B8 FFFFFF F5A9B8 5BCEFA ]; +const LESBIAN = [ D52D00 EF7627 FF9A56 FFFFFF D162A4 B55690 A30262 ]; +const ENBY = [ FCF434 FFFFFF 9C59D1 2C2C2C ]; + +def flag [ + colors: list +] { + use std; + + let col_size = (term size | get columns) / ($colors | length) | math floor; + mut rest = (term size | get columns) - ($col_size * ($colors | length)); + + mut cols = $colors | wrap color | insert width $col_size | flatten; + let last = ($colors | length) - 1; + + $cols = if not ($rest | is even) { + $rest = $rest - 1; + + (if not ($colors | length | is even) { + $cols | update (($colors | length) / 2 | math floor) { $in | update width {|w| ($w.width + 1)}} + } else { + $cols | update $last { $in | update width {|w| ($w.width + 1)}} + }) + }; + + std assert ($rest | is even); + + let amount = $rest / 2; + + $cols = ($cols | update 0 { $in | update width {|w| ($w.width + $amount) } } | update $last { $in | update width {|w| ($w.width + $amount) } }); + + print ($cols | each {|col| + "=" | std repeat $col.width | prepend (ansi {fg: $"#($col.color)" }) | str join + } | prepend (ansi attr_bold) | append (ansi reset) | str join) +} + +def main [] { + flag $TRANS; + print $"(ansi attr_bold) Hi jade, you're on HRT for ((date now) - ('2024-02-18T20:53' | into datetime) | format duration month)s now!"; + flag $LESBIAN; +} +