{ pkgs, ... }:
{
    services.udev.packages = [ pkgs.yubikey-personalization ];

    hardware.graphics = {
        enable = true;
    };

    services.greetd = {
        enable = true;
        settings = rec {
            initial_session = {
                command = "Hyprland";
                user = "user";
            };
            default_session = initial_session;
        };
    };

    i18n.extraLocaleSettings = {
        LC_TIME = "en_GB.UTF-8";
    };
    environment.variables = {
        LC_TIME = "en_GB.UTF-8";
    };

    # Calendar
    # Add the server using gnome-online-accounts:
    # nix-shell -p gnome-control-center --run "gnome-control-center"
    # Just add the main webdav server and gnome-calendar will automatically pick up all available calendars.
    programs.dconf.enable = true;
    services.gnome.evolution-data-server.enable = true;
    services.gnome.gnome-online-accounts.enable = true;
    services.gnome.gnome-keyring.enable = true;

    services.pipewire = {
        enable = true;
        alsa.enable = true;
        alsa.support32Bit = true;
        pulse.enable = true;
        jack.enable = true;
    };

    hardware.bluetooth.enable = true;
    hardware.bluetooth.powerOnBoot = true;
    services.blueman.enable = true;
    systemd.user.services.mpris-proxy = {
        description = "Mpris proxy";
        after = [ "network.target" "sound.target" ];
        wantedBy = [ "default.target" ];
        serviceConfig.ExecStart = "${pkgs.bluez}/bin/mpris-proxy";
    };
    hardware.bluetooth.settings = {
        General = {
            Experimental = true;
        };
    };
}