diff --git a/flake.nix b/flake.nix index eada757..c865232 100644 --- a/flake.nix +++ b/flake.nix @@ -11,50 +11,51 @@ }; outputs = inputs@{ self, nixpkgs, home-manager, darwin, nur, ... }: - let - system = "aarch64-darwin"; + let + system = "aarch64-darwin"; - pkgs = import nixpkgs { - inherit system; - overlays = [ - (import ./overlays) - ]; - config = { - allowUnfree = true; - packageOverrides = pkgs: { - nur = import nur { inherit pkgs; nurpkgs = pkgs; }; + pkgs = import nixpkgs { + inherit system; + overlays = [ + (import ./overlays) + ]; + config = { + allowUnfree = true; + packageOverrides = pkgs: { + nur = import nur { inherit pkgs; nurpkgs = pkgs; }; + }; + }; + }; + + nurNoPkgs = import nur { + nurpkgs = pkgs; + pkgs = throw "nixpkgs eval"; + }; + + home-manager-config = { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = { inherit nurNoPkgs pkgs; inputs = { inherit (inputs); }; }; + home-manager.sharedModules = [ nur.hmModules.nur ]; + home-manager.users.willem = ./home; + users.users.willem = { + home = "/Users/willem"; + isHidden = false; + name = "willem"; + shell = pkgs.zshInteractive; + }; + }; + in + { + darwinConfigurations = { + zeus = darwin.lib.darwinSystem { + inherit system; + modules = [ + ./system/darwin.nix + home-manager.darwinModules.home-manager + home-manager-config + ]; }; }; }; - - nurNoPkgs = import nur { - nurpkgs = pkgs; - pkgs = throw "nixpkgs eval"; - }; - - home-manager-config = { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.extraSpecialArgs = { inherit nurNoPkgs pkgs; inputs = { inherit (inputs); }; }; - home-manager.sharedModules = [ nur.hmModules.nur ]; - home-manager.users.willem = ./home; - users.users.willem = { - home = "/Users/willem"; - isHidden = false; - name = "willem"; - shell = pkgs.zshInteractive; - }; - }; - in { - darwinConfigurations = { - zeus = darwin.lib.darwinSystem { - inherit system; - modules = [ - ./system/darwin.nix - home-manager.darwinModules.home-manager - home-manager-config - ]; - }; - }; - }; } diff --git a/home/darwin/default.nix b/home/darwin/default.nix index 01a3db6..c4c9948 100644 --- a/home/darwin/default.nix +++ b/home/darwin/default.nix @@ -46,8 +46,8 @@ in { targets.darwin = { defaults = { - "com.googlecode.iterm2" = ./iterm2.nix; - "com.apple.finder" = ./finder.nix; + "com.googlecode.iterm2" = import ./iterm2.nix; + "com.apple.finder" = import ./finder.nix; NSGlobalDomain = { AppleLanguages = [ "en-CA" ]; AppleLocale = "en_CA"; diff --git a/home/default.nix b/home/default.nix index 7de78e4..fd077be 100644 --- a/home/default.nix +++ b/home/default.nix @@ -2,7 +2,8 @@ let emacsCommand = "emacsclient -c -nw"; -in rec { +in +rec { home = { file = { ".config/nix/nix.conf".text = '' diff --git a/home/emacs.nix b/home/emacs.nix index a8e481f..03776f2 100644 --- a/home/emacs.nix +++ b/home/emacs.nix @@ -256,11 +256,13 @@ in { latex = { enable = true; package = epkgs: epkgs.auctex; - hook = ['' - (LaTeX-mode - . (lambda () - (turn-on-reftex))) - '']; + hook = [ + '' + (LaTeX-mode + . (lambda () + (turn-on-reftex))) + '' + ]; init = '' (setq TeX-PDF-mode t TeX-auto-save t diff --git a/home/packages.nix b/home/packages.nix index cddc22d..36dd7c5 100644 --- a/home/packages.nix +++ b/home/packages.nix @@ -19,57 +19,59 @@ let python-wp = pkgs.python310.withPackages (p: with p; [ setuptools pyaml requests latexify-py ]); node-packages = with pkgs.nodePackages; [ bash-language-server ]; octave-wp = pkgs.octave.withPackages (p: with p; [ symbolic ]); -in { +in +{ home.packages = with pkgs; - [ - autoconf - automake - bash - bat - black - clang-tools - cmake - comma - curl - discord - docker - docker-compose - fd - findutils - fzf - gawk - gnuplot - graphviz - htop - jq - nixfmt - nix-review - nmap - octave-wp - openssh - pass-extended - plantuml - pngpaste - poppler - python-wp - pv - ripgrep - rsync - rustup - shellcheck - sqlite - texinfo - texlive.combined.scheme-full - tldr - units - unp - unrar - unzip - wget - yq - zoom-us - ] - ++ lib.optionals stdenv.isDarwin darwin - ++ lib.optionals stdenv.isLinux linux - ++ node-packages; + [ + autoconf + automake + bash + bat + black + clang-tools + cmake + comma + curl + discord + docker + docker-compose + fd + findutils + fzf + gawk + gnuplot + graphviz + htop + jq + nix-review + nixfmt + nixpkgs-fmt + nmap + octave-wp + openssh + pass-extended + plantuml + pngpaste + poppler + pv + python-wp + ripgrep + rsync + rustup + shellcheck + spotify-tui + sqlite + texinfo + texlive.combined.scheme-full + tldr + units + unp + unrar + unzip + wget + yq + ] + ++ lib.optionals stdenv.isDarwin darwin + ++ lib.optionals stdenv.isLinux linux + ++ node-packages; } diff --git a/home/programs.nix b/home/programs.nix index 4006bd8..e1b4f42 100644 --- a/home/programs.nix +++ b/home/programs.nix @@ -87,47 +87,47 @@ settings = { format = "$os[](fg:#979797 bg:#444444)$directory$git_branch$git_status[](fg:#444444)$fill[](fg:#444444)$cmd_duration$time$line_break$character"; - fill = { - symbol = "·"; - style = "fg:#505050"; - }; - cmd_duration = { - disabled = false; - min_time = 1500; - style = "fg:#979797 bg:#444444"; - format = "[ $duration  ]($style)"; - }; - os = { - disabled = false; - style = "fg:#eaeaea bg:#444444"; - format = "[ $symbol ]($style)"; - symbols.Macos = ""; - }; - directory = { - disabled = false; - style = "fg:#149dff bg:#444444"; - format = "[  $path ]($style)"; - truncation_length = 3; - truncation_symbol = ""; - }; - git_branch = { - disabled = false; - symbol = ""; - style = "fg:#53d306 bg:#444444"; - format = "[[](fg:#979797 bg:#444444)  $symbol $branch ]($style)"; - }; - git_status = { - disabled = false; - style = "bg:#444444"; - format = - "[[$staged](fg:#cca107 bg:#444444)[$modified](fg:#cca107 bg:#444444)[$untracked](fg:#149dff bg:#444444)[$conflicted](fg:#ed0505 bg:#444444)]($style)"; - }; - time = { - disabled = false; - style = "fg:#4d7573 bg:#444444"; - format = "[ $time  ]($style)"; - time_format = "%T"; - }; + fill = { + symbol = "·"; + style = "fg:#505050"; + }; + cmd_duration = { + disabled = false; + min_time = 1500; + style = "fg:#979797 bg:#444444"; + format = "[ $duration  ]($style)"; + }; + os = { + disabled = false; + style = "fg:#eaeaea bg:#444444"; + format = "[ $symbol ]($style)"; + symbols.Macos = ""; + }; + directory = { + disabled = false; + style = "fg:#149dff bg:#444444"; + format = "[  $path ]($style)"; + truncation_length = 3; + truncation_symbol = ""; + }; + git_branch = { + disabled = false; + symbol = ""; + style = "fg:#53d306 bg:#444444"; + format = "[[](fg:#979797 bg:#444444)  $symbol $branch ]($style)"; + }; + git_status = { + disabled = false; + style = "bg:#444444"; + format = + "[[$staged](fg:#cca107 bg:#444444)[$modified](fg:#cca107 bg:#444444)[$untracked](fg:#149dff bg:#444444)[$conflicted](fg:#ed0505 bg:#444444)]($style)"; + }; + time = { + disabled = false; + style = "fg:#4d7573 bg:#444444"; + format = "[ $time  ]($style)"; + time_format = "%T"; + }; }; }; diff --git a/overlays/chromium-mac.nix b/overlays/chromium-mac.nix index 0c3d1a4..effa8dc 100644 --- a/overlays/chromium-mac.nix +++ b/overlays/chromium-mac.nix @@ -15,18 +15,19 @@ let aarch64-darwin = fetchurl { url = "https://commondatastorage.googleapis.com/chromium-browser-snapshots/Mac_Arm/${version}/chrome-mac.zip"; - sha256 = "sha256-LlbYlJmFLzyHIiygofa0Btm7NAOvWXXhmbjMHldVoGo="; - name = "${pname}_aarch64_${version}.zip"; + sha256 = "sha256-LlbYlJmFLzyHIiygofa0Btm7NAOvWXXhmbjMHldVoGo="; + name = "${pname}_aarch64_${version}.zip"; }; x86_64-darwin = fetchurl { url = "https://commondatastorage.googleapis.com/chromium-browser-snapshots/Mac/${version}/chrome-mac.zip"; - sha256 = "sha256-O+OnjakEpjCRbSjDysEA6RKKaKaSMw+LSO2ZLcxz2vM="; - name = "${pname}_x86_64_${version}.zip"; + sha256 = "sha256-O+OnjakEpjCRbSjDysEA6RKKaKaSMw+LSO2ZLcxz2vM="; + name = "${pname}_x86_64_${version}.zip"; }; }; src = srcs.${stdenv.hostPlatform.system}; -in import ./mk-mac-binpkg.nix { +in +import ./mk-mac-binpkg.nix { inherit pkgs src pname appName version; srcsubdir = "chrome-mac"; } diff --git a/overlays/firefox-mac.nix b/overlays/firefox-mac.nix index 529a623..da0d68a 100644 --- a/overlays/firefox-mac.nix +++ b/overlays/firefox-mac.nix @@ -10,4 +10,5 @@ let sha256 = "sha256-V/8W3qqYhJmte2tq/ZSPtYChdhv8WFQoSORYRaxva9Y="; name = "${pname}_${version}.dmg"; }; -in import ./mk-mac-binpkg.nix { inherit pkgs src pname appName version; } +in +import ./mk-mac-binpkg.nix { inherit pkgs src pname appName version; } diff --git a/overlays/qbittorrent-mac.nix b/overlays/qbittorrent-mac.nix index b6471bc..56806cd 100644 --- a/overlays/qbittorrent-mac.nix +++ b/overlays/qbittorrent-mac.nix @@ -10,5 +10,6 @@ let "https://phoenixnap.dl.sourceforge.net/project/qbittorrent/qbittorrent-mac/qbittorrent-${version}/qbittorrent-${version}.dmg"; sha256 = "sha256-9h+gFAEU0tKrltOjnOKLfylbbBunGZqvPzQogdP9uQM="; }; -in import ./mk-mac-binpkg.nix { inherit pkgs src pname appName version; } +in +import ./mk-mac-binpkg.nix { inherit pkgs src pname appName version; } diff --git a/overlays/spotify-mac.nix b/overlays/spotify-mac.nix index 5f05384..531bacc 100644 --- a/overlays/spotify-mac.nix +++ b/overlays/spotify-mac.nix @@ -1,43 +1,15 @@ -{ stdenv, pkgs, ... }: +{ stdenv, pkgs, fetchurl, ... }: -stdenv.mkDerivation { - name = "spotify-mac-app"; - - sourceRoot = "."; - - nativeBuildInputs = - [ pkgs.undmg pkgs.makeWrapper pkgs.perl pkgs.unzip pkgs.zip ]; +let + appName = "Spotify"; + pname = "spotify"; + version = "sha256-JESQZtyPE9o5PW/f5GdxbqbyeHCxs/oZEW0AakMJgKg="; src = pkgs.fetchurl { url = "https://download.scdn.co/Spotify.dmg"; - hash = "sha256-9Ts6064YaZdjbRN28qkZcrwTH+63drC/jUfTGLvpBNc="; + hash = version; + name = "spotify-mac.dmg"; }; - - spotxsrc = pkgs.fetchFromGitHub { - name = "spotx-mac-src"; - owner = "willemml"; - repo = "SpotX-Mac"; - rev = "03ea3aa59e135b9e2f68b6c8f4d4debe2b207830"; - hash = "sha256-H3QxmM0ALtz58MKaQ6pFcK6wP8oMWufvQ2q2ZjpO5Gs="; - }; - - installPhase = '' - runHook preInstall - - mkdir -p $out/Applications - cp -r "Spotify.app" $out/Applications - - # wrap executable to $out/bin - mkdir -p $out/bin - makeWrapper "$out/Applications/Spotify.app/Contents/MacOS/Spotify" "$out/bin/Spotify" - - cp "$spotxsrc/install.sh" install.sh - - chmod +x install.sh - - ./install.sh -a "$out/Applications/Spotify.app" - - runHook postInstall - ''; -} +in +import ./mk-mac-binpkg.nix { inherit pkgs src pname appName version; } diff --git a/overlays/vlc-mac.nix b/overlays/vlc-mac.nix index a47739e..9677d23 100644 --- a/overlays/vlc-mac.nix +++ b/overlays/vlc-mac.nix @@ -19,7 +19,8 @@ let }; }; src = srcs.${stdenv.hostPlatform.system}; -in import ./mk-mac-binpkg.nix { +in +import ./mk-mac-binpkg.nix { inherit stdenv pkgs fetchurl src pname appName version; } diff --git a/system/darwin.nix b/system/darwin.nix index b6addd6..312f235 100644 --- a/system/darwin.nix +++ b/system/darwin.nix @@ -2,6 +2,12 @@ { services.nix-daemon.enable = true; + services.spotifyd = { + enable = true; + settings.use_keyring = true; + settings.username_cmd = "${pkgs.pass}/bin/pass 'music/spotify' | grep login | cut -f2 -d ' '"; + settings.password_cmd = "${pkgs.pass}/bin/pass 'music/spotify' | head -n1"; + }; nix.package = pkgs.nix; @@ -16,15 +22,15 @@ LaunchServices.LSQuarantine = false; }; keyboard = { - enableKeyMapping = true; + enableKeyMapping = true; - remapCapsLockToEscape = true; + remapCapsLockToEscape = true; - # see https://developer.apple.com/library/content/technotes/tn2450/_index.html for more info - userKeyMapping = [ { - HIDKeyboardModifierMappingSrc = 30064771303; # remap right command to right control. - HIDKeyboardModifierMappingDst = 30064771300; - }]; + # see https://developer.apple.com/library/content/technotes/tn2450/_index.html for more info + userKeyMapping = [{ + HIDKeyboardModifierMappingSrc = 30064771303; # remap right command to right control. + HIDKeyboardModifierMappingDst = 30064771300; + }]; }; }; }