{ ... }: { programs.zsh = { enable = true; enableCompletion = true; history.size = 10000; autosuggestion = { enable = true; highlight = "fg=10"; }; syntaxHighlighting = { enable = true; }; initExtra = '' if [ -f $HOME/.nix-profile/etc/profile.d/nix.sh ]; then source $HOME/.nix-profile/etc/profile.d/nix.sh fi function sc-log { ssh smartcan "SYSTEMD_COLORS=true journalctl --follow --no-tail --unit smartcan-''${1:-*}" } function sc-restart { ssh smartcan "systemctl restart smartcan-''${1}" } function fu-reboot { ssh fusion "reboot" } function fu-flash { local ssh_login="fusion" local update_file=''${1} if [ -z ''${update_file} ]; then update_file=$(find build/tmp/deploy/images -name "*.swu" -type f | fzf --select-1) fi if [ -z ''${update_file} ]; then echo "no file selected" return 1 fi if [ ! -f ''${update_file} ]; then echo "file \"''${update_file}\" does not exist" return 2 fi echo "flashing ''${update_file} to device..." cat "''${update_file}" | ssh ''${ssh_login} "swupdate-client -" if [ $? -ne 0 ]; then echo "update failed" return 3 fi echo "rebooting device" ssh ''${ssh_login} reboot echo "done." } ''; }; }