wow
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
bbac123a8d
144 changed files with 7059 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";
|
||||
}
|
||||
57
hosts/machine/ena/home/config/shell.nix
Normal file
57
hosts/machine/ena/home/config/shell.nix
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
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";
|
||||
|
||||
# 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;
|
||||
};
|
||||
}
|
||||
92
hosts/machine/kanade/modules/mac/preferences.nix
Normal file
92
hosts/machine/kanade/modules/mac/preferences.nix
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
# sudo_local is managed as a regular file by touch-id.nix because macOS 26
|
||||
# rejects nix-darwin's symlink-based /etc/pam.d management.
|
||||
security.pam.services.sudo_local.enable = false;
|
||||
|
||||
networking = {
|
||||
hostName = "kanade";
|
||||
computerName = "kanade";
|
||||
localHostName = "kanade";
|
||||
};
|
||||
|
||||
time.timeZone = "Asia/Seoul";
|
||||
|
||||
# Keep the terminal font declared in the Ghostty Home Manager module available
|
||||
# to native macOS applications as well.
|
||||
fonts.packages = [ pkgs.nerd-fonts.jetbrains-mono ];
|
||||
|
||||
system.defaults = {
|
||||
NSGlobalDomain = {
|
||||
AppleICUForce24HourTime = true;
|
||||
AppleMeasurementUnits = "Centimeters";
|
||||
AppleTemperatureUnit = "Celsius";
|
||||
|
||||
AppleInterfaceStyleSwitchesAutomatically = false;
|
||||
AppleInterfaceStyle = null;
|
||||
|
||||
NSAutomaticCapitalizationEnabled = false;
|
||||
NSAutomaticDashSubstitutionEnabled = false;
|
||||
NSAutomaticPeriodSubstitutionEnabled = false;
|
||||
NSAutomaticQuoteSubstitutionEnabled = false;
|
||||
NSAutomaticSpellingCorrectionEnabled = false;
|
||||
|
||||
AppleShowAllExtensions = true;
|
||||
AppleShowAllFiles = true;
|
||||
NSNavPanelExpandedStateForSaveMode = true;
|
||||
NSNavPanelExpandedStateForSaveMode2 = true;
|
||||
"com.apple.sound.beep.feedback" = 0;
|
||||
};
|
||||
|
||||
SoftwareUpdate = {
|
||||
AutomaticallyInstallMacOSUpdates = false;
|
||||
};
|
||||
|
||||
finder = {
|
||||
AppleShowAllExtensions = true;
|
||||
FXEnableExtensionChangeWarning = false;
|
||||
FXDefaultSearchScope = "SCcf";
|
||||
FXRemoveOldTrashItems = true;
|
||||
ShowPathbar = true;
|
||||
ShowStatusBar = true;
|
||||
# _FXShowPosixPathInTitle = true;
|
||||
};
|
||||
|
||||
menuExtraClock = {
|
||||
ShowAMPM = false;
|
||||
ShowDate = 1;
|
||||
ShowSeconds = false;
|
||||
Show24Hour = true;
|
||||
};
|
||||
|
||||
trackpad = {
|
||||
Clicking = true;
|
||||
TrackpadRightClick = true;
|
||||
TrackpadThreeFingerDrag = true;
|
||||
};
|
||||
|
||||
loginwindow.GuestEnabled = false;
|
||||
|
||||
CustomUserPreferences = {
|
||||
"com.apple.AdLib" = {
|
||||
allowApplePersonalizedAdvertising = false;
|
||||
};
|
||||
"com.apple.controlcenter" = {
|
||||
BatteryShowPercentage = true;
|
||||
};
|
||||
"com.apple.desktopservices" = {
|
||||
DSDontWriteNetworkStores = true;
|
||||
DSDontWriteUSBStores = true;
|
||||
};
|
||||
"com.apple.finder"._FXSortFoldersFirst = true;
|
||||
"com.apple.screensaver" = {
|
||||
askForPassword = 1;
|
||||
askForPasswordDelay = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
system.activationScripts.postActivation.text = ''
|
||||
/System/Library/PrivateFrameworks/SystemAdministration.framework/Resources/activateSettings -u
|
||||
'';
|
||||
}
|
||||
12
hosts/machine/kanade/modules/mac/touch-id.nix
Normal file
12
hosts/machine/kanade/modules/mac/touch-id.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
sudoLocal = pkgs.writeText "sudo_local" ''
|
||||
# Managed by nix-darwin: use Touch ID for sudo with password fallback.
|
||||
auth sufficient pam_tid.so
|
||||
'';
|
||||
in
|
||||
{
|
||||
system.activationScripts.postActivation.text = ''
|
||||
/usr/bin/install -m 0444 "${sudoLocal}" /etc/pam.d/sudo_local
|
||||
'';
|
||||
}
|
||||
42
hosts/machine/kanade/modules/mac/wallpaper.nix
Normal file
42
hosts/machine/kanade/modules/mac/wallpaper.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
wallpaper = "${inputs.self}/assets/wallpaper/wallpaper1.jpg";
|
||||
setWallpaperScript = pkgs.writeShellScriptBin "set-wallpaper-script" ''
|
||||
set -eu
|
||||
|
||||
# System Events runs in the logged-in Aqua session and updates every Space.
|
||||
# Retry because launch agents can start before the desktop is fully ready.
|
||||
for attempt in {1..12}; do
|
||||
if /usr/bin/osascript <<'APPLESCRIPT'
|
||||
tell application "System Events"
|
||||
tell every desktop
|
||||
set picture to "${wallpaper}"
|
||||
end tell
|
||||
end tell
|
||||
APPLESCRIPT
|
||||
then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
/bin/sleep 5
|
||||
done
|
||||
|
||||
exit 1
|
||||
'';
|
||||
in
|
||||
{
|
||||
environment.systemPackages = [ setWallpaperScript ];
|
||||
|
||||
launchd.user.agents.set-wallpaper = {
|
||||
command = "${setWallpaperScript}/bin/set-wallpaper-script";
|
||||
serviceConfig = {
|
||||
RunAtLoad = true;
|
||||
ProcessType = "Interactive";
|
||||
LimitLoadToSessionType = "Aqua";
|
||||
};
|
||||
};
|
||||
}
|
||||
37
hosts/machine/kanade/modules/nix.nix
Normal file
37
hosts/machine/kanade/modules/nix.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
{ ... }:
|
||||
{
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
nix.settings = {
|
||||
sandbox = "relaxed";
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
# Optimising during every build can race on Darwin. Run it separately instead.
|
||||
auto-optimise-store = false;
|
||||
trusted-users = [
|
||||
"imnyang"
|
||||
];
|
||||
substituters = [
|
||||
"https://cache.mizuki.guru"
|
||||
"https://nix.mizuki.my/public"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"cache.mizuki.guru-1:EbUC9b0ryD7BJKqfT8fl4GoS2ojLV+hI9fW1al5Whp0="
|
||||
"public:SnHrtrxbCPcZujbJdgsKFeObTfRKQl5KhrI+LljtZUE="
|
||||
];
|
||||
};
|
||||
|
||||
nix.optimise.automatic = true;
|
||||
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
interval = {
|
||||
Weekday = 0;
|
||||
Hour = 3;
|
||||
Minute = 15;
|
||||
};
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
}
|
||||
13
hosts/machine/kanade/modules/packages.nix
Normal file
13
hosts/machine/kanade/modules/packages.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Recovery and bootstrap tools
|
||||
curl
|
||||
wget
|
||||
vim
|
||||
|
||||
# Nix tooling
|
||||
nixd
|
||||
nil
|
||||
];
|
||||
}
|
||||
15
hosts/machine/kanade/modules/user.nix
Normal file
15
hosts/machine/kanade/modules/user.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
system.primaryUser = "imnyang";
|
||||
|
||||
users.users.imnyang = {
|
||||
name = "imnyang";
|
||||
home = "/Users/imnyang";
|
||||
shell = pkgs.fish;
|
||||
};
|
||||
|
||||
environment.shells = [ pkgs.fish ];
|
||||
|
||||
programs.fish.enable = true;
|
||||
programs.zsh.enable = true;
|
||||
}
|
||||
64
hosts/machine/mafuyu/configuration.nix
Normal file
64
hosts/machine/mafuyu/configuration.nix
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
{ 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/packages.nix"
|
||||
"${inputs.self}/modules/nixos/features/plasma.nix"
|
||||
"${inputs.self}/modules/nixos/features/sound.nix"
|
||||
"${inputs.self}/modules/nixos/features/catppuccin.nix"
|
||||
"${inputs.self}/modules/nixos/features/ssh.nix"
|
||||
"${inputs.self}/modules/nixos/features/steam.nix"
|
||||
"${inputs.self}/modules/nixos/features/sunshine.nix"
|
||||
];
|
||||
|
||||
networking = {
|
||||
hostName = "mafuyu";
|
||||
networkmanager.enable = true;
|
||||
firewall.enable = false;
|
||||
};
|
||||
|
||||
services.caddy = {
|
||||
enable = true;
|
||||
virtualHosts."http://broadcast.epc.mizuki.arpa".extraConfig = ''
|
||||
@preflight method OPTIONS
|
||||
|
||||
header {
|
||||
Access-Control-Allow-Origin *
|
||||
Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS"
|
||||
Access-Control-Allow-Headers *
|
||||
}
|
||||
|
||||
respond @preflight "" 204
|
||||
|
||||
reverse_proxy 127.0.0.1:6769
|
||||
'';
|
||||
virtualHosts."http://broadcast.epc.mizuki.arpa:8027".extraConfig = ''
|
||||
@preflight method OPTIONS
|
||||
|
||||
header {
|
||||
Access-Control-Allow-Origin *
|
||||
Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS"
|
||||
Access-Control-Allow-Headers *
|
||||
}
|
||||
|
||||
respond @preflight "" 204
|
||||
|
||||
reverse_proxy 127.0.0.1:1108
|
||||
'';
|
||||
};
|
||||
|
||||
services.displayManager = {
|
||||
plasma-login-manager.enable = true;
|
||||
autoLogin.user = "imnyang";
|
||||
};
|
||||
|
||||
users.users.imnyang.openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOHP3Z+AYrRh9f8TYyqChKfeyNm3lOe0F75AwRHTTaxD imnyang@mizuki"
|
||||
];
|
||||
|
||||
system.stateVersion = "26.05";
|
||||
}
|
||||
37
hosts/machine/mafuyu/default.nix
Normal file
37
hosts/machine/mafuyu/default.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
inputs,
|
||||
overlays,
|
||||
}:
|
||||
let
|
||||
inherit (inputs)
|
||||
nixpkgs
|
||||
home-manager
|
||||
catppuccin
|
||||
plasma-manager
|
||||
spicetify-nix
|
||||
;
|
||||
in
|
||||
nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./hardware-configuration.nix
|
||||
./configuration.nix
|
||||
catppuccin.nixosModules.catppuccin
|
||||
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
|
||||
];
|
||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||
home-manager.users.imnyang = import ./home;
|
||||
}
|
||||
];
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
inherit overlays;
|
||||
};
|
||||
}
|
||||
79
hosts/machine/mafuyu/hardware-configuration.nix
Normal file
79
hosts/machine/mafuyu/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
# 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"
|
||||
"ahci"
|
||||
"usb_storage"
|
||||
"usbhid"
|
||||
"uas"
|
||||
"sd_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
boot.kernelParams = [
|
||||
# 가상 디스플레이(해상도) 1개 생성
|
||||
"video=virtual:1920x1080@60"
|
||||
];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/223889e0-caa4-4dc5-a7b3-e5260230896f";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/7233-6B3C";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0077"
|
||||
"dmask=0077"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = true;
|
||||
powerManagement.finegrained = false; # 이슈 있으면 비활하기
|
||||
|
||||
open = false;
|
||||
nvidiaSettings = true;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
libva-vdpau-driver
|
||||
libvdpau-va-gl
|
||||
vulkan-loader
|
||||
nvidia-vaapi-driver
|
||||
vulkan-validation-layers
|
||||
vulkan-extension-layer
|
||||
];
|
||||
extraPackages32 = with pkgs.pkgsi686Linux; [
|
||||
libva-vdpau-driver
|
||||
libvdpau-va-gl
|
||||
];
|
||||
};
|
||||
}
|
||||
16
hosts/machine/mafuyu/home/config/plasma.nix
Normal file
16
hosts/machine/mafuyu/home/config/plasma.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{ inputs, ... }:
|
||||
let
|
||||
assets = "${inputs.self}/assets";
|
||||
in
|
||||
{
|
||||
imports = [ "${inputs.self}/modules/home/plasma.nix" ];
|
||||
services.kdeconnect.enable = true;
|
||||
|
||||
programs.plasma.workspace.cursor = {
|
||||
theme = "pjsk-cursor-n25-mafuyu-ani";
|
||||
};
|
||||
|
||||
programs.plasma.workspace.wallpaper = "${assets}/wallpaper/wallpaper3.png";
|
||||
|
||||
programs.plasma.kscreenlocker.appearance.wallpaper = "${assets}/wallpaper/wallpaper3.png";
|
||||
}
|
||||
54
hosts/machine/mafuyu/home/config/shell.nix
Normal file
54
hosts/machine/mafuyu/home/config/shell.nix
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
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";
|
||||
|
||||
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 = " ⚠️";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
44
hosts/machine/mafuyu/home/default.nix
Normal file
44
hosts/machine/mafuyu/home/default.nix
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
xdg.enable = true;
|
||||
|
||||
home.stateVersion = "25.05";
|
||||
home.username = "imnyang";
|
||||
home.homeDirectory = "/home/imnyang";
|
||||
home.packages = import ./packages.nix { inherit pkgs inputs; };
|
||||
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
VISUAL = "nvim";
|
||||
};
|
||||
|
||||
xdg.configFile."fontconfig/conf.d/10-hm-fonts.conf".force = true;
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = "imnyang";
|
||||
email = "imnyang@pm.me";
|
||||
};
|
||||
commit.gpgsign = false;
|
||||
init.defaultBranch = "main";
|
||||
pull.rebase = false;
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
"${inputs.self}/modules/home/firefox.nix"
|
||||
"${inputs.self}/modules/home/neovim.nix"
|
||||
"${inputs.self}/modules/home/ghostty.nix"
|
||||
"${inputs.self}/modules/home/zed.nix"
|
||||
"${inputs.self}/modules/home/discord/linux.nix"
|
||||
./config/shell.nix
|
||||
./config/plasma.nix
|
||||
];
|
||||
}
|
||||
7
hosts/machine/mafuyu/home/packages.nix
Normal file
7
hosts/machine/mafuyu/home/packages.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ pkgs, inputs }:
|
||||
with pkgs;
|
||||
[
|
||||
pjsk-cursor.n25.ani
|
||||
codex
|
||||
inputs.codex-app.packages.${stdenv.buildPlatform.system}.codex-desktop
|
||||
]
|
||||
55
hosts/machine/mizuki/configuration.nix
Normal file
55
hosts/machine/mizuki/configuration.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
{ 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/packages.nix"
|
||||
"${inputs.self}/modules/nixos/features/plasma.nix"
|
||||
"${inputs.self}/modules/nixos/features/sound.nix"
|
||||
"${inputs.self}/modules/nixos/features/catppuccin.nix"
|
||||
"${inputs.self}/modules/nixos/features/figma-agent.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/ssh.nix"
|
||||
"${inputs.self}/modules/nixos/features/virtualisation.nix"
|
||||
"${inputs.self}/modules/nixos/features/steam.nix"
|
||||
"${inputs.self}/modules/nixos/features/sunshine.nix"
|
||||
];
|
||||
|
||||
networking = {
|
||||
hostName = "mizuki";
|
||||
networkmanager.enable = true;
|
||||
firewall.enable = false;
|
||||
interfaces = {
|
||||
enp3s0 = {
|
||||
wakeOnLan.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.caddy = {
|
||||
enable = true;
|
||||
virtualHosts."http://broadcast.epc.mizuki.arpa".extraConfig = ''
|
||||
@preflight method OPTIONS
|
||||
|
||||
header {
|
||||
Access-Control-Allow-Origin *
|
||||
Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS"
|
||||
Access-Control-Allow-Headers *
|
||||
}
|
||||
|
||||
respond @preflight "" 204
|
||||
|
||||
reverse_proxy 127.0.0.1:6769
|
||||
'';
|
||||
};
|
||||
|
||||
services.printing.enable = true;
|
||||
services.flatpak.enable = true;
|
||||
|
||||
system.stateVersion = "26.05";
|
||||
}
|
||||
41
hosts/machine/mizuki/default.nix
Normal file
41
hosts/machine/mizuki/default.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
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
|
||||
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;
|
||||
};
|
||||
}
|
||||
91
hosts/machine/mizuki/hardware-configuration.nix
Normal file
91
hosts/machine/mizuki/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
# 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"
|
||||
"ahci"
|
||||
"nvme"
|
||||
"usbhid"
|
||||
"sd_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.kernelParams = [ "nvidia.NV_temporaryFilePath=/var/tmp" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
boot.extraModprobeConfig = ''
|
||||
options nvidia NVreg_PreserveVideoMemoryAllocations=1
|
||||
'';
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/mapper/luks-f103ab07-586f-4bfe-b8e9-cdee9d504a0a";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-f103ab07-586f-4bfe-b8e9-cdee9d504a0a".device = "/dev/disk/by-uuid/f103ab07-586f-4bfe-b8e9-cdee9d504a0a";
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/C9F2-8CD3";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
fileSystems."/data" = {
|
||||
device = "/dev/disk/by-uuid/0fa840c5-07ad-46b5-a0e8-0ed958d1bb7a";
|
||||
fsType = "ext4";
|
||||
options = [
|
||||
"defaults"
|
||||
"nofail"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{
|
||||
device = "/swapfile";
|
||||
size = 32 * 1024;
|
||||
}
|
||||
];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = true;
|
||||
powerManagement.finegrained = false; # 이슈 있으면 비활하기
|
||||
|
||||
open = false;
|
||||
nvidiaSettings = true;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
libva-vdpau-driver
|
||||
libvdpau-va-gl
|
||||
vulkan-loader
|
||||
nvidia-vaapi-driver
|
||||
vulkan-validation-layers
|
||||
vulkan-extension-layer
|
||||
];
|
||||
extraPackages32 = with pkgs.pkgsi686Linux; [
|
||||
libva-vdpau-driver
|
||||
libvdpau-va-gl
|
||||
];
|
||||
};
|
||||
}
|
||||
16
hosts/machine/mizuki/home/config/plasma.nix
Normal file
16
hosts/machine/mizuki/home/config/plasma.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{ inputs, ... }:
|
||||
let
|
||||
assets = "${inputs.self}/assets";
|
||||
in
|
||||
{
|
||||
imports = [ "${inputs.self}/modules/home/plasma.nix" ];
|
||||
services.kdeconnect.enable = true;
|
||||
|
||||
programs.plasma.workspace.cursor = {
|
||||
theme = "pjsk-cursor-n25-mizuki-ani";
|
||||
};
|
||||
|
||||
programs.plasma.workspace.wallpaper = "${assets}/wallpaper/wallpaper1.jpg";
|
||||
|
||||
programs.plasma.kscreenlocker.appearance.wallpaper = "${assets}/wallpaper/wallpaper3.png";
|
||||
}
|
||||
54
hosts/machine/mizuki/home/config/shell.nix
Normal file
54
hosts/machine/mizuki/home/config/shell.nix
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
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";
|
||||
|
||||
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 = " ⚠️";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
61
hosts/machine/mizuki/home/default.nix
Normal file
61
hosts/machine/mizuki/home/default.nix
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
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 = "nvim";
|
||||
VISUAL = "nvim";
|
||||
};
|
||||
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
matchBlocks = {
|
||||
"*" = {
|
||||
forwardAgent = false;
|
||||
identityAgent = "~/.1password/agent.sock";
|
||||
setEnv = {
|
||||
TERM = "xterm-256color";
|
||||
};
|
||||
extraOptions = {
|
||||
ServerAliveInterval = "0";
|
||||
ServerAliveCountMax = "3";
|
||||
Compression = "no";
|
||||
AddKeysToAgent = "no";
|
||||
HashKnownHosts = "no";
|
||||
UserKnownHostsFile = "~/.ssh/known_hosts";
|
||||
ControlMaster = "no";
|
||||
ControlPath = "~/.ssh/master-%r@%n:%p";
|
||||
ControlPersist = "no";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile."fontconfig/conf.d/10-hm-fonts.conf".force = true;
|
||||
|
||||
imports = [
|
||||
"${inputs.self}/modules/home/git.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/vicinae.nix"
|
||||
./config/shell.nix
|
||||
./config/plasma.nix
|
||||
"${inputs.self}/modules/home/discord/linux.nix"
|
||||
"${inputs.self}/modules/home/obs-studio.nix"
|
||||
"${inputs.self}/modules/home/vscode.nix"
|
||||
"${inputs.self}/modules/home/ciscopackettracer.nix"
|
||||
];
|
||||
}
|
||||
16
hosts/machine/mizuki/home/packages.nix
Normal file
16
hosts/machine/mizuki/home/packages.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{ pkgs, inputs }:
|
||||
with pkgs;
|
||||
(import ../../../../modules/home/packages.nix { inherit pkgs inputs; })
|
||||
++ [
|
||||
# tail-tray
|
||||
kdePackages.kcolorchooser
|
||||
fastfetch
|
||||
android-studio
|
||||
lmstudio
|
||||
|
||||
# dotnet-runtime
|
||||
dotnet-sdk
|
||||
jetbrains.rider
|
||||
# waterfox-bin
|
||||
# inputs.waterfox.packages.${pkgs.system}.waterfox
|
||||
]
|
||||
21
hosts/machine/ribbon/configuration.nix
Normal file
21
hosts/machine/ribbon/configuration.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
imports = [
|
||||
"${inputs.self}/modules/nixos/base"
|
||||
"${inputs.self}/modules/nixos/features/ssh.nix"
|
||||
];
|
||||
|
||||
wsl.enable = true;
|
||||
wsl.defaultUser = "imnyang";
|
||||
|
||||
networking = {
|
||||
hostName = "ribbon";
|
||||
firewall.enable = false;
|
||||
};
|
||||
|
||||
users.users.imnyang.openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOHP3Z+AYrRh9f8TYyqChKfeyNm3lOe0F75AwRHTTaxD imnyang@mizuki"
|
||||
];
|
||||
|
||||
system.stateVersion = "25.11";
|
||||
}
|
||||
31
hosts/machine/ribbon/default.nix
Normal file
31
hosts/machine/ribbon/default.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
inputs,
|
||||
overlays,
|
||||
}:
|
||||
let
|
||||
inherit (inputs)
|
||||
nixpkgs
|
||||
nixos-wsl
|
||||
home-manager
|
||||
;
|
||||
in
|
||||
nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
nixos-wsl.nixosModules.default
|
||||
./configuration.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.backupFileExtension = "backup";
|
||||
home-manager.sharedModules = [];
|
||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||
home-manager.users.imnyang = import ./home/home.nix;
|
||||
}
|
||||
];
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
inherit overlays;
|
||||
};
|
||||
}
|
||||
57
hosts/machine/ribbon/home/config/shell.nix
Normal file
57
hosts/machine/ribbon/home/config/shell.nix
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
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";
|
||||
|
||||
# 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 = "$username@$hostname:$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 = "blue";
|
||||
format = "[$path]($style)";
|
||||
truncation_length = 3;
|
||||
};
|
||||
character = {
|
||||
success_symbol = " >";
|
||||
error_symbol = " >";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
35
hosts/machine/ribbon/home/home.nix
Normal file
35
hosts/machine/ribbon/home/home.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.stateVersion = "25.11";
|
||||
home.username = "imnyang";
|
||||
home.homeDirectory = "/home/imnyang";
|
||||
home.packages = import ./packages.nix { inherit pkgs inputs; };
|
||||
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
VISUAL = "nvim";
|
||||
};
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = "imnyang";
|
||||
email = "imnyang@pm.me";
|
||||
};
|
||||
commit.gpgsign = false;
|
||||
init.defaultBranch = "main";
|
||||
pull.rebase = false;
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
"${inputs.self}/modules/home/neovim.nix"
|
||||
./config/shell.nix
|
||||
];
|
||||
}
|
||||
10
hosts/machine/ribbon/home/packages.nix
Normal file
10
hosts/machine/ribbon/home/packages.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ pkgs, inputs }:
|
||||
let
|
||||
nr = import "${inputs.self}/modules/nixos/features/packages/nr.nix" { inherit pkgs; };
|
||||
nrr = import "${inputs.self}/modules/nixos/features/packages/nrr.nix" { inherit pkgs; };
|
||||
in
|
||||
with pkgs;
|
||||
[
|
||||
nr
|
||||
nrr
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue