From ed605769b004ab84a691e4f45bd9c0c27d2f6eb5 Mon Sep 17 00:00:00 2001 From: Hadi <112569860+anotherhadi@users.noreply.github.com> Date: Tue, 21 Jan 2025 20:54:16 +0100 Subject: [PATCH] add duckduckgo colorscheme --- .../duckduckgo-colorscheme/default.nix | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 home/programs/duckduckgo-colorscheme/default.nix diff --git a/home/programs/duckduckgo-colorscheme/default.nix b/home/programs/duckduckgo-colorscheme/default.nix new file mode 100644 index 0000000..e395b46 --- /dev/null +++ b/home/programs/duckduckgo-colorscheme/default.nix @@ -0,0 +1,44 @@ +# A duckduckgo colorscheme generated for the Stylix theme used. +{ config, ... }: +let + accent = config.lib.stylix.colors.base0D; + background = config.lib.stylix.colors.base00; + foreground = config.lib.stylix.colors.base05; + background-alt = config.lib.stylix.colors.base01; + foreground-alt = config.lib.stylix.colors.base06; +in { + home.file.".duckduckgo-colorscheme.js".text = + # js + '' + // Go to DuckDuckGo settings page, open the console, paste the code and hit enter. + // based on https://ddg.codingcodax.dev/ + // Cookies string for your theme + const cookie = '7=${background}; j=${background}; 9=${foreground}; aa=${foreground-alt}; 8=${foreground}; x=${accent}; 21=${background-alt};'; + + // Converts cookie string into formatted JSON + const cookieToJSON = (cookieRaw) => { + const cookieJson = {}; + const items = cookieRaw.split(/[ ,]+/); + + items.forEach((item) => { + const parts = item.split('='); + cookieJson[parts[0]] = parts[1]; + }); + + return cookieJson; + }; + + // Iterates over JSON, and adds to browser cookie store + const setCookies = (cookieJson) => { + Object.keys(cookieJson).forEach((key) => { + document.cookie = `''${key}=''${cookieJson [ key ]}`; + }); + }; + + // Call set cookies, passing in formated cookie data + setCookies(cookieToJSON(cookie)); + + // All done, reload page for changes to take effect :) + location.reload(); + ''; +}