This commit is contained in:
Charlie Root 2024-07-22 22:46:11 +02:00
commit 46d79f6f18
12 changed files with 151 additions and 57 deletions

View file

@ -20,6 +20,11 @@
;
in {
config = lib.mkIf cfg.enable {
programs.hyprland = {
enable = true;
inherit (cfg) package;
portalPackage = inputs'.hyprland.packages.xdg-desktop-portal-hyprland;
};
# xdg Portal
xdg.portal = {
enable = true;
@ -30,16 +35,21 @@ in {
pkgs.xdg-desktop-portal-gtk
inputs'.hyprland.packages.xdg-desktop-portal-hyprland
];
config = {
common.default = ["hyprland"];
};
#config.common.default = "hyprland";
};
home-manager.users.${username} = {
wayland.windowManager.hyprland = {
enable = true;
inherit (cfg) package;
# Split-monitor-workspaces provides awesome-like workspace behaviour
plugins = [
split-monitor-workspaces
];
# Xwayland for X applications
xwayland.enable = true;
# No idea why I set this
@ -122,21 +132,25 @@ in {
kb_rules = "";
follow_mouse = true;
repeat_rate = 50;
repeat_delay = 250;
touchpad = {
disable_while_typing = true;
};
};
general = {
sensitivity = 1.0;
gaps_in = 0;
gaps_out = 0;
gaps_in = 5;
gaps_out = 2;
border_size = 2;
no_border_on_floating = true;
};
#Decoration settings
decoration = {
rounding = 0;
rounding = 10;
blur = {
enabled = true;
size = 3;
@ -169,8 +183,6 @@ in {
};
dwindle = {no_gaps_when_only = true;};
debug.disable_logs = false;
cursor = {
hide_on_key_press = true;
no_hardware_cursors = true;
@ -201,7 +213,7 @@ in {
];
# Keybinds
bind = [
"$mainMod, RETURN, exec, ${foot}/bin/foot -D ~"
"$mainMod, RETURN, exec, ${foot}/bin/foot"
"$mainMod, Q, killactive"
"$mainMod, F, fullscreen, 0"
"$mainMod, D, exec, ${pkgs.procps}/bin/pkill anyrun || ${anyrun}/bin/anyrun"
@ -264,6 +276,7 @@ in {
# File manager
"$mainMod, E, exec, ${pkgs.xfce.thunar}/bin/thunar"
# Toggle the four different special workspaces.
"$mainMod, B, togglespecialworkspace, btop"
"$mainMod, V, togglespecialworkspace, pipewire"
@ -272,9 +285,11 @@ in {
# Reload hyprland
"$mainMod, R, exec, ${cfg.package}/bin/hyprctl reload"
# Restart waybar
"$mainMod CONTROL, B, exec, ${pkgs.procps}/bin/pkill waybar || ${pkgs.waybar}/bin/waybar"
];
binde = [
# window focus
"$mainMod, H, movefocus, l"
@ -282,6 +297,7 @@ in {
"$mainMod, K, movefocus, u"
"$mainMod, L, movefocus, r"
];
# Media controls
bindl = let
play-pause = "${pkgs.playerctl}/bin/playerctl play-pause";
@ -311,6 +327,7 @@ in {
"$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow"
];
# Some more movement-related settings
binds = {
pass_mouse_when_bound = false;
@ -319,16 +336,16 @@ in {
# Programs which get executed at Hyprland start.
exec-once = [
#start waybar
# "${waybar}/bin/waybar"
"${pkgs.waybar}/bin/waybar"
# run persistent special workspace windows
"[workspace special:nixos; silent;tile] ${foot}/bin/foot -D ~/projects/nichts nvim"
"[workspace special:nixos; silent;tile] ${foot}/bin/foot -D ~/projects/nichts nix develop"
"[workspace special:keepassxc; silent;tile] ${pkgs.keepassxc}/bin/keepassxc"
"${swww}/bin/swww-daemon"
"${wlsunset}/bin/wlsunset -S 06:00 -s 20:00"
"${pkgs.waybar}/bin/waybar"
];
exec = [
@ -336,7 +353,7 @@ in {
"${pkgs.procps}/bin/pkill btop"
"${pkgs.procps}/bin/pkill pavucontrol"
# and run it all again
"[workspace special:btop;silent;tile] ${foot}/bin/foot ${pkgs.btop}/bin/btop"
"[workspace special:btop silent;tile] ${foot}/bin/foot -e ${pkgs.btop}/bin/btop"
# "[workspace special:pipewire silent;tile] ${pkgs.helvum}/bin/helvum"
"[workspace special:pipewire;silent;tile] ${pkgs.pavucontrol}/bin/pavucontrol"
@ -345,6 +362,5 @@ in {
};
};
};
environment.systemPackages = with pkgs; [libnotify];
};
}

View file

@ -0,0 +1,96 @@
{
config,
inputs,
inputs',
lib,
pkgs,
...
}: let
cfg = config.myOptions.programs.hypr.lock;
inherit (config.myOptions.other.system) username;
inherit (lib) mkEnableOption mkIf mkOption;
inherit (lib.types) attrs;
text_color = "rgba(eae0e4FF)";
in {
options.myOptions.programs.hypr.lock = {
enable = mkEnableOption "hiper zamek";
extraSettings = mkOption {
type = attrs;
description = "extra per host hyprlock settings";
default = {};
};
};
config = mkIf cfg.enable {
home-manager.users.${username} = {
imports = [inputs.hyprlock.homeManagerModules.default];
programs.hyprlock = {
enable = true;
package = inputs'.hyprlock.packages.hyprlock;
general = {
grace = 2;
};
backgrounds = [
{
color = "rgba(120f1177)";
path = "screenshot";
blur_size = 5;
blur_passes = 4;
}
];
input-fields = [
{
size = {
width = 600;
height = 50;
};
outline_thickness = 3;
dots_size = 0.1;
dots_spacing = 0.3;
outer_color = "rgba(9a8d9555)";
inner_color = "rgba(120f1111)";
font_color = "rgba(d1c2cbff)";
fade_on_empty = true;
position = {
x = 0;
y = 20;
};
halign = "center";
valign = "center";
}
];
labels = [
{
# clock
text = "$TIME";
color = text_color;
font_size = 65;
position = {
x = 0;
y = 300;
};
halign = "center";
valign = "center";
}
{
# battery
text = "cmd[update:1000] echo \"$(cat /sys/class/power_supply/BAT0/capacity)%\"";
color = text_color;
font_size = 30;
position = {
x = 0;
y = 200;
};
halign = "center";
valign = "center";
}
];
};
};
};
}

View file

@ -4,43 +4,37 @@
...
}: let
cfg = config.modules.wms.wayland;
hyprland = config.modules.wms.wayland.hyprland;
inherit (lib) mkIf mkEnableOption;
in {
options.modules.wms.wayland.enable = lib.mkEnableOption "wayland";
# options.modules.wms.wayland.hyprland.enable = mkEnableOption "hyprland";
config = lib.mkIf cfg.enable {
# lib.mkMerge [
# {
options.modules.wms.wayland.enable = mkEnableOption "wayland";
config = mkIf cfg.enable {
environment.variables = {
NIXOS_OZONE_WL = "1";
__GL_GSYNC_ALLOWED = "0";
__GL_VRR_ALLOWED = "0";
DISABLE_QT5_COMPAT = "0";
GDK_BACKEND = "wayland";
ANKI_WAYLAND = "1";
#WLR_DRM_NO_ATOMIC = "1";
#QT_AUTO_SCREEN_SCALE_FACTOR = "1";
QT_QPA_PLATFORM = "wayland";
DISABLE_QT_COMPAT = "0";
#QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
MOZ_ENABLE_WAYLAND = "1";
XDG_SESSION_TYPE = "wayland";
SDL_VIDEODRIVER = "wayland";
CLUTTER_BACKEND = "wayland";
# Session variables for Hyprland
# (lib.mkIf (hyprland.enable) {
# environment.variables = {
LIBVA_DRIVER_NAME = "nvidia";
GTK_USE_PORTAL = "1";
NIXOS_XDG_OPEN_USE_PORTAL = "1";
XDG_CURRENT_DESKTOP = "Hyprland";
XDG_SESSION_DESKTOP = "Hyprland";
XDG_SESSION_TYPE = "wayland";
ELECTRON_OZONE_PLATFORM_HINT = "auto";
WLR_RENDERER_ALLOW_SOFTWARE = "1";
# Needed anymore?
LIBSEAT_BACKEND = "logind";
};
# })
# ];
};
}