From 5fadb6a6c96099b1b9d0dced4a1e00a0dfda154e Mon Sep 17 00:00:00 2001 From: Dea Date: Wed, 7 Jan 2026 14:32:28 -0500 Subject: [PATCH] initial commit --- configuration.nix | 217 +++++++++++++++++++++++ flake.lock | 48 +++++ flake.nix | 41 +++++ home.nix | 48 +++++ homemanager/bashrc | 11 ++ homemanager/mpv.nix | 7 + hosts/nahemah/README.md | 1 + hosts/nahemah/hardware-configuration.nix | 39 ++++ hosts/sandalphon/README.md | 1 + user.nix | 16 ++ 10 files changed, 429 insertions(+) create mode 100644 configuration.nix create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 home.nix create mode 100644 homemanager/bashrc create mode 100644 homemanager/mpv.nix create mode 100644 hosts/nahemah/README.md create mode 100644 hosts/nahemah/hardware-configuration.nix create mode 100644 hosts/sandalphon/README.md create mode 100644 user.nix diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..dc158c2 --- /dev/null +++ b/configuration.nix @@ -0,0 +1,217 @@ +# 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’). + +{ inputs, config, pkgs, ... }: + +{ + imports = + [ + inputs.home-manager.nixosModules.home-manager + ]; + + home-manager = { + extraSpecialArgs = { inherit inputs; }; + users = { + dea = import ./home.nix; + }; + }; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "nixos"; # 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; + + # Set your time zone. + time.timeZone = "America/New_York"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "en_US.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "en_US.UTF-8"; + LC_PAPER = "en_US.UTF-8"; + LC_TELEPHONE = "en_US.UTF-8"; + LC_TIME = "en_US.UTF-8"; + }; + + # Enable the X11 windowing system. + # You can disable this if you're only using the Wayland session. + services.xserver.enable = true; + + # Enable the KDE Plasma Desktop Environment. + services.displayManager.sddm.enable = true; + services.desktopManager.plasma6.enable = true; + + # Configure keymap in X11 + services.xserver.xkb = { + layout = "us"; + variant = ""; + }; + + # Enable CUPS to print documents. + services.printing.enable = true; + + # Enable sound with pipewire. + # hardware.pulseaudio.enable = false; + services.pulseaudio.enable = false; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + # If you want to use JACK applications, uncomment this + #jack.enable = true; + + # use the example session manager (no others are packaged yet so this is enabled by default, + # no need to redefine it in your config for now) + #media-session.enable = true; + }; + + security.polkit.enable = true; + + # Enables nginx + services.nginx.enable = true; + + # Enable touchpad support (enabled default in most desktopManager). + # services.xserver.libinput.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + + # Enable docker virtualisation. + virtualisation.docker.enable = true; + + # Install firefox. + programs.firefox.enable = true; + + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + + # Enables nix commands + flakes + nix.settings.extra-experimental-features = [ + "nix-command" + "flakes" + ]; + + # ====================== + # List packages installed in system profile. To search, run: + # $ nix search wget + # nixos-rebuild switch --use-remote-sudo + # ====================== + # Update packages?: + # sudo nix-channel --update + # sudo nixos-rebuild switch + # ====================== + # sudo nixos-rebuild switch --flake . + environment.systemPackages = with pkgs; [ + vim + wget + neovim + lunarvim + vscode + python3 + p7zip + unzip + chawan # tui browser cha + git + gdb + glibc.static + + kitty # terminal + wayland + + emacs # calander/todo list + + nemo # file browser + monophony # yt music tryout + + vesktop # discord-canary + + vivaldi # vivaldi install requires qt5 + qt5.qtbase + + starship # shell customizer + + libreoffice-qt # libreoffice + hunspell + hunspellDicts.uk_UA + hunspellDicts.th_TH + openjdk + + notepad-next # notepad++ + sqlitebrowser + + ffmpeg-full + yt-dlp + + bottles # windows emulation + ]; + + # There have been amdgpu issues in 6.10 so you maybe need to revert on the default lts kernel. + # boot.kernelPackages = pkgs.linuxPackages; + programs.steam = { + enable = true; + remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play + dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server + }; + + programs.neovim = { + enable = true; + defaultEditor = true; + }; + + programs.nix-ld = { + enable = true; + libraries = with pkgs; [ + ## Put here any library that is required when running a package + ## ... + ## Uncomment if you want to use the libraries provided by default in the steam distribution + ## but this is quite far from being exhaustive + ## https://github.com/NixOS/nixpkgs/issues/354513 + (pkgs.runCommand "steamrun-lib" {} "mkdir $out; ln -s ${pkgs.steam-run.fhsenv}/usr/lib64 $out/lib") + ]; + }; + + # 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; + # }; + + # List services that you want to enable: + + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "24.11"; # Did you read the comment? + +} \ No newline at end of file diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..e2cb61d --- /dev/null +++ b/flake.lock @@ -0,0 +1,48 @@ +{ + "nodes": { + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1766553851, + "narHash": "sha256-hHKQhHkXxuPJwLkI8wdu826GLV5AcuW9/HVdc9eBnTU=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "7eca7f7081036a7b740090994c9ec543927f89a7", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1766309749, + "narHash": "sha256-3xY8CZ4rSnQ0NqGhMKAy5vgC+2IVK0NoVEzDoOh4DA4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a6531044f6d0bef691ea18d4d4ce44d0daa6e816", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..8333ddc --- /dev/null +++ b/flake.nix @@ -0,0 +1,41 @@ +{ + description = "release the dea files"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + home-manager.url = "github:nix-community/home-manager"; + home-manager.inputs.nixpkgs.follows = "nixpkgs"; + }; + + outputs = { self, nixpkgs, ... } @ inputs: + let + system = "x86_64-linux"; + lib = nixpkgs.lib; + + commonModules = [ + ./configuration.nix + ./user.nix + ]; + in { + # laptop + nixosConfigurations.nahemah = lib.nixosSystem { + specialArgs = { + host = "nahemah"; + inherit inputs; + }; + modules = [ + ./hosts/nahemah/hardware-configuration.nix + ] + ++ commonModules; + }; + + + # nixosConfigurations.sandalphon = lib.nixosSystem { + # specialArgs = { inherit inputs; }; + # modules = [ + # ./hosts/sandalphon/hardware-configuration.nix + # ] + # ++ commonModules; + # }; + }; +} diff --git a/home.nix b/home.nix new file mode 100644 index 0000000..78645b2 --- /dev/null +++ b/home.nix @@ -0,0 +1,48 @@ +{ config, pkgs, ...}: + +{ + # Enables nix commands + flakes + nix = { + settings.extra-experimental-features = [ + "nix-command" + "flakes" + ]; + }; + + # Home manager things + home.username = "dea"; + home.homeDirectory = "/home/dea"; + home.stateVersion = "25.11"; + home.packages = with pkgs; [ + libsForQt5.qtstyleplugin-kvantum # libs for Qt5 + libsForQt5.qt5ct + libsForQt5.qt5.qtbase + + syncplay + + ]; + + programs.neovim = # nvm?? + {}; + + home.sessionPath = [ + "$HOME/.local/bin" + ]; + + nixpkgs.config.allowUnfree = true; + imports = [ + ./homemanager/mpv.nix + ]; + + # dconf.settings = {}; + + # home = {}; + + programs.bash = { + enable = true; + bashrcExtra = builtins.readFile ./homemanager/bashrc; + + }; + + programs.home-manager.enable = true; +} \ No newline at end of file diff --git a/homemanager/bashrc b/homemanager/bashrc new file mode 100644 index 0000000..b9e9c0f --- /dev/null +++ b/homemanager/bashrc @@ -0,0 +1,11 @@ +eval "$(starship init bash)" + +alias eep='systemctl suspend' +alias hibernate='systemctl hybrid-sleep' +alias restart='systemctl reboot' +alias shutdown='systemctl poweroff' +rebuild() { + sudo nixos-rebuild switch --flake ~/dea-files#"$1" +} +# alias rebuild='sudo nixos-rebuild switch --flake ~/dea-files' +[ -f "/home/dea/.ghcup/env" ] && . "/home/dea/.ghcup/env" # ghcup-env \ No newline at end of file diff --git a/homemanager/mpv.nix b/homemanager/mpv.nix new file mode 100644 index 0000000..1aad848 --- /dev/null +++ b/homemanager/mpv.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: + +{ + programs.mpv = { + enable = true; + }; +} \ No newline at end of file diff --git a/hosts/nahemah/README.md b/hosts/nahemah/README.md new file mode 100644 index 0000000..a1a1d11 --- /dev/null +++ b/hosts/nahemah/README.md @@ -0,0 +1 @@ +# dea's laptop configs \ No newline at end of file diff --git a/hosts/nahemah/hardware-configuration.nix b/hosts/nahemah/hardware-configuration.nix new file mode 100644 index 0000000..e009905 --- /dev/null +++ b/hosts/nahemah/hardware-configuration.nix @@ -0,0 +1,39 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/65e009d8-9c86-4f18-bcc5-c2d1f8f7bcf4"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/FDAB-D19E"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = [ ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp3s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/sandalphon/README.md b/hosts/sandalphon/README.md new file mode 100644 index 0000000..736c28b --- /dev/null +++ b/hosts/sandalphon/README.md @@ -0,0 +1 @@ +# dea's pc box configs \ No newline at end of file diff --git a/user.nix b/user.nix new file mode 100644 index 0000000..5f9fb89 --- /dev/null +++ b/user.nix @@ -0,0 +1,16 @@ +{ pkgs, ... }: +{ + users.users.dea = { + isNormalUser = true; + description = "dea"; + extraGroups = [ + "networkmanager" + "wheel" + "docker" + ]; + packages = with pkgs; [ + kdePackages.kate + # thunderbird + ]; + }; +} \ No newline at end of file