diff --git a/.gitignore b/.gitignore
index ac10d507..e849e0ea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
subprojects/.wraplock
build
+.cache
diff --git a/data/css/default.css b/data/css/default.css
index 2fc321bb..e6e947e4 100644
--- a/data/css/default.css
+++ b/data/css/default.css
@@ -198,9 +198,6 @@
border-radius: 10px;
background: #0004;
}
-.wf-locker .fingerprint-overlay-image {
- -gtk-icon-size: 64px;
-}
.wf-locker .fingerprint-overlay-image.good {
color: #0f0;
}
@@ -211,36 +208,46 @@
color: #88f;
}
-.wf-locker .mpris image.albumart {
- -gtk-icon-size:96px;
-}
.wf-locker .user label {
- font-size: 70px;
font-weight: bold;
text-transform: capitalize;
}
-.wf-locker .user image {
- -gtk-icon-size:256px;
-}
.wf-locker image.weather {
- -gtk-icon-size:128px;
padding-left: 25px;
padding-right: 25px;
padding-bottom: 100px;
}
.wf-locker label.weather {
- font-size: 128px;
font-weight: bold;
padding-left: 100px;
padding-bottom: 75px;
}
.wf-locker label.clock {
- font-size: 128px;
font-weight: bold;
padding-right: 100px;
padding-bottom: 75px;
}
+.wf-locker.sized-480 {
+ font-size:6px;
+}
+
+.wf-locker.sized-720 {
+ font-size:7px;
+}
+
+.wf-locker.sized-1080 {
+ font-size:10px;
+}
+
+.wf-locker.sized-1440 {
+ font-size:14px;
+}
+
+.wf-locker.sized-2160 {
+ font-size:18px;
+}
+
@keyframes embiggen {
to {
-gtk-icon-size: 64px;
diff --git a/metadata/locker.xml b/metadata/locker.xml
index 90f904f2..df10e1fd 100644
--- a/metadata/locker.xml
+++ b/metadata/locker.xml
@@ -186,11 +186,11 @@
-
+
-
@@ -362,7 +371,7 @@
bottom-right
<_name>Bottom Right
- bottom-right
+ top-center
@@ -420,7 +429,13 @@
+
+
+
+
<_short>Battery
@@ -609,16 +640,17 @@
-
+
<_short>Instant Unlock
diff --git a/src/locker/locker.cpp b/src/locker/locker.cpp
index f86b17d9..8836db37 100644
--- a/src/locker/locker.cpp
+++ b/src/locker/locker.cpp
@@ -64,7 +64,9 @@ void WayfireLockerApp::perform_lock()
{
if (!m_is_locked)
{
- on_monitor_present(nullptr);
+ auto display = Gdk::Display::get_default();
+ auto monitors = display->get_monitors();
+ on_monitor_present(std::dynamic_pointer_cast(monitors->get_object(0))->gobj());
}
} else
{
@@ -144,21 +146,31 @@ void WayfireLockerApp::on_activate()
alternative_monitors = true; /* Don't use WayfireShellApp monitor tracking, we get a different set */
new CssFromConfigString("locker/background_color", ".wf-locker {background-color:", ";}");
new CssFromConfigFont("locker/clock_font", ".wf-locker .clock {", "}");
- new CssFromConfigFont("locker/weather_font", ".wf-locker .weather {", "}");
- new CssFromConfigFont("locker/user_font", ".wf-locker .user {", "}");
+ new CssFromConfigFont("locker/weather_font", ".wf-locker label.weather {", "}");
+ new CssFromConfigFont("locker/user_font", ".wf-locker .user label {", "}");
new CssFromConfigFont("locker/pin_pad_font", ".wf-locker .pinpad-button {", "}");
new CssFromConfigFont("locker/pin_reply_font", ".wf-locker .pinpad-current {", "}");
new CssFromConfigFont("locker/fingerprint_font", ".wf-locker .fingerprint-text {", "}");
new CssFromConfigFont("locker/battery_percent_font", ".wf-locker .battery-percent {", "}");
new CssFromConfigFont("locker/battery_description_font", ".wf-locker .battery-description {", "}");
new CssFromConfigFont("locker/instant_unlock_font", ".wf-locker .instant-unlock {", "}");
- new CssFromConfigInt("locker/battery_icon_size", ".wf-locker .battery-image {-gtk-icon-size:", "px;}");
- new CssFromConfigInt("locker/fingerprint_icon_size", ".wf-locker .fingerprint-icon {-gtk-icon-size:",
- "px;}");
+ new CssFromConfigFont("locker/network_font", ".wf-locker .network {", "}");
+ new CssFromConfigFont("locker/mpris_font", ".wf-locker .mpris label {", "}");
+
+ new CssFromConfigDouble("locker/user_icon_size", ".wf-locker .user image { -gtk-icon-size:", "em;}");
+ new CssFromConfigDouble("locker/mpris_icon_size", ".wf-locker .mpris .albumart {-gtk-icon-size:",
+ "em;}");
+ new CssFromConfigDouble("locker/weather_icon_size", ".wf-locker image.weather {-gtk-icon-size:", "em;}");
+ new CssFromConfigDouble("locker/battery_icon_size", ".wf-locker .battery-image {-gtk-icon-size:", "em;}");
+ new CssFromConfigDouble("locker/fingerprint_icon_size", ".wf-locker .fingerprint-icon {-gtk-icon-size:",
+ "em;}");
+ new CssFromConfigDouble("locker/fingerprint_overlay_icon_size",
+ ".wf-locker .fingerprint-overlay-image {-gtk-icon-size:",
+ "em;}");
new CssFromConfigDouble("locker/prewake", ".fade-in {animation-name: slowfade;animation-duration: ",
"s; animation-timing-function: linear; animation-iteration-count: 1; animation-fill-mode: forwards;} @keyframes slowfade { from {opacity:0; background: #0000;} to {opacity:1;}}");
- new CssFromConfigFont("locker/network_font", ".wf-locker .network {", "}");
- new CssFromConfigInt("locker/network_icon_size", ".wf-locker .network {-gtk-icon-size:", "px;}");
+ new CssFromConfigDouble("locker/network_icon_size", ".wf-locker .network {-gtk-icon-size:", "em;}");
+ new CssFromConfigDouble("locker/volume_icon_size", ".wf-locker .volume button {-gtk-icon-size:", "em;}");
/* Init plugins */
plugins.emplace("clock", Plugin(new WayfireLockerClockPlugin()));
@@ -275,6 +287,7 @@ void WayfireLockerApp::on_monitor_present(GdkMonitor *monitor)
/* Create lockscreen with a grid for contents */
window_list.emplace(id, new WayfireLockerAppLockscreen(background_path));
auto window = window_list[id];
+ window->add_css_class("wf-locker-" + std::string(gdk_monitor_get_connector(monitor)));
for (auto& it : plugins)
{
diff --git a/src/locker/lockscreen.cpp b/src/locker/lockscreen.cpp
index ed40f41d..1764bedb 100644
--- a/src/locker/lockscreen.cpp
+++ b/src/locker/lockscreen.cpp
@@ -77,6 +77,33 @@ WayfireLockerAppLockscreen::WayfireLockerAppLockscreen(std::string background_pa
window_activity();
return false;
}, false));
+
+ /* Resize cb*/
+ signals.push_back(background.signal_resize().connect([this] (int width, int height)
+ {
+ int size = std::max(get_width(), get_height());
+ remove_css_class("sized-480");
+ remove_css_class("sized-720");
+ remove_css_class("sized-1080");
+ remove_css_class("sized-1440");
+ remove_css_class("sized-2160");
+ if (size <= 480)
+ {
+ add_css_class("sized-480");
+ } else if (size <= 720)
+ {
+ add_css_class("sized-720");
+ } else if (size <= 1080)
+ {
+ add_css_class("sized-1080");
+ } else if (size <= 1440)
+ {
+ add_css_class("sized-1440");
+ } else
+ {
+ add_css_class("sized-2160");
+ }
+ }));
add_controller(typing_gesture);
}
diff --git a/src/locker/plugin/fingerprint.cpp b/src/locker/plugin/fingerprint.cpp
index 5dabaccb..53876e0c 100644
--- a/src/locker/plugin/fingerprint.cpp
+++ b/src/locker/plugin/fingerprint.cpp
@@ -339,6 +339,8 @@ WayfireLockerFingerprintPluginWidget::WayfireLockerFingerprintPluginWidget(std::
label.set_label(label_contents);
overlay.set_child(image_print);
overlay.add_overlay(image_overlay);
+ overlay.set_hexpand(false);
+ overlay.set_halign(Gtk::Align::CENTER);
image_overlay.set_halign(Gtk::Align::END);
image_overlay.set_valign(Gtk::Align::END);
diff --git a/src/locker/plugin/volume.cpp b/src/locker/plugin/volume.cpp
index 783e971c..a50e0241 100644
--- a/src/locker/plugin/volume.cpp
+++ b/src/locker/plugin/volume.cpp
@@ -61,6 +61,7 @@ WayfireLockerVolumePluginWidget::WayfireLockerVolumePluginWidget() :
WayfireLockerTimedRevealer("locker/volume_always")
{
set_child(box);
+ box.add_css_class("volume");
sink_button.add_css_class("volume-button");
source_button.add_css_class("mic-button");
diff --git a/src/util/background-gl.cpp b/src/util/background-gl.cpp
index 53e06d65..5cfa08c0 100644
--- a/src/util/background-gl.cpp
+++ b/src/util/background-gl.cpp
@@ -1,10 +1,10 @@
#include
+#include
+#include
+#include
+#include
#include "background-gl.hpp"
-#include "gdkmm/pixbuf.h"
-#include "glib.h"
-#include "glibmm/main.h"
-#include "glibmm/refptr.h"
static const char *vertex_shader =
R"(
diff --git a/src/util/css-config.cpp b/src/util/css-config.cpp
index 3019aec9..cc080f18 100644
--- a/src/util/css-config.cpp
+++ b/src/util/css-config.cpp
@@ -125,7 +125,7 @@ CssFromConfigFont::CssFromConfigFont(std::string option_name, std::string css_be
void CssFromConfigFont::set_from_string()
{
- std::regex matcher("(.*?)(\\d+(?:pt|px|rem|em|))(.*?)");
+ std::regex matcher("(.*?)(\\d+\\.?\\d*(?:pt|px|rem|em|))(.*?)");
std::string font_name = (std::string)option_value;
std::smatch matches;
if (std::regex_match(font_name, matches, matcher))