Giter Site home page Giter Site logo

wf-shell's Introduction

wf-shell

wf-shell is a repository which contains the various components needed to built a fully functional DE based around wayfire. Currently it has only a GTK-based panel and background client.

Dependencies

wf-shell needs the core wayland libraries and protocols (wayland-devel and wayland-protocols-devel for Fedora), gtkmm-3.0 and wf-config

Build

Just like any meson project:

git clone https://github.com/WayfireWM/wf-shell && cd wf-shell
meson build --prefix=/usr --buildtype=release
ninja -C build && sudo ninja -C build install

Configuration

To configure the panel and the dock, wf-shell uses a config file located (by default) in ~/.config/wf-shell.ini An example configuration can be found in the file wf-shell.ini.example, alongside with comments what each option does.

Style & Theme

Style and theme can be altered with CSS

Screenshots

Panel & Background demo

wf-shell's People

Contributors

alyssais avatar ammen99 avatar arnaudv6 avatar carterprince avatar cjmayo avatar diamondburned avatar dkondor avatar drewnaylor avatar jbeich avatar jgmdev avatar lavender-agatha avatar lcolitti avatar marcusbritanicus avatar mpolosak avatar namorniradnug avatar nyanpasu64 avatar pacomod avatar rastersoft avatar s96abrar avatar soreau avatar trigg avatar valpackett avatar wb9688 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

wf-shell's Issues

Allow to specify config file on command line [Feature Request]

Use Case: Running multiple panels. (I'm trying to set up a wayfire-based environment for the pinephone)

Issue: Since all instances of the panel refer to the same config file, we get two consecutive panels and any changes to config is followed by both instances

Proposed Solution: Add an additional param --config /path/to/config to support different config files at program start

Network icon at VPN

When I turn on VPN, the icon in the wf-bar changes from wifi to disconnected.

[window-list] Can't set colors

I have no idea on how to change background and font colors. Regardless of how I set the background_color (background_color = gtk_headerbar or an rgb value), the background color does not change. Also I can't figure out how to change the font color. In result inactive windows on the list are represented by dark grey text on dark grey background.

Same applies to the dock.

Am I doing anything wrong?

image

window-list widget lacks size option.

When adding the window-list widget to the bar the height increases.
The default config file claims all widgets also have individual settings for height. This is incorrect for window-list. Menu seems to inherit its size from launchers.

There's no way to exit a session on wf-shell

There was no easy way to exit a session through the wf-shell, I had to open a terminal and run kill wayfire to do so. It's not much work to do it this way, but I believe it could be implemented and make for a better user experience.

Perhaps even create a "canonical" way of exiting a session that doesn't rely on simply killing a process. I'm open to helping with developing this, because this is a project I'm really interested in right now!

wf-panel: titlebar and desktops

Would it be much work to add a client title widget, and one that displays the available+active desktops?

Is there a way to query wayfire for them?

Dependency wf-config found: NO

Workaround: set PKG_CONFIG_PATH to /usr/local/lib64/pkgconfig/ after installing wf-config. For some reason, it doesn't do this by default.

[request] move background setting into wayfire instead of in wf-shell

Currently, wf-shell handles setting the background, which is not the best desirable outcome, given that people would like to use wayfire but without wf-shell (thinking nwg-launchers).

This way I can have cool looking, sleek interfaces and based background even without wf-shell.

I don't know how hard/easy it is (so not the most important feature) but I want to just put it out there.

Large ethernet Text

It would be awesome to be able to adjsut the font size of the Ethernet notification. Mine is currently 4 inches large. I like the clock being large
ethernet-panel-text

window list causes 5~ CPU utilization when idle

This happens only when the widget content is bigger than the panel itself and window-list has a scollbar.
The reason is in this callback

this->signal_size_allocate().connect_notify(
[=] (Gtk::Allocation&) {
this->set_auto_exclusive_zone(this->has_auto_exclusive_zone);
this->setup_hotspot();
});

If you add a debug log inside the lamda (which resets wm struts) you will see that it gets called (when size is normal)
a few dozen times per second while you move the mouse over window-list.

When the window-list has a scrollbar the widget seems to fight being to small and calls signal_size_allocate
as often as possible no matter where your mouse is.

launchers

Unable to add launcher buttons to more than one widget side. Have a launchers1 and launchers2 so you adding seperate launchers to widget_left, widget_right or widgets_center is functional. Practical
launchers

questions regarding wayfire session

  1. how to configure the monitors?
    resolution.
    primary and secondary monitor.
    extend monitor.

2.screen off timing.
presentation mode.
lockscreen timing.

3.which policykit package do you suggest to use.
currently im using lxqt-policykit-agent.
and have set it to autostart.

add leave widget in wf-panel

add a widget that is able to
leave- gives all options when clicked
poweroff
logout
lockscreen
reboot
hibernate
suspend
and maybe reboot to uefi firmware.
in the right side of wf-panel

Calendar placement

If the panel is on the bottom of the screen, the calendar still opens downward and is thus invisible

building wf-shell gets errors

I try to build wf-shell and get some errors:

~/Documents/code/wayfire_project/wf-shell(master*) » meson build --prefix=$prefix && ninja -C build && ninja -C build install

Directory already configured.

Just run your build command (e.g. ninja) and Meson will regenerate as necessary.
If ninja fails, run "ninja reconfigure" or "meson --reconfigure"
to force Meson to regenerate.

If build failures persist, run "meson setup --wipe" to rebuild from scratch
using the same options as passed when configuring the build.
To change option values, run "meson configure" instead.
ninja: Entering directory `build'
[1/2] Compiling C++ object src/background/wf-background.p/background.cpp.o
FAILED: src/background/wf-background.p/background.cpp.o 
ccache c++ -Isrc/background/wf-background.p -Isrc/background -I../src/background -Isrc/util -I../src/util -Isubprojects/gtk-layer-shell/include -I../subprojects/gtk-layer-shell/include -I/opt/wayfire/include -I/usr/include/gtkmm-3.0 -I/usr/lib/x86_64-linux-gnu/gtkmm-3.0/include -I/usr/include/atkmm-1.6 -I/usr/include/gtk-3.0/unix-print -I/usr/include/gdkmm-3.0 -I/usr/lib/x86_64-linux-gnu/gdkmm-3.0/include -I/usr/include/giomm-2.4 -I/usr/lib/x86_64-linux-gnu/giomm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/lib/x86_64-linux-gnu/pangomm-1.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/x86_64-linux-gnu/glibmm-2.4/include -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/atk-1.0 -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/local/include -I/usr/include/libevdev-1.0/ -I/usr/include/libxml2 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -std=c++17 -g -DHAVE_PULSE=1 -Wno-pedantic -Wno-unused-parameter -Wno-parentheses '-DICONDIR="/opt/wayfire/share/wayfire/icons"' '-DMETADATA_DIR="/opt/wayfire/share/wayfire/metadata/wf-shell"' '-DSYSCONF_DIR="/opt/wayfire/etc"' -pthread -MD -MQ src/background/wf-background.p/background.cpp.o -MF src/background/wf-background.p/background.cpp.o.d -o src/background/wf-background.p/background.cpp.o -c ../src/background/background.cpp
../src/background/background.cpp: In member function ‘void BackgroundDrawingArea::show_image(Glib::RefPtr<Gdk::Pixbuf>, double, double)’:
../src/background/background.cpp:33:35: error: ‘create_surface_from_pixbuf’ is not a member of ‘Gdk::Cairo’
     to_image.source = Gdk::Cairo::create_surface_from_pixbuf(image,
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
../src/background/background.cpp:33:35: note: suggested alternative: ‘set_source_pixbuf’
     to_image.source = Gdk::Cairo::create_surface_from_pixbuf(image,
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
                                   set_source_pixbuf
ninja: build stopped: subcommand failed.

Is there any wrong?

Add option to set menu's icon

Would be nice to have a setting in wf-shell.ini to choose which menu icon you'd like as you're abel to do with the desktop background, right now you can switch the files around and rename them and that works, but if an update is passed your files will be overwritten with the default.

for example

[menu icon]
.# Full path to image or directory of images
iconimage = /usr/share/icons/gnome/256x256/status/trophy-gold.png

Breaking ABI change

Installing on Void, a linking error happens (issue void-linux/void-packages#20618).

$ wf-background
wf-background: symbol lookup error: wf-background: undefined symbol: _ZN12wf_animation6circleE

According to @xtraeme, WayfireWM/wf-config@211a86c caused that.

$ ldd -r `which wf-background`
...
undefined symbol: _ZN12wf_animation6circleE	(/sbin/wf-background)
undefined symbol: _ZN12wf_animation6linearE	(/sbin/wf-background)
undefined symbol: _ZN11wf_duration7runningEv	(/sbin/wf-background)
undefined symbol: _ZN11wf_durationC1ESt10shared_ptrI11wf_option_tESt8functionIFddEE	(/sbin/wf-background)
undefined symbol: _ZN11wf_option_t19rem_updated_handlerEPSt8functionIFvvEE	(/sbin/wf-background)
undefined symbol: _ZN14wayfire_config13reload_configEv	(/sbin/wf-background)
undefined symbol: _ZN11wf_option_t9as_stringB5cxx11Ev	(/sbin/wf-background)
undefined symbol: _ZNK11wf_duration8progressEv	(/sbin/wf-background)
undefined symbol: _ZN22wayfire_config_section10get_optionENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_	(/sbin/wf-background)
undefined symbol: _Z17new_static_optionNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE	(/sbin/wf-background)
undefined symbol: _ZN11wf_option_t19add_updated_handlerEPSt8functionIFvvEE	(/sbin/wf-background)
undefined symbol: _ZN11wf_duration5startEdd	(/sbin/wf-background)
undefined symbol: _ZN14wayfire_config11get_sectionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE	(/sbin/wf-background)
undefined symbol: _ZN11wf_option_t6as_intEv	(/sbin/wf-background)
undefined symbol: _ZN14wayfire_configC1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE	(/sbin/wf-background)

provide a default background

add a background picture in the package
so it will be installed with the
wf-shell.
and as the path will be /usr/.... it wont change with any distro or user
and in the wf-shell.ini config set this background as default.
so that users wont be presented an black screen and assume wf-shell is not working.
it happened with me as panel did not launch and i was presented black screen.

wf-dock crashes when no output present

wf-dock (0.6 via AUR) regularly crashes when the output is removed. Sometimes this brings down the whole shell, punting me back to GDM. This use case occurs when the monitor (a "smart TV") is set to use a different input than the computer, leaving the shell with no outputs. I believe this no-output condition is sufficient to replicate the problem. Thanks

[query] Network plugin - custom launch command

Is it possible to allow for override/ custom launch command when you click on the network?

nm-connection-editor works good as an alternative and wouldn't require gnome control center (which usually comes with a lot of dependencies).

It would be interesting if the commands could be customized or changed for the on_click event

network icon disappears when editing widgets_right

I have network in widgets_right. When editing widgets_right while wf-panel is running, the network icon disappears. This doesn't happen when changing any other things in the configuration. The network icon will also show up again when restarting wf-panel.

panel network: Depends on NetworkManager, which not everyone uses

This might be outside of your scope, but the network widget currently seems to use only data from NetworkManager, which not everyone uses. In my case, a solution like IWD has proven itself to be more than enough to automatically manage connections. I'd still like to be able to verify connection status while using wayfire.

The waybar implementation of such a widget supports connections set up through IWD only, so it's possible to take a look at how they implemented it and translate it to your project.

I'm open to helping with this, as well!

[request] support autohide feature in waybar

I know that this is not place to ask but wf-shell's panel is not upto mark as Waybar's .

I also asked at Waybar's issue but it is being ignored.

I also know that autohide uses wayfire-shell-unstable-v2.xml and not standardized in Wayland.

So, how can autohide be achieved in Waybar ?

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.