diff --git a/flake.lock b/flake.lock index 666d583..bad877d 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,24 @@ { "nodes": { + "ags": { + "inputs": { + "nixpkgs": "nixpkgs_3", + "systems": "systems_3" + }, + "locked": { + "lastModified": 1721306136, + "narHash": "sha256-VKPsIGf3/a+RONBipx4lEE4LXG2sdMNkWQu22LNQItg=", + "owner": "Aylur", + "repo": "ags", + "rev": "344ea72cd3b8d4911f362fec34bce7d8fb37028c", + "type": "github" + }, + "original": { + "owner": "Aylur", + "repo": "ags", + "type": "github" + } + }, "apple-fonts": { "inputs": { "flake-utils": "flake-utils", @@ -149,7 +168,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_3" + "systems": "systems_4" }, "locked": { "lastModified": 1710146030, @@ -400,6 +419,25 @@ "type": "github" } }, + "hyprpanel": { + "inputs": { + "ags": "ags", + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1724741517, + "narHash": "sha256-jC8FN8L4Xl/btXJg/gEPjJfC+NAf0oNnHwOA+goG52Y=", + "owner": "Jas-SinghFSU", + "repo": "HyprPanel", + "rev": "6140778e5d2dc6f71c5ab18c166254490bc26bac", + "type": "github" + }, + "original": { + "owner": "Jas-SinghFSU", + "repo": "HyprPanel", + "type": "github" + } + }, "hyprutils": { "inputs": { "nixpkgs": [ @@ -536,6 +574,38 @@ } }, "nixpkgs_3": { + "locked": { + "lastModified": 1718714799, + "narHash": "sha256-FUZpz9rg3gL8NVPKbqU8ei1VkPLsTIfAJ2fdAf5qjak=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c00d587b1a1afbf200b1d8f0b0e4ba9deb1c7f0e", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1722185531, + "narHash": "sha256-veKR07psFoJjINLC8RK4DiLniGGMgF3QMlS4tb74S6k=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "52ec9ac3b12395ad677e8b62106f0b98c1f8569d", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 1724479785, "narHash": "sha256-pP3Azj5d6M5nmG68Fu4JqZmdGt4S4vqI5f8te+E/FTw=", @@ -619,8 +689,9 @@ "home-manager": "home-manager", "hyprland": "hyprland", "hyprland-plugins": "hyprland-plugins", + "hyprpanel": "hyprpanel", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_5", "nixvim": "nixvim", "sops-nix": "sops-nix", "spicetify-nix": "spicetify-nix" @@ -747,6 +818,21 @@ } }, "systems_3": { + "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" + } + }, + "systems_4": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", diff --git a/flake.nix b/flake.nix index 455fea3..5b1b3d2 100644 --- a/flake.nix +++ b/flake.nix @@ -30,15 +30,18 @@ inputs.hyprland.follows = "hyprland"; }; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; + hyprpanel.url = "github:Jas-SinghFSU/HyprPanel"; }; outputs = inputs@{ nixpkgs, ... }: { nixosConfigurations = { - nixy = nixpkgs.lib.nixosSystem { # CHANGEME system = "x86_64-linux"; modules = [ - { _module.args = { inherit inputs; }; } + { + nixpkgs.overlays = [ inputs.hyprpanel.overlay ]; + _module.args = { inherit inputs; }; + } inputs.nixos-hardware.nixosModules.omen-16-n0005ne # CHANGEME inputs.home-manager.nixosModules.home-manager ./hosts/laptop/configuration.nix # CHANGEME diff --git a/home/scripts/battery/default.nix b/home/scripts/battery/default.nix deleted file mode 100644 index 4f2c1ab..0000000 --- a/home/scripts/battery/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ pkgs, ... }: -let - battery-watch = pkgs.writeShellScriptBin "battery-watch" '' - while true;do - battery-plugged & - battery-level & - sleep 60 - done - ''; - - battery-plugged = pkgs.writeShellScriptBin "battery-plugged" '' - BATTERY_STATUS=$(cat /sys/class/power_supply/BAT*/status | head -n1) - OLD_BATTERY_STATUS=$(cat /tmp/old_battery_status 2>/dev/null || echo "Unknown") - if [[ $BATTERY_STATUS != $OLD_BATTERY_STATUS && $OLD_BATTERY_STATUS != "Unknown" ]]; then - if [[ $BATTERY_STATUS == "Discharging" ]]; then - notif "battery" "󰚦 Battery is unplugged" - else - notif "battery" "󰚥 Battery is plugged in" - fi - fi - echo $BATTERY_STATUS > /tmp/old_battery_status - ''; - - battery-level = pkgs.writeShellScriptBin "battery-level" '' - BATTERY_LEVEL=$(cat /sys/class/power_supply/BAT*/capacity | head -n1) - BATTERY_STATUS=$(cat /sys/class/power_supply/BAT*/status | head -n1) - if [[ $BATTERY_LEVEL -le 20 ]] && [[ $BATTERY_STATUS == "Discharging" ]]; then - notif "battery" "󰁻 Low battery" "Battery level is $BATTERY_LEVEL%" - elif [[ $BATTERY_LEVEL -le 10 ]] && [[ $BATTERY_STATUS == "Discharging" ]]; then - notif "battery" "󰁺 Very low battery" "Battery level is $BATTERY_LEVEL%" - # elif [[ $BATTERY_LEVEL -eq 100 ]] && [[ $BATTERY_STATUS -ne "Discharging" ]]; then - # notif "battery" "󰁹 Fully charged" - fi - ''; - -in { home.packages = [ battery-watch battery-plugged battery-level ]; } diff --git a/home/scripts/brightness/default.nix b/home/scripts/brightness/default.nix index 1c2dc2d..2152cc5 100644 --- a/home/scripts/brightness/default.nix +++ b/home/scripts/brightness/default.nix @@ -8,12 +8,6 @@ let [[ $1 == "up" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ${increments}%+ [[ $1 == "down" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ${increments}%- - - brightness_level=$(${pkgs.brightnessctl}/bin/brightnessctl get) - - message="󰃠 Brightness: $brightness_level%" - - notif "brightness" "$message" "extraargs=-h int:value:$brightness_level" ''; brightness-up = pkgs.writeShellScriptBin "brightness-up" '' diff --git a/home/scripts/default.nix b/home/scripts/default.nix index a5c0725..6b8680f 100644 --- a/home/scripts/default.nix +++ b/home/scripts/default.nix @@ -6,11 +6,9 @@ ./caffeine ./night-shift ./screenshot - ./startup ./nerdfont_fzf ./notification - ./battery ./compress - ./misc + ./system ]; } diff --git a/home/scripts/sounds/default.nix b/home/scripts/sounds/default.nix index ad5afbc..cf36f47 100644 --- a/home/scripts/sounds/default.nix +++ b/home/scripts/sounds/default.nix @@ -1,7 +1,6 @@ -{ pkgs, config, ... }: +{ pkgs, ... }: let - homedir = config.home.homeDirectory; increments = "5"; sound-change = pkgs.writeShellScriptBin "sound-change" '' @@ -10,23 +9,6 @@ let [[ $1 == "mute" ]] && wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle [[ $1 == "up" ]] && wpctl set-volume @DEFAULT_AUDIO_SINK@ "$2%+" [[ $1 == "down" ]] && wpctl set-volume @DEFAULT_AUDIO_SINK@ "$2%-" - - sink_info=$(wpctl get-volume @DEFAULT_AUDIO_SINK@) - - volume=$(echo "$(echo "$sink_info" | awk '{print $2}' | sed 's/%//')*100" | bc -l | xargs printf "%.0f") - muted=false - if [[ $sink_info == *"MUTED"* ]]; then - muted=true - fi - - message="" - if [ $muted = true ]; then - message="󰖁 Muted" - else - message="󰕾 Volume: $volume%" - fi - - notif "sound" "$message" "extraargs=-h int:value:$volume" ''; sound-up = pkgs.writeShellScriptBin "sound-up" '' @@ -40,47 +22,4 @@ let sound-toggle = pkgs.writeShellScriptBin "sound-toggle" '' sound-change mute ''; - - sound-output = pkgs.writeShellScriptBin "sound-output" '' - function parse_sinks(){ - output=$(wpctl status) - sinks=($(echo "$output" | sed 's/ │ //' | awk '/Sinks:/ {flag=1; next} /^$/ {flag=0} flag' | sed 's/ /-/g')) - - for sink in "''${sinks[@]}"; do - - id="" - default=false - sink=$(echo "$sink" | sed 's/-/ /g') - sink_name=$(echo "$sink" | sed 's/\[vol:.*$//') - - if [[ $sink_name == "*"* ]]; then - sink_name=$(echo "$sink_name" | sed 's/*//') - default=true - fi - - id=$(echo "$sink_name" | cut -d'.' -f1) - sink_name=$(echo "$sink_name" | sed 's/^[ ]*//;s/[ ]*$//' ) - sink_name=$(echo "$sink_name" | cut -d'.' -f2 ) - - if [[ $default == true ]];then - printf "*%s (%d)" "$sink_name" "$id" - else - printf " %s (%d)" "$sink_name" "$id" - fi - printf "\n" - done - } - - - choosed_sink=$(echo "$(parse_sinks)" | ${pkgs.fzf}/bin/fzf \ - --border-label "Choose sound output" ) || exit 1 - - choosed_sink_id=$(echo "$choosed_sink" | sed 's/.*(\(.*\))/\1/') - - wpctl set-default $choosed_sink_id - ''; - -in { - home.packages = - [ sound-output sound-change sound-up sound-down sound-toggle ]; -} +in { home.packages = [ sound-change sound-up sound-down sound-toggle ]; } diff --git a/home/scripts/startup/default.nix b/home/scripts/startup/default.nix deleted file mode 100644 index 33b8e6a..0000000 --- a/home/scripts/startup/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -# File runned at startup by Hyprland -{ pkgs, config, ... }: -let - startup = pkgs.writeShellScriptBin "startup" '' - # Startup is a script called by Hyprland on startup - # Because HM enabling services suck. - - [[ ${toString config.var.sops} == "1" ]] && systemctl --user start sops-nix - - battery-watch & - ${pkgs.waybar}/bin/waybar & - - - wlr-randr --output "Unknown-1" --off # FIX: REMOVE WEIRD GHOST MONITOR - ''; - -in { home.packages = [ startup ]; } diff --git a/home/scripts/misc/default.nix b/home/scripts/system/default.nix similarity index 100% rename from home/scripts/misc/default.nix rename to home/scripts/system/default.nix diff --git a/home/system/batsignal/default.nix b/home/system/batsignal/default.nix new file mode 100644 index 0000000..e08b790 --- /dev/null +++ b/home/system/batsignal/default.nix @@ -0,0 +1 @@ +{ services.batsignal.enable = true; } diff --git a/home/system/dunst/default.nix b/home/system/dunst/default.nix deleted file mode 100644 index 90b2396..0000000 --- a/home/system/dunst/default.nix +++ /dev/null @@ -1,83 +0,0 @@ -{ config, pkgs, ... }: { - - home.packages = with pkgs; [ libnotify ]; - - services.dunst = { - enable = true; - iconTheme = { - name = "Moka"; - package = pkgs.moka-icon-theme; - }; - settings = { - global = { - rounded = "yes"; - origin = "top-center"; - monitor = "0"; - alignment = "center"; - vertical_alignment = "center"; - width = "400"; - height = "400"; - scale = 0; - gap_size = 0; - progress_bar = true; - transparency = 0; - text_icon_padding = 0; - separator_color = "frame"; - sort = "yes"; - idle_threshold = 120; - line_height = 0; - markup = "full"; - show_age_threshold = 60; - ellipsize = "middle"; - ignore_newline = "no"; - stack_duplicates = true; - sticky_history = "yes"; - history_length = 20; - always_run_script = true; - corner_radius = config.var.theme.rounding; - follow = "mouse"; - font = config.var.theme.font; - format = "%s\\n%b"; - progress_bar_corner_radius = config.var.theme.rounding - 10; - #format = '' - # %s %p - # %b''; - frame_color = "#" + config.var.theme.colors.bg; - highlight = "#" + config.var.theme.colors.accent; - foreground = "#" + config.var.theme.colors.fg; - frame_width = 1; - offset = "0x10"; - horizontal_padding = 10; - icon_position = "left"; - indicate_hidden = "yes"; - min_icon_size = 0; - max_icon_size = 64; - mouse_left_click = "do_action, close_current"; - mouse_middle_click = "close_current"; - mouse_right_click = "close_all"; - padding = 10; - plain_text = "no"; - separator_height = 2; - show_indicators = "yes"; - shrink = "no"; - word_wrap = "yes"; - browser = "${pkgs.qutebrowser}/bin/qutebrowser"; - }; - - fullscreen_delay_everything = { fullscreen = "delay"; }; - - urgency_critical = { - background = "#" + config.var.theme.colors.c1; - foreground = "#" + config.var.theme.colors.c0; - }; - urgency_low = { - background = "#" + config.var.theme.colors.bgalt; - foreground = "#" + config.var.theme.colors.fgalt; - }; - urgency_normal = { - background = "#" + config.var.theme.colors.bgalt; - foreground = "#" + config.var.theme.colors.fgalt; - }; - }; - }; -} diff --git a/home/system/hyprland/default.nix b/home/system/hyprland/default.nix index f1b406e..3ad5520 100644 --- a/home/system/hyprland/default.nix +++ b/home/system/hyprland/default.nix @@ -1,7 +1,12 @@ { pkgs, config, inputs, ... }: { - imports = - [ ./hyprlock/macos.nix ./hypridle.nix ./hyprpaper.nix ./hyprcursor.nix ]; + imports = [ + ./hyprlock/macos.nix + ./hypridle.nix + ./hyprpaper.nix + ./hyprcursor.nix + ./hyprpanel.nix + ]; home.packages = with pkgs; [ hyprshot @@ -9,14 +14,13 @@ swappy imv wf-recorder - xdg-desktop-portal-hyprland wlr-randr wl-clipboard brightnessctl gnome-themes-extra wlsunset - xwayland - xdg-desktop-portal-gtk + # xwayland + # xdg-desktop-portal-gtk qt5ct libva dconf @@ -29,21 +33,36 @@ enable = true; xwayland.enable = true; package = inputs.hyprland.packages."${pkgs.system}".hyprland; - # plugins = [ inputs.hyprland-plugins.packages.${pkgs.system}.hyprexpo ]; # TODO: Fix, stack overflow + plugins = [ inputs.hyprland-plugins.packages.${pkgs.system}.hyprexpo ]; settings = { "$mod" = "SUPER"; "$shiftMod" = "SUPER_SHIFT"; exec-once = [ - "startup" - "${pkgs.hypridle}/bin/hypridle" - "${pkgs.hyprpaper}/bin/hyprpaper" "${pkgs.bitwarden}/bin/bitwarden" + "[[ ${ + toString config.var.sops + } == 1 ]] && systemctl --user start sops-nix" ]; monitor = [ "eDP-2,highres,0x0,1" ",prefered,auto,1" ]; + plugin = { + hyprexpo = { + columns = 2; + gap_size = 5; + bg_col = "rgb(111111)"; + workspace_method = + "center current"; # [center/first] [workspace] e.g. first 1 or center m+1 + + enable_gesture = true; # laptop touchpad + gesture_fingers = 3; # 3 or 4 + gesture_distance = 300; # how far is the "max" + gesture_positive = true; # positive = swipe down. Negative = swipe up. + }; + }; + bind = [ "$mod, RETURN, exec, ${pkgs.kitty}/bin/kitty" # Kitty "$mod, E, exec, ${pkgs.xfce.thunar}/bin/thunar" # Thunar @@ -53,6 +72,7 @@ "$mod, L, exec, ${pkgs.hyprlock}/bin/hyprlock" # Lock "$mod, X, exec, powermenu" # Powermenu "$mod, SPACE, exec, menu" # Launcher + "$shiftMod, SPACE, hyprexpo:expo, toggle" # HyprExpo "$mod, Q, killactive," # Close window "$mod, T, togglefloating," # Toggle Floating diff --git a/home/system/hyprland/hypridle.nix b/home/system/hyprland/hypridle.nix index 082eb5a..9b47503 100644 --- a/home/system/hyprland/hypridle.nix +++ b/home/system/hyprland/hypridle.nix @@ -1,4 +1,6 @@ { pkgs, ... }: { + wayland.windowManager.hyprland.settings.exec-once = + [ "${pkgs.hypridle}/bin/hypridle" ]; services.hypridle = { enable = true; diff --git a/home/system/hyprland/hyprlock/old.nix b/home/system/hyprland/hyprlock/old.nix deleted file mode 100644 index 41ff436..0000000 --- a/home/system/hyprland/hyprlock/old.nix +++ /dev/null @@ -1,84 +0,0 @@ -{ config, ... }: { - - programs.hyprlock = { - enable = true; - settings = { - general = { - disable_loading_bar = true; - grace = 5; - no_fade_in = true; - no_fade_out = true; - }; - - background = { - monitor = ""; - path = "$HOME/wallpapers/${config.var.theme.wallpaper}"; - color = "rgb(${config.var.theme.colors.bg})"; - - blur_size = 4; - blur_passes = 3; - noise = 1.17e-2; - contrast = 1.3; - brightness = 0.8; - vibrancy = 0.21; - vibrancy_darkness = 0.0; - }; - - input-field = [{ - monitor = ""; - size = "250, 50"; - outline_thickness = 3; - dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8 - dots_spacing = 0.64; # Scale of dots' absolute size, 0.0 - 1.0 - dots_center = true; - outer_color = "rgb(${config.var.theme.colors.accent})"; - inner_color = "rgb(${config.var.theme.colors.bg})"; - font_color = "rgb(${config.var.theme.colors.fg})"; - fade_on_empty = true; - placeholder_text = - "Password..."; # Text rendered in the input box when it's empty. - position = "0, 80"; - halign = "center"; - valign = "bottom"; - }]; - - label = [ - # Current time - { - monitor = ""; - text = - ''cmd[update:1000] echo " $(date +"%H:%M:%S") "''; - color = "rgb(${config.var.theme.colors.fg})"; - font_size = 64; - font_family = config.var.theme.font; - position = "0, 16"; - halign = "center"; - valign = "center"; - } - # User label - { - monitor = ""; - text = '' - Hey $USER''; - color = "rgb(${config.var.theme.colors.fg})"; - font_size = config.var.theme.font-size; - font_family = config.var.theme.font; - position = "0, 0"; - halign = "center"; - valign = "center"; - } - # Type to unlock - { - monitor = ""; - text = "Type to unlock!"; - color = "rgb(${config.var.theme.colors.fg})"; - font_size = config.var.theme.font-size; - font_family = config.var.theme.font; - position = "0, 30"; - halign = "center"; - valign = "bottom"; - } - ]; - }; - }; -} diff --git a/home/system/hyprland/hyprlock/tty.nix b/home/system/hyprland/hyprlock/tty.nix deleted file mode 100644 index c851723..0000000 --- a/home/system/hyprland/hyprlock/tty.nix +++ /dev/null @@ -1,86 +0,0 @@ -{ config, ... }: { - - programs.hyprlock = { - enable = true; - settings = { - general = { - disable_loading_bar = true; - grace = 5; - no_fade_in = true; - no_fade_out = true; - }; - - background = { - monitor = ""; - color = "rgb(${config.var.theme.colors.bg})"; - }; - - input-field = [{ - monitor = ""; - size = "250, 50"; - outline_thickness = 3; - dots_size = 0.2; - dots_spacing = 0.64; - dots_center = false; - outer_color = "rgb(${config.var.theme.colors.bg})"; - inner_color = "rgb(${config.var.theme.colors.bg})"; - font_color = "rgb(${config.var.theme.colors.fg})"; - fade_on_empty = false; - placeholder_text = ""; - position = "1190, -50"; - halign = "left"; - valign = "center"; - }]; - - shape = [{ - monitor = ""; - size = "520, 200"; - color = "rgb(${config.var.theme.colors.bg})"; - rounding = "0"; - border_size = "3"; - border_color = "rgba(255, 255, 255, 1.0)"; - rotate = "0"; - xray = "false"; - position = "0, 0"; - halign = "center"; - valign = "center"; - }]; - - label = [ - # Current time - { - monitor = ""; - text = ''cmd[update:900] echo "time: $(date +"%H:%M:%S")"''; - color = "rgb(${config.var.theme.colors.fg})"; - font_size = config.var.theme.font-size; - font_family = config.var.theme.font-mono; - position = "1100, 50"; - halign = "left"; - valign = "center"; - } - # Username - { - monitor = ""; - text = "username: ${config.var.username}"; - color = "rgb(${config.var.theme.colors.fg})"; - font_size = config.var.theme.font-size; - font_family = config.var.theme.font-mono; - position = "1100, 0"; - halign = "left"; - valign = "center"; - } - # Password - { - monitor = ""; - text = "password: "; - color = "rgb(${config.var.theme.colors.fg})"; - font_size = config.var.theme.font-size; - font_family = config.var.theme.font-mono; - position = "1100, -50"; - halign = "left"; - valign = "center"; - } - ]; - }; - }; -} diff --git a/home/system/hyprland/hyprpanel.nix b/home/system/hyprland/hyprpanel.nix new file mode 100644 index 0000000..86be8e7 --- /dev/null +++ b/home/system/hyprland/hyprpanel.nix @@ -0,0 +1,6 @@ +{ pkgs, config, ... }: { + wayland.windowManager.hyprland.settings.exec-once = + [ "${pkgs.hyprpanel}/bin/hyprpanel" ]; + + home.packages = with pkgs; [ hyprpanel ]; +} diff --git a/home/system/hyprland/hyprpaper.nix b/home/system/hyprland/hyprpaper.nix index 3b6cd1f..b95a975 100644 --- a/home/system/hyprland/hyprpaper.nix +++ b/home/system/hyprland/hyprpaper.nix @@ -1,4 +1,7 @@ -{ config, ... }: { +{ pkgs, config, ... }: { + wayland.windowManager.hyprland.settings.exec-once = + [ "${pkgs.hyprpaper}/bin/hyprpaper" ]; + services.hyprpaper = { enable = true; settings = { diff --git a/home/system/swaync/default.nix b/home/system/swaync/default.nix deleted file mode 100644 index 95d0d8e..0000000 --- a/home/system/swaync/default.nix +++ /dev/null @@ -1,125 +0,0 @@ -{ pkgs, ... }: { - - imports = [ ./style.nix ]; - - home.packages = with pkgs; [ libnotify ]; - - services.swaync = { - enable = true; - settings = { - positionX = "right"; - positionY = "top"; - - control-center-margin-top = 15; - control-center-margin-bottom = 15; - control-center-margin-right = 15; - control-center-margin-left = 15; - - notification-icon-size = 32; - notification-body-image-height = 50; - notification-body-image-width = 50; - - timeout-low = 5; - timeout = 10; - timeout-critical = 0; - - fit-to-screen = true; - control-center-width = 500; - notification-window-width = 400; - - keyboard-shortcuts = true; - image-visibility = "when-available"; - - transition-time = 200; - hide-on-clear = false; - hide-on-action = true; - script-fail-notify = true; - - widgets = [ - "menubar" - "title" - "buttons-grid" - "mpris" - "volume" - "backlight" - "dnd" - "notifications" - ]; - - widget-config = { - title = { - text = "Notification Center"; - clear-all-button = true; - button-text = "󰆴 Clear All"; - }; - dnd = { text = "Do Not Disturb"; }; - mpris = { - image-size = 96; - image-radius = 7; - }; - volume = { label = "󰕾"; }; - backlight = { - label = "󰃟"; - subsystem = "backlight"; - device = "nvidia_0"; - }; - menubar = { - "menu#power-buttons" = { - label = "󰐥"; - position = "right"; - actions = [ - { - label = "󰐥"; - command = "systemctl poweroff"; - } - { - label = "󰜉"; - command = "systemctl reboot"; - } - { - label = "󰒲"; - command = "systemctl suspend"; - } - { - "label" = "󰌾"; - "command" = "${pkgs.hyprlock}/bin/hyprlock"; - } - { - "label" = "󰍃"; - "command" = "${pkgs.hyprland}/bin/hyprctl dispatch exit"; - } - ]; - }; - }; - "buttons-grid" = { - "actions" = [ - { - "label" = "󰕾"; - "command" = - "${pkgs.pulseaudio}/bin/pactl set-sink-mute @DEFAULT_SINK@ toggle"; - } - { - "label" = "󰍬"; - "command" = - "${pkgs.pulseaudio}/bin/pactl set-source-mute @DEFAULT_SOURCE@ toggle"; - } - { - "label" = "󰂯"; - "command" = "${pkgs.blueman}/bin/blueman-manager"; - } - { - "label" = "󰹑"; - "command" = - "${pkgs.grimblast}/bin/grimblast --notify --freeze --wait 1 copysave area ~/Pictures/$(date +%Y-%m-%dT%H%M%S).png"; - } - { - "label" = ""; - "command" = "${pkgs.kooha}/bin/kooha"; - } - ]; - }; - }; - }; - - }; -} diff --git a/home/system/swaync/style.nix b/home/system/swaync/style.nix deleted file mode 100644 index bf2c7ed..0000000 --- a/home/system/swaync/style.nix +++ /dev/null @@ -1,315 +0,0 @@ -{ config, ... }: { - - xdg.configFile."swaync/style.css" = { - text = '' - @define-color notif-bg #${config.var.theme.colors.bgalt}; - @define-color notif-fg #${config.var.theme.colors.fgalt}; - @define-color cc-bg #${config.var.theme.colors.bg}; - @define-color cc-fg #${config.var.theme.colors.fg}; - @define-color red #${config.var.theme.colors.c1}; - - * { - font-family: "${config.var.theme.font}"; - color: #${config.var.theme.colors.fg}; - } - - .notification-row { - outline: none; - } - - .notification-row:focus, - .notification-row:hover { - background: @notif-bg; - opacity: 0.8; - } - - .notification { - border-radius: ${toString config.var.theme.rounding}px; - margin: 6px 12px; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), 0 1px 3px 1px rgba(0, 0, 0, 0.7), - 0 2px 6px 2px rgba(0, 0, 0, 0.3); - padding: 0; - } - - .notification-content { - background: transparent; - padding: 6px; - border-radius: 12px; - } - - .close-button { - background: @cc-bg; - color: @cc-fg; - text-shadow: none; - padding: 0; - border-radius: 100%; - margin-top: 10px; - margin-right: 16px; - box-shadow: none; - border: none; - min-width: 24px; - min-height: 24px; - } - - .close-button:hover { - box-shadow: none; - background: @red; - transition: all 0.15s ease-in-out; - border: none; - } - - .notification-default-action, - .notification-action { - padding: 4px; - margin: 0; - box-shadow: none; - background: @cc-bg; - color: @cc-fg; - } - - .notification-default-action:hover, - .notification-action:hover { - -gtk-icon-effect: none; - background: @noti-bg-hover; - } - - .notification-default-action { - border-radius: 12px; - } - - /* When alternative actions are visible */ - .notification-default-action:not(:only-child) { - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - } - - .notification-action { - border-radius: 0px; - border-top: none; - border-right: none; - } - - /* add bottom border radius to eliminate clipping */ - .notification-action:first-child { - border-bottom-left-radius: 10px; - } - - .notification-action:last-child { - border-bottom-right-radius: 10px; - border-right: 1px solid @noti-border-color; - } - - .image {} - - .body-image { - margin-top: 6px; - background-color: white; - border-radius: 12px; - } - - .summary { - font-size: 16px; - font-weight: bold; - background: transparent; - color: white; - text-shadow: none; - } - - .time { - font-size: 16px; - font-weight: bold; - background: transparent; - color: white; - text-shadow: none; - margin-right: 18px; - } - - .body { - font-size: 15px; - font-weight: normal; - background: transparent; - color: white; - text-shadow: none; - } - - /* The "Notifications" and "Do Not Disturb" text widget */ - .top-action-title { - color: white; - text-shadow: none; - } - - .control-center { - background-color: @cc-bg; - } - - .control-center-list { - background: transparent; - } - - .floating-notifications { - background: transparent; - } - - /* Window behind control center and on all other monitors */ - .blank-window { - background: transparent; - } - - /*** Widgets ***/ - - /* Title widget */ - .widget-title { - margin: 8px; - font-size: 1.5rem; - } - - .widget-title>button { - font-size: initial; - color: white; - text-shadow: none; - background: @noti-bg; - border: 1px solid @noti-border-color; - box-shadow: none; - border-radius: 12px; - } - - .widget-title>button:hover { - background: @noti-bg-hover; - } - - /* DND widget */ - .widget-dnd { - margin: 8px; - font-size: 1.1rem; - } - - .widget-dnd>switch { - font-size: initial; - border-radius: 12px; - background: @noti-bg; - border: 1px solid @noti-border-color; - box-shadow: none; - } - - .widget-dnd>switch:checked { - background: @bg-selected; - } - - .widget-dnd>switch slider { - background: @noti-bg-hover; - border-radius: 12px; - } - - /* Label widget */ - .widget-label { - margin: 8px; - } - - .widget-label>label { - font-size: 1.1rem; - } - - /* Mpris widget */ - .widget-mpris { - /* The parent to all players */ - } - - .widget-mpris-player { - padding: 8px; - margin: 8px; - } - - .widget-mpris-title { - font-weight: bold; - font-size: 1.25rem; - } - - .widget-mpris-subtitle { - font-size: 1.1rem; - } - - /* Volume and Brightness Widget*/ - - .widget-volume { - background-color: @noti-bg; - padding: 4px 8px 8px 8px; - margin: 0px 8px 8px 8px; - border-bottom-left-radius: 12px; - border-bottom-right-radius: 12px; - } - - .widget-backlight { - background-color: @noti-bg; - padding: 8px 8px 4px 8px; - margin: 8px 8px 0px 8px; - border-top-left-radius: 12px; - border-top-right-radius: 12px; - } - - .KB { - padding: 4px 8px 4px 8px; - margin: 0px 8px 0px 8px; - border-radius: 0; - } - - .power-buttons{ - background-color: @noti-bg; - padding: 8px; - margin: 8px; - border-radius: 12px; - } - - - .power-buttons>button { - background: transparent; - border: none; - } - - .power-buttons>button:hover { - background: @noti-bg-hover; - } - - .widget-menubar>box>.menu-button-bar>button{ - border: none; - background: transparent; - } - - .topbar-buttons>button{ - border: none; - background: transparent; - } - - .widget-buttons-grid{ - padding: 8px; - margin: 8px; - border-radius: 12px; - background-color: @noti-bg; - } - - .widget-buttons-grid>flowbox>flowboxchild>button{ - background: @noti-bg; - border-radius: 12px; - } - - .widget-buttons-grid>flowbox>flowboxchild>button:hover { - background: @noti-bg-hover; - } - - .powermode-buttons{ - background-color: @noti-bg; - padding: 8px; - margin: 8px; - border-radius: 12px; - } - - .powermode-buttons>button { - background: transparent; - border: none; - } - - .powermode-buttons>button:hover { - background: @noti-bg-hover; - } - ''; - }; -} diff --git a/home/system/waybar/default.nix b/home/system/waybar/default.nix deleted file mode 100644 index d64f986..0000000 --- a/home/system/waybar/default.nix +++ /dev/null @@ -1,337 +0,0 @@ -{ config, ... }: { - services = { - blueman-applet.enable = true; - network-manager-applet.enable = true; - }; - - programs.waybar = { - enable = true; - settings = { - mainBar = { - layer = config.var.theme.waybar.position; - position = config.var.theme.waybar.position; - spacing = 0; - "margin-top" = if config.var.theme.waybar.float - && config.var.theme.waybar.position == "top" then - config.var.theme.gaps-out - else - 0; - "margin-bottom" = if config.var.theme.waybar.float - && config.var.theme.waybar.position == "bottom" then - config.var.theme.gaps-out - else - 0; - "margin-left" = if config.var.theme.waybar.float then - config.var.theme.gaps-out - else - 0; - "margin-right" = if config.var.theme.waybar.float then - config.var.theme.gaps-out - else - 0; - height = 44; - modules-left = [ "custom/logo" "hyprland/window" ]; - modules-center = [ "hyprland/workspaces" ]; - modules-right = [ - "tray" - # "backlight" - # "pulseaudio" - "custom/caffeine" - "custom/night-shift" - "battery" - "clock" - "custom/notification" - "custom/power" - ]; - - "wlr/taskbar" = { - format = "{icon}"; - "on-click" = "activate"; - "on-click-right" = "fullscreen"; - - "icon-size" = 25; - "tooltip-format" = "{title}"; - }; - "hyprland/window" = { - "format" = "{title:30}"; - "max-length" = 30; - "separate-outputs" = true; - rewrite = { - "\\s*(.*)\\s+" = "$1"; # Remove trailing whitespace - # "\\s*" = # TODO FIXME - # "\${USER}@\${HOST}"; # Replace empty string with your username - ".* - LibreWolf" = "LibreWolf"; - }; - }; - - "hyprland/workspaces" = { - "on-click" = "activate"; - format = "{icon}"; - "format-icons" = { - "default" = ""; - "1" = "1"; - "2" = "2"; - "3" = "3"; - "4" = "4"; - "5" = "5"; - "6" = "6"; - "7" = "7"; - "8" = "8"; - "9" = "9"; - "active" = "󱓻"; - "urgent" = "󱓻"; - }; - "persistent-workspaces" = { - "1" = [ ]; - "2" = [ ]; - "3" = [ ]; - "4" = [ ]; - "5" = [ ]; - }; - }; - - tray = { spacing = 16; }; - - clock = { - "tooltip-format" = "{calendar}"; - "format-alt" = " {:%a, %d %b %Y}"; - format = "󰥔 {:%I:%M %p}"; - }; - - pulseaudio = { - format = "{icon}"; - "format-bluetooth" = "󰂰"; - nospacing = 1; - "tooltip-format" = "Volume : {volume}%"; - "format-muted" = "󰝟"; - "format-icons" = { - "headphone" = ""; - "default" = [ "󰖀" "󰕾" "" ]; - }; - "on-click" = "sound-toggle"; - "scroll-step" = 1; - }; - - "custom/logo" = { - format = "  "; - tooltip = false; - on-click = "menu"; - }; - - "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" = "sleep 0.1 && swaync-client -t -sw"; - "on-click-right" = "sleep 0.1 && swaync-client -d -sw"; - escape = true; - }; - - battery = { - format = "{capacity}% {icon}"; - "format-icons" = { - "charging" = [ "󰢜" "󰂆" "󰂇" "󰂈" "󰢝" "󰂉" "󰢞" "󰂊" "󰂋" "󰂅" ]; - "default" = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ]; - }; - "format-full" = "󰁹 "; - interval = 10; - states = { - warning = 20; - critical = 10; - }; - tooltip = false; - }; - - "custom/power" = { - format = "󰤆"; - tooltip = false; - on-click = "powermenu"; - }; - "custom/caffeine" = { - format = "{}"; - max-length = 5; - interval = 10; - exec = "caffeine-status-icon"; - "on-click" = "caffeine"; - # exec-if = "pgrep spotify"; - # return-type = ""; - }; - "custom/night-shift" = { - format = "{}"; - max-length = 5; - interval = 10; - exec = "night-shift-status-icon"; - "on-click" = "night-shift"; - }; - backlight = { - device = "nvidia_0"; - format = "{icon}"; - "format-icons" = [ " " " " "" "" "" "" "" "" "" ]; - }; - }; - }; - style = '' - * { - border: none; - border-radius: 0; - min-height: 0; - font-family: "${config.var.theme.font}"; - color: #${config.var.theme.colors.fg}; - font-weight: 700; - } - - window#waybar { - background-color: ${ - if config.var.theme.waybar.transparent then - "rgba(0, 0, 0, 0)" - else - "#${config.var.theme.colors.bg}" - }; - transition-property: background-color; - transition-duration: 0.5s; - border-radius: ${ - if config.var.theme.waybar.float then - toString config.var.theme.rounding - else - "0" - }px; - font-size: ${toString config.var.theme.waybar.font-size}px; - } - - .modules-left, .modules-center, .modules-right { - border-radius: ${ - if config.var.theme.waybar.float then - toString config.var.theme.rounding - else - "0" - }px; - background-color: #${config.var.theme.colors.bg}; - padding: 2px 6px; - } - - window#waybar.hidden { - opacity: 0.5; - } - - #workspaces { - background-color: transparent; - } - - #workspaces button { - all: initial; /* Remove GTK theme values (waybar #1351) */ - min-width: 0; /* Fix weird spacing in materia (waybar #450) */ - box-shadow: inset 0 -3px transparent; /* Use box-shadow instead of border so the text isn't offset */ - padding: 6px 18px; - margin: 6px 3px; - border-radius: 4px; - background-color: #${config.var.theme.colors.bgalt}; - color: #${config.var.theme.colors.fgalt}; - } - - #workspaces button.active { - color: #${config.var.theme.colors.accentFg}; - background-color: #${config.var.theme.colors.accent}; - } - - #workspaces button:hover { - box-shadow: inherit; - text-shadow: inherit; - opacity: 0.8; - } - - #workspaces button.urgent { - background-color: #${config.var.theme.colors.c1}; - } - - #window > * { - font-family: "${config.var.theme.font-mono}"; - } - - #memory, - #custom-power, - #custom-notification, - #custom-caffeine, - #custom-night-shift, - #battery, - #backlight, - #pulseaudio, - #network, - #clock, - #tray, - #backlight{ - border-radius: 9px; - margin: 6px 3px; - padding: 6px 12px; - background-color: #${config.var.theme.colors.bgalt}; - color: #${config.var.theme.colors.fgalt}; - } - - #tray menu { - background-color: #${config.var.theme.colors.bgalt}; - color: #${config.var.theme.colors.fgalt}; - } - - #custom-logo { - padding-right: 7px; - font-size: ${toString config.var.theme.waybar.font-size}px; - color: #${config.var.theme.colors.accent}; - } - - @keyframes blink { - to { - background-color: #f38ba8; - color: #181825; - } - } - - #battery.warning, - #battery.critical, - #battery.urgent { - background-color: #ff0048; - color: #181825; - animation-name: blink; - animation-duration: 0.5s; - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; - } - - #battery.charging { - background-color: #${config.var.theme.colors.bgalt}; - color: #${config.var.theme.colors.fgalt}; - animation: none; - } - - #custom-power { - background-color: #${config.var.theme.colors.accent}; - color: #${config.var.theme.colors.accentFg}; - } - - - tooltip { - border-radius: 8px; - padding: 15px; - background-color: #${config.var.theme.colors.bgalt}; - color: #${config.var.theme.colors.fgalt}; - } - - tooltip label { - padding: 5px; - background-color: #${config.var.theme.colors.bgalt}; - color: #${config.var.theme.colors.fgalt}; - } - ''; - }; -} diff --git a/hosts/laptop/home.nix b/hosts/laptop/home.nix index 19ade85..1a42714 100644 --- a/hosts/laptop/home.nix +++ b/hosts/laptop/home.nix @@ -21,16 +21,14 @@ ../../home/scripts # All scripts # System (Desktop environment like stuff) - # ../../home/system/dunst ../../home/system/gtk + ../../home/system/batsignal ../../home/system/zathura ../../home/system/hyprland - ../../home/system/waybar ../../home/system/wlogout ../../home/system/wofi ../../home/system/mime ../../home/system/udiskie - ../../home/system/swaync ./secrets # You should probably remove this line ]; @@ -49,10 +47,7 @@ wireguard-tools # Dev - wails - pkg-config go - cargo nodejs python3 jq @@ -78,7 +73,6 @@ vscode firefox neovide - brave ]; # Import wallpapers into $HOME/wallpapers diff --git a/hosts/modules/network-manager.nix b/hosts/modules/network-manager.nix index e0ba69b..f0725ac 100644 --- a/hosts/modules/network-manager.nix +++ b/hosts/modules/network-manager.nix @@ -1,6 +1,4 @@ { pkgs, ... }: { networking.networkmanager.enable = true; systemd.services.NetworkManager-wait-online.enable = false; - - environment.systemPackages = with pkgs; [ networkmanagerapplet ]; }