105 lines
2.3 KiB
Nix
105 lines
2.3 KiB
Nix
{ config, lib, inputs, outputs, pkgs, userName, hostName, desktop, timeZone, gaming, ... }:
|
|
|
|
let
|
|
supportedDesktops = [ "sway" ];
|
|
supportedDesktopsStr = lib.strings.concatStringsSep ", " supportedDesktops;
|
|
in
|
|
{
|
|
assertions = [
|
|
{
|
|
assertion = builtins.elem desktop supportedDesktops;
|
|
message = "Unsupported desktop environment: ${desktop}\nSupported DE's: ${supportedDesktopsStr}";
|
|
}
|
|
];
|
|
|
|
nixpkgs.overlays = [
|
|
inputs.nur.overlay
|
|
];
|
|
|
|
imports = [ # Include the results of the hardware scan.
|
|
./hardware-configuration.nix
|
|
../modules/user/main_user.nix
|
|
../modules/sway/sway_conf.nix
|
|
# inputs.nur.hmModules.nur
|
|
];
|
|
|
|
# Enable flakes feature
|
|
nix.settings.experimental-features = [
|
|
"nix-command" "flakes"
|
|
];
|
|
|
|
# nixpkgs.config.allowUnfree = true;
|
|
|
|
# Use the systemd-boot EFI boot loader.
|
|
boot.loader.systemd-boot.enable = true;
|
|
boot.loader.efi.canTouchEfiVariables = true;
|
|
|
|
networking.hostName = hostName; # Define your hostname.
|
|
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
|
|
|
time.timeZone = timeZone;
|
|
|
|
main_user = {
|
|
enable = true;
|
|
userName = userName;
|
|
isDesktopUser = true;
|
|
};
|
|
|
|
swaywm = {
|
|
enable = desktop == "sway";
|
|
useNonFree = true;
|
|
installGaming = gaming;
|
|
systemPackages = with pkgs; [
|
|
# Dev Tools
|
|
dbeaver
|
|
cargo
|
|
kakoune
|
|
# flutter
|
|
docker
|
|
docker-compose
|
|
python310
|
|
nodejs_21
|
|
### LSP's
|
|
rnix-lsp # Nix LSP
|
|
nodePackages.typescript-language-server
|
|
vscode-langservers-extracted # provides eslint, markdown, json, css, and html lsp
|
|
rubyPackages.solargraph
|
|
python310Packages.python-lsp-server
|
|
### Misc
|
|
# android-udev-rules
|
|
# android-tools
|
|
# sdkmanager
|
|
|
|
# Productivity
|
|
libreoffice
|
|
|
|
# Gaming
|
|
wine-wayland
|
|
r2modman
|
|
|
|
# Better Unix
|
|
bat
|
|
duf
|
|
fd
|
|
fzf
|
|
lsd
|
|
ripgrep
|
|
gtop
|
|
|
|
# Photo / Video
|
|
davinci-resolve-studio
|
|
imv
|
|
mpv
|
|
gimp
|
|
|
|
# Work
|
|
slack
|
|
];
|
|
};
|
|
|
|
programs.adb.enable = true;
|
|
|
|
system.stateVersion = "23.11"; # Did you read the comment?
|
|
}
|
|
|