32 Commits

Author SHA1 Message Date
Armel van Ravels
00a8168ef5 add den pattern 2026-08-14 15:08:14 +02:00
Armel van Ravels
6c1074e3fd devenv update 2026-08-13 09:26:43 +02:00
63360dd275 nix flake update 2026-08-13 08:18:03 +02:00
Armel van Ravels
c8c49bb238 Add bubblewrap and socat 2026-08-11 14:11:21 +02:00
Armel van Ravels
b4ef190034 Add vscode laravel 2026-08-10 08:56:17 +02:00
Armel van Ravels
010031b3d8 Add phpunit in vscode 2026-07-30 10:24:07 +02:00
Armel van Ravels
a1b6ccec7d Intelephense for php 2026-07-29 10:10:10 +02:00
5bfee98cc8 Add direnv 2026-07-24 09:54:37 +02:00
Armel van Ravels
bc16b994a0 Reorganize modules 2026-07-23 17:55:54 +02:00
Armel van Ravels
bb3115f637 Add codium 2026-07-23 17:02:54 +02:00
Armel van Ravels
3f446ddbd0 Add cursor with same vscode settings 2026-07-23 13:29:49 +02:00
Armel van Ravels
e2dec8d94d nix flake update 2026-07-21 09:21:32 +02:00
Armel van Ravels
b4fed26fdd Add screen recording 2026-07-15 10:24:38 +02:00
7add559324 Add yazi 2026-07-13 16:21:19 +02:00
1e201aa9c6 update bambu studio and flake update 2026-07-13 16:16:30 +02:00
Armel van Ravels
6d81332af3 Fullscreen dex and flake update 2026-07-08 10:39:17 +02:00
Armel van Ravels
93f98b0bd9 Moved dex to seperate file 2026-07-07 09:53:33 +02:00
Armel van Ravels
fb978f98e5 New wallpaper plus cosmetics 2026-07-07 09:03:04 +02:00
916dd01079 flake update 2026-07-02 14:20:11 +02:00
711e593018 Add lazygit 2026-07-02 14:10:29 +02:00
Armel van Ravels
7aaec79d03 add dex 2026-07-01 11:00:51 +02:00
322d786f1a flake update 2026-06-29 23:08:13 +02:00
61eb3d663e drop heroic and add discord 2026-06-29 23:07:07 +02:00
Armel van Ravels
af4175f5db update flake.lock drop legcord 2026-06-29 09:56:47 +02:00
84f149fe88 reconfigure monitors after config.reloaded event 2026-06-26 18:23:34 +02:00
Armel van Ravels
73601c9423 Add work specialization for monitor configuration 2026-06-26 14:20:24 +02:00
239f5832c6 Add btop.nix to Gandalf 2026-06-23 07:41:00 +02:00
b6059c8608 Add devenv.nix to Gandalf 2026-06-23 07:37:46 +02:00
Armel van Ravels
83210c012c Configure monitor per host 2026-06-22 11:06:20 +02:00
Armel van Ravels
0af25f781c Super + Q should close instead of kill 2026-06-22 10:24:03 +02:00
Armel van Ravels
edfb61be35 Add Vue exgtension to vscode 2026-06-22 10:10:39 +02:00
cf9c121269 Some cleanup add btop and vlc to some systems 2026-06-21 13:21:11 +02:00
127 changed files with 1087 additions and 658 deletions

7
.envrc Normal file
View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
eval "$(devenv direnvrc)"
# You can pass flags to the devenv command
# For example: use devenv --impure --option services.postgres.enable:bool true
use devenv

View File

@@ -3,11 +3,11 @@
"devenv": {
"locked": {
"dir": "src/modules",
"lastModified": 1781800860,
"narHash": "sha256-LrEo0eC5ckMvjpBRCuk5q5/vjItKlxnb4n/clHNRZlk=",
"lastModified": 1786490576,
"narHash": "sha256-TH5K1TBi5YNUEEVXoPe99Wzy6XOxsuzkypEJofWc/fU=",
"owner": "cachix",
"repo": "devenv",
"rev": "d59d872d80876d9eeb3e214d3b088bc4a14a9c4f",
"rev": "5706f600b4b6799d5dade8602f85cfd2e060b2f3",
"type": "github"
},
"original": {
@@ -36,17 +36,16 @@
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1781733627,
"narHash": "sha256-U3yTuGBnmXvXoQI3qkpfEDsn9RovQPAjN7ndRco+3u0=",
"lastModified": 1784288435,
"narHash": "sha256-ReRHaLgr/uVqdD8afFSn+myXIfpHeOhP0yYe0TJqAA8=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "3bbec39bc90eadfa031e6f3b77272f3f60803e39",
"rev": "43b3c1ab9d40fb1dbb008f451988a91e375825e9",
"type": "github"
},
"original": {
@@ -55,37 +54,16 @@
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"nixpkgs": {
"inputs": {
"nixpkgs-src": "nixpkgs-src"
},
"locked": {
"lastModified": 1781620901,
"narHash": "sha256-UF6scQlG+6lRkZBUpn/3KNavhOo5G8kDWhjVHcno8uc=",
"lastModified": 1786472144,
"narHash": "sha256-W1wLGKZKGtnTWGRFgjbsVQleuO6jgMweaSAbFltLkN0=",
"owner": "cachix",
"repo": "devenv-nixpkgs",
"rev": "2df109b343d3c68efd752e32a444a1d9b9f89afa",
"rev": "ea21d30f66a051c7cd750692a2af8d56e0ec4bfb",
"type": "github"
},
"original": {
@@ -98,11 +76,11 @@
"nixpkgs-src": {
"flake": false,
"locked": {
"lastModified": 1781454065,
"narHash": "sha256-d2xfDjnfRuf/xYGdu9VVRHiav/2w5hDL/5cw2TuVAXw=",
"lastModified": 1786098110,
"narHash": "sha256-shi1tjDhCGGd0kIgVPNY03V8NBWSTzhMSFDb7IqSoec=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9eac87a12312b8f60dd52e1c6e1a265f6fc7f5fc",
"rev": "afb4584a80bbf779ce0f691509ff902d188c2b3d",
"type": "github"
},
"original": {
@@ -127,11 +105,11 @@
]
},
"locked": {
"lastModified": 1780220602,
"narHash": "sha256-eynAfOmbmxJnkp7YewvCEbShNnnYJ9gLLqkzsYtBPeM=",
"lastModified": 1785945821,
"narHash": "sha256-NLSyTCW4K4ofhNBllt3omPasm6QpralXH1DBZOc91Dw=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "db947814a175b7ca6ded66e21383d938df01c227",
"rev": "ae7910970dddc408fe6ab1c8e4b277bb21d72dc0",
"type": "github"
},
"original": {

24
flake.lock generated
View File

@@ -7,11 +7,11 @@
]
},
"locked": {
"lastModified": 1781319724,
"narHash": "sha256-ZGuxexEMo4Xv28KJ0dX/m/PHN4oZIOnxHZpNTyrvx4M=",
"lastModified": 1785119570,
"narHash": "sha256-Rgs2xKnGLFWQscxUaXX07oyZeuMDOHEbqDOsgliLFGM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "8355f0a16b2dbb06a97959a918af5b239bbe05ae",
"rev": "d4fd24667c8cbef124bb70a20380cab75ec8474d",
"type": "github"
},
"original": {
@@ -23,11 +23,11 @@
},
"nix-flatpak": {
"locked": {
"lastModified": 1780908363,
"narHash": "sha256-llGS4y3Qh1eUkli3/Y2VY9FV3GOUKFZR1E2BDftt45Q=",
"lastModified": 1783368811,
"narHash": "sha256-0H8jDwR4Kegb3heaTrH1ftbgKfZVDT8JE+46uXxDy/Q=",
"owner": "gmodena",
"repo": "nix-flatpak",
"rev": "1df08625f0f8c7d6e300a0e5df7955bbb877d809",
"rev": "20d42f0ee98c9fe9f85e8d1de474f1409ed10d05",
"type": "github"
},
"original": {
@@ -38,11 +38,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1781216227,
"narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=",
"lastModified": 1786430034,
"narHash": "sha256-Vux08kA5PICwS2sViCMfwVLAHNoH8TkKAeBo25LjpMI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0",
"rev": "70cc4559b10a6062b05ff1af17e0add065ccaed9",
"type": "github"
},
"original": {
@@ -54,11 +54,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1781359544,
"narHash": "sha256-iUuzKQcyXvopYDDzFpMK5eQKP3WIJExYny2kJtbgUcE=",
"lastModified": 1786348146,
"narHash": "sha256-we5zDEFfn8TgzeWKjKDMIjeQZ59omEPl23NIF+13/ys=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9f11f828c213641c2369a9f1fa31fe31557e3156",
"rev": "d482ef84049d9b7276b83a06e4e4d76983830097",
"type": "github"
},
"original": {

View File

@@ -1,7 +1,3 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config
, lib
, pkgs
@@ -10,29 +6,24 @@
{
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
../modules/home-manager.nix
../modules/common.nix
../modules/users.nix
../modules/locales.nix
../modules/services.nix
../modules/programs.nix
../modules/docker.nix
../modules/printing.nix
../modules/bambu-studio-flatpak.nix
../modules/arduino-ide.nix
../modules/devenv.nix
# ../modules/bitwarden.nix
];
features.modules = {
core.enable = true;
development.enable = true;
hardware.enable = true;
multimedia.enable = true;
system.enable = true;
};
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.loader.systemd-boot.enable = false;
boot.loader = {
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi"; # ← use the same mount point here.
efiSysMountPoint = "/boot/efi";
};
grub = {
efiSupport = true;
@@ -65,5 +56,13 @@
};
hardware.bluetooth.enable = true;
services.blueman.enable = true;
system.stateVersion = "25.11"; # Did you read the comment?
home-manager.users.avravels.home.hyprland.monitors = [
{
output = "eDP-1";
mode = "1920x1200";
}
];
system.stateVersion = "25.11";
}

19
hosts/frodo/default.nix Normal file
View File

@@ -0,0 +1,19 @@
{ config, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
];
features.modules = {
core.enable = true;
};
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/vda";
boot.loader.grub.useOSProber = true;
networking.hostName = "frodo";
system.stateVersion = "25.11";
}

View File

@@ -3,32 +3,22 @@
{
imports = [
./hardware-configuration.nix
../modules/home-manager.nix
../modules/common.nix
../modules/users.nix
../modules/locales.nix
../modules/services.nix
../modules/programs.nix
../modules/gaming.nix
../modules/obs-studio.nix
../modules/garbage-collection.nix
../modules/printing.nix
../modules/docker.nix
../modules/matrix.nix
../modules/kdenlive.nix
../modules/audacity.nix
../modules/ollama.nix
../modules/wireguard.nix
../modules/qbittorrent.nix
../modules/gimp.nix
../modules/openscad.nix
../modules/bambu-studio-flatpak.nix
../modules/arduino-ide.nix
../modules/bitwarden.nix
../modules/vlc.nix
./mtp-fix.nix
];
features.modules = {
core.enable = true;
ai.enable = true;
desktop.enable = true;
development.enable = true;
gaming.enable = true;
hardware.enable = true;
multimedia.enable = true;
networking.enable = true;
security.enable = true;
system.enable = true;
};
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.loader.systemd-boot.enable = true;
@@ -43,13 +33,6 @@
];
networking.firewall.enable = false;
home-manager.users.avravels.home.hyprland.execOnce = [
"waybar"
"[workspace 1 silent] kitty"
"[workspace 1 silent] spotify"
"[workspace 2 silent] firefox"
];
networking.interfaces.enp130s0.wakeOnLan.enable = true;
networking.firewall.allowedUDPPorts = [ 9 ];
@@ -71,5 +54,5 @@
virtualisation.libvirtd.enable = true;
system.stateVersion = "25.11"; # Did you read the comment?
system.stateVersion = "25.11";
}

View File

@@ -3,14 +3,13 @@
{
imports = [
./hardware-configuration.nix
../modules/common.nix
../modules/users.nix
../modules/locales.nix
../modules/services.nix
../modules/programs.nix
../modules/gaming.nix
];
features.modules = {
core.enable = true;
gaming.enable = true;
};
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
@@ -34,5 +33,5 @@
virtualisation.libvirtd.enable = true;
system.stateVersion = "25.11"; # Did you read the comment?
system.stateVersion = "25.11";
}

View File

@@ -3,29 +3,20 @@
{
imports = [
./hardware-configuration.nix
../modules/home-manager.nix
../modules/common.nix
../modules/users.nix
../modules/locales.nix
../modules/services.nix
../modules/programs.nix
../modules/garbage-collection.nix
../modules/printing.nix
../modules/docker.nix
../modules/teams-for-linux.nix
../modules/azure-data-studio.nix
../modules/filezilla.nix
../modules/wireguard.nix
../modules/remmina.nix
../modules/postman.nix
../modules/gimp.nix
../modules/jq.nix
../modules/enova.nix
../modules/devenv.nix
../modules/bitwarden.nix
../modules/btop.nix
];
features.modules = {
core.enable = true;
desktop.enable = true;
development.enable = true;
hardware.enable = true;
multimedia.enable = true;
networking.enable = true;
security.enable = true;
system.enable = true;
work.enable = true;
};
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.loader.systemd-boot.enable = true;
@@ -38,14 +29,6 @@
programs.nix-ld.enable = true;
networking.hostName = "laptop-armel";
home-manager.users.avravels.home.hyprland.execOnce = [
"waybar"
"[workspace 1 silent] kitty"
"[workspace 2 silent] firefox"
"[workspace 2 silent] teams-for-linux"
"[workspace 3 silent] spotify"
];
home-manager.users.avravels.home.git.userName = "Armel van Ravels";
home-manager.users.avravels.home.git.userEmail = "armel@webavance.nl";
@@ -63,6 +46,28 @@
virtualisation.libvirtd.enable = true;
specialisation = {
"top floor".configuration = {
home-manager.users.avravels.home.hyprland.monitors = [
{
output = "DP-3";
mode = "2560x1440";
position = "0x0";
}
{
output = "DP-1";
mode = "2560x1440";
position = "2560x0";
}
{
output = "eDP-1";
mode = "1920x1200";
position = "5120x0";
}
];
};
};
networking.hosts = {
"127.0.0.1" = [
"local.wormundco.de"
@@ -73,5 +78,5 @@
"149.210.174.226" = [ "kindertelefoon" ];
};
system.stateVersion = "25.11"; # Did you read the comment?
system.stateVersion = "25.11";
}

6
modules/ai/default.nix Normal file
View File

@@ -0,0 +1,6 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

13
modules/ai/ollama.nix Normal file
View File

@@ -0,0 +1,13 @@
{ config, lib, pkgsUnstable, ... }:
let
dirModules = config.features.modules.ai or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.ollama.enable or true)) {
services.ollama = {
enable = true;
package = pkgsUnstable.ollama-cuda;
};
};
}

29
modules/core/common.nix Normal file
View File

@@ -0,0 +1,29 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.core or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.common.enable or true)) {
nixpkgs.config.allowUnfree = true;
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
users.defaultUserShell = pkgs.zsh;
environment.systemPackages = with pkgs; [
chromium
gnumake
jetbrains-toolbox
fastfetch
jq
];
security.rtkit.enable = true;
system.stateVersion = "25.11";
};
}

6
modules/core/default.nix Normal file
View File

@@ -0,0 +1,6 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

View File

@@ -0,0 +1,18 @@
{ config, lib, pkgs, pkgsUnstable, ... }:
let
dirModules = config.features.modules.core or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.home-manager.enable or true)) {
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {
inherit pkgsUnstable;
};
users.avravels = import ../home/home.nix;
};
};
}

23
modules/core/locales.nix Normal file
View File

@@ -0,0 +1,23 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.core or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.locales.enable or true)) {
time.timeZone = "Europe/Amsterdam";
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "nl_NL.UTF-8";
LC_IDENTIFICATION = "nl_NL.UTF-8";
LC_MEASUREMENT = "nl_NL.UTF-8";
LC_MONETARY = "nl_NL.UTF-8";
LC_NAME = "nl_NL.UTF-8";
LC_NUMERIC = "nl_NL.UTF-8";
LC_PAPER = "nl_NL.UTF-8";
LC_TELEPHONE = "nl_NL.UTF-8";
LC_TIME = "nl_NL.UTF-8";
};
};
}

17
modules/core/programs.nix Normal file
View File

@@ -0,0 +1,17 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.core or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.programs.enable or true)) {
programs = {
zsh.enable = true;
hyprland.enable = true;
hyprland.xwayland.enable = true;
virt-manager.enable = true;
};
};
}

28
modules/core/services.nix Normal file
View File

@@ -0,0 +1,28 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.core or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.services.enable or true)) {
services.openssh.enable = true;
services = {
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
xserver = {
enable = true;
xkb.layout = "us";
xkb.variant = "";
};
pulseaudio.enable = false;
pipewire.enable = true;
pipewire.alsa.enable = true;
pipewire.alsa.support32Bit = true;
pipewire.pulse.enable = true;
};
};
}

27
modules/core/users.nix Normal file
View File

@@ -0,0 +1,27 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.core or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.users.enable or true)) {
users.users.avravels = {
initialPassword = "welcome";
isNormalUser = true;
description = "Armel van Ravels";
extraGroups = [
"networkmanager"
"wheel"
"libvirtd"
"dialout"
];
packages = with pkgs; [
home-manager
spotify
proton-vpn
fzf
];
shell = pkgs.zsh;
};
};
}

View File

@@ -0,0 +1,6 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.desktop or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.discord.enable or true)) {
environment.systemPackages = with pkgs; [
discord
];
};
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.desktop or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.matrix.enable or true)) {
environment.systemPackages = with pkgs; [
element-desktop
];
};
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.desktop or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.teams-for-linux.enable or true)) {
environment.systemPackages = with pkgs; [
teams-for-linux
];
};
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.development or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.azure-data-studio.enable or true)) {
environment.systemPackages = with pkgs; [
azuredatastudio
];
};
}

View File

@@ -0,0 +1,6 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

View File

@@ -0,0 +1,17 @@
{ config, lib, pkgsUnstable, ... }:
let
dirModules = config.features.modules.development or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.devenv.enable or true)) {
environment.systemPackages = with pkgsUnstable; [
devenv
];
nix.settings.trusted-users = [
"root"
"avravels"
];
};
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.development or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.docker.enable or true)) {
virtualisation.docker.enable = true;
users.users.avravels.extraGroups = [ "docker" ];
};
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.development or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.jq.enable or true)) {
environment.systemPackages = with pkgs; [
jq
];
};
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.development or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.lazygit.enable or true)) {
environment.systemPackages = with pkgs; [
lazygit
];
};
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.development or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.postman.enable or true)) {
environment.systemPackages = with pkgs; [
postman
];
};
}

View File

@@ -0,0 +1,18 @@
{ lib, ... }:
let
modulesDir = ../.;
moduleDirs = builtins.readDir modulesDir;
excludeDirs = [ "home" "features" ];
dirEntries = lib.filterAttrs
(name: type: type == "directory" && !builtins.elem name excludeDirs)
moduleDirs;
in
{
options.features.modules = lib.mkOption {
type = lib.types.attrs;
default = { };
description = "Auto-generated feature module options tree";
};
}

View File

@@ -0,0 +1,6 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

24
modules/gaming/gaming.nix Normal file
View File

@@ -0,0 +1,24 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.gaming or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.gaming.enable or true)) {
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
package = pkgs.steam.override {
extraEnv = {
MANGOHUD = "1";
WINE_VK_VULKAN_ONLY = "1";
};
};
};
environment.systemPackages = [
pkgs.mangohud
];
};
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.hardware or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.arduino-ide.enable or true)) {
environment.systemPackages = with pkgs; [
arduino-ide
];
};
}

View File

@@ -0,0 +1,14 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.hardware or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.bambu-studio-flatpak.enable or true)) {
services.flatpak.update.onActivation = true;
services.flatpak.enable = true;
services.flatpak.packages = [
"com.bambulab.BambuStudio"
];
};
}

View File

@@ -0,0 +1,6 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.hardware or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.openscad.enable or true)) {
environment.systemPackages = with pkgs; [
openscad
];
};
}

View File

@@ -0,0 +1,47 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.hardware or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.printing.enable or true)) {
environment.systemPackages = with pkgs; [
cnijfilter2
];
services.printing = {
enable = true;
drivers = [ pkgs.cnijfilter2 ];
};
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
hardware.printers = {
ensurePrinters = [
{
name = "CanonTS3100";
location = "Home";
deviceUri = "dnssd://Canon%20TS3100%20series._ipp._tcp.local/?uuid=00000000-0000-1000-8000-0018271a7e44";
model = "canonts3100.ppd";
ppdOptions = {
PageSize = "A4";
};
}
];
ensureDefaultPrinter = "CanonTS3100";
};
# for samba
networking.hosts = {
"192.168.68.60" = [
"2C2919000000.local"
"2C2919000000"
];
};
};
}

View File

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 MiB

View File

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

Before

Width:  |  Height:  |  Size: 10 MiB

After

Width:  |  Height:  |  Size: 10 MiB

View File

@@ -10,6 +10,7 @@
extraPackages = [
pkgs.ueberzugpp
pkgs.imagemagick
pkgs.intelephense
];
plugins = with pkgs.vimPlugins; [

View File

@@ -0,0 +1,86 @@
{ pkgs, pkgsUnstable, ... }:
let
extensions = with pkgs.vscode-extensions; [
ms-dotnettools.csharp
ms-dotnettools.csdevkit
ms-dotnettools.vscode-dotnet-runtime
mkhl.direnv
catppuccin.catppuccin-vsc
bmewburn.vscode-intelephense-client
continue.continue
vue.volar
ms-vscode-remote.remote-containers
(pkgs.vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "ryanluker";
name = "vscode-coverage-gutters";
version = "2.14.0"; # use the current version
sha256 = "sha256-waF3FmncUsXqWFWGRy9X7RQ29BDRYlaqyFhEXg4HXNo";
};
})
(pkgs.vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "laravel";
name = "vscode-laravel";
version = "1.7.0"; # use the current version
sha256 = "sha256-5PVbv5hWIdsOHvYttnf2BPeqfPXsOVENrnRyiUf/Hlg=";
};
})
(pkgs.vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "amiralizadeh9480";
name = "laravel-extra-intellisense";
version = "0.7.4"; # use the current version
sha256 = "sha256-EoyKm2YYfEZDmI1mqRU/SaNk0bNLPrWVINpIhglnL80=";
};
})
(pkgs.vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "recca0120";
name = "vscode-phpunit";
version = "3.9.40"; # use the current version
sha256 = "sha256-EVyDT5aXu1KsGr8xrBQlIRCMOtiCyHgU7aDjl9d9ldY=";
};
})
];
userSettings = {
"editor.lineNumbers" = "relative";
"workbench.colorTheme" = "Catppuccin Mocha";
"workbench.editor.enablePreview" = false;
"direnv.restart.automatic" = true;
"terminal.integrated.defaultProfile.linux" = "zsh";
"terminal.integrated.profiles.linux".zsh = {
path = "${pkgs.zsh}/bin/zsh";
};
"coverage-gutters.coverageBaseDir" = "test-reports";
# PHPUnit
"phpunit.command" =
"docker compose exec laravel.test \${php} \${phpargs} \${phpunit} \${phpunitargs}";
"phpunit.phpunit" = "artisan test";
"phpunit.paths" = {
"\${workspaceFolder}" = "/var/www/html";
};
};
editors = {
vscode = pkgsUnstable.vscode.fhs;
cursor = pkgsUnstable.code-cursor-fhs;
vscodium = pkgsUnstable.vscodium-fhs;
};
mkEditor = package: {
enable = true;
inherit package;
profiles.default = {
inherit extensions;
inherit userSettings;
};
};
in
{
programs = builtins.mapAttrs (_: mkEditor) editors;
}

View File

@@ -2,9 +2,11 @@
{
home.file.".zsh/fastfetch.jsonc".source = ./fastfetch/config.jsonc;
home.file.".zsh/functions/dex.zsh".source = ./zsh/functions/dex.zsh;
programs.zsh = {
enable = true;
oh-my-zsh = {
enable = true;
theme = "agnoster";
@@ -13,6 +15,8 @@
initContent = ''
# Use kitty's ssh helper if running inside kitty
[ "$TERM" = "xterm-kitty" ] && alias ssh="kitty +kitten ssh"
source ~/.zsh/functions/dex.zsh
'';
};
}

View File

@@ -0,0 +1,59 @@
dex() {
clear
local container
container=$(
docker ps --format '{{.Names}}\t{{.Image}}\t{{.Status}}' |
sort |
fzf \
--delimiter=$'\t' \
--with-nth=1,2,3 \
--header=$'Ctrl-I: Inspect | Ctrl-L: Logs | Ctrl-R: Refresh | ?: Toggle Preview\n\nNAME\tIMAGE\tSTATUS' \
--tabstop=4 \
--height=100% \
--layout=reverse \
--border=rounded \
--info=inline-right \
--prompt='🐳 Container > ' \
--pointer='▶' \
--marker='✓' \
--preview 'docker logs -f --tail=50 {1} 2>&1' \
--preview-label=' Logs ' \
--preview-window='right,65%,follow,border-left,wrap' \
--bind 'ctrl-r:reload(docker ps --format "{{.Names}}\t{{.Image}}\t{{.Status}}" | sort)' \
--bind 'ctrl-u:preview-half-page-up' \
--bind 'ctrl-d:preview-half-page-down' \
--bind '?:toggle-preview' \
--bind 'ctrl-l:change-preview(docker logs -f --tail=50 {1} 2>&1)+change-preview-label(Logs)' \
--bind 'ctrl-i:change-preview(
docker inspect --format "
Name: {{.Name}}
Image: {{.Config.Image}}
Status: {{.State.Status}}
Running: {{.State.Running}}
Started: {{.State.StartedAt}}
Finished: {{.State.FinishedAt}}
PID: {{.State.Pid}}
Exit Code: {{.State.ExitCode}}
Networks:
{{range .NetworkSettings.Networks}} • {{.IPAddress}}
{{end}}
Mounts:
{{range .Mounts}} • {{.Source}} -> {{.Destination}}
{{end}}
" {1}
)+change-preview-label(Inspect)' |
cut -f1
) || return
docker exec -it "$container" sh -c '
for shell in bash ash zsh sh; do
command -v "$shell" >/dev/null 2>&1 && exec "$shell"
done
echo "No suitable shell found." >&2
exit 1
'
}

View File

@@ -6,16 +6,30 @@
let
cfg = config.home.hyprland;
toggleRecorder = import ./scripts/toggle-recorder.nix { inherit pkgs; };
in
{
options.home.hyprland = {
execOnce = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ "waybar" ];
description = "Commands to run once when Hyprland starts (maps to Hyprland `exec-once`).";
};
options.home.hyprland.monitors = lib.mkOption {
type = lib.types.listOf (lib.types.submodule {
options = {
output = lib.mkOption { type = lib.types.str; };
mode = lib.mkOption {
type = lib.types.str;
default = "preferred";
};
position = lib.mkOption {
type = lib.types.str;
default = "auto";
};
scale = lib.mkOption {
type = lib.types.number;
default = 1;
};
};
});
default = [ ];
};
config = {
home.packages = with pkgs; [
bzmenu
@@ -23,8 +37,8 @@ in
hyprlock
playerctl
speedcrunch
toggleRecorder
];
wayland.windowManager.hyprland = {
enable = true;
configType = "lua";
@@ -33,6 +47,12 @@ in
mkLuaInline = lib.generators.mkLuaInline;
toLua = lib.generators.toLua;
mkArgs = args: { _args = args; };
defaultMonitor = {
output = "";
mode = "preferred";
position = "auto";
scale = 1;
};
bind =
keys: dispatcher: options:
mkArgs [
@@ -69,7 +89,7 @@ in
animations.enabled = true;
decoration = {
inactive_opacity = 0.8;
inactive_opacity = 0.7;
active_opacity = 0.9;
rounding = 5;
rounding_power = 2.5;
@@ -105,12 +125,13 @@ in
bind = lib.flatten [
(bind "${mod} + W" (dsp.exec_cmd "pkill -SIGUSR1 -f '^waybar$'") { })
(bind "${mod} + Q" (dsp.window.kill) { })
(bind "${mod} + Q" (dsp.window.close) { })
(bind "${mod} + L" (dsp.exec_cmd "hyprlock") { })
(bind "${mod} + D" (dsp.exec_cmd "rofi -show drun") { })
(bind "${mod} + B" (dsp.exec_cmd "bzmenu --launcher rofi") { })
(bind "${mod} + F" (dsp.window.fullscreen) { })
(bind "${mod} + Z" (dsp.exec_cmd "hyprshot -m region") { })
(bind "${mod} + SHIFT + Z" (dsp.exec_cmd "toggle-recorder") { })
(bind "${mod} + M" (dsp.exit) { })
(bind "${mod} + SPACE" (dsp.exec_cmd "firefox") { })
(bind "${mod} + RETURN" (dsp.exec_cmd "kitty") { })
@@ -160,25 +181,34 @@ in
(bind "${mod} + mouse:272" dsp.window.drag { mouse = true; })
(bind "${mod} + mouse:273" dsp.window.resize { mouse = true; })
];
on = [
(mkArgs [
"hyprland.start"
(mkLuaInline ''
function()
hl.exec_cmd("waybar")
on = mkArgs [
"hyprland.start"
(mkLuaInline ''
function()
hl.exec_cmd("waybar")
hl.monitor({
output = "",
mode = "preferred",
position = "auto",
scale = 1,
})
hl.monitor({
output = "eDP-1",
mode = "1920x1200",
position = "auto",
scale = 1,
})
end'')
hl.monitor(${toLua {} defaultMonitor})
${lib.concatMapStringsSep "\n"
(m: "hl.monitor(${toLua {} m})")
cfg.monitors}
end
'')
])
(mkArgs [
"config.reloaded"
(mkLuaInline ''
function()
hl.monitor(${toLua {} defaultMonitor})
${lib.concatMapStringsSep "\n"
(m: "hl.monitor(${toLua {} m})")
cfg.monitors}
end
'')
])
];
};
};

View File

@@ -4,6 +4,7 @@ let
wallpaper = builtins.toString ../backgrounds/monkey.jpg;
wallpaper2 = builtins.toString ../backgrounds/bird.jpg;
wallpaper3 = builtins.toString ../backgrounds/nix.png;
wallpaper4 = builtins.toString ../backgrounds/catppucin.png;
in
{
services.hyprpaper = {
@@ -15,12 +16,13 @@ in
wallpaper
wallpaper2
wallpaper3
wallpaper4
];
wallpaper = [
{
monitor = "";
path = wallpaper3;
path = wallpaper4;
}
];
};

View File

@@ -0,0 +1,22 @@
{ pkgs }:
pkgs.writeShellApplication {
name = "toggle-recorder";
runtimeInputs = with pkgs; [
wf-recorder
slurp
procps
coreutils
];
text = ''
if pgrep -x wf-recorder >/dev/null; then
pkill -INT wf-recorder
else
wf-recorder \
-g "$(slurp)" \
-f "$HOME/Videos/recording-$(date +%F-%H%M%S).mp4"
fi
'';
}

View File

@@ -21,12 +21,23 @@
];
modules-right = [
"custom/recording"
"pulseaudio"
"cpu"
"tray"
"clock"
];
"custom/recording" = {
exec = ''
if pgrep -x wf-recorder >/dev/null; then
echo "🔴 REC"
fi
'';
interval = 1;
tooltip = false;
};
pulseaudio = {
format = "{icon} {volume}%";
format-muted = "󰝟 muted";

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.multimedia or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.audacity.enable or true)) {
environment.systemPackages = with pkgs; [
audacity
];
};
}

View File

@@ -0,0 +1,6 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.multimedia or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.gimp.enable or true)) {
environment.systemPackages = with pkgs; [
gimp
];
};
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.multimedia or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.kdenlive.enable or true)) {
environment.systemPackages = with pkgs; [
kdePackages.kdenlive
];
};
}

View File

@@ -0,0 +1,15 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.multimedia or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.obs-studio.enable or true)) {
programs.obs-studio = {
enable = true;
package = pkgs.obs-studio.override {
cudaSupport = true;
};
};
};
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.multimedia or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.vlc.enable or true)) {
environment.systemPackages = with pkgs; [
vlc
];
};
}

View File

@@ -0,0 +1,6 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.networking or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.filezilla.enable or true)) {
environment.systemPackages = with pkgs; [
filezilla
];
};
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.networking or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.qbittorrent.enable or true)) {
environment.systemPackages = with pkgs; [
qbittorrent
];
};
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.networking or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.remmina.enable or true)) {
environment.systemPackages = with pkgs; [
remmina
];
};
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.networking or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.socat.enable or true)) {
environment.systemPackages = with pkgs; [
socat
];
};
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.networking or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.wireguard.enable or true)) {
environment.systemPackages = with pkgs; [
wireguard-tools
];
};
}

View File

@@ -0,0 +1,16 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.security or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.bitwarden.enable or true)) {
nixpkgs.config.permittedInsecurePackages = [
"electron-39.8.10"
];
environment.systemPackages = with pkgs; [
bitwarden-desktop
];
};
}

View File

@@ -0,0 +1,6 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

12
modules/system/btop.nix Normal file
View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.system or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.btop.enable or true)) {
environment.systemPackages = with pkgs; [
btop
];
};
}

View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.system or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.bubblewrap.enable or true)) {
environment.systemPackages = with pkgs; [
bubblewrap
];
};
}

View File

@@ -0,0 +1,6 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

View File

@@ -0,0 +1,17 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.system or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.garbage-collection.enable or true)) {
nix = {
settings.auto-optimise-store = true;
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
};
};
}

12
modules/system/yazi.nix Normal file
View File

@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.system or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.yazi.enable or true)) {
environment.systemPackages = with pkgs; [
yazi
];
};
}

6
modules/work/default.nix Normal file
View File

@@ -0,0 +1,6 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

20
modules/work/enova.nix Normal file
View File

@@ -0,0 +1,20 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.work or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.enova.enable or true)) {
services.dnsmasq = {
enable = true;
settings = {
server = [
"1.1.1.1"
"8.8.8.8"
];
address = [ "/.enova.local/127.0.0.1" ];
};
};
};
}

View File

@@ -6,75 +6,52 @@
}:
let
mkPkgsUnstable =
system:
import nixpkgs-unstable {
inherit system;
config.allowUnfree = true;
};
in
system = "x86_64-linux";
pkgsUnstable = import nixpkgs-unstable {
inherit system;
config.allowUnfree = true;
};
moduleNames = [
"ai"
"core"
"desktop"
"development"
"features"
"gaming"
"hardware"
"multimedia"
"networking"
"security"
"system"
"work"
];
mkHost =
name:
nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit pkgsUnstable;
nixFlatpak = nix-flatpak;
};
modules = [
nix-flatpak.nixosModules.nix-flatpak
home-manager.nixosModules.home-manager
./hosts/${name}
] ++ (map (mod: ./modules/${mod}) moduleNames);
};
in
{
nixosConfigurations = {
"gandalf" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
pkgsUnstable = mkPkgsUnstable "x86_64-linux";
nixFlatpak = nix-flatpak;
};
modules = [
nix-flatpak.nixosModules.nix-flatpak
home-manager.nixosModules.home-manager
./systems/gandalf
];
};
"frodo" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
pkgsUnstable = mkPkgsUnstable "x86_64-linux";
nixFlatpak = nix-flatpak;
};
modules = [
nix-flatpak.nixosModules.nix-flatpak
home-manager.nixosModules.home-manager
./systems/frodo
];
};
"legolas" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
pkgsUnstable = mkPkgsUnstable "x86_64-linux";
nixFlatpak = nix-flatpak;
};
modules = [
nix-flatpak.nixosModules.nix-flatpak
home-manager.nixosModules.home-manager
./systems/legolas
];
};
"balrog" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
pkgsUnstable = mkPkgsUnstable "x86_64-linux";
nixFlatpak = nix-flatpak;
};
modules = [
nix-flatpak.nixosModules.nix-flatpak
home-manager.nixosModules.home-manager
./systems/balrog
];
};
"work" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
pkgsUnstable = mkPkgsUnstable "x86_64-linux";
nixFlatpak = nix-flatpak;
};
modules = [
nix-flatpak.nixosModules.nix-flatpak
home-manager.nixosModules.home-manager
./systems/work
];
};
gandalf = mkHost "gandalf";
frodo = mkHost "frodo";
legolas = mkHost "legolas";
balrog = mkHost "balrog";
work = mkHost "work";
};
}

View File

@@ -1,26 +0,0 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
../modules/common.nix
../modules/users.nix
../modules/locales.nix
../modules/services.nix
../modules/programs.nix
];
# Bootloader.
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/vda";
boot.loader.grub.useOSProber = true;
networking.hostName = "frodo"; # Define your hostname.
system.stateVersion = "25.11"; # Did you read the comment?
}

View File

@@ -1,7 +0,0 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
arduino-ide
];
}

View File

@@ -1,7 +0,0 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
audacity
];
}

View File

@@ -1,7 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
azuredatastudio
];
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
services.flatpak.enable = true;
services.flatpak.packages = [
"com.bambulab.BambuStudio"
];
}

View File

@@ -1,11 +0,0 @@
{ config, pkgs, ... }:
{
nixpkgs.config.permittedInsecurePackages = [
"electron-39.8.10"
];
environment.systemPackages = with pkgs; [
bitwarden-desktop
];
}

View File

@@ -1,7 +0,0 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
btop
];
}

Some files were not shown because too many files have changed in this diff Show More