update packages + some tweaks

This commit is contained in:
Reid 2026-04-18 18:41:55 -07:00
parent 527378ad95
commit edfb60dd12
Signed by: reidlab
GPG key ID: DAF5EAF6665839FD
26 changed files with 304 additions and 319 deletions

View file

@ -2,20 +2,20 @@
with lib;
let
cfg = config.modules.desktop.swww;
cfg = config.modules.desktop.awww;
# TODO: this whole thing is a little silly, but i cant find a better way to ref it in the scripts
# maybe we can reference the config in the scripts? in a let of course :)
wallpapersFolder = "${pkgs.my.wallpapers}/share/backgrounds";
lastWallpaper = "$XDG_DATA_HOME/swww-last-wallpaper";
lastWallpaperSym = "$XDG_DATA_HOME/swww-last-wallpaper-sym";
lastWallpaper = "$XDG_DATA_HOME/awww-last-wallpaper";
lastWallpaperSym = "$XDG_DATA_HOME/awww-last-wallpaper-sym";
in {
options.modules.desktop.swww = {
enable = mkEnableOption "Enable swww, a Solution to your Wayland Wallpaper Woes";
options.modules.desktop.awww = {
enable = mkEnableOption "Enable awww, an Answer to your Wayland Wallpaper Woes";
package = mkOption {
type = types.package;
default = pkgs.swww;
example = "pkgs.swww";
default = pkgs.awww;
example = "pkgs.awww";
};
wallpapersFolder = mkOption {
type = types.str;
@ -25,16 +25,16 @@ in {
lastWallpaper = mkOption {
type = types.str;
default = lastWallpaper;
example = "$XDG_DATA_HOME/swww-last-wallpaper";
example = "$XDG_DATA_HOME/awww-last-wallpaper";
};
lastWallpaperSym = mkOption {
type = types.str;
default = lastWallpaperSym;
example = "$XDG_DATA_HOME/swww-last-wallpaper-sym";
example = "$XDG_DATA_HOME/awww-last-wallpaper-sym";
};
setScript = mkOption {
type = types.package;
default = pkgs.writeShellScript "swww-set" ''
default = pkgs.writeShellScript "awww-set" ''
set -euo pipefail
if [ ! -f "${lastWallpaper}" ]; then
@ -47,7 +47,7 @@ in {
};
swapScript = mkOption {
type = types.package;
default = pkgs.writeShellScript "swww-swap" ''
default = pkgs.writeShellScript "awww-swap" ''
set -euo pipefail
file=$(ls ${wallpapersFolder} | ${lib.getExe config.modules.desktop.rofi.package} -dmenu -sep '\n' -i -p "select a wallpaper")
@ -65,9 +65,9 @@ in {
config = mkIf cfg.enable {
hm.home.packages = [ cfg.package ];
hm.systemd.user.services.swww = {
hm.systemd.user.services.awww = {
Unit = {
Description = "swww, a Solution to your Wayland Wallpaper Woes";
Description = "awww, an Answer to your Wayland Wallpaper Woes";
After = [ "graphical-session-pre.target" ];
PartOf = [ "graphical-session.target" ];
};
@ -78,7 +78,7 @@ in {
Service = {
Type = "simple";
ExecStart = "${cfg.package}/bin/swww-daemon --no-cache";
ExecStart = "${cfg.package}/bin/awww-daemon --no-cache";
ExecStartPost = "${cfg.setScript}";
Restart = "on-failure";
RestartSec = 5;

View file

@ -16,9 +16,6 @@ in {
modules.desktop.fonts.enable = true;
modules.desktop.fonts.baseFonts = true;
modules.desktop.thumbnailers.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;
# mounting, trash, and mtp support

View file

@ -20,36 +20,25 @@ in {
frame_color = "#${base02}";
origin = "top-right";
vertical_alignment = "center";
ellipsize = "middle";
# various non-color theming settings
offset = "15x15";
padding = 15;
horizontal_padding = 15;
text_icon_padding = 15;
corner_radius = 8;
gap_size = 8;
gap_size = 0;
frame_width = 1;
icon_position = "left";
min_icon_size = 48;
max_icon_size = 64;
progress_bar = true;
progress_bar_height = 8;
progress_bar_frame_width = 1;
progress_bar_min_width = 150;
progress_bar_max_width = 300;
progress_bar_corner_radius = 8;
alignment = "left";
markup = "full";
format = "<b>%a</b>\\n<b>%s</b>\\n%b";
font = with config.modules.desktop.fonts.fonts; "${sansSerif.family} ${toString sansSerif.size}";
word_wrap = "yes";
ignore_newline = "no";
ignore_dbusclose = false;
mouse_left_click = "do_action, close_current";
mouse_middle_click = "close_all";
@ -57,16 +46,13 @@ in {
# sorting and history settings
sort = "update";
notification_limit = 4;
indicate_hidden = "yes";
notification_limit = 5;
idle_threshold = 120;
history_length = 20;
show_age_threshold = 60;
show_indicators = "yes";
sticky_history = "yes";
stack_duplicates = true;
hide_duplicate_count = false;
always_run_script = true;
};
urgency_low = {

View file

@ -1,4 +1,4 @@
{ lib, config, pkgs, system, inputs , ... }:
{ lib, config, pkgs, ... }:
with lib;
let
@ -8,7 +8,7 @@ in {
enable = mkEnableOption "Enable hypridle, a wayland idle daemon";
package = mkOption {
type = types.package;
default = inputs.hypridle.packages.${system}.hypridle;
default = pkgs.hypridle;
example = "pkgs.hypridle";
};
desktop = mkEnableOption "Extend screen dimming time and disable sleeping";

View file

@ -28,7 +28,7 @@ in {
};
background = [
{
path = "${config.modules.desktop.swww.lastWallpaperSym}";
path = "${config.modules.desktop.awww.lastWallpaperSym}";
color = "rgb(${base00})";
blur_passes = 3;
blur_size = 6;

View file

@ -22,7 +22,7 @@ in {
Service = {
Type = "simple";
ExecStart = "${pkgs.mate.mate-polkit}/libexec/polkit-mate-authentication-agent-1";
ExecStart = "${pkgs.mate-polkit}/libexec/polkit-mate-authentication-agent-1";
Restart = "on-failure";
RestartSec = 5;
};

View file

@ -101,6 +101,14 @@ in {
};
};
blur = {
enable = true;
passes = 2;
offset = 2;
noise = 0.04;
saturation = 1.5;
};
overview = {
backdrop-color = config.modules.desktop.themes.niri.background;
workspace-shadow = {
@ -218,14 +226,24 @@ in {
};
};
# TODO: configure popups
window-rules = [
{
geometry-corner-radius = allCorners 10.0;
clip-to-geometry = true;
}
{
matches = [ { app-id = "^org\.wezfurlong\.wezterm$"; } ];
shadow.draw-behind-window = false; # transparent bg
matches = [
{ app-id = "^org\.wezfurlong\.wezterm$"; }
];
shadow.draw-behind-window = false;
background-effect.blur = true;
}
{
matches = [
{ is-floating = true; }
];
background-effect.xray = false;
}
{
matches = [
@ -292,7 +310,6 @@ in {
];
# TODO: add shadows onto notifications. weird geometry beware !!!
# TODO: add shadows onto waybar again, but make it show the shadow drops behind the windows
# TODO: rounded vicinae
layer-rules = [
{
@ -312,6 +329,10 @@ in {
{ namespace = "^vicinae$"; }
{ namespace = "^wob$"; }
];
background-effect = {
blur = true;
xray = false;
};
shadow = {
enable = true;
};

View file

@ -13,16 +13,11 @@ in {
services.greetd = {
enable = true;
settings = {
# TODO: probably should rewrite somehow,,,
# this is ugly, but it SOMEHOW WORKS??
# kind of beautiful in its own way
default_session = let
swayConfig = let
monitors = config.modules.desktop.monitors;
monitorConfig = if monitors.enable && (builtins.length monitors.monitors > 0) then
let
# TODO: rewrite primary monitor system
# it will get repetitive..
firstMonitor = builtins.head monitors.monitors;
in
"output ${firstMonitor.name} scale ${toString firstMonitor.scale}"

View file

@ -87,7 +87,7 @@ in {
wob = with colorScheme.palette; {
borderColor = "${base04}FF";
backgroundColor = "${base01}66";
backgroundColor = "${base01}CC";
barColor = "${base05}FF";
};

View file

@ -95,6 +95,9 @@ in {
theme = cfg.gtkTheme;
gtk3.extraConfig.gtk-application-prefer-dark-theme = mkIf cfg.dark "1";
gtk4.extraConfig.gtk-application-prefer-dark-theme = mkIf cfg.dark "1";
# https://stopthemingmy.app/
# https://tenor.com/view/blah-bla-gif-23055284
gtk4.theme = cfg.gtkTheme;
};
hm.qt = {

View file

@ -27,10 +27,15 @@ in {
settings = {
"$schema" = "https://vicinae.com/schemas/config.json";
# i disagree with these
telemetry.system_info = false;
providers.core.entrypoints.sponsor.enable = false;
pop_to_root_on_close = true;
launcher_window = {
opacity = 0.95;
opacity = 0.8;
client_side_decorations.enabled = false;
layer_shell = {

View file

@ -315,12 +315,12 @@ in {
return-type = "json";
};
}
(mkIf config.modules.desktop.swww.enable {
(mkIf config.modules.desktop.awww.enable {
"custom/wallpaper" = {
format = "";
tooltip = true;
tooltip-format = "Change wallpaper";
on-click = "${config.modules.desktop.swww.swapScript}";
on-click = "${config.modules.desktop.awww.swapScript}";
};
})
(mkIf config.modules.hardware.rgb.enable {

View file

@ -30,7 +30,8 @@ in {
"https://wezterm.cachix.org"
"https://niri.cachix.org"
"https://vicinae.cachix.org"
"https://cache.soopy.moe"
"https://cache.garnix.io"
# "https://cache.soopy.moe"
];
trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
@ -38,7 +39,8 @@ in {
"wezterm.cachix.org-1:kAbhjYUC9qvblTE+s7S+kl5XM1zVa4skO+E/1IDWdH0="
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
"vicinae.cachix.org-1:1kDrfienkGHPYbkpNj1mWTr7Fm1+zcenzgTizIcI3oc="
"cache.soopy.moe-1:0RZVsQeR+GOh0VQI9rvnHz55nVXkFardDqfm4+afjPo="
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
# "cache.soopy.moe-1:0RZVsQeR+GOh0VQI9rvnHz55nVXkFardDqfm4+afjPo="
];
};
};

View file

@ -38,7 +38,8 @@ in {
signing = {
signByDefault = true;
key = "DAF5EAF6665839FD";
format = "openpgp";
key = "DAF5EAF6665839FD"; # :tfm_derp:
};
ignores = [

View file

@ -6,40 +6,48 @@ let
in {
options.modules.software.distractions.steam = {
enable = mkEnableOption "Enable Steam, the game distribution software";
useGamescope = mkEnableOption "Enable Gamescope, a tool to run games in a separate X session";
session = mkEnableOption "Enable a Steam Deck-like session powered by gamescope";
};
config = mkIf cfg.enable {
programs.steam = {
enable = true;
gamescopeSession.enable = cfg.session;
package = pkgs.steam.override {
# required for programs to run sometimes
# see: https://github.com/NixOS/nixpkgs/issues/162562#issuecomment-1229444338
extraPkgs = (pkgs: (lib.optional cfg.useGamescope pkgs.gamescope) ++ (with pkgs; [
xorg.libXcursor
xorg.libXi
xorg.libXinerama
xorg.libXScrnSaver
extraPkgs = (pkgs: with pkgs; [
libXcursor
libXi
libXinerama
libXScrnSaver
libpng
libpulseaudio
libvorbis
stdenv.cc.cc.lib
libkrb5
keyutils
]));
gperftools
]);
extraEnv = {
# https://github.com/gloriouseggroll/proton-ge-custom
PROTON_USE_WAYLAND = "1";
PROTON_USE_WOW64 = "1";
};
};
extraCompatPackages = with pkgs; [ proton-ge-bin ];
protontricks.enable = true;
# explicitly allow all the ports to open up
localNetworkGameTransfers.openFirewall = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
};
programs.gamescope = {
enable = cfg.useGamescope;
# capSysNice = true; https://github.com/NixOS/nixpkgs/issues/351516
};
# enable windows NT sync primitive driver (semaphores, mutexes, etc.)
# improves performance on wine 11+ and proton 11+
boot.kernelModules = [ "ntsync" ];
user.packages = with pkgs; [ steam-run ];
};

View file

@ -39,24 +39,6 @@ in {
sumneko.lua
# wgsl
wgsl-analyzer.wgsl-analyzer
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
# language specific
# qml
{
name = "qt-qml";
publisher = "TheQtCompany";
version = "1.4.0";
sha256 = "sha256-9C0EC4vnulg0OjGNU0SfMA2R6+OaHVCqDsipY2TAqxo=";
}
# libraries
# qt core
{
name = "qt-core";
publisher = "TheQtCompany";
version = "1.4.0";
sha256 = "sha256-QiZc6WNh4Q67beyFuiSqkG5G4zRMNmyjuZhWW7ZATO0=";
}
];
userSettings = with config.modules.desktop.fonts.fonts; {
@ -81,12 +63,7 @@ in {
"nix.enableLanguageServer" = true;
"nix.serverPath" = "${lib.getExe pkgs.nil}";
"qt-qml.qmlls.enabled" = true;
"qt-qml.qmlls.customExePath" = "${pkgs.qt6.qtdeclarative}/bin/qmlls";
"qt-qml.qmlls.useQmlImportPathEnvVar" = true;
"qt-qml.doNotAskForQmllsDownload" = true;
"security.workspace.trust.enabled" = "false";
"security.workspace.trust.enabled" = false;
"explorer.compactFolders" = false;
"explorer.confirmDelete" = false;
@ -100,6 +77,8 @@ in {
# prevent vscode from modifying the terminal colors
"terminal.integrated.minimumContrastRatio" = 1;
# prevent vscode from messing up font spacing
"terminal.integrated.letterSpacing" = 1;
};
};
};

View file

@ -2,6 +2,7 @@
with lib;
let
# TODO: move this dawg
cfg = config.modules.software.system.zswap;
in {
options.modules.software.system.zswap = {
@ -13,7 +14,7 @@ in {
"zswap.enabled=1"
"zswap.shrinker_enabled=1" # high mem: shrink zswap, mv to swap
"zswap.max_pool_percent=20" # TODO: tune this (keep in mind shrinker is enabled)
"zswap.compressor=zstd" # lz4 is missing for some reason
"zswap.compressor=zstd"
"zswap.zpool=zsmalloc"
];
};

View file

@ -5,6 +5,7 @@
hm.xdg.userDirs = rec {
enable = true;
createDirectories = true;
setSessionVariables = true;
desktop = "$HOME/desktop";
documents = "$HOME/documents";
@ -16,6 +17,7 @@
videos = "$HOME/videos";
extraConfig = {
recordings = "${videos}/recordings";
screenshots = "${pictures}/screenshots";
};
};