diff --git a/home-manager/common/desktops/hyprland/default.nix b/home-manager/common/desktops/hyprland/default.nix index 42e03e5e..5dac84bc 100644 --- a/home-manager/common/desktops/hyprland/default.nix +++ b/home-manager/common/desktops/hyprland/default.nix @@ -9,6 +9,47 @@ ./common/waybar/scripts.nix ]; - stylix.image = /etc/nixos/git/wallpapers/default/wallpaper1.png; - stylix.autoEnable = true; + services.gammastep = { + enable = true; + provider = "geoclue2"; + tray = true; + dawnTime = "6:00-7:45"; + duskTime = "18:35-20:15"; + }; + + gtk.enable = true; + + stylix = { + image = /etc/nixos/git/wallpapers/default/wallpaper1.png; + autoEnable = true; + polarity = "dark"; + targets = { + waybar = { + enableCenterBackColors = true; + enableLeftBackColors = true; + enableRightBackColors = true; + }; + }; + fonts = { + serif = { + package = pkgs.dejavu_fonts; + name = "DejaVu Serif"; + }; + + sansSerif = { + package = pkgs.dejavu_fonts; + name = "DejaVu Sans"; + }; + + monospace = { + package = pkgs.dejavu_fonts; + name = "DejaVu Sans Mono"; + }; + + emoji = { + package = pkgs.noto-fonts-emoji; + name = "Noto Color Emoji"; + }; + }; + }; } diff --git a/home-manager/common/desktops/hyprland/themes/stylix/mako-conf.nix b/home-manager/common/desktops/hyprland/themes/stylix/mako-conf.nix index 3b9c064a..9a57bcdc 100644 --- a/home-manager/common/desktops/hyprland/themes/stylix/mako-conf.nix +++ b/home-manager/common/desktops/hyprland/themes/stylix/mako-conf.nix @@ -1,30 +1,27 @@ { ... }: { - home.file.".config/mako/config".text = '' -max-history=5 -sort=+time - -on-button-left=dismiss -on-button-right=dismiss-all - -font=JetbrainsMono Regular -background-color=#3a3c3e -border-color=#2a9b34 -text-color=#d9eed2 -width=300 -height=100 -margin=10 -padding=15 -border-size=3 -border-radius=15 -icons=1 -max-icon-size=128 -icon-location=left -markup=1 -actions=1 -history=1 -text-alignment=left -default-timeout=15000 -layer=top -anchor=top-right - ''; + services.mako = { + enable = true; + anchor = "top-left"; + border-radius = 10; + border-size = 2; + icons = true; + actions = true; + layer = "top"; + markup = true; + height = 100; + width = 300; + margin = 10; + default-timeout = 15000; + sort = "+time"; + extraConfig = '' + max-history=5 + on-button-left=dismiss + on-button-right=dismiss-all + padding=15 + max-icon-size=128 + icon-location=left + history=1 + text-alignment=left + ''; + }; } diff --git a/home-manager/common/desktops/hyprland/themes/stylix/rofi-conf.nix b/home-manager/common/desktops/hyprland/themes/stylix/rofi-conf.nix index ea469a53..698a3354 100644 --- a/home-manager/common/desktops/hyprland/themes/stylix/rofi-conf.nix +++ b/home-manager/common/desktops/hyprland/themes/stylix/rofi-conf.nix @@ -1,223 +1,5 @@ { ...}: { - home.file = { - # https://github.com/davatorium/rofi/blob/next/CONFIG.md - # Rofi configuration - ".config/rofi/config.rasi" = { - enable = true; - executable = false; - text = '' - configuration { - } - @theme "dark" - ''; + programs.rofi = { + enable = true; }; - - # Rofi theme - ".config/rofi/themes/dark.rasi" = { - enable = true; - executable = false; - text = '' -/* ========================================================================== - Rofi color theme - - Based on the Gruvbox color scheme for Vim by morhetz - https://github.com/morhetz/gruvbox - - File: dark.rasi - Desc: Gruvbox dark color theme for Rofi - Author: bardisty - Source: https://github.com/bardisty/rofi - Modified: Mon Feb 12 2018 04:08:43 PST -0800 - ========================================================================== */ - -* { - /* Theme settings */ - highlight: bold italic; - scrollbar: true; - - /* Gruvbox dark colors */ - dark-bg0: #282828; - dark-bg0-soft: #32302f; - dark-bg3: #665c54; - dark-fg0: #d9eed2; - dark-fg1: #d9eed2; - dark-red-dark: #fb0029; - dark-red-light: #fb4934; - dark-yellow-dark: #7a6640; - dark-yellow-light: #7a6640; - dark-gray: #a89984; - - /* Theme colors */ - background: @dark-bg0; - background-color: @background; - foreground: @dark-fg1; - border-color: @dark-gray; - separatorcolor: @border-color; - scrollbar-handle: @border-color; - - normal-background: @background; - normal-foreground: @foreground; - alternate-normal-background: @dark-bg0-soft; - alternate-normal-foreground: @foreground; - selected-normal-background: @dark-bg3; - selected-normal-foreground: @dark-fg0; - - active-background: @dark-yellow-dark; - active-foreground: @background; - alternate-active-background: @active-background; - alternate-active-foreground: @active-foreground; - selected-active-background: @dark-yellow-light; - selected-active-foreground: @active-foreground; - - urgent-background: @dark-red-dark; - urgent-foreground: @background; - alternate-urgent-background: @urgent-background; - alternate-urgent-foreground: @urgent-foreground; - selected-urgent-background: @dark-red-light; - selected-urgent-foreground: @urgent-foreground; -} - -@import "common" - ''; - }; - - # Rofi theme - ".config/rofi/themes/common.rasi" = { - enable = true; - executable = false; - text = '' -/* ========================================================================== - File: common.rasi - Desc: Shared rules between all gruvbox themes - Author: bardisty - Source: https://github.com/bardisty/rofi - Modified: Mon Feb 12 2018 06:06:47 PST -0800 - ========================================================================== */ - -window { - background-color: @background; - border: 2; - padding: 2; -} - -mainbox { - border: 0; - padding: 0; -} - -message { - border: 2px 0 0; - border-color: @separatorcolor; - padding: 1px; -} - -textbox { - highlight: @highlight; - text-color: @foreground; -} - -listview { - border: 2px solid 0 0; - padding: 2px 0 0; - border-color: @separatorcolor; - spacing: 2px; - scrollbar: @scrollbar; -} - -element { - border: 0; - padding: 2px; -} - -element.normal.normal { - background-color: @normal-background; - text-color: @normal-foreground; -} - -element.normal.urgent { - background-color: @urgent-background; - text-color: @urgent-foreground; -} - -element.normal.active { - background-color: @active-background; - text-color: @active-foreground; -} - -element.selected.normal { - background-color: @selected-normal-background; - text-color: @selected-normal-foreground; -} - -element.selected.urgent { - background-color: @selected-urgent-background; - text-color: @selected-urgent-foreground; -} - -element.selected.active { - background-color: @selected-active-background; - text-color: @selected-active-foreground; -} - -element.alternate.normal { - background-color: @alternate-normal-background; - text-color: @alternate-normal-foreground; -} - -element.alternate.urgent { - background-color: @alternate-urgent-background; - text-color: @alternate-urgent-foreground; -} - -element.alternate.active { - background-color: @alternate-active-background; - text-color: @alternate-active-foreground; -} - -scrollbar { - width: 4px; - border: 0; - handle-color: @scrollbar-handle; - handle-width: 8px; - padding: 0; -} - -mode-switcher { - border: 2px 0 0; - border-color: @separatorcolor; -} - -inputbar { - spacing: 0; - text-color: @normal-foreground; - padding: 2px; - children: [ prompt, textbox-prompt-sep, entry, case-indicator ]; -} - -case-indicator, -entry, -prompt, -button { - spacing: 0; - text-color: @normal-foreground; -} - -button.selected { - background-color: @selected-normal-background; - text-color: @selected-normal-foreground; -} - -textbox-prompt-sep { - expand: false; - str: ":"; - text-color: @normal-foreground; - margin: 0 0.3em 0 0; -} -element-text, element-icon { - background-color: inherit; - text-color: inherit; -} - ''; - }; - }; } \ No newline at end of file diff --git a/home-manager/common/desktops/hyprland/themes/stylix/swaylock-conf.nix b/home-manager/common/desktops/hyprland/themes/stylix/swaylock-conf.nix index 3fcdea12..86ca4a67 100644 --- a/home-manager/common/desktops/hyprland/themes/stylix/swaylock-conf.nix +++ b/home-manager/common/desktops/hyprland/themes/stylix/swaylock-conf.nix @@ -9,7 +9,6 @@ show-failed-attempts = true; effect-blur = "20x8"; screenshots = true; - font = "JetBrainsMono Nerd Font"; clock = true; timestr = "%R"; diff --git a/home-manager/common/desktops/hyprland/themes/stylix/waybar-conf.nix b/home-manager/common/desktops/hyprland/themes/stylix/waybar-conf.nix index 6bf05e91..bba0f937 100644 --- a/home-manager/common/desktops/hyprland/themes/stylix/waybar-conf.nix +++ b/home-manager/common/desktops/hyprland/themes/stylix/waybar-conf.nix @@ -1,176 +1,157 @@ { ...}: { imports = [ ../../common/waybar/scripts.nix ]; - home.file = { - # https://yewtu.be/watch?v=tWQB1NDDA9c - # https://github.com/DN-debug/waybar-examples + programs.waybar = { + enable = true; + settings = { + mainBar = { + layer = "top"; + position = "top"; + modules-left = [ + "custom/wlogout" + "idle_inhibitor" + "clock" + "mpris" + ]; + module-center = [ + "hyprland/workspaces" + ]; + modules-right = [ + "pulseaudio" + "custom/tailscale" + "network" + "battery" + ]; - # Inspiration: - # https://github.com/Pipshag/dotfiles_gruvbox - - # Font Search: - # https://www.nerdfonts.com/cheat-sheet - - # Online CSS testing - # https://www.w3schools.com/css/tryit.asp?filename=trycss_border_round - - # Waybar configuration - ".config/waybar/config.jsonc" = { - enable = true; - executable = false; - text = '' - { - "layer": "top", - "position": "top", - "modules-left": [ - "custom/wlogout", - "idle_inhibitor", - "clock", - "mpris", - ], - "modules-center": [ - "hyprland/workspaces", - ], - "modules-right": [ - "pulseaudio", - "custom/tailscale", - "network", - "battery", - ], - - "custom/wlogout": { - "format": "", - "on-click": "wlogout" - }, - - "custom/tailscale": { - "format": "{icon} ", - "exec": "$HOME/.config/waybar/scripts/tailscale.sh", - "exec-if": "pgrep tailscaled", - "return-type": "json", - "interval": 5, - "format-icons": { - "Running": "󰌆", - "Stopped": "󰌊", - } - }, - - "idle_inhibitor": { - "format": "{icon} ", - "format-icons": { - "activated": "", - "deactivated": "" - } - }, - - "mpris": { - "format": "{player_icon} {dynamic}", - "format-paused": "{status_icon} {dynamic}", - "player-icons": { "default": "▶" }, - "status-icons": { "paused": "⏸" }, - "max-length": 30, - }, - - "hyprland/workspaces": { - "on-click": "activate", - }, - - "clock": { - "format": "󰥔 {:%H:%M}", - "format-alt": "󰃭 {:%A, %d %b, %Y}", - "tooltip-format": "{calendar}", - "calendar": { - "mode" : "month", - "mode-mon-col" : 3, - "weeks-pos" : "left", - "on-scroll" : 1, - "format": { - "months": "{}", - "days": "{}", - "weeks": "W{}", - "weekdays": "{}", - "today": "{}" - } - }, - "actions": { - "on-click-right": "kitty -e calcurse", - "on-click-middle": "mode", - "on-scroll-up": "shift_up", - "on-scroll-down": "shift_down" - } - }, - - "pulseaudio": { - "scroll-step": 1, - "format": "{icon} {format_source}", - "format-bluetooth": "{volume}% {icon} {format_source}", - "format-bluetooth-muted": " ", - "format-muted": "󰝟 {format_source}", - "format-source": " ", - "format-source-muted": " ", - "format-icons": { - "headphone": " ", - "headset": " ", - "default": ["󰕿", "󰖀", "󰕾"] - }, - "tooltip": false, - "on-click": "kitty -e pulsemixer", - }, - - "network": { - "format": "{ifname}", - "format-wifi": " ", - "format-ethernet": " {ipaddr}", - "format-disconnected": "", // An empty format will hide the module. - "tooltip-format": "{ifname} via {gwaddr} ", - "tooltip-format-wifi": "{essid} ({signalStrength}%) ", - "tooltip-format-ethernet": "{ifname} ", - "tooltip-format-disconnected": "Disconnected", - "max-length": 50, - "on-click": "kitty --class=nmtui -e nmtui" - }, - - "battery": { - "tooltip": true, - "tooltip-format": "{time}", - "states": { - "warning": 35, - "critical": 20 - }, - "format": "{icon} {capacity}%", - "format-charging": "󰂄 {capacity}%", - "format-plugged": " {capacity}%", - "format-icons": ["", "", "", "", ""] - }, - } - ''; + # Modules + "custom/wlogout" = { + format = ""; + on-click = "wlogout"; + }; + "custom/tailscale" = { + format = "{icon} "; + exec = "$HOME/.config/waybar/scripts/tailscale.sh"; + exec-if = "pgrep tailscaled"; + return-type = "json"; + interval = 5; + format-icons = { + Running = "󰌆"; + Stopped = "󰌊"; + }; + }; + idle_inhibitor = { + format = "{icon} "; + format-icons = { + activated = ""; + deactivated = ""; + }; + }; + mpris = { + format = "{player_icon} {dynamic}"; + format-paused = ''{status_icon} {dynamic}''; + player-icons = { default = "▶" }; + status-icons = { paused = "⏸" }; + max-length = 30; + }; + "hyprland/workspaces" = { + on-click = "activate"; + }; + clock = { + format = "󰥔 {:%H:%M}"; + format-alt = "󰃭 {:%A, %d %b, %Y}"; + tooltip-format = "{calendar}"; + calendar = { + mode = "month"; + mode-mon-col = 3; + weeks-pos = "left"; + on-scroll = 1; + format = { + months = "{}"; + days = "{}"; + weeks = "W{}"; + weekdays = "{}"; + today = "{}"; + }; + }; + actions = { + on-click-right = "kitty -e calcurse"; + on-click-middle = "mode"; + on-scroll-up = "shift_up"; + on-scroll-down = "shift_down"; + }; + }; + pulseaudio = { + scroll-step = 1; + format = "{icon} {format_source}"; + format-bluetooth = "{volume}% {icon} {format_source}"; + format-bluetooth-muted = " "; + format-muted = "󰝟 {format_source}"; + format-source = " "; + format-source-muted = " "; + format-icons = { + headphone = " "; + headset = " "; + default = ["󰕿" "󰖀" "󰕾"]; + }; + tooltip = false; + on-click = "kitty -e pulsemixer"; + }; + network = { + format = "{ifname}"; + format-wifi = " "; + format-ethernet = " {ipaddr}"; + format-disconnected = ""; # Hides the module + tooltip-format = "{ifname} via {gwaddr} "; + tooltip-format-wifi = "{essid} ({signalStrength}%) "; + tooltip-format-ethernet = "{ifname} "; + tooltip-format-disconnected = "Disconnected"; + max-length = 50; + on-click = "kitty --class=nmtui -e nmtui"; + }; + battery = { + tooltip = true; + tooltip-format = "{time}"; + states = { + warning = 35; + critical = 20; + }; + format = "{icon} {capacity}%"; + format-charging = "󰂄 {capacity}%"; + format-plugged = " {capacity}%"; + format-icons = [ "" "" "" "" "" ]; + }; + }; }; + /*style = { + "*" = { + border = "none"; + border-radius = 0; + }; + waybar = { + padding = "15px"; + }; + workspaces = { + button.visible = { + font-size = "15px"; + border-radius = "50px"; + padding = "0px 5px"; + margin = "5px"; + }; + button = { + font-size = "15px"; + border-radius = "50px"; + padding = "0px 5px"; + margin = "5px"; + }; + }; + };*/ + }; # Waybar theming ".config/waybar/style.css" = { - enable = true; + enable = false; executable = false; text = '' - * { - border: none; - border-radius: 0; - font-family: JetbrainsMono Regular; - } - - #waybar { - background-color: rgba(50, 48, 47, 0.8); - padding: 15px; - } - - #workspaces button.visible, - #workspaces button { - font-size: 15px; - border-radius: 50px; - padding: 0px 5px; - margin: 5px; - color: rgba(200, 200, 200, 0.5); - background-color: #282828; - } #workspaces button.active { padding: 0px 15px; diff --git a/home-manager/common/desktops/hyprland/themes/stylix/wlogout-conf.nix b/home-manager/common/desktops/hyprland/themes/stylix/wlogout-conf.nix index e624c766..8d4e7724 100644 --- a/home-manager/common/desktops/hyprland/themes/stylix/wlogout-conf.nix +++ b/home-manager/common/desktops/hyprland/themes/stylix/wlogout-conf.nix @@ -1,4 +1,4 @@ -{ ... }: { +{ config, ... }: { xdg.configFile."wlogout/style.css" = { enable = true; target = "./wlogout/style.css"; @@ -7,14 +7,14 @@ background-image: none; } window { - background-color: rgba(58,60,62, 0.6); + background-color: ${config.lib.stylix.colors.base05}; } button { - color: #d9eed2; + color: ${config.lib.stylix.colors.base04}; font-size: 0px; border-radius: 5000px; margin: 25px; - background-color: #3a3c3e; + background-color: ${config.lib.stylix.colors.base01}; border-style: solid; border-width: 3px; background-repeat: no-repeat; @@ -23,7 +23,7 @@ } button:active, button:hover { - background-color: #2a9b34; + background-color: ${config.lib.stylix.colors.base00}; outline-style: none; } diff --git a/home-manager/default.nix b/home-manager/default.nix index 74843a43..59a9f14e 100644 --- a/home-manager/default.nix +++ b/home-manager/default.nix @@ -19,12 +19,6 @@ stateVersion = hmStateVersion; homeDirectory = "/home/${username}"; sessionPath = [ "$HOME/.local/bin" ]; - # pointerCursor = { - # gtk.enable = true; - # package = pkgs.catppuccin-cursors.mochaLight; - # name = "Catppuccin-Mocha-Light-Cursors"; - # size = 22; - # }; }; nixpkgs = { diff --git a/nixos/common/desktops/hyprland/default.nix b/nixos/common/desktops/hyprland/default.nix index 5a047f6c..345abec6 100644 --- a/nixos/common/desktops/hyprland/default.nix +++ b/nixos/common/desktops/hyprland/default.nix @@ -8,8 +8,36 @@ # }; imports = [ inputs.stylix.nixosModules.stylix ]; - stylix.image = /etc/nixos/git/wallpapers/default/wallpaper1.png; - stylix.targets.plymouth.enable = false; + + stylix = { + image = /etc/nixos/git/wallpapers/default/wallpaper1.png; + targets = { + plymouth.enable = false; + }; + autoEnable = true; + polarity = "dark"; + fonts = { + serif = { + package = pkgs.dejavu_fonts; + name = "DejaVu Serif"; + }; + + sansSerif = { + package = pkgs.dejavu_fonts; + name = "DejaVu Sans"; + }; + + monospace = { + package = pkgs.dejavu_fonts; + name = "DejaVu Sans Mono"; + }; + + emoji = { + package = pkgs.noto-fonts-emoji; + name = "Noto Color Emoji"; + }; + }; + }; services.xserver.videoDrivers = [ ] ++ lib.optional (builtins.isString gpu) gpu; diff --git a/nixos/default.nix b/nixos/default.nix index 536c307b..1193c6c9 100644 --- a/nixos/default.nix +++ b/nixos/default.nix @@ -58,13 +58,8 @@ sshpass # ssh password helper cbonsai # ncurses bonsai tree busybox # Linux utilities - at # Job scheduler ]; - # Job scheduler - services.atd.enable = true; - services.atd.allowEveryone = true; - # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; i18n.extraLocaleSettings = {