Merge pull request #2468 from khaneliman/persistent-rename

deprecate persistent_workspaces in favor of persistent-workspaces
This commit is contained in:
Alexis Rouillard 2023-09-11 09:22:07 +02:00 committed by GitHub
commit 196b400abf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 34 additions and 9 deletions

View File

@ -77,7 +77,7 @@ Additional to workspace name matching, the following *format-icons* can be set.
"active": "", "active": "",
"default": "" "default": ""
}, },
"persistent_workspaces": { "persistent-workspaces": {
"*": 5, // 5 workspaces by default on every monitor "*": 5, // 5 workspaces by default on every monitor
"HDMI-A-1": 3 // but only three on HDMI-A-1 "HDMI-A-1": 3 // but only three on HDMI-A-1
} }
@ -96,7 +96,7 @@ Additional to workspace name matching, the following *format-icons* can be set.
"active": "", "active": "",
"default": "" "default": ""
}, },
"persistent_workspaces": { "persistent-workspaces": {
"*": [ 2,3,4,5 ], // 2-5 on every monitor "*": [ 2,3,4,5 ], // 2-5 on every monitor
"HDMI-A-1": [ 1 ] // but only workspace 1 on HDMI-A-1 "HDMI-A-1": [ 1 ] // but only workspace 1 on HDMI-A-1
} }

View File

@ -60,7 +60,7 @@ Addressed by *sway/workspaces*
default: false ++ default: false ++
If set to true. Only focused workspaces will be shown. If set to true. Only focused workspaces will be shown.
*persistent_workspaces*: ++ *persistent-workspaces*: ++
typeof: json (see below) ++ typeof: json (see below) ++
default: empty ++ default: empty ++
Lists workspaces that should always be shown, even when non existent Lists workspaces that should always be shown, even when non existent
@ -112,7 +112,7 @@ an empty list denoting all outputs.
``` ```
"sway/workspaces": { "sway/workspaces": {
"persistent_workspaces": { "persistent-workspaces": {
"3": [], // Always show a workspace with name '3', on all outputs if it does not exists "3": [], // Always show a workspace with name '3', on all outputs if it does not exists
"4": ["eDP-1"], // Always show a workspace with name '4', on output 'eDP-1' if it does not exists "4": ["eDP-1"], // Always show a workspace with name '4', on output 'eDP-1' if it does not exists
"5": ["eDP-1", "DP-2"] // Always show a workspace with name '5', on outputs 'eDP-1' and 'DP-2' if it does not exists "5": ["eDP-1", "DP-2"] // Always show a workspace with name '5', on outputs 'eDP-1' and 'DP-2' if it does not exists

View File

@ -257,7 +257,14 @@ void Workspaces::remove_workspace(std::string name) {
void Workspaces::fill_persistent_workspaces() { void Workspaces::fill_persistent_workspaces() {
if (config_["persistent_workspaces"].isObject()) { if (config_["persistent_workspaces"].isObject()) {
const Json::Value persistent_workspaces = config_["persistent_workspaces"]; spdlog::warn(
"persistent_workspaces is deprecated. Please change config to use persistent-workspaces.");
}
if (config_["persistent-workspaces"].isObject() || config_["persistent_workspaces"].isObject()) {
const Json::Value persistent_workspaces = config_["persistent-workspaces"].isObject()
? config_["persistent-workspaces"]
: config_["persistent_workspaces"];
const std::vector<std::string> keys = persistent_workspaces.getMemberNames(); const std::vector<std::string> keys = persistent_workspaces.getMemberNames();
for (const std::string &key : keys) { for (const std::string &key : keys) {

View File

@ -79,9 +79,18 @@ void Workspaces::onCmd(const struct Ipc::ipc_response &res) {
: true; : true;
}); });
// adding persistent workspaces (as per the config file)
if (config_["persistent_workspaces"].isObject()) { if (config_["persistent_workspaces"].isObject()) {
const Json::Value &p_workspaces = config_["persistent_workspaces"]; spdlog::warn(
"persistent_workspaces is deprecated. Please change config to use "
"persistent-workspaces.");
}
// adding persistent workspaces (as per the config file)
if (config_["persistent-workspaces"].isObject() ||
config_["persistent_workspaces"].isObject()) {
const Json::Value &p_workspaces = config_["persistent-workspaces"].isObject()
? config_["persistent-workspaces"]
: config_["persistent_workspaces"];
const std::vector<std::string> p_workspaces_names = p_workspaces.getMemberNames(); const std::vector<std::string> p_workspaces_names = p_workspaces.getMemberNames();
for (const std::string &p_w_name : p_workspaces_names) { for (const std::string &p_w_name : p_workspaces_names) {

View File

@ -209,8 +209,17 @@ WorkspaceGroup::WorkspaceGroup(const Bar &bar, Gtk::Box &box, const Json::Value
} }
auto WorkspaceGroup::fill_persistent_workspaces() -> void { auto WorkspaceGroup::fill_persistent_workspaces() -> void {
if (config_["persistent_workspaces"].isObject() && !workspace_manager_.all_outputs()) { if (config_["persistent_workspaces"].isObject()) {
const Json::Value &p_workspaces = config_["persistent_workspaces"]; spdlog::warn(
"persistent_workspaces is deprecated. Please change config to use persistent-workspaces.");
}
if ((config_["persistent-workspaces"].isObject() ||
config_["persistent_workspaces"].isObject()) &&
!workspace_manager_.all_outputs()) {
const Json::Value &p_workspaces = config_["persistent-workspaces"].isObject()
? config_["persistent-workspaces"]
: config_["persistent_workspaces"];
const std::vector<std::string> p_workspaces_names = p_workspaces.getMemberNames(); const std::vector<std::string> p_workspaces_names = p_workspaces.getMemberNames();
for (const std::string &p_w_name : p_workspaces_names) { for (const std::string &p_w_name : p_workspaces_names) {