Compare commits

..

5 Commits

21 changed files with 481 additions and 359 deletions

View File

@@ -1,6 +1,6 @@
{ {
flake.modules.homeManager.desktop = flake.modules.homeManager.desktop =
{ pkgs, ... }: { config, pkgs, ... }:
{ {
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
@@ -10,6 +10,15 @@
systemd.variables = [ "--all" ]; systemd.variables = [ "--all" ];
}; };
# TODO: Hyprland 0.55 switched to Lua-based configuration.
# Until the Home Manager module is updated, we symlink our config instead.
home.file = {
".config/hypr/config".source =
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/hypr/config";
".config/hypr/hyprland.lua".source =
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/hypr/hyprland.lua";
};
home.packages = with pkgs; [ home.packages = with pkgs; [
ags ags
awww awww

View File

@@ -1,21 +1,41 @@
{ inputs, ... }: { inputs, ... }:
{ {
flake.modules.homeManager.desktop = flake.modules.homeManager.desktop =
{ pkgs, ... }: {
config,
pkgs,
lib,
...
}:
with lib;
let
cfg = config.tnix.desktop.mangowm;
in
{ {
imports = [ imports = [
inputs.mango.hmModules.mango inputs.mango.hmModules.mango
]; ];
options.tnix.desktop.mangowm = {
enable = mkEnableOption "Enable MangoWM";
monitorRule = mkOption {
type = with types; listOf str;
default = [ ];
};
tagRule = mkOption {
type = with types; listOf str;
default = [ ];
};
};
config = mkIf cfg.enable {
wayland.windowManager.mango = { wayland.windowManager.mango = {
enable = true; enable = true;
settings = { settings = {
# Monitors # Monitors
monitorrule = [ monitorrule = cfg.monitorRule;
"name:DP-2, width:1440, height:2560, refresh:144, x:0, y:0, vrr:0, rr:1"
"name:DP-3, width:2560, height:1440, refresh:144, x:1440, y:0, vrr:0"
"name:DP-1, width:1080, height:1920, refresh:144, x:4000, y:0, vrr:0, rr:3"
];
focus_cross_monitor = 1; focus_cross_monitor = 1;
exchange_cross_monitor = 1; exchange_cross_monitor = 1;
@@ -68,25 +88,7 @@
overviewgappo = 15; overviewgappo = 15;
# layouts # layouts
tagrule = [ tagrule = cfg.tagRule;
"id:1, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
"id:2, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
"id:3, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
"id:4, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
"id:5, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
"id:1, layout_name:tile, monitor_name:DP-3, no_hide:1"
"id:2, layout_name:tile, monitor_name:DP-3, no_hide:1"
"id:3, layout_name:tile, monitor_name:DP-3, no_hide:1"
"id:4, layout_name:tile, monitor_name:DP-3, no_hide:1"
"id:5, layout_name:tile, monitor_name:DP-3, no_hide:1"
"id:1, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
"id:2, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
"id:3, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
"id:4, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
"id:5, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
];
# Keybindings # Keybindings
mousebind = [ mousebind = [
@@ -250,4 +252,5 @@
dgop dgop
]; ];
}; };
};
} }

View File

@@ -0,0 +1,24 @@
{
flake.modules.homeManager.desktop =
{ pkgs, ... }:
{
programs.mpv = {
enable = true;
scripts = (
with pkgs.mpvScripts;
[
modernz
thumbfast
mpris
mpv-image-viewer.image-positioning
]
);
config = {
osc = "no";
border = "no";
};
};
};
}

View File

@@ -54,11 +54,6 @@
imports = [ "/run/secrets/vicinae.json" ]; imports = [ "/run/secrets/vicinae.json" ];
providers = { providers = {
"@samlinville/store.raycast.tailscale" = {
"preferences" = {
"tailscalePath" = "${pkgs.tailscale}/bin/tailscale";
};
};
"@sovereign/vicinae-extension-awww-switcher-0" = { "@sovereign/vicinae-extension-awww-switcher-0" = {
"preferences" = { "preferences" = {
"transitionDuration" = "1"; "transitionDuration" = "1";

View File

@@ -4,21 +4,14 @@
{ {
hostName, hostName,
userName, userName,
modulesPath,
... ...
}: }:
{ {
imports = imports = with config.flake.modules.nixos; [
with config.flake.modules.nixos;
[
boot boot
hardware
networking networking
virtualisation virtualisation
services services
]
++ [
(modulesPath + "/profiles/qemu-guest.nix")
]; ];
tnix = { tnix = {

View File

@@ -14,7 +14,14 @@ in
{ {
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem { flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
inherit system; inherit system;
specialArgs = { inherit hostName userName userEmail; }; specialArgs = {
inherit
hostName
userName
userEmail
system
;
};
modules = [ modules = [
config.flake.modules.nixos.core config.flake.modules.nixos.core
config.flake.modules.nixos.${hostName} config.flake.modules.nixos.${hostName}

View File

@@ -0,0 +1,17 @@
{
flake.modules.nixos.alpha =
{
lib,
modulesPath,
system,
...
}:
{
imports = [
(modulesPath + "/profiles/qemu-guest.nix")
];
networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault system;
};
}

View File

@@ -2,7 +2,6 @@
{ {
flake.modules.nixos.arcturus = flake.modules.nixos.arcturus =
{ {
pkgs,
hostName, hostName,
userName, userName,
... ...
@@ -10,7 +9,6 @@
{ {
imports = with config.flake.modules.nixos; [ imports = with config.flake.modules.nixos; [
boot boot
hardware
networking networking
virtualisation virtualisation
services services
@@ -109,10 +107,6 @@
firewall.enable = false; firewall.enable = false;
}; };
environment.systemPackages = with pkgs; [
nvtopPackages.full
];
system.stateVersion = "26.05"; system.stateVersion = "26.05";
}; };
} }

View File

@@ -14,7 +14,14 @@ in
{ {
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem { flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
inherit system; inherit system;
specialArgs = { inherit hostName userName userEmail; }; specialArgs = {
inherit
hostName
userName
userEmail
system
;
};
modules = [ modules = [
config.flake.modules.nixos.core config.flake.modules.nixos.core
config.flake.modules.nixos.${hostName} config.flake.modules.nixos.${hostName}

View File

@@ -1,11 +1,17 @@
{ config, ... }:
{ {
flake.modules.nixos.arcturus = flake.modules.nixos.arcturus =
{ {
config,
lib, lib,
pkgs,
system,
... ...
}: }@innerArgs:
{ {
imports = with config.flake.modules.nixos; [
hardware
];
boot.initrd.availableKernelModules = [ boot.initrd.availableKernelModules = [
"nvme" "nvme"
"xhci_pci" "xhci_pci"
@@ -18,15 +24,13 @@
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking hardware.cpu.amd.updateMicrocode = lib.mkDefault innerArgs.config.hardware.enableRedistributableFirmware;
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp10s0f3u2i2.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; networking.useDHCP = lib.mkDefault true;
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; nixpkgs.hostPlatform = lib.mkDefault system;
environment.systemPackages = with pkgs; [
nvtopPackages.amd
];
}; };
} }

View File

@@ -10,7 +10,6 @@
{ {
imports = with config.flake.modules.nixos; [ imports = with config.flake.modules.nixos; [
boot boot
hardware
networking networking
desktop desktop
gaming gaming
@@ -120,20 +119,7 @@
firewall.enable = false; firewall.enable = false;
}; };
# --- Hardware / GPU ---
# hardware = {
# nvidia = {
# modesetting.enable = true;
# open = false;
# nvidiaSettings = true;
# };
# };
# boot.kernelParams = [ "nvidia-drm.modeset=1" ];
# nixpkgs.config.cudaSupport = true;
# services.xserver.videoDrivers = [ "nvidia" ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
nvtopPackages.full
davinci-resolve davinci-resolve
telegram-desktop telegram-desktop
]; ];

View File

@@ -14,7 +14,14 @@ in
{ {
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem { flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
inherit system; inherit system;
specialArgs = { inherit hostName userName userEmail; }; specialArgs = {
inherit
hostName
userName
userEmail
system
;
};
modules = [ modules = [
config.flake.modules.nixos.core config.flake.modules.nixos.core
config.flake.modules.nixos.${hostName} config.flake.modules.nixos.${hostName}

View File

@@ -1,11 +1,16 @@
{ config, ... }:
{ {
flake.modules.nixos.canopus = flake.modules.nixos.canopus =
{ {
config,
lib, lib,
system,
... ...
}: }@innerArgs:
{ {
imports = with config.flake.modules.nixos; [
hardware
];
boot.initrd.availableKernelModules = [ boot.initrd.availableKernelModules = [
"nvme" "nvme"
"xhci_pci" "xhci_pci"
@@ -18,15 +23,9 @@
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking hardware.cpu.amd.updateMicrocode = lib.mkDefault innerArgs.config.hardware.enableRedistributableFirmware;
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp10s0f3u2i2.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; networking.useDHCP = lib.mkDefault true;
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; nixpkgs.hostPlatform = lib.mkDefault system;
}; };
} }

View File

@@ -5,7 +5,25 @@
desktop desktop
]; ];
tnix.services.lan-mouse = { tnix = {
desktop = {
mangowm = {
enable = true;
monitorRule = [
"name:eDP-1, width:2560, height:1440, refresh:165, x:0, y:0, vrr:1"
];
tagRule = [
"id:1, layout_name:tile"
"id:2, layout_name:tile"
"id:3, layout_name:tile"
"id:4, layout_name:tile"
"id:5, layout_name:scroller"
];
};
};
services.lan-mouse = {
enable = true; enable = true;
settings = { settings = {
authorized_fingerprints = { authorized_fingerprints = {
@@ -14,6 +32,7 @@
}; };
}; };
}; };
};
home.stateVersion = "26.05"; home.stateVersion = "26.05";
}; };

View File

@@ -10,7 +10,6 @@
{ {
imports = with config.flake.modules.nixos; [ imports = with config.flake.modules.nixos; [
boot boot
hardware
networking networking
desktop desktop
gaming gaming
@@ -121,20 +120,7 @@
firewall.enable = false; firewall.enable = false;
}; };
# --- Hardware / GPU ---
hardware = {
nvidia = {
modesetting.enable = true;
open = false;
nvidiaSettings = true;
};
};
boot.kernelParams = [ "nvidia-drm.modeset=1" ];
nixpkgs.config.cudaSupport = true;
services.xserver.videoDrivers = [ "nvidia" ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
nvtopPackages.full
davinci-resolve davinci-resolve
telegram-desktop telegram-desktop
]; ];

View File

@@ -14,7 +14,14 @@ in
{ {
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem { flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
inherit system; inherit system;
specialArgs = { inherit hostName userName userEmail; }; specialArgs = {
inherit
hostName
userName
userEmail
system
;
};
modules = [ modules = [
config.flake.modules.nixos.core config.flake.modules.nixos.core
config.flake.modules.nixos.${hostName} config.flake.modules.nixos.${hostName}

View File

@@ -1,11 +1,18 @@
{ config, ... }:
{ {
flake.modules.nixos.sirius = flake.modules.nixos.sirius =
{ {
config,
lib, lib,
pkgs,
system,
... ...
}: }@innerArgs:
{ {
imports = with config.flake.modules.nixos; [
hardware
];
boot.kernelParams = [ "nvidia-drm.modeset=1" ];
boot.initrd.availableKernelModules = [ boot.initrd.availableKernelModules = [
"nvme" "nvme"
"xhci_pci" "xhci_pci"
@@ -18,15 +25,23 @@
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking hardware = {
# (the default) this is the recommended approach. When using systemd-networkd it's nvidia = {
# still possible to use this option, but it's recommended to use it in conjunction modesetting.enable = true;
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. open = false;
networking.useDHCP = lib.mkDefault true; nvidiaSettings = true;
# networking.interfaces.eno1.useDHCP = lib.mkDefault true; };
# networking.interfaces.wlp10s0f3u2i2.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; cpu.amd.updateMicrocode = lib.mkDefault innerArgs.config.hardware.enableRedistributableFirmware;
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; };
services.xserver.videoDrivers = [ "nvidia" ];
networking.useDHCP = lib.mkDefault true;
nixpkgs.config.cudaSupport = true;
nixpkgs.hostPlatform = lib.mkDefault system;
environment.systemPackages = with pkgs; [
nvtopPackages.full
];
}; };
} }

View File

@@ -5,7 +5,39 @@
desktop desktop
]; ];
tnix.services.lan-mouse = { tnix = {
desktop = {
mangowm = {
enable = true;
monitorRule = [
"name:DP-2, width:1440, height:2560, refresh:144, x:0, y:0, vrr:0, rr:1"
"name:DP-3, width:2560, height:1440, refresh:144, x:1440, y:0, vrr:0"
"name:DP-1, width:1080, height:1920, refresh:144, x:4000, y:0, vrr:0, rr:3"
];
tagRule = [
"id:1, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
"id:2, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
"id:3, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
"id:4, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
"id:5, layout_name:vertical_tile, monitor_name:DP-2, no_hide:1"
"id:1, layout_name:tile, monitor_name:DP-3, no_hide:1"
"id:2, layout_name:tile, monitor_name:DP-3, no_hide:1"
"id:3, layout_name:tile, monitor_name:DP-3, no_hide:1"
"id:4, layout_name:tile, monitor_name:DP-3, no_hide:1"
"id:5, layout_name:tile, monitor_name:DP-3, no_hide:1"
"id:1, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
"id:2, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
"id:3, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
"id:4, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
"id:5, layout_name:vertical_tile, monitor_name:DP-1, no_hide:1"
];
};
};
services.lan-mouse = {
enable = true; enable = true;
settings = { settings = {
clients = [ clients = [
@@ -18,6 +50,7 @@
]; ];
}; };
}; };
};
home.stateVersion = "26.05"; home.stateVersion = "26.05";
}; };

View File

@@ -3,21 +3,14 @@
flake.modules.nixos.vps = flake.modules.nixos.vps =
{ {
hostName, hostName,
modulesPath,
... ...
}: }:
{ {
imports = imports = with config.flake.modules.nixos; [
with config.flake.modules.nixos;
[
boot boot
hardware
networking networking
virtualisation virtualisation
services services
]
++ [
(modulesPath + "/profiles/qemu-guest.nix")
]; ];
tnix = { tnix = {

View File

@@ -14,7 +14,14 @@ in
{ {
flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem { flake.nixosConfigurations."${hostName}" = nixpkgs.lib.nixosSystem {
inherit system; inherit system;
specialArgs = { inherit hostName userName userEmail; }; specialArgs = {
inherit
hostName
userName
userEmail
system
;
};
modules = [ modules = [
config.flake.modules.nixos.core config.flake.modules.nixos.core
config.flake.modules.nixos.${hostName} config.flake.modules.nixos.${hostName}

View File

@@ -0,0 +1,17 @@
{
flake.modules.nixos.vps =
{
lib,
modulesPath,
system,
...
}:
{
imports = [
(modulesPath + "/profiles/qemu-guest.nix")
];
networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault system;
};
}