spotifyd + nixpkgs-fmt

This commit is contained in:
willemml 2023-02-05 17:20:34 -08:00
parent 18fdb1b562
commit 125183aa81
Signed by: willemml
GPG key ID: C3DE5DF6198DACBD
12 changed files with 183 additions and 195 deletions

View file

@ -11,50 +11,51 @@
}; };
outputs = inputs@{ self, nixpkgs, home-manager, darwin, nur, ... }: outputs = inputs@{ self, nixpkgs, home-manager, darwin, nur, ... }:
let let
system = "aarch64-darwin"; system = "aarch64-darwin";
pkgs = import nixpkgs { pkgs = import nixpkgs {
inherit system; inherit system;
overlays = [ overlays = [
(import ./overlays) (import ./overlays)
]; ];
config = { config = {
allowUnfree = true; allowUnfree = true;
packageOverrides = pkgs: { packageOverrides = pkgs: {
nur = import nur { inherit pkgs; nurpkgs = 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
];
};
};
};
} }

View file

@ -46,8 +46,8 @@ in {
targets.darwin = { targets.darwin = {
defaults = { defaults = {
"com.googlecode.iterm2" = ./iterm2.nix; "com.googlecode.iterm2" = import ./iterm2.nix;
"com.apple.finder" = ./finder.nix; "com.apple.finder" = import ./finder.nix;
NSGlobalDomain = { NSGlobalDomain = {
AppleLanguages = [ "en-CA" ]; AppleLanguages = [ "en-CA" ];
AppleLocale = "en_CA"; AppleLocale = "en_CA";

View file

@ -2,7 +2,8 @@
let let
emacsCommand = "emacsclient -c -nw"; emacsCommand = "emacsclient -c -nw";
in rec { in
rec {
home = { home = {
file = { file = {
".config/nix/nix.conf".text = '' ".config/nix/nix.conf".text = ''

View file

@ -256,11 +256,13 @@ in {
latex = { latex = {
enable = true; enable = true;
package = epkgs: epkgs.auctex; package = epkgs: epkgs.auctex;
hook = ['' hook = [
(LaTeX-mode ''
. (lambda () (LaTeX-mode
(turn-on-reftex))) . (lambda ()
'']; (turn-on-reftex)))
''
];
init = '' init = ''
(setq TeX-PDF-mode t (setq TeX-PDF-mode t
TeX-auto-save t TeX-auto-save t

View file

@ -19,57 +19,59 @@ let
python-wp = pkgs.python310.withPackages (p: with p; [ setuptools pyaml requests latexify-py ]); python-wp = pkgs.python310.withPackages (p: with p; [ setuptools pyaml requests latexify-py ]);
node-packages = with pkgs.nodePackages; [ bash-language-server ]; node-packages = with pkgs.nodePackages; [ bash-language-server ];
octave-wp = pkgs.octave.withPackages (p: with p; [ symbolic ]); octave-wp = pkgs.octave.withPackages (p: with p; [ symbolic ]);
in { in
{
home.packages = with pkgs; home.packages = with pkgs;
[ [
autoconf autoconf
automake automake
bash bash
bat bat
black black
clang-tools clang-tools
cmake cmake
comma comma
curl curl
discord discord
docker docker
docker-compose docker-compose
fd fd
findutils findutils
fzf fzf
gawk gawk
gnuplot gnuplot
graphviz graphviz
htop htop
jq jq
nixfmt nix-review
nix-review nixfmt
nmap nixpkgs-fmt
octave-wp nmap
openssh octave-wp
pass-extended openssh
plantuml pass-extended
pngpaste plantuml
poppler pngpaste
python-wp poppler
pv pv
ripgrep python-wp
rsync ripgrep
rustup rsync
shellcheck rustup
sqlite shellcheck
texinfo spotify-tui
texlive.combined.scheme-full sqlite
tldr texinfo
units texlive.combined.scheme-full
unp tldr
unrar units
unzip unp
wget unrar
yq unzip
zoom-us wget
] yq
++ lib.optionals stdenv.isDarwin darwin ]
++ lib.optionals stdenv.isLinux linux ++ lib.optionals stdenv.isDarwin darwin
++ node-packages; ++ lib.optionals stdenv.isLinux linux
++ node-packages;
} }

View file

@ -87,47 +87,47 @@
settings = { settings = {
format = format =
"$os[](fg:#979797 bg:#444444)$directory$git_branch$git_status[](fg:#444444)$fill[](fg:#444444)$cmd_duration$time$line_break$character"; "$os[](fg:#979797 bg:#444444)$directory$git_branch$git_status[](fg:#444444)$fill[](fg:#444444)$cmd_duration$time$line_break$character";
fill = { fill = {
symbol = "·"; symbol = "·";
style = "fg:#505050"; style = "fg:#505050";
}; };
cmd_duration = { cmd_duration = {
disabled = false; disabled = false;
min_time = 1500; min_time = 1500;
style = "fg:#979797 bg:#444444"; style = "fg:#979797 bg:#444444";
format = "[ $duration ]($style)"; format = "[ $duration ]($style)";
}; };
os = { os = {
disabled = false; disabled = false;
style = "fg:#eaeaea bg:#444444"; style = "fg:#eaeaea bg:#444444";
format = "[ $symbol ]($style)"; format = "[ $symbol ]($style)";
symbols.Macos = ""; symbols.Macos = "";
}; };
directory = { directory = {
disabled = false; disabled = false;
style = "fg:#149dff bg:#444444"; style = "fg:#149dff bg:#444444";
format = "[ $path ]($style)"; format = "[ $path ]($style)";
truncation_length = 3; truncation_length = 3;
truncation_symbol = ""; truncation_symbol = "";
}; };
git_branch = { git_branch = {
disabled = false; disabled = false;
symbol = ""; symbol = "";
style = "fg:#53d306 bg:#444444"; style = "fg:#53d306 bg:#444444";
format = "[[](fg:#979797 bg:#444444) $symbol $branch ]($style)"; format = "[[](fg:#979797 bg:#444444) $symbol $branch ]($style)";
}; };
git_status = { git_status = {
disabled = false; disabled = false;
style = "bg:#444444"; style = "bg:#444444";
format = format =
"[[$staged](fg:#cca107 bg:#444444)[$modified](fg:#cca107 bg:#444444)[$untracked](fg:#149dff bg:#444444)[$conflicted](fg:#ed0505 bg:#444444)]($style)"; "[[$staged](fg:#cca107 bg:#444444)[$modified](fg:#cca107 bg:#444444)[$untracked](fg:#149dff bg:#444444)[$conflicted](fg:#ed0505 bg:#444444)]($style)";
}; };
time = { time = {
disabled = false; disabled = false;
style = "fg:#4d7573 bg:#444444"; style = "fg:#4d7573 bg:#444444";
format = "[ $time ]($style)"; format = "[ $time ]($style)";
time_format = "%T"; time_format = "%T";
}; };
}; };
}; };

View file

@ -15,18 +15,19 @@ let
aarch64-darwin = fetchurl { aarch64-darwin = fetchurl {
url = url =
"https://commondatastorage.googleapis.com/chromium-browser-snapshots/Mac_Arm/${version}/chrome-mac.zip"; "https://commondatastorage.googleapis.com/chromium-browser-snapshots/Mac_Arm/${version}/chrome-mac.zip";
sha256 = "sha256-LlbYlJmFLzyHIiygofa0Btm7NAOvWXXhmbjMHldVoGo="; sha256 = "sha256-LlbYlJmFLzyHIiygofa0Btm7NAOvWXXhmbjMHldVoGo=";
name = "${pname}_aarch64_${version}.zip"; name = "${pname}_aarch64_${version}.zip";
}; };
x86_64-darwin = fetchurl { x86_64-darwin = fetchurl {
url = url =
"https://commondatastorage.googleapis.com/chromium-browser-snapshots/Mac/${version}/chrome-mac.zip"; "https://commondatastorage.googleapis.com/chromium-browser-snapshots/Mac/${version}/chrome-mac.zip";
sha256 = "sha256-O+OnjakEpjCRbSjDysEA6RKKaKaSMw+LSO2ZLcxz2vM="; sha256 = "sha256-O+OnjakEpjCRbSjDysEA6RKKaKaSMw+LSO2ZLcxz2vM=";
name = "${pname}_x86_64_${version}.zip"; name = "${pname}_x86_64_${version}.zip";
}; };
}; };
src = srcs.${stdenv.hostPlatform.system}; src = srcs.${stdenv.hostPlatform.system};
in import ./mk-mac-binpkg.nix { in
import ./mk-mac-binpkg.nix {
inherit pkgs src pname appName version; inherit pkgs src pname appName version;
srcsubdir = "chrome-mac"; srcsubdir = "chrome-mac";
} }

View file

@ -10,4 +10,5 @@ let
sha256 = "sha256-V/8W3qqYhJmte2tq/ZSPtYChdhv8WFQoSORYRaxva9Y="; sha256 = "sha256-V/8W3qqYhJmte2tq/ZSPtYChdhv8WFQoSORYRaxva9Y=";
name = "${pname}_${version}.dmg"; 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; }

View file

@ -10,5 +10,6 @@ let
"https://phoenixnap.dl.sourceforge.net/project/qbittorrent/qbittorrent-mac/qbittorrent-${version}/qbittorrent-${version}.dmg"; "https://phoenixnap.dl.sourceforge.net/project/qbittorrent/qbittorrent-mac/qbittorrent-${version}/qbittorrent-${version}.dmg";
sha256 = "sha256-9h+gFAEU0tKrltOjnOKLfylbbBunGZqvPzQogdP9uQM="; 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; }

View file

@ -1,43 +1,15 @@
{ stdenv, pkgs, ... }: { stdenv, pkgs, fetchurl, ... }:
stdenv.mkDerivation { let
name = "spotify-mac-app"; appName = "Spotify";
pname = "spotify";
sourceRoot = "."; version = "sha256-JESQZtyPE9o5PW/f5GdxbqbyeHCxs/oZEW0AakMJgKg=";
nativeBuildInputs =
[ pkgs.undmg pkgs.makeWrapper pkgs.perl pkgs.unzip pkgs.zip ];
src = pkgs.fetchurl { src = pkgs.fetchurl {
url = "https://download.scdn.co/Spotify.dmg"; url = "https://download.scdn.co/Spotify.dmg";
hash = "sha256-9Ts6064YaZdjbRN28qkZcrwTH+63drC/jUfTGLvpBNc="; hash = version;
name = "spotify-mac.dmg";
}; };
in
spotxsrc = pkgs.fetchFromGitHub { import ./mk-mac-binpkg.nix { inherit pkgs src pname appName version; }
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
'';
}

View file

@ -19,7 +19,8 @@ let
}; };
}; };
src = srcs.${stdenv.hostPlatform.system}; 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; inherit stdenv pkgs fetchurl src pname appName version;
} }

View file

@ -2,6 +2,12 @@
{ {
services.nix-daemon.enable = true; 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; nix.package = pkgs.nix;
@ -16,15 +22,15 @@
LaunchServices.LSQuarantine = false; LaunchServices.LSQuarantine = false;
}; };
keyboard = { keyboard = {
enableKeyMapping = true; enableKeyMapping = true;
remapCapsLockToEscape = true; remapCapsLockToEscape = true;
# see https://developer.apple.com/library/content/technotes/tn2450/_index.html for more info # see https://developer.apple.com/library/content/technotes/tn2450/_index.html for more info
userKeyMapping = [ { userKeyMapping = [{
HIDKeyboardModifierMappingSrc = 30064771303; # remap right command to right control. HIDKeyboardModifierMappingSrc = 30064771303; # remap right command to right control.
HIDKeyboardModifierMappingDst = 30064771300; HIDKeyboardModifierMappingDst = 30064771300;
}]; }];
}; };
}; };
} }