Giter VIP home page Giter VIP logo

waybox's People

Contributors

1kjo avatar adlocode avatar colemickens avatar keithbowes avatar narrat avatar vesodev avatar wizbright avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

waybox's Issues

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

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).

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.

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!

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.

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.

Current status

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

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?

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?

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.

Join forces?

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

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)

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"
 


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?

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.