Merge pull request #33 from ryan4yin/modular-home

feat: Modular home
This commit is contained in:
Ryan Yin
2023-12-25 00:10:56 +08:00
committed by GitHub
90 changed files with 289 additions and 198 deletions

View File

@@ -14,7 +14,7 @@ i3:
nixos-rebuild switch --flake .#ai_i3 --use-remote-sudo
s-i3:
nixos-rebuild switch --flake .#shoekei_i3 --use-remote-sudo
nixos-rebuild switch --flake .#shoukei_i3 --use-remote-sudo
hypr:
nixos-rebuild switch --flake .#ai_hyprland --use-remote-sudo

View File

@@ -17,7 +17,7 @@ return {
{ import = "astrocommunity.colorscheme.catppuccin" },
-- Highly experimental plugin that completely replaces
-- the UI for messages, cmdline and the popupmenu.
{ import = "astrocommunity.utility.noice-nvim" },
-- { import = "astrocommunity.utility.noice-nvim" },
-- Fully featured & enhanced replacement for copilot.vim
-- <Tab> work with both auto completion in cmp and copilot
{ import = "astrocommunity.media.vim-wakatime" },
@@ -77,7 +77,7 @@ return {
-- lazy-loading on events
event = { "InsertLeave", "TextChanged" },
opts = function(_, opts)
opts.prompt_style = "notify" -- or stdout
opts.prompt_style = "stdout" -- notify or stdout
end,
},

View File

@@ -36,9 +36,10 @@
vimAlias = true;
# currently we use lazy.nvim as neovim's package manager, so comment this one.
# plugins = with pkgs.vimPlugins; [
# # search all the plugins using https://search.nixos.org/packages
# ];
plugins = with pkgs.vimPlugins; [
# search all the plugins using https://search.nixos.org/packages
telescope-fzf-native-nvim
];
# Extra packages only available to nvim(won't pollute the global home environment)
extraPackages = with pkgs;

View File

@@ -1,4 +1,4 @@
{pkgs, ...}: {
_: {
programs.ssh = {
enable = true;
@@ -23,13 +23,6 @@
# required to prevent sending default identity files first.
IdentitiesOnly yes
Host github.com
# github is controlled by gluttony~
IdentityFile ~/.ssh/gluttony
# Specifies that ssh should only use the identity file explicitly configured above
# required to prevent sending default identity files first.
IdentitiesOnly yes
Host gtr5
HostName 192.168.5.172
Port 22

View File

@@ -16,38 +16,4 @@
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
'';
};
programs.ssh = {
enable = true;
# all my ssh private key are generated by `ssh-keygen -t ed25519 -C "ryan@nickname"`
# the config's format:
# Host — given the pattern used to match against the host name given on the command line.
# HostName — specify nickname or abbreviation for host
# IdentityFile — the location of your SSH key authentication file for the account.
# format in details:
# https://www.ssh.com/academy/ssh/config
extraConfig = ''
# a private key that is used during authentication will be added to ssh-agent if it is running
AddKeysToAgent yes
Host 192.168.*
# allow to securely use local SSH agent to authenticate on the remote machine.
# It has the same effect as adding cli option `ssh -A user@host`
ForwardAgent yes
# romantic holds my homelab~
IdentityFile ~/.ssh/romantic
# Specifies that ssh should only use the identity file explicitly configured above
# required to prevent sending default identity files first.
IdentitiesOnly yes
Host github.com
Hostname github.com
# github is controlled by gluttony~
IdentityFile ~/.ssh/harmonica
# Specifies that ssh should only use the identity file explicitly configured above
# required to prevent sending default identity files first.
IdentitiesOnly yes
'';
};
}

View File

@@ -7,8 +7,8 @@ in rec {
home.homeDirectory = "/home/${username}";
# add environment variables
systemd.user.sessionVariables = {
# environment variables that always set at login
home.sessionVariables = {
# clean up ~
LESSHISTFILE = cache + "/less/history";
LESSKEY = c + "/less/lesskey";
@@ -25,6 +25,4 @@ in rec {
# enable scrolling in git diff
DELTA_PAGER = "less -R";
};
home.sessionVariables = systemd.user.sessionVariables;
}

View File

@@ -11,7 +11,7 @@
gtk.enable = true;
x11.enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic";
name = "Bibata-Modern-Ice";
size = 24;
};

View File

@@ -1,21 +1,3 @@
## Hyprland configuration file
# color-scheme: cappuccin-mocha
source=~/.config/hypr/themes/mocha.conf
env = _JAVA_AWT_WM_NONREPARENTING,1
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
# fix https://github.com/hyprwm/Hyprland/issues/1520
env = WLR_NO_HARDWARE_CURSORS,1
#-- Output ----------------------------------------------------
# Configure your Display resolution, offset, scale and Monitors here, use `hyprctl monitors` to get the info.
# format:
# monitor=name,resolution,position,scale
monitor=DP-2,3840x2160@144,0x0,1.6
workspace=DP-2,1
#-- Input ----------------------------------------------------
# Configure mouse and touchpad here.
input {
@@ -199,10 +181,9 @@ bind=SUPER,mouse_up,workspace,e-1
#-- Startup ----------------------------------------------------
exec-once=~/.config/hypr/scripts/startup
#-- Fcitx5 input method ----------------------------------------------------
# -- Fcitx5 input method
windowrule=pseudo,fcitx # enable this will make fcitx5 works, but fcitx5-configtool will not work!
exec-once=cp ~/.config/fcitx5/profile-bak ~/.config/fcitx5/profile # restore fcitx5 profile manged by nixos
exec-once=cp ~/.config/fcitx5/profile-bak ~/.config/fcitx5/profile # restore fcitx5 profile managed by nixos
exec-once=fcitx5 -d --replace # start fcitx5 daemon
bind=ALT,E,exec,pkill fcitx5 -9;sleep 1;fcitx5 -d --replace; sleep 1;fcitx5-remote -r
@@ -211,22 +192,3 @@ windowrulev2 = rounding 0, xwayland:1, floating:1
windowrulev2 = center, class:^(.*jetbrains.*)$, title:^(Confirm Exit|Open Project|win424|win201|splash)$
windowrulev2 = size 640 400, class:^(.*jetbrains.*)$, title:^(splash)$
# -- Fix input method in vscode
exec-once = hyprctl setcursor "Bibata-Modern-Ice" 24
# 效果是 wayland 原生窗口缩放完全正常
# xwayland 窗口先渲染到 200% 再降到 hyprland config 里 monitor 设置的值,看上去和原生没啥区别
# 相比较一开始的方案输入法字体大小也正确了.唯一有点问题的可能是 xwayland 窗口下的鼠标指针大小不对
exec-once = xprop -root -f _XWAYLAND_GLOBAL_OUTPUT_SCALE 32c -set _XWAYLAND_GLOBAL_OUTPUT_SCALE 2
-- Fix HiDPI - xwayland
# change monitor to high resolution, the last argument is the scale factor
monitor=,highres,auto,2
# unscale XWayland
xwayland {
force_zero_scaling = true
}
# toolkit-specific scale
env = GDK_SCALE,2
env = XCURSOR_SIZE,32

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@@ -10,21 +10,38 @@ with lib; let
in {
imports = [
anyrun.homeManagerModules.default
./options
];
options.modules.desktop.hyprland = {
enable = mkEnableOption "hyprland compositor";
settings = lib.mkOption {
type = with lib.types; let
valueType =
nullOr (oneOf [
bool
int
float
str
path
(attrsOf valueType)
(listOf valueType)
])
// {
description = "Hyprland configuration value";
};
in
valueType;
default = {};
};
};
config = mkIf cfg.enable (
mkMerge
(map
(path: import path args)
[
./hyprland.nix
./packages.nix
./anyrun.nix
./wayland-apps.nix
])
mkMerge ([
{
wayland.windowManager.hyprland.settings = cfg.settings;
}
]
++ (import ./values args))
);
}

View File

@@ -0,0 +1,3 @@
{mylib, ...}: {
imports = mylib.scanPaths ./.;
}

View File

@@ -0,0 +1,24 @@
{
config,
lib,
...
}:
with lib; let
cfg = config.modules.desktop.hyprland;
in {
options.modules.desktop.hyprland = {
nvidia = mkEnableOption "whether nvidia GPU is used";
};
config = mkIf (cfg.enable && cfg.nvidia) {
wayland.windowManager.hyprland.settings.env = [
# for hyprland with nvidia gpu, ref https://wiki.hyprland.org/Nvidia/
"LIBVA_DRIVER_NAME,nvidia"
"XDG_SESSION_TYPE,wayland"
"GBM_BACKEND,nvidia-drm"
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
# fix https://github.com/hyprwm/Hyprland/issues/1520
"WLR_NO_HARDWARE_CURSORS,1"
];
};
}

View File

@@ -0,0 +1,4 @@
{mylib, ...} @ args:
map
(path: import path args)
(mylib.scanPaths ./.)

View File

@@ -11,9 +11,19 @@
# they are all depending on hyprland/i3's user graphical-session
wayland.windowManager.hyprland = {
enable = true;
settings = {
source = "${nur-ryan4yin.packages.${pkgs.system}.catppuccin-hyprland}/themes/mocha.conf";
env = [
"NIXOS_OZONE_WL,1" # for any ozone-based browser & electron apps to run on wayland
"MOZ_ENABLE_WAYLAND,1" # for firefox to run on wayland
"MOZ_WEBRENDER,1"
# misc
"_JAVA_AWT_WM_NONREPARENTING,1"
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
];
};
package = hyprland.packages.${pkgs.system}.hyprland;
settings = lib.mkForce {};
extraConfig = builtins.readFile ./hypr-conf/hyprland.conf;
extraConfig = builtins.readFile ../conf/hyprland.conf;
# gammastep/wallpaper-switcher need this to be enabled.
systemd.enable = true;
};
@@ -28,47 +38,29 @@
# hyprland configs, based on https://github.com/notwidow/hyprland
xdg.configFile = {
"hypr/mako" = {
source = ./hypr-conf/mako;
source = ../conf/mako;
recursive = true;
};
"hypr/scripts" = {
source = ./hypr-conf/scripts;
source = ../conf/scripts;
recursive = true;
};
"hypr/waybar" = {
source = ./hypr-conf/waybar;
source = ../conf/waybar;
recursive = true;
};
"hypr/wlogout" = {
source = ./hypr-conf/wlogout;
recursive = true;
};
"hypr/themes" = {
source = "${nur-ryan4yin.packages.${pkgs.system}.catppuccin-hyprland}/themes";
source = ../conf/wlogout;
recursive = true;
};
# music player - mpd
"mpd" = {
source = ./mpd;
source = ../conf/mpd;
recursive = true;
};
};
# allow fontconfig to discover fonts and configurations installed through home.packages
fonts.fontconfig.enable = true;
systemd.user.sessionVariables = {
"NIXOS_OZONE_WL" = "1"; # for any ozone-based browser & electron apps to run on wayland
"MOZ_ENABLE_WAYLAND" = "1"; # for firefox to run on wayland
"MOZ_WEBRENDER" = "1";
# for hyprland with nvidia gpu, ref https://wiki.hyprland.org/Nvidia/
"LIBVA_DRIVER_NAME" = "nvidia";
"XDG_SESSION_TYPE" = "wayland";
"GBM_BACKEND" = "nvidia-drm";
"__GLX_VENDOR_LIBRARY_NAME" = "nvidia";
"WLR_NO_HARDWARE_CURSORS" = "1";
"WLR_EGL_NO_MODIFIRES" = "1";
};
}

View File

@@ -7,18 +7,15 @@
with lib; let
cfg = config.modules.desktop.i3;
in {
imports = [
./options
];
options.modules.desktop.i3 = {
enable = mkEnableOption "i3 window manager";
};
config = mkIf cfg.enable (
mkMerge
(map
(path: import path args)
[
./i3.nix
./packages.nix
./x11-apps.nix
])
mkMerge (import ./values args)
);
}

View File

@@ -0,0 +1,3 @@
{mylib, ...}: {
imports = mylib.scanPaths ./.;
}

View File

@@ -0,0 +1,27 @@
{
config,
lib,
...
}:
with lib; let
cfg = config.modules.desktop.i3;
in {
options.modules.desktop.i3 = {
nvidia = mkEnableOption "whether nvidia GPU is used";
};
config = mkIf (cfg.enable && cfg.nvidia) (
let
env = {
"LIBVA_DRIVER_NAME" = "nvidia";
"GBM_BACKEND" = "nvidia-drm";
"__GLX_VENDOR_LIBRARY_NAME" = "nvidia";
};
in {
# environment set for systemd's user session
systemd.user.sessionVariables = env;
# environment set at user login
home.sessionVariables = env;
}
);
}

View File

@@ -0,0 +1,4 @@
{mylib, ...} @ args:
map
(path: import path args)
(mylib.scanPaths ./.)

View File

@@ -9,7 +9,7 @@ _: {
enable = true;
windowManager.i3 = {
enable = true;
extraConfig = builtins.readFile ./i3-config;
extraConfig = builtins.readFile ../conf/i3-config;
};
# Path, relative to HOME, where Home Manager should write the X session script.
# and NixOS will use it to start xorg session when system boot up
@@ -17,20 +17,20 @@ _: {
};
xdg.configFile = {
"i3/i3blocks.conf".source = ./i3blocks.conf;
"i3/i3blocks.conf".source = ../conf/i3blocks.conf;
"i3/scripts" = {
source = ./scripts;
source = ../conf/scripts;
# copy the scripts directory recursively
recursive = true;
executable = true; # make all scripts executable
};
"i3/layouts" = {
source = ./layouts;
source = ../conf/layouts;
recursive = true;
};
# rofi is a application launcher and dmenu replacement
"rofi" = {
source = ./rofi-conf;
source = ../conf/rofi;
# copy the scripts directory recursively
recursive = true;
};
@@ -38,24 +38,18 @@ _: {
home.file = {
".local/bin/bright" = {
source = ./bin/bright;
source = ../bin/bright;
executable = true;
};
".local/bin/logout" = {
source = ./bin/logout;
source = ../bin/logout;
executable = true;
};
# xrandr - set primary screen
".screenlayout/monitor.sh".source = ./dual-monitor-4k-1080p.sh;
".screenlayout/monitor.sh".source = ../conf/dual-monitor-4k-1080p.sh;
};
# allow fontconfig to discover fonts and configurations installed through home.packages
fonts.fontconfig.enable = true;
systemd.user.sessionVariables = {
"LIBVA_DRIVER_NAME" = "nvidia";
"GBM_BACKEND" = "nvidia-drm";
"__GLX_VENDOR_LIBRARY_NAME" = "nvidia";
};
}

View File

@@ -10,6 +10,7 @@
picom # transparency and shadows
feh # set wallpaper
xcolor # color picker
xsel # for clipboard support in x11, required by tmux's clipboard support
acpi # battery information
arandr # screen layout manager

View File

@@ -1,7 +1,6 @@
{pkgs, ...}: {
home.packages = with pkgs; [
firefox
xsel # for clipboard support in x11, required by tmux's clipboard support
];
# TODO vscode & chrome both have wayland support, but they don't work with fcitx5, need to fix it.

View File

@@ -0,0 +1,30 @@
{
modules.desktop.hyprland = {
nvidia = false;
settings = {
# Configure your Display resolution, offset, scale and Monitors here, use `hyprctl monitors` to get the info.
# highres: get the best possible resolution
# auto: postition automatically
# 1.5: scale to 1.5 times
# bitdepth,10: enable 10 bit support
monitor = "eDP-1,highres,auto,1.5,bitdepth,10";
};
};
modules.desktop.i3 = {
nvidia = false;
};
programs.ssh = {
enable = true;
extraConfig = ''
Host github.com
Hostname github.com
# github is controlled by shoukei~
IdentityFile ~/.ssh/shoukei
# Specifies that ssh should only use the identity file explicitly configured above
# required to prevent sending default identity files first.
IdentitiesOnly yes
'';
};
}

View File

@@ -12,7 +12,8 @@
1. `nozomi`: Lichee Pi 4A, TH1520(4xC910@2.0G), 8GB RAM + 32G eMMC + 64G SD Card.
2. `yukina`: Lichee Pi 4A(Internal Test Version), TH1520(4xC910@2.0G), 8GB RAM + 8G eMMC + 128G SD Card.
3. `chiaya`: Milk-V Mars, JH7110(4xU74@1.5 GHz), 4G RAM + No eMMC + 64G SD Card.
4. `12kingdoms`: Currently only one aarch64 host
4. `12kingdoms`:
1. `shoukei`: NixOS
1. `suzu`: Orange Pi 5, RK3588s(4xA76 + 4xA55), GPU(4Cores, Mail-G610), NPU(6Tops@int8), 8G RAM + 256G SSD.

14
hosts/fern/home.nix Normal file
View File

@@ -0,0 +1,14 @@
_: {
programs.ssh = {
enable = true;
extraConfig = ''
Host github.com
Hostname github.com
# github is controlled by fern~
IdentityFile ~/.ssh/fern
# Specifies that ssh should only use the identity file explicitly configured above
# required to prevent sending default identity files first.
IdentitiesOnly yes
'';
};
}

14
hosts/harmonica/home.nix Normal file
View File

@@ -0,0 +1,14 @@
_: {
programs.ssh = {
enable = true;
extraConfig = ''
Host github.com
Hostname github.com
# github is controlled by harmonica~
IdentityFile ~/.ssh/harmonica
# Specifies that ssh should only use the identity file explicitly configured above
# required to prevent sending default identity files first.
IdentitiesOnly yes
'';
};
}

29
hosts/idols/ai/home.nix Normal file
View File

@@ -0,0 +1,29 @@
{
modules.desktop.hyprland = {
nvidia = true;
settings = {
# Configure your Display resolution, offset, scale and Monitors here, use `hyprctl monitors` to get the info.
# highres: get the best possible resolution
# auto: postition automatically
# 1.5: scale to 1.5 times
# bitdepth,10: enable 10 bit support
monitor = "DP-2,highres,auto,1.5,bitdepth,10";
};
};
modules.desktop.i3 = {
nvidia = true;
};
programs.ssh = {
enable = true;
extraConfig = ''
Host github.com
# github is controlled by gluttony~
IdentityFile ~/.ssh/gluttony
# Specifies that ssh should only use the identity file explicitly configured above
# required to prevent sending default identity files first.
IdentitiesOnly yes
'';
};
}

View File

@@ -0,0 +1,2 @@
{
}

View File

@@ -0,0 +1,2 @@
{
}

View File

@@ -0,0 +1,2 @@
{
}

View File

@@ -2,7 +2,7 @@
users.users.${username} = {
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDiipi59EnVbi6bK1bGrcbfEM263wgdNfbrt6VBC1rHx ryan@ai-idols"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII7PTkP3ixXTZlrJNSHnXgkmHNT+QslFi9wNYXOpVwGB ryan@harmonica"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMSfp/hvegbK04HykWvoY1EbDW+vXu1AlCjVivWE2ZeR ryan@shoukei"
];
};

View File

@@ -16,7 +16,7 @@ in {
ai_hyprland = nixosSystem (idol_ai_modules_hyprland // base_args);
# shoukei
shoukei_ie = nixosSystem (_12kingdoms_shoukei_modules_i3 // base_args);
shoukei_i3 = nixosSystem (_12kingdoms_shoukei_modules_i3 // base_args);
shoukei_hyprland = nixosSystem (_12kingdoms_shoukei_modules_hyprland // base_args);
# three virtual machines without desktop environment.

View File

@@ -1,5 +1,5 @@
let
_dekstop_bass_modules = {
desktop_base_modules = {
nixos-modules = [
../secrets/nixos.nix
../modules/nixos/desktop.nix
@@ -8,51 +8,36 @@ let
../home/linux/desktop.nix
];
};
desktop_i3_modules = {
nixos-modules =
[
{modules.desktop.xorg.enable = true;}
]
++ _dekstop_bass_modules.nixos-modules;
home-module.imports =
[
../home/linux/desktop.nix
{modules.desktop.i3.enable = true;}
]
++ _dekstop_bass_modules.home-module.imports;
};
desktop_hyprland_modules = {
nixos-modules =
[
{modules.desktop.wayland.enable = true;}
]
++ _dekstop_bass_modules.nixos-modules;
home-module.imports =
[
../home/linux/desktop.nix
{modules.desktop.hyprland.enable = true;}
]
++ _dekstop_bass_modules.home-module.imports;
};
in rec {
in {
# 星野 アイ, Hoshino Ai
idol_ai_modules_i3 = {
nixos-modules =
[
../hosts/idols/ai
{modules.desktop.xorg.enable = true;}
]
++ desktop_i3_modules.nixos-modules;
home-module = desktop_i3_modules.home-module;
++ desktop_base_modules.nixos-modules;
home-module.imports =
[
../hosts/idols/ai/home.nix
{modules.desktop.i3.enable = true;}
]
++ desktop_base_modules.home-module.imports;
};
idol_ai_modules_hyprland = {
nixos-modules =
[
../hosts/idols/ai
{modules.desktop.wayland.enable = true;}
]
++ desktop_hyprland_modules.nixos-modules;
home-module = desktop_hyprland_modules.home-module;
++ desktop_base_modules.nixos-modules;
home-module.imports =
[
../hosts/idols/ai/home.nix
{modules.desktop.hyprland.enable = true;}
]
++ desktop_base_modules.home-module.imports;
};
# 星野 愛久愛海, Hoshino Akuamarin
@@ -62,7 +47,10 @@ in rec {
../modules/nixos/server.nix
../modules/nixos/proxmox-hardware-configuration.nix
];
home-module = import ../home/linux/server.nix;
home-module.imports = [
../hosts/idols/aquamarine/home.nix
../home/linux/server.nix
];
};
idol_aquamarine_tags = ["dist-build" "aqua"];
@@ -73,7 +61,10 @@ in rec {
../modules/nixos/server.nix
../modules/nixos/proxmox-hardware-configuration.nix
];
home-module = import ../home/linux/server.nix;
home-module.imports = [
../hosts/idols/ruby/home.nix
../home/linux/server.nix
];
};
idol_ruby_tags = ["dist-build" "ruby"];
@@ -84,7 +75,10 @@ in rec {
../modules/nixos/server.nix
../modules/nixos/proxmox-hardware-configuration.nix
];
home-module = import ../home/linux/server.nix;
home-module.imports = [
../hosts/idols/kana/home.nix
../home/linux/server.nix
];
};
idol_kana_tags = ["dist-build" "kana"];
@@ -97,7 +91,7 @@ in rec {
# cross-compilation this flake.
{nixpkgs.crossSystem.system = "riscv64-linux";}
];
# home-module = import ../home/linux/server.nix;
# home-module.imports = [];
};
rolling_nozomi_tags = ["riscv" "nozomi"];
@@ -110,7 +104,7 @@ in rec {
# cross-compilation this flake.
{nixpkgs.crossSystem.system = "riscv64-linux";}
];
# home-module = import ../home/linux/server.nix;
# home-module.imports = [];
};
rolling_yukina_tags = ["riscv" "yukina"];
@@ -123,7 +117,7 @@ in rec {
# cross-compilation this flake.
{nixpkgs.crossSystem.config = "aarch64-unknown-linux-gnu";}
];
# home-module = import ../home/linux/server.nix;
# home-module.imports = [];
};
_12kingdoms_suzu_tags = ["aarch" "suzu"];
@@ -132,18 +126,30 @@ in rec {
nixos-modules =
[
../hosts/12kingdoms/shoukei
{modules.desktop.xorg.enable = true;}
]
++ desktop_i3_modules.nixos-modules;
home-module = desktop_i3_modules.home-module;
++ desktop_base_modules.nixos-modules;
home-module.imports =
[
../hosts/12kingdoms/shoukei/home.nix
{modules.desktop.i3.enable = true;}
]
++ desktop_base_modules.home-module.imports;
};
_12kingdoms_shoukei_modules_hyprland = {
nixos-modules =
[
../hosts/12kingdoms/shoukei
{modules.desktop.wayland.enable = true;}
]
++ desktop_hyprland_modules.nixos-modules;
home-module = desktop_hyprland_modules.home-module;
++ desktop_base_modules.nixos-modules;
home-module.imports =
[
../hosts/12kingdoms/shoukei/home.nix
{modules.desktop.hyprland.enable = true;}
]
++ desktop_base_modules.home-module.imports;
};
# darwin systems
@@ -154,7 +160,10 @@ in rec {
../modules/darwin
../secrets/darwin.nix
];
home-module = import ../home/darwin;
home-module.imports = [
../hosts/harmonica/home.nix
../home/darwin
];
};
darwin_fern_modules = {
darwin-modules = [
@@ -163,6 +172,9 @@ in rec {
../modules/darwin
../secrets/darwin.nix
];
home-module = import ../home/darwin;
home-module.imports = [
../hosts/fern/home.nix
../home/darwin
];
};
}