295 lines
8.1 KiB
Nix
295 lines
8.1 KiB
Nix
{
|
|
host,
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
inputs,
|
|
myhostname,
|
|
...
|
|
}:
|
|
let
|
|
in
|
|
{
|
|
environment.systemPackages = with pkgs; [
|
|
swww
|
|
swappy
|
|
ydotool
|
|
wl-clipboard
|
|
hyprpolkitagent
|
|
hyprland-qtutils
|
|
waypipe
|
|
wmenu
|
|
];
|
|
|
|
services = {
|
|
greetd = {
|
|
enable = true;
|
|
settings = {
|
|
default_session = {
|
|
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd hyprland";
|
|
user = "greeter";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
nix.settings = {
|
|
substituters = [ "https://hyprland.cachix.org" ];
|
|
trusted-substituters = [ "https://hyprland.cachix.org" ];
|
|
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
|
|
};
|
|
programs.hyprland = {
|
|
enable = true;
|
|
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
|
portalPackage =
|
|
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
|
};
|
|
home-manager.users.fw =
|
|
{ pkgs, ... }:
|
|
{
|
|
programs = {
|
|
hyprlock = {
|
|
enable = true;
|
|
};
|
|
rofi = {
|
|
enable = true;
|
|
font = lib.mkForce "ComicShannsMono Nerd Font 18";
|
|
};
|
|
};
|
|
services = {
|
|
cliphist = {
|
|
enable = true;
|
|
};
|
|
hypridle = {
|
|
enable = true;
|
|
settings = {
|
|
general = {
|
|
after_sleep_cmd = "hyprctl dispatch dpms on";
|
|
ignore_dbus_inhibit = false;
|
|
lock_cmd = "hyprlock";
|
|
};
|
|
|
|
listener = [
|
|
{
|
|
timeout = 900;
|
|
on-timeout = "hyprlock";
|
|
}
|
|
{
|
|
timeout = 1200;
|
|
on-timeout = "hyprctl dispatch dpms off";
|
|
on-resume = "hyprctl dispatch dpms on";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
hyprpaper = {
|
|
enable = true;
|
|
settings = {
|
|
ipc = "on";
|
|
splash = false;
|
|
splash_offset = 2.0;
|
|
|
|
preload = [ "/home/fw/nix/wallpapers/blue.png" ];
|
|
|
|
wallpaper = [
|
|
"DP-1,/home/fw/nix/wallpapers/blue.png"
|
|
"eDP-1,/home/fw/nix/wallpapers/blue.png"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
wayland.windowManager.hyprland = {
|
|
enable = true;
|
|
xwayland = {
|
|
enable = true;
|
|
};
|
|
|
|
settings = {
|
|
"$terminal" = "kitty";
|
|
"$mod" = "ALT";
|
|
|
|
monitor = [
|
|
"desc: ASUSTek COMPUTER INC ASUS PA279CV S4LMTF159462 (DP-1), 3840x2160@60, 0x0, 1.5, transform, 1"
|
|
"desc: ASUSTek COMPUTER INC VG279 JBLMQS021792 (DP-1), 1920x1080@144, 0x0, 1"
|
|
"eDP-1, 1920x1080@60, 0x0, 1, transform, 2"
|
|
",prefered,auto,1"
|
|
];
|
|
|
|
xwayland = {
|
|
force_zero_scaling = true;
|
|
};
|
|
|
|
general = {
|
|
gaps_in = 15;
|
|
gaps_out = 15;
|
|
border_size = 2;
|
|
layout = "dwindle";
|
|
allow_tearing = true;
|
|
};
|
|
|
|
input = {
|
|
kb_layout = "se";
|
|
kb_options = [
|
|
"caps:escape"
|
|
];
|
|
|
|
follow_mouse = true;
|
|
touchpad = {
|
|
natural_scroll = true;
|
|
};
|
|
accel_profile = "flat";
|
|
sensitivity = 0;
|
|
};
|
|
|
|
decoration = {
|
|
rounding = 0;
|
|
active_opacity = 0.9;
|
|
inactive_opacity = 0.8;
|
|
fullscreen_opacity = 0.9;
|
|
|
|
blur = {
|
|
enabled = true;
|
|
xray = true;
|
|
special = false;
|
|
new_optimizations = true;
|
|
size = 14;
|
|
passes = 4;
|
|
brightness = 1;
|
|
noise = 0.01;
|
|
contrast = 1;
|
|
popups = true;
|
|
popups_ignorealpha = 0.6;
|
|
ignore_opacity = false;
|
|
};
|
|
};
|
|
|
|
animations = {
|
|
enabled = true;
|
|
bezier = [
|
|
"easeOutQuint,0.23,1,0.32,1"
|
|
"easeInOutCubic,0.65,0.05,0.36,1"
|
|
"linear,0,0,1,1"
|
|
"almostLinear,0.5,0.5,0.75,1.0#fffff"
|
|
"quick,0.15,0,0.1,1"
|
|
];
|
|
animation = [
|
|
"global, 1, 10, default"
|
|
"border, 1, 5.39, easeOutQuint"
|
|
"windows, 1, 4.79, easeOutQuint"
|
|
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
|
|
"windowsOut, 1, 1.49, linear, popin 87%"
|
|
"fadeIn, 1, 1.73, almostLinear"
|
|
"fadeOut, 1, 1.46, almostLinear"
|
|
"fade, 1, 3.03, quick"
|
|
"layers, 1, 3.81, easeOutQuint"
|
|
"layersIn, 1, 4, easeOutQuint, fade"
|
|
"layersOut, 1, 1.5, linear, fade"
|
|
"fadeLayersIn, 1, 1.79, almostLinear"
|
|
"fadeLayersOut, 1, 1.39, almostLinear"
|
|
"workspaces, 1, 1.94, almostLinear, fade"
|
|
"workspacesIn, 1, 1.21, almostLinear, fade"
|
|
"workspacesOut, 1, 1.94, almostLinear, fade"
|
|
];
|
|
};
|
|
|
|
cursor = {
|
|
enable_hyprcursor = true;
|
|
};
|
|
|
|
dwindle = {
|
|
pseudotile = true;
|
|
preserve_split = true;
|
|
smart_split = false;
|
|
smart_resizing = false;
|
|
};
|
|
|
|
misc = {
|
|
disable_hyprland_logo = true;
|
|
disable_splash_rendering = true;
|
|
enable_swallow = true;
|
|
swallow_regex = "^(kitty)$";
|
|
};
|
|
|
|
bind = [
|
|
# General
|
|
"$mod, return, exec, $terminal"
|
|
"$mod SHIFT, q, killactive"
|
|
"$mod SHIFT, e, exit"
|
|
"$mod SHIFT, d, exec, /home/fw/scripts/dmenu_sys"
|
|
"$mod SHIFT, x, exec, ${pkgs.hyprlock}/bin/hyprlock"
|
|
"$mod SHIFT, w, exec, /home/fw/scripts/watch"
|
|
|
|
# Screen focus
|
|
"$mod, v, togglefloating"
|
|
"$mod, u, focusurgentorlast"
|
|
"$mod, tab, focuscurrentorlast"
|
|
"$mod, f, fullscreen"
|
|
|
|
# Screen resize
|
|
"$mod CTRL, h, resizeactive, -20 0"
|
|
"$mod CTRL, l, resizeactive, 20 0"
|
|
"$mod CTRL, k, resizeactive, 0 -20"
|
|
"$mod CTRL, j, resizeactive, 0 20"
|
|
|
|
# Workspaces
|
|
"$mod, 1, workspace, 1"
|
|
"$mod, 2, workspace, 2"
|
|
"$mod, 3, workspace, 3"
|
|
"$mod, 4, workspace, 4"
|
|
"$mod, 5, workspace, 5"
|
|
"$mod, 6, workspace, 6"
|
|
"$mod, 7, workspace, 7"
|
|
"$mod, 8, workspace, 8"
|
|
"$mod, 9, workspace, 9"
|
|
"$mod, 0, workspace, 10"
|
|
|
|
# Move to workspaces
|
|
"$mod SHIFT, 1, movetoworkspace,1"
|
|
"$mod SHIFT, 2, movetoworkspace,2"
|
|
"$mod SHIFT, 3, movetoworkspace,3"
|
|
"$mod SHIFT, 4, movetoworkspace,4"
|
|
"$mod SHIFT, 5, movetoworkspace,5"
|
|
"$mod SHIFT, 6, movetoworkspace,6"
|
|
"$mod SHIFT, 7, movetoworkspace,7"
|
|
"$mod SHIFT, 8, movetoworkspace,8"
|
|
"$mod SHIFT, 9, movetoworkspace,9"
|
|
"$mod SHIFT, 0, movetoworkspace,10"
|
|
|
|
# Navigation
|
|
"$mod, h, movefocus, l"
|
|
"$mod, l, movefocus, r"
|
|
"$mod, k, movefocus, u"
|
|
"$mod, j, movefocus, d"
|
|
|
|
# Applications
|
|
"$mod, q, exec, ${pkgs.firefox}/bin/firefox"
|
|
"$mod, d, exec, ${pkgs.rofi}/bin/rofi -show drun -p 'Run: '"
|
|
|
|
# Screencapture
|
|
"$mod SHIFT, s, exec, ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" - | ${pkgs.wl-clipboard}/bin/wl-copy -t image/png"
|
|
];
|
|
|
|
bindm = [
|
|
"$mod, mouse:272, movewindow"
|
|
"$mod, mouse:273, resizewindow"
|
|
];
|
|
|
|
env = [
|
|
"NIXOS_OZONE_WL,1"
|
|
"_JAVA_AWT_WM_NONREPARENTING,1"
|
|
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
|
"QT_QPA_PLATFORM,wayland"
|
|
"SDL_VIDEODRIVER,wayland"
|
|
"GDK_BACKEND,wayland"
|
|
"XDG_SESSION_TYPE,wayland"
|
|
"XDG_SESSION_DESKTOP,Hyprland"
|
|
"XDG_CURRENT_DESKTOP,Hyprland"
|
|
];
|
|
};
|
|
systemd = {
|
|
enable = true;
|
|
};
|
|
};
|
|
};
|
|
}
|