From 117070924706755df1b068cb545fb0e97dedc65f Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Wed, 20 Mar 2024 22:49:25 +0700 Subject: [PATCH] sidebar: ai: latex: support dark mode --- .config/ags/modules/.miscutils/md2pango.js | 2 +- .config/ags/modules/.miscutils/system.js | 2 +- .config/ags/modules/sideleft/apis/ai_chatmessage.js | 12 +++++++++--- .config/ags/modules/sideleft/apis/waifu.js | 1 - .config/ags/scss/_sidebars.scss | 3 --- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.config/ags/modules/.miscutils/md2pango.js b/.config/ags/modules/.miscutils/md2pango.js index 1c868757b..fa059fed2 100644 --- a/.config/ags/modules/.miscutils/md2pango.js +++ b/.config/ags/modules/.miscutils/md2pango.js @@ -84,6 +84,6 @@ console.log('uwu'); - Random instruction thing - To update arch lincox, run \`sudo pacman -Syu\` \`\`\`tex -\\frac{d}{dx} \\left( \\frac{x-438}{x^2+23x-7} \\right) = \\frac{-x^2 + 869}{(x^2+23x-7)^2} hmmmmmm \\frac{d}{dx} \\left( \\frac{x-438}{x^2+23x-7} \\right) = \\frac{-x^2 + 869}{(x^2+23x-7)^2} +\\frac{d}{dx} \\left( \\frac{x-438}{x^2+23x-7} \\right) = \\frac{-x^2 + 869}{(x^2+23x-7)^2} \\\\ \\frac{d}{dx} \\left( \\frac{x-438}{x^2+23x-7} \\right) = \\frac{-x^2 + 869}{(x^2+23x-7)^2} \`\`\` `; \ No newline at end of file diff --git a/.config/ags/modules/.miscutils/system.js b/.config/ags/modules/.miscutils/system.js index 185a8149b..57ea2a7d2 100644 --- a/.config/ags/modules/.miscutils/system.js +++ b/.config/ags/modules/.miscutils/system.js @@ -9,7 +9,7 @@ export const hasFlatpak = !!exec(`bash -c 'command -v flatpak'`); const LIGHTDARK_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/colormode.txt`; const colorMode = Utils.exec('bash -c "sed -n \'1p\' $HOME/.cache/ags/user/colormode.txt"'); -export let darkMode = !(Utils.readFile(LIGHTDARK_FILE_LOCATION).trim() == 'light'); +export let darkMode = !(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 getDistroIcon = () => { diff --git a/.config/ags/modules/sideleft/apis/ai_chatmessage.js b/.config/ags/modules/sideleft/apis/ai_chatmessage.js index d7148984b..509490055 100644 --- a/.config/ags/modules/sideleft/apis/ai_chatmessage.js +++ b/.config/ags/modules/sideleft/apis/ai_chatmessage.js @@ -7,12 +7,12 @@ const { Box, Button, Label, Icon, Scrollable } = Widget; const { execAsync, exec } = Utils; import { MaterialIcon } from '../../.commonwidgets/materialicon.js'; import md2pango from '../../.miscutils/md2pango.js'; +import { darkMode } from "../../.miscutils/system.js"; const LATEX_DIR = `${GLib.get_user_cache_dir()}/ags/media/latex`; const CUSTOM_SOURCEVIEW_SCHEME_PATH = `${App.configDir}/assets/themes/sourceviewtheme.xml`; const CUSTOM_SCHEME_ID = 'custom'; const USERNAME = GLib.get_user_name(); -Gtk.IconTheme.get_default().append_search_path(LATEX_DIR); /////////////////////// Custom source view colorscheme ///////////////////////// @@ -77,11 +77,12 @@ const TextBlock = (content = '') => Label({ Utils.execAsync(['bash', '-c', `rm ${LATEX_DIR}/*`]) .then(() => Utils.execAsync(['bash', '-c', `mkdir -p ${LATEX_DIR}`])) - .catch(() => {}); + .catch(() => { }); const Latex = (content = '') => { const latexViewArea = Box({ // vscroll: 'never', // hscroll: 'automatic', + homogeneous: true, attribute: { render: async (self, text) => { if (text.length == 0) return; @@ -91,6 +92,7 @@ const Latex = (content = '') => { const timeSinceEpoch = Date.now(); const fileName = `${timeSinceEpoch}.tex`; const outFileName = `${timeSinceEpoch}-symbolic.svg`; + const outIconName = `${timeSinceEpoch}-symbolic`; const scriptFileName = `${timeSinceEpoch}-render.sh`; const filePath = `${LATEX_DIR}/${fileName}`; const outFilePath = `${LATEX_DIR}/${outFileName}`; @@ -104,13 +106,17 @@ const Latex = (content = '') => { const renderScript = `#!/usr/bin/env bash text=$(cat ${filePath} | sed 's/$/ \\\\\\\\/g' | sed 's/&=/=/g') LaTeX -headless -input="$text" -output=${outFilePath} -textsize=${fontSize * 1.1} -padding=0 -maxwidth=${latexViewArea.get_allocated_width() * 0.85} +sed -i 's/fill="rgb(0%, 0%, 0%)"/style="fill:#000000"/g' ${outFilePath} +sed -i 's/stroke="rgb(0%, 0%, 0%)"/stroke="${darkMode ? '#ffffff' : '#000000'}"/g' ${outFilePath} `; Utils.writeFile(renderScript, scriptFilePath).catch(print); Utils.exec(`chmod a+x ${scriptFilePath}`) Utils.timeout(100, () => { Utils.exec(`bash ${scriptFilePath}`); + Gtk.IconTheme.get_default().append_search_path(LATEX_DIR); + self.child?.destroy(); - self.child = Gtk.Image.new_from_file(outFilePath); + self.child = Gtk.Image.new_from_icon_name(outIconName, 0); }) } }, diff --git a/.config/ags/modules/sideleft/apis/waifu.js b/.config/ags/modules/sideleft/apis/waifu.js index 2dece7ebf..bca0415be 100644 --- a/.config/ags/modules/sideleft/apis/waifu.js +++ b/.config/ags/modules/sideleft/apis/waifu.js @@ -251,7 +251,6 @@ const WaifuImage = (taglist) => { else Utils.execAsync(['bash', '-c', `wget -O '${thisBlock.attribute.imagePath}' '${url}'`]) .then(showImage) .catch(print); - console.log(`background-color: mix(${darkMode ? 'black' : 'white'}, ${dominant_color}, 0.97);`); thisBlock.css = `background-color: mix(${darkMode ? 'black' : 'white'}, ${dominant_color}, 0.97);`; }, }, diff --git a/.config/ags/scss/_sidebars.scss b/.config/ags/scss/_sidebars.scss index fc25c3fb8..153b4fd2b 100644 --- a/.config/ags/scss/_sidebars.scss +++ b/.config/ags/scss/_sidebars.scss @@ -641,9 +641,6 @@ $colorpicker_rounding: 0.341rem; margin: 0rem 0.682rem; padding: 0.682rem; - @if $darkmode == True { - background-color: #e6e6e6; - } color: $onBackground; }