feat: add home manager hyprland module to enable hyprland plugins
This commit is contained in:
parent
6997c5a968
commit
64499a5e90
30 changed files with 456 additions and 365 deletions
|
|
@ -1,87 +0,0 @@
|
|||
$mainMod = SUPER
|
||||
$scripts = ~/.config/scripts/
|
||||
$terminal = ghostty
|
||||
$filemanager = thunar
|
||||
$browser = firefox
|
||||
|
||||
bind = CTRL ALT, T, exec, $terminal
|
||||
bind = $mainMod, Return, exec, $terminal
|
||||
bind = $mainMod, Q, killactive,
|
||||
bind = $mainMod, M, exec, wlogout --protocol layer-shell
|
||||
bind = $mainMod, E, exec, $filemanager
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = ALT, SPACE, exec, rofi -config ~/.config/rofi/apps.rasi -show drun
|
||||
bind = $mainMod ALT, W, exec, $scripts/waybarRestart.sh
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, S, togglesplit, # dwindle
|
||||
bind = CTRL&$mainMod&SHIFT, L, exec, swaylock
|
||||
bind = $mainMod SHIFT, s, exec, hyprshot -m region --clipboard-only --freeze
|
||||
bind = CTRL SHIFT, s, exec, hyprshot -m window --clipboard-only --freeze
|
||||
bind = CTRL SHIFT $mainMod, s, exec, hyprshot -m output --clipboard-only --freeze
|
||||
bind = $mainMod, PERIOD, exec, flatpak run it.mijorus.smile
|
||||
bind = $mainMod, X, exec, sleep 0.1 && swaync-client -t -sw
|
||||
bind = $mainMod SHIFT, C, centerwindow
|
||||
bind = ,F11, fullscreen
|
||||
bind = $mainMod, F, exec, $browser
|
||||
bind = $mainMod, C, exec, NIXOS_OZONE_WL=1 code
|
||||
|
||||
# Cycle windows
|
||||
bind = ALT, TAB, cyclenext
|
||||
bind = ALT, TAB, bringactivetotop
|
||||
|
||||
bind = $mainMod, h, movefocus, l
|
||||
bind = $mainMod, l, movefocus, r
|
||||
bind = $mainMod, k, movefocus, u
|
||||
bind = $mainMod, j, movefocus, d
|
||||
|
||||
# Workspace Scroll
|
||||
bind = $mainMod, mouse_down, workspace, e-1
|
||||
bind = $mainMod, mouse_up, workspace, e+1
|
||||
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
bind = $mainMod CTRL, l, resizeactive, 10 0
|
||||
bind = $mainMod CTRL, h, resizeactive, -10 0
|
||||
bind = $mainMod CTRL, k, resizeactive, 0 -10
|
||||
bind = $mainMod CTRL, j, resizeactive, 0 10
|
||||
|
||||
bind = $mainMod SHIFT, l, movewindow, r
|
||||
bind = $mainMod SHIFT, h, movewindow, l
|
||||
bind = $mainMod SHIFT, k, movewindow, u
|
||||
bind = $mainMod SHIFT, j, movewindow, d
|
||||
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Media
|
||||
bind = ,XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_SINK@ 0 && wpctl set-volume @DEFAULT_SINK@ 2%+
|
||||
bind = ,XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_SINK@ 0 && wpctl set-volume @DEFAULT_SINK@ 2%-
|
||||
bind = ,XF86MonBrightnessDown, exec, brightnessctl set 10%-
|
||||
bind = ,XF86MonBrightnessUp, exec, brightnessctl set 10%+
|
||||
bind = ,XF86AudioPrev, exec, playerctl previous
|
||||
bind = ,XF86AudioNext, exec, playerctl next
|
||||
bind = ,XF86AudioPlay, exec, playerctl play-pause
|
||||
bind = ,XF86AudioStop, exec, playerctl stop
|
||||
bind = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
$scripts = ~/.config/scripts/
|
||||
|
||||
exec-once = swaync -s ~/.config/swaync/style.css -c ~/.config/swaync/config.json
|
||||
exec-once = dbus-update-activation-environment --systemd --all
|
||||
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
exec-once = waybar -c ~/.config/waybar/config.json -s ~/.config/waybar/style.css
|
||||
exec-once = hyprpaper
|
||||
exec-once = swayidle -w
|
||||
exec-once = sway-audio-idle-inhibit
|
||||
exec-once = nwg-look -a
|
||||
exec-once = [silent] fcitx5 -d -r &
|
||||
exec-once = [silent] fcitx5-remote -r &
|
||||
exec = hyprsunset -t 3000k &
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
debug:disable_logs = false
|
||||
|
||||
source = ~/.config/hypr/monitor.conf
|
||||
source = ~/.config/hypr/exec.conf
|
||||
source = ~/.config/hypr/bind.conf
|
||||
source = ~/.config/hypr/input.conf
|
||||
source = ~/.config/hypr/window.conf
|
||||
source = ~/.config/hypr/windowrule.conf
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
preload = ~/.config/wallpapers/wall.png
|
||||
wallpaper = , ~/.config/wallpapers/wall.png
|
||||
splash = false
|
||||
ipc = on
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
input {
|
||||
kb_layout = us
|
||||
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
accel_profile = flat
|
||||
|
||||
touchpad {
|
||||
natural_scroll = true
|
||||
}
|
||||
|
||||
sensitivity = -0.1 # -1.0 - 1.0, 0 means no modification.
|
||||
}
|
||||
|
||||
cursor {
|
||||
no_hardware_cursors = true
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
monitor=desc:ASUSTek COMPUTER INC ASUS VG32VQ1B 0x00002271,2560x1440@165, 0x0, 1
|
||||
monitor=desc:Acer Technologies XV272U V3 7422007E54222, 2560x1440@144, -1440x-540, 1, transform, 1
|
||||
monitor=desc:LG Display 0x0665, preferred, 0x0, 1.25
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
|
||||
general {
|
||||
gaps_in = 5
|
||||
gaps_out = 10
|
||||
border_size = 2
|
||||
col.active_border = rgb(EBDBB2) rgb(24273A) rgb(24273A) rgb(EBDBB2) 45deg
|
||||
col.inactive_border= rgb(24273A) rgb(24273A) rgb(24273A) rgb(24273A) 45deg
|
||||
layout = dwindle
|
||||
allow_tearing = false
|
||||
}
|
||||
|
||||
decoration {
|
||||
rounding = 10
|
||||
blur {
|
||||
enabled = true
|
||||
size = 5
|
||||
passes = 3
|
||||
new_optimizations = true
|
||||
ignore_opacity = on
|
||||
xray = false
|
||||
}
|
||||
active_opacity = 0.8
|
||||
inactive_opacity = 0.8
|
||||
fullscreen_opacity = 1.0
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = true
|
||||
bezier = linear, 0, 0, 1, 1
|
||||
bezier = md3_standard, 0.2, 0, 0, 1
|
||||
bezier = md3_decel, 0.05, 0.7, 0.1, 1
|
||||
bezier = md3_accel, 0.3, 0, 0.8, 0.15
|
||||
bezier = overshot, 0.05, 0.9, 0.1, 1.1
|
||||
bezier = crazyshot, 0.1, 1.5, 0.76, 0.92
|
||||
bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
|
||||
bezier = menu_decel, 0.1, 1, 0, 1
|
||||
bezier = menu_accel, 0.38, 0.04, 1, 0.07
|
||||
bezier = easeInOutCirc, 0.85, 0, 0.15, 1
|
||||
bezier = easeOutCirc, 0, 0.55, 0.45, 1
|
||||
bezier = easeOutExpo, 0.16, 1, 0.3, 1
|
||||
bezier = softAcDecel, 0.26, 0.26, 0.15, 1
|
||||
bezier = md2, 0.4, 0, 0.2, 1
|
||||
animation = windows, 1, 3, md3_decel, popin 60%
|
||||
animation = windowsIn, 1, 3, md3_decel, popin 60%
|
||||
animation = windowsOut, 1, 3, md3_accel, popin 60%
|
||||
animation = border, 1, 10, default
|
||||
animation = fade, 1, 3, md3_decel
|
||||
animation = workspaces, 1, 7, menu_decel, slide
|
||||
animation = specialWorkspace, 1, 3, md3_decel, slidevert
|
||||
}
|
||||
|
||||
dwindle {
|
||||
pseudotile = yes
|
||||
preserve_split = yes
|
||||
}
|
||||
|
||||
master {
|
||||
new_on_top = true
|
||||
}
|
||||
|
||||
gestures {
|
||||
workspace_swipe = true
|
||||
}
|
||||
|
||||
misc {
|
||||
force_default_wallpaper = 0
|
||||
}
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
windowrule = pseudo, fcitx
|
||||
windowrule = float, file_progress
|
||||
windowrule = float, confirm
|
||||
windowrule = float, dialog
|
||||
windowrule = float, download
|
||||
windowrule = float, notification
|
||||
windowrule = float, error
|
||||
windowrule = float, splash
|
||||
windowrule = float, confirmreset
|
||||
windowrule = float, title:Open File
|
||||
windowrule = float, title:branchdialog
|
||||
windowrule = float, viewnior
|
||||
windowrule = float, pavucontrol-qt
|
||||
windowrule = float, pavucontrol
|
||||
windowrule = float, file-roller
|
||||
windowrule = fullscreen, wlogout
|
||||
windowrule = float, title:wlogout
|
||||
windowrule = fullscreen, title:wlogout
|
||||
windowrule = idleinhibit stayfocused, mpv
|
||||
windowrulev2 = float, title:^(Media viewer)$
|
||||
windowrulev2 = float, title:^(File Operation Progress)$
|
||||
windowrulev2 = float, class:^(it.mijorus.smile)
|
||||
windowrulev2 = float, class:^(xdg-desktop-portal-gtk)$
|
||||
windowrulev2 = float, title:^(Steam Settings)$
|
||||
|
||||
# Picture in picture windows
|
||||
windowrulev2 = float, title:^(Picture-in-Picture)$
|
||||
windowrulev2 = pin, title:^(Picture-in-Picture)$
|
||||
windowrulev2 = float, class:^(vesktop)$,title:^(Discord Popout)$
|
||||
windowrulev2 = pin, class:^(vesktop)$,title:^(Discord Popout)$
|
||||
windowrulev2 = float, class:^(steam)$,title:^(Friends List)$
|
||||
|
||||
|
||||
|
||||
# Workspace assign
|
||||
windowrulev2 = workspace: 5, class:^(steam)$
|
||||
|
||||
# Line
|
||||
windowrulev2 = workspace: 2, initialTitle:^(LINE)$
|
||||
windowrulev2 = float, initialTitle:^(LINE)$
|
||||
|
||||
# VLC
|
||||
windowrulev2 = workspace: 3, initialClass: ^(vlc)
|
||||
|
||||
layerrule = blur, waybar
|
||||
layerrule = blur, logout_dialog
|
||||
layerrule = unset, rofi
|
||||
layerrule = blur, rofi
|
||||
layerrule = ignorezero, rofi
|
||||
layerrule = unset, swaync-control-center
|
||||
layerrule = unset, swaync-notification-window
|
||||
layerrule = blur, swaync-control-center
|
||||
layerrule = blur, swaync-notification-window
|
||||
layerrule = ignorezero, swaync-control-center
|
||||
layerrule = ignorezero, swaync-notification-window
|
||||
layerrule = ignorealpha 0.1, swaync-control-center
|
||||
layerrule = ignorealpha 0.1, swaync-notification-window
|
||||
|
||||
|
|
@ -5,4 +5,4 @@
|
|||
killall .waybar-wrapped
|
||||
killall .swaync-wrapped
|
||||
waybar -c ~/.config/waybar/config.json -s ~/.config/waybar/style.css &
|
||||
swaync -s ~/.config/swaync/style.css -c ~/.config/swaync/config.json &
|
||||
swaync -c ~/.config/swaync/config.json -s ~/.config/swaync/style.css &
|
||||
|
|
|
|||
|
|
@ -7,13 +7,13 @@
|
|||
font-weight: bold;
|
||||
font-size: 15px;
|
||||
border-width: 3px;
|
||||
border-color: #ebdbb2
|
||||
border-color: #ebdbb2;
|
||||
}
|
||||
|
||||
.control-center .notification-row:focus,
|
||||
.control-center .notification-row:hover {
|
||||
opacity: 1;
|
||||
background: @bgc
|
||||
background: @bgc;
|
||||
}
|
||||
|
||||
.notification-row {
|
||||
|
|
@ -50,8 +50,8 @@
|
|||
box-shadow: none;
|
||||
background: @borderc;
|
||||
color: @textc;
|
||||
transition: all .15s ease-in-out;
|
||||
border: none
|
||||
transition: all 0.15s ease-in-out;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.notification-action {
|
||||
|
|
@ -68,7 +68,7 @@
|
|||
.time {
|
||||
font-size: 11px;
|
||||
color: @borderc;
|
||||
margin-right: 40px
|
||||
margin-right: 40px;
|
||||
}
|
||||
|
||||
.body {
|
||||
|
|
@ -86,15 +86,15 @@
|
|||
}
|
||||
|
||||
.control-center-list-placeholder {
|
||||
opacity: .5
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.floating-notifications {
|
||||
background: transparent
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.blank-window {
|
||||
background: alpha(black, 0.1)
|
||||
background: alpha(black, 0.1);
|
||||
}
|
||||
|
||||
.widget-title {
|
||||
|
|
@ -104,7 +104,7 @@
|
|||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.widget-title>button {
|
||||
.widget-title > button {
|
||||
font-size: 1rem;
|
||||
color: @borderc;
|
||||
padding: 10px;
|
||||
|
|
@ -114,7 +114,7 @@
|
|||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.widget-title>button:hover {
|
||||
.widget-title > button:hover {
|
||||
background: @borderc;
|
||||
color: #282828;
|
||||
}
|
||||
|
|
@ -123,7 +123,7 @@
|
|||
margin: 10px 10px 10px 10px;
|
||||
}
|
||||
|
||||
.widget-label>label {
|
||||
.widget-label > label {
|
||||
font-size: 1rem;
|
||||
color: @textc;
|
||||
}
|
||||
|
|
@ -135,11 +135,11 @@
|
|||
border-radius: 20px;
|
||||
}
|
||||
|
||||
.widget-mpris>box>button {
|
||||
.widget-mpris > box > button {
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
.widget-mpris-player {
|
||||
padding: 5px 5px;
|
||||
margin: 10px
|
||||
margin: 10px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ in
|
|||
".config/wallpapers".source = "${configDir}/wallpapers";
|
||||
".config/kitty".source = "${configDir}/kitty";
|
||||
".config/neofetch".source = "${configDir}/neofetch";
|
||||
".config/hypr".source = "${configDir}/hypr";
|
||||
# ".config/hypr".source = "${configDir}/hypr";
|
||||
".config/swayidle".source = "${configDir}/swayidle";
|
||||
".config/swaylock".source = "${configDir}/swaylock";
|
||||
".config/wlogout".source = "${configDir}/wlogout";
|
||||
|
|
|
|||
87
home/user/hypr/bind.nix
Normal file
87
home/user/hypr/bind.nix
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
{ mainMod }:
|
||||
let
|
||||
browser = "firefox";
|
||||
terminal = "ghostty";
|
||||
filemanager = "thunar";
|
||||
scripts = "~/.config/scripts";
|
||||
|
||||
resizeStep = builtins.toString 20;
|
||||
brightnessStep = builtins.toString 10;
|
||||
volumeStep = builtins.toString 2;
|
||||
in
|
||||
[
|
||||
''${mainMod}, F, exec, ${browser}''
|
||||
''${mainMod}, RETURN, exec, ${terminal}''
|
||||
''CTRL ALT, T, exec, ${terminal}''
|
||||
''${mainMod}, Q, killactive, ''
|
||||
|
||||
''${mainMod}, M, exec, wlogout --protocol layer-shell''
|
||||
''${mainMod}, E, exec, ${filemanager}''
|
||||
''${mainMod}, V, togglefloating, ''
|
||||
''ALT, SPACE, exec, rofi -config ~/.config/rofi/apps.rasi -show drun''
|
||||
''${mainMod} ALT, W, exec, ${scripts}/waybarRestart.sh''
|
||||
''${mainMod}, P, pseudo, # dwindle''
|
||||
''${mainMod}, S, togglesplit, # dwindle''
|
||||
''CTRL ${mainMod} SHIFT, L, exec, swaylock''
|
||||
''${mainMod} SHIFT, s, exec, hyprshot -m region --clipboard-only --freeze''
|
||||
''CTRL SHIFT, s, exec, hyprshot -m window --clipboard-only --freeze''
|
||||
''CTRL SHIFT ${mainMod}, s, exec, hyprshot -m output --clipboard-only --freeze''
|
||||
''${mainMod}, PERIOD, exec, flatpak run it.mijorus.smile ''
|
||||
''${mainMod}, X, exec, sleep 0.1 && swaync-client -t -sw''
|
||||
''${mainMod} SHIFT, C, centerwindow''
|
||||
'',F11, fullscreen''
|
||||
''${mainMod}, F, exec, ${browser}''
|
||||
''${mainMod}, C, exec, NIXOS_OZONE_WL=1 code''
|
||||
|
||||
# Cycle windows
|
||||
''ALT, TAB, cyclenext''
|
||||
''ALT, TAB, bringactivetotop''
|
||||
|
||||
''${mainMod}, h, movefocus, l''
|
||||
''${mainMod}, l, movefocus, r''
|
||||
''${mainMod}, k, movefocus, u''
|
||||
''${mainMod}, j, movefocus, d''
|
||||
|
||||
''${mainMod}, mouse_down, workspace, e-1''
|
||||
''${mainMod}, mouse_up, workspace, e+1''
|
||||
|
||||
''${mainMod} CTRL, l, resizeactive, ${resizeStep} 0''
|
||||
''${mainMod} CTRL, h, resizeactive, -${resizeStep} 0''
|
||||
''${mainMod} CTRL, k, resizeactive, 0 -${resizeStep}''
|
||||
''${mainMod} CTRL, j, resizeactive, 0 ${resizeStep}''
|
||||
|
||||
''${mainMod} SHIFT, l, movewindow, r''
|
||||
''${mainMod} SHIFT, h, movewindow, l''
|
||||
''${mainMod} SHIFT, k, movewindow, u''
|
||||
''${mainMod} SHIFT, j, movewindow, d''
|
||||
|
||||
|
||||
# Media
|
||||
'',XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_SINK@ 0 && wpctl set-volume @DEFAULT_SINK@ ${volumeStep}%+''
|
||||
'',XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_SINK@ 0 && wpctl set-volume @DEFAULT_SINK@ ${volumeStep}%-''
|
||||
'',XF86MonBrightnessDown, exec, brightnessctl set ${brightnessStep}%-''
|
||||
'',XF86MonBrightnessUp, exec, brightnessctl set ${brightnessStep}%+''
|
||||
'',XF86AudioPrev, exec, playerctl previous''
|
||||
'',XF86AudioNext, exec, playerctl next''
|
||||
'',XF86AudioPlay, exec, playerctl play-pause''
|
||||
'',XF86AudioStop, exec, playerctl stop''
|
||||
'',XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle''
|
||||
|
||||
# ==== Plugins ==== #
|
||||
# Overview
|
||||
''${mainMod}, o, hyprexpo:expo, toggle''
|
||||
] ++ (
|
||||
# workspaces
|
||||
# binds $mainMod + [shift +] {1..9} to [move to] workspace {1..9}
|
||||
builtins.concatLists (builtins.genList
|
||||
(i:
|
||||
let ws = i + 1;
|
||||
in
|
||||
[
|
||||
"${mainMod}, code:1${toString i}, workspace, ${toString ws}"
|
||||
"${mainMod} SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}"
|
||||
]
|
||||
)
|
||||
9)
|
||||
)
|
||||
|
||||
6
home/user/hypr/bindm.nix
Normal file
6
home/user/hypr/bindm.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{ mainMod }:
|
||||
[
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
''${mainMod}, mouse:272, movewindow''
|
||||
''${mainMod}, mouse:273, resizewindow''
|
||||
]
|
||||
15
home/user/hypr/exec.nix
Normal file
15
home/user/hypr/exec.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{ pkgs, lib, inputs, system, ... }:
|
||||
let
|
||||
startupScript = pkgs.pkgs.writeShellScriptBin "start" ''
|
||||
swaync -s ~/.config/swaync/style.css -c ~/.config/swaync/config.json &
|
||||
dbus-update-activation-environment --systemd --all &
|
||||
systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &
|
||||
waybar -c ~/.config/waybar/config.json -s ~/.config/waybar/style.css &
|
||||
swayidle -w &
|
||||
sway-audio-idle-inhibit &
|
||||
fcitx5 -d -r &
|
||||
fcitx5-remote -r &
|
||||
hyprsunset -t 3000k &
|
||||
'';
|
||||
in
|
||||
''${startupScript}/bin/start''
|
||||
22
home/user/hypr/input.nix
Normal file
22
home/user/hypr/input.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
input = {
|
||||
kb_layout = "us";
|
||||
|
||||
kb_variant = "";
|
||||
kb_model = "";
|
||||
kb_rules = "";
|
||||
|
||||
follow_mouse = 1;
|
||||
accel_profile = "flat";
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
};
|
||||
|
||||
sensitivity = -0.1; # -1.0 - 1.0, 0 means no modification.
|
||||
};
|
||||
|
||||
cursor = {
|
||||
no_hardware_cursors = true;
|
||||
};
|
||||
}
|
||||
5
home/user/hypr/monitor.nix
Normal file
5
home/user/hypr/monitor.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
[
|
||||
''desc:ASUSTek COMPUTER INC ASUS VG32VQ1B 0x00002271,2560x1440@165, 0x0, 1''
|
||||
''desc:Acer Technologies XV272U V3 7422007E54222, 2560x1440@144, -1440x-540, 1, transform, 1''
|
||||
''desc:LG Display 0x0665, preferred, 0x0, 1.25''
|
||||
]
|
||||
26
home/user/hypr/plugin.nix
Normal file
26
home/user/hypr/plugin.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
hyprexpo = {
|
||||
columns = 3;
|
||||
gap_size = 5;
|
||||
bg_col = "rgb(111111)";
|
||||
workspace_method = "center current"; # [center/first] [workspace] e.g. first 1 or center m+1
|
||||
enable_gesture = true; # laptop touchpad
|
||||
gesture_fingers = 3; # 3 or 4
|
||||
gesture_distance = 300; # how far is the "max"
|
||||
gesture_positive = true; # positive = swipe down. Negative = swipe up.
|
||||
};
|
||||
|
||||
hyprwinrap = {
|
||||
class = "kitty-bg";
|
||||
};
|
||||
|
||||
touch_gestures = {
|
||||
sensitivity = 4.0;
|
||||
workspace_swipe_fingers = 3;
|
||||
workspace_swipe_edge = "d";
|
||||
long_press_delay = 400;
|
||||
resize_on_border_long_press = true;
|
||||
edge_margin = 10;
|
||||
emulate_touchpad_swipe = false;
|
||||
};
|
||||
}
|
||||
77
home/user/hypr/window.nix
Normal file
77
home/user/hypr/window.nix
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
{
|
||||
xwayland = {
|
||||
force_zero_scaling = true;
|
||||
};
|
||||
|
||||
general = {
|
||||
gaps_in = 5;
|
||||
gaps_out = 10;
|
||||
border_size = 2;
|
||||
"col.active_border" = "rgb(EBDBB2) rgb(24273A) rgb(24273A) rgb(EBDBB2) 45deg";
|
||||
"col.inactive_border" = "rgb(24273A) rgb(24273A) rgb(24273A) rgb(24273A) 45deg";
|
||||
layout = "dwindle";
|
||||
allow_tearing = false;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 10;
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 5;
|
||||
passes = 3;
|
||||
new_optimizations = true;
|
||||
ignore_opacity = "on";
|
||||
xray = false;
|
||||
};
|
||||
active_opacity = 0.8;
|
||||
inactive_opacity = 0.8;
|
||||
fullscreen_opacity = 1.0;
|
||||
};
|
||||
|
||||
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"
|
||||
"menu_decel, 0.1, 1, 0, 1"
|
||||
"menu_accel, 0.38, 0.04, 1, 0.07"
|
||||
"easeInOutCirc, 0.85, 0, 0.15, 1"
|
||||
"easeOutCirc, 0, 0.55, 0.45, 1"
|
||||
"easeOutExpo, 0.16, 1, 0.3, 1"
|
||||
"softAcDecel, 0.26, 0.26, 0.15, 1"
|
||||
"md2, 0.4, 0, 0.2, 1"
|
||||
];
|
||||
animation = [
|
||||
"windows, 1, 3, md3_decel, popin 60%"
|
||||
"windowsIn, 1, 3, md3_decel, popin 60%"
|
||||
"windowsOut, 1, 3, md3_accel, popin 60%"
|
||||
"border, 1, 10, default"
|
||||
"fade, 1, 3, md3_decel"
|
||||
"workspaces, 1, 7, menu_decel, slide"
|
||||
"specialWorkspace, 1, 3, md3_decel, slidevert"
|
||||
];
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
preserve_split = true;
|
||||
};
|
||||
|
||||
master = {
|
||||
new_on_top = true;
|
||||
};
|
||||
|
||||
gestures = {
|
||||
workspace_swipe = true;
|
||||
workspace_swipe_cancel_ratio = 0.15;
|
||||
};
|
||||
|
||||
misc = {
|
||||
force_default_wallpaper = 0;
|
||||
};
|
||||
}
|
||||
65
home/user/hypr/windowrule.nix
Normal file
65
home/user/hypr/windowrule.nix
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
{
|
||||
windowrule = [
|
||||
"pseudo, fcitx"
|
||||
"float, file_progress"
|
||||
"float, confirm"
|
||||
"float, dialog"
|
||||
"float, download"
|
||||
"float, notification"
|
||||
"float, error"
|
||||
"float, splash"
|
||||
"float, confirmreset"
|
||||
"float, title:Open File"
|
||||
"float, title:branchdialog"
|
||||
"float, viewnior"
|
||||
"float, pavucontrol-qt"
|
||||
"float, pavucontrol"
|
||||
"float, file-roller"
|
||||
"fullscreen, wlogout"
|
||||
"float, title:wlogout"
|
||||
"fullscreen, title:wlogout"
|
||||
"idleinhibit stayfocused, mpv"
|
||||
];
|
||||
|
||||
windowrulev2 = [
|
||||
"float, title:^(Media viewer)$"
|
||||
"float, title:^(File Operation Progress)$"
|
||||
"float, class:^(it.mijorus.smile)"
|
||||
"float, class:^(xdg-desktop-portal-gtk)$"
|
||||
"float, title:^(Steam Settings)$"
|
||||
|
||||
# Picture in picture windows
|
||||
"float, title:^(Picture-in-Picture)$"
|
||||
"pin, title:^(Picture-in-Picture)$"
|
||||
"float, class:^(vesktop)$,title:^(Discord Popout)$"
|
||||
"pin, class:^(vesktop)$,title:^(Discord Popout)$"
|
||||
"float, class:^(steam)$,title:^(Friends List)$"
|
||||
|
||||
# Workspace assign
|
||||
"workspace: 5, class: ^(steam)$"
|
||||
|
||||
# Line
|
||||
"workspace: 2, initialTitle: ^(LINE)$"
|
||||
"float, initialTitle: ^(LINE)$"
|
||||
|
||||
# VLC
|
||||
"workspace: 3, initialClass: ^(vlc)"
|
||||
];
|
||||
|
||||
layerrule = [
|
||||
"blur, waybar"
|
||||
"blur, logout_dialog"
|
||||
"unset, rofi"
|
||||
"blur, rofi"
|
||||
"ignorezero, rofi"
|
||||
"unset, swaync-control-center"
|
||||
"unset, swaync-notification-window"
|
||||
"blur, swaync-control-center"
|
||||
"blur, swaync-notification-window"
|
||||
"ignorezero, swaync-control-center"
|
||||
"ignorezero, swaync-notification-window"
|
||||
"ignorealpha 0.1, swaync-control-center"
|
||||
"ignorealpha 0.1, swaync-notification-window"
|
||||
];
|
||||
}
|
||||
|
||||
|
|
@ -1,45 +1,47 @@
|
|||
{ pkgs, lib, inputs, system, ... }:
|
||||
|
||||
let
|
||||
startScript = import ./hypr/exec.nix { inherit pkgs lib inputs system; };
|
||||
mainMod = "SUPER";
|
||||
window = import ./hypr/window.nix;
|
||||
windowrule = import ./hypr/windowrule.nix;
|
||||
input = import ./hypr/input.nix;
|
||||
plugins = import ./hypr/plugin.nix;
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# wayland
|
||||
];
|
||||
|
||||
systemd.user.targets.hyprland-session.Unit.Wants = [
|
||||
"xdg-desktop-autostart.target"
|
||||
];
|
||||
|
||||
# Have not figured out how to config throught homeManager yet
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
systemd.enable = true;
|
||||
package = inputs.hyprland.packages.${system}.hyprland;
|
||||
|
||||
plugins = [
|
||||
inputs.hyprland-plugins.packages.${system}.hyprbars
|
||||
plugins = (with inputs.hyprland-plugins.packages.${system}; [
|
||||
xtra-dispatchers
|
||||
hyprexpo
|
||||
hyprwinwrap
|
||||
]) ++ ([
|
||||
inputs.hyprgrass.packages.${system}.default
|
||||
];
|
||||
]);
|
||||
|
||||
settings = {
|
||||
"$mod" = "SUPER";
|
||||
bind = [
|
||||
"$mod, F, exec, firefox"
|
||||
"$mod, enter, exec, ghostty"
|
||||
]
|
||||
++ (
|
||||
# workspaces
|
||||
# binds $mod + [shift +] {1..9} to [move to] workspace {1..9}
|
||||
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)
|
||||
);
|
||||
bind = import ./hypr/bind.nix { inherit mainMod; };
|
||||
bindm = import ./hypr/bindm.nix { inherit mainMod; };
|
||||
monitor = import ./hypr/monitor.nix;
|
||||
plugin = plugins;
|
||||
exec-once = ''${startScript}'';
|
||||
} // window // windowrule // input;
|
||||
};
|
||||
|
||||
services.hyprpaper = {
|
||||
enable = true;
|
||||
settings = {
|
||||
preload = [ "~/.config/wallpapers/wall.png" ];
|
||||
wallpaper = [ ", ~/.config/wallpapers/wall.png" ];
|
||||
splash = true;
|
||||
ipc = "on";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@
|
|||
rebuild = "sudo nixos-rebuild switch --flake /etc/nixos";
|
||||
fullClean = "nix-collect-garbage --delete-old && sudo nix-collect-garbage -d && sudo /run/current-system/bin/switch-to-configuration boot";
|
||||
|
||||
# Hyprland
|
||||
hyprlog = "grep -v \"arranged\" $XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/hyprland.log | cat";
|
||||
|
||||
# Systemd Boot
|
||||
setWin = "sudo bootctl set-oneshot auto-windows";
|
||||
goWin = "sudo bootctl set-oneshot auto-windows && reboot";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue