Added ags to hyprland
This commit is contained in:
79
home/desktops/hyprland/ags/config.js
Normal file
79
home/desktops/hyprland/ags/config.js
Normal file
@@ -0,0 +1,79 @@
|
||||
"use strict";
|
||||
// Import
|
||||
import Gdk from 'gi://Gdk';
|
||||
import GLib from 'gi://GLib';
|
||||
import App from 'resource:///com/github/Aylur/ags/app.js'
|
||||
import * as Utils from 'resource:///com/github/Aylur/ags/utils.js'
|
||||
// Stuff
|
||||
import userOptions from './modules/.configuration/user_options.js';
|
||||
import { firstRunWelcome, startBatteryWarningService } from './services/messages.js';
|
||||
import { startAutoDarkModeService } from './services/darkmode.js';
|
||||
// Widgets
|
||||
import { Bar, BarCornerTopleft, BarCornerTopright } from './modules/bar/main.js';
|
||||
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';
|
||||
import Session from './modules/session/main.js';
|
||||
import SideLeft from './modules/sideleft/main.js';
|
||||
import SideRight from './modules/sideright/main.js';
|
||||
import { COMPILED_STYLE_DIR } from './init.js';
|
||||
|
||||
const range = (length, start = 1) => Array.from({ length }, (_, i) => i + start);
|
||||
function forMonitors(widget) {
|
||||
const n = Gdk.Display.get_default()?.get_n_monitors() || 1;
|
||||
return range(n, 0).map(widget).flat(1);
|
||||
}
|
||||
function forMonitorsAsync(widget) {
|
||||
const n = Gdk.Display.get_default()?.get_n_monitors() || 1;
|
||||
return range(n, 0).forEach((n) => widget(n).catch(print))
|
||||
}
|
||||
|
||||
// Start stuff
|
||||
handleStyles(true);
|
||||
startAutoDarkModeService().catch(print);
|
||||
firstRunWelcome().catch(print);
|
||||
startBatteryWarningService().catch(print)
|
||||
|
||||
const Windows = () => [
|
||||
// forMonitors(DesktopBackground),
|
||||
forMonitors(Crosshair),
|
||||
Overview(),
|
||||
forMonitors(Indicator),
|
||||
forMonitors(Cheatsheet),
|
||||
SideLeft(),
|
||||
SideRight(),
|
||||
forMonitors(Osk),
|
||||
forMonitors(Session),
|
||||
...(userOptions.dock.enabled ? [forMonitors(Dock)] : []),
|
||||
...(userOptions.appearance.fakeScreenRounding !== 0 ? [
|
||||
forMonitors((id) => Corner(id, 'top left', true)),
|
||||
forMonitors((id) => Corner(id, 'top right', true)),
|
||||
] : []),
|
||||
forMonitors((id) => Corner(id, 'bottom left', userOptions.appearance.fakeScreenRounding !== 0)),
|
||||
forMonitors((id) => Corner(id, 'bottom right', userOptions.appearance.fakeScreenRounding !== 0)),
|
||||
forMonitors(BarCornerTopleft),
|
||||
forMonitors(BarCornerTopright),
|
||||
];
|
||||
|
||||
const CLOSE_ANIM_TIME = 210; // Longer than actual anim time to make sure widgets animate fully
|
||||
const closeWindowDelays = {}; // For animations
|
||||
for (let i = 0; i < (Gdk.Display.get_default()?.get_n_monitors() || 1); i++) {
|
||||
closeWindowDelays[`osk${i}`] = CLOSE_ANIM_TIME;
|
||||
}
|
||||
|
||||
App.config({
|
||||
css: `${COMPILED_STYLE_DIR}/style.css`,
|
||||
stackTraceOnError: true,
|
||||
closeWindowDelay: closeWindowDelays,
|
||||
windows: Windows().flat(1),
|
||||
});
|
||||
|
||||
// Stuff that don't need to be toggled. And they're async so ugh...
|
||||
forMonitorsAsync(Bar);
|
||||
// Bar().catch(print); // Use this to debug the bar. Single monitor only.
|
||||
|
||||
Reference in New Issue
Block a user