mirror of
https://github.com/js0ny/dotfiles.git
synced 2025-12-21 08:43:00 +00:00
feat(mac): Define system settings with nix-darwin
This commit is contained in:
parent
a7dfb2272c
commit
d93d153827
2 changed files with 165 additions and 0 deletions
113
platforms/mac/etc/nix-darwin/default-system.nix
Normal file
113
platforms/mac/etc/nix-darwin/default-system.nix
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
# vim:shiftwidth=2
|
||||
# https://github.com/LnL7/nix-darwin/tree/5d6e0851b60508cffd66b4a6982440a40720338d/modules/system/defaults
|
||||
{ pkgs, ... }: {
|
||||
system.defaults = {
|
||||
dock = {
|
||||
appswitcher-all-displays = true;
|
||||
autohide = true;
|
||||
# Launch Animation
|
||||
launchanim = false;
|
||||
# Minimize Animation
|
||||
mineffect = "suck";
|
||||
minimize-to-application = true;
|
||||
persistent-apps = [
|
||||
{ app = "/Applications/Vivaldi.app"; }
|
||||
{ app = "/Applications/WezTerm.app"; }
|
||||
{ app = "/Applications/Obsidian.app"; }
|
||||
{ app = "/Applications/Visual Studio Code.app"; }
|
||||
{ app = "/Applications/Neovide.app"; }
|
||||
# { spacer = { small = false; }; }
|
||||
# { spacer = { small = true; }; }
|
||||
# { folder = "/System/Applications/Utilities"; }
|
||||
# { folder = "/Users/js0ny/Downloads/"; }
|
||||
];
|
||||
persistent-others = [
|
||||
"/Users/js0ny/Downloads"
|
||||
"/Users/js0ny/Source"
|
||||
];
|
||||
show-recents = false;
|
||||
orientation = "bottom";
|
||||
# tr - Top Right
|
||||
# tl - Top Left (disable this)
|
||||
# br - Bottom Right
|
||||
# bl - Bottom Left
|
||||
# `1`: Disabled
|
||||
# `2`: Mission Control
|
||||
# `3`: Application Windows
|
||||
# `4`: Desktop
|
||||
# `5`: Start Screen Saver
|
||||
# `6`: Disable Screen Saver
|
||||
# `7`: Dashboard
|
||||
# `10`: Put Display to Sleep
|
||||
# `11`: Launchpad
|
||||
# `12`: Notification Center
|
||||
# `13`: Lock Screen
|
||||
# `14`: Quick Note
|
||||
wvous-tr-corner = 2;
|
||||
wvous-bl-corner = 11; # Simulate Windows button on Windows
|
||||
wvous-br-corner = 4;
|
||||
};
|
||||
finder = {
|
||||
AppleShowAllFiles = true;
|
||||
ShowStatusBar = true;
|
||||
ShowPathbar = true;
|
||||
FXRemoveOldTrashItems = true;
|
||||
AppleShowAllExtensions = true;
|
||||
QuitMenuItem = true;
|
||||
ShowExternalHardDrivesOnDesktop = false;
|
||||
ShowRemovableMediaOnDesktop = false;
|
||||
# This will look show full path in title bar
|
||||
# For example: /Users/username/Downloads
|
||||
# instead of just Downloads
|
||||
_FXShowPosixPathInTitle = false;
|
||||
_FXSortFoldersFirst = true;
|
||||
FXEnableExtensionChangeWarning = false;
|
||||
# Use `Home` instead of `PfHm`
|
||||
# nix-darwin won't parse `PfHm`
|
||||
NewWindowTarget = "Home";
|
||||
};
|
||||
trackpad = {
|
||||
TrackpadRightClick = true;
|
||||
TrackpadThreeFingerDrag = true;
|
||||
};
|
||||
screencapture = {
|
||||
location = "~/Pictures/Screenshots";
|
||||
type = "png";
|
||||
include-date = true;
|
||||
};
|
||||
SoftwareUpdate.AutomaticallyInstallMacOSUpdates = false;
|
||||
".GlobalPreferences" = {
|
||||
"com.apple.sound.beep.sound" = "/System/Library/Sounds/Blow.aiff";
|
||||
};
|
||||
NSGlobalDomain = {
|
||||
AppleInterfaceStyle = "Dark";
|
||||
AppleInterfaceStyleSwitchesAutomatically = true;
|
||||
AppleShowAllExtensions = true;
|
||||
# Use Fn key as standard function keys instead of media keys
|
||||
"com.apple.keyboard.fnState" = true;
|
||||
AppleMeasurementUnits = "Centimeters";
|
||||
AppleICUForce24HourTime = true;
|
||||
};
|
||||
controlcenter.BatteryShowPercentage = true;
|
||||
# Fn usage:
|
||||
# 0: Show Emoji & Symbols
|
||||
# 1: Change Input Source
|
||||
# 2: Show Emoji & Symbols
|
||||
# 3: Start Dictation
|
||||
hitoolbox.AppleFnUsageType = "Change Input Source";
|
||||
WindowManager = {
|
||||
EnableTilingByEdgeDrag = true;
|
||||
EnableTopTilingByEdgeDrag = true;
|
||||
EnableTilingOptionAccelerator = true;
|
||||
EnableTiledWindowMargins = true;
|
||||
};
|
||||
# universalaccess = {
|
||||
# mouseDriverCursorSize = 1.5;
|
||||
# reduceMotion = true;
|
||||
# reduceTransparency = false;
|
||||
# };
|
||||
menuExtraClock = {
|
||||
ShowSeconds = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
52
platforms/mac/etc/nix-darwin/flake.nix
Normal file
52
platforms/mac/etc/nix-darwin/flake.nix
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
description = "Example nix-darwin system flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
nix-darwin.url = "github:LnL7/nix-darwin/master";
|
||||
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs = inputs@{ self, nix-darwin, nixpkgs }:
|
||||
let
|
||||
configuration = { pkgs, ... }: {
|
||||
# List packages installed in system profile. To search by name, run:
|
||||
# $ nix-env -qaP | grep wget
|
||||
environment.systemPackages =
|
||||
[ pkgs.vim
|
||||
];
|
||||
|
||||
environment.etc."zshenv".text = ''
|
||||
if [ -d $HOME/.config/zsh ]; then
|
||||
export ZDOTDIR=$HOME/.config/zsh
|
||||
fi
|
||||
'';
|
||||
|
||||
# Necessary for using flakes on this system.
|
||||
nix.settings.experimental-features = "nix-command flakes";
|
||||
|
||||
# Enable alternative shell support in nix-darwin.
|
||||
# programs.fish.enable = true;
|
||||
|
||||
# Set Git commit hash for darwin-version.
|
||||
system.configurationRevision = self.rev or self.dirtyRev or null;
|
||||
|
||||
# Used for backwards compatibility, please read the changelog before changing.
|
||||
# $ darwin-rebuild changelog
|
||||
system.stateVersion = 6;
|
||||
|
||||
# The platform the configuration will be used on.
|
||||
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||
};
|
||||
in
|
||||
{
|
||||
# Build darwin flake using:
|
||||
# $ darwin-rebuild build --flake .#Zen
|
||||
darwinConfigurations."Zen" = nix-darwin.lib.darwinSystem {
|
||||
modules = [
|
||||
configuration
|
||||
./default-system.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue