wayfirewm / wf-shell Goto Github PK
View Code? Open in Web Editor NEWA GTK3-based panel for wayfire
Home Page: https://wayfire.org/
License: MIT License
A GTK3-based panel for wayfire
Home Page: https://wayfire.org/
License: MIT License
as systemtray is not supported on wayland.
but sni is supposed to be supported.
add the sni widget in wf-panel.
https://freedesktop.org/wiki/Specifications/StatusNotifierItem/
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
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
wf-shell/src/util/wf-autohide-window.cpp
Lines 34 to 38 in f269d23
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.
add categories in menu.
and
it should be able enable and disable categorisation of menu widget with wf-shell.ini
panel.autohide = true
panel.position = top
wf-panel
panel.position = bottom
Expected behaviour: panel is positioned at the bottom, shown when pointer is at the bottom edge.
Actual behaviour: panel is positioned at bottom, shown when pointer is at the top edge.
Needs foreign-toplevel support in wayfire first
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.
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 ?
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
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.
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?
Then it will be consistent with launchers_spacing
. It will also cause the warning about the 42
desktop file not existing to go away.
Can be reproduced by setting an incorrect image or path in the wf-shell.ini file.
This way we can bind such a command to a keybinding and open the menu with it.
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.
Example config
Man/Wiki page describing options
Screenshots
Build instructions
How can I change the position of the panel to bottom?
autohide
launchers
others
The release files for the wf-shell 0.3 tag have attached files wayfire-0.3.tar.xz
and wayfire-0.3.tar.xz.sha256sums
. The contents of the tarball do not seem to include wf-shell.
Some people don't use pulseaudio. Building gvc and the volume widget should be optional.
only when wf-panel is restarted does the menu update.
it should update with app changes.
Depends on swaywm/wlr-protocols#52
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?
Workaround: set PKG_CONFIG_PATH to /usr/local/lib64/pkgconfig/ after installing wf-config. For some reason, it doesn't do this by default.
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)
is there a css variable to set the dock size because on my display the dock is obnoxiously huge
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.
It would be nice to have the ability to set a solid desktop background color, as you can in the wf-panel, with a Hex#, wf-background aside.
Otherwise, we need to manually sync the XML file
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?
When I turn on VPN, the icon in the wf-bar changes from wifi to disconnected.
Maybe we can even show a list of networks to choose from? Would definitely be cool, although that will require some work.
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!
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!
so it is the network widget that is causing crashes
i use connman and cmst
not the network manager.
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
.
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
libc++ forbids using std::random_shuffle(first, last)
in C++17 or later unless _LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE
is defined.
See also https://en.cppreference.com/w/cpp/algorithm/random_shuffle
../src/background/background.cpp:150:14: error: no member named 'random_shuffle' in namespace 'std'
std::random_shuffle(images.begin(), images.end());
~~~~~^
Having scrollbars on window-list
in wf-panel
when a title contains weird unicode characters, window-list get scrollbars, which looks weird. https://soundcloud.com/thatrickaz is an example of a website with such characters in its title.
window-list has right click menu to close apps.
but dock does not have this.
If the panel is on the bottom of the screen, the calendar still opens downward and is thus invisible
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
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.