update: fixed issues and update flake inputs

This commit is contained in:
danny 2025-12-29 16:03:31 +08:00
parent 4b6183f0ec
commit b3c5ad2880
80 changed files with 3307 additions and 2059 deletions

View file

@ -3,14 +3,11 @@
proxy ? true,
}:
{
pkgs,
config,
lib,
inputs,
...
}:
let
inherit (pkgs.stdenv.hostPlatform) system;
inherit (builtins) toString;
inherit (lib) mkIf;
@ -20,7 +17,6 @@ in
services = {
actual = {
enable = true;
package = inputs.actual-budget-server.packages.${system}.default;
settings = {
port = 31000;
hostname = "127.0.0.1";

View file

@ -1,19 +1,15 @@
{
services = {
blueman.enable = true;
};
services.blueman.enable = true;
hardware = {
bluetooth = {
enable = true;
powerOnBoot = true;
settings.General = {
experimental = true;
Privacy = "device";
JustWorksRepairing = "always";
Class = "0x000100";
FastConnectable = true;
};
hardware.bluetooth = {
enable = true;
powerOnBoot = true;
settings.General = {
experimental = true;
Privacy = "device";
JustWorksRepairing = "always";
Class = "0x000100";
FastConnectable = true;
};
};

View file

@ -27,9 +27,27 @@ in
protontricks.enable = true;
gamescopeSession.enable = true;
extest.enable = true;
extraCompatPackages = with pkgs; [
proton-ge-bin
];
extraCompatPackages =
with pkgs;
let
proton-ge-10-25 =
(proton-ge-bin.overrideAttrs (
_: finalAttrs: {
pname = "proton-ge-bin";
version = "GE-Proton10-25";
src = fetchzip {
url = "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${finalAttrs.version}/${finalAttrs.version}.tar.gz";
hash = "sha256-RKko4QMxtnuC1SAHTSEQGBzVyl3ywnirFSYJ1WKSY0k=";
};
}
)).override
{ steamDisplayName = "GE-Proton10-25"; };
in
[
proton-ge-bin
proton-ge-10-25
];
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;

View file

@ -11,7 +11,7 @@
optimise.automatic = true;
gc = {
automatic = true;
dates = "weekly";
dates = [ "03:15" ];
options = "--delete-older-than 7d";
};
};

View file

@ -1,20 +1,29 @@
{
pkgs,
inputs,
config,
...
}:
let
inherit (pkgs.stdenv.hostPlatform) system;
pkgs-hyprland = inputs.hyprland.inputs.nixpkgs.legacyPackages.${system};
wm =
if config.programs.hyprland.enable then
"hyprland"
else if config.programs.niri.enable then
"niri"
else
null;
pkgs-wm = if wm != null then inputs.${wm}.inputs.nixpkgs.legacyPackages.${system} else pkgs;
in
{
hardware = {
graphics = {
enable = true;
enable32Bit = true;
package32 = pkgs-hyprland.pkgsi686Linux.mesa;
package = pkgs-hyprland.mesa;
package32 = pkgs-wm.pkgsi686Linux.mesa;
package = pkgs-wm.mesa;
extraPackages = with pkgs; [
intel-media-driver # LIBVA_DRIVER_NAME=iHD
libva-vdpau-driver

View file

@ -7,6 +7,7 @@
}:
let
inherit (lib) mkIf;
inherit (config.systemConf) username;
hyprlandEnabled = config.programs.hyprland.enable;
in
@ -18,14 +19,6 @@ in
portalPackage = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland;
};
xdg.portal = mkIf hyprlandEnabled {
enable = true;
xdgOpenUsePortal = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
];
};
environment.sessionVariables = mkIf hyprlandEnabled {
NIXOS_OZONE_WL = "1";
WLR_NO_HARDWARE_CURSORS = "1";
@ -39,15 +32,6 @@ in
hyprpicker
hyprshot
kitty
# qt5.qtwayland
# qt6.qtwayland
wlogout
wl-clipboard
# Util
grim
slurp
]
);
@ -59,4 +43,8 @@ in
];
};
};
home-manager.users."${username}" = mkIf hyprlandEnabled {
imports = [ ../../home/user/hyprland.nix ];
};
}

View file

@ -13,8 +13,8 @@
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
supportedLocales = [ "en_US.UTF-8/UTF-8" ];
supportedLocales = [
"en_US.UTF-8/UTF-8"
];
};
}

View file

@ -47,7 +47,7 @@ in
];
};
systemd.services."phpfpm-nextcloud".postStart = ''
systemd.services."phpfpm-nextcloud".postStart = mkIf config.services.nextcloud.enable ''
${config.services.nextcloud.occ}/bin/nextcloud-occ config:app:set recognize node_binary --value '${lib.getExe pkgs.nodejs_22}'
${config.services.nextcloud.occ}/bin/nextcloud-occ config:app:set recognize tensorflow.purejs --value 'true'
'';
@ -112,7 +112,7 @@ in
};
};
services.nextcloud-whiteboard-server = {
services.nextcloud-whiteboard-server = mkIf config.services.nextcloud.enable {
enable = true;
settings = {
NEXTCLOUD_URL = "http${optionalString https "s"}://${hostname}";

313
system/modules/niri.nix Normal file
View file

@ -0,0 +1,313 @@
{
config,
pkgs,
lib,
...
}:
let
inherit (lib)
getExe
pipe
map
listToAttrs
genList
;
inherit (builtins) fetchurl;
inherit (config.systemConf) username;
# nvidia-offload-enabled = config.hardware.nvidia.prime.offload.enableOffloadCmd;
prefix = "nvidia-offload";
terminal = "ghostty";
browser = "zen-twilight";
brightnessStep = builtins.toString 10;
volumeStep = builtins.toString 4;
execOnceScript = pkgs.writeShellScript "startupExec" ''
# Fix nemo open in terminal
dconf write /org/cinnamon/desktop/applications/terminal/exec "''\'${terminal}''\'" &
dconf write /org/cinnamon/desktop/applications/terminal/exec-arg "''\'''\'" &
# Hint dark theme
dconf write /org/gnome/desktop/interface/color-scheme '"prefer-dark"' &
systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP QT_QPA_PLATFORMTHEME &
'';
niri_peekaboo = fetchurl {
url = "https://raw.githubusercontent.com/heyoeyo/niri_tweaks/refs/heads/main/niri_peekaboo.py";
sha256 = "sha256:0l1x0bsa9vr089jhzgcz3xbh1hg15sw6njb91q0j9pdbrp2ym3dc";
};
in
{
programs.niri = {
enable = true;
package = pkgs.niri-unstable;
};
home-manager.users."${username}" =
{
osConfig,
config,
...
}:
let
rofiWall = import ../../home/scripts/rofiwall.nix { inherit config pkgs; };
rbwSelector = import ../../home/scripts/rbwSelector.nix { inherit pkgs; };
rNiri = pkgs.writeShellScriptBin "rNiri" ''
NIRI_SOCKET="/run/user/1000/$(ls /run/user/1000 | grep niri | head -n 1)" niri $@
'';
toggleWlogout = pkgs.writeShellScript "toggleWlogout" ''
if ${pkgs.busybox}/bin/pgrep wlogout > /dev/null; then
${pkgs.busybox}/bin/pkill wlogout
else
${config.programs.wlogout.package}/bin/wlogout --protocol layer-shell
fi
'';
in
with config.lib.niri.actions;
{
home.packages = with pkgs; [
nautilus # xdg-desktop-portal-gnome file picker
rNiri
];
xdg.portal = {
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
};
services.nfsm.enable = false;
programs.niri.package = osConfig.programs.niri.package;
programs.niri.settings = {
spawn-at-startup = [
{ argv = [ "${execOnceScript}" ]; }
];
screenshot-path = "~/Pictures/Screenshots/%Y-%m-%d_%H-%M-%S.png";
prefer-no-csd = true;
xwayland-satellite = {
enable = true;
path = getExe pkgs.xwayland-satellite-unstable;
};
animations = {
workspace-switch.kind.spring = {
damping-ratio = 1.0;
stiffness = 1000;
epsilon = 0.0001;
};
window-open.kind.easing = {
duration-ms = 150;
curve = "ease-out-expo";
};
window-close.kind.easing = {
duration-ms = 150;
curve = "ease-out-quad";
};
window-resize.kind.spring = {
damping-ratio = 1.0;
stiffness = 800;
epsilon = 0.0001;
};
};
layout.border = {
enable = true;
width = 4;
active.gradient = {
from = "#24273A";
to = "#EBDBB2";
angle = 45;
in' = "oklab";
relative-to = "window";
};
inactive.gradient = {
from = "#24273A";
to = "#24273A";
angle = 45;
in' = "oklab";
relative-to = "window";
};
};
window-rules = [
# Global
{
geometry-corner-radius =
let
round = 12.0;
in
{
bottom-left = round;
bottom-right = round;
top-left = round;
top-right = round;
};
clip-to-geometry = true;
opacity = 1.0;
draw-border-with-background = false;
}
# Float
{
matches = [
{ app-id = "^xdg-desktop-portal-gtk$"; }
{ app-id = "^(org.gnome.Nautilus)$"; }
];
open-floating = true;
}
];
input = {
focus-follows-mouse.enable = true;
mouse.accel-speed = -0.1;
keyboard = {
repeat-delay = 250;
repeat-rate = 35;
};
};
binds =
let
sh = spawn "sh" "-c";
in
{
# ==== Launch ==== #
"Mod+Return".action = sh ''${prefix} ${terminal}'';
"Mod+F".action = sh ''${browser}'';
"Mod+E".action = sh ''${prefix} ${terminal} -e yazi'';
"Mod+Ctrl+P".action = spawn "${rbwSelector}";
"Mod+Ctrl+M".action = spawn "${toggleWlogout}";
# Rofi
"Mod+Ctrl+W".action = spawn "${rofiWall}";
"Alt+Space".action = spawn "rofi" "-config" "~/.config/rofi/apps.rasi" "-show" "drun";
"Mod+Period".action = spawn "rofi" "-modi" "emoji" "-show" "emoji";
"Mod+Ctrl+C".action = spawn "rofi" "-modi" "calc" "-show" "calc" "-no-show-match" "-no-sort";
# ==== Media ==== #
"XF86AudioPrev".action = spawn "playerctl" "previous";
"XF86AudioNext".action = spawn "playerctl" "next";
"Mod+Ctrl+Comma".action = spawn "playerctl" "previous";
"Mod+Ctrl+Period".action = spawn "playerctl" "next";
"XF86AudioPlay".action = spawn "playerctl" "play-pause";
"XF86AudioStop".action = spawn "playerctl" "stop";
"XF86AudioMute".action = spawn "wpctl" "set-mute" "@DEFAULT_SINK@" "toggle";
"XF86AudioRaiseVolume".action =
sh ''wpctl set-mute @DEFAULT_SINK@ 0 && wpctl set-volume @DEFAULT_SINK@ ${volumeStep}%+'';
"XF86AudioLowerVolume".action =
sh ''wpctl set-mute @DEFAULT_SINK@ 0 && wpctl set-volume @DEFAULT_SINK@ ${volumeStep}%-'';
"XF86MonBrightnessDown".action = spawn "brightnessctl set ${brightnessStep}%-";
"XF86MonBrightnessUp".action = spawn "brightnessctl set ${brightnessStep}%+";
# ==== Movement ==== #
# Mouse Scroll
"Mod+WheelScrollDown" = {
cooldown-ms = 150;
action = focus-workspace-down;
};
"Mod+WheelScrollUp" = {
cooldown-ms = 150;
action = focus-workspace-up;
};
"Mod+Shift+WheelScrollDown" = {
cooldown-ms = 150;
action = focus-column-or-monitor-right;
};
"Mod+Shift+WheelScrollUp" = {
cooldown-ms = 150;
action = focus-column-or-monitor-left;
};
"Mod+WheelScrollRight".action = focus-column-right;
"Mod+WheelScrollLeft".action = focus-column-left;
# Touchpad
"TouchpadScrollDown" = {
cooldown-ms = 150;
action = focus-window-or-workspace-down;
};
"TouchpadScrollUp" = {
cooldown-ms = 150;
action = focus-window-or-workspace-up;
};
# Monitor Focus
"Mod+Ctrl+H".action = focus-monitor-left;
"Mod+Ctrl+L".action = focus-monitor-right;
# Workspace Focus
"Mod+Ctrl+J".action = focus-workspace-down;
"Mod+Ctrl+K".action = focus-workspace-up;
# General Focus
"Mod+J".action = focus-window-or-workspace-down;
"Mod+K".action = focus-window-or-workspace-up;
"Mod+H".action = focus-column-or-monitor-left;
"Mod+L".action = focus-column-or-monitor-right;
# Workspace Move
"Mod+Ctrl+Shift+J".action = move-workspace-down;
"Mod+Ctrl+Shift+K".action = move-workspace-up;
# Window & Column Move
"Mod+Shift+J".action = move-window-down-or-to-workspace-down;
"Mod+Shift+K".action = move-window-up-or-to-workspace-up;
"Mod+Shift+L".action = move-column-right-or-to-monitor-right;
"Mod+Shift+H".action = move-column-left-or-to-monitor-left;
# Window Comsume
"Mod+Ctrl+Shift+L".action = consume-or-expel-window-right;
"Mod+Ctrl+Shift+H".action = consume-or-expel-window-left;
# ==== Action ==== #
# General
"Mod+C".action = center-window;
"Mod+O".action = toggle-overview;
"Mod+Q".action = close-window;
"F11".action = if config.services.nfsm.enable then (spawn "nfsm-cli") else fullscreen-window;
"Mod+Shift+slash".action = show-hotkey-overlay;
"Mod+Ctrl+Shift+P".action = spawn "${getExe pkgs.python312}" "${niri_peekaboo}";
# Column Scale
"Mod+W".action = switch-preset-column-width;
"Mod+S".action = switch-preset-window-height;
"Mod+P".action = expand-column-to-available-width;
"Mod+M".action = maximize-column;
"Mod+Ctrl+S".action = reset-window-height;
# Float
"Mod+V".action = toggle-window-floating;
"Mod+Ctrl+V".action = switch-focus-between-floating-and-tiling;
# Screenshot
"Mod+Shift+S".action.screenshot = [ { show-pointer = false; } ];
"Ctrl+Shift+S".action.screenshot-window = [
{
write-to-disk = false;
}
];
"Mod+Ctrl+Shift+S".action.screenshot-screen = [
{
write-to-disk = false;
}
];
}
# Map Mod+{1 ~ 9} to workspace{1 ~ 9}
// (pipe 9 [
(x: genList (i: i + 1) x)
(
x:
map (i: {
name = "Mod+${toString i}";
value.action = focus-workspace i;
}) x
)
(x: listToAttrs x)
]);
};
};
}

View file

@ -5,11 +5,11 @@
settings = {
substituters = [
"https://yazi.cachix.org"
"https://cache.net.dn/dn-main"
# "https://cache.net.dn/dn-main"
];
trusted-public-keys = [
"yazi.cachix.org-1:Dcdz63NZKfvUCbDGngQDAZq6kOroIrFoyO064uvLh8k="
"dn-main:ZjQmZEOWpe0TjZgHGwkgtPdOUXpN82RL9wy30EW1V7k="
# "dn-main:ZjQmZEOWpe0TjZgHGwkgtPdOUXpN82RL9wy30EW1V7k="
];
warn-dirty = false;
trusted-users = [

View file

@ -10,6 +10,7 @@
../plymouth.nix
../polkit.nix
../hyprland.nix
../niri.nix
];
programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];

View file

@ -0,0 +1,140 @@
{
backgroundOpacity = 1;
capsuleOpacity = 1;
density = "comfortable";
exclusive = true;
floating = true;
marginHorizontal = 0.25;
marginVertical = 0.25;
outerCorners = false;
postition = "top";
showCapsule = true;
widgets = {
center = [
{
colorizeIcons = false;
hideMode = "hidden";
id = "ActiveWindow";
maxWidth = 145;
scrollingMode = "hover";
showIcon = true;
useFixedWidth = false;
}
];
left = [
{
icon = "rocket";
id = "CustomButton";
leftClickExec = "noctalia-shell ipc call launcher toggle";
leftClickUpdateText = false;
maxTextLength = {
horizontal = 10;
vertical = 10;
};
middleClickExec = "";
middleClickUpdateText = false;
parseJson = false;
rightClickExec = "";
rightClickUpdateText = false;
textCollapse = "";
textCommand = "";
textIntervalMs = 3000;
textStream = false;
wheelDownExec = "";
wheelDownUpdateText = false;
wheelExec = "";
wheelMode = "unified";
wheelUpExec = "";
wheelUpUpdateText = false;
wheelUpdateText = false;
}
{
customFont = "";
formatHorizontal = "HH:mm ddd, MMM dd";
formatVertical = "HH mm - dd MM";
id = "Clock";
useCustomFont = false;
usePrimaryColor = true;
}
{
characterCount = 4;
followFocusedScreen = false;
hideUnoccupied = false;
id = "Workspace";
labelMode = "index";
}
{
hideMode = "hidden";
hideWhenIdle = false;
id = "MediaMini";
maxWidth = 250;
scrollingMode = "hover";
showAlbumArt = true;
showArtistFirst = false;
showProgressRing = true;
showVisualizer = true;
useFixedWidth = false;
visualizerType = "linear";
}
];
right = [
{
blacklist = [
"Bluetooth*"
];
colorizeIcons = false;
drawerEnabled = false;
id = "Tray";
pinned = [
];
}
{
diskPath = "/";
id = "SystemMonitor";
showCpuTemp = true;
showCpuUsage = true;
showDiskUsage = false;
showMemoryAsPercent = false;
showMemoryUsage = true;
showNetworkStats = false;
usePrimaryColor = false;
}
{
id = "ScreenRecorder";
}
{
id = "KeepAwake";
}
{
displayMode = "onhover";
id = "Volume";
}
{
displayMode = "onhover";
id = "Brightness";
}
{
displayMode = "onhover";
id = "VPN";
}
{
displayMode = "onhover";
id = "Bluetooth";
}
{
hideWhenZero = true;
id = "NotificationHistory";
showUnreadBadge = true;
}
{
colorizeDistroLogo = false;
colorizeSystemIcon = "primary";
customIconPath = "";
enableColorization = true;
icon = "noctalia";
id = "ControlCenter";
useDistroLogo = true;
}
];
};
}

View file

@ -0,0 +1,55 @@
{
cards = [
{
enabled = true;
id = "profile-card";
}
{
enabled = true;
id = "shortcuts-card";
}
{
enabled = true;
id = "audio-card";
}
{
enabled = true;
id = "weather-card";
}
{
enabled = true;
id = "media-sysmon-card";
}
];
position = "bottom_center";
shortcuts = {
left = [
{
id = "WiFi";
}
{
id = "Bluetooth";
}
{
id = "ScreenRecorder";
}
{
id = "WallpaperSelector";
}
];
right = [
{
id = "Notifications";
}
{
id = "PowerProfile";
}
{
id = "KeepAwake";
}
{
id = "NightLight";
}
];
};
}

View file

@ -0,0 +1,282 @@
{ lib, config, ... }:
let
inherit (config.systemConf) username;
inherit (lib) mkForce mapAttrs;
in
{
# ==== Extra Services Settings ==== #
services.power-profiles-daemon.enable = true;
networking.networkmanager.enable = true;
services.upower.enable = true;
hardware.bluetooth.enable = true;
# ================================= #
home-manager.users.${username} =
{ config, ... }:
{
# ==== Disabled Services ==== #
services.swww.enable = mkForce false; # Wallpaper
programs.waybar.enable = mkForce false; # Bar
services.swayidle.enable = mkForce false; # Idle
services.sunsetr.enable = mkForce false; # Bluelight filter
programs.hyprlock.enable = mkForce false; # Lock
services.swaync.enable = mkForce false; # Notification daemon
systemd.user.services.noctalia-shell.Service.Environment = [
"QT_QPA_PLATFORMTHEME=gtk3"
];
programs.noctalia-shell = {
enable = true;
systemd.enable = true;
settings = {
settingsVersion = 25;
appLauncher = {
customLaunchPrefix = "";
customLaunchPrefixEnabled = false;
enableClipPreview = true;
enableClipboardHistory = true;
pinnedExecs = [
];
position = "top_center";
sortByMostUsed = true;
terminalCommand = "ghostty -e";
useApp2Unit = false;
viewMode = "list";
};
audio = {
cavaFrameRate = 30;
externalMixer = "pwvucontrol";
mprisBlacklist = [
];
preferredPlayer = "mpv";
visualizerQuality = "high";
visualizerType = "linear";
volumeOverdrive = false;
volumeStep = 5;
};
bar = import ./bar.nix;
brightness = {
brightnessStep = 5;
enableDdcSupport = false;
enforceMinium = true;
};
calendar = {
cards = [
{
enabled = true;
id = "banner-card";
}
{
enabled = true;
id = "calendar-card";
}
{
enabled = true;
id = "timer-card";
}
{
enabled = true;
id = "weather-card";
}
];
};
changelog = {
lastSeenVersion = "";
};
colorSchemes = {
darkMode = true;
generateTemplatesForPredefined = true;
manualSunrise = "06:30";
manualSunset = "18:30";
matugenSchemeType = "scheme-neutral";
predefinedScheme = "Noctalia (default)";
schedulingMode = "off";
useWallpaperColors = true;
};
controlCenter = import ./controlCenter.nix;
dock = {
backgroundOpacity = 1;
colorizeIcons = false;
displayMode = "auto_hide";
enabled = true;
floatingRatio = 1;
monitors = [
];
onlySameOutput = true;
pinnedApps = [
];
radiusRatio = 0.68;
size = 1;
};
general = {
allowPanelsOnScreenWithoutBar = true;
animationDisabled = false;
animationSpeed = 1.5;
avatarImage = "${config.home.homeDirectory}/.face";
compactLockScreen = false;
dimmerOpacity = 0.4;
enableShadows = true;
forceBlackScreenCorners = true;
language = "";
lockOnSuspend = true;
radiusRatio = 1;
scaleRatio = 1;
screenRadiusRatio = 1.09;
shadowDirection = "bottom_right";
shadowOffsetX = 2;
shadowOffsetY = 3;
showHibernateOnLockScreen = false;
showScreenCorners = true;
};
hooks = {
enabled = false;
darkModeChange = "";
wallpaperChange = "";
};
location = {
analogClockInCalendar = false;
firstDayOfWeek = -1;
name = "Taipei, TW";
showCalendarEvents = true;
showCalendarWeather = true;
showWeekNumberInCalendar = false;
use12hourFormat = false;
useFahrenheit = false;
weatherEnabled = true;
weatherShowEffects = true;
};
network = {
wifiEnabled = true;
};
nightLight = {
enabled = true;
autoSchedule = true;
dayTemp = "6000";
nightTemp = "5500";
forced = false;
manualSunrise = "06:30";
manualSunset = "18:30";
};
notifications = {
backgroundOpacity = 1;
criticalUrgencyDuration = 15;
enableKeyboardLayoutToast = true;
enabled = true;
location = "bottom_right";
lowUrgencyDuration = 3;
monitors = [
];
normalUrgencyDuration = 8;
overlayLayer = true;
respectExpireTimeout = false;
};
osd = {
autoHideMs = 1500;
backgroundOpacity = 1;
enabled = true;
enabledTypes = [
0
1
2
];
location = "right";
monitors = [
];
overlayLayer = true;
};
screenRecorder = {
audioCodec = "opus";
audioSource = "default_output";
colorRange = "limited";
directory = "${config.home.homeDirectory}/Videos";
frameRate = 60;
quality = "very_high";
showCursor = true;
videoCodec = "h264";
videoSource = "portal";
};
sessionMenu = import ./sessionMenu.nix;
systemMonitor = import ./systemMonitor.nix;
templates = import ./templates.nix;
ui = {
fontDefault = config.stylix.fonts.sansSerif.name;
fontDefaultScale = 1;
fontFixed = config.stylix.fonts.monospace.name;
fontFixedScale = 1;
panelBackgroundOpacity = 1;
panelsAttachedToBar = true;
settingsPanelAttachToBar = true;
tooltipsEnabled = true;
};
wallpaper = {
directory = "${config.home.homeDirectory}/Pictures/Wallpapers";
enableMultiMonitorDirectories = false;
enabled = true;
fillColor = "#000000";
fillMode = "crop";
hideWallpaperFilenames = true;
monitorDirectories = [
];
overviewEnabled = false;
panelPosition = "follow_bar";
randomEnabled = false;
randomIntervalSec = 300;
recursiveSearch = false;
setWallpaperOnAllMonitors = true;
transitionDuration = 1500;
transitionEdgeSmoothness = 0.05;
transitionType = "random";
useWallhaven = false;
wallhavenCategories = "111";
wallhavenOrder = "desc";
wallhavenPurity = "100";
wallhavenQuery = "";
wallhavenResolutionHeight = "";
wallhavenResolutionMode = "atleast";
wallhavenResolutionWidth = "";
wallhavenSorting = "relevance";
};
};
};
programs.niri.settings =
with config.lib.niri.actions;
let
noctalia = spawn "noctalia-shell" "ipc" "call";
in
{
binds = mapAttrs (name: value: mkForce value) {
# Core
"Mod+Slash".action = noctalia "controlCenter" "toggle";
"Alt+Space".action = noctalia "launcher" "toggle";
"Mod+Ctrl+M".action = noctalia "lockScreen" "lock";
# Utilities
"Mod+Comma".action = noctalia "launcher" "clipboard";
"Mod+Period".action = noctalia "launcher" "emoji";
"Mod+F12".action = noctalia "screenRecorder" "toggle";
"Mod+N".action = noctalia "notifications" "toggleHistory";
"Mod+Ctrl+N".action = noctalia "notifications" "toggleDND";
"Mod+Ctrl+W".action = noctalia "wallpaper" "toggle";
"Mod+Ctrl+C".action = noctalia "launcher" "calculator";
"Mod+Ctrl+Slash".action = noctalia "wallpaper" "random";
# Media
"XF86AudioPlay".action = noctalia "media" "playPause";
"XF86AudioStop".action = noctalia "media" "pause";
"XF86AudioPrev".action = noctalia "media" "previous";
"XF86AudioNext".action = noctalia "media" "next";
"Mod+Ctrl+Comma".action = noctalia "media" "previous";
"Mod+Ctrl+Period".action = noctalia "media" "next";
"XF86AudioMute".action = noctalia "volume" "muteOutput";
"XF86AudioRaiseVolume".action = noctalia "volume" "increase";
"XF86AudioLowerVolume".action = noctalia "volume" "decrease";
"XF86MonBrightnessDown".action = noctalia "brightness" "decrease";
"XF86MonBrightnessUp".action = noctalia "brightness" "increase";
};
};
};
}

View file

@ -0,0 +1,38 @@
{
countdownDuration = 10000;
enableCountdown = true;
position = "bottom_center";
powerOptions = [
{
action = "lock";
countdownEnabled = true;
enabled = true;
}
{
action = "suspend";
countdownEnabled = true;
enabled = true;
}
{
action = "hibernate";
countdownEnabled = true;
enabled = true;
}
{
action = "reboot";
countdownEnabled = true;
enabled = true;
}
{
action = "logout";
countdownEnabled = true;
enabled = true;
}
{
action = "shutdown";
countdownEnabled = true;
enabled = true;
}
];
showHeader = false;
}

View file

@ -0,0 +1,18 @@
{
cpuCriticalThreshold = 90;
cpuPollingInterval = 3000;
cpuWarningThreshold = 80;
criticalColor = "";
diskCriticalThreshold = 90;
diskPollingInterval = 3000;
diskWarningThreshold = 80;
memCriticalThreshold = 90;
memPollingInterval = 3000;
memWarningThreshold = 80;
networkPollingInterval = 3000;
tempCriticalThreshold = 90;
tempPollingInterval = 3000;
tempWarningThreshold = 80;
useCustomColors = false;
warningColor = "";
}

View file

@ -0,0 +1,22 @@
{
alacritty = false;
cava = false;
code = false;
discord = false;
emacs = false;
enableUserTemplates = false;
foot = false;
fuzzel = false;
ghostty = false;
gtk = false;
kcolorscheme = false;
kitty = false;
niri = false;
pywalfox = false;
qt = false;
spicetify = false;
telegram = false;
vicinae = false;
walker = false;
wezterm = false;
}

View file

@ -19,7 +19,7 @@
};
environment.systemPackages = with pkgs; [
pavucontrol
pwvucontrol
playerctl
];
}

View file

@ -20,6 +20,7 @@ in
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-material-dark-medium.yaml";
polarity = "dark";
enableReleaseChecks = false;
fonts = {
serif = config.stylix.fonts.monospace;
@ -49,7 +50,6 @@ in
noto-fonts-cjk-serif
noto-fonts-color-emoji
liberation_ttf
# dfkai-sb
sf-pro-display-bold
];
@ -57,6 +57,8 @@ in
};
home-manager.users."${username}" = {
stylix.enableReleaseChecks = false;
stylix.targets.neovim.transparentBackground = {
main = true;
numberLine = true;