Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

assertion 'width >= -1' failed on NixOS/Sway #2396

Open
Zachiah opened this issue Feb 3, 2024 · 1 comment
Open

assertion 'width >= -1' failed on NixOS/Sway #2396

Zachiah opened this issue Feb 3, 2024 · 1 comment

Comments

@Zachiah
Copy link

Zachiah commented Feb 3, 2024

When trying to run one of the examples from the book, the window is created, but no widgets render:

use druid::widget::Label;
use druid::{AppLauncher, Widget, WindowDesc};

fn build_ui() -> impl Widget<()> {
    Label::new("Hello world")
}

fn main() {
    let main_window = WindowDesc::new(build_ui())
        .window_size((600.0, 400.0))
        .title("My first Druid App");
    let initial_data = ();

    AppLauncher::with_window(main_window)
        .launch(initial_data)
        .expect("Failed to launch application");
}

In the console I get this error:

(rust-plugin-try:190043): Gtk-CRITICAL **: 16:10:25.770: gtk_window_set_default_size: assertion 'width >= -1' failed

I apologize if this isn't the right place to put this issue, but I haven't had any issues running apps so far so It seems to be specific to this project? I'm willing to provide any version numbers/environment variables asked of me, but here are some basics:

Rust: 1.75.0
Druid: 0.8.3
Sway: 1.8.1
Nix: 2.18.1
Neofetch (logo removed):

zachiahsawyer@nixos
-------------------
OS: NixOS 23.11.2413.32f63574c85f (Tapir) x86_64
Host: LENOVO LNVNB161216
Kernel: 6.6.8
Uptime: 20 hours, 25 mins
Packages: 763 (nix-system), 1008 (nix-user)
Shell: zsh 5.9
Resolution: 3072x1920
WM: sway
Theme: Catppuccin-Macchiato-Compact-Pink-Dark [GTK2/3]
Terminal: alacritty
CPU: AMD Ryzen 7 6800HS Creator Edition (16) @ 4.785GHz
GPU: AMD ATI Radeon 680M
GPU: NVIDIA GeForce RTX 3050 Mobile
Memory: 11912MiB / 13669MiB

Also, I don't know how relevant it is, but I'm using a shell.nix file to setup the environment

which looks like this:
{ pkgs ? import <nixpkgs> {} }:

pkgs.mkShell {
    buildInputs = [
        pkgs.alsaLib
        pkgs.pkg-config
        pkgs.pango
        pkgs.cairo
        pkgs.gdk-pixbuf
        pkgs.gtk3
    ];
    shellHook = ''
        export PKG_CONFIG_PATH=${pkgs.alsaLib}/lib/pkgconfig:${pkgs.pango}/lib/pkgconfig:${pkgs.cairo}/lib/pkgconfig:${pkgs.gdk-pixbuf}/lib/pkgconfig:${pkgs.gtk3}/lib/pkgconfig:$PKG_CONFIG_PATH
    '';
}
@jaredoconnell
Copy link
Contributor

This works on Windows. The error is Gtk specific, and you're on Linux so it's using GTK by default.

It's complaining about the default size. Maybe try changing the size settings with .with_min_size((200., 200.))
And if that fails, see if it works with the flag gtk disabled, and druid-shell/wayland or druid-shell/x11 enabled, to bypass gtk.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants