This commit is contained in:
Hadi 2024-08-29 14:29:05 +02:00
parent 90e8d5577e
commit 55a5c52c51
21 changed files with 139 additions and 1178 deletions

View File

@ -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=",

View File

@ -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

View File

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

View File

@ -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" ''

View File

@ -6,11 +6,9 @@
./caffeine
./night-shift
./screenshot
./startup
./nerdfont_fzf
./notification
./battery
./compress
./misc
./system
];
}

View File

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

View File

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

View File

@ -0,0 +1 @@
{ services.batsignal.enable = true; }

View File

@ -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 = "<b>%s</b>\\n%b";
progress_bar_corner_radius = config.var.theme.rounding - 10;
#format = ''
# <span foreground='#${config.var.theme.colors.accent}'><b>%s %p</b></span>
# %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;
};
};
};
}

View File

@ -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

View File

@ -1,4 +1,6 @@
{ pkgs, ... }: {
wayland.windowManager.hyprland.settings.exec-once =
[ "${pkgs.hypridle}/bin/hypridle" ];
services.hypridle = {
enable = true;

View File

@ -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 "<b><big> $(date +"%H:%M:%S") </big></b>"'';
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 <span text_transform="capitalize" size="larger">$USER</span>'';
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";
}
];
};
};
}

View File

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

View File

@ -0,0 +1,6 @@
{ pkgs, config, ... }: {
wayland.windowManager.hyprland.settings.exec-once =
[ "${pkgs.hyprpanel}/bin/hyprpanel" ];
home.packages = with pkgs; [ hyprpanel ];
}

View File

@ -1,4 +1,7 @@
{ config, ... }: {
{ pkgs, config, ... }: {
wayland.windowManager.hyprland.settings.exec-once =
[ "${pkgs.hyprpaper}/bin/hyprpaper" ];
services.hyprpaper = {
enable = true;
settings = {

View File

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

View File

@ -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;
}
'';
};
}

View File

@ -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" = "<tt>{calendar}</tt>";
"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};
}
'';
};
}

View File

@ -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

View File

@ -1,6 +1,4 @@
{ pkgs, ... }: {
networking.networkmanager.enable = true;
systemd.services.NetworkManager-wait-online.enable = false;
environment.systemPackages = with pkgs; [ networkmanagerapplet ];
}