Oops. thats a big commit

This commit is contained in:
Reid 2024-10-15 19:51:27 -07:00
parent dfcb53a44e
commit c5ed13b511
Signed by: reidlab
GPG key ID: DAF5EAF6665839FD
25 changed files with 393 additions and 303 deletions

View file

@ -13,7 +13,7 @@ in {
};
config = mkIf cfg.enable {
hm.wayland.windowManager.hyprland.settings.exec-once = [
modules.desktop.execOnStart = [
# -w 20 -c 10 -d 5 -- set battery levels
# -p -- notify on plug/unplug
# -m 2 -- set interval to 2 seconds

View file

@ -16,11 +16,10 @@ in {
# runtime dependencies
user.packages = with pkgs; [ wl-clipboard ];
modules.desktop.execOnStart = [ "${lib.getExe cfg.package} -listen-shell" ];
hm.wayland.windowManager.hyprland.settings = let
class = "clipse";
in {
exec-once = [ "${lib.getExe cfg.package} -listen-shell" ];
windowrulev2 = [
"float, class:^${class}$"
"size 622 652, class:^${class}$"

View file

@ -9,6 +9,11 @@ in {
type = types.nullOr (types.enum ["x11" "wayland"]);
description = "What display protocol to use";
};
execOnStart = mkOption {
type = types.listOf types.str;
description = "List of commands to run on startup";
default = null;
};
};
config = mkMerge [
@ -16,8 +21,25 @@ in {
modules.desktop.fonts.enable = true;
modules.desktop.fonts.baseFonts = true;
# mounting and trash functionality, the recommended solution for most file managers
# bootloader
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# enable networking
networking.networkmanager.enable = true;
# speed up boot
# https://discourse.nixos.org/t/boot-faster-by-disabling-udev-settle-and-nm-wait-online/6339
systemd.services.systemd-udev-settle.enable = false;
systemd.services.NetworkManager-wait-online.enable = false;
# mounting, trash, and mtp support
services.gvfs.enable = true;
# various evironment variables that are needed for everything desktop related
environment.sessionVariables = {
MOZ_DISABLE_RDD_SANDBOX = "1";
};
}
(mkIf (cfg.envProto == "wayland") {
environment.sessionVariables = {

View file

@ -9,7 +9,7 @@ in {
};
config = mkIf cfg.enable {
hm.wayland.windowManager.hyprland.settings.exec-once = [ "${pkgs.gammastep}/bin/gammastep-indicator" ];
modules.desktop.execOnStart = [ "${pkgs.gammastep}/bin/gammastep-indicator" ];
hm.services.gammastep = {
enable = true;
# portland, oregon

View file

@ -14,6 +14,7 @@ in {
};
config = mkIf cfg.enable {
hm.home.packages = [ cfg.package ];
hm.services.hypridle = let
hyprctl = "${config.modules.desktop.hyprland.package}/bin/hyprctl";
in {

View file

@ -179,7 +179,7 @@ in {
"${lib.getExe pkgs.networkmanagerapplet}" # network applet
"${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1" # polkit agent
"${lib.getExe pkgs.wl-clip-persist} --clipboard regular" # to fix wl clipboards disappearing
];
] ++ config.modules.desktop.execOnStart;
env = [
"XCURSOR_THEME,${config.modules.desktop.themes.cursorTheme.name}"
@ -269,14 +269,17 @@ in {
blur = {
enabled = true;
size = 4;
passes = 2;
size = 10;
passes = 3;
# popups and special workspace have blur disabled by default
popups = true;
special = true;
};
drop_shadow = true;
shadow_range = 4;
shadow_range = 6;
shadow_render_power = 3;
shadow_ignore_window = true;
};
animations = {
@ -308,6 +311,8 @@ in {
gestures = {
workspace_swipe = true;
workspace_swipe_min_speed_to_force = 0;
workspace_swipe_cancel_ratio = 0.1;
};
misc = {

View file

@ -15,6 +15,7 @@ in {
config = mkIf cfg.enable {
security.pam.services.hyprlock.text = "auth include login";
hm.home.packages = [ cfg.package ];
hm.programs.hyprlock = with config.colorScheme.palette; {
enable = true;
package = cfg.package;
@ -26,7 +27,6 @@ in {
no_fade_out = true;
text_trim = false;
};
background = [
{
path = toString ../../assets/lockscreen.png;
@ -35,46 +35,82 @@ in {
blur_size = 6;
}
];
shape = [
{
size = "280, 280";
color = "rgb(${base00})";
rounding = 48;
position = "0, 45";
halign = "center"; valign = "center";
shadow_passes = 3;
shadow_size = 8;
}
];
label = [
{
text = "cmd[update:1000] echo \"$(date +'%H:%M')\"";
font_size = 58;
color = "rgb(${base05})";
position = "0, 105";
text = "cmd[update:1000] echo \"<span font_weight='1000'>$(date +'%H')</span>\"";
font_size = 78;
color = "rgb(f5c2e7)"; # catppuccin pink
font_family = config.modules.desktop.fonts.fonts.sansSerif.family;
position = "0, 30";
halign = "center";
valign = "center";
halign = "center"; valign = "center";
}
{
text = "cmd[update:1000] echo \"$(date +'%A %B %e')\"";
position = "0, 20";
text = "cmd[update:1000] echo \"<span font_weight='1000'>$(date +'%M')</span>\"";
font_size = 78;
color = "rgb(${base05})";
font_family = config.modules.desktop.fonts.fonts.sansSerif.family;
halign = "center"; valign = "center";
}
{
position = "0, -45";
text = "cmd[update:1000] echo \"$(date +'%A, %d %B')\"";
font_size = 14;
color = "rgb(${base05})";
font_family = config.modules.desktop.fonts.fonts.sansSerif.family;
position = "0, 10";
halign = "center";
valign = "center";
halign = "center"; valign = "center";
}
{
position = "-15, -13";
halign = "right"; valign = "top";
color = "rgb(${base05})";
font_size = 14;
font_family = "Font Awesome 6 Free";
text = "";
shadow_passes = 3;
shadow_size = 8;
}
{
position = "-41, -10";
halign = "right"; valign = "top";
color = "rgb(${base05})";
font_size = 14;
font_family = config.modules.desktop.fonts.fonts.sansSerif.family;
text = "cmd[update:4000] echo \"<span font_weight='600'>$(cat /sys/class/power_supply/BAT0/capacity)%</span>\"";
shadow_passes = 3;
shadow_size = 8;
}
];
input-field = [
{
size = "300, 28";
position = "0, -140";
size = "280, 48";
outline_thickness = 2;
dots_size = 0.2;
dots_size = 0.3;
fade_on_empty = false;
placeholder_text = "";
outer_color = "rgb(${base0E})";
outer_color = "rgb(${base00})";
inner_color = "rgb(${base00})";
font_color = "rgb(${base05})";
check_color = "rgb(${base02})";
fail_color = "rgb(${base08})";
capslock_color = "rgb(${base09})";
position = "0, -30";
halign = "center";
valign = "center";
}
];
};

View file

@ -1,28 +0,0 @@
{ lib, config, inputs, system, ... }:
with lib;
let
cfg = config.modules.desktop.hyprpaper;
in {
options.modules.desktop.hyprpaper = {
enable = mkEnableOption "Enable hyprpaper, a wayland wallpaper utility";
package = mkOption {
type = types.package;
default = inputs.hyprpaper.packages.${system}.hyprpaper;
example = "pkgs.hyprpaper";
};
};
config = mkIf cfg.enable {
hm.wayland.windowManager.hyprland.settings.exec-once = [ "${lib.getExe cfg.package}" ];
hm.xdg.configFile."hypr/hyprpaper.conf" = let
img = ../../assets/wallpaper.png;
in {
text = ''
preload = ${img}
wallpaper = ,${img}
splash = false
'';
};
};
}

View file

@ -9,7 +9,7 @@ in {
};
config = mkIf cfg.enable {
hm.wayland.windowManager.hyprland.settings.exec-once = [ "${lib.getExe pkgs.nwg-drawer} -r -nofs -nocats -ovl -term wezterm -spacing 15 -fm nautilus" ];
modules.desktop.execOnStart = [ "${lib.getExe pkgs.nwg-drawer} -r -nofs -nocats -ovl -term wezterm -spacing 15 -fm nautilus" ];
hm.xdg.configFile."nwg-drawer/drawer.css".text = builtins.concatStringsSep "\n" [
"@import \"${inputs.waybar-catppuccin}/themes/mocha.css\";"
(lib.readFile ../../config/nwg-drawer.css)

View file

@ -9,7 +9,6 @@ in {
};
config = mkIf cfg.enable {
# unsure if it's correct to put this in `environment.systemPackages`
environment.systemPackages = with pkgs; [
config.modules.desktop.themes.sddmTheme.package
config.modules.desktop.themes.cursorTheme.package
@ -19,7 +18,7 @@ in {
];
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
wayland.enable = config.modules.desktop.envProto == "wayland";
theme = config.modules.desktop.themes.sddmTheme.name;
settings = {
Theme = {

28
modules/desktop/swww.nix Normal file
View file

@ -0,0 +1,28 @@
{ lib, config, inputs, system, pkgs, ... }:
with lib;
let
cfg = config.modules.desktop.swww;
img = ../../assets/wallpaper.png;
in {
options.modules.desktop.swww = {
enable = mkEnableOption "Enable swww, a Solution to your Wayland Wallpaper Woes";
package = mkOption {
type = types.package;
default = pkgs.swww;
example = "pkgs.swww";
};
startScript = mkOption {
type = types.package;
default = pkgs.writeScript "swww-start" ''
${cfg.package}/bin/swww-daemon &
${lib.getExe cfg.package} img "${img}" --transition-type none
'';
};
};
config = mkIf cfg.enable {
modules.desktop.execOnStart = [ "${cfg.startScript}" ];
};
}

View file

@ -18,6 +18,8 @@ window#waybar {
font-family: CozetteVector, monospace, FontAwesome, Noto Sans CJK;
font-size: 13px;
font-style: normal;
border: 1px solid @surface0;
}
#workspaces, .modules-right box {

View file

@ -14,7 +14,13 @@ in {
};
config = mkIf cfg.enable {
hm.wayland.windowManager.hyprland.settings.exec-once = [ "${lib.getExe cfg.package}" ];
# runtime requirements for modules
user.packages = with pkgs; [
# mpris
playerctl
];
modules.desktop.execOnStart = [ "${lib.getExe cfg.package}" ];
hm.programs.waybar = {
enable = true;
package = cfg.package;
@ -54,11 +60,11 @@ in {
modules = [
"pulseaudio"
"backlight"
#"network"
"cpu"
"memory"
"power-profiles-daemon"
"battery"
"custom/weather"
"privacy"
];
};
@ -70,18 +76,18 @@ in {
};
"custom/power" = let
powerSelect = pkgs.writeScript "power-menu" ''
cmd=$(echo 'shutdown|reboot|lock|exit Hyprland' | ${lib.getExe pkgs.rofi-wayland} -dmenu -sep '|' -i -p 'what to do ?' -theme-str 'window { height: 132px; }')
cmd=$(echo ' shutdown| reboot| lock| exit desktop environment' | ${lib.getExe pkgs.rofi-wayland} -dmenu -sep '|' -i -p 'what to do ?' -theme-str 'window { height: 132px; }')
case "$cmd" in
shutdown)
shutdown now
" shutdown")
poweroff
;;
reboot)
" reboot")
reboot
;;
lock)
${lib.getExe config.modules.desktop.hyprlock.package}
" lock")
${pkgs.systemd}/bin/loginctl lock-session
;;
"exit Hyprland")
" exit desktop environment")
${config.modules.desktop.hyprland.package}/bin/hyprctl dispatch exit
;;
esac
@ -139,17 +145,6 @@ in {
};
separate-outputs = true;
};
#network = {
# format = "";
# format-ethernet = "";
# format-wifi = " {signalStrength}%";
# format-disconnected = "";
# tooltip-format = "{ifname} via {gwaddr}";
# tooltip-format-wifi = "connected to {essid}";
# tooltip-format-ethernet = "{ifname}";
# tooltip-format-disconnected = "Disconnected";
# on-click = "${pkgs.networkmanagerapplet}/bin/nm-connection-editor";
#};
pulseaudio = {
format = "{icon} {volume}%";
format-bluetooth = "{icon} {volume}%";
@ -215,16 +210,15 @@ in {
];
};
mpris = {
format = " {dynamic}";
format = "{status_icon} {dynamic}";
format-paused = "{status_icon} {dynamic}";
dynamic-order = [ "title" ];
tooltip-format = "{player}: {dynamic}";
interval = 1;
status-icons = {
playing = "";
paused = "";
playing = "";
paused = "";
};
player = "firefox";
};
clock = {
format = "{:%H:%M}";
@ -252,6 +246,18 @@ in {
};
};
};
tray = {
icon-size = 16;
spacing = 4;
};
"custom/weather" = {
format = "{}°";
tooltip = true;
interval = 3600;
# doxxing live stream
exec = "${lib.getExe pkgs.wttrbar} --location 'Corvallis, Oregon, United States' --hide-conditions --fahrenheit --mph";
return-type = "json";
};
};
};
};

View file

@ -14,12 +14,12 @@ in {
};
config = mkIf cfg.enable {
hm.wayland.windowManager.hyprland.settings.exec-once = let
modules.desktop.execOnStart = let
path = cfg.sockPath;
script = pkgs.writeScript "launch-wob" ''
rm -f ${path} && mkfifo ${path} && tail -f ${path} | ${lib.getExe pkgs.wob}
'';
in [ script ];
in [ (toString script) ];
hm.services.wob = {
enable = true;
settings = {