Compare commits

...

3 commits

25 changed files with 214 additions and 57 deletions

145
flake.lock generated
View file

@ -129,6 +129,38 @@
} }
}, },
"flake-compat": { "flake-compat": {
"flake": false,
"locked": {
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1650374568,
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_3": {
"locked": { "locked": {
"lastModified": 1733328505, "lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
@ -214,9 +246,46 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils-plus": {
"inputs": {
"flake-utils": "flake-utils_2"
},
"locked": {
"lastModified": 1715533576,
"narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=",
"owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus",
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
"type": "github"
},
"original": {
"owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus",
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
"type": "github"
}
},
"flake-utils_2": { "flake-utils_2": {
"inputs": { "inputs": {
"systems": "systems_5" "systems": "systems_4"
},
"locked": {
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"inputs": {
"systems": "systems_6"
}, },
"locked": { "locked": {
"lastModified": 1681202837, "lastModified": 1681202837,
@ -232,9 +301,9 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_3": { "flake-utils_4": {
"inputs": { "inputs": {
"systems": "systems_6" "systems": "systems_7"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@ -664,6 +733,7 @@
"nixvirt": "nixvirt", "nixvirt": "nixvirt",
"rose-pine-hyprcursor": "rose-pine-hyprcursor", "rose-pine-hyprcursor": "rose-pine-hyprcursor",
"snapraid-aio": "snapraid-aio", "snapraid-aio": "snapraid-aio",
"solaar": "solaar",
"stylix": "stylix", "stylix": "stylix",
"vscode-server": "vscode-server", "vscode-server": "vscode-server",
"yay": "yay", "yay": "yay",
@ -746,6 +816,52 @@
"type": "github" "type": "github"
} }
}, },
"snowfall-lib": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-utils-plus": "flake-utils-plus",
"nixpkgs": [
"solaar",
"nixpkgs"
]
},
"locked": {
"lastModified": 1718097323,
"narHash": "sha256-zCgs8Wp7rdt0tjNUHMUIvi6sIvDoprWIHwvTGq+LMK0=",
"owner": "snowfallorg",
"repo": "lib",
"rev": "aa19b02b63025263cec041fcb7a0857c3cb98859",
"type": "github"
},
"original": {
"owner": "snowfallorg",
"ref": "v3.0.3",
"repo": "lib",
"type": "github"
}
},
"solaar": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": [
"nixpkgs"
],
"snowfall-lib": "snowfall-lib"
},
"locked": {
"lastModified": 1736760170,
"narHash": "sha256-GvMN9vsy59xitBKt0Qh/grANYi0AWHXokrr6FY4JXRM=",
"owner": "Svenum",
"repo": "Solaar-Flake",
"rev": "255c70259546c7201141e7903cd94b0507c6377e",
"type": "github"
},
"original": {
"owner": "Svenum",
"repo": "Solaar-Flake",
"type": "github"
}
},
"stylix": { "stylix": {
"inputs": { "inputs": {
"base16": "base16", "base16": "base16",
@ -753,14 +869,14 @@
"base16-helix": "base16-helix", "base16-helix": "base16-helix",
"base16-vim": "base16-vim", "base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme", "firefox-gnome-theme": "firefox-gnome-theme",
"flake-compat": "flake-compat", "flake-compat": "flake-compat_3",
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts_2",
"git-hooks": "git-hooks", "git-hooks": "git-hooks",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"home-manager": "home-manager_3", "home-manager": "home-manager_3",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_4",
"nur": "nur", "nur": "nur",
"systems": "systems_4", "systems": "systems_5",
"tinted-foot": "tinted-foot", "tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty", "tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes", "tinted-schemes": "tinted-schemes",
@ -871,6 +987,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_7": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tinted-foot": { "tinted-foot": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -994,7 +1125,7 @@
}, },
"vscode-server": { "vscode-server": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_2", "flake-utils": "flake-utils_3",
"nixpkgs": [ "nixpkgs": [
"nixpkgs-unstable" "nixpkgs-unstable"
] ]
@ -1015,7 +1146,7 @@
}, },
"yay": { "yay": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_3", "flake-utils": "flake-utils_4",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]

View file

@ -49,6 +49,11 @@
# inputs.nixpkgs.follows = "nixpkgs"; # inputs.nixpkgs.follows = "nixpkgs";
# }; # };
solaar = {
url = "github:Svenum/Solaar-Flake";
inputs.nixpkgs.follows = "nixpkgs";
};
snapraid-aio = { snapraid-aio = {
# url = "git+https://git.ryot.foo/toph/snapraid-aio.nix.git"; # url = "git+https://git.ryot.foo/toph/snapraid-aio.nix.git";
url = "git+https://git.ryot.foo/toph/snapraid-aio.nix.git"; url = "git+https://git.ryot.foo/toph/snapraid-aio.nix.git";

View file

@ -131,6 +131,7 @@ with lib.hm.gvariant;
"quicksettings-audio-devices-renamer@marcinjahn.com" "quicksettings-audio-devices-renamer@marcinjahn.com"
"undecorate@sun.wxg@gmail.com" "undecorate@sun.wxg@gmail.com"
"user-theme@gnome-shell-extensions.gcampax.github.com" "user-theme@gnome-shell-extensions.gcampax.github.com"
"solaar-extension@sidevesh"
"Vitals@CoreCoding.com" "Vitals@CoreCoding.com"
]; ];
favorite-apps = lib.mkDefault [ favorite-apps = lib.mkDefault [

View file

@ -37,8 +37,6 @@ in
preferXdgDirectories = true; # whether to make programs use XDG directories whenever supported preferXdgDirectories = true; # whether to make programs use XDG directories whenever supported
}; };
#TODO(xdg): maybe move this to its own xdg.nix?
# xdg packages are pulled in below
xdg = { xdg = {
enable = true; enable = true;
userDirs = { userDirs = {
@ -59,12 +57,12 @@ in
direnv # environment per directory direnv # environment per directory
dust # disk usage dust # disk usage
eza # ls replacement eza # ls replacement
microsoft-edit
nmap # network scanner nmap # network scanner
trashy # trash cli trashy # trash cli
unrar # rar extraction unrar # rar extraction
unzip # zip extraction unzip # zip extraction
zip # zip compression zip # zip compression
microsoft-edit
; ;
}; };
@ -72,7 +70,6 @@ in
enable = true; enable = true;
}; };
# disable manuals as nmd fails to build often
manual = { manual = {
html.enable = false; html.enable = false;
json.enable = false; json.enable = false;

View file

@ -1,3 +0,0 @@
{
# No Special Home
}

View file

@ -40,6 +40,7 @@
## Tools ## ## Tools ##
bitwarden-desktop bitwarden-desktop
inspector inspector
solaar
## Productivity ## ## Productivity ##
gimp gimp

View file

@ -16,6 +16,7 @@ with lib.hm.gvariant;
"org.telegram.desktop.desktop" "org.telegram.desktop.desktop"
"steam.desktop" "steam.desktop"
"Ryujinx.desktop" "Ryujinx.desktop"
"Overwatch 2.desktop"
"Marvel Rivals.desktop" "Marvel Rivals.desktop"
]; ];
}; };

View file

@ -34,6 +34,7 @@
## Tools ## ## Tools ##
bitwarden-desktop bitwarden-desktop
inspector inspector
solaar
## Productivity ## ## Productivity ##
gimp gimp

View file

@ -1,11 +0,0 @@
{
config,
...
}:
{
home.file = {
Pool.source = config.lib.file.mkOutOfStoreSymlink "/pool";
DockerStorage.source = config.lib.file.mkOutOfStoreSymlink "/mnt/DockerStorage";
};
}

View file

@ -1,3 +0,0 @@
{
# No Special Home
}

View file

@ -1,3 +0,0 @@
{
# No Special Home
}

View file

@ -37,6 +37,7 @@
bitwarden-desktop bitwarden-desktop
inspector inspector
remmina remmina
solaar
vial # KB setup vial # KB setup
## Productivity ## ## Productivity ##

View file

@ -1,5 +1,6 @@
{ {
lib, lib,
pkgs,
hostSpec, hostSpec,
... ...
}: }:
@ -11,7 +12,7 @@
]; ];
home.sessionVariables = { home.sessionVariables = {
EDITOR = lib.mkDefault "${lib.getExe pkgs.microsoft-edit}"; EDITOR = "${lib.getExe pkgs.microsoft-edit}";
VISUAL = lib.mkDefault "${lib.getExe pkgs.microsoft-edit}"; VISUAL = "${lib.getExe pkgs.microsoft-edit}";
}; };
} }

View file

@ -1,5 +1,6 @@
{ {
lib, lib,
pkgs,
hostSpec, hostSpec,
... ...
}: }:
@ -11,7 +12,7 @@
]; ];
home.sessionVariables = { home.sessionVariables = {
EDITOR = lib.mkDefault "${lib.getExe pkgs.microsoft-edit}"; EDITOR = "${lib.getExe pkgs.microsoft-edit}";
VISUAL = lib.mkDefault "${lib.getExe pkgs.microsoft-edit}"; VISUAL = "${lib.getExe pkgs.microsoft-edit}";
}; };
} }

View file

@ -5,6 +5,8 @@
... ...
}: }:
let let
isServer = hostSpec.isServer or false;
qogir = pkgs.qogir-icon-theme.override { qogir = pkgs.qogir-icon-theme.override {
colorVariants = [ colorVariants = [
"dark" "dark"
@ -14,9 +16,8 @@ let
"ubuntu" "ubuntu"
]; ];
}; };
in in
{ lib.mkIf (!isServer) {
imports = [ imports = [
inputs.stylix.homeManagerModules.stylix inputs.stylix.homeManagerModules.stylix
]; ];

View file

@ -0,0 +1,18 @@
{ pkgs, inputs, ... }:
{
imports = [
inputs.solaar.nixosModules.default
];
services.solaar = {
enable = true; # Enable the service
package = pkgs.solaar; # The package to use
window = "hide"; # Show the window on startup (show, *hide*, only [window only])
batteryIcons = "symbolic"; # Which battery icons to use (*regular*, symbolic, solaar)
extraArgs = ""; # Extra arguments to pass to solaar on startup
};
environment.systemPackages = with pkgs; [
gnomeExtensions.solaar-extension
];
}

View file

@ -71,32 +71,37 @@ in
}; };
} }
// lib.optionalAttrs (inputs ? "home-manager") { // lib.optionalAttrs (inputs ? "home-manager") {
# Setup root home?
home-manager.users.root = lib.optionalAttrs (!isMinimal) {
home.stateVersion = "24.05"; # Avoid error
};
# Set up home-manager for the configured user # Set up home-manager for the configured user
home-manager = { home-manager = {
extraSpecialArgs = { extraSpecialArgs = {
inherit pkgs inputs; inherit pkgs inputs;
inherit (config) secretsSpec hostSpec; inherit (config) secretsSpec hostSpec;
}; };
users.${username} = lib.optionalAttrs (!isMinimal) { users = {
imports = [ root.home.stateVersion = "24.05"; # Avoid error
( ${username} = {
{ config, ... }: imports = [
import (lib.custom.relativeToRoot "home/users/${username}") { (
inherit { config, ... }:
config import
hostSpec (
inputs if isMinimal then
lib lib.custom.relativeToRoot "home/global/core"
pkgs else
; lib.custom.relativeToRoot "home/users/${username}"
} )
) {
]; inherit
config
hostSpec
inputs
lib
pkgs
;
}
)
];
};
}; };
}; };
} }

View file

@ -45,6 +45,7 @@ in
handle = user.handle; handle = user.handle;
userFullName = user.fullName; userFullName = user.fullName;
isServer = true; isServer = true;
isMinimal = true;
}; };
networking = { networking = {

View file

@ -40,6 +40,7 @@ in
"hosts/global/common/gnome.nix" "hosts/global/common/gnome.nix"
"hosts/global/common/nvtop.nix" # GPU monitor (not available in home-manager) "hosts/global/common/nvtop.nix" # GPU monitor (not available in home-manager)
"hosts/global/common/plymouth.nix" # fancy boot screen "hosts/global/common/plymouth.nix" # fancy boot screen
"hosts/global/common/solaar.nix" # Logitech Unifying Receiver support
]) ])
]; ];

View file

@ -40,6 +40,7 @@ in
"hosts/global/common/gnome.nix" "hosts/global/common/gnome.nix"
"hosts/global/common/nvtop.nix" # GPU monitor (not available in home-manager) "hosts/global/common/nvtop.nix" # GPU monitor (not available in home-manager)
"hosts/global/common/plymouth.nix" # fancy boot screen "hosts/global/common/plymouth.nix" # fancy boot screen
"hosts/global/common/solaar.nix" # Logitech Unifying Receiver support
]) ])
]; ];

View file

@ -45,6 +45,7 @@ in
handle = user.handle; handle = user.handle;
userFullName = user.fullName; userFullName = user.fullName;
isServer = true; isServer = true;
isMinimal = true;
}; };
networking = { networking = {

View file

@ -9,4 +9,10 @@
"hosts/global/common/system/pool.nix" "hosts/global/common/system/pool.nix"
]) ])
]; ];
## Easy links, I use this dirs more often in this host
systemd.user.tmpfiles.rules = [
"L+ %h/Pool - - - - /pool"
"L+ %h/DockerStorage - - - - /mnt/DockerStorage"
];
} }

View file

@ -38,6 +38,7 @@ in
handle = user.handle; handle = user.handle;
userFullName = user.fullName; userFullName = user.fullName;
isServer = true; isServer = true;
isMinimal = true;
}; };
networking = { networking = {

View file

@ -46,6 +46,7 @@ in
handle = user.handle; handle = user.handle;
userFullName = user.fullName; userFullName = user.fullName;
isServer = true; isServer = true;
isMinimal = true;
}; };
networking = { networking = {

View file

@ -42,6 +42,7 @@ in
"hosts/global/common/libvirt.nix" # vm tools "hosts/global/common/libvirt.nix" # vm tools
"hosts/global/common/nvtop.nix" # GPU monitor (not available in home-manager) "hosts/global/common/nvtop.nix" # GPU monitor (not available in home-manager)
"hosts/global/common/plymouth.nix" # fancy boot screen "hosts/global/common/plymouth.nix" # fancy boot screen
"hosts/global/common/solaar.nix" # Logitech Unifying Receiver support
"hosts/global/common/vial.nix" # KB setup "hosts/global/common/vial.nix" # KB setup
]) ])
]; ];