diff --git a/bin/dialog.sh b/bin/dialog.sh new file mode 100755 index 00000000..ba9b306b --- /dev/null +++ b/bin/dialog.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env sh + +osascript -e " display dialog \"$*\" " diff --git a/bin/home-manager-flake-switch.sh b/bin/home-manager-flake-switch.sh index 60794e16..d5e32436 100755 --- a/bin/home-manager-flake-switch.sh +++ b/bin/home-manager-flake-switch.sh @@ -11,8 +11,8 @@ # [[file:../workstation.org::*flake-world equivalent to home-manager 'switch'][flake-world equivalent to home-manager 'switch':1]] set -u # error in case WORKSTATION_NAME is not set function home_manager_flake_switch() { - nix build --no-link ~/workstation/#homeConfigurations.${WORKSTATION_NAME}.$(whoami).activationPackage --show-trace - "$(nix path-info ~/workstation/#homeConfigurations.${WORKSTATION_NAME}.$(whoami).activationPackage)"/activate --show-trace + nix build --debug -L -v --no-link ~/workstation/#homeConfigurations.${WORKSTATION_NAME}.$(whoami).activationPackage --show-trace && \ + "$(nix path-info ~/workstation/#homeConfigurations.${WORKSTATION_NAME}.$(whoami).activationPackage)"/activate --show-trace } home_manager_flake_switch # flake-world equivalent to home-manager 'switch':1 ends here diff --git a/bin/notify.sh b/bin/notify.sh new file mode 100755 index 00000000..e7d92c58 --- /dev/null +++ b/bin/notify.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env sh + +osascript -e " display notification \"$*\" " diff --git a/bootstrap-workstation.sh b/bootstrap-workstation.sh index 0df7bef5..b066b17d 100755 --- a/bootstrap-workstation.sh +++ b/bootstrap-workstation.sh @@ -307,8 +307,8 @@ set -u # [[[[file:~/workstation/workstation.org::home_manager_flake_switch_function][home_manager_flake_switch_function]]][home_manager_flake_switch_function]] function home_manager_flake_switch() { - nix build --no-link ~/workstation/#homeConfigurations.${WORKSTATION_NAME}.$(whoami).activationPackage --show-trace - "$(nix path-info ~/workstation/#homeConfigurations.${WORKSTATION_NAME}.$(whoami).activationPackage)"/activate --show-trace + nix build --no-link ~/workstation/#homeConfigurations.${WORKSTATION_NAME}.$(whoami).activationPackage --show-trace && \ + "$(nix path-info ~/workstation/#homeConfigurations.${WORKSTATION_NAME}.$(whoami).activationPackage)"/activate --show-trace } # home_manager_flake_switch_function ends here home_manager_flake_switch diff --git a/dotfiles/doom.d/config.el b/dotfiles/doom.d/config.el index 45e35e9f..d6b14413 100644 --- a/dotfiles/doom.d/config.el +++ b/dotfiles/doom.d/config.el @@ -66,7 +66,8 @@ (setq global-flycheck-mode nil) (load-theme 'tsdh-light) - +(toggle-debug-on-error) +(toggle-debug-on-quit) ;; (add-to-list 'load-path "~/Projects/shen-elisp/") ;; (require 'shen-elisp) diff --git a/dotfiles/doom.d/init.el b/dotfiles/doom.d/init.el index 6557b171..86403868 100644 --- a/dotfiles/doom.d/init.el +++ b/dotfiles/doom.d/init.el @@ -27,7 +27,6 @@ ;; bug that seems to be in the search code for vertico. ;; no idea when it may get resolved ivy ; a search engine for love and life - ;; vertico ; the search engine of the future :ui diff --git a/dotfiles/zshrc b/dotfiles/zshrc index 927f3a11..ca2cfd8b 100644 --- a/dotfiles/zshrc +++ b/dotfiles/zshrc @@ -22,10 +22,6 @@ export HISTSIZE=10000 # TODO figure out how to make this work in zsh # shopt -s histappend -do_command_done_alert() { - osascript -e 'display dialog "Command Done!"' -} - alert_when_done() { if test -n "$1"; then @@ -34,7 +30,7 @@ alert_when_done() { sleep 1 done fi - do_command_done_alert + notify.sh "command $1 has exited" } sourceIfExists ~/etc/machine-settings.sh diff --git a/flake.lock b/flake.lock index 32405dbe..69717388 100644 --- a/flake.lock +++ b/flake.lock @@ -44,18 +44,17 @@ }, "darwin-nixpkgs": { "locked": { - "lastModified": 1675410244, - "narHash": "sha256-ODj6egMoH/HgAF/0wIy0EfRBeUx5FMuLl6uAdUW3kCI=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "f7543a7539a007e9562e4d8d24e17a4bcf369b68", - "type": "github" + "lastModified": 1690181217, + "narHash": "sha256-77/oUvsnl5+NY7f8PIIz4zaXOvEOgxgvaVGUUWX9QzQ=", + "ref": "refs/heads/master", + "rev": "d75ba3d7a2b5c4952f89f498e435cb5648c0f0cb", + "revCount": 507327, + "type": "git", + "url": "file:///Users/joel/Projects/nixpkgs" }, "original": { - "owner": "nixos", - "ref": "nixpkgs-22.11-darwin", - "repo": "nixpkgs", - "type": "github" + "type": "git", + "url": "file:///Users/joel/Projects/nixpkgs" } }, "doom-emacs": { @@ -63,10 +62,11 @@ "locked": { "lastModified": 1662497747, "narHash": "sha256-4n7E1fqda7cn5/F2jTkOnKw1juG6XMS/FI9gqODL3aU=", - "owner": "doomemacs", - "repo": "doomemacs", + "ref": "refs/heads/current-version", "rev": "3853dff5e11655e858d0bfae64b70cb12ef685ac", - "type": "github" + "revCount": 17702, + "type": "git", + "url": "file:///Users/joel/Projects/doomemacs" }, "original": { "owner": "doomemacs", @@ -124,6 +124,22 @@ "type": "github" } }, + "evil-collection": { + "flake": false, + "locked": { + "lastModified": 1690216305, + "narHash": "sha256-xBSyDqiHD5q8sx8csCTJ5TYlpHMJEuCwcSn1rAyyIak=", + "owner": "emacs-evil", + "repo": "evil-collection", + "rev": "286d69de179cf70c00963a998a4beb826b51414a", + "type": "github" + }, + "original": { + "owner": "emacs-evil", + "repo": "evil-collection", + "type": "github" + } + }, "evil-escape": { "flake": false, "locked": { @@ -282,6 +298,7 @@ "doom-snippets": "doom-snippets", "emacs-overlay": "emacs-overlay", "emacs-so-long": "emacs-so-long", + "evil-collection": "evil-collection", "evil-escape": "evil-escape", "evil-markdown": "evil-markdown", "evil-org-mode": "evil-org-mode", @@ -291,7 +308,9 @@ "flake-utils": "flake-utils", "format-all": "format-all", "nix-straight": "nix-straight", - "nixpkgs": "nixpkgs", + "nixpkgs": [ + "nixpkgs" + ], "nose": "nose", "ob-racket": "ob-racket", "org": "org", @@ -305,28 +324,23 @@ "ws-butler": "ws-butler" }, "locked": { - "lastModified": 1682645493, - "narHash": "sha256-U3TqEcBM7QSqX0B9vQYIdB/9Ls7SE6BzM4XNDpM0Lpg=", - "owner": "nix-community", - "repo": "nix-doom-emacs", - "rev": "33db1786e0352cad4227fb931ac96c4e2e89de29", - "type": "github" + "lastModified": 1686959076, + "narHash": "sha256-kdbo2SVYeczIiUO+XF99II5vqpPNOKsRdVhjcXIIfjk=", + "type": "git", + "url": "file:///Users/joel/Projects/nix-doom-emacs" }, "original": { - "owner": "nix-community", - "repo": "nix-doom-emacs", - "type": "github" + "type": "git", + "url": "file:///Users/joel/Projects/nix-doom-emacs" } }, "nix-straight": { "flake": false, "locked": { "lastModified": 1666982610, - "narHash": "sha256-xjgIrmUsekVTE+MpZb5DMU8DQf9DJ/ZiR0o30L9/XCc=", - "owner": "nix-community", - "repo": "nix-straight.el", - "rev": "ad10364d64f472c904115fd38d194efe1c3f1226", - "type": "github" + "narHash": "sha256-DA3IdlxGtlM88dqFG9YreoUpWFVkSn1llvP+uGENgBA=", + "type": "git", + "url": "file:///Users/joel/Projects/nix-straight.el" }, "original": { "owner": "nix-community", @@ -335,21 +349,6 @@ } }, "nixpkgs": { - "locked": { - "lastModified": 1682566018, - "narHash": "sha256-HPzPRFiy2o/7k7mtnwfM1E6NVZHiFbPdmYCMoIpkHO4=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "8e3b64db39f2aaa14b35ee5376bd6a2e707cadc2", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixpkgs-unstable", - "type": "indirect" - } - }, - "nixpkgs_2": { "locked": { "lastModified": 1675362331, "narHash": "sha256-VmcnKPj5gJLxWK7Bxlhg2LoQvhKRss7Ax+uoFjd3qKY=", @@ -484,7 +483,7 @@ "darwin-nixpkgs": "darwin-nixpkgs", "home-manager": "home-manager", "nix-doom-emacs": "nix-doom-emacs", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs" } }, "rotate-text": { diff --git a/flake.nix b/flake.nix index 6c42fd8e..27566e9e 100644 --- a/flake.nix +++ b/flake.nix @@ -3,8 +3,9 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + # nixpkgs.url = "git+file:///Users/joel/Projects/nixpkgs"; darwin-nixpkgs = { - url = "github:nixos/nixpkgs/nixpkgs-22.11-darwin"; + url = "git+file:///Users/joel/Projects/nixpkgs"; }; darwin.url = "github:lnl7/nix-darwin/master"; darwin.inputs.nixpkgs.follows = "darwin-nixpkgs"; @@ -17,14 +18,22 @@ inputs.nixpkgs.follows = "nixpkgs"; }; nix-doom-emacs = { - url = "github:nix-community/nix-doom-emacs"; + url = "git+file:///Users/joel/Projects/nix-doom-emacs"; + inputs = { + nixpkgs.follows = "nixpkgs"; + + + doom-emacs.url = "git+file:///Users/joel/Projects/doomemacs"; + nix-straight.url = "git+file:///Users/joel/Projects/nix-straight.el"; + }; }; }; - outputs = inputs@{ self, darwin, nixpkgs, darwin-nixpkgs, home-manager, darwin-home-manager, nix-doom-emacs, # darwin-nix-doom-emacs, + outputs = inputs@{ self, darwin, nixpkgs, darwin-nixpkgs, home-manager, darwin-home-manager, nix-doom-emacs, ... }: let + home-manager-config = { user, home }: { config, pkgs, lib, ... }: { @@ -71,6 +80,74 @@ extraConfig = '' (add-to-list 'exec-path "~/.nix-profile/bin/") ''; + + # emacsPackagesOverlay = self: super: { + # embark = self.trivialBuild { + # pname = "embark"; + # ename = "embark"; + # version = "5d0459d27aa7cf738b5af36cf862723a62bef955"; + # packageRequires = [ super.compat super.emacs ]; + # src = pkgs.fetchFromGitHub { + # owner = "oantolin"; + # repo = "embark"; + # rev = "5d0459d27aa7cf738b5af36cf862723a62bef955"; + # sha256 = "sha256-7U94GRmUA+UdqvwSBSEGSwHSpfqaaiKghqg4P4gn85c="; + # }; + # meta = { + # homepage = "https://elpa.gnu.org/packages/embark.html"; + # license = lib.licenses.free; + # }; + + # }; + # # https://github.com/doomemacs/doomemacs/blob/07fca786154551f90f36535bfb21f8ca4abd5027/modules/completion/vertico/packages.el#L4C18-L7 + # vertico = self.trivialBuild { + # pname = "vertico"; + # ename = "vertico"; + # version = "2ad46196653b8a873adf11aee949d621af8ff6bc"; + # packageRequires = [ super.compat super.emacs ]; + # src = pkgs.fetchFromGitHub { + # owner = "minad"; + # repo = "vertico"; + # rev = "2ad46196653b8a873adf11aee949d621af8ff6bc"; + # sha256 = "sha256-8vsNZKSWY6AcLs/a8/b9tjmkF2LEeRSAOvsdiWq+cAc="; + # }; + # meta = { + # homepage = "https://elpa.gnu.org/packages/vertico.html"; + # license = lib.licenses.free; + # }; + + # }; + + # # vertico = self.melpaBuild { + # # pname = "vertico"; + + # # # inherit (haskellPackages.ghc-mod) version src; + # # version = "2ad46196653b8a873adf11aee949d621af8ff6bc"; + + # # src = pkgs.fetchFromGitHub { + # # owner = "minad"; + # # repo = "vertico"; + # # rev = "2ad46196653b8a873adf11aee949d621af8ff6bc"; + # # sha256 = "sha256-8vsNZKSWY6AcLs/a8/b9tjmkF2LEeRSAOvsdiWq+cAc="; + # # }; + + # # packageRequires = [ super.compat super.emacs ]; + + # # # propagatedUserEnvPkgs = [ haskellPackages.ghc-mod ]; + + # # recipe = pkgs.writeText "recipe" '' + # # (vertico :repo "minad/vertico" :fetcher github :files ("*.el" "extensions/*.el")) + # # ''; + + # # fileSpecs = [ "*.el" "extensions/*.el" ]; + + # # meta = { + # # homepage = "https://elpa.gnu.org/packages/vertico.html"; + # # license = lib.licenses.free; + # # }; + # # }; + # } + # ; }; # workaround; see https://github.com/nix-community/home-manager/issues/3342#issuecomment-1283158398 @@ -148,6 +225,7 @@ }; homeConfigurations."ci-ubuntu".runner = linux-home-config{ user = "runner"; home = "/home/runner"; + }; }; } diff --git a/run-debugging-process.sh b/run-debugging-process.sh new file mode 100644 index 00000000..55b1cbca --- /dev/null +++ b/run-debugging-process.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env sh + +set -xu + +LOG_DIR="build-log-$(date | sed 's/ /-/g')" +mkdir -p $LOG_DIR +BUILD_LOG="$LOG_DIR/flake-build.log" +REQUISITES_LOG="$LOG_DIR/requisites.log" +STRAIGHT_LOG="$LOG_DIR/straight-emacs-env.log" + +nix build --debug -L -v --no-link ~/workstation/#homeConfigurations.${WORKSTATION_NAME}.$(whoami).activationPackage --show-trace 2>&1 | tee "$BUILD_LOG" +"$(nix path-info ~/workstation/#homeConfigurations.${WORKSTATION_NAME}.$(whoami).activationPackage)"/activate --show-trace 2>&1 | tee "$BUILD_LOG" + +DERIVATION_PATH=$(nix path-info ~/workstation/#homeConfigurations.${WORKSTATION_NAME}.$(whoami).activationPackage) + +nix-store --query --requisites --include-outputs "$DERIVATION_PATH" > "$REQUISITES_LOG" + +STRAIGHT_ENV_PATH=$(grep straight-emacs-env "$REQUISITES_LOG" | tail -n 1) +nix log "$STRAIGHT_ENV_PATH" > "$STRAIGHT_LOG" +echo "============= STRAIGHT_LOG ===========" +cat "$STRAIGHT_LOG" +echo LOGS STORED TO "$LOG_DIR" + +dialog.sh "workstation build finished" & diff --git a/workstation.org b/workstation.org index 6ec8a273..bd703881 100644 --- a/workstation.org +++ b/workstation.org @@ -579,8 +579,8 @@ home_manager_flake_switch #+NAME: home_manager_flake_switch_function #+begin_src shell function home_manager_flake_switch() { - nix build --no-link ~/workstation/#homeConfigurations.${WORKSTATION_NAME}.$(whoami).activationPackage --show-trace - "$(nix path-info ~/workstation/#homeConfigurations.${WORKSTATION_NAME}.$(whoami).activationPackage)"/activate --show-trace + nix build --no-link ~/workstation/#homeConfigurations.${WORKSTATION_NAME}.$(whoami).activationPackage --show-trace && \ + "$(nix path-info ~/workstation/#homeConfigurations.${WORKSTATION_NAME}.$(whoami).activationPackage)"/activate --show-trace } #+end_src ** Nix darwin