# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

CRATES="
        aho-corasick@1.1.4
        anstream@1.0.0
        anstyle-parse@1.0.0
        anstyle-query@1.1.5
        anstyle-wincon@3.0.11
        anstyle@1.0.14
        anyhow@1.0.104
        async-broadcast@0.7.2
        async-channel@2.5.0
        async-executor@1.14.0
        async-io@2.6.0
        async-lock@3.4.2
        async-process@2.5.0
        async-recursion@1.1.1
        async-signal@0.2.14
        async-stream-impl@0.3.6
        async-stream@0.3.6
        async-task@4.7.1
        async-trait@0.1.91
        atomic-waker@1.1.2
        autocfg@1.5.1
        bitflags@1.3.2
        bitflags@2.13.1
        bitvec@1.1.1
        blocking@1.6.2
        bumpalo@3.20.3
        bytes@1.12.1
        cc@1.4.0
        cfg-if@1.0.4
        cfg_aliases@0.2.2
        clap@4.6.5
        clap_builder@4.6.5
        clap_complete@4.6.8
        clap_derive@4.6.4
        clap_lex@1.1.0
        colorchoice@1.0.5
        concurrent-queue@2.5.0
        convert_case@0.10.0
        crossbeam-utils@0.8.22
        defmt-macros@1.1.1
        defmt-parser@1.0.0
        defmt@1.1.1
        derive-where@1.6.1
        derive_more-impl@2.1.1
        derive_more@2.1.1
        downcast-rs@1.2.1
        either@1.17.0
        endi@1.1.1
        enumflags2@0.7.12
        enumflags2_derive@0.7.12
        env_filter@2.0.0
        env_logger@0.11.11
        equivalent@1.0.2
        errno@0.3.14
        evdev@0.13.2
        event-listener-strategy@0.5.4
        event-listener@5.4.2
        fastrand@2.5.0
        find-msvc-tools@0.1.9
        fork@0.10.0
        funty@2.0.0
        futures-core@0.3.34
        futures-io@0.3.33
        futures-lite@2.6.1
        futures-macro@0.3.34
        futures-task@0.3.34
        futures-util@0.3.34
        gethostname@1.1.0
        getrandom@0.4.3
        hashbrown@0.17.1
        heck@0.5.0
        hermit-abi@0.3.9
        hermit-abi@0.5.2
        hex@0.4.3
        hyprland-macros@0.4.0-beta.3
        hyprland@0.4.0-beta.3
        indexmap@2.14.1
        indoc@2.0.7
        io-lifetimes@1.0.11
        is_terminal_polyfill@1.70.2
        itoa@1.0.18
        jiff-core@0.1.0
        jiff-static@0.2.35
        jiff@0.2.35
        js-sys@0.3.103
        libc@0.2.189
        libudev-sys@0.1.4
        linux-raw-sys@0.12.1
        log@0.4.34
        memchr@2.8.3
        memoffset@0.9.1
        mio@1.2.2
        niri-ipc@25.11.0
        nix@0.29.0
        nix@0.31.3
        once_cell@1.21.4
        once_cell_polyfill@1.70.2
        ordered-stream@0.2.0
        parking@2.2.1
        pastey@0.1.1
        pin-project-lite@0.2.17
        piper@0.2.5
        pkg-config@0.3.33
        polling@3.11.0
        portable-atomic-util@0.2.7
        portable-atomic@1.14.0
        proc-macro-crate@3.5.0
        proc-macro2@1.0.107
        quick-xml@0.41.0
        quote@1.0.47
        r-efi@6.0.0
        radium@0.7.0
        regex-automata@0.4.16
        regex-syntax@0.8.11
        regex@1.13.1
        rustc_version@0.4.1
        rustix@1.1.4
        rustversion@1.0.23
        ryu@1.0.23
        semver@1.0.28
        serde@1.0.229
        serde_core@1.0.229
        serde_derive@1.0.229
        serde_json@1.0.151
        serde_repr@0.1.21
        serde_spanned@1.1.1
        serde_yaml@0.9.34+deprecated
        shlex@2.0.1
        signal-hook-registry@1.4.8
        slab@0.4.12
        smallvec@1.15.2
        socket2@0.6.5
        strsim@0.11.1
        syn@2.0.119
        syn@3.0.3
        tap@1.0.1
        tempfile@3.27.0
        thiserror-impl@2.0.19
        thiserror@2.0.19
        tokio-macros@2.7.2
        tokio@1.53.1
        toml@1.1.4+spec-1.1.0
        toml_datetime@1.1.1+spec-1.1.0
        toml_edit@0.25.13+spec-1.1.0
        toml_parser@1.1.3+spec-1.1.0
        toml_writer@1.1.2+spec-1.1.0
        tracing-attributes@0.1.31
        tracing-core@0.1.36
        tracing@0.1.44
        udev@0.9.3
        uds_windows@1.2.1
        unicode-ident@1.0.24
        unicode-segmentation@1.13.3
        unicode-xid@0.2.6
        unsafe-libyaml@0.2.11
        utf8parse@0.2.2
        uuid@1.24.0
        wasi@0.11.1+wasi-snapshot-preview1
        wasm-bindgen-macro-support@0.2.126
        wasm-bindgen-macro@0.2.126
        wasm-bindgen-shared@0.2.126
        wasm-bindgen@0.2.126
        wayland-backend@0.3.17
        wayland-client@0.31.15
        wayland-protocols-wlr@0.3.12
        wayland-protocols@0.32.13
        wayland-scanner@0.31.11
        wayland-sys@0.31.11
        windows-link@0.2.1
        windows-sys@0.48.0
        windows-sys@0.61.2
        windows-targets@0.48.5
        windows_aarch64_gnullvm@0.48.5
        windows_aarch64_msvc@0.48.5
        windows_i686_gnu@0.48.5
        windows_i686_msvc@0.48.5
        windows_x86_64_gnu@0.48.5
        windows_x86_64_gnullvm@0.48.5
        windows_x86_64_msvc@0.48.5
        winnow@1.0.4
        wyz@0.5.1
        x11rb-protocol@0.14.0
        x11rb@0.14.0
        zbus@5.19.0
        zbus_macros@5.19.0
        zbus_names@4.3.4
        zcheapstr@1.1.0
        zmij@1.0.23
        zvariant@5.15.0
        zvariant_derive@5.15.0
        zvariant_utils@4.2.0
"

inherit cargo rust-toolchain

DESCRIPTION="Dynamic key remap for X and Wayland"
HOMEPAGE="https://github.com/k0kubun/xremap"
SRC_URI="https://github.com/k0kubun/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
$(cargo_crate_uris)"

LICENSE="MIT Apache-2.0 BSD GPL-3+ MIT Unicode-3.0"
SLOT="0"
KEYWORDS="~aarch64 ~amd64"
IUSE="gnome hypr sway X"

src_configure() {
        local myfeatures=(
            $(usex X x11 '')
            $(usev gnome)
            $(usev sway)
            $(usev hypr)
        )
        cargo_src_configure --no-default-features
}