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

New features #9

Open
7 of 10 tasks
SimonBrandner opened this issue Oct 14, 2020 · 4 comments
Open
7 of 10 tasks

New features #9

SimonBrandner opened this issue Oct 14, 2020 · 4 comments

Comments

@SimonBrandner
Copy link
Contributor

SimonBrandner commented Oct 14, 2020

I've recently implemented new features to i3-pager and I have ideas for some more. I thought it'd be great to try to get some feedback before trying to implement them. So I am going to describe them here.

All the features I'd like to implement require config, so the easiest way to list them is the way they'd be in the plasmoid config. I've also marked the already implemented ones.

General

  • Show workspace names
  • Filter workspaces by current screen
  • Color the whole workspace if urgent
  • Order workspaces by:
    • Default
    • By index
    • By screen

Screens

  • Set screen order
  • Set screen color

Workspaces

  • Set icons using UI
@duvholt
Copy link
Owner

duvholt commented Oct 17, 2020

Ordering seems like a nice addition 👍

Set screen color

Should the screen color override the default underline color?
I don't have any specific design in mind but maybe it would make sense to introduce a new indicator for screen info?

Set icons using UI

Moving icons away from the workspace name is a good idea as the format I'm using in non-standard and probably looks weird with other i3 tools.
We should also let the user select their own icon font instead of only allowing Font Awesome.
Later on we could probably create some fancy icon selector, but I think it makes sense to start with a simple text input where the user can paste the unicode symbols.

@SimonBrandner
Copy link
Contributor Author

Thanks for feedback

Ordering seems like a nice addition +1

Thanks

it would make sense to introduce a new indicator for screen info?

I absolutely agree. I think otherwise it would be just confusing.

Later on we could probably create some fancy icon selector, but I think it makes sense to start with a simple text input where the user can paste the unicode symbols.

I agree once again

First I'd like to try to implement the screen features (ordering and colouring). It may take me some time as I am quite new to QML.

@SimonBrandner
Copy link
Contributor Author

I implemnted Screen ordering and colouring.

I am going to take a break from this project so if anyone wants to add the features mentioned here, please go ahead!

@SpyrosMourelatos
Copy link
Contributor

SpyrosMourelatos commented Mar 16, 2022

I was trying to implement the feature order workspace by index and I have some notes to submit.
First thing first on my trial I made a new not requested feature that is quite better as it is more flexible. I will name the feature "order workspaces by names" and I will submit a pr to integrate it here.
So my notes:

  1. It is nearly impossible to implement this feature as i3ipc++ doesn't return an index on workspace_t http://drmgc.github.io/docs/api-ref/i3ipc++/latest/d3/d09/structi3ipc_1_1workspace__t.html
    This has been noticed in other contexts also as a missing feature of i3, and it is not this projects problem.
  2. These three lines are very problematic and should change as the name of the member variables are based on a very unsafe and unchecked convention and may be misleading, but I can't propose something better. I understand some compromises should be made...
            workspace.index = splitName[0];
            workspace.name = splitName.size() == 1 ? splitName[0] : splitName[1];
            workspace.icon = splitName.size() == 3 ? splitName[2] : "";
  1. The feature "order by names" is easy to implement (I implemented it but, I should see its interaction with the order by screen feature(what should happen if they are both true?should I forbid combining them from the GUI?)) and also more flexible as one can name the workspaces with numbers like so: (this makes the two features equivalent)
set $ws1 1
set $ws2 2
set $ws3 3

PS thanks for the beautiful pager and the simple readable code 👍
Edit: I decided what to do, the two features "short by screen" and "short by name" can coexist if we prioritize one, I think I will prioritize "order by screen" as it seems more reasonable e.g.:
Let's say we have two workspaces named "2" and "4" in our primary screen and two workspaces named "1" and "3" on our secondary screen then the correct order with both options enabled should be "2","4" (notice that this doesn't happen currently because if the workspace named "4" is instanced before the "2" then the plugin orders them as :"4","2").
Well, that's only if you agree it is not that significant for me.

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

No branches or pull requests

3 participants