Updated dependencies (#449)

* Updated gtk dependencies

* Added badge for status of dependencies

* Updated remaining deps for eww and other crates

* Removed obsolete imports

* Fixed problems with PR and bumped deps

* Updated x11rb
This commit is contained in:
pentamassiv 2022-07-27 18:25:08 +02:00 committed by GitHub
parent 962c06c0ee
commit d8bb8c4142
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 564 additions and 576 deletions

View file

@ -46,3 +46,4 @@ All notable changes to eww will be listed here, starting at changes since versio
- Added more examples
- List system-level dependencies in documentation
- Document structure of magic variables (By: legendofmiracles)
- Updated dependencies

962
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,4 @@
[![dependency status](https://deps.rs/repo/github/elkowar/eww/status.svg)](https://deps.rs/repo/github/elkowar/eww)
# Eww

View file

@ -13,26 +13,25 @@ edition = "2021"
[features]
default = ["x11"]
x11 = ["gdkx11", "x11rb", "yuck/x11"]
wayland = ["gtk-layer-shell", "gtk-layer-shell-sys", "yuck/wayland"]
wayland = ["gtk-layer-shell", "yuck/wayland"]
[dependencies.cairo-sys-rs]
version = "0.14.0"
version = "0.15.1"
[dependencies]
gtk = { version = "0.14", features = [ "v3_22" ] }
gtk = { version = "0.15", features = [ "v3_22" ] }
gdk = { version = "*", features = ["v3_22"] }
gio = { version = "*", features = ["v2_44"] }
glib = { version = "0.14.8"}
glib = { version = "0.15.11"}
cairo-rs = "0.14.0"
cairo-rs = "0.15.11"
gdk-pixbuf = "0.9"
gdk-pixbuf = "0.15"
gtk-layer-shell = { version="0.2.0", optional=true }
gtk-layer-shell-sys = { version="0.2.0", optional=true }
gdkx11 = { version = "0.14", optional = true }
x11rb = { version = "0.8", features = ["randr"], optional = true }
gtk-layer-shell = { version = "0.4", optional = true}
gdkx11 = { version = "0.15", optional = true }
x11rb = { version = "0.10", features = ["randr"], optional = true }
regex = "1"
regex = "1.5.5"
bincode = "1.3"
anyhow = "1.0"
derive_more = "0.99"
@ -41,29 +40,29 @@ structopt = "0.3"
serde = {version = "1.0", features = ["derive"]}
serde_json = "1.0"
extend = "1"
grass = "0.10"
grass = "0.11"
itertools = "0.10"
debug_stub_derive = "0.3"
log = "0.4"
pretty_env_logger = "0.4"
libc = "0.2"
once_cell = "1.8"
nix = "0.20"
nix = "0.24"
smart-default = "0.6"
simple-signal = "1.1"
unescape = "0.1"
tokio = { version = "1.0", features = ["full"] }
tokio = { version = "^1.18", features = ["full"] }
futures-core = "0.3"
futures-util = "0.3"
tokio-util = "0.6"
tokio-util = "0.7"
sysinfo = "0.23"
sysinfo = "0.24"
dyn-clone = "1.0"
wait-timeout = "0.2"
notify = "5.0.0-pre.7"
notify = "5.0.0-pre.14"
codespan-reporting = "0.11"

View file

@ -388,8 +388,8 @@ fn initialize_window(
if let Some(geometry) = window_def.geometry {
let actual_window_rect = get_window_rectangle(geometry, monitor_geometry);
window.set_size_request(actual_window_rect.width, actual_window_rect.height);
window.set_default_size(actual_window_rect.width, actual_window_rect.height);
window.set_size_request(actual_window_rect.width(), actual_window_rect.height());
window.set_default_size(actual_window_rect.width(), actual_window_rect.height());
}
window.set_decorated(false);
window.set_skip_taskbar_hint(true);
@ -435,8 +435,8 @@ fn apply_window_position(
let gdk_origin = gdk_window.origin();
if actual_window_rect.x != gdk_origin.1 || actual_window_rect.y != gdk_origin.2 {
gdk_window.move_(actual_window_rect.x, actual_window_rect.y);
if actual_window_rect.x() != gdk_origin.1 || actual_window_rect.y() != gdk_origin.2 {
gdk_window.move_(actual_window_rect.x(), actual_window_rect.y());
}
Ok(())
@ -463,9 +463,9 @@ fn get_monitor_geometry(n: Option<i32>) -> Result<gdk::Rectangle> {
}
pub fn get_window_rectangle(geometry: WindowGeometry, screen_rect: gdk::Rectangle) -> gdk::Rectangle {
let (offset_x, offset_y) = geometry.offset.relative_to(screen_rect.width, screen_rect.height);
let (width, height) = geometry.size.relative_to(screen_rect.width, screen_rect.height);
let x = screen_rect.x + offset_x + geometry.anchor_point.x.alignment_to_coordinate(width, screen_rect.width);
let y = screen_rect.y + offset_y + geometry.anchor_point.y.alignment_to_coordinate(height, screen_rect.height);
gdk::Rectangle { x, y, width, height }
let (offset_x, offset_y) = geometry.offset.relative_to(screen_rect.width(), screen_rect.height());
let (width, height) = geometry.size.relative_to(screen_rect.width(), screen_rect.height());
let x = screen_rect.x() + offset_x + geometry.anchor_point.x.alignment_to_coordinate(width, screen_rect.width());
let y = screen_rect.y() + offset_y + geometry.anchor_point.y.alignment_to_coordinate(height, screen_rect.height());
gdk::Rectangle::new(x, y, width, height)
}

View file

@ -3,7 +3,7 @@ use anyhow::{Context, Result};
use itertools::Itertools;
use once_cell::sync::Lazy;
use std::{fs::read_to_string, sync::Mutex};
use sysinfo::{ComponentExt, DiskExt, NetworkExt, NetworksExt, ProcessorExt, System, SystemExt};
use sysinfo::{ComponentExt, CpuExt, DiskExt, NetworkExt, NetworksExt, System, SystemExt};
static SYSTEM: Lazy<Mutex<System>> = Lazy::new(|| Mutex::new(System::new()));
@ -68,14 +68,13 @@ pub fn get_temperatures() -> String {
pub fn get_cpus() -> String {
let mut c = SYSTEM.lock().unwrap();
c.refresh_cpu();
let processors = c.processors();
let cpus = c.cpus();
format!(
r#"{{ "cores": [{}], "avg": {} }}"#,
processors
.iter()
cpus.iter()
.map(|a| format!(r#"{{"core": "{}", "freq": {}, "usage": {:.0}}}"#, a.name(), a.frequency(), a.cpu_usage()))
.join(","),
processors.iter().map(|a| a.cpu_usage()).avg()
cpus.iter().map(|a| a.cpu_usage()).avg()
)
}

View file

@ -69,8 +69,8 @@ mod platform {
gtk_layer_shell::set_anchor(&window, gtk_layer_shell::Edge::Top, top);
gtk_layer_shell::set_anchor(&window, gtk_layer_shell::Edge::Bottom, bottom);
let xoffset = geometry.offset.x.pixels_relative_to(monitor.width);
let yoffset = geometry.offset.y.pixels_relative_to(monitor.height);
let xoffset = geometry.offset.x.pixels_relative_to(monitor.width());
let yoffset = geometry.offset.y.pixels_relative_to(monitor.height());
if left {
gtk_layer_shell::set_margin(&window, gtk_layer_shell::Edge::Left, xoffset);
@ -157,12 +157,12 @@ mod platform {
let strut_def = window_def.backend_options.struts;
let root_window_geometry = self.conn.get_geometry(self.root_window)?.reply()?;
let mon_end_x = (monitor_rect.x + monitor_rect.width) as u32 - 1u32;
let mon_end_y = (monitor_rect.y + monitor_rect.height) as u32 - 1u32;
let mon_end_x = (monitor_rect.x() + monitor_rect.width()) as u32 - 1u32;
let mon_end_y = (monitor_rect.y() + monitor_rect.height()) as u32 - 1u32;
let dist = match strut_def.side {
Side::Left | Side::Right => strut_def.dist.pixels_relative_to(monitor_rect.width) as u32,
Side::Top | Side::Bottom => strut_def.dist.pixels_relative_to(monitor_rect.height) as u32,
Side::Left | Side::Right => strut_def.dist.pixels_relative_to(monitor_rect.width()) as u32,
Side::Top | Side::Bottom => strut_def.dist.pixels_relative_to(monitor_rect.height()) as u32,
};
// don't question it,.....
@ -170,10 +170,10 @@ mod platform {
// left, right, top, bottom, left_start_y, left_end_y, right_start_y, right_end_y, top_start_x, top_end_x, bottom_start_x, bottom_end_x
#[rustfmt::skip]
let strut_list: Vec<u8> = match strut_def.side {
Side::Left => vec![dist + monitor_rect.x as u32, 0, 0, 0, monitor_rect.y as u32, mon_end_y, 0, 0, 0, 0, 0, 0],
Side::Right => vec![0, root_window_geometry.width as u32 - mon_end_x + dist, 0, 0, 0, 0, monitor_rect.y as u32, mon_end_y, 0, 0, 0, 0],
Side::Top => vec![0, 0, dist + monitor_rect.y as u32, 0, 0, 0, 0, 0, monitor_rect.x as u32, mon_end_x, 0, 0],
Side::Bottom => vec![0, 0, 0, root_window_geometry.height as u32 - mon_end_y + dist, 0, 0, 0, 0, 0, 0, monitor_rect.x as u32, mon_end_x],
Side::Left => vec![dist + monitor_rect.x() as u32, 0, 0, 0, monitor_rect.y() as u32, mon_end_y, 0, 0, 0, 0, 0, 0],
Side::Right => vec![0, root_window_geometry.width as u32 - mon_end_x + dist, 0, 0, 0, 0, monitor_rect.y() as u32, mon_end_y, 0, 0, 0, 0],
Side::Top => vec![0, 0, dist + monitor_rect.y() as u32, 0, 0, 0, 0, 0, monitor_rect.x() as u32, mon_end_x, 0, 0],
Side::Bottom => vec![0, 0, 0, root_window_geometry.height as u32 - mon_end_y + dist, 0, 0, 0, 0, 0, 0, monitor_rect.x() as u32, mon_end_x],
// This should never happen but if it does the window will be anchored on the
// right of the screen
}.iter().flat_map(|x| x.to_le_bytes().to_vec()).collect();

View file

@ -26,6 +26,6 @@ impl Rectangular for Rect {
impl Rectangular for gdk::Rectangle {
fn get_rect(&self) -> Rect {
Rect { x: self.x, y: self.y, width: self.width, height: self.height }
Rect { x: self.x(), y: self.y(), width: self.width(), height: self.height() }
}
}

View file

@ -36,8 +36,8 @@ impl ObjectImpl for CircProgPriv {
use once_cell::sync::Lazy;
static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| {
vec![
glib::ParamSpec::new_double("value", "Value", "The value", 0f64, 100f64, 0f64, glib::ParamFlags::READWRITE),
glib::ParamSpec::new_double(
glib::ParamSpecDouble::new("value", "Value", "The value", 0f64, 100f64, 0f64, glib::ParamFlags::READWRITE),
glib::ParamSpecDouble::new(
"thickness",
"Thickness",
"Thickness",
@ -46,7 +46,7 @@ impl ObjectImpl for CircProgPriv {
1f64,
glib::ParamFlags::READWRITE,
),
glib::ParamSpec::new_double(
glib::ParamSpecDouble::new(
"start-at",
"Starting at",
"Starting at",
@ -55,7 +55,7 @@ impl ObjectImpl for CircProgPriv {
0f64,
glib::ParamFlags::READWRITE,
),
glib::ParamSpec::new_boolean("clockwise", "Clockwise", "Clockwise", true, glib::ParamFlags::READWRITE),
glib::ParamSpecBoolean::new("clockwise", "Clockwise", "Clockwise", true, glib::ParamFlags::READWRITE),
]
});
@ -202,7 +202,7 @@ impl WidgetImpl for CircProgPriv {
// Background Ring
cr.move_to(center.0, center.1);
cr.arc(center.0, center.1, outer_ring, 0.0, perc_to_rad(100.0));
cr.set_source_rgba(bg_color.red, bg_color.green, bg_color.blue, bg_color.alpha);
cr.set_source_rgba(bg_color.red(), bg_color.green(), bg_color.blue(), bg_color.alpha());
cr.move_to(center.0, center.1);
cr.arc(center.0, center.1, inner_ring, 0.0, perc_to_rad(100.0));
cr.set_fill_rule(cairo::FillRule::EvenOdd); // Substract one circle from the other
@ -211,7 +211,7 @@ impl WidgetImpl for CircProgPriv {
// Foreground Ring
cr.move_to(center.0, center.1);
cr.arc(center.0, center.1, outer_ring, start_angle, end_angle);
cr.set_source_rgba(fg_color.red, fg_color.green, fg_color.blue, fg_color.alpha);
cr.set_source_rgba(fg_color.red(), fg_color.green(), fg_color.blue(), fg_color.alpha());
cr.move_to(center.0, center.1);
cr.arc(center.0, center.1, inner_ring, start_angle, end_angle);
cr.set_fill_rule(cairo::FillRule::EvenOdd); // Substract one circle from the other
@ -224,7 +224,7 @@ impl WidgetImpl for CircProgPriv {
// Center circular clip
cr.arc(center.0, center.1, inner_ring + 1.0, 0.0, perc_to_rad(100.0));
cr.set_source_rgba(bg_color.red, 0.0, 0.0, bg_color.alpha);
cr.set_source_rgba(bg_color.red(), 0.0, 0.0, bg_color.alpha());
cr.clip();
// Children widget

View file

@ -68,8 +68,8 @@ impl ObjectImpl for GraphPriv {
use once_cell::sync::Lazy;
static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| {
vec![
glib::ParamSpec::new_double("value", "Value", "The value", 0f64, 100f64, 0f64, glib::ParamFlags::READWRITE),
glib::ParamSpec::new_double(
glib::ParamSpecDouble::new("value", "Value", "The value", 0f64, 100f64, 0f64, glib::ParamFlags::READWRITE),
glib::ParamSpecDouble::new(
"thickness",
"Thickness",
"The Thickness",
@ -78,7 +78,7 @@ impl ObjectImpl for GraphPriv {
1f64,
glib::ParamFlags::READWRITE,
),
glib::ParamSpec::new_double(
glib::ParamSpecDouble::new(
"max",
"Maximum Value",
"The Maximum Value",
@ -87,7 +87,7 @@ impl ObjectImpl for GraphPriv {
100f64,
glib::ParamFlags::READWRITE,
),
glib::ParamSpec::new_double(
glib::ParamSpecDouble::new(
"min",
"Minumum Value",
"The Minimum Value",
@ -96,8 +96,8 @@ impl ObjectImpl for GraphPriv {
0f64,
glib::ParamFlags::READWRITE,
),
glib::ParamSpec::new_boolean("dynamic", "Dynamic", "If it is dynamic", true, glib::ParamFlags::READWRITE),
glib::ParamSpec::new_uint64(
glib::ParamSpecBoolean::new("dynamic", "Dynamic", "If it is dynamic", true, glib::ParamFlags::READWRITE),
glib::ParamSpecUInt64::new(
"time-range",
"Time Range",
"The Time Range",
@ -106,7 +106,7 @@ impl ObjectImpl for GraphPriv {
10u64,
glib::ParamFlags::READWRITE,
),
glib::ParamSpec::new_string(
glib::ParamSpecString::new(
"line-style",
"Line Style",
"The Line Style",
@ -276,7 +276,7 @@ impl WidgetImpl for GraphPriv {
// Draw Background
let bg_color: gdk::RGBA = styles.style_property_for_state("background-color", gtk::StateFlags::NORMAL).get()?;
if bg_color.alpha > 0.0 {
if bg_color.alpha() > 0.0 {
if let Some(first_point) = points.front() {
cr.line_to(first_point.0, height + margin_bottom);
}
@ -285,14 +285,14 @@ impl WidgetImpl for GraphPriv {
}
cr.line_to(width, height);
cr.set_source_rgba(bg_color.red, bg_color.green, bg_color.blue, bg_color.alpha);
cr.set_source_rgba(bg_color.red(), bg_color.green(), bg_color.blue(), bg_color.alpha());
cr.fill()?;
}
// Draw Line
let line_color: gdk::RGBA = styles.color(gtk::StateFlags::NORMAL);
let thickness = *self.thickness.borrow();
if line_color.alpha > 0.0 && thickness > 0.0 {
if line_color.alpha() > 0.0 && thickness > 0.0 {
for (x, y) in points.iter() {
cr.line_to(*x, *y);
}
@ -300,7 +300,7 @@ impl WidgetImpl for GraphPriv {
let line_style = &*self.line_style.borrow();
apply_line_style(line_style.as_str(), cr)?;
cr.set_line_width(thickness);
cr.set_source_rgba(line_color.red, line_color.green, line_color.blue, line_color.alpha);
cr.set_source_rgba(line_color.red(), line_color.green(), line_color.blue(), line_color.alpha());
cr.stroke()?;
}

View file

@ -39,7 +39,7 @@ impl ObjectImpl for TransformPriv {
use once_cell::sync::Lazy;
static PROPERTIES: Lazy<Vec<glib::ParamSpec>> = Lazy::new(|| {
vec![
glib::ParamSpec::new_double(
glib::ParamSpecDouble::new(
"rotate",
"Rotate",
"The Rotation",
@ -48,10 +48,10 @@ impl ObjectImpl for TransformPriv {
0f64,
glib::ParamFlags::READWRITE,
),
glib::ParamSpec::new_string("translate-x", "Translate x", "The X Translation", None, glib::ParamFlags::READWRITE),
glib::ParamSpec::new_string("translate-y", "Translate y", "The Y Translation", None, glib::ParamFlags::READWRITE),
glib::ParamSpec::new_string("scale-x", "Scale x", "The amount to scale in x", None, glib::ParamFlags::READWRITE),
glib::ParamSpec::new_string("scale-y", "Scale y", "The amount to scale in y", None, glib::ParamFlags::READWRITE),
glib::ParamSpecString::new("translate-x", "Translate x", "The X Translation", None, glib::ParamFlags::READWRITE),
glib::ParamSpecString::new("translate-y", "Translate y", "The Y Translation", None, glib::ParamFlags::READWRITE),
glib::ParamSpecString::new("scale-x", "Scale x", "The amount to scale in x", None, glib::ParamFlags::READWRITE),
glib::ParamSpecString::new("scale-y", "Scale y", "The amount to scale in y", None, glib::ParamFlags::READWRITE),
]
});

View file

@ -11,6 +11,7 @@ use anyhow::{anyhow, Context, Result};
use codespan_reporting::diagnostic::Severity;
use eww_shared_util::Spanned;
use gdk::{ModifierType, NotifyType};
use glib::translate::FromGlib;
use gtk::{self, glib, prelude::*, DestDefaults, TargetEntry, TargetList};
use itertools::Itertools;
@ -335,7 +336,7 @@ const WIDGET_NAME_COLOR_BUTTON: &str = "color-button";
/// @widget color-button
/// @desc A button opening a color chooser window
fn build_gtk_color_button(bargs: &mut BuilderArgs) -> Result<gtk::ColorButton> {
let gtk_widget = gtk::ColorButtonBuilder::new().build();
let gtk_widget = gtk::builders::ColorButtonBuilder::new().build();
def_widget!(bargs, _g, gtk_widget, {
// @prop use-alpha - bool to whether or not use alpha
prop(use_alpha: as_bool) {gtk_widget.set_use_alpha(use_alpha);},
@ -610,7 +611,7 @@ const WIDGET_NAME_SCROLL: &str = "scroll";
/// @desc a container with a single child that can scroll.
fn build_gtk_scrolledwindow(bargs: &mut BuilderArgs) -> Result<gtk::ScrolledWindow> {
// I don't have single idea of what those two generics are supposed to be, but this works.
let gtk_widget = gtk::ScrolledWindow::new::<gtk::Adjustment, gtk::Adjustment>(None, None);
let gtk_widget = gtk::ScrolledWindow::new(None::<&gtk::Adjustment>, None::<&gtk::Adjustment>);
def_widget!(bargs, _g, gtk_widget, {
// @prop hscroll - scroll horizontally
@ -915,15 +916,15 @@ fn build_transform(bargs: &mut BuilderArgs) -> Result<Transform> {
let w = Transform::new();
def_widget!(bargs, _g, w, {
// @prop rotate - the percentage to rotate
prop(rotate: as_f64) { w.set_property("rotate", rotate)?; },
prop(rotate: as_f64) { w.set_property("rotate", rotate); },
// @prop translate-x - the amount to translate in the x direction (px or %)
prop(translate_x: as_string) { w.set_property("translate-x", translate_x)?; },
prop(translate_x: as_string) { w.set_property("translate-x", translate_x); },
// @prop translate-y - the amount to translate in the y direction (px or %)
prop(translate_y: as_string) { w.set_property("translate-y", translate_y)?; },
prop(translate_y: as_string) { w.set_property("translate-y", translate_y); },
// @prop scale_x - the amount to scale in the x direction (px or %)
prop(scale_x: as_string) { w.set_property("scale-x", scale_x)?; },
prop(scale_x: as_string) { w.set_property("scale-x", scale_x); },
// @prop scale_y - the amount to scale in the y direction (px or %)
prop(scale_y: as_string) { w.set_property("scale-y", scale_y)?; },
prop(scale_y: as_string) { w.set_property("scale-y", scale_y); },
});
Ok(w)
}
@ -935,13 +936,13 @@ fn build_circular_progress_bar(bargs: &mut BuilderArgs) -> Result<CircProg> {
let w = CircProg::new();
def_widget!(bargs, _g, w, {
// @prop value - the value, between 0 - 100
prop(value: as_f64) { w.set_property("value", value)?; },
prop(value: as_f64) { w.set_property("value", value); },
// @prop start-at - the angle that the circle should start at
prop(start_at: as_f64) { w.set_property("start-at", start_at)?; },
prop(start_at: as_f64) { w.set_property("start-at", start_at); },
// @prop thickness - the thickness of the circle
prop(thickness: as_f64) { w.set_property("thickness", thickness)?; },
prop(thickness: as_f64) { w.set_property("thickness", thickness); },
// @prop clockwise - wether the progress bar spins clockwise or counter clockwise
prop(clockwise: as_bool) { w.set_property("clockwise", &clockwise)?; },
prop(clockwise: as_bool) { w.set_property("clockwise", &clockwise); },
});
Ok(w)
}
@ -953,11 +954,11 @@ fn build_graph(bargs: &mut BuilderArgs) -> Result<super::graph::Graph> {
let w = super::graph::Graph::new();
def_widget!(bargs, _g, w, {
// @prop value - the value, between 0 - 100
prop(value: as_f64) { w.set_property("value", &value)?; },
prop(value: as_f64) { w.set_property("value", &value); },
// @prop thickness - the thickness of the line
prop(thickness: as_f64) { w.set_property("thickness", &thickness)?; },
prop(thickness: as_f64) { w.set_property("thickness", &thickness); },
// @prop time-range - the range of time to show
prop(time_range: as_duration) { w.set_property("time-range", &(time_range.as_millis() as u64))?; },
prop(time_range: as_duration) { w.set_property("time-range", &(time_range.as_millis() as u64)); },
// @prop min - the minimum value to show (defaults to 0 if value_max is provided)
// @prop max - the maximum value to show
prop(min: as_f64 = 0, max: as_f64 = 100) {
@ -966,14 +967,14 @@ fn build_graph(bargs: &mut BuilderArgs) -> Result<super::graph::Graph> {
format!("Graph's min ({}) should never be higher than max ({})", min, max)
)).into());
}
w.set_property("min", &min)?;
w.set_property("max", &max)?;
w.set_property("min", &min);
w.set_property("max", &max);
},
// @prop dynamic - whether the y range should dynamically change based on value
prop(dynamic: as_bool) { w.set_property("dynamic", &dynamic)?; },
prop(dynamic: as_bool) { w.set_property("dynamic", &dynamic); },
// @prop line-style - changes the look of the edges in the graph. Values: "miter" (default), "round",
// "bevel"
prop(line_style: as_string) { w.set_property("line-style", &line_style)?; },
prop(line_style: as_string) { w.set_property("line-style", &line_style); },
});
Ok(w)
}

View file

@ -13,7 +13,7 @@ build = "build.rs"
[dependencies]
lalrpop-util = "0.19.5"
regex = "1"
regex = "1.5.5"
itertools = "0.10"
thiserror = "1.0"
@ -22,7 +22,7 @@ serde = {version = "1.0", features = ["derive"]}
serde_json = "1.0"
levenshtein = "1.0"
strum = { version = "0.21", features = ["derive"] }
strum = { version = "0.24", features = ["derive"] }
eww_shared_util = { version = "0.1.0", path = "../eww_shared_util" }

View file

@ -17,7 +17,7 @@ wayland = []
[dependencies]
lalrpop-util = "0.19.5"
regex = "1"
regex = "1.5.5"
itertools = "0.10"
thiserror = "1.0"
maplit = "1.0"
@ -29,7 +29,7 @@ serde = {version = "1.0", features = ["derive"]}
serde_json = "1.0"
once_cell = "1.8"
strum = { version = "0.21", features = ["derive"] }
strum = { version = "0.24", features = ["derive"] }
anyhow = "1"
static_assertions = "1.1"
@ -42,4 +42,4 @@ lalrpop = "0.19.5"
[dev-dependencies]
insta = { version = "1.7", features = ["ron"]}
pretty_assertions = "0.7"
pretty_assertions = "1.2"