pop-os / cosmic-workspaces-epoch Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU General Public License v3.0
License: GNU General Public License v3.0
I've noticed a weird slowness and crash, and it seems the issue was I didn't have cosmic-bg running...
Two issues here:
cosmic-bg
to be running to have ~/.local/state/cosmic/com.system76.CosmicBackground
in a correct state. Not necessarily a problem to require cosmic-bg, but it should probably be handled more gracefully?iced_wgpu
and/or wgpu
issue, like #40. But it's a weird thing to see...
gdb
shows it's allocating wgpu buffers to upload image to the atlas. Not sure why caching isn't working, and only isn't working in this case?wgpu
issueIt should probably be shown in none of them.
This will require some kind of change to the screencopy logic in cosmic-comp.
Version: 6e9119a
Because windows are currently laid out horizontally, we end up with a lot of empty space on the screen (and much smaller-than-necessary window previews) when more than a few windows are open.
Additionally, because we display the entire window title for every window, the window titles end up wrapping to the point where they're difficult to read (in addition to the text of each window title overflowing its container):
GNOME COSMIC avoids this by ellipsizing the title (and only displaying it when the mouse cursor hovers over the window, but that seems less important to solving the layout problem):
Ellipsizing may not be entirely necessary if we get more natural preview arrangements, although it might still be useful with enough windows. Web browsers in particular can end up having very long window titles since they usually pass through the title of the active tab, which is set by the website.
It's pretty jarring to see the contents disappear.
Although windows can be dragged to workspaces, the behavior is a little unclear since there is no visual indication of where a window can be dragged, or that the drag will work if the mouse button is release.
The mouse cursor should change when over a workspace (behavior seemed buggy trying to implement this), and possibly other UI changes would make this clearer.
Workspaces Overview helps one to see and navigate all the open windows and workspaces.
Example of workspaces overview with dynamic workspaces setting
From the overview one can:
When more workspaces are in use than fit inside the Workspace Thumbnails container, thumbnails should scale down until they reach minimum size (tentatively 150px width), at which point we should switch to scrolling inside the workspace thumbnails container. When workspaces are vertical and thumbnails reach the minimum size, workspace name and number should be displayed next to it instead of underneath.
Example of workspace overflow behavior, with fixed workspaces. This example makes the assumption that the workspaces would not fit vertically with each thumbnail at their minimum thumbnail width.
Workspaces can be renamed by clicking on the name in the overview. There will be a max-length and when the name is too long for any particular scale (but still under max-length) it will truncate with a โ...โ.
Example of a workspace name after being clicked. Initially the entire workspace name is selected so that the user can quickly set a new name.
Example of a workspace with a name longer than the available width.
Workspaces have numbers in the overview by default. If someone chooses "Displays have separate workspaces", workspaces are numbered separately on each display. When someone uses Super+{1-9} binding to switch to another workspace, one will be able to switch to the corresponding workspace number on the current display. Super+0 moves to the last workspace on the current display.
Example of three workspace thumbnails with fixed workspace setting. The first workspace is active; the second thumbnail is being hovered. The workspaces are numbered sequentially, but the last workspace can be accessed with Super-0. In the case of dynamic workspaces, the empty workspace at the bottom would be accessed with Super-0.
Our latest mockups can be viewed on Figma here.
The workspaces view only shows the default cosmic wallpaper rather than the currently active wallpaper.
Couldn't take the screenshot of it because cosmic-screenshot is not letting me do it. But you can easily reproduce it by changing the wallpaper & opening the workspaces view.
originally filed the issue at session repo but looks like it belongs here.
i can only login at the first time. the 2nd time i login, the desktop is unresponsive. upon checking journalctl logs, i got the following
Mar 25 22:55:24 twin-engines cosmic-session[70150]: [2024-03-25T15:55:24Z ERROR cosmic_workspaces] Failed to load compositor config: [NoConfigDirectory, NoConfigDirectory, NoConfigDirectory, NoConfigDirectory, NoConfigDirectory, NoConfigDirectory, NoConfigDirectory, NoConfigDirectory]
Mar 25 22:55:24 twin-engines cosmic-session[70150]: [2024-03-25T15:55:24Z ERROR cosmic_workspaces] Failed to load workspaces config: [NoConfigDirectory, NoConfigDirectory]
Mar 25 22:55:24 twin-engines /usr/libexec/gdm-wayland-session[70150]: 2024-03-25T15:55:24.821690Z WARN cosmic-workspaces: cosmic_session: [2024-03-25T15:55:24Z ERROR cosmic_workspaces] Failed to load compositor config: [NoConfigDirectory, NoConfigDirectory, NoConfigDirectory, NoConfigDirect>
Mar 25 22:55:24 twin-engines /usr/libexec/gdm-wayland-session[70150]: 2024-03-25T15:55:24.821715Z WARN cosmic-workspaces: cosmic_session: [2024-03-25T15:55:24Z ERROR cosmic_workspaces] Failed to load workspaces config: [NoConfigDirectory, NoConfigDirectory]
Mar 25 22:55:24 twin-engines cosmic-session[70150]: [2024-03-25T15:55:24Z ERROR cosmic_workspaces] Failed to load workspaces config: [NoConfigDirectory, NoConfigDirectory]
Mar 25 22:55:24 twin-engines /usr/libexec/gdm-wayland-session[70150]: 2024-03-25T15:55:24.825830Z WARN cosmic-workspaces: cosmic_session: [2024-03-25T15:55:24Z ERROR cosmic_workspaces] Failed to load workspaces config: [NoConfigDirectory, NoConfigDirectory]
Mar 25 22:55:24 twin-engines cosmic-session[70150]: [2024-03-25T15:55:24Z ERROR cosmic_workspaces] Failed to load compositor config: [NoConfigDirectory, NoConfigDirectory, NoConfigDirectory, NoConfigDirectory, NoConfigDirectory, NoConfigDirectory, NoConfigDirectory, NoConfigDirectory]
Mar 25 22:55:24 twin-engines /usr/libexec/gdm-wayland-session[70150]: 2024-03-25T15:55:24.826098Z WARN cosmic-workspaces: cosmic_session: [2024-03-25T15:55:24Z ERROR cosmic_workspaces] Failed to load compositor config: [NoConfigDirectory, NoConfigDirectory, NoConfigDirectory, NoConfigDirect>
Mar 25 22:55:26 twin-engines systemd[1]: systemd-localed.service: Deactivated successfully.
Should appear the same as moving between workspaces outside the overview.
Grabbing and dragging a window creates a duplicate that's then dragged with the cursor above the duplicate. It should be the same window that's originally clicked with the cursor underneath.
If the window is not dropped on another workspace, it should return to it's previous position. If it is dropped onto another workspace, the remaining windows previews should layout in the newly available space.
Currently, when a window is dragged, the top left corner of the window is always at the cursor. While in the Gnome workspaces view (or dragging a file in nautilus, or a tab in Firefox), the cursor is over the part of the window where it was when the drag started. This is probably more natural to use.
I believe this will require support in iced-sctk to apply a wl_surface::offset
to the drag surface.
I'm not sure this is the correct behavior. Needs discussion.
With a semitransparent panel, the sliding animation from one workspace to another is visible while changing workspaces with the workspace view open.
It's a small detail, but seems a little visually jarring with the rest of the screen not animating like that.
I'm not sure how we want to handle window stacks. But presumably this is not the desired behavior.
The simplest change would be to make cosmic-comp remove windows from the stack when they are moved in cosmic-workspaces. If we want cosmic-workspaces to be aware of stacks, that will require changes to the Wayland protocols we're using.
If super+t is pressed to open a terminal while the workspaces view is shown, the window is shown but has no width.
I haven't looked into exactly what the issue is (probably need to handle changing window dimensions, possibly also in cosmic-comp screencopy code).
thread 'main' panicked at /home/ian/.cargo/git/checkouts/wgpu-53e70f8674b08dd4/20fda69/wgpu/src/backend/wgpu_core.rs:2990:5:
wgpu error: Validation Error
Caused by:
In Device::create_buffer
note: label = `image upload buffer`
Not enough memory left.
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
I guess iced_sctk
is not destroying the drag surface buffers properly? Though looking at it I don't see anything obviously wrong...
After today's changes, on ab4cfd5, I can no longer open Workspaces. When I click Workspaces, my fans spin up, cosmic-comp uses 100% of a CPU core, and my mouse cursor lags. Things go back to normal when I click Workspaces again (to "close" the menu).
I found these logs one of the times I clicked the menu, but I'm not sure if they're relevant:
Mar 01 17:18:06 serw13 cosmic-comp[3632]: Error during screencopy session: Buffer size doesn't match
Mar 01 17:18:06 serw13 cosmic-session[3613]: Failed
Mar 01 17:18:08 serw13 cosmic-comp[3632]: Error during screencopy session: Buffer size doesn't match
This is on a serw13.
When htop
is running and workspaces are opened, Htop reports above 50% CPU usage by the cosmic-workspaces
process, followed by an audible increase is CPU fan speed.
If Htop and Firefox are running when workspaces are opened, the process uses 100% of a CPU thread.
You can see the on-hover from the design file (we won't be implementing delete at this time). Also note the extra space between the previews.
wl_registry
objects are never destroyed, so this leaks resources and is likely an issue.
Not sure exactly where get_registry
is being called. Ideally there should only be one wl_registry
instance, but a few in difference libraries is fine.
Currently a static image path is used for the background of the workspaces view.
Like the screenshot UI in xdg-desktop-portal-cosmic
(which should probably share more code with cosmic-workspaces), this should use cosmic-bg-config to show the correct background.
Or the compositor could provide a way to capture just the background. (Which would also work if someone wanted to use some fancy animated background instead of cosmic-bg, etc.)
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.