Compare commits

..

2 Commits

Author SHA1 Message Date
nichkara 6e1a81b5e3 Introduce components 2025-09-05 19:12:40 +02:00
nichkara b1bb2f2611 Conditional Hyprland activation 2025-09-05 18:21:46 +02:00
9 changed files with 59 additions and 38 deletions

View File

@ -2,25 +2,32 @@
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{ config, pkgs, lib, ... }:
{
# Optionals
desktop_computer = true;
office = true;
devel.rust = true;
devel.c = true;
devel.haskell = false;
devel.java = false;
devel.ada = true;
devel.asic = false;
desktop_setup = lib.optionals (config.desktop_computer) [./desktop_environment.nix];
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
] ++ config.desktop_setup;
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "nixos"; # Define your hostname.
networking.hostName = "amelia"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
networking.networkmanager.enable = true;
@ -48,12 +55,6 @@
variant = "";
};
# Gnome configuration
services.xserver.enable = true;
services.xserver.displayManager.sddm.enable = true;
services.xserver.displayManager.sddm.wayland.enable = true;
services.xserver.desktopManager.plasma6.enable = true;
# Configure console keymap
console.keyMap = "de";
@ -68,6 +69,14 @@
# List packages installed in system profile. To search, run:
# $ nix search wget
pkg.office = lib.optionals (config.office) config.components.office.packages;
pkg.devel.rust = lib.optionals (config.devel.rust) config.components.devel.rust.packages;
pkg.devel.c = lib.optionals (config.devel.c) config.components.devel.c.packages;
pkg.devel.haskell = lib.optionals (config.devel.haskell) config.components.devel.haskell.packages;
pkg.devel.java = lib.optionals (config.devel.java) config.components.devel.java.packages;
pkg.devel.ada = lib.optionals (config.devel.ada) config.components.devel.ada.packages;
pkg.devel.asic = lib.optionals (config.devel.asic) config.components.devel.asic.packages;
additional_packages = config.pkg.office ++ config.pkg.devel.rust ++ config.pkg.devel.c ++ config.pkg.devel.haskell ++ config.pkg.devel.java ++ config.pkg.devel.ada ++ config.pkg.devel.asic;
environment.systemPackages = with pkgs; [
vim
wget
@ -75,26 +84,9 @@
neovim
python313Packages.pynvim
networkmanager
epiphany
nodejs_24
cmake
kitty
hyfetch
elan
gnat15
ghdl-llvm
gtkwave
gnumake
alire
rustup
yosys
openroad
verilator
iverilog
cargo
docker
rustfmt
];
] ++ config.additional_packages;
programs.zsh = {
enable = true;
@ -102,11 +94,11 @@
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
programs.mtr.enable = true;
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
# List services that you want to enable:
@ -114,8 +106,8 @@
services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
networking.firewall.allowedTCPPorts = [ 22 ];
networking.firewall.allowedUDPPorts = [ 22 ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;

8
desktop_environment.nix Normal file
View File

@ -0,0 +1,8 @@
{
programs.hyprland = {
# Install the packages from nixpkgs
enable = true;
# Whether to enable XWayland
xwayland.enable = true;
};
}

3
devel/ada.nix Normal file
View File

@ -0,0 +1,3 @@
{
ada.packages = [];
}

3
devel/asic.nix Normal file
View File

@ -0,0 +1,3 @@
{
asic.packages = [];
}

3
devel/c.nix Normal file
View File

@ -0,0 +1,3 @@
{
c.packages = [];
}

3
devel/haskell.nix Normal file
View File

@ -0,0 +1,3 @@
{
haskell.packages = [];
}

3
devel/java.nix Normal file
View File

@ -0,0 +1,3 @@
{
java.packages = [];
}

3
devel/rust.nix Normal file
View File

@ -0,0 +1,3 @@
{
rust.packages = [];
}

3
office/office.nix Normal file
View File

@ -0,0 +1,3 @@
{
office.packages = [];
}