Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
b6d0456
refactor: :art: add print service configuration module with cups support
ClementBobin Jun 12, 2025
364bdef
refactor: :fire: remove okular documentation configuration from nix s…
ClementBobin Jun 12, 2025
b34e299
feat: :sparkles: add browser module with emulator and driver support
ClementBobin Jun 12, 2025
1ac2695
chore: :closed_lock_with_key: emulator name from 'chromium' to 'chrom…
ClementBobin Jun 12, 2025
2785e34
feat: :sparkles: add cli configuration for node.js deployments
ClementBobin Jun 12, 2025
0ad641c
feat: :sparkles: move cli configuration
ClementBobin Jun 13, 2025
594cc91
chore: :wheelchair: moved cli oak to reflect change to module cli
ClementBobin Jun 13, 2025
2ad3f6f
chore: :pencil2: update commitlint configuration to enforce subject case
ClementBobin Jun 13, 2025
b83538a
fix: :bug: update cli configuration to reflect global tools structure
ClementBobin Jun 13, 2025
ed338a9
refactor: :art: documentation configuration and remove onlyoffice module
ClementBobin Jun 13, 2025
e8647f3
feat: :sparkles: integrate deploy-rs and update flake configuration
ClementBobin Jun 13, 2025
b7eac36
fix: :bug: update system.stateversion to 25.05 in default.nix
ClementBobin Jun 13, 2025
342ee35
refactor: :art: remove enable option from cli configuration
ClementBobin Jun 13, 2025
fe574df
refactor: :art: remove enable option from browser module configuration
ClementBobin Jun 13, 2025
8a80117
refactor: :art: remove enable option from mail
ClementBobin Jun 13, 2025
5d4e330
refactor: :art: remove enable option from documentation configuration
ClementBobin Jun 13, 2025
096bd2a
feat: :sparkles: add configuration for game engine installation
ClementBobin Jun 13, 2025
d7297be
refactor: :art: remove unity hub engine configuration
ClementBobin Jun 13, 2025
3853dc8
refactor: :art: remove easyeffects audio processing module configuration
ClementBobin Jun 13, 2025
42b66ea
refactor: :art: remove enable option from disk usage
ClementBobin Jun 13, 2025
502fcaa
refactor: :art: remove gitlkraken utility configuration
ClementBobin Jun 13, 2025
daa35aa
docs: :memo: update monitor comments to include features
ClementBobin Jun 13, 2025
b782297
refactor: :truck: support for chaotic and automatic garbage collectio…
ClementBobin Jun 13, 2025
4fcfc20
refactor: :art: remove amd gpu support configuration
ClementBobin Jun 13, 2025
c195606
refactor: :art: streamline container engine configuration in nix
ClementBobin Jun 13, 2025
160fc96
refactor: :art: enhance gamemode, additional settings and optimizations
ClementBobin Jun 13, 2025
391b76b
refactor: :art: remove unnecessary node.js dependencies from dev.nix
ClementBobin Jun 13, 2025
4501679
refactor: :art: remove google-chrome dependency from flutter.nix
ClementBobin Jun 13, 2025
0f9c496
refactor: :art: remove php option hm & sys
ClementBobin Jun 13, 2025
1cf325b
feat: :sparkles: add yubikey support and password manager backend
ClementBobin Jun 13, 2025
98e6ecb
feat: :sparkles: add power saving module with battery health
ClementBobin Jun 13, 2025
895d1c6
refactor: :art: streamline module paths and remove obsolete entries
ClementBobin Jun 13, 2025
064f4d8
feat: :sparkles: add kde connect utility module
ClementBobin Jun 13, 2025
bcf4756
refactor: :art: enable configuration for utilities and security modules
ClementBobin Jun 13, 2025
14096d1
refactor: :art: update module paths for linux-cachyos and nix-garbage
ClementBobin Jun 13, 2025
f196f9f
feat: :sparkles: add polkit configuration for udisks2 permissions
ClementBobin Jun 13, 2025
5a982fc
refactor: :art: obsolete polkit configuration for udisks2 permissions
ClementBobin Jun 13, 2025
028fc8e
refactor: :art: restructure nix module configurations for clarity
ClementBobin Jun 13, 2025
5f967dd
refactor: :art: correct naming convention for kde-connect module
ClementBobin Jun 13, 2025
b1e72b2
refactor: :art: update commitlint to enforce lower-case subject case
ClementBobin Jun 13, 2025
b1bc89b
feat: :sparkles: add support for okular document editor in configuration
ClementBobin Jun 13, 2025
3a1e25b
refactor: :art: simplify chromium driver condition in browser
ClementBobin Jun 13, 2025
5cc243d
refactor: :art: remove unused pkgs'parameter from polkit module
ClementBobin Jun 13, 2025
97e3304
feat: :sparkles: add option to conditionally enable scx service
ClementBobin Jun 13, 2025
8b32bc5
fix: :bug: correct placement of scalar.enable in oak configuration
ClementBobin Jun 13, 2025
ad207e7
feat: :sparkles: extend chromium driver to include vivaldi and brave
ClementBobin Jun 13, 2025
cc755d3
fix: :bug: correct deployment command for deploy-rs in flake.nix
ClementBobin Jun 13, 2025
c0db603
fix: :bug: remove usbcore.autosuspend from powersave configuration
ClementBobin Jun 13, 2025
5a91723
fix: :bug: update imports to reference hydenix and remove default.nix
ClementBobin Jun 13, 2025
ee22861
fix: :bug: clean up formatting in flake.nix for deployment checks
ClementBobin Jun 13, 2025
40051db
feat: :sparkles: gamemode support with customizable settings
ClementBobin Jun 13, 2025
b6cc41b
fix: :bug: remove unused variable 'vars' from default.nix
ClementBobin Jun 13, 2025
d22b05b
feat: :sparkles: add customizable printer driver options
ClementBobin Jun 13, 2025
2240ca9
fix: :bug: refactor home.packages to use concatenation
ClementBobin Jun 13, 2025
fa000df
fix: :bug: update default mail services to an empty list
ClementBobin Jun 13, 2025
d709dbf
fix: :bug: simplify cli and mail service configurations in default.nix
ClementBobin Jun 13, 2025
63d2707
fix: :bug: refactor packages to use optional concatenation
ClementBobin Jun 13, 2025
e1faf67
fix: :bug: update password manager to enable u2f support
ClementBobin Jun 13, 2025
6702754
fix: :bug: refactor home.packages to use proper concatenation syntax
ClementBobin Jun 13, 2025
6923e7f
fix: :bug: add option to enable/disable KDE Connect tray indicator
ClementBobin Jun 13, 2025
5f2a69a
fix: :bug: update steam compatibility tools path type
ClementBobin Jun 13, 2025
c4aad16
fix: :bug: remove unused pkgs parameter from kde-connect module
ClementBobin Jun 13, 2025
2f7b6dc
fix: :bug: change default value of cli tools list to empty
ClementBobin Jun 13, 2025
1079895
fix: :bug: simplify printing service configuration in print.nix
ClementBobin Jun 13, 2025
e482931
fix: :bug: remove unused inputs parameter from polkit module
ClementBobin Jun 13, 2025
fe068d0
fix: :bug: scx service enablement condition in linux-cachyos.nix
ClementBobin Jun 13, 2025
353f2b4
fix: :bug: update bitwarden package to bitwarden-desktop
ClementBobin Jun 13, 2025
29746e8
fix: :bug: improve error handling in rb script & set default host value
ClementBobin Jun 13, 2025
dbc65d5
fix: :bug: correct variable assignment syntax in rb script
ClementBobin Jun 13, 2025
6fc4ed9
fix: :bug: update default path for Steam compatibility tools
ClementBobin Jun 13, 2025
02558e0
fix: :bug: refactor packages configuration for improved driver handling
ClementBobin Jun 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 76 additions & 4 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

67 changes: 64 additions & 3 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
description = "template for hydenix";

inputs = {
chaotic.url = "github:chaotic-cx/nyx/18c577a2a160453f4a6b4050fb0eac7d28b92ead";
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";

# User's nixpkgs - for user packages
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
Expand All @@ -24,6 +24,11 @@
url = "github:nix-community/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};

deploy-rs = {
url = "github:serokell/deploy-rs";
inputs.nixpkgs.follows = "nixpkgs";
};
};

outputs =
Expand Down Expand Up @@ -61,20 +66,76 @@
hydenix-inputs = inputs.hydenix.inputs // inputs.hydenix.lib // inputs.hydenix;
flake = inputs.self.outPath;
};

# All below is for deploy-rs
system = inputs.hydenix.lib.system;
pkgs = import inputs.nixpkgs {
inherit system;
overlays = [ inputs.deploy-rs.overlays.default ];
};

mkDeployNode = hostname: {
hostname = hostname;
profiles.system = {
# Change from root to your user
user = "${vars.user}";
path = inputs.deploy-rs.lib.${system}.activate.nixos inputs.self.nixosConfigurations.${hostname};
sshUser = "${vars.user}";
interactiveSudo = true;
sshOpts = [
"-p"
"22"
];
magicRollback = true;
confirmTimeout = 300;
};
};
in
{
nixosConfigurations = {
fern = mkHost "fern";
oak = mkHost "oak";
# TODO: temp host for rebuild iso
nixos = mkHost "oak";
"fern.local" = mkHost "fern";
"oak.local" = mkHost "oak";
};

deploy.nodes = {
fern = mkDeployNode "fern.local";
oak = mkDeployNode "oak.local";
};

packages.${inputs.hydenix.lib.system} = {
fern-vm = mkVm "fern";
oak-vm = mkVm "oak";

build-iso = isoConfig.build-iso;
burn-iso = isoConfig.burn-iso;

rb = pkgs.writeShellScriptBin "rb" ''
set -euo pipefail
host=$1
case "$host" in
"oak")
${pkgs.deploy-rs}/bin/deploy --skip-checks .#oak ;;
"fern")
${pkgs.deploy-rs}/bin/deploy --skip-checks .#fern ;;
"all")
${pkgs.deploy-rs}/bin/deploy --skip-checks .#oak
${pkgs.deploy-rs}/bin/deploy --skip-checks .#fern
;;
*) echo "Usage: rb [oak|fern|all]" >&2; exit 1 ;;
esac
'';
};

# Only check the specific deployment node
checks.${system} = {
oak-check = inputs.deploy-rs.lib.${system}.deployChecks {
nodes.oak = inputs.self.deploy.nodes.oak;
};
fern-check = inputs.deploy-rs.lib.${system}.deployChecks {
nodes.fern = inputs.self.deploy.nodes.fern;
};
};
};
}
4 changes: 3 additions & 1 deletion hosts/fern/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ in
{
# hm import
imports = [
../../modules/hm/desktops
../../modules/hm/desktops/hydenix.nix
];

desktops.hydenix = {
Expand All @@ -69,4 +69,6 @@ in
];
shell = pkgs.zsh;
};

system.stateVersion = "25.05";
}
9 changes: 1 addition & 8 deletions hosts/oak/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ in
{
# hm import
imports = [
../../modules/hm/desktops
../../modules/hm/desktops/hydenix.nix
../../modules/hm/hosts/oak
];

Expand Down Expand Up @@ -89,11 +89,4 @@ in
];
shell = pkgs.zsh;
};

services = {
printing = { # CUPS
enable = true;
drivers = [ pkgs.cnijfilter2 ];
};
};
}
38 changes: 38 additions & 0 deletions modules/hm/common/browser/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{ pkgs, lib, config, ... }:

let
cfg = config.modules.common.browser;
in
{
options.modules.common.browser = {
emulators = lib.mkOption {
type = lib.types.listOf (lib.types.enum ["chromium" "chrome" "firefox" "brave" "vivaldi" "edge"]);
default = [];
};

driver.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Enable browser drivers for automation (e.g., Selenium, Puppeteer)";
};
};

config = {
home.packages = with pkgs;
lib.unique (
(lib.optionals (lib.elem "chromium" cfg.emulators) [chromium]) ++
(lib.optionals (lib.elem "chrome" cfg.emulators) [google-chrome]) ++
(lib.optionals (lib.elem "firefox" cfg.emulators) [firefox]) ++
(lib.optionals (lib.elem "brave" cfg.emulators) [brave]) ++
(lib.optionals (lib.elem "vivaldi" cfg.emulators) [vivaldi]) ++
(lib.optionals (lib.elem "edge" cfg.emulators) [microsoft-edge]) ++
(lib.optionals
(cfg.driver.enable &&
(lib.any (browser: lib.elem browser cfg.emulators)
[ "chromium" "chrome" "vivaldi" "brave" ]))
[chromedriver]) ++
(lib.optionals (cfg.driver.enable && lib.elem "firefox" cfg.emulators) [geckodriver]) ++
(lib.optionals (cfg.driver.enable && lib.elem "edge" cfg.emulators) [msedgedriver])
);
};
}
6 changes: 2 additions & 4 deletions modules/hm/common/communication/mail/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,14 @@ let
in
{
options.modules.common.communication.mail = {
enable = lib.mkEnableOption "Enable mail communication tools";

services = lib.mkOption {
type = lib.types.listOf (lib.types.enum ["thunderbird" "bluemail"]);
default = ["thunderbird"];
default = [];
description = "List of mail services to enable";
};
};

config = lib.mkIf cfg.enable {
config = {
home.packages = packagesToInstall;
};
}
15 changes: 6 additions & 9 deletions modules/hm/common/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
}:
{
imports = [
./browser

./communication/mail
./communication/teams.nix

Expand All @@ -12,24 +14,20 @@
./dev/editor/android-studio.nix
./dev/global-tools/act-github.nix
./dev/global-tools/nix.nix
./dev/node/graphite.nix
./dev/global-tools/cli.nix
./dev/node/node.nix
./dev/node/pm2.nix
./dev/node/prisma.nix
./dev/node/vercel.nix
./dev/dotnet.nix
./dev/python.nix
./dev/rust.nix

./documentation/obsidian.nix
./documentation/okular.nix
./documentation/onlyoffice.nix

./driver/chrome.nix
./documentation

./emulator

./engine/engine.nix
./engine

#./extra/ignore-file-retriever.nix

Expand All @@ -40,7 +38,6 @@
./games/star-citizen.nix
./games/northstar.nix

./multimedia/easyeffects.nix
./multimedia/gimp.nix
./multimedia/mpv.nix
./multimedia/obs.nix
Expand All @@ -58,7 +55,7 @@
./shell/tools.nix

./utilities/filezilla.nix
./utilities/gitkraken.nix
./utilities/kde-connect.nix
./utilities/scalar.nix
./utilities/stacer.nix
];
Expand Down
22 changes: 22 additions & 0 deletions modules/hm/common/dev/global-tools/cli.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{ pkgs, lib, config, ... }:

let
cfg = config.modules.common.dev.global-tools.cli;
in
{
options.modules.common.dev.global-tools.cli = {

elements = lib.mkOption {
type = lib.types.listOf (lib.types.enum ["vercel" "graphite"]);
default = [];
description = "List of CLI tools to install";
};
};

config = {
home.packages = (with pkgs;
lib.optional (lib.elem "vercel" cfg.elements) nodePackages.vercel ++
lib.optional (lib.elem "graphite" cfg.elements) graphite-cli
);
};
}
Loading
Loading