noctalia shit mostly

This commit is contained in:
martyTF 2026-04-16 08:01:28 +02:00
parent 7b9b6c1cdd
commit 34dd048981
14 changed files with 398 additions and 144 deletions

View file

@ -8,13 +8,9 @@
}:
{
imports =
if true then
[
inputs.noctalia.homeModules.default
]
else
[ ];
imports = [
inputs.noctalia.homeModules.default
];
config = {
programs.noctalia-shell =
@ -52,44 +48,293 @@
widgets = {
left = [
{
colorizeSystemIcon = "none";
customIconPath = "";
enableColorization = false;
icon = "rocket";
iconColor = "none";
id = "Launcher";
useDistroLogo = true;
}
{
id = "Clock";
}
{
id = "SystemMonitor";
}
{
id = "ActiveWindow";
}
{
compactMode = false;
hideMode = "hidden";
hideWhenIdle = false;
id = "MediaMini";
maxWidth = 145;
panelShowAlbumArt = true;
scrollingMode = "hover";
showAlbumArt = true;
showArtistFirst = true;
showProgressRing = true;
showVisualizer = false;
textColor = "none";
useFixedWidth = false;
visualizerType = "linear";
}
{
hideWhenZero = false;
hideWhenZeroUnread = false;
iconColor = "none";
id = "NotificationHistory";
showUnreadBadge = true;
unreadBadgeColor = "primary";
}
{
compactMode = true;
diskPath = "/";
iconColor = "none";
id = "SystemMonitor";
showCpuCores = false;
showCpuFreq = false;
showCpuTemp = true;
showCpuUsage = true;
showDiskAvailable = false;
showDiskUsage = true;
showDiskUsageAsPercent = false;
showGpuTemp = false;
showLoadAverage = false;
showMemoryAsPercent = false;
showMemoryUsage = true;
showNetworkStats = false;
showSwapUsage = true;
textColor = "none";
useMonospaceFont = true;
usePadding = false;
}
(
if (osConfig.device.type == "laptop") then
{
deviceNativePath = "__default__";
displayMode = "icon-hover";
hideIfIdle = false;
hideIfNotDetected = false;
id = "Battery";
showNoctaliaPerformance = true;
showPowerProfiles = true;
}
else
{ }
)
{
displayMode = "alwaysHide";
iconColor = "none";
id = "Network";
textColor = "none";
}
{
displayMode = "alwaysHide";
iconColor = "none";
id = "Bluetooth";
textColor = "none";
}
{
defaultSettings = {
autoHeight = true;
cheatsheetData = [ ];
columnCount = 3;
detectedCompositor = "";
hyprlandConfigPath = "~/.config/hypr/hyprland.conf";
modKeyVariable = "$mod";
niriConfigPath = "~/.config/niri/config.kdl";
windowHeight = 0;
windowWidth = 1400;
};
id = "plugin:keybind-cheatsheet";
}
{
defaultSettings = {
autoCloseManagedObs = true;
barLabelMode = "short-label";
launchBehavior = "minimized-to-tray";
leftClickAction = "panel";
openVideosAfterStop = true;
pollIntervalMs = 2500;
showBarWhenReady = true;
showBarWhenRecording = true;
showBarWhenReplay = false;
showBarWhenStreaming = true;
showControlCenterWhenReady = false;
showControlCenterWhenRecording = true;
showControlCenterWhenReplay = true;
showControlCenterWhenStreaming = true;
showElapsedInBar = false;
videosOpener = "xdg-open";
videosPath = "";
};
id = "plugin:obs-control";
}
{
defaultSettings = {
activeColor = "primary";
enableToast = true;
hideInactive = false;
iconSpacing = 4;
inactiveColor = "none";
micFilterRegex = "";
removeMargins = false;
};
id = "plugin:privacy-indicator";
}
{
defaultSettings = {
colorHistory = [ ];
detectedCompositor = "";
detectedRecorder = "";
filenameFormat = "";
installedLangs = [
"eng"
];
paletteColors = [ ];
screenshotPath = "";
selectedOcrLang = "eng";
transAvailable = false;
videoPath = "";
};
id = "plugin:screen-toolkit";
}
];
center = [
{
defaultSettings = {
hideBackground = false;
minimumThreshold = 10;
};
id = "plugin:catwalk";
}
{
clockColor = "none";
customFont = "";
formatHorizontal = "HH:mm ddd, dd. MMM";
formatVertical = "HH mm - dd MM";
id = "Clock";
tooltipFormat = "HH:mm ddd, dd. MMM";
useCustomFont = false;
}
{
id = "plugin:weekly-calendar";
}
{
characterCount = 2;
colorizeIcons = false;
emptyColor = "none";
enableScrollWheel = true;
focusedColor = "primary";
followFocusedScreen = false;
fontWeight = "bold";
groupedBorderOpacity = 1;
hideUnoccupied = false;
iconScale = 0.8;
id = "Workspace";
labelMode = "index";
occupiedColor = "none";
pillSize = 0.6;
showApplications = false;
showApplicationsHover = false;
showBadge = true;
showLabelsOnlyWhenOccupied = true;
unfocusedIconsOpacity = 1;
}
{
defaultSettings = {
enableTodoIntegration = false;
notecardsEnabled = true;
pincardsEnabled = true;
showCloseButton = true;
};
id = "plugin:clipper";
}
{
defaultSettings = {
catColor = "default";
catOffsetY = 0;
catSize = 1;
idleTimeout = 150;
raveMode = false;
tappyMode = false;
useMprisFilter = false;
waitingTimeout = 30000;
};
id = "plugin:slowbongo";
}
];
right = [
{
blacklist = [
"*kdeconnect*"
"*syncthing*"
];
chevronColor = "none";
colorizeIcons = false;
drawerEnabled = false;
hidePassive = false;
id = "Tray";
pinned = [ ];
}
{
id = "NotificationHistory";
defaultSettings = { };
id = "plugin:kde-connect";
}
{
id = "Battery";
defaultSettings = {
apiKey = "";
apiUrl = "";
configPath = "";
enabled = true;
folderIds = [ ];
pollIntervalMs = 10000;
verifyTls = false;
};
id = "plugin:syncthing-status";
}
{
defaultSettings = {
compactMode = false;
defaultPeerAction = "copy-ip";
hideDisconnected = false;
hideMullvadExitNodes = true;
pingCount = 5;
refreshInterval = 5000;
showIpAddress = true;
showPeerCount = true;
sshUsername = "";
taildropDownloadDir = "~/Downloads";
taildropEnabled = true;
taildropReceiveMode = "operator";
terminalCommand = "";
};
id = "plugin:tailscale";
}
(
if (osConfig.device.type == "laptop") then
{
applyToAllMonitors = false;
displayMode = "onhover";
iconColor = "none";
id = "Brightness";
textColor = "none";
}
else
{ }
)
{
displayMode = "onhover";
iconColor = "none";
id = "Volume";
middleClickCommand = "pwvucontrol || pavucontrol";
textColor = "none";
}
{
id = "Brightness";
displayMode = "onhover";
iconColor = "none";
id = "Microphone";
middleClickCommand = "pwvucontrol || pavucontrol";
textColor = "none";
}
{
id = "ControlCenter";
iconColor = "none";
id = "WallpaperSelector";
}
];
};
@ -229,7 +474,7 @@
solidColor = "#1a1a2e";
automationEnabled = true;
wallpaperChangeMode = "random";
randomIntervalSec = 300;
randomIntervalSec = 900;
transitionDuration = 1500;
transitionType = [
"fade"
@ -531,60 +776,78 @@
syncGsettings = true;
};
templates = {
activeTemplates = [
{ id = alacritty;
enable = true;
activeTemplates = [
{
id = "alacritty";
enable = true;
}
{ id = btop;
enable = true;
{
id = "btop";
enable = true;
}
{ id = cava;
enable = true;
{
id = "cava";
enable = true;
}
{ id = emacs;
enable = true;
{
id = "emacs";
enable = true;
}
{ id = gtk;
enable = true;
{
id = "gtk";
enable = true;
}
{ id = hyprland;
enable = true;
{
id = "hyprland";
enable = true;
}
{ id = hyprtoolkit;
enable = true;
{
id = "hyprtoolkit";
enable = true;
}
{ id = kcolorscheme;
enable = true;
{
id = "kcolorscheme";
enable = true;
}
{ id = kitty;
enable = true;
{
id = "kitty";
enable = true;
}
{ id = mango;
enable = true;
{
id = "mango";
enable = true;
}
{ id = niri;
enable = true;
{
id = "niri";
enable = true;
}
{ id = qt;
enable = true;
{
id = "qt";
enable = true;
}
{ id = steam;
enable = true;
{
id = "steam";
enable = true;
}
{ id = sway;
enable = true;
{
id = "sway";
enable = true;
}
{ id = code;
enable = true;
{
id = "code";
enable = true;
}
{ id = walker;
enable = true;
{
id = "walker";
enable = true;
}
{ id = zed;
enable = true;
{
id = "zed";
enable = true;
}
{ id = zenBrowser;
enable = true;
{
id = "zenBrowser";
enable = true;
}
];
enableUserTheming = false;

View file

@ -1,81 +0,0 @@
{
config,
pkgs,
lib,
...
}:
let
type = config.device.type;
in
{
options = {
device = {
type = lib.mkOption {
default = "desktop";
description = "device preset: desktop, laptop, server";
};
};
};
config = {
apps = {
audio = {
base.enable = (lib.mkIf (type == "desktop")) true;
media.enable = true;
editing.enable = true;
};
video = {
base.enable = true;
media.enable = true;
editing.enable = true;
};
image = {
base.enable = true;
editing.enable = true;
};
gaming = {
steam.enable = true;
};
terminal = {
kitty = {
enable = true;
};
default = "kitty";
toys = true;
};
};
desktop = {
window-managers = {
hyprland = {
enable = true;
};
niri = {
enable = true;
};
sway = {
enable = false;
};
};
shell = {
noctalia = {
enable = true;
};
swww = {
enable = false;
};
walker = {
enable = true;
};
waybar = {
enable = false;
};
};
utilities = {
grimblast = {
enable = true;
};
};
};
};
}

View file

@ -17,6 +17,7 @@
locale = "de_DE.UTF-8";
hostname = "marty-pc";
};
device.type = "desktop";
apps = {
audio = {
base.enable = true;
@ -72,6 +73,7 @@
kde-connect.enable = true;
nextcloud.enable = true;
syncthing = {
enable = true;
devices = {
marty-pc = {
id = "6PJZD52-EEWIO7U-MZMJJ5B-33DGNSU-O7DJVRT-GAE7QZG-ZY3VIMV-VSMBDQP";

View file

@ -57,9 +57,14 @@
);
programs = {
seahorse.enable = true;
dconf.enable = true;
};
services = {
gnome.gnome-keyring.enable = true;
gnome = {
gnome-keyring.enable = true;
evolution-data-server.enable = true;
gnome-online-accounts.enable = true;
};
};
};
}

View file

@ -58,7 +58,6 @@
if config.apps.sync.syncthing.enable then
{
enable = true;
tray.enable = true;
guiAddress = "0.0.0.0:8384";
settings = {
devices = config.apps.sync.syncthing.devices;

View file

@ -32,7 +32,11 @@
++ (
if config.apps.video.editing.enable then
[ kdePackages.kdenlive ]
[
kdePackages.kdenlive
kdePackages.qtwebsockets
obs-studio
]
else
[ ]
)

View file

@ -9,6 +9,7 @@
imports = [
./apps
./desktop
./device
./server
./system
./user

View file

@ -12,5 +12,4 @@
noctalia.enable = lib.mkEnableOption "enable noctalia";
};
};
config.services.gnome.evolution-data-server.enable = true;
}

View file

@ -0,0 +1,22 @@
{
config,
lib,
pkgs,
...
}:
{
options = {
device.type = lib.mkOption {
default = "minimal";
description = "device type (desktop, laptop, server, minimal) for base config";
};
};
imports = [
./minimal.nix
./desktop.nix
./laptop.nix
./server.nix
];
}

View file

@ -0,0 +1,10 @@
{
config,
lib,
pkgs,
...
}:
{
config = { };
}

10
modules/device/laptop.nix Normal file
View file

@ -0,0 +1,10 @@
{
config,
lib,
pkgs,
...
}:
{
config = { };
}

View file

@ -0,0 +1,10 @@
{
config,
lib,
pkgs,
...
}:
{
config = { };
}

10
modules/device/server.nix Normal file
View file

@ -0,0 +1,10 @@
{
config,
lib,
pkgs,
...
}:
{
config = { };
}

View file

@ -5,7 +5,7 @@
...
}:
let
domain = ${config.server.misc.lauti.subdomain}.${config.networking.domain};
domain = "${config.server.misc.lauti.subdomain}.${config.networking.domain}";
in
{
options = {