Compare commits

..

13 commits

15 changed files with 409 additions and 68 deletions

View file

@ -16,6 +16,23 @@
"type": "github"
}
},
"brew-src": {
"flake": false,
"locked": {
"lastModified": 1718075954,
"narHash": "sha256-4TeUhv5VLEufP+Z/NkKnUk4NUaf59cMsj6NvsVbE+8w=",
"owner": "Homebrew",
"repo": "brew",
"rev": "3f08c75e7b950d4340dab462f3e7f77e8093fa2b",
"type": "github"
},
"original": {
"owner": "Homebrew",
"ref": "4.3.5",
"repo": "brew",
"type": "github"
}
},
"catppuccin": {
"locked": {
"lastModified": 1721784420,
@ -125,6 +142,24 @@
"type": "github"
}
},
"flake-utils_3": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flakey-profile": {
"locked": {
"lastModified": 1712898590,
@ -182,6 +217,38 @@
"type": "github"
}
},
"homebrew-cask": {
"flake": false,
"locked": {
"lastModified": 1722851290,
"narHash": "sha256-AKG4PyxskEEsbkutZUEMbeToOaX9cPusp61mkOgOwX4=",
"owner": "homebrew",
"repo": "homebrew-cask",
"rev": "812e3ae0f3c750120b131d8b80ae13c8ae3d7f4e",
"type": "github"
},
"original": {
"owner": "homebrew",
"repo": "homebrew-cask",
"type": "github"
}
},
"homebrew-core": {
"flake": false,
"locked": {
"lastModified": 1722848547,
"narHash": "sha256-QtfYus4K58sqtXiYXgd+WL67geNuD7bFriXHCwe6H2g=",
"owner": "homebrew",
"repo": "homebrew-core",
"rev": "5024945b7225d78c56b0482c503f8a20371d5eff",
"type": "github"
},
"original": {
"owner": "homebrew",
"repo": "homebrew-core",
"type": "github"
}
},
"lanzaboote": {
"inputs": {
"crane": "crane",
@ -244,22 +311,78 @@
"url": "https://git.lix.systems/lix-project/nixos-module/archive/2.90.0.tar.gz"
}
},
"nixpkgs": {
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1722421184,
"narHash": "sha256-/DJBI6trCeVnasdjUo9pbnodCLZcFqnVZiLUfqLH4jA=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "9f918d616c5321ad374ae6cb5ea89c9e04bf3e58",
"lastModified": 1722609272,
"narHash": "sha256-Kkb+ULEHVmk07AX+OhwyofFxBDpw+2WvsXguUS2m6e4=",
"owner": "LnL7",
"repo": "nix-darwin",
"rev": "f7142b8024d6b70c66fd646e1d099d3aa5bfec49",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"owner": "LnL7",
"repo": "nix-darwin",
"type": "github"
}
},
"nix-darwin_2": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1716329735,
"narHash": "sha256-ap51w+VqG21vuzyQ04WrhI2YbWHd3UGz0e7dc/QQmoA=",
"owner": "LnL7",
"repo": "nix-darwin",
"rev": "eac4f25028c1975a939c8f8fba95c12f8a25e01c",
"type": "github"
},
"original": {
"owner": "LnL7",
"repo": "nix-darwin",
"type": "github"
}
},
"nix-homebrew": {
"inputs": {
"brew-src": "brew-src",
"flake-utils": "flake-utils_3",
"nix-darwin": "nix-darwin_2",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1719720211,
"narHash": "sha256-FNK5ZxmNC+V/wOuioc5HqkUy0ld4eW3NqcsZHLYg9HI=",
"owner": "zhaofengli-wip",
"repo": "nix-homebrew",
"rev": "0afc51fd86693c73e4b60be8ed8c782c4c09b4cc",
"type": "github"
},
"original": {
"owner": "zhaofengli-wip",
"repo": "nix-homebrew",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1687274257,
"narHash": "sha256-TutzPriQcZ8FghDhEolnHcYU2oHIG5XWF+/SUBNnAOE=",
"path": "/nix/store/22qgs3skscd9bmrxv9xv4q5d4wwm5ppx-source",
"rev": "2c9ecd1f0400076a4d6b2193ad468ff0a7e7fdc5",
"type": "path"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1710695816,
@ -276,6 +399,38 @@
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1716330097,
"narHash": "sha256-8BO3B7e3BiyIDsaKA0tY8O88rClYRTjvAp66y+VBUeU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5710852ba686cc1fd0d3b8e22b3117d43ba374c2",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1722421184,
"narHash": "sha256-/DJBI6trCeVnasdjUo9pbnodCLZcFqnVZiLUfqLH4jA=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "9f918d616c5321ad374ae6cb5ea89c9e04bf3e58",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"pre-commit-hooks-nix": {
"inputs": {
"flake-compat": [
@ -308,9 +463,13 @@
"bleedingpkgs": "bleedingpkgs",
"catppuccin": "catppuccin",
"home-manager": "home-manager",
"homebrew-cask": "homebrew-cask",
"homebrew-core": "homebrew-core",
"lanzaboote": "lanzaboote",
"lix-module": "lix-module",
"nixpkgs": "nixpkgs",
"nix-darwin": "nix-darwin",
"nix-homebrew": "nix-homebrew",
"nixpkgs": "nixpkgs_3",
"stablepkgs": "stablepkgs"
}
},
@ -384,6 +543,21 @@
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",

View file

@ -9,6 +9,17 @@
};
stablepkgs.url = "github:nixos/nixpkgs/nixos-24.05";
bleedingpkgs.url = "github:nixos/nixpkgs/master";
nix-darwin.url = "github:LnL7/nix-darwin";
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
nix-homebrew.url = "github:zhaofengli-wip/nix-homebrew";
homebrew-core = {
url = "github:homebrew/homebrew-core";
flake = false;
};
homebrew-cask = {
url = "github:homebrew/homebrew-cask";
flake = false;
};
catppuccin.url = "github:catppuccin/nix";
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.1";
@ -24,7 +35,7 @@
};
outputs = { self, nixpkgs, home-manager, catppuccin, lanzaboote, stablepkgs
, bleedingpkgs, lix-module, ... }@inputs: {
, bleedingpkgs, lix-module, nix-darwin, nix-homebrew, ... }@inputs: rec {
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt;
nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
@ -37,6 +48,7 @@
./modules/nixos/nvidia.nix
./modules/nixos/networking.nix
./modules/common/fonts.nix
./machines/nixos/hardware-configuration.nix
catppuccin.nixosModules.catppuccin
@ -51,15 +63,41 @@
home-manager.backupFileExtension = "backup";
home-manager.users.youwen = {
imports = [
./home.nix
./modules/home-manager/linux/linux-home.nix
./modules/home-manager/linux/desktop.nix
./modules/home-manager/linux/programs.nix
./modules/home-manager/common/core.nix
./modules/home-manager/linux/catppuccin.nix
inputs.catppuccin.homeManagerModules.catppuccin
];
};
}
];
};
formatter.aarch64-darwin = nixpkgs.legacyPackages.aarch64-darwin.nixfmt;
# Build darwin flake using:
# $ darwin-rebuild build --flake .#Youwens-MacBook-Pro
darwinConfigurations."Youwens-MacBook-Pro" = nix-darwin.lib.darwinSystem {
specialArgs = { inherit inputs; };
modules = [
./modules/darwin/darwin-configuration.nix
home-manager.darwinModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.youwen.imports = [
./modules/home-manager/darwin/darwin-home.nix
./modules/home-manager/common/core.nix
];
home-manager.backupFileExtension = "backup";
# Optionally, use home-manager.extraSpecialArgs to pass
# arguments to home.nix
}
nix-homebrew.darwinModules.nix-homebrew
./modules/darwin/homebrew.nix
./modules/darwin/yabai.nix
];
};
};
}

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{ pkgs, ... }: {
fonts = {
enableDefaultPackages = true;
fontconfig = {

View file

@ -1,4 +1,7 @@
{ config, pkgs, ... }: {
{ inputs, config, pkgs, ... }: {
# Expose the package set, including overlays, for convenience.
# darwinPackages = inputs.self.darwinConfigurations."Youwens-MacBook-Pro".pkgs;
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages = with pkgs; [ ];
@ -36,4 +39,14 @@
};
security.pam.enableSudoTouchIdAuth = true;
fonts = {
packages = with pkgs; [
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
(nerdfonts.override { fonts = [ "CascadiaCode" ]; })
(google-fonts.override { fonts = [ "Lora" ]; })
];
};
}

View file

@ -0,0 +1,14 @@
{ inputs, ... }: {
nix-homebrew = {
enable = true;
enableRosetta = true;
user = "youwen";
taps = {
"homebrew/homebrew-core" = inputs.homebrew-core;
"homebrew/homebrew-cask" = inputs.homebrew-cask;
};
mutableTaps = false;
};
}

30
modules/darwin/yabai.nix Normal file
View file

@ -0,0 +1,30 @@
{ config, pkgs, ... }: {
services.yabai = {
enable = true;
enableScriptingAddition = true;
config = {
focus_follows_mouse = "autoraise";
mouse_follows_focus = "on";
window_placement = "second_child";
window_opacity = "off";
top_padding = 12;
bottom_padding = 12;
left_padding = 12;
right_padding = 12;
window_gap = 10;
split_ratio = 0.5;
split_type = "auto";
layout = "bsp";
mouse_modifier = "fn";
mouse_action1 = "move";
mouse_action2 = "resize";
mouse_drop_action = "swap";
};
};
services.skhd = { enable = true; };
services.jankyborders = {
enable = true;
hidpi = true;
};
}

View file

@ -1,7 +1,6 @@
{ pkgs, ... }:
{
programs.bash.enable = true;
programs.nushell = {
{ pkgs, ... }: {
programs.bash.enable = pkgs.lib.mkDefault true;
programs.nushell = pkgs.lib.mkDefault {
enable = true;
configFile.text = ''
$env.config = {
@ -11,12 +10,9 @@
'';
};
programs.fzf = {
enable = true;
catppuccin.enable = true;
};
programs.fzf = pkgs.lib.mkDefault { enable = true; };
programs.git = {
programs.git = pkgs.lib.mkDefault {
enable = true;
userName = "Youwen Wu";
userEmail = "youwenw@gmail.com";
@ -28,10 +24,8 @@
};
};
programs.lazygit = {
programs.lazygit = pkgs.lib.mkDefault {
enable = true;
catppuccin.enable = true;
catppuccin.flavor = "macchiato";
settings = {
git.paging = {
colorArg = "always";
@ -40,32 +34,28 @@
};
};
programs.bat.enable = true;
programs.bat.catppuccin = {
enable = true;
flavor = "macchiato";
};
programs.bat.enable = pkgs.lib.mkDefault true;
programs.ripgrep.enable = true;
programs.ripgrep.enable = pkgs.lib.mkDefault true;
programs.readline = {
enable = true;
extraConfig = "set editing-mode vi";
};
programs.zoxide = {
programs.zoxide = pkgs.lib.mkDefault {
enable = true;
# enableZshIntegration = true;
enableFishIntegration = true;
enableNushellIntegration = true;
};
programs.gh = {
programs.gh = pkgs.lib.mkDefault {
enable = true;
extensions = [ pkgs.github-copilot-cli ];
};
programs.oh-my-posh = {
programs.oh-my-posh = pkgs.lib.mkDefault {
enable = true;
# enableZshIntegration = true;
enableFishIntegration = true;
@ -75,8 +65,6 @@
programs.fish = pkgs.lib.mkDefault {
enable = true;
catppuccin.enable = true;
catppuccin.flavor = "mocha";
shellAliases = {
rebuild = "sudo nixos-rebuild switch";
ls = "eza -l --icons=auto";
@ -136,10 +124,9 @@
];
};
programs.fd.enable = pkgs.lib.mkDefault true;
programs.fd.enable = true;
programs.btop = {
programs.btop = pkgs.lib.mkDefault {
enable = true;
settings = {
color_theme = "tokyo-night";
@ -148,13 +135,13 @@
};
};
programs.eza = {
programs.eza = pkgs.lib.mkDefault {
enable = true;
enableFishIntegration = true;
enableBashIntegration = true;
};
programs.neovim = {
programs.neovim = pkgs.lib.mkDefault {
enable = true;
defaultEditor = true;
viAlias = true;

View file

@ -0,0 +1,70 @@
{ inputs, config, pkgs, ... }:
{
home.username = "youwen";
home.homeDirectory = "/Users/youwen";
# link the configuration file in current directory to the specified location in home directory
# home.file.".config/i3/wallpaper.jpg".source = ./wallpaper.jpg;
# link all files in `./scripts` to `~/.config/i3/scripts`
# home.file.".config/i3/scripts" = {
# source = ./scripts;
# recursive = true; # link recursively
# executable = true; # make all files executable
# };
# encode the file content in nix configuration file directly
# home.file.".xxx".text = ''
# xxx
# '';
home.file.".config/neofetch/config.conf".source =
../../../config/neofetch.conf;
# Packages that should be installed to the user profile.
home.packages = with pkgs; [
neofetch
# archives
zip
xz
unzip
p7zip
# utils
nurl # helps fetch git data for nixpkgs
# nix related
#
# it provides the command `nom` works just like `nix`
# with more details log output
nix-output-monitor
# dev tools
nodePackages_latest.pnpm
rustfmt
rust-analyzer
];
programs.git.extraConfig.commit.gpgsign = "false";
programs.oh-my-posh.enableZshIntegration = true;
programs.bash.enable = true;
programs.zsh.enable = true;
# This value determines the home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new home Manager release introduces backwards
# incompatible changes.
home.stateVersion = "24.05";
#
# You can update home Manager without changing this value. See
# the home Manager release notes for a list of state version
# changes in each release.
# Let home Manager install and manage itself.
programs.home-manager.enable = true;
}

View file

@ -0,0 +1,18 @@
{
programs.fzf.catppuccin = {
enable = true;
flavor = "macchiato";
};
programs.lazygit.catppuccin = {
enable = true;
flavor = "macchiato";
};
programs.bat.catppuccin = {
enable = true;
flavor = "macchiato";
};
programs.fish.catppuccin = {
enable = true;
flavor = "mocha";
};
}

View file

@ -1,5 +1,4 @@
{ pkgs, ...}:
{
{ pkgs, ... }: {
wayland.windowManager.hyprland = import ./hyprland-conf.nix;
# Audio effects and EQ tool

View file

@ -19,9 +19,10 @@
# xxx
# '';
home.file.".config/neofetch/config.conf".source = ./config/neofetch.conf;
home.file.".config/neofetch/config.conf".source =
../../../config/neofetch.conf;
home.file.".wallpapers" = {
source = ./wallpapers;
source = ../../../wallpapers;
recursive = true;
};

View file

@ -5,9 +5,9 @@
{ config, inputs, pkgs, ... }:
{
imports = [ # Include the results of the hardware scan.
./hardware-configuration.nix
];
# imports = [ # Include the results of the hardware scan.
# ./hardware-configuration.nix
# ];
# Bootloader.
boot.loader = {
@ -80,7 +80,6 @@
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;

View file

@ -1,5 +1,4 @@
{ config, ... }:
{
{ config, ... }: {
hardware.nvidia = {
modesetting.enable = true;
powerManagement.enable = true;

View file

@ -1,17 +1,17 @@
({ pkgs, lib, ... }: {
environment.systemPackages = [
# For debugging and troubleshooting Secure Boot.
pkgs.sbctl
];
({ pkgs, lib, ... }: {
environment.systemPackages = [
# For debugging and troubleshooting Secure Boot.
pkgs.sbctl
];
# Lanzaboote currently replaces the systemd-boot module.
# This setting is usually set to true in configuration.nix
# generated at installation time. So we force it to false
# for now.
boot.loader.systemd-boot.enable = lib.mkForce false;
# Lanzaboote currently replaces the systemd-boot module.
# This setting is usually set to true in configuration.nix
# generated at installation time. So we force it to false
# for now.
boot.loader.systemd-boot.enable = lib.mkForce false;
boot.lanzaboote = {
enable = true;
pkiBundle = "/etc/secureboot";
};
})
boot.lanzaboote = {
enable = true;
pkiBundle = "/etc/secureboot";
};
})