Refactored file structure to make more sense, made default.nixes less verbose

This commit is contained in:
pagedmov
2024-10-18 19:13:12 -04:00
parent c21c929a10
commit 860bcb3bc6
44 changed files with 618 additions and 287 deletions

View File

@@ -0,0 +1,21 @@
{
host,
nur,
nixvim,
self,
inputs,
username,
config,
home-manager,
...
}: {
imports =
[(import ./gtk.nix)]
++ [(import ./spicetify.nix)]
++ [(import ./starship.nix)]
++ [(import ./userpkgs.nix)]
++ [(import ./zshell.nix)]
++ [(import ./waybar)]
++ [(import ./hyprland)]
++ [(import ./swaync)];
}

View File

@@ -0,0 +1,15 @@
{
inputs,
host,
...
}: let
host_config =
if (host == "oganesson")
then [./desktop.nix]
else [./laptop.nix];
in {
imports =
[(import ./hyprland.nix)]
# ++ [(import ./hyprpaper.nix)]
++ host_config;
}

View File

@@ -0,0 +1,208 @@
{
username,
host,
...
}: {
wayland.windowManager.hyprland = {
settings = {
monitor =
if (host == "oganesson")
then [
"DP-1, 1920x1080@144, 1920x0, 1"
"HDMI-A-1, 1920x1080, 0x0, 1"
]
else [
"eDP-1, 1600x900, 0x0, 1"
];
exec-once = [
"waybar &"
"swaync &"
"wl-paste --watch cliphist store &"
"wl-clip-persist --clipboard both"
"systemctl --user import-environment &"
"hash dbus-update-activation-environment 2>/dev/null &"
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
"aplay /home/${username}/sound/sys/login.wav &"
];
workspace =
if (host == "oganesson")
then [
"1,persistent=true,monitor:HDMI-A-1"
"2,persistent=true,monitor:HDMI-A-1"
"3,persistent=true,monitor:HDMI-A-1"
"4,persistent=true,monitor:DP-1"
"5,persistent=true,monitor:DP-1"
"6,persistent=true,monitor:DP-1"
]
else [
"1,persistent=true,monitor:eDP-1"
"2,persistent=true,monitor:eDP-1"
"3,persistent=true,monitor:eDP-1"
"4,persistent=true,monitor:eDP-1"
];
input = {
kb_layout = "us";
follow_mouse = 1;
accel_profile = "flat";
force_no_accel = 1;
sensitivity = 0;
};
general = {
"$mainMod" = "super";
layout = "dwindle";
gaps_in = 4;
gaps_out = 8;
border_size = 2;
border_part_of_window = false;
no_border_on_floating = false;
};
misc = {
disable_autoreload = true;
disable_hyprland_logo = true;
always_follow_on_dnd = true;
layers_hog_keyboard_focus = true;
animate_manual_resizes = false;
enable_swallow = true;
focus_on_activate = true;
};
dwindle = {
no_gaps_when_only = false;
force_split = 0;
special_scale_factor = 1.0;
split_width_multiplier = 1.0;
use_active_for_splits = true;
pseudotile = "yes";
preserve_split = "yes";
};
master = {
new_status = "master";
special_scale_factor = 1;
no_gaps_when_only = false;
};
decoration = {
rounding = 7;
# active_opacity = 0.90;
# inactive_opacity = 0.90;
# fullscreen_opacity = 1.0;
blur = {
enabled = true;
size = 1;
passes = 1;
# size = 4;
# passes = 2;
brightness = 1;
contrast = 1.400;
ignore_opacity = true;
noise = 0;
new_optimizations = true;
xray = true;
};
drop_shadow = true;
shadow_ignore_window = true;
shadow_offset = "0 2";
shadow_range = 20;
shadow_render_power = 3;
};
animations = {
enabled = true;
bezier = [
"fluent_decel, 0, 0.2, 0.4, 1"
"easeOutCirc, 0, 0.55, 0.45, 1"
"easeOutCubic, 0.33, 1, 0.68, 1"
"easeinoutsine, 0.37, 0, 0.63, 1"
];
animation = [
# Windows
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close.
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing.
# Fade
"fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows
"fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows
"fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity
"fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows
"fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert
];
bind = [
"super, up, exec, pactl set-sink-volume @default_sink@ +10%"
"super, down, exec, pactl set-sink-volume @default_sink@ -10%"
"super, print, exec, grimblast copy area"
"super, t, exec, swaync-client -t -sw"
"super, a, exec, firefox"
"super, q, exec, kitty --title Kitty"
"super, d, exec, switchmon"
"super, c, killactive,"
"super, e, exec, [float;size 45% 70%;move 10 50] kitty btop"
"super, n, exec, [float;size 50% 35%;move 10 50] pavucontrol"
"super, p, exec, [float;size 25% 30%;move onscreen cursor 0 0] [ ! -f /tmp/passhelperfile ] && kitty passhelper"
"super, 0, exec, aplay ~/media/sound/soundtest.wav"
"super shift, q, exit,"
"super, m, exec, fuzzel"
"super, r, exec, neovide"
"super, b, togglesplit, # dwindle"
"super, f, togglefloating"
"super, g, fullscreen"
"super, home, exec, /home/${username}/scripts/home.sh"
"super, h, movefocus, l"
"super, l, movefocus, r"
"super, k, movefocus, u"
"super, j, movefocus, d"
"super, 1, exec, hyprctl 'dispatch workspace 1'"
"super, 2, exec, hyprctl 'dispatch workspace 2'"
"super, 3, exec, hyprctl 'dispatch workspace 3'"
"super, 4, exec, hyprctl 'dispatch workspace 4'"
"super, 5, exec, hyprctl 'dispatch workspace 5'"
"super, 6, exec, hyprctl 'dispatch workspace 6'"
"super, 7, exec, hyprctl 'dispatch workspace 7'"
"super, 8, exec, hyprctl 'dispatch workspace 8'"
"super, 9, exec, hyprctl 'dispatch workspace 9'"
"super, 0, exec, hyprctl 'dispatch workspace 10'"
"super alt, g, togglegroup"
"super alt, h, changegroupactive, b"
"super alt, l, changegroupactive, f"
"super shift, h, movewindoworgroup, l"
"super shift, l, movewindoworgroup, r"
"super shift, k, movewindoworgroup, u"
"super shift, j, movewindoworgroup, d"
"super shift, 1, movetoworkspace, 1"
"super shift, 2, movetoworkspace, 2"
"super shift, 3, movetoworkspace, 3"
"super shift, 4, movetoworkspace, 4"
"super shift, 5, movetoworkspace, 5"
"super shift, 6, movetoworkspace, 6"
"super shift, 7, movetoworkspace, 7"
"super shift, 8, movetoworkspace, 8"
"super shift, 9, movetoworkspace, 9"
"super shift, 0, movetoworkspace, 10"
"super, s, togglespecialworkspace, magic"
"super shift, s, movetoworkspace, special:magic"
"alt, grave, togglespecialworkspace, console"
"super, mouse_down, workspace, e+1"
"super, mouse_up, workspace, e-1"
];
bindm = [
"super, mouse:272, movewindow"
"super, mouse:273, resizewindow"
];
};
};
};
}

View File

@@ -0,0 +1,26 @@
{
inputs,
pkgs,
...
}: {
home.packages = with pkgs; [
swaybg
inputs.hypr-contrib.packages.${pkgs.system}.grimblast
hyprpicker
grim
slurp
wl-clip-persist
wf-recorder
glib
wayland
direnv
];
systemd.user.targets.hyprland-session.Unit.Wants = ["xdg-desktop-autostart.target"];
wayland.windowManager.hyprland = {
enable = true;
xwayland = {
enable = true;
};
systemd.enable = true;
};
}

View File

@@ -0,0 +1,193 @@
{username, ...}: {
wayland.windowManager.hyprland = {
settings = {
monitor = [
"eDP-1, 1920x1080@144, 1920x0, 1"
];
exec-once = [
"waybar &"
"swaync &"
"wl-paste --watch cliphist store &"
"wl-clip-persist --clipboard both"
"systemctl --user import-environment &"
"hash dbus-update-activation-environment 2>/dev/null &"
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
"aplay /home/${username}/sound/sys/login.wav &"
];
workspace = [
"1,persistent=true,monitor:eDP-1"
"2,persistent=true,monitor:eDP-1"
"3,persistent=true,monitor:eDP-1"
"4,persistent=true,monitor:eDP-1"
"5,persistent=true,monitor:eDP-1"
"6,persistent=true,monitor:eDP-1"
];
input = {
kb_layout = "us";
follow_mouse = 1;
accel_profile = "flat";
force_no_accel = 1;
sensitivity = 0;
};
general = {
"$mainMod" = "super";
layout = "dwindle";
gaps_in = 4;
gaps_out = 8;
border_size = 2;
"col.active_border" = "rgb(cba6f7) rgb(94e2d5) 45deg";
"col.inactive_border" = "0x00000000";
border_part_of_window = false;
no_border_on_floating = false;
};
misc = {
disable_autoreload = true;
disable_hyprland_logo = true;
always_follow_on_dnd = true;
layers_hog_keyboard_focus = true;
animate_manual_resizes = false;
enable_swallow = true;
focus_on_activate = true;
};
dwindle = {
no_gaps_when_only = false;
force_split = 0;
special_scale_factor = 1.0;
split_width_multiplier = 1.0;
use_active_for_splits = true;
pseudotile = "yes";
preserve_split = "yes";
};
master = {
new_status = "master";
special_scale_factor = 1;
no_gaps_when_only = false;
};
decoration = {
rounding = 7;
# active_opacity = 0.90;
# inactive_opacity = 0.90;
# fullscreen_opacity = 1.0;
blur = {
enabled = true;
size = 1;
passes = 1;
# size = 4;
# passes = 2;
brightness = 1;
contrast = 1.400;
ignore_opacity = true;
noise = 0;
new_optimizations = true;
xray = true;
};
drop_shadow = true;
shadow_ignore_window = true;
shadow_offset = "0 2";
shadow_range = 20;
shadow_render_power = 3;
"col.shadow" = "rgba(00000055)";
};
animations = {
enabled = true;
bezier = [
"fluent_decel, 0, 0.2, 0.4, 1"
"easeOutCirc, 0, 0.55, 0.45, 1"
"easeOutCubic, 0.33, 1, 0.68, 1"
"easeinoutsine, 0.37, 0, 0.63, 1"
];
animation = [
# Windows
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close.
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing.
# Fade
"fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows
"fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows
"fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity
"fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows
"fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert
];
bind = [
"super, up, exec, pactl set-sink-volume @default_sink@ +10%"
"super, down, exec, pactl set-sink-volume @default_sink@ -10%"
"super, print, exec, grimblast copy area"
"super, t, exec, swaync-client -t -sw"
"super, a, exec, firefox"
"super, q, exec, kitty --title Kitty"
"super, d, exec, switchmon"
"super, c, killactive,"
"super, e, exec, [float;size 45% 70%;move 10 50] kitty btop"
"super, n, exec, [float;size 50% 35%;move 10 50] pavucontrol"
"super, p, exec, [float;size 25% 30%;move onscreen cursor 0 0] [ ! -f /tmp/passhelperfile ] && kitty passhelper"
"super, 0, exec, aplay ~/media/sound/soundtest.wav"
"super shift, q, exit,"
"super, m, exec, fuzzel"
"super, r, exec, neovide"
"super, b, togglesplit, # dwindle"
"super, f, togglefloating"
"super, g, fullscreen"
"super, home, exec, /home/${username}/scripts/home.sh"
"super, h, movefocus, l"
"super, l, movefocus, r"
"super, k, movefocus, u"
"super, j, movefocus, d"
"super, 1, exec, hyprctl 'dispatch workspace 1'"
"super, 2, exec, hyprctl 'dispatch workspace 2'"
"super, 3, exec, hyprctl 'dispatch workspace 3'"
"super, 4, exec, hyprctl 'dispatch workspace 4'"
"super, 5, exec, hyprctl 'dispatch workspace 5'"
"super, 6, exec, hyprctl 'dispatch workspace 6'"
"super, 7, exec, hyprctl 'dispatch workspace 7'"
"super, 8, exec, hyprctl 'dispatch workspace 8'"
"super, 9, exec, hyprctl 'dispatch workspace 9'"
"super, 0, exec, hyprctl 'dispatch workspace 10'"
"super alt, g, togglegroup"
"super alt, h, changegroupactive, b"
"super alt, l, changegroupactive, f"
"super shift, h, movewindoworgroup, l"
"super shift, l, movewindoworgroup, r"
"super shift, k, movewindoworgroup, u"
"super shift, j, movewindoworgroup, d"
"super shift, 1, movetoworkspace, 1"
"super shift, 2, movetoworkspace, 2"
"super shift, 3, movetoworkspace, 3"
"super shift, 4, movetoworkspace, 4"
"super shift, 5, movetoworkspace, 5"
"super shift, 6, movetoworkspace, 6"
"super shift, 7, movetoworkspace, 7"
"super shift, 8, movetoworkspace, 8"
"super shift, 9, movetoworkspace, 9"
"super shift, 0, movetoworkspace, 10"
"super, s, togglespecialworkspace, magic"
"super shift, s, movetoworkspace, special:magic"
"alt, grave, togglespecialworkspace, console"
"super, mouse_down, workspace, e+1"
"super, mouse_up, workspace, e-1"
];
bindm = [
"super, mouse:272, movewindow"
"super, mouse:273, resizewindow"
];
};
};
};
}

View File

@@ -1,36 +0,0 @@
{
pkgs,
inputs,
...
}: let
nvim = inputs.nvim.packages."x86_64-linux".default;
toilet = inputs.toilet.packages."x86_64-linux".default;
in {
home.packages = with pkgs; [
gtk3
uhk-agent
sqlite
starship
zathura
imagemagick
yt-dlp
vlc
speedtest-cli
vesktop
obs-studio
neovide
chromium
zsh
zsh-syntax-highlighting
zsh-history-substring-search
zsh-autosuggestions
rustup
libreoffice
handbrake
gtrash
ripgrep
nvim
toilet
python3
];
}

View File

@@ -0,0 +1,136 @@
{
"positionX": "right",
"positionY": "top",
"layer": "overlay",
"layer-shell": "true",
"cssPriority": "application",
"control-center-margin-top": 10,
"control-center-margin-bottom": 10,
"control-center-margin-right": 10,
"control-center-margin-left": 10,
"notification-icon-size": 64,
"notification-body-image-height": 128,
"notification-body-image-width": 200,
"timeout": 10,
"timeout-low": 5,
"timeout-critical": 0,
"fit-to-screen": true,
"control-center-width": 400,
"control-center-height": 650,
"notification-window-width": 350,
"keyboard-shortcuts": true,
"image-visibility": "when-available",
"transition-time": 200,
"hide-on-clear": false,
"hide-on-action": true,
"script-fail-notify": true,
"widgets": [
"title",
"menubar#desktop",
"volume",
"backlight#mobile",
"mpris",
"dnd",
"notifications"
],
"widget-config": {
"title": {
"text": "Notifications",
"clear-all-button": true,
"button-text": " Clear All "
},
"menubar#desktop": {
"menu#powermode-buttons": {
"label": " 󰌪 ",
"position": "left",
"actions": [
{
"label": "Performance",
"command": "powerprofilesctl set performance"
},
{
"label": "Balanced",
"command": "powerprofilesctl set balanced"
},
{
"label": "Power-saver",
"command": "powerprofilesctl set power-saver"
}
]
},
"menu#screenshot": {
"label": "  ",
"position": "left",
"actions": [
{
"label": "󰹑 Whole screen",
"command": "grimblast --notify --cursor --freeze copy output"
},
{
"label": "󰩭 Window / Region",
"command": "grimblast --notify --cursor --freeze copy area"
}
]
},
"menu#record": {
"label": " 󰕧 ",
"position": "left",
"actions": [
{
"label": " Record screen",
"command": "record screen & ; swaync-client -t"
},
{
"label": " Record selection",
"command": "record area & ; swaync-client -t"
},
{
"label": " Record GIF",
"command": "record gif & ; swaync-client -t"
},
{
"label": "󰻃 Stop",
"command": "record stop"
}
]
},
"menu#power-buttons": {
"label": "  ",
"position": "left",
"actions": [
{
"label": " Lock",
"command": "swaylock"
},
{
"label": " Reboot",
"command": "systemctl reboot"
},
{
"label": " Shut down",
"command": "systemctl poweroff"
}
]
}
},
"backlight#mobile": {
"label": " 󰃠 ",
"device": "panel"
},
"volume": {
"label": "",
"expand-button-label": "",
"collapse-button-label": "",
"show-per-app": true,
"show-per-app-icon": true,
"show-per-app-label": false
},
"dnd": {
"text": " Do Not Disturb"
},
"mpris": {
"image-size": 85,
"image-radius": 5
}
}
}

View File

@@ -0,0 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [swaynotificationcenter];
xdg.configFile."swaync/style.css".source = ./style.css;
xdg.configFile."swaync/config.json".source = ./config.json;
}

View File

@@ -0,0 +1,601 @@
@define-color shadow rgba(0, 0, 0, 0.25);
/*
*
* Catppuccin Mocha palette
* Maintainer: rubyowo
*
*/
@define-color base #1E1D2E;
@define-color mantle #181825;
@define-color crust #11111b;
@define-color text #cdd6f4;
@define-color subtext0 #a6adc8;
@define-color subtext1 #bac2de;
@define-color surface0 #313244;
@define-color surface1 #45475a;
@define-color surface2 #585b70;
@define-color overlay0 #6c7086;
@define-color overlay1 #7f849c;
@define-color overlay2 #9399b2;
@define-color blue #89b4fa;
@define-color lavender #b4befe;
@define-color sapphire #74c7ec;
@define-color sky #89dceb;
@define-color teal #94e2d5;
@define-color green #a6e3a1;
@define-color yellow #f9e2af;
@define-color peach #fab387;
@define-color maroon #eba0ac;
@define-color red #f38ba8;
@define-color mauve #cba6f7;
@define-color pink #f5c2e7;
@define-color flamingo #f2cdcd;
@define-color rosewater #f5e0dc;
* {
font-family: "NotoSansMono Nerd Font";
background-clip: border-box;
}
/* #notifications_box { */
/* border: solid 4px red; */
/* } */
label {
color: @text;
}
.notification {
border: @lavender;
box-shadow: none;
/* margin: 0px; */
/* margin: -15px -10px -15px -10px; */
border-radius: 4px;
background: inherit;
/* background: @theme_bg_color; */
/* background: shade(alpha(@borders, 2.55), 0.25); */
}
.notification button {
background: transparent;
border-radius: 0px;
border: none;
margin: 0px;
padding: 0px;
}
.notification button:hover {
background: @surface0;
/* background: @insensitive_bg_color; */
}
.notification-content {
min-height: 64px;
margin: 10px;
padding: 0px;
border-radius: 0px;
}
.close-button {
background: @crust;
color: @surface2;
}
.notification-default-action,
.notification-action {
background: transparent;
border: none;
}
.notification-default-action {
border-radius: 4px;
}
/* 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;
padding: 2px;
color: @text;
/* color: @theme_text_color; */
}
/* add bottom border radius to eliminate clipping */
.notification-action:first-child {
border-bottom-left-radius: 4px;
}
.notification-action:last-child {
border-bottom-right-radius: 4px;
}
/*** Notification ***/
/* Notification header */
.summary {
color: @text;
/* color: @theme_text_color; */
font-size: 16px;
padding: 0px;
}
.time {
color: @subtext0;
/* color: alpha(@theme_text_color, 0.9); */
font-size: 12px;
text-shadow: none;
margin: 0px 0px 0px 0px;
padding: 2px 0px;
}
.body {
font-size: 14px;
font-weight: 500;
color: @subtext1;
/* color: alpha(@text, 0.9); */
/* color: alpha(@theme_text_color, 0.9); */
text-shadow: none;
margin: 0px 0px 0px 0px;
}
.body-image {
border-radius: 4px;
}
/* The "Notifications" and "Do Not Disturb" text widget */
.top-action-title {
color: @text;
/* color: @theme_text_color; */
text-shadow: none;
}
/* Control center */
.control-center {
/* background: transparent; */
background: @crust;
/* background: @theme_bg_color; */
/* border: 1px solid @surface0; */
border-radius: 5px;
/* box-shadow: 0px 0px 2px black; */
}
/* .right.overlay-indicator { */
/* border: solid 5px red; */
/* } */
.control-center-list {
/* background: @base; */
background: @crust;
min-height: 5px;
/* border: 1px solid @surface1; */
border-top: none;
border-radius: 0px 0px 4px 4px;
}
.control-center-list-placeholder,
.notification-group-icon,
.notification-group {
/* opacity: 1.0; */
/* opacity: 0; */
color: alpha(@theme_text_color, 0.50);
}
.notification-group {
/* unset the annoying focus thingie */
all: unset;
border: none;
opacity: 0;
padding: 0px;
box-shadow: none;
/* selectable: no; */
}
.notification-group > box {
all: unset;
background: @mantle;
/* background: alpha(currentColor, 0.072); */
padding: 8px;
margin: 0px;
/* margin: 0px -5px; */
border: none;
border-radius: 4px;
box-shadow: none;
}
.notification-row {
outline: none;
transition: all 1s ease;
background: @base;
/* background: @theme_bg_color; */
border: 1px solid @crust;
margin: 10px 5px 0px 5px;
border-radius: 4px;
/* box-shadow: 0px 0px 4px black; */
/* background: alpha(currentColor, 0.05); */
}
.notification-row:focus,
.notification-row:hover {
box-shadow: none;
}
.control-center-list > row,
.control-center-list > row:focus,
.control-center-list > row:hover {
background: transparent;
border: none;
margin: 0px;
padding: 5px 10px 5px 10px;
box-shadow: none;
}
.control-center-list > row:last-child {
padding: 5px 10px 10px 10px;
}
/* Window behind control center and on all other monitors */
.blank-window {
background: transparent;
}
/*** Widgets ***/
/* Title widget */
.widget-title {
margin: 0px;
background: inherit;
/* background: @theme_bg_color; */
border-radius: 4px 4px 0px 0px;
/* border: 1px solid @surface1; */
border-bottom: none;
padding-bottom: 20px;
}
.widget-title > label {
margin: 18px 10px;
font-size: 20px;
font-weight: 500;
}
.widget-title > button {
font-weight: 700;
padding: 7px 3px;
margin-right: 10px;
background: @mantle;
color: @text;
/* color: @theme_text_color; */
/* border: none; */
border-radius: 4px;
}
.widget-title > button:hover {
background: @base;
/* background: alpha(currentColor, 0.1); */
}
/* Label widget */
.widget-label {
margin: 0px;
padding: 0px;
min-height: 5px;
background: @mantle;
/* background: @theme_bg_color; */
border-radius: 0px 0px 4px 4px;
/* border: 1px solid @surface1; */
border-top: none;
}
.widget-label > label {
font-size: 0px;
font-weight: 400;
}
/* Menubar */
.widget-menubar {
background: inherit;
/* background: @theme_bg_color; */
/* border: 1px solid @surface1; */
border-top: none;
border-bottom: none;
}
.widget-menubar > box > box {
margin: 5px 10px 5px 10px;
min-height: 40px;
border-radius: 4px;
background: transparent;
}
.widget-menubar > box > box > button {
background: @mantle;
/* background: alpha(currentColor, 0.05); */
min-width: 85px;
min-height: 50px;
margin-right: 13px;
font-size: 17px;
padding: 0px;
}
.widget-menubar > box > box > button:nth-child(4) {
margin-right: 0px;
}
.widget-menubar button:focus {
box-shadow: none;
}
.widget-menubar button:focus:hover {
background: @base;
/* background: alpha(currentColor,0.1); */
box-shadow: none;
}
.widget-menubar > box > revealer > box {
margin: 5px 10px 5px 10px;
background: @mantle;
/* background: alpha(currentColor, 0.05); */
border-radius: 4px;
}
.widget-menubar > box > revealer > box > button {
background: transparent;
min-height: 50px;
padding: 0px;
margin: 5px;
}
/* Buttons grid */
.widget-buttons-grid {
/* background-color: @theme_bg_color; */
background-color: @mantle;
/* border: 1px solid @surface1; */
border-top: none;
border-bottom: none;
font-size: 14px;
font-weight: 500;
margin: 0px;
padding: 5px;
border-radius: 0px;
}
.widget-buttons-grid > flowbox > flowboxchild {
background: @mantle;
/* background: alpha(currentColor, 0.05); */
border-radius: 4px;
min-height: 50px;
min-width: 85px;
margin: 5px;
padding: 0px;
}
.widget-buttons-grid > flowbox > flowboxchild > button {
background: transparent;
border-radius: 4px;
margin: 0px;
border: none;
box-shadow: none;
}
.widget-buttons-grid > flowbox > flowboxchild > button:hover {
background: @mantle;
/* background: alpha(currentColor, 0.1); */
}
/* Mpris widget */
.widget-mpris {
padding: 10px;
padding-bottom: 35px;
padding-top: 35px;
margin-bottom: -33px;
}
.widget-mpris > box {
padding: 0px;
margin: -5px 0px -10px 0px;
padding: 0px;
border-radius: 4px;
/* background: alpha(currentColor, 0.05); */
background: @mantle;
}
.widget-mpris > box > button:nth-child(1),
.widget-mpris > box > button:nth-child(3) {
margin-bottom: 0px;
}
.widget-mpris > box > button:nth-child(1) {
margin-left: -25px;
margin-right: -25px;
opacity: 0;
}
.widget-mpris > box > button:nth-child(3) {
margin-left: -25px;
margin-right: -25px;
opacity: 0;
}
.widget-mpris-album-art {
all: unset;
}
/* Player button box */
.widget-mpris > box > carousel > widget > box > box:nth-child(2) {
margin: 5px 0px -5px 90px;
}
/* Player buttons */
.widget-mpris > box > carousel > widget > box > box:nth-child(2) > button {
border-radius: 4px;
}
.widget-mpris > box > carousel > widget > box > box:nth-child(2) > button:hover {
background: alpha(currentColor, 0.1);
}
carouselindicatordots {
opacity: 0;
}
.widget-mpris-title {
color: #eeeeee;
font-weight: bold;
font-size: 1.25rem;
text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5);
}
.widget-mpris-subtitle {
color: #eeeeee;
font-size: 1rem;
text-shadow: 0px 0px 3px rgba(0, 0, 0, 1);
}
.widget-mpris-player {
border-radius: 0px;
margin: 0px;
}
.widget-mpris-player > box > image {
margin: 0px 0px -48px 0px;
}
.notification-group > box.vertical {
/* border: solid 5px red; */
margin-top: 3px
}
/* Backlight and volume widgets */
.widget-backlight,
.widget-volume {
background-color: @crust;
/* background-color: @theme_bg_color; */
/* border: 1px solid @surface1; */
border-top: none;
border-bottom: none; font-size: 13px;
font-weight: 600;
border-radius: 0px;
margin: 0px;
padding: 0px;
}
.widget-volume > box {
background: @mantle;
/* background: alpha(currentColor, 0.05); */
border-radius: 4px;
margin: 5px 10px 5px 10px;
min-height: 50px;
}
.widget-volume > box > label {
min-width: 50px;
padding: 0px;
}
.widget-volume > box > button {
min-width: 50px;
box-shadow: none;
padding: 0px;
}
.widget-volume > box > button:hover {
/* background: alpha(currentColor, 0.05); */
background: @surface0;
}
.widget-volume > revealer > list {
background: @mantle;
/* background: alpha(currentColor, 0.05); */
border-radius: 4px;
margin-top: 5px;
padding: 0px;
}
.widget-volume > revealer > list > row {
padding-left: 10px;
min-height: 40px;
background: transparent;
}
.widget-volume > revealer > list > row:hover {
background: transparent;
box-shadow: none;
border-radius: 4px;
}
.widget-backlight > scale {
background: @mantle;
/* background: alpha(currentColor, 0.05); */
border-radius: 0px 4px 4px 0px;
margin: 5px 10px 5px 0px;
padding: 0px 10px 0px 0px;
min-height: 50px;
}
.widget-backlight > label {
background: @surface0;
/* background: alpha(currentColor, 0.05); */
margin: 5px 0px 5px 10px;
border-radius: 4px 0px 0px 4px;
padding: 0px;
min-height: 50px;
min-width: 50px;
}
/* DND widget */
.widget-dnd {
margin: 8px;
font-size: 1.1rem;
padding-top: 20px;
}
.widget-dnd>switch {
font-size: initial;
border-radius: 12px;
background: @surface0;
border: 1px solid @lavender;
box-shadow: none;
}
.widget-dnd>switch:checked {
background: @surface2;
}
.widget-dnd>switch slider {
background: @lavender;
border-radius: 12px;
}
/* Toggles */
.toggle:checked {
background: @surface1;
/* background: @theme_selected_bg_color; */
}
/*.toggle:not(:checked) {
color: rgba(128, 128, 128, 0.5);
}*/
.toggle:checked:hover {
background: @surface2;
/* background: alpha(@theme_selected_bg_color, 0.75); */
}
/* Sliders */
scale {
padding: 0px;
margin: 0px 10px 0px 10px;
}
scale trough {
border-radius: 4px;
background: @surface0;
/* background: alpha(currentColor, 0.1); */
}
scale highlight {
border-radius: 5px;
min-height: 10px;
margin-right: -5px;
}
scale slider {
margin: -10px;
min-width: 10px;
min-height: 10px;
background: transparent;
box-shadow: none;
padding: 0px;
}
scale slider:hover {
}
.right.overlay-indicator {
all: unset;
}

View File

@@ -4,7 +4,6 @@
host,
...
}: let
nvim = inputs.nvim.packages."x86_64-linux".default;
toilet = inputs.toilet.packages."x86_64-linux".default;
desktop_pkgs =
if (host == "oganesson")
@@ -40,7 +39,6 @@ in {
libreoffice
gtrash
ripgrep
nvim
toilet
python3
]

View File

@@ -0,0 +1,6 @@
{...}: {
imports =
[(import ./waybar.nix)]
++ [(import ./settings.nix)]
++ [(import ./style.nix)];
}

View File

@@ -0,0 +1,147 @@
{...}: {
programs.waybar.settings.mainBar = {
position = "top";
layer = "top";
height = 5;
margin-top = 0;
margin-bottom = 0;
margin-left = 0;
margin-right = 0;
modules-left = [
"custom/launcher"
"custom/separator"
"hyprland/workspaces"
];
modules-center = [
"clock"
];
modules-right = [
"tray"
"custom/separator"
"cpu"
"memory"
"disk"
"custom/separator"
"pulseaudio"
"battery"
"network"
"custom/separator"
"custom/notification"
];
clock = {
calendar = {
format = {today = "<span color='#b4befe'><b><u>{}</u></b></span>";};
};
format = " {:%H:%M}";
tooltip = "true";
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
format-alt = " {:%d/%m}";
};
"hyprland/workspaces" = {
active-only = false;
disable-scroll = true;
format = "{icon}";
on-click = "activate";
format-icons = {
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
"6" = "";
urgent = "";
default = "";
sort-by-number = true;
};
persistent-workspaces = {
"1" = [];
"2" = [];
"3" = [];
"4" = [];
"5" = [];
"6" = [];
};
};
memory = {
format = "󰟜 {}%";
format-alt = "󰟜 {used} GiB"; # 
interval = 2;
};
cpu = {
format = " {usage}%";
format-alt = " {avg_frequency} GHz";
interval = 2;
};
disk = {
# path = "/";
format = "󰋊 {percentage_used}%";
interval = 60;
};
network = {
format-wifi = " {signalStrength}%";
format-ethernet = "󰀂 ";
tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
format-linked = "{ifname} (No IP)";
format-disconnected = "󰖪 ";
};
tray = {
icon-size = 20;
spacing = 8;
};
pulseaudio = {
format = "{icon} {volume}%";
format-muted = " {volume}%";
format-icons = {
default = [" "];
};
scroll-step = 5;
on-click = "pamixer -t";
on-click-right = "pavucontrol";
};
battery = {
format = "{icon} {capacity}%";
format-icons = [" " " " " " " " " "];
format-charging = " {capacity}%";
format-full = " {capacity}%";
format-warning = " {capacity}%";
interval = 5;
states = {
warning = 20;
};
format-time = "{H}h{M}m";
tooltip = true;
tooltip-format = "{time}";
};
"custom/launcher" = {
format = "";
on-click = "fuzzel";
on-click-right = "wallpaper-picker";
tooltip = "false";
};
"custom/notification" = {
tooltip = false;
format = "{icon} ";
format-icons = {
notification = "<span foreground='red'><sup></sup></span> ";
none = " ";
dnd-notification = "<span foreground='red'><sup></sup></span> ";
dnd-none = " ";
inhibited-notification = "<span foreground='red'><sup></sup></span> ";
inhibited-none = " ";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span> ";
dnd-inhibited-none = " ";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
};
"custom/separator" = {
exec = "echo ' | '";
interval = 600;
tooltip = false;
};
};
}

View File

@@ -0,0 +1,98 @@
{...}: let
custom = {
font = "JetBrainsMono Nerd Font";
font_size = "22px";
font_weight = "bold";
text_color = "#cdd6f4";
secondary_accent = "#89b4fa";
tertiary_accent = "#f5f5f5";
background = "#11111B";
};
in {
programs.waybar.style = ''
* {
border: none;
border-radius: 0px;
padding: 0;
margin: 0;
min-height: 0px;
font-family: ${custom.font};
font-weight: ${custom.font_weight};
}
window#waybar {
background: ${custom.background};
}
#workspaces {
font-size: ${custom.font_size};
}
#workspaces button {
color: ${custom.text_color};
padding-left: 6px;
padding-right: 6px;
}
#workspaces button.empty {
color: #6c7086;
}
#workspaces button.active {
color: #b4befe;
}
#tray, #pulseaudio, #network, #cpu, #memory, #disk, #clock, #battery, #custom-notification {
font-size: ${custom.font_size};
color: ${custom.text_color};
}
#cpu {
padding-left: 5px;
padding-right: 9px;
}
#memory {
padding-left: 9px;
padding-right: 9px;
}
#disk {
padding-left: 9px;
padding-right: 5px;
}
#tray {
margin-left: 7px;
padding-right: 5px;
}
#pulseaudio {
padding-left: 5px;
padding-right: 9px;
}
#battery {
padding-left: 9px;
padding-right: 9px;
}
#network {
padding-left: 9px;
padding-right: 5px;
}
custom-notification {
padding-left: 15px;
padding-right: 20px;
}
#clock {
padding-left: 9px;
padding-right: 15px;
}
#custom-launcher {
font-size: ${custom.font_size};
color: #b4befe;
font-weight: ${custom.font_weight};
padding-left: 10px;
padding-right: 15px;
}
'';
}

View File

@@ -0,0 +1,8 @@
{pkgs, ...}: {
programs.waybar = {
enable = true;
};
programs.waybar.package = pkgs.waybar.overrideAttrs (oa: {
mesonFlags = (oa.mesonFlags or []) ++ ["-Dexperimental=true"];
});
}