noctalia v5

This commit is contained in:
EdenQwQ 2026-06-13 00:16:12 +08:00
parent f0ba537f6f
commit ac74d0707f
10 changed files with 192 additions and 687 deletions

611
flake.lock generated

File diff suppressed because it is too large Load diff

View file

@ -55,8 +55,9 @@
}; };
flake-parts.url = "github:hercules-ci/flake-parts"; flake-parts.url = "github:hercules-ci/flake-parts";
niri-unstable = { niri-unstable = {
url = "github:JustinSpedding/niri/up-down-keybinds"; # url = "github:JustinSpedding/niri/up-down-keybinds";
# url = "github:Atan-D-RP4/niri/feat/layer-anims"; # url = "github:Atan-D-RP4/niri/feat/layer-anims";
url = "github:niri-wm/niri";
flake = false; flake = false;
}; };
niri = { niri = {
@ -106,7 +107,5 @@
kimi-cli.url = "github:MoonshotAI/kimi-cli"; kimi-cli.url = "github:MoonshotAI/kimi-cli";
awww.url = "git+https://codeberg.org/LGFae/awww"; awww.url = "git+https://codeberg.org/LGFae/awww";
waydeeper.url = "github:EdenQwQ/waydeeper"; waydeeper.url = "github:EdenQwQ/waydeeper";
hermes-agent.url = "github:NousResearch/hermes-agent";
nixpkgs-mozilla.url = "github:mozilla/nixpkgs-mozilla";
}; };
} }

View file

@ -56,8 +56,8 @@
if ${pkgs.systemd}/bin/systemctl --user is-active caelestia.service; then if ${pkgs.systemd}/bin/systemctl --user is-active caelestia.service; then
run --silence ${pkgs.systemd}/bin/systemctl --user stop caelestia.service run --silence ${pkgs.systemd}/bin/systemctl --user stop caelestia.service
fi fi
if ${pkgs.systemd}/bin/systemctl --user is-active noctalia-shell.service; then if ${pkgs.systemd}/bin/systemctl --user is-active noctalia.service; then
run --silence ${pkgs.systemd}/bin/systemctl --user stop noctalia-shell.service run --silence ${pkgs.systemd}/bin/systemctl --user stop noctalia.service
fi fi
run --silence ${pkgs.systemd}/bin/systemctl --user start ${config.desktopShell}.service run --silence ${pkgs.systemd}/bin/systemctl --user start ${config.desktopShell}.service
''; '';

View file

@ -15,14 +15,6 @@ let
xray true xray true
blur true blur true
} }
popups {
opacity 0.75
geometry-corner-radius 15
background-effect {
xray false
blur true
}
}
} }
window-rule { window-rule {
match is-floating=true match is-floating=true
@ -91,7 +83,6 @@ let
builtins.replaceStrings builtins.replaceStrings
[ [
"output \"${config.lib.monitors.mainMonitorName}\" {" "output \"${config.lib.monitors.mainMonitorName}\" {"
"binds {"
] ]
[ [
'' ''
@ -100,10 +91,6 @@ let
top-right top-right
} }
'' ''
''
binds {
Shift_R { release { toggle-overview; }; }
''
] ]
config.programs.niri.finalConfig config.programs.niri.finalConfig
+ "\n" + "\n"

View file

@ -7,204 +7,54 @@
... ...
}: }:
{ {
programs.noctalia-shell = { programs.noctalia = {
colors = with config.lib.stylix.colors.withHashtag; { systemd.enable = true;
mError = base08; customPalettes.stylix.dark = with config.lib.stylix.colors.withHashtag; {
mHover = base0E; mPrimary = base0D;
mOnError = base00;
mOnHover = base00;
mOnPrimary = base00; mOnPrimary = base00;
mOnSecondary = base01; mSecondary = base0E;
mOnSecondary = base00;
mTertiary = base0C;
mOnTertiary = base00;
mError = base08;
mOnError = base00;
mSurface = base00;
mOnSurface = base05; mOnSurface = base05;
mOnSurfaceVariant = base07; mHover = base0C;
mOnTeritiary = base00; mOnHover = base00;
mOutline = base02;
mPrimary = base0B;
mSecondary = base0A;
mShadow = "#000000";
mSurface = base01;
mSurfaceVariant = base01; mSurfaceVariant = base01;
mTeritiary = base0C; mOnSurfaceVariant = base04;
}; mOutline = base03;
settings = { mShadow = base00;
setupCompleted = true;
bar = {
density = "comfortable";
floating = true;
showCapsule = true;
outerCorners = true;
marginVertical = 6;
marginHorizontal = 6;
widgets = {
center = [
{
id = "SystemMonitor";
showCpuTemp = true;
showCpuUsage = true;
showDiskUsage = false;
showMemoryAsPercent = false;
showMemoryUsage = true;
showNetworkoStats = false;
usePrimaryColor = true;
}
];
left = [
{
id = "Workspace";
labelMode = "none";
hideUnoccupied = false;
}
{
id = "MediaMini";
autoHide = true;
scrollingMode = "hover";
showAlbumArt = true;
showVisualizer = true;
visualizerType = "wave";
}
];
right = [
{
id = "Tray";
drawerEnabled = false;
colorizeIcons = false;
blacklist = [ ];
}
{
id = "Volume";
displayMode = "onhover";
}
{
id = "Battery";
displayMode = "alwaysShow";
warningThreshold = 30;
}
{
id = "Clock";
customFont = "Monofur Nerd Font Mono";
formatHorizontal = "HH:mm ddd, MMM dd";
formatVertical = "HH mm - dd MM";
useCustomFont = true;
usePrimaryColor = true;
}
{
id = "ControlCenter";
useDistroLogo = false;
}
];
};
};
controlCenter.cards = [
{
enabled = true;
id = "profile-card";
}
{
enabled = true;
id = "shortcuts-card";
}
{
enabled = true;
id = "audio-card";
}
{
enabled = true;
id = "brightness-card";
}
{
enabled = true;
id = "weather-card";
}
{
enabled = true;
id = "media-sysmon-card";
}
];
idle = {
enabled = true;
screenOffTimeout = 500;
lockTimeout = 560;
suspendTimeout = 1800;
fadeDuration = 10;
};
colorSchemes = {
generateTemplatesForPredefined = false;
useWallpaperColors = false;
};
general = {
avatarImage = "/home/${user}/.face";
forceBlackScreenCorners = false;
showScreenCorners = false;
};
location = {
name = "西";
};
ui = {
fontDefault = "Hug Me Tight";
fontFixed = "Maple Mono";
panelBackgroundOpacity = 0.85;
};
dock.enabled = false;
wallpaper.enabled = false;
nightLight = {
enabled = true;
forced = true;
nightTemp = "5000";
};
desktopWidgets = {
editMode = false;
enabled = true;
monitorWidgets = [
{
name = config.lib.monitors.mainMonitorName;
widgets = [
{
id = "Clock";
showBackground = true;
x = 80;
y = 100;
}
{
id = "Weather";
showBackground = true;
x = 80;
y = 300;
}
];
}
];
};
};
};
systemd.user.services = lib.mkIf (config.desktopShell == "noctalia-shell") { terminal = {
noctalia-shell = foreground = base05;
let background = base00;
noctaliaPackage = inputs.noctalia-shell.packages.${pkgs.stdenv.hostPlatform.system}.default; cursor = base05;
noctaliaConfig = "/home/${user}/.config/noctalia/gui-settings.json"; cursorText = base00;
in selectionFg = base05;
{ selectionBg = base02;
Unit = { normal = {
After = [ "graphical-session.target" ]; black = base00;
PartOf = [ "graphical-session.target" ]; red = base08;
StartLimitIntervalSec = 60; green = base0B;
StartLimitBurst = 3; yellow = base0A;
X-Restart-Triggers = [ blue = base0D;
noctaliaPackage magenta = base0E;
noctaliaConfig cyan = base0C;
]; white = base05;
}; };
Install.WantedBy = [ "graphical-session.target" ]; bright = {
Service = { black = base03;
ExecStart = "${noctaliaPackage}/bin/noctalia-shell"; red = base08;
Restart = "on-failure"; green = base0B;
RestartSec = 3; yellow = base0A;
TimeoutStartSec = 10; blue = base0D;
TimeoutStopSec = 5; magenta = base0E;
Environment = [ cyan = base0C;
"NOCTALIA_SETTINGS_FALLBACK=${noctaliaConfig}" white = base07;
];
}; };
}; };
};
}; };
} }

View file

@ -17,7 +17,7 @@
waybar = "pkill -USR1 .waybar-wrapped"; waybar = "pkill -USR1 .waybar-wrapped";
dms = "dms ipc call bar toggle"; dms = "dms ipc call bar toggle";
caelestia = "echo pass"; caelestia = "echo pass";
noctalia-shell = "noctalia-shell ipc call bar toggle"; noctalia-shell = "noctalia msg bar-toggle";
} }
.${config.desktopShell}; .${config.desktopShell};
} }

View file

@ -5,12 +5,15 @@
... ...
}: }:
{ {
programs.gemini-cli = { programs.antigravity-cli = {
enable = true; enable = true;
}; };
programs.claude-code = { programs.claude-code = {
enable = true; enable = true;
}; };
programs.pi-coding-agent = {
enable = true;
};
home.sessionVariables = { home.sessionVariables = {
GEMINI_API_KEY = "$(cat ${config.age.secrets.gemini_token.path})"; GEMINI_API_KEY = "$(cat ${config.age.secrets.gemini_token.path})";
ANTHROPIC_AUTH_TOKEN = "$(cat ${config.age.secrets.anyrouter_token.path})"; ANTHROPIC_AUTH_TOKEN = "$(cat ${config.age.secrets.anyrouter_token.path})";
@ -27,6 +30,5 @@
opencode opencode
codex codex
gitingest gitingest
inputs.hermes-agent.packages.${pkgs.stdenv.hostPlatform.system}.default
]; ];
} }

View file

@ -51,6 +51,7 @@
android-tools android-tools
tree-sitter tree-sitter
inputs.agenix.packages.${pkgs.stdenv.hostPlatform.system}.agenix inputs.agenix.packages.${pkgs.stdenv.hostPlatform.system}.agenix
evtest
]; ];
imports = [ imports = [
./eye-candy.nix ./eye-candy.nix

View file

@ -26,7 +26,7 @@
enable = config.desktopShell == "caelestia"; enable = config.desktopShell == "caelestia";
systemd.enable = config.desktopShell == "caelestia"; systemd.enable = config.desktopShell == "caelestia";
}; };
programs.noctalia-shell.enable = config.desktopShell == "noctalia-shell"; programs.noctalia.enable = config.desktopShell == "noctalia-shell";
home.packages = lib.mkIf (config.desktopShell == "noctalia-shell") [ home.packages = lib.mkIf (config.desktopShell == "noctalia-shell") [
inputs.noctalia-shell.packages.${pkgs.stdenv.hostPlatform.system}.default inputs.noctalia-shell.packages.${pkgs.stdenv.hostPlatform.system}.default
]; ];

View file

@ -43,5 +43,4 @@
inherit (inputs.niri.overlays) niri; inherit (inputs.niri.overlays) niri;
nur = inputs.nur.overlays.default; nur = inputs.nur.overlays.default;
nix-matlab = inputs.nix-matlab.overlay; nix-matlab = inputs.nix-matlab.overlay;
inherit (inputs.nixpkgs-mozilla.overlays) firefox;
} }