update niri config

This commit is contained in:
Leonardo Eugênio 2026-03-04 00:39:51 -03:00
parent d834ba70a0
commit 3207922b68
15 changed files with 495 additions and 58 deletions

205
user/niri/config.kdl Normal file
View file

@ -0,0 +1,205 @@
input {
keyboard {
xkb {
layout "us(colemak),br"
options "lv3:lsgt_switch,grp:shifts_toggle"
}
repeat-delay 200
repeat-rate 30
numlock
}
touchpad {
dwt
tap
natural-scroll
}
mouse {
accel-speed 0.0
accel-profile "flat"
}
}
output "AOC 24G2W1G4 ATNM6XA004804" {
mode "1920x1080@144.000"
position x=0 y=0
variable-refresh-rate
}
output "LG Electronics 25UM58G 0x01010101" {
mode "2560x1080@74.991"
scale 1.2
position x=1920 y=215
variable-refresh-rate
}
layout {
gaps 5
focus-ring {
width 2
active-color "#F44336"
inactive-color "#141414"
}
border {
off
}
}
prefer-no-csd
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
spawn-at-startup "systemctl" "--user" "import-environment" "PATH"
spawn-at-startup "systemctl" "--user" "restart" "waybar.service"
spawn-at-startup "firefox-devedition"
spawn-at-startup "thunderbird"
spawn-at-startup "discordcanary"
spawn-at-startup "Telegram"
window-rule {
match app-id="^org.nicotine_plus.Nicotine$"
open-on-workspace "6"
}
window-rule {
match app-id="^deluge$"
open-on-workspace "6"
}
window-rule {
match app-id="^com.obsproject.Studio$"
open-on-workspace "6"
}
window-rule {
match app-id="^thunderbird$"
open-on-workspace "7"
}
window-rule {
match app-id="^astroid$"
open-on-workspace "7"
}
window-rule {
match app-id=".*[Ss]team.*"
open-on-workspace "9"
}
window-rule {
match app-id=".*[Tt]elegram.*"
open-on-workspace "10"
}
window-rule {
match app-id="^vesktop$"
open-on-workspace "10"
}
window-rule {
match app-id="^Element$"
open-on-workspace "10"
}
binds {
Mod+Return { spawn "alacritty"; }
Mod+Ctrl+Return { spawn "thunar"; }
Mod+S { spawn "wlauncher"; }
Mod+P { spawn "wpass"; }
Mod+G { spawn "demoji" "--lang" "pt" "--fallback" "--copy" "--" "wdmenu"; }
Mod+C { spawn "color_picker"; }
Mod+L { spawn "swaylock" "-f"; }
Mod+K { spawn "showkeys"; }
Mod+Ctrl+V { spawn "bash" "-c" "wl-paste | tesseract -l por - - | wl-copy"; }
Mod+Alt+X { spawn "bash" "-c" "pkill wl-crosshair || exec wl-crosshair"; }
Mod+Alt+C { spawn "bash" "-c" "pkill caffeinated || exec caffeinated"; }
XF86MonBrightnessDown { spawn "brightnessctl" "--min-value=1" "set" "5%-"; }
XF86MonBrightnessUp { spawn "brightnessctl" "--min-value=1" "set" "5%+"; }
XF86AudioRaiseVolume allow-when-locked=true { spawn "volumesh" "-i" "10"; }
XF86AudioLowerVolume allow-when-locked=true { spawn "volumesh" "-d" "10"; }
XF86AudioMute allow-when-locked=true { spawn "volumesh" "-t"; }
XF86AudioMicMute allow-when-locked=true { spawn "pactl" "set-source-mute" "@DEFAULT_SOURCE@" "toggle"; }
XF86AudioPlay { spawn "playerctl" "play-pause"; }
XF86AudioPause { spawn "playerctl" "play-pause"; }
XF86AudioNext { spawn "playerctl" "next"; }
XF86AudioPrev { spawn "playerctl" "previous"; }
Print { spawn "screenshotsh" "def"; }
Shift+Print { spawn "screenshotsh" "area"; }
Ctrl+Shift+Print { spawn "screenshotsh" "area-clip"; }
Ctrl+Print { spawn "screenshotsh" "clip"; }
Mod+Shift+S { spawn "screenshotsh" "edit"; }
Mod+F { fullscreen-window; }
Mod+X { close-window; }
Mod+Left { focus-column-left; }
Mod+Down { focus-window-down; }
Mod+Up { focus-window-up; }
Mod+Right { focus-column-right; }
Mod+N { focus-column-left; }
Mod+E { focus-window-down; }
Mod+I { focus-window-up; }
Mod+O { focus-column-right; }
Mod+Ctrl+Left { move-column-left; }
Mod+Ctrl+Down { move-window-down; }
Mod+Ctrl+Up { move-window-up; }
Mod+Ctrl+Right { move-column-right; }
Mod+Ctrl+N { move-column-left; }
Mod+Ctrl+E { move-window-down; }
Mod+Ctrl+I { move-window-up; }
Mod+Ctrl+O { move-column-right; }
Mod+Alt+Left { focus-monitor-left; }
Mod+Alt+Down { focus-monitor-down; }
Mod+Alt+Up { focus-monitor-up; }
Mod+Alt+Right { focus-monitor-right; }
Mod+Alt+N { focus-monitor-left; }
Mod+Alt+E { focus-monitor-down; }
Mod+Alt+I { focus-monitor-up; }
Mod+Alt+O { focus-monitor-right; }
Mod+Alt+Ctrl+Left { move-column-to-monitor-left; }
Mod+Alt+Ctrl+Down { move-column-to-monitor-down; }
Mod+Alt+Ctrl+Up { move-column-to-monitor-up; }
Mod+Alt+Ctrl+Right { move-column-to-monitor-right; }
Mod+Alt+Ctrl+N { move-column-to-monitor-left; }
Mod+Alt+Ctrl+E { move-column-to-monitor-down; }
Mod+Alt+Ctrl+I { move-column-to-monitor-up; }
Mod+Alt+Ctrl+O { move-column-to-monitor-right; }
Mod+Y { focus-workspace-down; }
Mod+U { focus-workspace-up; }
Mod+Ctrl+Y { move-column-to-workspace-down; }
Mod+Ctrl+U { move-column-to-workspace-up; }
Mod+BracketLeft { focus-workspace-down; }
Mod+BracketRight { focus-workspace-up; }
Mod+Tab { focus-workspace-up; }
Mod+Shift+Tab { focus-workspace-down; }
Mod+1 { focus-workspace 1; }
Mod+2 { focus-workspace 2; }
Mod+3 { focus-workspace 3; }
Mod+4 { focus-workspace 4; }
Mod+5 { focus-workspace 5; }
Mod+6 { focus-workspace 6; }
Mod+7 { focus-workspace 7; }
Mod+8 { focus-workspace 8; }
Mod+9 { focus-workspace 9; }
Mod+0 { focus-workspace 10; }
Mod+Shift+1 { move-column-to-workspace 1; }
Mod+Shift+2 { move-column-to-workspace 2; }
Mod+Shift+3 { move-column-to-workspace 3; }
Mod+Shift+4 { move-column-to-workspace 4; }
Mod+Shift+5 { move-column-to-workspace 5; }
Mod+Shift+6 { move-column-to-workspace 6; }
Mod+Shift+7 { move-column-to-workspace 7; }
Mod+Shift+8 { move-column-to-workspace 8; }
Mod+Shift+9 { move-column-to-workspace 9; }
Mod+Shift+0 { move-column-to-workspace 10; }
}

90
user/niri/default.nix Normal file
View file

@ -0,0 +1,90 @@
{
config,
pkgs,
lib,
osConfig,
...
}:
let
inherit (config.my) font theme;
monolithAutostart = lib.optionalString ((osConfig.networking.hostName or "") == "monolith") ''
spawn-at-startup "steam"
spawn-at-startup "obs" "--startreplaybuffer" "--disable-shutdown-check"
spawn-at-startup "deluge-gtk"
spawn-at-startup "nicotine"
'';
in
{
imports = [
../sway/kanshi.nix
../sway/mako.nix
../sway/swayidle.nix
../sway/swaylock.nix
../sway/gammastep.nix
./theme.nix
];
config = lib.mkIf (config.my.niri.enable or false) {
my.mako.enable = true;
my.kanshi.enable = true;
my.swayidle.enable = true;
my.swaylock.enable = true;
my.mpd.enable = true;
my.zathura.enable = true;
my.satty.enable = true;
my.waybar.enable = true;
my.gammastep.enable = true;
xdg.configFile."niri/config.kdl".text = ''
${builtins.readFile ./config.kdl}
${monolithAutostart}
'';
services.kdeconnect = {
enable = true;
indicator = true;
};
services.gpg-agent.pinentry.package = pkgs.pinentry-all;
xdg.configFile."OpenTabletDriver/settings.json" = {
force = true;
source = ../sway/open-tablet-driver.json;
};
home.packages = with pkgs; [
swaybg
swaylock
wdisplays
dhist
demoji
bmenu
wdmenu
wlauncher
volumesh
brightnessctl
showkeys
pamixer
libnotify
xdg-utils
screenshotsh
color_picker
wf-recorder
wl-clipboard
wtype
wl-crosshair
caffeinated
grim
satty
xdg-user-dirs
(tesseract5.override {
enableLanguages = [
"eng"
"por"
];
})
];
};
}

94
user/niri/theme.nix Normal file
View file

@ -0,0 +1,94 @@
{
config,
pkgs,
lib,
...
}:
let
inherit (config.my) theme font desktop;
inherit (theme)
color
gtk_theme
icon_theme
cursor_theme
;
in
lib.mkIf (desktop == "niri") {
home.pointerCursor = {
name = cursor_theme;
size = 24;
package = pkgs.bibata-cursors;
gtk.enable = true;
};
gtk = {
enable = true;
font = {
name = font.interface;
size = font.size.small;
};
theme = {
name = gtk_theme;
package = pkgs.orchis_theme_compact;
};
iconTheme = {
name = icon_theme;
package = pkgs.papirus_red;
};
}
// (
let
shared.extraConfig = {
gtk-decoration-layout = "menu:";
};
in
{
gtk4 = shared;
gtk3 = shared;
}
);
xdg.configFile."gtk-3.0/settings.ini".force = true;
xdg.configFile."gtk-4.0/settings.ini".force = true;
qt = {
enable = true;
platformTheme.name = "gtk3";
style.name = "kvantum";
};
dconf.settings = {
"org/gnome/desktop/interface" = {
gtk-theme = gtk_theme;
icon-theme = icon_theme;
cursor-theme = cursor_theme;
color-scheme = "prefer-${color.type}";
};
"org/gnome/desktop/wm/preferences" = {
button-layout = "menu:";
};
};
services.xsettingsd = {
enable = true;
settings = {
"Gtk/FontName" = "${font.interface} ${toString font.size.small}";
"Net/ThemeName" = "${gtk_theme}";
"Net/IconThemeName" = "${icon_theme}";
"Gtk/CursorThemeName" = "${cursor_theme}";
"Gtk/CursorThemeSize" = 24;
"Net/SoundThemeName" = "freedesktop";
};
};
home.packages = with pkgs; [
pkgs.bibata-cursors
pkgs.orchis_theme_compact
pkgs.papirus_red
liberation_ttf
hack-font
font-awesome_5
fira-code
material-wifi-icons
];
}