A read-only mirror of https://github.com/hyprwm/hyprlang
Go to file
Zach DeCook 573cf83c51
core: Fix compilation and tests on 32bit architectures (#20)
* Fix compilation on 32-bit architectures

The 1234L suffix creates a 'long', which is not 64-bit on 32-bit architectures.

* Use stoll instead of stol to fix colors on 32-bit systems

on 32 bit systems, 'long' is 32 bits and 'long long' is 64 bits,
so the 'long long' functions need to be used.

* Fix rgba and rgb values on 32-bit

* Use a cast to Hyprlang::INT
2024-02-12 18:03:04 +00:00
.github/workflows CI: add fuzzing and sanitizing (#5) 2023-12-31 16:51:50 +01:00
include internal: various stability improvements 2024-02-11 15:38:51 +00:00
nix Fix pkg-config and Nix 2024-01-02 23:17:22 +02:00
src core: Fix compilation and tests on 32bit architectures (#20) 2024-02-12 18:03:04 +00:00
tests core: Fix compilation and tests on 32bit architectures (#20) 2024-02-12 18:03:04 +00:00
.clang-format initial commit 2023-12-28 20:38:01 +01:00
.gitignore doxygen: init 2023-12-30 14:31:48 +01:00
CMakeLists.txt build: unbreak clang 2024-02-12 17:23:50 +00:00
LICENSE Initial commit 2023-12-28 17:01:04 +01:00
README.md readme: set better install prefix for cmake 2023-12-31 01:32:58 +01:00
flake.lock Nix: init 2023-12-28 23:11:34 +02:00
flake.nix Nix/CI: add hyprlang-with-tests 2023-12-28 23:27:46 +02:00
hyprlang-docs CI: deploy docs (#2) 2023-12-30 15:15:36 +01:00
hyprlang.pc.in use CMAKE_INSTALL_FULL_LIBDIR in pkgconfig instead of hardcoded lib 2024-01-09 17:20:04 +02:00

README.md

hyprlang

The hypr configuration language is an extremely efficient, yet easy to work with, configuration language for linux applications.

It's user-friendly, easy to grasp, and easy to implement.

Building and installation

Building is done via CMake:

cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
cmake --build ./build --config Release --target hyprlang -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`

Install with:

cmake --install ./build

Example config

bakery {
    counter_color = rgba(ee22eeff)          # color by rgba()
    door_color = rgba(122, 176, 91, 0.1)    # color by rgba()
    dimensions = 10 20                      # vec2
    employees = 3                           # int
    average_time_spent = 8.13               # float
    hackers_password = 0xDEADBEEF           # int, as hex

    # nested categories
    secrets {
        password = hyprland                 # string
    }
}

# variable
$NUM_ORDERS = 3

cakes {
    number = $NUM_ORDERS                    # use a variable
    colors = red, green, blue               # string
}

# keywords, invoke your own handler with the parameters
add_baker = Jeremy, 26, Warsaw
add_baker = Andrew, 21, Berlin
add_baker = Koichi, 18, Morioh

Docs

Visit hyprland.org/hyprlang to see the documentation.

Example implementation

For an example implmentation, take a look at the tests/ directory.