git hyprland

This commit is contained in:
unexplrd
2025-03-07 13:13:58 +02:00
parent 37f0fc43b1
commit efd7fd542e
6 changed files with 590 additions and 141 deletions

View File

@ -1,4 +1,5 @@
{
perSystem,
osConfig,
config,
pkgs,
@ -8,6 +9,7 @@
cfg = config.desktop.hyprland;
hostname = osConfig.networking.hostName;
cursor_size = toString config.stylix.cursor.size;
colors = config.lib.stylix.colors;
keyboard =
if hostname == "eldrid"
then "chromeos"
@ -20,6 +22,8 @@ in {
lib.mkEnableOption "enable hyprland desktop";
};
config = lib.mkIf cfg.enable {
stylix.targets.waybar.enable = false;
stylix.targets.hyprland.enable = false;
wayland.windowManager.hyprland = {
enable = true;
systemd = {
@ -28,12 +32,13 @@ in {
"--all"
];
};
package = pkgs.hyprland;
plugins = with pkgs.hyprlandPlugins; [
# hyprspace
# hy3
hyprscroller
];
package = perSystem.hyprland.hyprland;
portalPackage = perSystem.hyprland.xdg-desktop-portal-hyprland;
# plugins = with pkgs.hyprlandPlugins; [
# hyprspace
# hy3
# hyprscroller
# ];
settings = {
input = {
kb_layout = "us,ua";
@ -72,14 +77,11 @@ in {
"desc:Chimei Innolux Corporation 0x1406, preferred, 1920x0, 1.2"
];
env = [
# "EDITOR,hx"
"ELECTRON_OZONE_PLATFORM_HINT,auto"
"QT_QPA_PLATFORM,wayland"
"QT_QPA_PLATFORMTHEME,gtk3"
"XCURSOR_SIZE,${cursor_size}"
#"GTK_THEME,adw-gtk3"
"GSK_RENDERER,ngl"
# "DISPLAY,:123"
];
decoration = {
shadow.enabled = false;
@ -107,8 +109,6 @@ in {
"windows, 1, 3, easeOutExpo, popin 80%"
"layers, 1, 2, easeOutExpo, fade"
];
#group = {
# };
plugin = [
{
overview = {
@ -144,15 +144,15 @@ in {
text_center = true;
text_font = "${config.stylix.fonts.sansSerif.name}";
"col.active" = "0xff${config.lib.stylix.colors.base00}";
"col.inactive" = "0xff${config.lib.stylix.colors.base00}";
"col.urgent" = "0xff${config.lib.stylix.colors.base00}";
"col.active.text" = "0xff${config.lib.stylix.colors.base0D}";
"col.inactive.text" = "0xff${config.lib.stylix.colors.base05}";
"col.urgent.text" = "0xff${config.lib.stylix.colors.base09}";
"col.active.border" = "0xff${config.lib.stylix.colors.base00}";
"col.inactive.border" = "0xff${config.lib.stylix.colors.base00}";
"col.urgent.border" = "0xff${config.lib.stylix.colors.base00}";
"col.active" = "0xff${colors.base00}";
"col.inactive" = "0xff${colors.base00}";
"col.urgent" = "0xff${colors.base00}";
"col.active.text" = "0xff${colors.base0D}";
"col.inactive.text" = "0xff${colors.base05}";
"col.urgent.text" = "0xff${colors.base09}";
"col.active.border" = "0xff${colors.base00}";
"col.inactive.border" = "0xff${colors.base00}";
"col.urgent.border" = "0xff${colors.base00}";
};
};
}
@ -163,14 +163,14 @@ in {
gesture_scroll_fingers = 3;
gesture_overview_fingers = 3;
jump_labels_font = "${config.stylix.fonts.sansSerif.name}";
jump_labels_color = "0xff${config.lib.stylix.colors.base0A}";
jump_labels_color = "0xff${colors.base0A}";
};
}
];
dwindle = {
force_split = 2;
default_split_ratio = 1.4;
default_split_ratio = 1.2;
};
master = {
mfact = 0.6;
@ -194,27 +194,31 @@ in {
"$clipboardManager" = "copyq menu";
general = {
"col.active_border" = "0xff${colors.base0D}";
"col.inactive_border" = "0xff${colors.base03}";
gaps_in = 4;
gaps_out = 8;
border_size = 3;
allow_tearing = true;
layout = "scroller";
layout = "dwindle";
};
group = {
"col.border_active" = "0xff${colors.base0D}";
"col.border_inactive" = "0xff${colors.base03}";
"col.border_locked_active" = "0xff${colors.base0A}";
"col.border_locked_inactive" = "0xff${colors.base0F}";
groupbar = {
height = 24;
rounding = 6;
gradient_rounding = 8;
font_size = 24;
gradients = true;
font_family = "${config.stylix.fonts.sansSerif.name}";
"text_color" = "0xff${colors.base00}";
"col.active" = "0xff${colors.base0D}";
"col.inactive" = "0xff${colors.base03}";
};
};
# group = {
# groupbar = lib.mkDefault {
# height = 24;
# font_size = 14;
# font_family = "${config.stylix.fonts.sansSerif.name}";
# "col.active" = "0xff${config.lib.stylix.colors.base00}";
# "col.inactive" = "0xff${config.lib.stylix.colors.base00}";
# # "col.urgent" = "0xff${config.lib.stylix.colors.base00}";
# "col.text.active" = "0xff${config.lib.stylix.colors.base0D}";
# "col.text.inactive" = "0xff${config.lib.stylix.colors.base05}";
# # "col.text.urgent" = "0xff${config.lib.stylix.colors.base09}";
# };
# };
# bindn = [", mouse:272, hy3:focustab, mouse"];
bind = [
@ -226,24 +230,26 @@ in {
"$modCtrl, G, togglefloating"
"$mod, G, pin"
"$mod, Z, scroller:setmode, row"
"$mod, X, scroller:setmode, column"
"$mod, M, scroller:fitwidth, active"
"$mod, H, scroller:setwidth, 1"
"$mod, C, scroller:cyclewidth, next"
"$modShift, C, scroller:cycleheight, next"
"$modShift, M, scroller:fitheight, active"
"$modShift, H, scroller:setheight, onehalf"
"$mod, comma, scroller:admitwindow, l"
"$mod, period, scroller:admitwindow, r"
"$modCtrl, comma, scroller:expelwindow, l"
"$modCtrl, period, scroller:expelwindow, r"
"$mod, backspace, scroller:toggleoverview"
"$modCtrl, backspace, scroller:jump"
# "$mod, Z, scroller:setmode, row"
# "$mod, X, scroller:setmode, column"
# "$mod, M, scroller:fitwidth, active"
# "$mod, H, scroller:setwidth, 1"
# "$mod, C, scroller:cyclewidth, next"
# "$modShift, C, scroller:cycleheight, next"
# "$modShift, M, scroller:fitheight, active"
# "$modShift, H, scroller:setheight, onehalf"
# "$mod, comma, scroller:admitwindow, l"
# "$mod, period, scroller:admitwindow, r"
# "$modCtrl, comma, scroller:expelwindow, l"
# "$modCtrl, period, scroller:expelwindow, r"
# "$mod, backspace, scroller:toggleoverview"
# "$modCtrl, backspace, scroller:jump"
# "$mod,T, togglegroup"
# "$mod, period, changegroupactive, f"
# "$mod, comma, changegroupactive, b"
"$mod, T, togglegroup"
"$mod, period, changegroupactive, f"
"$mod, comma, changegroupactive, b"
"$modCtrl, period, movewindoworgroup, r"
"$modCtrl, comma, movewindoworgroup, l"
# "$mod, S, hy3:changegroup, opposite"
# "$mod, T, hy3:changegroup, toggletab"
# "$mod, S, hy3:changegroup, opposite"
@ -254,39 +260,46 @@ in {
# "$mod, Tab, overview:toggle"
# "$mod, Tab, hyprexpo:expo, toggle"
"$mod, Tab, cyclenext,"
"$modShift, Tab, cyclenext, prev"
"$mod, Tab, bringactivetotop,"
"$modShift, U, focusurgentorlast"
"$modCtrl, L, exec, $screenLocker"
"$modCtrl, B, exec, $webBrowser"
"$modCtrl, V, exec, $clipboardManager"
"$modCtrl, K, focuswindow, title:(Meet:.*)"
# ", Print, exec, ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp -o -r -c '\#\#00000000')\" -t ppm - | ${pkgs.satty}/bin/satty --filename - --fullscreen --output-filename ${xdgPictures}/screenshots/satty-$(date '+%Y%m%d-%H:%M:%S').png"
", Print, exec, hyprshot -z -m region -o ${config.xdg.userDirs.pictures}/screenshots -f screenshot-$(date '+%Y%m%d-%H:%M:%S').png"
"CTRL, Print, exec, hyprshot -z -m window -o ${config.xdg.userDirs.pictures}/screenshots -f screenshot-$(date '+%Y%m%d-%H:%M:%S').png"
"SHIFT, Print, exec, hyprshot -z -m output -o ${config.xdg.userDirs.pictures}/screenshots -f screenshot-$(date '+%Y%m%d-%H:%M:%S').png"
", Print, exec, hyprshot -z -m region -o ${xdgPictures}/screenshots -f screenshot-$(date '+%Y%m%d-%H:%M:%S').png"
"CTRL, Print, exec, hyprshot -z -m window -o ${xdgPictures}/screenshots -f screenshot-$(date '+%Y%m%d-%H:%M:%S').png"
"SHIFT, Print, exec, hyprshot -z -m output -o ${xdgPictures}/screenshots -f screenshot-$(date '+%Y%m%d-%H:%M:%S').png"
## navigation
"$mod, $left, scroller:movefocus, l"
"$mod, $down, scroller:movefocus, d"
"$mod, $up, scroller:movefocus, u"
"$mod, $right, scroller:movefocus, r"
"$mod, $left, movefocus, l"
"$mod, $down, movefocus, d"
"$mod, $up, movefocus, u"
"$mod, $right, movefocus, r"
"$modShift, $left, workspace, e-1"
"$modShift, $right, workspace, e+1"
"$mod, left, scroller:movefocus, l"
"$mod, up, scroller:movefocus, u"
"$mod, down, scroller:movefocus, d"
"$mod, right, scroller:movefocus, r"
"$mod, left, movefocus, l"
"$mod, up, movefocus, u"
"$mod, down, movefocus, d"
"$mod, right, movefocus, r"
"$modShift, W, focuscurrentorlast"
"$mod, mouse_down, workspace, e-1"
"$mod, mouse_up, workspace, e+1"
"$modShift, left, workspace, e-1"
"$modShift, right, workspace, e+1"
"$modShift, down, focusmonitor, e+1"
"$modShift, up, focusmonitor, e-1"
"$modCtrl, $left, scroller:movewindow, l"
"$modCtrl, $down, scroller:movewindow, d"
"$modCtrl, $up, scroller:movewindow, u"
"$modCtrl, $right, scroller:movewindow, r"
"$modCtrl, left, scroller:movewindow, l"
"$modCtrl, up, scroller:movewindow, u"
"$modCtrl, down, scroller:movewindow, d"
"$modCtrl, right, scroller:movewindow, r"
"$modCtrl, $left, movewindow, l"
"$modCtrl, $down, movewindow, d"
"$modCtrl, $up, movewindow, u"
"$modCtrl, $right, movewindow, r"
"$modCtrl, left, movewindow, l"
"$modCtrl, up, movewindow, u"
"$modCtrl, down, movewindow, d"
"$modCtrl, right, movewindow, r"
# workspaces
"$mod, 1, workspace, 1"
"$mod, 2, workspace, 2"
@ -444,20 +457,20 @@ in {
# "workspace name:game, class:"
];
};
# extraConfig = ''
# bind = $modShift, R, submap, resize
# submap = resize
# binde = , right, resizeactive, 10 0
# binde = , left, resizeactive, -10 0
# binde = , up, resizeactive, 0 -10
# binde = , down, resizeactive, 0 10
# binde = , $right, resizeactive, 10 0
# binde = , $left, resizeactive, -10 0
# binde = , $up, resizeactive, 0 -10
# binde = , $down, resizeactive, 0 10
# bind = , escape, submap, reset
# submap = reset
# '';
extraConfig = ''
bind = $modShift, R, submap, resize
submap = resize
binde = , right, resizeactive, 10 0
binde = , left, resizeactive, -10 0
binde = , up, resizeactive, 0 -10
binde = , down, resizeactive, 0 10
binde = , $right, resizeactive, 10 0
binde = , $left, resizeactive, -10 0
binde = , $up, resizeactive, 0 -10
binde = , $down, resizeactive, 0 10
bind = , escape, submap, reset
submap = reset
'';
};
services = {
hyprpaper.enable = true;
@ -509,7 +522,6 @@ in {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
stylix.targets.waybar.enable = false;
programs.waybar = {
enable = true;
systemd = {
@ -715,22 +727,22 @@ in {
};
};
style = ''
@define-color base00 #${config.lib.stylix.colors.base00};
@define-color base01 #${config.lib.stylix.colors.base01};
@define-color base02 #${config.lib.stylix.colors.base02};
@define-color base03 #${config.lib.stylix.colors.base03};
@define-color base04 #${config.lib.stylix.colors.base04};
@define-color base05 #${config.lib.stylix.colors.base05};
@define-color base06 #${config.lib.stylix.colors.base06};
@define-color base07 #${config.lib.stylix.colors.base07};
@define-color base08 #${config.lib.stylix.colors.base08};
@define-color base09 #${config.lib.stylix.colors.base09};
@define-color base0A #${config.lib.stylix.colors.base0A};
@define-color base0B #${config.lib.stylix.colors.base0B};
@define-color base0C #${config.lib.stylix.colors.base0C};
@define-color base0D #${config.lib.stylix.colors.base0D};
@define-color base0E #${config.lib.stylix.colors.base0E};
@define-color base0F #${config.lib.stylix.colors.base0F};
@define-color base00 #${colors.base00};
@define-color base01 #${colors.base01};
@define-color base02 #${colors.base02};
@define-color base03 #${colors.base03};
@define-color base04 #${colors.base04};
@define-color base05 #${colors.base05};
@define-color base06 #${colors.base06};
@define-color base07 #${colors.base07};
@define-color base08 #${colors.base08};
@define-color base09 #${colors.base09};
@define-color base0A #${colors.base0A};
@define-color base0B #${colors.base0B};
@define-color base0C #${colors.base0C};
@define-color base0D #${colors.base0D};
@define-color base0E #${colors.base0E};
@define-color base0F #${colors.base0F};
* {
font-family: ${config.stylix.fonts.sansSerif.name}, FontAwesome;
font-weight: 500;
@ -1189,11 +1201,11 @@ in {
dots_center = true;
fade_on_empty = false;
font_family = "${config.stylix.fonts.serif.name}";
font_color = "rgb(${config.lib.stylix.colors.base05})";
inner_color = "rgb(${config.lib.stylix.colors.base00})";
outer_color = "rgb(${config.lib.stylix.colors.base0D})";
check_color = "rgb(${config.lib.stylix.colors.base0A})";
fail_color = "rgb(${config.lib.stylix.colors.base08})";
font_color = "rgb(${colors.base05})";
inner_color = "rgb(${colors.base00})";
outer_color = "rgb(${colors.base0D})";
check_color = "rgb(${colors.base0A})";
fail_color = "rgb(${colors.base08})";
placeholder_text = "locked...";
fail_text = "wrong";
#placeholder_text = '\'<span foreground="##cad3f5">Password...</span>'\';
@ -1205,8 +1217,8 @@ in {
rounding = 12;
#border_size = 3;
size = "274, 50";
color = "rgb(${config.lib.stylix.colors.base00})";
border_color = "rgb(${config.lib.stylix.colors.base0D})";
color = "rgb(${colors.base00})";
border_color = "rgb(${colors.base0D})";
position = "0, 60";
halign = "center";
valign = "center";
@ -1215,8 +1227,8 @@ in {
rounding = 12;
#border_size = 3;
size = "274, 50";
color = "rgb(${config.lib.stylix.colors.base00})";
border_color = "rgb(${config.lib.stylix.colors.base0D})";
color = "rgb(${colors.base00})";
border_color = "rgb(${colors.base0D})";
position = "0, -60";
halign = "center";
valign = "center";
@ -1229,8 +1241,8 @@ in {
text_align = "center";
font_size = 16;
font_family = "${config.stylix.fonts.serif.name}";
outer_color = "rgb(${config.lib.stylix.colors.base00})";
color = "rgb(${config.lib.stylix.colors.base05})";
outer_color = "rgb(${colors.base00})";
color = "rgb(${colors.base05})";
position = "0, 60";
halign = "center";
valign = "center";
@ -1241,8 +1253,8 @@ in {
text_align = "center";
font_size = 16;
font_family = "${config.stylix.fonts.serif.name}";
outer_color = "rgb(${config.lib.stylix.colors.base00})";
color = "rgb(${config.lib.stylix.colors.base05})";
outer_color = "rgb(${colors.base00})";
color = "rgb(${colors.base05})";
position = "0, -60";
halign = "center";
valign = "center";
@ -1251,7 +1263,7 @@ in {
};
};
services.wlsunset = {
enable = true;
enable = false;
latitude = "49.6";
longitude = "36.1";
temperature = {
@ -1268,6 +1280,7 @@ in {
};
home.packages = with pkgs; [
brightnessctl
hyprsunset
nautilus
helvum
loupe
@ -1361,6 +1374,14 @@ in {
ExecStart = "${pkgs.hyprpolkitagent}/libexec/hyprpolkitagent";
};
};
hyprsunset = mkGraphicalService {
Service =
graphicalService.Service
// {
Type = "simple";
ExecStart = "${lib.getExe pkgs.hyprsunset} -t 6500";
};
};
};
};
};

View File

@ -27,7 +27,7 @@ in {
copyq.enable = true;
gnome-keyring = {
enable = true;
components = ["secrets" "ssh"];
components = ["secrets"];
};
udiskie = {
enable = true;

View File

@ -16,7 +16,7 @@ in {
settings = {
version = 2;
final_space = true;
console_title_template = "{{ .Shell }} in {{ .Folder }}";
console_title_template = "{{ if .SSHSession }}[{{ .HostName }}] {{ end }}{{ .Shell }} in {{ .Folder }}";
blocks = [
{
type = "prompt";
@ -57,6 +57,15 @@ in {
fetch_status = true;
};
}
{
type = "session";
style = "diamond";
foreground = "white";
background = "transparent";
leading_diamond = "";
trailing_diamond = "";
template = "{{ if .SSHSession }} 󰢹 {{ .UserName }}@{{ .HostName }}{{ end }}";
}
];
}
{