Update
This commit is contained in:
234
home/system/hyprland/default.nix
Normal file
234
home/system/hyprland/default.nix
Normal file
@@ -0,0 +1,234 @@
|
||||
{ self, pkgs, config, hyprland, ... }:
|
||||
let variable = import ../../../variables.nix;
|
||||
in {
|
||||
|
||||
imports = [ ./hyprlock.nix ./hypridle.nix ./hyprpaper.nix ./hyprcursor.nix ];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
hyprshot
|
||||
hyprpicker
|
||||
xdg-desktop-portal-hyprland
|
||||
wlr-randr
|
||||
wl-clipboard
|
||||
brightnessctl
|
||||
gnome.gnome-themes-extra
|
||||
wlsunset
|
||||
xwayland
|
||||
xdg-desktop-portal-gtk
|
||||
wlroots
|
||||
qt5ct
|
||||
libva
|
||||
dconf
|
||||
wayland-utils
|
||||
wayland-protocols
|
||||
meson
|
||||
];
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
package = hyprland.packages."${pkgs.system}".hyprland;
|
||||
|
||||
settings = {
|
||||
"$mod" = "SUPER";
|
||||
"$shiftMod" = "SUPER_SHIFT";
|
||||
|
||||
exec-once = [
|
||||
"startup"
|
||||
"${pkgs.hypridle}/bin/hypridle"
|
||||
"${pkgs.hyprpaper}/bin/hyprpaper"
|
||||
"${pkgs.bitwarden}/bin/bitwarden"
|
||||
];
|
||||
|
||||
monitor =
|
||||
[ "eDP-2,highres,0x0,1" "DP-8,highrr,2560x0,1" ",prefered,auto,1" ];
|
||||
|
||||
bind = [
|
||||
"$mod, RETURN, exec, ${pkgs.kitty}/bin/kitty"
|
||||
"$mod, E, exec, ${pkgs.xfce.thunar}/bin/thunar"
|
||||
"$mod, B, exec, ${pkgs.qutebrowser}/bin/qutebrowser"
|
||||
"$mod, K, exec, ${pkgs.bitwarden}/bin/bitwarden"
|
||||
"$mod, C, exec, ${pkgs.kitty}/bin/kitty --class peaclock peaclock"
|
||||
"$mod, L, exec, ${pkgs.hyprlock}/bin/hyprlock"
|
||||
"$mod, X, exec, powermenu"
|
||||
"$mod, SPACE, exec, menu"
|
||||
# Windows control
|
||||
"$mod, Q, killactive,"
|
||||
"$mod, T, togglefloating,"
|
||||
"$mod, F, fullscreen"
|
||||
"$mod, left, movefocus, l"
|
||||
"$mod, right, movefocus, r"
|
||||
"$mod, up, movefocus, u"
|
||||
"$mod, down, movefocus, d"
|
||||
# Screenshots
|
||||
"$mod, PRINT, exec, screenshot window"
|
||||
", PRINT, exec, screenshot monitor"
|
||||
"$shiftMod, PRINT, exec, screenshot region"
|
||||
"ALT, PRINT, exec, screenshot region swappy"
|
||||
# Night Shift
|
||||
"$mod, F2, exec, night-shift-off"
|
||||
"$mod, F3, exec, night-shift-on"
|
||||
# Sound output
|
||||
"$mod, F5, exec, ${pkgs.kitty}/bin/kitty --class floating zsh -c sound-output"
|
||||
"$mod, F6, exec, ${pkgs.kitty}/bin/kitty --class floating zsh -c sound-output"
|
||||
"$mod, F7, exec, ${pkgs.kitty}/bin/kitty --class floating zsh -c sound-output"
|
||||
] ++ (builtins.concatLists (builtins.genList (i:
|
||||
let ws = i + 1;
|
||||
in [
|
||||
"$mod, code:1${toString i}, workspace, ${toString ws}"
|
||||
"$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}"
|
||||
]) 9));
|
||||
|
||||
bindm = [ "$mod, mouse:272, movewindow" "$mod, R, resizewindow" ];
|
||||
|
||||
bindl = [
|
||||
",XF86AudioMute, exec, sound-toggle"
|
||||
",switch:Lid Switch, exec, ${pkgs.hyprlock}/bin/hyprlock"
|
||||
];
|
||||
|
||||
bindle = [
|
||||
", XF86AudioRaiseVolume, exec, sound-up"
|
||||
", XF86AudioLowerVolume, exec, sound-down"
|
||||
", XF86MonBrightnessUp, exec, brightness-up"
|
||||
", XF86MonBrightnessDown, exec, brightness-down"
|
||||
];
|
||||
|
||||
env = [
|
||||
"LIBVA_DRIVER_NAME,nvidia"
|
||||
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
||||
"WLR_NO_HARDWARE_CURSORS,1"
|
||||
"XDG_SESSION_TYPE,wayland"
|
||||
"XDG_CURRENT_DESKTOP,Hyprland"
|
||||
"XDG_SESSION_TYPE,wayland"
|
||||
"XDG_SESSION_DESKTOP,Hyprland"
|
||||
"QT_AUTO_SCREEN_SCALE_FACTOR,1"
|
||||
"QT_QPA_PLATFORM=wayland,xcb"
|
||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
||||
"GTK_THEME,Flat-Remix-GTK-Violet-Darkest-Solid:dark"
|
||||
# "HYPRCURSOR_THEME,rose-pine"
|
||||
# "HYPRCURSOR_SIZE,16"
|
||||
];
|
||||
|
||||
general = {
|
||||
resize_on_border = true;
|
||||
gaps_in = config.theme.gaps-in;
|
||||
gaps_out = config.theme.gaps-out;
|
||||
border_size = config.theme.border-size;
|
||||
"col.active_border" = "rgba(${config.theme.colors.primary-bg}ff)";
|
||||
"col.inactive_border" = "rgba(00000055)";
|
||||
border_part_of_window = true;
|
||||
layout = "master";
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = config.theme.rounding;
|
||||
drop_shadow = true;
|
||||
shadow_range = 20;
|
||||
shadow_render_power = 3;
|
||||
"col.shadow" = "rgba(00000055)";
|
||||
blur = { enabled = false; };
|
||||
};
|
||||
|
||||
master = {
|
||||
new_is_master = true;
|
||||
new_on_top = true;
|
||||
};
|
||||
|
||||
gestures = { workspace_swipe = true; };
|
||||
|
||||
misc = {
|
||||
disable_hyprland_logo = true;
|
||||
disable_splash_rendering = true;
|
||||
focus_on_activate = true;
|
||||
new_window_takes_over_fullscreen = 2;
|
||||
};
|
||||
|
||||
input = {
|
||||
kb_layout = variable.keyboardLayout;
|
||||
|
||||
kb_options = "caps:escape";
|
||||
follow_mouse = 1;
|
||||
sensitivity = 0.5;
|
||||
repeat_delay = 300;
|
||||
repeat_rate = 50;
|
||||
numlock_by_default = true;
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
clickfinger_behavior = true;
|
||||
};
|
||||
};
|
||||
|
||||
windowrulev2 = [
|
||||
"float, class:peaclock"
|
||||
"move 2% 78%, class:peaclock"
|
||||
"size 30% 20%, class:peaclock"
|
||||
|
||||
"float, class:floating"
|
||||
"size 40% 40%, class:floating"
|
||||
"move 30% 30%, class:floating"
|
||||
|
||||
"float, title:Bluetooth Devices"
|
||||
"move 20% 20%, title:Bluetooth Devices"
|
||||
"size 60% 60%, title:Bluetooth Devices"
|
||||
];
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"linear, 0, 0, 1, 1"
|
||||
"md3_standard, 0.2, 0, 0, 1"
|
||||
"md3_decel, 0.05, 0.7, 0.1, 1"
|
||||
"md3_accel, 0.3, 0, 0.8, 0.15"
|
||||
"overshot, 0.05, 0.9, 0.1, 1.1"
|
||||
"crazyshot, 0.1, 1.5, 0.76, 0.92 "
|
||||
"hyprnostretch, 0.05, 0.9, 0.1, 1.0"
|
||||
"fluent_decel, 0.1, 1, 0, 1"
|
||||
"easeInOutCirc, 0.85, 0, 0.15, 1"
|
||||
"easeOutCirc, 0, 0.55, 0.45, 1"
|
||||
"easeOutExpo, 0.16, 1, 0.3, 1"
|
||||
];
|
||||
|
||||
animation = [
|
||||
"windows, 1, 3, md3_decel, popin 60%"
|
||||
"border, 1, 10, default"
|
||||
"fade, 1, 2.5, md3_decel"
|
||||
"workspaces, 1, 3.5, easeOutExpo, slide"
|
||||
"specialWorkspace, 1, 3, md3_decel, slidevert"
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "gtk";
|
||||
style.name = "gtk2";
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
package = pkgs.flat-remix-gtk;
|
||||
name = "Flat-Remix-GTK-Violet-Darkest-Solid";
|
||||
};
|
||||
|
||||
iconTheme = {
|
||||
package = pkgs.flat-remix-icon-theme;
|
||||
name = "Flat-Remix-Grey-Darkest";
|
||||
};
|
||||
|
||||
font = {
|
||||
name = config.theme.font;
|
||||
size = 11;
|
||||
};
|
||||
};
|
||||
|
||||
home.pointerCursor = {
|
||||
gtk.enable = true;
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Classic";
|
||||
size = 14;
|
||||
};
|
||||
}
|
||||
9
home/system/hyprland/hyprcursor.nix
Normal file
9
home/system/hyprland/hyprcursor.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [ hyprcursor ];
|
||||
|
||||
# home.file.".local/share/icons/rose-pine-hyprcursor" = {
|
||||
# recursive = true;
|
||||
# source = ./rose-pine;
|
||||
#};
|
||||
|
||||
}
|
||||
23
home/system/hyprland/hypridle.nix
Normal file
23
home/system/hyprland/hypridle.nix
Normal file
@@ -0,0 +1,23 @@
|
||||
{ config, pkgs, ... }: {
|
||||
home.packages = with pkgs; [ hypridle ];
|
||||
|
||||
xdg.configFile."hypr/hypridle.conf".text = ''
|
||||
general {
|
||||
ignore_dbus_inhibit = false
|
||||
}
|
||||
|
||||
# Screenlock
|
||||
listener {
|
||||
timeout = 600
|
||||
on-timeout = ${pkgs.hyprlock}/bin/hyprlock
|
||||
on-resume = ${pkgs.libnotify}/bin/notify-send "Welcome back ${config.home.username}!"
|
||||
}
|
||||
|
||||
# Suspend
|
||||
listener {
|
||||
timeout = 660
|
||||
on-timeout = systemctl suspend
|
||||
# on-resume = ${pkgs.libnotify}/bin/notify-send "Welcome back to your desktop!"
|
||||
}
|
||||
'';
|
||||
}
|
||||
75
home/system/hyprland/hyprlock.nix
Normal file
75
home/system/hyprland/hyprlock.nix
Normal file
@@ -0,0 +1,75 @@
|
||||
{ pkgs, config, ... }: {
|
||||
|
||||
home.packages = with pkgs; [ hyprlock ];
|
||||
|
||||
xdg.configFile."hypr/hyprlock.conf".text = ''
|
||||
background {
|
||||
monitor =
|
||||
path = $HOME/.config/wallpapers/${config.theme.wallpaper}
|
||||
color = rgb(${config.theme.colors.bg})
|
||||
|
||||
blur_size = 4
|
||||
blur_passes = 3
|
||||
noise = 0.0117
|
||||
contrast = 1.3000
|
||||
brightness = 0.8000
|
||||
vibrancy = 0.2100
|
||||
vibrancy_darkness = 0.0
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 250, 50
|
||||
outline_thickness = 3
|
||||
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.64 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
outer_color = rgb(${config.theme.colors.primary-bg})
|
||||
inner_color = rgb(${config.theme.colors.bg})
|
||||
font_color = rgb(${config.theme.colors.fg})
|
||||
fade_on_empty = true
|
||||
placeholder_text = <i>Password...</i> # Text rendered in the input box when it's empty.
|
||||
hide_input = false
|
||||
position = 0, 50
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
# Current time
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<b><big> $(date +"%H:%M:%S") </big></b>"
|
||||
color = rgb(${config.theme.colors.fg})
|
||||
font_size = 64
|
||||
font_family = ${config.theme.font}
|
||||
position = 0, 16
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# User label
|
||||
label {
|
||||
monitor =
|
||||
text = Hey <span text_transform="capitalize" size="larger">$USER</span>
|
||||
color = rgb(${config.theme.colors.fg})
|
||||
font_size = 20
|
||||
font_family = ${config.theme.font}
|
||||
position = 0, 0
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
|
||||
# Type to unlock
|
||||
label {
|
||||
monitor =
|
||||
text = Type to unlock!
|
||||
color = rgb(${config.theme.colors.fg})
|
||||
font_size = 16
|
||||
font_family = ${config.theme.font}
|
||||
position = 0, 30
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
'';
|
||||
}
|
||||
10
home/system/hyprland/hyprpaper.nix
Normal file
10
home/system/hyprland/hyprpaper.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{ pkgs, config, ... }: {
|
||||
home.packages = with pkgs; [ hyprpaper ];
|
||||
|
||||
xdg.configFile."hypr/hyprpaper.conf".text = ''
|
||||
preload = ~/.config/wallpapers/${config.theme.wallpaper}
|
||||
wallpaper = ,~/.config/wallpapers/${config.theme.wallpaper}
|
||||
ipc=true
|
||||
splash=false
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user