aboutsummaryrefslogtreecommitdiffstats
path: root/config/ags/modules/.widgetutils
diff options
context:
space:
mode:
authorKiran George <kirangeorge1995@gmail.com>2024-04-24 22:19:05 +0530
committerKiran George <kirangeorge1995@gmail.com>2024-05-04 11:00:00 +0530
commitdc9f0cd58454b4cb33a704b11e4cc8a7c6594e67 (patch)
tree02aff524a96c620f2f603dbb45f7017256981148 /config/ags/modules/.widgetutils
parent425df5f3a17a72ba41973dedf0673bd8dd607385 (diff)
Added ags overview widget
Updated search iscon for overview search result suggested action Removed excluded site from overview web search Updated calculator icon for overview Updated overview search action icon spacing Added initial pywal integration to overview search and updated seach icon
Diffstat (limited to 'config/ags/modules/.widgetutils')
-rw-r--r--config/ags/modules/.widgetutils/clickthrough.js4
-rw-r--r--config/ags/modules/.widgetutils/cursorhover.js57
-rw-r--r--config/ags/modules/.widgetutils/keybind.js25
3 files changed, 86 insertions, 0 deletions
diff --git a/config/ags/modules/.widgetutils/clickthrough.js b/config/ags/modules/.widgetutils/clickthrough.js
new file mode 100644
index 00000000..505f1412
--- /dev/null
+++ b/config/ags/modules/.widgetutils/clickthrough.js
@@ -0,0 +1,4 @@
+import Cairo from 'gi://cairo?version=1.0';
+
+export const dummyRegion = new Cairo.Region();
+export const enableClickthrough = (self) => self.input_shape_combine_region(dummyRegion); \ No newline at end of file
diff --git a/config/ags/modules/.widgetutils/cursorhover.js b/config/ags/modules/.widgetutils/cursorhover.js
new file mode 100644
index 00000000..89be913b
--- /dev/null
+++ b/config/ags/modules/.widgetutils/cursorhover.js
@@ -0,0 +1,57 @@
+const { Gdk } = imports.gi;
+
+export function setupCursorHover(button) { // Hand pointing cursor on hover
+ const display = Gdk.Display.get_default();
+ button.connect('enter-notify-event', () => {
+ const cursor = Gdk.Cursor.new_from_name(display, 'pointer');
+ button.get_window().set_cursor(cursor);
+ });
+
+ button.connect('leave-notify-event', () => {
+ const cursor = Gdk.Cursor.new_from_name(display, 'default');
+ button.get_window().set_cursor(cursor);
+ });
+
+}
+
+export function setupCursorHoverAim(button) { // Crosshair cursor on hover
+ button.connect('enter-notify-event', () => {
+ const display = Gdk.Display.get_default();
+ const cursor = Gdk.Cursor.new_from_name(display, 'crosshair');
+ button.get_window().set_cursor(cursor);
+ });
+
+ button.connect('leave-notify-event', () => {
+ const display = Gdk.Display.get_default();
+ const cursor = Gdk.Cursor.new_from_name(display, 'default');
+ button.get_window().set_cursor(cursor);
+ });
+}
+
+export function setupCursorHoverGrab(button) { // Hand ready to grab on hover
+ button.connect('enter-notify-event', () => {
+ const display = Gdk.Display.get_default();
+ const cursor = Gdk.Cursor.new_from_name(display, 'grab');
+ button.get_window().set_cursor(cursor);
+ });
+
+ button.connect('leave-notify-event', () => {
+ const display = Gdk.Display.get_default();
+ const cursor = Gdk.Cursor.new_from_name(display, 'default');
+ button.get_window().set_cursor(cursor);
+ });
+}
+
+export function setupCursorHoverInfo(button) { // "?" mark cursor on hover
+ const display = Gdk.Display.get_default();
+ button.connect('enter-notify-event', () => {
+ const cursor = Gdk.Cursor.new_from_name(display, 'help');
+ button.get_window().set_cursor(cursor);
+ });
+
+ button.connect('leave-notify-event', () => {
+ const cursor = Gdk.Cursor.new_from_name(display, 'default');
+ button.get_window().set_cursor(cursor);
+ });
+}
+
diff --git a/config/ags/modules/.widgetutils/keybind.js b/config/ags/modules/.widgetutils/keybind.js
new file mode 100644
index 00000000..eda7877b
--- /dev/null
+++ b/config/ags/modules/.widgetutils/keybind.js
@@ -0,0 +1,25 @@
+const { Gdk } = imports.gi;
+
+const MODS = {
+ 'Shift': Gdk.ModifierType.SHIFT_MASK,
+ 'Ctrl': Gdk.ModifierType.CONTROL_MASK,
+ 'Alt': Gdk.ModifierType.ALT_MASK,
+ 'Hyper': Gdk.ModifierType.HYPER_MASK,
+ 'Meta': Gdk.ModifierType.META_MASK
+}
+
+export const checkKeybind = (event, keybind) => {
+ const pressedModMask = event.get_state()[1];
+ const pressedKey = event.get_keyval()[1];
+ const keys = keybind.split('+');
+ for (let i = 0; i < keys.length; i++) {
+ if (keys[i] in MODS) {
+ if (!(pressedModMask & MODS[keys[i]])) {
+ return false;
+ }
+ } else if (pressedKey !== Gdk[`KEY_${keys[i]}`]) {
+ return false;
+ }
+ }
+ return true;
+}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage