ldelossa / way-shell

A Gnome-like shell for wayland compositors
GNU General Public License v2.0
121 stars 4 forks source link

NixOS #17

Open mbrignall opened 1 month ago

mbrignall commented 1 month ago

Hi there,

Great project!

Is there a plan to package this for NixOS?

Best,

M.

ldelossa commented 1 month ago

Hey there.

Not unless a community member contributes this. I will only maintain packages for the distro I currently use, which is Fedora.

sudanchapagain commented 3 weeks ago

With some help, i managed to build the binary with nix-shell. As in it's still using make but uses nix-shell to provide the paths for dependencies. However, i had to add a new entry to the Make file dependency

DEPS := libadwaita-1 \
        gtk4-layer-shell-0 \
        upower-glib \
        wireplumber-0.5 \
++      libpipewire-0.3 \
        json-glib-1.0 \
        libnm \
        libpulse \
        libpulse-simple \
        libpulse-mainloop-glib \

shell.nix:

with import <nixpkgs> {};
mkShell {
  name = "env";
  packages = [
    pkg-config
    gtk4
    libadwaita
    gtk4-layer-shell
    upower
    wireplumber
    pipewire.dev
    json-glib
    networkmanager.dev
    libpulseaudio
    wayland-protocols
    wayland-utils
    xwayland
    glib.dev
  ];
}

just add these to the root of repo run nix-shell & then make

NOTE: 1. I have not mapped exact dependencies in nix-shell. I should have used nix-locate or something as such it might contain unnecessary dependencies. 2. I have not ran the binary as i am in gnome and ran into a error which is i think is because i am not in sway.

ldelossa commented 3 weeks ago

Very cool! Id love to help out more here but Im not too Nix savvy.

Your comments around running in Gnome is right. We fail if we can't take a few dbus names, which Gnome is almost definitely owning.

sudanchapagain commented 3 weeks ago

I just tried running it on sway but i got an error.

(way-shell:5405): GLib-GIO-ERROR **: 15:54:42.969: Settings schema 'org.ldelossa.way-shell.window-manager' is not installed
Trace/breakpoint trap (core dumped)

I am not sure why but i am assuming it's because it isn't installed in system as in it's not linked and is in nix store. idk.

ldelossa commented 2 weeks ago

@sudanchapagain The gschema file has not be integrated with your system.

Check out the makefile targets here:

.PHONY:
install-gschema:
    glib-compile-schemas $(DESTDIR)$(SCHEMADIR)

.PHONY:
install:
    install -D ./way-shell $(DESTDIR)$(BINDIR)/way-shell
    install -D ./way-sh/way-sh $(DESTDIR)$(BINDIR)/way-sh
    install -D data/org.ldelossa.way-shell.gschema.xml $(DESTDIR)$(SCHEMADIR)/org.ldelossa.way-shell.gschema.xml
    install -D contrib/systemd/way-shell.service $(DESTDIR)$(USERUNITDIR)/way-shell.service

After the install, a call to make install-gschema should be called to compile the gschema database.

For instance, we do this in a post scriptlet in the rpm spec file:

https://github.com/ldelossa/way-shell/blob/main/way-shell.spec#L64C1-L71C50