From 1beb97c2221f0914ff0d7d92037ae8466bcf4012 Mon Sep 17 00:00:00 2001 From: autumn Date: Tue, 25 Nov 2025 16:50:47 -0700 Subject: [PATCH] add niri --- home/autumn/home.nix | 4 - home/autumn/sysconfs/yukigekko.nix | 8 +- home/packages/niri/niri.kdl | 104 +++++++++++++++++ home/packages/niri/niri.nix | 6 + home/packages/waybar/waybar.css | 146 ++++++++++-------------- home/packages/waybar/waybar.nix | 172 ++--------------------------- home/themefiles/cursor.nix | 6 +- system/yukigekko/configuration.nix | 3 +- 8 files changed, 192 insertions(+), 257 deletions(-) create mode 100644 home/packages/niri/niri.kdl create mode 100644 home/packages/niri/niri.nix diff --git a/home/autumn/home.nix b/home/autumn/home.nix index 0599558..cc2437a 100644 --- a/home/autumn/home.nix +++ b/home/autumn/home.nix @@ -53,9 +53,5 @@ # package bundles ../bundles/langs.nix - ## Development - inputs.currents.homeManagerModules.currents ]; - - services.currents.enable = true; } diff --git a/home/autumn/sysconfs/yukigekko.nix b/home/autumn/sysconfs/yukigekko.nix index d3901ce..a8b3b1b 100644 --- a/home/autumn/sysconfs/yukigekko.nix +++ b/home/autumn/sysconfs/yukigekko.nix @@ -1,4 +1,4 @@ -{config, pkgs, ...}: +{config, pkgs, inputs, ...}: { home.packages = with pkgs; [ obsidian @@ -16,8 +16,12 @@ ../../packages/mako/mako.nix ../../packages/fuzzel/fuzzel.nix # ../../packages/avizo/avizo.nix + ../../packages/niri/niri.nix # Distrobox containers - ../../boxes/archlinux/box-archlinux.nix + # ../../boxes/archlinux/box-archlinux.nix + inputs.currents.homeManagerModules.currents ]; + + services.currents.enable = true; } diff --git a/home/packages/niri/niri.kdl b/home/packages/niri/niri.kdl new file mode 100644 index 0000000..e35eacf --- /dev/null +++ b/home/packages/niri/niri.kdl @@ -0,0 +1,104 @@ +input { + keyboard { + xkb { + layout "us" + } + } + touchpad { + tap + natural-scroll + accel-speed 0.0 + scroll-method "two-finger" + middle-emulation + drag true + tap-button-map "left-right-middle" + disabled-on-external-mouse + } + focus-follows-mouse max-scroll-amount="60%" +} +layout { + gaps 10 + center-focused-column "on-overflow" + preset-column-widths { + proportion 0.3333333 + proportion 0.5 + proportion 0.6666667 + } + preset-window-heights{ + proportion 0.95 + proportion 0.8 + proportion 0.75 + proportion 0.5 + } + default-column-width { proportion 0.6666667; } + focus-ring { off; } + border { + width 4 + active-color "#7fbbb3" + inactive-color "#d3c6aa" + urgent-color "#e67e80" + } +} +spawn-at-startup "waybar" +spawn-at-startup "swaybg -i ~/Downloads/wp.jpg" +spawn-at-startup "avizo-service" +binds { + //spawn binds + Super+Shift+Slash {show-hotkey-overlay;} + Super+Return hotkey-overlay-title="Alacritty" {spawn "alacritty";} + Super+R hotkey-overlay-title="Fuzzel" {spawn "fuzzel";} + Super+E hotkey-overlay-title="File Manager" {spawn "pcmanfm";} + Super+B hotkey-overlay-title="Obsidian" {spawn "obsidian";} + Super+Escape hotkey-overlay-title="Lock" {spawn "swaylock --screenshots --clock --indicator --indicator-radius 250 --indicator-thickness 12 --effect-blur 7x5 --ring-color 7fbbb3 --line-color d3c6aa --inside-color 2b3339 --separator-color 83c092";} + Super+Shift+E hotkey-overlay-title="Quit" {quit;} + Super+Q hotkey-overlay-title="Close" {close-window;} + Super+O hotkey-overlay-title="Toggle Overview" {toggle-overview;} + + Super+H {focus-column-left;} + Super+J {focus-window-down;} + Super+K {focus-window-up;} + Super+L {focus-column-right;} + Super+Left {focus-column-left;} + Super+Down {focus-window-down;} + Super+Up {focus-window-up;} + Super+Right {focus-column-right;} + Super+Shift+H {move-column-left;} + Super+Shift+J {move-window-down;} + Super+Shift+K {move-window-up;} + Super+Shift+L {move-column-right;} + Super+Shift+Left {move-column-left;} + Super+Shift+Down {move-window-down;} + Super+Shift+Up {move-window-up;} + Super+Shift+Right {move-column-right;} + Super+Home {focus-column-first;} + Super+End {focus-column-last;} + Super+1 {focus-workspace 1;} + Super+2 {focus-workspace 2;} + Super+3 {focus-workspace 3;} + Super+4 {focus-workspace 4;} + Super+5 {focus-workspace 5;} + Super+6 {focus-workspace 6;} + Super+7 {focus-workspace 7;} + Super+8 {focus-workspace 8;} + Super+9 {focus-workspace 9;} + // Super+10 {focus-workspace 10;} + Super+Shift+1 {move-column-to-workspace 1;} + Super+Shift+2 {move-column-to-workspace 2;} + Super+Shift+3 {move-column-to-workspace 3;} + Super+Shift+4 {move-column-to-workspace 4;} + Super+Shift+5 {move-column-to-workspace 5;} + Super+Shift+6 {move-column-to-workspace 6;} + Super+Shift+7 {move-column-to-workspace 7;} + Super+Shift+8 {move-column-to-workspace 8;} + Super+Shift+9 {move-column-to-workspace 9;} + Super+BracketLeft {consume-or-expel-window-left;} + Super+BracketRight {consume-or-expel-window-right;} + Super+Comma {consume-window-into-column;} + Super+Period {expel-window-from-column;} + Super+A {switch-preset-column-width;} + Super+Shift+A {switch-preset-window-height;} + Super+F {maximize-column;} + Super+Shift+F {fullscreen-window;} + Super+V {toggle-window-floating;} + Super+W {toggle-column-tabbed-display;} +} diff --git a/home/packages/niri/niri.nix b/home/packages/niri/niri.nix new file mode 100644 index 0000000..0da0c44 --- /dev/null +++ b/home/packages/niri/niri.nix @@ -0,0 +1,6 @@ +{ config, pkgs, ... }: + +{ + xdg.configFile."niri/config.kdl".source = ./niri.kdl; +} + diff --git a/home/packages/waybar/waybar.css b/home/packages/waybar/waybar.css index 97c0221..c6fb755 100644 --- a/home/packages/waybar/waybar.css +++ b/home/packages/waybar/waybar.css @@ -1,12 +1,11 @@ * { - font-family: JetBrains Mono, Font Awesome 6 Free; + font-family: "Hack Nerd Font Mono"; font-size: 13px; } window#waybar { - color: #ffffff; - background-color: #1e3b28; - border-bottom: 3px solid #8f2fef; + color: #d3c6aa; + background-color: #2b3339; transition-property: background-color; transition-duration: .5s; } @@ -15,34 +14,53 @@ window#waybar.hidden { opacity: 0.2; } +.modules-left, +.modules-center, +.modules-right { + border: 3px solid #7fbbb3; + border-radius: 4px; + padding: 0 5px; +} + +#custom-weather { + /* border-bottom: #a7c080; */ +} + button { box-shadow: inset 0 -3px transparent; - border: none; + border: 1px #000000 solid; border-radius: 0; + color: #d3c6aa; } button:hover { background: inherit; - box-shadow: inset 0 -3px #ffffff; + box-shadow: inset 0 -3px #7fbbb3; + opacity: 0.8; } -#workspaces button { - padding: 0 15px; +#tags button { + padding: 0 5px; background-color: transparent; - border: 2px solid #8f2fef + border: 2px solid #d3c6aa; + margin: 3px; } -#workspaces button:hover { - background: rgba(255, 255, 255, 0.2); +#tags button.occupied { + background: #d3c6aa; + border: 1px solid #2b3339; + color: #2b3339; } -#workspaces button.focused { - background-color: #8f2fef; - box-shadow: inset 0 -3px #ffffff; +#tags button.focused { + background-color: #7fbbb3; + color: #2b3339; + border: 1px solid #2b3339; + /* border-bottom: 3px solid #2b3339; */ } -#workspaces button.urgent { - background-color: #f38ba8; +#tags button.urgent { + background-color: #e67e80; } #backlight, @@ -55,10 +73,9 @@ button:hover { #pulseaudio, #temperature, #tray, -#idle_inhibitor, -#keyboard-state, #power-profiles-daemon { padding: 0 8px; + color: #d3c6aa; } #window, @@ -66,126 +83,79 @@ button:hover { margin: 0 8px; } -.modules-left>widget:first-child>#workspaces { - margin-left: 0; -} - -.modules-right>widget:last-child>#workspaces { - margin-right: 0; -} - #backlight { - color: #ffffff; background-color: transparent; - border-bottom: 3px solid #cba6f7; + /* border-bottom: 3px solid #7fbbb3; */ } #battery { - color: #ffffff; background-color: transparent; - border-bottom: 3px solid #a6e3a1; + border-right: 3px solid #7fbbb3; + font-size: 18px; } #battery.critical.discharging { - background-color: #f38ba8; - animation: blink 1s infinite; + background-color: #e67e80; + /* animation: blink 5s infinite; */ } #battery.warning.discharging { - background-color: #f9e2af; - animation: blink 1s infinite; + background-color: #dbbc7f; + /* animation: blink 10s infinite; */ } -@keyframes blink { - to { - background-color: transparent; - } -} +/* @keyframes blink { */ +/* to { */ +/* background-color: transparent; */ +/* } */ +/* } */ #clock { - color: #ffffff; background-color: transparent; - border-bottom: 3px solid #a6e3a1; + /* border-bottom: 3px solid #a7c080; */ } #cpu { - color: #ffffff; background-color: transparent; - border-bottom: 3px solid #cba6f7; + border-right: 3px solid #7fbbb3; } #memory { - color: #ffffff; background-color: transparent; - border-bottom: 3px solid #f9e2af; -} - -#mode { - color: #ffffff; - background-color: #8f2fef; - border-bottom: 3px solid #ffffff; + border-right: 3px solid #7fbbb3; } #network { - color: #ffffff; background-color: transparent; - border-bottom: 3px solid #a6e3a1; + border-right: 3px solid #7fbbb3; } #network.disconnected { - color: #ffffff; background-color: transparent; - border-bottom: 3px solid #f38ba8; + /* border-bottom: 3px solid #f38ba8; */ } #pulseaudio { - color: #ffffff; background-color: transparent; - border-bottom: 3px solid #a6e3a1; + border-right: 3px solid #7fbbb3; } #pulseaudio.muted { - color: #ffffff; background-color: transparent; - border-bottom: 3px solid #f38ba8; + /* border-bottom: 3px solid #e67e80; */ } #temperature { - color: #ffffff; background-color: transparent; - border-bottom: 3px solid #a6e3a1; + border-right: 3px solid #7fbbb3; } #temperature.critical { background-color: transparent; - border-bottom: 3px solid #f38ba8; + /* border-bottom: 3px solid #e67e80; */ } #tray { background-color: transparent; - border-bottom: 3px solid #8f2fef; -} - -#idle_inhibitor { - color: #ffffff; - background-color: transparent; - border-bottom: 3px solid #f9e2af; -} - -#idle_inhibitor.activated { - color: #1e3b28; - background-color: #f9e2af; - border-bottom: 3px solid #f9e2af; -} - -#keyboard-state { - color: #ffffff; - background-color: transparent; - border-bottom: 3px solid #fab387; -} - -#power-profiles-daemon { - color: #ffffff; - background-color: transparent; - border-bottom: 3px solid #94e2d5; -} + border-left: 3px solid #7fbbb3; +} \ No newline at end of file diff --git a/home/packages/waybar/waybar.nix b/home/packages/waybar/waybar.nix index 65b2b85..e1f07f0 100644 --- a/home/packages/waybar/waybar.nix +++ b/home/packages/waybar/waybar.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ ... }: { programs.waybar = { @@ -8,7 +8,7 @@ mainBar = { layer = "top"; position = "top"; - height = 30; + height = 45; spacing = 4; # Module layout @@ -121,10 +121,10 @@ }; format = "{icon} {capacity}%"; format-full = "{icon} Full"; - format-charging = "{icon} Charging {capacity}% {time}"; - format-plugged = "{icon} Charge complete"; + format-charging = "{icon} {capacity}% {time}"; + format-plugged = "{icon}  "; format-good = ">{icon} {capacity}%"; - format-icons = ["" "" "" "" "" "" "" ""]; + format-icons = [" " " " " " " " " "]; }; "network#wifi" = { @@ -154,163 +154,13 @@ on-click = "pavucontrol"; }; }; - "custom/currents"= { - interval= 150; - exec= "/home/autumn/.local/bin/currents --output"; - return-type= "json"; - }; + "custom/currents"= { + interval= 150; + exec= "/home/autumn/.local/bin/currents --output"; + return-type= "json"; + }; }; }; - - style = '' - * { - font-family: "Hack Nerd Font Mono"; - font-size: 13px; - } - window#waybar { - color: #d3c6aa; - background-color: #2b3339; - border-bottom: 3px solid #7fbbb3; - transition-property: background-color; - transition-duration: .5s; - } - - window#waybar.hidden { - opacity: 0.2; - } - #custom-weather{ - border-bottom: #a7c080; - } - button { - box-shadow: inset 0 -3px transparent; - border: 1px #000000 solid; - border-radius: 0; - color:#d3c6aa; - - } - button:hover { - background: inherit; - box-shadow: inset 0 -3px #7fbbb3; - } - - #tags button { - padding: 0 15px; - background-color: transparent; - border: 2px solid #d3c6aa; - } - - #tags button.occupied { - background: #d3c6aa; - border: 1px solid #2b3339; - color:#2b3339; - } - - #tags button.focused { - background-color: #7fbbb3; - color: #2b3339; - border: 1px solid #2b3339; - border-bottom: 3px solid #2b3339; - } - - #tags button.urgent { - background-color: #e67e80; - } - - #backlight, - #battery, - #clock, - #cpu, - #memory, - #mode, - #network, - #pulseaudio, - #temperature, - #tray, - #power-profiles-daemon { - padding: 0 8px; - color:#d3c6aa; - } - - #window, - #workspaces { - margin: 0 8px; - } - - #backlight { - background-color: transparent; - border-bottom: 3px solid #7fbbb3; - } - - #battery { - background-color: transparent; - border-bottom: 3px solid #a7c080; - } - - #battery.critical.discharging { - background-color: #e67e80; - animation: blink 5s infinite; - } - - #battery.warning.discharging { - background-color: #dbbc7f; - animation: blink 10s infinite; - } - - @keyframes blink { - to { - background-color: transparent; - } - } - - #clock { - background-color: transparent; - border-bottom: 3px solid #a7c080; - } - - #cpu { - background-color: transparent; - border-bottom: 3px solid #7fbbb3; - } - - #memory { - background-color: transparent; - border-bottom: 3px solid #dbbc7f; - } - - #network { - background-color: transparent; - border-bottom: 3px solid #a7c080; - } - - #network.disconnected { - background-color: transparent; - border-bottom: 3px solid #f38ba8; - } - - #pulseaudio { - background-color: transparent; - border-bottom: 3px solid #7fbbb3; - } - - #pulseaudio.muted { - background-color: transparent; - border-bottom: 3px solid #e67e80; - } - - #temperature { - background-color: transparent; - border-bottom: 3px solid #a7c080; - } - - #temperature.critical { - background-color: transparent; - border-bottom: 3px solid #e67e80; - } - - #tray { - background-color: transparent; - border-bottom: 3px solid #7fbbb3; - } - ''; }; + xdg.configFile."waybar/style.css".source = ./waybar.css; } diff --git a/home/themefiles/cursor.nix b/home/themefiles/cursor.nix index 65a634e..670c863 100644 --- a/home/themefiles/cursor.nix +++ b/home/themefiles/cursor.nix @@ -5,6 +5,10 @@ name = "oreo-cursors-plus"; package = pkgs.oreo-cursors-plus; size = 32; - gtk.enable = true; + }; + gtk.enable = true; + gtk.cursorTheme = { + package = pkgs.oreo-cursors-plus; + name = "oreo-cursors-plus"; }; } diff --git a/system/yukigekko/configuration.nix b/system/yukigekko/configuration.nix index d2de072..446a8b8 100644 --- a/system/yukigekko/configuration.nix +++ b/system/yukigekko/configuration.nix @@ -37,6 +37,7 @@ time.timeZone = "${timezone}"; programs.river-classic.enable = true; + programs.niri.enable = true; xdg.portal = { enable = true; config.common.default = "*"; @@ -126,5 +127,5 @@ system.autoUpgrade.enable = true; system.autoUpgrade.allowReboot = true; system.autoUpgrade.flake = "../../flake.nix"; - qt.platformTheme = "kde6"; + # qt.platformTheme = "kde6"; }