diff --git a/flake.nix b/flake.nix index 58ff06b..8556851 100644 --- a/flake.nix +++ b/flake.nix @@ -86,18 +86,9 @@ home-manager.nixosModules.home-manager sops-nix.nixosModules.sops catppuccin.nixosModules.catppuccin - ( - { pkgs, ... }: - { - environment.systemPackages = [ - confetti.packages.${pkgs.system}.confetti - # or: confetti.packages.${pkgs.system}.default - ]; - - hardware.opengl.enable = true; - } - ) + confetti.nixosModules.confetti ]; + }; archive = nixpkgs.lib.nixosSystem { specialArgs = { diff --git a/moduler/hyprland.nix b/moduler/hyprland.nix index f9eb6f7..3a3b9d0 100644 --- a/moduler/hyprland.nix +++ b/moduler/hyprland.nix @@ -19,6 +19,12 @@ in hyprland-qtutils waypipe wmenu + playerctl + ]; + + + fonts.packages = with pkgs; [ + font-awesome ]; services = { @@ -53,7 +59,7 @@ in }; rofi = { enable = true; - font = lib.mkForce "ComicShannsMono Nerd Font 18"; + font = lib.mkForce "FiraCode Nerd Font 18"; }; }; services = { @@ -89,11 +95,11 @@ in splash = false; splash_offset = 2.0; - preload = [ "/home/fw/nix/wallpapers/blue.png" ]; + preload = [ "/home/fw/nix/wallpapers/nix-wallpaper-nineish-catppuccin-mocha.png" ]; wallpaper = [ - "DP-1,/home/fw/nix/wallpapers/blue.png" - "eDP-1,/home/fw/nix/wallpapers/blue.png" + "DP-1,/home/fw/nix/wallpapers/nix-wallpaper-nineish-catppuccin-mocha.png" + "eDP-1,/home/fw/nix/wallpapers/nix-wallpaper-nineish-catppuccin-mocha.png" ]; }; }; @@ -121,8 +127,8 @@ in }; general = { - gaps_in = 15; - gaps_out = 15; + gaps_in = 7; + gaps_out = 14; border_size = 2; layout = "dwindle"; allow_tearing = true; @@ -263,7 +269,7 @@ in "$mod, j, movefocus, d" # Applications - "$mod, q, exec, ${pkgs.firefox}/bin/firefox" + "$mod, q, exec, ${pkgs.librewolf}/bin/librewolf" "$mod, d, exec, ${pkgs.rofi}/bin/rofi -show drun -p 'Run: '" # Screencapture diff --git a/moduler/programs/waybar/waybar.css b/moduler/programs/waybar/waybar.css index e22cf61..eba4aa3 100644 --- a/moduler/programs/waybar/waybar.css +++ b/moduler/programs/waybar/waybar.css @@ -1,107 +1,124 @@ +/* -------- Catppuccin Mocha Palette -------- */ +@define-color mocha-base #1E1E2E; +@define-color mocha-mantle #181825; +@define-color mocha-crust #11111B; +@define-color mocha-text #CDD6F4; +@define-color mocha-subtext0 #A6ADC8; + +@define-color mocha-green #A6E3A1; +@define-color mocha-yellow #F9E2AF; +@define-color mocha-sky #89DCEB; +@define-color mocha-rose #F38BA8; +@define-color mocha-blue #89B4FA; +@define-color mocha-surface2 #585B70; +@define-color mocha-peach #fab387; + +/* -------- Base Styles -------- */ * { - /* `otf-font-awesome` is required to be installed for icons */ - font-family: FiraCode Nerd Font Bold, sans-serif; - font-size: 16px; - color: #4C4F69; /* Default text color */ + font-family: "FiraCode Nerd Font Bold", "Font Awesome 7 Free Regular", sans-serif; + font-size: 15px; } window#waybar { - background-color: #EFF1F5; /* Catppuccin Base */ - border-bottom: 3px solid #B2BCC8; /* Catppuccin Crust */ - color: #4C4F69; /* Default text color */ - transition-property: background-color; - transition-duration: 0.5s; + background: @mocha-base; + box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35); + transition: background-color .35s ease, color .35s ease; + padding: 4px 8px; } -window#waybar.hidden { - opacity: 0.2; +window#waybar.hidden { opacity: 0.2; } + +window#waybar.termite { background: @mocha-mantle; } +window#waybar.chromium { background: @mocha-base; border: none; } + +/* -------- Module “pill” look -------- */ +#workspaces, #clock, #mpris { + background: @mocha-mantle; + border: 1px solid @mocha-surface2; + border-radius: 10px; + padding: 3px 8px; } -window#waybar.termite { - background-color: #D7DBE6; /* Catppuccin Mantle */ -} - -window#waybar.chromium { - background-color: #B2BCC8; /* Catppuccin Crust */ - border: none; +/* consistent gaps between modules */ +.modules-left > widget, .modules-right > widget { + margin: 0 6px; } +.modules-left > widget:first-child { margin-left: 0; } +.modules-right > widget:last-child { margin-right: 0; } +/* -------- Buttons (generic) -------- */ +/* Buttons */ button { - /* Use box-shadow instead of border so the text isn't offset */ - box-shadow: inset 0 -3px transparent; - /* Avoid rounded borders under each button name */ - border: none; - border-radius: 0; - color: #4C4F69; /* Default text color */ - transition: background-color 0.3s ease, box-shadow 0.3s ease; + border: none; + border-radius: 8px; + background: transparent; + color: @mocha-text; + transition: background-color .2s ease, box-shadow .2s ease; + box-shadow: inset 0 -3px transparent; } -/* Hover effect for buttons */ +/* hover */ button:hover { - background: inherit; - box-shadow: inset 0 -3px #F9E2AF; /* Catppuccin Yellow for hover effect */ + background: rgba(255,255,255,0.08); + box-shadow: inset 0 -3px @mocha-peach; } -/* Workspace button styles */ -#workspaces button { - padding: 0 5px; - background-color: transparent; - color: #4C4F69; /* Default text color */ - transition: background-color 0.3s ease, box-shadow 0.3s ease; +/* active (no CSS transform in GTK; simulate press with padding + shadow) */ +button:active { + padding-top: 1px; /* nudge down visually */ + padding-bottom: 1px; /* keep height stable */ + box-shadow: inset 0 -2px @mocha-peach; + color: @mocha-base; } -/* Hover effect for workspace buttons */ -#workspaces button:hover { - background: rgba(0, 0, 0, 0.2); -} - -/* Focused or active workspace styles */ -#workspaces button.focused, #workspaces button.active { - background-color: #A6E3A1; /* Catppuccin Green for active workspace */ - box-shadow: inset 0 -3px #76C7E3; /* Catppuccin Sky for focus highlight */ - color: #4C4F69; /* Default text color */ -} - -/* Urgent workspace styles */ -#workspaces button.urgent { - background-color: #F28A8C; /* Catppuccin Rose for urgent workspace */ -} - -/* Mode (e.g., dark/light mode indicator) */ -#mode { - background-color: #A6E3A1; /* Catppuccin Green */ - box-shadow: inset 0 -3px #F9E2AF; /* Catppuccin Yellow for highlight */ -} - -/* Spacing for workspaces and other modules */ -#clock, -#window, +/* -------- Workspaces -------- */ #workspaces { - margin: 0 4px; + padding: 4px 6px; + background: @mocha-mantle; } -/* If workspaces is the leftmost module, omit left margin */ -.modules-left > widget:first-child > #workspaces { - margin-left: 0; +#workspaces button { + padding: 2px 8px; + margin: 0 2px; + border-radius: 8px; + transition: background-color .2s ease, box-shadow .2s ease; } -/* If workspaces is the rightmost module, omit right margin */ -.modules-right > widget:last-child > #workspaces { - margin-right: 0; +#workspaces button:hover { + background: rgba(255,255,255,0.08); } +#workspaces button.active, #workspaces button.focused { + background: @mocha-peach; + color: @mocha-base; + box-shadow: inset 0 -3px @mocha-peach; +} + +#workspaces button.urgent { + background: @mocha-rose; + color: @mocha-base; + box-shadow: inset 0 -3px rgba(0,0,0,0.2); +} + +/* -------- Clock -------- */ #clock { - background-color: #F9E2AF; /* Catppuccin Yellow for clock */ - color: #4C4F69; /* Default text color */ - font-family: FiraCode Nerd Font Bold, sans-serif; - font-size: 16px; - color: #4C4F69; /* Default text color */ + background: @mocha-peach; + color: @mocha-base; + font-weight: 600; + letter-spacing: 0.2px; + padding: 4px 10px; } -/* Keyframes for blinking effect (e.g., battery critical) */ -@keyframes blink { - to { - background-color: #F9E2AF; /* Catppuccin Yellow */ - color: #4C4F69; /* Default text color */ - } +/* -------- Clock -------- */ +#mpris { + background: @mocha-peach; + color: @mocha-base; + font-weight: 600; + letter-spacing: 0.2px; + padding: 4px 10px; +} + +/* -------- Helpers -------- */ +@keyframes blink { + to { background-color: @mocha-peach; color: @mocha-base; } } diff --git a/moduler/programs/waybar/waybar.jsonc b/moduler/programs/waybar/waybar.jsonc index aa438ec..84e2f81 100644 --- a/moduler/programs/waybar/waybar.jsonc +++ b/moduler/programs/waybar/waybar.jsonc @@ -1,4 +1,29 @@ { + "layer": "top", + "position": "top", + "modules-left": ["hyprland/workspaces"], - "modules-right": ["clock"] + "modules-right": ["mpris","clock"], + "mpris": { + "player": "Feishin", + "format": "{player_icon} {artist} — {title}", + "format-paused": "{player_icon} {title}", + "format-stopped": "", + "player-icons": { "default": "", "Feishin": "" }, + "max-length": 45, + "interval": 1, + "tooltip": true, + "tooltip-format": "{player} — {status}\n{artist}\n{title}\n{album}", + "on-click": "playerctl -p Feishin play-pause", + "on-scroll-up": "playerctl -p Feishin next", + "on-scroll-down": "playerctl -p Feishin previous" + }, + + "clock": { + "format": "{:%c}", + "locale": "sv_SE.UTF-8", + "tooltip": true, + "tooltip-format": "{:%A, %d %B %Y}\n %H:%M:%S", + "interval": 1 + } } diff --git a/moduler/ssh.nix b/moduler/ssh.nix index bb04c0e..957375c 100644 --- a/moduler/ssh.nix +++ b/moduler/ssh.nix @@ -2,6 +2,7 @@ { programs.ssh = { enable = true; + enableDefaultConfig = false; matchBlocks = { "lth" = { hostname = "login.student.lth.se"; diff --git a/wallpapers/nix-wallpaper-nineish-catppuccin-mocha.png b/wallpapers/nix-wallpaper-nineish-catppuccin-mocha.png new file mode 100644 index 0000000..117c059 Binary files /dev/null and b/wallpapers/nix-wallpaper-nineish-catppuccin-mocha.png differ