This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

superconfig / configs / themes.nix
3.3 kB 98 lines
1{ pkgs, ... }: 2let 3 4 switch-theme = pkgs.writers.writeDashBin "switch-theme" '' 5 set -efux 6 if [ "$1" = toggle ]; then 7 if [ "$(${pkgs.coreutils}/bin/cat /var/theme/current_theme)" = dark ]; then 8 ${placeholder "out"}/bin/switch-theme light 9 else 10 ${placeholder "out"}/bin/switch-theme dark 11 fi 12 elif test -e "/etc/themes/$1"; then 13 # Skip if already on the requested theme (prevents loops with noctalia hook) 14 if [ "$(${pkgs.coreutils}/bin/cat /var/theme/current_theme 2>/dev/null)" = "$1" ]; then 15 exit 0 16 fi 17 ${pkgs.coreutils}/bin/mkdir -p /var/theme/config 18 ${pkgs.rsync}/bin/rsync --chown=lass:users -a --delete "/etc/themes/$1/" /var/theme/config/ 19 echo "$1" > /var/theme/current_theme 20 ${pkgs.coreutils}/bin/chown lass:users /var/theme/current_theme 21 ${pkgs.xorg.xrdb}/bin/xrdb -merge /var/theme/config/xresources || : # wayland has no xresources 22 ${pkgs.procps}/bin/pkill -HUP xsettingsd || : 23 set +f 24 GSETTINGS_SCHEMA_DIR=$(echo /run/current-system/sw/share/gsettings-schemas/*/*/schemas | sed s', ,:,g') 25 export GSETTINGS_SCHEMA_DIR 26 set -f 27 ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface gtk-theme "$(cat /var/theme/config/gtk-theme)" || : 28 ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface color-scheme "prefer-$1" || : 29 set +f 30 for sock in /tmp/kitty-socket*; do 31 ${pkgs.kitty}/bin/kitten @ --to unix:"$sock" set-colors -a /var/theme/config/kitty-colors.conf 2>/dev/null || : 32 done 33 set -f 34 # Update noctalia-shell dark mode setting (it watches settings.json for changes) 35 noctalia_settings="''${XDG_CONFIG_HOME:-$HOME/.config}/noctalia/settings.json" 36 if test -f "$noctalia_settings"; then 37 if [ "$1" = dark ]; then 38 noctalia_dark=true 39 else 40 noctalia_dark=false 41 fi 42 ${pkgs.jq}/bin/jq ".colorSchemes.darkMode = $noctalia_dark" "$noctalia_settings" > "$noctalia_settings.tmp" && \ 43 ${pkgs.coreutils}/bin/mv "$noctalia_settings.tmp" "$noctalia_settings" || : 44 fi 45 else 46 echo "theme $1 not found" 47 fi 48 ''; 49 50in 51{ 52 systemd.tmpfiles.rules = [ 53 "d /var/theme/ 755 lass users" 54 ]; 55 environment.systemPackages = [ 56 switch-theme 57 pkgs.adw-gtk3 58 pkgs.adwaita-icon-theme 59 ]; 60 environment.etc = { 61 "themes/light/gtk-theme".text = '' 62 Adwaita 63 ''; 64 "themes/light/xsettings.conf".text = '' 65 Net/ThemeName "Adwaita" 66 ''; 67 "themes/light/xresources".text = '' 68 *background: #ffffff 69 *foreground: #000000 70 ''; 71 "themes/light/rofi-theme".text = '' 72 gruvbox-light-hard 73 ''; 74 75 "themes/dark/gtk-theme".text = '' 76 adw-gtk3-dark 77 ''; 78 "themes/dark/xsettings.conf".text = '' 79 Net/ThemeName "adw-gtk3-dark" 80 ''; 81 "themes/dark/xresources".text = '' 82 *background: #000000 83 *foreground: #ffffff 84 ''; 85 "themes/dark/rofi-theme".text = '' 86 gruvbox-dark-hard 87 ''; 88 }; 89 # system.activationScripts.theme.text = '' 90 # export DISPLAY=:0 91 # if test -e /var/theme/current_theme; then 92 # ${switch-theme}/bin/switch-theme "$(cat /var/theme/current_theme)" || 93 # ${switch-theme}/bin/switch-theme dark 94 # else 95 # ${switch-theme}/bin/switch-theme dark 96 # fi 97 # ''; 98}