33 lines
1.4 KiB
JavaScript
33 lines
1.4 KiB
JavaScript
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'
|
|
import { darkMode } from './modules/.miscutils/system.js';
|
|
|
|
export const COMPILED_STYLE_DIR = `${GLib.get_user_cache_dir()}/ags/user/generated`
|
|
|
|
globalThis['handleStyles'] = (resetMusic) => {
|
|
// Reset
|
|
Utils.exec(`mkdir -p "${GLib.get_user_state_dir()}/ags/scss"`);
|
|
if (resetMusic) {
|
|
Utils.exec(`bash -c 'echo "" > ${GLib.get_user_state_dir()}/ags/scss/_musicwal.scss'`); // reset music styles
|
|
Utils.exec(`bash -c 'echo "" > ${GLib.get_user_state_dir()}/ags/scss/_musicmaterial.scss'`); // reset music styles
|
|
}
|
|
// Generate overrides
|
|
let lightdark = darkMode.value ? "dark" : "light";
|
|
Utils.writeFileSync(
|
|
`@mixin symbolic-icon {
|
|
-gtk-icon-theme: '${userOptions.icons.symbolicIconTheme[lightdark]}';
|
|
}
|
|
`,
|
|
`${GLib.get_user_state_dir()}/ags/scss/_lib_mixins_overrides.scss`)
|
|
// Compile and apply
|
|
async function applyStyle() {
|
|
Utils.exec(`mkdir -p ${COMPILED_STYLE_DIR}`);
|
|
Utils.exec(`sass -I "${GLib.get_user_state_dir()}/ags/scss" -I "${App.configDir}/scss/fallback" "${App.configDir}/scss/main.scss" "${COMPILED_STYLE_DIR}/style.css"`);
|
|
App.resetCss();
|
|
App.applyCss(`${COMPILED_STYLE_DIR}/style.css`);
|
|
console.log('[LOG] Styles loaded')
|
|
}
|
|
applyStyle().catch(print);
|
|
}
|