noctalia configuration and basic niri setup

This commit is contained in:
2025-12-26 12:28:22 +01:00
parent c1f4c25cb6
commit e14992e9fd
6 changed files with 212 additions and 12 deletions

23
flake.lock generated
View File

@@ -311,6 +311,26 @@
"type": "github"
}
},
"noctalia": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1766538131,
"narHash": "sha256-CAGs0LA27JL9EBLfH1sDb2ljs2hC2KBFCU9CnJfTmR0=",
"owner": "noctalia-dev",
"repo": "noctalia-shell",
"rev": "6ff3debf15aef7c43be7cb43938f78c25d40b3d5",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"repo": "noctalia-shell",
"type": "github"
}
},
"pre-commit": {
"inputs": {
"flake-compat": "flake-compat",
@@ -345,7 +365,8 @@
"microvm": "microvm",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable"
"nixpkgs-unstable": "nixpkgs-unstable",
"noctalia": "noctalia"
}
},
"rust-overlay": {

View File

@@ -46,6 +46,11 @@
inputs.nixpkgs.follows = "nixpkgs";
};
noctalia = {
url = "github:noctalia-dev/noctalia-shell";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {

View File

@@ -64,6 +64,7 @@
vimiv-qt
freecad
discord
vesktop
element-desktop
# Fileanagement
@@ -81,7 +82,6 @@
gimp
# Flatpak
prusa-slicer
#vscodium
(vscode-with-extensions.override {
vscode = vscodium;
@@ -90,8 +90,8 @@
github.copilot
#ms-python.python
ms-vscode.cpptools
dracula-theme.theme-dracula
catppuccin.catppuccin-vsc-icons
catppuccin.catppuccin-vsc
];
})

View File

@@ -17,7 +17,7 @@
# └─ default.nix
#
{ lib, config, pkgs, user, ... }:
{ inputs, lib, config, pkgs, user, ... }:
{
imports = # For now, if applying to other system, swap files

View File

@@ -11,15 +11,15 @@
# └─ hyprland.nix *
#
{ config, lib, user, pkgs, desktop, ... }:
{ config, inputs, lib, user, pkgs, desktop, ... }:
{
imports = [ ../waybar.nix ];
imports = [ ../noctalia.nix ];
environment = {
systemPackages = with pkgs; [
xdg-desktop-portal-gnome
dinit
xdg-desktop-portal-gtk
swaylock
swayidle
slurp
@@ -29,15 +29,12 @@
glib
brightnessctl
playerctl
xwayland-satellite
];
};
services = {
iio-niri = {
enable = true;
extraArgs = [
"--monitor"
"eDP-1"
];
};
greetd = {
enable = true;

177
modules/wm/noctalia.nix Normal file
View File

@@ -0,0 +1,177 @@
#
# Bar
#
{ config, pkgs, inputs, user, ...}:
{
# install package
environment.systemPackages = with pkgs; [
# ... maybe other stuff
];
services.tuned.enable = true;
services.upower.enable = true;
home-manager.users.${user} = { # Home-manager waybar config
# import the home manager module
imports = [
inputs.noctalia.homeModules.default
];
programs.fuzzel = {
enable = true; # Super+D in the default setting (app launcher)
};
services.mako.enable = true; # notification daemon
services.polkit-gnome.enable = true; # polkit
# configure options
programs.noctalia-shell = {
enable = true;
# enable the systemd service
systemd.enable = true;
settings = {
# configure noctalia here
appLauncher = {
terminalCommand = "{pkgs.alacritty}/bin/alacritty -e";
};
bar = {
density = "compact";
position = "top";
showCapsule = false;
widgets = {
left = [
{
id = "ControlCenter";
useDistroLogo = true;
}
{
hideUnoccupied = false;
id = "Workspace";
labelMode = "none";
}
{
id = "ActiveWindow";
}
];
center = [
{
formatHorizontal = "HH:mm";
formatVertical = "HH mm";
id = "Clock";
useMonospacedFont = true;
usePrimaryColor = true;
}
];
right = [
{
id = "MediaMini";
}
{
id = "SystemMonitor";
showNetworkStats = true;
}
{
id = "WiFi";
}
{
id = "Bluetooth";
}
{
id = "Battery";
warningThreshold = 20;
displayMode = "alwaysShow";
}
{
id = "Volume";
displayMode = "alwaysShow";
}
{
id = "NotificationHistory";
hideWhenZero = true;
}
{
id = "Tray";
}
];
};
};
colorSchemes.predefinedScheme = "Catppuccin";
general = {
avatarImage = "/home/kabbone/.face";
radiusRatio = 0.2;
lockOnSusepnd = true;
};
location = {
monthBeforeDay = true;
name = "Munich, Germany";
showWeekNumberInCalendar = true;
firstDayOfWeek = 0;
};
wallpaper = {
enabled = true;
overviewEnabled = false;
directory = "/home/${user}/.setup/modules/themes/";
};
brightness = {
enforceMinimum = true;
brightnessStep = 5;
};
controlCenter = {
shortcuts = {
left = [
{
id = "WiFi";
}
{
id = "Bluetooth";
}
{
id = "ScreenRecorder";
}
{
id = "PowerProfile";
}
{
id = "KeepAwake";
}
];
};
};
dock = {
enabled = false;
};
templates = {
fuzzel = true;
alacritty = true;
qt = true;
gtk = true;
discord = true;
code = true;
telegram = true;
niri = true;
firefox = true;
};
};
# this may also be a string or a path to a JSON file,
# but in this case must include *all* settings.
};
home.file.".cache/noctalia/wallpapers.json" = {
text = builtins.toJSON {
defaultWallpaper = "/home/${user}/.setup/modules/themes/wall.jpg";
};
};
};
}