diff --git a/config/kitty.nix b/config/kitty.nix
new file mode 100644
index 0000000..8e57405
--- /dev/null
+++ b/config/kitty.nix
@@ -0,0 +1,55 @@
+{ pkgs, config, ... }:
+
+{
+ # Configure Kitty
+ programs.kitty = {
+ enable = true;
+ package = pkgs.kitty;
+ font.name = "JetBrainsMono Nerd Font";
+ font.size = 16;
+ settings = {
+ scrollback_lines = 2000;
+ wheel_scroll_min_lines = 1;
+ window_padding_width = 6;
+ confirm_os_window_close = 0;
+ background_opacity = "0.85";
+ };
+ extraConfig = ''
+ foreground ${base15}
+ background ${base00}
+ color0 ${base00}
+ color8 ${base00}
+ color1 ${base01}
+ color9 ${base09}
+ color2 ${base02}
+ color10 ${base0A}
+ color3 ${base03}
+ color11 ${base0B}
+ color4 ${base04}
+ color12 ${base0C}
+ color5 ${base05}
+ color13 ${base0D}
+ color6 ${base06}
+ color14 ${base0E}
+ color7 ${base07}
+ color15 ${base0F}
+ cursor ${base07}
+ cursor_text_color ${base00}
+ selection_foreground none
+ selection_background ${base08}
+ url_color ${base02}
+ active_border_color ${base04}
+ inactive_border_color ${base00}
+ bell_border_color ${base03}
+ tab_bar_style fade
+ tab_fade 1
+ active_tab_foreground ${base04}
+ active_tab_background ${base00}
+ active_tab_font_style bold
+ inactive_tab_foreground ${base07}
+ inactive_tab_background ${base08}
+ inactive_tab_font_style bold
+ tab_bar_background ${base00}
+ '';
+ };
+}
diff --git a/config/waybar.nix b/config/waybar.nix
new file mode 100644
index 0000000..dab7f81
--- /dev/null
+++ b/config/waybar.nix
@@ -0,0 +1,232 @@
+{ pkgs, config, ... }:
+
+{
+ # Configure & Theme Waybar
+ programs.waybar = {
+ enable = true;
+ package = pkgs.waybar;
+ settings = [{
+ layer = "top";
+ position = "top";
+
+ modules-left = [ "hyprland/window" ];
+ modules-center = [ "network" "pulseaudio" "cpu" "hyprland/workspaces" "memory" "disk" "clock" ];
+ modules-right = [ "custom/notification" "tray" ];
+ "hyprland/workspaces" = {
+ format = "{icon}";
+ format-icons = {
+ default = " ";
+ active = " ";
+ urgent = " ";
+ };
+ on-scroll-up = "hyprctl dispatch workspace e+1";
+ on-scroll-down = "hyprctl dispatch workspace e-1";
+ };
+ "clock" = {
+ format = "{: %I:%M %p}";
+ tooltip = false;
+ };
+ "hyprland/window" = {
+ max-length = 60;
+ separate-outputs = false;
+ };
+ "memory" = {
+ interval = 5;
+ format = " {}%";
+ tooltip = true;
+ };
+ "cpu" = {
+ interval = 5;
+ format = " {usage:2}%";
+ tooltip = true;
+ };
+ "disk" = {
+ format = " {free}";
+ tooltip = true;
+ };
+ "network" = {
+ format-icons = ["" "" "" "" ""];
+ format-ethernet = ": {bandwidthDownOctets} : {bandwidthUpOctets}";
+ format-wifi = "{icon} {signalStrength}%";
+ format-disconnected = "";
+ tooltip = false;
+ };
+ "tray" = {
+ spacing = 12;
+ };
+ "pulseaudio" = {
+ format = "{icon} {volume}% {format_source}";
+ format-bluetooth = "{volume}% {icon} {format_source}";
+ format-bluetooth-muted = " {icon} {format_source}";
+ format-muted = " {format_source}";
+ format-source = " {volume}%";
+ format-source-muted = "";
+ format-icons = {
+ headphone = "";
+ hands-free = "";
+ headset = "";
+ phone = "";
+ portable = "";
+ car = "";
+ default = ["" "" ""];
+ };
+ on-click = "pavucontrol";
+ };
+ "custom/notification" = {
+ tooltip = false;
+ format = "{icon} {}";
+ format-icons = {
+ notification = "";
+ none = "";
+ dnd-notification = "";
+ dnd-none = "";
+ inhibited-notification = "";
+ inhibited-none = "";
+ dnd-inhibited-notification = "";
+ dnd-inhibited-none = "";
+ };
+ return-type = "json";
+ exec-if = "which swaync-client";
+ exec = "swaync-client -swb";
+ on-click = "task-waybar";
+ escape = true;
+ };
+ "battery" = {
+ states = {
+ warning = 30;
+ critical = 15;
+ };
+ format = "{icon} {capacity}%";
+ format-charging = " {capacity}%";
+ format-plugged = " {capacity}%";
+ format-icons = ["" "" "" "" "" "" "" "" "" ""];
+ on-click = "";
+ tooltip = false;
+ };
+ }];
+ style = ''
+ * {
+ font-size: 16px;
+ font-family: JetBrainsMono Nerd Font, Font Awesome, sans-serif;
+ font-weight: bold;
+ }
+ window#waybar {
+ background-color: rgba(26,27,38,0);
+ border-bottom: 1px solid rgba(26,27,38,0);
+ border-radius: 0px;
+ color: ${base0F};
+ }
+ #workspaces {
+ background: linear-gradient(180deg, ${base00}, ${base08});
+ margin: 5px;
+ padding: 0px 1px;
+ border-radius: 15px;
+ border: 0px;
+ font-style: normal;
+ color: ${base00};
+ }
+ #workspaces button {
+ padding: 0px 5px;
+ margin: 4px 3px;
+ border-radius: 15px;
+ border: 0px;
+ color: ${base00};
+ background-color: ${base00};
+ opacity: 1.0;
+ transition: all 0.3s ease-in-out;
+ }
+ #workspaces button.active {
+ color: ${base00};
+ background: ${base04};
+ border-radius: 15px;
+ min-width: 40px;
+ transition: all 0.3s ease-in-out;
+ opacity: 1.0;
+ }
+ #workspaces button:hover {
+ color: ${base00};
+ background: ${base04};
+ border-radius: 15px;
+ opacity: 1.0;
+ }
+ tooltip {
+ background: ${base00};
+ border: 1px solid ${base04};
+ border-radius: 10px;
+ }
+ tooltip label {
+ color: ${base07};
+ }
+ #window {
+ color: ${base06};
+ background: ${base00};
+ border-radius: 0px 15px 50px 0px;
+ margin: 5px 5px 5px 0px;
+ padding: 2px 20px;
+ }
+ #memory {
+ color: ${base05};
+ background: ${base00};
+ border-radius: 15px 50px 15px 50px;
+ margin: 5px;
+ padding: 2px 20px;
+ }
+ #clock {
+ color: ${base07};
+ background: ${base00};
+ border-radius: 15px 50px 15px 50px;
+ margin: 5px;
+ padding: 2px 20px;
+ }
+ #cpu {
+ color: ${base05};
+ background: ${base00};
+ border-radius: 50px 15px 50px 15px;
+ margin: 5px;
+ padding: 2px 20px;
+ }
+ #disk {
+ color: ${base02};
+ background: ${base00};
+ border-radius: 15px 50px 15px 50px;
+ margin: 5px;
+ padding: 2px 20px;
+ }
+ #battery {
+ color: ${base01};
+ background: ${base00};
+ border-radius: 15px;
+ margin: 5px;
+ padding: 2px 20px;
+ }
+ #network {
+ color: ${base03};
+ background: ${base00};
+ border-radius: 50px 15px 50px 15px;
+ margin: 5px;
+ padding: 2px 20px;
+ }
+ #tray {
+ color: ${base07};
+ background: ${base00};
+ border-radius: 15px 0px 0px 50px;
+ margin: 5px 0px 5px 5px;
+ padding: 2px 20px;
+ }
+ #pulseaudio {
+ color: ${base05};
+ background: ${base00};
+ border-radius: 50px 15px 50px 15px;
+ margin: 5px;
+ padding: 2px 20px;
+ }
+ #custom-notification {
+ color: ${base04};
+ background: ${base00};
+ border-radius: 15px 50px 15px 50px;
+ margin: 5px;
+ padding: 2px 20px;
+ }
+ '';
+ };
+}
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..f957ae0
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,211 @@
+{
+ "nodes": {
+ "home-manager": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1704980875,
+ "narHash": "sha256-IPZmMjk5f4TBbEpzUFBc3OC1W6OwDNEXk2w/0uVXX1o=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "5f0ab0eedc6ede69beb8f45561ffefa54edc6e65",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "ref": "release-23.11",
+ "repo": "home-manager",
+ "type": "github"
+ }
+ },
+ "hyprland": {
+ "inputs": {
+ "hyprland-protocols": "hyprland-protocols",
+ "nixpkgs": "nixpkgs",
+ "systems": "systems",
+ "wlroots": "wlroots",
+ "xdph": "xdph"
+ },
+ "locked": {
+ "lastModified": 1705070596,
+ "narHash": "sha256-Xq3JOddIH7AnACEHGaSKg71IF8CATE1zSTzdgR4pnlo=",
+ "owner": "hyprwm",
+ "repo": "Hyprland",
+ "rev": "c4da4b026deefd58f532353b64e9f17130e760ca",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "Hyprland",
+ "type": "github"
+ }
+ },
+ "hyprland-protocols": {
+ "inputs": {
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1691753796,
+ "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=",
+ "owner": "hyprwm",
+ "repo": "hyprland-protocols",
+ "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprland-protocols",
+ "type": "github"
+ }
+ },
+ "hyprlang": {
+ "inputs": {
+ "nixpkgs": "nixpkgs_2"
+ },
+ "locked": {
+ "lastModified": 1704287638,
+ "narHash": "sha256-TuRXJGwtK440AXQNl5eiqmQqY4LZ/9+z/R7xC0ie3iA=",
+ "owner": "hyprwm",
+ "repo": "hyprlang",
+ "rev": "6624f2bb66d4d27975766e81f77174adbe58ec97",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "hyprlang",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1704194953,
+ "narHash": "sha256-RtDKd8Mynhe5CFnVT8s0/0yqtWFMM9LmCzXv/YKxnq4=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "bd645e8668ec6612439a9ee7e71f7eac4099d4f6",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1702645756,
+ "narHash": "sha256-qKI6OR3TYJYQB3Q8mAZ+DG4o/BR9ptcv9UnRV2hzljc=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "40c3c94c241286dd2243ea34d3aef8a488f9e4d0",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_3": {
+ "locked": {
+ "lastModified": 1704874635,
+ "narHash": "sha256-YWuCrtsty5vVZvu+7BchAxmcYzTMfolSPP5io8+WYCg=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "3dc440faeee9e889fe2d1b4d25ad0f430d449356",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-23.11",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "home-manager": "home-manager",
+ "hyprland": "hyprland",
+ "nixpkgs": "nixpkgs_3"
+ }
+ },
+ "systems": {
+ "locked": {
+ "lastModified": 1689347949,
+ "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
+ "owner": "nix-systems",
+ "repo": "default-linux",
+ "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default-linux",
+ "type": "github"
+ }
+ },
+ "wlroots": {
+ "flake": false,
+ "locked": {
+ "host": "gitlab.freedesktop.org",
+ "lastModified": 1703963193,
+ "narHash": "sha256-ke8drv6PTrdQDruWbajrRJffP9A9PU6FRyjJGNZRTs4=",
+ "owner": "wlroots",
+ "repo": "wlroots",
+ "rev": "f81c3d93cd6f61b20ae784297679283438def8df",
+ "type": "gitlab"
+ },
+ "original": {
+ "host": "gitlab.freedesktop.org",
+ "owner": "wlroots",
+ "repo": "wlroots",
+ "rev": "f81c3d93cd6f61b20ae784297679283438def8df",
+ "type": "gitlab"
+ }
+ },
+ "xdph": {
+ "inputs": {
+ "hyprland-protocols": [
+ "hyprland",
+ "hyprland-protocols"
+ ],
+ "hyprlang": "hyprlang",
+ "nixpkgs": [
+ "hyprland",
+ "nixpkgs"
+ ],
+ "systems": [
+ "hyprland",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1704400467,
+ "narHash": "sha256-IsEAKBCorRlN53FwFAMbyGLRsPVu/ZrWEJtCwykPds8=",
+ "owner": "hyprwm",
+ "repo": "xdg-desktop-portal-hyprland",
+ "rev": "1c802128f6cc3db29a8ef01552b1a22f894eeefd",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hyprwm",
+ "repo": "xdg-desktop-portal-hyprland",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
index 7e3d9fe..a32ac87 100644
--- a/flake.nix
+++ b/flake.nix
@@ -6,6 +6,7 @@
home-manager.url = "github:nix-community/home-manager/release-23.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
hyprland.url = "github:hyprwm/Hyprland";
+ nix-colors.url = "github:misterio77/nix-colors";
};
outputs = inputs@{ nixpkgs, home-manager, ... }:
diff --git a/home.nix b/home.nix
index 7d490a0..32333fb 100644
--- a/home.nix
+++ b/home.nix
@@ -1,4 +1,4 @@
-{ config, pkgs, username, gitUsername, gitEmail, ... }:
+{ config, pkgs, inputs, username, gitUsername, gitEmail, ... }:
{
# Home Manager Settings
@@ -6,6 +6,15 @@
home.homeDirectory = "/home/${username}";
home.stateVersion = "23.11";
+ # Set The Colorscheme
+ colorScheme = inputs.nix-colors.colorSchemes.gruvbox-dark-medium;
+
+ imports = [
+ inputs.nix-colors.homeManagerModules.default
+ ./config/waybar.nix
+ ./config/kitty.nix
+ ];
+
# Place Files Inside Home Directory
home.file.".config/zaney-stinger.mov".source = ./media/zaney-stinger.mov;
home.file.".config/pipewire/pipewire.conf".source = ./config/pipewire/pipewire.conf;
@@ -143,286 +152,5 @@
};
};
- # Configure Kitty
- programs.kitty = {
- enable = true;
- package = pkgs.kitty;
- font.name = "JetBrainsMono Nerd Font";
- font.size = 16;
- settings = {
- scrollback_lines = 2000;
- wheel_scroll_min_lines = 1;
- window_padding_width = 6;
- confirm_os_window_close = 0;
- background_opacity = "0.85";
- };
- extraConfig = ''
- foreground #a9b1d6
- background #1a1b26
- color0 #414868
- color8 #414868
- color1 #f7768e
- color9 #f7768e
- color2 #73daca
- color10 #73daca
- color3 #e0af68
- color11 #e0af68
- color4 #7aa2f7
- color12 #7aa2f7
- color5 #bb9af7
- color13 #bb9af7
- color6 #7dcfff
- color14 #7dcfff
- color7 #c0caf5
- color15 #c0caf5
- cursor #c0caf5
- cursor_text_color #1a1b26
- selection_foreground none
- selection_background #28344a
- url_color #9ece6a
- active_border_color #3d59a1
- inactive_border_color #101014
- bell_border_color #e0af68
- tab_bar_style fade
- tab_fade 1
- active_tab_foreground #3d59a1
- active_tab_background #16161e
- active_tab_font_style bold
- inactive_tab_foreground #787c99
- inactive_tab_background #16161e
- inactive_tab_font_style bold
- tab_bar_background #101014
- '';
- };
-
- # Configure & Theme Waybar
- programs.waybar = {
- enable = true;
- package = pkgs.waybar;
- settings = [{
- layer = "top";
- position = "top";
-
- modules-left = [ "hyprland/window" ];
- modules-center = [ "network" "pulseaudio" "cpu" "hyprland/workspaces" "memory" "disk" "clock" ];
- modules-right = [ "custom/notification" "tray" ];
- "hyprland/workspaces" = {
- format = "{icon}";
- format-icons = {
- default = " ";
- active = " ";
- urgent = " ";
- };
- on-scroll-up = "hyprctl dispatch workspace e+1";
- on-scroll-down = "hyprctl dispatch workspace e-1";
- };
- "clock" = {
- format = "{: %I:%M %p}";
- tooltip = false;
- };
- "hyprland/window" = {
- max-length = 60;
- separate-outputs = false;
- };
- "memory" = {
- interval = 5;
- format = " {}%";
- tooltip = true;
- };
- "cpu" = {
- interval = 5;
- format = " {usage:2}%";
- tooltip = true;
- };
- "disk" = {
- format = " {free}";
- tooltip = true;
- };
- "network" = {
- format-icons = ["" "" "" "" ""];
- format-ethernet = ": {bandwidthDownOctets} : {bandwidthUpOctets}";
- format-wifi = "{icon} {signalStrength}%";
- format-disconnected = "";
- tooltip = false;
- };
- "tray" = {
- spacing = 12;
- };
- "pulseaudio" = {
- format = "{icon} {volume}% {format_source}";
- format-bluetooth = "{volume}% {icon} {format_source}";
- format-bluetooth-muted = " {icon} {format_source}";
- format-muted = " {format_source}";
- format-source = " {volume}%";
- format-source-muted = "";
- format-icons = {
- headphone = "";
- hands-free = "";
- headset = "";
- phone = "";
- portable = "";
- car = "";
- default = ["" "" ""];
- };
- on-click = "pavucontrol";
- };
- "custom/notification" = {
- tooltip = false;
- format = "{icon} {}";
- format-icons = {
- notification = "";
- none = "";
- dnd-notification = "";
- dnd-none = "";
- inhibited-notification = "";
- inhibited-none = "";
- dnd-inhibited-notification = "";
- dnd-inhibited-none = "";
- };
- return-type = "json";
- exec-if = "which swaync-client";
- exec = "swaync-client -swb";
- on-click = "task-waybar";
- escape = true;
- };
- "battery" = {
- states = {
- warning = 30;
- critical = 15;
- };
- format = "{icon} {capacity}%";
- format-charging = " {capacity}%";
- format-plugged = " {capacity}%";
- format-icons = ["" "" "" "" "" "" "" "" "" ""];
- on-click = "";
- tooltip = false;
- };
- }];
- style = ''
- * {
- font-size: 16px;
- font-family: JetBrainsMono Nerd Font, Font Awesome, sans-serif;
- font-weight: bold;
- }
- window#waybar {
- background-color: rgba(26,27,38,0);
- border-bottom: 1px solid rgba(26,27,38,0);
- border-radius: 0px;
- color: #f8f8f2;
- }
- #workspaces {
- background: linear-gradient(180deg, #414868, #24283b);
- margin: 5px;
- padding: 0px 1px;
- border-radius: 15px;
- border: 0px;
- font-style: normal;
- color: #15161e;
- }
- #workspaces button {
- padding: 0px 5px;
- margin: 4px 3px;
- border-radius: 15px;
- border: 0px;
- color: #15161e;
- background-color: #1a1b26;
- opacity: 1.0;
- transition: all 0.3s ease-in-out;
- }
- #workspaces button.active {
- color: #15161e;
- background: #7aa2f7;
- border-radius: 15px;
- min-width: 40px;
- transition: all 0.3s ease-in-out;
- opacity: 1.0;
- }
- #workspaces button:hover {
- color: #15161e;
- background: #7aa2f7;
- border-radius: 15px;
- opacity: 1.0;
- }
- tooltip {
- background: #1a1b26;
- border: 1px solid #7aa2f7;
- border-radius: 10px;
- }
- tooltip label {
- color: #c0caf5;
- }
- #window {
- color: #565f89;
- background: #1a1b26;
- border-radius: 0px 15px 50px 0px;
- margin: 5px 5px 5px 0px;
- padding: 2px 20px;
- }
- #memory {
- color: #2ac3de;
- background: #1a1b26;
- border-radius: 15px 50px 15px 50px;
- margin: 5px;
- padding: 2px 20px;
- }
- #clock {
- color: #c0caf5;
- background: #1a1b26;
- border-radius: 15px 50px 15px 50px;
- margin: 5px;
- padding: 2px 20px;
- }
- #cpu {
- color: #b4f9f8;
- background: #1a1b26;
- border-radius: 50px 15px 50px 15px;
- margin: 5px;
- padding: 2px 20px;
- }
- #disk {
- color: #9ece6a;
- background: #1a1b26;
- border-radius: 15px 50px 15px 50px;
- margin: 5px;
- padding: 2px 20px;
- }
- #battery {
- color: #f7768e;
- background: #1a1b26;
- border-radius: 15px;
- margin: 5px;
- padding: 2px 20px;
- }
- #network {
- color: #ff9e64;
- background: #1a1b26;
- border-radius: 50px 15px 50px 15px;
- margin: 5px;
- padding: 2px 20px;
- }
- #tray {
- color: #bb9af7;
- background: #1a1b26;
- border-radius: 15px 0px 0px 50px;
- margin: 5px 0px 5px 5px;
- padding: 2px 20px;
- }
- #pulseaudio {
- color: #bb9af7;
- background: #1a1b26;
- border-radius: 50px 15px 50px 15px;
- margin: 5px;
- padding: 2px 20px;
- }
- #custom-notification {
- color: #7dcfff;
- background: #1a1b26;
- border-radius: 15px 50px 15px 50px;
- margin: 5px;
- padding: 2px 20px;
- }
- '';
- };
-
programs.home-manager.enable = true;
}