{ config, lib, pkgs, ... }: let cfg = config.hm.env.niri; in { options.hm.env.niri.enable = lib.mkEnableOption "niri hm"; config = lib.mkIf cfg.enable { hm.env = { awww.enable = true; fuzzel.enable = true; screenshot.enable = true; swayidle.enable = true; swaylock.enable = true; }; programs.niri.settings = { debug.disable-cursor-plane = []; binds = import ./binds.nix { inherit config lib pkgs; }; prefer-no-csd = true; hotkey-overlay.skip-at-startup = true; input = { mouse = { accel-profile = "flat"; accel-speed = -0.6; middle-emulation = true; scroll-factor = 1.5; }; focus-follows-mouse = { enable = true; max-scroll-amount = "10%"; }; mod-key = "Alt"; keyboard = { xkb.layout = "pl"; repeat-delay = 300; repeat-rate = 60; }; power-key-handling.enable = false; }; outputs = { "DP-1" = { focus-at-startup = true; # backdrop-color = ""; variable-refresh-rate = "on-demand"; mode = { width = 2560; height = 1440; }; }; }; cursor = { hide-when-typing = true; size = 48; theme = "Hoshimi_Miyabi"; }; layout = { empty-workspace-above-first = true; border = { width = 2; # active = ; }; focus-ring = { width = 2; # active = ; }; preset-column-widths = [ { proportion = 1. / 3.; } { proportion = 1. / 2.; } { proportion = 2. / 3.; } ]; preset-window-heights = [ { proportion = 1. / 3.; } { proportion = 1. / 2.; } { proportion = 2. / 3.; } ]; default-column-width.proportion = 0.5; tab-indicator = { gaps-between-tabs = 3; position = "top"; }; }; gestures.hot-corners.enable = false; spawn-at-startup = [ { command = [ "${lib.getExe pkgs.xwayland-satellite}" ]; } { command = [ "awww-daemon" ]; } { command = [ "waybar" ]; } { command = [ "obs" "--disable-missing-files-check" "--startreplaybuffer" ]; } ]; }; home.packages = with pkgs; [ qalculate-gtk ]; }; }