diff --git a/nixos/configuration.nix b/nixos/configuration.nix new file mode 100644 index 0000000..e915048 --- /dev/null +++ b/nixos/configuration.nix @@ -0,0 +1,80 @@ +# 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, ... }: + +{ + nixpkgs.overlays = [ (final: prev: { + inherit (prev.lixPackageSets.stable) + nixpkgs-review + nix-eval-jobs + nix-fast-build + colmena; + }) ]; + nix.package = pkgs.lixPackageSets.stable.lix; + + + + imports = + [ + ./hardware-configuration.nix + ./pkg.nix + ./services.nix + ]; + + + boot.loader.systemd-boot.enable = true; + + networking.hostName = "f1ndm3"; + networking.networkmanager.enable = true; + time.timeZone = "America/Chicago"; + i18n.defaultLocale = "en_US.UTF-8"; + + + users.users.supa = { + isNormalUser = true; + extraGroups = [ "wheel" ]; + }; + + users.defaultUserShell = pkgs.bash; + programs.neovim.defaultEditor = true; + + # graphics + + hardware.graphics.enable = true; + hardware.nvidia.open = true; + + + # firewall + + networking.firewall.allowedTCPPorts = [ ]; + networking.firewall.allowedUDPPorts = [ ]; + networking.firewall.enable = true; + + # Copy the NixOS configuration file and link it from the resulting system + # (/run/current-system/configuration.nix). This is useful in case you + # accidentally delete configuration.nix. + # system.copySystemConfiguration = true; + + # This option defines the first version of NixOS you have installed on this particular machine, + # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. + # + # Most users should NEVER change this value after the initial install, for any reason, + # even if you've upgraded your system to a new NixOS release. + # + # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, + # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how + # to actually do that. + # + # This value being lower than the current NixOS release does NOT mean your system is + # out of date, out of support, or vulnerable. + # + # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, + # and migrated your data accordingly. + # + # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . + system.stateVersion = "26.05"; # Did you read the comment? + +} + diff --git a/nixos/pkg.nix b/nixos/pkg.nix new file mode 100644 index 0000000..42ae2e4 --- /dev/null +++ b/nixos/pkg.nix @@ -0,0 +1,102 @@ +# 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, ... }: + +{ + nixpkgs.config.allowUnfree = true; + environment.systemPackages = with pkgs; [ + # cli + cloudflared + nmap + dust + neovim + wget + btop + bash + hyfetch + macchina + zsh + spotify-player + sptlrx + cava + protontricks + shellcheck + docker + docker-compose + bat + television + nix-search-tv + fd + fzf + rustscan + file + tmux + zip + fastfetch + + # gui + #kitty + vlc + qbittorrent + firefox + gimp + vscodium.fhs + vesktop + steam + heroic + protonup-qt + logisim-evolution + prismlauncher + xdotool + xwininfo + rewaita + rpi-imager + + # lib + wmctrl + git + p7zip + unzip + wine + wine64Packages.waylandFull + jdk8 + jdk11 + jdk17 + jdk25 + uv + gnumake + cmakeMinimal + xxd + clang-tools + gcc + yad + rustup + ninja + meson + ripgrep + wl-clipboard + linuxPackages.rtl8821ce + + # misc + gamemode + sgdboop + gamescope + nerd-fonts.space-mono + + # language servers + lua-language-server + bash-language-server + python314Packages.python-lsp-server + nixd + markdown-oxide + dockerfmt + ]; + programs.foot.enable = true; + programs.steam.enable = true; + programs.gamemode.enable = true; + programs.neovim.enable = true; + + programs.nix-ld.enable = true; +} diff --git a/nixos/services.nix b/nixos/services.nix new file mode 100644 index 0000000..19861a4 --- /dev/null +++ b/nixos/services.nix @@ -0,0 +1,31 @@ +{ config, lib, pkgs, ... }: + +{ + services.openssh.enable = true; + + services.xserver.enable = true; + services.xserver.videoDrivers = [ "nvidia" ]; + + services.pipewire = { + enable = true; + pulse.enable = true; + }; + services.flatpak.enable = true; + + # kde + services.desktopManager.plasma6.enable = true; + services.displayManager.plasma-login-manager.enable = true; + + environment.plasma6.excludePackages = with pkgs.kdePackages; [ + elisa + konsole + ]; + + # startpage + services.static-web-server = { + enable = true; + root = "/srv/tilde"; + listen = "[::]:1312"; + }; + +}