diff --git a/flake.lock b/flake.lock index 5484312..51d70b6 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,71 @@ { "nodes": { + "base16": { + "inputs": { + "fromYaml": "fromYaml" + }, + "locked": { + "lastModified": 1708890466, + "narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "665b3c6748534eb766c777298721cece9453fdae", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "base16-fish": { + "flake": false, + "locked": { + "lastModified": 1622559957, + "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe", + "type": "github" + }, + "original": { + "owner": "tomyun", + "repo": "base16-fish", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1725860795, + "narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "7f795bf75d38e0eea9fed287264067ca187b88a9", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1716150083, + "narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=", + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-vim", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { @@ -80,6 +146,22 @@ "type": "github" } }, + "flake-compat_6": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -216,6 +298,43 @@ "type": "github" } }, + "flake-utils_5": { + "inputs": { + "systems": [ + "stylix", + "systems" + ] + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "fromYaml": { + "flake": false, + "locked": { + "lastModified": 1689549921, + "narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "fromYaml", + "type": "github" + } + }, "git-hooks": { "inputs": { "flake-compat": "flake-compat_5", @@ -268,6 +387,23 @@ "type": "github" } }, + "gnome-shell": { + "flake": false, + "locked": { + "lastModified": 1713702291, + "narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934", + "type": "github" + }, + "original": { + "owner": "GNOME", + "ref": "46.1", + "repo": "gnome-shell", + "type": "github" + } + }, "hardware": { "locked": { "lastModified": 1729742320, @@ -346,6 +482,27 @@ "type": "github" } }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1724435763, + "narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "microvm": { "inputs": { "flake-utils": "flake-utils", @@ -507,6 +664,22 @@ "type": "github" } }, + "nixpkgs_3": { + "locked": { + "lastModified": 1725194671, + "narHash": "sha256-tLGCFEFTB5TaOKkpfw3iYT9dnk4awTP/q4w+ROpMfuw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "b833ff01a0d694b910daca6e2ff4a3f26dee478c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nur": { "locked": { "lastModified": 1730021733, @@ -560,6 +733,7 @@ "small-nvim": "small-nvim", "sobercookie": "sobercookie", "sops-nix": "sops-nix", + "stylix": "stylix", "umu": "umu", "vpn-confinement": "vpn-confinement" } @@ -643,6 +817,36 @@ "url": "https://spectrum-os.org/git/spectrum" } }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-helix": "base16-helix", + "base16-vim": "base16-vim", + "flake-compat": "flake-compat_6", + "flake-utils": "flake-utils_5", + "gnome-shell": "gnome-shell", + "home-manager": "home-manager_2", + "nixpkgs": "nixpkgs_3", + "systems": "systems_6", + "tinted-foot": "tinted-foot", + "tinted-kitty": "tinted-kitty", + "tinted-tmux": "tinted-tmux" + }, + "locked": { + "lastModified": 1729963473, + "narHash": "sha256-uGjTjvvlGQfQ0yypVP+at0NizI2nrb6kz4wGAqzRGbY=", + "owner": "danth", + "repo": "stylix", + "rev": "04afcfc0684d9bbb24bb1dc77afda7c1843ec93b", + "type": "github" + }, + "original": { + "owner": "danth", + "repo": "stylix", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, @@ -718,6 +922,70 @@ "type": "github" } }, + "systems_6": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "tinted-foot": { + "flake": false, + "locked": { + "lastModified": 1696725948, + "narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=", + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-foot", + "type": "github" + } + }, + "tinted-kitty": { + "flake": false, + "locked": { + "lastModified": 1716423189, + "narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=", + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "eb39e141db14baef052893285df9f266df041ff8", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "eb39e141db14baef052893285df9f266df041ff8", + "type": "github" + } + }, + "tinted-tmux": { + "flake": false, + "locked": { + "lastModified": 1696725902, + "narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=", + "owner": "tinted-theming", + "repo": "tinted-tmux", + "rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-tmux", + "type": "github" + } + }, "umu": { "inputs": { "nixpkgs": [ diff --git a/flake.nix b/flake.nix index 50316c6..6603274 100644 --- a/flake.nix +++ b/flake.nix @@ -56,6 +56,7 @@ home-manager.url = "github:nix-community/home-manager"; small-nvim.url = "github:xunuwu/small-nvim"; # small-nvim.url = "/home/xun/dots/small-nvim"; + stylix.url = "github:danth/stylix"; nur.url = "github:nix-community/NUR"; sops-nix.url = "github:Mic92/sops-nix"; nix-index-database.url = "github:Mic92/nix-index-database"; diff --git a/home-modules/xun/desktop/colorscheme/default.nix b/home-modules/xun/desktop/colorscheme/default.nix deleted file mode 100644 index 2481a20..0000000 --- a/home-modules/xun/desktop/colorscheme/default.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - cfg = config.xun.desktop; - dark = { - dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-dark"; - gtk = { - theme = { - package = pkgs.gnome-themes-extra; - name = "Adwaita-dark"; - }; - iconTheme = { - package = pkgs.adwaita-icon-theme; - name = "Adwaita-dark"; - }; - gtk2.extraConfig = "gtk-application-prefer-dark-theme=1"; - gtk3.extraConfig.gtk-application-prefer-dark-theme = 1; - gtk4.extraConfig.gtk-application-prefer-dark-theme = 1; - }; - qt = { - platformTheme.name = "gtk3"; - style = { - name = "Adwaita-dark"; - package = pkgs.adwaita-qt; - }; - }; - }; - light = { - dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-light"; - gtk = { - theme = { - package = pkgs.gnome-themes-extra; - name = "Adwaita"; - }; - iconTheme = { - package = pkgs.adwaita-icon-theme; - name = "Adwaita"; - }; - gtk2.extraConfig = "gtk-application-prefer-dark-theme=false"; - gtk3.extraConfig.gtk-application-prefer-dark-theme = 0; - gtk4.extraConfig.gtk-application-prefer-dark-theme = 0; - }; - qt = { - style = { - name = "adwaita"; - package = pkgs.adwaita-qt; - }; - }; - }; -in { - options.xun.desktop.colorscheme = lib.mkOption { - default = null; - type = lib.types.enum [null "dark" "light"]; # might add more in the future - }; - - config = lib.mkIf (cfg.colorscheme != null) (lib.mkMerge [ - (lib.mkIf (cfg.colorscheme == "dark") dark) - (lib.mkIf (cfg.colorscheme == "light") light) - ]); - - # config = lib.mkIf (cfg.colorscheme != null) (let - # switch = { - # dark = {}; - # light = {}; - # }; - # in - # switch."${toString cfg.colorscheme}"); -} diff --git a/home-modules/xun/desktop/default.nix b/home-modules/xun/desktop/default.nix index 05d8ce2..0b82400 100644 --- a/home-modules/xun/desktop/default.nix +++ b/home-modules/xun/desktop/default.nix @@ -6,50 +6,32 @@ }: let cfg = config.xun.desktop; in { - imports = [ - ./colorscheme - ]; - options.xun.desktop = { xdg.enable = lib.mkEnableOption "xdg env vars"; - # colorscheme = lib.mkOption { - # default = null; - # type = lib.types.enum ["dark" "light"]; - # }; }; - config = lib.mkMerge [ - # (let - # switch = { - # "dark" = {}; - # "light" = {}; - # }; - # in - # switch."${toString cfg.colorscheme}") + config = lib.mkIf cfg.xdg.enable { + xdg = let + home = config.home.homeDirectory; + in { + enable = true; + cacheHome = config.home.homeDirectory + "/.local/cache"; - (lib.mkIf cfg.xdg.enable { - xdg = let - home = config.home.homeDirectory; - in { + userDirs = { enable = true; - cacheHome = config.home.homeDirectory + "/.local/cache"; - - userDirs = { - enable = true; - desktop = home + "/desktop"; - documents = home + "/docs"; - download = home + "/down"; - music = home + "/music"; - pictures = home + "/pics"; - publicShare = home + "/share"; - videos = home + "/vids"; - extraConfig = { - XDG_SCREENSHOTS_DIR = config.xdg.userDirs.pictures + "/screenshots"; - }; + desktop = home + "/desktop"; + documents = home + "/docs"; + download = home + "/down"; + music = home + "/music"; + pictures = home + "/pics"; + publicShare = home + "/share"; + videos = home + "/vids"; + extraConfig = { + XDG_SCREENSHOTS_DIR = config.xdg.userDirs.pictures + "/screenshots"; }; }; + }; - home.packages = [pkgs.xdg-utils]; - }) - ]; + home.packages = [pkgs.xdg-utils]; + }; } diff --git a/home/profiles/nixdesk/dark.nix b/home/profiles/nixdesk/dark.nix new file mode 100644 index 0000000..d70f564 --- /dev/null +++ b/home/profiles/nixdesk/dark.nix @@ -0,0 +1,19 @@ +{ + lib, + pkgs, + ... +}: { + stylix.targets = { + firefox.profileNames = ["xun"]; + }; + gtk = { + # theme = lib.mkForce { + # package = pkgs.whitesur-gtk-theme; + # name = "WhiteSur-Dark"; + # }; + iconTheme = { + name = "WhiteSur-dark"; + package = pkgs.whitesur-icon-theme; + }; + }; +} diff --git a/home/profiles/nixdesk/default.nix b/home/profiles/nixdesk/default.nix index 8012177..691b6f1 100644 --- a/home/profiles/nixdesk/default.nix +++ b/home/profiles/nixdesk/default.nix @@ -1,6 +1,7 @@ { inputs, self, + pkgs, ... }: { imports = [ @@ -28,7 +29,7 @@ # desktop ../../programs/desktop - ../../programs/desktop/theme.nix + # ../../programs/desktop/theme.nix ../../programs/desktop/awesome #../../programs/desktop/hyprland ../../programs/desktop/sway @@ -63,6 +64,8 @@ # ../../programs/games/krunker.nix #../../programs/games/ludusavi.nix + ./dark.nix + # media services ../../services/media/playerctl.nix # system services @@ -81,7 +84,6 @@ }; desktop = { xdg = enabled; - colorscheme = "light"; }; programs.terminal = { shell.zsh = enabled; @@ -106,4 +108,15 @@ }; # school.geogebra = enabled; }; + + qt = { + enable = true; + platformTheme = { + name = "gtk3"; + package = [ + pkgs.libsForQt5.qtstyleplugins + pkgs.qt6.qtbase + ]; + }; + }; } diff --git a/home/programs/browsers/firefox/default.nix b/home/programs/browsers/firefox/default.nix index c832e2a..da34c9d 100644 --- a/home/programs/browsers/firefox/default.nix +++ b/home/programs/browsers/firefox/default.nix @@ -31,7 +31,8 @@ profiles.xun = { extensions = with config.nur.repos.rycee.firefox-addons; [ ublock-origin - (lib.mkIf (config.xun.desktop.colorscheme == "dark") darkreader) + # (lib.mkIf (config.xun.desktop.colorscheme == "dark") darkreader) + darkreader sponsorblock tridactyl translate-web-pages @@ -61,16 +62,6 @@ # else null # }\", true);"; settings = { - "extensions.activeThemeID" = let - inherit (config.xun.desktop) colorscheme; - in - lib.mkIf (colorscheme != null) ( - if colorscheme == "dark" - then "{30756de5-da3b-43c4-8b35-1db7bb01680a}" - else if colorscheme == "light" - then "firefox-compact-light@mozilla.org" - else null - ); "browser.display.use_system_colors" = true; # about:blank colour match colourscheme "toolkit.legacyUserProfileCustomizations.stylesheets" = true; # enable userChrome "browser.tabs.inTitleBar" = "0"; # use system title bar diff --git a/home/programs/desktop/common/fuzzel.nix b/home/programs/desktop/common/fuzzel.nix index 774cbd3..9777018 100644 --- a/home/programs/desktop/common/fuzzel.nix +++ b/home/programs/desktop/common/fuzzel.nix @@ -32,7 +32,7 @@ in { terminal = "${lib.getExe pkgs.foot}"; layer = "overlay"; }; - colors = colors."${config.xun.desktop.colorscheme}"; + # colors = colors."${config.xun.desktop.colorscheme}"; }; }; } diff --git a/home/programs/desktop/sway/default.nix b/home/programs/desktop/sway/default.nix index e0391bd..ab3ae71 100644 --- a/home/programs/desktop/sway/default.nix +++ b/home/programs/desktop/sway/default.nix @@ -53,9 +53,9 @@ ''; config = { modifier = "Mod4"; - output = { - "*".bg = "${config.xdg.userDirs.pictures}/wallpaper fill"; - }; + # output = { + # "*".bg = "${config.xdg.userDirs.pictures}/wallpaper fill"; + # }; input = { "*".xkb_layout = osConfig.services.xserver.xkb.layout; }; diff --git a/home/programs/desktop/sway/waybar.nix b/home/programs/desktop/sway/waybar.nix index a350f35..d7b2be1 100644 --- a/home/programs/desktop/sway/waybar.nix +++ b/home/programs/desktop/sway/waybar.nix @@ -42,10 +42,6 @@ padding: 0 5px; } - #workspaces button.visible { - box-shadow: inset 0 -3px black; - } - #workspaces button.urgent { box-shadow: inset 0 -3px blue; } diff --git a/home/terminal/emulator/foot.nix b/home/terminal/emulator/foot.nix index 675930e..c0e7486 100644 --- a/home/terminal/emulator/foot.nix +++ b/home/terminal/emulator/foot.nix @@ -3,8 +3,8 @@ enable = true; settings = { main = { - include = "${pkgs.foot.themes}/share/foot/themes/modus-operandi"; - font = "monospace:size=9"; + # include = "${pkgs.foot.themes}/share/foot/themes/modus-operandi"; + # font = "monospace:size=9"; }; mouse.hide-when-typing = true; }; diff --git a/hosts/machines/default.nix b/hosts/machines/default.nix index 52b0c81..a5e401c 100644 --- a/hosts/machines/default.nix +++ b/hosts/machines/default.nix @@ -63,6 +63,8 @@ in { imports = lib.flatten [ ./nixdesk + inputs.stylix.nixosModules.stylix + (with systemProfiles; [ secrets.default secrets.nixdesk.default @@ -92,8 +94,13 @@ in { desktop.sway #..desktop.hyprland - programs.default + programs.dconf + programs.fonts + programs.home-manager + # programs.qt + programs.adb programs.tools + programs.thunar services.default services.pipewire @@ -106,6 +113,8 @@ in { #services.ollama desktop.x11.nosleep + themes.dark + # programs.gamemode # TEMP: TODO # programs.gamescope # TEMP: TODO # programs.steam # TEMP: TODO @@ -114,6 +123,7 @@ in { { home-manager = { + backupFileExtension = "hm-backup"; users.xun.imports = homeImports."xun@nixdesk"; extraSpecialArgs = specialArgs; }; diff --git a/systemProfiles/programs/dconf.nix b/systemProfiles/programs/dconf.nix new file mode 100644 index 0000000..62999ba --- /dev/null +++ b/systemProfiles/programs/dconf.nix @@ -0,0 +1,6 @@ +{ + programs = { + # make HM-managed GTK stuff work + dconf.enable = true; + }; +} diff --git a/systemProfiles/programs/default.nix b/systemProfiles/programs/default.nix deleted file mode 100644 index ab99e81..0000000 --- a/systemProfiles/programs/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - self, - super, - root, -}: { - imports = with super; [ - fonts - home-manager - qt - adb - ]; - - programs = { - # make HM-managed GTK stuff work - dconf.enable = true; - }; -} diff --git a/systemProfiles/programs/thunar.nix b/systemProfiles/programs/thunar.nix new file mode 100644 index 0000000..d48c848 --- /dev/null +++ b/systemProfiles/programs/thunar.nix @@ -0,0 +1,9 @@ +_: {pkgs, ...}: { + services.tumbler.enable = true; # image thumbnails + programs.thunar = { + enable = true; + plugins = with pkgs.xfce; [ + thunar-archive-plugin + ]; + }; +} diff --git a/systemProfiles/themes/dark.nix b/systemProfiles/themes/dark.nix new file mode 100644 index 0000000..8e2a17a --- /dev/null +++ b/systemProfiles/themes/dark.nix @@ -0,0 +1,23 @@ +_: {pkgs, ...}: { + stylix = { + enable = true; + autoEnable = true; + base16Scheme = "${pkgs.base16-schemes}/share/themes/da-one-black.yaml"; + image = pkgs.fetchurl { + url = "https://i.imgur.com/j9xld8Y.png"; + hash = "sha256-ou7+S4QFC7Gabbwv9PKcQLLT/1J26FJM7qRVbjLUoRU="; + }; + polarity = "dark"; + cursor = { + package = pkgs.whitesur-cursors; + name = "whitesur-cursors"; + size = 16; + }; + fonts = { + sizes = { + terminal = 9; + applications = 10; + }; + }; + }; +}