This is an automated email from the git hooks/post-receive script.

git pushed a commit to reference refs/pull/126/head
in repository efl.

View the commit online.

commit 3f7e5ca070a00afe7335fcfcbf6c453c1f1bc137
Author: [email protected] <[email protected]>
AuthorDate: Thu May 21 17:20:19 2026 -0600

    theme(elementary/connman): VPN tunnel shield badge
    
    Add a vpn_badge IMAGE part to e/modules/connman/main toggled by
    e,vpn,active / e,vpn,inactive signals, and ship the source SVG via
    images.vector.  The networkmanager E module emits these signals on
    its gadget icon (which falls back to this connman group) when at
    least one VPN tunnel is active.
---
 data/elementary/themes/edc/connman.edc    | 31 +++++++++++++++++++++++++++++++
 data/elementary/themes/img/vpn-shield.svg | 10 ++++++++++
 2 files changed, 41 insertions(+)

diff --git a/data/elementary/themes/edc/connman.edc b/data/elementary/themes/edc/connman.edc
index 0280625681..1cd89c7728 100644
--- a/data/elementary/themes/edc/connman.edc
+++ b/data/elementary/themes/edc/connman.edc
@@ -22,6 +22,7 @@ group { name: "e/modules/connman/main";
    images.image: "cell-base.png" COMP;
 
    images.image: "radio.png" COMP;
+   images.vector: "vpn-shield.svg";
    parts {
       part { name: "exclam_base"; mouse_events: 0;
          scale: 1;
@@ -528,6 +529,24 @@ group { name: "e/modules/connman/main";
             color: 0 0 0 0; // no cc
          }
       }
+      // VPN tunnel indicator — top-right shield badge, hidden by default,
+      // shown by the networkmanager module via e,vpn,active / e,vpn,inactive
+      // signals.  Sized to ~45% of the icon, top-right corner, forced square.
+      part { name: "vpn_badge"; mouse_events: 0;
+         type: VECTOR;
+         description { state: "default" 0.0;
+            visible: 0;
+            rel1.relative: 0.55 0.0;
+            rel2.relative: 1.0 0.45;
+            aspect: 1.0 1.0;
+            aspect_preference: BOTH;
+            image.normal: "vpn-shield.svg";
+         }
+         description { state: "active" 0.0;
+            inherit: "default" 0.0;
+            visible: 1;
+         }
+      }
    }
 
 #define SCRIPT_MESSAGE() \
@@ -755,6 +774,18 @@ else { \
          action: STATE_SET "default" 0.0;
          target: "security_overlay";
       }
+      program { name: "vpn_active";
+         signal: "e,vpn,active"; source: "e";
+         action: STATE_SET "active" 0.0;
+         target: "vpn_badge";
+         transition: ACCELERATE 0.15;
+      }
+      program { name: "vpn_inactive";
+         signal: "e,vpn,inactive"; source: "e";
+         action: STATE_SET "default" 0.0;
+         target: "vpn_badge";
+         transition: DECELERATE 0.15;
+      }
    }
 }
 
diff --git a/data/elementary/themes/img/vpn-shield.svg b/data/elementary/themes/img/vpn-shield.svg
new file mode 100644
index 0000000000..909736ac61
--- /dev/null
+++ b/data/elementary/themes/img/vpn-shield.svg
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="64" height="64" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg">
+  <!-- Shield silhouette: top crown to bottom point -->
+  <path d="M32 3 L56 11 L56 30 C56 44 47 55 32 61 C17 55 8 44 8 30 L8 11 Z"
+        fill="#4caf50" stroke="#1b5e20" stroke-width="3" stroke-linejoin="round"/>
+  <!-- Tick mark -->
+  <path d="M20 32 L28 40 L44 22"
+        stroke="#ffffff" stroke-width="5" fill="none"
+        stroke-linecap="round" stroke-linejoin="round"/>
+</svg>

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to