commit f6c427b5a590e345e93b4dd57fe7f23612ff64ef Author: nouredeen Date: Sun Jun 14 21:13:26 2026 +0000 Upload files to "/" diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..5311985 --- /dev/null +++ b/configuration.nix @@ -0,0 +1,65 @@ +{ config, pkgs, ... }: + +{ + # Bootloader + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "nixos"; + networking.networkmanager.enable = true; + + # Note: The MT7902 WiFi driver is notorious. Your existing fix_my_wifi.sh script + # and blacklisting strategy can still work if you run it manually, but eventually, + # building it as an out-of-tree kernel module in Nix is the "proper" way. + + time.timeZone = "Asia/Amman"; + i18n.defaultLocale = "en_US.UTF-8"; + + # Hardware: Intel Microcode & Nvidia PRIME + hardware.cpu.intel.updateMicrocode = true; + hardware.opengl = { + enable = true; + driSupport = true; + driSupport32Bit = true; + }; + services.xserver.videoDrivers = ["nvidia"]; + hardware.nvidia = { + modesetting.enable = true; + powerManagement.enable = false; + open = true; # You were using nvidia-open-dkms + nvidiaSettings = true; + prime = { + intelBusId = "PCI:0:2:0"; # Verify with `lspci | grep VGA` + nvidiaBusId = "PCI:1:0:0"; # Verify with `lspci | grep VGA` + }; + }; + + # System Services + services.printing.enable = true; # cups + services.blueman.enable = true; + hardware.bluetooth.enable = true; + services.coolercontrol.enable = true; + services.ollama.enable = true; + virtualisation.libvirtd.enable = true; + + # Display Manager & Desktop + services.displayManager.sddm = { + enable = true; + wayland.enable = true; + }; + + # Enable Hyprland at the system level to pull in XDG portals automatically + programs.hyprland.enable = true; + programs.zsh.enable = true; + + # User Account + users.users.nouredeen = { + isNormalUser = true; + description = "Nouredeen"; + extraGroups = [ "networkmanager" "wheel" "libvirtd" "video" "audio" ]; + shell = pkgs.zsh; + }; + + # DO NOT CHANGE + system.stateVersion = "24.05"; +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..b6987e4 --- /dev/null +++ b/flake.nix @@ -0,0 +1,27 @@ +{ + description = "System Flake"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = { self, nixpkgs, home-manager, ... }: { + nixosConfigurations.nixos = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./hardware-configuration.nix # Generated during installation + ./configuration.nix + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.nouredeen = import ./home.nix; + } + ]; + }; + }; +} diff --git a/home.nix b/home.nix new file mode 100644 index 0000000..70a3350 --- /dev/null +++ b/home.nix @@ -0,0 +1,106 @@ +{ config, pkgs, ... }: + +{ + home.username = "nouredeen"; + home.homeDirectory = "/home/nouredeen"; + + home.packages = with pkgs; [ + # Development + jetbrains.rider + jetbrains.clion + jetbrains.idea-ultimate + dotnet-sdk_8 + vscode + git + + # Utilities + kitty + thunar + fzf + ripgrep + bat + yazi + btop + fastfetch + + # Wayland / Hyprland specific + waybar + rofi-wayland + walker + swaynotificationcenter + hyprpaper + hyprlock + hyprshot + wlogout + wl-clipboard + slurp + grim + + # Apps + firefox + google-chrome + spotify + discord + obsidian + prismlauncher # Better maintained than raw minecraft-launcher in nix + ]; + + # GTK Theming (Catppuccin Mocha) + gtk = { + enable = true; + theme = { + name = "catppuccin-mocha-mauve-standard+default"; + package = pkgs.catppuccin-gtk.override { + accents = [ "mauve" ]; + size = "standard"; + tweaks = [ "normal" ]; + variant = "mocha"; + }; + }; + iconTheme = { + name = "Papirus-Dark"; + package = pkgs.papirus-icon-theme; + }; + cursorTheme = { + name = "Adwaita"; + size = 24; + }; + }; + + # Zsh & Starship Setup + programs.zsh = { + enable = true; + enableCompletion = true; + autosuggestion.enable = true; + syntaxHighlighting.enable = true; + + shellAliases = { + fixwifi = "sudo bash ~/mt7902_temp/fix_my_wifi.sh"; + startm = "wlogout -l ~/.config/wlogout/layout -s ~/.config/wlogout/style.css -b 4 -T 350 -B 350"; + zshconf = "nvim ~/.zshrc"; + barconf = "nvim ~/.config/waybar/config"; + ca = "cd ~/RiderProjects/ArqaamAccounting/ && clear && claude"; + arq = "cd ~/RiderProjects/ArqaamAccounting/"; + reload = "source ~/.zshrc && hyprctl reload && echo 'Reloaded'"; + mountwin = "sudo mount -t ntfs-3g -o ro /dev/nvme0n1p3 /mnt/windows"; + }; + + initExtra = '' + bindkey "^[[1;5C" forward-word + bindkey "^[[1;5D" backward-word + export EDITOR=nvim + ''; + }; + + programs.starship.enable = true; + + # Symlink your existing raw configs! + # Just place your folders in ~/nixos-config/dotfiles/ + home.file = { + ".config/hypr".source = ./dotfiles/hypr; + ".config/waybar".source = ./dotfiles/waybar; + ".config/swaync".source = ./dotfiles/swaync; + }; + + home.stateVersion = "24.05"; +}