diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md
index 7cf1fd7..ce0b532 100644
--- a/docs/CONTRIBUTING.md
+++ b/docs/CONTRIBUTING.md
@@ -1,16 +1,16 @@
-# Contributing to Nixy
-
-Everybody is invited and welcome to contribute to Nixy. There is a lot to do... Check the issues!
-
-The process is straight-forward.
-
-- Read [How to get faster PR reviews](https://github.com/kubernetes/community/blob/master/contributors/guide/pull-requests.md#best-practices-for-faster-reviews) by Kubernetes (but skip step 0 and 1)
-- Fork Nixy [git repository](https://github.com/anotherhadi/nixy).
-- Write your changes (new theme, bug fixes, issues fix, ...).
-- Create a Pull Request against the main branch of Nixy.
-
-> [!TIP]
-> To update the README, change the `./.github/assets/README_template.md`
-
-> [!IMPORTANT]
-> Don't push your host's folder
+# Contributing to Nixy
+
+Everybody is invited and welcome to contribute to Nixy. There is a lot to do... Check the issues!
+
+The process is straight-forward.
+
+- Read [How to get faster PR reviews](https://github.com/kubernetes/community/blob/master/contributors/guide/pull-requests.md#best-practices-for-faster-reviews) by Kubernetes (but skip step 0 and 1)
+- Fork Nixy [git repository](https://github.com/anotherhadi/nixy).
+- Write your changes (new theme, bug fixes, issues fix, ...).
+- Create a Pull Request against the main branch of Nixy.
+
+> [!TIP]
+> To update the README, change the `./.github/assets/README_template.md`
+
+> [!IMPORTANT]
+> Don't push your host's folder
diff --git a/home/programs/group/basic-apps.nix b/home/programs/group/basic-apps.nix
index b1e9dc0..fc65068 100644
--- a/home/programs/group/basic-apps.nix
+++ b/home/programs/group/basic-apps.nix
@@ -26,6 +26,9 @@
pkgs.wifitui # TUI for managing wifi
pkgs-nur-hadi.usbguard-tui # TUI for managing USBGuard rules
+ blueman # Bluetooth manager (blueman-manager, blueman-adapters, blueman-sendto)
+ bluez # Bluetooth stack tools (bluetoothctl)
+
# I love CLIs
httpie # Command-line HTTP client, a user-friendly cURL replacement
diff --git a/home/system/walker/default.nix b/home/system/walker/default.nix
index 9da806d..3d1060c 100644
--- a/home/system/walker/default.nix
+++ b/home/system/walker/default.nix
@@ -1,9 +1,29 @@
-{pkgs, ...}: {
+{ pkgs, ... }:
+
+{
home.packages = with pkgs; [
walker
+ elephant
];
+ systemd.user.services.walker = {
+ Unit = {
+ Description = "Walker application service";
+ After = [ "graphical-session.target" ];
+ PartOf = [ "graphical-session.target" ];
+ };
+
+ Service = {
+ ExecStart = "${pkgs.walker}/bin/walker --gapplication-service";
+ Restart = "on-failure";
+ };
+
+ Install = {
+ WantedBy = [ "graphical-session.target" ];
+ };
+ };
+
wayland.windowManager.hyprland.settings.exec-once = [
- "walker --gapplication-service"
+ "sh -lc 'elephant service enable && systemctl --user start elephant.service'"
];
-}
+}
\ No newline at end of file
diff --git a/home/system/waybar/default.nix b/home/system/waybar/default.nix
index 35ac402..83aa5b7 100644
--- a/home/system/waybar/default.nix
+++ b/home/system/waybar/default.nix
@@ -1,6 +1,14 @@
-{pkgs, config, ...}: let
+{ pkgs, config, ... }:
+
+let
colors = config.lib.stylix.colors;
-in {
+
+ rgb = base:
+ "${colors."${base}-rgb-r"}, ${colors."${base}-rgb-g"}, ${colors."${base}-rgb-b"}";
+
+ radius = toString config.theme.bar-rounding;
+in
+{
home.packages = with pkgs; [
waybar
];
@@ -8,17 +16,25 @@ in {
xdg.configFile."waybar/config".text = builtins.toJSON {
layer = "top";
position = "top";
- height = 34;
- spacing = 8;
- margin-top = 8;
- margin-left = 8;
- margin-right = 8;
+ height = 38;
+
+ spacing = 10;
+
+ "margin-top" = 8;
+ "margin-left" = 8;
+ "margin-right" = 8;
+
+ "gtk-layer-shell" = true;
+ "reload_style_on_change" = true;
+
"modules-left" = [
"hyprland/workspaces"
];
+
"modules-center" = [
"hyprland/window"
];
+
"modules-right" = [
"tray"
"network"
@@ -31,55 +47,73 @@ in {
"disable-scroll" = true;
"all-outputs" = true;
"on-click" = "activate";
+
+ "persistent-workspaces" = {
+ "*" = 5;
+ };
};
"hyprland/window" = {
format = "{}";
- "max-length" = 80;
+ "max-length" = 70;
"separate-outputs" = true;
};
tray = {
- "icon-size" = 18;
- spacing = 10;
+ spacing = 8;
+ "icon-size" = 20;
};
network = {
- format-wifi = " {signalStrength}%";
- format-ethernet = " {ifname}";
- format-linked = " {ifname}";
- format-disconnected = " Disconnected";
- tooltip-format = "{ifname} via {gwaddr}";
+ interval = 2;
+
+ "format-wifi" = " {signalStrength}%";
+ "format-ethernet" = " {ifname}";
+ "format-linked" = " {ifname}";
+ "format-disconnected" = "";
+
+ "tooltip-format" = "{essid}\n{ipaddr}";
};
pulseaudio = {
+ "scroll-step" = 5;
+
format = " {volume}%";
- format-muted = " Muted";
+ "format-muted" = "";
+
tooltip = true;
};
clock = {
- format = " {:%H:%M}";
- tooltip-format = "{:%A, %B %d, %Y}";
+ interval = 1;
+
+ format = " {:%H:%M}";
+ "tooltip-format" = "{:%A, %d %B %Y}";
};
};
xdg.configFile."waybar/style.css".text = ''
* {
border: none;
- border-radius: 0;
min-height: 0;
- font-family: "${config.stylix.fonts.sansSerif.name}", "${config.stylix.fonts.monospace.name}", sans-serif;
+
+ font-family:
+ "${config.stylix.fonts.sansSerif.name}",
+ "${config.stylix.fonts.monospace.name}",
+ sans-serif;
+
font-size: 13px;
}
window#waybar {
- background: #${colors.base00}E6;
+ background: transparent;
color: #${colors.base05};
}
- #waybar {
- background: transparent;
+ .modules-left,
+ .modules-center,
+ .modules-right {
+ margin: 6px 0;
}
#workspaces,
@@ -88,19 +122,40 @@ in {
#network,
#pulseaudio,
#clock {
- margin: 8px 0;
- padding: 0 12px;
- border-radius: ${toString config.theme.bar-rounding}px;
- background: #${colors.base01}E6;
- border: 1px solid #${colors.base02};
+ background: rgba(${rgb "base01"}, 0.82);
+
+ border: 1px solid rgba(${rgb "base03"}, 0.45);
+
+ border-radius: ${radius}px;
+
+ padding: 0 14px;
+ margin: 6px 4px;
+
+ transition:
+ background-color 180ms ease,
+ border-color 180ms ease,
+ color 180ms ease;
+ }
+
+ #workspaces {
+ padding: 4px;
}
#workspaces button {
- padding: 0 10px;
- margin: 0 2px;
- border-radius: ${toString config.theme.bar-rounding}px;
- color: #${colors.base05};
background: transparent;
+ color: #${colors.base04};
+
+ padding: 0 12px;
+ margin: 0 2px;
+
+ border-radius: ${radius}px;
+
+ transition: all 180ms ease;
+ }
+
+ #workspaces button:hover {
+ background: rgba(${rgb "base02"}, 0.70);
+ color: #${colors.base05};
}
#workspaces button.active {
@@ -108,21 +163,67 @@ in {
color: #${colors.base00};
}
- #workspaces button:hover {
- background: #${colors.base02};
+ #workspaces button.urgent {
+ background: #${colors.base08};
+ color: #${colors.base00};
}
#window {
- min-width: 180px;
+ min-width: 260px;
+
+ padding-left: 18px;
+ padding-right: 18px;
+
+ color: #${colors.base05};
+ }
+
+ #window.empty {
+ background: transparent;
+ border: none;
+ }
+
+ #tray {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+
+ #network {
+ color: #${colors.base0C};
+ }
+
+ #network.disconnected {
+ color: #${colors.base08};
+ }
+
+ #pulseaudio {
+ color: #${colors.base0B};
}
- #network.disconnected,
#pulseaudio.muted {
color: #${colors.base08};
}
+
+ #clock {
+ color: #${colors.base0D};
+ font-weight: 600;
+ }
+
+ tooltip {
+ background: rgba(${rgb "base00"}, 0.95);
+
+ border: 1px solid rgba(${rgb "base03"}, 0.70);
+
+ border-radius: ${radius}px;
+ }
+
+ tooltip label {
+ color: #${colors.base05};
+ }
'';
- wayland.windowManager.hyprland.settings.exec-once = [
- "waybar"
- ];
-}
+ wayland.windowManager.hyprland.settings = {
+ exec-once = [
+ "waybar"
+ ];
+ };
+}
\ No newline at end of file