mirror of
https://github.com/willemml/dotfiles.nix.git
synced 2025-04-13 19:57:19 +00:00
spotifyd + nixpkgs-fmt
This commit is contained in:
parent
18fdb1b562
commit
125183aa81
12 changed files with 183 additions and 195 deletions
85
flake.nix
85
flake.nix
|
@ -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
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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";
|
||||||
|
|
|
@ -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 = ''
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
|
|
@ -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; }
|
||||||
|
|
|
@ -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; }
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue