diff options
| author | Natasha Moongrave <natasha@256phi.eu> | 2026-02-02 19:33:21 +0100 |
|---|---|---|
| committer | Natasha Moongrave <natasha@256phi.eu> | 2026-02-02 19:33:21 +0100 |
| commit | 9695c1c909be4d48854690cdf47958551c2d3178 (patch) | |
| tree | 71b8bd7fb405d7099bb00f31649b2b074c8c3f30 /modules/home/niri/chernobyl | |
| parent | efd43899305e40f7dc8248409cb629009ecaa8ac (diff) | |
removed hyprland, added niri
Diffstat (limited to 'modules/home/niri/chernobyl')
| -rw-r--r-- | modules/home/niri/chernobyl/default.nix | 12 | ||||
| -rw-r--r-- | modules/home/niri/chernobyl/dunst.nix | 44 | ||||
| -rw-r--r-- | modules/home/niri/chernobyl/fastfetch.nix | 7 | ||||
| -rw-r--r-- | modules/home/niri/chernobyl/kitty.nix | 7 | ||||
| -rw-r--r-- | modules/home/niri/chernobyl/niri.nix | 126 | ||||
| -rw-r--r-- | modules/home/niri/chernobyl/rofi.nix | 100 | ||||
| -rw-r--r-- | modules/home/niri/chernobyl/waybar.nix | 187 |
7 files changed, 483 insertions, 0 deletions
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"; + }; + } + ]; + }; +} |
