Code Monkey home page Code Monkey logo

cosmic-workspaces-epoch's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cosmic-workspaces-epoch's Issues

Not showing right background on all monitors; unresponsive, runs out of gpu memory with cosmic-bg not running

I've noticed a weird slowness and crash, and it seems the issue was I didn't have cosmic-bg running...

Two issues here:

  • The way backgrounds are handled requires 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?
  • The fact this causes a crash is presumably a 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?
    • buffer being leaked might be wgpu issue

Layout issues with large number of windows & long window titles

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.

screenshot-2024-02-01-20-11-50

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):

screenshot-2024-02-01-20-28-01

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):

overview-screenshot

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.

Provide visual indicator when dragged window is over a drag target

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 Designs

Workspaces Overview helps one to see and navigate all the open windows and workspaces.

Dynamic - Initial Size
Example of workspaces overview with dynamic workspaces setting

From the overview one can:

  • Close currently open windows.
  • Re-arrange the order of workspaces by dragging workspace thumbnails (previews).
  • Delete workspaces except for the last remaining workspace. When one deletes a workspace with windows open, windows move to the neighboring workspace - previous workspace in most of the cases (one workspace up in the default configuration), next one if someone removes first workspace.
  • Move window previews inside workspace thumbnails to other workspaces by dragging them.
  • Name workspaces when this option is toggled on (default).
  • See workspace numbers when this option is toggled on (default).
  • Add new workspaces when workspaces configuration is set to "Fixed number of workspaces".

Workspace Thumbnails Behavior

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.

Numbered - Several Workspaces
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.

Naming Workspaces

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 โ€œ...โ€.

edit-workspace-name-COSMIC
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.

long-workspace-name-COSMIC
Example of a workspace with a name longer than the available width.

Numbering Workspaces

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.

COSMIC workspace thumbnails

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.

Mockups

Our latest mockups can be viewed on Figma here.

Currently active wallpaper is not shown when viewing the workspaces

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.

computer hangs (unresponsive) after login

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.

Copy of dragged window is created in 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.

screenshot-2024-04-09-01-50-56

Offset drag indicator based on where the mouse is when the drag is started

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.

Inhibit cosmic-comp animation when changing workspace

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.

Repeated drag-and-drop causes out-of-memory error in wgpu

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...

Workspaces menu won't open

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.

Workspaces mega issue list

  • Workspaces currently runs on the dGPU, when it probably should run on the iGPU like applets and other shell components
  • Missing workspace overview touchpad gesture (re: cosmic-comp)
  • missing workspace overview animations
  • long names and multiple windows in a workspace cause workspace previews to become skinny and tall
  • currently no scrolling between workspaces in the overview (GNOME and GNOME COSMIC has this iirc)

High CPU usage

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.

Sync background with cosmic-bg

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.)

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.