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

Extend *FvwmIconMan:Resolution to include specific Desktop / Pager #455

Closed
dwrl opened this issue Mar 6, 2021 · 0 comments · Fixed by #561
Closed

Extend *FvwmIconMan:Resolution to include specific Desktop / Pager #455

dwrl opened this issue Mar 6, 2021 · 0 comments · Fixed by #561
Assignees
Labels
type:breaking Issue is not backwards-compatible and will break configs/build type:new-feature Brand new feature not yet present in fvwm3
Milestone

Comments

@dwrl
Copy link

dwrl commented Mar 6, 2021

Right now I can specify desk, page or screen as resolution, and have the current one shown, or exluded.
I would propose to add an (optional) number to that, upon which not the current element is shown, but the one numbered, e.x.:

*FvwmIconMan: Resolution page [num]

where [num] is the page to be shown. This would allow to have one FvwmIconMan for each desktop or page, thus making it useful as a pager-taskbar hybrid.

This should as far as I know not touch backwards-compatibility.

Can this be achieved through scripting?
Not to my knowledge.

Does this functionality exist elsewhere in other WMs, if so, which?
Yes, tint2 has a taskbar split by desktops:
Description in their docs.
Image example, 2 workspaces, top of the screen.

@dwrl dwrl added the type:new-feature Brand new feature not yet present in fvwm3 label Mar 6, 2021
@ThomasAdam ThomasAdam added this to the 1.0.3 milestone Mar 6, 2021
@ThomasAdam ThomasAdam self-assigned this Mar 6, 2021
@ThomasAdam ThomasAdam removed this from the 1.0.3 milestone Apr 17, 2021
somiaj added a commit that referenced this issue Jun 25, 2021
Expands the FvwmIconMan Resolution typedef to be a strut that can store
desk and page numbers. Then modifies the Resolution configuration to be
a list of filters to limit what windows are shown. There are three base
filters, plus their negation, and an invert filter for a total of 7.

*FvwmIconMan: Resolution [!]desk [n]
*FvwmIconMan: Resolution [!]page [x] [y]
*FvwmIconMan: Resolution [!]screen [S]
*FvwmIconMan: Resolution invert

These filters will either show (or not show) windows on the stated
desk, page, or screen. If no parameters are provided the current
desk, or page are used. Multiple filters can be given to
control which desk, page, and screen are shown. The invert filter
inverts the whole filter. For example.

*FvwmIconMan: Resolution screen p desk 1 !page 0 2

Shows all windows on the primary monitor, on desk 1, and not on page 0 2.

BREAKING: Due to resolutions now being filters, the 'page' resolution
no longer works the same. The page resolution by itself will show all
windows on that page on all desks. To get the old behavior (new default)
you need to use both the desk and page filter, 'desk page'. Similar the
old '!page' resolution is achieved with 'invert desk page'.

Fixes #455
somiaj added a commit that referenced this issue Jun 25, 2021
Expands the FvwmIconMan Resolution typedef to be a strut that can store
desk and page numbers. Then modifies the Resolution configuration to be
a list of filters to limit what windows are shown. There are three base
filters, plus their negation, and an invert filter for a total of 7.

*FvwmIconMan: Resolution [!]desk [n]
*FvwmIconMan: Resolution [!]page [x] [y]
*FvwmIconMan: Resolution [!]screen [S]
*FvwmIconMan: Resolution invert

These filters will either show (or not show) windows on the stated
desk, page, or screen. If no parameters are provided the current
desk, or page are used. Multiple filters can be given to
control which desk, page, and screen are shown. The invert filter
inverts the whole filter. For example.

*FvwmIconMan: Resolution screen p desk 1 !page 0 2

Shows all windows on the primary monitor, on desk 1, and not on page 0 2.

BREAKING: Due to resolutions now being filters, the 'page' resolution
no longer works the same. The page resolution by itself will show all
windows on that page on all desks. To get the old behavior (new default)
you need to use both the desk and page filter, 'desk page'. Similar the
old '!page' resolution is achieved with 'invert desk page'.

Fixes #455
ThomasAdam pushed a commit that referenced this issue Jun 25, 2021
Expands the FvwmIconMan Resolution typedef to be a strut that can store
desk and page numbers. Then modifies the Resolution configuration to be
a list of filters to limit what windows are shown. There are three base
filters, plus their negation, and an invert filter for a total of 7.

*FvwmIconMan: Resolution [!]desk [n]
*FvwmIconMan: Resolution [!]page [x] [y]
*FvwmIconMan: Resolution [!]screen [S]
*FvwmIconMan: Resolution invert

These filters will either show (or not show) windows on the stated
desk, page, or screen. If no parameters are provided the current
desk, or page are used. Multiple filters can be given to
control which desk, page, and screen are shown. The invert filter
inverts the whole filter. For example.

*FvwmIconMan: Resolution screen p desk 1 !page 0 2

Shows all windows on the primary monitor, on desk 1, and not on page 0 2.

BREAKING: Due to resolutions now being filters, the 'page' resolution
no longer works the same. The page resolution by itself will show all
windows on that page on all desks. To get the old behavior (new default)
you need to use both the desk and page filter, 'desk page'. Similar the
old '!page' resolution is achieved with 'invert desk page'.

Fixes #455
@ThomasAdam ThomasAdam added the type:breaking Issue is not backwards-compatible and will break configs/build label Jun 25, 2021
@ThomasAdam ThomasAdam added this to the 1.0.4 milestone Jun 25, 2021
ThomasAdam pushed a commit that referenced this issue Jun 25, 2021
Expands the FvwmIconMan Resolution typedef to be a strut that can store
desk and page numbers. Then modifies the Resolution configuration to be
a list of filters to limit what windows are shown. There are three base
filters, plus their negation, and an invert filter for a total of 7.

*FvwmIconMan: Resolution [!]desk [n]
*FvwmIconMan: Resolution [!]page [x] [y]
*FvwmIconMan: Resolution [!]screen [S]
*FvwmIconMan: Resolution invert

These filters will either show (or not show) windows on the stated
desk, page, or screen. If no parameters are provided the current
desk, or page are used. Multiple filters can be given to
control which desk, page, and screen are shown. The invert filter
inverts the whole filter. For example.

*FvwmIconMan: Resolution screen p desk 1 !page 0 2

Shows all windows on the primary monitor, on desk 1, and not on page 0 2.

BREAKING: Due to resolutions now being filters, the 'page' resolution
no longer works the same. The page resolution by itself will show all
windows on that page on all desks. To get the old behavior (new default)
you need to use both the desk and page filter, 'desk page'. Similar the
old '!page' resolution is achieved with 'invert desk page'.

Fixes #455
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Aug 20, 2021
# Changelog

## [1.0.4](https://github.com/fvwmorg/fvwm3/tree/1.0.4) (2021-07-17)

[Full Changelog](fvwmorg/fvwm3@1.0.3...1.0.4)

**Breaking changes:**

- Deprecate Label for FvwmPager [\#342](fvwmorg/fvwm3#342)
- Extend \*FvwmIconMan:Resolution to include specific Desktop / Pager [\#455](fvwmorg/fvwm3#455)
- Replace libbson with cJSON [\#408](fvwmorg/fvwm3#408)
- FvwmButtons: Shrink windows when honoring Hints. [\#577](fvwmorg/fvwm3#577) ([somiaj](https://github.com/somiaj))
- Replace libbson with cJSON [\#571](fvwmorg/fvwm3#571) ([ThomasAdam](https://github.com/ThomasAdam))
- Add commands to configure the size/position window. [\#558](fvwmorg/fvwm3#558) ([ThomasAdam](https://github.com/ThomasAdam))
- Retire FvwmTile and FvwmCascade wrappers. [\#515](fvwmorg/fvwm3#515) ([somiaj](https://github.com/somiaj))

**Implemented enhancements:**

- Set min. size for windows shown in pager [\#542](fvwmorg/fvwm3#542)
- Moving windows: allow for "warping" to other windows in a given direction [\#540](fvwmorg/fvwm3#540)
- Update monitor struct to know if monintor edges are OUTSIDE\_EDGE or INSIDE\_EDGE [\#523](fvwmorg/fvwm3#523)
- Two issues with the WindowList [\#151](fvwmorg/fvwm3#151)
- Feature Request: Enable using the 'c' unit with the "MinWindowSize" and "MaxWindowSize" styles [\#145](fvwmorg/fvwm3#145)
- Allow per monitor EdgeCommand and EdgeLeaveCommand [\#582](fvwmorg/fvwm3#582) ([somiaj](https://github.com/somiaj))
- expand: add prev\_{desk,pagex,pagey} [\#579](fvwmorg/fvwm3#579) ([ThomasAdam](https://github.com/ThomasAdam))
- Improve translations [\#568](fvwmorg/fvwm3#568) ([somiaj](https://github.com/somiaj))
- Cleanup SetRCDefaults\(\) [\#567](fvwmorg/fvwm3#567) ([somiaj](https://github.com/somiaj))
- Add local configuration file to the default-config. [\#557](fvwmorg/fvwm3#557) ([somiaj](https://github.com/somiaj))
- Add icon for Run Command. [\#552](fvwmorg/fvwm3#552) ([somiaj](https://github.com/somiaj))
- Add command: Move shuffle \[flags\] direction\(s\) [\#550](fvwmorg/fvwm3#550) ([somiaj](https://github.com/somiaj))
- expand: add desk, pagex, pagey variables [\#539](fvwmorg/fvwm3#539) ([ThomasAdam](https://github.com/ThomasAdam))
- Add a screen option to the Scroll command. [\#531](fvwmorg/fvwm3#531) ([ThomasAdam](https://github.com/ThomasAdam))
- RandR: support RandRFunc for screen changes [\#525](fvwmorg/fvwm3#525) ([ThomasAdam](https://github.com/ThomasAdam))

**Fixed bugs:**

- Pager do not show smalls windows in the correct place when snapped to the edge [\#541](fvwmorg/fvwm3#541)
- EwmhBaseStruts glitch when using screen with different resolutions [\#66](fvwmorg/fvwm3#66)
- Fvwm segfaults parsing module configuration [\#575](fvwmorg/fvwm3#575)
- Swallowing FvwmPager inside FvwmButtons breaks resizing FvwmButtons when aspect ratio resizing is used [\#573](fvwmorg/fvwm3#573)
- Move X Y Warp doesn't move pointer to window. [\#551](fvwmorg/fvwm3#551)
- Maximize fullscreen command does not clear \_NET\_WM\_STATE\_FULLSCREEN when exiting fullscreen [\#545](fvwmorg/fvwm3#545)
- EdgeLeaveCommand don't work or need a page change to work [\#543](fvwmorg/fvwm3#543)
- FvwmPager Icon view fix background color. [\#537](fvwmorg/fvwm3#537)
- FvwmPager with bad aspect ratio on dual-head display [\#522](fvwmorg/fvwm3#522)
- AnimatedMove [\#513](fvwmorg/fvwm3#513)
- Spelling errors found by lintian. [\#511](fvwmorg/fvwm3#511)
- SnapAttraction: take into account individual monitors [\#466](fvwmorg/fvwm3#466)
- FvwmPager not taking into account global screen dimensions when configured with DeskTopScale [\#223](fvwmorg/fvwm3#223)
- FvwmPager: moving windows inside FvwmPager is inconsistent [\#198](fvwmorg/fvwm3#198)
- Add force\_icons\_size kludge to .stalonetrayrc. [\#581](fvwmorg/fvwm3#581) ([somiaj](https://github.com/somiaj))
- Fix pass through binding logic. [\#570](fvwmorg/fvwm3#570) ([somiaj](https://github.com/somiaj))
- Make default-config greyed colorset grey. [\#566](fvwmorg/fvwm3#566) ([somiaj](https://github.com/somiaj))
- Cleanup FvwmScript manual page. [\#565](fvwmorg/fvwm3#565) ([somiaj](https://github.com/somiaj))
- GNOME: remove DO\_IGNORE\_GNOME\_HINTS [\#556](fvwmorg/fvwm3#556) ([lgsobalvarro](https://github.com/lgsobalvarro))
- Unmaximize: restore \_NET\_WM\_STATE [\#546](fvwmorg/fvwm3#546) ([ThomasAdam](https://github.com/ThomasAdam))
- Fix compiler warnings in modules/FvwmScript/Instructions.c [\#544](fvwmorg/fvwm3#544) ([pm215](https://github.com/pm215))
- Rework FvwmPager to move windows easier [\#536](fvwmorg/fvwm3#536) ([ThomasAdam](https://github.com/ThomasAdam))
- Move: disable working area when screen given [\#535](fvwmorg/fvwm3#535) ([ThomasAdam](https://github.com/ThomasAdam))
- Make RightPanel use primary monitor dimensions. [\#530](fvwmorg/fvwm3#530) ([somiaj](https://github.com/somiaj))
- Set base struts only for primary monitor in default-config. [\#528](fvwmorg/fvwm3#528) ([somiaj](https://github.com/somiaj))
- Change FvwmPager Logic for initial window size. [\#527](fvwmorg/fvwm3#527) ([somiaj](https://github.com/somiaj))
- EWMH\_GetWorkArea use monitor dimensions. [\#526](fvwmorg/fvwm3#526) ([somiaj](https://github.com/somiaj))
- Make SnapAttraction snap to edges of all monitors. [\#521](fvwmorg/fvwm3#521) ([somiaj](https://github.com/somiaj))
- Update FvwmCommand to allow multiple args. [\#514](fvwmorg/fvwm3#514) ([somiaj](https://github.com/somiaj))

**Merged pull requests:**

- Extend FvwmIconMan Resolution configuration. [\#561](fvwmorg/fvwm3#561) ([somiaj](https://github.com/somiaj))
- Allow Min/Max WindowSize style to use client size [\#560](fvwmorg/fvwm3#560) ([somiaj](https://github.com/somiaj))
- Add more columns to default-config menu ItemFormat. [\#559](fvwmorg/fvwm3#559) ([somiaj](https://github.com/somiaj))
- Fix broken link. [\#529](fvwmorg/fvwm3#529) ([somiaj](https://github.com/somiaj))
- Spelling error fixes. [\#512](fvwmorg/fvwm3#512) ([somiaj](https://github.com/somiaj))
- Working on 1.0.4 [\#509](fvwmorg/fvwm3#509) ([ThomasAdam](https://github.com/ThomasAdam))
- module expand: don't overwrite previous expansion [\#576](fvwmorg/fvwm3#576) ([ThomasAdam](https://github.com/ThomasAdam))
- conditional: fix whitespace/comma parsing [\#572](fvwmorg/fvwm3#572) ([ThomasAdam](https://github.com/ThomasAdam))
- Configure a colorset for XDGMenu options. [\#564](fvwmorg/fvwm3#564) ([somiaj](https://github.com/somiaj))
- Menu: add option to grey entries out [\#563](fvwmorg/fvwm3#563) ([ThomasAdam](https://github.com/ThomasAdam))
- Remove \*FvwmPager: Label configuration option. [\#562](fvwmorg/fvwm3#562) ([somiaj](https://github.com/somiaj))
- move: Warp: move pointer to centre of window [\#553](fvwmorg/fvwm3#553) ([ThomasAdam](https://github.com/ThomasAdam))
- FvwmPager: Improvments with dealing with tiny windows on tiny pagers. [\#548](fvwmorg/fvwm3#548) ([somiaj](https://github.com/somiaj))
- PanFrame improvements [\#547](fvwmorg/fvwm3#547) ([ThomasAdam](https://github.com/ThomasAdam))
- pager: teach Icon view about colorsets [\#538](fvwmorg/fvwm3#538) ([ThomasAdam](https://github.com/ThomasAdam))
- placement: fix mouse positioning [\#533](fvwmorg/fvwm3#533) ([ThomasAdam](https://github.com/ThomasAdam))
- EdgeScroll: a few improvements [\#524](fvwmorg/fvwm3#524) ([ThomasAdam](https://github.com/ThomasAdam))
- Update manual for Echo/EchoFuncDefinition [\#520](fvwmorg/fvwm3#520) ([somiaj](https://github.com/somiaj))
- release: remove dev-docs from release tarball [\#518](fvwmorg/fvwm3#518) ([ThomasAdam](https://github.com/ThomasAdam))
- configure: remove stale references to BUGADDR [\#517](fvwmorg/fvwm3#517) ([ThomasAdam](https://github.com/ThomasAdam))
- Configuration tweaks [\#516](fvwmorg/fvwm3#516) ([ThomasAdam](https://github.com/ThomasAdam))
- build: add CHANGELOG.md to dist [\#510](fvwmorg/fvwm3#510) ([ThomasAdam](https://github.com/ThomasAdam))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:breaking Issue is not backwards-compatible and will break configs/build type:new-feature Brand new feature not yet present in fvwm3
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants