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 = { services = {
firewalld = { firewalld = {
enable = true; enable = true;

803
flake.lock generated

File diff suppressed because it is too large Load diff

331
flake.nix
View file

@ -29,6 +29,13 @@
repo = "ayugram-desktop"; repo = "ayugram-desktop";
}; };
"cachix" = {
flake = true;
type = "github";
owner = "cachix";
repo = "cachix";
};
"chaotic" = { "chaotic" = {
flake = true; flake = true;
type = "github"; type = "github";
@ -51,13 +58,6 @@
repo = "devenv"; repo = "devenv";
}; };
"devshell" = {
flake = true;
type = "github";
owner = "numtide";
repo = "devshell";
};
"disko" = { "disko" = {
flake = true; flake = true;
type = "github"; type = "github";
@ -85,6 +85,13 @@
repo = "freesmlauncher"; repo = "freesmlauncher";
}; };
"fenix" = {
flake = true;
type = "github";
owner = "nix-community";
repo = "fenix";
};
"github-actions-nix" = { "github-actions-nix" = {
flake = true; flake = true;
type = "github"; type = "github";
@ -367,7 +374,7 @@
self self
; ;
} { } {
debug = false; debug = true;
systems = [ systems = [
"x86_64-linux" "x86_64-linux"
@ -376,49 +383,86 @@
imports = [ imports = [
# modules # modules
inputs.agenix-rekey.flakeModule
inputs.disko.flakeModules.default inputs.disko.flakeModules.default
inputs.devshell.flakeModule
inputs.treefmt-nix.flakeModule inputs.treefmt-nix.flakeModule
inputs.home-manager.flakeModules.home-manager inputs.home-manager.flakeModules.home-manager
inputs.git-hooks-nix.flakeModule inputs.git-hooks-nix.flakeModule
inputs.devenv.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 inputs.github-actions-nix.flakeModule
]; ];
flake = { flake = let
# home-manager, sorta broken when standalone inherit
homeConfigurations = { (inputs."nixpkgs".lib)
"hand7s" = inputs.home-manager.lib.homeManagerConfiguration { nixosSystem
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux; filesystem
extraSpecialArgs = { genAttrs
osConfig.networking.hostName = ""; 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 inherit
inputs inputs
name
self self
; ;
}; };
modules = [
"${self}/hand7s/standalone.nix"
inputs.spicetify-nix.homeManagerModules.default
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 kyraStack =
genAttrs [
# my PC "hazel"
nixosConfigurations = { "lynn"
"yara"
"ivy"
"mel"
]
kyraHost;
in {
# Main PC
nixosConfigurations =
{
"ada" = inputs.nixpkgs.lib.nixosSystem { "ada" = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { specialArgs = {
@ -430,7 +474,6 @@
modules = [ modules = [
"${self}/ada/" "${self}/ada/"
inputs.agenix.nixosModules.default
inputs.chaotic.nixosModules.default inputs.chaotic.nixosModules.default
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
inputs.sops-nix.nixosModules.sops inputs.sops-nix.nixosModules.sops
@ -443,7 +486,7 @@
]; ];
}; };
# my laptop # Main Laptop
"isla" = inputs.nixpkgs.lib.nixosSystem { "isla" = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { specialArgs = {
@ -455,7 +498,6 @@
modules = [ modules = [
"${self}/isla/" "${self}/isla/"
inputs.agenix.nixosModules.default
inputs.chaotic.nixosModules.default inputs.chaotic.nixosModules.default
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
inputs.sops-nix.nixosModules.sops inputs.sops-nix.nixosModules.sops
@ -468,108 +510,6 @@
]; ];
}; };
# 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 # homelab
"viola" = inputs.nixpkgs.lib.nixosSystem { "viola" = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
@ -582,7 +522,6 @@
modules = [ modules = [
"${self}/viola" "${self}/viola"
inputs.agenix.nixosModules.default
inputs.chaotic.nixosModules.default inputs.chaotic.nixosModules.default
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
inputs.sops-nix.nixosModules.sops inputs.sops-nix.nixosModules.sops
@ -606,7 +545,6 @@
modules = [ modules = [
"${self}/wanda/" "${self}/wanda/"
inputs.agenix.nixosModules.default
inputs.nixos-wsl.nixosModules.default inputs.nixos-wsl.nixosModules.default
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
inputs.home-manager.nixosModules.default inputs.home-manager.nixosModules.default
@ -616,6 +554,52 @@
inputs.nix-mineral.nixosModules.nix-mineral 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;
extraSpecialArgs = {
osConfig.networking.hostName = "";
inherit
inputs
self
;
};
modules = [
"${self}/hand7s/standalone.nix"
inputs.spicetify-nix.homeManagerModules.default
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
];
};
}; };
}; };
@ -630,7 +614,7 @@
flakeCheck = true; flakeCheck = true;
programs = { programs = {
alejandra = { "alejandra" = {
enable = true; enable = true;
priority = 1; priority = 1;
includes = [ includes = [
@ -638,7 +622,7 @@
]; ];
}; };
statix = { "statix" = {
enable = true; enable = true;
priority = 1; priority = 1;
includes = [ includes = [
@ -650,7 +634,7 @@
]; ];
}; };
deadnix = { "deadnix" = {
enable = true; enable = true;
priority = 1; priority = 1;
includes = [ includes = [
@ -683,74 +667,47 @@
gitPackage = pkgs.git; gitPackage = pkgs.git;
hooks = { hooks = {
alejandra = { "alejandra" = {
enable = true; enable = true;
settings = { settings = {
verbosity = "quiet";
check = true; check = true;
}; };
}; };
deadnix = { "deadnix" = {
enable = true; enable = true;
settings = { settings = {
edit = false; edit = false;
}; };
}; };
statix = { "statix" = {
enable = true; enable = true;
settings = {
config = "${pkgs.writeText ''statix.toml'' ''
disabled = [
"empty_pattern"
]
''}";
};
}; };
}; };
}; };
}; };
# numtide/devshells, basically a devShells but better # cachix/devenv, basically a devShells, even better than numtide/devshells
devshells = { devenv = {
shells = {
"default" = { "default" = {
name = "default"; enterShell = config.pre-commit.shellHook;
commands = [ devenv = {
{ root = toString /home/hand7s/Projects/flake;
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;
};
};
}; };
packages = with pkgs; packages =
[ [
just pkgs.just
config.treefmt.build.wrapper
] ]
++ config.pre-commit.settings.enabledPackages; ++ config.pre-commit.settings.enabledPackages;
}; };
}; };
};
# synapdeck/github-actions-nix, declaretive gha # synapdeck/github-actions-nix, declaretive gha
githubActions = { githubActions = {

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/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/defaults.nix"
"${self}/hand7s/home/gui.nix" "${self}/hand7s/home/gui.nix"
"${self}/hand7s/home/keyboard.nix" "${self}/hand7s/home/keyboard.nix"
"${self}/hand7s/home/packages.nix" "${self}/hand7s/home/packages.nix"
"${self}/hand7s/home/shellAliases.nix" "${self}/hand7s/home/shellAliases.nix"
"${self}/hand7s/home/variables.nix"
"${self}/hand7s/home/shell.nix"
"${self}/hand7s/nixpkgs/config.nix" "${self}/hand7s/nixpkgs/config.nix"
"${self}/hand7s/nixpkgs/overlays.nix" "${self}/hand7s/nixpkgs/overlays.nix"
@ -40,5 +46,15 @@
"${self}/hand7s/programs/direnv.nix" "${self}/hand7s/programs/direnv.nix"
"${self}/hand7s/programs/noctalia.nix" "${self}/hand7s/programs/noctalia.nix"
"${self}/hand7s/programs/iamb.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 = { 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 xh
dua dua
nvd nvd
tlrc
dust dust
sops sops
rsync rsync
procs procs
sshfs
sbctl sbctl
gping gping
comma comma
trippy trippy
bottom bottom
ragenix
ripgrep ripgrep
kubectl kubectl
gitoxide 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 # cachix.org
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8=" "chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8="
"ags.cachix.org-1:naAvMrz0CuYqeyGNyLgE010iUiuf/qx6kYrUv3NwAJ8="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8=" "chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8="
]; ];

View file

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

View file

@ -6,8 +6,8 @@
... ...
}: let }: let
cfg = config.home.gui; cfg = config.home.gui;
ayugram = self.inputs.ayugram-desktop.packages.${pkgs.system}.ayugram-desktop; ayugram = self.inputs.ayugram-desktop.packages.${pkgs.stdenv.hostPlatform.system}.ayugram-desktop;
freesm-launcher = self.inputs.freesm.packages.${pkgs.system}.freesmlauncher; freesm-launcher = self.inputs.freesm.packages.${pkgs.stdenv.hostPlatform.system}.freesmlauncher;
in { in {
options.home.gui = { options.home.gui = {
enable = lib.mkEnableOption '' enable = lib.mkEnableOption ''
@ -45,7 +45,6 @@ in {
vesktop vesktop
ayugram ayugram
anki-bin anki-bin
obsidian
mindustry mindustry
lan-mouse lan-mouse
monero-gui monero-gui
@ -70,10 +69,10 @@ in {
cfg.sessionType == "Hyprland" cfg.sessionType == "Hyprland"
) [ ) [
fum fum
timg
dconf dconf
iwgtk iwgtk
tokei tokei
gajim
ifuse ifuse
yt-dlp yt-dlp
termusic termusic
@ -86,17 +85,21 @@ in {
yubico-piv-tool yubico-piv-tool
yubikey-manager yubikey-manager
libimobiledevice libimobiledevice
ungoogled-chromium
yubikey-touch-detector yubikey-touch-detector
yubikey-personalization yubikey-personalization
self.inputs.noctalia.packages.${system}.default self.inputs.noctalia.packages.${system}.default
]; ];
}; };
gtk.enable = true;
programs = { programs = {
chromium.enable = true; chromium.enable = true;
spicetify.enable = true; spicetify.enable = true;
ghostty.enable = true; ghostty.enable = true;
git.enable = true; git.enable = true;
obsidian.enable = true;
}; };
services = with lib.mkDefault; { 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 { package = pkgs.google-chrome.override {
commandLineArgs = [ commandLineArgs = [
"--enable-features=AcceleratedVideoEncoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE,VaapiIgnoreDriverChecks,VaapiVideoDecoder,PlatformHEVCDecoderSupport,UseMultiPlaneFormatForHardwareVideo,SkiaGraphite" "--enable-features=AcceleratedVideoEncoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE,VaapiIgnoreDriverChecks,VaapiVideoDecoder,PlatformHEVCDecoderSupport,UseMultiPlaneFormatForHardwareVideo,SkiaGraphite"
"--enable-unsafe-webgpu"
"--ignore-gpu-blocklist" "--ignore-gpu-blocklist"
"--enable-zero-copy" "--enable-zero-copy"
]; ];

View file

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

View file

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

View file

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

View file

@ -12,7 +12,7 @@
bell-features = "system"; bell-features = "system";
command = "${lib.getExe pkgs.fish}"; command = "${lib.getExe pkgs.nushell}";
confirm-close-surface = false; 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, pkgs,
lib, lib,
... ...
}: { }: let
formatter = {
run = "treefmt";
args = [
"--stdin"
"$f"
];
};
in {
programs = { programs = {
helix = { helix = {
package = pkgs.helix; package = pkgs.helix;
@ -10,52 +18,133 @@
defaultEditor = true; defaultEditor = true;
extraPackages = with pkgs; [ extraPackages = with pkgs; [
nixd nixd
ruff
vtsls
rust-analyzer
]; ];
settings = { settings = {
editor = { editor = {
line-number = "relative"; line-number = "relative";
cursorline = true; 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 = { lsp = {
display-messages = true; enable = true;
display-progress-messages = true;
display-inlay-hints = true;
};
cursor-shape = {
normal = "underline";
insert = "block";
select = "underline";
}; };
}; };
}; };
languages = { languages = {
language-servers = { language-servers = {
nixd = { "nixd" = {
command = "${lib.getExe pkgs.nixd}"; command = "${lib.getExe pkgs.nixd}";
args = [ args = [
"--inlay-hints=true" "--inlay-hints=true"
]; ];
}; };
"ruff" = {
command = "${lib.getExe pkgs.ruff}";
args = [
"server"
];
}; };
language = [ "vtsls" = {
command = "${lib.getExe pkgs.vtsls}";
args = [
"--stdio"
];
};
"rust-lsp" = {
command = "${lib.getExe pkgs.rust-analyzer}";
};
};
languages = [
{ {
name = "nix"; name = "nix";
comment-token = "#"; auto-format = true;
injection-regex = "nix";
indent = {
tab-width = 4;
unit = " ";
};
formatter = {
command = "${lib.getExe pkgs.nix}";
args = [
"fmt"
];
};
file-types = [
"nix"
];
language-servers = [ language-servers = [
"nixd" "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 = { nix-index = {
enable = true; enable = true;
enableFishIntegration = true; enableFishIntegration = true;
enableNushellIntegration = true;
}; };
}; };
} }

View file

@ -19,9 +19,10 @@
forceBlackScreenCorners = true; forceBlackScreenCorners = true;
showScreenCorners = true; showScreenCorners = true;
screenRadiusRatio = 1; screenRadiusRatio = 1;
radiusRatio = 0.7; radiusRatio = 1.5;
enableBlurBehind = true;
enableShadows = true; enableShadows = true;
shadowDirection = "center"; shadowDirection = "bottom_right";
}; };
appLauncher = { appLauncher = {
@ -40,10 +41,12 @@
}; };
bar = { bar = {
floating = false; floating = true;
density = "default"; density = "comfortable";
position = "right"; position = "right";
showCapsule = false; showCapsule = true;
contentPadding = 8;
widgetSpacing = 10;
marginVertical = 1; marginVertical = 1;
marginHorizontal = 0.6; marginHorizontal = 0.6;
monitors = [ monitors = [
@ -119,7 +122,7 @@
}; };
notifications = { notifications = {
location = "top_center"; location = "top_right";
}; };
controlCenter = { controlCenter = {
@ -147,6 +150,7 @@
}; };
dock = { dock = {
dockType = "static";
displayMode = "auto_hide"; displayMode = "auto_hide";
floatingRatio = 1; floatingRatio = 1;
onlySameOutput = true; onlySameOutput = true;
@ -198,9 +202,9 @@
}; };
ui = { ui = {
fontDefault = lib.mkForce "Nerd Fonts Hack"; fontDefault = lib.mkForce "Monaspace Aether Nerd Font";
fontDefaultScale = 1; fontDefaultScale = 1;
fontFixed = lib.mkForce "Nerd Fonts Hack"; fontFixed = lib.mkForce "Roboto Mono Nerd Font";
fontFixedScale = 1; fontFixedScale = 1;
idleInhibitorEnabled = false; idleInhibitorEnabled = false;
tooltipsEnabled = true; 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 = { programs = {
spicetify = { spicetify = {
enabledExtensions = with self.inputs.spicetify-nix.legacyPackages.${pkgs.system}.extensions; [ enabledExtensions = with self.inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system}.extensions; [
adblock adblock
hidePodcasts hidePodcasts
shuffle 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"; colorScheme = lib.mkForce "TokyoNight";
}; };
}; };

View file

@ -3,15 +3,17 @@ _: {
starship = { starship = {
enable = true; enable = true;
enableFishIntegration = true; enableFishIntegration = true;
enableNushellIntegration = true;
settings = { settings = {
add_newline = true; add_newline = true;
format = '' format = ''
[](bold blue) $username at $hostname on $os [](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) ''; [>](bold blue) '';
right_format = ''$cmd_duration ($character) at $time''; right_format = ''$cmd_duration ($status) at $time'';
os = { os = {
format = "[($name $codename$version$edition $symbol )]($style)"; format = "[($name $codename$version$edition $symbol )]($style)";
@ -33,9 +35,18 @@ _: {
style_user = "bold green"; style_user = "bold green";
}; };
character = { status = {
success_symbol = "[](bold green)"; disabled = false;
error_symbol = "[](bold red)"; 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 = { time = {
@ -53,6 +64,14 @@ _: {
show_notifications = false; show_notifications = false;
format = "was [$duration](bold green)"; format = "was [$duration](bold green)";
}; };
rust = {
format = "via [ $version](red bold)";
};
kubernetes = {
disabled = false;
};
}; };
}; };
}; };

View file

@ -7,6 +7,8 @@
yazi = { yazi = {
enable = true; enable = true;
enableFishIntegration = true; enableFishIntegration = true;
enableNushellIntegration = true;
shellWrapperName = "yz"; shellWrapperName = "yz";
settings = { settings = {
mgr = { mgr = {
@ -42,33 +44,63 @@
}; };
opener = { opener = {
play = [ "play" = [
{ {
run = "${lib.getExe pkgs.mpv} ''$@''"; run = ''${lib.getExe pkgs.mpv} --vo=tct "%s"'';
block = true; block = true;
for = "unix"; 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; block = true;
for = "unix"; for = "unix";
} }
]; ];
edit = [ "edit" = [
{ {
run = "${lib.getExe pkgs.helix} ''$@''"; run = ''${lib.getExe pkgs.helix} "%s"'';
block = true; block = true;
for = "unix"; 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; orphan = true;
for = "unix"; for = "unix";
} }
@ -78,23 +110,83 @@
open = { open = {
rules = [ rules = [
{ {
mime = "image/*"; mime = "video/*";
use = "view"; use = [
} "play"
"open"
{ ];
mime = "text/*";
use = "edit";
} }
{ {
mime = "audio/*"; mime = "audio/*";
use = "play"; use = [
"play"
"open"
];
} }
{ {
mime = "video/*"; mime = "application/epub+zip";
use = "play"; 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 = { programs = {
zellij = { zellij = {
enable = true; enable = true;
settings = { 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_startup_tips = false;
show_release_notes = false; show_release_notes = false;
simplified_ui = true; simplified_ui = true;

View file

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

View file

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

View file

@ -2,30 +2,30 @@
stylix = { stylix = {
fonts = { fonts = {
sizes = { sizes = {
applications = 10; applications = 12;
desktop = 8; desktop = 11;
popups = 10; popups = 11;
terminal = 10; terminal = 12;
}; };
monospace = { monospace = {
package = pkgs.nerd-fonts.roboto-mono; package = pkgs.nerd-fonts.monaspace;
name = "Roboto-Mono Nerd Font"; name = "Monospace Aether Nerd Font";
}; };
emoji = { emoji = {
package = pkgs.nerd-fonts.symbols-only; package = pkgs.noto-fonts-color-emoji;
name = "Symbols Only Nerd Font"; name = "Noto Color Emoji";
}; };
sansSerif = { sansSerif = {
package = pkgs.nerd-fonts.aurulent-sans-mono; package = pkgs.nerd-fonts.iosevka-term-slab;
name = "Aurulent Sans Mono Nerd Font"; name = "Iosevka Term Slab Nerd Font";
}; };
serif = { serif = {
package = pkgs.nerd-fonts.hack; package = pkgs.nerd-fonts.noto;
name = "Hack Nerd Font"; 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, config,
self,
pkgs, pkgs,
lib, lib,
... ...
@ -14,22 +14,22 @@
) )
true; true;
package = self.inputs.hyprland.packages.${pkgs.system}.hyprland; package = self.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage = self.inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland; portalPackage = self.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
settings = { settings = {
monitor = ", 2560x1440@165.00Hz, 0x0, 1"; monitor = ", 2560x1440@165.00Hz, 0x0, 1";
general = { general = {
gaps_in = "5"; gaps_in = 8;
gaps_out = "20"; gaps_out = 20;
border_size = "2"; border_size = 0;
layout = "dwindle"; layout = "dwindle";
snap = { snap = {
enabled = false; enabled = false;
window_gap = "5"; window_gap = 10;
monitor_gap = "5"; monitor_gap = 10;
border_overlap = false; border_overlap = false;
}; };
}; };
@ -39,9 +39,9 @@
kb_options = "grp:caps_toggle"; kb_options = "grp:caps_toggle";
numlock_by_default = true; numlock_by_default = true;
follow_mouse = "1"; follow_mouse = 1;
left_handed = false; left_handed = false;
sensitivity = "0"; sensitivity = 0;
special_fallthrough = true; special_fallthrough = true;
focus_on_close = 1; focus_on_close = 1;
@ -64,27 +64,29 @@
}; };
decoration = { decoration = {
active_opacity = "0.85"; active_opacity = "0.92";
inactive_opacity = "0.65"; inactive_opacity = "0.88";
fullscreen_opacity = "1.0"; fullscreen_opacity = "1.0";
rounding = "10";
dim_inactive = true; rounding = 24;
dim_strength = "0.15"; rounding_power = "2";
dim_special = "0.0";
dim_around = "0.05"; dim_inactive = false;
shadow = { shadow = {
enabled = true; enabled = true;
render_power = "4"; render_power = 3;
range = "4"; range = 20;
ignore_window = false; ignore_window = false;
offset = "0 4";
scale = "1.0";
}; };
blur = { blur = {
enabled = true; enabled = true;
size = "10"; size = 8;
passes = "5"; 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 hyprpaper.service"
"${lib.getExe' pkgs.systemd "systemctl"} --user start hypridle.service" "${lib.getExe' pkgs.systemd "systemctl"} --user start hypridle.service"
"${lib.getExe' pkgs.systemd "systemctl"} --user start hyprpolkitagent.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" "${lib.getExe' pkgs.hyprland "hyprctl"} setcursor material_light_cursors 20"
]; ];
@ -100,12 +102,12 @@
bind = [ bind = [
"ALT, return, exec, ${lib.getExe pkgs.ghostty}" "ALT, return, exec, ${lib.getExe pkgs.ghostty}"
"ALT, Q, killactive," "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, F, fullscreen, 0"
"ALT, L, exec, ${lib.getExe pkgs.hyprlock}" "ALT, L, exec, ${lib.getExe pkgs.hyprlock}"
"ALT SHIFT, space, togglefloating, active" "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, left, movefocus, l"
"ALT, right, movefocus, r" "ALT, right, movefocus, r"
@ -163,18 +165,34 @@
]; ];
animation = [ animation = [
"workspace_wraparound = true"
"enabled = true" "enabled = true"
"animation = windows, 1, 7, popin" "bezier = md3_standard, 0.2, 0.0, 0.0, 1.0"
"animation = windowsOut, 1, 7, popin" "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 = windows, 1, 4, md3_decel, slide"
"animation = borderangle, 1, 10" "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" windowrulev2 = [
"animation = specialWorkspace, 1, 7, slidevert" "float, class:^(yazi-picker)$"
"center, class:^(yazi-picker)$"
"size 1000 600, class:^(yazi-picker)$"
"stayfocused, class:^(yazi-picker)$"
]; ];
misc = { misc = {
@ -185,11 +203,12 @@
animate_mouse_windowdragging = true; animate_mouse_windowdragging = true;
focus_on_activate = true; focus_on_activate = true;
close_special_on_empty = true; close_special_on_empty = true;
initial_workspace_tracking = "2"; vrr = "3";
}; };
render = { render = {
cm_auto_hdr = 0; cm_auto_hdr = 0;
direct_scanout = "2";
}; };
binds = { binds = {
@ -264,8 +283,7 @@
plugins = with pkgs.hyprlandPlugins; [ plugins = with pkgs.hyprlandPlugins; [
hypr-dynamic-cursors hypr-dynamic-cursors
hyprscrolling hyprspace
hyprexpo
]; ];
}; };
}; };

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 = { boot = {
lanzaboote = { lanzaboote = {
enable = true; enable = true;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +1,4 @@
{...}: { _: {
xdg = { xdg = {
mime = { mime = {
enable = true; 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 = { disko = {
devices = { devices = {
disk = { disk = {
virt_main = { "virt_main" = {
device = "/dev/sda"; device =
{
"yara" = "/dev/vda";
}.${
name
} or "/dev/sda";
type = "disk"; type = "disk";
content = { content = {
type = "gpt"; type = "gpt";

View file

@ -4,12 +4,10 @@
"hand7s" = { "hand7s" = {
imports = [ imports = [
"${self}/hand7s/" "${self}/hand7s/"
self.inputs.agenix.homeManagerModules.default
self.inputs.spicetify-nix.homeManagerModules.default self.inputs.spicetify-nix.homeManagerModules.default
self.inputs.hyprland.homeManagerModules.default self.inputs.hyprland.homeManagerModules.default
self.inputs.chaotic.homeManagerModules.default self.inputs.chaotic.homeManagerModules.default
self.inputs.sops-nix.homeManagerModules.sops self.inputs.sops-nix.homeManagerModules.sops
self.inputs.nix-index-database.homeModules.nix-index self.inputs.nix-index-database.homeModules.nix-index
self.inputs.noctalia.homeModules.default 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 = { networking = {
firewall = { firewall = {
enable = true; enable = false;
allowPing = true;
checkReversePath = false;
}; };
useNetworkd = true; 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 = { 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