Skip to content

Building

vaxerski edited this page Dec 6, 2021 · 16 revisions

Building the WM (Recommended method)

first of all, make sure you have all the required packages installed.

Arch

sudo pacman -S --needed cairo gdb ninja gcc cmake libxcb xcb-proto xcb-util gtkmm gtk4 gtkmm3

Ubuntu

sudo apt install xcb cmake gcc libgtk-3-dev ninja-build libgtkmm-3.0-dev libxcb-randr0 libxcb-randr0-dev libxcb-util-dev libxcb-util0-dev libxcb-util1 libxcb-ewmh-dev libxcb-xinerama0 libxcb-xinerama0-dev libxcb-icccm4-dev libxcb-keysyms1-dev libxcb-cursor-dev libxcb-shape0-dev

(If this list is incomplete please report it to me!)

Now, you can either build it in the CLI or use an IDE (I recommend VS Code)

CLI

git clone https://github.com/vaxerski/Hypr
cd Hypr
make clear && make release

Hypr should now be built to ./build/Hypr.

You should now move it into /usr/bin and add a desktop session.

sudo cp ./build/Hypr /usr/bin

and paste the example desktop session into /usr/share/xsessions

sudo cp ./example/hypr.desktop /usr/share/xsessions

You're done! Head to the Configuring Page to learn how to get started with configuring the window manager.

VS Code

Install the CMake and C/C++ Extensions packages from the VS Code Extension Marketplace

If the C/C++ extension is missing (You are using a De-Microsoft'ed version of VS Code)

You can either own it, and go about without a linter and intellisense, or follow these steps:

  • Download the VSIX from The VS Marketplace Page
  • Go to VS Code -> Extensions Tab -> ... (top left) -> Install from VSIX and select the downloaded file

Restart VS Code and open Hypr as a folder. Set your preferred configuration on the bottom panel and hit build.

Move the built file into /usr/bin like above and add a desktop session.

You're done! As above, head to the Configuring Page to learn how to get started with configuring the window manager.

Info

You will need to copy the Hypr built file every time you make a change for it to apply on your next X startup, but the desktop session does not need to be updated.

Clone this wiki locally