mirror of
https://github.com/willemml/dotfiles.nix.git
synced 2025-04-12 19:27:17 +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, ... }:
|
||||
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
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
|
||||
let
|
||||
emacsCommand = "emacsclient -c -nw";
|
||||
in rec {
|
||||
in
|
||||
rec {
|
||||
home = {
|
||||
file = {
|
||||
".config/nix/nix.conf".text = ''
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -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";
|
||||
}
|
||||
|
|
|
@ -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; }
|
||||
|
|
|
@ -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; }
|
||||
|
||||
|
|
|
@ -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; }
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue