mirror of
https://github.com/davegallant/nix-config
synced 2025-08-06 11:23:40 +00:00
Add support for darwin
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1 +1,2 @@
|
|||||||
.pre-commit-config.yaml
|
.pre-commit-config.yaml
|
||||||
|
result
|
||||||
|
24
README.md
24
README.md
@@ -2,24 +2,34 @@
|
|||||||
|
|
||||||
[](https://builtwithnix.org)
|
[](https://builtwithnix.org)
|
||||||
|
|
||||||
This repo stores nix to manage my machines running [NixOS](https://nixos.org/). The initial structure was inspired by [samuelgrf/nixos-config](https://gitlab.com/samuelgrf/nixos-config/-/tree/master/).
|
This repo stores nix to manage my machines running both [NixOS](https://nixos.org/) and macOS. The initial structure was inspired by [samuelgrf/nixos-config](https://gitlab.com/samuelgrf/nixos-config/-/tree/master/).
|
||||||
|
|
||||||
The configuration is very specific to my own machines and setup, but it may be a useful reference for anyone else learning or experimenting with nix, whether it be on a desktop or a server.
|
The configuration is very specific to my own machines and setup, but it may be a useful reference for anyone else learning or experimenting with nix, whether it be on a desktop or a server.
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
```console
|
### NixOS
|
||||||
$ git clone git@github.com:davegallant/nix-config.git
|
|
||||||
$ cd nix-config
|
```sh
|
||||||
$ sudo ./rebuild.sh switch
|
sudo ./rebuild.sh switch
|
||||||
|
```
|
||||||
|
|
||||||
|
### macOS
|
||||||
|
|
||||||
|
1. Install the latest unstable nix from https://github.com/numtide/nix-unstable-installer (to get nix flakes)
|
||||||
|
1. Install nix-darwin: https://github.com/LnL7/nix-darwin
|
||||||
|
1. Add home-manager channel: `nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager; nix-channel --update` (TODO: this requirement should be removed in the future)
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./rebuild.sh switch
|
||||||
```
|
```
|
||||||
|
|
||||||
## Update
|
## Update
|
||||||
|
|
||||||
To update nixpkgs defined in [flake.nix](./flake.nix), run:
|
To update nixpkgs defined in [flake.nix](./flake.nix), run:
|
||||||
|
|
||||||
```console
|
```sh
|
||||||
$ nix flake update
|
nix flake update
|
||||||
```
|
```
|
||||||
|
|
||||||
If there are updates, they should be reflected in [flake.lock](./flake.lock).
|
If there are updates, they should be reflected in [flake.lock](./flake.lock).
|
||||||
|
39
flake.lock
generated
39
flake.lock
generated
@@ -1,5 +1,25 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1622060422,
|
||||||
|
"narHash": "sha256-hPVlvrAyf6zL7tTx0lpK+tMxEfZeMiIZ/A2xaJ41WOY=",
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "007d700e644ac588ad6668e6439950a5b6e2ff64",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -7,11 +27,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1622014903,
|
"lastModified": 1622317957,
|
||||||
"narHash": "sha256-tEXRBi5aMprNLbzMb6YmTy3cO9smvqC2udKyRo6rj2o=",
|
"narHash": "sha256-F+8J8W8aBe5QwxDLnS/0PLuOueNqPcorZntlE7FJcy0=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "b840707a87f6a35a5c24ea6edf8846741d924616",
|
"rev": "07ad6a4f76d9402ae8af1507b4158b52aa59fcea",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -22,11 +42,11 @@
|
|||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1620983891,
|
"lastModified": 1622314052,
|
||||||
"narHash": "sha256-E2OKVgGo/cUqDsrIeYGVx64b4cxgzd7+bX33NHL0rbA=",
|
"narHash": "sha256-DwrLZ6NXPzKpQx3RTjdwdmlGDr6kHVx2gaeHCWCb09Q=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "c4399b921fa7ff5f93ee10b3521b56b722ed74d8",
|
"rev": "684ae160a6e76590eafa3fca8061b6ad57bcc9ad",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -38,11 +58,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1621840840,
|
"lastModified": 1622194753,
|
||||||
"narHash": "sha256-o6h6+d5ZwrFmOTe+ma9s1Z9kyHsCW1C84IA8RZ9/fIU=",
|
"narHash": "sha256-76qtvFp/vFEz46lz5iZMJ0mnsWQYmuGYlb0fHgKqqMg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ea7d4aa9b8225abd6147339f0d56675d6f1f0fd1",
|
"rev": "540dccb2aeaffa9dc69bfdc41c55abd7ccc6baa3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -54,6 +74,7 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"darwin": "darwin",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
|
29
flake.nix
29
flake.nix
@@ -4,11 +4,15 @@
|
|||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "/nixpkgs";
|
inputs.nixpkgs.follows = "/nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
|
|
||||||
|
darwin.url = "github:lnl7/nix-darwin";
|
||||||
|
darwin.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, home-manager, nixpkgs, nixos-hardware }: {
|
outputs = { self, darwin, home-manager, nixpkgs, nixos-hardware }: {
|
||||||
nixosConfigurations = let
|
nixosConfigurations = let
|
||||||
defaultModules = [
|
defaultModules = [
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
@@ -56,13 +60,24 @@
|
|||||||
./machines/hephaestus/hardware.nix
|
./machines/hephaestus/hardware.nix
|
||||||
] ++ defaultModules;
|
] ++ defaultModules;
|
||||||
};
|
};
|
||||||
hermes = nixpkgs.lib.nixosSystem {
|
};
|
||||||
system = "x86_64-linux";
|
darwinConfigurations = {
|
||||||
|
demeter = darwin.lib.darwinSystem {
|
||||||
modules = [
|
modules = [
|
||||||
nixos-hardware.nixosModules.lenovo-thinkpad-t480s
|
./machines/demeter/configuration.nix
|
||||||
./machines/hermes/configuration.nix
|
./main/packages.nix
|
||||||
./machines/hermes/hardware.nix
|
|
||||||
] ++ defaultModules;
|
({ config, ... }: {
|
||||||
|
config = {
|
||||||
|
nixpkgs.overlays = [ (import ./overlays) ];
|
||||||
|
home-manager = {
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
users.dave.imports = [ ./home/default.nix ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, ... }:
|
{ lib, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
vim-prettier = pkgs.vimUtils.buildVimPlugin {
|
vim-prettier = pkgs.vimUtils.buildVimPlugin {
|
||||||
@@ -10,13 +10,14 @@ let
|
|||||||
sha256 = "sha256-FDeyGH5OPAYV7zePCfDujsj+nGd5AFnqySPStJYEY2E=";
|
sha256 = "sha256-FDeyGH5OPAYV7zePCfDujsj+nGd5AFnqySPStJYEY2E=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
inherit (pkgs) stdenv;
|
||||||
in {
|
in {
|
||||||
|
|
||||||
home = { sessionVariables = { EDITOR = "vim"; }; };
|
home = { sessionVariables = { EDITOR = "vim"; }; };
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
gpg-agent = {
|
gpg-agent = {
|
||||||
enable = true;
|
enable = stdenv.isLinux;
|
||||||
defaultCacheTtl = 3600;
|
defaultCacheTtl = 3600;
|
||||||
defaultCacheTtlSsh = 3600;
|
defaultCacheTtlSsh = 3600;
|
||||||
enableSshSupport = true;
|
enableSshSupport = true;
|
||||||
@@ -112,14 +113,12 @@ in {
|
|||||||
initExtra = ''
|
initExtra = ''
|
||||||
export PATH=$PATH:~/.cargo/bin
|
export PATH=$PATH:~/.cargo/bin
|
||||||
export PATH=$PATH:~/.local/bin
|
export PATH=$PATH:~/.local/bin
|
||||||
export PATH=$PATH:~/.nodenv/bin
|
|
||||||
export PATH=$PATH:~/go/bin
|
export PATH=$PATH:~/go/bin
|
||||||
export PAGER=less
|
export PAGER=less
|
||||||
|
|
||||||
eval "$(direnv hook zsh)"
|
eval "$(direnv hook zsh)"
|
||||||
eval "$(_RFD_COMPLETE=source_zsh rfd)"
|
eval "$(_RFD_COMPLETE=source_zsh rfd)"
|
||||||
eval "$(jira --completion-script-zsh)"
|
eval "$(jira --completion-script-zsh)"
|
||||||
eval "$(nodenv init -)"
|
|
||||||
|
|
||||||
setopt noincappendhistory
|
setopt noincappendhistory
|
||||||
pfetch
|
pfetch
|
||||||
@@ -129,7 +128,6 @@ in {
|
|||||||
aws-azure-login =
|
aws-azure-login =
|
||||||
"docker run --rm -it -v ~/.aws:/root/.aws sportradar/aws-azure-login";
|
"docker run --rm -it -v ~/.aws:/root/.aws sportradar/aws-azure-login";
|
||||||
".." = "cd ..";
|
".." = "cd ..";
|
||||||
e = "emacs -nw";
|
|
||||||
grep = "rg --smart-case";
|
grep = "rg --smart-case";
|
||||||
k = "kubectl";
|
k = "kubectl";
|
||||||
ls = "exa -la --git";
|
ls = "exa -la --git";
|
||||||
@@ -327,7 +325,8 @@ in {
|
|||||||
|
|
||||||
vscode = {
|
vscode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extensions = with pkgs.vscode-extensions; [ ms-vsliveshare.vsliveshare ];
|
extensions = with pkgs.vscode-extensions;
|
||||||
|
[ ] ++ lib.optionals stdenv.isLinux ([ ms-vsliveshare.vsliveshare ]);
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
59
machines/demeter/configuration.nix
Normal file
59
machines/demeter/configuration.nix
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [ <home-manager/nix-darwin> ];
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
environment = { variables = { LANG = "en_US.UTF-8"; }; };
|
||||||
|
|
||||||
|
networking = { hostName = "demeter"; };
|
||||||
|
|
||||||
|
system.defaults = {
|
||||||
|
NSGlobalDomain = {
|
||||||
|
AppleMeasurementUnits = "Centimeters";
|
||||||
|
AppleMetricUnits = 1;
|
||||||
|
AppleShowScrollBars = "Automatic";
|
||||||
|
AppleTemperatureUnit = "Celsius";
|
||||||
|
AppleKeyboardUIMode = 3;
|
||||||
|
ApplePressAndHoldEnabled = false;
|
||||||
|
InitialKeyRepeat = 10;
|
||||||
|
KeyRepeat = 3;
|
||||||
|
_HIHideMenuBar = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
dock = {
|
||||||
|
autohide = true;
|
||||||
|
mru-spaces = false;
|
||||||
|
tilesize = 512;
|
||||||
|
};
|
||||||
|
|
||||||
|
finder = {
|
||||||
|
AppleShowAllExtensions = true;
|
||||||
|
QuitMenuItem = true;
|
||||||
|
FXEnableExtensionChangeWarning = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
trackpad = {
|
||||||
|
Clicking = true;
|
||||||
|
TrackpadThreeFingerDrag = true;
|
||||||
|
TrackpadRightClick = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Login and lock screen
|
||||||
|
loginwindow = { GuestEnabled = false; };
|
||||||
|
};
|
||||||
|
|
||||||
|
# Auto upgrade nix package and the daemon service.
|
||||||
|
services.nix-daemon.enable = true;
|
||||||
|
nix.package = pkgs.nixFlakes;
|
||||||
|
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
# https://github.com/nix-community/home-manager/issues/108#issuecomment-340397178
|
||||||
|
enableCompletion = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Used for backwards compatibility, please read the changelog before changing.
|
||||||
|
system.stateVersion = 4;
|
||||||
|
}
|
@@ -1,17 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [ ./hardware.nix ];
|
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
|
|
||||||
networking.hostName = "hermes";
|
|
||||||
|
|
||||||
networking.interfaces.wlp61s0.useDHCP = true;
|
|
||||||
|
|
||||||
services.power-profiles-daemon.enable = false;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@@ -1,31 +0,0 @@
|
|||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules =
|
|
||||||
[ "xhci_pci" "nvme" "usb_storage" "sd_mod" ];
|
|
||||||
boot.initrd.kernelModules = [ "dm-snapshot" ];
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
boot.initrd.luks.devices.luksroot = {
|
|
||||||
device = "/dev/disk/by-uuid/4b886807-3e19-437c-84bb-c2dd766fc19b";
|
|
||||||
allowDiscards = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/" = {
|
|
||||||
device = "/dev/disk/by-uuid/48d2e958-00a0-47fa-8c32-9aec031f6098";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/D387-B640";
|
|
||||||
fsType = "vfat";
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices =
|
|
||||||
[{ device = "/dev/disk/by-uuid/92c35fa7-2d2e-4172-abaf-4c81599782f1"; }];
|
|
||||||
|
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
|
||||||
}
|
|
@@ -1,20 +1,18 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
{
|
let inherit (pkgs) stdenv;
|
||||||
|
in {
|
||||||
# System-wide packages to install.
|
# System-wide packages to install.
|
||||||
environment.systemPackages = with pkgs;
|
environment.systemPackages = with pkgs;
|
||||||
let
|
let
|
||||||
common = [
|
common = [
|
||||||
# utils
|
# utils
|
||||||
curl
|
curl
|
||||||
glibcLocales
|
gnupg
|
||||||
imagemagick
|
imagemagick
|
||||||
pfetch
|
pfetch
|
||||||
rpi-imager
|
|
||||||
strace
|
|
||||||
tree
|
tree
|
||||||
unzip
|
unzip
|
||||||
usbutils
|
|
||||||
xdg_utils
|
xdg_utils
|
||||||
yq-go
|
yq-go
|
||||||
zip
|
zip
|
||||||
@@ -35,7 +33,6 @@
|
|||||||
tokei
|
tokei
|
||||||
|
|
||||||
# productivity
|
# productivity
|
||||||
albert
|
|
||||||
bat
|
bat
|
||||||
colordiff
|
colordiff
|
||||||
direnv
|
direnv
|
||||||
@@ -61,10 +58,13 @@
|
|||||||
netdata
|
netdata
|
||||||
procs
|
procs
|
||||||
|
|
||||||
|
# databases
|
||||||
|
postgresql
|
||||||
|
|
||||||
# password managers
|
# password managers
|
||||||
|
_1password
|
||||||
bitwarden-cli
|
bitwarden-cli
|
||||||
gopass
|
gopass
|
||||||
lpass
|
|
||||||
|
|
||||||
# golang
|
# golang
|
||||||
golangci-lint
|
golangci-lint
|
||||||
@@ -91,32 +91,16 @@
|
|||||||
gifsicle
|
gifsicle
|
||||||
gimp
|
gimp
|
||||||
|
|
||||||
# office
|
|
||||||
calibre
|
|
||||||
libreoffice
|
|
||||||
|
|
||||||
# audio
|
|
||||||
audio-recorder
|
|
||||||
pulseeffects-pw
|
|
||||||
spotify
|
|
||||||
|
|
||||||
# video
|
# video
|
||||||
guvcview
|
|
||||||
kazam
|
|
||||||
vlc
|
|
||||||
youtube-dl
|
youtube-dl
|
||||||
|
|
||||||
# network
|
# network
|
||||||
arp-scan
|
arp-scan
|
||||||
bandwhich
|
|
||||||
deluge
|
|
||||||
dnsutils
|
dnsutils
|
||||||
nmap
|
nmap
|
||||||
openssl
|
openssl
|
||||||
openvpn
|
openvpn
|
||||||
postman
|
|
||||||
sshfs
|
sshfs
|
||||||
tailscale
|
|
||||||
vpngate
|
vpngate
|
||||||
whois
|
whois
|
||||||
wireshark
|
wireshark
|
||||||
@@ -124,10 +108,6 @@
|
|||||||
# backup
|
# backup
|
||||||
restic
|
restic
|
||||||
|
|
||||||
# virtualization
|
|
||||||
qemu
|
|
||||||
virtmanager
|
|
||||||
|
|
||||||
# terraform
|
# terraform
|
||||||
terraform-ls
|
terraform-ls
|
||||||
terraform_0_14
|
terraform_0_14
|
||||||
@@ -137,28 +117,12 @@
|
|||||||
# gcp
|
# gcp
|
||||||
google-cloud-sdk
|
google-cloud-sdk
|
||||||
|
|
||||||
# jvm
|
|
||||||
jdk11
|
|
||||||
gradle
|
|
||||||
groovy
|
|
||||||
maven
|
|
||||||
|
|
||||||
# disk
|
|
||||||
cryptsetup
|
|
||||||
gptfdisk
|
|
||||||
|
|
||||||
# browser
|
|
||||||
brave
|
|
||||||
firefox
|
|
||||||
|
|
||||||
# docker
|
# docker
|
||||||
docker
|
docker
|
||||||
docker-compose
|
docker-compose
|
||||||
|
|
||||||
# k8s
|
# k8s
|
||||||
k3s
|
|
||||||
kubectl
|
kubectl
|
||||||
kubernetes-helm
|
|
||||||
|
|
||||||
# nix
|
# nix
|
||||||
cachix
|
cachix
|
||||||
@@ -168,20 +132,9 @@
|
|||||||
nixpkgs-fmt
|
nixpkgs-fmt
|
||||||
nixpkgs-review
|
nixpkgs-review
|
||||||
rnix-lsp
|
rnix-lsp
|
||||||
# steam-run # can run unpatched binaries
|
|
||||||
|
|
||||||
# games
|
|
||||||
steam
|
|
||||||
minecraft
|
|
||||||
# yuzu
|
|
||||||
|
|
||||||
# communication
|
# communication
|
||||||
discord
|
|
||||||
element-desktop
|
element-desktop
|
||||||
signal-desktop
|
|
||||||
slack
|
|
||||||
teams
|
|
||||||
zoom-us
|
|
||||||
|
|
||||||
## aws
|
## aws
|
||||||
aws-connect
|
aws-connect
|
||||||
@@ -189,7 +142,6 @@
|
|||||||
ssm-session-manager-plugin
|
ssm-session-manager-plugin
|
||||||
|
|
||||||
# python
|
# python
|
||||||
pipenv
|
|
||||||
python39
|
python39
|
||||||
python39Packages.black
|
python39Packages.black
|
||||||
python39Packages.ipython
|
python39Packages.ipython
|
||||||
@@ -201,27 +153,47 @@
|
|||||||
# ruby
|
# ruby
|
||||||
rbenv
|
rbenv
|
||||||
|
|
||||||
# databases
|
|
||||||
postgresql
|
|
||||||
|
|
||||||
# gnome
|
|
||||||
gnome3.gnome-tweaks
|
|
||||||
gnomeExtensions.appindicator
|
|
||||||
networkmanager-openvpn
|
|
||||||
|
|
||||||
# news
|
# news
|
||||||
srv
|
srv
|
||||||
|
|
||||||
changedetection.io
|
] ++ lib.optionals stdenv.isLinux ([
|
||||||
];
|
usbutils
|
||||||
|
glibcLocales
|
||||||
|
strace
|
||||||
|
albert
|
||||||
|
audio-recorder
|
||||||
|
pulseeffects-pw
|
||||||
|
guvcview
|
||||||
|
kazam
|
||||||
|
calibre
|
||||||
|
spotify
|
||||||
|
libreoffice
|
||||||
|
vlc
|
||||||
|
qemu
|
||||||
|
virtmanager
|
||||||
|
cryptsetup
|
||||||
|
gptfdisk
|
||||||
|
gnome3.gnome-tweaks
|
||||||
|
gnomeExtensions.appindicator
|
||||||
|
networkmanager-openvpn
|
||||||
|
# Unsupported on darwin but likely should be:
|
||||||
|
bandwhich
|
||||||
|
brave
|
||||||
|
deluge
|
||||||
|
discord
|
||||||
|
firefox
|
||||||
|
minecraft
|
||||||
|
postman
|
||||||
|
signal-desktop
|
||||||
|
slack
|
||||||
|
steam
|
||||||
|
tailscale
|
||||||
|
teams
|
||||||
|
yuzu
|
||||||
|
zoom-us
|
||||||
|
]);
|
||||||
in common;
|
in common;
|
||||||
|
|
||||||
# Don't install optional default packages.
|
|
||||||
environment.defaultPackages = [ ];
|
|
||||||
|
|
||||||
# Install ADB and fastboot.
|
|
||||||
programs.adb.enable = true;
|
|
||||||
|
|
||||||
# Install GnuPG agent.
|
# Install GnuPG agent.
|
||||||
programs.gnupg.agent.enable = true;
|
programs.gnupg.agent.enable = true;
|
||||||
}
|
}
|
||||||
|
19
rebuild.sh
19
rebuild.sh
@@ -1,3 +1,20 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
cd "$(dirname "$0")" || exit
|
cd "$(dirname "$0")" || exit
|
||||||
exec nixos-rebuild -I nixos-config="machines/$(hostname)/configuration.nix" "$@" --flake '.#'
|
|
||||||
|
uname="$(uname -s)"
|
||||||
|
case "${uname}" in
|
||||||
|
Linux*) machine=linux;;
|
||||||
|
Darwin*) machine=mac;;
|
||||||
|
*) machine="unknown"
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [[ "$machine" == "linux" ]]; then
|
||||||
|
exec nixos-rebuild -I nixos-config="machines/$(hostname)/configuration.nix" "$@" --flake '.#'
|
||||||
|
elif [[ "$machine" == "mac" ]]; then
|
||||||
|
exec darwin-rebuild "$@" --flake . --impure # TODO: What is causing this impurity?
|
||||||
|
else
|
||||||
|
echo 'Unsupported OS.'
|
||||||
|
echo 'Exiting...'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
Reference in New Issue
Block a user