massive structural changes

This commit is contained in:
Sean Kovacs 2026-01-13 14:46:30 -05:00
commit 0133a53f41
Signed by: sckova
GPG key ID: 00F325187C68651A
10 changed files with 532 additions and 561 deletions

207
flake.nix
View file

@ -104,14 +104,64 @@
modules = modules =
[ [
{ {
nixpkgs.config = pkgConfig; nixpkgs = {
nixpkgs.overlays = [ config = pkgConfig;
catppuccin-palette.overlays.default overlays = [
niri.overlays.niri catppuccin-palette.overlays.default
noctalia.overlays.default niri.overlays.niri
nur.overlays.default noctalia.overlays.default
(import ./packages/overlay.nix) nur.overlays.default
]; (import ./packages/overlay.nix)
];
};
nix = {
settings = {
experimental-features = [
"nix-command"
"flakes"
];
substituters = [
"https://attic.xuyh0120.win/lantian"
"https://cache.garnix.io"
];
trusted-public-keys = [
"lantian:EeAUQ+W+6r7EtwnmYjeVwx5kOGEBpjlBfPlzGlTNvHc="
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
];
trusted-users = [
"root"
"sckova"
];
# Increase file descriptor limit for builds
sandbox = "relaxed";
extra-sandbox-paths = [];
build-users-group = "nixbld";
};
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
};
users.users.sckova = {
isNormalUser = true;
description = "Sean Kovacs";
extraGroups = [
"wheel"
"networkmanager"
"podman"
];
hashedPassword = "$6$bvwRUFaJNMpH8rm3$FGDWFN6tBScJ/2DynAjnlZE8JRfyADN78d6c4GawxpAjyNLNE/AjQzMA09tLRqpKX7WnN5PIUZLAm2bT9/RbG0";
openssh.authorizedKeys.keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCn/eXMq04vcXNqGVzlZOw2C2dQYBqzWsoigdFW09XqC2WPaGljbAIayzaD7Q1tIlPGGy10+nipAXAk1CHAnrQ2KSg4v/SwFphF48V3joeQmideC4vo0EIQEQibbMtj3oFezqRcRZINl/1hr4t0myZ3zkoTjh3HCkqJEMGUdArDMEVPA5mwcKSLsyshW9LMG/3C9YKKPU1/lVsoeDkj8AVZA0srhkApuRKF0IVu8KoPd6ldvSWgpQ1iuQ+MEMSeOUJytieBkzeY9zEVePaQ86oIMDUzqq8OTN37RyShiJKPskKyj12rJI2eFtI/viGaj8P6/yvKqMp3F4kAsPAuvMLLAIYCNa+139rDpkkIKB6lVtgq0jnJGRywaYXGIRyExNcVAr8I9wrNnNN2M4whVeYBxfLMzKZ+VvfK39AaGvnzPuFDLqUC87sN4c/1KZQo+TCtlaxcYvqowWylw5JHUt8uwFcO/dUebQxxAv8EdyPZGJ/54y19PsTbu9KyxSc2gIU= sckova"
];
};
} }
./system ./system
./system/widevine ./system/widevine
@ -120,44 +170,47 @@
./system/hosts/${hostname} ./system/hosts/${hostname}
./hardware/${hostname} ./hardware/${hostname}
catppuccin.nixosModules.catppuccin catppuccin.nixosModules.catppuccin
niri.nixosModules.niri
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
noctalia.nixosModules.default noctalia.nixosModules.default
{ {
home-manager.useGlobalPkgs = true; home-manager = {
home-manager.useUserPackages = true; useGlobalPkgs = true;
home-manager.users.sckova = { useUserPackages = true;
imports = [ users.sckova = {
./home imports = [
./home/games/minecraft ./home
./home/games/morrowind ./home/games/minecraft
./home/graphical/discord ./home/games/morrowind
./home/graphical/firefox ./home/graphical/discord
./home/graphical/mpv ./home/graphical/firefox
./home/tiling/niri ./home/graphical/mpv
./home/tiling/wallpaper ./home/tiling/niri
./home/systemd ./home/tiling/wallpaper
./home/terminal/btop ./home/systemd
./home/terminal/fish ./home/terminal/btop
./home/terminal/kitty ./home/terminal/fish
./home/terminal/nvim ./home/terminal/kitty
./home/kde ./home/terminal/nvim
./home/theming ./home/kde
./home/vscode ./home/theming
./home/hosts/${hostname} ./home/vscode
./home/hosts/${hostname}
];
};
sharedModules = [
catppuccin.homeModules.catppuccin
plasma-manager.homeModules.plasma-manager
noctalia.homeModules.default
spicetify-nix.homeManagerModules.default
nixvim.homeModules.nixvim
]; ];
}; extraSpecialArgs = {
home-manager.sharedModules = [ inherit spicetify-nix;
plasma-manager.homeModules.plasma-manager pkgs-unstable = import nixpkgs-unstable {
niri.homeModules.niri inherit system;
noctalia.homeModules.default config = pkgConfig;
spicetify-nix.homeManagerModules.default };
nixvim.homeModules.nixvim
];
home-manager.extraSpecialArgs = {
inherit spicetify-nix;
pkgs-unstable = import nixpkgs-unstable {
inherit system;
config = pkgConfig;
}; };
}; };
} }
@ -175,6 +228,10 @@
inherit system; inherit system;
config = pkgConfig; config = pkgConfig;
}; };
pkgs-unstable = import nixpkgs-unstable {
inherit system;
config = pkgConfig;
};
home.username = user; home.username = user;
home.homeDirectory = "/home/${user}"; home.homeDirectory = "/home/${user}";
modules = [ modules = [
@ -187,33 +244,25 @@
noctalia.homeModules.noctalia noctalia.homeModules.noctalia
nixvim.homeModules.nixvim nixvim.homeModules.nixvim
]; ];
extraSpecialArgs = {
pkgs-unstable = import nixpkgs-unstable {
inherit system;
config = pkgConfig;
};
};
}; };
in in {
{ nixosConfigurations = {
nixosConfigurations = peach = mkNixosSystem {
{ hostname = "peach";
peach = mkNixosSystem { system = "aarch64-linux";
hostname = "peach"; extraModules = [
system = "aarch64-linux"; apple-silicon.nixosModules.default
extraModules = [ {nixpkgs.overlays = [apple-silicon.overlays.apple-silicon-overlay];}
apple-silicon.nixosModules.default ];
{nixpkgs.overlays = [apple-silicon.overlays.apple-silicon-overlay];} };
];
};
alien = mkNixosSystem { alien =
hostname = "alien"; mkNixosSystem {
system = "x86_64-linux"; hostname = "alien";
extraSpecialArgs = { system = "x86_64-linux";
inherit nix-cachyos-kernel; extraModules = [
}; {nixpkgs.overlays = [nix-cachyos-kernel.overlays.default];}
}; ];
} }
// nixpkgs.lib.genAttrs supportedSystems ( // nixpkgs.lib.genAttrs supportedSystems (
system: system:
@ -222,8 +271,10 @@
inherit system; inherit system;
} }
); );
};
homeConfigurations = { homeConfigurations =
{
peach = mkHomeConfig { peach = mkHomeConfig {
user = "sckova"; user = "sckova";
hostname = "peach"; hostname = "peach";
@ -234,14 +285,14 @@
hostname = "alien"; hostname = "alien";
system = "x86_64-linux"; system = "x86_64-linux";
}; };
}; }
} // nixpkgs.lib.genAttrs supportedSystems (
// nixpkgs.lib.genAttrs supportedSystems ( system:
system: mkHomeConfig {
mkHomeConfig { user = "sckova";
user = "sckova"; hostname = "vm-generic";
hostname = "vm-generic"; inherit system;
inherit system; }
} );
); };
} }

View file

@ -15,6 +15,7 @@
pkgs.adwsteamgtk pkgs.adwsteamgtk
pkgs-unstable.ckan pkgs-unstable.ckan
pkgs.daggerfall-unity
]; ];
programs.noctalia-shell.settings.brightness = { programs.noctalia-shell.settings.brightness = {

View file

@ -3,408 +3,411 @@
pkgs, pkgs,
... ...
}: { }: {
programs.niri.package = pkgs.niri-unstable.overrideAttrs (old: {
doCheck = false;
});
# https://github.com/sodiboo/niri-flake/blob/main/docs.md # https://github.com/sodiboo/niri-flake/blob/main/docs.md
programs.niri.settings = { programs.niri = {
screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"; package = pkgs.niri-unstable.overrideAttrs (old: {
hotkey-overlay.skip-at-startup = true; doCheck = false;
prefer-no-csd = true; });
gestures.hot-corners.enable = false;
spawn-at-startup = []; # systemd is based sorry settings = {
overview = { screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png";
backdrop-color = pkgs.catppuccin.${config.catppuccin.flavor}.crust; hotkey-overlay.skip-at-startup = true;
workspace-shadow.enable = false; prefer-no-csd = true;
}; gestures.hot-corners.enable = false;
input = { spawn-at-startup = []; # systemd is based sorry
focus-follows-mouse = { overview = {
enable = true; backdrop-color = pkgs.catppuccin.${config.catppuccin.flavor}.crust;
max-scroll-amount = "0%"; workspace-shadow.enable = false;
}; };
keyboard = { input = {
numlock = false; focus-follows-mouse = {
repeat-delay = 600; enable = true;
repeat-rate = 25; max-scroll-amount = "0%";
};
keyboard = {
numlock = false;
repeat-delay = 600;
repeat-rate = 25;
};
mouse = {
enable = true;
accel-profile = "adaptive";
natural-scroll = false;
};
touchpad = {
enable = true;
accel-profile = "adaptive";
natural-scroll = true;
tap = false;
drag = false;
};
}; };
mouse = { environment = {
enable = true; QT_QPA_PLATFORM = "wayland";
accel-profile = "adaptive"; QT_QPA_PLATFORMTHEME = "qt6ct";
natural-scroll = false; DISPLAY = null;
XCURSOR_THEME = config.userOptions.cursor.name;
XCURSOR_SIZE = toString config.userOptions.cursor.size;
}; };
touchpad = { outputs = {
enable = true; "eDP-1" = {
accel-profile = "adaptive"; scale = 1.75;
natural-scroll = true; };
tap = false; "HDMI-A-1" = {
drag = false; scale = 2;
};
}; };
}; cursor = {
environment = { hide-when-typing = true;
QT_QPA_PLATFORM = "wayland"; hide-after-inactive-ms = 5000;
QT_QPA_PLATFORMTHEME = "qt6ct"; size = config.userOptions.cursor.size;
DISPLAY = null; theme = config.userOptions.cursor.name;
XCURSOR_THEME = config.userOptions.cursor.name;
XCURSOR_SIZE = toString config.userOptions.cursor.size;
};
outputs = {
"eDP-1" = {
scale = 1.75;
}; };
"HDMI-A-1" = { layout = {
scale = 2; gaps = 4;
background-color = pkgs.catppuccin.${config.catppuccin.flavor}.mantle;
default-column-width = {
proportion = 0.5;
};
preset-column-widths = [
{proportion = 1.0 / 3.0;}
{proportion = 1.0 / 2.0;}
{proportion = 2.0 / 3.0;}
];
border = {
enable = true;
width = 2;
active.color = pkgs.catppuccin.${config.catppuccin.flavor}.${config.catppuccin.accent};
inactive.color = pkgs.catppuccin.${config.catppuccin.flavor}.surface0;
urgent.color = pkgs.catppuccin.${config.catppuccin.flavor}.maroon;
};
focus-ring = {
enable = false;
width = 2;
active.color = pkgs.catppuccin.${config.catppuccin.flavor}.${config.catppuccin.accent};
inactive.color = pkgs.catppuccin.${config.catppuccin.flavor}.surface0;
urgent.color = pkgs.catppuccin.${config.catppuccin.flavor}.maroon;
};
shadow = {
enable = true;
spread = 5;
offset.x = 0;
offset.y = 5;
softness = 30;
color = pkgs.catppuccin.${config.catppuccin.flavor}.base + "77";
};
}; };
}; window-rules = [
cursor = { {
hide-when-typing = true; matches = [
hide-after-inactive-ms = 2000; {
size = config.userOptions.cursor.size; app-id = "firefox$";
theme = config.userOptions.cursor.name; title = "^Picture-in-Picture$";
}; }
layout = { ];
gaps = 4; open-floating = true;
background-color = pkgs.catppuccin.${config.catppuccin.flavor}.mantle; default-floating-position = {
default-column-width = { x = 32;
proportion = 0.5; y = 32;
}; relative-to = "bottom-left";
preset-column-widths = [ };
{proportion = 1.0 / 3.0;} }
{proportion = 1.0 / 2.0;} {
{proportion = 2.0 / 3.0;} geometry-corner-radius = {
top-left = 16.0;
top-right = 16.0;
bottom-left = 16.0;
bottom-right = 16.0;
};
clip-to-geometry = true;
}
{
matches = [
{
app-id = "openmw";
title = "OpenMW";
}
{
app-id = "Minecraft";
title = "Minecraft";
}
];
open-maximized = true;
open-focused = true;
}
{
matches = [
{
app-id = "mpv";
}
];
border.active.color = pkgs.catppuccin.${config.catppuccin.flavor}.surface1;
}
]; ];
border = { binds = {
enable = true; "Mod+Shift+Slash".action.show-hotkey-overlay = {};
width = 2;
active.color = pkgs.catppuccin.${config.catppuccin.flavor}.${config.catppuccin.accent}; "Mod+T" = {
inactive.color = pkgs.catppuccin.${config.catppuccin.flavor}.surface0; action.spawn = ["kitty"];
urgent.color = pkgs.catppuccin.${config.catppuccin.flavor}.maroon; hotkey-overlay.title = "Open a Terminal: kitty";
};
focus-ring = {
enable = false;
width = 2;
active.color = pkgs.catppuccin.${config.catppuccin.flavor}.${config.catppuccin.accent};
inactive.color = pkgs.catppuccin.${config.catppuccin.flavor}.surface0;
urgent.color = pkgs.catppuccin.${config.catppuccin.flavor}.maroon;
};
shadow = {
enable = true;
spread = 5;
offset.x = 0;
offset.y = 5;
softness = 30;
color = pkgs.catppuccin.${config.catppuccin.flavor}.base + "77";
};
};
window-rules = [
{
matches = [
{
app-id = "firefox$";
title = "^Picture-in-Picture$";
}
];
open-floating = true;
default-floating-position = {
x = 32;
y = 32;
relative-to = "bottom-left";
}; };
} "Mod+Space" = {
{ action.spawn-sh = [
geometry-corner-radius = { "noctalia-shell ipc call launcher toggle"
top-left = 16.0; ];
top-right = 16.0; hotkey-overlay.title = "Run an Application: Noctalia app launcher";
bottom-left = 16.0;
bottom-right = 16.0;
}; };
clip-to-geometry = true;
}
{
matches = [
{
app-id = "openmw";
title = "OpenMW";
}
{
app-id = "Minecraft";
title = "Minecraft";
}
];
open-maximized = true;
open-focused = true;
}
{
matches = [
{
app-id = "mpv";
}
];
border.active.color = pkgs.catppuccin.${config.catppuccin.flavor}.surface1;
}
];
binds = {
"Mod+Shift+Slash".action.show-hotkey-overlay = {};
"Mod+T" = { "XF86AudioRaiseVolume" = {
action.spawn = ["kitty"]; action.spawn-sh = [
hotkey-overlay.title = "Open a Terminal: kitty"; "noctalia-shell ipc call volume increase"
}; ];
"Mod+Space" = { allow-when-locked = true;
action.spawn-sh = [ };
"noctalia-shell ipc call launcher toggle" "XF86AudioLowerVolume" = {
]; action.spawn-sh = [
hotkey-overlay.title = "Run an Application: Noctalia app launcher"; "noctalia-shell ipc call volume decrease"
}; ];
allow-when-locked = true;
};
"Shift+XF86AudioRaiseVolume" = {
action.spawn = [
"wpctl"
"set-volume"
"@DEFAULT_AUDIO_SINK@"
"0.01+"
];
allow-when-locked = true;
};
"Shift+XF86AudioLowerVolume" = {
action.spawn = [
"wpctl"
"set-volume"
"@DEFAULT_AUDIO_SINK@"
"0.01-"
];
allow-when-locked = true;
};
"XF86AudioMute" = {
action.spawn-sh = [
"noctalia-shell ipc call volume muteOutput"
];
allow-when-locked = true;
};
"XF86AudioMicMute" = {
action.spawn-sh = [
"noctalia-shell ipc call volume muteInput"
];
allow-when-locked = true;
};
"XF86AudioRaiseVolume" = { "XF86MonBrightnessUp" = {
action.spawn-sh = [ action.spawn = ["noctalia-shell" "ipc" "call" "brightness" "increase"];
"noctalia-shell ipc call volume increase" allow-when-locked = true;
]; };
allow-when-locked = true;
};
"XF86AudioLowerVolume" = {
action.spawn-sh = [
"noctalia-shell ipc call volume decrease"
];
allow-when-locked = true;
};
"Shift+XF86AudioRaiseVolume" = {
action.spawn = [
"wpctl"
"set-volume"
"@DEFAULT_AUDIO_SINK@"
"0.01+"
];
allow-when-locked = true;
};
"Shift+XF86AudioLowerVolume" = {
action.spawn = [
"wpctl"
"set-volume"
"@DEFAULT_AUDIO_SINK@"
"0.01-"
];
allow-when-locked = true;
};
"XF86AudioMute" = {
action.spawn-sh = [
"noctalia-shell ipc call volume muteOutput"
];
allow-when-locked = true;
};
"XF86AudioMicMute" = {
action.spawn-sh = [
"noctalia-shell ipc call volume muteInput"
];
allow-when-locked = true;
};
"XF86MonBrightnessUp" = { "XF86MonBrightnessDown" = {
action.spawn = ["noctalia-shell" "ipc" "call" "brightness" "increase"]; action.spawn = ["noctalia-shell" "ipc" "call" "brightness" "decrease"];
allow-when-locked = true; allow-when-locked = true;
}; };
"XF86MonBrightnessDown" = { "Shift+XF86MonBrightnessUp" = {
action.spawn = ["noctalia-shell" "ipc" "call" "brightness" "decrease"]; action.spawn = ["brightnessctl" "--class=backlight" "set" "+1%"];
allow-when-locked = true; allow-when-locked = true;
}; };
"Shift+XF86MonBrightnessUp" = { "Shift+XF86MonBrightnessDown" = {
action.spawn = ["brightnessctl" "--class=backlight" "set" "+1%"]; action.spawn = ["brightnessctl" "--class=backlight" "set" "1%-"];
allow-when-locked = true; allow-when-locked = true;
}; };
"Shift+XF86MonBrightnessDown" = { "XF86AudioPrev" = {
action.spawn = ["brightnessctl" "--class=backlight" "set" "1%-"]; action.spawn = ["playerctl" "previous"];
allow-when-locked = true; allow-when-locked = true;
}; };
"XF86AudioPrev" = { "XF86AudioPlay" = {
action.spawn = ["playerctl" "previous"]; action.spawn = ["playerctl" "play-pause"];
allow-when-locked = true; allow-when-locked = true;
}; };
"XF86AudioPlay" = { "XF86AudioNext" = {
action.spawn = ["playerctl" "play-pause"]; action.spawn = ["playerctl" "next"];
allow-when-locked = true; allow-when-locked = true;
}; };
"XF86AudioNext" = { "XF86Sleep" = {
action.spawn = ["playerctl" "next"]; action.power-off-monitors = {};
allow-when-locked = true; };
};
"XF86Sleep" = { "XF86Search" = {
action.power-off-monitors = {}; action.spawn = ["noctalia-shell" "ipc" "call" "launcher" "toggle"];
}; allow-when-locked = true;
};
"XF86Search" = { "XF86LaunchA" = {
action.spawn = ["noctalia-shell" "ipc" "call" "launcher" "toggle"]; action.spawn = ["niri" "msg" "action" "toggle-overview"];
allow-when-locked = true; allow-when-locked = true;
}; };
"XF86LaunchA" = { "Mod+O" = {
action.spawn = ["niri" "msg" "action" "toggle-overview"]; action.toggle-overview = {};
allow-when-locked = true; repeat = false;
}; };
"Mod+O" = { "Mod+Q" = {
action.toggle-overview = {}; action.close-window = {};
repeat = false; repeat = false;
}; };
"Mod+Q" = { "Mod+Left".action.focus-column-left = {};
action.close-window = {}; "Mod+Down".action.focus-window-down = {};
repeat = false; "Mod+Up".action.focus-window-up = {};
}; "Mod+Right".action.focus-column-right = {};
"Mod+H".action.focus-column-left = {};
"Mod+J".action.focus-window-down = {};
"Mod+K".action.focus-window-up = {};
"Mod+L".action.focus-column-right = {};
"Mod+Left".action.focus-column-left = {}; "Mod+Ctrl+Left".action.move-column-left = {};
"Mod+Down".action.focus-window-down = {}; "Mod+Ctrl+Down".action.move-window-down = {};
"Mod+Up".action.focus-window-up = {}; "Mod+Ctrl+Up".action.move-window-up = {};
"Mod+Right".action.focus-column-right = {}; "Mod+Ctrl+Right".action.move-column-right = {};
"Mod+H".action.focus-column-left = {}; "Mod+Ctrl+H".action.move-column-left = {};
"Mod+J".action.focus-window-down = {}; "Mod+Ctrl+J".action.move-window-down = {};
"Mod+K".action.focus-window-up = {}; "Mod+Ctrl+K".action.move-window-up = {};
"Mod+L".action.focus-column-right = {}; "Mod+Ctrl+L".action.move-column-right = {};
"Mod+Ctrl+Left".action.move-column-left = {}; "Mod+Home".action.focus-column-first = {};
"Mod+Ctrl+Down".action.move-window-down = {}; "Mod+End".action.focus-column-last = {};
"Mod+Ctrl+Up".action.move-window-up = {}; "Mod+Ctrl+Home".action.move-column-to-first = {};
"Mod+Ctrl+Right".action.move-column-right = {}; "Mod+Ctrl+End".action.move-column-to-last = {};
"Mod+Ctrl+H".action.move-column-left = {};
"Mod+Ctrl+J".action.move-window-down = {};
"Mod+Ctrl+K".action.move-window-up = {};
"Mod+Ctrl+L".action.move-column-right = {};
"Mod+Home".action.focus-column-first = {}; "Mod+Shift+Left".action.focus-monitor-left = {};
"Mod+End".action.focus-column-last = {}; "Mod+Shift+Down".action.focus-monitor-down = {};
"Mod+Ctrl+Home".action.move-column-to-first = {}; "Mod+Shift+Up".action.focus-monitor-up = {};
"Mod+Ctrl+End".action.move-column-to-last = {}; "Mod+Shift+Right".action.focus-monitor-right = {};
"Mod+Shift+H".action.focus-monitor-left = {};
"Mod+Shift+J".action.focus-monitor-down = {};
"Mod+Shift+K".action.focus-monitor-up = {};
"Mod+Shift+L".action.focus-monitor-right = {};
"Mod+Shift+Left".action.focus-monitor-left = {}; "Mod+Shift+Ctrl+Left".action.move-column-to-monitor-left = {};
"Mod+Shift+Down".action.focus-monitor-down = {}; "Mod+Shift+Ctrl+Down".action.move-column-to-monitor-down = {};
"Mod+Shift+Up".action.focus-monitor-up = {}; "Mod+Shift+Ctrl+Up".action.move-column-to-monitor-up = {};
"Mod+Shift+Right".action.focus-monitor-right = {}; "Mod+Shift+Ctrl+Right".action.move-column-to-monitor-right = {};
"Mod+Shift+H".action.focus-monitor-left = {}; "Mod+Shift+Ctrl+H".action.move-column-to-monitor-left = {};
"Mod+Shift+J".action.focus-monitor-down = {}; "Mod+Shift+Ctrl+J".action.move-column-to-monitor-down = {};
"Mod+Shift+K".action.focus-monitor-up = {}; "Mod+Shift+Ctrl+K".action.move-column-to-monitor-up = {};
"Mod+Shift+L".action.focus-monitor-right = {}; "Mod+Shift+Ctrl+L".action.move-column-to-monitor-right = {};
"Mod+Shift+Ctrl+Left".action.move-column-to-monitor-left = {}; "Mod+Page_Down".action.focus-workspace-down = {};
"Mod+Shift+Ctrl+Down".action.move-column-to-monitor-down = {}; "Mod+Page_Up".action.focus-workspace-up = {};
"Mod+Shift+Ctrl+Up".action.move-column-to-monitor-up = {}; "Mod+U".action.focus-workspace-down = {};
"Mod+Shift+Ctrl+Right".action.move-column-to-monitor-right = {}; "Mod+I".action.focus-workspace-up = {};
"Mod+Shift+Ctrl+H".action.move-column-to-monitor-left = {}; "Mod+Ctrl+Page_Down".action.move-column-to-workspace-down = {};
"Mod+Shift+Ctrl+J".action.move-column-to-monitor-down = {}; "Mod+Ctrl+Page_Up".action.move-column-to-workspace-up = {};
"Mod+Shift+Ctrl+K".action.move-column-to-monitor-up = {}; "Mod+Ctrl+U".action.move-column-to-workspace-down = {};
"Mod+Shift+Ctrl+L".action.move-column-to-monitor-right = {}; "Mod+Ctrl+I".action.move-column-to-workspace-up = {};
"Mod+Page_Down".action.focus-workspace-down = {}; "Mod+Shift+Page_Down".action.move-workspace-down = {};
"Mod+Page_Up".action.focus-workspace-up = {}; "Mod+Shift+Page_Up".action.move-workspace-up = {};
"Mod+U".action.focus-workspace-down = {}; "Mod+Shift+U".action.move-workspace-down = {};
"Mod+I".action.focus-workspace-up = {}; "Mod+Shift+I".action.move-workspace-up = {};
"Mod+Ctrl+Page_Down".action.move-column-to-workspace-down = {};
"Mod+Ctrl+Page_Up".action.move-column-to-workspace-up = {};
"Mod+Ctrl+U".action.move-column-to-workspace-down = {};
"Mod+Ctrl+I".action.move-column-to-workspace-up = {};
"Mod+Shift+Page_Down".action.move-workspace-down = {}; "Mod+WheelScrollDown" = {
"Mod+Shift+Page_Up".action.move-workspace-up = {}; action.focus-workspace-down = {};
"Mod+Shift+U".action.move-workspace-down = {}; cooldown-ms = 150;
"Mod+Shift+I".action.move-workspace-up = {}; };
"Mod+WheelScrollUp" = {
action.focus-workspace-up = {};
cooldown-ms = 150;
};
"Mod+Ctrl+WheelScrollDown" = {
action.move-column-to-workspace-down = {};
cooldown-ms = 150;
};
"Mod+Ctrl+WheelScrollUp" = {
action.move-column-to-workspace-up = {};
cooldown-ms = 150;
};
"Mod+WheelScrollDown" = { "Mod+WheelScrollRight".action.focus-column-right = {};
action.focus-workspace-down = {}; "Mod+WheelScrollLeft".action.focus-column-left = {};
cooldown-ms = 150; "Mod+Ctrl+WheelScrollRight".action.move-column-right = {};
}; "Mod+Ctrl+WheelScrollLeft".action.move-column-left = {};
"Mod+WheelScrollUp" = {
action.focus-workspace-up = {};
cooldown-ms = 150;
};
"Mod+Ctrl+WheelScrollDown" = {
action.move-column-to-workspace-down = {};
cooldown-ms = 150;
};
"Mod+Ctrl+WheelScrollUp" = {
action.move-column-to-workspace-up = {};
cooldown-ms = 150;
};
"Mod+WheelScrollRight".action.focus-column-right = {}; "Mod+Shift+WheelScrollDown".action.focus-column-right = {};
"Mod+WheelScrollLeft".action.focus-column-left = {}; "Mod+Shift+WheelScrollUp".action.focus-column-left = {};
"Mod+Ctrl+WheelScrollRight".action.move-column-right = {}; "Mod+Ctrl+Shift+WheelScrollDown".action.move-column-right = {};
"Mod+Ctrl+WheelScrollLeft".action.move-column-left = {}; "Mod+Ctrl+Shift+WheelScrollUp".action.move-column-left = {};
"Mod+Shift+WheelScrollDown".action.focus-column-right = {}; "Mod+1".action.focus-workspace = 1;
"Mod+Shift+WheelScrollUp".action.focus-column-left = {}; "Mod+2".action.focus-workspace = 2;
"Mod+Ctrl+Shift+WheelScrollDown".action.move-column-right = {}; "Mod+3".action.focus-workspace = 3;
"Mod+Ctrl+Shift+WheelScrollUp".action.move-column-left = {}; "Mod+4".action.focus-workspace = 4;
"Mod+5".action.focus-workspace = 5;
"Mod+6".action.focus-workspace = 6;
"Mod+7".action.focus-workspace = 7;
"Mod+8".action.focus-workspace = 8;
"Mod+9".action.focus-workspace = 9;
"Mod+Ctrl+1".action.move-column-to-workspace = 1;
"Mod+Ctrl+2".action.move-column-to-workspace = 2;
"Mod+Ctrl+3".action.move-column-to-workspace = 3;
"Mod+Ctrl+4".action.move-column-to-workspace = 4;
"Mod+Ctrl+5".action.move-column-to-workspace = 5;
"Mod+Ctrl+6".action.move-column-to-workspace = 6;
"Mod+Ctrl+7".action.move-column-to-workspace = 7;
"Mod+Ctrl+8".action.move-column-to-workspace = 8;
"Mod+Ctrl+9".action.move-column-to-workspace = 9;
"Mod+1".action.focus-workspace = 1; "Mod+BracketLeft".action.consume-or-expel-window-left = {};
"Mod+2".action.focus-workspace = 2; "Mod+BracketRight".action.consume-or-expel-window-right = {};
"Mod+3".action.focus-workspace = 3;
"Mod+4".action.focus-workspace = 4;
"Mod+5".action.focus-workspace = 5;
"Mod+6".action.focus-workspace = 6;
"Mod+7".action.focus-workspace = 7;
"Mod+8".action.focus-workspace = 8;
"Mod+9".action.focus-workspace = 9;
"Mod+Ctrl+1".action.move-column-to-workspace = 1;
"Mod+Ctrl+2".action.move-column-to-workspace = 2;
"Mod+Ctrl+3".action.move-column-to-workspace = 3;
"Mod+Ctrl+4".action.move-column-to-workspace = 4;
"Mod+Ctrl+5".action.move-column-to-workspace = 5;
"Mod+Ctrl+6".action.move-column-to-workspace = 6;
"Mod+Ctrl+7".action.move-column-to-workspace = 7;
"Mod+Ctrl+8".action.move-column-to-workspace = 8;
"Mod+Ctrl+9".action.move-column-to-workspace = 9;
"Mod+BracketLeft".action.consume-or-expel-window-left = {}; "Mod+Comma".action.consume-window-into-column = {};
"Mod+BracketRight".action.consume-or-expel-window-right = {}; "Mod+Period".action.expel-window-from-column = {};
"Mod+Comma".action.consume-window-into-column = {}; "Mod+R".action.switch-preset-column-width = {};
"Mod+Period".action.expel-window-from-column = {}; "Mod+Shift+R".action.switch-preset-window-height = {};
"Mod+Ctrl+R".action.reset-window-height = {};
"Mod+F".action.maximize-column = {};
"Mod+Shift+F".action.maximize-window-to-edges = {};
"Mod+Ctrl+Shift+F".action.fullscreen-window = {};
"Mod+R".action.switch-preset-column-width = {}; "Mod+Ctrl+F".action.expand-column-to-available-width = {};
"Mod+Shift+R".action.switch-preset-window-height = {};
"Mod+Ctrl+R".action.reset-window-height = {};
"Mod+F".action.maximize-column = {};
"Mod+Shift+F".action.maximize-window-to-edges = {};
"Mod+Ctrl+Shift+F".action.fullscreen-window = {};
"Mod+Ctrl+F".action.expand-column-to-available-width = {}; "Mod+C".action.center-column = {};
"Mod+C".action.center-column = {}; "Mod+Ctrl+C".action.center-visible-columns = {};
"Mod+Ctrl+C".action.center-visible-columns = {}; "Mod+Minus".action.set-column-width = "-10%";
"Mod+Equal".action.set-column-width = "+10%";
"Mod+Minus".action.set-column-width = "-10%"; "Mod+Shift+Minus".action.set-window-height = "-10%";
"Mod+Equal".action.set-column-width = "+10%"; "Mod+Shift+Equal".action.set-window-height = "+10%";
"Mod+Shift+Minus".action.set-window-height = "-10%"; "Mod+V".action.toggle-window-floating = {};
"Mod+Shift+Equal".action.set-window-height = "+10%"; "Mod+Shift+V".action.switch-focus-between-floating-and-tiling = {};
"Mod+V".action.toggle-window-floating = {}; "Mod+W".action.toggle-column-tabbed-display = {};
"Mod+Shift+V".action.switch-focus-between-floating-and-tiling = {};
"Mod+W".action.toggle-column-tabbed-display = {}; "Print".action.screenshot = {};
"Mod+Shift+S".action.screenshot = {};
"Ctrl+Print".action.screenshot-screen = {};
"Alt+Print".action.screenshot-window = {};
"Print".action.screenshot = {}; "Mod+Escape" = {
"Mod+Shift+S".action.screenshot = {}; action.toggle-keyboard-shortcuts-inhibit = {};
"Ctrl+Print".action.screenshot-screen = {}; allow-inhibiting = false;
"Alt+Print".action.screenshot-window = {}; };
"Mod+Escape" = { "Mod+Shift+E".action.quit = {};
action.toggle-keyboard-shortcuts-inhibit = {}; "Ctrl+Alt+Delete".action.quit = {};
allow-inhibiting = false;
};
"Mod+Shift+E".action.quit = {}; "Mod+Shift+P" = {
"Ctrl+Alt+Delete".action.quit = {}; action.power-off-monitors = {};
hotkey-overlay.title = "Turn off the display";
"Mod+Shift+P" = { };
action.power-off-monitors = {};
hotkey-overlay.title = "Turn off the display";
}; };
}; };
}; };

View file

@ -1,5 +1,5 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ {
config, config,
@ -8,48 +8,9 @@
inputs, inputs,
... ...
}: { }: {
nix.settings.experimental-features = [ environment.sessionVariables = {
"nix-command" # this makes electron apps work per the wiki
"flakes"
];
nix.settings.trusted-users = [
"root"
"sckova"
];
nix.settings = {
# Increase file descriptor limit for builds
sandbox = "relaxed";
extra-sandbox-paths = [];
build-users-group = "nixbld";
};
security.pam.loginLimits = [
{
domain = "*";
type = "soft";
item = "nofile";
value = "65536";
}
{
domain = "*";
type = "hard";
item = "nofile";
value = "65536";
}
];
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
environment.sessionVariables = rec {
NIXOS_OZONE_WL = "1"; NIXOS_OZONE_WL = "1";
EDITOR = "nvim";
TERMINAL = "kitty";
}; };
boot = { boot = {
@ -120,11 +81,16 @@
services = { services = {
desktopManager.plasma6.enable = true; desktopManager.plasma6.enable = true;
displayManager.sddm = { displayManager = {
enable = true; sddm = {
wayland.enable = true; enable = true;
enableHidpi = true; wayland.enable = true;
enableHidpi = true;
};
defaultSession = "niri";
}; };
libinput.enable = true; libinput.enable = true;
printing.enable = true; printing.enable = true;
pipewire = { pipewire = {
@ -136,29 +102,6 @@
udisks2.enable = true; udisks2.enable = true;
}; };
virtualisation = {
containers.enable = true;
podman = {
enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enabled = true; # Required for containers under podman-compose to be able to talk to each other.
};
};
systemd.tmpfiles.rules = ["L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware"];
users.users.sckova = {
isNormalUser = true;
description = "Sean Kovacs";
extraGroups = [
"wheel"
"networkmanager"
"podman"
];
packages = with pkgs; [];
hashedPassword = "$6$bvwRUFaJNMpH8rm3$FGDWFN6tBScJ/2DynAjnlZE8JRfyADN78d6c4GawxpAjyNLNE/AjQzMA09tLRqpKX7WnN5PIUZLAm2bT9/RbG0";
};
environment = { environment = {
systemPackages = with pkgs; [ systemPackages = with pkgs; [
git git
@ -185,9 +128,6 @@
}; };
services.openssh.enable = true; services.openssh.enable = true;
users.users."sckova".openssh.authorizedKeys.keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCn/eXMq04vcXNqGVzlZOw2C2dQYBqzWsoigdFW09XqC2WPaGljbAIayzaD7Q1tIlPGGy10+nipAXAk1CHAnrQ2KSg4v/SwFphF48V3joeQmideC4vo0EIQEQibbMtj3oFezqRcRZINl/1hr4t0myZ3zkoTjh3HCkqJEMGUdArDMEVPA5mwcKSLsyshW9LMG/3C9YKKPU1/lVsoeDkj8AVZA0srhkApuRKF0IVu8KoPd6ldvSWgpQ1iuQ+MEMSeOUJytieBkzeY9zEVePaQ86oIMDUzqq8OTN37RyShiJKPskKyj12rJI2eFtI/viGaj8P6/yvKqMp3F4kAsPAuvMLLAIYCNa+139rDpkkIKB6lVtgq0jnJGRywaYXGIRyExNcVAr8I9wrNnNN2M4whVeYBxfLMzKZ+VvfK39AaGvnzPuFDLqUC87sN4c/1KZQo+TCtlaxcYvqowWylw5JHUt8uwFcO/dUebQxxAv8EdyPZGJ/54y19PsTbu9KyxSc2gIU= sckova"
];
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions

View file

@ -1,8 +1,6 @@
{ {
config, config,
pkgs, pkgs,
catppuccin,
nix-cachyos-kernel,
... ...
}: { }: {
networking.hostName = "alien"; networking.hostName = "alien";
@ -25,36 +23,14 @@
''; '';
hardware.i2c.enable = true; hardware.i2c.enable = true;
boot.binfmt.emulatedSystems = [
"aarch64-linux"
"riscv64-linux"
];
catppuccin.accent = "blue"; catppuccin.accent = "blue";
home-manager.users.sckova = {
imports = [catppuccin.homeModules.catppuccin];
};
boot.loader.systemd-boot.consoleMode = "max"; boot.loader.systemd-boot.consoleMode = "max";
# boot.kernelPackages = pkgs.linuxPackages; # boot.kernelPackages = pkgs.linuxPackages;
# let's use the CachyOS kernel instead! # let's use the CachyOS kernel instead!
nixpkgs.overlays = [nix-cachyos-kernel.overlays.default];
nix.settings.substituters = [
"https://attic.xuyh0120.win/lantian"
"https://cache.garnix.io"
];
nix.settings.trusted-public-keys = [
"lantian:EeAUQ+W+6r7EtwnmYjeVwx5kOGEBpjlBfPlzGlTNvHc="
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
];
boot.kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-lts; boot.kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-lts;
# enable hyper-v for guests
virtualisation.hypervGuest.enable = true;
boot.blacklistedKernelModules = ["hyperv_fb"];
programs = { programs = {
gamescope = { gamescope = {
enable = true; enable = true;
@ -77,7 +53,6 @@
enable = false; enable = false;
user = "sckova"; user = "sckova";
}; };
defaultSession = "niri";
}; };
environment = { environment = {
@ -102,4 +77,27 @@
capSysAdmin = true; capSysAdmin = true;
openFirewall = true; openFirewall = true;
}; };
# virtualization settings
virtualisation = {
containers.enable = true;
podman = {
enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enabled = true; # Required for containers under podman-compose to be able to talk to each other.
};
};
# enable hyper-v for guests
virtualisation.hypervGuest.enable = true;
boot.blacklistedKernelModules = ["hyperv_fb"];
boot.binfmt.emulatedSystems = [
"aarch64-linux"
"riscv64-linux"
];
# i don't even remember what this does or why i added it
systemd.tmpfiles.rules = ["L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware"];
} }

View file

@ -1,25 +1,10 @@
{ {pkgs, ...}: {
config,
pkgs,
lib,
catppuccin,
...
}: {
networking.hostName = "peach"; networking.hostName = "peach";
boot.binfmt.emulatedSystems = [
"x86_64-linux"
"riscv64-linux"
];
boot.kernelParams = ["apple_dcp.show_notch=1"]; boot.kernelParams = ["apple_dcp.show_notch=1"];
catppuccin.accent = "peach"; catppuccin.accent = "peach";
home-manager.users.sckova = {
imports = [catppuccin.homeModules.catppuccin];
};
hardware.asahi = { hardware.asahi = {
enable = true; enable = true;
setupAsahiSound = true; setupAsahiSound = true;
@ -37,7 +22,7 @@
swapDevices = [ swapDevices = [
{ {
device = "/swapfile"; device = "/swapfile";
size = 16000; # 16GB size = 8000; # 8GB
} }
]; ];

View file

@ -1,18 +1,6 @@
{ {catppuccin, ...}: {
config,
pkgs,
lib,
catppuccin,
...
}: {
networking.hostName = "vm"; networking.hostName = "vm";
# Enable emulation for architectures we're not currently running
boot.binfmt.emulatedSystems =
lib.optional (pkgs.stdenv.hostPlatform.system != "x86_64-linux") "x86_64-linux"
++ lib.optional (pkgs.stdenv.hostPlatform.system != "aarch64-linux") "aarch64-linux"
++ lib.optional (pkgs.stdenv.hostPlatform.system != "riscv64-linux") "riscv64-linux";
catppuccin.accent = "green"; catppuccin.accent = "green";
home-manager.users.sckova = { home-manager.users.sckova = {

View file

@ -1,4 +1,6 @@
{pkgs, ...}: { {pkgs, ...}: {
# This following block taken from the wiki:
# https://nixos.wiki/wiki/Fish#Setting_fish_as_your_shell
programs.bash = { programs.bash = {
interactiveShellInit = '' interactiveShellInit = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]] if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]

View file

@ -1,6 +1,8 @@
# The goal of this configuration is to make it so you can write systemd units that
# can wait until tailscale is up and connected, by putting After=tailscaled.service
# in their unit file.
# https://github.com/tailscale/tailscale/issues/11504#issuecomment-2113331262 # https://github.com/tailscale/tailscale/issues/11504#issuecomment-2113331262
{ {
config,
pkgs, pkgs,
lib, lib,
... ...

View file

@ -1,7 +1,8 @@
# https://github.com/nix-community/nixos-apple-silicon/issues/145
# This should work with both x86_64 and aarch64. (hopefully)
{ {
config, config,
lib, lib,
pkgs,
... ...
}: { }: {
nixpkgs.overlays = lib.mkIf (config.nixpkgs.hostPlatform.isLinux) [ nixpkgs.overlays = lib.mkIf (config.nixpkgs.hostPlatform.isLinux) [