diff --git a/SwarselSystems.org b/SwarselSystems.org index 1e2b9f5..75aea3e 100644 --- a/SwarselSystems.org +++ b/SwarselSystems.org @@ -4234,6 +4234,11 @@ As such, I also define three additional overlays: { pass-fuzzel = callPackage ./pass-fuzzel { }; pass-fuzzel-otp = callPackage ./pass-fuzzel-otp { }; + cura5 = callPackage ./cura5 { }; + cdw = callPackage ./cdw { }; + cdb = callPackage ./cdb { }; + bak = callPackage ./bak { }; + timer = callPackage ./timer { }; } #+end_src @@ -4316,6 +4321,112 @@ As such, I also define three additional overlays: #+end_src +**** cura5 + + +#+begin_src nix :tangle pkgs/cura5/default.nix + + {appimageTools, fetchurl, writeScriptBin, pkgs}: + + + let + cura5 = appimageTools.wrapType2 rec { + name = "cura5"; + version = "5.4.0"; + src = fetchurl { + url = "https://github.com/Ultimaker/Cura/releases/download/${version}/UltiMaker-Cura-${version}-linux-modern.AppImage"; + hash = "sha256-QVv7Wkfo082PH6n6rpsB79st2xK2+Np9ivBg/PYZd74="; + }; + extraPkgs = pkgs: with pkgs; [ ]; + }; + in + writeScriptBin "cura" '' + #! ${pkgs.bash}/bin/bash + # AppImage version of Cura loses current working directory and treats all paths relative to $HOME. + # So we convert each of the files passed as argument to an absolute path. + # This fixes use cases like `cd /path/to/my/files; cura mymodel.stl anothermodel.stl`. + args=() + for a in "$@"; do + if [ -e "$a" ]; then + a="$(realpath "$a")" + fi + args+=("$a") + done + exec "${cura5}/bin/cura5" "''${args[@]}" + '' + +#+end_src + +**** cdw + + +#+begin_src nix :tangle pkgs/cdw/default.nix + + {writeShellApplication, fzf}: + + writeShellApplication { + name = "cdw"; + runtimeInputs = [ fzf ]; + text = '' + cd "$(git worktree list | fzf | awk '{print $1}')" + ''; + } + + +#+end_src + +**** cdb + + +#+begin_src nix :tangle pkgs/cdb/default.nix + + {writeShellApplication, fzf}: + + writeShellApplication { + name = "cdb"; + runtimeInputs = [ fzf ]; + text = '' + git checkout "$(git branch --list | grep -v "^\*" | fzf | awk '{print $1}')" + ''; + } + +#+end_src + +**** bak + + +#+begin_src nix :tangle pkgs/bak/default.nix + + {writeShellApplication}: + + writeShellApplication { + name = "bak"; + text = '' + cp "$1"{,.bak} + ''; + } + + +#+end_src + +**** timer + + +#+begin_src nix :tangle pkgs/timer/default.nix + + {writeShellApplication, speechd}: + + writeShellApplication { + name = "timer"; + runtimeInputs = [ speechd ]; + text = '' + sleep "$1"; while true; do spd-say "$2"; sleep 0.5; done; + ''; + } + +#+end_src + + *** Overlays #+begin_src nix :tangle overlays/default.nix @@ -5903,45 +6014,18 @@ Programming languages and default lsp's are defined here: [[#h:0e7e8bea-ec58-499 #+begin_src nix :tangle profiles/common/home/packages.nix -pass-fuzzel -pass-fuzzel-otp - - # cura - ( - let - cura5 = appimageTools.wrapType2 rec { - name = "cura5"; - version = "5.4.0"; - src = fetchurl { - url = "https://github.com/Ultimaker/Cura/releases/download/${version}/UltiMaker-Cura-${version}-linux-modern.AppImage"; - hash = "sha256-QVv7Wkfo082PH6n6rpsB79st2xK2+Np9ivBg/PYZd74="; - }; - extraPkgs = pkgs: with pkgs; [ ]; - }; - in - writeScriptBin "cura" '' - #! ${pkgs.bash}/bin/bash - # AppImage version of Cura loses current working directory and treats all paths relateive to $HOME. - # So we convert each of the files passed as argument to an absolute path. - # This fixes use cases like `cd /path/to/my/files; cura mymodel.stl anothermodel.stl`. - args=() - for a in "$@"; do - if [ -e "$a" ]; then - a="$(realpath "$a")" - fi - args+=("$a") - done - exec "${cura5}/bin/cura5" "''${args[@]}" - '' - ) + pass-fuzzel + pass-fuzzel-otp + cura5 + cdw + cdb + bak + timer #E: hides scratchpad depending on state, calls emacsclient for edit and then restores the scratchpad state (pkgs.writeShellScriptBin "e" '' bash ~/.dotfiles/scripts/editor_nowait.sh "$@" '') - (pkgs.writeShellScriptBin "timer" '' - sleep "$1"; while true; do spd-say "$2"; sleep 0.5; done; - '') (pkgs.writeScriptBin "project" '' #! ${pkgs.bash}/bin/bash @@ -5973,28 +6057,8 @@ pass-fuzzel-otp - (pkgs.writeShellApplication { - name = "cdw"; - runtimeInputs = [ pkgs.fzf ]; - text = '' - cd "$(git worktree list | fzf | awk '{print $1}')" - ''; - }) - (pkgs.writeShellApplication { - name = "cdb"; - runtimeInputs = [ pkgs.fzf ]; - text = '' - git checkout "$(git branch --list | grep -v "^\*" | fzf | awk '{print $1}')" - ''; - }) - (pkgs.writeShellApplication { - name = "bak"; - text = '' - cp "$1"{,.bak} - ''; - }) ]; } diff --git a/pkgs/bak/default.nix b/pkgs/bak/default.nix new file mode 100644 index 0000000..3bd5041 --- /dev/null +++ b/pkgs/bak/default.nix @@ -0,0 +1,8 @@ +{ writeShellApplication }: + +writeShellApplication { + name = "bak"; + text = '' + cp "$1"{,.bak} + ''; +} diff --git a/pkgs/cdb/default.nix b/pkgs/cdb/default.nix new file mode 100644 index 0000000..6ff9705 --- /dev/null +++ b/pkgs/cdb/default.nix @@ -0,0 +1,9 @@ +{ writeShellApplication, fzf }: + +writeShellApplication { + name = "cdb"; + runtimeInputs = [ fzf ]; + text = '' + git checkout "$(git branch --list | grep -v "^\*" | fzf | awk '{print $1}')" + ''; +} diff --git a/pkgs/cdw/default.nix b/pkgs/cdw/default.nix new file mode 100644 index 0000000..5d842be --- /dev/null +++ b/pkgs/cdw/default.nix @@ -0,0 +1,9 @@ +{ writeShellApplication, fzf }: + +writeShellApplication { + name = "cdw"; + runtimeInputs = [ fzf ]; + text = '' + cd "$(git worktree list | fzf | awk '{print $1}')" + ''; +} diff --git a/pkgs/cura5/default.nix b/pkgs/cura5/default.nix new file mode 100644 index 0000000..3357beb --- /dev/null +++ b/pkgs/cura5/default.nix @@ -0,0 +1,28 @@ +{ appimageTools, fetchurl, writeScriptBin, pkgs }: + + +let + cura5 = appimageTools.wrapType2 rec { + name = "cura5"; + version = "5.4.0"; + src = fetchurl { + url = "https://github.com/Ultimaker/Cura/releases/download/${version}/UltiMaker-Cura-${version}-linux-modern.AppImage"; + hash = "sha256-QVv7Wkfo082PH6n6rpsB79st2xK2+Np9ivBg/PYZd74="; + }; + extraPkgs = pkgs: with pkgs; [ ]; + }; +in +writeScriptBin "cura" '' + #! ${pkgs.bash}/bin/bash + # AppImage version of Cura loses current working directory and treats all paths relative to $HOME. + # So we convert each of the files passed as argument to an absolute path. + # This fixes use cases like `cd /path/to/my/files; cura mymodel.stl anothermodel.stl`. + args=() + for a in "$@"; do + if [ -e "$a" ]; then + a="$(realpath "$a")" + fi + args+=("$a") + done + exec "${cura5}/bin/cura5" "''${args[@]}" +'' diff --git a/pkgs/default.nix b/pkgs/default.nix index fc8309e..aaa6544 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -5,4 +5,9 @@ in { pass-fuzzel = callPackage ./pass-fuzzel { }; pass-fuzzel-otp = callPackage ./pass-fuzzel-otp { }; + cura5 = callPackage ./cura5 { }; + cdw = callPackage ./cdw { }; + cdb = callPackage ./cdb { }; + bak = callPackage ./bak { }; + timer = callPackage ./timer { }; } diff --git a/pkgs/timer/default.nix b/pkgs/timer/default.nix new file mode 100644 index 0000000..37c5d08 --- /dev/null +++ b/pkgs/timer/default.nix @@ -0,0 +1,9 @@ +{ writeShellApplication, speechd }: + +writeShellApplication { + name = "timer"; + runtimeInputs = [ speechd ]; + text = '' + sleep "$1"; while true; do spd-say "$2"; sleep 0.5; done; + ''; +} diff --git a/profiles/common/home/packages.nix b/profiles/common/home/packages.nix index 210bfe4..167039a 100644 --- a/profiles/common/home/packages.nix +++ b/profiles/common/home/packages.nix @@ -148,43 +148,16 @@ pass-fuzzel pass-fuzzel-otp - - # cura - ( - let - cura5 = appimageTools.wrapType2 rec { - name = "cura5"; - version = "5.4.0"; - src = fetchurl { - url = "https://github.com/Ultimaker/Cura/releases/download/${version}/UltiMaker-Cura-${version}-linux-modern.AppImage"; - hash = "sha256-QVv7Wkfo082PH6n6rpsB79st2xK2+Np9ivBg/PYZd74="; - }; - extraPkgs = pkgs: with pkgs; [ ]; - }; - in - writeScriptBin "cura" '' - #! ${pkgs.bash}/bin/bash - # AppImage version of Cura loses current working directory and treats all paths relateive to $HOME. - # So we convert each of the files passed as argument to an absolute path. - # This fixes use cases like `cd /path/to/my/files; cura mymodel.stl anothermodel.stl`. - args=() - for a in "$@"; do - if [ -e "$a" ]; then - a="$(realpath "$a")" - fi - args+=("$a") - done - exec "${cura5}/bin/cura5" "''${args[@]}" - '' - ) + cura5 + cdw + cdb + bak + timer #E: hides scratchpad depending on state, calls emacsclient for edit and then restores the scratchpad state (pkgs.writeShellScriptBin "e" '' bash ~/.dotfiles/scripts/editor_nowait.sh "$@" '') - (pkgs.writeShellScriptBin "timer" '' - sleep "$1"; while true; do spd-say "$2"; sleep 0.5; done; - '') (pkgs.writeScriptBin "project" '' #! ${pkgs.bash}/bin/bash @@ -216,28 +189,8 @@ - (pkgs.writeShellApplication { - name = "cdw"; - runtimeInputs = [ pkgs.fzf ]; - text = '' - cd "$(git worktree list | fzf | awk '{print $1}')" - ''; - }) - (pkgs.writeShellApplication { - name = "cdb"; - runtimeInputs = [ pkgs.fzf ]; - text = '' - git checkout "$(git branch --list | grep -v "^\*" | fzf | awk '{print $1}')" - ''; - }) - (pkgs.writeShellApplication { - name = "bak"; - text = '' - cp "$1"{,.bak} - ''; - }) ]; }