From 522dd99d840ee02701a4c6da7b15d935588e856e Mon Sep 17 00:00:00 2001
From: end-4 <97237370+end-4@users.noreply.github.com>
Date: Tue, 20 Feb 2024 12:13:16 +0700
Subject: [PATCH] refractor: clamp, distro; add distro icon next to uptime
---
.config/ags/assets/icons/cachyos-symbolic.svg | 308 ++++++++----------
.config/ags/assets/icons/linux-symbolic.svg | 113 +++++++
.config/ags/modules/.miscutils/mathfuncs.js | 4 +
.config/ags/modules/.miscutils/system.js | 37 +++
.../modules/desktopbackground/wallpaper.js | 5 +-
.config/ags/modules/sideleft/tools/color.js | 3 +-
.../ags/modules/sideleft/tools/colorpicker.js | 3 +-
.../modules/sideleft/tools/quickscripts.js | 6 +-
.config/ags/modules/sideright/sideright.js | 7 +-
.config/ags/scss/_musicmaterial.scss | 1 -
.config/ags/services/brightness.js | 2 +-
11 files changed, 294 insertions(+), 195 deletions(-)
create mode 100644 .config/ags/assets/icons/linux-symbolic.svg
create mode 100644 .config/ags/modules/.miscutils/mathfuncs.js
create mode 100644 .config/ags/modules/.miscutils/system.js
diff --git a/.config/ags/assets/icons/cachyos-symbolic.svg b/.config/ags/assets/icons/cachyos-symbolic.svg
index f2649b1e6..4a9db19ab 100644
--- a/.config/ags/assets/icons/cachyos-symbolic.svg
+++ b/.config/ags/assets/icons/cachyos-symbolic.svg
@@ -4,8 +4,8 @@
width="20"
height="20"
version="1.1"
- viewBox="0 0 17.921002 17.921002"
- sodipodi:docname="CachyOS_Logo.svg"
+ viewBox="0 0 17.921003 17.921002"
+ sodipodi:docname="cachyos-symbolic.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
@@ -21,10 +21,10 @@
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
- inkscape:zoom="12.91837"
- inkscape:cx="9.869666"
- inkscape:cy="15.907579"
- inkscape:window-width="1424"
+ inkscape:zoom="32"
+ inkscape:cx="10.671875"
+ inkscape:cy="11.234375"
+ inkscape:window-width="1687"
inkscape:window-height="1028"
inkscape:window-x="0"
inkscape:window-y="0"
@@ -38,7 +38,7 @@
x2="237.07001"
y1="296.20001"
y2="304.07999"
- gradientTransform="matrix(0.04476,0,0,0.044679,-8.5923,-4.6302)"
+ gradientTransform="matrix(0.04476,0,0,0.044679,-8.5042241,-4.351186)"
gradientUnits="userSpaceOnUse"
xlink:href="#linearGradient937" />
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/.config/ags/assets/icons/linux-symbolic.svg b/.config/ags/assets/icons/linux-symbolic.svg
new file mode 100644
index 000000000..63f9c7e58
--- /dev/null
+++ b/.config/ags/assets/icons/linux-symbolic.svg
@@ -0,0 +1,113 @@
+
+
+
+
diff --git a/.config/ags/modules/.miscutils/mathfuncs.js b/.config/ags/modules/.miscutils/mathfuncs.js
new file mode 100644
index 000000000..ba1c0b594
--- /dev/null
+++ b/.config/ags/modules/.miscutils/mathfuncs.js
@@ -0,0 +1,4 @@
+
+export function clamp(x, min, max) {
+ return Math.min(Math.max(x, min), max);
+}
\ No newline at end of file
diff --git a/.config/ags/modules/.miscutils/system.js b/.config/ags/modules/.miscutils/system.js
new file mode 100644
index 000000000..002f5123d
--- /dev/null
+++ b/.config/ags/modules/.miscutils/system.js
@@ -0,0 +1,37 @@
+import * as Utils from 'resource:///com/github/Aylur/ags/utils.js';
+const { execAsync, exec } = Utils;
+
+export const distroID = exec(`bash -c 'cat /etc/os-release | grep "^ID=" | cut -d "=" -f 2'`).trim();
+export const isDebianDistro = (distroID == 'linuxmint' || distroID == 'ubuntu' || distroID == 'debian' || distroID == 'zorin' || distroID == 'popos' || distroID == 'raspbian' || distroID == 'kali' || distroID == 'elementary');
+export const isArchDistro = (distroID == 'arch' || distroID == 'endeavouros' || distroID == 'cachyos');
+export const hasFlatpak = !!exec(`bash -c 'command -v flatpak'`);
+
+export const getDistroIcon = () => {
+ if(distroID == 'linuxmint') return 'ubuntu-symbolic';
+ if(distroID == 'ubuntu') return 'ubuntu-symbolic';
+ if(distroID == 'debian') return 'debian-symbolic';
+ if(distroID == 'zorin') return 'ubuntu-symbolic';
+ if(distroID == 'popos') return 'ubuntu-symbolic';
+ if(distroID == 'raspbian') return 'debian-symbolic';
+ if(distroID == 'kali') return 'debian-symbolic';
+ if(distroID == 'elementary') return 'debian-symbolic';
+ if(distroID == 'arch') return 'arch-symbolic';
+ if(distroID == 'endeavouros') return 'endeavouros-symbolic';
+ if(distroID == 'cachyos') return 'cachyos-symbolic';
+ return 'linux-symbolic';
+}
+
+export const getDistroName = () => {
+ if(distroID == 'linuxmint') return 'Linux Mint';
+ if(distroID == 'ubuntu') return 'Ubuntu';
+ if(distroID == 'debian') return 'Debian';
+ if(distroID == 'zorin') return 'Zorin';
+ if(distroID == 'pop') return 'Pop!_OS';
+ if(distroID == 'raspbian') return 'Raspbian';
+ if(distroID == 'kali') return 'Kali Linux';
+ if(distroID == 'elementary') return 'elementary OS';
+ if(distroID == 'arch') return 'Arch Linux';
+ if(distroID == 'endeavouros') return 'EndeavourOS';
+ if(distroID == 'cachyos') return 'CachyOS';
+ return 'Linux';
+}
\ No newline at end of file
diff --git a/.config/ags/modules/desktopbackground/wallpaper.js b/.config/ags/modules/desktopbackground/wallpaper.js
index 5ab0e6c8a..da98c2176 100644
--- a/.config/ags/modules/desktopbackground/wallpaper.js
+++ b/.config/ags/modules/desktopbackground/wallpaper.js
@@ -8,6 +8,7 @@ import Hyprland from 'resource:///com/github/Aylur/ags/service/hyprland.js';
import Wallpaper from '../../services/wallpaper.js';
import { setupCursorHover } from '../.widgetutils/cursorhover.js';
+import { clamp } from '../.miscutils/mathfuncs.js';
const DISABLE_AGS_WALLPAPER = true;
@@ -18,10 +19,6 @@ const MAX_WORKSPACES = 10;
const WALLPAPER_OFFSCREEN_X = (WALLPAPER_ZOOM_SCALE - 1) * SCREEN_WIDTH;
const WALLPAPER_OFFSCREEN_Y = (WALLPAPER_ZOOM_SCALE - 1) * SCREEN_HEIGHT;
-function clamp(x, min, max) {
- return Math.min(Math.max(x, min), max);
-}
-
export default (monitor = 0) => {
const wallpaperImage = Widget.DrawingArea({
diff --git a/.config/ags/modules/sideleft/tools/color.js b/.config/ags/modules/sideleft/tools/color.js
index f93b56b57..568a04c33 100644
--- a/.config/ags/modules/sideleft/tools/color.js
+++ b/.config/ags/modules/sideleft/tools/color.js
@@ -3,8 +3,7 @@ const { Gio, GLib } = imports.gi;
import Service from 'resource:///com/github/Aylur/ags/service.js';
import * as Utils from 'resource:///com/github/Aylur/ags/utils.js';
const { exec, execAsync } = Utils;
-
-const clamp = (num, min, max) => Math.min(Math.max(num, min), max);
+import { clamp } from '../../.miscutils/mathfuncs.js';
export class ColorPickerSelection extends Service {
static {
diff --git a/.config/ags/modules/sideleft/tools/colorpicker.js b/.config/ags/modules/sideleft/tools/colorpicker.js
index 9c490545c..203695dc3 100644
--- a/.config/ags/modules/sideleft/tools/colorpicker.js
+++ b/.config/ags/modules/sideleft/tools/colorpicker.js
@@ -11,8 +11,7 @@ import { MaterialIcon } from '../../.commonwidgets/materialicon.js';
import { setupCursorHover } from '../../.widgetutils/cursorhover.js';
import { ColorPickerSelection, hslToHex, hslToRgbValues, hexToHSL } from './color.js';
-
-const clamp = (num, min, max) => Math.min(Math.max(num, min), max);
+import { clamp } from '../../.miscutils/mathfuncs.js';
export default () => {
const selectedColor = new ColorPickerSelection();
diff --git a/.config/ags/modules/sideleft/tools/quickscripts.js b/.config/ags/modules/sideleft/tools/quickscripts.js
index a0bb205d1..5b3fbec8e 100644
--- a/.config/ags/modules/sideleft/tools/quickscripts.js
+++ b/.config/ags/modules/sideleft/tools/quickscripts.js
@@ -9,10 +9,8 @@ import { MaterialIcon } from '../../.commonwidgets/materialicon.js';
import { setupCursorHover } from '../../.widgetutils/cursorhover.js';
Gtk.IconTheme.get_default().append_search_path(`${App.configDir}/assets/icons`);
-const distroID = exec(`bash -c 'cat /etc/os-release | grep "^ID=" | cut -d "=" -f 2'`).trim();
-const isDebianDistro = (distroID == 'linuxmint' || distroID == 'ubuntu' || distroID == 'debian' || distroID == 'zorin' || distroID == 'pop' || distroID == 'raspbian' || distroID == 'kali' || distroID == 'elementary');
-const isArchDistro = (distroID == 'arch' || distroID == 'endeavouros' || distroID == 'cachyos');
-const hasFlatpak = !!exec(`bash -c 'command -v flatpak'`);
+import { distroID, isArchDistro, isDebianDistro, hasFlatpak } from '../../.miscutils/system.js';
+
const scripts = [
{
diff --git a/.config/ags/modules/sideright/sideright.js b/.config/ags/modules/sideright/sideright.js
index 911ed1411..7ed8095eb 100644
--- a/.config/ags/modules/sideright/sideright.js
+++ b/.config/ags/modules/sideright/sideright.js
@@ -16,10 +16,15 @@ import {
} from "./quicktoggles.js";
import ModuleNotificationList from "./notificationlist.js";
import { ModuleCalendar } from "./calendar.js";
+import { getDistroIcon } from '../.miscutils/system.js';
const timeRow = Box({
- className: 'spacing-h-5 sidebar-group-invisible-morehorizpad',
+ className: 'spacing-h-10 sidebar-group-invisible-morehorizpad',
children: [
+ Widget.Icon({
+ icon: getDistroIcon(),
+ className: 'txt txt-larger',
+ }),
Widget.Label({
hpack: 'center',
className: 'txt-small txt',
diff --git a/.config/ags/scss/_musicmaterial.scss b/.config/ags/scss/_musicmaterial.scss
index 8b1378917..e69de29bb 100644
--- a/.config/ags/scss/_musicmaterial.scss
+++ b/.config/ags/scss/_musicmaterial.scss
@@ -1 +0,0 @@
-
diff --git a/.config/ags/services/brightness.js b/.config/ags/services/brightness.js
index 8032b14ae..89bfbac10 100644
--- a/.config/ags/services/brightness.js
+++ b/.config/ags/services/brightness.js
@@ -2,7 +2,7 @@ import Service from 'resource:///com/github/Aylur/ags/service.js';
import * as Utils from 'resource:///com/github/Aylur/ags/utils.js';
const { exec, execAsync } = Utils;
-const clamp = (num, min, max) => Math.min(Math.max(num, min), max);
+import { clamp } from '../modules/.miscutils/mathfuncs.js';
class BrightnessService extends Service {
static {