feat: updated niri

This commit is contained in:
Nick 2025-05-16 20:03:42 -05:00
parent 2b91a4d407
commit ee42e007a7
13 changed files with 562 additions and 488 deletions

View file

@ -0,0 +1,88 @@
{
config,
flake,
osConfig,
workspaceStrings,
...
}:
let
niri = config.lib.niri.actions;
inherit (flake.config.machines) devices;
mars = devices.mars.name;
deimos = devices.deimos.name;
host = osConfig.networking.hostName;
deviceLogic =
d: m:
if host == deimos then
"${d}"
else if host == mars then
"${m}"
else
"";
in
{
binds = {
"Super+z".action = niri.spawn "obsidian";
"Super+l".action = niri.spawn "slack";
"Super+h".action = niri.spawn "feishin";
"Super+g".action = niri.spawn "scrcpy";
"Super+k".action = niri.spawn "ghostty -e nu -e y";
"Super+s".action = niri.spawn "steam";
"Super+r".action = niri.spawn "ghostty -e zellij a dotfiles";
"Super+n".action = niri.spawn "signal-desktop";
"Super+t".action = niri.spawn "zeditor";
"Super+b".action = niri.spawn "floorp";
"Super+x".action = niri.spawn "freetube";
"Super+v".action = niri.spawn "vesktop";
"Super+m".action = niri.spawn "element-desktop";
"Super+d".action = niri.spawn "ghostty";
"Super+p".action = niri.spawn "bitwarden";
"Super+Space".action = niri.spawn "fuzzel";
"Super+Tab".action = niri.close-window;
"Super+u".action = niri.maximize-column;
"Super+comma".action = niri.focus-workspace-down;
"Super+period".action = niri.focus-workspace-up;
"Super+f".action = niri.swap-window-left;
"Super+o".action = niri.swap-window-right;
"Super+w".action = niri.switch-preset-column-width;
# "Ctrl+Alt+1".action = niri.move-window-to-workspace workspaceStrings.workspace0
# "Ctrl+Alt+2".action = niri.move-window-to-workspace workspaceStrings.workspace1
# "Ctrl+Alt+3".action = niri.move-window-to-workspace workspaceStrings.workspace2
# "Ctrl+Alt+4".action = niri.move-window-to-workspace workspaceStrings.workspace3
# "Ctrl+Alt+5".action = niri.move-window-to-workspace workspaceStrings.workspace4
# "Super+Enter".action = niri.toggle-overview;
# "Super+1".action = niri.focus-workspace workspaceStrings.workspace0;
# "Super+2".action = niri.focus-workspace workspaceStrings.workspace1;
# "Super+3".action = niri.focus-workspace workspaceStrings.workspace2;
# "Super+4".action = niri.focus-workspace workspaceStrings.workspace3;
# "Super+5".action = niri.focus-workspace workspaceStrings.workspace4;
"Super+1".action = niri.focus-column-or-monitor-left;
"Super+2".action = niri.focus-window-or-workspace-up;
"Super+3".action = niri.focus-window-or-workspace-down;
"Super+4".action = niri.focus-column-or-monitor-right;
"Super+Shift+t".action = niri.spawn "ghostty";
"Super+Shift+s".action = niri.spawn "flameshot gui";
"Super+Shift+period".action = niri.spawn "emote";
"Super+Shift+Tab".action = niri.fullscreen-window;
"Ctrl+Alt+c".action = niri.move-column-left;
"Ctrl+Alt+i".action = niri.move-column-right;
"Ctrl+Alt+f".action = niri.set-column-width "-10%";
"Ctrl+Alt+o".action = niri.set-column-width "+10%";
"XF86MonBrightnessUp".action = niri.spawn "brightnessctl -d ${deviceLogic "amdgpu_bl1" ""} s +10%";
"XF86MonBrightnessDown".action =
niri.spawn "brightnessctl -d ${deviceLogic "amdgpu_bl1" ""} s 10%-";
"XF86AudioRaiseVolume".action = niri.spawn "pactl set-sink-volume @DEFAULT_SINK@ +5%";
"XF86AudioLowerVolume".action = niri.spawn "pactl set-sink-volume @DEFAULT_SINK@ -5%";
"XF86AudioMute".action = niri.spawn "pactl set-sink-mute @DEFAULT_SINK@ toggle";
};
}

View file

@ -0,0 +1,29 @@
{ colourHelpers, ... }:
{
layout = {
default-column-width = {
proportion = 1.;
};
preset-column-widths = [
{ proportion = 1. / 3.; }
{ proportion = 1. / 2.; }
{ proportion = 2. / 3.; }
{ proportion = 1.; }
];
border = {
enable = true;
width = 2;
active.color = colourHelpers.makeColour colourHelpers.el.base0E;
inactive.color = colourHelpers.makeColour colourHelpers.el.base02;
};
gaps = 5;
shadow = {
enable = true;
color = colourHelpers.el.base11;
draw-behind-window = true;
offset.x = 0;
offset.y = 0;
spread = 3;
};
};
}

View file

@ -0,0 +1,14 @@
{
environment = {
DISPLAY = ":0";
};
prefer-no-csd = true;
hotkey-overlay.skip-at-startup = true;
input = {
focus-follows-mouse.enable = true;
mouse.accel-profile = "flat";
};
}

View file

@ -0,0 +1,39 @@
{
colourHelpers,
flake,
osConfig,
...
}:
let
inherit (flake.config.machines) devices;
mars = devices.mars.name;
deimos = devices.deimos.name;
host = osConfig.networking.hostName;
deviceLogic =
d: m:
if host == deimos then
d
else if host == mars then
m
else
null;
in
{
outputs = {
"${deviceLogic "eDP-1" "DP-1"}" = {
background-color = colourHelpers.makeColour colourHelpers.el.base02;
scale = 1.0;
mode = {
width = deviceLogic 1920 2560;
height = 1080;
refresh = deviceLogic 59.94 199.92;
};
position = {
x = 0;
y = 0;
};
};
};
}

View file

@ -0,0 +1,25 @@
{ lib, pkgs, ... }:
{
spawn-at-startup = [
{
command = [
"${lib.getExe pkgs.xwayland-satellite}"
];
}
{ command = [ "wl-clipboard" ]; }
{ command = [ "wpaperd" ]; }
{ command = [ "gammastep" ]; }
{ command = [ "dunst" ]; }
{ command = [ "playerctld" ]; }
{ command = [ "waybar" ]; }
{ command = [ "nm-applet" ]; }
{ command = [ "blueman-applet" ]; }
{ command = [ "rfkill block bluetooth" ]; }
{ command = [ "rfkill unblock bluetooth" ]; }
{ command = [ "easyeffects -r" ]; }
{ command = [ "vesktop" ]; }
{ command = [ "signal" ]; }
{ command = [ "feishin" ]; }
{ command = [ "zeditor" ]; }
];
}

View file

@ -0,0 +1,55 @@
{ flake, ... }:
let
inherit (flake.config.aesthetics.themes) cursor;
in
{
cursor = {
size = cursor.size;
theme = "catppuccin-macchiato-dark-cursors";
};
animations = {
enable = true;
config-notification-open-close = {
spring = {
damping-ratio = 0.600000;
epsilon = 0.001000;
stiffness = 1000;
};
};
horizontal-view-movement = {
spring = {
damping-ratio = 1.000000;
epsilon = 0.000100;
stiffness = 800;
};
};
window-close = {
easing = {
curve = "ease-out-quad";
duration-ms = 150;
};
};
window-open = {
spring = {
damping-ratio = 1.000000;
epsilon = 0.000100;
stiffness = 800;
};
};
window-resize = {
spring = {
damping-ratio = 1.000000;
epsilon = 0.000100;
stiffness = 800;
};
};
workspace-switch = {
spring = {
damping-ratio = 1.000000;
epsilon = 0.000100;
stiffness = 1000;
};
};
};
}

View file

@ -0,0 +1,126 @@
{ workspaceStrings, ... }:
{
window-rules = [
{
open-focused = true;
}
{
matches =
let
windowMatch = c: {
app-id = c;
is-floating = true;
is-focused = true;
};
appIDs = [
".blueman-manager-wrapped"
"org.gnome.Calculator"
"com.github.wwmm.easyeffects"
"emote"
"mpv"
"vlc"
"org.nomacs.ImageLounge"
"flameshot"
"^.protonvpn-app-wrapped$"
"^Picture-in-Picture$"
"^Discord Popout$"
"^Enter name of file to save to$"
"^File Upload$"
".scrcpy-wrapped"
"^Battle.net$"
];
in
builtins.map windowMatch appIDs;
}
{
matches =
let
windowMatch = c: {
app-id = c;
};
appIDs = [
"floop"
"org.kde.kdenlive"
"krita"
"mpv"
"vlc"
"Brave-browser"
"org.kde.okular"
];
in
builtins.map windowMatch appIDs;
opacity = 1.0;
}
{
matches =
let
windowMatch = c: {
app-id = c;
};
appIDs = [
"signal"
"vesktop"
];
in
builtins.map windowMatch appIDs;
open-on-workspace = workspaceStrings.workspace0;
}
{
matches =
let
windowMatch = c: {
app-id = c;
};
appIDs = [
"code"
"zeditor"
];
in
builtins.map windowMatch appIDs;
open-on-workspace = workspaceStrings.workspace1;
}
{
matches =
let
windowMatch = c: {
app-id = c;
};
appIDs = [
"steam"
"org.kde.kdenlive"
];
in
builtins.map windowMatch appIDs;
open-on-workspace = workspaceStrings.workspace2;
}
{
matches =
let
windowMatch = c: {
app-id = c;
};
appIDs = [
"feishin"
".scrcpy-wrapped"
];
in
builtins.map windowMatch appIDs;
open-on-workspace = workspaceStrings.workspace3;
}
{
# opacity = 0.90;
clip-to-geometry = true;
focus-ring.enable = false;
geometry-corner-radius =
let
radius = 10.0;
in
{
top-left = radius;
top-right = radius;
bottom-left = radius;
bottom-right = radius;
};
}
];
}

View file

@ -0,0 +1,20 @@
{ workspaceStrings, ... }:
{
workspaces = {
${workspaceStrings.workspace0} = {
name = workspaceStrings.workspace0;
};
${workspaceStrings.workspace1} = {
name = workspaceStrings.workspace1;
};
${workspaceStrings.workspace2} = {
name = workspaceStrings.workspace2;
};
${workspaceStrings.workspace3} = {
name = workspaceStrings.workspace3;
};
${workspaceStrings.workspace4} = {
name = workspaceStrings.workspace4;
};
};
}