diff --git a/flake.lock b/flake.lock index 81db457..a4eb8ed 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,168 @@ { "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-foot": { + "flake": false, + "locked": { + "lastModified": 1696725948, + "narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=", + "owner": "tinted-theming", + "repo": "base16-foot", + "rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-foot", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1696727917, + "narHash": "sha256-FVrbPk+NtMra0jtlC5oxyNchbm8FosmvXIatkRbYy1g=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "dbe1480d99fe80f08df7970e471fac24c05f2ddb", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-kitty": { + "flake": false, + "locked": { + "lastModified": 1665001328, + "narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=", + "owner": "kdrag0n", + "repo": "base16-kitty", + "rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805", + "type": "github" + }, + "original": { + "owner": "kdrag0n", + "repo": "base16-kitty", + "type": "github" + } + }, + "base16-tmux": { + "flake": false, + "locked": { + "lastModified": 1696725902, + "narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=", + "owner": "tinted-theming", + "repo": "base16-tmux", + "rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-tmux", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1663659192, + "narHash": "sha256-uJvaYYDMXvoo0fhBZUhN8WBXeJ87SRgof6GEK2efFT0=", + "owner": "chriskempson", + "repo": "base16-vim", + "rev": "3be3cd82cd31acfcab9a41bad853d9c68d30478d", + "type": "github" + }, + "original": { + "owner": "chriskempson", + "repo": "base16-vim", + "type": "github" + } + }, + "flake-compat": { + "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" + } + }, + "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" + } + }, + "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" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -20,6 +183,27 @@ "type": "github" } }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1714981474, + "narHash": "sha256-b3/U21CJjCjJKmA9WqUbZGZgCvospO3ArOUTgJugkOY=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "6ebe7be2e67be7b9b54d61ce5704f6fb466c536f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1716509168, @@ -36,10 +220,55 @@ "type": "github" } }, + "nixpkgs_2": { + "locked": { + "lastModified": 1714912032, + "narHash": "sha256-clkcOIkg8G4xuJh+1onLG4HPMpbtzdLv4rHxFzgsH9c=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ee4a6e0f566fe5ec79968c57a9c2c3c25f2cf41d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "root": { "inputs": { "home-manager": "home-manager", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "stylix": "stylix" + } + }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-foot": "base16-foot", + "base16-helix": "base16-helix", + "base16-kitty": "base16-kitty", + "base16-tmux": "base16-tmux", + "base16-vim": "base16-vim", + "flake-compat": "flake-compat", + "gnome-shell": "gnome-shell", + "home-manager": "home-manager_2", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1717419189, + "narHash": "sha256-3J6GHIbA0f/bkHc7qxe1JlpgHJFawuC2ZNepYAjToQM=", + "owner": "danth", + "repo": "stylix", + "rev": "c760f63a44a98b2324fdebaee32831b1297172a1", + "type": "github" + }, + "original": { + "owner": "danth", + "repo": "stylix", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index c3b7efa..e42ea8a 100644 --- a/flake.nix +++ b/flake.nix @@ -4,6 +4,8 @@ home-manager.url = "github:nix-community/home-manager"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; + + stylix.url = "github:danth/stylix"; }; outputs = inputs@{ nixpkgs, home-manager, ... }: diff --git a/hosts/muon/configuration.nix b/hosts/muon/configuration.nix index e7934f0..b588218 100644 --- a/hosts/muon/configuration.nix +++ b/hosts/muon/configuration.nix @@ -8,6 +8,7 @@ in { ]; # System + nix.settings.experimental-features = [ "nix-command" "flakes" ]; mods.user.name = "muon"; networking.hostName = cfg.user.name; @@ -24,6 +25,18 @@ in { # Modules mods.desktop.enable = true; + mods.theme.enable = true; + mods.theme.wallpaper = ./wallpaper.png; + programs.hyprland = { + enable = true; + xwayland.enable = true; + }; + + hardware = { + opengl.enable = true; + nvidia.modesetting.enable = true; + }; + services.xserver.windowManager.qtile.enable = true; # Version of first install diff --git a/hosts/muon/home.nix b/hosts/muon/home.nix index cd02f65..ca10dd4 100644 --- a/hosts/muon/home.nix +++ b/hosts/muon/home.nix @@ -6,6 +6,16 @@ let cfg = osConfig.mods; in { # Modules # mods.module.enable = true; + programs.helix.enable = true; + programs.qutebrowser.enable = true; + wayland.windowManager.hyprland = { + enable = true; + xwayland.enable = true; + systemd.enable = true; + settings = { + debug.disable_logs = false; + }; + }; # Version of first install home.stateVersion = "23.05"; diff --git a/hosts/muon/wallpaper.png b/hosts/muon/wallpaper.png new file mode 100644 index 0000000..9832948 Binary files /dev/null and b/hosts/muon/wallpaper.png differ diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 013e66e..4302dea 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -3,5 +3,6 @@ ./core ./system ./desktop + ./theme ]; } diff --git a/modules/nixos/theme/default.nix b/modules/nixos/theme/default.nix new file mode 100644 index 0000000..a758dce --- /dev/null +++ b/modules/nixos/theme/default.nix @@ -0,0 +1,22 @@ +{ pkgs, lib, config, ... }: +let + cfg = config.mods.theme; +in { + options.mods.theme = { + enable = lib.mkEnableOption "enables stylix system theme"; + scheme = lib.mkOption { + default = "gruvbox-dark-medium"; + description = "system color scheme"; + apply = value: "${pkgs.base16-schemes}/share/themes/${value}.yaml"; + }; + wallpaper = lib.mkOption { + default = ./wallpaper.png; + description = "desktop wallpaper"; + }; + }; + + config = lib.mkIf cfg.enable { + stylix.base16Scheme = cfg.scheme; + stylix.image = cfg.wallpaper; + }; +} diff --git a/modules/nixos/theme/wallpaper.png b/modules/nixos/theme/wallpaper.png new file mode 100644 index 0000000..413aa32 Binary files /dev/null and b/modules/nixos/theme/wallpaper.png differ diff --git a/utils.nix b/utils.nix index e214044..66b120b 100644 --- a/utils.nix +++ b/utils.nix @@ -6,6 +6,7 @@ host ./modules/nixos inputs.home-manager.nixosModules.default + inputs.stylix.nixosModules.stylix ]; }; }