mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2025-12-12 11:36:20 +00:00
feat: more dynamic theming
This commit is contained in:
@@ -11,10 +11,8 @@
|
||||
homeDirectory = "/home/${username}";
|
||||
};
|
||||
imports = [
|
||||
inputs.ags.homeManagerModules.default
|
||||
inputs.nixvim.homeManagerModules.nixvim
|
||||
inputs.anyrun.homeManagerModules.default
|
||||
./shell/asztal.nix
|
||||
./programs/neovide.nix
|
||||
# ./default-apps.nix
|
||||
./packages
|
||||
|
||||
@@ -21,9 +21,10 @@
|
||||
"GIO_EXTRA_MODULES,${pkgs.gnome.gvfs}/lib/gio/modules"
|
||||
];
|
||||
exec-once = [
|
||||
"systemctl --user start hyprland-session.target"
|
||||
"gnome-keyring-daemon --start --components=secrets"
|
||||
"${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"
|
||||
"${pkgs.swww}/bin/swww-daemon"
|
||||
"theme init"
|
||||
];
|
||||
general = {
|
||||
layout = "master";
|
||||
@@ -119,8 +120,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
shell.asztal.enable = true;
|
||||
|
||||
services.kdeconnect = {
|
||||
enable = true;
|
||||
indicator = true;
|
||||
@@ -145,27 +144,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
services.darkman =
|
||||
let
|
||||
wallpaperPath = "${config.home.homeDirectory}/.local/state/wallpaper.jpg";
|
||||
in
|
||||
{
|
||||
enable = false;
|
||||
settings = {
|
||||
lat = 52.52;
|
||||
lng = 13.405;
|
||||
};
|
||||
darkModeScripts = {
|
||||
kitty-theme = ''
|
||||
${pkgs.kitty}/bin/kitty +kitten themes --reload-in=all --config-file-name ${config.home.homeDirectory}/.config/kitty/current-colors.conf Catppuccin-Frappe
|
||||
'';
|
||||
};
|
||||
lightModeScripts = {
|
||||
kitty-theme = ''
|
||||
${pkgs.kitty}/bin/kitty +kitten themes --reload-in=all --config-file-name ${config.home.homeDirectory}/.config/kitty/current-colors.conf Catppuccin-Latte
|
||||
'';
|
||||
};
|
||||
};
|
||||
programs.kitty = import ./kitty.nix { inherit pkgs; };
|
||||
programs.anyrun = import ./anyrun.nix { inherit pkgs; };
|
||||
services.udiskie.enable = true;
|
||||
@@ -209,10 +187,6 @@
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = "adw-gtk3-dark";
|
||||
package = pkgs.adw-gtk3;
|
||||
};
|
||||
#gtk3.extraCss = builtins.readFile ./gtk.css;
|
||||
#gtk4.extraCss = builtins.readFile ./gtk.css;
|
||||
iconTheme = {
|
||||
|
||||
@@ -1,28 +1,18 @@
|
||||
{ pkgs }:
|
||||
let
|
||||
darkman = pkgs.vimUtils.buildVimPlugin {
|
||||
name = "darkman";
|
||||
src = pkgs.buildGoModule {
|
||||
pname = "darkman.nvim";
|
||||
version = "0.0.1";
|
||||
vendorHash = "sha256-HpyKzvKVN9hVRxxca4sdWRo91H32Ha9gxitr7Qg5MY8=";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "4e554c4c";
|
||||
repo = "darkman.nvim";
|
||||
rev = "150aa63a13837c44abd87ff20d3a806321a17b2d";
|
||||
sha256 = "sha256-ssEYdM460I1rufjgh63CEkLi4K+bEWbwku/6gQbytno=";
|
||||
};
|
||||
postInstall = ''
|
||||
cp -r lua $out
|
||||
'';
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
vimAlias = true;
|
||||
|
||||
colorscheme = "matugen";
|
||||
autoCmd = [
|
||||
{
|
||||
event = [ "Signal" ];
|
||||
pattern = [ "SIGUSR1" ];
|
||||
command = "colorscheme matugen";
|
||||
}
|
||||
];
|
||||
|
||||
opts = {
|
||||
number = true;
|
||||
relativenumber = true;
|
||||
@@ -449,7 +439,6 @@ in
|
||||
];
|
||||
extraPlugins = with pkgs.vimPlugins; [
|
||||
vim-mergetool
|
||||
darkman
|
||||
rest-nvim
|
||||
plenary-nvim
|
||||
actions-preview-nvim
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
require("darkman").setup()
|
||||
require("cmp-npm").setup({})
|
||||
require("rest-nvim").setup({})
|
||||
require("actions-preview").setup({})
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.shell.asztal;
|
||||
in
|
||||
{
|
||||
options.shell.asztal = {
|
||||
enable = mkEnableOption (mdDoc "Enable a shell based on AGS");
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.user.services.asztal = {
|
||||
Unit = {
|
||||
Description = "asztal";
|
||||
PartOf = [
|
||||
"graphical-session.target"
|
||||
"tray.target"
|
||||
];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${pkgs.asztal}/bin/asztal";
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -SIGUSR2 $MAINPID";
|
||||
Restart = "always";
|
||||
KillMode = "mixed";
|
||||
Environment = "PATH=/run/current-system/sw/bin/:${with pkgs; lib.makeBinPath [ ]}";
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "graphical-session.target" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -30,6 +30,9 @@
|
||||
|
||||
./services/airprint.nix
|
||||
|
||||
./shell/waybar.nix
|
||||
./shell/dunst.nix
|
||||
|
||||
./xdg/forced-compliance.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -6,23 +6,32 @@
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.desktops.hyprland;
|
||||
in
|
||||
{
|
||||
options.desktops.hyprland = {
|
||||
enable = mkEnableOption (mdDoc "Enable a DE based on Hyprland");
|
||||
enable = lib.mkEnableOption "Enable a DE based on Hyprland";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment = {
|
||||
sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
systemPackages = with pkgs; [ glib ];
|
||||
};
|
||||
|
||||
programs.hyprland.enable = true;
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
pkgs.xdg-desktop-portal-kde
|
||||
];
|
||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
config.common = {
|
||||
default = [
|
||||
"hyprland"
|
||||
"gtk"
|
||||
];
|
||||
"org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
|
||||
"org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ];
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
@@ -51,12 +60,5 @@ in
|
||||
gnome.gnome-online-accounts.enable = true;
|
||||
gnome.evolution-data-server.enable = true;
|
||||
};
|
||||
|
||||
programs = {
|
||||
hyprland.enable = true;
|
||||
kdeconnect.enable = true;
|
||||
};
|
||||
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
}
|
||||
|
||||
23
modules/nixos/shell/dunst.nix
Normal file
23
modules/nixos/shell/dunst.nix
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.shell.components.dunst;
|
||||
in
|
||||
{
|
||||
options.shell.components.dunst = {
|
||||
enable = lib.mkEnableOption (lib.mdDoc "Enable a pre-configured dunst setup");
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home-manager.users.${username}.services.dunst = {
|
||||
enable = true;
|
||||
settings = { };
|
||||
};
|
||||
};
|
||||
}
|
||||
37
modules/nixos/shell/waybar.nix
Normal file
37
modules/nixos/shell/waybar.nix
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.shell.components.waybar;
|
||||
in
|
||||
{
|
||||
options.shell.components.waybar = {
|
||||
enable = lib.mkEnableOption (lib.mdDoc "Enable a pre-configured waybar setup");
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home-manager.users.${username}.programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
modules-center = [ "clock" ];
|
||||
modules-right = [
|
||||
"privacy"
|
||||
"tray"
|
||||
];
|
||||
|
||||
"custom/theme" = { };
|
||||
};
|
||||
};
|
||||
systemd = lib.mkIf config.desktops.hyprland.enable {
|
||||
enable = true;
|
||||
target = "hyprland-session.target";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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