From 874851993d5be83b4aafec60a48595bc5165cc88 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Thu, 16 May 2024 13:21:46 +0700 Subject: [PATCH] add crosshair --- .../ags/assets/icons/crosshair-symbolic.svg | 65 +++++++++++++++++++ .config/ags/config.js | 3 +- .../modules/.configuration/user_options.js | 6 ++ .config/ags/modules/crosshair/main.js | 21 ++++++ .config/hypr/hyprland/keybinds.conf | 1 + 5 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 .config/ags/assets/icons/crosshair-symbolic.svg create mode 100644 .config/ags/modules/crosshair/main.js diff --git a/.config/ags/assets/icons/crosshair-symbolic.svg b/.config/ags/assets/icons/crosshair-symbolic.svg new file mode 100644 index 000000000..22967493d --- /dev/null +++ b/.config/ags/assets/icons/crosshair-symbolic.svg @@ -0,0 +1,65 @@ + + + + + + + ionicons-v5_logos + + + + ionicons-v5_logos + + + + + + diff --git a/.config/ags/config.js b/.config/ags/config.js index 77555b4c9..1dc2d70b4 100644 --- a/.config/ags/config.js +++ b/.config/ags/config.js @@ -13,6 +13,7 @@ import Cheatsheet from './modules/cheatsheet/main.js'; // import DesktopBackground from './modules/desktopbackground/main.js'; import Dock from './modules/dock/main.js'; import Corner from './modules/screencorners/main.js'; +import Crosshair from './modules/crosshair/main.js'; import Indicator from './modules/indicators/main.js'; import Osk from './modules/onscreenkeyboard/main.js'; import Overview from './modules/overview/main.js'; @@ -46,7 +47,7 @@ applyStyle().catch(print); const Windows = () => [ // forMonitors(DesktopBackground), - + forMonitors(Crosshair), Overview(), forMonitors(Indicator), forMonitors(Cheatsheet), diff --git a/.config/ags/modules/.configuration/user_options.js b/.config/ags/modules/.configuration/user_options.js index e17e98b29..92c0efd20 100644 --- a/.config/ags/modules/.configuration/user_options.js +++ b/.config/ags/modules/.configuration/user_options.js @@ -49,6 +49,12 @@ let configOptions = { 'default': "auto", }, }, + 'gaming': { + 'crosshair': { + 'size': 20, + 'color': 'rgba(113,227,32,0.9)', + }, + }, 'music': { 'preferredPlayer': "plasma-browser-integration", }, diff --git a/.config/ags/modules/crosshair/main.js b/.config/ags/modules/crosshair/main.js new file mode 100644 index 000000000..57b18d1fe --- /dev/null +++ b/.config/ags/modules/crosshair/main.js @@ -0,0 +1,21 @@ +import Widget from 'resource:///com/github/Aylur/ags/widget.js'; +import { enableClickthrough } from "../.widgetutils/clickthrough.js"; +import { RoundedCorner } from "../.commonwidgets/cairo_roundedcorner.js"; + +export default (monitor = 0, ) => { + return Widget.Window({ + monitor, + name: `crosshair${monitor}`, + layer: 'overlay', + exclusivity: 'ignore', + child: Widget.Icon({ + icon: 'crosshair-symbolic', + css: ` + font-size: ${userOptions.gaming.crosshair.size}px; + color: ${userOptions.gaming.crosshair.color}; + `, + }), + setup: enableClickthrough, + }); +} + diff --git a/.config/hypr/hyprland/keybinds.conf b/.config/hypr/hyprland/keybinds.conf index 7e26aad3f..67cbd33aa 100644 --- a/.config/hypr/hyprland/keybinds.conf +++ b/.config/hypr/hyprland/keybinds.conf @@ -91,6 +91,7 @@ bind = Super, M, exec, ags run-js 'openMusicControls.value = (!mpris.getPlayer() bind = Super, Comma, exec, ags run-js 'openColorScheme.value = true; Utils.timeout(2000, () => openColorScheme.value = false);' bind = Super, K, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do ags -t "osk""$i"; done bind = Control+Alt, Delete, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do ags -t "session""$i"; done +bind = Control+Super, G, exec, for ((i=0; i<$(hyprctl monitors -j | jq length); i++)); do ags -t "crosshair""$i"; done bindle = , XF86AudioRaiseVolume, exec, ags run-js 'indicator.popup(1);' bindle = , XF86AudioLowerVolume, exec, ags run-js 'indicator.popup(1);' bindle=, XF86MonBrightnessUp, exec, ags run-js 'brightness.screen_value += 0.05; indicator.popup(1);'