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