Rename noctalia-shell to noctalia and add support

* Rename `nooctalia-plugins` to `noctalia-plugins` in host modules and
  plugin definitions
* Update Hyprland keybindings and exec-once to use the new `noctalia`
  commands
* Add `stylixImage` option and enable pointer cursor in
  `modules/core/user.nix`
* Introduce `modules/home/nixpkgs.nix` to allow unfree packages and
  insecure Electron
* Add full Noctalia configuration module with settings for audio,
  bar, calendar, location, notifications, plugins, shell, wallpaper,
  and widgets
* Enable `noctalia` in `modules/home/stylix.nix` and replace legacy
  `noctalia-shell` imports in `modules/home/default.nix`
This commit is contained in:
2026-07-17 15:08:33 +02:00
parent 1d0f2a29f3
commit f4a59aefc7
25 changed files with 311 additions and 178 deletions
Generated
+43 -125
View File
@@ -17,11 +17,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1781331278,
"narHash": "sha256-8IM7jJnnkhbKDbq39q4BS+DbE5CrsT4UhFtmcUDvVjE=",
"lastModified": 1783987500,
"narHash": "sha256-KvQSG1KJMIoKDx1UY1Ps98MA+oKcVmeE1WPWXG3B4w8=",
"owner": "mrshmllow",
"repo": "affinity-nix",
"rev": "f112cdef13bbd13e1067e72804c18c7622357547",
"rev": "fe12b087f518cd5c2cd03fcc63f30cd78108bc35",
"type": "github"
},
"original": {
@@ -116,11 +116,11 @@
},
"crane": {
"locked": {
"lastModified": 1780532242,
"narHash": "sha256-D+BsdpxmtUwtqGoY0IXPhHgTlmqgcZKCEo1oMyn7ep0=",
"lastModified": 1783203018,
"narHash": "sha256-G6R9IT/xwFuu+CYBWDUAok6AdC4ERC4ZfPPFtEpxnZE=",
"owner": "ipetkov",
"repo": "crane",
"rev": "59a82a1222dd3b2080b5cc52a1a2e8d5f1b77f37",
"rev": "80db5bdc391be8a1794f6d8a2d56e3a84ebcede2",
"type": "github"
},
"original": {
@@ -138,11 +138,11 @@
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1781086641,
"narHash": "sha256-2oBncBeL671Tf6TnYqk36ebkfPHNYPKwz5at8NcrpvI=",
"lastModified": 1782900513,
"narHash": "sha256-GHrsl1+ysDFgmDQtQSqWS7TiYD2Q58VlwLvnf1+crJM=",
"owner": "nix-community",
"repo": "fenix",
"rev": "640606300f74b4891bfa1a51f5756450f9fdc7f1",
"rev": "16810aa8f4ad89ca480b1513774e8b6f485fe368",
"type": "github"
},
"original": {
@@ -181,11 +181,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1781323358,
"narHash": "sha256-W8SFmaIEW4tP4jQ48EJSSVnO8s4gZ1j1D4K22tW9pd8=",
"lastModified": 1784174539,
"narHash": "sha256-pe7fP3E7nyqVIus9O//9SwyeLKThT7+4Rtlz3yIvcAk=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "89503b569dd29491d5c58bf41c244253fcd3d2b3",
"rev": "6b421f3c29e6b8c282edfe5f8c9802506506e267",
"type": "gitlab"
},
"original": {
@@ -245,11 +245,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1778716662,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"lastModified": 1782949081,
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
"type": "github"
},
"original": {
@@ -320,17 +320,16 @@
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat_2",
"gitignore": "gitignore",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1778507602,
"narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=",
"lastModified": 1783008725,
"narHash": "sha256-jGiy6+sxjNWXSjp25uoJuNfyH9zBK1PEDY0lVoL4ibQ=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a",
"rev": "bca82caa46d5ec0f5d422c61fb1e30bc51313cbe",
"type": "github"
},
"original": {
@@ -339,26 +338,6 @@
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gnome-shell": {
"flake": false,
"locked": {
@@ -383,11 +362,11 @@
]
},
"locked": {
"lastModified": 1781305496,
"narHash": "sha256-g8Vv4Qfc7n+lgov97REu3X6BeJtvYY0hlSUZR1GrGQQ=",
"lastModified": 1784129366,
"narHash": "sha256-N5JiyICSeQF14x+OQebNyPpYowOT9Rs1iKyeCylSzOA=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "c87a39aa979acc4848016d2220c6238390d84779",
"rev": "165228b0efefc3e635e5174020c40ea64271dc25",
"type": "github"
},
"original": {
@@ -456,11 +435,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1784007870,
"narHash": "sha256-djcLt/JJphyNt4eDY9XTly+/WbCK5lqWq9lSgCmJkkQ=",
"lastModified": 1784120854,
"narHash": "sha256-KesHgItiZPgGX740axSiQLcIQ8D24MDqNpkKYWIek8k=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "18b9261cb3294b6d2a06d03f96872827b8fe2698",
"rev": "753cc8a3a87467296ddd1fa93f0cc3e81120ee46",
"type": "github"
},
"original": {
@@ -472,11 +451,11 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1777168982,
"narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
"lastModified": 1782614948,
"narHash": "sha256-ePjCwr1sNm9NYUqywL7QfK3JnlS015msC+eBu2zKlp8=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
"rev": "db3f255737b94216eb71cce308e2912cf6bc2d7c",
"type": "github"
},
"original": {
@@ -505,15 +484,14 @@
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"noctalia-qs": "noctalia-qs"
]
},
"locked": {
"lastModified": 1780889763,
"narHash": "sha256-18kh968u0hhtDyECo0FBnlEnJLDxs0uB5H5QbWA9P3I=",
"lastModified": 1784210019,
"narHash": "sha256-DfE6kFtK8RG4I9EQplJzUUjb16CG1alx5rprs2cibE0=",
"owner": "noctalia-dev",
"repo": "noctalia-shell",
"rev": "57be32b0a81471ef6c5dceff6faad23b534ec7f8",
"rev": "cb15ce1c85a5e8c652f8aabc3ccd6f266b344e57",
"type": "github"
},
"original": {
@@ -522,29 +500,6 @@
"type": "github"
}
},
"noctalia-qs": {
"inputs": {
"nixpkgs": [
"noctalia",
"nixpkgs"
],
"systems": "systems",
"treefmt-nix": "treefmt-nix_2"
},
"locked": {
"lastModified": 1780799499,
"narHash": "sha256-YloRtLqJabzYUWvdLyh67zH4DZrR3kQj+dlQJwLPmPM=",
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"rev": "f308426239665e3bc3d624014e9295b2ae2f58ff",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": [
@@ -639,11 +594,11 @@
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1781005730,
"narHash": "sha256-3Bn47a+Vs2/ltQfTU2ApWqy5kYNmF+RaTEJs0A/H2pA=",
"lastModified": 1782864348,
"narHash": "sha256-NVYhLbaefeIUftPlo3kS6qr0xd8eFJRodEiaHrvFKR4=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "587ce15e272b94d4f0a69d695e3718a02c24667e",
"rev": "0d381ca097a8e0375a19387874d952c0a230ac4f",
"type": "github"
},
"original": {
@@ -683,18 +638,18 @@
"nixpkgs"
],
"nur": "nur",
"systems": "systems_2",
"systems": "systems",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1781018772,
"narHash": "sha256-C+cGIUaC6dqfwTbI+BwCd572PbESGA3WYxR1sLTqxkY=",
"lastModified": 1784059683,
"narHash": "sha256-q5MZrmKlg9A4ORx3EQcr7qkuidMU1gVZ+xJ3nCK+xgc=",
"owner": "danth",
"repo": "stylix",
"rev": "a378e4c09031fb15a4d65da88aa628f71fc52f6b",
"rev": "c8ccc31f3ea29dc3eb5b54945e5eb549529491d6",
"type": "github"
},
"original": {
@@ -705,31 +660,16 @@
},
"systems": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"repo": "default",
"type": "github"
}
},
@@ -816,28 +756,6 @@
"repo": "treefmt-nix",
"type": "github"
}
},
"treefmt-nix_2": {
"inputs": {
"nixpkgs": [
"noctalia",
"noctalia-qs",
"nixpkgs"
]
},
"locked": {
"lastModified": 1780220602,
"narHash": "sha256-eynAfOmbmxJnkp7YewvCEbShNnnYJ9gLLqkzsYtBPeM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "db947814a175b7ca6ded66e21383d938df01c227",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
}
},
"root": "root",
+13 -13
View File
@@ -79,17 +79,17 @@ _: {
};
};
/*
Noctalia-shell plugins
*/
nooctalia-plugins = {
mini-docker.enable = false; # Mini Docker: Manage Docker containers, images, volumes & networks
timer.enable = false; # Timer: A timer and stopwatch plugin for the bar & control center.
keybind-cheatsheet.enable = true; # Keybind Cheatsheet: Universal keyboard shortcuts keymap that automatically detects and displays keybindings for Hyprland, Niri, or MangoWC compositors.
kde-connect.enable = true; # KDE Connect: A Plugin integrating your mobile devices into a panel using KDEConnect
screen-recorder.enable = true; # Screen Recorder: Hardware-accelerated screen recording using gpu-screen-recorder with customizable video and audio settings
screenshot.enable = true; # Screenshot: Quick screenshot button in bar for Hyprland, Sway, and Niri
ntfy-notifications.enable = true; # ntfy Notifications: Subscribe to ntfy topics and receive push notifications directly in your bar, with full theming support
tailscale.enable = true; # Tailscale: Show Tailscale status in the menu bar and send/receive files via Taildrop.
};
# /*
# Noctalia-shell plugins
# */
# noctalia-plugins = {
# mini-docker.enable = false; # Mini Docker: Manage Docker containers, images, volumes & networks
# timer.enable = false; # Timer: A timer and stopwatch plugin for the bar & control center.
# keybind-cheatsheet.enable = true; # Keybind Cheatsheet: Universal keyboard shortcuts keymap that automatically detects and displays keybindings for Hyprland, Niri, or MangoWC compositors.
# kde-connect.enable = true; # KDE Connect: A Plugin integrating your mobile devices into a panel using KDEConnect
# screen-recorder.enable = true; # Screen Recorder: Hardware-accelerated screen recording using gpu-screen-recorder with customizable video and audio settings
# screenshot.enable = true; # Screenshot: Quick screenshot button in bar for Hyprland, Sway, and Niri
# ntfy-notifications.enable = true; # ntfy Notifications: Subscribe to ntfy topics and receive push notifications directly in your bar, with full theming support
# tailscale.enable = true; # Tailscale: Show Tailscale status in the menu bar and send/receive files via Taildrop.
# };
}
+1 -1
View File
@@ -82,7 +82,7 @@ _: {
/*
Noctalia-shell plugins
*/
nooctalia-plugins = {
noctalia-plugins = {
mini-docker.enable = false; # Mini Docker: Manage Docker containers, images, volumes & networks
timer.enable = false; # Timer: A timer and stopwatch plugin for the bar & control center.
keybind-cheatsheet.enable = true; # Keybind Cheatsheet: Universal keyboard shortcuts keymap that automatically detects and displays keybindings for Hyprland, Niri, or MangoWC compositors.
+1 -1
View File
@@ -82,7 +82,7 @@ _: {
/*
Noctalia-shell plugins
*/
nooctalia-plugins = {
noctalia-plugins = {
mini-docker.enable = false; # Mini Docker: Manage Docker containers, images, volumes & networks
timer.enable = false; # Timer: A timer and stopwatch plugin for the bar & control center.
keybind-cheatsheet.enable = false; # Keybind Cheatsheet: Universal keyboard shortcuts keymap that automatically detects and displays keybindings for Hyprland, Niri, or MangoWC compositors.
@@ -37,3 +37,4 @@ in
};
}
# https://github.com/imputnet/helium-linux/releases/download/0.11.7.1/helium-0.11.7.1-x86_64.AppImage
+3
View File
@@ -11,6 +11,7 @@
keyboardLayout,
gitEmail,
location,
stylixImage,
...
}: {
imports = [inputs.home-manager.nixosModules.home-manager];
@@ -31,6 +32,7 @@
gitEmail
gitUsername
location
stylixImage
;
};
users.${username} = {
@@ -43,6 +45,7 @@
username = "${username}";
homeDirectory = "/home/${username}";
stateVersion = "25.11";
pointerCursor.enable = true;
shell.enableFishIntegration =
if shell == "fish"
then true
+3 -1
View File
@@ -7,7 +7,8 @@ _: {
./hyprland
./kitty
./librewolf
./noctalia-shell
./noctalia
# ./noctalia-shell
./obsidian
./scripts
./vscodium
@@ -27,6 +28,7 @@ _: {
./lutris.nix
./mangohud.nix
./nextcloud.nix
./nixpkgs.nix
./obs-studio.nix
./ollama.nix
./onlyoffice.nix
+27 -27
View File
@@ -10,8 +10,8 @@
"SUPER, B, exec, bitwarden #\"Password manager\""
"SUPER, C, exec, chromium #\"Ungoogled Chromium\""
"SUPER, D, exec, vesktop #\"Discord client\""
"SUPER, E, exec, noctalia-shell ipc call launcher emoji #\"Emoji picker\""
"SUPER, Escape, exec, noctalia-shell ipc call lockScreen lock #\"Lock the screen\""
"SUPER, E, exec, noctalia msg panel-toggle launcher \"/emo \" #\"Emoji picker\""
"SUPER, Escape, exec, noctalia msg session lock #\"Lock the screen\""
"SUPER, G, exec, affinity-v3 #\"Graphics editor\""
"SUPER, H, exec, helium #\"Helium web browser\""
"SUPER, I, exec, iotas #\"Note-taking app\""
@@ -22,7 +22,7 @@
"SUPER, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop #\"GarandCloud client\""
"SUPER, O, exec, onlyoffice-desktopeditors #\"Office suite\""
"SUPER, P, exec, plex-desktop #\"Plex media player\""
"SUPER, R, exec, noctalia-shell ipc call plugin:screen-recorder saveReplay #\"Save Replay\""
"SUPER, R, exec, noctalia msg plugin noctalia/screen_recorder:service all replay-save #\"Save Replay\""
"SUPER, Return, exec, kitty #\"Kitty terminal\""
"SUPER, S, exec, steam #\"Steam Game launcher\""
"SUPER, T, exec, thunar #\"File manager\""
@@ -34,43 +34,43 @@
shiftBinds = [
"SUPER SHIFT, C, exec, dex ${desktopEntriesPath}/claude.desktop #\"Claude AI chat\""
"SUPER SHIFT, E, exec, evolution #\"Personal information management application\""
"SUPER SHIFT, Escape, exec, noctalia-shell ipc call sessionMenu toggle #\"Open Session Menu\""
"SUPER SHIFT, Escape, exec, noctalia msg panel-toggle session #\"Open Session Menu\""
"SUPER SHIFT, G, exec, dex ${desktopEntriesPath}/chatgpt.desktop #\"ChatGPT AI chat\""
"SUPER SHIFT, J, exec, dex ${desktopEntriesPath}/jellyfinClient.desktop #\"Jellyfin PWA\""
"SUPER SHIFT, K, exec, noctalia-shell ipc call plugin:keybind-cheatsheet toggle #\"Toggle keybind cheatsheet\""
# "SUPER SHIFT, K, exec, noctalia-shell ipc call plugin:keybind-cheatsheet toggle #\"Toggle keybind cheatsheet\""
"SUPER SHIFT, M, exec, plexamp #\"Music player for Plex\""
"SUPER SHIFT, N, exec, nextcloud #\"Nextcloud desktop sync client\""
"SUPER SHIFT, O, exec, obs #\"Open Broadcaster Software\""
"SUPER SHIFT, P, exec, noctalia-shell ipc call volume togglePanel #\"Toggle volume control panel\""
"SUPER SHIFT, R, exec, restart-noctalia #\"Restart Noctalia shell\""
"SUPER SHIFT, Return, exec, noctalia-shell ipc call launcher toggle #\"Toggle application launcher\""
"SUPER SHIFT, S, exec, noctalia-shell ipc call plugin:screenshot takeScreenshot region #\"Take screenshot\""
"SUPER SHIFT, P, exec, pavucontrol #\"Toggle volume control panel\""
"SUPER SHIFT, R, exec, noctalia msg config-reload #\"Restart Noctalia shell\""
"SUPER SHIFT, Return, exec, noctalia msg panel-toggle launcher #\"Toggle application launcher\""
"SUPER SHIFT, S, exec, noctalia msg screenshot-region #\"Take screenshot\""
"SUPER SHIFT, T, exec, tutanota-desktop #\"Tutanota encrypted email client\""
"SUPER SHIFT, V, exec, noctalia-shell ipc call launcher clipboard #\"Open clipboard manager\""
"SUPER SHIFT, V, exec, noctalia msg panel-toggle clipboard #\"Open clipboard manager\""
];
altBinds = [
"SUPER ALT, C, exec, noctalia-shell ipc call controlCenter toggle #\"Toggle control center\""
"SUPER ALT, C, exec, noctalia msg panel-toggle control-center [tab] #\"Toggle control center\""
"SUPER ALT, F, exec, finamp #\"Jellyfin music client\""
"SUPER ALT, G, exec, dex ${desktopEntriesPath}/glance.desktop #\"Glance server panel\""
"SUPER ALT, K, exec, kdenlive #\"Video editing software\""
"SUPER ALT, M, exec, dex ${desktopEntriesPath}/mastodon.desktop #\"Mastodon social network client\""
"SUPER ALT, N, exec, noctalia-shell ipc call plugin:ntfy-notifications toggle #\"Open ntfy panel\""
# "SUPER ALT, N, exec, noctalia-shell ipc call plugin:ntfy-notifications toggle #\"Open ntfy panel\""
"SUPER ALT, O, exec, obsidian #\"Notes app\""
"SUPER ALT, P, exec, noctalia-shell ipc call settings toggle #\"Open settings panel\""
"SUPER ALT, R, exec, noctalia-shell ipc call plugin:screen-recorder toggleReplay #\"Toggle Replay\""
"SUPER ALT, P, exec, noctalia msg settings-open #\"Open settings panel\""
"SUPER ALT, R, exec, noctalia msg plugin noctalia/screen_recorder:service all replay-toggle #\"Toggle Replay\""
"SUPER ALT, S, exec, slack #\"Slack team communication tool\""
"SUPER ALT, T, exec, gedit #\"GNOME text editor\""
"SUPER ALT, W, exec, noctalia-shell ipc call wallpaper toggle #\"Toggle wallpaper\""
"SUPER ALT, W, exec, noctalia msg panel-toggle wallpaper #\"Toggle wallpaper\""
];
controlBinds = [
"SUPER CONTROL, C, exec, noctalia-shell ipc call powerProfile cycle #\"Cycle through power profiles\""
"SUPER CONTROL, C, exec, noctalia msg power-cycle #\"Cycle through power profiles\""
"SUPER CONTROL, G, exec, gimp #\"GNU Image Manipulation Program\""
"SUPER CONTROL, M, exec, mattermost-desktop #\"Mattermost team chat client\""
"SUPER CONTROL, N, exec, noctalia-shell ipc call plugin:ntfy-notifications refresh #\"Refresh ntfy\""
# "SUPER CONTROL, N, exec, noctalia-shell ipc call plugin:ntfy-notifications refresh #\"Refresh ntfy\""
"SUPER CONTROL, O, exec, dex ${desktopEntriesPath}/openWebUI.desktop #\"My own AI chat interface\""
"SUPER CONTROL, R, exec, noctalia-shell ipc call plugin:screen-recorder toggle #\"Toogle screen recording\""
"SUPER CONTROL, R, exec, noctalia msg plugin noctalia/screen_recorder:service all toggle #\"Toogle screen recording\""
"SUPER CONTROL, S, exec, signal-desktop #\"Signal encrypted messaging\""
"SUPER CONTROL, T, exec, tsukimi #\"A simple Emby/Jellyfin Client\""
"SUPER CONTROL, P, exec, hyprpicker -a #\"Pick color from screen\""
@@ -135,15 +135,15 @@
];
systemMediaAndControllsBinds = [
",XF86AudioLowerVolume, exec, noctalia-shell ipc call volume decrease #\"Lower system volume\""
",XF86AudioMute, exec, noctalia-shell ipc call volume muteOutput #\"Mute audio output\""
",XF86AudioMicMute, exec, noctalia-shell ipc call volume muteInput #\"Mute audio input\""
",XF86AudioNext, exec, noctalia-shell ipc call media next #\"Next media track\""
",XF86AudioPlay, exec, noctalia-shell ipc call media playPause #\"Play/Pause media\""
",XF86AudioPrev, exec, noctalia-shell ipc call media previous #\"Previous media track\""
",XF86AudioRaiseVolume, exec, noctalia-shell ipc call volume increase #\"Raise system volume\""
",XF86MonBrightnessDown, exec, noctalia-shell ipc call brightness decrease #\"Decrease screen brightness\""
",XF86MonBrightnessUp, exec, noctalia-shell ipc call brightness increase #\"Increase screen brightness\""
",XF86AudioLowerVolume, exec, noctalia msg volume-down #\"Lower system volume\""
",XF86AudioMute, exec, noctalia msg volume-mute #\"Mute audio output\""
",XF86AudioMicMute, exec, noctalia msg mic-mute #\"Mute audio input\""
",XF86AudioNext, exec, noctalia msg media next #\"Next media track\""
",XF86AudioPlay, exec, noctalia msg media toggle #\"Play/Pause media\""
",XF86AudioPrev, exec, noctalia msg media previous #\"Previous media track\""
",XF86AudioRaiseVolume, exec, noctalia msg volume-up #\"Raise system volume\""
",XF86MonBrightnessDown, exec, noctalia msg brightness-down #\"Decrease screen brightness\""
",XF86MonBrightnessUp, exec, noctalia msg brightness-up #\"Increase screen brightness\""
];
mkBlock = header: lines:
+1 -1
View File
@@ -3,7 +3,7 @@ _: {
"dbus-update-activation-environment --all --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
"systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
"systemctl --user start hyprpolkitagent"
"noctalia-shell"
"noctalia"
"wl-paste --type text --watch cliphist store" # Saves text
"wl-paste --type image --watch cliphist store" # Saves images
];
+8
View File
@@ -0,0 +1,8 @@
_: {
nixpkgs.config = {
allowUnfree = true;
permittedInsecurePackages = [
"electron-40.10.5"
];
};
}
+9 -9
View File
@@ -5,7 +5,7 @@
}: let
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
in {
options.nooctalia-plugins = {
options.noctalia-plugins = {
mini-docker.enable = lib.mkEnableOption "Mini docker plugin";
timer.enable = lib.mkEnableOption "Timer plugin";
keybind-cheatsheet.enable = lib.mkEnableOption "Keybind cheatsheet plugin";
@@ -26,35 +26,35 @@ in {
}
];
states = {
mini-docker = lib.mkIf config.nooctalia-plugins.mini-docker.enable {
mini-docker = lib.mkIf config.noctalia-plugins.mini-docker.enable {
enabled = true;
sourceUrl = sourceUrl;
};
timer = lib.mkIf config.nooctalia-plugins.timer.enable {
timer = lib.mkIf config.noctalia-plugins.timer.enable {
enabled = true;
sourceUrl = sourceUrl;
};
keybind-cheatsheet = lib.mkIf config.nooctalia-plugins.keybind-cheatsheet.enable {
keybind-cheatsheet = lib.mkIf config.noctalia-plugins.keybind-cheatsheet.enable {
enabled = true;
sourceUrl = sourceUrl;
};
kde-connect = lib.mkIf config.nooctalia-plugins.kde-connect.enable {
kde-connect = lib.mkIf config.noctalia-plugins.kde-connect.enable {
enabled = true;
sourceUrl = sourceUrl;
};
screen-recorder = lib.mkIf config.nooctalia-plugins.screen-recorder.enable {
screen-recorder = lib.mkIf config.noctalia-plugins.screen-recorder.enable {
enabled = true;
sourceUrl = sourceUrl;
};
screenshot = lib.mkIf config.nooctalia-plugins.screenshot.enable {
screenshot = lib.mkIf config.noctalia-plugins.screenshot.enable {
enabled = true;
sourceUrl = sourceUrl;
};
ntfy-notifications = lib.mkIf config.nooctalia-plugins.ntfy-notifications.enable {
ntfy-notifications = lib.mkIf config.noctalia-plugins.ntfy-notifications.enable {
enabled = true;
sourceUrl = sourceUrl;
};
tailscale = lib.mkIf config.nooctalia-plugins.tailscale.enable {
tailscale = lib.mkIf config.noctalia-plugins.tailscale.enable {
enabled = true;
sourceUrl = sourceUrl;
};
+21
View File
@@ -0,0 +1,21 @@
{
inputs,
system,
...
}: {
programs.noctalia = {
enable = true;
package = inputs.noctalia.packages.${system}.default;
};
imports = [
./settings
];
}
# {
# ...
# }: {
# programs.noctalia.settings = {
# };
# }
+8
View File
@@ -0,0 +1,8 @@
{username, ...}: {
programs.noctalia.settings.audio = {
enable_overdrive = true;
enable_sounds = true;
notification_sound = "/home/${username}/garandos/modules/home/noctalia/settings/notification/payday-2-new-objective-sound-effect.wav";
sound_volume = 0.1;
};
}
+33
View File
@@ -0,0 +1,33 @@
_: {
programs.noctalia.settings.bar = {
enabled = true;
background_opacity = 0.0;
widget_spacing = 10;
margin_ends = 0;
scale = 0.95;
font_family = "FiraCode Nerd Font";
start = [
"launcher"
"spacer_2"
"clock"
"spacer_3"
"cpu"
"ram"
"network_rx"
"network_tx"
"sysmon"
];
center = ["workspaces"];
end = [
"tray"
"notifications"
"bluetooth"
"battery"
"recorder"
"volume"
"network"
"control-center"
];
};
}
@@ -0,0 +1,12 @@
{gitEmail, ...}: {
programs.noctalia.settings.calendar = {
enabled = true;
account."home_nextcloud" = {
name = "Kalendarz";
provider = "custom";
server_url = "https://nextcloud.garandplg.com/remote.php/dav";
type = "caldav";
username = "${gitEmail}";
};
};
}
@@ -0,0 +1,13 @@
_: {
imports = [
./notification
./plugins
./audio.nix
./bar.nix
./calendar.nix
./location.nix
./shell.nix
./wallpaper.nix
./widget.nix
];
}
@@ -0,0 +1,6 @@
{location, ...}: {
programs.noctalia.settings.location = {
auto_locate = false;
address = "${location}";
};
}
@@ -0,0 +1,7 @@
_: {
programs.noctalia.settings.notification = {
enable_daemon = true;
show_app_name = true;
show_actions = true;
};
}
@@ -0,0 +1,9 @@
_: {
programs.noctalia.settings.plugins = {
enabled = ["noctalia/timer" "noctalia/screen_recorder"];
};
imports = [
./screen-recorder.nix
];
}
@@ -0,0 +1,15 @@
_: {
programs.noctalia.settings.plugin_settings."noctalia/screen_recorder" = {
audio_codec = "flac";
audio_source = "both";
color_range = "full";
hide_inactive = true;
quality = "ultra";
replay_duration = 60;
replay_enabled = true;
replay_storage = "disk";
resolution = "1920x1080";
video_codec = "hevc";
video_source = "focused";
};
}
+14
View File
@@ -0,0 +1,14 @@
{username, ...}: {
programs.noctalia.settings.shell = {
app_icon_colorize = true;
avatar_path = "/home/${username}/garandos/modules/home/hyprland/face.jpg";
corner_radius_scale = 2.0;
lang = "pl";
launch_apps_as_systemd_services = true;
screen_time_enabled = true;
time_format = "{:%H:%M:%S}";
panel.open_near_click_control_center = true;
screen_corners.enabled = true;
screenshot.confirm_region = true;
};
}
@@ -0,0 +1,12 @@
{
username,
stylixImage,
...
}: let
wallpapersPath = "/home/${username}/Pictures/Wallpapers";
in {
programs.noctalia.settings = {
lockscreen.wallpaper = "${wallpapersPath}/${stylixImage}";
wallpaper.enabled = true;
};
}
+50
View File
@@ -0,0 +1,50 @@
{username, ...}: {
programs.noctalia.settings.widget = {
battery.display_mode = "graphic";
bluetooth.hide_when_no_connected_device = true;
clock.format = "{:%H:%M:%S}";
control-center = {
custom_image = "/home/${username}/garandos/GarandOS.svg";
scale = 1.3;
};
cpu.display = "text";
launcher.glyph = "rocket";
media.title_scroll = "on_hover";
network.show_label = false;
network_rx = {
display = "text";
network_speed_compact = true;
};
network_tx = {
display = "text";
network_speed_compact = true;
};
ram.display = "text";
recorder.type = "noctalia/screen_recorder:recorder";
spacer_2.type = "spacer";
spacer_3.type = "spacer";
sysmon = {
display = "text";
path = "/home";
stat = "disk_pct";
};
tray.hidden = ["nm-applet" "Easy Effects"];
workspaces.scale = 1.1;
};
}
+1
View File
@@ -30,6 +30,7 @@
};
noctalia-shell.enable = true;
noctalia.enable = true;
gtk = {
enable = true;