C++ Wlroots

Open-source C++ projects categorized as Wlroots

Top 5 C++ Wlroot Projects

  • Hyprland

    Hyprland is a highly customizable dynamic tiling Wayland compositor that doesn't sacrifice on its looks.

    Project mention: RubyWM – an X11 window manager in pure Ruby | news.ycombinator.com | 2024-01-22

    I've been an X11 holdout since forever, but after nvidia proprietary drivers broke for the millionth time on a system upgrade, I switched over to Nouveau and the "Hyprland" tiling compositor on Wayland. It's the only setup that felt worth the upgrade to me. Setup was easy, animations are very slick (scroll down on the link below for a sample), and I've had no bugs or quirks. Highly recommend checking it out if you're bored or curious.

    https://hyprland.org/

  • Waybar

    Highly customizable Wayland bar for Sway and Wlroots based compositors. :v: :tada:

    Project mention: Hyprland waybar custom modules on-click never works | /r/hyprland | 2023-12-07
  • JetBrains Dev Survey

    What’s up with the C++ ecosystem in 2023? JetBrains Developer Ecosystem Survey 2023 has given us many interesting insights. The Embedded (37%) and Games (39%) industries are already working with C++20, developers are incorporating static analysis in their CI, and ChatGPT usage among coders is flourishing. Read on for more!

  • hyprpaper

    Hyprpaper is a blazing fast wayland wallpaper utility with IPC controls.

    Project mention: Hyprpaper not loading wallpaper - Could not connect to sock | /r/hyprland | 2023-12-06

    # Hyperland Configuration # See https://wiki.hyprland.org/Configuring/Monitors/ monitor=DP-2,[email protected],auto,1 # See https://wiki.hyprland.org/Configuring/Keywords/ for more # Execute your favorite apps at launch exec-once=waybar exec-once=hyprpaper exec-once=swaync # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf # source = ~/.zshrc# Some default env vars. env = XCURSOR_SIZE,24 # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { kb_layout = us kb_variant = kb_model = kb_options = kb_rules = follow_mouse = 1 touchpad { natural_scroll = yes } sensitivity = 0 # -1.0 - 1.0, 0 means no modification. } general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 4 gaps_out = 4 border_size = 1 col.active_border = rgba(a7c080ff) col.inactive_border = rgba(3d484dff) layout = dwindle } decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 5 blur { enabled = true size = 3 passes = 1 } drop_shadow = yes shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) } animations { enabled = yes # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = myBezier, 0.05, 0.9, 0.1, 1.05 animation = windows, 1, 7, myBezier animation = windowsOut, 1, 7, default, popin 80% animation = border, 1, 10, default animation = borderangle, 1, 8, default animation = fade, 1, 7, default animation = workspaces, 1, 6, default } dwindle { # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = yes # you probably want this } master { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more new_is_master = true } gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more workspace_swipe = off } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more device:epic-mouse-v1 { sensitivity = -0.5 } # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # Turn off default hypr-chan wallpaper misc { disable_hyprland_logo = true force_default_wallpaper = 0 } # Wallpaper Variables per: https://github.com/hyprwm/hyprpaper # set variables to be used as shortcuts in the bind command $w1 = DP-2,/home/bit/dotfiles/walls/walls-01.jpg $w2 = DP-2,/home/bit/dotfiles/walls/walls-02.jpg $w3 = DP-2,/home/bit/dotfiles/walls/walls-03.png $w4 = DP-2,/home/bit/dotfiles/walls/walls-04.jpg $w5 = DP-2,/home/bit/dotfiles/walls/walls-05.jpg $w6 = DP-2,/home/bit/dotfiles/walls/walls-06.png $w7 = DP-2,/home/bit/dotfiles/walls/walls-07.jpg $w8 = DP-2,/home/bit/dotfiles/walls/walls-08.jpg $w9 = DP-2,/home/bit/dotfiles/walls/walls-09.jpg $w10 = DP-2,/home/bit/dotfiles/walls/walls-10.png $w11 = DP-2,/home/bit/dotfiles/walls/walls-11.jpg $w12 = DP-2,/home/bit/dotfiles/walls/walls-12.jpg $w13 = DP-2,/home/bit/dotfiles/walls/walls-13.jpg $w14 = DP-2,/home/bit/dotfiles/walls/walls-14.png $w15 = DP-2,/home/bit/dotfiles/walls/walls-15.jpg $w16 = DP-2,/home/bit/dotfiles/walls/walls-16.jpg $w17 = DP-2,/home/bit/dotfiles/walls/walls-17.png $w18 = DP-2,/home/bit/dotfiles/walls/walls-18.jpg $w19 = DP-2,/home/bit/dotfiles/walls/walls-19.jpg # See https://wiki.hyprland.org/Configuring/Keywords/ for more $mainMod = SUPER $mainModShift = SUPER_SHIFT # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainModShift, R, exec, hyprctl reload hyprland bind = $mainMod, P, exec, alacritty -e tmux bind = $mainMod, Q, killactive, bind = $mainMod, C, exit, bind = $mainMod, F, exec, dolphin bind = $mainMod, V, togglefloating, bind = $mainMod, D, exec, wofi --show drun bind = $mainMod, A, pseudo, # dwindle bind = $mainMod, J, togglesplit, # dwindle # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d # Switch workspaces with mainMod + [0-9] bind = $mainMod, 1, workspace, 1 bind = $mainMod, 1, exec, $w1 # change the wallpaper when we switch workspace bind = $mainMod, 2, workspace, 2 bind = $mainMod, 2, exec, $w2 # change the wallpaper when we switch workspace bind = $mainMod, 3, workspace, 3 bind = $mainMod, 3, exec, $w3 # change the wallpaper when we switch workspace bind = $mainMod, 4, workspace, 4 bind = $mainMod, 4, exec, $w4 # change the wallpaper when we switch workspacebind = $mainMod, 5, workspace, 5 bind = $mainMod, 5, exec, $w5 # change the wallpaper when we switch workspace bind = $mainMod, 6, workspace, 6 bind = $mainMod, 6, exec, $w6 # change the wallpaper when we switch workspace bind = $mainMod, 7, workspace, 7 bind = $mainMod, 7, exec, $w7 # change the wallpaper when we switch workspace bind = $mainMod, 8, workspace, 8 bind = $mainMod, 8, exec, $w8 # change the wallpaper when we switch workspace bind = $mainMod, 9, workspace, 9 bind = $mainMod, 9, exec, $w9 # change the wallpaper when we switch workspace bind = $mainMod, 0, workspace, 1 bind = $mainMod, 0, exec, $w10 # change the wallpaper when we switch workspace # Move active window to a workspace with mainMod + SHIFT + [0-9] bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $SUPERSHIFT, 1, exec, $w1 # maintain wallpaper switching when move a window to another workspace bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $SUPERSHIFT, 2, exec, $w2 # maintain wallpaper switching when move a window to another workspace bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $SUPERSHIFT, 3, exec, $w3 # maintain wallpaper switching when move a window to another workspace bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $SUPERSHIFT, 4, exec, $w4 # maintain wallpaper switching when move a window to another workspace bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $SUPERSHIFT, 5, exec, $w5 # maintain wallpaper switching when move a window to another workspace bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $SUPERSHIFT, 6, exec, $w6 # maintain wallpaper switching when move a window to another workspace bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $SUPERSHIFT, 7, exec, $w7 # maintain wallpaper switching when move a window to another workspace bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $SUPERSHIFT, 8, exec, $w8 # maintain wallpaper switching when move a window to another workspace bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $SUPERSHIFT, 9, exec, $w9 # maintain wallpaper switching when move a window to another workspace bind = $mainMod SHIFT, 0, movetoworkspace, 10 bind = $SUPERSHIFT, 0, exec, $w10 # maintain wallpaper switching when move a window to another workspace # Scroll through existing workspaces with mainMod + scroll bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow # Take screenshots with Hyprshot # Screenshot a window bind = $mainMod, PRINT, exec, hyprshot -m window # Screenshot a monitor bind = , PRINT, exec, hyprshot -m output # Screenshot a region bind = $mainMod SHIFT, PRINT, exec, hyprshot -m region

  • hyprpicker

    A wlroots-compatible Wayland color picker that does not suck.

  • wapanel

    Desktop-dedicated wayland bar for wayfire and other wlroots based compositors. Mir compatible.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2024-01-22.

C++ Wlroots related posts

Index

What are some of the best open-source Wlroot projects in C++? This list will help you:

Project Stars
1 Hyprland 14,791
2 Waybar 5,026
3 hyprpaper 502
4 hyprpicker 474
5 wapanel 52
The modern identity platform for B2B SaaS
The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
workos.com