mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2025-12-12 19:46:20 +00:00
feat: more dynamic theming
This commit is contained in:
@@ -17,10 +17,76 @@ in
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
matugen
|
||||
swww
|
||||
];
|
||||
environment = {
|
||||
systemPackages = [
|
||||
pkgs.adw-gtk3
|
||||
pkgs.matugen
|
||||
(pkgs.writeShellApplication {
|
||||
name = "theme";
|
||||
runtimeInputs = [
|
||||
pkgs.matugen
|
||||
pkgs.swww
|
||||
pkgs.gnome.zenity
|
||||
];
|
||||
text = ''
|
||||
WALLPAPER=${homeCfg.xdg.configHome}/matugen/wallpaper
|
||||
|
||||
SCHEME=$(dconf read /org/gnome/desktop/interface/color-scheme)
|
||||
if [ "$SCHEME" = "'prefer-light'" ]; then
|
||||
MODE="light"
|
||||
else
|
||||
MODE="dark"
|
||||
fi
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
echo -e "\033[1mUsage:\033[0m mode|light|dark|toggle|wallpaper"
|
||||
exit 1
|
||||
elif [ "$1" = "mode" ]; then
|
||||
echo -e "$MODE"
|
||||
exit 0
|
||||
elif [ "$1" = "wallpaper" ]; then
|
||||
if [ $# -eq 1 ]; then
|
||||
PICKED=$(zenity --file-selection --file-filter='Images | *.png *.jpg *.jpeg *.svg *.bmp *.gif')
|
||||
cp "$PICKED" "$WALLPAPER"
|
||||
else
|
||||
cp "$2" "$WALLPAPER"
|
||||
fi
|
||||
elif [ "$1" = "toggle" ]; then
|
||||
if [ "$MODE" = "light" ]; then
|
||||
MODE="dark"
|
||||
else
|
||||
MODE="light"
|
||||
fi
|
||||
elif [ "$1" = "light" ] || [ "$1" = "dark" ]; then
|
||||
MODE="$1"
|
||||
elif [ "$1" = "init" ]; then
|
||||
echo -e "\033[1mSetting up matugen\033[0m"
|
||||
else
|
||||
echo -e "\033[31mInvalid argument\033[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f $WALLPAPER ]; then
|
||||
echo -e "\033[31,1mNo wallpaper set\033[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$MODE" = "light" ]; then
|
||||
GTK_THEME="adw-gtk3"
|
||||
else
|
||||
GTK_THEME="adw-gtk3-dark"
|
||||
fi
|
||||
dconf write /org/gnome/desktop/interface/gtk-theme "'$GTK_THEME'"
|
||||
dconf write /org/gnome/desktop/interface/color-scheme "'prefer-$MODE'"
|
||||
matugen image "$WALLPAPER" --mode "$MODE"
|
||||
|
||||
for i in $(pgrep -u "$USER" -x nvim); do
|
||||
kill -USR1 "$i"
|
||||
done
|
||||
'';
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
home-manager.users.${username} = {
|
||||
programs.kitty.extraConfig = ''
|
||||
@@ -31,10 +97,9 @@ in
|
||||
config = {
|
||||
reload_apps = true;
|
||||
reload_apps_list = {
|
||||
kitty = true;
|
||||
gtk_theme = false;
|
||||
waybar = false;
|
||||
dunst = false;
|
||||
kitty = homeCfg.programs.kitty.enable;
|
||||
waybar = homeCfg.programs.waybar.enable;
|
||||
dunst = homeCfg.services.dunst.enable;
|
||||
};
|
||||
|
||||
set_wallpaper = true;
|
||||
|
||||
Reference in New Issue
Block a user