mirror of
https://github.com/aristocratos/btop.git
synced 2024-06-29 11:30:44 +12:00
Merge b980e5a2f7
into 2c3ac4855d
This commit is contained in:
commit
398a7a5506
|
@ -268,6 +268,7 @@ namespace Config {
|
||||||
{"lowcolor", false},
|
{"lowcolor", false},
|
||||||
{"show_detailed", false},
|
{"show_detailed", false},
|
||||||
{"proc_filtering", false},
|
{"proc_filtering", false},
|
||||||
|
{"is_maximized", false},
|
||||||
};
|
};
|
||||||
unordered_flat_map<std::string_view, bool> boolsTmp;
|
unordered_flat_map<std::string_view, bool> boolsTmp;
|
||||||
|
|
||||||
|
@ -521,6 +522,20 @@ namespace Config {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void restore(const string& boxes) {
|
||||||
|
current_boxes.clear();
|
||||||
|
current_boxes = ssplit(boxes);
|
||||||
|
Config::set("shown_boxes", boxes);
|
||||||
|
Config::set("is_maximized", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void maximize_box(const string& box) {
|
||||||
|
current_boxes.clear();
|
||||||
|
current_boxes.push_back(box);
|
||||||
|
Config::set("shown_boxes", box);
|
||||||
|
Config::set("is_maximized", true);
|
||||||
|
}
|
||||||
|
|
||||||
void toggle_box(const string& box) {
|
void toggle_box(const string& box) {
|
||||||
auto old_boxes = current_boxes;
|
auto old_boxes = current_boxes;
|
||||||
auto box_pos = rng::find(current_boxes, box);
|
auto box_pos = rng::find(current_boxes, box);
|
||||||
|
@ -543,6 +558,7 @@ namespace Config {
|
||||||
}
|
}
|
||||||
|
|
||||||
Config::set("shown_boxes", new_boxes);
|
Config::set("shown_boxes", new_boxes);
|
||||||
|
ssplit(new_boxes).size() == 1 ? Config::set("is_maximized", true) : Config::set("is_maximized", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void load(const fs::path& conf_file, vector<string>& load_warnings) {
|
void load(const fs::path& conf_file, vector<string>& load_warnings) {
|
||||||
|
|
|
@ -57,6 +57,12 @@ namespace Config {
|
||||||
//* Toggle box and update config string shown_boxes
|
//* Toggle box and update config string shown_boxes
|
||||||
void toggle_box(const string& box);
|
void toggle_box(const string& box);
|
||||||
|
|
||||||
|
//* Maximize box and update config string shown_boxes
|
||||||
|
void maximize_box(const string& box);
|
||||||
|
|
||||||
|
//* Restore boxes and update config string shown_boxes
|
||||||
|
void restore(const string& boxes);
|
||||||
|
|
||||||
//* Parse and setup config value presets
|
//* Parse and setup config value presets
|
||||||
bool presetsValid(const string& presets);
|
bool presetsValid(const string& presets);
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@ tab-size = 4
|
||||||
#include <thread>
|
#include <thread>
|
||||||
#include <mutex>
|
#include <mutex>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
|
||||||
#include "btop_input.hpp"
|
#include "btop_input.hpp"
|
||||||
#include "btop_tools.hpp"
|
#include "btop_tools.hpp"
|
||||||
|
@ -260,11 +261,29 @@ namespace Input {
|
||||||
Menu::show(Menu::Menus::Options);
|
Menu::show(Menu::Menus::Options);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (is_in(key, "1", "2", "3", "4")) {
|
else if (is_in(key, "1", "2", "3", "4", "!", "@", "#", "$")) {
|
||||||
atomic_wait(Runner::active);
|
atomic_wait(Runner::active);
|
||||||
Config::current_preset = -1;
|
Config::current_preset = -1;
|
||||||
static const array<string, 4> boxes = {"cpu", "mem", "net", "proc"};
|
static const array<string, 4> boxes = {"cpu", "mem", "net", "proc"};
|
||||||
|
if (std::isdigit(key[0]))
|
||||||
Config::toggle_box(boxes.at(std::stoi(key) - 1));
|
Config::toggle_box(boxes.at(std::stoi(key) - 1));
|
||||||
|
else {
|
||||||
|
static const unordered_flat_map<string, string> binding = {
|
||||||
|
{"!", boxes.at(0)},
|
||||||
|
{"@", boxes.at(1)},
|
||||||
|
{"#", boxes.at(2)},
|
||||||
|
{"$", boxes.at(3)},
|
||||||
|
};
|
||||||
|
if (Config::getB("is_maximized") && Config::getS("shown_boxes") == binding.at(key)) {
|
||||||
|
string str_boxes;
|
||||||
|
for (const auto& b : boxes) str_boxes += b + ' ';
|
||||||
|
str_boxes.pop_back();
|
||||||
|
|
||||||
|
Config::restore(str_boxes);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Config::maximize_box(binding.at(key));
|
||||||
|
}
|
||||||
Draw::calcSizes();
|
Draw::calcSizes();
|
||||||
Runner::run("all", false, true);
|
Runner::run("all", false, true);
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in a new issue