From 9695c1c909be4d48854690cdf47958551c2d3178 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Mon, 2 Feb 2026 19:33:21 +0100 Subject: removed hyprland, added niri --- modules/home/default.nix | 9 ++ modules/home/hyprland/chernobyl/default.nix | 12 -- modules/home/hyprland/chernobyl/dunst.nix | 44 ------ modules/home/hyprland/chernobyl/fastfetch.nix | 7 - modules/home/hyprland/chernobyl/hyprland.nix | 174 ------------------------ modules/home/hyprland/chernobyl/kitty.nix | 7 - modules/home/hyprland/chernobyl/rofi.nix | 111 --------------- modules/home/hyprland/chernobyl/waybar.nix | 187 -------------------------- modules/home/hyprland/default.nix | 10 -- modules/home/niri/chernobyl/default.nix | 12 ++ modules/home/niri/chernobyl/dunst.nix | 44 ++++++ modules/home/niri/chernobyl/fastfetch.nix | 7 + modules/home/niri/chernobyl/kitty.nix | 7 + modules/home/niri/chernobyl/niri.nix | 126 +++++++++++++++++ modules/home/niri/chernobyl/rofi.nix | 100 ++++++++++++++ modules/home/niri/chernobyl/waybar.nix | 187 ++++++++++++++++++++++++++ modules/home/niri/default.nix | 10 ++ modules/nixos/des/hyprland.nix | 30 ----- modules/nixos/des/niri.nix | 29 ++++ 19 files changed, 531 insertions(+), 582 deletions(-) create mode 100644 modules/home/default.nix delete mode 100644 modules/home/hyprland/chernobyl/default.nix delete mode 100644 modules/home/hyprland/chernobyl/dunst.nix delete mode 100644 modules/home/hyprland/chernobyl/fastfetch.nix delete mode 100644 modules/home/hyprland/chernobyl/hyprland.nix delete mode 100644 modules/home/hyprland/chernobyl/kitty.nix delete mode 100644 modules/home/hyprland/chernobyl/rofi.nix delete mode 100644 modules/home/hyprland/chernobyl/waybar.nix delete mode 100644 modules/home/hyprland/default.nix create mode 100644 modules/home/niri/chernobyl/default.nix create mode 100644 modules/home/niri/chernobyl/dunst.nix create mode 100644 modules/home/niri/chernobyl/fastfetch.nix create mode 100644 modules/home/niri/chernobyl/kitty.nix create mode 100644 modules/home/niri/chernobyl/niri.nix create mode 100644 modules/home/niri/chernobyl/rofi.nix create mode 100644 modules/home/niri/chernobyl/waybar.nix create mode 100644 modules/home/niri/default.nix delete mode 100644 modules/nixos/des/hyprland.nix create mode 100644 modules/nixos/des/niri.nix (limited to 'modules') diff --git a/modules/home/default.nix b/modules/home/default.nix new file mode 100644 index 0000000..b01613e --- /dev/null +++ b/modules/home/default.nix @@ -0,0 +1,9 @@ +{ ... }: + +{ + # Home environment orchestrator + imports = [ + ./i3wm + ./niri + ]; +} diff --git a/modules/home/hyprland/chernobyl/default.nix b/modules/home/hyprland/chernobyl/default.nix deleted file mode 100644 index eecfa60..0000000 --- a/modules/home/hyprland/chernobyl/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ ... }: - -{ - imports = [ - ./dunst.nix - ./fastfetch.nix - ./hyprland.nix - ./kitty.nix - ./waybar.nix - ./rofi.nix - ]; -} \ No newline at end of file diff --git a/modules/home/hyprland/chernobyl/dunst.nix b/modules/home/hyprland/chernobyl/dunst.nix deleted file mode 100644 index b51a4a8..0000000 --- a/modules/home/hyprland/chernobyl/dunst.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ pkgs, ... }: - -{ - services.dunst = { - enable = true; - settings = let - colors = { - foreground = "#d0b6fd"; - background = "#1c182d"; - alert = "#7b91fc"; - }; - in { - global = { - width = "(200,300)"; - height = "(0,150)"; - offset = "(30,50)"; - origin = "bottom-right"; - transparency = 10; - frame_width = 0; - font = "Fira Code 10"; - }; - - urgency_low = { - background = colors.background; - foreground = colors.foreground; - timeout = 8; - }; - - urgency_normal = { - background = colors.background; - foreground = colors.foreground; - frame-size = "0"; - timeout = 10; - }; - - urgency_critical = { - background = colors.background; - foreground = colors.foreground; - frame-size = "5"; - frame-color = colors.alert; - }; - }; - }; -} \ No newline at end of file diff --git a/modules/home/hyprland/chernobyl/fastfetch.nix b/modules/home/hyprland/chernobyl/fastfetch.nix deleted file mode 100644 index 8050392..0000000 --- a/modules/home/hyprland/chernobyl/fastfetch.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: - -{ - programs.fastfetch = { - enable = true; - }; -} diff --git a/modules/home/hyprland/chernobyl/hyprland.nix b/modules/home/hyprland/chernobyl/hyprland.nix deleted file mode 100644 index 888b41e..0000000 --- a/modules/home/hyprland/chernobyl/hyprland.nix +++ /dev/null @@ -1,174 +0,0 @@ -{ pkgs, ... }: - -{ - wayland.windowManager.hyprland = { - enable = true; - plugins = with pkgs.hyprlandPlugins; [ - hyprbars - borders-plus-plus - hyprexpo - hyprfocus - ]; - settings = { - "$mod" = "SUPER"; - - # Monitor configuration - monitor = ",preferred,auto,1.5"; - - # Environment variables for Wayland rendering - env = [ - "LIBVA_DRIVER_NAME,nvidia" - "XDG_SESSION_TYPE,wayland" - "GDK_SCALE,1" - "OZONE_PLATFORM,wayland" - "QT_QPA_PLATFORM,wayland" - "QT_AUTO_SCREEN_SCALE_FACTOR,1" - "SDL_VIDEODRIVER,wayland" - "CLUTTER_BACKEND,wayland" - ]; - - # Startup commands - exec-once = [ - "dunst" - "nm-applet" - "blueman-applet" - "waybar" - ]; - - # Regular keybindings - bind = [ - # Applications - "$mod, N, exec, firefox" - "$mod, RETURN, exec, kitty" - "$mod, M, exec, rofi -show drun" - "$mod SHIFT, M, exec, kitty nnn" - "$mod SHIFT, S, exec, flameshot gui" - "$mod CTRL, L, exec, hyprlock" - - # Window management - "$mod SHIFT, Q, killactive" - "$mod, F, fullscreen, 0" - "$mod SHIFT, SPACE, togglefloating" - "$mod, SPACE, focusurgentorlast" - - # Focus (h=left, j=down, k=up, l=right) - "$mod, H, movefocus, l" - "$mod, J, movefocus, d" - "$mod, K, movefocus, u" - "$mod, L, movefocus, r" - - # Move windows - "$mod SHIFT, H, movewindow, l" - "$mod SHIFT, J, movewindow, d" - "$mod SHIFT, K, movewindow, u" - "$mod SHIFT, L, movewindow, r" - - # Layout switching - "$mod, S, layoutmsg, togglesplit" - "$mod, W, layoutmsg, preselect l" - "$mod, E, layoutmsg, preselect r" - - # Reload - "$mod SHIFT, C, exec, hyprctl reload" - - # Workspaces (key codes for Czech layout) - "$mod, code:10, workspace, 1" - "$mod, code:11, workspace, 2" - "$mod, code:12, workspace, 3" - "$mod, code:13, workspace, 4" - "$mod, code:14, workspace, 5" - "$mod, code:15, workspace, 6" - "$mod, code:16, workspace, 7" - "$mod, code:17, workspace, 8" - "$mod, code:18, workspace, 9" - "$mod, code:19, workspace, 10" - - "$mod SHIFT, code:10, movetoworkspace, 1" - "$mod SHIFT, code:11, movetoworkspace, 2" - "$mod SHIFT, code:12, movetoworkspace, 3" - "$mod SHIFT, code:13, movetoworkspace, 4" - "$mod SHIFT, code:14, movetoworkspace, 5" - "$mod SHIFT, code:15, movetoworkspace, 6" - "$mod SHIFT, code:16, movetoworkspace, 7" - "$mod SHIFT, code:17, movetoworkspace, 8" - "$mod SHIFT, code:18, movetoworkspace, 9" - "$mod SHIFT, code:19, movetoworkspace, 10" - ]; - - # Brightness keys (repeat when held) - bindel = [ - ", XF86MonBrightnessUp, exec, brightnessctl set 10%+" - ", XF86MonBrightnessDown, exec, brightnessctl set 10%-" - ]; - - # Audio keys (repeat when held) - bindle = [ - ", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+" - ", XF86AudioLowerVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-" - ]; - - # Audio/Mic mute (no repeat) - bindl = [ - ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" - ", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" - ]; - - # Mouse bindings - bindm = [ - "$mod, mouse:272, movewindow" - "$mod, mouse:273, resizewindow" - ]; - - # Window decoration - general = { - gaps_in = 5; - gaps_out = 10; - border_size = 3; - "col.active_border" = "0xffb12cbf"; - "col.inactive_border" = "0xff4c4c4c"; - layout = "dwindle"; - }; - - decoration = { - rounding = 15; - blur = { - enabled = true; - size = 3; - passes = 1; - }; - shadow = { - enabled = true; - range = 4; - render_power = 3; - }; - }; - - animations = { - enabled = true; - animation = [ - "windows, 1, 7, default" - "windowsOut, 1, 7, default, popin 80%" - "border, 1, 10, default" - "fade, 1, 7, default" - ]; - }; - - input = { - kb_layout = "cz"; - kb_options = "eurosign:e,caps:escape"; - follow_mouse = 1; - }; - - dwindle = { - pseudotile = true; - preserve_split = true; - }; - - # Window rules for VSCode and other apps - windowrulev2 = [ - "suppressevent maximize, class:.*" - "windowrule=tile, class:^(VSCodium|Code)$" - ]; - }; - }; -} \ No newline at end of file diff --git a/modules/home/hyprland/chernobyl/kitty.nix b/modules/home/hyprland/chernobyl/kitty.nix deleted file mode 100644 index 11d4054..0000000 --- a/modules/home/hyprland/chernobyl/kitty.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: - -{ - programs.kitty = { - enable = true; - }; -} \ No newline at end of file diff --git a/modules/home/hyprland/chernobyl/rofi.nix b/modules/home/hyprland/chernobyl/rofi.nix deleted file mode 100644 index 477751f..0000000 --- a/modules/home/hyprland/chernobyl/rofi.nix +++ /dev/null @@ -1,111 +0,0 @@ -{ pkgs, ... }: - -{ - programs.rofi = { - enable = true; - location = "center"; - cycle = true; - terminal = "${pkgs.kitty}/bin/kitty"; - modes = [ "drun" "ssh" "emoji" "calc" ]; - plugins = with pkgs; [ rofi-emoji rofi-calc ]; - extraConfig = { - lines = 20; - columns = 1; - font = "Fira Code 12"; - width = 40; - show-icons = true; - icon-theme = "Papirus"; - matching = "fuzzy"; - sorting-method = "fzf"; - drun-display-format = "{icon} {name}"; - }; - theme = '' - * { - bg0: #1c182d; - bg1: #2b2135; - bg2: #3d3547; - fg0: #d0b6fd; - fg1: #b12cbf; - border-col: #b12cbf; - } - - window { - background-color: @bg0; - border: 3px solid @border-col; - border-radius: 15px; - padding: 20px; - } - - mainbox { - background-color: @bg0; - children: [ inputbar message-box listview ]; - spacing: 15px; - } - - inputbar { - background-color: @bg1; - border: 2px solid @border-col; - border-radius: 10px; - padding: 10px 15px; - children: [ prompt entry ]; - } - - prompt { - text-color: @fg1; - margin-right: 10px; - } - - entry { - background-color: transparent; - text-color: @fg0; - } - - message-box { - background-color: @bg1; - border: 2px solid @border-col; - border-radius: 10px; - padding: 10px; - text-color: @fg0; - } - - listview { - background-color: transparent; - columns: @columns; - spacing: 10px; - } - - element { - background-color: @bg1; - border: 2px solid transparent; - border-radius: 8px; - padding: 10px; - transition: all 150ms ease; - } - - element:hover { - background-color: @bg2; - border: 2px solid @border-col; - } - - element:selected { - background-color: @fg1; - text-color: @bg0; - border: 2px solid @border-col; - } - - element-icon { - size: 24px; - margin-right: 10px; - } - - element-text { - text-color: @fg0; - vertical-align: 0.5; - } - - element:selected element-text { - text-color: @bg0; - } - ''; - }; -} diff --git a/modules/home/hyprland/chernobyl/waybar.nix b/modules/home/hyprland/chernobyl/waybar.nix deleted file mode 100644 index cd3bedd..0000000 --- a/modules/home/hyprland/chernobyl/waybar.nix +++ /dev/null @@ -1,187 +0,0 @@ -{ pkgs, ... }: - -{ - programs.waybar = { - enable = true; - style = '' - * { - border: none; - border-radius: 0px; - font-family: Fira Code; - font-size: 12pt; - min-height: 0; - } - - window#waybar { - background-color: #1c182d; - color: #d0b6fd; - border-bottom: 3px solid #b12cbf; - } - - window#waybar.hidden { - opacity: 0.2; - } - - #workspaces button { - padding: 0px 8px; - color: #d0b6fd; - background-color: #2b2135; - border: 2px solid transparent; - transition: all 0.3s ease; - } - - #workspaces button:hover { - background-color: #3d3547; - border-bottom: 2px solid #b12cbf; - } - - #workspaces button.active { - background-color: #b12cbf; - color: #1c182d; - border-bottom: 2px solid #d0b6fd; - } - - #workspaces button.urgent { - background-color: #fc4649; - color: #1c182d; - } - - #clock, - #cpu, - #memory, - #battery, - #backlight, - #pulseaudio, - #network { - padding: 0px 10px; - margin: 0px 5px; - color: #d0b6fd; - background-color: #2b2135; - border-left: 2px solid #b12cbf; - } - - #clock { - border-left: none; - } - - #battery.charging { - color: #c4e881; - } - - #battery.warning { - color: #AC82E9; - } - - #battery.critical { - background-color: #fc4649; - color: #1c182d; - } - - #backlight { - color: #f3fc7b; - } - - #pulseaudio { - color: #7b91fc; - } - - #network { - color: #8F56E1; - } - - #cpu { - color: #92fcfa; - } - - #memory { - color: #c4e881; - } - ''; - settings = [ - { - "height" = 30; - "layer" = "top"; - "position" = "top"; - "modules-left" = [ "hyprland/workspaces" ]; - "modules-center" = [ "clock" ]; - "modules-right" = [ "cpu" "memory" "battery" "backlight" "pulseaudio" "network" ]; - - "hyprland/workspaces" = { - "format" = "{name}"; - "on-click" = "activate"; - "all-outputs" = true; - }; - - "clock" = { - "format" = "{:%H:%M}"; - "interval" = 60; - "tooltip-format" = "{:%a, %b %d, %Y}"; - }; - - "cpu" = { - "format" = "󰻠 {usage}%"; - "interval" = 5; - "on-click" = "${pkgs.kitty}/bin/kitty --hold top"; - }; - - "memory" = { - "format" = "󰍛 {percentage}%"; - "interval" = 5; - "on-click" = "${pkgs.kitty}/bin/kitty --hold top"; - }; - - "battery" = { - "format" = "{icon} {capacity}%"; - "format-icons" = [ - "󰂎" - "󰂏" - "󰂐" - "󰂑" - "󰂒" - "󰂓" - "󰂔" - "󰂕" - "󰂖" - "󰗖" - ]; - "interval" = 30; - "states" = { - "warning" = 30; - "critical" = 15; - }; - }; - - "backlight" = { - "format" = "{icon} {percent}%"; - "format-icons" = [ "󰌚" "󰌝" ]; - "on-scroll-down" = "brightnessctl set 5%-"; - "on-scroll-up" = "brightnessctl set 5%+"; - }; - - "pulseaudio" = { - "format" = "{icon} {volume}%"; - "format-muted" = "󰖁 0%"; - "format-icons" = { - "headphone" = "󰋋"; - "hands-free" = "󰋎"; - "headset" = "󰋎"; - "phone" = "󰏲"; - "portable" = "󰏲"; - "car" = "󰄀"; - "default" = [ "󰕿" "󰖀" "󰕾" ]; - }; - "on-click" = "${pkgs.pavucontrol}/bin/pavucontrol"; - "on-scroll-down" = "wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-"; - "on-scroll-up" = "wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"; - }; - - "network" = { - "format-wifi" = "󰖩 {signalStrength}%"; - "format-ethernet" = "󰛳"; - "format-disconnected" = "󰌙"; - "on-click" = "${pkgs.networkmanagerapplet}/bin/nm-applet"; - }; - } - ]; - }; -} diff --git a/modules/home/hyprland/default.nix b/modules/home/hyprland/default.nix deleted file mode 100644 index b54f464..0000000 --- a/modules/home/hyprland/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: - -{ - # Hyprland home-manager configuration orchestrator - # Uncomment one of the rices below: - imports = [ - #./default.nix # main hyprland rice - ./chernobyl/default.nix # chernobyl hyprland rice - ]; -} diff --git a/modules/home/niri/chernobyl/default.nix b/modules/home/niri/chernobyl/default.nix new file mode 100644 index 0000000..72dedc5 --- /dev/null +++ b/modules/home/niri/chernobyl/default.nix @@ -0,0 +1,12 @@ +{ ... }: + +{ + imports = [ + ./dunst.nix + ./fastfetch.nix + ./niri.nix + ./kitty.nix + ./waybar.nix + ./rofi.nix + ]; +} diff --git a/modules/home/niri/chernobyl/dunst.nix b/modules/home/niri/chernobyl/dunst.nix new file mode 100644 index 0000000..1ff688c --- /dev/null +++ b/modules/home/niri/chernobyl/dunst.nix @@ -0,0 +1,44 @@ +{ pkgs, ... }: + +{ + services.dunst = { + enable = true; + settings = let + colors = { + foreground = "#d0b6fd"; + background = "#1c182d"; + alert = "#7b91fc"; + }; + in { + global = { + width = "(200,300)"; + height = "(0,150)"; + offset = "(30,50)"; + origin = "bottom-right"; + transparency = 10; + frame_width = 0; + font = "Fira Code 10"; + }; + + urgency_low = { + background = colors.background; + foreground = colors.foreground; + timeout = 8; + }; + + urgency_normal = { + background = colors.background; + foreground = colors.foreground; + frame-size = "0"; + timeout = 10; + }; + + urgency_critical = { + background = colors.background; + foreground = colors.foreground; + frame-size = "5"; + frame-color = colors.alert; + }; + }; + }; +} diff --git a/modules/home/niri/chernobyl/fastfetch.nix b/modules/home/niri/chernobyl/fastfetch.nix new file mode 100644 index 0000000..8050392 --- /dev/null +++ b/modules/home/niri/chernobyl/fastfetch.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: + +{ + programs.fastfetch = { + enable = true; + }; +} diff --git a/modules/home/niri/chernobyl/kitty.nix b/modules/home/niri/chernobyl/kitty.nix new file mode 100644 index 0000000..1b15b26 --- /dev/null +++ b/modules/home/niri/chernobyl/kitty.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: + +{ + programs.kitty = { + enable = true; + }; +} diff --git a/modules/home/niri/chernobyl/niri.nix b/modules/home/niri/chernobyl/niri.nix new file mode 100644 index 0000000..b4d129f --- /dev/null +++ b/modules/home/niri/chernobyl/niri.nix @@ -0,0 +1,126 @@ +{ pkgs, ... }: + +{ + wayland.windowManager.niri = { + enable = true; + settings = { + input = { + keyboard = { + xkb = { + layout = "cz"; + options = "eurosign:e,caps:escape"; + }; + }; + mouse = { + accel-profile = "adaptive"; + accel-speed = 0.0; + }; + touchpad = { + tap = true; + dwt = true; + natural-scroll = false; + }; + }; + + outputs = [ + { + name = "eDP-1"; + scale = 1.5; + variable-refresh-rate = true; + } + ]; + + layout = { + gaps = 5; + }; + + spawn-at-startup = [ + { command = [ "dunst" ]; } + { command = [ "nm-applet" ]; } + { command = [ "blueman-applet" ]; } + { command = [ "waybar" ]; } + ]; + + binds = { + "Super+T" = ''spawn "kitty"''; + "Super+N" = ''spawn "firefox"''; + "Super+M" = ''spawn "rofi" "-show" "drun"''; + "Super+Shift+M" = ''spawn "kitty" "nnn"''; + "Super+Shift+S" = ''spawn "flameshot" "gui"''; + "Super+Ctrl+L" = ''spawn "hyprlock"''; + + # Focus + "Super+H" = "focus-column-left"; + "Super+J" = "focus-window-down"; + "Super+K" = "focus-window-up"; + "Super+L" = "focus-column-right"; + + # Move windows + "Super+Shift+H" = "move-column-left"; + "Super+Shift+J" = "move-window-down"; + "Super+Shift+K" = "move-window-up"; + "Super+Shift+L" = "move-column-right"; + + # Workspaces + "Super+1" = "workspace 1"; + "Super+2" = "workspace 2"; + "Super+3" = "workspace 3"; + "Super+4" = "workspace 4"; + "Super+5" = "workspace 5"; + "Super+6" = "workspace 6"; + "Super+7" = "workspace 7"; + "Super+8" = "workspace 8"; + "Super+9" = "workspace 9"; + "Super+0" = "workspace 10"; + + "Super+Shift+1" = "move-workspace 1"; + "Super+Shift+2" = "move-workspace 2"; + "Super+Shift+3" = "move-workspace 3"; + "Super+Shift+4" = "move-workspace 4"; + "Super+Shift+5" = "move-workspace 5"; + "Super+Shift+6" = "move-workspace 6"; + "Super+Shift+7" = "move-workspace 7"; + "Super+Shift+8" = "move-workspace 8"; + "Super+Shift+9" = "move-workspace 9"; + "Super+Shift+0" = "move-workspace 10"; + + # Window management + "Super+Shift+Q" = "close-window"; + "Super+F" = "maximize-column"; + "Super+Shift+Space" = "toggle-window-floating"; + "Super+E" = "toggle-split"; + + # Media keys + "XF86MonBrightnessUp" = ''spawn "brightnessctl" "set" "+10%"''; + "XF86MonBrightnessDown" = ''spawn "brightnessctl" "set" "10%-"''; + "XF86AudioRaiseVolume" = ''spawn "wpctl" "set-volume" "-l" "1.5" "@DEFAULT_AUDIO_SINK@" "5%+"''; + "XF86AudioLowerVolume" = ''spawn "wpctl" "set-volume" "-l" "1.5" "@DEFAULT_AUDIO_SINK@" "5%-"''; + "XF86AudioMute" = ''spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"''; + "XF86AudioMicMute" = ''spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"''; + + # System + "Super+Shift+C" = "reload-config"; + }; + + window-rules = [ + { + geometry-corner-radius = { top-left = 15; top-right = 15; bottom-left = 15; bottom-right = 15; }; + clip-to-geometry = true; + } + ]; + + animations = { + workspace-switch = { + duration-ms = 200; + curve = "ease-out-cubic"; + }; + }; + + prefer-no-csd = true; + }; + }; + + home.packages = with pkgs; [ + hyprlock + ]; +} diff --git a/modules/home/niri/chernobyl/rofi.nix b/modules/home/niri/chernobyl/rofi.nix new file mode 100644 index 0000000..d4ab714 --- /dev/null +++ b/modules/home/niri/chernobyl/rofi.nix @@ -0,0 +1,100 @@ +{ pkgs, ... }: + +{ + programs.rofi = { + enable = true; + location = "center"; + cycle = true; + terminal = "${pkgs.kitty}/bin/kitty"; + modes = [ "drun" "ssh" "emoji" "calc" ]; + plugins = with pkgs; [ rofi-emoji rofi-calc ]; + theme = '' + * { + bg0: #1c182d; + bg1: #2b2135; + bg2: #3d3547; + fg0: #d0b6fd; + fg1: #b12cbf; + border-col: #b12cbf; + } + + window { + background-color: @bg0; + border: 3px solid @border-col; + border-radius: 15px; + padding: 20px; + } + + mainbox { + background-color: @bg0; + children: [ inputbar message-box listview ]; + spacing: 15px; + } + + inputbar { + background-color: @bg1; + border: 2px solid @border-col; + border-radius: 10px; + padding: 10px 15px; + children: [ prompt entry ]; + } + + prompt { + text-color: @fg1; + margin-right: 10px; + } + + entry { + background-color: transparent; + text-color: @fg0; + } + + message-box { + background-color: @bg1; + border: 2px solid @border-col; + border-radius: 10px; + padding: 10px; + text-color: @fg0; + } + + listview { + background-color: transparent; + columns: @columns; + spacing: 10px; + } + + element { + background-color: @bg1; + border: 2px solid transparent; + border-radius: 8px; + padding: 10px; + transition: all 150ms ease; + } + + element:hover { + background-color: @bg2; + border: 2px solid @border-col; + } + + element:selected { + background-color: @fg1; + text-color: @bg0; + border: 2px solid @border-col; + } + + element-icon { + size: 24px; + margin-right: 10px; + } + + element-text { + text-color: @fg0; + vertical-align: 0.5; + } + + element:selected element-text { + text-color: @bg0; + } + ''; + }; +} diff --git a/modules/home/niri/chernobyl/waybar.nix b/modules/home/niri/chernobyl/waybar.nix new file mode 100644 index 0000000..cd3bedd --- /dev/null +++ b/modules/home/niri/chernobyl/waybar.nix @@ -0,0 +1,187 @@ +{ pkgs, ... }: + +{ + programs.waybar = { + enable = true; + style = '' + * { + border: none; + border-radius: 0px; + font-family: Fira Code; + font-size: 12pt; + min-height: 0; + } + + window#waybar { + background-color: #1c182d; + color: #d0b6fd; + border-bottom: 3px solid #b12cbf; + } + + window#waybar.hidden { + opacity: 0.2; + } + + #workspaces button { + padding: 0px 8px; + color: #d0b6fd; + background-color: #2b2135; + border: 2px solid transparent; + transition: all 0.3s ease; + } + + #workspaces button:hover { + background-color: #3d3547; + border-bottom: 2px solid #b12cbf; + } + + #workspaces button.active { + background-color: #b12cbf; + color: #1c182d; + border-bottom: 2px solid #d0b6fd; + } + + #workspaces button.urgent { + background-color: #fc4649; + color: #1c182d; + } + + #clock, + #cpu, + #memory, + #battery, + #backlight, + #pulseaudio, + #network { + padding: 0px 10px; + margin: 0px 5px; + color: #d0b6fd; + background-color: #2b2135; + border-left: 2px solid #b12cbf; + } + + #clock { + border-left: none; + } + + #battery.charging { + color: #c4e881; + } + + #battery.warning { + color: #AC82E9; + } + + #battery.critical { + background-color: #fc4649; + color: #1c182d; + } + + #backlight { + color: #f3fc7b; + } + + #pulseaudio { + color: #7b91fc; + } + + #network { + color: #8F56E1; + } + + #cpu { + color: #92fcfa; + } + + #memory { + color: #c4e881; + } + ''; + settings = [ + { + "height" = 30; + "layer" = "top"; + "position" = "top"; + "modules-left" = [ "hyprland/workspaces" ]; + "modules-center" = [ "clock" ]; + "modules-right" = [ "cpu" "memory" "battery" "backlight" "pulseaudio" "network" ]; + + "hyprland/workspaces" = { + "format" = "{name}"; + "on-click" = "activate"; + "all-outputs" = true; + }; + + "clock" = { + "format" = "{:%H:%M}"; + "interval" = 60; + "tooltip-format" = "{:%a, %b %d, %Y}"; + }; + + "cpu" = { + "format" = "󰻠 {usage}%"; + "interval" = 5; + "on-click" = "${pkgs.kitty}/bin/kitty --hold top"; + }; + + "memory" = { + "format" = "󰍛 {percentage}%"; + "interval" = 5; + "on-click" = "${pkgs.kitty}/bin/kitty --hold top"; + }; + + "battery" = { + "format" = "{icon} {capacity}%"; + "format-icons" = [ + "󰂎" + "󰂏" + "󰂐" + "󰂑" + "󰂒" + "󰂓" + "󰂔" + "󰂕" + "󰂖" + "󰗖" + ]; + "interval" = 30; + "states" = { + "warning" = 30; + "critical" = 15; + }; + }; + + "backlight" = { + "format" = "{icon} {percent}%"; + "format-icons" = [ "󰌚" "󰌝" ]; + "on-scroll-down" = "brightnessctl set 5%-"; + "on-scroll-up" = "brightnessctl set 5%+"; + }; + + "pulseaudio" = { + "format" = "{icon} {volume}%"; + "format-muted" = "󰖁 0%"; + "format-icons" = { + "headphone" = "󰋋"; + "hands-free" = "󰋎"; + "headset" = "󰋎"; + "phone" = "󰏲"; + "portable" = "󰏲"; + "car" = "󰄀"; + "default" = [ "󰕿" "󰖀" "󰕾" ]; + }; + "on-click" = "${pkgs.pavucontrol}/bin/pavucontrol"; + "on-scroll-down" = "wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-"; + "on-scroll-up" = "wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"; + }; + + "network" = { + "format-wifi" = "󰖩 {signalStrength}%"; + "format-ethernet" = "󰛳"; + "format-disconnected" = "󰌙"; + "on-click" = "${pkgs.networkmanagerapplet}/bin/nm-applet"; + }; + } + ]; + }; +} diff --git a/modules/home/niri/default.nix b/modules/home/niri/default.nix new file mode 100644 index 0000000..a968626 --- /dev/null +++ b/modules/home/niri/default.nix @@ -0,0 +1,10 @@ +{ ... }: + +{ + # Niri home-manager configuration orchestrator + # Uncomment one of the rices below: + imports = [ + #./default.nix # main niri rice + ./chernobyl/default.nix # chernobyl niri rice + ]; +} diff --git a/modules/nixos/des/hyprland.nix b/modules/nixos/des/hyprland.nix deleted file mode 100644 index 7bd77b4..0000000 --- a/modules/nixos/des/hyprland.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - # Disable X11 for Wayland-only setup - services.xserver.enable = false; - - # Enable Hyprland - programs.hyprland = { - enable = true; - }; - - # XDG portal for Wayland - xdg.portal = { - enable = true; - extraPortals = with pkgs; [ xdg-desktop-portal-gtk xdg-desktop-portal-hyprland ]; - }; - - # Required Wayland packages - environment.systemPackages = with pkgs; [ - qt6.qtwayland - qt6.qttools - hyprpolkitagent - ]; - - # Provide keyboard layout vars for Wayland environments and fallback - environment.variables = { - XKB_DEFAULT_LAYOUT = "cz"; - XKB_DEFAULT_OPTIONS = "eurosign:e,caps:escape"; - }; -} \ No newline at end of file diff --git a/modules/nixos/des/niri.nix b/modules/nixos/des/niri.nix new file mode 100644 index 0000000..6679274 --- /dev/null +++ b/modules/nixos/des/niri.nix @@ -0,0 +1,29 @@ +{ config, lib, pkgs, ... }: + +{ + # Disable X11 for Wayland-only setup + services.xserver.enable = false; + + # Enable Niri + programs.niri = { + enable = true; + }; + + # XDG portal for Wayland + xdg.portal = { + enable = true; + extraPortals = with pkgs; [ xdg-desktop-portal-gtk xdg-desktop-portal-gnome ]; + }; + + # Required Wayland packages + environment.systemPackages = with pkgs; [ + qt6.qtwayland + qt6.qttools + ]; + + # Provide keyboard layout vars for Wayland environments and fallback + environment.variables = { + XKB_DEFAULT_LAYOUT = "cz"; + XKB_DEFAULT_OPTIONS = "eurosign:e,caps:escape"; + }; +} \ No newline at end of file -- cgit v1.2.3