aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/config/window.rs
diff options
context:
space:
mode:
authorKirill Chibisov <contact@kchibisov.com>2022-01-03 21:55:22 +0300
committerGitHub <noreply@github.com>2022-01-03 18:55:22 +0000
commitce59fa4165500d8e242ae7a73e3da065e11e461e (patch)
treedfaaec5872d59d4c2b2e4907e3213134bea7125d /alacritty/src/config/window.rs
parente2b5219eb40eaf36d8255cd87c5202bbb8ba0825 (diff)
downloadr-alacritty-ce59fa4165500d8e242ae7a73e3da065e11e461e.tar.gz
r-alacritty-ce59fa4165500d8e242ae7a73e3da065e11e461e.tar.bz2
r-alacritty-ce59fa4165500d8e242ae7a73e3da065e11e461e.zip
Add title/class CLI parameters to create-window
This adds the ability to pass title and class over IPC via the create-window subcommand, so users can run only one instance for windows of different spurposes in the window managers of their choice.
Diffstat (limited to 'alacritty/src/config/window.rs')
-rw-r--r--alacritty/src/config/window.rs30
1 files changed, 21 insertions, 9 deletions
diff --git a/alacritty/src/config/window.rs b/alacritty/src/config/window.rs
index f7a7511c..507a4f2c 100644
--- a/alacritty/src/config/window.rs
+++ b/alacritty/src/config/window.rs
@@ -4,7 +4,7 @@ use std::os::raw::c_ulong;
use glutin::window::Fullscreen;
use log::error;
use serde::de::{self, MapAccess, Visitor};
-use serde::{Deserialize, Deserializer};
+use serde::{Deserialize, Deserializer, Serialize};
use alacritty_config_derive::ConfigDeserialize;
use alacritty_terminal::config::{Percentage, LOG_TARGET_CONFIG};
@@ -39,11 +39,9 @@ pub struct WindowConfig {
/// Use dynamic title.
pub dynamic_title: bool,
- /// Window title.
- pub title: String,
-
- /// Window class.
- pub class: Class,
+ /// Information to identify a particular window.
+ #[config(flatten)]
+ pub identity: Identity,
/// Background opacity from 0.0 to 1.0.
pub opacity: Percentage,
@@ -59,14 +57,13 @@ impl Default for WindowConfig {
fn default() -> Self {
Self {
dynamic_title: true,
- title: DEFAULT_NAME.into(),
position: Default::default(),
decorations: Default::default(),
startup_mode: Default::default(),
embed: Default::default(),
gtk_theme_variant: Default::default(),
dynamic_padding: Default::default(),
- class: Default::default(),
+ identity: Identity::default(),
opacity: Default::default(),
padding: Default::default(),
dimensions: Default::default(),
@@ -109,6 +106,21 @@ impl WindowConfig {
}
}
+#[derive(ConfigDeserialize, Debug, Clone, PartialEq)]
+pub struct Identity {
+ /// Window title.
+ pub title: String,
+
+ /// Window class.
+ pub class: Class,
+}
+
+impl Default for Identity {
+ fn default() -> Self {
+ Self { title: DEFAULT_NAME.into(), class: Default::default() }
+ }
+}
+
#[derive(ConfigDeserialize, Debug, Copy, Clone, PartialEq, Eq)]
pub enum StartupMode {
Windowed,
@@ -153,7 +165,7 @@ pub struct Dimensions {
}
/// Window class hint.
-#[derive(Debug, Clone, PartialEq, Eq)]
+#[derive(Serialize, Debug, Clone, PartialEq, Eq)]
pub struct Class {
pub instance: String,
pub general: String,