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 ];
}