dotfiles/nix/darwin-configuration.nix

220 lines
4.4 KiB
Nix
Raw Normal View History

2023-03-14 08:54:57 +00:00
{ config, pkgs, ... }:
{
networking = {
hostName = "alymac";
};
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages = with pkgs; [
2023-04-06 07:38:45 +00:00
# System tools
libtool
pcre
pkg-config
2023-04-20 12:49:20 +00:00
patchelf
gnutls
gsasl
2023-04-06 07:38:45 +00:00
# CLI tools
2023-04-03 08:32:10 +00:00
act
2023-03-14 08:54:57 +00:00
bat
bitwarden-cli
2023-04-20 12:50:31 +00:00
cloudflared
2023-03-14 08:54:57 +00:00
delta
exa
ffmpeg
fzf
2023-04-20 12:51:17 +00:00
gh
2023-03-14 08:54:57 +00:00
git
2023-05-10 09:18:53 +00:00
git-crypt
2023-04-06 07:38:45 +00:00
gitui
2023-03-14 08:54:57 +00:00
gnupg
jq
2023-04-20 12:50:31 +00:00
kubectl
2023-03-14 08:54:57 +00:00
mosh
neovim
2023-03-14 09:06:59 +00:00
nixpkgs-fmt
2023-04-06 07:38:45 +00:00
ripgrep
2023-04-20 12:50:31 +00:00
sops
2023-04-06 07:38:45 +00:00
vim
wget
2023-05-22 10:18:21 +00:00
# Charm tools
skate
soft-serve
2023-04-06 07:38:45 +00:00
# Programs
2023-04-20 12:51:17 +00:00
jetbrains.idea-ultimate
2023-04-06 07:38:45 +00:00
jetbrains.phpstorm
jetbrains.rider
rectangle
slack
tailscale
# Programming languages
crystal
deno
dotnet-sdk
go
2023-05-08 11:45:30 +00:00
jdk
2023-05-10 09:18:36 +00:00
nil
2023-05-26 14:41:43 +00:00
nodejs_20
2023-04-06 07:38:45 +00:00
ruby_3_1
2023-05-26 14:41:12 +00:00
sbcl
2023-04-06 07:38:45 +00:00
shards
zig
# Libraries
2023-04-03 08:32:10 +00:00
nodePackages.http-server
2023-03-14 08:54:57 +00:00
nodePackages.pnpm
nodePackages.prettier
nodePackages.yarn
openssl
2023-04-04 08:00:43 +00:00
# Fyra vala crap
glib
glib-networking
2023-04-06 07:38:45 +00:00
gobject-introspection
gtk4
2023-04-04 08:00:43 +00:00
libgee
meson
ninja
vala
2023-03-14 08:54:57 +00:00
];
homebrew = {
enable = true;
2023-03-14 09:06:59 +00:00
# If only this didn't break.
2023-03-14 08:54:57 +00:00
onActivation.cleanup = "zap";
taps = [
"drud/ddev"
2023-03-14 09:06:59 +00:00
"homebrew/cask"
2023-05-08 11:43:49 +00:00
"homebrew/cask-versions"
2023-03-14 08:54:57 +00:00
];
2023-03-14 09:06:59 +00:00
# Please do not the brew.
2023-03-14 08:54:57 +00:00
brews = [
"composer"
"ddev"
2023-04-20 12:49:40 +00:00
"mkcert"
2023-03-14 08:54:57 +00:00
"pkg-config"
2023-03-14 09:06:59 +00:00
"sdl2"
2023-03-14 08:54:57 +00:00
];
casks = [
2023-05-22 10:18:30 +00:00
"1password"
2023-05-26 14:41:30 +00:00
"1password-cli"
2023-03-14 08:54:57 +00:00
"alt-tab"
"amethyst"
2023-05-08 11:45:30 +00:00
"android-studio"
2023-04-03 08:32:10 +00:00
"audacity"
2023-04-06 07:38:45 +00:00
"background-music"
2023-04-03 08:32:10 +00:00
"db-browser-for-sqlite"
2023-03-14 08:54:57 +00:00
"discord"
2023-05-08 11:43:49 +00:00
"discord-ptb"
2023-03-14 08:54:57 +00:00
"docker"
2023-05-26 14:41:12 +00:00
"emacs"
2023-03-14 08:54:57 +00:00
"fig"
"firefox"
"google-chrome"
2023-04-03 08:32:10 +00:00
"itch"
2023-03-14 08:54:57 +00:00
"iterm2"
"obs"
"raycast"
"sequel-ace"
"shortcat"
"shottr"
"spotify"
"thunderbird"
"visual-studio-code"
];
};
# Auto upgrade nix package and the daemon service.
services.nix-daemon.enable = true;
# Configuration for nix itself.
nix = {
package = pkgs.nix;
settings = {
experimental-features = [ "nix-command" "flakes" ];
2023-05-08 11:46:42 +00:00
build-users-group = "nixbld";
2023-03-14 08:54:57 +00:00
};
gc = {
automatic = true;
options = "--delete-older-than 8d";
};
};
# Create /etc/zshrc that loads the nix-darwin environment.
2023-03-14 09:06:59 +00:00
# I wish I had access to inputs.
2023-03-14 08:54:57 +00:00
programs.zsh = {
enable = true;
promptInit = "
source ~/.dotfiles/zsh/zshrc
";
};
# Used for backwards compatibility, please read the changelog before changing.
# $ darwin-rebuild changelog
system.stateVersion = 4;
2023-03-14 09:06:59 +00:00
# Absolutely proprietary.
2023-03-14 08:54:57 +00:00
nixpkgs.config.allowUnfree = true;
}
# services.yabai = {
# enable = true;
# enableScriptingAddition = true;
# config = {
# layout = "bsp";
# window_placement = "first_child";
# auto_balance = "on";
#
# focus_follows_mouse = "autoraise";
#
# window_topmost = "on";
#
# window_opacity = "on";
# active_window_opacity = "1.0";
# normal_window_opacity = "0.9";
# };
#
# extraConfig = "
# yabai -m signal --add event=dock_did_restart action=\"sudo yabai --load-sa\"
# sudo yabai --load-sa
# ";
# };
#
# services.skhd = {
# enable = true;
# skhdConfig = "
# # Toggle split
# shift + cmd - enter : /run/current-system/sw/bin/yabai -m window --toggle split
#
# # Focus window
# ctrl + cmd - up : /run/current-system/sw/bin/yabai -m window --focus north
# ctrl + cmd - right : /run/current-system/sw/bin/yabai -m window --focus east
# ctrl + cmd - down : /run/current-system/sw/bin/yabai -m window --focus south
# ctrl + cmd - left : /run/current-system/sw/bin/yabai -m window --focus west
#
# # Move windows
# shift + cmd - left : /run/current-system/sw/bin/yabai -m window --warp west
# shift + cmd - right : /run/current-system/sw/bin/yabai -m window --warp east
#
# # Focus monitor
# ctrl + alt - z : /run/current-system/sw/bin/yabai -m display --focus prev
#
# # Increase window size
# shift + alt - a : /run/current-system/sw/bin/yabai -m window --resize left:-20:0
# shift + alt - w : /run/current-system/sw/bin/yabai -m window --resize top:0:-20
#
# # Decrease window size
# shift + cmd - s : /run/current-system/sw/bin/yabai -m window --resize bottom:0:-20
# shift + cmd - w : /run/current-system/sw/bin/yabai -m window --resize top:0:20
# ";
# };