Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Islands #61

Closed
6 tasks done
IanTrudel opened this issue Mar 9, 2020 · 23 comments · Fixed by #66
Closed
6 tasks done

Islands #61

IanTrudel opened this issue Mar 9, 2020 · 23 comments · Fixed by #66

Comments

@IanTrudel
Copy link
Collaborator

IanTrudel commented Mar 9, 2020

  • Create / ungroup / resize an island
  • Save/restore an island
  • Delete an island and all its windows
  • Move an island and all its windows
  • UI to change background of an island
  • Make zoom out/in island aware

As a follow up on the concept of islands, we should be documenting the expected behaviour and workflow.

  • An island consist of a grouping of windows.
  • Groupings are determined by either the WM or user-defined :
    • The WM automatically group windows that share a neighbourhood.
    • A user-defined group is created by selecting windows and group them together (WINKEY+G).
  • Islands are somewhat the equivalent of workspaces in other WMs.
  • Shortcuts to move from one island to another (previous and next island, WINKEY-P and WINKEY-N).
  • Tiling is applied on individual island but it should be possible to tile islands as well. Tiling again #48
  • Islands have island decorations:
    • Move, settings and save/restore.
    • Save/restore will save/restore all the content inside an island, e.g send save/restore requests to windows.

Also interesting :

  • The ability to stick icons, images, videos, audio, notes, etc. on a given island.
@redhog
Copy link
Owner

redhog commented Mar 9, 2020

+1

Hm, so... an image/icon/video is just an open image/video viewing app, or a ghost of such an app that shows a screenshot of it? Maybe this could be generalised/abstracted a bit though?

@IanTrudel
Copy link
Collaborator Author

It should be a viewing/audio app. If someone wants more features, they should use an actual app, e.g. mpv, VLC, etc.

Someone could just stick a few photos and notes on their Island. Family photos on a casual island and notes, icons, audio recording on a work island.

I'm growing to like Rofi but it has a huge shortcoming: you have to know what you need and type it.... Or go through an endless, category-less, list of applications.

Now the categories on Windows and most WMs are OK but not great. Not for a workflow like yours or mine anyway. So perhaps we could stick our most needed icons on a given island. You have an island for browsing web but you could need an island for graphics design. Each has different icons.

@IanTrudel
Copy link
Collaborator Author

It would be a tad asking too much for writing a better Rofi and an alternative to the "Start Menu" syndrome.

I asked myself what InfiniteGlass has now or within reach that could be used for an alternative? Displaying objects on the screen. So Rofi plus island icons, aka desktop icons, seems like a reasonable choice here.

Perhaps you have another take on this? Sticking other things than icons is just a bonus. The main idea is about easy accessibility.

Also, another idea on the spot, we could use information in .desktop files to create specialized islands. Say, you open a Graphic Design island and all graphic program icons are automatically stuck on the island.

@IanTrudel
Copy link
Collaborator Author

Say, you open a Graphic Design island and all graphic program icons are automatically stuck on the island.

Oh! Perhaps it's also possible to rearrange the list in Rofi. Most used programs across InfiniteGlass + specialization are shown on top.

@redhog
Copy link
Owner

redhog commented Mar 10, 2020

Oh... I have a take on the start-graphics-design-island: Two new actions on islands:

  • Save this island as a template
    • Stores all saved app states and ghosts in the island under a name
  • Make new island from named template in the current view
    • Makes a copy of all app states and ghosts saved under some template name
    • Put all the ghosts created to in the current island (retaining their relative placements and sizes)

@IanTrudel
Copy link
Collaborator Author

Templates for islands? Sure, why not! Perhaps templates could be shared? Say, I make a programming island template and send it to you, then you install the template. Any programs not installed could be hidden until they are available.

How useful would be a template though? We can already save applications state and my initial suggestion included saving/restoring an island. I imagine that once you have already a graphic island, you shouldn't be needed a second island for this.

@redhog
Copy link
Owner

redhog commented Mar 10, 2020

Well, imagine you have a programming island with a bunch of terminals, your IDE and say a browser. You'd still want to have a copy of that for each programming project, with just what directory is open in the IDE and terminal, and what bookmarks/tabs your browser has differing.

Since session states and ghosts can already be exported to JSON and imported back in, sharing them wouldn't be very hard, it's just about selecting only the apps and windows of one island for export. Templates could even always be saved that way, as files rather than as rows in the database. e.g. ~/.config/glass/islands/MyProgrammingIslandName.json

Saving/restoring islands I interpreted as pausing all apps inside and island, and restoring all apps respectively, all at once. Was that not what you meant?

@redhog
Copy link
Owner

redhog commented Mar 10, 2020

Hm, what if islands could have background images and some other styling? Instead of people sharing whole desktop setups/configs, they could share an island that looks a certain way! I think we just found a new killer app for https://www.reddit.com/r/unixporn :P

@IanTrudel
Copy link
Collaborator Author

IanTrudel commented Mar 10, 2020

Saving/restoring islands I interpreted as pausing all apps inside and island, and restoring all apps respectively, all at once. Was that not what you meant?

You're correct. That's what I meant. Thank you for clarifying my own mind. Haha

RE: styling

Saving, restoring and templates for styling and island preferences would be cool.

RE: Island templates

Seems like it's within reach then!

I think we just found a new killer app for https://www.reddit.com/r/unixporn :P

I'm already sold on InfiniteGlass. ;)

@redhog
Copy link
Owner

redhog commented Mar 11, 2020

Btw, @backorder , I'm using https://github.com/redhog/InfiniteGlass/projects/1 to plan what I'll be working on in the near future. You can use it as a voting feature: Add tickets to the To-do-columnt there to make them high priority. If you're working on something (as opposed to just discussing it w me), move it to "In progress" and assign yourself :)

@IanTrudel
Copy link
Collaborator Author

Ok, boss! :)

@redhog redhog linked a pull request Mar 12, 2020 that will close this issue
@redhog
Copy link
Owner

redhog commented Mar 12, 2020

ping @backorder

I'll probably have plenty of time for InfiniteGlass the next few weeks - Norway just basically shut down the entire country and we're staying home not opening the door... So all the time in the world to hack :S

Canada doesn't seem to be there yet, but stay safe!

@IanTrudel
Copy link
Collaborator Author

Then a lot of good will come out of this!

Some people are worried here but overall still alright. I will be working from home the next week or so. We will see how it goes. By the way, for some time now I have been following your commits to understand better how things works in InfiniteGlass. Still clueless about a lot of things though.

A few days ago I forgot InfiniteGlass running for a night. It's stable and absolutely 0 error in the logs. Not like Gnome dumping logs in syslog like there is no tomorrow.

Besides, if you need some more concept UI/UX, let me know. That I can do for you. :)))

@redhog
Copy link
Owner

redhog commented Mar 13, 2020

That's good to know, but not surprising: InfiniteGlass is entirely event driven - if there are no input events, it does absolutely nothing, just sits there in a select loop, waking up to do a quick check that there are no animations to run every now and then (there won't be any if there haven't been any events for a while)...

A better test would be to leave some animated app, like glxgears or firefox playing a movie or something.

@IanTrudel
Copy link
Collaborator Author

A better test would be to leave some animated app, like glxgears or firefox playing a movie or something.

Will do and report, sir!

@IanTrudel
Copy link
Collaborator Author

Ping @redhog ! How is that free time to work on InfiniteGlass going? :))))

@redhog
Copy link
Owner

redhog commented Mar 16, 2020

Well... I ended up using it to hang out over skype with a friend all weekend instead :P
Really really needed some social interaction... How are you guys holding up? All I know is that Trudeau is in quarantine...

@redhog
Copy link
Owner

redhog commented Mar 16, 2020

Will get back to hacking soon today :)

@redhog
Copy link
Owner

redhog commented Mar 16, 2020

You can check out the islands branch btw. Keyboard combo is WIN+I to make a new island. But they so far have very little actual functionality...

@IanTrudel
Copy link
Collaborator Author

Excellent. Alex and I have been looking into CRIU and Xpra.

@redhog
Copy link
Owner

redhog commented Mar 16, 2020

Cool! If you give me Alex' github handle I could add them to the project too?

@IanTrudel
Copy link
Collaborator Author

Cool! If you give me Alex' github handle I could add them to the project too?

From #67

I have introduced InfiniteGlass to @alexkh and he tried to play some games on it. He reported a very low FPS and screen tearing.

He wrote his own WM a few years ago. https://github.com/alexkh/ywm

@redhog
Copy link
Owner

redhog commented Mar 19, 2020

Moved tiling to #48
Move cloning to #69

@redhog redhog closed this as completed Mar 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants