add option to blur the whole background
This commit is contained in:
parent
7d0cc569b7
commit
c2efd66d6c
10 changed files with 142 additions and 7 deletions
|
@ -355,7 +355,7 @@ fn main() -> Result<(), String> {
|
||||||
|
|
||||||
// will exit if there is a daemon running already, so it's fine to call this everytime.
|
// will exit if there is a daemon running already, so it's fine to call this everytime.
|
||||||
if let Err(e) = spawn_fork("ydotoold", None) {
|
if let Err(e) = spawn_fork("ydotoold", None) {
|
||||||
log::error!("Failed to start ydotool daemon: {e}");
|
log::error!("Failed to start ydotool daemon: {e}");
|
||||||
}
|
}
|
||||||
|
|
||||||
// todo eventually use a propper rust client for this, for now rbw is good enough
|
// todo eventually use a propper rust client for this, for now rbw is good enough
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
* {
|
* {
|
||||||
font-family: DejaVu;
|
font-family: DejaVu;
|
||||||
transition: opacity 500ms ease;
|
transition: opacity 500ms ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
#background {
|
||||||
|
background-color: rgba(33, 33, 33, 0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#window {
|
#window {
|
||||||
|
|
|
@ -2,6 +2,10 @@
|
||||||
font-family: DejaVu;
|
font-family: DejaVu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#background {
|
||||||
|
background-color: rgba(33, 33, 33, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
#window {
|
#window {
|
||||||
all: unset;
|
all: unset;
|
||||||
background-color: rgba(33, 33, 33, 0.8); /* Matches #212121BB */
|
background-color: rgba(33, 33, 33, 0.8); /* Matches #212121BB */
|
||||||
|
|
|
@ -6,5 +6,5 @@ content_halign="Center"
|
||||||
height="70%"
|
height="70%"
|
||||||
width="60%"
|
width="60%"
|
||||||
valign="Start"
|
valign="Start"
|
||||||
#line_wrap="Word"
|
blurred_background=true
|
||||||
line_max_chars=32
|
line_max_chars=32
|
||||||
|
|
|
@ -2,6 +2,10 @@
|
||||||
font-family: DejaVu;
|
font-family: DejaVu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#background {
|
||||||
|
background-color: rgba(33, 33, 33, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
#window {
|
#window {
|
||||||
all: unset;
|
all: unset;
|
||||||
background-color: rgba(33, 33, 33, 0.8); /* Matches #212121BB */
|
background-color: rgba(33, 33, 33, 0.8); /* Matches #212121BB */
|
||||||
|
|
8
styles/math/config.toml
Normal file
8
styles/math/config.toml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
image_size=28
|
||||||
|
allow_images=false
|
||||||
|
term="kitty -e"
|
||||||
|
insensitive=true
|
||||||
|
key_detection_type="Code"
|
||||||
|
blurred_background=false
|
||||||
|
location=["Top"]
|
||||||
|
lines=3
|
86
styles/math/style.css
Normal file
86
styles/math/style.css
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
* {
|
||||||
|
font-family: DejaVu;
|
||||||
|
transition: opacity 500ms ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
#background {
|
||||||
|
background-color: rgba(33, 33, 33, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
all: unset;
|
||||||
|
background-color: rgba(33, 33, 33, 0.8); /* Matches #212121BB */
|
||||||
|
border-radius: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window #outer-box {
|
||||||
|
/* The name of the search bar */
|
||||||
|
/* The name of the scrolled window containing all of the entries */
|
||||||
|
border: 2px solid rgba(63, 81, 181, 1);
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window #outer-box #input {
|
||||||
|
background-color: rgba(32, 32, 32, 0.6);
|
||||||
|
color: #f2f2f2;
|
||||||
|
border-bottom: 2px solid rgba(214, 174, 0, 1);
|
||||||
|
padding: 0.8rem 1rem;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window #outer-box #input:focus, #window #outer-box #input:focus-visible, #window #outer-box #input:active {
|
||||||
|
all: unset;
|
||||||
|
background-color: rgba(32, 32, 32, 0.6);
|
||||||
|
color: #f2f2f2;
|
||||||
|
border-bottom: 2px solid rgba(214, 174, 2, 1);
|
||||||
|
padding: 1.2rem;
|
||||||
|
padding-left: 1rem;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window #outer-box #scroll {
|
||||||
|
border-top: 2px solid rgba(214, 174, 0, 1);
|
||||||
|
}
|
||||||
|
#window #outer-box #scroll #inner-box {
|
||||||
|
/* The name of all entries */
|
||||||
|
/* The name of all boxes shown when expanding */
|
||||||
|
/* entries with multiple actions */
|
||||||
|
}
|
||||||
|
#window #outer-box #scroll #inner-box #entry {
|
||||||
|
color: #fff;
|
||||||
|
background-color: rgba(32, 32, 32, 0.1);
|
||||||
|
padding: 0.6rem 1rem;
|
||||||
|
/* The name of all images in entries displayed in image mode */
|
||||||
|
/* The name of all the text in entries */
|
||||||
|
}
|
||||||
|
#window #outer-box #scroll #inner-box #entry #img {
|
||||||
|
margin-right: 0.5rem;
|
||||||
|
}
|
||||||
|
#window #outer-box #scroll #inner-box #entry:selected {
|
||||||
|
color: #fff;
|
||||||
|
background-color: rgba(255, 255, 255, 0.1);
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#row:hover {
|
||||||
|
background-color: rgba(255, 255, 255, 0);
|
||||||
|
outline: inherit;
|
||||||
|
outline-color: inherit;
|
||||||
|
}
|
||||||
|
#window #outer-box #scroll #inner-box #entry:hover {
|
||||||
|
background-color: rgba(255, 255, 255, 0.1);
|
||||||
|
outline: inherit;
|
||||||
|
outline-color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-key-label-box {
|
||||||
|
margin-top: 0.25em;
|
||||||
|
margin-bottom: 0.25em;
|
||||||
|
border-right: 1px solid rgba(214, 174, 0, 1);
|
||||||
|
border-left: 1px solid rgba(214, 174, 0, 1);
|
||||||
|
padding-left: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-key-hint-text {
|
||||||
|
margin-left: 0.75em;
|
||||||
|
}
|
|
@ -2,6 +2,10 @@
|
||||||
font-family: DejaVu;
|
font-family: DejaVu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#background {
|
||||||
|
background-color: rgba(33, 33, 33, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
#window {
|
#window {
|
||||||
all: unset;
|
all: unset;
|
||||||
background-color: rgba(33, 33, 33, 0.8); /* Matches #212121BB */
|
background-color: rgba(33, 33, 33, 0.8); /* Matches #212121BB */
|
||||||
|
|
|
@ -421,6 +421,11 @@ pub struct Config {
|
||||||
/// Defaults to `<https://duckduckgo.com/?q=>`
|
/// Defaults to `<https://duckduckgo.com/?q=>`
|
||||||
#[clap(long = "search-query")]
|
#[clap(long = "search-query")]
|
||||||
search_query: Option<String>,
|
search_query: Option<String>,
|
||||||
|
|
||||||
|
/// Blur the background of the screen
|
||||||
|
/// can be style via `background`
|
||||||
|
#[clap(long = "blurred-background")]
|
||||||
|
blurred_background: Option<bool>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Config {
|
impl Config {
|
||||||
|
@ -663,6 +668,11 @@ impl Config {
|
||||||
.clone()
|
.clone()
|
||||||
.unwrap_or_else(|| "https://duckduckgo.com/?q=".to_owned())
|
.unwrap_or_else(|| "https://duckduckgo.com/?q=".to_owned())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[must_use]
|
||||||
|
pub fn blurred_background(&self) -> bool {
|
||||||
|
self.blurred_background.unwrap_or(false)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn default_false() -> bool {
|
fn default_false() -> bool {
|
||||||
|
|
|
@ -680,8 +680,6 @@ fn build_ui<T, P>(
|
||||||
|
|
||||||
log::debug!("keyboard ready after {:?}", start.elapsed());
|
log::debug!("keyboard ready after {:?}", start.elapsed());
|
||||||
|
|
||||||
ui_elements.window.set_widget_name("window");
|
|
||||||
|
|
||||||
if !config.normal_window() {
|
if !config.normal_window() {
|
||||||
// Initialize the window as a layer
|
// Initialize the window as a layer
|
||||||
ui_elements.window.init_layer_shell();
|
ui_elements.window.init_layer_shell();
|
||||||
|
@ -689,9 +687,11 @@ fn build_ui<T, P>(
|
||||||
ui_elements
|
ui_elements
|
||||||
.window
|
.window
|
||||||
.set_keyboard_mode(KeyboardMode::Exclusive);
|
.set_keyboard_mode(KeyboardMode::Exclusive);
|
||||||
ui_elements.window.set_namespace(Some("worf"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ui_elements.window.set_widget_name("window");
|
||||||
|
ui_elements.window.set_namespace(Some("worf"));
|
||||||
|
|
||||||
if let Some(location) = config.location() {
|
if let Some(location) = config.location() {
|
||||||
for anchor in location {
|
for anchor in location {
|
||||||
ui_elements.window.set_anchor(anchor.into(), true);
|
ui_elements.window.set_anchor(anchor.into(), true);
|
||||||
|
@ -742,6 +742,21 @@ fn build_ui<T, P>(
|
||||||
|
|
||||||
let window_start = Instant::now();
|
let window_start = Instant::now();
|
||||||
ui_elements.window.present();
|
ui_elements.window.present();
|
||||||
|
if config.blurred_background() {
|
||||||
|
let background = ApplicationWindow::builder()
|
||||||
|
.decorated(false)
|
||||||
|
.resizable(false)
|
||||||
|
.fullscreened(true)
|
||||||
|
// arbitrary huge window so it fills the whole screen
|
||||||
|
.default_width(100_000)
|
||||||
|
.default_height(100_000)
|
||||||
|
.build();
|
||||||
|
background.set_widget_name("background");
|
||||||
|
background.set_namespace(Some("worf"));
|
||||||
|
|
||||||
|
background.present();
|
||||||
|
}
|
||||||
|
|
||||||
log::debug!("window show took {:?}", window_start.elapsed());
|
log::debug!("window show took {:?}", window_start.elapsed());
|
||||||
|
|
||||||
log::debug!("Building UI took {:?}", start.elapsed(),);
|
log::debug!("Building UI took {:?}", start.elapsed(),);
|
||||||
|
|
Loading…
Add table
Reference in a new issue