diff --git a/luci/configuration.nix b/luci/configuration.nix index 87c977c..783e7b8 100644 --- a/luci/configuration.nix +++ b/luci/configuration.nix @@ -15,10 +15,11 @@ boot.loader.efi.canTouchEfiVariables = true; networking = { + # Need this for ZFS hostId = "09e1d908"; hostName = "luci"; # Define your hostname. - # Pick only one of the below networking options. - # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + # Pick only one of the below networking options. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. networkmanager.enable = true; # Easiest to use and most distros use this by default. }; diff --git a/nate-work/modules/hypr/hyprland.nix b/nate-work/modules/hypr/hyprland.nix index 6407079..a8c5938 100644 --- a/nate-work/modules/hypr/hyprland.nix +++ b/nate-work/modules/hypr/hyprland.nix @@ -113,6 +113,18 @@ in programs.zsh.enable = true; programs.ssh.startAgent = true; + services.printing = { + enable = true; + browsing = true; + drivers = [ pkgs.brlaser ]; + }; + + services.avahi = { + enable = true; + nssmdns4 = true; + openFirewall = true; + }; + services.fprintd.enable = true; services.greetd = { enable = true; diff --git a/nate/dotfiles/ghostty/config b/nate/dotfiles/ghostty/config new file mode 100644 index 0000000..62d9fad --- /dev/null +++ b/nate/dotfiles/ghostty/config @@ -0,0 +1,46 @@ +theme = "catppuccin-macchiato" + +### +# Font config +### + +font-size = 14 +font-family = "Monaspace Xenon Var" +font-family-bold = "Monaspace Argon Var" +font-family-italic = "Monaspace Radon Var" +font-family-bold-italic = "Monaspace Krypton Var" + +font-variation = wght=400 +font-variation = wdth=100 +font-variation = slnt=-2 + +font-variation-bold = wght=600 +font-variation-bold = wdth=100 + +font-variation-italic = wght=400 +font-variation-italic = wdth=100 +font-variation-italic = slnt=-10 + +font-variation-bold-italic = wght=700 +font-variation-bold-italic = wdth=100 +font-variation-bold-italic = slnt=-3 + +# Liguratures +font-feature = +ss01, +ss02, +ss03, +ss04, +ss05, +ss06, +ss07, +ss08, +ss09, +ss10 +# Enables texture healing +font-feature = +calt +font-feature = +liga + +### +# Keybinds +### + +keybind = ctrl+shift+plus=increase_font_size:1 +# keybind = ctrl+minus=decrease_font_size:1 + +### +# Misc +### + +window-padding-x = 4 +window-padding-y = 4 diff --git a/nate/dotfiles/hypr/hypridle.conf b/nate/dotfiles/hypr/hypridle.conf new file mode 100644 index 0000000..60335aa --- /dev/null +++ b/nate/dotfiles/hypr/hypridle.conf @@ -0,0 +1,10 @@ +general { + lock_cmd = swaylock # dbus/sysd lock command (loginctl lock-session) + before_sleep_cmd = swaylock + ignore_dbus_inhibit = false +} + +listener { + timeout = 600 # in seconds + on-timeout = swaylock -C ~/.config/swaylock/idle-config # command to run when timeout has passed +} diff --git a/nate/dotfiles/hypr/nix.png b/nate/dotfiles/hypr/nix.png new file mode 100644 index 0000000..ccb261e Binary files /dev/null and b/nate/dotfiles/hypr/nix.png differ diff --git a/nate/dotfiles/hypr/scripts/music_links.txt b/nate/dotfiles/hypr/scripts/music_links.txt new file mode 100644 index 0000000..424a71e --- /dev/null +++ b/nate/dotfiles/hypr/scripts/music_links.txt @@ -0,0 +1,6 @@ +https://www.youtube.com/watch?v=484RgaL990c +https://www.youtube.com/watch?v=6OGp_lZT2tM +https://www.youtube.com/watch?v=tIsiYbJLwIg +https://www.youtube.com/watch?v=pKw6s8w9rAI +https://www.youtube.com/watch?v=lFuErjQKoYg +https://www.youtube.com/@Denz1000 diff --git a/nate/dotfiles/hypr/scripts/music_setup.sh b/nate/dotfiles/hypr/scripts/music_setup.sh new file mode 100755 index 0000000..7e58b1e --- /dev/null +++ b/nate/dotfiles/hypr/scripts/music_setup.sh @@ -0,0 +1,21 @@ +#! /usr/bin/env bash + +hyprctl dispatch togglespecialworkspace music + +YT_LINK=$(sort -R < ~/.config/hypr/scripts/music_links.txt | head -n 1) + +firefox --new-window "$YT_LINK" & +sleep 1 +hyprctl dispatch togglefloating +hyprctl dispatch movewindow u +hyprctl dispatch movewindow l +hyprctl dispatch resizeactive exact 45% 45% +hyprctl dispatch moveactive 30% 5% + +ghostty ~/.config/hypr/scripts/music_setup_cmd.sh & +sleep 1 +hyprctl dispatch togglefloating +hyprctl dispatch resizeactive exact 95% 30% +hyprctl dispatch movewindow d +hyprctl dispatch movewindow l +hyprctl dispatch moveactive -- 30 -5% diff --git a/nate/dotfiles/hypr/scripts/music_setup_cmd.sh b/nate/dotfiles/hypr/scripts/music_setup_cmd.sh new file mode 100755 index 0000000..1eed781 --- /dev/null +++ b/nate/dotfiles/hypr/scripts/music_setup_cmd.sh @@ -0,0 +1,4 @@ +#! /usr/bin/env sh + +sleep 1 +cava diff --git a/nate/dotfiles/hypr/scripts/screenshot.sh b/nate/dotfiles/hypr/scripts/screenshot.sh new file mode 100755 index 0000000..33d848a --- /dev/null +++ b/nate/dotfiles/hypr/scripts/screenshot.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +entries="Screen Window Area Area+Edit" + +selected=$(printf '%s\n' "$entries" | tr ' ' '\n' | wofi --style="$HOME"/.config/wofi/macc_style.css --conf="$HOME"/.config/wofi/config.screenshot | awk '{print tolower($1)}') + +if [ "$1" == "clipboard" ]; then + case $selected in + screen) + hyprshot --notif-timeout 2000 -m output --clipboard-only;; + window) + hyprshot --notif-timeout 2000 -m window --clipboard-only;; + area) + hyprshot --notif-timeout 2000 -m region --clipboard-only;; + area+edit) + hyprshot --notif-timeout 2000 -m region --clipboard-only + sleep 0.1 + flatpak run com.github.maoschanz.drawing -c + ;; + esac +else + case $selected in + screen) + hyprshot --notif-timeout 2000 -m output -o ~/Pictures/;; + window) + hyprshot --notif-timeout 2000 -m window -o ~/Pictures/;; + area) + hyprshot --notif-timeout 2000 -m region -o ~/Pictures/;; + area+edit) + hyprshot --notif-timeout 2000 -m region --clipboard-only + sleep 0.1 + flatpak run com.github.maoschanz.drawing -c + ;; + esac +fi diff --git a/nate/dotfiles/hypr/va_background.png b/nate/dotfiles/hypr/va_background.png new file mode 100644 index 0000000..c7b99d1 Binary files /dev/null and b/nate/dotfiles/hypr/va_background.png differ diff --git a/nate/dotfiles/swaylock/boot-config b/nate/dotfiles/swaylock/boot-config new file mode 100644 index 0000000..cf3d644 --- /dev/null +++ b/nate/dotfiles/swaylock/boot-config @@ -0,0 +1,38 @@ +image=~/.config/swaylock/lock.png +clock +indicator +ignore-empty-password +show-failed-attempts + +font=Overpass Nerd Font Mono +timestr=%I:%M %p +datestr=%A %b %e + +bs-hl-color=f4dbd6 +caps-lock-bs-hl-color=f4dbd6 +caps-lock-key-hl-color=a6da95 +inside-color=00000000 +inside-clear-color=00000000 +inside-caps-lock-color=00000000 +inside-ver-color=00000000 +inside-wrong-color=00000000 +key-hl-color=67bf4a +layout-bg-color=00000000 +layout-border-color=00000000 +layout-text-color=cad3f5 +line-color=00000000 +line-clear-color=00000000 +line-caps-lock-color=00000000 +line-ver-color=00000000 +line-wrong-color=00000000 +ring-color=b7bdf8 +ring-clear-color=f4dbd6 +ring-caps-lock-color=f5a97f +ring-ver-color=8aadf4 +ring-wrong-color=ee99a0 +separator-color=00000000 +text-color=363a4f +text-clear-color=f4dbd6 +text-caps-lock-color=f5a97f +text-ver-color=8aadf4 +text-wrong-color=ee99a0 diff --git a/nate/dotfiles/swaylock/config b/nate/dotfiles/swaylock/config new file mode 100644 index 0000000..325b7cd --- /dev/null +++ b/nate/dotfiles/swaylock/config @@ -0,0 +1,41 @@ +screenshot +effect-pixelate=18 +effect-vignette=0.7:0.5 +clock +indicator-idle-visible +ignore-empty-password +show-failed-attempts + +font=Overpass Nerd Font Mono +timestr=%I:%M %p +datestr=%A %b %e +fade-in=0.5 + +bs-hl-color=f4dbd6 +caps-lock-bs-hl-color=f4dbd6 +caps-lock-key-hl-color=a6da95 +inside-color=666a8f +inside-clear-color=00000000 +inside-caps-lock-color=00000000 +inside-ver-color=00000000 +inside-wrong-color=00000000 +key-hl-color=67bf4a +layout-bg-color=00000000 +layout-border-color=00000000 +layout-text-color=cad3f5 +line-color=00000000 +line-clear-color=00000000 +line-caps-lock-color=00000000 +line-ver-color=00000000 +line-wrong-color=00000000 +ring-color=b7bdf8 +ring-clear-color=f4dbd6 +ring-caps-lock-color=f5a97f +ring-ver-color=8aadf4 +ring-wrong-color=ee99a0 +separator-color=00000000 +text-color=363a4f +text-clear-color=f4dbd6 +text-caps-lock-color=f5a97f +text-ver-color=8aadf4 +text-wrong-color=ee99a0 diff --git a/nate/dotfiles/swaylock/idle-config b/nate/dotfiles/swaylock/idle-config new file mode 100644 index 0000000..9c30c17 --- /dev/null +++ b/nate/dotfiles/swaylock/idle-config @@ -0,0 +1,43 @@ + +screenshot +effect-pixelate=18 +effect-vignette=0.7:0.5 +clock +indicator-idle-visible +ignore-empty-password +show-failed-attempts + +font=Overpass Nerd Font Mono +timestr=%I:%M %p +datestr=%A %b %e +fade-in=1 +grace=10 + +bs-hl-color=f4dbd6 +caps-lock-bs-hl-color=f4dbd6 +caps-lock-key-hl-color=a6da95 +inside-color=666a8f +inside-clear-color=00000000 +inside-caps-lock-color=00000000 +inside-ver-color=00000000 +inside-wrong-color=00000000 +key-hl-color=67bf4a +layout-bg-color=00000000 +layout-border-color=00000000 +layout-text-color=cad3f5 +line-color=00000000 +line-clear-color=00000000 +line-caps-lock-color=00000000 +line-ver-color=00000000 +line-wrong-color=00000000 +ring-color=b7bdf8 +ring-clear-color=f4dbd6 +ring-caps-lock-color=f5a97f +ring-ver-color=8aadf4 +ring-wrong-color=ee99a0 +separator-color=00000000 +text-color=363a4f +text-clear-color=f4dbd6 +text-caps-lock-color=f5a97f +text-ver-color=8aadf4 +text-wrong-color=ee99a0 diff --git a/nate/dotfiles/swaylock/lock.png b/nate/dotfiles/swaylock/lock.png new file mode 100644 index 0000000..888a950 Binary files /dev/null and b/nate/dotfiles/swaylock/lock.png differ diff --git a/nate/dotfiles/swaync/style.css b/nate/dotfiles/swaync/style.css new file mode 100644 index 0000000..328f344 --- /dev/null +++ b/nate/dotfiles/swaync/style.css @@ -0,0 +1,342 @@ +* { + all: unset; + font-size: 14px; + font-family: "Ubuntu Nerd Font"; + transition: 200ms; +} + +trough highlight { + background: #cad3f5; +} + +scale trough { + margin: 0rem 1rem; + background-color: #363a4f; + min-height: 8px; + min-width: 70px; +} + +slider { + background-color: #8aadf4; +} + +.floating-notifications.background .notification-row .notification-background { + box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #363a4f; + border-radius: 12.6px; + margin: 18px; + background-color: #24273a; + color: #cad3f5; + padding: 0; +} + +.floating-notifications.background .notification-row .notification-background .notification { + padding: 7px; + border-radius: 12.6px; +} + +.floating-notifications.background .notification-row .notification-background .notification.critical { + box-shadow: inset 0 0 7px 0 #ed8796; +} + +.floating-notifications.background .notification-row .notification-background .notification .notification-content { + margin: 7px; +} + +.floating-notifications.background .notification-row .notification-background .notification .notification-content .summary { + color: #cad3f5; +} + +.floating-notifications.background .notification-row .notification-background .notification .notification-content .time { + color: #a5adcb; +} + +.floating-notifications.background .notification-row .notification-background .notification .notification-content .body { + color: #cad3f5; +} + +.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * { + min-height: 3.4em; +} + +.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action { + border-radius: 7px; + color: #cad3f5; + background-color: #363a4f; + box-shadow: inset 0 0 0 1px #494d64; + margin: 7px; +} + +.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:hover { + box-shadow: inset 0 0 0 1px #494d64; + background-color: #363a4f; + color: #cad3f5; +} + +.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:active { + box-shadow: inset 0 0 0 1px #494d64; + background-color: #7dc4e4; + color: #cad3f5; +} + +.floating-notifications.background .notification-row .notification-background .close-button { + margin: 7px; + padding: 2px; + border-radius: 6.3px; + color: #24273a; + background-color: #ed8796; +} + +.floating-notifications.background .notification-row .notification-background .close-button:hover { + background-color: #ee99a0; + color: #24273a; +} + +.floating-notifications.background .notification-row .notification-background .close-button:active { + background-color: #ed8796; + color: #24273a; +} + +.control-center { + box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #363a4f; + border-radius: 12.6px; + margin: 18px; + background-color: #24273a; + color: #cad3f5; + padding: 14px; +} + +.control-center .widget-title > label { + color: #cad3f5; + font-size: 1.3em; +} + +.control-center .widget-title button { + border-radius: 7px; + color: #cad3f5; + background-color: #363a4f; + box-shadow: inset 0 0 0 1px #494d64; + padding: 8px; +} + +.control-center .widget-title button:hover { + box-shadow: inset 0 0 0 1px #494d64; + background-color: #5b6078; + color: #cad3f5; +} + +.control-center .widget-title button:active { + box-shadow: inset 0 0 0 1px #494d64; + background-color: #7dc4e4; + color: #24273a; +} + +.control-center .notification-row .notification-background { + border-radius: 7px; + color: #cad3f5; + background-color: #363a4f; + box-shadow: inset 0 0 0 1px #494d64; + margin-top: 14px; +} + +.control-center .notification-row .notification-background .notification { + padding: 7px; + border-radius: 7px; +} + +.control-center .notification-row .notification-background .notification.critical { + box-shadow: inset 0 0 7px 0 #ed8796; +} + +.control-center .notification-row .notification-background .notification .notification-content { + margin: 7px; +} + +.control-center .notification-row .notification-background .notification .notification-content .summary { + color: #cad3f5; +} + +.control-center .notification-row .notification-background .notification .notification-content .time { + color: #a5adcb; +} + +.control-center .notification-row .notification-background .notification .notification-content .body { + color: #cad3f5; +} + +.control-center .notification-row .notification-background .notification > *:last-child > * { + min-height: 3.4em; +} + +.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action { + border-radius: 7px; + color: #cad3f5; + background-color: #181926; + box-shadow: inset 0 0 0 1px #494d64; + margin: 7px; +} + +.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:hover { + box-shadow: inset 0 0 0 1px #494d64; + background-color: #363a4f; + color: #cad3f5; +} + +.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:active { + box-shadow: inset 0 0 0 1px #494d64; + background-color: #7dc4e4; + color: #cad3f5; +} + +.control-center .notification-row .notification-background .close-button { + margin: 7px; + padding: 2px; + border-radius: 6.3px; + color: #24273a; + background-color: #ee99a0; +} + +.close-button { + border-radius: 6.3px; +} + +.control-center .notification-row .notification-background .close-button:hover { + background-color: #ed8796; + color: #24273a; +} + +.control-center .notification-row .notification-background .close-button:active { + background-color: #ed8796; + color: #24273a; +} + +.control-center .notification-row .notification-background:hover { + box-shadow: inset 0 0 0 1px #494d64; + background-color: #8087a2; + color: #cad3f5; +} + +.control-center .notification-row .notification-background:active { + box-shadow: inset 0 0 0 1px #494d64; + background-color: #7dc4e4; + color: #cad3f5; +} + +.notification.critical progress { + background-color: #ed8796; +} + +.notification.low progress, +.notification.normal progress { + background-color: #8aadf4; +} + +.control-center-dnd { + margin-top: 5px; + border-radius: 8px; + background: #363a4f; + border: 1px solid #494d64; + box-shadow: none; +} + +.control-center-dnd:checked { + background: #363a4f; +} + +.control-center-dnd slider { + background: #494d64; + border-radius: 8px; +} + +.widget-dnd { + margin: 0px; + font-size: 1.1rem; +} + +.widget-dnd > switch { + font-size: initial; + border-radius: 8px; + background: #363a4f; + border: 1px solid #494d64; + box-shadow: none; +} + +.widget-dnd > switch:checked { + background: #363a4f; +} + +.widget-dnd > switch slider { + background: #494d64; + border-radius: 8px; + border: 1px solid #6e738d; +} + +.widget-mpris .widget-mpris-player { + background: #363a4f; + padding: 7px; +} + +.widget-mpris .widget-mpris-title { + font-size: 1.2rem; +} + +.widget-mpris .widget-mpris-subtitle { + font-size: 0.8rem; +} + +.widget-menubar > box > .menu-button-bar > button > label { + font-size: 3rem; + padding: 0.5rem 2rem; +} + +.widget-menubar > box > .menu-button-bar > :last-child { + color: #ed8796; +} + +.power-buttons button:hover, +.powermode-buttons button:hover, +.screenshot-buttons button:hover { + background: #363a4f; +} + +.control-center .widget-label > label { + color: #cad3f5; + font-size: 2rem; +} + +.widget-buttons-grid { + padding-top: 1rem; +} + +.widget-buttons-grid > flowbox > flowboxchild > button label { + font-size: 2.5rem; +} + +.widget-volume { + padding-top: 1rem; +} + +.widget-volume label { + font-size: 1.5rem; + color: #7dc4e4; +} + +.widget-volume trough highlight { + background: #7dc4e4; +} + +.widget-backlight trough highlight { + background: #eed49f; +} + +.widget-backlight label { + font-size: 1.5rem; + color: #eed49f; +} + +.widget-backlight .KB { + padding-bottom: 1rem; +} + +.image { + padding-right: 0.5rem; +} diff --git a/shared/server-configuration.nix b/shared/server-configuration.nix index ecc67dc..552aceb 100644 --- a/shared/server-configuration.nix +++ b/shared/server-configuration.nix @@ -47,6 +47,10 @@ in default = false; description = "Enable the caldav server service (radicale)"; }; + printerSharingEnable = lib.mkOption { + default = false; + description = "Setups up avahi and printer services to expose local printer to network"; + }; }; imports = [ @@ -167,6 +171,27 @@ in }; }; + services.avahi = lib.mkIf srvConfig.printerSharingEnable { + enable = true; + nssmdns4 = true; + openFirewall = true; + publish = { + enable = true; + userServices = true; + }; + }; + + services.printing = lib.mkIf srvConfig.printerSharingEnable { + enable = true; + drivers = [ pkgs.brlaser ]; + listenAddresses = [ "*:631" ]; + allowFrom = [ "all" ]; + browsing = true; + browserAddress = "192.168.1.169:631"; + defaultShared = true; + openFirewall = true; + }; + systemd.timers."pixel-backups" = { wantedBy = [ "timers.target" ]; timerConfig = {