Programs.hyprland does not exist

I’m trying to use hyperland on my machine but every time i add it to the configuration.nix it gives out the error: programs.hyprland does not exist. Any solutions?

Would you mind sharing your configuration?

# 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’).

{ config, pkgs, ... }:


{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
    ];

  # Bootloader.
  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;
  boot.loader.efi.efiSysMountPoint = "/boot/efi";

  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 = "Europe/Istanbul";

  # Select internationalisation properties.
  i18n.defaultLocale = "en_US.UTF-8";

  i18n.extraLocaleSettings = {
    LC_ADDRESS = "tr_TR.UTF-8";
    LC_IDENTIFICATION = "tr_TR.UTF-8";
    LC_MEASUREMENT = "tr_TR.UTF-8";
    LC_MONETARY = "tr_TR.UTF-8";
    LC_NAME = "tr_TR.UTF-8";
    LC_NUMERIC = "tr_TR.UTF-8";
    LC_PAPER = "tr_TR.UTF-8";
    LC_TELEPHONE = "tr_TR.UTF-8";
    LC_TIME = "tr_TR.UTF-8";
  };

  # Enable the X11 windowing system.
 # services.xserver.enable = true;
 # programs.sway.enable = true;
   programs.hyprland.enable = true;


 services.xserver = {
  enable = true;
  displayManager.gdm = {
      enable = true;
      wayland = true;
   };
};


  # Enable the GNOME Desktop Environment.
 # services.xserver.displayManager.gdm.enable = true;
 # services.xserver.desktopManager.gnome.enable = true;

  # Configure keymap in X11
  services.xserver = {
    layout = "us";
    xkbVariant = "";
  };

  # Enable CUPS to print documents.
  services.printing.enable = true;

  # Enable sound with pipewire.
  sound.enable = true;
  hardware.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;
  };

  # 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’.
  users.users.badger = {
    isNormalUser = true;
    description = "badger";
    extraGroups = [ "networkmanager" "wheel" ];
    packages = with pkgs; [
      firefox
    #  thunderbird
    ];
  };

  # Allow unfree packages
  nixpkgs.config.allowUnfree = true;




  # List packages installed in system profile. To search, run:
  # $ nix search wget
  environment.systemPackages = with pkgs; [
    vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
  #  wget
   git
   neofetch
   htop
   ncmpcpp
   mpv
   mpd
   calcurse
   sc-im
   lf
   anki 
   obsidian 
   zsh
   netcat-gnu
   dialect
   rsync
   syncthing
   cargo
   unzip
  ];


  # 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 = "22.11"; # Did you read the comment?

}

https://github.com/vital-cracked/configuration.nix

Seems that the repo is not public.

Can you share your systems channel config?

Remove this sound.enable thing, this option doesn’t even exist anymore.

You must be on some really old revision of nixpkgs, ensure you are using either the nixos-24.11 or nixos-unstable channel.

Please share the output of the following commands:

sudo nix-channel --list
nix-channel --list

and DO NOT touch system.stateVersion.

cargo doesn’t go in your system config either, if you want to develop with rust on NixOS, create a dev shell - see Declarative shell environments with shell.nix — nix.dev documentation and Automatic environment activation with direnv — nix.dev documentation.

nixos nixos-22.11 release nixos-22.11.4773.ea4c80b39be4

There you go. Use 24.11 instead.

sudo nix-channel --add https://nixos.org/channels/nixos-24.11 nixos
sudo nix-channel --update

Then rebuild.

You’ll want to do this (replacing 24.11 with the actual current release) every 6 months (every June and December), or you’ll stop getting updates. For example, at the end of May (so in a little over 2 months), you’ll want to switch to nixos-25.05.

2 Likes