# 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, ... }: let unstable = import { config = { allowUnfree = true; }; }; packages = import (./packages); in { disabledModules = [ "services/hardware/undervolt.nix" ]; imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ]; nixpkgs.config.allowUnfree = true; nixpkgs.overlays = [ packages ]; nix.settings.experimental-features = [ "nix-command" "flakes" ]; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; networking.hostName = "x1-carbon-nixos"; # Define your hostname. # Pick only one of the below networking options. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. networking.networkmanager = { enable = true; # Easiest to use and most distros use this by default. wifi.powersave = true; }; hardware.bluetooth.enable = false; # Set your time zone. time.timeZone = "America/New_York"; # Configure network proxy if necessary # networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; console = { font = "Lat2-Terminus16"; keyMap = "us"; }; # Enable the X11 windowing system. # services.xserver.enable = true; # Configure keymap in X11 # services.xserver.xkb.layout = "us"; # services.xserver.xkb.options = "eurosign:e,caps:escape"; # Enable CUPS to print documents. # services.printing.enable = true; # Enable sound. sound.enable = false; security.rtkit.enable = true; systemd.extraConfig = "StartLimitBurst=2"; services = { #syncthing = { # enable = true; # relay.enable = true; # user = "august"; # group = "wheel"; # settings = { # devices = { # pixel6 = { # id = # "OXDZ7H2-SZPRP56-7C3MHIE-RAKEL4C-EIKMJ4R-VK5YWTP-HW6FVW3-HB42PQX"; # autoAcceptFolders = true; # }; # }; # folders = { # "/home/august/sync" = { # id = "Default"; # devices = [ "pixel6" ]; # }; # }; # }; #}; dbus = { enable = true; implementation = "broker"; }; pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; openssh.enable = true; }; # Enable touchpad support (enabled default in most desktopManager). # services.xserver.libinput.enable = true; programs.fish.enable = true; security.pam.services.swaylock = { }; security.pam.services.swaylock.fprintAuth = true; programs.hyprland.enable = true; programs.hyprland.xwayland.enable = true; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.august = { isNormalUser = true; extraGroups = [ "wheel" "networkmanager" ]; # Enable ‘sudo’ for the user. packages = with pkgs; [ hyprshade imagemagick xdg-utils transmission_4-gtk gnome.gnome-font-viewer networkmanager_dmenu firefox tree unstable.alacritty swaybg pywal eww-wayland wl-clipboard vimix-cursors prismlauncher p7zip bashmount fcp unstable.kicad gnome.gnome-tweaks gnome.gnome-themes-extra vlc gnome.nautilus gnome.sushi colloid-gtk-theme vscode-langservers-extracted networkmanagerapplet whitesur-icon-theme whitesur-gtk-theme adw-gtk3 starship tea gcc jdk jdk21 python3 python311Packages.pip unzip go php rustup nodejs_21 prettierd luarocks luajit bat wofi ydotool wtype wev stylua nixfmt nil lua-language-server signal-desktop acpi unstable.pywalfox-native swayfx wofi-emoji ]; shell = pkgs.fish; }; # home-manager.users.august = {pkgs, ...}: { # wayland.windowManager.hyprland = { # enable = true; # xwayland.enable = true; # #plugins = [unstable.hyprlandPlugins.hy3]; # settings = { # }; # }; # home.stateVersion = "23.11"; # }; fonts = { fontconfig = { allowBitmaps = true; defaultFonts = { emoji = [ "Apple Color Emoji" ]; }; }; packages = with pkgs; [ cozette nerdfonts noto-fonts-color-emoji apple-fonts apple-emoji phosphor-icons ]; }; programs.light.enable = true; programs.neovim = { enable = true; defaultEditor = true; }; # List packages installed in system profile. To search, run: # $ nix search wget environment = { systemPackages = with pkgs; [ neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. wget eza tmux git fish fishPlugins.z fishPlugins.tide fishPlugins.sponge fishPlugins.pisces bluez usbutils ripgrep fzf sof-firmware pulseaudio powertop ranger ]; sessionVariables = { WLR_NO_HARDWARE_CURSORS = "1"; XCURSOR_THEME = "Vimix Cursors - White"; }; }; security.sudo = { enable = true; extraRules = [{ users = [ "august" ]; commands = [{ command = "ALL"; options = [ "NOPASSWD" ]; }]; }]; }; programs.nix-ld = { enable = true; libraries = with pkgs; [ libxkbcommon wayland xorg.libX11 xorg.libXcursor xorg.libXi xorg.libXrandr ]; }; # Enable the OpenSSH daemon. # Open ports in the firewall. # networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ]; # Or disable the firewall altogether. # networking.firewall.enable = false; # 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. # # 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 = "23.11"; # Did you read the comment? }