Updated neovim, added experimental features to android, made screenshot tool opaque

This commit is contained in:
Aleksandr Lebedev 2025-01-13 13:53:29 +01:00
parent 0746c613f1
commit 01149dfa62
3 changed files with 216 additions and 205 deletions

6
flake.lock generated
View file

@ -707,11 +707,11 @@
"nvf": "nvf" "nvf": "nvf"
}, },
"locked": { "locked": {
"lastModified": 1736335130, "lastModified": 1736772619,
"narHash": "sha256-9EZtqVX0QrR3sjKYSU7Q+zczwTRq6TWei7NedCM6v5A=", "narHash": "sha256-ncUF4M5H+ZFQOGr+JLUgJk5zK01BA/wUkJKviuc8m+8=",
"owner": "kylekrein", "owner": "kylekrein",
"repo": "neovim", "repo": "neovim",
"rev": "05a67cf92bf0fe80a8ff857f5c9e8ccd0750f63a", "rev": "5f5aa73e85b041834813e2f563de4bc06c139948",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -16,6 +16,7 @@
'') '')
]; ];
nix.settings.experimental-features = ["nix-command" "flakes"];
home-manager = { home-manager = {
config = ./home.nix; config = ./home.nix;
useGlobalPkgs = true; useGlobalPkgs = true;

View file

@ -1,231 +1,241 @@
{ pkgs, lib, hwconfig, username, ... }:
let
toggle_monitors = ./toggle_monitors.sh;
wallpaper-image = ./wallpaper.jpg;
in
{ {
imports = [ pkgs,
./waybar.nix lib,
./hyprlock.nix hwconfig,
./hypridle.nix username,
]; ...
wayland.windowManager.hyprland = { }: let
enable = true; toggle_monitors = ./toggle_monitors.sh;
xwayland.enable = true; wallpaper-image = ./wallpaper.jpg;
settings = { in {
monitor = if hwconfig.hostname == "kylekrein-homepc" then [ imports = [
"DP-1,2560x1440@75,1600x0,1.6" ./waybar.nix
"DP-3,2560x1440@75,0x0,1.6" ./hyprlock.nix
] else [",highres,auto,1.6"] ./hypridle.nix
++ ];
[ wayland.windowManager.hyprland = {
"FALLBACK,1920x1080@60,auto,1" #to fix crash on hyprlock https://github.com/hyprwm/hyprlock/issues/434#issuecomment-2341710088 enable = true;
] xwayland.enable = true;
; settings = {
monitor =
if hwconfig.hostname == "kylekrein-homepc"
then [
"DP-1,2560x1440@75,1600x0,1.6"
"DP-3,2560x1440@75,0x0,1.6"
]
else
[",highres,auto,1.6"]
++ [
"FALLBACK,1920x1080@60,auto,1" #to fix crash on hyprlock https://github.com/hyprwm/hyprlock/issues/434#issuecomment-2341710088
];
xwayland = { xwayland = {
force_zero_scaling = true; force_zero_scaling = true;
}; };
exec-once = [ exec-once = [
"${if hwconfig.isLaptop then "brightnessctl set 25%" else ""}" "${
"dbus-update-activation-environment --systemd --all" if hwconfig.isLaptop
"${pkgs.waybar}/bin/waybar &" then "brightnessctl set 25%"
"${pkgs.networkmanagerapplet}/bin/nm-applet &" else ""
"${pkgs.swaynotificationcenter}/bin/swaync &" }"
"${pkgs.solaar}/bin/solaar -w hide &" "dbus-update-activation-environment --systemd --all"
#"${pkgs.hypridle}/bin/hypridle &" "${pkgs.waybar}/bin/waybar &"
"${pkgs.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1 &" #https://nixos.wiki/wiki/Polkit "${pkgs.networkmanagerapplet}/bin/nm-applet &"
"${pkgs.clipse}/bin/clipse -listen &" "${pkgs.swaynotificationcenter}/bin/swaync &"
"${pkgs.swww}/bin/swww-daemon &" "${pkgs.solaar}/bin/solaar -w hide &"
"${pkgs.swww}/bin/swww img ${wallpaper-image} &" #"${pkgs.hypridle}/bin/hypridle &"
#"${pkgs.kando}/bin/kando" "${pkgs.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1 &" #https://nixos.wiki/wiki/Polkit
]; "${pkgs.clipse}/bin/clipse -listen &"
exec = [ "${pkgs.swww}/bin/swww-daemon &"
"${pkgs.swww}/bin/swww img ${wallpaper-image} &"
#"${pkgs.kando}/bin/kando"
];
exec = [
"${pkgs.swww}/bin/swww img ${wallpaper-image} &"
];
"$mod" = "SUPER";
"$mainMod" = "$mod";
"$terminal" = "${pkgs.kitty}/bin/kitty";
"$fileManager" = "$terminal ${pkgs.yazi}/bin/yazi";
"$fileManager2" = "${pkgs.kdePackages.dolphin}/bin/dolphin";
"$browser" = "${pkgs.firefox}/bin/firefox";
"$menu" = "${pkgs.wofi}/bin/wofi --show drun";
"$clipboardManager" = "$terminal --class clipse -e 'clipse'";
"$makeRegionScreenshot" = "${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp -w 0)\" - | ${pkgs.satty}/bin/satty --early-exit --copy-command 'wl-copy' --filename '-' --initial-tool brush";
bind = [
"$mod, T, exec, $terminal"
"$mod, Q, killactive,"
"$mod, M, exit,"
"$mod, B, exec, $browser"
"$mod SHIFT, V, togglefloating,"
"$mod, C, exec, $fileManager"
"$mod SHIFT, C, exec, $fileManager2"
"$mod, F, fullscreen,"
"$mod, R, exec, $menu"
"$mod, V, exec, $clipboardManager"
#"CTRL, SPACE, global, kando:nix-hyprland"
"$mod SHIFT, I, exec, source ${toggle_monitors}"
"$mod SHIFT, O, exec, hyprctl dispatch dpms on"
# Move focus with mainMod + arrow keys
"$mod, H, movefocus, l"
"$mod, L, movefocus, r"
"$mod, K, movefocus, u"
"$mod, J, movefocus, d"
# Switch workspaces with mainMod + [0-9]
"$mainMod, 1, workspace, 1"
"$mainMod, 2, workspace, 2"
"$mainMod, 3, workspace, 3"
"$mainMod, 4, workspace, 4"
"$mainMod, 5, workspace, 5"
"$mainMod, 6, workspace, 6"
"$mainMod, 7, workspace, 7"
"$mainMod, 8, workspace, 8"
"$mainMod, 9, workspace, 9"
"$mainMod, 0, workspace, 10"
"${pkgs.swww}/bin/swww img ${wallpaper-image} &" # Move active window to a workspace with mainMod + SHIFT + [0-9]
]; "$mainMod SHIFT, 1, movetoworkspace, 1"
"$mod" = "SUPER"; "$mainMod SHIFT, 2, movetoworkspace, 2"
"$mainMod" = "$mod"; "$mainMod SHIFT, 3, movetoworkspace, 3"
"$terminal" = "${pkgs.kitty}/bin/kitty"; "$mainMod SHIFT, 4, movetoworkspace, 4"
"$fileManager" = "$terminal ${pkgs.yazi}/bin/yazi"; "$mainMod SHIFT, 5, movetoworkspace, 5"
"$fileManager2" = "${pkgs.kdePackages.dolphin}/bin/dolphin"; "$mainMod SHIFT, 6, movetoworkspace, 6"
"$browser" = "${pkgs.firefox}/bin/firefox"; "$mainMod SHIFT, 7, movetoworkspace, 7"
"$menu" = "${pkgs.wofi}/bin/wofi --show drun"; "$mainMod SHIFT, 8, movetoworkspace, 8"
"$clipboardManager" = "$terminal --class clipse -e 'clipse'"; "$mainMod SHIFT, 9, movetoworkspace, 9"
"$makeRegionScreenshot" = "${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp -w 0)\" - | ${pkgs.satty}/bin/satty --early-exit --copy-command 'wl-copy' --filename '-' --initial-tool brush"; "$mainMod SHIFT, 0, movetoworkspace, 10"
bind = [
"$mod, T, exec, $terminal"
"$mod, Q, killactive,"
"$mod, M, exit,"
"$mod, B, exec, $browser"
"$mod SHIFT, V, togglefloating,"
"$mod, C, exec, $fileManager"
"$mod SHIFT, C, exec, $fileManager2"
"$mod, F, fullscreen,"
"$mod, R, exec, $menu"
"$mod, V, exec, $clipboardManager"
#"CTRL, SPACE, global, kando:nix-hyprland"
"$mod SHIFT, I, exec, source ${toggle_monitors}"
"$mod SHIFT, O, exec, hyprctl dispatch dpms on"
# Move focus with mainMod + arrow keys
"$mod, H, movefocus, l"
"$mod, L, movefocus, r"
"$mod, K, movefocus, u"
"$mod, J, movefocus, d"
# Switch workspaces with mainMod + [0-9]
"$mainMod, 1, workspace, 1"
"$mainMod, 2, workspace, 2"
"$mainMod, 3, workspace, 3"
"$mainMod, 4, workspace, 4"
"$mainMod, 5, workspace, 5"
"$mainMod, 6, workspace, 6"
"$mainMod, 7, workspace, 7"
"$mainMod, 8, workspace, 8"
"$mainMod, 9, workspace, 9"
"$mainMod, 0, workspace, 10"
# Move active window to a workspace with mainMod + SHIFT + [0-9] # Swap Windows
"$mainMod SHIFT, 1, movetoworkspace, 1"
"$mainMod SHIFT, 2, movetoworkspace, 2"
"$mainMod SHIFT, 3, movetoworkspace, 3"
"$mainMod SHIFT, 4, movetoworkspace, 4"
"$mainMod SHIFT, 5, movetoworkspace, 5"
"$mainMod SHIFT, 6, movetoworkspace, 6"
"$mainMod SHIFT, 7, movetoworkspace, 7"
"$mainMod SHIFT, 8, movetoworkspace, 8"
"$mainMod SHIFT, 9, movetoworkspace, 9"
"$mainMod SHIFT, 0, movetoworkspace, 10"
# Swap Windows "$mainMod SHIFT, H, swapwindow, l"
"$mainMod SHIFT, L, swapwindow, r"
"$mainMod SHIFT, K, swapwindow, u"
"$mainMod SHIFT, J, swapwindow, d"
"$mainMod SHIFT, H, swapwindow, l" #Resize Windows
"$mainMod SHIFT, L, swapwindow, r" "$mainMod CTRL, H, resizeactive, -50 0"
"$mainMod SHIFT, K, swapwindow, u" "$mainMod CTRL, L, resizeactive, 50 0"
"$mainMod SHIFT, J, swapwindow, d" "$mainMod CTRL, K, resizeactive, 0 -50"
"$mainMod CTRL, J, resizeactive, 0 50"
#Resize Windows "$mainMod, P, exec, $makeRegionScreenshot"
"$mainMod CTRL, H, resizeactive, -50 0" "$mainMod ALT, L, exec, ${pkgs.hyprlock}/bin/hyprlock"
"$mainMod CTRL, L, resizeactive, 50 0" ];
"$mainMod CTRL, K, resizeactive, 0 -50"
"$mainMod CTRL, J, resizeactive, 0 50"
"$mainMod, P, exec, $makeRegionScreenshot" bindm = [
"$mainMod ALT, L, exec, ${pkgs.hyprlock}/bin/hyprlock" "$mod, mouse:272, movewindow"
]; "$mod, mouse:273, resizewindow"
];
input = {
kb_layout = "us, ru";
kb_options = "grp:caps_toggle";
bindm = [ touchpad = {
"$mod, mouse:272, movewindow" natural_scroll = true;
"$mod, mouse:273, resizewindow" };
]; };
input = { env = [
kb_layout = "us, ru"; "LIBVA_DRIVER_NAME,nvidia"
kb_options = "grp:caps_toggle"; "XDG_SESSION_TYPE,wayland"
"GBM_BACKEND,nvidia-drm"
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
"NVD_BACKEND,direct"
"XCURSOR_SIZE,24"
"HYPRCURSOR_SIZE,24"
"__GL_GSYNC_ALLOWED,1"
"QT_QPA_PLATFORM,wayland"
#"QT_QPA_PLATFORMTHEME,kde"
#"QT_STYLE_OVERRIDE,Breeze"
#"GDK_SCALE,1.6"
#"QT_SCALE_FACTOR,1.6"
touchpad = { "GSK_RENDERER,ngl" #for satty until https://github.com/NixOS/nixpkgs/issues/359069 is fixed
natural_scroll = true; ];
};
};
env = [
"LIBVA_DRIVER_NAME,nvidia"
"XDG_SESSION_TYPE,wayland"
"GBM_BACKEND,nvidia-drm"
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
"NVD_BACKEND,direct"
"XCURSOR_SIZE,24"
"HYPRCURSOR_SIZE,24"
"__GL_GSYNC_ALLOWED,1"
"QT_QPA_PLATFORM,wayland"
#"QT_QPA_PLATFORMTHEME,kde"
#"QT_STYLE_OVERRIDE,Breeze"
#"GDK_SCALE,1.6"
#"QT_SCALE_FACTOR,1.6"
"GSK_RENDERER,ngl" #for satty until https://github.com/NixOS/nixpkgs/issues/359069 is fixed cursor = {
]; no_hardware_cursors = true;
};
cursor = { general = {
no_hardware_cursors = true; gaps_in = 5;
}; gaps_out = 20;
border_size = 2;
general = { #"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
gaps_in = 5; #"col.inactive_border" = "rgba(595959aa)";
gaps_out = 20; resize_on_border = false;
border_size = 2; allow_tearing = false;
layout = "dwindle";
};
#"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg"; windowrule = [
#"col.inactive_border" = "rgba(595959aa)"; #kando
resize_on_border = false; "noblur, kando"
allow_tearing = false; "opaque, kando"
layout = "dwindle"; "size 100% 100%, kando"
"noborder, kando"
"noanim, kando"
"float, kando"
"pin, kando"
}; #blender
"opaque, blender"
windowrule = [ #screenshot editor
#kando "noblur, com.gabm.satty"
"noblur, kando" "opaque, com.gabm.satty"
"opaque, kando" ];
"size 100% 100%, kando"
"noborder, kando"
"noanim, kando"
"float, kando"
"pin, kando"
#blender windowrulev2 = [
"opaque, blender" # Ignore maximize requests from apps. You'll probably like this.
]; "suppressevent maximize, class:.*"
windowrulev2 = [ # Fix some dragging issues with XWayland
# Ignore maximize requests from apps. You'll probably like this. "nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
"suppressevent maximize, class:.*"
# Fix some dragging issues with XWayland # Fix for issues with steam
"nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0" "stayfocused, title:^()$,class:^(steam)$"
"minsize 1 1, title:^()$,class:^(steam)$"
# Fix for issues with steam #for clipboard manager
"stayfocused, title:^()$,class:^(steam)$" "float,class:(clipse)"
"minsize 1 1, title:^()$,class:^(steam)$" "size 622 652,class:(clipse)" # set the size of the window as necessary
];
#for clipboard manager decoration = {
"float,class:(clipse)" rounding = 10;
"size 622 652,class:(clipse)" # set the size of the window as necessary
]; active_opacity = 0.9;
inactive_opacity = 0.7;
decoration = { #drop_shadow = true;
rounding = 10; #shadow_range = 4;
#shadow_render_power = 3;
#"col.shadow" = "rgba(1a1a1aee)";
active_opacity = 0.9; blur = {
inactive_opacity = 0.7; enabled = true;
size = 3;
passes = 1;
#drop_shadow = true; vibrancy = 0.1696;
#shadow_range = 4; };
#shadow_render_power = 3; };
#"col.shadow" = "rgba(1a1a1aee)";
blur = { animations = {
enabled = true; enabled = true;
size = 3;
passes = 1;
vibrancy = 0.1696; bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
}; animation = [
"windows, 1, 7, myBezier"
}; "windowsOut, 1, 7, default, popin 80%"
"border, 1, 10, default"
animations = { "borderangle, 1, 8, default"
enabled = true; "fade, 1, 7, default"
"workspaces, 1, 6, default"
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05"; ];
animation = [ };
"windows, 1, 7, myBezier" };
"windowsOut, 1, 7, default, popin 80%" };
"border, 1, 10, default"
"borderangle, 1, 8, default"
"fade, 1, 7, default"
"workspaces, 1, 6, default"
];
};
};
};
} }