aboutsummaryrefslogtreecommitdiff
path: root/home-manager
diff options
context:
space:
mode:
Diffstat (limited to 'home-manager')
-rw-r--r--home-manager/homeModules/niri.nix203
-rw-r--r--home-manager/laptop.nix3
2 files changed, 151 insertions, 55 deletions
diff --git a/home-manager/homeModules/niri.nix b/home-manager/homeModules/niri.nix
index 81a3352..27f6a08 100644
--- a/home-manager/homeModules/niri.nix
+++ b/home-manager/homeModules/niri.nix
@@ -1,19 +1,65 @@
-{ pkgs, config, lib, inputs, ... }:
-
{
+ pkgs,
+ config,
+ lib,
+ inputs,
+ ...
+}:
+with lib; let
+ cfg = config.niri;
+in {
imports = [
- ./fuzzel.nix
+ ./waybar.nix
+ ./rofi.nix
+ ./mako.nix
inputs.niri.homeModules.niri
+ inputs.niri.homeModules.stylix
];
-
+
options = {
- niri.enable = lib.mkEnableOption "enable niri config";
+ niri = {
+ enable = mkEnableOption "enable niri config";
+ };
};
-
- config = lib.mkIf config.niri.enable {
- fuzzel.enable = true;
-
+
+ config = mkIf cfg.enable {
+ waybar = {
+ enable = true;
+ windowManager = "niri";
+ workspaceIcons = {
+ # "1" = "α";
+ # "2" = "β";
+ # "3" = "γ";
+ # "4" = "δ";
+ # "5" = "ε";
+ # urgent = "λ";
+ # default = "ω";
+ "internet" = "";
+ "discord" = "";
+ "chat" = "<b></b>";
+
+ "active" = "";
+ "default" = "";
+ };
+ };
+ rofi.enable = true;
+ mako.enable = true;
+
+ home.packages = with pkgs; [
+ pkgs.xwayland-satellite
+ swww
+ brightnessctl
+ grimblast
+ polkit_gnome
+ kdePackages.xwaylandvideobridge
+ wl-clipboard
+ libnotify
+ ];
+
+ stylix.targets.niri.enable = true;
programs.niri = {
+ enable = true;
+
settings = {
input = {
keyboard.xkb = {
@@ -22,98 +68,140 @@
};
touchpad = {
tap = true;
- dwt = true;
+ dwt = false;
dwtp = true;
natural-scroll = true;
};
- warp-mouse-to-focus = true;
- focus-follows-mouse = true;
+ warp-mouse-to-focus.enable = true;
+ focus-follows-mouse = {
+ enable = true;
+ max-scroll-amount = "25%";
+ };
};
+
cursor = {
theme = "Bibata-Modern-Ice";
size = 24;
};
+
layout = {
gaps = 16;
center-focused-column = "never";
preset-column-widths = [
- { proportion = 0.33333; }
- { proportion = 0.5; }
- { proportion = 0.66667; }
+ {proportion = 0.33333;}
+ {proportion = 0.5;}
+ {proportion = 0.66667;}
];
border = {
enable = true;
};
focus-ring.enable = false;
};
+
+ animations = {
+ workspace-switch.enable = false;
+ };
+
+ # workspaces = {
+ # internet = {};
+ # code = {};
+ # };
+
+ window-rules = [
+ {
+ matches = [
+ {
+ app-id = "steam";
+ title = ''r#"^notificationtoasts_\d+_desktop$"#'';
+ }
+ ];
+ default-floating-position = {
+ x = 10;
+ y = 10;
+ relative-to = "bottom-right";
+ };
+ }
+ ];
+
+ spawn-at-startup = [
+ {argv = ["waybar"];}
+ {argv = ["swww-daemon"];}
+ {argv = ["mako"];}
+ ];
+
prefer-no-csd = true;
- binds = with config.lib.niri.actions; {
+
+ binds = with config.lib.niri.actions; let
+ scripts = "${./attachments/hypr-scripts}";
+ in {
"Mod+Q".action.spawn = "alacritty";
- "Mod+D".action.spawn = [ "rofi --show drun" ];
- "Mod+B".action.spawn = [ "brave" "--enable-features=TouchpadOverscrollHistoryNavigation" ];
- "Mod+E".action.spawn = [ "emacsclient" "-c" "-a" "emacs" ];
- "Super+Alt+L".action.spawn = "swaylock";
- "XF86AudioRaiseVolume".action.spawn = [ "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05+" ];
- "XF86AudioLowerVolume".action.spawn = [ "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05-" ];
- "XF86AudioMute".action.spawn = [ "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle" ];
- "XF86AudioMicMute".action.spawn = [ "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle" ];
- "XF86MonBrightnessUp".action.spawn = [ "brightnessctl" "s" "+5%" ];
- "XF86MonBrightnessDown".action.spawn = [ "brightnessctl" "s" "5%-" ];
+ "Mod+D".action.spawn = ["sh" "-c" "pkill rofi || rofi -show-icons -show drun"];
+ "Mod+B".action.spawn = "zen-beta";
+ "Mod+E".action.spawn = ["emacsclient" "-c" "-a" "emacs"];
+ "Mod+T".action.spawn = "Telegram";
+
+ "XF86AudioRaiseVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05+"];
+ "XF86AudioLowerVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05-"];
+ "XF86AudioMute".action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"];
+ "XF86AudioMicMute".action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"];
+
+ "XF86MonBrightnessUp".action.spawn = ["brightnessctl" "s" "+5%"];
+ "XF86MonBrightnessDown".action.spawn = ["brightnessctl" "s" "5%-"];
+
+ "XF86Favorites".action.spawn = "${scripts}/toggle-vpn.sh";
+ "XF86TouchpadToggle".action.spawn = "${scripts}/switch-sink.py";
+
"Mod+Shift+Slash".action = show-hotkey-overlay;
+
+ "Super+Alt+L".action.spawn = "swaylock";
+ "Mod+Shift+E".action = quit;
+ "Mod+Shift+P".action = power-off-monitors;
"Mod+Shift+Q".action = close-window;
- "Mod+Left".action = focus-column-left;
- "Mod+Down".action = focus-window-down;
- "Mod+Up".action = focus-window-up;
- "Mod+Right".action = focus-column-right;
+
"Mod+H".action = focus-column-left;
"Mod+J".action = focus-window-down;
"Mod+K".action = focus-window-up;
"Mod+L".action = focus-column-right;
- "Mod+Shift+Left".action = move-column-left;
- "Mod+Shift+Down".action = move-window-down;
- "Mod+Shift+Up".action = move-window-up;
- "Mod+Shift+Right".action = move-column-right;
+
"Mod+Shift+H".action = move-column-left;
"Mod+Shift+J".action = move-window-down;
"Mod+Shift+K".action = move-window-up;
"Mod+Shift+L".action = move-column-right;
+
"Mod+Home".action = focus-column-first;
"Mod+End".action = focus-column-last;
+
"Mod+Ctrl+Home".action = move-column-to-first;
"Mod+Ctrl+End".action = move-column-to-last;
- "Mod+Ctrl+Left".action = focus-monitor-left;
- "Mod+Ctrl+Down".action = focus-monitor-down;
- "Mod+Ctrl+Up".action = focus-monitor-up;
- "Mod+Ctrl+Right".action = focus-monitor-right;
+
"Mod+Ctrl+H".action = focus-monitor-left;
"Mod+Ctrl+J".action = focus-monitor-down;
"Mod+Ctrl+K".action = focus-monitor-up;
"Mod+Ctrl+L".action = focus-monitor-right;
- "Mod+Shift+Ctrl+Left".action = move-column-to-monitor-left;
- "Mod+Shift+Ctrl+Down".action = move-column-to-monitor-down;
- "Mod+Shift+Ctrl+Up".action = move-column-to-monitor-up;
- "Mod+Shift+Ctrl+Right".action = move-column-to-monitor-right;
+
"Mod+Shift+Ctrl+H".action = move-column-to-monitor-left;
"Mod+Shift+Ctrl+J".action = move-column-to-monitor-down;
"Mod+Shift+Ctrl+K".action = move-column-to-monitor-up;
"Mod+Shift+Ctrl+L".action = move-column-to-monitor-right;
- "Mod+Page_Down".action = focus-workspace-down;
- "Mod+Page_Up".action = focus-workspace-up;
+
"Mod+U".action = focus-workspace-down;
"Mod+I".action = focus-workspace-up;
- "Mod+Ctrl+Page_Down".action = move-column-to-workspace-down;
- "Mod+Ctrl+Page_Up".action = move-column-to-workspace-up;
+
"Mod+Ctrl+U".action = move-column-to-workspace-down;
"Mod+Ctrl+I".action = move-column-to-workspace-up;
- "Mod+Shift+Page_Down".action = move-workspace-down;
- "Mod+Shift+Page_Up".action = move-workspace-up;
+
"Mod+Shift+U".action = move-workspace-down;
+ "Mod+Shift+I".action = move-workspace-down;
+
"Mod+WheelScrollRight".action = focus-column-right;
"Mod+WheelScrollLeft".action = focus-column-left;
+
"Mod+Ctrl+WheelScrollRight".action = move-column-right;
"Mod+Ctrl+WheelScrollLeft".action = move-column-left;
+
"Mod+Shift+WheelScrollDown".action = focus-column-right;
"Mod+Shift+WheelScrollUp".action = focus-column-left;
+
"Mod+Ctrl+Shift+WheelScrollDown".action = move-column-right;
"Mod+Ctrl+Shift+WheelScrollUp".action = move-column-left;
@@ -126,6 +214,7 @@
"Mod+7".action.focus-workspace = 7;
"Mod+8".action.focus-workspace = 8;
"Mod+9".action.focus-workspace = 9;
+
"Mod+Shift+1".action.move-column-to-workspace = 1;
"Mod+Shift+2".action.move-column-to-workspace = 2;
"Mod+Shift+3".action.move-column-to-workspace = 3;
@@ -135,23 +224,29 @@
"Mod+Shift+7".action.move-column-to-workspace = 7;
"Mod+Shift+8".action.move-column-to-workspace = 8;
"Mod+Shift+9".action.move-column-to-workspace = 9;
+
"Mod+Comma".action = consume-window-into-column;
"Mod+Period".action = expel-window-from-column;
"Mod+BracketLeft".action = consume-or-expel-window-left;
"Mod+BracketRight".action = consume-or-expel-window-right;
- "Mod+R".action = switch-preset-column-width;
+
"Mod+M".action = maximize-column;
"Mod+F".action = fullscreen-window;
"Mod+C".action = center-column;
+
+ "Mod+R".action = switch-preset-column-width;
"Mod+Minus".action.set-column-width = "-10%";
"Mod+Equal".action.set-column-width = "+10%";
"Mod+Shift+Minus".action.set-window-height = "-10%";
"Mod+Shift+Equal".action.set-window-height = "+10%";
- "Print".action = screenshot;
- "Ctrl+Print".action = screenshot-screen;
- "Alt+Print".action = screenshot-window;
- "Mod+Shift+E".action = quit;
- "Mod+Shift+P".action = power-off-monitors;
+
+ "Mod+V".action = toggle-window-floating;
+
+ "Print".action.screenshot.show-pointer = true;
+ "Shift+Print".action.screenshot-screen.write-to-disk = true;
+ "Ctrl+Shift+Print".action.screenshot-screen.write-to-disk = false;
+ "Alt+Print".action.screenshot-window.write-to-disk = true;
+ "Ctrl+Alt+Print".action.screenshot-window.write-to-disk = false;
};
};
};
diff --git a/home-manager/laptop.nix b/home-manager/laptop.nix
index 67b245a..11c6c5b 100644
--- a/home-manager/laptop.nix
+++ b/home-manager/laptop.nix
@@ -1,8 +1,9 @@
{
imports = [
+ ./homeModules/niri.nix
./homeModules/hyprland.nix
./general.nix
];
- hyprland.enable = true;
+ niri.enable = true;
}