format with prettier formatter :3

This commit is contained in:
foxora 2026-03-03 04:26:35 +00:00
parent 8b1a6aca39
commit 211fa03252
18 changed files with 480 additions and 500 deletions

View file

@ -1,4 +1,4 @@
{ ... }: { {...}: {
nix.settings = { nix.settings = {
experimental-features = ["nix-command" "flakes"]; experimental-features = ["nix-command" "flakes"];
download-buffer-size = 524288000; download-buffer-size = 524288000;

View file

@ -1,4 +1,4 @@
{ ... }: { {...}: {
nix.settings = { nix.settings = {
trusted-users = ["root" "@wheel"]; trusted-users = ["root" "@wheel"];
}; };

View file

@ -8,8 +8,7 @@
root, root,
system, system,
... ...
}: }: {
{
imports = [ imports = [
inputs.zen.homeModules.twilight inputs.zen.homeModules.twilight
@ -77,8 +76,7 @@
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
home.file.".mozilla/native-messaging-hosts/tridactyl.json".source = home.file.".mozilla/native-messaging-hosts/tridactyl.json".source = "${upkgs.tridactyl-native}/lib/mozilla/native-messaging-hosts/tridactyl.json";
"${upkgs.tridactyl-native}/lib/mozilla/native-messaging-hosts/tridactyl.json";
# some packages are enabled from their own module in ./modules # some packages are enabled from their own module in ./modules
home.packages = with upkgs; [ home.packages = with upkgs; [
@ -101,7 +99,7 @@
ripgrep # rlly fast grep :3 ripgrep # rlly fast grep :3
zip # zips .zip zip # zips .zip
unzip # unzips .zip unzip # unzips .zip
(btop.override { rocmSupport = true; }) # btop + amd gpu support (btop.override {rocmSupport = true;}) # btop + amd gpu support
nmap # network discovery and mapping tool! nmap # network discovery and mapping tool!
distrobox # use any linux distro inside ur terminal x3 distrobox # use any linux distro inside ur terminal x3
parted # create, resize, copy, image partitions parted # create, resize, copy, image partitions

View file

@ -1,5 +1,4 @@
{ upkgs, ... }: {upkgs, ...}: {
{
programs.alacritty = { programs.alacritty = {
enable = true; enable = true;
package = upkgs.alacritty-graphics; package = upkgs.alacritty-graphics;

View file

@ -4,13 +4,12 @@
inputs, inputs,
mpkgs, mpkgs,
... ...
}: }: let
let inherit
inherit (inputs.nixcats) (inputs.nixcats)
utils utils
; ;
in in {
{
imports = [ imports = [
inputs.nixcats.homeModule inputs.nixcats.homeModule
]; ];
@ -31,224 +30,220 @@ in
]; ];
# see the packageDefinitions below. # see the packageDefinitions below.
# This says which of those to install. # This says which of those to install.
packageNames = [ "auroranvim" ]; packageNames = ["auroranvim"];
luaPath = "${./.}"; luaPath = "${./.}";
# the .replace vs .merge options are for modules based on existing configurations, # the .replace vs .merge options are for modules based on existing configurations,
# they refer to how multiple categoryDefinitions get merged together by the module. # they refer to how multiple categoryDefinitions get merged together by the module.
# for useage of this section, refer to :h nixCats.flake.outputs.categories # for useage of this section, refer to :h nixCats.flake.outputs.categories
categoryDefinitions.replace = categoryDefinitions.replace = {
{ pkgs,
pkgs, settings,
settings, categories,
categories, extra,
extra, name,
name, mkNvimPlugin,
mkNvimPlugin, ...
... } @ packageDef: {
}@packageDef: lspsAndRuntimeDeps = with pkgs; {
{ general = [
lspsAndRuntimeDeps = with pkgs; { ripgrep
general = [ fd
ripgrep ];
fd treesitter = [
tree-sitter
];
lang = {
lua = [
lua-language-server
stylua
]; ];
treesitter = [ nix = [
tree-sitter nil
nix-doc # TODO: i forgot what this is for
alejandra
]; ];
lang = { rust = [
lua = [ cargo
lua-language-server mpkgs.rust-analyzer
stylua # nightly rustfmt has nicer features :3
]; inputs.fenix.packages.${system}.complete.rustfmt
nix = [
nil
nix-doc # TODO: i forgot what this is for
alejandra
];
rust = [
cargo
mpkgs.rust-analyzer
# nightly rustfmt has nicer features :3
inputs.fenix.packages.${system}.complete.rustfmt
];
zig = [
zls
];
elixir = [
elixir-ls
];
gleam = [
gleam
];
haskell = [
haskell-language-server
ormolu
];
java = [
jdt-language-server
javaPackages.compiler.openjdk17
javaPackages.compiler.openjdk21
];
protobuf = [
protols
buf
];
};
};
startupPlugins = with pkgs.vimPlugins; {
general = [
lze
plenary-nvim
nvim-notify
nvim-web-devicons
base16-nvim
mini-nvim
]; ];
treesitter = [ zig = [
nvim-treesitter-textobjects zls
nvim-treesitter.withAllGrammars ];
elixir = [
elixir-ls
];
gleam = [
gleam
];
haskell = [
haskell-language-server
ormolu
];
java = [
jdt-language-server
javaPackages.compiler.openjdk17
javaPackages.compiler.openjdk21
];
protobuf = [
protols
buf
]; ];
}; };
optionalPlugins = with pkgs.vimPlugins; {
general = [
];
ui = [
dressing-nvim
];
qol = [
undotree
mini-hipatterns
];
telescope = [
telescope-nvim
telescope-fzf-native-nvim
telescope-ui-select-nvim
];
fyler = [
fyler-nvim
];
lsp = [
nvim-lspconfig
];
completion = [
blink-cmp
nvim-cmp
luasnip
friendly-snippets
cmp_luasnip
cmp-buffer
cmp-path
cmp-nvim-lua
cmp-nvim-lsp
cmp-cmdline
cmp-nvim-lsp-signature-help
cmp-cmdline-history
lspkind-nvim
];
format = [
conform-nvim
];
comment = [
comment-nvim
];
lang = {
java = [
nvim-jdtls
];
};
};
# shared libraries to be added to LD_LIBRARY_PATH
# variable available to nvim runtime
sharedLibraries = {
general = with pkgs; [
# libgit2
];
};
environmentVariables = {
lang = {
rust.lsp = {
# it literally won't see the rust-analyzer provided to it
# if you don't use an envrionment variable to tell it
RUST_ANALYZER_CMD = "${mpkgs.rust-analyzer}/bin/rust-analyzer";
};
elixir.lsp = {
ELIXIR_LS_CMD = "${pkgs.elixir-ls}/scripts/language_server.sh";
};
java.lsp = {
JAVA_HOME = "${pkgs.javaPackages.compiler.openjdk17}";
OPENJDK_17 = "${pkgs.javaPackages.compiler.openjdk17}";
OPENJDK_21 = "${pkgs.javaPackages.compiler.openjdk21}";
};
};
};
extraWrapperArgs = { };
# lists of the functions you would have passed to
# python.withPackages or lua.withPackages
# get the path to this python environment
# in your lua config via
# vim.g.python3_host_prog
# or run from nvim terminal via :!<packagename>-python3
extraPython3Packages = { };
# populates $LUA_PATH and $LUA_CPATH
extraLuaPackages = { };
}; };
startupPlugins = with pkgs.vimPlugins; {
general = [
lze
plenary-nvim
nvim-notify
nvim-web-devicons
base16-nvim
mini-nvim
];
treesitter = [
nvim-treesitter-textobjects
nvim-treesitter.withAllGrammars
];
};
optionalPlugins = with pkgs.vimPlugins; {
general = [
];
ui = [
dressing-nvim
];
qol = [
undotree
mini-hipatterns
];
telescope = [
telescope-nvim
telescope-fzf-native-nvim
telescope-ui-select-nvim
];
fyler = [
fyler-nvim
];
lsp = [
nvim-lspconfig
];
completion = [
blink-cmp
nvim-cmp
luasnip
friendly-snippets
cmp_luasnip
cmp-buffer
cmp-path
cmp-nvim-lua
cmp-nvim-lsp
cmp-cmdline
cmp-nvim-lsp-signature-help
cmp-cmdline-history
lspkind-nvim
];
format = [
conform-nvim
];
comment = [
comment-nvim
];
lang = {
java = [
nvim-jdtls
];
};
};
# shared libraries to be added to LD_LIBRARY_PATH
# variable available to nvim runtime
sharedLibraries = {
general = with pkgs; [
# libgit2
];
};
environmentVariables = {
lang = {
rust.lsp = {
# it literally won't see the rust-analyzer provided to it
# if you don't use an envrionment variable to tell it
RUST_ANALYZER_CMD = "${mpkgs.rust-analyzer}/bin/rust-analyzer";
};
elixir.lsp = {
ELIXIR_LS_CMD = "${pkgs.elixir-ls}/scripts/language_server.sh";
};
java.lsp = {
JAVA_HOME = "${pkgs.javaPackages.compiler.openjdk17}";
OPENJDK_17 = "${pkgs.javaPackages.compiler.openjdk17}";
OPENJDK_21 = "${pkgs.javaPackages.compiler.openjdk21}";
};
};
};
extraWrapperArgs = {};
# lists of the functions you would have passed to
# python.withPackages or lua.withPackages
# get the path to this python environment
# in your lua config via
# vim.g.python3_host_prog
# or run from nvim terminal via :!<packagename>-python3
extraPython3Packages = {};
# populates $LUA_PATH and $LUA_CPATH
extraLuaPackages = {};
};
# see :help nixCats.flake.outputs.packageDefinitions # see :help nixCats.flake.outputs.packageDefinitions
packageDefinitions.replace = { packageDefinitions.replace = {
# these are the names of your packages # these are the names of your packages
# you can include as many as you wish. # you can include as many as you wish.
auroranvim = auroranvim = {pkgs, ...}: {
{ pkgs, ... }: # they contain a settings set defined above
{ # see :help nixCats.flake.outputs.settings
# they contain a settings set defined above settings = {
# see :help nixCats.flake.outputs.settings wrapRc = true;
settings = { # IMPORTANT:
wrapRc = true; # your alias may not conflict with your other packages.
# IMPORTANT: aliases = [
# your alias may not conflict with your other packages. "auravim"
aliases = [ "foxyvim"
"auravim" "avix"
"foxyvim" "fvix"
"avix" ];
"fvix" };
]; # and a set of categories that you want
}; # (and other information to pass to lua)
# and a set of categories that you want categories = {
# (and other information to pass to lua) general = true;
categories = {
general = true;
ui = true; ui = true;
qol = true; qol = true;
telescope = true; telescope = true;
fyler = true; fyler = true;
lsp = true; lsp = true;
completion = true; completion = true;
treesitter = true; treesitter = true;
format = true; format = true;
comment = true; comment = true;
lang = { lang = {
lua = true; lua = true;
nix = true; nix = true;
rust = true; rust = true;
zig = true; zig = true;
elixir = true; elixir = true;
gleam = true; gleam = true;
haskell = true; haskell = true;
java = true; java = true;
protobuf = true; protobuf = true;
};
}; };
}; };
};
}; };
}; };
}; };

View file

@ -1,5 +1,4 @@
{ inputs, ... }: {inputs, ...}: {
{
imports = [ imports = [
inputs.nixcord.homeModules.nixcord inputs.nixcord.homeModules.nixcord
]; ];

View file

@ -1,5 +1,4 @@
{ upkgs, ... }: {upkgs, ...}: {
{
# optional dependencies can be found here: # optional dependencies can be found here:
# https://yazi-rs.github.io/docs/installation/ # https://yazi-rs.github.io/docs/installation/
home.packages = with upkgs; [ home.packages = with upkgs; [
@ -24,12 +23,12 @@
mgr.prepend_keymap = [ mgr.prepend_keymap = [
# drag and drop!! # drag and drop!!
{ {
on = [ "<S-c>" ]; on = ["<S-c>"];
run = ''shell "ripdrag -x -a \"$@\"" --confirm''; run = ''shell "ripdrag -x -a \"$@\"" --confirm'';
} }
# copy hovered file to clipboard # copy hovered file to clipboard
{ {
on = [ "<S-y>" ]; on = ["<S-y>"];
run = ''shell -- path=%h; echo "file://$path" | wl-copy -t text/uri-list''; run = ''shell -- path=%h; echo "file://$path" | wl-copy -t text/uri-list'';
} }
]; ];

View file

@ -1,5 +1,4 @@
{ upkgs, ... }: {upkgs, ...}: {
{
programs.zsh = { programs.zsh = {
enable = true; enable = true;
enableCompletion = true; enableCompletion = true;

View file

@ -1,5 +1,4 @@
{ inputs, ... }: {inputs, ...}: {
{
imports = [ imports = [
inputs.mango.hmModules.mango inputs.mango.hmModules.mango
]; ];

View file

@ -1,83 +1,78 @@
{ ... }: {...}: {
{ wayland.windowManager.river = let
wayland.windowManager.river = layout = "rivertile";
let in {
layout = "rivertile"; enable = true;
in xwayland.enable = true;
{
enable = true;
xwayland.enable = true;
settings = settings = let
let main = "Super";
main = "Super";
# applications # applications
terminal = "alacritty"; terminal = "alacritty";
browser = "firefox"; browser = "firefox";
in in {
{ default-layout = "${layout}";
default-layout = "${layout}"; output-layout = "${layout}";
output-layout = "${layout}"; border-width = 1;
border-width = 1;
spawn = [ spawn = [
"${layout}" "${layout}"
"awww-daemon" "awww-daemon"
"waybar" "waybar"
]; ];
map.normal = { map.normal = {
"${main} C" = "close"; # close focused window "${main} C" = "close"; # close focused window
"${main}+Alt Delete" = "exit"; # exit river "${main}+Alt Delete" = "exit"; # exit river
# app launcher # app launcher
"${main} D" = ''spawn "pkill -x rofi || rofi -show drun -show-icons"''; "${main} D" = ''spawn "pkill -x rofi || rofi -show drun -show-icons"'';
"Alt Tab" = ''spawn "pkill -x rofi || rofi -modi window -show window -show-icons"''; "Alt Tab" = ''spawn "pkill -x rofi || rofi -modi window -show window -show-icons"'';
# spawn applications # spawn applications
"${main} T" = ''spawn "${terminal}"''; "${main} T" = ''spawn "${terminal}"'';
"${main} R" = ''spawn "${browser}"''; "${main} R" = ''spawn "${browser}"'';
# move focused view to top of layout stack # move focused view to top of layout stack
"${main} N" = "zoom"; "${main} N" = "zoom";
# focus next/previous view # focus next/previous view
"${main} J" = "focus-view previous"; "${main} J" = "focus-view previous";
"${main} K" = "focus-view next"; "${main} K" = "focus-view next";
# move to next/previous output # move to next/previous output
"${main} H" = "focus-output previous"; "${main} H" = "focus-output previous";
"${main} L" = "focus-output next"; "${main} L" = "focus-output next";
# swap next/previous view # swap next/previous view
"${main}+Alt J" = "swap previous"; "${main}+Alt J" = "swap previous";
"${main}+Alt K" = "swap next"; "${main}+Alt K" = "swap next";
# send view to next/previous output # send view to next/previous output
# and switch to that output (wip) # and switch to that output (wip)
"${main}+Alt H" = "send-to-output previous"; "${main}+Alt H" = "send-to-output previous";
#"${main}+Alt H" = "focus-output previous"; #"${main}+Alt H" = "focus-output previous";
"${main}+Alt L" = "send-to-output next"; "${main}+Alt L" = "send-to-output next";
#"${main}+Alt L" = "focus-output next"; #"${main}+Alt L" = "focus-output next";
# move views # move views
#"${main}+Alt H" = "move left 100"; #"${main}+Alt H" = "move left 100";
#"${main}+Alt J" = "move down 100"; #"${main}+Alt J" = "move down 100";
#"${main}+Alt K" = "move up 100"; #"${main}+Alt K" = "move up 100";
#"${main}+Alt L" = "move right 100"; #"${main}+Alt L" = "move right 100";
# snap views # snap views
#"${main}+Control H" = "snap left"; #"${main}+Control H" = "snap left";
#"${main}+Control J" = "snap down"; #"${main}+Control J" = "snap down";
#"${main}+Control K" = "snap up"; #"${main}+Control K" = "snap up";
#"${main}+Control L" = "snap right"; #"${main}+Control L" = "snap right";
# resize views # resize views
#"${main}+Shift H" = "resize horizontal -100"; #"${main}+Shift H" = "resize horizontal -100";
#"${main}+Shift J" = "resize vertical -100"; #"${main}+Shift J" = "resize vertical -100";
#"${main}+Shift K" = "resize vertical 100"; #"${main}+Shift K" = "resize vertical 100";
#"${main}+Shift L" = "resize horizontal 100"; #"${main}+Shift L" = "resize horizontal 100";
}; };
};
}; };
};
} }

View file

@ -1,5 +1,4 @@
{ config, ... }: {config, ...}: {
{
wayland.windowManager.sway = { wayland.windowManager.sway = {
enable = true; enable = true;
config = rec { config = rec {
@ -7,46 +6,44 @@
terminal = "alacritty"; terminal = "alacritty";
# disable sway bar # disable sway bar
bars = [ ]; bars = [];
# set border colors # set border colors
#colors = { #colors = {
#focused = #focused =
startup = [ startup = [
{ command = "awww-daemon"; } {command = "awww-daemon";}
{ command = "waybar"; } {command = "waybar";}
]; ];
keybindings = keybindings = let
let main = config.wayland.windowManager.sway.config.modifier;
main = config.wayland.windowManager.sway.config.modifier; terminal = config.wayland.windowManager.sway.config.terminal;
terminal = config.wayland.windowManager.sway.config.terminal; browser = "firefox";
browser = "firefox"; in {
in "${main}+c" = "kill"; # close focused window
{ "${main}+Alt+Delete" = "exit"; # exit sway
"${main}+c" = "kill"; # close focused window
"${main}+Alt+Delete" = "exit"; # exit sway
# open launcher # open launcher
"${main}+d" = "exec pkill -x rofi || rofi -show drun -show-icons"; "${main}+d" = "exec pkill -x rofi || rofi -show drun -show-icons";
"Alt+Tab" = "exec pkill -x rofi || rofi -modi window -show window -show-icons"; "Alt+Tab" = "exec pkill -x rofi || rofi -modi window -show window -show-icons";
"${main}+t" = "exec ${terminal}"; # open terminal "${main}+t" = "exec ${terminal}"; # open terminal
"${main}+r" = "exec ${browser}"; # open browser "${main}+r" = "exec ${browser}"; # open browser
# move focus # move focus
"${main}+h" = "focus left"; "${main}+h" = "focus left";
"${main}+j" = "focus down"; "${main}+j" = "focus down";
"${main}+k" = "focus up"; "${main}+k" = "focus up";
"${main}+l" = "focus right"; "${main}+l" = "focus right";
# move focused window # move focused window
"${main}+Alt+h" = "move left"; "${main}+Alt+h" = "move left";
"${main}+Alt+j" = "move down"; "${main}+Alt+j" = "move down";
"${main}+Alt+k" = "move up"; "${main}+Alt+k" = "move up";
"${main}+Alt+l" = "move right"; "${main}+Alt+l" = "move right";
}; };
}; };
}; };
} }

View file

@ -1,5 +1,4 @@
{ config, lib, pkgs, ... }: {pkgs, ...}: {
{
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
@ -117,7 +116,7 @@
users.users.foxora = { users.users.foxora = {
isNormalUser = true; isNormalUser = true;
extraGroups = [ "wheel" ]; extraGroups = ["wheel"];
packages = with pkgs; [ packages = with pkgs; [
tree tree

View file

@ -1,32 +1,35 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "ahci" "ehci_pci" "megaraid_sas" "usb_storage" "usbhid" "sd_mod" "sr_mod" ]; boot.initrd.availableKernelModules = ["ahci" "ehci_pci" "megaraid_sas" "usb_storage" "usbhid" "sd_mod" "sr_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/7f22e35f-7536-49c4-9c04-88874e87f266"; device = "/dev/disk/by-uuid/7f22e35f-7536-49c4-9c04-88874e87f266";
fsType = "btrfs"; fsType = "btrfs";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/0213-F9A0"; device = "/dev/disk/by-uuid/0213-F9A0";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = ["fmask=0077" "dmask=0077"];
}; };
swapDevices = swapDevices = [
[ { device = "/dev/disk/by-uuid/0d04172b-aed8-42ea-9cb8-e5dcbf960200"; } {device = "/dev/disk/by-uuid/0d04172b-aed8-42ea-9cb8-e5dcbf960200";}
]; ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

View file

@ -1,5 +1,4 @@
{ config, lib, pkgs, ... }: {pkgs, ...}: {
{
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
@ -57,7 +56,7 @@
users.users.foxora = { users.users.foxora = {
isNormalUser = true; isNormalUser = true;
extraGroups = [ "wheel" ]; extraGroups = ["wheel"];
packages = with pkgs; [ packages = with pkgs; [
tree tree
@ -91,4 +90,3 @@
system.stateVersion = "25.11"; system.stateVersion = "25.11";
} }

View file

@ -1,32 +1,35 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "megaraid_sas" "usb_storage" "usbhid" "sd_mod" ]; boot.initrd.availableKernelModules = ["ahci" "xhci_pci" "megaraid_sas" "usb_storage" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/1bc53888-6db8-46df-aa28-975b710c5de8"; device = "/dev/disk/by-uuid/1bc53888-6db8-46df-aa28-975b710c5de8";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/12CE-A600"; device = "/dev/disk/by-uuid/12CE-A600";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = ["fmask=0077" "dmask=0077"];
}; };
swapDevices = swapDevices = [
[ { device = "/dev/disk/by-uuid/60643004-6916-46b3-8655-66fdc28cf5ad"; } {device = "/dev/disk/by-uuid/60643004-6916-46b3-8655-66fdc28cf5ad";}
]; ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

View file

@ -3,8 +3,7 @@
root, root,
upkgs, upkgs,
... ...
}: }: {
{
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
@ -13,7 +12,7 @@
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
boot = rec { boot = rec {
initrd.kernelModules = [ "amdgpu" ]; initrd.kernelModules = ["amdgpu"];
loader = { loader = {
systemd-boot.enable = true; systemd-boot.enable = true;
@ -23,8 +22,8 @@
kernelPackages = upkgs.cachyosKernels.linuxPackages-cachyos-latest-lto-x86_64-v4; kernelPackages = upkgs.cachyosKernels.linuxPackages-cachyos-latest-lto-x86_64-v4;
# TODO: idk make this a toggle or smth idfk # TODO: idk make this a toggle or smth idfk
# kernelPackages = upkgs.linuxPackages_latest; # kernelPackages = upkgs.linuxPackages_latest;
kernelModules = [ "v4l2loopback" ]; kernelModules = ["v4l2loopback"];
extraModulePackages = with kernelPackages; [ v4l2loopback ]; extraModulePackages = with kernelPackages; [v4l2loopback];
# qemu # qemu
# binfmt.emulatedSystems = [ # binfmt.emulatedSystems = [
@ -99,7 +98,7 @@
]; ];
config.common = { config.common = {
"org.freedesktop.impl.portal.FileChooser" = [ "termfilechooser" ]; "org.freedesktop.impl.portal.FileChooser" = ["termfilechooser"];
}; };
}; };
@ -214,10 +213,9 @@
}; };
}; };
systemd.tmpfiles.rules = systemd.tmpfiles.rules = let
let imagePath = root + "/homes/aurora/profile.png";
imagePath = root + "/homes/aurora/profile.png"; in
in
lib.mkIf (builtins.pathExists imagePath) [ lib.mkIf (builtins.pathExists imagePath) [
"L /var/lib/AccountsService/icons/aurora - - - - ${imagePath}" "L /var/lib/AccountsService/icons/aurora - - - - ${imagePath}"
]; ];

205
snow.nix
View file

@ -1,136 +1,135 @@
{ cerulean, ... }@inputs: {cerulean, ...} @ inputs:
cerulean.mkNexus ./. (self: { cerulean.mkNexus ./. (self: {
nexus = { nexus = {
args = { inherit inputs; }; args = {inherit inputs;};
modules = with inputs; [ ]; modules = with inputs; [];
base = inputs.nixpkgs; base = inputs.nixpkgs;
homeManager = inputs.home-manager; homeManager = inputs.home-manager;
groups = { groups = {
servers = { }; servers = {};
}; };
nodes = nodes = let
let inherit
inherit (self.nexus) (self.nexus)
groups groups
; ;
in in {
{ nixarawrui = {
nixarawrui = { system = "x86_64-linux";
system = "x86_64-linux";
base = inputs.nixpkgs-unstable; base = inputs.nixpkgs-unstable;
homeManager = inputs.home-manager-unstable; homeManager = inputs.home-manager-unstable;
modules = with inputs; [ modules = with inputs; [
sddm-silent.nixosModules.default sddm-silent.nixosModules.default
inputs.mango.nixosModules.mango inputs.mango.nixosModules.mango
]; ];
}; };
arcturus = { arcturus = {
system = "x86_64-linux"; system = "x86_64-linux";
groups = [ groups = [
groups.servers groups.servers
]; ];
modules = with inputs; [ modules = with inputs; [
microvm.nixosModules.host microvm.nixosModules.host
{ {
microvm.vms = { microvm.vms = {
home-assistant = { home-assistant = {
autostart = true; autostart = true;
config = { config = {
imports = [ ./vms/home-assistant/default.nix ]; imports = [./vms/home-assistant/default.nix];
networking.hostName = "home-assistant"; networking.hostName = "home-assistant";
boot.kernelParams = [ boot.kernelParams = [
"console=ttyS0" "console=ttyS0"
"console=ttyS1" "console=ttyS1"
"8250.nr_uarts=2" "8250.nr_uarts=2"
];
systemd.services."serial-getty@ttyS1".enable = true;
microvm = {
hypervisor = "qemu";
# needed to get interface working
qemu.extraArgs = [
"-monitor"
"unix:/var/lib/microvms/home-assistant/monitor.sock,server,nowait"
"-chardev"
"socket,id=serial1,path=/var/lib/microvms/home-assistant/serial.sock,server=on,wait=off"
"-serial"
"chardev:serial1"
]; ];
systemd.services."serial-getty@ttyS1".enable = true;
microvm = { # memory cannot be 2GB so i doubled it and used 4GB:
hypervisor = "qemu"; # https://github.com/microvm-nix/microvm.nix/issues/171
# TODO: can be fixed by turning off acpi in qemu
mem = 4096; # 4GB
vcpu = 2;
# needed to get interface working interfaces = [
qemu.extraArgs = [ {
"-monitor" type = "tap";
"unix:/var/lib/microvms/home-assistant/monitor.sock,server,nowait" id = "vm-hass";
"-chardev" mac = "0a:00:a0:70:01:01";
"socket,id=serial1,path=/var/lib/microvms/home-assistant/serial.sock,server=on,wait=off" }
"-serial" ];
"chardev:serial1"
];
# memory cannot be 2GB so i doubled it and used 4GB: volumes = [
# https://github.com/microvm-nix/microvm.nix/issues/171 #{
# TODO: can be fixed by turning off acpi in qemu #image = "/var/lib/microvms/home-assistant/data.img";
mem = 4096; # 4GB #mountPoint = "/var/lib/hass";
vcpu = 2; #autoCreate = false;
#}
];
};
interfaces = [ systemd.network.enable = true;
{ systemd.network.networks."20-lan" = {
type = "tap"; matchConfig.Type = "ether";
id = "vm-hass"; networkConfig = {
mac = "0a:00:a0:70:01:01"; Address = ["10.16.1.127/24"];
} Gateway = "10.16.1.1";
]; DNS = ["10.16.1.1"];
IPv6AcceptRA = true;
volumes = [ DHCP = "yes";
#{
#image = "/var/lib/microvms/home-assistant/data.img";
#mountPoint = "/var/lib/hass";
#autoCreate = false;
#}
];
};
systemd.network.enable = true;
systemd.network.networks."20-lan" = {
matchConfig.Type = "ether";
networkConfig = {
Address = [ "10.16.1.127/24" ];
Gateway = "10.16.1.1";
DNS = [ "10.16.1.1" ];
IPv6AcceptRA = true;
DHCP = "yes";
};
}; };
}; };
}; };
}; };
} };
]; }
];
deploy.ssh = { deploy.ssh = {
host = "10.16.1.163"; host = "10.16.1.163";
port = 2222; port = 2222;
user = "foxora"; user = "foxora";
};
};
lyra = {
system = "x86_64-linux";
groups = [
groups.servers
];
deploy.ssh = {
host = "10.16.1.58";
port = 2222;
user = "foxora";
};
}; };
}; };
lyra = {
system = "x86_64-linux";
groups = [
groups.servers
];
deploy.ssh = {
host = "10.16.1.58";
port = 2222;
user = "foxora";
};
};
};
}; };
}) })

View file

@ -1,5 +1,4 @@
{ config, lib, pkgs, ... }: {pkgs, ...}: {
{
services.home-assistant = { services.home-assistant = {
enable = true; enable = true;
configDir = "/var/lib/hass/hass"; configDir = "/var/lib/hass/hass";
@ -21,28 +20,29 @@
"mobile_app" "mobile_app"
]; ];
extraPackages = python3Packages: with python3Packages; [ extraPackages = python3Packages:
getmac with python3Packages; [
aiohue getmac
numpy aiohue
aiodhcpwatcher numpy
async-upnp-client aiodhcpwatcher
gtts async-upnp-client
numpy gtts
plexapi numpy
pyipp plexapi
paho-mqtt pyipp
pyturbojpeg paho-mqtt
]; pyturbojpeg
];
}; };
# configures the config directory to be mounted # configures the config directory to be mounted
# correctly with the right permissions # correctly with the right permissions
systemd.services.hass-permissions = { systemd.services.hass-permissions = {
wantedBy = [ "multi-user.target" ]; wantedBy = ["multi-user.target"];
after = [ "var-lib-hass.mount" ]; after = ["var-lib-hass.mount"];
requires = [ "var-lib-hass.mount" ]; requires = ["var-lib-hass.mount"];
before = [ "home-assistant.service" ]; before = ["home-assistant.service"];
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
ExecStart = "${pkgs.bash}/bin/bash -c 'mkdir -p /var/lib/hass/hass && chown hass:hass /var/lib/hass/hass'"; ExecStart = "${pkgs.bash}/bin/bash -c 'mkdir -p /var/lib/hass/hass && chown hass:hass /var/lib/hass/hass'";