Initial commit
Some checks failed
CI / check (push) Has been cancelled
CI / ida (push) Has been cancelled
CI / cpt (push) Has been cancelled
CI / build-nixos (ena) (push) Has been cancelled
CI / build-nixos (hako) (push) Has been cancelled
CI / build-nixos (kazusa) (push) Has been cancelled
CI / build-nixos (mizuki) (push) Has been cancelled
Some checks failed
CI / check (push) Has been cancelled
CI / ida (push) Has been cancelled
CI / cpt (push) Has been cancelled
CI / build-nixos (ena) (push) Has been cancelled
CI / build-nixos (hako) (push) Has been cancelled
CI / build-nixos (kazusa) (push) Has been cancelled
CI / build-nixos (mizuki) (push) Has been cancelled
This commit is contained in:
commit
70284509f3
82 changed files with 7061 additions and 0 deletions
59
hosts/machine/ena/configuration.nix
Normal file
59
hosts/machine/ena/configuration.nix
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
|
||||
"${inputs.self}/modules/nixos/base"
|
||||
"${inputs.self}/modules/nixos/features/boot.nix"
|
||||
"${inputs.self}/modules/nixos/features/fonts.nix"
|
||||
"${inputs.self}/modules/nixos/features/plasma.nix"
|
||||
"${inputs.self}/modules/nixos/features/sound.nix"
|
||||
"${inputs.self}/modules/nixos/features/packages.nix"
|
||||
"${inputs.self}/modules/nixos/features/catppuccin.nix"
|
||||
"${inputs.self}/modules/nixos/features/figma-agent.nix"
|
||||
"${inputs.self}/modules/nixos/features/sbctl.nix"
|
||||
"${inputs.self}/modules/nixos/features/grub-standalone.nix"
|
||||
"${inputs.self}/modules/nixos/features/virtualisation.nix"
|
||||
"${inputs.self}/modules/nixos/features/cockpit.nix"
|
||||
"${inputs.self}/modules/nixos/features/bluetooth.nix"
|
||||
"${inputs.self}/modules/nixos/features/graphics.nix"
|
||||
"${inputs.self}/modules/nixos/features/steam.nix"
|
||||
"${inputs.self}/modules/nixos/features/ssh.nix"
|
||||
];
|
||||
|
||||
networking = {
|
||||
hostName = "ena";
|
||||
networkmanager.enable = true;
|
||||
firewall.enable = false;
|
||||
};
|
||||
|
||||
networking.networkmanager.plugins = [
|
||||
pkgs.networkmanager-ssh
|
||||
];
|
||||
|
||||
services.printing.enable = true;
|
||||
services.power-profiles-daemon.enable = true;
|
||||
services.asusd.enable = true;
|
||||
services.netbird.enable = true;
|
||||
|
||||
systemd.services.asusctl-battery-limit = {
|
||||
description = "Set ASUS battery charge limit";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wants = [ "asusd.service" ];
|
||||
after = [ "asusd.service" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "${pkgs.asusctl}/bin/asusctl battery limit 95";
|
||||
RemainAfterExit = true;
|
||||
};
|
||||
};
|
||||
|
||||
services.cloudflare-warp.enable = true;
|
||||
|
||||
system.stateVersion = "25.11";
|
||||
}
|
||||
42
hosts/machine/ena/default.nix
Normal file
42
hosts/machine/ena/default.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
inputs,
|
||||
overlays,
|
||||
}:
|
||||
let
|
||||
inherit (inputs)
|
||||
nixpkgs
|
||||
home-manager
|
||||
catppuccin
|
||||
nix-flatpak
|
||||
plasma-manager
|
||||
spicetify-nix
|
||||
vicinae
|
||||
;
|
||||
in
|
||||
nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./hardware-configuration.nix
|
||||
./configuration.nix
|
||||
catppuccin.nixosModules.catppuccin
|
||||
nix-flatpak.nixosModules.nix-flatpak
|
||||
# lanzaboote.nixosModules.lanzaboote
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.backupFileExtension = "backup";
|
||||
home-manager.sharedModules = [
|
||||
plasma-manager.homeModules.plasma-manager
|
||||
spicetify-nix.homeManagerModules.default
|
||||
vicinae.homeManagerModules.default
|
||||
];
|
||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||
home-manager.users.imnyang = import ./home;
|
||||
}
|
||||
];
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
inherit overlays;
|
||||
};
|
||||
}
|
||||
71
hosts/machine/ena/hardware-configuration.nix
Normal file
71
hosts/machine/ena/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"thunderbolt"
|
||||
"nvme"
|
||||
"usbhid"
|
||||
];
|
||||
boot.initrd.kernelModules = [ "xe" ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.kernelParams = [
|
||||
# NVMe APST(Autonomous Power State Transition) 관련 이슈 방지
|
||||
"nvme_core.default_ps_max_latency_us=0"
|
||||
"xe.enable_psr=0"
|
||||
"intel_idle.max_cstate=2" # C-state를 깊게 들어가지 않도록 제한 (테스트 후 점진적으로 상향 가능)
|
||||
];
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/161e6b72-1ec6-4b9c-b1b7-325dd4320c2e";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-5a2a5e2d-749d-408e-82df-82e8607ae67e" = {
|
||||
device = "/dev/disk/by-uuid/5a2a5e2d-749d-408e-82df-82e8607ae67e";
|
||||
allowDiscards = true;
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/7078-16D1";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0077"
|
||||
"dmask=0077"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver
|
||||
intel-compute-runtime
|
||||
vpl-gpu-rt # Lunar Lake 비디오 가속을 위한 핵심 패키지
|
||||
];
|
||||
};
|
||||
|
||||
hardware.cpu.intel.updateMicrocode = true;
|
||||
|
||||
services.thermald.enable = true; # 인텔 CPU 발열 및 전력 관리 보조
|
||||
services.fstrim.enable = true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
# hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
15
hosts/machine/ena/home/config/plasma.nix
Normal file
15
hosts/machine/ena/home/config/plasma.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{ inputs, ... }:
|
||||
let
|
||||
assets = "${inputs.self}/assets";
|
||||
in
|
||||
{
|
||||
imports = [ "${inputs.self}/modules/home/plasma.nix" ];
|
||||
|
||||
programs.plasma.workspace.cursor = {
|
||||
theme = "pjsk-cursor-n25-ena-ani";
|
||||
};
|
||||
|
||||
programs.plasma.workspace.wallpaper = "${assets}/wallpaper/wallpaper1.jpg";
|
||||
|
||||
programs.plasma.kscreenlocker.appearance.wallpaper = "${assets}/wallpaper/wallpaper3.png";
|
||||
}
|
||||
59
hosts/machine/ena/home/config/shell.nix
Normal file
59
hosts/machine/ena/home/config/shell.nix
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
|
||||
shellAliases = {
|
||||
# 디렉토리 네비게이션
|
||||
".." = "cd ..";
|
||||
"..." = "cd ../..";
|
||||
|
||||
# ls 별칭
|
||||
ls = "eza --icons=always";
|
||||
ll = "eza --icons=always -l";
|
||||
la = "eza --icons=always -a";
|
||||
lla = "eza --icons=always -la";
|
||||
|
||||
cat = "bat --plain";
|
||||
|
||||
# NixOS 관련
|
||||
rebuild = "nr";
|
||||
update = "nix flake update";
|
||||
clean = "sudo nix-collect-garbage -d";
|
||||
};
|
||||
|
||||
interactiveShellInit = ''
|
||||
set -g fish_greeting ""
|
||||
set -g fish_color_command blue
|
||||
set -g fish_color_error red
|
||||
set -g fish_color_param cyan
|
||||
'';
|
||||
};
|
||||
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
settings = {
|
||||
format = "🎨 $directory:$character";
|
||||
add_newline = false;
|
||||
# username = {
|
||||
# style_user = "purple";
|
||||
# style_root = "purple";
|
||||
# format = "[$user]($style)";
|
||||
# show_always = true;
|
||||
# };
|
||||
# hostname = {
|
||||
# style = "green";
|
||||
# format = "[$hostname]($style)";
|
||||
# ssh_only = false;
|
||||
# };
|
||||
directory = {
|
||||
style = "fg:#fbb6c4";
|
||||
format = "[$path]($style)";
|
||||
truncation_length = 3;
|
||||
};
|
||||
character = {
|
||||
success_symbol = " 💕";
|
||||
error_symbol = " ⚠️";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
46
hosts/machine/ena/home/default.nix
Normal file
46
hosts/machine/ena/home/default.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
xdg.enable = true;
|
||||
# gtk.enable = true;
|
||||
|
||||
home.stateVersion = "25.05";
|
||||
home.username = "imnyang";
|
||||
home.homeDirectory = "/home/imnyang";
|
||||
home.packages = import ./packages.nix { inherit pkgs inputs; };
|
||||
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nano";
|
||||
VISUAL = "nano";
|
||||
};
|
||||
|
||||
xdg.configFile."fontconfig/conf.d/10-hm-fonts.conf".force = true;
|
||||
|
||||
programs.vicinae = {
|
||||
enable = true;
|
||||
systemd = {
|
||||
enable = true;
|
||||
autoStart = true;
|
||||
environment = {
|
||||
USE_LAYER_SHELL = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
"${inputs.self}/modules/home/git.nix"
|
||||
# "${inputs.self}/modules/home/firefox.nix
|
||||
"${inputs.self}/modules/home/neovim.nix"
|
||||
"${inputs.self}/modules/home/spicetify.nix"
|
||||
"${inputs.self}/modules/home/ghostty.nix"
|
||||
"${inputs.self}/modules/home/zed.nix"
|
||||
"${inputs.self}/modules/home/discord/linux.nix"
|
||||
"${inputs.self}/modules/home/vscode.nix"
|
||||
./config/shell.nix
|
||||
./config/plasma.nix
|
||||
];
|
||||
}
|
||||
27
hosts/machine/ena/home/packages.nix
Normal file
27
hosts/machine/ena/home/packages.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ pkgs, inputs }:
|
||||
let
|
||||
system = pkgs.stdenv.hostPlatform.system;
|
||||
pkgsPacketTracer8 = import inputs.nixpkgs-2511 {
|
||||
inherit system;
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
permittedInsecurePackages = [
|
||||
"ciscoPacketTracer8-8.2.2"
|
||||
];
|
||||
};
|
||||
};
|
||||
in
|
||||
with pkgs;
|
||||
(import ../../../../modules/home/packages.nix { inherit pkgs inputs; })
|
||||
++ [
|
||||
# tail-tray
|
||||
kdePackages.kcolorchooser
|
||||
fastfetch
|
||||
# amnezia-vpn
|
||||
# inputs.waterfox.packages.${pkgs.system}.waterfox
|
||||
gnome-network-displays
|
||||
element-desktop
|
||||
cisco-packet-tracer_9
|
||||
pkgsPacketTracer8.ciscoPacketTracer8
|
||||
# hoffice
|
||||
]
|
||||
23
hosts/machine/kanade/configuration.nix
Normal file
23
hosts/machine/kanade/configuration.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
overlays ? [ ],
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./modules/nix.nix
|
||||
./modules/user.nix
|
||||
./modules/mac
|
||||
./modules/packages.nix
|
||||
./modules/homebrew/default.nix
|
||||
"${inputs.self}/modules/home/discord/mac.nix"
|
||||
];
|
||||
|
||||
nixpkgs = {
|
||||
hostPlatform = "aarch64-darwin";
|
||||
overlays = overlays;
|
||||
};
|
||||
|
||||
system.stateVersion = 5;
|
||||
}
|
||||
36
hosts/machine/kanade/default.nix
Normal file
36
hosts/machine/kanade/default.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
inputs,
|
||||
overlays,
|
||||
}:
|
||||
let
|
||||
inherit (inputs) darwin home-manager;
|
||||
in
|
||||
darwin.lib.darwinSystem {
|
||||
system = "aarch64-darwin";
|
||||
modules = [
|
||||
./configuration.nix
|
||||
home-manager.darwinModules.home-manager
|
||||
inputs.nix-homebrew.darwinModules.nix-homebrew
|
||||
{
|
||||
nix-homebrew = {
|
||||
enable = true;
|
||||
user = "imnyang";
|
||||
mutableTaps = true;
|
||||
# nix-darwin's Homebrew module uses /opt/homebrew/bin/brew directly.
|
||||
# The nix-homebrew integration calls `brew` before it is on PATH.
|
||||
enableFishIntegration = false;
|
||||
};
|
||||
}
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.backupFileExtension = "backup";
|
||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||
home-manager.users.imnyang = import ./home;
|
||||
}
|
||||
];
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
inherit overlays;
|
||||
};
|
||||
}
|
||||
31
hosts/machine/kanade/home/config/git.nix
Normal file
31
hosts/machine/kanade/home/config/git.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
|
||||
# 기본 사용자 설정
|
||||
# userName = "imnyang";
|
||||
# userEmail = "imnyang@pm.me";
|
||||
|
||||
settings = {
|
||||
user = {
|
||||
signingkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOHP3Z+AYrRh9f8TYyqChKfeyNm3lOe0F75AwRHTTaxD";
|
||||
name = "imnyang";
|
||||
email = "imnyang@pm.me";
|
||||
};
|
||||
# gpg = {
|
||||
# format = "ssh";
|
||||
# "ssh".program = "/Applications/1Password.app/Contents/MacOS/op-ssh-sign";
|
||||
# };
|
||||
# commit.gpgsign = true;
|
||||
init.defaultBranch = "main";
|
||||
pull.rebase = false;
|
||||
includeIf."gitdir:~/workspaces/git/adofai.gg/" = {
|
||||
path = builtins.toFile "gitconfig-adofaigg" ''
|
||||
[user]
|
||||
email = imnyang@adofai.gg
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
64
hosts/machine/kanade/home/config/shell.nix
Normal file
64
hosts/machine/kanade/home/config/shell.nix
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
|
||||
shellAliases = {
|
||||
".." = "cd ..";
|
||||
"..." = "cd ../..";
|
||||
|
||||
ls = "eza --icons=always";
|
||||
ll = "eza --icons=always -l";
|
||||
la = "eza --icons=always -a";
|
||||
lla = "eza --icons=always -la";
|
||||
|
||||
# nix-darwin 관련
|
||||
rebuild = "sudo darwin-rebuild switch --flake .#kanade";
|
||||
update = "nix flake update";
|
||||
clean = "nix-collect-garbage -d";
|
||||
};
|
||||
|
||||
interactiveShellInit = ''
|
||||
set -g fish_greeting ""
|
||||
set -g fish_color_command blue
|
||||
set -g fish_color_error red
|
||||
set -g fish_color_param cyan
|
||||
|
||||
set -gx ANDROID_HOME "$HOME/Library/Android/sdk"
|
||||
if test -d "$ANDROID_HOME/ndk"
|
||||
set -l ndk_versions "$ANDROID_HOME"/ndk/*
|
||||
if test (count $ndk_versions) -gt 0
|
||||
set -gx NDK_HOME $ndk_versions[-1]
|
||||
end
|
||||
end
|
||||
|
||||
set -gx SSH_AUTH_SOCK /Users/imnyang/.ssh/proton-pass-agent.sock
|
||||
'';
|
||||
};
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
settings = {
|
||||
format = "🎼 $directory:$character";
|
||||
add_newline = false;
|
||||
# username = {
|
||||
# style_user = "purple";
|
||||
# style_root = "purple";
|
||||
# format = "[$user]($style)";
|
||||
# show_always = true;
|
||||
# };
|
||||
# hostname = {
|
||||
# style = "green";
|
||||
# format = "[$hostname]($style)";
|
||||
# ssh_only = false;
|
||||
# };
|
||||
directory = {
|
||||
style = "fg:#fbb6c4";
|
||||
format = "[$path]($style)";
|
||||
truncation_length = 3;
|
||||
};
|
||||
character = {
|
||||
success_symbol = " 💕";
|
||||
error_symbol = " ⚠️";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
27
hosts/machine/kanade/home/default.nix
Normal file
27
hosts/machine/kanade/home/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
xdg.enable = true;
|
||||
|
||||
home.stateVersion = "25.05";
|
||||
home.username = "imnyang";
|
||||
home.homeDirectory = "/Users/imnyang";
|
||||
home.packages = import ./packages.nix { inherit pkgs inputs; };
|
||||
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
VISUAL = "nvim";
|
||||
};
|
||||
|
||||
imports = [
|
||||
"${inputs.self}/modules/home/neovim.nix"
|
||||
"${inputs.self}/modules/home/ghostty.nix"
|
||||
"${inputs.self}/modules/home/zed.nix"
|
||||
./config/git.nix
|
||||
./config/shell.nix
|
||||
];
|
||||
}
|
||||
55
hosts/machine/kanade/home/packages.nix
Normal file
55
hosts/machine/kanade/home/packages.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
{ pkgs, inputs, ... }:
|
||||
let
|
||||
dr = import ../../../../modules/nixos/features/packages/dr.nix { inherit pkgs; };
|
||||
in
|
||||
with pkgs;
|
||||
[
|
||||
# Language runtimes and package managers
|
||||
nodejs
|
||||
pnpm
|
||||
yarn
|
||||
bun
|
||||
python3
|
||||
rustup
|
||||
go
|
||||
|
||||
# Editors and database tools
|
||||
neovide
|
||||
jetbrains.datagrip
|
||||
jetbrains.idea
|
||||
|
||||
# CLI utilities
|
||||
ripgrep
|
||||
fd
|
||||
bat
|
||||
fzf
|
||||
jq
|
||||
eza
|
||||
fastfetch
|
||||
btop
|
||||
|
||||
# Source control
|
||||
gh
|
||||
lazygit
|
||||
|
||||
# Browsers
|
||||
google-chrome
|
||||
|
||||
# Development applications
|
||||
postman
|
||||
scrcpy
|
||||
|
||||
# Virtualisation
|
||||
utm
|
||||
|
||||
# Media
|
||||
iina
|
||||
|
||||
# Gaming
|
||||
prismlauncher
|
||||
|
||||
# Nix workflows
|
||||
dr
|
||||
|
||||
inputs.muvel.packages.${pkgs.stdenv.hostPlatform.system}.muvel
|
||||
]
|
||||
8
hosts/machine/kanade/modules/homebrew/brews.nix
Normal file
8
hosts/machine/kanade/modules/homebrew/brews.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
[
|
||||
# Apple and mobile development
|
||||
"cocoapods"
|
||||
"watchman"
|
||||
|
||||
# Media customisation
|
||||
"spicetify-cli"
|
||||
]
|
||||
46
hosts/machine/kanade/modules/homebrew/casks.nix
Normal file
46
hosts/machine/kanade/modules/homebrew/casks.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
[
|
||||
# Security and networking
|
||||
"1password"
|
||||
"cloudflare-warp"
|
||||
"protonvpn"
|
||||
"microsoft-edge@canary"
|
||||
|
||||
# Communication
|
||||
"discord"
|
||||
"discord@canary"
|
||||
"proton-mail"
|
||||
"signal"
|
||||
"zoom"
|
||||
|
||||
# Productivity and design
|
||||
"camo-studio"
|
||||
"proton-drive"
|
||||
"figma"
|
||||
"notion"
|
||||
|
||||
# Development
|
||||
"android-studio"
|
||||
"burp-suite"
|
||||
"docker-desktop"
|
||||
"unity-hub"
|
||||
"visual-studio-code@insiders"
|
||||
"zed"
|
||||
"codex"
|
||||
"codex-app"
|
||||
"codexbar"
|
||||
|
||||
# Media and audio
|
||||
"finetune"
|
||||
"spotify"
|
||||
|
||||
# Gaming and remote access
|
||||
"parsec"
|
||||
"steam"
|
||||
|
||||
# macOS utilities
|
||||
"alt-tab"
|
||||
"keka"
|
||||
"raycast"
|
||||
"thaw"
|
||||
"mole-app"
|
||||
]
|
||||
18
hosts/machine/kanade/modules/homebrew/default.nix
Normal file
18
hosts/machine/kanade/modules/homebrew/default.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
homebrew = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
|
||||
onActivation = {
|
||||
autoUpdate = true;
|
||||
cleanup = "zap";
|
||||
upgrade = true;
|
||||
};
|
||||
|
||||
brews = import ./brews.nix;
|
||||
casks = import ./casks.nix;
|
||||
};
|
||||
}
|
||||
34
hosts/machine/kanade/modules/mac/avatar.nix
Normal file
34
hosts/machine/kanade/modules/mac/avatar.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
avatar = pkgs.runCommand "kanade-avatar.jpg" { nativeBuildInputs = [ pkgs.imagemagick ]; } ''
|
||||
magick "${inputs.self}/assets/avatar.webp" -quality 92 "$out"
|
||||
'';
|
||||
in
|
||||
{
|
||||
system.activationScripts.postActivation.text = ''
|
||||
avatarPath="/Library/User Pictures/imnyang.jpg"
|
||||
importFile="$(/usr/bin/mktemp /tmp/imnyang-avatar.XXXXXX)"
|
||||
|
||||
/usr/bin/install -d -m 0755 "/Library/User Pictures"
|
||||
/usr/bin/install -m 0644 "${avatar}" "$avatarPath"
|
||||
|
||||
# Replace both account-picture representations. JPEGPhoto is embedded in
|
||||
# the directory record and is used by the login screen and System Settings.
|
||||
/usr/bin/dscl . -delete /Users/imnyang JPEGPhoto >/dev/null 2>&1 || true
|
||||
/usr/bin/dscl . -delete /Users/imnyang Picture >/dev/null 2>&1 || true
|
||||
/usr/bin/dscl . -create /Users/imnyang Picture "$avatarPath"
|
||||
|
||||
/usr/bin/printf '%s\n%s:%s' \
|
||||
'0x0A 0x5C 0x3A 0x2C dsRecTypeStandard:Users 2 dsAttrTypeStandard:RecordName externalbinary:dsAttrTypeStandard:JPEGPhoto' \
|
||||
'imnyang' \
|
||||
"$avatarPath" > "$importFile"
|
||||
/usr/bin/dsimport "$importFile" /Local/Default M
|
||||
/bin/rm -f "$importFile"
|
||||
|
||||
/usr/bin/dscacheutil -flushcache
|
||||
'';
|
||||
}
|
||||
10
hosts/machine/kanade/modules/mac/default.nix
Normal file
10
hosts/machine/kanade/modules/mac/default.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
imports = [
|
||||
./avatar.nix
|
||||
./dock.nix
|
||||
./keyboard.nix
|
||||
./preferences.nix
|
||||
./touch-id.nix
|
||||
./wallpaper.nix
|
||||
];
|
||||
}
|
||||
36
hosts/machine/kanade/modules/mac/dock.nix
Normal file
36
hosts/machine/kanade/modules/mac/dock.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
system.defaults.dock = {
|
||||
autohide = false;
|
||||
show-recents = true;
|
||||
|
||||
wvous-bl-corner = 1;
|
||||
wvous-br-corner = 1;
|
||||
wvous-tl-corner = 1;
|
||||
wvous-tr-corner = 1;
|
||||
|
||||
persistent-apps = [
|
||||
"/System/Applications/Apps.app"
|
||||
"/Applications/Microsoft Edge Canary.app"
|
||||
"/Applications/Discord.app"
|
||||
"/Applications/KakaoTalk.app"
|
||||
"/Applications/Signal.app"
|
||||
"/Applications/Proton Mail.app"
|
||||
# "/Applications/Proton Pass.app"
|
||||
# "/System/Applications/Mail.app"
|
||||
"/Applications/1Password.app"
|
||||
"/Applications/Figma.app"
|
||||
"/Applications/Notion.app"
|
||||
# "/Applications/Notion Calendar.app"
|
||||
"${pkgs.utm}/Applications/UTM.app"
|
||||
"/Applications/Spotify.app"
|
||||
"${pkgs.ghostty-bin}/Applications/Ghostty.app"
|
||||
"/Applications/Visual Studio Code - Insiders.app"
|
||||
"/Applications/Zed.app"
|
||||
"/System/Applications/System Settings.app"
|
||||
];
|
||||
mru-spaces = false;
|
||||
tilesize = 48;
|
||||
orientation = "bottom";
|
||||
};
|
||||
}
|
||||
14
hosts/machine/kanade/modules/mac/keyboard.nix
Normal file
14
hosts/machine/kanade/modules/mac/keyboard.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
system.keyboard.enableKeyMapping = true;
|
||||
|
||||
system.defaults.NSGlobalDomain = {
|
||||
ApplePressAndHoldEnabled = false;
|
||||
InitialKeyRepeat = 15;
|
||||
KeyRepeat = 2;
|
||||
NSAutomaticCapitalizationEnabled = false;
|
||||
NSAutomaticDashSubstitutionEnabled = false;
|
||||
NSAutomaticPeriodSubstitutionEnabled = false;
|
||||
NSAutomaticQuoteSubstitutionEnabled = false;
|
||||
NSAutomaticSpellingCorrectionEnabled = false;
|
||||
};
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue