Consistently use XDG base directiories (#381)

This commit is contained in:
end-4
2024-05-19 22:27:58 +07:00
committed by GitHub
21 changed files with 139 additions and 110 deletions
+4 -3
View File
@@ -33,11 +33,12 @@ function forMonitorsAsync(widget) {
} }
// SCSS compilation // SCSS compilation
Utils.exec(`bash -c 'echo "" > ${App.configDir}/scss/_musicwal.scss'`); // reset music styles Utils.exec(`mkdir -p "${GLib.get_user_state_dir()}/ags/scss"`);
Utils.exec(`bash -c 'echo "" > ${App.configDir}/scss/_musicmaterial.scss'`); // reset music styles 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
async function applyStyle() { async function applyStyle() {
Utils.exec(`mkdir -p ${COMPILED_STYLE_DIR}`); Utils.exec(`mkdir -p ${COMPILED_STYLE_DIR}`);
Utils.exec(`sass ${App.configDir}/scss/main.scss ${COMPILED_STYLE_DIR}/style.css`); 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.resetCss();
App.applyCss(`${COMPILED_STYLE_DIR}/style.css`); App.applyCss(`${COMPILED_STYLE_DIR}/style.css`);
console.log('[LOG] Styles loaded') console.log('[LOG] Styles loaded')
+4 -3
View File
@@ -16,12 +16,13 @@ import userOptions from './modules/.configuration/user_options.js';
// Widgets // Widgets
import Overview from './modules/overview/main.js'; import Overview from './modules/overview/main.js';
Utils.exec(`bash -c 'echo "" > ${App.configDir}/scss/_musicwal.scss'`); // reset music styles
Utils.exec(`bash -c 'echo "" > ${App.configDir}/scss/_musicmaterial.scss'`); // reset music styles
const COMPILED_STYLE_DIR = `${GLib.get_user_cache_dir()}/ags/user/generated` const COMPILED_STYLE_DIR = `${GLib.get_user_cache_dir()}/ags/user/generated`
Utils.exec(`mkdir -p "${GLib.get_user_state_dir()}/ags/scss"`);
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
async function applyStyle() { async function applyStyle() {
Utils.exec(`mkdir -p ${COMPILED_STYLE_DIR}`); Utils.exec(`mkdir -p ${COMPILED_STYLE_DIR}`);
Utils.exec(`sass ${App.configDir}/scss/main.scss ${COMPILED_STYLE_DIR}/style.css`); 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.resetCss();
App.applyCss(`${COMPILED_STYLE_DIR}/style.css`); App.applyCss(`${COMPILED_STYLE_DIR}/style.css`);
console.log('[LOG] Styles loaded') console.log('[LOG] Styles loaded')
+2 -2
View File
@@ -8,8 +8,8 @@ export const isDebianDistro = (distroID == 'linuxmint' || distroID == 'ubuntu' |
export const isArchDistro = (distroID == 'arch' || distroID == 'endeavouros' || distroID == 'cachyos'); export const isArchDistro = (distroID == 'arch' || distroID == 'endeavouros' || distroID == 'cachyos');
export const hasFlatpak = !!exec(`bash -c 'command -v flatpak'`); export const hasFlatpak = !!exec(`bash -c 'command -v flatpak'`);
const LIGHTDARK_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/colormode.txt`; const LIGHTDARK_FILE_LOCATION = `${GLib.get_user_state_dir()}/ags/user/colormode.txt`;
const colorMode = Utils.exec('bash -c "sed -n \'1p\' $HOME/.cache/ags/user/colormode.txt"'); const colorMode = Utils.exec(`bash -c "sed -n '1p' '${LIGHTDARK_FILE_LOCATION}'"`);
export let darkMode = Variable(!(Utils.readFile(LIGHTDARK_FILE_LOCATION).split('\n')[0].trim() == 'light')); export let darkMode = Variable(!(Utils.readFile(LIGHTDARK_FILE_LOCATION).split('\n')[0].trim() == 'light'));
export const hasPlasmaIntegration = !!Utils.exec('bash -c "command -v plasma-browser-integration-host"'); export const hasPlasmaIntegration = !!Utils.exec('bash -c "command -v plasma-browser-integration-host"');
+8 -8
View File
@@ -8,13 +8,13 @@ import { AnimatedCircProg } from "../../.commonwidgets/cairo_circularprogress.js
import { MaterialIcon } from '../../.commonwidgets/materialicon.js'; import { MaterialIcon } from '../../.commonwidgets/materialicon.js';
import { showMusicControls } from '../../../variables.js'; import { showMusicControls } from '../../../variables.js';
const CUSTOM_MODULE_CONTENT_INTERVAL_FILE = `${GLib.get_home_dir()}/.cache/ags/user/scripts/custom-module-interval.txt`; const CUSTOM_MODULE_CONTENT_INTERVAL_FILE = `${GLib.get_user_cache_dir()}/ags/user/scripts/custom-module-interval.txt`;
const CUSTOM_MODULE_CONTENT_SCRIPT = `${GLib.get_home_dir()}/.cache/ags/user/scripts/custom-module-poll.sh`; const CUSTOM_MODULE_CONTENT_SCRIPT = `${GLib.get_user_cache_dir()}/ags/user/scripts/custom-module-poll.sh`;
const CUSTOM_MODULE_LEFTCLICK_SCRIPT = `${GLib.get_home_dir()}/.cache/ags/user/scripts/custom-module-leftclick.sh`; const CUSTOM_MODULE_LEFTCLICK_SCRIPT = `${GLib.get_user_cache_dir()}/ags/user/scripts/custom-module-leftclick.sh`;
const CUSTOM_MODULE_RIGHTCLICK_SCRIPT = `${GLib.get_home_dir()}/.cache/ags/user/scripts/custom-module-rightclick.sh`; const CUSTOM_MODULE_RIGHTCLICK_SCRIPT = `${GLib.get_user_cache_dir()}/ags/user/scripts/custom-module-rightclick.sh`;
const CUSTOM_MODULE_MIDDLECLICK_SCRIPT = `${GLib.get_home_dir()}/.cache/ags/user/scripts/custom-module-middleclick.sh`; const CUSTOM_MODULE_MIDDLECLICK_SCRIPT = `${GLib.get_user_cache_dir()}/ags/user/scripts/custom-module-middleclick.sh`;
const CUSTOM_MODULE_SCROLLUP_SCRIPT = `${GLib.get_home_dir()}/.cache/ags/user/scripts/custom-module-scrollup.sh`; const CUSTOM_MODULE_SCROLLUP_SCRIPT = `${GLib.get_user_cache_dir()}/ags/user/scripts/custom-module-scrollup.sh`;
const CUSTOM_MODULE_SCROLLDOWN_SCRIPT = `${GLib.get_home_dir()}/.cache/ags/user/scripts/custom-module-scrolldown.sh`; const CUSTOM_MODULE_SCROLLDOWN_SCRIPT = `${GLib.get_user_cache_dir()}/ags/user/scripts/custom-module-scrolldown.sh`;
function trimTrackTitle(title) { function trimTrackTitle(title) {
if (!title) return ''; if (!title) return '';
@@ -157,7 +157,7 @@ export default () => {
] ]
}) })
const SystemResourcesOrCustomModule = () => { const SystemResourcesOrCustomModule = () => {
// Check if ~/.cache/ags/user/scripts/custom-module-poll.sh exists // Check if $XDG_CACHE_HOME/ags/user/scripts/custom-module-poll.sh exists
if (GLib.file_test(CUSTOM_MODULE_CONTENT_SCRIPT, GLib.FileTest.EXISTS)) { if (GLib.file_test(CUSTOM_MODULE_CONTENT_SCRIPT, GLib.FileTest.EXISTS)) {
const interval = Number(Utils.readFile(CUSTOM_MODULE_CONTENT_INTERVAL_FILE)) || 5000; const interval = Number(Utils.readFile(CUSTOM_MODULE_CONTENT_INTERVAL_FILE)) || 5000;
return BarGroup({ return BarGroup({
@@ -96,11 +96,12 @@ const schemeOptionsArr = [
//] //]
]; ];
const initColorMode = Utils.exec('bash -c "sed -n \'1p\' $HOME/.cache/ags/user/colormode.txt"'); const LIGHTDARK_FILE_LOCATION = `${GLib.get_user_state_dir()}/ags/user/colormode.txt`;
const initColorMode = Utils.exec(`bash -c "sed -n \'1p\' ${LIGHTDARK_FILE_LOCATION}"`);
const initColorVal = (initColorMode == "dark") ? 1 : 0; const initColorVal = (initColorMode == "dark") ? 1 : 0;
const initTransparency = Utils.exec('bash -c "sed -n \'2p\' $HOME/.cache/ags/user/colormode.txt"'); const initTransparency = Utils.exec(`bash -c "sed -n \'2p\' ${LIGHTDARK_FILE_LOCATION}"`);
const initTransparencyVal = (initTransparency == "transparent") ? 1 : 0; const initTransparencyVal = (initTransparency == "transparent") ? 1 : 0;
const initScheme = Utils.exec('bash -c "sed -n \'3p\' $HOME/.cache/ags/user/colormode.txt"'); const initScheme = Utils.exec(`bash -c "sed -n \'3p\' ${LIGHTDARK_FILE_LOCATION}"`);
const initSchemeIndex = calculateSchemeInitIndex(schemeOptionsArr, initScheme); const initSchemeIndex = calculateSchemeInitIndex(schemeOptionsArr, initScheme);
const ColorSchemeSettings = () => Widget.Box({ const ColorSchemeSettings = () => Widget.Box({
@@ -125,7 +126,7 @@ const ColorSchemeSettings = () => Widget.Box({
initValue: initColorVal, initValue: initColorVal,
onChange: (self, newValue) => { onChange: (self, newValue) => {
let lightdark = newValue == 0 ? "light" : "dark"; let lightdark = newValue == 0 ? "light" : "dark";
execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && sed -i "1s/.*/${lightdark}/" ${GLib.get_user_cache_dir()}/ags/user/colormode.txt`]) execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_state_dir()}/ags/user && sed -i "1s/.*/${lightdark}/" ${GLib.get_user_state_dir()}/ags/user/colormode.txt`])
.then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`])) .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`]))
.catch(print); .catch(print);
}, },
@@ -137,7 +138,7 @@ const ColorSchemeSettings = () => Widget.Box({
initValue: initTransparencyVal, initValue: initTransparencyVal,
onChange: (self, newValue) => { onChange: (self, newValue) => {
let transparency = newValue == 0 ? "opaque" : "transparent"; let transparency = newValue == 0 ? "opaque" : "transparent";
execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && sed -i "2s/.*/${transparency}/" ${GLib.get_user_cache_dir()}/ags/user/colormode.txt`]) execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_state_dir()}/ags/user && sed -i "2s/.*/${transparency}/" ${GLib.get_user_state_dir()}/ags/user/colormode.txt`])
.then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`])) .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`]))
.catch(print); .catch(print);
}, },
@@ -161,7 +162,7 @@ const ColorSchemeSettings = () => Widget.Box({
optionsArr: schemeOptionsArr, optionsArr: schemeOptionsArr,
initIndex: initSchemeIndex, initIndex: initSchemeIndex,
onChange: (value, name) => { onChange: (value, name) => {
execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && sed -i "3s/.*/${value}/" ${GLib.get_user_cache_dir()}/ags/user/colormode.txt`]) execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_state_dir()}/ags/user && sed -i "3s/.*/${value}/" ${GLib.get_user_state_dir()}/ags/user/colormode.txt`])
.then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`])) .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`]))
.catch(print); .catch(print);
}, },
@@ -12,8 +12,8 @@ import { showMusicControls } from '../../variables.js';
import { darkMode, hasPlasmaIntegration } from '../.miscutils/system.js'; import { darkMode, hasPlasmaIntegration } from '../.miscutils/system.js';
const COMPILED_STYLE_DIR = `${GLib.get_user_cache_dir()}/ags/user/generated` const COMPILED_STYLE_DIR = `${GLib.get_user_cache_dir()}/ags/user/generated`
const LIGHTDARK_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/colormode.txt`; const LIGHTDARK_FILE_LOCATION = `${GLib.get_user_state_dir()}/ags/user/colormode.txt`;
const colorMode = Utils.exec('bash -c "sed -n \'1p\' $HOME/.cache/ags/user/colormode.txt"'); const colorMode = Utils.exec(`bash -c "sed -n \'1p\' '${LIGHTDARK_FILE_LOCATION}'"`);
const lightDark = (colorMode == "light") ? '-l' : ''; const lightDark = (colorMode == "light") ? '-l' : '';
const COVER_COLORSCHEME_SUFFIX = '_colorscheme.css'; const COVER_COLORSCHEME_SUFFIX = '_colorscheme.css';
var lastCoverPath = ''; var lastCoverPath = '';
@@ -206,11 +206,11 @@ const CoverArt = ({ player, ...rest }) => {
// Generate colors // Generate colors
execAsync(['bash', '-c', execAsync(['bash', '-c',
`${App.configDir}/scripts/color_generation/generate_colors_material.py --path '${coverPath}' --mode ${darkMode.value ? 'dark' : 'light'} > ${App.configDir}/scss/_musicmaterial.scss`]) `${App.configDir}/scripts/color_generation/generate_colors_material.py --path '${coverPath}' --mode ${darkMode.value ? 'dark' : 'light'} > ${GLib.get_user_state_dir()}/ags/scss/_musicmaterial.scss`])
.then(() => { .then(() => {
exec(`wal -i "${player.coverPath}" -n -t -s -e -q ${darkMode.value ? '' : '-l'}`) exec(`wal -i "${player.coverPath}" -n -t -s -e -q ${darkMode.value ? '' : '-l'}`)
exec(`cp ${GLib.get_user_cache_dir()}/wal/colors.scss ${App.configDir}/scss/_musicwal.scss`); exec(`cp ${GLib.get_user_cache_dir()}/wal/colors.scss ${GLib.get_user_state_dir()}/ags/scss/_musicwal.scss`);
exec(`sass ${App.configDir}/scss/_music.scss ${stylePath}`); exec(`sass -I "${GLib.get_user_state_dir()}/ags/scss" -I "${App.configDir}/scss/fallback" "${App.configDir}/scss/_music.scss" "${stylePath}"`);
Utils.timeout(200, () => { Utils.timeout(200, () => {
// self.attribute.showImage(self, coverPath) // self.attribute.showImage(self, coverPath)
self.css = `background-image: url('${coverPath}');`; // CSS image self.css = `background-image: url('${coverPath}');`; // CSS image
@@ -33,28 +33,28 @@ export function launchCustomCommand(command) {
} }
else if (args[0] == '>light') { // Light mode else if (args[0] == '>light') { // Light mode
darkMode.value = false; darkMode.value = false;
execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && sed -i "1s/.*/light/" ${GLib.get_user_cache_dir()}/ags/user/colormode.txt`]) execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_state_dir()}/ags/user && sed -i "1s/.*/light/" ${GLib.get_user_state_dir()}/ags/user/colormode.txt`])
.then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`])) .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`]))
.catch(print); .catch(print);
} }
else if (args[0] == '>dark') { // Dark mode else if (args[0] == '>dark') { // Dark mode
darkMode.value = true; darkMode.value = true;
execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && sed -i "1s/.*/dark/" ${GLib.get_user_cache_dir()}/ags/user/colormode.txt`]) execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_state_dir()}/ags/user && sed -i "1s/.*/dark/" ${GLib.get_user_state_dir()}/ags/user/colormode.txt`])
.then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`])) .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`]))
.catch(print); .catch(print);
} }
else if (args[0] == '>badapple') { // Black and white else if (args[0] == '>badapple') { // Black and white
execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && sed -i "3s/.*/monochrome/" ${GLib.get_user_cache_dir()}/ags/user/colormode.txt`]) execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_state_dir()}/ags/user && sed -i "3s/.*/monochrome/" ${GLib.get_user_state_dir()}/ags/user/colormode.txt`])
.then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`])) .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`]))
.catch(print); .catch(print);
} }
else if (args[0] == '>material') { // Use material colors else if (args[0] == '>material') { // Use material colors
execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && echo "material" > ${GLib.get_user_cache_dir()}/ags/user/colorbackend.txt`]).catch(print) execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_state_dir()}/ags/user && echo "material" > ${GLib.get_user_state_dir()}/ags/user/colorbackend.txt`]).catch(print)
.then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchwall.sh --noswitch`]).catch(print)) .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchwall.sh --noswitch`]).catch(print))
.catch(print); .catch(print);
} }
else if (args[0] == '>pywal') { // Use Pywal (ik it looks shit but I'm not removing) else if (args[0] == '>pywal') { // Use Pywal (ik it looks shit but I'm not removing)
execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && echo "pywal" > ${GLib.get_user_cache_dir()}/ags/user/colorbackend.txt`]).catch(print) execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_state_dir()}/ags/user && echo "pywal" > ${GLib.get_user_state_dir()}/ags/user/colorbackend.txt`]).catch(print)
.then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchwall.sh --noswitch`]).catch(print)) .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchwall.sh --noswitch`]).catch(print))
.catch(print); .catch(print);
} }
@@ -65,11 +65,11 @@ export default (props) => {
icon: 'border_clear', icon: 'border_clear',
name: 'Transparency', name: 'Transparency',
desc: 'Make shell elements transparent\nBlur is also recommended if you enable this', desc: 'Make shell elements transparent\nBlur is also recommended if you enable this',
initValue: exec('bash -c "sed -n \'2p\' $HOME/.cache/ags/user/colormode.txt"') == "transparent", initValue: exec(`bash -c "sed -n \'2p\' ${GLib.get_user_state_dir()}/ags/user/colormode.txt"`) == "transparent",
onChange: (self, newValue) => { onChange: (self, newValue) => {
const transparency = newValue == 0 ? "opaque" : "transparent"; const transparency = newValue == 0 ? "opaque" : "transparent";
console.log(transparency); console.log(transparency);
execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && sed -i "2s/.*/${transparency}/" ${GLib.get_user_cache_dir()}/ags/user/colormode.txt`]) execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_state_dir()}/ags/user && sed -i "2s/.*/${transparency}/" ${GLib.get_user_state_dir()}/ags/user/colormode.txt`])
.then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`])) .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`]))
.catch(print); .catch(print);
}, },
@@ -157,7 +157,7 @@ export const ModuleInvertColors = async (props = {}) => {
button.toggleClassName('sidebar-button-active', false); button.toggleClassName('sidebar-button-active', false);
} }
else { else {
Hyprland.messageAsync(`j/keyword decoration:screen_shader ${GLib.get_home_dir()}/.config/hypr/shaders/invert.frag`) Hyprland.messageAsync(`j/keyword decoration:screen_shader ${GLib.get_user_config_dir()}/hypr/shaders/invert.frag`)
.catch(print); .catch(print);
button.toggleClassName('sidebar-button-active', true); button.toggleClassName('sidebar-button-active', true);
} }
@@ -1,11 +1,18 @@
#!/usr/bin/env bash #!/usr/bin/env bash
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}"
CONFIG_DIR="$XDG_CONFIG_HOME/ags"
CACHE_DIR="$XDG_CACHE_HOME/ags"
STATE_DIR="$XDG_STATE_HOME/ags"
term_alpha=100 #Set this to < 100 make all your terminals transparent term_alpha=100 #Set this to < 100 make all your terminals transparent
# sleep 0 # idk i wanted some delay or colors dont get applied properly # sleep 0 # idk i wanted some delay or colors dont get applied properly
if [ ! -d "$HOME"/.cache/ags/user/generated ]; then if [ ! -d "$CACHE_DIR"/user/generated ]; then
mkdir -p "$HOME"/.cache/ags/user/generated mkdir -p "$CACHE_DIR"/user/generated
fi fi
cd "$HOME/.config/ags" || exit cd "$CONFIG_DIR" || exit
colornames='' colornames=''
colorstrings='' colorstrings=''
@@ -13,7 +20,7 @@ colorlist=()
colorvalues=() colorvalues=()
# wallpath=$(swww query | head -1 | awk -F 'image: ' '{print $2}') # wallpath=$(swww query | head -1 | awk -F 'image: ' '{print $2}')
# wallpath_png="$HOME"'/.cache/ags/user/generated/hypr/lockscreen.png' # wallpath_png="$CACHE_DIR/user/generated/hypr/lockscreen.png"
# convert "$wallpath" "$wallpath_png" # convert "$wallpath" "$wallpath_png"
# wallpath_png=$(echo "$wallpath_png" | sed 's/\//\\\//g') # wallpath_png=$(echo "$wallpath_png" | sed 's/\//\\\//g')
# wallpath_png=$(sed 's/\//\\\\\//g' <<< "$wallpath_png") # wallpath_png=$(sed 's/\//\\\\\//g' <<< "$wallpath_png")
@@ -32,10 +39,10 @@ transparentize() {
get_light_dark() { get_light_dark() {
lightdark="" lightdark=""
if [ ! -f "$HOME"/.cache/ags/user/colormode.txt ]; then if [ ! -f "$STATE_DIR/user/colormode.txt" ]; then
echo "" > "$HOME"/.cache/ags/user/colormode.txt echo "" > "$STATE_DIR/user/colormode.txt"
else else
lightdark=$(sed -n '1p' "$HOME/.cache/ags/user/colormode.txt") lightdark=$(sed -n '1p' "$STATE_DIR/user/colormode.txt")
fi fi
echo "$lightdark" echo "$lightdark"
} }
@@ -47,14 +54,14 @@ apply_fuzzel() {
return return
fi fi
# Copy template # Copy template
mkdir -p "$HOME"/.cache/ags/user/generated/fuzzel mkdir -p "$CACHE_DIR"/user/generated/fuzzel
cp "scripts/templates/fuzzel/fuzzel.ini" "$HOME"/.cache/ags/user/generated/fuzzel/fuzzel.ini cp "scripts/templates/fuzzel/fuzzel.ini" "$CACHE_DIR"/user/generated/fuzzel/fuzzel.ini
# Apply colors # Apply colors
for i in "${!colorlist[@]}"; do for i in "${!colorlist[@]}"; do
sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$HOME"/.cache/ags/user/generated/fuzzel/fuzzel.ini sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$CACHE_DIR"/user/generated/fuzzel/fuzzel.ini
done done
cp "$HOME"/.cache/ags/user/generated/fuzzel/fuzzel.ini "$HOME"/.config/fuzzel/fuzzel.ini cp "$CACHE_DIR"/user/generated/fuzzel/fuzzel.ini "$XDG_CONFIG_HOME"/fuzzel/fuzzel.ini
} }
apply_term() { apply_term() {
@@ -64,18 +71,18 @@ apply_term() {
return return
fi fi
# Copy template # Copy template
mkdir -p "$HOME"/.cache/ags/user/generated/terminal mkdir -p "$CACHE_DIR"/user/generated/terminal
cp "scripts/templates/terminal/sequences.txt" "$HOME"/.cache/ags/user/generated/terminal/sequences.txt cp "scripts/templates/terminal/sequences.txt" "$CACHE_DIR"/user/generated/terminal/sequences.txt
# Apply colors # Apply colors
for i in "${!colorlist[@]}"; do for i in "${!colorlist[@]}"; do
sed -i "s/${colorlist[$i]} #/${colorvalues[$i]#\#}/g" "$HOME"/.cache/ags/user/generated/terminal/sequences.txt sed -i "s/${colorlist[$i]} #/${colorvalues[$i]#\#}/g" "$CACHE_DIR"/user/generated/terminal/sequences.txt
done done
sed -i "s/\$alpha/$term_alpha/g" "$HOME/.cache/ags/user/generated/terminal/sequences.txt" sed -i "s/\$alpha/$term_alpha/g" "$CACHE_DIR/user/generated/terminal/sequences.txt"
for file in /dev/pts/*; do for file in /dev/pts/*; do
if [[ $file =~ ^/dev/pts/[0-9]+$ ]]; then if [[ $file =~ ^/dev/pts/[0-9]+$ ]]; then
cat "$HOME"/.cache/ags/user/generated/terminal/sequences.txt > "$file" cat "$CACHE_DIR"/user/generated/terminal/sequences.txt > "$file"
fi fi
done done
} }
@@ -87,14 +94,14 @@ apply_hyprland() {
return return
fi fi
# Copy template # Copy template
mkdir -p "$HOME"/.cache/ags/user/generated/hypr/hyprland mkdir -p "$CACHE_DIR"/user/generated/hypr/hyprland
cp "scripts/templates/hypr/hyprland/colors.conf" "$HOME"/.cache/ags/user/generated/hypr/hyprland/colors.conf cp "scripts/templates/hypr/hyprland/colors.conf" "$CACHE_DIR"/user/generated/hypr/hyprland/colors.conf
# Apply colors # Apply colors
for i in "${!colorlist[@]}"; do for i in "${!colorlist[@]}"; do
sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$HOME"/.cache/ags/user/generated/hypr/hyprland/colors.conf sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$CACHE_DIR"/user/generated/hypr/hyprland/colors.conf
done done
cp "$HOME"/.cache/ags/user/generated/hypr/hyprland/colors.conf "$HOME"/.config/hypr/hyprland/colors.conf cp "$CACHE_DIR"/user/generated/hypr/hyprland/colors.conf "$XDG_CONFIG_HOME"/hypr/hyprland/colors.conf
} }
apply_hyprlock() { apply_hyprlock() {
@@ -104,31 +111,31 @@ apply_hyprlock() {
return return
fi fi
# Copy template # Copy template
mkdir -p "$HOME"/.cache/ags/user/generated/hypr/ mkdir -p "$CACHE_DIR"/user/generated/hypr/
cp "scripts/templates/hypr/hyprlock.conf" "$HOME"/.cache/ags/user/generated/hypr/hyprlock.conf cp "scripts/templates/hypr/hyprlock.conf" "$CACHE_DIR"/user/generated/hypr/hyprlock.conf
# Apply colors # Apply colors
# sed -i "s/{{ SWWW_WALL }}/${wallpath_png}/g" "$HOME"/.cache/ags/user/generated/hypr/hyprlock.conf # sed -i "s/{{ SWWW_WALL }}/${wallpath_png}/g" "$CACHE_DIR"/user/generated/hypr/hyprlock.conf
for i in "${!colorlist[@]}"; do for i in "${!colorlist[@]}"; do
sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$HOME"/.cache/ags/user/generated/hypr/hyprlock.conf sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$CACHE_DIR"/user/generated/hypr/hyprlock.conf
done done
cp "$HOME"/.cache/ags/user/generated/hypr/hyprlock.conf "$HOME"/.config/hypr/hyprlock.conf cp "$CACHE_DIR"/user/generated/hypr/hyprlock.conf "$XDG_CONFIG_HOME"/hypr/hyprlock.conf
} }
apply_gtk() { # Using gradience-cli apply_gtk() { # Using gradience-cli
lightdark=$(get_light_dark) lightdark=$(get_light_dark)
# Copy template # Copy template
mkdir -p "$HOME"/.cache/ags/user/generated/gradience mkdir -p "$CACHE_DIR"/user/generated/gradience
cp "scripts/templates/gradience/preset.json" "$HOME"/.cache/ags/user/generated/gradience/preset.json cp "scripts/templates/gradience/preset.json" "$CACHE_DIR"/user/generated/gradience/preset.json
# Apply colors # Apply colors
for i in "${!colorlist[@]}"; do for i in "${!colorlist[@]}"; do
sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]}/g" "$HOME"/.cache/ags/user/generated/gradience/preset.json sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]}/g" "$CACHE_DIR"/user/generated/gradience/preset.json
done done
mkdir -p "$HOME/.config/presets" # create gradience presets folder mkdir -p "$XDG_CONFIG_HOME/presets" # create gradience presets folder
gradience-cli apply -p "$HOME"/.cache/ags/user/generated/gradience/preset.json --gtk both gradience-cli apply -p "$CACHE_DIR"/user/generated/gradience/preset.json --gtk both
# Set light/dark preference # Set light/dark preference
# And set GTK theme manually as Gradience defaults to light adw-gtk3 # And set GTK theme manually as Gradience defaults to light adw-gtk3
@@ -143,22 +150,22 @@ apply_gtk() { # Using gradience-cli
} }
apply_ags() { apply_ags() {
sass "$HOME"/.config/ags/scss/main.scss "$HOME"/.cache/ags/user/generated/style.css sass -I "$STATE_DIR/scss" -I "$CONFIG_DIR/scss/fallback" "$CONFIG_DIR"/scss/main.scss "$CACHE_DIR"/user/generated/style.css
ags run-js 'openColorScheme.value = true; Utils.timeout(2000, () => openColorScheme.value = false);' ags run-js 'openColorScheme.value = true; Utils.timeout(2000, () => openColorScheme.value = false);'
ags run-js "App.resetCss(); App.applyCss('${HOME}/.cache/ags/user/generated/style.css');" ags run-js "App.resetCss(); App.applyCss('${CACHE_DIR}/user/generated/style.css');"
} }
if [[ "$1" = "--bad-apple" ]]; then if [[ "$1" = "--bad-apple" ]]; then
lightdark=$(get_light_dark) lightdark=$(get_light_dark)
cp scripts/color_generation/specials/_material_badapple"${lightdark}".scss scss/_material.scss cp scripts/color_generation/specials/_material_badapple"${lightdark}".scss $STATE_DIR/scss/_material.scss
colornames=$(cat scripts/color_generation/specials/_material_badapple"${lightdark}".scss | cut -d: -f1) colornames=$(cat scripts/color_generation/specials/_material_badapple"${lightdark}".scss | cut -d: -f1)
colorstrings=$(cat scripts/color_generation/specials/_material_badapple"${lightdark}".scss | cut -d: -f2 | cut -d ' ' -f2 | cut -d ";" -f1) colorstrings=$(cat scripts/color_generation/specials/_material_badapple"${lightdark}".scss | cut -d: -f2 | cut -d ' ' -f2 | cut -d ";" -f1)
IFS=$'\n' IFS=$'\n'
colorlist=( $colornames ) # Array of color names colorlist=( $colornames ) # Array of color names
colorvalues=( $colorstrings ) # Array of color values colorvalues=( $colorstrings ) # Array of color values
else else
colornames=$(cat scss/_material.scss | cut -d: -f1) colornames=$(cat $STATE_DIR/scss/_material.scss | cut -d: -f1)
colorstrings=$(cat scss/_material.scss | cut -d: -f2 | cut -d ' ' -f2 | cut -d ";" -f1) colorstrings=$(cat $STATE_DIR/scss/_material.scss | cut -d: -f2 | cut -d ' ' -f2 | cut -d ";" -f1)
IFS=$'\n' IFS=$'\n'
colorlist=( $colornames ) # Array of color names colorlist=( $colornames ) # Array of color names
colorvalues=( $colorstrings ) # Array of color values colorvalues=( $colorstrings ) # Array of color values
@@ -1,16 +1,24 @@
#!/usr/bin/env bash #!/usr/bin/env bash
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}"
CONFIG_DIR="$XDG_CONFIG_HOME/ags"
CACHE_DIR="$XDG_CACHE_HOME/ags"
STATE_DIR="$XDG_STATE_HOME/ags"
# check if no arguments # check if no arguments
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
echo "Usage: colorgen.sh /path/to/image (--apply)" echo "Usage: colorgen.sh /path/to/image (--apply)"
exit 1 exit 1
fi fi
colormodefile="$HOME/.cache/ags/user/colormode.txt" # check if the file $STATE_DIR/user/colormode.txt exists. if not, create it. else, read it to $lightdark
colormodefile="$STATE_DIR/user/colormode.txt"
lightdark="dark" lightdark="dark"
transparency="opaque" transparency="opaque"
materialscheme="vibrant" materialscheme="vibrant"
terminalscheme="$HOME/.config/ags/scripts/templates/terminal/scheme-base.json" terminalscheme="$XDG_CONFIG_HOME/ags/scripts/templates/terminal/scheme-base.json"
if [ ! -f $colormodefile ]; then if [ ! -f $colormodefile ]; then
echo "dark" > $colormodefile echo "dark" > $colormodefile
@@ -25,24 +33,24 @@ else
transparency=$(sed -n '2p' $colormodefile) transparency=$(sed -n '2p' $colormodefile)
materialscheme=$(sed -n '3p' $colormodefile) materialscheme=$(sed -n '3p' $colormodefile)
if [ "$materialscheme" = "monochrome" ]; then if [ "$materialscheme" = "monochrome" ]; then
terminalscheme="$HOME/.config/ags/scripts/templates/terminal/scheme-monochrome.json" terminalscheme="$XDG_CONFIG_HOME/ags/scripts/templates/terminal/scheme-monochrome.json"
fi fi
fi fi
backend="material" # color generator backend backend="material" # color generator backend
if [ ! -f "$HOME/.cache/ags/user/colorbackend.txt" ]; then if [ ! -f "$STATE_DIR/user/colorbackend.txt" ]; then
echo "material" > "$HOME/.cache/ags/user/colorbackend.txt" echo "material" > "$STATE_DIR/user/colorbackend.txt"
else else
backend=$(cat "$HOME/.cache/ags/user/colorbackend.txt") # either "" or "-l" backend=$(cat "$STATE_DIR/user/colorbackend.txt") # either "" or "-l"
fi fi
cd "$HOME/.config/ags/scripts/" || exit cd "$CONFIG_DIR/scripts/" || exit
if [[ "$1" = "#"* ]]; then # this is a color if [[ "$1" = "#"* ]]; then # this is a color
color_generation/generate_colors_material.py --color "$1" \ color_generation/generate_colors_material.py --color "$1" \
--mode "$lightdark" --scheme "$materialscheme" --transparency "$transparency" \ --mode "$lightdark" --scheme "$materialscheme" --transparency "$transparency" \
--termscheme $terminalscheme --blend_bg_fg \ --termscheme $terminalscheme --blend_bg_fg \
> "$HOME"/.cache/ags/user/generated/material_colors.scss > "$CACHE_DIR"/user/generated/material_colors.scss
if [ "$2" = "--apply" ]; then if [ "$2" = "--apply" ]; then
cp "$HOME"/.cache/ags/user/generated/material_colors.scss "$HOME/.config/ags/scss/_material.scss" cp "$CACHE_DIR"/user/generated/material_colors.scss "$STATE_DIR/scss/_material.scss"
color_generation/applycolor.sh color_generation/applycolor.sh
fi fi
elif [ "$backend" = "material" ]; then elif [ "$backend" = "material" ]; then
@@ -53,10 +61,10 @@ elif [ "$backend" = "material" ]; then
color_generation/generate_colors_material.py --path "$1" \ color_generation/generate_colors_material.py --path "$1" \
--mode "$lightdark" --scheme "$materialscheme" --transparency "$transparency" \ --mode "$lightdark" --scheme "$materialscheme" --transparency "$transparency" \
--termscheme $terminalscheme --blend_bg_fg \ --termscheme $terminalscheme --blend_bg_fg \
--cache "$HOME/.cache/ags/user/color.txt" $smartflag \ --cache "$STATE_DIR/user/color.txt" $smartflag \
> "$HOME"/.cache/ags/user/generated/material_colors.scss > "$CACHE_DIR"/user/generated/material_colors.scss
if [ "$2" = "--apply" ]; then if [ "$2" = "--apply" ]; then
cp "$HOME"/.cache/ags/user/generated/material_colors.scss "$HOME/.config/ags/scss/_material.scss" cp "$CACHE_DIR"/user/generated/material_colors.scss "$STATE_DIR/scss/_material.scss"
color_generation/applycolor.sh color_generation/applycolor.sh
fi fi
elif [ "$backend" = "pywal" ]; then elif [ "$backend" = "pywal" ]; then
@@ -64,21 +72,21 @@ elif [ "$backend" = "pywal" ]; then
wal -c wal -c
wal -i "$1" -n $lightdark -q wal -i "$1" -n $lightdark -q
# copy scss # copy scss
cp "$HOME/.cache/wal/colors.scss" "$HOME"/.cache/ags/user/generated/material_colors.scss cp "$XDG_CACHE_HOME/wal/colors.scss" "$CACHE_DIR"/user/generated/material_colors.scss
cat color_generation/pywal_to_material.scss >> "$HOME"/.cache/ags/user/generated/material_colors.scss cat color_generation/pywal_to_material.scss >> "$CACHE_DIR"/user/generated/material_colors.scss
if [ "$2" = "--apply" ]; then if [ "$2" = "--apply" ]; then
sass "$HOME"/.cache/ags/user/generated/material_colors.scss "$HOME"/.cache/ags/user/generated/colors_classes.scss --style compact sass -I "$STATE_DIR/scss" -I "$CONFIG_DIR/scss/fallback" "$CACHE_DIR"/user/generated/material_colors.scss "$CACHE_DIR"/user/generated/colors_classes.scss --style compressed
sed -i "s/ { color//g" "$HOME"/.cache/ags/user/generated/colors_classes.scss sed -i "s/ { color//g" "$CACHE_DIR"/user/generated/colors_classes.scss
sed -i "s/\./$/g" "$HOME"/.cache/ags/user/generated/colors_classes.scss sed -i "s/\./$/g" "$CACHE_DIR"/user/generated/colors_classes.scss
sed -i "s/}//g" "$HOME"/.cache/ags/user/generated/colors_classes.scss sed -i "s/}//g" "$CACHE_DIR"/user/generated/colors_classes.scss
if [ "$lightdark" = "-l" ]; then if [ "$lightdark" = "-l" ]; then
printf "\n""\$darkmode: false;""\n" >> "$HOME"/.cache/ags/user/generated/colors_classes.scss printf "\n""\$darkmode: false;""\n" >> "$CACHE_DIR"/user/generated/colors_classes.scss
else else
printf "\n""\$darkmode: true;""\n" >> "$HOME"/.cache/ags/user/generated/colors_classes.scss printf "\n""\$darkmode: true;""\n" >> "$CACHE_DIR"/user/generated/colors_classes.scss
fi fi
cp "$HOME"/.cache/ags/user/generated/colors_classes.scss "$HOME/.config/ags/scss/_material.scss" cp "$CACHE_DIR"/user/generated/colors_classes.scss "$STATE_DIR/scss/_material.scss"
color_generation/applycolor.sh color_generation/applycolor.sh
fi fi
@@ -1,10 +1,17 @@
#!/usr/bin/env bash #!/usr/bin/env bash
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}"
CONFIG_DIR="$XDG_CONFIG_HOME/ags"
CACHE_DIR="$XDG_CACHE_HOME/ags"
STATE_DIR="$XDG_STATE_HOME/ags"
if [ "$1" == "--pick" ]; then if [ "$1" == "--pick" ]; then
color=$(hyprpicker --no-fancy) color=$(hyprpicker --no-fancy)
else else
color=$(cut -f1 "${HOME}/.cache/ags/user/color.txt") color=$(cut -f1 "$STATE_DIR/user/color.txt")
fi fi
# Generate colors for ags n stuff # Generate colors for ags n stuff
"$HOME"/.config/ags/scripts/color_generation/colorgen.sh "${color}" --apply "$CONFIG_DIR"/scripts/color_generation/colorgen.sh "${color}" --apply
@@ -1,5 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
CONFIG_DIR="$XDG_CONFIG_HOME/ags"
if [ "$1" == "--noswitch" ]; then if [ "$1" == "--noswitch" ]; then
imgpath=$(swww query | head -1 | awk -F 'image: ' '{print $2}') imgpath=$(swww query | head -1 | awk -F 'image: ' '{print $2}')
# imgpath=$(ags run-js 'wallpaper.get(0)') # imgpath=$(ags run-js 'wallpaper.get(0)')
@@ -28,4 +31,4 @@ else
fi fi
# Generate colors for ags n stuff # Generate colors for ags n stuff
"$HOME"/.config/ags/scripts/color_generation/colorgen.sh "${imgpath}" --apply --smart "$CONFIG_DIR"/scripts/color_generation/colorgen.sh "${imgpath}" --apply --smart
+3 -3
View File
@@ -1,7 +1,7 @@
@import './material'; @import 'material';
@import './musicmaterial'; @import 'musicmaterial';
@import './wal'; @import './wal';
@import './musicwal'; @import 'musicwal';
@import './colors'; @import './colors';
@import './lib_mixins'; @import './lib_mixins';
$music_transparentize_amount: 0.3; $music_transparentize_amount: 0.3;
+1 -1
View File
@@ -5,7 +5,7 @@
*:not(popover) { all: unset; } *:not(popover) { all: unset; }
// Colors // Colors
@import './material'; // Material colors @import 'material'; // Material colors
@import './colors'; // Global color definitions. Uses material colors as base. @import './colors'; // Global color definitions. Uses material colors as base.
@import './lib_mixins'; @import './lib_mixins';
@import './lib_classes'; @import './lib_classes';
+4 -4
View File
@@ -6,7 +6,7 @@ import GLib from 'gi://GLib';
import Soup from 'gi://Soup?version=3.0'; import Soup from 'gi://Soup?version=3.0';
import { fileExists } from '../modules/.miscutils/files.js'; import { fileExists } from '../modules/.miscutils/files.js';
const HISTORY_DIR = `${GLib.get_user_cache_dir()}/ags/user/ai/chats/`; const HISTORY_DIR = `${GLib.get_user_state_dir()}/ags/user/ai/chats/`;
const HISTORY_FILENAME = `gemini.txt`; const HISTORY_FILENAME = `gemini.txt`;
const HISTORY_PATH = HISTORY_DIR + HISTORY_FILENAME; const HISTORY_PATH = HISTORY_DIR + HISTORY_FILENAME;
const initMessages = const initMessages =
@@ -34,9 +34,9 @@ if (!fileExists(`${GLib.get_user_config_dir()}/gemini_history.json`)) {
Utils.writeFile('[ ]', `${GLib.get_user_config_dir()}/gemini_history.json`).catch(print); Utils.writeFile('[ ]', `${GLib.get_user_config_dir()}/gemini_history.json`).catch(print);
} }
Utils.exec(`mkdir -p ${GLib.get_user_cache_dir()}/ags/user/ai`); Utils.exec(`mkdir -p ${GLib.get_user_state_dir()}/ags/user/ai`);
const KEY_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/ai/google_key.txt`; const KEY_FILE_LOCATION = `${GLib.get_user_state_dir()}/ags/user/ai/google_key.txt`;
const APIDOM_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/ai/google_api_dom.txt`; const APIDOM_FILE_LOCATION = `${GLib.get_user_state_dir()}/ags/user/ai/google_api_dom.txt`;
function replaceapidom(URL) { function replaceapidom(URL) {
if (fileExists(APIDOM_FILE_LOCATION)) { if (fileExists(APIDOM_FILE_LOCATION)) {
var contents = Utils.readFile(APIDOM_FILE_LOCATION).trim(); var contents = Utils.readFile(APIDOM_FILE_LOCATION).trim();
+3 -3
View File
@@ -60,7 +60,7 @@ const initMessages =
{ role: "assistant", content: "## Skeuomorphism\n- A design philosophy- From early days of interface designing- Tries to imitate real-life objects- It's in fact still used by Apple in their icons until today.", }, { role: "assistant", content: "## Skeuomorphism\n- A design philosophy- From early days of interface designing- Tries to imitate real-life objects- It's in fact still used by Apple in their icons until today.", },
]; ];
Utils.exec(`mkdir -p ${GLib.get_user_cache_dir()}/ags/user/ai`); Utils.exec(`mkdir -p ${GLib.get_user_state_dir()}/ags/user/ai`);
class GPTMessage extends Service { class GPTMessage extends Service {
static { static {
@@ -139,13 +139,13 @@ class GPTService extends Service {
_temperature = userOptions.ai.defaultTemperature; _temperature = userOptions.ai.defaultTemperature;
_messages = []; _messages = [];
_key = ''; _key = '';
_key_file_location = `${GLib.get_user_cache_dir()}/ags/user/ai/${PROVIDERS[this._currentProvider]['key_file']}`; _key_file_location = `${GLib.get_user_state_dir()}/ags/user/ai/${PROVIDERS[this._currentProvider]['key_file']}`;
_url = GLib.Uri.parse(PROVIDERS[this._currentProvider]['base_url'], GLib.UriFlags.NONE); _url = GLib.Uri.parse(PROVIDERS[this._currentProvider]['base_url'], GLib.UriFlags.NONE);
_decoder = new TextDecoder(); _decoder = new TextDecoder();
_initChecks() { _initChecks() {
this._key_file_location = `${GLib.get_user_cache_dir()}/ags/user/ai/${PROVIDERS[this._currentProvider]['key_file']}`; this._key_file_location = `${GLib.get_user_state_dir()}/ags/user/ai/${PROVIDERS[this._currentProvider]['key_file']}`;
if (fileExists(this._key_file_location)) this._key = Utils.readFile(this._key_file_location).trim(); if (fileExists(this._key_file_location)) this._key = Utils.readFile(this._key_file_location).trim();
else this.emit('hasKey', false); else this.emit('hasKey', false);
this._url = GLib.Uri.parse(PROVIDERS[this._currentProvider]['base_url'], GLib.UriFlags.NONE); this._url = GLib.Uri.parse(PROVIDERS[this._currentProvider]['base_url'], GLib.UriFlags.NONE);
+4 -3
View File
@@ -8,13 +8,14 @@ export function fileExists(filePath) {
} }
const FIRST_RUN_FILE = "firstrun.txt"; const FIRST_RUN_FILE = "firstrun.txt";
const FIRST_RUN_PATH = GLib.build_filenamev([GLib.get_user_cache_dir(), "ags", "user", FIRST_RUN_FILE]); const FIRST_RUN_PATH = `${GLib.get_user_state_dir()}/ags/user/${FIRST_RUN_FILE}`;
const FIRST_RUN_FILE_CONTENT = "Just a file to confirm that you have been greeted ;)"; const FIRST_RUN_FILE_CONTENT = "Just a file to confirm that you have been greeted ;)";
const APP_NAME = "illogical-impulse"; const APP_NAME = "illogical-impulse";
const FIRST_RUN_NOTIF_TITLE = "Welcome!"; const FIRST_RUN_NOTIF_TITLE = "Welcome!";
const FIRST_RUN_NOTIF_BODY = `First run? 👀 <span foreground="#FF0202" font_weight="bold">CTRL+SUPER+T</span> to pick a wallpaper (or styles will break!)\nFor a list of keybinds, hit <span foreground="#c06af1" font_weight="bold">Super + /</span>.`; const FIRST_RUN_NOTIF_BODY = `First run? 👀 <span foreground="#FF0202" font_weight="bold">CTRL+SUPER+T</span> to pick a wallpaper (or styles will break!)\nFor a list of keybinds, hit <span foreground="#c06af1" font_weight="bold">Super + /</span>.`;
export async function firstRunWelcome() { export async function firstRunWelcome() {
GLib.mkdir_with_parents(`${GLib.get_user_state_dir()}/ags/user`, 755);
if (!fileExists(FIRST_RUN_PATH)) { if (!fileExists(FIRST_RUN_PATH)) {
Utils.writeFile(FIRST_RUN_FILE_CONTENT, FIRST_RUN_PATH) Utils.writeFile(FIRST_RUN_FILE_CONTENT, FIRST_RUN_PATH)
.then(() => { .then(() => {
@@ -54,7 +55,7 @@ async function batteryMessage() {
} }
// Run them // Run them
firstRunWelcome(); firstRunWelcome().catch(print);
Utils.timeout(1, () => { Utils.timeout(1, () => {
Battery.connect('changed', () => batteryMessage().catch(print)); Battery.connect('changed', () => batteryMessage().catch(print));
}) })
+1 -1
View File
@@ -58,7 +58,7 @@ class TodoService extends Service {
constructor() { constructor() {
super(); super();
this._todoPath = `${GLib.get_user_cache_dir()}/ags/user/todo.json`; this._todoPath = `${GLib.get_user_state_dir()}/ags/user/todo.json`;
try { try {
const fileContents = Utils.readFile(this._todoPath); const fileContents = Utils.readFile(this._todoPath);
this._todoJson = JSON.parse(fileContents); this._todoJson = JSON.parse(fileContents);
+1 -1
View File
@@ -2,7 +2,7 @@ const { Gdk, GLib } = imports.gi;
import Service from 'resource:///com/github/Aylur/ags/service.js'; import Service from 'resource:///com/github/Aylur/ags/service.js';
import * as Utils from 'resource:///com/github/Aylur/ags/utils.js'; import * as Utils from 'resource:///com/github/Aylur/ags/utils.js';
const WALLPAPER_CONFIG_PATH = `${GLib.get_user_cache_dir()}/ags/user/wallpaper.json`; const WALLPAPER_CONFIG_PATH = `${GLib.get_user_state_dir()}/ags/user/wallpaper.json`;
class WallpaperService extends Service { class WallpaperService extends Service {
static { static {