commit c996f9988157d1e41140e95ebb7ada929b116bbc
parent 83d9573917caea2491c1cb83642d9a289174b579
Author: Daniel Barlow <dan@telent.net>
Date: Sun, 13 Feb 2022 00:03:42 +0000
Merge remote-tracking branch 'samueldr/feature/rgba'
Diffstat:
1 file changed, 40 insertions(+), 0 deletions(-)
diff --git a/saturn/main.fnl b/saturn/main.fnl
@@ -4,6 +4,24 @@
(local inspect (require :inspect))
(local ICON_SIZE 64)
+(local CSS "
+ * {
+ color: rgb(255, 255, 255);
+ text-shadow:
+ 0px 1px rgba(0, 0, 0, 255)
+ , 1px 0px rgba(0, 0, 0, 255)
+ , 0px -1px rgba(0, 0, 0, 255)
+ , -1px 0px rgba(0, 0, 0, 255)
+ , 1px 1px rgba(0, 0, 0, 255)
+ , 1px -1px rgba(0, 0, 0, 255)
+ , -1px 1px rgba(0, 0, 0, 255)
+ , -1px -1px rgba(0, 0, 0, 255)
+ ;
+ }
+ #toplevel {
+ background-color: rgba(0, 0, 0, 0.6);
+ }
+ ")
(local dbus-service-attrs
{
@@ -78,17 +96,39 @@
:absolute? (fn [str] (= (str:sub 1 1) "/"))
})
(local Gtk lgi.Gtk)
+
(local GdkPixbuf lgi.GdkPixbuf)
+
+(local Gdk lgi.Gdk)
+
(local Pango lgi.Pango)
(local icon-theme (Gtk.IconTheme.get_default))
+;; Use the declared CSS for this app
+(let [style_provider (Gtk.CssProvider)]
+ (style_provider:load_from_data CSS)
+ (Gtk.StyleContext.add_provider_for_screen
+ (Gdk.Screen.get_default)
+ style_provider
+ Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
+ ))
+
+
(local window (Gtk.Window {
:title "Saturn V"
+ :name "toplevel"
:default_width 720
:default_height 800
:on_destroy Gtk.main_quit
}))
+
+;; Using RGBA visual for semi-transparent backgrounds
+;; Requires compositing (e.g. a compositor on X11)
+(let [screen (window:get_screen)
+ visual (screen:get_rgba_visual)]
+ (window:set_visual visual))
+
(fn find-icon [name]
(var found false)
(if (path.absolute? name)