diff --git a/home/features/cli/default.nix b/home/features/cli/default.nix
index 233275c..945e24d 100644
--- a/home/features/cli/default.nix
+++ b/home/features/cli/default.nix
@@ -1,6 +1,8 @@
{pkgs, ...}: {
imports = [
./fish.nix
+ ./fzf.nix
+ ./neofetch.nix
];
programs.zoxide = {
diff --git a/home/features/cli/fzf.nix b/home/features/cli/fzf.nix
new file mode 100644
index 0000000..e997cd1
--- /dev/null
+++ b/home/features/cli/fzf.nix
@@ -0,0 +1,38 @@
+{
+ config,
+ lib,
+ ...
+}:
+with lib; let
+ cfg = config.features.cli.fzf;
+in {
+ options.features.cli.fzf.enable = mkEnableOption "enable fuzzy finder";
+
+ config = mkIf cfg.enable {
+ programs.fzf = {
+ enable = true;
+ enableFishIntegration = true;
+
+ colors = {
+ "fg" = "#f8f8f2";
+ "bg" = "#282a36";
+ "hl" = "#bd93f9";
+ "fg+" = "#f8f8f2";
+ "bg+" = "#44475a";
+ "hl+" = "#bd93f9";
+ "info" = "#ffb86c";
+ "prompt" = "#50fa7b";
+ "pointer" = "#ff79c6";
+ "marker" = "#ff79c6";
+ "spinner" = "#ffb86c";
+ "header" = "#6272a4";
+ };
+ defaultOptions = [
+ "--preview='bat --color=always -n {}'"
+ "--bind 'ctrl-/:toggle-preview'"
+ ];
+ defaultCommand = "fd --type f --exclude .git --follow --hidden";
+ changeDirWidgetCommand = "fd --type d --exclude .git --follow --hidden";
+ };
+ };
+}
diff --git a/home/features/cli/neofetch.nix b/home/features/cli/neofetch.nix
new file mode 100644
index 0000000..e4123da
--- /dev/null
+++ b/home/features/cli/neofetch.nix
@@ -0,0 +1,15 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+with lib; let
+ cfg = config.features.cli.neofetch;
+in {
+ options.features.cli.neofetch.enable = mkEnableOption "enable neofetch";
+
+ config = mkIf cfg.enable {
+ home.packages = with pkgs; [neofetch];
+ };
+}
diff --git a/home/features/desktop/default.nix b/home/features/desktop/default.nix
new file mode 100644
index 0000000..7384eab
--- /dev/null
+++ b/home/features/desktop/default.nix
@@ -0,0 +1,8 @@
+{pkgs, ...}: {
+ imports = [
+ ./wayland.nix
+ ];
+
+ home.packages = with pkgs; [
+ ];
+}
diff --git a/home/features/desktop/wayland.nix b/home/features/desktop/wayland.nix
new file mode 100644
index 0000000..4e4857d
--- /dev/null
+++ b/home/features/desktop/wayland.nix
@@ -0,0 +1,251 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+with lib; let
+ cfg = config.features.desktop.wayland;
+in {
+ options.features.desktop.wayland.enable = mkEnableOption "wayland extra tools and config";
+
+ config = mkIf cfg.enable {
+ programs.waybar = {
+ enable = true;
+ style = ''
+ @define-color background-darker rgba(30, 31, 41, 230);
+ @define-color background #282a36;
+ @define-color selection #44475a;
+ @define-color foreground #f8f8f2;
+ @define-color comment #6272a4;
+ @define-color cyan #8be9fd;
+ @define-color green #50fa7b;
+ @define-color orange #ffb86c;
+ @define-color pink #ff79c6;
+ @define-color purple #bd93f9;
+ @define-color red #ff5555;
+ @define-color yellow #f1fa8c;
+
+ * {
+ border: none;
+ border-radius: 0;
+ font-family: FiraCode Nerd Font;
+ font-weight: bold;
+ font-size: 14px;
+ min-height: 0;
+ }
+
+ window#waybar {
+ background: rgba(21, 18, 27, 0);
+ color: #cdd6f4;
+ }
+
+ tooltip {
+ background: #1e1e2e;
+ border-radius: 10px;
+ border-width: 2px;
+ border-style: solid;
+ border-color: #11111b;
+ }
+
+ #workspaces button {
+ padding: 5px;
+ color: #313244;
+ margin-right: 5px;
+ }
+
+ #workspaces button.active {
+ color: #11111b;
+ background: #a6e3a1;
+ border-radius: 10px;
+ }
+
+ #workspaces button.focused {
+ color: #a6adc8;
+ background: #eba0ac;
+ border-radius: 10px;
+ }
+
+ #workspaces button.urgent {
+ color: #11111b;
+ background: #a6e3a1;
+ border-radius: 10px;
+ }
+
+ #workspaces button:hover {
+ background: #11111b;
+ color: #cdd6f4;
+ border-radius: 10px;
+ }
+
+ #custom-language,
+ #custom-updates,
+ #custom-caffeine,
+ #custom-weather,
+ #window,
+ #clock,
+ #battery,
+ #pulseaudio,
+ #network,
+ #workspaces,
+ #tray,
+ #backlight {
+ background: #1e1e2e;
+ padding: 0px 10px;
+ margin: 3px 0px;
+ margin-top: 10px;
+ border: 1px solid #181825;
+ }
+
+ #tray {
+ border-radius: 10px;
+ margin-right: 10px;
+ }
+
+ #workspaces {
+ background: #1e1e2e;
+ border-radius: 10px;
+ margin-left: 10px;
+ padding-right: 0px;
+ padding-left: 5px;
+ }
+
+ #custom-caffeine {
+ color: #89dceb;
+ border-radius: 10px 0px 0px 10px;
+ border-right: 0px;
+ margin-left: 10px;
+ }
+
+ #custom-language {
+ color: #f38ba8;
+ border-left: 0px;
+ border-right: 0px;
+ }
+
+ #custom-updates {
+ color: #f5c2e7;
+ border-left: 0px;
+ border-right: 0px;
+ }
+
+ #window {
+ border-radius: 10px;
+ margin-left: 60px;
+ margin-right: 60px;
+ }
+
+ #clock {
+ color: #fab387;
+ border-radius: 10px 0px 0px 10px;
+ margin-left: 0px;
+ border-right: 0px;
+ }
+
+ #network {
+ color: #f9e2af;
+ border-left: 0px;
+ border-right: 0px;
+ }
+
+ #pulseaudio {
+ color: #89b4fa;
+ border-left: 0px;
+ border-right: 0px;
+ }
+
+ #pulseaudio.microphone {
+ color: #cba6f7;
+ border-left: 0px;
+ border-right: 0px;
+ }
+
+ #battery {
+ color: #a6e3a1;
+ border-radius: 0 10px 10px 0;
+ margin-right: 10px;
+ border-left: 0px;
+ }
+
+ #custom-weather {
+ border-radius: 0px 10px 10px 0px;
+ border-right: 0px;
+ margin-left: 0px;
+ }
+ '';
+ settings = {
+ mainbar = {
+ layer = "top";
+ position = "top";
+ mod = "dock";
+ exclusive = true;
+ passthrough = false;
+ gtk-layer-shell = true;
+ height = 0;
+ modules-left = ["clock" "custom/weather" "hyprland/workspaces"];
+ modules-center = ["hyprland/window"];
+ modules-right = [
+ "tray"
+ ];
+
+ "hyprland/window" = {
+ format = "👉 {}";
+ seperate-outputs = true;
+ };
+ "hyprland/workspaces" = {
+ disable-scroll = true;
+ all-outputs = true;
+ on-click = "activate";
+ format = " {name} {icon} ";
+ on-scroll-up = "hyprctl dispatch workspace e+1";
+ on-scroll-down = "hyprctl dispatch workspace e-1";
+ format-icons = {
+ "1" = "";
+ "2" = "";
+ "3" = "";
+ "4" = "";
+ "5" = "";
+ "6" = "";
+ "7" = "";
+ };
+ persistent_workspaces = {
+ "1" = [];
+ "2" = [];
+ "3" = [];
+ "4" = [];
+ };
+ };
+ "custom/weather" = {
+ format = "{}°C";
+ tooltip = true;
+ interval = 3600;
+ exec = "wttrbar --location Pockau-Lengefeld";
+ return-type = "json";
+ };
+ tray = {
+ icon-size = 13;
+ spacing = 10;
+ };
+ clock = {
+ format = " {:%R %d/%m}";
+ tooltip-format = "{:%Y %B}\n{calendar}";
+ };
+ };
+ };
+ };
+
+ home.packages = with pkgs; [
+ grim
+ hyprlock
+ qt6.qtwayland
+ slurp
+ waypipe
+ wf-recorder
+ wl-mirror
+ wl-clipboard
+ wlogout
+ wtype
+ ydotool
+ ];
+ };
+}
diff --git a/home/m3tam3re/m3-kratos.nix b/home/m3tam3re/m3-kratos.nix
index d4be878..405cd1d 100644
--- a/home/m3tam3re/m3-kratos.nix
+++ b/home/m3tam3re/m3-kratos.nix
@@ -1,13 +1,19 @@
-{config, ...}: {
+{
imports = [
../common
../features/cli
+ ../features/desktop
./home.nix
];
features = {
cli = {
- fish.enable = false;
+ fish.enable = true;
+ fzf.enable = true;
+ neofetch.enable = true;
+ };
+ desktop = {
+ wayland.enable = true;
};
};
}