mirror of
https://github.com/Smaug123/nix-dotfiles
synced 2025-10-18 12:48:39 +00:00
@@ -2,12 +2,6 @@
|
|||||||
|
|
||||||
let python = import ./python.nix { inherit pkgs; }; in
|
let python = import ./python.nix { inherit pkgs; }; in
|
||||||
|
|
||||||
let gmp =
|
|
||||||
if pkgs.stdenv.isDarwin then
|
|
||||||
import ./gmp.nix { inherit pkgs; }
|
|
||||||
else pkgs.gmp
|
|
||||||
; in
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
nix.useDaemon = true;
|
nix.useDaemon = true;
|
||||||
@@ -23,10 +17,9 @@ let gmp =
|
|||||||
environment.systemPackages =
|
environment.systemPackages =
|
||||||
[
|
[
|
||||||
pkgs.alacritty
|
pkgs.alacritty
|
||||||
pkgs.rustc
|
pkgs.rustup
|
||||||
pkgs.cargo
|
pkgs.libiconv
|
||||||
pkgs.clang
|
pkgs.clang
|
||||||
#gmp
|
|
||||||
#pkgs.keepassxc
|
#pkgs.keepassxc
|
||||||
python
|
python
|
||||||
];
|
];
|
||||||
@@ -44,15 +37,19 @@ let gmp =
|
|||||||
}))
|
}))
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||||||
|
"vscode"
|
||||||
|
];
|
||||||
|
|
||||||
# Auto upgrade nix package and the daemon service.
|
# Auto upgrade nix package and the daemon service.
|
||||||
services.nix-daemon.enable = true;
|
services.nix-daemon.enable = true;
|
||||||
nix.package = pkgs.nix;
|
nix.package = pkgs.nixFlakes;
|
||||||
nix.gc.automatic = true;
|
nix.gc.automatic = true;
|
||||||
nix.useSandbox = true;
|
nix.useSandbox = true;
|
||||||
|
|
||||||
nix.extraOptions = ''
|
nix.extraOptions = ''
|
||||||
auto-optimise-store = true
|
auto-optimise-store = true
|
||||||
|
experimental-features = nix-command flakes
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Used for backwards compatibility, please read the changelog before changing.
|
# Used for backwards compatibility, please read the changelog before changing.
|
||||||
|
17
gmp.nix
17
gmp.nix
@@ -1,17 +0,0 @@
|
|||||||
{ pkgs ? import <nixpkgs> {} }:
|
|
||||||
|
|
||||||
# If this fails, `chmod -R a+rw /usr/local/opt/gmp/lib`
|
|
||||||
pkgs.runCommandLocal "gmp-symlink" {} ''
|
|
||||||
dest="/usr/local/opt/gmp/lib/libgmp.10.dylib"
|
|
||||||
existing=$(readlink "$dest")
|
|
||||||
if [ $? -eq 1 ]; then
|
|
||||||
ln -s ${pkgs.gmp}/lib/libgmp.10.dylib "$dest" && mkdir -p $out && touch $out/done.txt
|
|
||||||
else
|
|
||||||
if [[ "$existing" == /nix/store/* ]]; then
|
|
||||||
ln -fs ${pkgs.gmp}/lib/libgmp.10.dylib "$dest" && mkdir -p $out && touch $out/done.txt
|
|
||||||
else
|
|
||||||
echo "Existing symlink is $existing, refusing to overwrite"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
''
|
|
36
gmp/default.nix
Normal file
36
gmp/default.nix
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{ pkgs, config, lib, ... }:
|
||||||
|
|
||||||
|
|
||||||
|
let link = ./link.sh; in
|
||||||
|
let gmp-symlink =
|
||||||
|
pkgs.stdenv.mkDerivation {
|
||||||
|
|
||||||
|
name = "gmp-symlink";
|
||||||
|
src = ./link.sh;
|
||||||
|
phases = [ "unpackPhase" ];
|
||||||
|
unpackPhase = ''
|
||||||
|
mkdir -p "$out"
|
||||||
|
cp ${link} "$out/link.sh"
|
||||||
|
chmod u+x "$out/link.sh"
|
||||||
|
sed -i 's_NIX-GMP_${config.gmp-symlink.gmp}_' "$out/link.sh"
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
gmp-symlink.enable = lib.mkOption { default = false; };
|
||||||
|
gmp-symlink.gmp = lib.mkOption { default = pkgs.gmp; };
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.gmp-symlink.enable {
|
||||||
|
home.activation.gmp-symlink = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||||
|
${gmp-symlink}/link.sh
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
15
gmp/link.sh
Normal file
15
gmp/link.sh
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
dest="/usr/local/opt/gmp/lib/libgmp.10.dylib"
|
||||||
|
sudo mkdir -p "$(dirname "$dest")"
|
||||||
|
existing=$(readlink "$dest")
|
||||||
|
if [ $? -eq 1 ]; then
|
||||||
|
sudo ln -s "NIX-GMP/lib/libgmp.10.dylib" "$dest"
|
||||||
|
else
|
||||||
|
if [[ "$existing" == /nix/store/* ]]; then
|
||||||
|
sudo ln -fs "NIX-GMP/lib/libgmp.10.dylib" "$dest"
|
||||||
|
else
|
||||||
|
echo "Existing symlink is $existing, refusing to overwrite"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
18
home.nix
18
home.nix
@@ -4,9 +4,10 @@ let username = "Patrick"; in
|
|||||||
let dotnet = pkgs.dotnet-sdk_6; in
|
let dotnet = pkgs.dotnet-sdk_6; in
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [ ./rider ];
|
imports = [ ./rider ./gmp ];
|
||||||
|
|
||||||
rider = { enable = true; username = username; dotnet = dotnet; };
|
rider = { enable = true; username = username; dotnet = dotnet; };
|
||||||
|
gmp-symlink = { enable = true; };
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
@@ -32,6 +33,7 @@ let dotnet = pkgs.dotnet-sdk_6; in
|
|||||||
pkgs.wget
|
pkgs.wget
|
||||||
pkgs.youtube-dl
|
pkgs.youtube-dl
|
||||||
pkgs.cmake
|
pkgs.cmake
|
||||||
|
pkgs.gnumake
|
||||||
pkgs.gcc
|
pkgs.gcc
|
||||||
pkgs.gdb
|
pkgs.gdb
|
||||||
pkgs.hledger
|
pkgs.hledger
|
||||||
@@ -39,22 +41,21 @@ let dotnet = pkgs.dotnet-sdk_6; in
|
|||||||
dotnet
|
dotnet
|
||||||
pkgs.docker
|
pkgs.docker
|
||||||
pkgs.jitsi-meet
|
pkgs.jitsi-meet
|
||||||
pkgs.protonmail-bridge
|
#pkgs.handbrake
|
||||||
pkgs.handbrake
|
|
||||||
pkgs.ripgrep
|
pkgs.ripgrep
|
||||||
pkgs.elan
|
pkgs.elan
|
||||||
pkgs.coreutils-prefixed
|
pkgs.coreutils-prefixed
|
||||||
pkgs.shellcheck
|
pkgs.shellcheck
|
||||||
pkgs.html-tidy
|
pkgs.html-tidy
|
||||||
pkgs.hugo
|
pkgs.hugo
|
||||||
pkgs.agda
|
#pkgs.agda
|
||||||
pkgs.pijul
|
pkgs.pijul
|
||||||
#pkgs.anki-bin
|
pkgs.universal-ctags
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.vscode = {
|
programs.vscode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.vscodium;
|
package = pkgs.vscode;
|
||||||
extensions = import ./vscode-extensions.nix { inherit pkgs; };
|
extensions = import ./vscode-extensions.nix { inherit pkgs; };
|
||||||
userSettings = {
|
userSettings = {
|
||||||
workbench.colorTheme = "Default High Contrast";
|
workbench.colorTheme = "Default High Contrast";
|
||||||
@@ -85,18 +86,20 @@ let dotnet = pkgs.dotnet-sdk_6; in
|
|||||||
};
|
};
|
||||||
oh-my-zsh = {
|
oh-my-zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = [ "git" "osx" "dircycle" "timer" ];
|
plugins = [ "git" "macos" "dircycle" "timer" ];
|
||||||
theme = "robbyrussell";
|
theme = "robbyrussell";
|
||||||
};
|
};
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
EDITOR = "vim";
|
EDITOR = "vim";
|
||||||
LC_ALL = "en_US.UTF-8";
|
LC_ALL = "en_US.UTF-8";
|
||||||
LC_CTYPE = "en_US.UTF-8";
|
LC_CTYPE = "en_US.UTF-8";
|
||||||
|
RUSTFLAGS = "-L ${pkgs.libiconv}/lib";
|
||||||
};
|
};
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
vim = "nvim";
|
vim = "nvim";
|
||||||
view = "vim -R";
|
view = "vim -R";
|
||||||
nix-upgrade = "sudo -i sh -c 'nix-channel --update && nix-env -iA nixpkgs.nix && launchctl remove org.nixos.nix-daemon && launchctl load /Library/LaunchDaemons/org.nixos.nix-daemon.plist'";
|
nix-upgrade = "sudo -i sh -c 'nix-channel --update && nix-env -iA nixpkgs.nix && launchctl remove org.nixos.nix-daemon && launchctl load /Library/LaunchDaemons/org.nixos.nix-daemon.plist'";
|
||||||
|
cmake = "cmake -DCMAKE_MAKE_PROGRAM=${pkgs.gnumake}/bin/make";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -136,6 +139,7 @@ let dotnet = pkgs.dotnet-sdk_6; in
|
|||||||
programs.neovim.enable = true;
|
programs.neovim.enable = true;
|
||||||
programs.neovim.plugins = with pkgs.vimPlugins; [
|
programs.neovim.plugins = with pkgs.vimPlugins; [
|
||||||
molokai
|
molokai
|
||||||
|
tagbar
|
||||||
{ plugin = rust-vim;
|
{ plugin = rust-vim;
|
||||||
config = "let g:rustfmt_autosave = 1"; }
|
config = "let g:rustfmt_autosave = 1"; }
|
||||||
{ plugin = syntastic;
|
{ plugin = syntastic;
|
||||||
|
@@ -35,7 +35,9 @@ in
|
|||||||
home.activation.jetbrains-rider-settings = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
home.activation.jetbrains-rider-settings = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||||
|
|
||||||
dest="/Users/${config.rider.username}/Library/Application Support/JetBrains"
|
dest="/Users/${config.rider.username}/Library/Application Support/JetBrains"
|
||||||
find "$dest" -type d -maxdepth 1 -name 'Rider*' -exec sh -c '${riderconfig}/link.sh "$0"' {} \;
|
if [ -e "$dest" ]; then
|
||||||
|
find "$dest" -type d -maxdepth 1 -name 'Rider*' -exec sh -c '${riderconfig}/link.sh "$0"' {} \;
|
||||||
|
fi
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -1,12 +1,5 @@
|
|||||||
IgnoreUnknown AddKeysToAgent,UseKeychain
|
IgnoreUnknown AddKeysToAgent,UseKeychain
|
||||||
|
|
||||||
Host github.com
|
|
||||||
AddKeysToAgent yes
|
|
||||||
IgnoreUnknown UseKeychain
|
|
||||||
UseKeychain yes
|
|
||||||
IdentityFile ~/.ssh/github_rsa
|
|
||||||
HostName github.com
|
|
||||||
|
|
||||||
Host *
|
Host *
|
||||||
AddKeysToAgent yes
|
AddKeysToAgent yes
|
||||||
IgnoreUnknown UseKeychain
|
IgnoreUnknown UseKeychain
|
||||||
|
Reference in New Issue
Block a user