aboutsummaryrefslogtreecommitdiff
path: root/modules/home/niri/chernobyl
diff options
context:
space:
mode:
authorNatasha Moongrave <natasha@256phi.eu>2026-02-02 19:33:21 +0100
committerNatasha Moongrave <natasha@256phi.eu>2026-02-02 19:33:21 +0100
commit9695c1c909be4d48854690cdf47958551c2d3178 (patch)
tree71b8bd7fb405d7099bb00f31649b2b074c8c3f30 /modules/home/niri/chernobyl
parentefd43899305e40f7dc8248409cb629009ecaa8ac (diff)
removed hyprland, added niri
Diffstat (limited to 'modules/home/niri/chernobyl')
-rw-r--r--modules/home/niri/chernobyl/default.nix12
-rw-r--r--modules/home/niri/chernobyl/dunst.nix44
-rw-r--r--modules/home/niri/chernobyl/fastfetch.nix7
-rw-r--r--modules/home/niri/chernobyl/kitty.nix7
-rw-r--r--modules/home/niri/chernobyl/niri.nix126
-rw-r--r--modules/home/niri/chernobyl/rofi.nix100
-rw-r--r--modules/home/niri/chernobyl/waybar.nix187
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";
+ };
+ }
+ ];
+ };
+}