Skip to content

Support of custom window controls layout #174

@sempasha

Description

@sempasha

According to the issue pantheon-tweaks/pantheon-tweaks#113 users will be able to configure any window controls layout with Pantheon Tweak. Theme architecture may require some changes when this feature will be implemented.

Draft solution

According to the mockup, each of window's buttons (close ⨯, maximize ⤢ and minimize ⤓) may be placed at one of six positions.

[1 2 3        window title        4 5 6]

There may be three folders close, maximize and minimize - one for each of buttons.
Inside button's folder there may be six stylesheets - one for each of possible button positions.

📁 close
  📜 1.css
  📜 2.css
  📜 3.css
  📜 4.css
  📜 5.css
  📜 6.css
📁 maximize
  📜 1.css
  ...
  📜 6.css
📁 minimize
  📜 1.css
  ...
  📜 6.css

After installation chrome folder will contains userChrome.css with optional close.css, maximize.css and minimize.css stylesheets.

📁 chrome
  📜 userChrome.css
  📜 close.css
  📜 maximize.css
  📜 minimize.css

userChrome.css stylesheet will import buttons stylesheets with CSS @import

@import "close.css";
@import "maximize.css";
@import "minimize.css";

Installation script will copy close.css, maximize.css and minimize.css according detected (or selected) window controls layout, e.g. when default elementary layout selected, script will

# place close button at first position
wget https://github.com/[theme]/close/1.css --output chrome/close.css
# place maximize button at sixth position
wget https://github.com/[theme]/maximize/6.css --output chrome/maximize.css
# remove minimize button, because there is no such button at default elementary layout
rm chrome/minimize.css

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions