This commit is contained in:
2025-11-16 23:52:15 +08:00
parent b3f72c85ba
commit 646b68b960
6 changed files with 56 additions and 127 deletions
+3 -3
View File
@@ -18,9 +18,6 @@
# Opinionated: disable global registry
flake-registry = "";
# Deduplicate and optimize nix store
auto-optimise-store = true;
# Trusted users (useful for remote builds)
# trusted-users = [ "root" "@wheel" ];
@@ -28,6 +25,9 @@
nix-path = config.nix.nixPath;
};
# Deduplicate and optimize nix store
optimise.automatic = true;
# Garbage collection
gc = {
automatic = true;
+4 -4
View File
@@ -23,9 +23,6 @@
# macOS-specific Nix settings (common.nix has the shared ones)
# Any darwin-specific nix configuration can go here
# Auto upgrade nix package and the daemon service
services.nix-daemon.enable = true;
# Necessary for using flakes on this system
nix.package = pkgs.nix;
@@ -49,6 +46,9 @@
name = "df";
home = "/Users/df";
};
# Set primary user for system defaults
system.primaryUser = "df";
# System-wide packages
environment.systemPackages = with pkgs; [
@@ -84,6 +84,6 @@
};
# Security
security.pam.enableSudoTouchIdAuth = true;
security.pam.services.sudo_local.touchIdAuth = true;
}
-15
View File
@@ -6,21 +6,6 @@
pkgs,
...
}: {
nixpkgs = {
# You can add overlays here
overlays = [
# Add overlays your own flake exports (from overlays and pkgs dir):
inputs.self.overlays.additions
inputs.self.overlays.modifications
inputs.self.overlays.unstable-packages
];
# Configure your nixpkgs instance
config = {
# Disable if you don't want unfree packages
allowUnfree = true;
};
};
# Enable home-manager
programs.home-manager.enable = true;
+11 -60
View File
@@ -31,65 +31,16 @@ with pkgs; let
west
pyelftools
]);
in {
imports = [
./modules/yabai/yabai.nix
./modules/skhd/skhd.nix
];
nixpkgs.overlays = [
(final: prev: {
maven363 = prev.maven.overrideAttrs (old: rec {
pname = "apache-maven";
version = "3.6.3";
src = prev.pkgs.fetchurl {
url = "mirror://apache/maven/maven-3/${version}/binaries/${pname}-${version}-bin.tar.gz";
sha256 = "sha256-Jq2R11GzqaUwh676dD9OFqF3QdORWyGc90ESv4ekOMU=";
};
});
})
];
nixpkgs.config.permittedInsecurePackages = [
"hadoop-3.3.1"
"libressl-3.4.3"
];
nix = {
configureBuildUsers = true;
settings = {
substituters = [
"https://cache.nixos.org/"
"https://cache.iog.io"
"https://haskell-language-server.cachix.org"
"https://nix-community.cachix.org"
];
trusted-users = ["@admin"];
trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
"haskell-language-server.cachix.org-1:juFfHrwkOxqIOZShtC4YC1uT1bBcq2RSvC7OMKx0Nz8="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
experimental-features = ["ca-derivations" "nix-command" "flakes"];
keep-outputs = true;
keep-derivations = true;
auto-optimise-store = true;
max-jobs = 32;
cores = 0;
http-connections = 64;
maven363 = pkgs.maven.overrideAttrs (old: rec {
pname = "apache-maven";
version = "3.6.3";
src = pkgs.fetchurl {
url = "mirror://apache/maven/maven-3/${version}/binaries/${pname}-${version}-bin.tar.gz";
sha256 = "sha256-Jq2R11GzqaUwh676dD9OFqF3QdORWyGc90ESv4ekOMU=";
};
package = nixUnstable;
};
nix.extraOptions =
""
+ lib.optionalString (pkgs.system == "aarch64-darwin") ''
extra-platforms = x86_64-darwin aarch64-darwin
'';
environment.systemPackages = with pkgs; [
});
in {
home.packages = with pkgs; [
gitAndTools.gitFull
neovim
vim
@@ -131,7 +82,7 @@ in {
htop
exa
eza
openconnect
yq
@@ -170,7 +121,7 @@ in {
# apktool no darwin
docker
lima
# lima - removed due to CVEs, use unstable version if needed
llvmPackages_14.clangUseLLVM
headscale
+5 -4
View File
@@ -6,10 +6,12 @@
pkgs,
...
}: {
services.skhd = {
services.skhd = lib.mkIf pkgs.stdenv.isDarwin {
enable = true;
package = pkgs.skhd;
skhdConfig = ''
};
home.file.".skhdrc".text = lib.mkIf pkgs.stdenv.isDarwin ''
## Navigation (lalt - ...)
# Space Navigation (four spaces per display): lalt - {1, 2, 3, 4}
lalt - 1 : yabai -m space --focus 1
@@ -104,7 +106,6 @@
# Open new Alacritty window
cmd - return : kitty
cmd - o : yabai -m window $(yabai -m query --windows | jq '.[] | select(.app==".kitty-wrapped") | .id') --space $(yabai -m query --spaces | jq '.[] | select(.has-focus==1) .id')
'';
};
'';
}
+33 -41
View File
@@ -1,4 +1,6 @@
# Yabai window manager configuration (macOS only)
# Note: Yabai is a system-level service and should be configured through nix-darwin
# This file only installs the package for home-manager
{
inputs,
lib,
@@ -6,51 +8,40 @@
pkgs,
...
}: {
# Only enable on macOS since yabai is macOS-specific
services.yabai = lib.mkIf pkgs.stdenv.isDarwin {
enable = true;
# enableScriptingAddition = true;
package = pkgs.yabai;
config = {
# Install yabai package for user
home.packages = lib.mkIf pkgs.stdenv.isDarwin [
pkgs.yabai
];
# Create yabai config file
home.file.".yabairc" = lib.mkIf pkgs.stdenv.isDarwin {
text = ''
#!/usr/bin/env sh
# layout
layout = "bsp";
auto_balance = "off";
split_ratio = "0.50";
window_placement = "second_child";
yabai -m config layout bsp
yabai -m config auto_balance off
yabai -m config split_ratio 0.50
yabai -m config window_placement second_child
# Gaps
window_gap = 18;
top_padding = 18;
bottom_padding = 52;
left_padding = 18;
right_padding = 18;
yabai -m config window_gap 18
yabai -m config top_padding 18
yabai -m config bottom_padding 52
yabai -m config left_padding 18
yabai -m config right_padding 18
# shadows and borders
window_shadow = "float";
yabai -m config window_shadow float
# mouse
mouse_follows_focus = "off";
focus_follows_mouse = "off";
mouse_modifier = "cmd";
mouse_action1 = "move";
mouse_action2 = "resize";
mouse_drop_action = "swap";
};
# # Unload the macOS WindowManager process
# launchctl unload -F /System/Library/LaunchAgents/com.apple.WindowManager.plist > /dev/null 2>&1 &
# # bar
# yabai -m signal --add event=window_focused action="sketchybar --trigger window_focus"
# yabai -m signal --add event=display_added action="sleep 1 && ${scripts}/create_spaces.sh"
# yabai -m signal --add event=display_removed action="sleep 1 && ${scripts}/create_spaces.sh"
# yabai -m signal --add event=window_created action="sketchybar --trigger windows_on_spaces"
# yabai -m signal --add event=window_destroyed action="sketchybar --trigger windows_on_spaces"
# ${scripts}/create_spaces.sh
extraConfig = ''
yabai -m config mouse_follows_focus off
yabai -m config focus_follows_mouse off
yabai -m config mouse_modifier cmd
yabai -m config mouse_action1 move
yabai -m config mouse_action2 resize
yabai -m config mouse_drop_action swap
# rules
yabai -m rule --add app="^(Genshin Impact|LuLu|Vimac|Calculator|Software Update|Dictionary|VLC|System Preferences|zoom.us|Photo Booth|Archive Utility|Python|LibreOffice|App Store|Steam|Alfred|Activity Monitor)$" manage=off
yabai -m rule --add label="Finder" app="^Finder$" title="(Co(py|nnect)|Move|Info|Pref)" manage=off
@@ -58,5 +49,6 @@
yabai -m rule --add label="About This Mac" app="System Information" title="About This Mac" manage=off
yabai -m rule --add label="Select file to save to" app="^Inkscape$" title="Select file to save to" manage=off
'';
executable = true;
};
}