Giter VIP home page Giter VIP logo

waybox's Issues

Can't build against WLRoots 0.16.2

Hi there,

Trying to build against WLRoots 0.16.2, I see this:


../waybox/xdg_shell.c: In function ‘focus_view’:
../waybox/xdg_shell.c:76:4: error: ‘previous’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
   76 |    wlr_xdg_toplevel_set_activated(previous->toplevel, false);

Is this a known problem?

too few arguments to function ‘wlr_layer_shell_v1_create’

Is this compatible with the latest wlroots?

Because I get:

$ meson setup --prefix=/opt/waybox build
The Meson build system
Version: 0.63.2
Source dir: /usr/src/waybox
Build dir: /usr/src/waybox/build
Build type: native build
Project name: Waybox
Project version: 0.2.0
C compiler for the host machine: cc (gcc 12.2.0 "cc (Ubuntu 12.2.0-3ubuntu1) 12.2.0")
C linker for the host machine: cc ld.bfd 2.39
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (1.8.0)
Run-time dependency libxml-2.0 found: YES 2.9.14
Run-time dependency wlroots found: YES 0.17.0-dev
Run-time dependency wayland-server found: YES 1.21.0
Run-time dependency wayland-protocols found: YES 1.31
Run-time dependency xkbcommon found: YES 1.4.1
Program msgfmt found: YES (/usr/bin/msgfmt)
Program msgfmt found: YES (/usr/bin/msgfmt)
Program msginit found: YES (/usr/bin/msginit)
Program msgmerge found: YES (/usr/bin/msgmerge)
Program xgettext found: YES (/usr/bin/xgettext)
Configuring waybox using configuration
Program wayland-scanner found: YES 1.21.0 (/usr/bin/wayland-scanner)
Build targets in project: 45

Waybox 0.2.0

  User defined options
    prefix: /opt/waybox

Found ninja-1.11.0 at /usr/bin/ninja
stolk@workpc:/usr/src/waybox$ cd build/                                                             
stolk@workpc:/usr/src/waybox/build$ meson build

ERROR: Neither directory contains a build file meson.build.
stolk@workpc:/usr/src/waybox/build$ meson compile
[90/99] Compiling C object waybox/waybox.p/layer_shell.c.o
FAILED: waybox/waybox.p/layer_shell.c.o 
cc -Iwaybox/waybox.p -Iwaybox -I../waybox -I../include -I/usr/include/libxml2 -I/usr/local/include -I/usr/local/include/libdrm -I/usr/include/valgrind -I/usr/local/include/pixman-1 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -O0 -g -Wno-unused-parameter -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112L -DWLR_USE_UNSTABLE '-DPACKAGE_NAME="Waybox"' '-DPACKAGE_VERSION="0.2.0"' -DUSE_NLS=1 '-DGETTEXT_PACKAGE="waybox"' '-DLOCALEDIR="/opt/waybox/share/locale"' -MD -MQ waybox/waybox.p/layer_shell.c.o -MF waybox/waybox.p/layer_shell.c.o.d -o waybox/waybox.p/layer_shell.c.o -c ../waybox/layer_shell.c
../waybox/layer_shell.c: In function ‘init_layer_shell’:
../waybox/layer_shell.c:434:31: error: too few arguments to function ‘wlr_layer_shell_v1_create’
  434 |         server->layer_shell = wlr_layer_shell_v1_create(server->wl_display);
      |                               ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../waybox/layer_shell.c:8:
/usr/local/include/wlr/types/wlr_layer_shell_v1.h:125:28: note: declared here
  125 | struct wlr_layer_shell_v1 *wlr_layer_shell_v1_create(struct wl_display *display,
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~
[95/99] Compiling C object waybox/waybox.p/server.c.o
FAILED: waybox/waybox.p/server.c.o 

Broken with latest wlroots

Probably related to: swaywm/wlroots#1387

[57/58] Compiling C object 'waybox/waybox@@waybox@exe/main.c.o'.
FAILED: waybox/waybox@@waybox@exe/main.c.o
/nix/store/10yq7kwlvbc6h658izmrlsspry1g9f3c-gcc-wrapper-7.3.0/bin/cc -Iwaybox/waybox@@waybox@exe -Iwaybox -I../waybox -I../include -I/nix/store/w5r71zav1c4zmbi3p902bvl7b1zmyqyc-wayland-1.16.0/include -I/nix/store/yayjdd7fsghs2j1rm9rxsm99v4xd0k8m-wlroots-05bb44078667a11216611a8fbe87c5fe69e117f8/include -I/nix/store/lmv7cpljbqzbn0mxfpnk2knsm4c6bq12-pixman-0.34.0/include/pixman-1 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -O3 -Wno-unused-parameter -DWLR_USE_UNSTABLE -DWL_HIDE_DEPRECATED  -MD -MQ 'waybox/waybox@@waybox@exe/main.c.o' -MF 'waybox/waybox@@waybox@exe/main.c.o.d' -o 'waybox/waybox@@waybox@exe/main.c.o' -c ../waybox/main.c
In file included from ../waybox/main.c:7:0:
../include/waybox/server.h:21:10: fatal error: wlr/types/wlr_primary_selection.h: No such file or directory
 #include <wlr/types/wlr_primary_selection.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

Please provide basic config files

Could You please provide some basic config files (rc.xml, menu.xml) to start with, and to see what is already implemented?

I only get an empty window without any menus/function, when loading existing openbox configs.
(waybox.git, archlinux/AUR)

Thanks for your work on this promising projekt!

How to start OS with waybox?

Apologies for the n00b question, my first time using Wayland instead of X11. I installed Manjaro Sway, and as predicted, it starts the Sway compositor. Since I'm not very used to tiling WM, I would prefer to switch to a stacking WM.
I tried to look around for a way to change the default compositor, but even Arch Wiki doesn't mention how to do this.

So does anyone know how I could switch to waybox?

Getting Started Guide

This was requested by someone in the #waybox irc chat on Libera. I need to get with you at some point @keithbowes and try to come up with a doc.

Current status

What is the current status of the project? Do you have any list of features that have not yet been ported?

Releases

Hi. I love the idea. OpenBox serves me well to this day and I can't wait to use this full-time. In the meanwhile, would it be possible to make releases on GitHub? That way it'd be easier for others to package this software. I for one would like to improve the experience of packaging this for Gentoo. As of now, this is available in the wayland-desktop overlay, but only from the code pulled from latest master commit. This doesn't provide a uniform experience unfortunately as the state of master's HEAD will keep changing.

Build Error

Steps to reproduce:
1.git clone https://github.com/wizbright/waybox.git
2. sudo pacman -S meson wlroots wayland xkbcommon
3. meson build
4. cd build
5. ninja

Error:
[1/2] Compiling C object waybox/waybox.p/server.c.o FAILED: waybox/waybox.p/server.c.o cc -Iwaybox/waybox.p -Iwaybox -I../waybox -I../include -I/usr/include/libdrm -I/usr/include/pixman-1 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -g -Wno-unused-parameter -DWLR_USE_UNSTABLE '-DPACKAGE_NAME="Waybox"' '-DPACKAGE_VERSION="0.1.0"' '-DGETTEXT_PACKAGE="waybox"' '-DLOCALEDIR="/usr/local/share/locale"' -MD -MQ waybox/waybox.p/server.c.o -MF waybox/waybox.p/server.c.o.d -o waybox/waybox.p/server.c.o -c ../waybox/server.c ../waybox/server.c: In function ‘wb_create_backend’: ../waybox/server.c:18:28: error: implicit declaration of function ‘wlr_backend_get_renderer’; did you mean ‘wlr_backend_get_session’? [-Werror=implicit-function-declaration] 18 | server->renderer = wlr_backend_get_renderer(server->backend); | ^~~~~~~~~~~~~~~~~~~~~~~~ | wlr_backend_get_session ../waybox/server.c:18:26: error: assignment to ‘struct wlr_renderer *’ from ‘int’ makes pointer from integer without a cast [-Werror=int-conversion] 18 | server->renderer = wlr_backend_get_renderer(server->backend); | ^ cc1: all warnings being treated as errors ninja: build stopped: subcommand failed.

Information:
System: Arch Linux
Kernel: 5.15.17-1-lts
CPU: CPU: Intel i3-2348M (4) @ 2.300GHz
GPU: GPU: Intel 2nd Generation Core Process
Log file at build/meson-logs/meson-log.txt- meson-log.txt

Current Local Clone: current_local_clone.tar.gz

Roadmap

Features

  • obMenu System
    • Application Listings
    • Places
    • Menu Editor
    • obConfiguration
      • obKeyConfig
      • obThemes
      • taskbar Support
      • Handling GTK and QT styling
        and applications
    • autostart

Graphical

  • ob Window Decorations
    • icon, minimal
  • Notifications
  • Logout/Shutdown screen overlay
  • Workspaces
    • Naming
    • Moving windows between
    • Workspace focus
  • Layers (wlroots surface layers should help)

Join forces?

Why don't you guys join forces with labwc or maybe your goals are different than this openbox project?

Server-side decorations support

A while back, @icedman created PR #24, but never addressed the problems. If someone wants to pick this up and make it possible to merge, that would be great. The problems with the PR upon its creation:

  1. It doesn't pass the build tests.
  2. It uses KDE's obsolete server_decoration protocol. It'll have to use the official xdg-decoration protocol.
  3. Some of the source files are huge (so huge that GitHub won't even show them). If that's necessary, that's OK, but I have a feeling it's not. In particular, rendering XPM files shouldn't be something to do. XPM files can easily be converted to SVG and windowing system-agnostic libraries can be used for them (instead of adding a bunch of code to Waybox to handle a legacy format).
  4. It adds a lot of new themes. I don't think these should be added to the Waybox repo. Maybe the default theme should, but largely, I'd rather a different repo for themes (ideally, one arranged so that someone could just use git clone in $XDG_DATA_HOME/themes (or $prefix/themes)).

Additional problems now:

  1. There are merge conflicts.
  2. It relies on the wlroots gles2 renderer (optional since wlroots 0.14.0), so it's not renderer agnostic. I suppose we could change meson.build to build it only when wlroots has a gles2 renderer, but I'd prefer something that could be used with any renderer.
  3. It forces server-side decorations. Client-side decorations should be used if the client requests them. I think we should use Openbox's <decor> element (only making it global, instead of only possible in <application>), with the Openbox values yes and no, as well as client (always use client-side decorations, even if server-side decorations were requested) and server (always use server-side decorations, even if client-side decorations were requested). However, I'd be implementing that option and it would only be the job of whoever takes this up to make sure that client-side decorations are used if they're requested (it's easy to detect: wlr_xdg_toplevel_decoration_v1.requested_mode).

Compilation fails with -Werror=implicit-function-declaration on libxml2

With -Werror=implicit-function-declaration and libxml2 2.12.0 the compilation fails with:

FAILED: waybox/waybox.p/config.c.o 
cc -Iwaybox/waybox.p -Iwaybox -I../waybox/waybox -I../waybox/include -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/include/wlroots0.16 -I/usr/include/libdrm -I/usr/include/pixman-1 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -Wno-unused-parameter -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112L -DWLR_USE_UNSTABLE '-DPACKAGE_NAME="Waybox"' '-DPACKAGE_VERSION="0.2.2"' -DUSE_NLS=1 '-DGETTEXT_PACKAGE="waybox"' '-DLOCALEDIR="/usr/share/locale"' -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fPIE -MD -MQ waybox/waybox.p/config.c.o -MF waybox/waybox.p/config.c.o.d -o waybox/waybox.p/config.c.o -c ../waybox/waybox/config.c
../waybox/waybox/config.c: In function ‘init_config’:
../waybox/waybox/config.c:152:15: error: implicit declaration of function ‘xmlReadFile’ [-Werror=implicit-function-declaration]
  152 |         doc = xmlReadFile(rc_file, NULL, XML_PARSE_RECOVER);
      |               ^~~~~~~~~~~
../waybox/waybox/config.c:152:42: error: ‘XML_PARSE_RECOVER’ undeclared (first use in this function)
  152 |         doc = xmlReadFile(rc_file, NULL, XML_PARSE_RECOVER);
      |                                          ^~~~~~~~~~~~~~~~~
../waybox/waybox/config.c:152:42: note: each undeclared identifier is reported only once for each function it appears in
../waybox/waybox/config.c:212:9: error: implicit declaration of function ‘xmlCleanupParser’ [-Werror=implicit-function-declaration]
  212 |         xmlCleanupParser();
      |         ^~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

Used this quick patch, but dunno if this a good way to resolve this:

--- a/waybox/waybox/config.c
+++ b/waybox/waybox/config.c
@@ -1,5 +1,6 @@
 #include <libxml/xpath.h>
 #include <libxml/xpathInternals.h>
+#include <libxml/parser.h>
 
 #include "config.h"
 


Touchscreen support

We should have some way of interacting with clients. Be able to use a mouse cursor to point and click at least and type with a keyboard. Maybe work with a touch screen?

build failure

building with latest wlroots from Arch linux AUR fails. Here is the log:
FAILED: waybox/waybox@@waybox@exe/output.c.o
cc -Iwaybox/waybox@@waybox@exe -Iwaybox -I../waybox -I../include -I/usr/include/libdrm -I/usr/include/pixman-1 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -O0 -g -Wno-unused-parameter -DWL_HIDE_DEPRECATED -MD -MQ 'waybox/waybox@@waybox@exe/output.c.o' -MF 'waybox/waybox@@waybox@exe/output.c.o.d' -o 'waybox/waybox@@waybox@exe/output.c.o' -c ../waybox/output.c
../waybox/output.c: In function ‘output_frame_notify’:
../waybox/output.c:27:29: error: invalid type argument of ‘->’ (have ‘struct wlr_surface_state’)
.width = surface->current->width,
^~
../waybox/output.c:28:30: error: invalid type argument of ‘->’ (have ‘struct wlr_surface_state’)
.height = surface->current->height
^~
../waybox/output.c:31:69: error: invalid type argument of ‘->’ (have ‘struct wlr_surface_state’)
wlr_matrix_project_box(matrix, &render_box, surface->current->transform,
^~
ninja: build stopped: subcommand failed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.