reorganized hyprland temporarily

This commit is contained in:
willifan 2024-11-03 14:16:43 +01:00
parent 90b837256d
commit 8eeb0f4ce5
28 changed files with 917 additions and 24 deletions

View file

@ -6,5 +6,14 @@
./hypridle.nix
./hyprlock.nix
./kanshi.nix
./fuzzel.nix
./hyprland.nix
./hyprpaper.nix
./mako.nix
./pipewire.nix
./polkit.nix
./utils.nix
./wlogout.nix
];
}

View file

@ -23,16 +23,16 @@
];
# Execute your favorite apps at launch
exec-once = [
''hyprctl dispatch exec "[workspace 1 silent] kitty"''
''hyprctl dispatch exec "[workspace 2 silent] zen"''
''hyprctl dispatch exec "[workspace 1 silent] zen"''
''hyprctl dispatch exec "[workspace 2 silent] kitty"''
#''hyprctl dispatch exec "[workspace 3 silent] "''
#''hyprctl dispatch exec "[workspace 4 silent] "''
#''hyprctl dispatch exec "[workspace 8 silent] "''
''hyprctl dispatch exec "[workspace 9 silent] vesktop"''
''hyprctl dispatch exec "[workspace special:ctrl silent] thunar"''
''hyprctl dispatch exec "[workspace special:alt silent] obsidian"''
''hyprctl dispatch exec "[workspace special:altgr silent] thunderbird"''
#''exec-once = hyprctl dispatch exec "[workspace special:strg silent] "''
#''hyprctl dispatch exec "[workspace special:altgr silent]"''
#''hyprctl dispatch exec "[workspace special:strg silent] "''
];
xwayland.force_zero_scaling = true;
@ -130,12 +130,6 @@
"center, title:^(Enpass Assistant)$"
"float, ^(Enpass)$"
"center, ^(Enpass)$"
"float, ^(blueman-manager)$"
"move -0% 0%, ^(blueman-manager)$"
"float, ^(org.gnome.Calendar)$"
"move 20% 5%, ^(org.gnome.Calendar)$"
"size 60% 60%, ^(org.gnome.Calendar)$"
"float, ^(org.gnome.Calculator)$"
];
windowrulev2 = [
@ -156,10 +150,7 @@
''$mainMod, E, exec, thunar''
''$mainMod, V, togglefloating, ''
''$mainMod, R, exec, fuzzel''
''$mainMod, J, togglesplit, # dwindle''
''$mainMod, P, exec, Enpass''
''$mainMod, T, exec, hyprctl dispatch exec "[float; pin; size 40% 40%; move 100%-41% 40] kitty btop -b proc"''
''$mainMod, W, exec, networkmanager_dmenu''
''$mainMod, F, fullscreen''
# Move focus with mainMod + arrow keys

View file

@ -1,4 +1,17 @@
{ ... }:
{
programs.hyprland.enable = true;
imports = [
./fuzzel.nix
./hyprland.nix
./hyprpaper.nix
./mako.nix
./pipewire.nix
./polkit.nix
./utils.nix
./wlogout.nix
];
}
}

View file

@ -0,0 +1,15 @@
{ ... }:
{
home-manager.users.willifan = {
programs.fuzzel = {
enable = true;
settings = {
main = {
lines = 12;
width = 45;
line-height = 20;
};
};
};
};
}

View file

@ -0,0 +1,254 @@
{ pkgs, ...}:
{
home-manager.users.willifan = {
wayland.windowManager.hyprland = {
enable = true;
systemd.variables = ["--all"];
package = pkgs.hyprland;
settings = {
"$SCRIPTS" = "$XDG_CONFIG_HOME/desktop-utils/scripts";
misc = {
disable_hyprland_logo=true;
};
monitor = [
", preffered, auto, 1"
"eDP-1, 1280x800, 0x0, 1.5, transform, 1"
];
# Execute your favorite apps at launch
exec-once = [
''hyprctl dispatch exec "[workspace 1 silent] kitty"''
''hyprctl dispatch exec "[workspace 2 silent] zen"''
#''hyprctl dispatch exec "[workspace 3 silent] "''
#''hyprctl dispatch exec "[workspace 4 silent] "''
#''hyprctl dispatch exec "[workspace 8 silent] "''
''hyprctl dispatch exec "[workspace 9 silent] vesktop"''
''hyprctl dispatch exec "[workspace special:ctrl silent] thunar"''
''hyprctl dispatch exec "[workspace special:alt silent] obsidian"''
#''hyprctl dispatch exec "[workspace special:altgr silent]"''
#''hyprctl dispatch exec "[workspace special:strg silent] "''
];
xwayland.force_zero_scaling = true;
input = {
kb_layout = "us";
kb_variant = "";
kb_model = "";
kb_options = "compose:menu";
kb_rules = "";
follow_mouse = 1;
touchpad.natural_scroll = "yes";
sensitivity = -0.8; # -1.0 - 1.0, 0 means no modification.
numlock_by_default = 1;
special_fallthrough = true;
};
general = {
gaps_in = 2;
gaps_out = 5;
border_size = 2;
# "col.active_border" = "rgba(ffa44bee)";
# "col.inactive_border" = "rgba(595959aa)";
layout = "dwindle";
resize_on_border = true;
};
decoration = {
rounding = 10;
blur = {
enabled = false;
size = 3;
passes = 1;
new_optimizations = 1;
};
drop_shadow = "yes";
shadow_range = 4;
shadow_render_power = 3;
# "col.shadow" = "rgba(1a1a1aee)";
};
misc = {
vfr = true;
mouse_move_enables_dpms = true;
};
animations = {
enabled = "yes";
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"
"specialWorkspace, 1, 8, default, slidefadevert 20%"
];
};
dwindle = {
pseudotile = "yes"; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = "yes"; # you probably want this
};
gestures = {
workspace_swipe = "on";
workspace_swipe_create_new = "false";
};
device = {
name = "pixa3854:00-093a:0274-touchpad";
sensitivity = 0;
natural_scroll = "yes";
};
windowrule = [
"idleinhibit fullscreen, ^(firefox)$"
"float, ^(thunar)$"
"stayfocused, title:^(Enpass Assistant)$"
"pin, title:^(Enpass Assistant)$"
"center, title:^(Enpass Assistant)$"
"float, ^(Enpass)$"
"center, ^(Enpass)$"
];
windowrulev2 = [
"center, xwayland:(1)"
"nofocus,class:^jetbrains-(?!toolbox),floating:1,title:^win\d+$"
''workspace +0, workspace:name:special:ctrl, floating:0''
''float, workspace:name:special:altgr, onworkspace:w[2]''
''float, workspace:name:special:strg, onworkspace:w[1]''
''workspace +0, workspace:name:special:strg, floating:0''
];
"$mainMod" = "SUPER";
bind = [
''$mainMod, Q, exec, kitty''
''$mainMod, C, killactive, ''
''$mainMod, M, exit, ''
''$mainMod, E, exec, thunar''
''$mainMod, V, togglefloating, ''
''$mainMod, R, exec, fuzzel''
''$mainMod, P, exec, Enpass''
''$mainMod, F, fullscreen''
# Move focus with mainMod + arrow keys
''$mainMod, h, movefocus, l''
''$mainMod, l, movefocus, r''
''$mainMod, k, movefocus, u''
''$mainMod, j, movefocus, d''
'', XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle''
'', XF86AudioPrev, exec, playerctl previous''
'', XF86AudioPlay, exec, playerctl play-pause''
'', XF86AudioNext, exec, playerctl next''
'', print, exec, grim -g "$(slurp)" - | wl-copy -t image/png''
# Switch workspaces with mainMod + [0-9]
''$mainMod, 1, exec, $SCRIPTS/workspaces.sh 1''
''$mainMod, 2, exec, $SCRIPTS/workspaces.sh 2''
''$mainMod, 3, exec, $SCRIPTS/workspaces.sh 3''
''$mainMod, 4, exec, $SCRIPTS/workspaces.sh 4''
''$mainMod, 5, exec, $SCRIPTS/workspaces.sh 5''
''$mainMod, 6, exec, $SCRIPTS/workspaces.sh 6''
''$mainMod, 7, exec, $SCRIPTS/workspaces.sh 7''
''$mainMod, 8, exec, $SCRIPTS/workspaces.sh 8''
''$mainMod, 9, exec, $SCRIPTS/workspaces.sh 9''
# Move active window to a workspace with mainMod + SHIFT + [0-9]
''$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''
# Monitor focus
''$mainMod ALT, 1, focusmonitor, 0''
''$mainMod ALT, 2, focusmonitor, 1''
''$mainMod ALT, 3, focusmonitor, 2''
''$mainMod ALT, 4, focusmonitor, 3''
''$mainMod ALT, 5, focusmonitor, 4''
''$mainMod ALT, 6, focusmonitor, 5''
''$mainMod ALT, 7, focusmonitor, 6''
''$mainMod ALT, 8, focusmonitor, 7''
''$mainMod ALT, 9, focusmonitor, 8''
''$mainMod ALT, 0, focusmonitor, 9''
# Scroll through existing workspaces with mainMod + scroll
''$mainMod, mouse_down, workspace, e+1''
''$mainMod, mouse_up, workspace, e-1''
];
binde = [
'', XF86AudioLowerVolume, exec, $SCRIPTS/volume.sh -5''
'', XF86AudioRaiseVolume, exec, $SCRIPTS/volume.sh 5''
];
bindel = [
'', XF86MonBrightnessDown, exec, $SCRIPTS/brightness.sh -4800''
'', XF86MonBrightnessUp, exec, $SCRIPTS/brightness.sh 4800''
];
bindr = [
''SUPERCTRL, Control_L, togglespecialworkspace, ctrl''
''SUPERALT, Alt_L, togglespecialworkspace, alt''
''SUPERALT, ALT_R, togglespecialworkspace, altgr''
''SUPERCTRL, Control_R, togglespecialworkspace, strg''
];
bindm = [
# Move/resize windows with mainMod + LMB/RMB and dragging
''$mainMod, mouse:272, movewindow''
''$mainMod, mouse:273, resizewindow''
];
# ------------------------------------------
# ########################################
# ####### Workspaces ###########
# ########################################
# ------------------------------------------
workspace = [
"1, persistent:true"
"2, persistent:true"
"3, persistent:true"
"4, persistent:true"
"5, persistent:true"
"6, persistent:true"
"7, persistent:true"
"8, persistent:true"
"8, persistent:true"
"9, persistent:true"
"name:special:ctrl, persistent:true"
"name:special:alt, persistent:true"
"name:special:altgr, persistent:true"
"name:special:strg, persistent:true"
];
};
};
};
}

View file

@ -0,0 +1,15 @@
{ ...}:
{
home-manager.users.willifan = {
services.hyprpaper = {
enable = true;
settings = {
splash = true;
ipc = "off";
};
};
};
}

View file

@ -0,0 +1,11 @@
{ ... }:
{
home-manager.users.willifan = {
services.mako = {
enable = true;
borderRadius = 10;
borderSize = 2;
};
};
}

View file

@ -0,0 +1,13 @@
{ ... }:
{
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
};
}

View file

@ -0,0 +1,24 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
polkit_gnome
];
security.polkit.enable = true;
systemd = {
user.services.polkit-gnome-authentication-agent-1 = {
description = "polkit-gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
};
}

View file

@ -0,0 +1,22 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
hyprpicker
hyprcursor
grim
slurp
wl-clipboard
playerctl
dconf
jq
pulseaudio
inotify-tools
papirus-icon-theme
eww
];
}

View file

@ -0,0 +1,83 @@
{ ...}:
{
home-manager.users.willifan = {
programs.wlogout = {
enable = true;
layout = [
{
label = "shutdown";
action = "systemctl poweroff";
text = "Shutdown";
}
{
label = "hyprland";
action = "hyprctl dispatch exit";
text = "Exit Hyprland";
}
{
label = "whatever";
action = "";
text = "whatever";
}
{
label = "reboot";
action = "systemctl reboot";
text = "Reboot";
}
{
label = "suspend";
action = "systemctl suspend";
text = "Suspend";
}
{
label = "hibernate";
action = "systemctl hibernate";
text = "Hibernate";
}
];
style = ''
@import url("file:///home/willifan/.config/gtk-4.0/gtk.css");
* {
background-image: none;
box-shadow: none;
}
window {
background-color: rgba(12, 12, 12, 0.9);
}
button {
border-radius: 10px;
border-color: #ffa44b;
border-style: solid;
border-width: 2px;
background-repeat: no-repeat;
background-position: center;
background-size: 25%;
}
button:focus, button:active, button:hover {
/*background-color: #3700B3;*/
outline-style: none;
}
#suspend {
background-image: image(url("/home/willifan/.config/desktop-utils/images/suspend.png"));
}
#hibernate {
background-image: image(url("/home/willifan/.config/desktop-utils/images/hibernate.png"));
}
#shutdown {
background-image: image(url("/home/willifan/.config/desktop-utils/images/shutdown.png"));
}
#reboot {
background-image: image(url("/home/willifan/.config/desktop-utils/images/reboot.png"));
}
'';
};
};
}

View file

@ -1,8 +1,18 @@
{ ... }:
{
{
programs.hyprland.enable = true;
imports = [
./autologin.nix
./fuzzel.nix
./hyprland.nix
./hyprpaper.nix
./mako.nix
./pipewire.nix
./polkit.nix
./utils.nix
./wlogout.nix
];
}

View file

@ -0,0 +1,15 @@
{ ... }:
{
home-manager.users.willifan = {
programs.fuzzel = {
enable = true;
settings = {
main = {
lines = 12;
width = 45;
line-height = 20;
};
};
};
};
}

View file

@ -0,0 +1,257 @@
{ pkgs, ...}:
{
home-manager.users.willifan = {
wayland.windowManager.hyprland = {
enable = true;
systemd.variables = ["--all"];
package = pkgs.hyprland;
settings = {
"$SCRIPTS" = "$XDG_CONFIG_HOME/desktop-utils/scripts";
misc = {
disable_hyprland_logo=true;
};
monitor = [
", preffered, auto, 1"
"eDP-1, preferred, 0x0, 1.6"
"desc:ViewSonic Corporation VX2705-2KP W6Z205100250, 2560x1440@144Hz, 0x384, 1.25"
"desc:ViewSonic Corporation VX2705-2KP W6Z210400766, 2560x1440@144Hz, 2048x384, 1.25"
"desc:BNQ BenQ BL2283 CAM01567019, 1920x1080@60Hz, 4096x0, 1.0, transform, 3"
];
# Execute your favorite apps at launch
exec-once = [
''hyprctl dispatch exec "[workspace 1 silent] zen"''
''hyprctl dispatch exec "[workspace 2 silent] kitty"''
#''hyprctl dispatch exec "[workspace 3 silent] "''
#''hyprctl dispatch exec "[workspace 4 silent] "''
#''hyprctl dispatch exec "[workspace 8 silent] "''
''hyprctl dispatch exec "[workspace 9 silent] vesktop"''
''hyprctl dispatch exec "[workspace special:ctrl silent] thunar"''
''hyprctl dispatch exec "[workspace special:alt silent] obsidian"''
#''hyprctl dispatch exec "[workspace special:altgr silent]"''
#''hyprctl dispatch exec "[workspace special:strg silent] "''
];
xwayland.force_zero_scaling = true;
input = {
kb_layout = "us";
kb_variant = "";
kb_model = "";
kb_options = "compose:menu";
kb_rules = "";
follow_mouse = 1;
touchpad.natural_scroll = "yes";
sensitivity = -0.8; # -1.0 - 1.0, 0 means no modification.
numlock_by_default = 1;
special_fallthrough = true;
};
general = {
gaps_in = 2;
gaps_out = 5;
border_size = 2;
# "col.active_border" = "rgba(ffa44bee)";
# "col.inactive_border" = "rgba(595959aa)";
layout = "dwindle";
resize_on_border = true;
};
decoration = {
rounding = 10;
blur = {
enabled = false;
size = 3;
passes = 1;
new_optimizations = 1;
};
drop_shadow = "yes";
shadow_range = 4;
shadow_render_power = 3;
# "col.shadow" = "rgba(1a1a1aee)";
};
misc = {
vfr = true;
mouse_move_enables_dpms = true;
};
animations = {
enabled = "yes";
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"
"specialWorkspace, 1, 8, default, slidefadevert 20%"
];
};
dwindle = {
pseudotile = "yes"; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = "yes"; # you probably want this
};
gestures = {
workspace_swipe = "on";
workspace_swipe_create_new = "false";
};
device = {
name = "pixa3854:00-093a:0274-touchpad";
sensitivity = 0;
natural_scroll = "yes";
};
windowrule = [
"idleinhibit fullscreen, ^(firefox)$"
"float, ^(thunar)$"
"stayfocused, title:^(Enpass Assistant)$"
"pin, title:^(Enpass Assistant)$"
"center, title:^(Enpass Assistant)$"
"float, ^(Enpass)$"
"center, ^(Enpass)$"
];
windowrulev2 = [
"center, xwayland:(1)"
"nofocus,class:^jetbrains-(?!toolbox),floating:1,title:^win\d+$"
''workspace +0, workspace:name:special:ctrl, floating:0''
''float, workspace:name:special:altgr, onworkspace:w[2]''
''float, workspace:name:special:strg, onworkspace:w[1]''
''workspace +0, workspace:name:special:strg, floating:0''
];
"$mainMod" = "SUPER";
bind = [
''$mainMod, Q, exec, kitty''
''$mainMod, C, killactive, ''
''$mainMod, M, exit, ''
''$mainMod, E, exec, thunar''
''$mainMod, V, togglefloating, ''
''$mainMod, R, exec, fuzzel''
''$mainMod, P, exec, Enpass''
''$mainMod, F, fullscreen''
# Move focus with mainMod + arrow keys
''$mainMod, h, movefocus, l''
''$mainMod, l, movefocus, r''
''$mainMod, k, movefocus, u''
''$mainMod, j, movefocus, d''
'', XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle''
'', XF86AudioPrev, exec, playerctl previous''
'', XF86AudioPlay, exec, playerctl play-pause''
'', XF86AudioNext, exec, playerctl next''
'', print, exec, grim -g "$(slurp)" - | wl-copy -t image/png''
# Switch workspaces with mainMod + [0-9]
''$mainMod, 1, exec, $SCRIPTS/workspaces.sh 1''
''$mainMod, 2, exec, $SCRIPTS/workspaces.sh 2''
''$mainMod, 3, exec, $SCRIPTS/workspaces.sh 3''
''$mainMod, 4, exec, $SCRIPTS/workspaces.sh 4''
''$mainMod, 5, exec, $SCRIPTS/workspaces.sh 5''
''$mainMod, 6, exec, $SCRIPTS/workspaces.sh 6''
''$mainMod, 7, exec, $SCRIPTS/workspaces.sh 7''
''$mainMod, 8, exec, $SCRIPTS/workspaces.sh 8''
''$mainMod, 9, exec, $SCRIPTS/workspaces.sh 9''
# Move active window to a workspace with mainMod + SHIFT + [0-9]
''$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''
# Monitor focus
''$mainMod ALT, 1, focusmonitor, 0''
''$mainMod ALT, 2, focusmonitor, 1''
''$mainMod ALT, 3, focusmonitor, 2''
''$mainMod ALT, 4, focusmonitor, 3''
''$mainMod ALT, 5, focusmonitor, 4''
''$mainMod ALT, 6, focusmonitor, 5''
''$mainMod ALT, 7, focusmonitor, 6''
''$mainMod ALT, 8, focusmonitor, 7''
''$mainMod ALT, 9, focusmonitor, 8''
''$mainMod ALT, 0, focusmonitor, 9''
# Scroll through existing workspaces with mainMod + scroll
''$mainMod, mouse_down, workspace, e+1''
''$mainMod, mouse_up, workspace, e-1''
];
binde = [
'', XF86AudioLowerVolume, exec, $SCRIPTS/volume.sh -5''
'', XF86AudioRaiseVolume, exec, $SCRIPTS/volume.sh 5''
];
bindel = [
'', XF86MonBrightnessDown, exec, $SCRIPTS/brightness.sh -4800''
'', XF86MonBrightnessUp, exec, $SCRIPTS/brightness.sh 4800''
];
bindr = [
''SUPERCTRL, Control_L, togglespecialworkspace, ctrl''
''SUPERALT, Alt_L, togglespecialworkspace, alt''
''SUPERALT, ALT_R, togglespecialworkspace, altgr''
''SUPERCTRL, Control_R, togglespecialworkspace, strg''
];
bindm = [
# Move/resize windows with mainMod + LMB/RMB and dragging
''$mainMod, mouse:272, movewindow''
''$mainMod, mouse:273, resizewindow''
];
# ------------------------------------------
# ########################################
# ####### Workspaces ###########
# ########################################
# ------------------------------------------
workspace = [
"1, persistent:true"
"2, persistent:true"
"3, persistent:true"
"4, persistent:true"
"5, persistent:true"
"6, persistent:true"
"7, persistent:true"
"8, persistent:true"
"8, persistent:true"
"9, persistent:true"
"name:special:ctrl, persistent:true"
"name:special:alt, persistent:true"
"name:special:altgr, persistent:true"
"name:special:strg, persistent:true"
];
};
};
};
}

View file

@ -0,0 +1,15 @@
{ ...}:
{
home-manager.users.willifan = {
services.hyprpaper = {
enable = true;
settings = {
splash = true;
ipc = "off";
};
};
};
}

View file

@ -0,0 +1,11 @@
{ ... }:
{
home-manager.users.willifan = {
services.mako = {
enable = true;
borderRadius = 10;
borderSize = 2;
};
};
}

View file

@ -0,0 +1,13 @@
{ ... }:
{
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
};
}

View file

@ -0,0 +1,24 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
polkit_gnome
];
security.polkit.enable = true;
systemd = {
user.services.polkit-gnome-authentication-agent-1 = {
description = "polkit-gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
};
}

View file

@ -0,0 +1,22 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
hyprpicker
hyprcursor
grim
slurp
wl-clipboard
playerctl
dconf
jq
pulseaudio
inotify-tools
papirus-icon-theme
eww
];
}

View file

@ -0,0 +1,83 @@
{ ...}:
{
home-manager.users.willifan = {
programs.wlogout = {
enable = true;
layout = [
{
label = "shutdown";
action = "systemctl poweroff";
text = "Shutdown";
}
{
label = "hyprland";
action = "hyprctl dispatch exit";
text = "Exit Hyprland";
}
{
label = "whatever";
action = "";
text = "whatever";
}
{
label = "reboot";
action = "systemctl reboot";
text = "Reboot";
}
{
label = "suspend";
action = "systemctl suspend";
text = "Suspend";
}
{
label = "hibernate";
action = "systemctl hibernate";
text = "Hibernate";
}
];
style = ''
@import url("file:///home/willifan/.config/gtk-4.0/gtk.css");
* {
background-image: none;
box-shadow: none;
}
window {
background-color: rgba(12, 12, 12, 0.9);
}
button {
border-radius: 10px;
border-color: #ffa44b;
border-style: solid;
border-width: 2px;
background-repeat: no-repeat;
background-position: center;
background-size: 25%;
}
button:focus, button:active, button:hover {
/*background-color: #3700B3;*/
outline-style: none;
}
#suspend {
background-image: image(url("/home/willifan/.config/desktop-utils/images/suspend.png"));
}
#hibernate {
background-image: image(url("/home/willifan/.config/desktop-utils/images/hibernate.png"));
}
#shutdown {
background-image: image(url("/home/willifan/.config/desktop-utils/images/shutdown.png"));
}
#reboot {
background-image: image(url("/home/willifan/.config/desktop-utils/images/reboot.png"));
}
'';
};
};
}

View file

@ -1,17 +1,10 @@
{ ... }:
{
programs.hyprland.enable = true;
imports = [
./fuzzel.nix
./hyprland.nix
./hyprpaper.nix
./mako.nix
./pipewire.nix
./polkit.nix
./utils.nix
./wlogout.nix
];
}