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))