staging(no atomic commits thank to git-hooks)

Signed-off-by: s0me1newithhand7s <git+me@hand7s.org>
This commit is contained in:
s0me1newithhand7s 2026-03-25 17:56:18 +03:00
parent db3b60a846
commit c5f949506a
117 changed files with 2520 additions and 999 deletions

View file

@ -1,4 +1,4 @@
{...}: {
_: {
services = {
firewalld = {
enable = true;

803
flake.lock generated

File diff suppressed because it is too large Load diff

489
flake.nix
View file

@ -29,6 +29,13 @@
repo = "ayugram-desktop";
};
"cachix" = {
flake = true;
type = "github";
owner = "cachix";
repo = "cachix";
};
"chaotic" = {
flake = true;
type = "github";
@ -51,13 +58,6 @@
repo = "devenv";
};
"devshell" = {
flake = true;
type = "github";
owner = "numtide";
repo = "devshell";
};
"disko" = {
flake = true;
type = "github";
@ -85,6 +85,13 @@
repo = "freesmlauncher";
};
"fenix" = {
flake = true;
type = "github";
owner = "nix-community";
repo = "fenix";
};
"github-actions-nix" = {
flake = true;
type = "github";
@ -367,7 +374,7 @@
self
;
} {
debug = false;
debug = true;
systems = [
"x86_64-linux"
@ -376,20 +383,201 @@
imports = [
# modules
inputs.agenix-rekey.flakeModule
inputs.disko.flakeModules.default
inputs.devshell.flakeModule
inputs.treefmt-nix.flakeModule
inputs.home-manager.flakeModules.home-manager
inputs.git-hooks-nix.flakeModule
inputs.devenv.flakeModule
# i can't really deside between devenv, devshells and devShells they are equally good for me
# for now, at least, i'm using numtide/devshells
inputs.github-actions-nix.flakeModule
];
flake = {
# home-manager, sorta broken when standalone
flake = let
inherit
(inputs."nixpkgs".lib)
nixosSystem
filesystem
genAttrs
map
;
defaultModules = [];
defaultPath = filesystem.listFilesRecursive "${self}/kyra/";
inputedModules =
map (
{
input,
opt ? "default",
}:
inputs.${input}.nixosModules.${opt}
) [
{
opt = "disko";
input = "disko";
}
{
input = "home-manager";
}
{
opt = "sops";
input = "sops-nix";
}
{
opt = "nix-index";
input = "nix-index-database";
}
{
opt = "nix-mineral";
input = "nix-mineral";
}
];
kyraHost = name:
nixosSystem {
system = "x86_64-linux";
modules = defaultModules ++ defaultPath ++ inputedModules;
specialArgs = {
inherit
inputs
name
self
;
};
};
kyraStack =
genAttrs [
"hazel"
"lynn"
"yara"
"ivy"
"mel"
]
kyraHost;
in {
# Main PC
nixosConfigurations =
{
"ada" = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit
inputs
self
;
};
modules = [
"${self}/ada/"
inputs.chaotic.nixosModules.default
inputs.stylix.nixosModules.stylix
inputs.sops-nix.nixosModules.sops
inputs.disko.nixosModules.disko
inputs.lanzaboote.nixosModules.lanzaboote
inputs.home-manager.nixosModules.default
inputs.nix-index-database.nixosModules.nix-index
inputs.nix-bwrapper.nixosModules.default
inputs.nix-mineral.nixosModules.nix-mineral
];
};
# Main Laptop
"isla" = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit
inputs
self
;
};
modules = [
"${self}/isla/"
inputs.chaotic.nixosModules.default
inputs.stylix.nixosModules.stylix
inputs.sops-nix.nixosModules.sops
inputs.disko.nixosModules.disko
inputs.home-manager.nixosModules.home-manager
inputs.lanzaboote.nixosModules.lanzaboote
inputs.nix-index-database.nixosModules.nix-index
inputs.nix-bwrapper.nixosModules.default
inputs.nix-mineral.nixosModules.nix-mineral
];
};
# homelab
"viola" = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit
inputs
self
;
};
modules = [
"${self}/viola"
inputs.chaotic.nixosModules.default
inputs.stylix.nixosModules.stylix
inputs.sops-nix.nixosModules.sops
inputs.disko.nixosModules.disko
inputs.lanzaboote.nixosModules.lanzaboote
inputs.home-manager.nixosModules.default
inputs.nix-index-database.nixosModules.nix-index
inputs.nix-mineral.nixosModules.nix-mineral
];
};
# WSL2
"wanda" = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit
inputs
self
;
};
modules = [
"${self}/wanda/"
inputs.nixos-wsl.nixosModules.default
inputs.stylix.nixosModules.stylix
inputs.home-manager.nixosModules.default
inputs.sops-nix.nixosModules.sops
inputs.nix-index-database.nixosModules.nix-index
inputs.nix-bwrapper.nixosModules.default
inputs.nix-mineral.nixosModules.nix-mineral
];
};
# custom ISO
"florence" = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit
inputs
self
;
};
modules = [
"${self}/florence/"
];
};
}
// kyraStack;
# few words about kyraStack:
# it's my little fleet, 5 identical VPSes
# really nice that all of them are 2 vCPU 2GB
# tho ssd/nvme/hdd memory is nothing important
# and being KVM VPS / pure VPS too
# home-manager
homeConfigurations = {
"hand7s" = inputs.home-manager.lib.homeManagerConfiguration {
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
@ -407,216 +595,12 @@
inputs.hyprland.homeManagerModules.default
inputs.chaotic.homeManagerModules.default
inputs.sops-nix.homeManagerModules.sops
inputs.nix-index-database.homeModules.nix-index
inputs.noctalia.homeModules.default
inputs.stylix.homeModules.stylix
];
};
};
# nixos hosts
# my PC
nixosConfigurations = {
"ada" = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit
inputs
self
;
};
modules = [
"${self}/ada/"
inputs.agenix.nixosModules.default
inputs.chaotic.nixosModules.default
inputs.stylix.nixosModules.stylix
inputs.sops-nix.nixosModules.sops
inputs.disko.nixosModules.disko
inputs.lanzaboote.nixosModules.lanzaboote
inputs.home-manager.nixosModules.default
inputs.nix-index-database.nixosModules.nix-index
inputs.nix-bwrapper.nixosModules.default
inputs.nix-mineral.nixosModules.nix-mineral
];
};
# my laptop
"isla" = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit
inputs
self
;
};
modules = [
"${self}/isla/"
inputs.agenix.nixosModules.default
inputs.chaotic.nixosModules.default
inputs.stylix.nixosModules.stylix
inputs.sops-nix.nixosModules.sops
inputs.disko.nixosModules.disko
inputs.home-manager.nixosModules.home-manager
inputs.lanzaboote.nixosModules.lanzaboote
inputs.nix-index-database.nixosModules.nix-index
inputs.nix-bwrapper.nixosModules.default
inputs.nix-mineral.nixosModules.nix-mineral
];
};
# my VPSes:
# VPS 1
"hazel" = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit
inputs
self
;
};
modules = [
{
networking.hostName = inputs.nixpkgs.lib.mkDefault "hazel";
}
"${self}/kyra/"
inputs.agenix.nixosModules.default
inputs.disko.nixosModules.disko
inputs.home-manager.nixosModules.default
inputs.sops-nix.nixosModules.sops
inputs.nix-index-database.nixosModules.nix-index
inputs.nix-mineral.nixosModules.nix-mineral
];
};
# VPS 2
"lynn" = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit
inputs
self
;
};
modules = [
{
networking.hostName = inputs.nixpkgs.lib.mkDefault "lynn";
}
"${self}/kyra/"
inputs.agenix.nixosModules.default
inputs.disko.nixosModules.disko
inputs.home-manager.nixosModules.default
inputs.sops-nix.nixosModules.sops
inputs.nix-index-database.nixosModules.nix-index
inputs.nix-mineral.nixosModules.nix-mineral
];
};
# VPS 3
"ivy" = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit
inputs
self
;
};
modules = [
{
networking.hostName = inputs.nixpkgs.lib.mkDefault "ivy";
}
"${self}/kyra/"
inputs.agenix.nixosModules.default
inputs.disko.nixosModules.disko
inputs.home-manager.nixosModules.default
inputs.sops-nix.nixosModules.sops
inputs.nix-index-database.nixosModules.nix-index
inputs.nix-mineral.nixosModules.nix-mineral
];
};
# VPS 4
"mel" = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit
inputs
self
;
};
modules = [
{
networking.hostName = inputs.nixpkgs.lib.mkDefault "mel";
}
"${self}/kyra/"
inputs.agenix.nixosModules.default
inputs.disko.nixosModules.disko
inputs.home-manager.nixosModules.default
inputs.sops-nix.nixosModules.sops
inputs.nix-index-database.nixosModules.nix-index
inputs.nix-mineral.nixosModules.nix-mineral
];
};
# homelab
"viola" = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit
inputs
self
;
};
modules = [
"${self}/viola"
inputs.agenix.nixosModules.default
inputs.chaotic.nixosModules.default
inputs.stylix.nixosModules.stylix
inputs.sops-nix.nixosModules.sops
inputs.disko.nixosModules.disko
inputs.lanzaboote.nixosModules.lanzaboote
inputs.home-manager.nixosModules.default
inputs.nix-index-database.nixosModules.nix-index
inputs.nix-mineral.nixosModules.nix-mineral
];
};
# WSL2
"wanda" = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit
inputs
self
;
};
modules = [
"${self}/wanda/"
inputs.agenix.nixosModules.default
inputs.nixos-wsl.nixosModules.default
inputs.stylix.nixosModules.stylix
inputs.home-manager.nixosModules.default
inputs.sops-nix.nixosModules.sops
inputs.nix-index-database.nixosModules.nix-index
inputs.nix-bwrapper.nixosModules.default
inputs.nix-mineral.nixosModules.nix-mineral
];
};
};
};
perSystem = {
@ -630,7 +614,7 @@
flakeCheck = true;
programs = {
alejandra = {
"alejandra" = {
enable = true;
priority = 1;
includes = [
@ -638,7 +622,7 @@
];
};
statix = {
"statix" = {
enable = true;
priority = 1;
includes = [
@ -650,7 +634,7 @@
];
};
deadnix = {
"deadnix" = {
enable = true;
priority = 1;
includes = [
@ -683,72 +667,45 @@
gitPackage = pkgs.git;
hooks = {
alejandra = {
"alejandra" = {
enable = true;
settings = {
verbosity = "quiet";
check = true;
};
};
deadnix = {
"deadnix" = {
enable = true;
settings = {
edit = false;
};
};
statix = {
"statix" = {
enable = true;
settings = {
config = "${pkgs.writeText ''statix.toml'' ''
disabled = [
"empty_pattern"
]
''}";
};
};
};
};
};
# numtide/devshells, basically a devShells but better
devshells = {
"default" = {
name = "default";
# cachix/devenv, basically a devShells, even better than numtide/devshells
devenv = {
shells = {
"default" = {
enterShell = config.pre-commit.shellHook;
commands = [
{
name = "pre";
category = "[tools]";
command = "prek run -a";
help = ''
pre-commit-hook is a tool to execute linters / formatters before `git commit` to verify that code is meeting standarts of code setted up in projects;
'';
}
{
name = "fmt";
category = "[formatters]";
command = "nix fmt";
help = ''
nix fmt is built-in formatting solution for nix pacakage manager;
'';
}
];
devshell = {
startup = {
"git-hooks-nix" = {
text = config.pre-commit.shellHook;
};
devenv = {
root = toString /home/hand7s/Projects/flake;
};
};
packages = with pkgs;
[
just
]
++ config.pre-commit.settings.enabledPackages;
packages =
[
pkgs.just
config.treefmt.build.wrapper
]
++ config.pre-commit.settings.enabledPackages;
};
};
};

32
florence/default.nix Normal file
View file

@ -0,0 +1,32 @@
{inputs, ...}: {
imports = [
"${inputs.nixpkgs}/nixos/modules/installer/netboot/netboot-minimal.nix"
];
services = {
openssh = {
enable = true;
settings = {
PermitRootLogin = "yes";
};
};
system = {
stateVersion = "25.05";
};
users = {
users = {
"root" = {
openssh = {
authorizedKeys = {
keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDp2IIdR5jV1HyG4aiRX7SfTNrXDhCx5rTiFU40qkOKq litvinovb0@gmail.com"
];
};
};
};
};
};
};
}

View file

@ -5,11 +5,17 @@
"${self}/hand7s/wayland/hyprland.nix"
"${self}/hand7s/gtk/gtk.nix"
"${self}/hand7s/gtk/gtk3.nix"
"${self}/hand7s/gtk/gtk4.nix"
"${self}/hand7s/home/defaults.nix"
"${self}/hand7s/home/gui.nix"
"${self}/hand7s/home/keyboard.nix"
"${self}/hand7s/home/packages.nix"
"${self}/hand7s/home/shellAliases.nix"
"${self}/hand7s/home/variables.nix"
"${self}/hand7s/home/shell.nix"
"${self}/hand7s/nixpkgs/config.nix"
"${self}/hand7s/nixpkgs/overlays.nix"
@ -40,5 +46,15 @@
"${self}/hand7s/programs/direnv.nix"
"${self}/hand7s/programs/noctalia.nix"
"${self}/hand7s/programs/iamb.nix"
"${self}/hand7s/programs/nushell.nix"
"${self}/hand7s/programs/carapace.nix"
"${self}/hand7s/programs/broot.nix"
"${self}/hand7s/programs/atuin.nix"
"${self}/hand7s/programs/gitui.nix"
"${self}/hand7s/xdg/portal.nix"
"${self}/hand7s/xdg/mime.nix"
"${self}/hand7s/xdg/configFile.nix"
"${self}/hand7s/xdg/terminal.nix"
];
}

View file

@ -1,5 +1,8 @@
_: {
{pkgs, ...}: {
gtk = {
enable = true;
iconTheme = {
package = pkgs.morewaita-icon-theme;
name = "MoreWaita";
};
};
}

42
hand7s/gtk/gtk3.nix Normal file
View file

@ -0,0 +1,42 @@
_: {
gtk = {
gtk3 = {
extraCss = ''
headerbar {
background-color: mix(@base0D, @base02, 0.08);
}
headerbar title {
font-size: 14px;
font-weight: 500;
}
popover contents,
.menu {
background-color: mix(@base0D, @base02, 0.11);
}
tooltip {
background-color: mix(@base0D, @base02, 0.14);
}
button label {
font-size: 12px;
font-weight: 500;
}
button:hover {
background-color: alpha(@base0D, 0.08);
}
button:focus {
background-color: alpha(@base0D, 0.12);
}
button:active {
background-color: alpha(@base0D, 0.16);
}
'';
};
};
}

37
hand7s/gtk/gtk4.nix Normal file
View file

@ -0,0 +1,37 @@
_: {
gtk = {
gtk4 = {
extraCss = ''
headerbar {
background-color: mix(@base0D, @base02, 0.08);
}
headerbar title {
font-size: 14px;
font-weight: 500;
}
popover contents {
background-color: mix(@base0D, @base02, 0.11);
}
button label {
font-size: 12px;
font-weight: 500;
}
button:hover {
background-color: alpha(@base0D, 0.08);
}
button:focus {
background-color: alpha(@base0D, 0.12);
}
button:active {
background-color: alpha(@base0D, 0.16);
}
'';
};
};
}

View file

@ -7,16 +7,17 @@
xh
dua
nvd
tlrc
dust
sops
rsync
procs
sshfs
sbctl
gping
comma
trippy
bottom
ragenix
ripgrep
kubectl
gitoxide

7
hand7s/home/shell.nix Normal file
View file

@ -0,0 +1,7 @@
_: {
home = {
shell = {
enableShellIntegration = true;
};
};
}

10
hand7s/home/variables.nix Normal file
View file

@ -0,0 +1,10 @@
_: {
home = {
sessionVariables = {
CARAPACE_BRIDGES = "fish";
DIRENV_WARN_TIMEOUT = "5m";
GTK_USE_PORTAL = "1";
AQ_NO_MODIFIERS = "1";
};
};
}

View file

@ -9,7 +9,6 @@ _: {
# cachix.org
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8="
"ags.cachix.org-1:naAvMrz0CuYqeyGNyLgE010iUiuf/qx6kYrUv3NwAJ8="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8="
];

View file

@ -1,6 +0,0 @@
_: {
nixpkgs = {
overlays = [
];
};
}

View file

@ -6,8 +6,8 @@
...
}: let
cfg = config.home.gui;
ayugram = self.inputs.ayugram-desktop.packages.${pkgs.system}.ayugram-desktop;
freesm-launcher = self.inputs.freesm.packages.${pkgs.system}.freesmlauncher;
ayugram = self.inputs.ayugram-desktop.packages.${pkgs.stdenv.hostPlatform.system}.ayugram-desktop;
freesm-launcher = self.inputs.freesm.packages.${pkgs.stdenv.hostPlatform.system}.freesmlauncher;
in {
options.home.gui = {
enable = lib.mkEnableOption ''
@ -45,7 +45,6 @@ in {
vesktop
ayugram
anki-bin
obsidian
mindustry
lan-mouse
monero-gui
@ -70,10 +69,10 @@ in {
cfg.sessionType == "Hyprland"
) [
fum
timg
dconf
iwgtk
tokei
gajim
ifuse
yt-dlp
termusic
@ -86,17 +85,21 @@ in {
yubico-piv-tool
yubikey-manager
libimobiledevice
ungoogled-chromium
yubikey-touch-detector
yubikey-personalization
self.inputs.noctalia.packages.${system}.default
];
};
gtk.enable = true;
programs = {
chromium.enable = true;
spicetify.enable = true;
ghostty.enable = true;
git.enable = true;
obsidian.enable = true;
};
services = with lib.mkDefault; {

22
hand7s/programs/atuin.nix Normal file
View file

@ -0,0 +1,22 @@
_: {
programs = {
atuin = {
enable = true;
enableNushellIntegration = true;
enableFishIntegration = true;
settings = {
keymap_mode = "vim-normal";
};
flags = [
"--disable-up-arrow"
];
daemon = {
enable = true;
logLevel = "info";
};
};
};
}

13
hand7s/programs/broot.nix Normal file
View file

@ -0,0 +1,13 @@
_: {
programs = {
broot = {
enable = true;
enableNushellIntegration = true;
enableFishIntegration = true;
settings = {
modal = true;
};
};
};
}

View file

@ -0,0 +1,9 @@
_: {
programs = {
carapace = {
enable = true;
enableNushellIntegration = true;
enableFishIntegration = true;
};
};
}

View file

@ -4,7 +4,6 @@
package = pkgs.google-chrome.override {
commandLineArgs = [
"--enable-features=AcceleratedVideoEncoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE,VaapiIgnoreDriverChecks,VaapiVideoDecoder,PlatformHEVCDecoderSupport,UseMultiPlaneFormatForHardwareVideo,SkiaGraphite"
"--enable-unsafe-webgpu"
"--ignore-gpu-blocklist"
"--enable-zero-copy"
];

View file

@ -3,6 +3,7 @@ _: {
direnv = {
enable = true;
silent = true;
enableNushellIntegration = true;
nix-direnv = {
enable = true;

View file

@ -3,6 +3,7 @@ _: {
eza = {
enable = true;
enableFishIntegration = true;
enableNushellIntegration = true;
git = true;
icons = "always";
};

View file

@ -3,6 +3,7 @@ _: {
fzf = {
enable = true;
enableFishIntegration = true;
tmux = {
enableShellIntegration = true;
};

View file

@ -12,7 +12,7 @@
bell-features = "system";
command = "${lib.getExe pkgs.fish}";
command = "${lib.getExe pkgs.nushell}";
confirm-close-surface = false;

26
hand7s/programs/gitui.nix Normal file
View file

@ -0,0 +1,26 @@
_: {
programs = {
gitui = {
enable = true;
keyConfig = ''
(
move_left: Some(( code: Char('h'), modifiers: "" )),
move_right: Some(( code: Char('l'), modifiers: "" )),
move_up: Some(( code: Char('k'), modifiers: "" )),
move_down: Some(( code: Char('j'), modifiers: "" )),
popup_up: Some(( code: Char('k'), modifiers: "" )),
popup_down: Some(( code: Char('j'), modifiers: "" )),
page_up: Some(( code: Char('b'), modifiers: "CONTROL" )),
page_down: Some(( code: Char('f'), modifiers: "CONTROL" )),
stage_hunk: Some(( code: Char('x'), modifiers: "" )),
status_reset_item: Some(( code: Char('U'), modifiers: "SHIFT" )),
shift_up: Some(( code: Char('K'), modifiers: "SHIFT" )),
shift_down: Some(( code: Char('J'), modifiers: "SHIFT" )),
)
'';
};
};
}

View file

@ -2,7 +2,15 @@
pkgs,
lib,
...
}: {
}: let
formatter = {
run = "treefmt";
args = [
"--stdin"
"$f"
];
};
in {
programs = {
helix = {
package = pkgs.helix;
@ -10,52 +18,133 @@
defaultEditor = true;
extraPackages = with pkgs; [
nixd
ruff
vtsls
rust-analyzer
];
settings = {
editor = {
line-number = "relative";
cursorline = true;
auto-pairs = true;
auto-save = {
focus-lost = true;
after-delay = {
enable = true;
timeout = 3000;
};
};
soft-wrap = {
enable = true;
};
inline-diagnostics = {
cursor-line = "hint";
};
lsp = {
display-messages = true;
enable = true;
display-progress-messages = true;
display-inlay-hints = true;
};
cursor-shape = {
normal = "underline";
insert = "block";
select = "underline";
};
};
};
languages = {
language-servers = {
nixd = {
"nixd" = {
command = "${lib.getExe pkgs.nixd}";
args = [
"--inlay-hints=true"
];
};
"ruff" = {
command = "${lib.getExe pkgs.ruff}";
args = [
"server"
];
};
"vtsls" = {
command = "${lib.getExe pkgs.vtsls}";
args = [
"--stdio"
];
};
"rust-lsp" = {
command = "${lib.getExe pkgs.rust-analyzer}";
};
};
language = [
languages = [
{
name = "nix";
comment-token = "#";
injection-regex = "nix";
indent = {
tab-width = 4;
unit = " ";
};
formatter = {
command = "${lib.getExe pkgs.nix}";
args = [
"fmt"
];
};
file-types = [
"nix"
];
auto-format = true;
language-servers = [
"nixd"
];
inherit
formatter
;
}
{
name = "python";
auto-format = true;
language-servers = [
"ruff"
];
inherit
formatter
;
}
{
name = "rust";
auto-format = true;
language-servers = [
"rust-lsp"
];
inherit
formatter
;
}
{
name = "javascript";
auto-format = true;
language-servers = [
"vtsls"
];
inherit
formatter
;
}
{
name = "typescript";
auto-format = true;
language-servers = [
"vtsls"
];
inherit
formatter
;
}
];
};

View file

@ -3,6 +3,7 @@ _: {
nix-index = {
enable = true;
enableFishIntegration = true;
enableNushellIntegration = true;
};
};
}

View file

@ -19,9 +19,10 @@
forceBlackScreenCorners = true;
showScreenCorners = true;
screenRadiusRatio = 1;
radiusRatio = 0.7;
radiusRatio = 1.5;
enableBlurBehind = true;
enableShadows = true;
shadowDirection = "center";
shadowDirection = "bottom_right";
};
appLauncher = {
@ -40,10 +41,12 @@
};
bar = {
floating = false;
density = "default";
floating = true;
density = "comfortable";
position = "right";
showCapsule = false;
showCapsule = true;
contentPadding = 8;
widgetSpacing = 10;
marginVertical = 1;
marginHorizontal = 0.6;
monitors = [
@ -119,7 +122,7 @@
};
notifications = {
location = "top_center";
location = "top_right";
};
controlCenter = {
@ -147,6 +150,7 @@
};
dock = {
dockType = "static";
displayMode = "auto_hide";
floatingRatio = 1;
onlySameOutput = true;
@ -198,9 +202,9 @@
};
ui = {
fontDefault = lib.mkForce "Nerd Fonts Hack";
fontDefault = lib.mkForce "Monaspace Aether Nerd Font";
fontDefaultScale = 1;
fontFixed = lib.mkForce "Nerd Fonts Hack";
fontFixed = lib.mkForce "Roboto Mono Nerd Font";
fontFixedScale = 1;
idleInhibitorEnabled = false;
tooltipsEnabled = true;

View file

@ -0,0 +1,24 @@
{
pkgs,
lib,
...
}: {
programs = {
nushell = {
enable = true;
extraEnv = ''
$env.EDITOR = "hx"
'';
extraConfig = ''
$env.config.show_banner = false
$env.config.buffer_editor = "hx"
def fish-run [cmd: string] {
^${lib.getExe pkgs.fish} -c $cmd
}
'';
};
};
}

View file

@ -6,13 +6,13 @@
}: {
programs = {
spicetify = {
enabledExtensions = with self.inputs.spicetify-nix.legacyPackages.${pkgs.system}.extensions; [
enabledExtensions = with self.inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system}.extensions; [
adblock
hidePodcasts
shuffle
];
theme = lib.mkForce self.inputs.spicetify-nix.legacyPackages.${pkgs.system}.themes.text;
theme = lib.mkForce self.inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system}.themes.text;
colorScheme = lib.mkForce "TokyoNight";
};
};

View file

@ -3,15 +3,17 @@ _: {
starship = {
enable = true;
enableFishIntegration = true;
enableNushellIntegration = true;
settings = {
add_newline = true;
format = ''
[](bold blue) $username at $hostname on $os
[](bold blue) $directory$git_branch$git_commit$git_state$git_metrics$git_status
[](bold blue) $directory$git_branch$git_commit$git_state$git_metrics$git_status$kubernetes$rust
[>](bold blue) '';
right_format = ''$cmd_duration ($character) at $time'';
right_format = ''$cmd_duration ($status) at $time'';
os = {
format = "[($name $codename$version$edition $symbol )]($style)";
@ -33,9 +35,18 @@ _: {
style_user = "bold green";
};
character = {
success_symbol = "[](bold green)";
error_symbol = "[](bold red)";
status = {
disabled = false;
format = "[$symbol]($style)";
symbol = "";
success_symbol = "";
not_executable_symbol = "🚫";
not_found_symbol = "🔍";
sigint_symbol = "[🛑](bold red)";
signal_symbol = "[](bold yellow)";
pipestatus = true;
pipestatus_separator = "|";
};
time = {
@ -53,6 +64,14 @@ _: {
show_notifications = false;
format = "was [$duration](bold green)";
};
rust = {
format = "via [ $version](red bold)";
};
kubernetes = {
disabled = false;
};
};
};
};

View file

@ -7,6 +7,8 @@
yazi = {
enable = true;
enableFishIntegration = true;
enableNushellIntegration = true;
shellWrapperName = "yz";
settings = {
mgr = {
@ -42,33 +44,63 @@
};
opener = {
play = [
"play" = [
{
run = "${lib.getExe pkgs.mpv} ''$@''";
run = ''${lib.getExe pkgs.mpv} --vo=tct "%s"'';
block = true;
for = "unix";
}
];
view = [
"view" = [
{
run = "${lib.getExe pkgs.timg} ''-p k -C $@ | ${lib.getExe' pkgs.uutils-coreutils-noprefix "more"}''";
run = ''${lib.getExe pkgs.viu} -t "%s"'';
block = true;
for = "unix";
}
];
edit = [
"edit" = [
{
run = "${lib.getExe pkgs.helix} ''$@''";
run = ''${lib.getExe pkgs.helix} "%s"'';
block = true;
for = "unix";
}
];
open = [
"doc" = [
{
run = "${lib.getExe' pkgs.xdg-utils "xdg-open"} ''$@''";
run = ''${lib.getExe pkgs.tdf} "%s"'';
block = true;
for = "unix";
}
];
"hex" = [
{
run = ''${lib.getExe pkgs.hexyl} "$s"'';
}
];
"exfil" = [
{
run = ''${lib.getExe pkgs.ouch} de "%s"'';
block = true;
for = "unix";
}
];
"book" = [
{
run = ''${lib.getExe pkgs.epr} "%s"'';
block = true;
for = "unix";
}
];
"open" = [
{
run = ''${lib.getExe' pkgs.xdg-utils "xdg-open"} "%s"'';
orphan = true;
for = "unix";
}
@ -78,23 +110,83 @@
open = {
rules = [
{
mime = "image/*";
use = "view";
}
{
mime = "text/*";
use = "edit";
mime = "video/*";
use = [
"play"
"open"
];
}
{
mime = "audio/*";
use = "play";
use = [
"play"
"open"
];
}
{
mime = "video/*";
use = "play";
mime = "application/epub+zip";
use = [
"book"
"edit"
];
}
{
mime = "application/pdf";
use = [
"doc"
"open"
];
}
{
mime = "application/{octet-stream,x-executable,x-sharedlib,x-pie-executable}";
use = [
"hex"
"open"
];
}
{
mime = "application/vnd.*";
use = [
"open"
"edit"
];
}
{
mime = "font/*";
use = [
"open"
"edit"
];
}
{
mime = "application/{zip,rar,7z*,tar*,x-tar,x-bzip*,x-gzip,x-xz}";
use = [
"exfil"
"open"
];
}
{
mime = "text/*";
use = [
"edit"
"open"
];
}
{
mime = "*";
use = [
"edit"
"open"
];
}
];
};

View file

@ -6,8 +6,32 @@
programs = {
zellij = {
enable = true;
settings = {
default_shell = "${lib.getExe pkgs.fish}";
options = {
copy_on_select = false;
};
keybinds = {
unbind = [
"Alt n"
"Alt i"
"Alt o"
"Alt h"
"Alt j"
"Alt k"
"Alt l"
"Alt f"
"Alt Up"
"Alt Down"
"Alt Right"
"Alt Left"
"Alt +"
"Alt -"
];
};
default_shell = "${lib.getExe pkgs.nushell}";
show_startup_tips = false;
show_release_notes = false;
simplified_ui = true;

View file

@ -3,6 +3,7 @@ _: {
zoxide = {
enable = true;
enableFishIntegration = true;
enableNushellIntegration = true;
};
};
}

View file

@ -1,22 +1,22 @@
_: {
stylix = {
base16Scheme = {
scheme = "Tokyonight by Folke Lemaitre (https://github.com/folke)";
name = "Tokyonight";
scheme = "Tokyo-Night-Storm-MD3e";
name = "TokyoNightStormMD3e";
base00 = "#24283b";
base01 = "#1f2335";
base02 = "#292e42";
base03 = "#565f89";
base04 = "#a9b1d6";
base05 = "#c0caf5";
base06 = "#c0caf5";
base07 = "#c0caf5";
base06 = "#cdd6f4";
base07 = "#d5d6db";
base08 = "#f7768e";
base09 = "#ff9e64";
base0A = "#e0af68";
base0B = "#9ece6a";
base0C = "#1abc9c";
base0D = "#41a6b5";
base0C = "#7dcfff";
base0D = "#7aa2f7";
base0E = "#bb9af7";
base0F = "#ff007c";
};

View file

@ -2,30 +2,30 @@
stylix = {
fonts = {
sizes = {
applications = 10;
desktop = 8;
popups = 10;
terminal = 10;
applications = 12;
desktop = 11;
popups = 11;
terminal = 12;
};
monospace = {
package = pkgs.nerd-fonts.roboto-mono;
name = "Roboto-Mono Nerd Font";
package = pkgs.nerd-fonts.monaspace;
name = "Monospace Aether Nerd Font";
};
emoji = {
package = pkgs.nerd-fonts.symbols-only;
name = "Symbols Only Nerd Font";
package = pkgs.noto-fonts-color-emoji;
name = "Noto Color Emoji";
};
sansSerif = {
package = pkgs.nerd-fonts.aurulent-sans-mono;
name = "Aurulent Sans Mono Nerd Font";
package = pkgs.nerd-fonts.iosevka-term-slab;
name = "Iosevka Term Slab Nerd Font";
};
serif = {
package = pkgs.nerd-fonts.hack;
name = "Hack Nerd Font";
package = pkgs.nerd-fonts.noto;
name = "Noto Serif Nerd Font";
};
};
};

View file

@ -1,32 +0,0 @@
_: {
stylix = {
base16Scheme = {
base00 = "2a1617";
base01 = "5d3f3f";
base02 = "7a5bab";
base03 = "bb9499";
base04 = "eea1cf";
base05 = "f5dddd";
base06 = "ffebff";
base07 = "ffede9";
base08 = "e36b70";
base09 = "ac878e";
base0A = "db7356";
base0B = "a78897";
base0C = "ca7a79";
base0D = "b28776";
base0E = "d8708b";
base0F = "ec6653";
base10 = "2a1617";
base11 = "2a1617";
base12 = "e36b70";
base13 = "ac878e";
base14 = "a78897";
base15 = "ca7a79";
base16 = "b28776";
base17 = "d8708b";
scheme = "hand7s";
name = "red_ish";
};
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Before After
Before After

View file

@ -1,6 +1,6 @@
{
self,
config,
self,
pkgs,
lib,
...
@ -14,22 +14,22 @@
)
true;
package = self.inputs.hyprland.packages.${pkgs.system}.hyprland;
portalPackage = self.inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland;
package = self.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage = self.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
settings = {
monitor = ", 2560x1440@165.00Hz, 0x0, 1";
general = {
gaps_in = "5";
gaps_out = "20";
border_size = "2";
gaps_in = 8;
gaps_out = 20;
border_size = 0;
layout = "dwindle";
snap = {
enabled = false;
window_gap = "5";
monitor_gap = "5";
window_gap = 10;
monitor_gap = 10;
border_overlap = false;
};
};
@ -39,9 +39,9 @@
kb_options = "grp:caps_toggle";
numlock_by_default = true;
follow_mouse = "1";
follow_mouse = 1;
left_handed = false;
sensitivity = "0";
sensitivity = 0;
special_fallthrough = true;
focus_on_close = 1;
@ -64,27 +64,29 @@
};
decoration = {
active_opacity = "0.85";
inactive_opacity = "0.65";
active_opacity = "0.92";
inactive_opacity = "0.88";
fullscreen_opacity = "1.0";
rounding = "10";
dim_inactive = true;
dim_strength = "0.15";
dim_special = "0.0";
dim_around = "0.05";
rounding = 24;
rounding_power = "2";
dim_inactive = false;
shadow = {
enabled = true;
render_power = "4";
range = "4";
render_power = 3;
range = 20;
ignore_window = false;
offset = "0 4";
scale = "1.0";
};
blur = {
enabled = true;
size = "10";
passes = "5";
size = 8;
passes = 3;
vibrancy = 0.2;
};
};
@ -92,7 +94,7 @@
"${lib.getExe' pkgs.systemd "systemctl"} --user start hyprpaper.service"
"${lib.getExe' pkgs.systemd "systemctl"} --user start hypridle.service"
"${lib.getExe' pkgs.systemd "systemctl"} --user start hyprpolkitagent.service"
"${lib.getExe self.inputs.noctalia.packages.${pkgs.system}.default}"
"${lib.getExe self.inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default}"
"${lib.getExe' pkgs.hyprland "hyprctl"} setcursor material_light_cursors 20"
];
@ -100,12 +102,12 @@
bind = [
"ALT, return, exec, ${lib.getExe pkgs.ghostty}"
"ALT, Q, killactive,"
"ALT, S, exec, ${lib.getExe self.inputs.noctalia.packages.${pkgs.system}.default} ipc call launcher toggle"
"ALT, S, exec, ${lib.getExe self.inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default} ipc call launcher toggle"
"ALT, F, fullscreen, 0"
"ALT, L, exec, ${lib.getExe pkgs.hyprlock}"
"ALT SHIFT, space, togglefloating, active"
"ALT SHIFT, S, exec, ${lib.getExe pkgs.grimblast} --notify --freeze copysave area /home/hand7s/Pictures/Screenshots/$(date '+%y%m%d_%H-%M-%s').png | , killall -9 hyprpicker"
"ALT SHIFT, S, exec, ${lib.getExe pkgs.grimblast} --notify --freeze copysave area /home/hand7s/Pictures/Screenshots/$(date '+%y%m%d_%H-%M-%s').png || , killall -9 hyprpicker"
"ALT, left, movefocus, l"
"ALT, right, movefocus, r"
@ -163,18 +165,34 @@
];
animation = [
"workspace_wraparound = true"
"enabled = true"
"animation = windows, 1, 7, popin"
"animation = windowsOut, 1, 7, popin"
"bezier = md3_standard, 0.2, 0.0, 0.0, 1.0"
"bezier = md3_decel, 0.05, 0.7, 0.1, 1.0"
"bezier = md3_accel, 0.3, 0.0, 0.8, 0.15"
"animation = layers, 1, 7, fade"
"bezier = menu_decel, 0.1, 1.0, 0.1, 1.0"
"bezier = menu_accel, 0.38, 0.04, 1.0, 0.07"
"animation = border, 1, 10"
"animation = borderangle, 1, 10"
"animation = windows, 1, 4, md3_decel, slide"
"animation = windowsIn, 1, 4, md3_decel, slide"
"animation = windowsOut, 1, 2, md3_accel, slide"
"animation = fade, 1, 2, md3_standard"
"animation = layers, 1, 2, md3_decel, slide"
"animation = layersIn, 1, 3, md3_decel, slide"
"animation = layersOut, 1, 2, md3_accel, slide"
"animation = fadeLayersIn, 1, 3, menu_decel"
"animation = fadeLayersOut, 1, 2, menu_accel"
"animation = workspaces, 1, 4, md3_standard, slidefade 20%"
"animation = specialWorkspace, 1, 3, md3_decel, slidevert"
];
"animation = workspaces, 1, 7, slidevert"
"animation = specialWorkspace, 1, 7, slidevert"
windowrulev2 = [
"float, class:^(yazi-picker)$"
"center, class:^(yazi-picker)$"
"size 1000 600, class:^(yazi-picker)$"
"stayfocused, class:^(yazi-picker)$"
];
misc = {
@ -185,11 +203,12 @@
animate_mouse_windowdragging = true;
focus_on_activate = true;
close_special_on_empty = true;
initial_workspace_tracking = "2";
vrr = "3";
};
render = {
cm_auto_hdr = 0;
direct_scanout = "2";
};
binds = {
@ -264,8 +283,7 @@
plugins = with pkgs.hyprlandPlugins; [
hypr-dynamic-cursors
hyprscrolling
hyprexpo
hyprspace
];
};
};

22
hand7s/xdg/configFile.nix Normal file
View file

@ -0,0 +1,22 @@
{
lib,
pkgs,
...
}: {
xdg = {
configFile = {
"xdg-desktop-portal-termfilechooser/config" = {
enable = true;
force = true;
text = ''
[filechooser]
cmd="${pkgs.xdg-desktop-portal-termfilechooser}/share/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh"
default_dir=$HOME
env=TERMCMD="${lib.getExe pkgs.ghostty} --title='yazi-picker' -e"
open_mode=suggested
save_mode=last
'';
};
};
};
}

11
hand7s/xdg/mime.nix Normal file
View file

@ -0,0 +1,11 @@
_: {
xdg = {
mime = {
enable = true;
};
mimeApps = {
enable = true;
};
};
}

35
hand7s/xdg/portal.nix Normal file
View file

@ -0,0 +1,35 @@
{
config,
pkgs,
lib,
...
}: {
xdg = {
portal = {
enable = lib.mkIf config.home.gui.enable true;
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
xdg-desktop-portal-termfilechooser
];
config = {
common = {
default = [
"gtk"
];
};
hyprland = {
default = [
"gtk"
"hyprland"
];
"org.freedesktop.impl.portal.FileChooser" = [
"termfilechooser"
];
};
};
};
};
}

12
hand7s/xdg/terminal.nix Normal file
View file

@ -0,0 +1,12 @@
_: {
xdg = {
terminal-exec = {
enable = true;
settings = {
default = [
"com.mitchellh.ghostty.desktop"
];
};
};
};
}

View file

@ -1,4 +1,4 @@
{...}: {
_: {
boot = {
lanzaboote = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
boot = {
tmp = {
useTmpfs = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
console = {
useXkbConfig = true;
};

View file

@ -1,4 +1,4 @@
{...}: {
_: {
disko = {
devices = {
disk = {

View file

@ -1,4 +1,4 @@
{...}: {
_: {
disko = {
devices = {
lvm_vg = {

View file

@ -1,4 +1,4 @@
{...}: {
_: {
hardware = {
enableRedistributableFirmware = true;
cpu = {

View file

@ -1,4 +1,4 @@
{...}: {
_: {
hardware = {
keyboard = {
qmk = {

View file

@ -1,4 +1,4 @@
{...}: {
_: {
zramSwap = {
enable = true;
algorithm = "zstd";

View file

@ -1,4 +1,4 @@
{...}: {
_: {
i18n = {
defaultLocale = "en_US.UTF-8";
supportedLocales = [

View file

@ -1,4 +1,4 @@
{...}: {
_: {
networking = {
firewall = {
allowPing = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
networking = {
hostId = "3c4734c8";
};

View file

@ -1,4 +1,4 @@
{...}: {
_: {
networking = {
hostName = "s0melapt0p-nix";
};

View file

@ -1,4 +1,4 @@
{...}: {
_: {
networking = {
hosts = {
# EVA00

View file

@ -1,4 +1,4 @@
{...}: {
_: {
networking = {
nameservers = [
# cf dns

View file

@ -1,4 +1,4 @@
{...}: {
_: {
networking = {
networkmanager = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
networking = {
timeServers = [
"0.nixos.pool.ntp.org"

View file

@ -1,4 +1,4 @@
{...}: {
_: {
networking = {
wireguard = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
nix = {
settings = {
sandbox = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
nix = {
settings = {
auto-optimise-store = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
nix = {
settings = {
experimental-features = [

View file

@ -1,4 +1,4 @@
{...}: {
_: {
nix = {
settings = {
substituters = [

View file

@ -1,4 +1,4 @@
{...}: {
_: {
nix = {
settings = {
trusted-public-keys = [

View file

@ -1,4 +1,4 @@
{...}: {
_: {
nix = {
settings = {
trusted-users = [

View file

@ -1,4 +1,4 @@
{...}: {
_: {
nixpkgs = {
config = {
allowUnfree = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
nixpkgs = {
overlays = [
];

View file

@ -1,4 +1,4 @@
{...}: {
_: {
nixpkgs = {
system = "x86_64-linux";
hostPlatform = "x86_64-linux";

View file

@ -1,4 +1,4 @@
{...}: {
_: {
programs = {
gamemode = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
programs = {
nh = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
programs = {
ssh = {
startAgent = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
programs = {
yubikey-touch-detector = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
security = {
pam = {
services = {

View file

@ -1,4 +1,4 @@
{...}: {
_: {
security = {
polkit = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
security = {
rtkit = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
security = {
sudo-rs = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
services = {
fprintd = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
services = {
libinput = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
services = {
netbird = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
services = {
pipewire = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
services = {
thinkfan = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
services = {
zapret = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
services = {
zerotierone = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
systemd = {
oomd = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
time = {
timeZone = "Europe/Moscow";
hardwareClockInLocalTime = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
users = {
mutableUsers = false;
};

View file

@ -1,4 +1,4 @@
{...}: {
_: {
users = {
users = {
hand7s = {

View file

@ -1,4 +1,4 @@
{...}: {
_: {
users = {
users = {
root = {

View file

@ -1,4 +1,4 @@
{...}: {
_: {
virtualisation = {
docker = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
xdg = {
icons = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
_: {
xdg = {
mime = {
enable = true;

View file

@ -1,57 +0,0 @@
{self, ...}: {
imports = [
"${self}/kyra/disko/disk.nix"
"${self}/kyra/disko/lvm_vg.nix"
"${self}/kyra/boot/initrd/availableKernelModules.nix"
"${self}/kyra/boot/initrd/kernelModules.nix"
"${self}/kyra/boot/loader/grub.nix"
"${self}/kyra/boot/kernel.nix"
"${self}/kyra/boot/tmp.nix"
"${self}/kyra/environment/systemPackages.nix"
"${self}/kyra/hardware/zram.nix"
"${self}/kyra/home-manager/users.nix"
"${self}/kyra/networking/interfaces/ens3.nix"
"${self}/kyra/networking/firewall/ens3.nix"
"${self}/kyra/networking/firewall.nix"
"${self}/kyra/networking/dns.nix"
"${self}/kyra/networking/wireguard.nix"
"${self}/kyra/networking/defaultGateway.nix"
"${self}/kyra/nix/settings/allowed-users.nix"
"${self}/kyra/nix/settings/experimental-features.nix"
"${self}/kyra/nix/settings/substituters.nix"
"${self}/kyra/nix/settings/trusted-public-keys.nix"
"${self}/kyra/nix/settings/trusted-users.nix"
"${self}/kyra/nix/settings/auto-optimise-store.nix"
"${self}/kyra/nixpkgs/config.nix"
"${self}/kyra/nixpkgs/platform.nix"
"${self}/kyra/programs/nh.nix"
"${self}/kyra/services/openssh.nix"
"${self}/kyra/services/fail2ban.nix"
"${self}/kyra/services/netbird.nix"
"${self}/kyra/services/qemuGuest.nix"
"${self}/kyra/services/caddy.nix"
"${self}/kyra/services/sing-box.nix"
"${self}/kyra/sops/age.nix"
"${self}/kyra/sops/defaults.nix"
"${self}/kyra/sops/secrets.nix"
"${self}/kyra/system/stateVersion.nix"
"${self}/kyra/users/users.nix"
"${self}/kyra/users/users/alep0u.nix"
"${self}/kyra/users/users/hand7s.nix"
"${self}/kyra/users/users/root.nix"
"${self}/kyra/virtualisation/docker.nix"
];
}

View file

@ -1,9 +1,14 @@
{
{name, ...}: {
disko = {
devices = {
disk = {
virt_main = {
device = "/dev/sda";
"virt_main" = {
device =
{
"yara" = "/dev/vda";
}.${
name
} or "/dev/sda";
type = "disk";
content = {
type = "gpt";

View file

@ -4,12 +4,10 @@
"hand7s" = {
imports = [
"${self}/hand7s/"
self.inputs.agenix.homeManagerModules.default
self.inputs.spicetify-nix.homeManagerModules.default
self.inputs.hyprland.homeManagerModules.default
self.inputs.chaotic.homeManagerModules.default
self.inputs.sops-nix.homeManagerModules.sops
self.inputs.nix-index-database.homeModules.nix-index
self.inputs.noctalia.homeModules.default
];

View file

@ -1,17 +0,0 @@
{
lib,
config,
...
}: {
networking = {
defaultGateway = lib.mkIf (config.networking.hostName == "mel") {
address = "45.11.229.1";
interface = "ens3";
};
defaultGateway6 = lib.mkIf (config.networking.hostName == "mel") {
address = "2a0e:97c0:3e3:2Oa::1";
interface = "ens3";
};
};
}

View file

@ -1,11 +1,8 @@
_: {
networking = {
firewall = {
enable = true;
allowPing = true;
checkReversePath = false;
enable = false;
};
useNetworkd = true;
};
}

View file

@ -1,57 +0,0 @@
{
config,
lib,
...
}: {
networking = {
firewall = {
interfaces = {
ens3 = {
allowedUDPPorts =
[
53580
53590
]
++ lib.optionals (config.networking.hostName == "hazel") [
443
25565
24
25
110
143
465
587
993
995
4190
53570
];
allowedTCPPorts =
[
53580
53590
]
++ lib.optionals (config.networking.hostName == "hazel") [
443
25565
24
25
110
143
465
587
993
995
4190
53570
];
};
};
};
};
}

View file

@ -1,5 +1,5 @@
_: {
{name, ...}: {
networking = {
hostName = "kyra";
hostName = name;
};
}

View file

@ -1,36 +0,0 @@
{
config,
lib,
...
}: {
networking = {
interfaces = {
ens3 = {
ipv4 = {
addresses = lib.optionals (config.networking.hostName == "mel") [
{
address = "45.11.229.254";
prefixLength = 24;
}
];
};
ipv6 = {
addresses =
lib.optionals (config.networking.hostName == "hazel") [
{
address = "2a03:6f01:1:2::cb1e";
prefixLength = 64;
}
]
++ lib.optionals (config.networking.hostName == "mel") [
{
address = "2a0e:97c0:3e3:2Oa::1";
prefixLength = 64;
}
];
};
};
};
};
}

View file

@ -0,0 +1,7 @@
_: {
networking = {
nftables = {
enable = true;
};
};
}

18
kyra/security/acme.nix Normal file
View file

@ -0,0 +1,18 @@
{config, ...}: {
security = {
acme = {
acceptTerms = true;
defaults = {
email = "litvinovb0@gmail.com";
};
certs = {
"hand7s.org" = {
dnsProvider = "cloudflare";
credentialsFile = config.sops.templates."acme.env".path;
group = "sing-box";
};
};
};
};
}

Some files were not shown because too many files have changed in this diff Show more