cybervirtua / dxp Goto Github PK
View Code? Open in Web Editor NEWPager for non-compositing WMs. View virtual desktops and navigate around them
License: GNU General Public License v3.0
Pager for non-compositing WMs. View virtual desktops and navigate around them
License: GNU General Public License v3.0
errno
on error would be very useful to debug socket communications.xcb_generic_error_t
Memory usage is three times higher than it should be.
Remove redundant copying to fix.
Use xcb to create a window with customizable background and draw screenshot of current desktop there with a border and caption.
_NET_DESKTOP_NAMES
Similar to other pagers
There may be a use case when user needs to move all windows from one workspace to another.
Sounds like it is possible to implement.
This would simplify error handling
Add more customization options to dexpo's location:
Prepend -
to the coordinate to calculate it from the left
The daemon has to
Old tests are obsolete now, so new have to be written.
Please add following cases:
Run sanitizers and profile the binary
in daemon.cpp
:
desktops[current].save_screen ();
// Copying pixmap from desktops into socket pixmaps
socket_desktops[current].pixmap = desktops[current].pixmap;
Here pixmaps are copied to prevent race conditions.
Avoid copying and instead use mutex to prevent race conditions.
Overloaded operator[][]
would be very handy when working with 1d pixmaps
The window has to draw focus on start and receive keyboard events.
<Esc>
to close windowEnter
to open the desktop (execute dummy code for now)Currently cmake builds all shared .cpp
files twice, as there are two executables in CMakeLists.txt.
This should be fixed
Based on my interactions with Linux applications, current GUI UX doesn't feel right.
Here is the list of what I would expect from it. You may disagree with me, so please respond with your expectations.
And add these options to the config file
Currently launching a second daemon process causes the crash of both.
It would be better if the second startup didn't affect the the first.
Codebase is becoming more intertwined and shitty so some action is required.
A major new feature would be a config parser because I don't like recompiling every time I change the config.
It would be more flexible to specify key name in config instead of key code.
Binding keys by their names and not keycodes would really help this
Writing
cmake -B ./build/
cmake --build ./build/
every time is tedious
Store data of a desktop recently returned by get_hover_desktop()
This function may be ran hundreds of times and each time it iterates over vector of desktops to find desktop's x
and y
that probably haven't changed.
Need to research whether xcb_ewmh
will be better for this application
Dexpo havs many places that need debugging output.
Please add verbosity toggle to config and a sleek function to print to file/cerr
Test get_desktops()
by sending sample EWMH atoms as WMs would do.
These atom values can be checked by hand in different WMs and added to tests.
Screenshots look crappy, maybe implementing some filter will fix this
Current setup makes screenshot based on a periodic timer. This can be changed to fit workflows better and be more optimized
Should be possible. dunst has same functionality
My guess is #30 has to be closed first
Need to sketch this look first
If a user has multiple monitors, launch a separate dexpo window for each of those monitors's desktops.
Not sure yet how to configure windows' locations.
Colors in the config do not support alpha channel.
Maybe adding some mask to the graphic context would fix this
unique_ptr<xcb_get_image_reply_t>
and others#define
to constexpr
daemon.cpp
to ewmh.cpp
Also dimensions of xmonad desktops can be changed during runtime, so this has to be handled properly.
Perhaps desktop initialization during runtime is unnecessary and should be done just before the screenshot is made.
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.