Compare commits

...

2050 Commits

Author SHA1 Message Date
Ly-sec 761869a561 chore(flake): update flake.lock 2026-05-11 01:56:48 +00:00
Ly-sec eb2b53ddaa chore(workflow): update label metadata 2026-05-06 23:48:34 +02:00
Ly-sec 3bbf31945d chore(issue templates): update bug report 2026-05-06 15:55:43 +02:00
Ly-sec f38756d562 chore(ISSUE_TEMPLATES): update templates 2026-05-06 15:51:34 +02:00
Ly-sec 7d03576831 chore(flake): update flake.lock 2026-05-06 01:45:21 +00:00
Ly-sec 6b48834dd6 chore(flake): update flake.lock 2026-05-04 01:45:47 +00:00
Ly-sec f0469d2d6f chore(flake): update flake.lock 2026-05-03 01:46:03 +00:00
Ly-sec 9f8dd48c8d chore(flake): update flake.lock 2026-04-29 01:51:12 +00:00
Ly-sec 6773c4750a chore(flake): update flake.lock 2026-04-27 01:28:24 +00:00
Ly-sec a50c92167c chore(flake): update flake.lock 2026-04-25 01:18:25 +00:00
Lemmy 2c1808f9f8 Merge pull request #2506 from Scrumplex/nix/fix-hm-systemd-warning
fix(nix): set warnings as top-level config
2026-04-22 16:16:24 -04:00
Lysec d7b68652e7 Merge pull request #2514 from notiant/patch-13
Fix pixelation of colorized dock icons
2026-04-21 14:23:05 +02:00
notiant 22d8b1e8ee fix pixelation of colorized dock icons 2026-04-21 14:17:03 +02:00
Lysec 48d656580f Merge pull request #2513 from notiant/patch-12
NBusyIndicator: follow color change
2026-04-21 13:23:55 +02:00
notiant 06a19262be NBusyIndicator: follow color change 2026-04-21 13:19:05 +02:00
Lysec 4f24f8a725 Merge pull request #2512 from Mondotosz/main
fix(ipc): added missing entry to Control settingsTabMap
2026-04-21 12:56:16 +02:00
Mondotosz f7932c45e3 fix(ipc): added missing entry to Control settingsTabMap
fixed the following call by adding the missing idle entry

```
qs -c noctalia-shell ipc call settings openTab idle
```
2026-04-21 11:39:18 +02:00
Lysec b254383634 Merge pull request #2509 from SerrpentDagger/main
fix(template) Add template entries for Qt colors light and mid
2026-04-21 11:21:05 +02:00
Ly-sec fc43ab5c38 chore(flake): update flake.lock 2026-04-21 01:22:19 +00:00
SerrpentDagger fdc422e6a6 Add Qt colors light, mid 2026-04-20 23:22:17 +02:00
Sefa Eyeoglu c9a3533312 fix(nix): set warnings as top-level config
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2026-04-20 18:53:57 +02:00
Lysec ed1fff6260 Merge pull request #2427 from notiant/patch-10
Fix problem with Airplane Mode toggle visibility &  add some default values for the Color Scheme settings
2026-04-20 08:28:45 +02:00
notiant 4cf7938482 fix syntax error 2026-04-20 08:27:47 +02:00
notiant f7394b7c44 Merge branch 'noctalia-dev:main' into patch-10 2026-04-20 08:27:13 +02:00
Lysec 478e941e4f Merge pull request #2499 from notiant/patch-11
Safeguard custom commands from trailing whitespaces
2026-04-20 08:19:21 +02:00
Ly-sec 513ad72ee8 chore(flake): update flake.lock 2026-04-20 01:24:56 +00:00
notiant 5f7d56d865 safeguard custom commands from trailing whitespaces 2026-04-20 01:16:40 +02:00
Lysec b8781aef49 Merge pull request #2497 from vile-v/patch-2
added couple of selectors
2026-04-19 19:03:13 +02:00
vile-v deff8a9425 added couple of selectors 2026-04-19 13:00:02 -04:00
Lysec d9531258d9 Merge pull request #2495 from linusammon/main
chore(nix): add systemd deprecation warnings
2026-04-19 15:56:16 +02:00
Linus Ammon 131f23aab4 chore(nix): add systemd deprecation warnings 2026-04-19 14:07:47 +02:00
Lysec 4fa29ff386 fix(template): generate current-theme.conf for kitty with wallpaper gen 2026-04-19 10:36:17 +02:00
Lysec 7f0962523d Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-04-19 09:22:38 +02:00
Lysec ccb04bf01d fix(bar): swallow right/middle on hot strip to avoid Qt context-menu SIGSEGV 2026-04-19 09:22:16 +02:00
notiant 5826a293ad disable Bluetooth toggle when Bluetooth is blocked 2026-04-16 11:58:44 +02:00
Ly-sec a7c724181f chore(flake): update flake.lock 2026-04-16 01:24:55 +00:00
Lysec 76b03be489 Merge pull request #2451 from namelessmonarch0/fix-starship-config-path
fix(theming): readjusting the starship config file for a more reliabl…
2026-04-15 10:13:43 +02:00
Lysec b452772feb chore(version): bumping to v4.7.7-git 2026-04-15 10:01:22 +02:00
Lysec d85ad414ba Release v4.7.6 2026-04-15 09:58:54 +02:00
Ly-sec e56a9db57e chore(flake): update flake.lock 2026-04-13 01:24:05 +00:00
Nameless Monarch 2bf74d385e fix(theming): readjusting the starship config file for a more reliable script 2026-04-12 18:35:54 -05:00
Lysec cba5bab3d6 Merge pull request #2450 from namelessmonarch0/fix-starship-config-path
fix(theming): check nested starship config path before fallback
2026-04-12 22:58:17 +02:00
Nameless Monarch e8418c3d37 fix(theming): check nested starship config path before fallback 2026-04-12 15:52:31 -05:00
Lysec 95f56e1f62 Merge pull request #2441 from D3rJust1n/main
fix (ci/update-flake): Fix that workflow isn't triggered if it's not the main repository
2026-04-12 16:54:25 +02:00
D3rJust1n 95aea1a624 fix (ci/update-flake): Fix that workflow isn't triggered if it's not the main repository 2026-04-11 19:37:33 +02:00
Ly-sec 40dd5f54a0 chore(flake): update flake.lock 2026-04-11 01:12:55 +00:00
Lysec 42637c6ffa Merge pull request #2432 from adriamartin91/fix/notification-missing-icon
fix(notifications): show fallback icon instead of checkerboard for missing theme icons
2026-04-10 14:09:54 +02:00
Adria Martin 375dfafb5b chore: remove verbose comment 2026-04-10 19:02:07 +07:00
Lysec 5f45191d7f feat(perf): enforce 100% opacity in noctalia performance mode 2026-04-10 13:41:18 +02:00
Adria Martin 093f3632d2 fix(notifications): show fallback icon instead of checkerboard for missing theme icons
When Qt cannot resolve a notification icon name (e.g. "audio-headset" from
Blueman) because the icon theme is not properly configured, the
IconImageProvider returns a purple/black checkerboard missingPixmap.

Check icon existence via ThemeIcons.iconExists() before returning the
image:// URI, so NImageRounded displays its fallback icon instead.
2026-04-10 16:35:48 +07:00
Lysec e85ce902cb fix(i18n): add missing bar widget translation string 2026-04-09 23:46:42 +02:00
Lemmy 0fcaa49875 Revert "fix(media): gate spectrum pipeline on playback to cut idle CPU"
This reverts commit a0093e509b.
2026-04-08 19:12:07 -04:00
notiant f37dd3c2ac update ColorsSubTab.qml 2026-04-08 19:56:13 +02:00
notiant c6ca3a663d fix problem with Airplane Mode toggle visibility & add some default values for the Color Scheme settings 2026-04-08 19:52:28 +02:00
Lysec 087f75376b Merge pull request #2425 from spiros132/main
fix(Brightness): Fixes a bug with the bar widget, and also with the minimum enforce
2026-04-08 18:43:40 +02:00
Spyridon Siarapis 034b4adb3d fix(Brightness): Now it should only have a minimum value if it's using ddc 2026-04-08 17:46:44 +02:00
Spyridon Siarapis ea80510ad4 Merge branch 'noctalia-dev:main' into main 2026-04-08 17:41:09 +02:00
Spyridon Siarapis 58d5c3ad55 fix(Brightness): Simplified the code to use existing functionality, also fixed a bug with enforcing the minimum brightness 2026-04-08 17:40:41 +02:00
Lysec 5d03bf3f03 Merge pull request #2422 from adriamartin91/feat/starship-template
feat: add Starship prompt template
2026-04-08 17:37:17 +02:00
Lysec f3ed6d0a2f Merge pull request #2421 from ern775/fix-min-brightness
fix(brightness): revert minimum brightness regression
2026-04-08 10:31:42 +02:00
Adria Martin b9745c375f fix: use distinct MD3 tokens for surface shades in Starship template
Avoid repeating the same token for multiple surface/overlay palette
entries. Each shade now maps to a unique MD3 token following the
pattern used by other wallpaper-based templates.
2026-04-08 14:24:24 +07:00
Adria Martin 5cf22040b3 feat: add Starship prompt template
Add built-in Starship template that dynamically updates the prompt
color palette when switching Noctalia color schemes. Includes both
wallpaper-based and predefined template variants.
2026-04-08 13:14:43 +07:00
ern775 a44f11267e fix(brightness): revert min brightness regression 2026-04-08 08:15:36 +03:00
Lysec 48fe0f91a5 fix(theming): skip theme writes and hooks when wallpaper change produces no diff
Issue: #2400
2026-04-07 22:29:00 +02:00
Lysec b8de6e1df2 Merge pull request #2411 from lonerOrz/cc-icon
add explicit iconPosition control for CustomButton widget
2026-04-07 22:13:59 +02:00
Lysec bec97262eb Merge pull request #2417 from ern775/change-enforce-min
feat(brightness): change enforce minimum brightness method
2026-04-07 22:03:42 +02:00
ern775 15873d4818 feat(brightness): change enforce minimum brightness method 2026-04-07 22:34:11 +03:00
Lysec 91d0bb83ae Merge pull request #2414 from notiant/patch-9
NComboBox: remove hover animation
2026-04-07 15:42:56 +02:00
Ly-sec 57cdcb7ad0 chore(flake): update flake.lock 2026-04-07 01:16:22 +00:00
notiant 4e99e5db92 update I18n.qml 2026-04-06 21:09:03 +02:00
notiant 747b4aa715 update date formats for lock screen 2026-04-06 21:04:16 +02:00
notiant b0bb684be5 NComboBox: remove hover animation 2026-04-06 19:13:53 +02:00
Lysec 40e98f1ad0 fix(config): handle nix-style atomic config replacements for settings and colors 2026-04-06 14:03:29 +02:00
Lysec c395320426 Revert "fix(settings): detect nix-managed settings updates without restart"
This reverts commit 353b07380f.
2026-04-06 13:51:27 +02:00
Lysec 353b07380f fix(settings): detect nix-managed settings updates without restart 2026-04-06 13:35:26 +02:00
Lysec 1f9096a46f Revert "fix(settings): reload settings after nix-managed config file replacements"
This reverts commit 17b157d1b6.
2026-04-06 13:28:00 +02:00
Lysec 17b157d1b6 fix(settings): reload settings after nix-managed config file replacements 2026-04-06 13:19:43 +02:00
loner 9d4fad0b28 refactor(settings): organize CustomButton settings into tabbed layout
Reorganize the CustomButton settings panel from a single scrollable form
into a tabbed interface with three tabs: Actions, Icon, and Text.
2026-04-06 10:36:06 +08:00
loner cfc96dd3e7 feat(bar): add context menu for CustomButton right-click
- Show context menu instead of directly opening settings when no command is set
- Context menu includes widget-settings option
- Matches behavior of other bar widgets
2026-04-06 10:36:03 +08:00
loner b8a7c2f77d fix(settings): resolve barIsVertical property assignment conflict
CustomButtonSettings now calculates barIsVertical from Settings directly
instead of receiving it from parent, avoiding Loader.setSource() conflict.
2026-04-06 10:35:59 +08:00
loner 5c3b3a2185 refactor(bar): remove enableColorization toggle from CustomButton
Colorization now activates automatically when icon or text color is set,
simplifying the UX by removing an extra toggle step.
2026-04-06 10:35:55 +08:00
loner f21e8fb82a feat(ui): add separate icon and text colorization for CustomButton
- Add colorizeSystemText setting for text color (icon only was already supported)
- JSON parse supports iconColor and textColor fields separately
- Legacy "color" field still works for both icon and text
- Enable colorization no longer depends on show icon setting
- Refactor resolveColor helper to eliminate duplicate code
2026-04-06 10:35:52 +08:00
loner 55c7f344b3 fix(ui): improve CustomButton settings visibility logic
- Show icon toggle depends on textCommand input
- Add fallback for valueShowIcon (default true) and valueEnableColorization (default false)
- Reorder settings: Show Icon, Icon, iconPosition, enableColorization, colorizeSystemIcon
2026-04-06 10:35:48 +08:00
loner b6a85d88e7 fix(ui): adapt icon position labels based on bar orientation
- Add barIsVertical property to BarWidgetSettingsDialog
- Pass barIsVertical from NSectionEditor to dialog
- Show Top/Bottom for vertical bar, Left/Right for horizontal bar
- Keep fallback to oppositeDirection when iconPosition not set
- Fix BarPillVertical iconPosition mapping (left=top, right=bottom)
2026-04-06 10:35:45 +08:00
loner 36a9d7afee refactor(bar): add iconPosition fallback to oppositeDirection
- iconPosition defaults to empty string, falls back to oppositeDirection when not set
- Keeps backward compatibility for widgets not passing iconPosition
- CustomButton explicitly passes iconPosition="left", uses custom logic
2026-04-06 10:35:37 +08:00
loner 9cc8b36804 feat(bar): add explicit iconPosition control for CustomButton widget
Replace auto-calculated icon position (based on widget bar section) with
user-controlled iconPosition setting ("left" or "right", default "left").
2026-04-06 10:35:20 +08:00
Ly-sec ef147f24f1 chore(flake): update flake.lock 2026-04-06 01:18:39 +00:00
Lysec 6205749472 chore(i18n): update translations & add romanian translation 2026-04-05 12:41:36 +02:00
Lysec 876ec4c34f Merge pull request #2380 from notiant/patch-6
MediaPlayerPanel: fix layout issues
2026-04-05 12:39:23 +02:00
Lysec ff9f0a75d9 Merge pull request #2405 from mia-0/kcolorscheme
KDE theming improvements
2026-04-05 12:37:53 +02:00
Lysec 6dc1ebe626 Merge pull request #2406 from notiant/patch-7
GTK refresh fix
2026-04-05 12:36:32 +02:00
notiant f777e539f5 GTK refresh fix 2026-04-05 01:14:51 +02:00
Mia Herkt 914fc2e0d6 Templates/KColorScheme: use rgb_csv format
While technically hex colors are okay, there are some tools that
read KDE’s colors and will not work correctly. KDE always saves
colors as comma-separated base-10 integers, so avoid breaking that
assumption.
2026-04-05 00:55:09 +02:00
Mia Herkt d97918f3ac template-processor: add rgb(a)_csv formats
This is the format e.g. KDE saves colors in.
2026-04-05 00:53:49 +02:00
Mia Herkt 8db923d66f Theming: add apply script for KDE
There are problems with plasma-apply-colorscheme:

It refuses to apply a color scheme that is already active,
necessitating a switch to a different scheme.
This is both slow and causes flickering.

Fix this by using a custom script to apply the color scheme:
Just overwrite the config sections in kdeglobals and send the
change notification signal via D-Bus.
2026-04-05 00:41:57 +02:00
Lysec f02ecc9acd Merge pull request #2403 from beatreichenbach/main
fix(settings): escape colorscheme downloadUrl
2026-04-04 21:18:31 +02:00
Beat Reichenbach 7aeda7a7f8 fix(settings): escape colorscheme downloadUrl 2026-04-04 11:59:32 -07:00
Lysec 819b2d33b0 perf(ui): step NScrollText marquee on a timer instead of infinite animation
Issue: #2393
2026-04-04 15:35:21 +02:00
Lysec a0093e509b fix(media): gate spectrum pipeline on playback to cut idle CPU
Issue: #2393
2026-04-04 15:31:11 +02:00
Lysec 4b9a607151 Merge pull request #2395 from Sunrongguo2008/main
Reload kitty colors on theme changes when the kitty template is enabled
2026-04-04 13:18:29 +02:00
Sunrongguo2008 9b39d67563 fix(template): ensure kitty's live config reload after theme regeneration 2026-04-04 19:09:35 +08:00
Lysec 759454d2d5 fix(audio): sticky app-stream volume + subtitle line in panel 2026-04-03 12:00:33 +02:00
Lysec 359f4afa73 fix(keybinds): recognize ctrl+punctuation shortcuts in recorder 2026-04-03 11:14:27 +02:00
Ly-sec 0d59c6c7b3 chore(flake): update flake.lock 2026-04-03 01:15:47 +00:00
Lemmy bcbbafda1e chore(version): bumping to v4.7.6-git 2026-04-02 18:31:20 -04:00
Lemmy 8b0c7c2880 Release v4.7.5 2026-04-02 18:30:40 -04:00
Lemmy 0380b09982 chore(i18n): update all 2026-04-02 17:23:41 -04:00
Lemmy 621c798c8b fix(location): autolocate off by default for privacy, improved UI when no location is set. Fix #2388 2026-04-02 16:58:25 -04:00
Lemmy 876e0ffb4b chore(i18n): hu 2026-04-02 16:46:49 -04:00
Lemmy 08e2d7f71c fix(weather): read is_day from service instead of requiring callers to pass it. 2026-04-02 16:26:36 -04:00
Lemmy cd4ec47e96 fix(location): more logging and potential fix 2026-04-02 15:08:16 -04:00
Lysec 41b29998f2 chore(version): bumping to v4.7.5-git 2026-04-02 20:13:38 +02:00
Lysec 791b3ac153 Release v4.7.4 2026-04-02 20:12:18 +02:00
Lysec 633454dd47 Merge pull request #2381 from kermeat/dock_fix
fix: Update dock on window list change
2026-04-02 19:57:39 +02:00
Lemmy 411a820f3c fix(audioservice): another Qt-11 warning fix 2026-04-02 11:15:04 -04:00
Lemmy 529ad588c6 fix(settings): dont rely on Qt.btoa to generate default settings dump. 2026-04-02 10:51:34 -04:00
Lemmy d1bd3d3887 chore(i18n): update hu 2026-04-02 10:49:58 -04:00
Lemmy 94a918ba29 fix(nreordercheckboxes): don't shadow QQuickItem.enabled 2026-04-02 09:57:01 -04:00
Lemmy c4b8b912f3 fix(audioservice): switch from PwNode to var for sink and source so it's nullable. 2026-04-02 09:35:01 -04:00
Lemmy 6fcfc0c1d2 fix(location): fix weather fetching 2026-04-02 07:56:47 -04:00
Lysec 68f6f1f0a0 chore(i18n) 2026-04-02 13:51:02 +02:00
Lysec f301a57137 feat(location): add toggle to always show Talia weather emojis 2026-04-02 13:47:47 +02:00
Lysec 240312ea4b Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-04-02 10:53:23 +02:00
Lysec ed117eb94c fix(theming): always sync prefer-light/dark with system theme toggle
Issue: #2357
2026-04-02 10:53:19 +02:00
Ly-sec 75d67b3216 chore(flake): update flake.lock 2026-04-02 01:12:47 +00:00
Lysec 25a5eede06 chore(version): bumping to v4.7.4-git 2026-04-02 03:03:29 +02:00
Lysec 4af6074810 Release v4.7.3 2026-04-02 03:00:50 +02:00
Lemmy c31917105c fix(mango): prevent double focused windows in workspace apps 2026-04-01 20:54:43 -04:00
Lemmy 0cc83bdbaf fix(workspace-apps): add "handle" for sway activation 2026-04-01 20:54:20 -04:00
Lemmy 4ee55c2a99 fix(workspace): copy window to js object instead of holding live listmodel prox. 2026-04-01 20:30:22 -04:00
Lemmy 8815a0da27 fix(workspace): temp disable tooltips 2026-04-01 20:18:41 -04:00
Lemmy b06b1d91f6 fix(workspace): showApp simpler anims 2026-04-01 20:03:57 -04:00
Lemmy ac5ff31db3 fix(workspace): simplification 2026-04-01 19:48:00 -04:00
Lemmy ae84393c63 fix(workspace): fix missing icon and broken layout 2026-04-01 19:16:38 -04:00
Lemmy aa12aa91f0 fix(workspace): minor cleanup 2026-04-01 18:31:14 -04:00
Lemmy f4719e598e feat(location): removed the Tokyo default location, improved flow with the new auto-locate. 2026-04-01 18:00:46 -04:00
kermeat d9faff679c Update dock on window list change
When the dock only shows windows from the same display, when the display is reconnected (dpms off/on), open windows disappear from the dock until an event occurs that refreshes the dock.
2026-04-01 23:56:40 +03:00
notiant 6a6844b3aa MediaPlayerPanel: fix layout issues 2026-04-01 22:28:45 +02:00
Lysec 7b29c11d7a fix(bar): guard grouped workspace window delegates when modelData is stale 2026-04-01 12:33:33 +02:00
Lysec 0b47193256 Merge pull request #2371 from breadandsoup/main
Update pywalfox.json
2026-04-01 08:46:42 +02:00
breadandsoup 33f295db86 Update pywalfox.json 2026-03-31 23:41:20 -07:00
Ly-sec 0becd7bf03 chore(flake): update flake.lock 2026-04-01 01:22:29 +00:00
Lemmy 80cd76b82e feat(location): auto location/weather via IP 2026-03-31 21:08:58 -04:00
Lemmy 97553d7064 chore(version): bumping to v4.7.3-git 2026-03-31 16:25:24 -04:00
Lemmy 77f054cbf1 chore(version): release v4.7.2 2026-03-31 16:24:11 -04:00
Lemmy 90e07608a1 feat(wallpaper-panel): adjust height for 1080p 2026-03-31 16:07:45 -04:00
Lemmy 9a900801ac feat(wallpaper-panel): 50% max height 2026-03-31 16:04:37 -04:00
Lemmy e13888e978 fix(mediamini): guard onEntered against stale panel ref. 2026-03-31 15:59:14 -04:00
Lysec 4f523301c9 fix(bar): harden AudioVisualizer when ShellScreen is null 2026-03-31 21:04:03 +02:00
Lysec 90e37a1e53 chore(i18n) 2026-03-31 19:19:52 +02:00
Lysec da2e2dda52 Merge pull request #2363 from MrDowntempo/main
Feat: Option to hide title in active window bar widget
2026-03-31 19:18:48 +02:00
Corey Woodworth cfad4fc77a chore: run qmlfmt.sh again 2026-03-31 13:15:41 -04:00
Corey Woodworth c824140471 fix: Add showText to BarWidgetRegistry and settings-widgets-default 2026-03-31 13:12:22 -04:00
Lysec 357f577c60 Merge pull request #2362 from breadandsoup/main
Update pywalfox.json
2026-03-31 18:52:20 +02:00
Lysec 43fe1e1947 fix(audio): stop volume sliders fighting service state 2026-03-31 14:43:03 +02:00
Lysec d4e7a8e967 fix(audio): stabilize input volume % via wpctl like default sink 2026-03-31 14:30:28 +02:00
Corey Woodworth 900e1f1286 chore: run qmlfmt.sh 2026-03-31 03:36:26 -04:00
Corey Woodworth 0c9d3b83be chore: add modified files again because they were not staged (I don't get git sometimes) 2026-03-31 03:18:49 -04:00
Corey Woodworth 95dfb2ade2 chore(i18n): Add englisht strings for the text toggle 2026-03-31 03:12:22 -04:00
Corey Woodworth 53b5dbac4c feat: Add showText variable to show/hide name of Active Window 2026-03-31 02:55:23 -04:00
breadandsoup 174d8b33bc Update pywalfox.json
Now uses correct colors for dark mode and as-close-to-correct-as-possible colors for light mode. Removed colors 16-19; pywalfox can only read colors 0-15.
2026-03-30 22:32:42 -07:00
Lysec 421ccc4c87 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-31 03:24:36 +02:00
Lysec 4a371422cd fix(ColorScheme): sync light/dark toggle to gtk 2026-03-31 03:24:31 +02:00
Ly-sec 4d4edff06d chore(flake): update flake.lock 2026-03-31 01:15:58 +00:00
Lysec 09386b1903 fix(theming): sync gtk-theme with color-scheme when system sync is on 2026-03-31 03:09:55 +02:00
Lysec 40c8b17620 Merge pull request #2324 from cbxcvl/fix/renderer-redos
fix(renderer): remove ambiguous \s* from _BLOCK_RE to prevent ReDoS
2026-03-31 02:52:40 +02:00
Lysec cc4cf9cc44 Merge pull request #2327 from cbxcvl/fix/expr-re-redos
fix(renderer): remove ambiguous \s* from _EXPR_RE to prevent ReDoS
2026-03-31 02:52:30 +02:00
Lysec a4b7a693e5 Merge pull request #2328 from cbxcvl/fix/parse-if-redos
fix(renderer): remove ambiguous \s* from _parse_if regex to prevent ReDoS
2026-03-31 02:52:27 +02:00
Lysec 90a5dd1cd8 fix(theming): keep system color-scheme in sync on every dark mode change
Issue: #2357
2026-03-31 02:10:12 +02:00
Lysec 6d3ca58896 fix(workspaces): assign display index per output in ExtWorkspaceService 2026-03-30 15:20:57 +02:00
Lysec c879d0864b style(wallpaper): dont switch favorite in split wallpaper on first click 2026-03-30 14:40:39 +02:00
Lysec ea48cd0bbf Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-30 14:29:38 +02:00
Lysec c9bda88e39 fix(wallpaper): cleanup misleading code 2026-03-30 14:29:33 +02:00
Lemmy 2afa833dbf chore(autofmt) 2026-03-30 08:28:01 -04:00
Lemmy 9bc5effb3d fix(plugin): fix loadWidget 2026-03-30 08:27:45 -04:00
Lysec f2e5f9953f fix(wallpaper): hide light/dark icon in split wallpaper mode 2026-03-30 14:24:21 +02:00
Lysec 386d4d3135 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-30 13:38:59 +02:00
Lysec 0d770725bc fix(wallpaper): adjust wallpaper light/dark & favorite logic 2026-03-30 13:38:52 +02:00
Lysec 00392ff8d2 Merge pull request #2312 from notiant/patch-2
Rework Airplane Mode handling & remove bluetoothctl fallback
2026-03-30 12:06:13 +02:00
notiant b3a9aca837 Add check for non-zero width in enhancedBand 2026-03-30 11:12:36 +02:00
Ly-sec 62f55f54de chore(flake): update flake.lock 2026-03-30 06:25:17 +00:00
Ly-sec 07afddfafa chore(flake): update flake.lock 2026-03-30 01:18:30 +00:00
Lemmy dd22f7bc37 fix(blur): force flush wayland state, to avoid stuck blur regions 2026-03-29 20:23:22 -04:00
Lemmy 664707d77e fix(ncolorchoice): added "enabled" visual feedback 2026-03-29 19:42:37 -04:00
Lemmy dfc3bd9535 fix(plugins): fixed desktopWidget settings vs plugin settings 2026-03-29 19:39:56 -04:00
Lemmy 73dfeb9f73 fix(bar): pass initial properties on creation (screen, section, etc...) to avoid potential registration issues. 2026-03-29 19:39:25 -04:00
Lemmy 967e9d843b fix(desktop-widgets): pass screen as initial property to avoid wrong spectrum registration 2026-03-29 18:36:48 -04:00
Lysec e41c78e2fa Merge pull request #2347 from D3rJust1n/main
fix (ci): Fix that workflow isn't triggered if it's not the main repo
2026-03-29 19:59:08 +02:00
Lysec 83de5d047b chore(i18n) 2026-03-29 19:56:34 +02:00
Lysec dd1ff1f0da Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-29 19:54:45 +02:00
Lysec 5d9f0794dc style(WallpaperPanel): adjust layout for light/dark & monitor selector toggles 2026-03-29 19:54:35 +02:00
D3rJust1n 1c34c4dde1 fix (ci): Fix that workflow isn't triggered if it's not the main repository 2026-03-29 19:49:41 +02:00
Lemmy 86e5112e89 fix(plugins): avoid potential race condition during update process 2026-03-29 13:00:15 -04:00
Lemmy f85b4a7e6d fix(templating) improved handling of symlinks 2026-03-29 11:44:43 -04:00
Lemmy 72df0bfe1d Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-03-29 11:05:50 -04:00
Lemmy e7eeabf99b fix(nbutton): wrap in an Item to properly reserve border space for improved fractional scaling render 2026-03-29 11:05:49 -04:00
Lysec a9bc3848f3 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-29 17:01:30 +02:00
Lysec e320b53709 chore(i18n) 2026-03-29 17:01:19 +02:00
Lemmy c942c10f8a fix(widgets): improves disable states by avoiding stacking opacities 2026-03-29 10:52:58 -04:00
Lemmy c2a2a44378 fix(ncontextmenu): improved parent constraining 2026-03-29 10:33:21 -04:00
Lemmy 9a2f676753 fix(ncontextmenu): smart positionning to avoid clipping outside of parent. 2026-03-29 10:00:27 -04:00
Lysec 9d5bc13000 style(wallpaper): hide dark/light behind toggle just like display selection 2026-03-29 13:58:29 +02:00
Lysec deb79261dd feat(wallpaper): add separate selection for light & dark mode 2026-03-29 12:53:06 +02:00
Lysec 3dd46fbd6e Merge pull request #2340 from notiant/patch-4
Apply reduced light mode opacity also to dock, notifications & OSD
2026-03-29 10:34:33 +02:00
Lysec fd7a16d951 fix(settings): avoid unified notification sound handler clobbering per-urgency paths 2026-03-29 10:29:45 +02:00
Ly-sec 3b9e93a8b1 chore(flake): update flake.lock 2026-03-29 01:17:37 +00:00
notiant 39a6671151 apply reduced light mode opacity also to dock, notifications & OSD 2026-03-28 23:11:39 +01:00
Lemmy decb65ae95 fix(plugins): pass pluginApi as initial property to prevent binding warnings. Eliminate the need for fallback chains in plugins code.
hot reload
2026-03-28 16:58:55 -04:00
Lemmy ba424526b5 feat(settings): in windowed mode, dont stretch to full width 2026-03-28 16:29:22 -04:00
Lemmy 1e068156ad feat(settings): when switching settings panel mode, close and reopen the settings to see the actual change 2026-03-28 16:01:32 -04:00
Lemmy a5fc309880 cleanup(NScrollText): remove unused imports, gate layer on overflow 2026-03-28 14:06:24 -04:00
Lemmy ffb61d8fc4 Merge pull request #2334 from BUSTheid/mediamini-visual-bugfix
refactor: Rethink `NScrollText.qml` gradients
2026-03-28 14:04:55 -04:00
notiant 9462caf6c3 remove onResumed() since networkMonitorProcess already covers it 2026-03-28 18:20:22 +01:00
BUSTheid b18d33742a refactor(NScrollText.qml): MultiEffect fade mask
Replace the leftGradient and rightGradient Rectangles in NScrollText
with a MultiEffect mask approach. Old solution caused visual bugs.
2026-03-28 17:59:11 +01:00
Lysec f3edbe3dc8 Merge pull request #2335 from spiros132/main
fix(TemplatesSubTab): Fixed a bug which prevented the qmlformat to run correctly
2026-03-28 12:15:21 +01:00
Spyridon Siarapis f15609b590 chore(TemplatesSubTab): format 2026-03-28 12:11:07 +01:00
Spyridon Siarapis 348ccbf0ed fix(TemplatesSubTab): Fixed a bug which prevented qml format to run correctly 2026-03-28 12:10:29 +01:00
Lemmy ed1a2b54de Revert "Merge pull request #2203 from haikalllp/fix/update-pywalfox-colors"
This reverts commit d51bc95788, reversing
changes made to 5e95658fa9.
2026-03-27 21:13:06 -04:00
Ly-sec 0d088d8a3a chore(flake): update flake.lock 2026-03-28 01:08:15 +00:00
cbxcvl 6e71050593 fix(renderer): remove ambiguous \s* from _parse_if regex to prevent ReDoS
The pattern \s*(.+?)\s* in _parse_if allowed polynomial backtracking
when no closing }} was found — confirmed to hang at n=5000 whitespace
chars. The \s* wrappers were redundant since group(1) is already
stripped at the call site.

Reported and patched with @pa1va. Closes #2326
2026-03-27 13:53:54 -03:00
cbxcvl e91d20ef0d fix(renderer): remove ambiguous \s* from _EXPR_RE to prevent ReDoS
The pattern \s*([^}\n]+?)\s* allowed polynomial backtracking when no
closing }} was found — confirmed to hang at n=5000 whitespace chars.
The \s* wrappers were redundant since group(1) is already stripped at
the call site.

Reported and patched with @pa1va. Closes #2325
2026-03-27 13:53:32 -03:00
cbxcvl 4ad7ffbbdf fix(renderer): remove ambiguous \s* from _BLOCK_RE to prevent ReDoS
The pattern \s*(.*?)\s* allowed polynomial backtracking when no closing
*> delimiter was found — confirmed to hang at n=5000 whitespace chars.
The \s* wrappers were redundant since group(1) is already stripped at
the call site (line 278).

Reported and patched with @pa1va. Closes #2323
2026-03-27 13:42:01 -03:00
Lysec 8a3aafc69f fix(ProfileCard): add elide to GECOS name 2026-03-27 15:18:44 +01:00
Lysec 4d31d05248 fix(media): tighten MediaMini panel layout for album art and height 2026-03-27 15:02:45 +01:00
Lysec 9b64e21bea style(mediapanel): fix artwork cropping in non compact mode 2026-03-27 14:22:21 +01:00
Lemmy 215750ddcb feat(template): added dedicated Scroll(wm) template 2026-03-27 08:29:25 -04:00
Lysec 6b2c0fc9c4 fix(audio): scope stream volume overrides per media identity 2026-03-27 13:12:06 +01:00
Lysec 0133da8bd0 Merge pull request #2315 from ern775/audio-stream-filter
fix(audio): filter out intermediate stream nodes
2026-03-27 12:56:43 +01:00
Lysec 10cd968f9d Merge pull request #2318 from linusammon/main
fix(ci): flake updates should trigger cachix workflow
2026-03-27 12:54:27 +01:00
Linus Ammon 39dccc49dc fix(ci): flake updates should trigger cachix workflow 2026-03-27 12:16:34 +01:00
ern775 2c09e9185f fix(audio): filter out intermediate stream nodes 2026-03-27 10:44:27 +03:00
Ly-sec f19a19cfc6 chore(flake): update flake.lock 2026-03-27 01:14:20 +00:00
notiant 477810b954 change Airplane Mode visibility conditions 2026-03-26 22:18:16 +01:00
Lysec fae79fe75f fix(zed): typo resolved
Issue: #2311
2026-03-26 20:11:41 +01:00
notiant dffdfcffc4 improve some process handling 2026-03-26 19:30:41 +01:00
notiant 78c0b2fe25 improve airplane mode handling 2026-03-26 18:58:05 +01:00
Lysec 396fba755b Merge pull request #2309 from gammons/fix/idle-lock-on-suspend
fix(IdleService): respect lockOnSuspend when idle triggers suspend
2026-03-26 15:56:20 +01:00
Lysec 17bfd02204 fix(lock-keys): only apply sysfs LED state on successful reads 2026-03-26 15:49:15 +01:00
Grant Ammons 6d7d35d7e0 fix(IdleService): respect lockOnSuspend when idle triggers suspend 2026-03-26 10:32:30 -04:00
Lysec 537ec29f5e Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-26 15:30:06 +01:00
Lysec 9222070803 fix(Lockscreen): adjust password cursor so it properly follows position
Fixes: #2308
2026-03-26 15:29:55 +01:00
Lysec c608f1f700 Merge pull request #2298 from tmarti2/dismiss-toast-ipc-call
Dismiss toast ipc call
2026-03-26 15:17:29 +01:00
Thibault Martin 7800306b4b Add Toast dismiss IPC Handler 2026-03-26 14:25:07 +01:00
Lysec 70082a6491 Merge pull request #2303 from tibssy/feat/smooth-scroll-nviews
feat/smooth scroll animations on NListView, NGridView, and NScrollView
2026-03-26 12:22:28 +01:00
tibssy ea1710c9c9 fix: restore smooth scroll animation for keyboard navigation in wallpaper selector panel 2026-03-26 02:38:30 +00:00
tibssy c524c9611f feat(view): add smooth scroll animation for keyboard navigation in NListView and NGridView 2026-03-26 02:38:30 +00:00
tibssy 01744222c4 feat(view): implement smooth wheel scrolling for NScrollView 2026-03-26 02:38:30 +00:00
tibssy b612c353fd feat(view): implement smooth wheel scrolling for NGridView 2026-03-26 02:38:30 +00:00
tibssy 3798118461 feat(view): implement smooth wheel scrolling for NListView with global setting 2026-03-26 02:38:30 +00:00
Ly-sec df62bb3212 chore(flake): update flake.lock 2026-03-26 01:14:59 +00:00
Lemmy 8362462be8 chore(sway): fix border color 2026-03-25 20:14:42 -04:00
Lemmy 021f0026da fix(bar): guard bar widget metadata lookup 2026-03-25 19:12:30 -04:00
Lemmy 6d08fd1a0b feat(nightlight): using our own manual scheduling to allow more flexibility 2026-03-25 18:27:42 -04:00
Lemmy 2623f081d6 fix: only convert config symlinks when modification is needed. fix #2299 2026-03-25 17:18:54 -04:00
Lemmy e29a71e9a4 fix(lockkeys): replace 'this' to a proper id to avoid warnings 2026-03-25 16:58:33 -04:00
Lemmy c640bc9083 feat(bar-ipc): added new "peek" call and made existing call work better with auto-hide 2026-03-25 16:48:21 -04:00
Lemmy 7b35d3724e fix(launcher): fix iconMode default gui settings. fix #2296 2026-03-25 16:30:58 -04:00
Lemmy 7966f963dc fix(background): fix dupe transition on startup + minor safety improvement to avoid potential null texture on shaders 2026-03-25 16:19:47 -04:00
Lemmy de4e087363 fix(nimagerounded): avoid null shader texture when image disappear 2026-03-25 16:19:15 -04:00
Lemmy 8ecd351bfc fix(wallpaper-settings): added missing parameter 2026-03-25 15:56:37 -04:00
Lemmy 2f456e749d fix(audioservice): repeater need an Item delegate. 2026-03-25 15:48:56 -04:00
Lysec c960e17791 Merge branch 'niri-qs' 2026-03-25 13:36:25 +01:00
Lysec 59fedcac29 fix(ColorScheme): potential fix for GTK/gsettings light-dark getting out of sync 2026-03-25 13:25:31 +01:00
Thibault Martin af7fd3bad2 Move toast IPC closer to notifications 2026-03-25 12:06:54 +01:00
Ly-sec e4158c7d81 chore(flake): update flake.lock 2026-03-25 01:09:19 +00:00
Lemmy 7022fb9d20 fix(nsearchcombobox): cleanup 2026-03-24 19:53:48 -04:00
Lemmy 934af9b527 Merge pull request #2221 from nZo-sp/feat/scroll-with-keyboard-on-dropdown
Added scroll with keyboard in searchable dropdown
2026-03-24 19:50:29 -04:00
Lemmy 03d32b1368 fix(shader): uv clamping NImageRounded. Fix #2288 2026-03-24 19:39:18 -04:00
Lemmy d9d5f2063c fix(desktop-widgets): restore mouse interaction. fix #2293 2026-03-24 19:31:23 -04:00
notiant b2c685decb remove airplaneModeEnabled from settings 2026-03-25 00:29:20 +01:00
notiant dea0575efa rework Airplane Mode handling & remove bluetoothctl fallback 2026-03-24 21:22:12 +01:00
Lysec d1c0374f73 Merge pull request #2292 from maxschipper/workspace-label-character-count-vertical-bar
feat(workspace): allow one character labels on vertical bar
2026-03-24 18:46:18 +01:00
Max Schipper 1d0ab01532 feat(workspace): allow one character labels on vertical bar
on vertical bar the character count for the label is now clamped to 2, allowing the use to set it to 1
2026-03-24 18:07:22 +01:00
Lysec b6d2599f89 fix(theming): regenerate wallpaper colors after cache load on startup 2026-03-24 16:49:11 +01:00
Lemmy 020dab63bf chore(fmt) 2026-03-24 08:25:52 -04:00
Lemmy 2d6ef5456d chore(i18n): fixes 2026-03-24 08:25:45 -04:00
Lemmy 58a765ea8d chore(i18n): added en-GB 2026-03-24 08:24:12 -04:00
Lemmy 38c3e37a75 chore(i18n): update 2026-03-24 08:19:38 -04:00
Lemmy 4376960114 Merge pull request #2270 from amateur-hacker/feat/airplane-mode-ipc
feat(ipc): add commands for airplane mode
2026-03-24 08:03:53 -04:00
Lemmy 129ae45f22 Merge pull request #2271 from navik61/feat/add-czech-translation
i18n: add Czech (cs) translation
2026-03-24 08:02:55 -04:00
Lemmy 68dddc741f Merge pull request #2282 from tibssy/feat/bar-scroll-volume
Feat/bar scroll action volume
2026-03-24 08:01:44 -04:00
Lysec 4b5fb156cd Merge pull request #2265 from tibssy/feat/launcher-category-animations
Feat/launcher category animations
2026-03-24 12:47:41 +01:00
Lysec 188b4cb134 Merge pull request #2287 from tmarti2/fix-toast-selected-screen
Fix Toast: same model than Notifications
2026-03-24 12:32:46 +01:00
Thibault Martin 1099d55512 Fix Toast: same model than Notifications 2026-03-24 10:47:04 +01:00
Lysec b725f32e27 Revert "fix(audio): potential desync fix"
This reverts commit 76ad00596f.
2026-03-24 03:21:23 +01:00
Lysec 508f2b6ec8 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-24 02:38:39 +01:00
Lysec 76ad00596f fix(audio): potential desync fix 2026-03-24 02:38:33 +01:00
Ly-sec 597d4e6232 chore(flake): update flake.lock 2026-03-24 01:04:02 +00:00
tibssy 700d377f0f feat(bar): improve volume scroll handling on bar with smooth accumulation 2026-03-24 00:37:45 +00:00
tibssy 7d4ee04461 feat(bar): add volume control support to bar scroll behavior 2026-03-24 00:37:45 +00:00
Lysec c9eb6e69eb fix(audio): sync per-app volume overrides with PipeWire and new streams 2026-03-24 01:29:27 +01:00
Lysec c488b0d3e7 Revert "fix(AudioService): attempt to fix individual audio levels"
This reverts commit 0c79aedc25.
2026-03-24 01:14:50 +01:00
Lysec ac52e8e5f3 feat(settings): add toggle to disable system theme sync
Issue: #2279
2026-03-24 00:51:18 +01:00
Lysec 0c79aedc25 fix(AudioService): attempt to fix individual audio levels 2026-03-24 00:27:25 +01:00
Lysec b724fbe0f5 Revert "fix(audio): attempt to fix per-app volume desync from stale overrides"
This reverts commit 46a533fd73.
2026-03-23 23:52:02 +01:00
Lysec 46a533fd73 fix(audio): attempt to fix per-app volume desync from stale overrides 2026-03-23 23:49:55 +01:00
Lysec 45a07579d6 Merge pull request #2281 from ayagmar/fix/notification-window-focus
fix(notifications): prefer default actions for window focus
2026-03-23 23:40:45 +01:00
ayagmar ce8da4c514 fix(notifications): prefer default actions for window focus 2026-03-23 19:59:45 +01:00
Lysec 284a2a76bb fix(lock-keys): sync bar state from sysfs on first poll after startup 2026-03-23 15:30:26 +01:00
Lysec 2ea56a6c1f Merge pull request #2268 from neyfua/neyfua/highlight-pass-input
feat(lockscreen): add highlight selection in the password input field
2026-03-23 10:44:43 +01:00
amateur-hacker 4bea91a750 feat(ipc): add commands for airplane mode 2026-03-23 15:10:42 +05:30
navik61 abaeca856a i18n: add Czech (cs) translation 2026-03-23 10:38:12 +01:00
Lysec b1e9efb3c4 fix(wallpaper): stop overwriting per-monitor folders when toggling multi-monitor dirs 2026-03-23 10:33:33 +01:00
Lysec bd474db387 fix(hostservice): use non uppercase username, respect upper/lowercase for Full Name 2026-03-23 10:27:44 +01:00
neyfua 0f7ed133fb feat(lockscreen): add highlight selection in the password input field 2026-03-23 15:11:41 +07:00
nZo-sp e6716a745f Using keybind from settings 2026-03-23 09:00:49 +01:00
Ly-sec 3eb0fe5608 chore(flake): update flake.lock 2026-03-23 01:11:09 +00:00
tibssy 851bdc150d refactor: extract launcher slide transition logic into reusable NSlideSwapView component 2026-03-23 01:00:08 +00:00
tibssy 3356b7cb12 refactor: move launcher category selection logic into a helper function 2026-03-23 00:54:25 +00:00
tibssy 9ba87bd7d6 feat(launcher): implement sliding transition animations for launcher category changes 2026-03-23 00:52:37 +00:00
Lemmy 41bfe09418 chore(version): bump to v4.7.2 2026-03-22 20:10:18 -04:00
Lemmy 0b8b4fec43 Release v4.7.1 2026-03-22 20:09:34 -04:00
Lemmy 187fced35e feat(sysgraphs): sharper 2026-03-22 20:01:38 -04:00
Lemmy 05ef6849d8 feat(wallpaper): add toggle to skip image processing and use original files 2026-03-22 19:33:09 -04:00
Lemmy d1926452d7 feat(imagecache): cleaned up dead code, reduced cache duration to 15 days 2026-03-22 19:01:35 -04:00
Lemmy 5f5cd2c439 Merge pull request #2208 from turannul/pr/additional-networking-fixes
Networking code cleanup.
2026-03-22 18:43:49 -04:00
Lemmy 0a593c491f Merge pull request #2262 from MachXNU/main
Small fix for Nord colorscheme
2026-03-22 18:42:58 -04:00
notiant a624421047 prevent duplicate scan triggers 2026-03-22 23:10:01 +01:00
Jb d19019ada0 Changed background light 2026-03-22 22:54:16 +01:00
Turann_ 849bf16388 feat(networking): refactor NetworkService to use Quickshell.Networking and improve state synchronization
- Use Quickshell.Networking for wifiEnabled
- Improve state synchronization between processes
- Fix race conditions in Wi-Fi scanning
- Ensure proper startup initialization
- Another icon fix xD (4th one)
- Merge deviceStatus with wifiDetails

Co-Authored-By: notiant <notiant@users.noreply.github.com>
2026-03-23 00:48:56 +03:00
Lemmy 5338a6aaf9 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-03-22 15:02:26 -04:00
Lysec b44bf38c1a Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-22 19:43:02 +01:00
Lysec 43043e1b3b chore(shell): tiny cleanup 2026-03-22 19:42:55 +01:00
Lysec 56c0904dc6 Merge pull request #2260 from linusammon/main
ci: automate flake updates; add cachix caching
2026-03-22 19:05:29 +01:00
Lysec 18c0559453 fix(background): potential fix for black lockscreen after performance mode
Issue: #2257
2026-03-22 18:49:02 +01:00
Linus Ammon 50392f8702 ci: add cachix workflow 2026-03-22 16:33:30 +01:00
Linus Ammon 1eb2f6d2dd ci: add flake update workflow 2026-03-22 16:28:15 +01:00
Lemmy d3e23d6cfd fix(graph): improved AA on graph shader 2026-03-22 11:14:29 -04:00
Lemmy 4e44886a79 chore(autofmt) 2026-03-22 10:34:06 -04:00
Lemmy a67020e25f chore(i18n): update 2026-03-22 10:33:58 -04:00
Lemmy f217297105 Merge pull request #2259 from Scrumplex/fix/nix/inherit-noctalia-qs-flake
fix(nix): inherit noctalia-qs overlay in our overlay
2026-03-22 10:13:01 -04:00
Lysec 8b1bb355d4 Merge pull request #2253 from spiros132/main
fix(NFilePicker): Added multiSelection choice
2026-03-22 15:00:34 +01:00
Lemmy 582b5629be Merge pull request #2248 from mia-0/progressring_repaint
Bar/MediaMini: don’t repaint invisible progress ring
2026-03-22 09:58:22 -04:00
Lysec 68ed7b397a fix(theming): wallpaper color generation with apostrophes in path 2026-03-22 14:44:21 +01:00
Sefa Eyeoglu 23a2a074cf fix(nix): inherit noctalia-qs overlay in our overlay
This avoids a second instantiation of Nixpkgs, when consuming the
overlay, instead of using the package output directly.

Smoke test:

```console
nix repl
nix-repl> :lf .

nix-repl> pkgs = imports inputs.nixpkgs { overlays = [outputs.overlays.default]; }

nix-repl> pkgs.noctalia-shell
«derivation /nix/store/30ilvacnyyqyrnqh26vz6x1s095iwysb-noctalia-shell-2026-03-22_df0a16d.drv»

nix-repl> pkgs.quickshell
«derivation /nix/store/zyrm8fb4r4bq6mqrv4ssjc08haf5j2b4-quickshell-2026-03-21_c9beee5.drv»
```

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2026-03-22 13:48:23 +01:00
Lysec deadea5c16 Merge pull request #2256 from iynaix/imagecache-race
fix(wallpaper): wait for ImageCacheService to be ready before scanning
2026-03-22 11:42:36 +01:00
Spyridon Siarapis 1768dacac3 fix(NFilePicker): Added ability to use both Control and Shift with both having different functionality 2026-03-22 09:03:50 +01:00
Lin Xianyi c3532bfaad fix(wallpaper): wait for ImageCacheService to be ready before scanning 2026-03-22 14:47:17 +08:00
Lemmy 25d2efe9b3 feat(spectrum): slightly better initialization of the number of bands until noctalia-qs is updated everywhere. 2026-03-21 21:44:09 -04:00
Spyridon Siarapis cc59714487 fix(NFilePicker): Added multiSelection choice 2026-03-21 22:02:50 +01:00
Lysec 6b30925fb4 Merge pull request #2251 from linusammon/main
nix: remove cava; bump flake.lock
2026-03-21 20:33:15 +01:00
Linus Ammon bb2b1b93d1 chore(flake): bump flake.lock 2026-03-21 20:08:32 +01:00
Linus Ammon 3ddc0f6337 build(nix): remove cava 2026-03-21 20:07:25 +01:00
Mia Herkt 1e215ba93d Bar/MediaMini: don’t repaint invisible progress ring
This causes the entire container to get damaged, so avoid this when
the ring is disabled.
2026-03-21 17:05:34 +01:00
Lemmy bef335ab3a fix(spectrum): minimal signal new default to 1% 2026-03-21 11:35:11 -04:00
Lemmy 3b5e596ab3 fix(ipc): audio and network panel attempt to open near their bar button 2026-03-21 09:57:26 -04:00
Lemmy 5eaefd8bfd chore(MainScreen): Quickshell default layer is WlrLayer.Top, let's set them explicitely for clarity 2026-03-21 08:45:58 -04:00
Lemmy 2efacafb69 feat(OSD): full click-through 2026-03-21 08:42:46 -04:00
Lemmy c78e7e386a Revert "fix(OSD): keep panelwindow always loaded to avoid hotplug crash"
This reverts commit 3b5410103a.
2026-03-21 08:41:42 -04:00
Lysec c6b08b380f Merge pull request #2246 from Scrumplex/fix/bluetooth-alpha
fix(btsubtab): fix alpha on ntexts
2026-03-21 13:14:18 +01:00
Sefa Eyeoglu 0261f73943 fix(btsubtab): fix alpha on ntexts
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2026-03-21 13:12:46 +01:00
Lemmy b9a02cccc7 feat(spectrum): typo 2026-03-20 22:30:40 -04:00
Lemmy 40a64b6aa6 feat(spectrum): adding support for both band and bar properties during the migration 2026-03-20 22:26:07 -04:00
Lemmy 2aa0c7a78d chore(i18n): update 2026-03-20 22:01:04 -04:00
Lemmy 6180d457f2 feat(audioviz): added a settings to control the frequency mirroring. Fix #2239 2026-03-20 21:59:15 -04:00
Lemmy 8abf32ac15 fix(desktop-widgets): ignore mouse via mask when not editing so the events pass thru to an eventulal desktop shortcuts manager (pcmanfm). Fix #2241 2026-03-20 21:33:17 -04:00
Lemmy cd5863651b Merge pull request #2235 from blackbartblues/feat/plugin-panel-slot-background-color
feat(plugin-panel-slot): forward panelBackgroundColor from plugin to SmartPanel
2026-03-20 21:07:35 -04:00
Lemmy 077989a347 Update PluginPanelSlot.qml 2026-03-20 21:07:10 -04:00
Lemmy 9285188981 fix(migration): improve the old migration 45 2026-03-20 20:41:29 -04:00
Lemmy b3b236fdb8 fix(active-window): fix vertical centering, more robust if fonts get bigger than icon. 2026-03-20 20:38:01 -04:00
Lemmy 9966d695cc fix(settings): cleaning remnants of Settings.data.bar.floating 2026-03-20 19:47:14 -04:00
Lemmy 56f3dbec82 chore(autofmt) 2026-03-20 19:09:19 -04:00
Lemmy 1554d6851d fix(panel): simplify calculations 2026-03-20 19:09:03 -04:00
Lemmy 9430c25b1f Merge pull request #2234 from blackbartblues/fix/smart-panel-floating-bar-overflow
fix(smart-panel): prevent panel overflow on small screens with floating bar
2026-03-20 19:05:27 -04:00
WojciechSulocki-Gif 7c197147ec fix(smart-panel): also clamp panelHeight for vertical floating bars 2026-03-20 23:20:09 +01:00
Lysec 56457b1400 style(lockscreen): adjust capslock & password input icon 2026-03-20 18:56:41 +01:00
Lysec caf74e8fa8 Merge pull request #2238 from mia-0/lockkeysvc_no_sh
LockKeysService: use Qml file system model
2026-03-20 18:50:18 +01:00
Mia Herkt 4230ae5207 LockKeysService: use Qml file system model
Forking shell processes is very very expensive. Replace with a more
efficient Qml model.

This should automatically instantiate watchers for hotplugged
devices, as FolderListModel uses a file system watcher.

Quickshell’s FileView does not get notified of changes because
that’s how sysfs works, but it does handle the content conparison
for us. Convenient!
2026-03-20 18:27:47 +01:00
WojciechSulocki-Gif ed8593aa1b feat(plugin-panel-slot): forward panelBackgroundColor from plugin to SmartPanel 2026-03-20 16:50:55 +01:00
WojciechSulocki-Gif d51a7406d6 fix(smart-panel): prevent panel overflow on small screens with floating bar 2026-03-20 16:50:29 +01:00
Lysec e2ba46ed12 Merge pull request #2230 from shouya/main
Play volume feedback sound when changing volume externally
2026-03-20 14:40:47 +01:00
Lysec 5a92a82d06 feat(ColorScheme): always set gsetting color-scheme when toggling light/dark mode
Issue: #2222
2026-03-20 13:42:34 +01:00
Lysec 3b2fa6a428 feat(emacs): add posthook to refresh the theme
Issue: #2229
2026-03-20 12:50:17 +01:00
Lysec 829dedc2d0 Merge pull request #2231 from shouya/allow-qs-path-override
Allow overriding qs config path for `noctalia-shell` binary
2026-03-20 10:19:06 +01:00
shouya ad55a2a39d allow overriding qs config path 2026-03-20 14:03:31 +09:00
shouya 222cf23636 play volume feedback when changing volume externally 2026-03-20 13:44:17 +09:00
Lemmy 8344f25d5a feat(i18n): added vietnamese (machine translated) 2026-03-20 00:34:05 -04:00
Lemmy c8d8709c26 Revert "perf(mainscreen): merging fix/damage-control"
This reverts commit 67a7f75c37, reversing
changes made to 8828d9d7be.
2026-03-20 00:29:04 -04:00
Lemmy 039ad4db9c Revert "fix(mainscreen): avoid potential single frame flicker of the bar when resizing"
This reverts commit 219a4742df.
2026-03-20 00:29:00 -04:00
Lemmy 5ee59dc415 Revert "fix(mainscreen): fix posty bar bg flicker"
This reverts commit 59aa80c36b.
2026-03-20 00:28:54 -04:00
Lemmy 59aa80c36b fix(mainscreen): fix posty bar bg flicker 2026-03-20 00:17:31 -04:00
Lemmy 219a4742df fix(mainscreen): avoid potential single frame flicker of the bar when resizing 2026-03-19 23:53:22 -04:00
Lemmy 67a7f75c37 perf(mainscreen): merging fix/damage-control 2026-03-19 23:32:52 -04:00
Lemmy 8828d9d7be feat(i18n): getting things up for vi(etnamese) 2026-03-19 23:21:03 -04:00
Lemmy 1f0ea41c35 feat(screencorners): no longer reside in MainScreen, tiny PanelWindow. Will also serve for hotcorners detection 2026-03-19 22:46:13 -04:00
Lemmy b1f8a24da4 perf(mainscreen): collapse Mainscreen to bar-sized when idle 2026-03-19 22:10:03 -04:00
Lemmy a834b42f38 Merge pull request #2225 from mia-0/layershell_workaround
MainScreen/PanelWindow: do not put on top layer
2026-03-19 21:24:41 -04:00
Lemmy 6c57717595 fix(panel): when animations are disabled to log a warning on every panel open 2026-03-19 20:58:14 -04:00
Lemmy 53c4b2dc26 fix(nspinbox): replace the diamond hover by a simple rounded rectangle, fixes a lot of small glitches 2026-03-19 20:53:54 -04:00
Lemmy b4d12870d1 fix(panel): reset closedImmediately flag reliably after panel close 2026-03-19 20:23:03 -04:00
Lemmy 9818fa8772 chore(autofmt) 2026-03-19 18:49:24 -04:00
Mia Herkt 345cdfb325 MainScreen/PanelWindow: do not put on top layer
That would prevent direct scanout for other clients.
2026-03-19 18:50:07 +01:00
nZo-sp e19ed0b44b Added scroll with keyboard on dropdown 2026-03-19 17:19:29 +01:00
Lysec 21c191d675 Merge pull request #2219 from Sunrongguo2008/patch-1
docs(readme): update available plugins count to nearly 100
2026-03-19 16:53:24 +01:00
Sunong2008 82f555a8d1 docs(readme): update available plugins count to nearly 100 2026-03-19 22:11:01 +08:00
Lemmy e08b08893e Merge pull request #2215 from mia-0/weathercard_perf
WeatherCard: Avoid using too much processing power
2026-03-19 08:59:06 -04:00
Lemmy 67e1b42f08 bumping version to v4.7.1 git 2026-03-19 08:12:24 -04:00
Lemmy 16c6181bae Release v4.7.0 2026-03-19 08:11:12 -04:00
Lemmy e8bca17225 fix(config): ensure trailing slash 2026-03-19 07:53:03 -04:00
Lysec 5eb8b9cbcb fix(wallhaven): adjust height calculation to prevent overshooting
Issue: #2213
2026-03-19 09:09:01 +01:00
Mia Herkt 993ac87cfa WeatherCard: Avoid using too much processing power
Adjust effect speeds and update rates.
Roughly halves power consumption on older Intel hardware (Haswell).
2026-03-19 07:15:29 +01:00
Lemmy d2396b3e60 chore(sysstat): removed dead code 2026-03-18 22:11:59 -04:00
Lemmy 0065d9b53f chore(autofmt): lysec cloned again 2026-03-18 19:16:44 -04:00
Lemmy 7a65416170 fix(about): show noctalia-qs new version string 2026-03-18 19:16:12 -04:00
Lysec 5547a2716d chore(i18n): add notification rules translations 2026-03-18 21:32:19 +01:00
Lysec bc258254d8 fix(notification-rules): do not allow empty patterns 2026-03-18 21:31:49 +01:00
Lysec 381444bc2c feat(notifications): add notification display rules
- block: skips the notification completely
- mute: does not play sound (played by noctalia), shows popup, adds to
history
- hide: no sound, no popup, still adds to history
2026-03-18 21:24:14 +01:00
Lysec 9f8bf988f0 fix(ntextinput): use onTextChanged for autosave, onEditingFinished instead of onAccepted
- Switch most settings from onEditingFinished to onTextChanged so
changes save on every keystroke
- Replace onAccepted with onEditingFinished (Enter + blur) for search,
pager, wifi, bluetooth
- Keep onEditingFinished for pager, wallhaven, path inputs, and
validation fields
2026-03-18 17:50:46 +01:00
Lemmy 0756e9f56c Revert "fix(ntextinput): going back to "textEdited" so you dont have to press enter or change focus to apply the changes."
This reverts commit c2d9617124.
2026-03-18 12:41:50 -04:00
Lysec e6ca3889c0 fix(Settings): prevent keyboard search from clearing/navigating on second keystroke 2026-03-18 17:08:30 +01:00
Lemmy ecad305dd9 fix(wallpaper): fixed wallhaven pager. increased height from 45% to 70% 2026-03-18 11:55:41 -04:00
Lysec 79207af629 Merge pull request #2211 from nZo-sp/fix/ignore-sounde-notification
Fix ignore notification sound for app without a name but with a desktopEntry defined
2026-03-18 15:35:56 +01:00
nZo-sp 3394439328 Fix ignore sound for app without a name but with a desktopEntry defined 2026-03-18 15:25:09 +01:00
Lemmy f3386cd81a Merge pull request #2210 from linusammon/main
chore(flake): bump flake.lock
2026-03-18 10:14:29 -04:00
Linus Ammon 8222cf3d57 chore(flake): bump flake.lock 2026-03-18 15:08:49 +01:00
Lemmy bbee20a1a6 fix(labwc): minor fixes to support upstream ext-workspace-v1 2026-03-18 09:43:20 -04:00
Lysec 739d84a214 Revert "add logging to HyprlandService & CompositorService"
This reverts commit 719ef29fe1.
2026-03-18 14:36:37 +01:00
Lemmy 09b4c927c3 Merge branch 'dwl-mango' 2026-03-18 09:07:52 -04:00
Lemmy 9610e3672e Merge branch 'labwc' 2026-03-18 09:07:42 -04:00
Lemmy 1ed2e5762d chore(merge): bar autohide + hyprland fixes 2026-03-18 09:00:54 -04:00
Lysec d9ae5e617f Merge pull request #2205 from nZo-sp/feat/audio-service-min-max-event
Added min/max events in audio service to notify subscribers
2026-03-17 21:02:22 +01:00
nZo-sp 71568bd2a3 Added min/max events in audio service to notify subscribers when audio limit is reached 2026-03-17 17:54:28 +01:00
Lemmy 2ffb41a2b1 fix(bar): never unload content when bar is hidden 2026-03-17 10:24:55 -04:00
Lemmy 23a5b1de55 fix(network): force opaque on nbox delegate to avoid ugly opacity. 2026-03-17 09:55:07 -04:00
Lemmy 08ed43d9a8 fix(hyprland): same fix but with a simpler Qt.callLater approach 2026-03-17 09:28:58 -04:00
Lemmy 3062797165 fix(notif/workspace): reverting some of the previous attempt from timer back to Qt.callLater 2026-03-17 09:21:41 -04:00
Lemmy 8370ef36ac fix(hyprland): defer workspace ListModel updates to prevent SIGSEGV during incubation 2026-03-17 09:18:27 -04:00
Lysec d51bc95788 Merge pull request #2203 from haikalllp/fix/update-pywalfox-colors
fix: remap pywalfox colors to better support light color theme
2026-03-17 11:24:41 +01:00
Lysec 5e95658fa9 fix(hyprland): correct focusedWindowIndex after sorting window list 2026-03-17 11:23:11 +01:00
Lysec 311fc08ac8 fix(bar): attempt to avoid crash when autohide is used 2026-03-17 11:00:43 +01:00
Lysec 46a3c7e2d4 Revert "fix(bar): defer update to next cycle"
This reverts commit 2fcd219c34.
2026-03-17 10:38:25 +01:00
Lysec 2fcd219c34 fix(bar): defer update to next cycle 2026-03-17 10:16:41 +01:00
haikalllp 467bac0024 fix: remap pywalfox colors to better support light color theme 2026-03-17 17:15:47 +08:00
Lemmy e39ff3a815 fix(popup): disable autoclose by clicking outside to avoid loosing settings by accident. 2026-03-16 21:21:09 -04:00
Lemmy c2d9617124 fix(ntextinput): going back to "textEdited" so you dont have to press enter or change focus to apply the changes. 2026-03-16 21:03:59 -04:00
Lemmy dd64858717 fix(tooltip): limit tooltip radius when box is too small, larger horizontal padding for grid mode. 2026-03-16 20:47:48 -04:00
Lemmy 515eece59a fix(network): ethernet info - fix box border color 2026-03-16 20:34:40 -04:00
Lemmy 088c1e0708 fix(network): removed hover effect, adjusting size and radius. 2026-03-16 19:59:12 -04:00
Lemmy 5614c16ea3 chore(audioservice): minor cleanup 2026-03-16 19:43:29 -04:00
Lysec f6d398eccc fix(zen-browser): more template adjustments 2026-03-16 22:13:23 +01:00
Lysec 8b356a2c37 fix(zen-browser): add overflow button to template 2026-03-16 22:02:12 +01:00
Lysec b647e385a8 fix(zen-browser): adjust template for new zen update 2026-03-16 21:57:30 +01:00
Lysec 2e5f07e039 fix(bar): attempt at resolving widget incubation race conditions 2026-03-16 18:45:49 +01:00
Lysec 719ef29fe1 add logging to HyprlandService & CompositorService 2026-03-16 15:31:55 +01:00
Lysec 9511f1fce4 fix(Hyprland): attempt to fix invalid window extraction 2026-03-16 15:06:49 +01:00
Lysec 2adbf002b7 fix(dock): adjust exclusive zone sizing 2026-03-16 14:49:17 +01:00
Lemmy c3e18d4db9 chore(settings): update deb 2026-03-16 07:56:14 -04:00
Lemmy e12d719862 Merge pull request #2193 from tibssy/feat/dock-launcher-icon-selector
Feat/dock launcher icon selector
2026-03-16 07:55:41 -04:00
Lemmy b2952e47e1 Merge pull request #2194 from notiant/patch-1
Bluetooth & WiFi: layout refinements
2026-03-16 07:54:44 -04:00
notiant 5fbd7c2299 reduce label size of wallpaper transition types 2026-03-16 09:02:48 +01:00
notiant b83446f29f layout refinements for info button 2026-03-16 06:28:35 +01:00
notiant 2949c1da6e BluetoothSubTab: Color adjustments 2026-03-16 05:47:06 +01:00
tibssy a96de7dbaa feat(settings): update search index for new dock launcher settings 2026-03-16 04:21:33 +00:00
tibssy ead9a81916 feat(dock): add custom icon selector for the dock launcher 2026-03-16 04:21:33 +00:00
tibssy a8bc826c0e feat(dock): implement distribution logo rendering for launcher icon 2026-03-16 04:21:33 +00:00
tibssy 53119a1933 feat(dock): add setting to use distro logo as launcher icon 2026-03-16 04:21:33 +00:00
Lemmy 1b2ec2e4a2 fix(OSD): when controlcenter is open, before skipping OSD check that the cards(vol/bright) are really enabled 2026-03-15 22:42:10 -04:00
Lemmy 3b5410103a fix(OSD): keep panelwindow always loaded to avoid hotplug crash 2026-03-15 22:40:05 -04:00
Lemmy b9fbe6cd1f feat(network): cleanup and UI polish 2026-03-15 19:49:22 -04:00
Lemmy 44b6ba6c30 Merge pull request #2110 from turannul/pr/networking-refactor-pt2
Full wireless enterprise  support  (networking refactor pt2) + QoL Improvements + Conditional WiFi icons
2026-03-15 19:12:06 -04:00
Lemmy 2689c6ced8 Signal icon representation in WifiSubTab 2026-03-15 19:09:44 -04:00
Lemmy d64010d418 Restored BTSubTab 2026-03-15 19:08:59 -04:00
Lemmy d95af3ef48 Merged display changes 2026-03-15 18:59:04 -04:00
Lemmy f62d9f5c0c Update WifiSubTab.qml 2026-03-15 18:46:37 -04:00
Turann_ 13de2c818e reworked icon logic to cover all grounds 2026-03-16 01:36:04 +03:00
Turann_ a98925698b apply changes 2026-03-15 23:54:43 +03:00
Turann_ 3ec64e3945 Merge remote-tracking branch 'upstream/main' into pr/networking-refactor-pt2 2026-03-15 23:46:39 +03:00
Lemmy cf4c1f9fbc fix(wifi): more colors refinment 2026-03-15 16:34:31 -04:00
Turann_ 83881197c3 simplify channel logic remove iw usage 2026-03-15 23:29:55 +03:00
Lemmy 3f570037a1 fix(wifi): better colors 2026-03-15 16:22:12 -04:00
Lemmy ccd5b792ed fix(wifi): simplified colors managements in the panel 2026-03-15 16:03:03 -04:00
Lemmy ce5fd29650 chore(settings): default settings json update 2026-03-15 15:32:49 -04:00
Lysec dbdabba589 feat(Plugins): add toggle to hide the update notification 2026-03-15 20:09:18 +01:00
Turann_ a5af3e83d6 Guard ethtool usage. 2026-03-15 22:07:04 +03:00
Lysec 59be951fd4 Merge pull request #2192 from linusammon/main
fix(flake): add missing inputs
2026-03-15 19:51:03 +01:00
Linus Ammon 49566a3ed1 fix(flake): add missing inputs 2026-03-15 19:48:50 +01:00
Turann_ e6fc9dc700 increase range a bit
I wish we were using RSSI for measurement...
2026-03-15 20:51:22 +03:00
Lemmy ae69c0e358 Merge pull request #2190 from linusammon/main
chore: bump flake.lock
2026-03-15 13:28:32 -04:00
Linus Ammon ccdf169fc3 chore: bump flake.lock 2026-03-15 18:15:54 +01:00
Turann_ b145531df6 Icon backgrounds 2026-03-15 19:44:25 +03:00
Turann_ a6e616caf7 Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 2026-03-15 18:52:23 +03:00
Lemmy 0d503343f4 fix(workspace): defer update to next event loop via timer instead of Qt.callLAter 2026-03-15 11:37:32 -04:00
Turann_ 6defe3c56d Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 2026-03-15 17:55:52 +03:00
Lemmy 3a10b10b85 chore(i18n): update 2026-03-15 10:38:26 -04:00
Lemmy d17275ff44 chore(readme): more compact 2026-03-15 10:27:26 -04:00
Lemmy 96ae7c88db chore(i18n) update 2026-03-15 10:27:14 -04:00
Lemmy 1454ef24e1 feat(hooks): added a simple color generation hook 2026-03-15 10:23:13 -04:00
Lemmy 684414773b chore(readme) stars at the bottom 2026-03-15 10:21:57 -04:00
Lemmy 43828ebd03 chore(readme): updated with scope 2026-03-15 10:20:25 -04:00
Lemmy 4cb3743a4f Merge pull request #2183 from DFSko/fix-kitty-predefined-selection-colors
Fix kitty predefined selection colors
2026-03-15 08:19:46 -04:00
Lemmy 8a77abd11a Merge pull request #2185 from ShalokShalom/patch-1
Update supported Wayland compositors list
2026-03-15 08:18:28 -04:00
ShalokShalom 2258584b78 Update supported Wayland compositors list
Add Scroll to bottom list
2026-03-15 12:47:22 +01:00
Turann_ 7aa44ad7cc Update NetworkPanel.qml 2026-03-15 07:47:07 +03:00
Turann_ d44df268e2 normally i should've returned. might be oversimplified :P 2026-03-15 07:32:41 +03:00
Turann_ 1a0236c928 Update WifiSubTab.qml 2026-03-15 07:31:57 +03:00
Turann_ ad641634b8 Update NetworkPanel.qml 2026-03-15 07:31:39 +03:00
Turann_ 1e05fc394d fmtd 2026-03-15 07:03:38 +03:00
Turann_ aec50a5f06 put actual icons 2026-03-15 07:03:14 +03:00
Turann_ 29580708d2 Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 2026-03-15 06:58:22 +03:00
Turann_ f0ae489c42 bad sed -i :(( 2026-03-15 06:54:12 +03:00
Turann_ 34f1457e15 move to service 3/3
I may found determined percentages, but this is subject to change while This pr is open.
2026-03-15 06:52:48 +03:00
Turann_ d900f8d22f fix an issue where variables might not ready. 2026-03-15 06:51:37 +03:00
Turann_ 9b69980267 some fixes - deleted un-needed if block
Someone for some reason may have one or more ethernet interfaces. but they only see one icon for all | but status badges works YAY!
2026-03-15 06:51:19 +03:00
Turann_ bd61583482 move functions to service 2/3 2026-03-15 06:45:41 +03:00
Lemmy a3f84fde37 feat(icons): new ethernet icons 2026-03-14 23:23:51 -04:00
Denis Nikolaev 04a5ab8c69 Fix kitty predefined selection colors 2026-03-15 07:15:12 +05:00
Lemmy efeae43fbf feat(icons): new wifi icons 2026-03-14 22:10:23 -04:00
Turann_ 7d4b22059d prep for new icons 1/3 2026-03-15 04:48:00 +03:00
Turann_ f55a2aaacf Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 2026-03-15 04:09:36 +03:00
Lemmy 2ff67234fc Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-03-14 20:42:35 -04:00
Lemmy bf234e502d feat(wallpaper): added ability for granular pick of transitions via checkboxes 2026-03-14 20:42:33 -04:00
Lemmy 4c5976fa4e Merge pull request #2181 from linuxmobile/fix-clipboard-colors
fix(clipboard): add color preview
2026-03-14 19:50:22 -04:00
Braian A. Diez 73a3d3c252 fix(clipboard): add color preview
Signed-off-by: Braian A. Diez <bdiez19@gmail.com>
2026-03-14 20:40:13 -03:00
Lysec 5c58bcac73 feat(Wallpaper): change random wallpaper time buttons to NSpinBox 2026-03-14 23:42:01 +01:00
Turann_ 39f9123cba Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 2026-03-15 01:38:15 +03:00
Lemmy 793771cd77 chore(autofmt) 2026-03-14 10:33:28 -04:00
Lemmy d163f8a9d8 fix(dock): gate peek and indicator windows on auto-hide to reduce GPU compositing overhead 2026-03-14 10:33:22 -04:00
Lemmy e7aed65a1e Merge pull request #2178 from LionHeartP/main
SystemMonitor.qml: fix launching external Monitor app
2026-03-14 09:45:52 -04:00
LionHeartP 7b80ac7319 SystemMonitor.qml: fix launching external Monitor app 2026-03-14 15:42:58 +02:00
Lemmy 54316dcdb5 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-03-14 09:29:36 -04:00
Lemmy 5821bb1f70 feat(audio-spectrum): replaced cava process by our pipewire implementation via noctalia-qs 2026-03-14 09:29:35 -04:00
Lysec d11bdcbc19 feat(kitty): add tab & trail colors
Closes: #2165
2026-03-14 14:21:49 +01:00
Lysec 9f6c00cbac docs(README): remove dev-shell info from readme 2026-03-14 12:53:26 +01:00
Lysec 4dbec38bf8 fix(WallpaperAutiomation): use iRadius for time interval options 2026-03-14 11:39:47 +01:00
Turann_ 08a7591b76 fmt 2026-03-14 06:20:55 +03:00
Turann_ 20d4fc0441 Update NetworkService.qml 2026-03-14 06:06:36 +03:00
Turann_ 7af3f19c1e resolve merge issue[s] 2026-03-14 05:57:42 +03:00
Turann_ b790d0d1b7 Merge branch 'main' into pr/networking-refactor-pt2 2026-03-14 05:46:20 +03:00
Lemmy c6d0f651f5 chore(i18n): update 2026-03-13 22:35:59 -04:00
Lemmy 4496407969 feat(clipboard): removed unused date filter and date headers, went with a simple "time ago" indicator per entry which feels more natural 2026-03-13 22:31:15 -04:00
Lemmy d9d453184d Merge pull request #1999 from linuxmobile/clipboard-filter
clipboard: add filters by type & date
2026-03-13 22:18:08 -04:00
Lemmy c67f293aca chore(autofmt) 2026-03-13 22:13:05 -04:00
Lemmy 12c77e5524 Merge pull request #2109 from turannul/pr/networking-refactor-pt1
Network refactor pt1
2026-03-13 22:12:30 -04:00
Lemmy 4500f13de3 fix(mediamini): proper width computation when show album art is off. Fix #2121 2026-03-13 22:06:58 -04:00
Lemmy 8f1a812ccf fix(lockscreen): wrap custom clock text to avoid overflow. fix #2173 2026-03-13 21:52:11 -04:00
Turann_ b8dcf04a9b prep for icons 2026-03-14 04:01:47 +03:00
Turann_ 607176dfb0 Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 2026-03-14 00:56:45 +03:00
Turann_ a9915ee6c6 Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 2026-03-14 00:56:16 +03:00
Lemmy b17f720350 fix(nightlight): changed the logic, the icon is now colored only when enabled 2026-03-13 17:03:22 -04:00
Turann_ 983867d153 fix coloring that created in pt1 | Missing elements. 2026-03-14 00:00:37 +03:00
Turann_ a5ac9541fe carry over requested changes from pt1 | apply pt1.patch 2026-03-13 22:57:00 +03:00
Turann_ c994bdbfd2 add timer, use color & i18n of open. 2026-03-13 22:41:44 +03:00
Lemmy 0bdf5afd2c Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-03-13 14:34:56 -04:00
Lemmy 76f2d2a6b0 feat(notif): added a shorcut to the settings in the notification history panel 2026-03-13 14:34:54 -04:00
Lysec 8fb06fddf5 fix(ghostty): add config.ghostty support 2026-03-13 19:18:23 +01:00
Lemmy 4e814962a4 fix(bar): more bullet proofing toward auto-hide 2026-03-13 13:49:31 -04:00
Lemmy 8e346465cb feat(dock): renaming "static" to "attached" 2026-03-13 13:39:53 -04:00
Lemmy bd8261646c fix(dock): fix attached dock retraction when hovered 2026-03-13 13:22:33 -04:00
Turann_ c497b97219 Delete Planning board.md 2026-03-13 19:06:52 +03:00
Turann_ 3346a365f4 Delete Modules/Panels/Settings/Tabs/Connections/Planning board.md 2026-03-13 19:04:28 +03:00
Lysec 3c9524a029 feat(brightness): enable ddcutil dynamic sleep to reduce latency
Closes: #2161
2026-03-13 16:57:15 +01:00
Turann_ 578743a6eb Update Planning board.md 2026-03-13 18:47:31 +03:00
Lemmy 599068b584 fix(tooltips): added support for string vs array content everywhere 2026-03-13 11:44:38 -04:00
Turann_ 22a694ce77 finalize, enterprise support 2026-03-13 18:42:02 +03:00
Turann_ 16d5e1f022 Improve enterprise support 2026-03-13 18:26:24 +03:00
Turann_ 79a14aca24 Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 2026-03-13 17:43:25 +03:00
Turann_ 294b390900 Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 2026-03-13 17:42:53 +03:00
Lemmy 20e480d732 chore(i18n): update 2026-03-13 10:14:21 -04:00
Lemmy 40e06ed1f8 feat(hooks): added a 3rd argument to the wallpapper changed hook (light/dark) 2026-03-13 10:11:54 -04:00
Lemmy 1b77bf141e chore(i18n): update 2026-03-13 10:11:11 -04:00
Lysec 40e546022d Merge pull request #2169 from Aitor42/main
Support for .gif profile picture
2026-03-13 14:30:31 +01:00
Aitor dd6bfa2cfb Support for .gif profile picture 2026-03-13 14:06:40 +01:00
Lysec 786ca2c80f Merge pull request #2163 from notiant/patch-23
Remove app2unit in launcher settings
2026-03-13 09:12:49 +01:00
Turann_ af1516b43d further attempt to improve efficiency 2026-03-13 05:34:24 +03:00
Turann_ 3fd38592e1 Update Network.qml 2026-03-13 05:23:44 +03:00
Turann_ 9aa636cbce this makes more sense where used. 2026-03-13 05:06:07 +03:00
Turann_ bd9791bdc6 Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 2026-03-13 05:03:08 +03:00
Turann_ 2cde5925c8 Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 2026-03-13 05:02:49 +03:00
Braian A. Diez d92aa0a727 fix(clipboard): code cleanup
Signed-off-by: Braian A. Diez <bdiez19@gmail.com>
2026-03-12 22:37:58 -03:00
Lemmy 072dd859ae fix(docK): fix static dock auto retraction when mouse stays on the peek zone 2026-03-12 20:34:43 -04:00
notiant bb2e311dca remove app2unit in launcher settings 2026-03-13 01:30:55 +01:00
Braian A. Diez 02cf4f8db9 chore(clipboard): cleanup request
Signed-off-by: Braian A. Diez <bdiez19@gmail.com>
2026-03-12 21:12:05 -03:00
Lemmy 906d265bce fix(dock): fix blur pos when floating 2026-03-12 19:45:26 -04:00
Lemmy c249d2d515 fix(dock): replaced animations by slide-in/out to be blur compatible + removed animation on the dock indicator that was super laggy and unecessary. 2026-03-12 19:32:03 -04:00
Lemmy 81586e7fa8 autofmt 2026-03-12 18:07:55 -04:00
Lemmy aaf91299ad fix(launcher-overlay): fix background color being all wrong 2026-03-12 18:07:44 -04:00
Turann_ 1f8bef9b9f Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 2026-03-13 00:39:04 +03:00
Turann_ b3d2172d72 Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 2026-03-13 00:38:43 +03:00
Lemmy c15fb85c53 chore(bt): unified get/setDeviceAutoConnect to use similar arguments 2026-03-12 17:29:32 -04:00
Lemmy 3679f7fca5 fix(ncheckbox): better tick sizing and centering 2026-03-12 17:28:27 -04:00
Lysec 74e375e244 fix(audio): keep per-app volume across track changes and seeks
Issue: #2160
2026-03-12 22:20:37 +01:00
Turann_ cf83d4aa02 don't sync blindly 2026-03-12 23:21:56 +03:00
Turann_ 299402a76e Merge upstream/main into pr/networking-refactor-pt2 and fix BluetoothSubTab.qml conflict 2026-03-12 23:18:26 +03:00
Turann_ 88cf314ec5 Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 2026-03-12 23:13:46 +03:00
Lemmy 5ee84e3ab3 fix(settings): add proper spacing on notif/general tab 2026-03-12 13:32:33 -04:00
Lemmy 9cc017a899 fix(bt): better looking auto-connect checkbox 2026-03-12 12:29:31 -04:00
Lemmy 9d142fbaf3 refactor(notif): rename internals for clarity (popup vs history) 2026-03-12 11:00:50 -04:00
Lemmy 683e617447 fix(notif): fix re-entrant QML incubation crash in NotificationService 2026-03-12 10:47:31 -04:00
Lysec 75cc031cea Revert "fix(audio): persist per-app volume against app-side resets"
This reverts commit 9b3a97f7cc.
2026-03-12 15:38:35 +01:00
Lysec 9b3a97f7cc fix(audio): persist per-app volume against app-side resets
Closes: #2160
2026-03-12 15:25:37 +01:00
Lysec 016b7a6780 Revert "fix(shell): prevent nested QML incubation in workspace pill Repeaters"
This reverts commit 4b9a289814.
2026-03-12 13:07:54 +01:00
Lysec 4b9a289814 fix(shell): prevent nested QML incubation in workspace pill Repeaters 2026-03-12 13:00:59 +01:00
Turann_ f3d963c28d Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 2026-03-12 13:52:47 +03:00
Turann_ d4d7b55166 Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 2026-03-12 13:52:29 +03:00
Lysec ba03e4c3f7 Bumping version 2026-03-12 11:10:06 +01:00
Lysec 3ab57ce06d Release v4.6.7 2026-03-12 11:08:12 +01:00
Lysec d0b5052452 fix(workspace): potential fix for SIGSEGV caused by re-entrant incubation 2026-03-12 10:07:55 +01:00
Lemmy 3cdd999664 feat(bt): improve ui/ux for the auto-reconnect feature 2026-03-12 00:18:31 -04:00
Lemmy 02a3d74c24 feat(ncheckbox): allow custom labelSize 2026-03-12 00:18:03 -04:00
Lemmy 175e85302d fix(launcher): restore background behind icons 2026-03-11 22:51:50 -04:00
Lemmy 71ca1b3f60 Revert "feat(launcher): trying a less boxy look"
This reverts commit 96930af759.
2026-03-11 22:49:41 -04:00
Lemmy 96930af759 feat(launcher): trying a less boxy look 2026-03-11 22:41:25 -04:00
Lemmy 74b2bce935 feat(settings): allow up/down navigation in search results when settings are windowed 2026-03-11 21:36:30 -04:00
Lemmy 49db78a22b feat(settings): unified the settings search in a new singleton 2026-03-11 21:31:43 -04:00
Lemmy 039be7d851 fix(workspace): more defer Workspace compositor signal handlers with Qt.callLater to avoid SIGSEGV 2026-03-11 20:25:17 -04:00
Lemmy 84229bc744 chore(i18n/lockscreen): relocate the language to dateformat map for easier maintenance 2026-03-11 20:14:47 -04:00
Lemmy 09dab00f27 chore(i18n): update + autofmt 2026-03-11 20:04:35 -04:00
Lemmy bb5ade4c48 Merge pull request #1991 from tmarti2/workspace-show-app-hover
Show workspace applications on hover
2026-03-11 19:56:04 -04:00
Lemmy 40e85956ea Merge pull request #2154 from pa1va/patch-2
fix: prevent TypeError when Bluetooth device name or icon are not strings
2026-03-11 19:55:41 -04:00
Turann_ 65374d546d update note 2026-03-12 00:20:03 +03:00
Turann_ a8c3987a85 Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 2026-03-12 00:13:17 +03:00
Turann_ f9074e968f Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 2026-03-12 00:12:57 +03:00
Lysec dbb2e15683 Merge pull request #2155 from shalakushka1/patch-1
Update translation for 'earlier' in Portuguese
2026-03-11 19:08:37 +01:00
shalakushka 9958680047 Update translation for 'earlier' in Portuguese
Change the translation of "earlier" in notifications to better fit with the rest of the UI.
2026-03-11 14:43:12 -03:00
Lysec cc9bf7d33d Merge pull request #2094 from rivera-diego/main
fix(hyprland): sort toplevels by x/y coordinates to fix workspace widget ordering in dynamic layouts
2026-03-11 18:11:20 +01:00
Lysec 786013479e Merge pull request #2152 from Aitor42/main
fix: show lock screen on remaining monitor when configured monitor is disconnected
2026-03-11 18:07:43 +01:00
pa1va cf4f6b70a5 fix: prevent TypeError when Bluetooth device name or icon are not strings 2026-03-11 12:09:05 -03:00
Lemmy d35f399f53 feat(settings): improved search index to support visibility conditions, prevent showing results that would be invisible to the user. Fix #2113 2026-03-11 10:07:44 -04:00
Braian A. Diez c4dbdb29d6 Merge branch 'main' into clipboard-filter (conflict resolution) 2026-03-11 09:51:42 -03:00
Thibault Martin 0c503ccea3 Applies Lemmy's review
- Renamed handlers
- longer timer delay
- copy taskbar hover clue
- Only refresh when visible
2026-03-11 13:35:44 +01:00
Thibault Martin f3699e786d Add hover feedback on window icons 2026-03-11 13:34:51 +01:00
Thibault Martin fd15bcf2db Add hover feedback on border color 2026-03-11 13:34:51 +01:00
Thibault Martin a9526c3ab0 Add animation between workspace displays 2026-03-11 13:34:51 +01:00
Thibault Martin c161f04966 Remove unused hovered properties 2026-03-11 13:34:51 +01:00
Thibault Martin a2443c6f89 Show workspace applications on hover 2026-03-11 13:34:51 +01:00
Lysec 8005958b8e fix(workspace): defer refreshWorkspaces to next event-loop 2026-03-11 12:50:29 +01:00
Aitor 9c9df0c15b detect monitor configured disconnect 2026-03-11 10:22:23 +01:00
Turann_ 749a1823f6 Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 2026-03-11 06:54:39 +03:00
Turann_ 13c21e518b Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 2026-03-11 06:54:30 +03:00
Lysec 45beac2f11 feat(dock): respect blur toggle 2026-03-11 03:50:02 +01:00
Lysec 13f0b8fce4 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-11 03:37:00 +01:00
Lysec 4a510629e4 i18n 2026-03-11 03:36:52 +01:00
Lysec a6c945c939 Merge pull request #2149 from iynaix/bump-flake-lock
Bump flake.lock
2026-03-11 03:36:17 +01:00
Turann_ fe859429ec an obvious power spike culprit 2026-03-11 05:13:29 +03:00
Lin Xianyi cbb59f5a55 Bump flake.lock 2026-03-11 10:03:47 +08:00
Turann_ d469ce31eb Merge remote-tracking branch 'upstream/main' into pr/networking-refactor-pt1
# Conflicts:
#	Modules/Panels/Network/WiFiNetworksList.qml
2026-03-11 04:42:07 +03:00
Turann_ 473b54ed98 Merge remote-tracking branch 'upstream/main' into pr/networking-refactor-pt2
# Conflicts:
#	Modules/Panels/Network/WiFiNetworksList.qml
2026-03-11 04:39:39 +03:00
Lemmy 719fd7ba70 fix(hyprland): ignore bogus "error" keyboard layout. fix #1390 2026-03-10 21:03:51 -04:00
Lemmy ec40cb81a4 chore(settings): update settings-default.json 2026-03-10 20:53:44 -04:00
Lemmy cc9dea142f feat(bar-audio): added interface nickname in tooltip 2026-03-10 20:40:09 -04:00
Lemmy 6eacb55f43 Merge pull request #2066 from SpeakingPNG/feat/configurable-exclusion-zone
Feat(bar): add a toggle for exclusion zone
2026-03-10 20:07:05 -04:00
Lysec ffb37d529f Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-11 01:06:36 +01:00
Lysec a22d2c7d19 fix(gtk): append noctalia.css in gtk3/4.css 2026-03-11 01:06:30 +01:00
Lemmy 2ee59546c1 autofmt 2026-03-10 19:59:26 -04:00
Lemmy f4340333d7 Merge pull request #2147 from notiant/patch-22
Apply reduced light mode opacity to panel backgrounds
2026-03-10 19:49:12 -04:00
Lysec 836814bce3 Merge pull request #2148 from spiros132/main
fix(desktop-widget-settings): Title should now print much nicer for plugins.
2026-03-11 00:17:26 +01:00
Spyridon Siarapis 6085f7b884 fix(desktop-widget-settings): Desktop widget settings dialog, title should look much better
fix(desktop-widget-settings): Better solution
2026-03-11 00:13:55 +01:00
Turann_ 547ebfd195 Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 2026-03-11 02:01:57 +03:00
Turann_ b242c509c4 Simplify - even more. 2026-03-11 01:55:18 +03:00
Lysec aa0059851f feat(hooks): add $1 lock/unlock parameter to screen lock and unlock hooks
Closes: #2142
2026-03-10 23:02:08 +01:00
Turann_ fe21f620a2 Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 2026-03-11 00:48:58 +03:00
Turann_ 4815f4a0aa Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 2026-03-11 00:48:23 +03:00
notiant 7c12065521 Battery: add missing i18n 2026-03-10 22:05:21 +01:00
notiant 08337f9bda Update Color.qml 2026-03-10 21:43:26 +01:00
notiant 25e8196182 apply reduced light mode opacity to panel backgrounds 2026-03-10 21:37:55 +01:00
Lemmy e5677f9cef fix(settings): force bottom tooltip on applications chips. 2026-03-10 12:16:56 -04:00
Lemmy be4db75365 feat(about): ability to disable changelog display. 2026-03-10 12:05:20 -04:00
Lemmy ca25de27b4 fix(ntabbutton): dont force full transparent 2026-03-10 11:24:35 -04:00
Lysec 4a3ddc0238 Bumping version 2026-03-10 15:08:04 +01:00
Lysec ed9f64cbb1 Release v4.6.6 2026-03-10 15:07:29 +01:00
Lemmy 2b12dcbf97 feat(settings): moving translucent widgets toggle to appearance subtab 2026-03-10 09:53:01 -04:00
Lemmy eafcb91b8b feat(settings): add translucent widgets toggle to gate smart transparency 2026-03-10 09:49:38 -04:00
Lemmy 0d495490cb i18n(update) 2026-03-10 09:40:58 -04:00
Lemmy 8ac14b1856 Merge pull request #2138 from tibssy/feat/smart-transparency
feat(widgets): implement smart transparency for auxiliary components
2026-03-10 09:38:52 -04:00
Lemmy e8ee0548cb perf(shapes): enable async rendering for all CurveRenderer shapes 2026-03-10 09:31:20 -04:00
Lemmy 87c072e2cf fix(settings): defer ListModel population to prevent re-entrant incubation SIGSEGV 2026-03-10 09:14:35 -04:00
Lemmy 835b12ed0f fix(notifications): defer Loader activation to prevent re-entrant incubation SIGSEGV 2026-03-10 09:13:57 -04:00
Lemmy d4d173ebbc Merge pull request #2141 from pa1va/patch-1
fix(launcher): prevent arbitrary js execution: fix #2115 and bug in decimal calculations.
2026-03-10 08:34:27 -04:00
pa1va f4f75cbd22 Update AdvancedMath.js 2026-03-10 01:15:05 -03:00
Lemmy 7bb88e6919 Revert "fix(launcher): prevent arbitrary js execution. fix #2115"
This reverts commit 2f4b80d72f.
2026-03-10 00:03:53 -04:00
Lemmy 93deeda589 fix(hooks): defer HooksService.init to delayedInitTimer for startup hook reliability 2026-03-09 23:01:28 -04:00
Lemmy 4a198b5464 fix(launcher): fix gradients and nbox colors 2026-03-09 22:52:42 -04:00
tibssy 5fb4286d9e feat(widgets): implement smart transparency for auxiliary components 2026-03-10 02:39:46 +00:00
Lemmy 8450adfda8 fix(widgets): add Layout.margins to bordered widgets to prevent border clipping 2026-03-09 22:22:25 -04:00
Lemmy 15decbe053 feat(launcher): splitted in smaller files for easier maintainability. improved record usage. 2026-03-09 21:50:50 -04:00
Turann_ 01e272924b Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 2026-03-10 04:26:21 +03:00
Turann_ ebde160246 Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 2026-03-10 04:26:05 +03:00
Turann_ cada065b00 feat(network): improve UI consistency and connection info display 2026-03-10 03:51:14 +03:00
Lemmy 44045fa020 fix(backgrounds): prevent qTriangulate crash on framed bar outer rectangle arcs 2026-03-09 17:16:14 -04:00
Lemmy 77b253f1ca fix(backgrounds): enforce minimum arc radius to prevent qTriangulate SIGSEGV on flat corners 2026-03-09 16:57:02 -04:00
Lysec 8be7a34b46 Merge pull request #2117 from spiros132/desktopwidgets-grid-scale
Grid snapping for scale component in desktop widgets
2026-03-09 19:18:11 +01:00
Lysec e8e5d87fc5 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-09 19:03:23 +01:00
Lysec 7decba1606 feat(launcher): implement usage-based ranking for results across providers 2026-03-09 19:03:18 +01:00
Turann_ ae8b13c11b Merge branch 'upstream/main' into pr/networking-refactor-pt2 and resolve conflicts 2026-03-09 20:50:45 +03:00
Turann_ c47aefa339 Merge branch 'upstream/main' into pr/networking-refactor-pt1 and resolve conflicts 2026-03-09 20:48:59 +03:00
Spyridon Siarapis 87299dda06 fix(desktop-widgets): Added a toggle for snapping the scale 2026-03-09 17:56:19 +01:00
Spyridon Siarapis d95806f440 Merge branch 'noctalia-dev:main' into desktopwidgets-grid-scale 2026-03-09 17:35:41 +01:00
Lemmy 54ec0878fe fix(bar): defer ListModel sync to prevent re-entrant incubation SIGSEGV 2026-03-09 12:34:25 -04:00
Lemmy 4d0897d6ed fix(backgrounds): another take on fixing potential degenerate Shape paths 2026-03-09 12:15:22 -04:00
Lemmy e4593216f0 fix(audio): replace NWaveSpectrum CurveRenderer with shader to fix SIGSEGV crash 2026-03-09 11:55:35 -04:00
Lemmy d3732cb197 fix(desktop-widgets): resolve widgetMetadata ReferenceError in DraggableDesktopWidget 2026-03-09 10:57:15 -04:00
Lemmy 97ab97d4fc fix(plugins): ensure settings.json is never copied on update 2026-03-09 10:56:46 -04:00
Lysec 9536553dc5 feat(ui): add toggle to show/hide scrollbars on hover 2026-03-09 13:14:25 +01:00
Lemmy 0294759a54 feat(plugins): settings popup allow for custom width 2026-03-09 00:41:27 -04:00
Lemmy 29d0b1f63b chore(niconbutton): renamed allowScroll to handleWheel for clarity 2026-03-09 00:40:23 -04:00
Lemmy cab1117712 fix(ntextinput): fix chopped off border due to fractional scaling + never swallow mousewheel events 2026-03-09 00:37:55 -04:00
Lemmy 372eaeed22 fix(launcher): use a binding for dynamic gridColumns - fix up/down navigation. 2026-03-08 22:40:39 -04:00
Lysec fe9f52d353 Merge pull request #2112 from spiros132/main
Added a way to be able to move the desktop widgets settings popup
2026-03-08 23:08:58 +01:00
Lemmy 4fcc622c52 Merge pull request #2122 from notiant/patch-21
Fix transparency issues with connected box for Bluetooth/WiFi
2026-03-08 17:31:48 -04:00
Lemmy 2f4b80d72f fix(launcher): prevent arbitrary js execution. fix #2115 2026-03-08 17:16:20 -04:00
Lemmy 250242c266 fix(nbox): update comment 2026-03-08 16:11:34 -04:00
notiant e5a6bcdf13 fix transparency issues with connected box for Bluetooth/WiFi 2026-03-08 20:53:26 +01:00
Spyridon Siarapis cbc650751e feat(desktop-widgets): Added support for grid snapping of the desktop widgets 2026-03-08 19:57:31 +01:00
Lemmy bfdf883b07 fix(bar): graphical battery - dont eyeball the scale 2026-03-08 14:11:08 -04:00
Spyridon Siarapis 1be78b5063 chore: format 2026-03-08 18:41:34 +01:00
Lemmy 864d6ad722 fix(bar): graphical battery should not follow bar font size. 2026-03-08 13:10:03 -04:00
Lemmy 4d07c8ad18 fix(bar): simplified floating margins ui 2026-03-08 12:57:54 -04:00
Lemmy 3e89e17031 fix(bar): replacing margins sliders by spinbox 2026-03-08 12:24:06 -04:00
Lemmy efb9cadd17 fix(templating): process the user templates even if no standard templates are enabled 2026-03-08 12:16:57 -04:00
Lemmy b7e69d5579 feat(bar): debouncing rapid changes to floating margins 2026-03-08 12:03:13 -04:00
SpeakingPNG 0cd1818195 Merge branch 'main' into feat/configurable-exclusion-zone 2026-03-08 16:52:52 +01:00
SpeakingPNG 4076c636f2 change to accomodate the upstream conflict 2026-03-08 16:50:55 +01:00
Lemmy 1fd0b187b5 feat(bar): increased floating margins from 18px to 500px - fixed smart panels opening positions to properly account for thoses margins. 2026-03-08 11:22:06 -04:00
Spyridon Siarapis 9e8558abee feat(desktop-widgets): Added a way to move the DesktopSettingsDialog popup by dragging 2026-03-08 16:18:49 +01:00
Lemmy 9acb3facfa feat(ipc): add new ipc call wallpaper refresh 2026-03-08 10:47:27 -04:00
Lemmy 697d3754ae chore(version): bump to 4.6.6 2026-03-08 08:35:30 -04:00
Lemmy 6447221fa8 Release v4.6.5 2026-03-08 08:34:25 -04:00
Lemmy 0cbc42f2f8 chore(i18n) update 2026-03-08 08:21:48 -04:00
Turann_ 471f515ac0 i18n 2026-03-08 06:59:29 +03:00
Turann_ 6daa73b488 unused keys now gone 2026-03-08 06:29:31 +03:00
Turann_ 4c6f9ab471 Update NetworkService.qml 2026-03-08 06:29:15 +03:00
Turann_ 830321bf6e Update Planning board.md 2026-03-08 06:27:52 +03:00
Turann_ 88618b68f4 basic enterprise support 2026-03-08 06:17:34 +03:00
Turann_ d4f2ebb9a5 Here we go again 2026-03-08 05:54:30 +03:00
Lemmy 57b47e6942 feat(labwc): use native ext-workspace-v1 for workspaces and fix window tracking 2026-03-07 21:29:34 -05:00
Lemmy 5f319987a5 feat(nbox): clamping min opacity instead of using a ratio. 2026-03-07 18:16:40 -05:00
Lemmy 8461060477 fix(display): reactively update resolution when compositor reports changes. fix #1845 2026-03-07 17:21:56 -05:00
Lemmy a3b44f4230 fix(mango): fix window-to-output mapping and guard against empty metadata matches 2026-03-07 16:19:00 -05:00
Lysec 2480e10970 fix(emacs): fix template tooltip path 2026-03-07 19:44:06 +01:00
Lemmy 88f95c82e3 Merge pull request #2095 from spiros132/main
feat(desktop-widgets): Better desktopWidgetSettings for plugins, and fixed a bug related to the desktopWidgetSettings
2026-03-07 13:15:43 -05:00
Spyridon Siarapis 46b149cb94 fix: Change from referencing widgetData to widgetSettings.data 2026-03-07 19:09:49 +01:00
Lemmy 4cb1b354ac feat(mango): new service implementation using the proper dwl implementation 2026-03-07 12:58:08 -05:00
Lemmy 5f2020151c fix(templating): run user templates even when no build-int templates are enabled 2026-03-07 09:18:13 -05:00
Lemmy 1f8d1bb375 fix(templating) implemented a more robust creation of user-templates.toml 2026-03-07 08:52:37 -05:00
Lysec d62eb5b249 refactor(niri): use native C++ Niri IPC module instead of QML socket 2026-03-07 14:41:13 +01:00
Lysec 4d56a2aa99 fix(session-menu): renumber keybinds on toggle and assign number to Userspace Reboot
Issue: #2101
2026-03-07 12:19:09 +01:00
Lemmy 6f5b9f4222 feat(spectrum): new cava free service 2026-03-06 23:19:04 -05:00
Lemmy 77de0b0ade chore(cava): CavaService => SpectrumService 2026-03-06 22:34:14 -05:00
Lemmy 552543091f Merge pull request #2091 from notiant/patch-19
OSD: prioritize volume over input volume
2026-03-06 22:05:23 -05:00
Lemmy 8aaf392127 Merge pull request #2092 from notiant/patch-20
Add queue for Bluetooth auto-connect
2026-03-06 22:04:44 -05:00
Lemmy f80f10c517 Merge pull request #2100 from Mathew-D/main
sway: include floating_con windows in workspace mapping
2026-03-06 22:02:54 -05:00
Lemmy 367d82404d chore(dead-code): removing terminal.py 2026-03-06 21:55:14 -05:00
Lemmy cd8a650b45 feat(nbox): added comment 2026-03-06 21:40:41 -05:00
Lemmy e50361f2fe feat(nbox): less transparency on containers 2026-03-06 21:24:31 -05:00
Lemmy 76e7f30fcb feat(ui): using panel opacity on all nboxes (unless marked as opaque) + launcher adjustments for a nice transluent look 2026-03-06 20:54:30 -05:00
Lemmy b47a6e22bb i18n(update): font weight 2026-03-06 20:01:38 -05:00
Lemmy 73a6717a7a settings-widgets-default 2026-03-06 19:59:31 -05:00
Lemmy 90dd430c1a Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-03-06 19:58:51 -05:00
Lemmy 525d1bb743 Merge pull request #2099 from markvincze/add-workspace-fontweight-setting
Introduce setting to configure the font weight in the Workspaces widget
2026-03-06 19:58:34 -05:00
Mathew-D dcf8c3846e sway: include floating_con windows in workspace mapping 2026-03-06 19:50:46 -05:00
Lysec f75fce63e9 i18n 2026-03-07 01:06:05 +01:00
Lysec 5533d35527 feat(desktop-widgets): add configurable audio visualizer widget and fix CAVA deregistration lifecycle 2026-03-07 01:05:11 +01:00
Mark Vincze af76e6a442 Introduce setting to configure the font weight in the Workspaces widget 2026-03-07 00:48:33 +01:00
Lysec 6f81d7d562 docs(bug report): add noctalia-qs version to template 2026-03-07 00:16:06 +01:00
Lemmy c0311c1701 i18n(system): removed "threshold" and use Warning and Critical directly 2026-03-06 18:14:50 -05:00
Lysec 82a5507e92 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-07 00:13:15 +01:00
Lysec 67e1c70545 chore(PR template): add info about drafts 2026-03-07 00:13:11 +01:00
Lemmy 3c36cfa63b Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-03-06 18:11:50 -05:00
Lemmy ea4fd3c271 feat(launcher): launcher in overlay now support blur/background effect 2026-03-06 18:11:45 -05:00
Lysec 88006647e1 i18n 2026-03-07 00:03:10 +01:00
Lysec 74e959874e chore(settings): remove unused system performance description key 2026-03-07 00:01:29 +01:00
Lysec bb4e8fd9e8 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-06 23:57:17 +01:00
Lysec 3452619f5d fix(settings): turn System Monitor into System with Performance subtab 2026-03-06 23:56:54 +01:00
Lemmy f2d16688b0 Merge pull request #2098 from D3rJust1n/main
feat (about/version): removed fallback to board_name, made it simpler
2026-03-06 17:52:44 -05:00
Lemmy 25ab856c69 Merge branch 'main' into main 2026-03-06 17:52:19 -05:00
D3rJust1n aac61f12a5 feat (about/version): removed fallback to board_name, made it simpler 2026-03-06 23:30:14 +01:00
Lemmy 1a5cf691fe Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-03-06 17:28:44 -05:00
Lemmy 1135440850 fix(ngraph): removed Shapes and using a pure shader approach. 2026-03-06 17:28:34 -05:00
Lysec 31b636ee25 Revert "Merge pull request #2096 from D3rJust1n/main"
This reverts commit b9bde54769, reversing
changes made to c685b70f10.
2026-03-06 23:27:14 +01:00
Lysec b9bde54769 Merge pull request #2096 from D3rJust1n/main
feat (about/version): added fallback to board_name if product_family …
2026-03-06 23:07:16 +01:00
D3rJust1n 6d7d5dfcd5 feat (about/version): added fallback to board_name if product_family is N/A 2026-03-06 21:58:51 +01:00
Spyridon Siarapis d0772d9936 fix format 2026-03-06 21:47:17 +01:00
Spyridon Siarapis c2b2dac1fb fix(desktop-widgets): Fixed a bug where the widget settings context action didn't show if you didn't have the settings in the manifest 2026-03-06 21:40:57 +01:00
Spyridon Siarapis 397c5d155b feat(desktop-widgets): Added a better way for plugins to create the desktop widget settings. This includes a save function to save the values that have been changed 2026-03-06 21:38:07 +01:00
rivera-diego efad16abd6 fix(hyprland): sort toplevels by x/y coordinates to fix widget ordering in scrolling and master layouts 2026-03-06 14:32:24 -05:00
Lemmy c685b70f10 fix(about/version): better noctalia-qs --version parsing, removed unecessary pacman code. 2026-03-06 13:23:30 -05:00
notiant 845526742e change auto-connect tooltip 2026-03-06 18:53:23 +01:00
notiant 7d0e16906e Add queue for Bluetooth auto-connect 2026-03-06 18:28:29 +01:00
notiant 1a263e6cc3 OSD: prioritize volume over input volume 2026-03-06 17:59:24 +01:00
SpeakingPNG 7f49757478 Exclusion-Zone-Inset to exclusion-zone-inset and small description rename 2026-03-06 16:12:48 +01:00
Lemmy 6b64fa11fc bump version 2026-03-06 08:44:11 -05:00
Lemmy b455dbb11f v4.6.4 2026-03-06 08:43:15 -05:00
Lemmy 072eb6d056 fix(launcher/sessionProvider): executeAction was broken due to panel content being unloaded before the action could run 2026-03-06 08:33:44 -05:00
Lemmy cd0da159ce feat(blur): added a new option to toggle it on/off 2026-03-06 08:29:03 -05:00
Lemmy 149592656d i18n-update 2026-03-06 08:20:36 -05:00
Lemmy ccb730c82a Merge pull request #2037 from tmarti2/fix-tab-selected-in-launcher
Fix visual focus in launcher with (back)tab key
2026-03-06 08:06:10 -05:00
Lemmy 8cdf6c0612 perf(launcher): persist plugin provider instances across open/close cycles. 2026-03-06 07:55:58 -05:00
Lysec f8ee284366 fix(lockscreen): reduce focus churn after resume 2026-03-06 13:47:21 +01:00
Lysec 3b3589ae52 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-06 13:37:40 +01:00
Lysec db3b5bad07 feat(settings): show scrollbar when scrollable 2026-03-06 13:37:20 +01:00
Lysec 9b8af28b28 Merge pull request #2086 from HANDZCZ/edit-qt-template
fix(theming): fix and add colors to qt template
2026-03-06 13:22:40 +01:00
Lysec 7c7267d8d5 chore(README): adjust noctalia shell capital letters 2026-03-06 12:58:12 +01:00
Lysec 11a7f26943 fix(BluetoothService): pause bluetoothctl polling during lockscreen 2026-03-06 10:07:34 +01:00
Lysec 7a58a130ca fix(workspace): make empty space clickable in grouped mode
Closes: #2087
2026-03-06 10:03:30 +01:00
Lemmy 52a7165b46 autofmt 2026-03-05 19:01:19 -05:00
Lemmy 4ef03e6ace i18n-update for bt auto connect 2026-03-05 17:32:15 -05:00
Lemmy acdcc2ce0e Merge pull request #2085 from turannul/pr/bluetooth-improve-auto-connect
Improving Bluetooth auto-connect
2026-03-05 17:25:46 -05:00
Lemmy babcf5cdd9 Merge pull request #2035 from DzmingLi/fix/calendar-events-location
Fix calendar-events.py: add location, description, uid fields and fix timeout
2026-03-05 17:24:12 -05:00
Turann_ bdc263ea69 -- unnecessary variable -- (read desc)
Timer and delay makes it horrible because lack of sleep(500); or something like it - as far as i know.

@notiant Will you?
2026-03-06 01:05:22 +03:00
HANDZCZ a3eb100784 fix(theming): fix and add colors to qt template
Fixes accent not being defined
Sets alternateBase to surface_variant and placeholderText to on_surface
2026-03-05 22:40:40 +01:00
Turann_ 237227f288 Update BluetoothSubTab.qml 2026-03-06 00:28:39 +03:00
Turann_ c998d4bbda Merge branch 'noctalia-dev:main' into pr/bluetooth-improve-auto-connect 2026-03-06 00:19:57 +03:00
Turann_ 6d4ca49da1 make the text interactive. 2026-03-06 00:12:18 +03:00
Lemmy 38e75bb247 ngraph: avoid crashing CurveRenderer by using linear fill paths 2026-03-05 15:44:16 -05:00
Lemmy 6eb5085d04 ngraph: move shape safeguarding 2026-03-05 15:16:13 -05:00
Turann_ 47e48bdcb1 Merge branch 'noctalia-dev:main' into pr/auto-connect-improvements 2026-03-05 23:10:35 +03:00
Lemmy 7a3f549648 brightness: use declarative binding instead of updateMonitor 2026-03-05 15:07:41 -05:00
Lysec 80f93b3952 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-05 21:05:03 +01:00
Lysec 1ea8654d5b fix(NSlider): guard filled CurveRenderer shape against zero-height geometry 2026-03-05 21:05:00 +01:00
Turann_ 6fab8f05ef Merge branch 'noctalia-dev:main' into auto-connect-improvements 2026-03-05 23:03:06 +03:00
Lemmy b9f876ed01 screen-corners: safeguard shape 2026-03-05 15:03:00 -05:00
Turann_ 62c7947657 Update BluetoothService.qml 2026-03-05 23:01:23 +03:00
Turann_ e4295843cd add autoconnect control 2026-03-05 23:01:03 +03:00
Turann_ 8058cbe3b0 Update en.json 2026-03-05 23:00:38 +03:00
Lemmy 879bdce702 backgrounds: even more safeGuard 2026-03-05 14:54:40 -05:00
Lemmy 10f7ed0179 launcher-overlay: safeguard Shape 2026-03-05 14:53:51 -05:00
Lemmy a43b944b95 widget-sliders: safeguard Shape 2026-03-05 14:51:58 -05:00
Lysec baf4971a62 fix(PanelBackground): avoid degenerate ShapePath when panel slot is not renderable 2026-03-05 20:29:26 +01:00
Lysec 2f8764c912 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-05 20:19:26 +01:00
Lysec df231d5867 fix(NWaveSpectrum): prevent CurveRenderer triangulation crash on degenerate/invalid paths 2026-03-05 20:19:18 +01:00
Lysec 91d7d07b2c Merge pull request #2084 from qalqa-dev/main
fix(zen-browser): removed unused groupboxes background
2026-03-05 20:00:42 +01:00
qalqa-dev f40eafcdcc chore(zen-browser): removed unused groupboxes background 2026-03-05 21:53:55 +03:00
Lysec 2619d99d59 Merge pull request #2082 from onyx-tty/feat/improve-headline-visibility-with-high-opacity-colors
Templates/emacs: improve headline visibility with high opacity colors
2026-03-05 19:12:31 +01:00
Lysec 187071c13b Merge pull request #2081 from CLEMENTINATOR/fix-wallpaper-switching
fix(wallpaper): add missing Power service import to fix autoswitch
2026-03-05 19:07:31 +01:00
Clement Bouvet 4987e4cb54 fix(wallpaper): add missing Power service import to fix autoswitch
PowerProfileService was referenced in the timer's running condition
but the import was missing, breaking wallpaper autoswitch.
2026-03-05 19:04:07 +01:00
onyx-tty d38cc1dd93 Templates/emacs: improve headline visibility with high opacity colors (#2034) 2026-03-05 18:37:46 +01:00
Turann_ cac1b19b72 that was not required. 2026-03-05 20:30:50 +03:00
Lysec e60ce173d4 fix(ayu): adjust text color to make it more readable 2026-03-05 18:05:17 +01:00
Lysec 677413e6fc migration(theming): redownload outdated color schemes to fix terminal format 2026-03-05 17:52:06 +01:00
Lemmy 6ce879866b templates: terminal: foot-predefined: replace [colors] with [colors-dark] 2026-03-05 10:03:16 -05:00
Lemmy 04d27418f1 Merge branch 'colorgen': move predefined colorschemes to separate templates 2026-03-05 10:01:43 -05:00
Lemmy 979a150e44 plugins: handle settingsSaved signal and deduplicate settingsPath var in DesktopWidgetSettingsDialog 2026-03-05 09:54:25 -05:00
Lemmy f028e7da48 Merge pull request #2068 from spiros132/main
feat(plugins): Added a way for plugins to define their own desktop widget settings
2026-03-05 09:52:31 -05:00
Lemmy 7667b666ba ngraph: more bullet proofing against potential degenerate paths 2026-03-05 09:51:12 -05:00
Lemmy 7d70a39419 sys-stat: ensure a minimum number of history entries so we can draw them 2026-03-05 09:50:30 -05:00
Lemmy a2e6791cef nsection-editor: restore CPU intensive icon that was removed by a bad merge. 2026-03-05 09:34:02 -05:00
Lysec ae69987d9e i18n 2026-03-05 15:07:59 +01:00
Lysec eec619ceac feat(VersionSubTab): adjust copy info output 2026-03-05 15:06:07 +01:00
Lysec 945c56c24b Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-05 15:01:50 +01:00
Lysec 64b88103f3 feat(VersionSubTab): visual overhaul 2026-03-05 15:01:46 +01:00
Lemmy 3e9c08b5b9 Merge pull request #2079 from tmarti2/fix-notification-display
Show notification on all screens when 0 screens are found
2026-03-05 08:16:05 -05:00
Thibault Martin f0fd7a5631 Show notification on all screens when 0 screens are found 2026-03-05 13:51:18 +01:00
Lysec d2ed3a11df Merge pull request #2078 from notiant/patch-18
Add {{mode}} tag to template renderer
2026-03-05 12:37:59 +01:00
notiant 69e54e823c remove Bluetooth auto-connect notification 2026-03-05 12:36:53 +01:00
Lysec 4a0f1200da fix(toast): reimplement compact mode for toasts (#2028) 2026-03-05 12:34:18 +01:00
notiant f02f0785fa Add {{mode}} tag to template renderer 2026-03-05 12:21:36 +01:00
Lysec c7c7603ae5 Merge pull request #2077 from iynaix/bump-flake-lock
Bump noctalia-qs for flake.lock
2026-03-05 10:42:10 +01:00
Lin Xianyi eb48a5f09a Bump noctalia-qs for flake.lock 2026-03-05 17:34:36 +08:00
Thibault Martin 65ec8acbc3 Fix visual focus in clauncher with (back)tab key 2026-03-05 08:48:55 +01:00
Lemmy c77497f8aa bumping version 2026-03-04 23:09:11 -05:00
Lemmy dcfdcff330 Release v4.6.3 2026-03-04 23:07:42 -05:00
Lemmy 37153772e5 backgrounds: fix coincident subpath causing invisible bar fill on simple bar type 2026-03-04 22:59:26 -05:00
Lysec 3ec738e75b Bumping version 2026-03-05 02:19:01 +01:00
Lysec b3b20c73ee Release v4.6.2 2026-03-05 02:17:47 +01:00
Lemmy ebeca6c266 main-screen: screen can be null for a moment when reconnecting 2026-03-04 19:27:32 -05:00
Lemmy c56fa106b7 media-service: add null guard and use dbusName for player blacklist matching 2026-03-04 16:24:02 -05:00
Lemmy 57b208f04e Merge pull request #2070 from notiant/patch-17
Fix Bluetooth auto-connect not working on startup
2026-03-04 14:36:08 -05:00
Lemmy c122e69018 Merge pull request #2069 from tibssy/fix/bar-behavior-i18n
fix(i18n): add missing error toast translation for custom commands
2026-03-04 14:35:35 -05:00
Lemmy a8e22a4e90 i18n-update 2026-03-04 14:35:20 -05:00
notiant ff0297d56e Fix Bluetooth auto-connect not working on startup 2026-03-04 20:23:39 +01:00
tibssy dddbb46271 fix(i18n): add missing error toast translation for custom commands 2026-03-04 19:14:48 +00:00
Lemmy c9b6fc9ef9 backgrounds: fix degenerate inner hole subpath in BarBackground when not framed 2026-03-04 13:52:20 -05:00
SpeakingPNG 7fd9b5d7de rename exclusionZoneOffset to enableExclusionZoneInset 2026-03-04 17:28:54 +01:00
Lemmy cf326a71fc location: IPC call now triggers geocoding and weather refresh. Fix #2065 2026-03-04 11:02:42 -05:00
Lemmy 13dad39652 media-mini: properly handle cava unregistration when hidden. 2026-03-04 10:57:33 -05:00
Lemmy 44510a61ed default-settings: proper generation 2026-03-04 10:57:15 -05:00
SpeakingPNG 56d91dd9a5 change a comment in BarExclusionZone.qml 2026-03-04 16:53:13 +01:00
SpeakingPNG 93fcf5afe9 make true the default value 2026-03-04 16:51:12 +01:00
SpeakingPNG 83c962592c add this part from upstream 2026-03-04 16:41:08 +01:00
SpeakingPNG d3796cc365 add exclusion zone toggle to en.json 2026-03-04 16:34:46 +01:00
Spyridon Siarapis f92dbc69a7 fix(plugins): Fixed a bug with the DesktopWidgetRegistry 2026-03-04 16:18:30 +01:00
Lemmy fbbf419b34 combobox: add textRole to silence QVariantMap-to-QString warnings 2026-03-04 10:15:23 -05:00
Lemmy 4163fc7632 backgrounds: guard against degenerate ShapePaths crashing Qt CurveRenderer 2026-03-04 10:14:43 -05:00
Lemmy 57b9c2edd9 nlineargauge: comment cleanup and simplified logic with a single "raw" property 2026-03-04 09:49:07 -05:00
Spyridon Siarapis 3b465d7479 feat(plugins): Added a way for plugins to define their own desktop widget settings 2026-03-04 15:48:55 +01:00
Lysec f040c81530 move predefined colorschemes from python to separate template 2026-03-04 15:38:50 +01:00
SpeakingPNG 1cbc0c4715 Merge branch 'noctalia-dev:main' into feat/configurable-exclusion-zone 2026-03-04 15:05:39 +01:00
SpeakingPNG 4c2dba2e45 feat(bar): add a toggle for 1px exclusion zone 2026-03-04 15:04:32 +01:00
Lysec ced71e945f Merge pull request #2063 from 1Naim/fix/foot-1.26
Templates: terminal: foot: Replace [colors] with [colors-dark]
2026-03-04 15:02:12 +01:00
Lysec c8dc4934be i18n 2026-03-04 14:34:24 +01:00
Lemmy 896c67893d nlineargauge: more accurate but more squished at low values 2026-03-04 08:25:28 -05:00
Lemmy d55f81c413 nlineargauge: snapping to zero if the value is too small to be rendered beautifully. 2026-03-04 08:17:54 -05:00
Lemmy 6732eac58a autofmt 2026-03-04 08:14:33 -05:00
Lemmy f342abf443 nlineargauge: tweaking for vertical vs horizontal 2026-03-04 08:14:27 -05:00
Eric Naim ca74a5e74d Templates: terminal: foot: Replace [colors] with [colors-dark]
This was replaced in foot 1.26.0

Link: https://codeberg.org/dnkl/foot/commit/cf2b390f6e096e7a2ca93d4dece153eb13261a2e
Signed-off-by: Eric Naim <dnaim@cachyos.org>
2026-03-04 20:00:28 +08:00
Lysec 0a7e81c345 Merge pull request #2062 from AstronW/fix/idle-fade-stage-queue
idle: queue staged actions during fade to prevent lost lock/suspend
2026-03-04 12:49:56 +01:00
Lysec c2b84a53e1 Merge pull request #2046 from tibssy/feat/bar-behavior-actions
Feat/bar behavior actions
2026-03-04 12:40:17 +01:00
Lysec 229da64731 i18n 2026-03-04 12:39:25 +01:00
astronw 72570bab31 idle: queue staged actions during fade to prevent lost lock/suspend 2026-03-04 15:45:29 +08:00
Dzming Li ed23b0034e Change connect_sync to 5s 2026-03-04 10:30:36 +08:00
Lemmy 92161fa136 idle: removed suppressUntil, fixes bug where a 'monitor' (lock) would not execute 2026-03-03 20:52:25 -05:00
Lemmy 7ff84f78c6 launcher: cleanup 2026-03-03 19:51:52 -05:00
Lemmy 3f54b96571 Merge pull request #2044 from eric-handley/fix/launcher-performance
Fix launcher opening delay
2026-03-03 19:49:27 -05:00
Lemmy 7742f09d4b sysstat: dont make showCpuCore disabled when showCpuUsage is off - as it's also used in the tooltips. 2026-03-03 19:34:53 -05:00
Lemmy f2d40c2d2d nlineargauge: enforce minium fill size to avoid a weird look. It's either that or removing the rounded corners. 2026-03-03 19:32:09 -05:00
Lemmy 259aa1b93d sysstat: show cpu-cores at false by default 2026-03-03 19:26:34 -05:00
Lemmy 3bc4b0fc48 Merge pull request #1962 from tmarti2/per-core-cpu-stats
"Per core" cpu stats in SystemMonitor
2026-03-03 19:22:10 -05:00
Lemmy a513db0840 bt: auto-connect cleanup 2026-03-03 19:11:32 -05:00
Lemmy abb7704699 Merge pull request #1981 from cbxcvl/feature/bluetooth-autoconnect
feat(bluetooth): auto-connect paired & trusted devices with toggle control
2026-03-03 19:09:19 -05:00
Lemmy 19d720fabb userspace-reboot: cleanup 2026-03-03 19:02:39 -05:00
Eric Handley 52ae4333e3 fix(launcher): use readonly prop to check if animations are enabled 2026-03-03 16:01:06 -08:00
Lemmy eec84e66d7 Merge pull request #2026 from turannul/pr/implement-userspace-reboot
Add userspace reboot/restart
2026-03-03 18:57:59 -05:00
Lemmy f70966558d wallpaper: removing subtle sharpeing for fullscreen wallpapers - kept it on thumbnails. Fix #2041 2026-03-03 18:48:37 -05:00
Turann_ 2bd8160dae Merge branch 'noctalia-dev:main' into pr/implement-userspace-reboot 2026-03-04 01:56:58 +03:00
tibssy 6fbe7e6ccf refactor(bar): remove verbose logging from custom command execution 2026-03-03 20:32:02 +00:00
tibssy fa3f4a9b88 feat(bar): add custom command support for bar mouse actions 2026-03-03 19:32:00 +00:00
tibssy ef166d8ea7 refactor(settings): remove redundant right-click option from control center 2026-03-03 19:32:00 +00:00
tibssy 646d4e6338 fix(i18n): add missing scroll behavior translations 2026-03-03 19:31:59 +00:00
tibssy f1b5e41d3a feat(bar): implement middle-click action support for Bar Behavior 2026-03-03 19:31:59 +00:00
tibssy 829babad2a feat(bar): extend rightClickFollowMouse support to the Settings panel 2026-03-03 19:31:59 +00:00
tibssy bd91405449 feat(bar): implement optional mouse-following for right-click panel placement 2026-03-03 19:31:59 +00:00
tibssy 0d1a6d2e25 fix(launcher): adjust opening animation to follow bar position 2026-03-03 19:31:59 +00:00
tibssy 7fb0e8533b feat(settings): add launcherPanel option for bar right-click actions 2026-03-03 19:31:59 +00:00
tibssy a228b6ade5 feat(bar): implement right-click action logic 2026-03-03 19:31:59 +00:00
tibssy 79dd2d6def feat(settings): add configuration for bar right-click actions 2026-03-03 19:31:59 +00:00
cbxcvl cfaf900f3f refactor(bluetooth): address code review feedback
- Replace mirrored autoConnectEnabled property with Connections block
- Remove no-op _autoConnectInProgress flag (device.connect() is async)
- Remove redundant count variable, use devList.length directly
2026-03-03 16:19:52 -03:00
Lysec ba5f933c58 fix(WallpaperPanel): remove duplicate return 2026-03-03 20:17:27 +01:00
Lysec 5cba4a65d6 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-03 20:16:38 +01:00
Lysec d26f67e7bf i18n 2026-03-03 20:16:35 +01:00
Lysec 341129eeb1 Merge pull request #2050 from notiant/patch-16
Add some missing translations
2026-03-03 20:16:27 +01:00
Lysec f2ad688032 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-03 19:48:06 +01:00
Lysec c009551d08 fix(settings): clear search highlight overlay on scroll (fix #2054) 2026-03-03 19:48:02 +01:00
notiant 353609d462 fix typo 2026-03-03 17:35:06 +01:00
notiant 6a6bd6da2c remove unnecessary i18n entry 2026-03-03 17:31:41 +01:00
Lemmy 0a2ce3bac7 cava-template: removed background color so it's transparent 2026-03-03 11:25:56 -05:00
Lysec 500de16b3f fix(SessionMenu): use action metadata for localized countdown titles (fix #2043) 2026-03-03 15:20:47 +01:00
notiant bc087f9a35 add some missing translations 2026-03-03 14:27:11 +01:00
Lysec 30af6ad39f Merge pull request #2048 from PhosCity/update-yazi-tab-colors
template: update the tab color for yazi template
2026-03-03 12:15:50 +01:00
PhosCity 6c5c336b71 template: update the tab color for yazi template 2026-03-03 16:36:48 +05:45
Lemmy ddfb06fe5b desktop-widgets: improves background rounding corners radius when scaling up or down. 2026-03-02 20:14:40 -05:00
Eric Handley 713161114d fix(launcher): defer provider initializations 2026-03-02 16:59:47 -08:00
Eric Handley 13fe88576d fix(launcher): only call updateResults() when plugins change 2026-03-02 16:50:23 -08:00
Eric Handley 579f5585a9 fix(launcher): skip delay when animations disabled 2026-03-02 16:43:42 -08:00
Eric Handley 54f9274c85 fix(launcher): load results async 2026-03-02 16:20:46 -08:00
Eric Handley f3ecbce673 fix(launcher): only reload desktop entries when changed on disk 2026-03-02 16:11:31 -08:00
Lysec ba24387d7e i18n 2026-03-02 22:23:20 +01:00
Lemmy 614fbd210d ipc: restoring "wallpaper get" 2026-03-02 13:36:06 -05:00
Lysec 90f62166c8 feat(performance): disable background image when noctalia-performance mode is on 2026-03-02 16:59:07 +01:00
Lysec 8ebf2bf332 fix(toast): implement compact density support (#2028) 2026-03-02 13:10:15 +01:00
Lysec 8b40876b50 fix(taskbar): use capsuleHeight for widget thickness on vertical bars 2026-03-02 13:03:57 +01:00
Dzming Li 356b9a11a2 calendar-events: add uid and calendar_uid to event output, fix timeout
Output event UID and EDS source UID for each event to enable
edit/delete operations. Also reduce connect_sync timeout from
30s to 1s.
2026-03-02 19:56:30 +08:00
Dzming Li ef9aee179f Fix: pass location and description to calendar events
The add_event() function accepts location and description parameters
but they were never passed in any of the three call sites. This meant
CalendarService.events always had empty location/description fields
even when EDS had the data.
2026-03-02 19:56:30 +08:00
Lysec 1c4ee0dbc3 fix(dock/taskbar): pinning specific apps no longer creates duplicate icons 2026-03-02 12:31:20 +01:00
Lysec bdfd8720dc Merge pull request #2033 from tmarti2/fix-tooltip-default-setting-action
Only display setting action when it is enabled in click functions
2026-03-02 12:06:21 +01:00
Thibault Martin 2ab37df713 Only display setting action when it is enabled in click functions 2026-03-02 11:44:06 +01:00
Lysec 00005a4396 Merge pull request #2032 from tmarti2/fix-custom-button-settings-action
Fix custombutton right/middle click always opening settings
2026-03-02 11:39:41 +01:00
Thibault Martin 892851cec0 Fix custombutton right/middle click always opening settings 2026-03-02 11:38:41 +01:00
Lysec 2a692ba942 Merge pull request #2030 from tmarti2/Fix-a-bug-in-Network-tooltip
Fix network tooltip
2026-03-02 08:01:18 +01:00
Thibault Martin 79a66e0dd0 Fix network tooltip 2026-03-02 07:48:06 +01:00
Lemmy 6eb4370f07 Merge pull request #2027 from notiant/patch-15
Launcher: reduce label font for grid view
2026-03-01 19:28:45 -05:00
notiant 3a24dd2dcb Launcher: reduce label font for grid view 2026-03-02 00:15:59 +01:00
Lemmy 76adaa97d5 bump to 4.6.2-git 2026-03-01 17:35:35 -05:00
Lemmy 573de3b211 release v4.6.1 2026-03-01 17:33:54 -05:00
Lemmy 1c3760b73b control-center: added a new option to disable the right click open at cursor pos. 2026-03-01 17:31:14 -05:00
Lemmy fcd08289ad about: added noctalia-qs version display 2026-03-01 17:19:59 -05:00
Turann_ fc99c9e2b4 Add userspace reboot/restart
Update SessionMenuTab.qml

Update CompositorService.qml

Update settings-default.json

Update en.json

Update SessionProvider.qml

Update LockScreenPanel.qml

Update SessionMenuEntrySettingsDialog.qml

Update SessionMenu.qml
2026-03-02 01:00:45 +03:00
Lemmy 025a49f369 idle: updated default settings 2026-03-01 16:46:57 -05:00
Lemmy 72ac33c773 mango: simplified monitor turnOff/on commands in a single call to avoid race conditions 2026-03-01 16:45:20 -05:00
Lysec 16f2adf0a6 i18n 2026-03-01 22:37:59 +01:00
Lysec 419c30e8c8 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-01 22:28:34 +01:00
Lysec eded9777fc MangoService: fix idle monitor turn off/on (#2024) 2026-03-01 22:28:29 +01:00
Lemmy 6f95ce189e Merge pull request #2025 from notiant/patch-14
Change idle settings title & add Enter key for acceptance in NSpinBox
2026-03-01 16:25:54 -05:00
notiant 4025d7fb85 Change idle settings title & add Enter key for acceptance in NSpinBox 2026-03-01 22:20:33 +01:00
Lysec cf7255b934 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-01 21:55:22 +01:00
Lemmy e5e12b4995 wallpaper-random: more robust after PR 1697 2026-03-01 15:54:58 -05:00
Lemmy 7a288650b0 sway: autofmt 2026-03-01 15:54:12 -05:00
Lysec bad2d7dd29 Idle: add user defined commands to basic commands, overhaul tab layout 2026-03-01 21:52:14 +01:00
Lemmy 109f8109b2 Merge pull request #1697 from fboulay/feature/add-option-to-choose-monitor-for-ipc-random-wallpaper
Add screen argument to IPC wallpaper random
2026-03-01 15:51:24 -05:00
Lemmy 74a816de27 Merge branch 'main' into feature/add-option-to-choose-monitor-for-ipc-random-wallpaper 2026-03-01 15:50:40 -05:00
Lemmy 1e56f67f86 Merge pull request #833 from 3akev/main
KeyboardLayout: subscribe to Sway events to update keyboard layout
2026-03-01 15:29:17 -05:00
Lemmy 81d145952f settings db + autofmt 2026-03-01 15:26:01 -05:00
Lemmy c0292d0d88 Merge pull request #1889 from tibssy/feat/bar-scroll-actions
Feat/bar scroll actions
2026-03-01 15:23:46 -05:00
Lemmy bb0f875b84 launcher-core: more accurate comment + autofmt 2026-03-01 15:22:58 -05:00
Lemmy 95ff07fb9c Merge pull request #1937 from krendil/main
fix(Launcher): Allow item images to take advantage of preferredGridCellRatio
2026-03-01 15:22:08 -05:00
Lemmy e785c16fec Merge pull request #1955 from AlexNabokikh/main
feat(notifications): focus sender window on click in notification hist
2026-03-01 15:17:35 -05:00
Lemmy b562f964a8 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-03-01 15:15:02 -05:00
Lemmy e6849d9241 ncolorchoice: added to the search index. 2026-03-01 15:14:59 -05:00
Lysec d5c2a32dbd Merge pull request #2020 from elrondforwin/main
Add vencord-flatpak template to TemplateRegistry
2026-03-01 21:12:20 +01:00
Lemmy 128b2d3b6b i18n-update 2026-03-01 15:09:52 -05:00
Lemmy 2f4922f9b7 autofmt 2026-03-01 15:02:51 -05:00
elrond 490b7ce304 Add vencord-flatpak template to TemplateRegistry 2026-03-01 22:59:00 +03:00
Lemmy 33a7b37076 Merge pull request #1990 from tmarti2/and-yet-another-default-settings-pass
A (hopefully final) pass on default settings
2026-03-01 14:40:19 -05:00
Lemmy 05ec0d4f37 Merge pull request #1997 from tmarti2/hide-tooltip-when-opened
Do not display widget tooltips if the panel is open
2026-03-01 14:38:42 -05:00
Lemmy d8732d766d Merge branch 'main' into hide-tooltip-when-opened 2026-03-01 14:38:35 -05:00
Lemmy 26a0791cd5 Merge pull request #2019 from PonyLucky/main
fix: hardcoded space when city name is disabled in CalendarHeaderCard.qml
2026-03-01 14:37:03 -05:00
Lemmy b22277a35a Merge pull request #1966 from Pulsar33550336/main
feat(Bar/MediaMini): add mouse side button control
2026-03-01 14:36:15 -05:00
Lemmy f63dc7f007 Merge pull request #1989 from tmarti2/custom-button-setting-default
Add default setting action on CustomButton
2026-03-01 14:26:16 -05:00
Lemmy 67430971f0 Merge pull request #1942 from fboulay/fix/khal-events-lasting-multiple-days
Fix: Khal event lasting multiple days
2026-03-01 14:23:52 -05:00
Lemmy 64da6a3c44 Merge pull request #2011 from iynaix/ipc-monitors-off
Adds an ipc command to turn monitors off
2026-03-01 14:18:06 -05:00
Lysec 79a9c15741 Merge pull request #1984 from tibssy/fix/dock-edge-trigger-reliability
Fix/dock edge trigger reliability
2026-03-01 20:00:53 +01:00
Lemmy ac82e3f050 session-menu: fixed NBox color in regular mode 2026-03-01 13:40:02 -05:00
Lin Xianyi ddb99dce67 Adds an ipc command to turn monitors on / off 2026-03-02 01:07:40 +08:00
Lysec b067278a96 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-03-01 18:01:58 +01:00
Lysec 9566cd1d77 Idle/CustomSubTab: fix root is not defined 2026-03-01 18:01:54 +01:00
Lemmy ebd2cf2be4 Merge pull request #2009 from iynaix/nix-noctalia-qs-overlay
nix: fix noctalia-qs not being included in `overlays.default`
2026-03-01 11:51:05 -05:00
Lemmy c8f2358cc6 Merge pull request #2012 from iynaix/nix-wlr-randr
nix: add wlr-randr as a runtime dependency
2026-03-01 11:50:51 -05:00
Lysec 0ae0b988ca LockScreenBackground: adjust shadow overlay strength 2026-03-01 15:20:19 +01:00
Lysec cfae37f151 Merge pull request #2014 from snoopdouglas/main
Use 'tnum' OpenType feature (tabular numbers) in bar clock widget
2026-03-01 14:49:28 +01:00
Lysec 5b484e2714 Settings: add Enter as 2nd default keybind 2026-03-01 14:42:29 +01:00
Doug Thompson 46c072d621 Use 'tnum' OpenType feature (tabular numbers) in bar clock widget 2026-03-01 12:57:58 +00:00
Louis Margot 74a4e000f4 fix: fix hardcoded space when city name is disabled in CalendarHeaderCard.qml 2026-03-01 13:23:05 +01:00
Ala Alkhafaji f2489ff1ed KeyboardLayout: subscribe to Sway events to update keyboard layout 2026-03-01 11:35:24 +01:00
Lysec 1fd249164b MainScreen: collapse bar blur region when auto-hidden (#2004) 2026-03-01 11:23:56 +01:00
Lysec 300d12dade IdleService: restore monitors when resuming from idle screen-off (fixes #2010) 2026-03-01 10:53:05 +01:00
Lin Xianyi a99483101f nix: add wlr-randr as a runtime dependency 2026-03-01 12:16:23 +08:00
Lin Xianyi 9551003672 nix: fix noctalia-qs not being included in overlays.default 2026-03-01 10:02:35 +08:00
Lemmy 5d03c56f4c autofmt 2026-02-28 18:00:35 -05:00
Lemmy 0b905ff661 bt-service: fix logic to not invoke bluetoothctl when not installed 2026-02-28 18:00:30 -05:00
Lysec 864a0e8263 IdleService: adjust fade timing 2026-02-28 23:49:03 +01:00
Lysec 9a2597c4e5 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-28 23:35:22 +01:00
Lysec a7b558d3fe IdleService: make execution chain more streamlined 2026-02-28 23:35:16 +01:00
tibssy 88e36ba2db fix(dock): correct floating dock centering with vertical bars 2026-02-28 22:12:19 +00:00
tibssy 36d621ed92 i18n: add dock indicator strings across all locales 2026-02-28 22:12:02 +00:00
tibssy caa2464caf feat(dock): add customization settings for indicator thickness, color, and opacity 2026-02-28 22:08:39 +00:00
tibssy 3d8277aea5 style(dock): adjust tooltip alignment based on side-dock position (left/right) 2026-02-28 22:08:39 +00:00
tibssy 5d7b98eff8 fix(dock): simplify static opening logic and resolve auto-close/hover edge issues 2026-02-28 22:08:39 +00:00
tibssy baaba5669f feat(dock): align indicator to absolute edge for easier triggering; animate position and size 2026-02-28 22:08:39 +00:00
tibssy da18e0e6cc feat(dock): enable frame indicator support for all bar and dock types 2026-02-28 22:07:31 +00:00
tibssy 2b10165097 fix(dock): move indicator outside peek window to improve edge trigger reliability 2026-02-28 22:04:07 +00:00
Lysec cb9d6c3e2a Merge pull request #1834 from whiskeyPeak/fix-launcher-scrolling-interrupt
fix launcher scrolling pin button interrupt
2026-02-28 23:02:13 +01:00
Lysec 9596db0b39 i18n 2026-02-28 23:00:50 +01:00
Lysec 4c10a764f1 Merge pull request #1814 from CLEMENTINATOR/media-controls-on-lock-screen-option
lock screen: add option for media controls
2026-02-28 22:59:09 +01:00
Lysec ad226c7dd2 Merge pull request #2000 from notiant/patch-12
Use decimal units for disk space & network speeds
2026-02-28 22:54:23 +01:00
notiant b6ad89abde proper format for memory and swap 2026-02-28 21:03:47 +01:00
notiant 47f822abd3 adjust maxSpeeds to decimal 2026-02-28 18:06:38 +01:00
notiant 3cd3c92edd use decimal units for network speed 2026-02-28 18:01:27 +01:00
notiant 0b6495b60f use decimal units for disk space 2026-02-28 17:35:18 +01:00
Lemmy 3bc578526f cleanup: deleted old blur test via ext. plugin 2026-02-28 11:16:48 -05:00
Lemmy f76a144629 Bumping version to v4.6.1 and restored blur. 2026-02-28 11:13:36 -05:00
Lemmy 012046e87e Bumped version v4.6.0 2026-02-28 11:12:07 -05:00
Braian A. Diez 67ffbb6f27 fix: improve the code regex
Signed-off-by: Braian A. Diez <bdiez19@gmail.com>
2026-02-28 13:11:56 -03:00
Lemmy 052ffcc5a2 autofmt 2026-02-28 11:10:34 -05:00
Lemmy 7e3b1d25d9 systemstat-panel: readded minimal padding to avoid bug with extreme container rouding 2026-02-28 11:10:18 -05:00
Lysec a692cfb654 IPCService: adjust lock/lockAndSuspend logic 2026-02-28 17:00:59 +01:00
Braian A. Diez a913e95d0a chore: missing translation for clipboard
Signed-off-by: Braian A. Diez <bdiez19@gmail.com>
2026-02-28 12:56:29 -03:00
Braian A. Diez a844e578a9 clipboard: add filters by type & date
Signed-off-by: Braian A. Diez <bdiez19@gmail.com>
2026-02-28 12:12:48 -03:00
Lemmy e725020c66 i18n-hu 2026-02-28 09:44:07 -05:00
Lemmy 15d0e1f3f5 Merge pull request #1992 from maxbol/fix/se-translation-error-suspend
fix(i18n): better swedish translation for suspend
2026-02-28 09:43:29 -05:00
Lysec d886dd7861 Merge pull request #1998 from MachXNU/get-wallpaper
IPC Call Wallpaper Get
2026-02-28 13:59:35 +01:00
Thibault Martin 1d99d1994c Do not display widget tooltips if the panel is open 2026-02-28 13:50:42 +01:00
Jb 5ca37a9a1e IPC Call Wallpaper Get 2026-02-28 13:46:21 +01:00
Thibault Martin f29e43d825 Display Cores in SystemMonitor widget 2026-02-28 10:56:36 +01:00
Thibault Martin fb050d6d79 Extract gauges as a new NLinearGauge component 2026-02-28 10:56:36 +01:00
Thibault Martin 0e0e199500 Show cores usage in tooltip if enabled 2026-02-28 10:56:36 +01:00
Thibault Martin 275e5a5db2 Add open main settings action to SystemMonitor widget 2026-02-28 10:56:36 +01:00
Thibault Martin 9e7329ec24 Add a setting to display cpu cores instead 2026-02-28 10:56:36 +01:00
Thibault Martin 02992bccd7 Add cpu cores usage computation in SystemStatService 2026-02-28 10:56:36 +01:00
Thibault Martin 6c9c802f8a Add default setting action on CustomButton 2026-02-28 10:56:21 +01:00
Thibault Martin eaa467c0dd Clean and default settings in desktop widgets 2026-02-28 10:55:56 +01:00
Thibault Martin 4f106a7627 Populate default settings in widgets 2026-02-28 10:55:56 +01:00
Lemmy f21d5fee6c Merge pull request #1994 from iynaix/nix-bump-noctalia-qs
Bump noctalia-qs for flake.lock
2026-02-27 21:47:29 -05:00
Lin Xianyi 1deb98b5ce Bump noctalia-qs for flake.lock 2026-02-28 08:54:03 +08:00
Lemmy 5e78c21a91 idle: better/sane default 2026-02-27 18:47:40 -05:00
Lemmy 903648fa2a settings-widget: fixed typo 2026-02-27 18:45:04 -05:00
Lysec 5cf1add30f Settings: set contentPadding default to 2 2026-02-28 00:19:40 +01:00
Max Bolotin 3f31fc63be fix(i18n): better swedish translation for suspend 2026-02-27 19:33:01 +01:00
Lemmy d4941da27f plugins: fix panels attach logic that would override user's settings 2026-02-27 12:08:16 -05:00
Lemmy 82fb54e1b5 idleInhibitor: improved IPC 2026-02-27 11:56:34 -05:00
Lemmy cbdc7cca71 Merge branch 'main' into niri-blur 2026-02-27 11:50:54 -05:00
Henry Riehl cdf8bb85c5 Merge branch 'main' into fix-launcher-scrolling-interrupt 2026-02-27 13:41:22 +00:00
Henry Riehl e751ba7442 review 2026-02-27 13:38:33 +00:00
Lemmy 85467d7f79 autofmt 2026-02-27 08:22:21 -05:00
Lemmy 17695e4e0b gitignore: updated 2026-02-27 08:22:15 -05:00
Lemmy 72cc11f98c Merge pull request #1986 from tibssy/fix/notification-history-expansion
fix(notifications): prevent expansion of non-expandable items in history
2026-02-26 22:43:15 -05:00
tibssy 63d117d13e fix(notifications): prevent expansion of non-expandable items in history 2026-02-27 01:08:37 +00:00
Lemmy 28dc8229b7 i18n-update 2026-02-26 13:52:56 -05:00
Lemmy 46136c2bd6 merge main -> niri-blur 2026-02-26 13:52:36 -05:00
cbxcvl fca7e360ab fix(bluetooth): remove redundant auto-trust Instantiator
The pairing script already calls `bluetoothctl trust` after a successful
pair, so the `!modelData.trusted` condition was never true.
2026-02-26 14:49:59 -03:00
Lysec 49e1642830 Merge pull request #1941 from tmarti2/fix-notification-hovering
Fix notification hovering not working on content/close button
2026-02-26 16:25:51 +01:00
Lemmy b9812ecf47 Merge branch 'niri-blur' of github.com:noctalia-dev/noctalia-shell into niri-blur 2026-02-26 07:42:57 -05:00
Lemmy c4e637b756 tootlip: use effectiveDirection 2026-02-26 07:42:54 -05:00
Lysec 5137c5efca Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-26 04:13:58 +01:00
Lysec c172f2f3de Assets: remove systemd folder 2026-02-26 04:13:54 +01:00
Lysec cd37e20ed6 Assets: remove systemd folder 2026-02-26 04:11:07 +01:00
cbxcvl 470b61f4e1 feat(bluetooth): auto-connect paired & trusted devices with toggle control
Adds automatic reconnection of paired and trusted Bluetooth devices
when Bluetooth is enabled or when the shell starts. The feature is
fully toggleable ON/OFF from three places:

- Settings > Connections > Bluetooth (persistent NToggle)
- Bluetooth Panel quick toggle (NIconButton in header)
- IPC commands: toggleAutoConnect, enableAutoConnect, disableAutoConnect

Changes:
- New setting: bluetoothAutoConnect (default: true)
- Auto-trust devices upon pairing via Instantiator/Connections watcher
- 2s delay after BT enable to allow adapter initialization
- Respects airplane mode
- Toast notification when auto-connect fires
2026-02-25 23:50:16 -03:00
Lysec 196e071d71 Settings/GeneralTab: add Documentation button 2026-02-26 03:12:40 +01:00
Lemmy 7dc28fbd1a smart-panel: boolean to disable blur + SessionMenu modifications: disable fullscreen blur, change a few colors. 2026-02-25 19:41:46 -05:00
Lemmy 4e3c385d7e background-effect/blur: updated usage to match noctalia-qs 2026-02-25 18:58:50 -05:00
Lysec 5919996bf6 SettingsPanelWindow: keep transparency on separate window setting 2026-02-25 23:13:45 +01:00
Lemmy a72ba39672 settings: reduced padding between entries in the sidebar to accomodate more tabs 2026-02-25 13:55:38 -05:00
Lemmy 2e43e5348e Merge pull request #1974 from bokicoder/main
update flake to use noctalia-qs
2026-02-25 11:43:23 -05:00
wxlyyy 45d215c938 update flake to use noctalia-qs 2026-02-26 00:22:53 +08:00
Thibault Martin 0daeed81ff Use HoverHandler to manage notif hovering 2026-02-25 16:18:43 +01:00
Thibault Martin 314ac2c999 Move Notif content inside a sub item with the right size 2026-02-25 16:18:43 +01:00
Thibault Martin d242a326be Fix hovering not working on compact density 2026-02-25 16:10:51 +01:00
Thibault Martin ce3b014bff Fix notification hovering not working on content/close button 2026-02-25 16:10:51 +01:00
Lemmy 73ae2c4e96 i18n-update 2026-02-25 08:50:42 -05:00
Lemmy bc34f550f3 Merge pull request #1945 from emrecancorapci/add-bar-padding-setting
Add configurable outer padding for bar
2026-02-25 08:49:57 -05:00
Lemmy cca156e3a3 autofmt 2026-02-25 08:48:22 -05:00
Lemmy 3044a09dad Merge pull request #1963 from tmarti2/use-ncolorchoice-in-workspace-settings
Use NColorCoice for workspace widget settings
2026-02-25 08:47:06 -05:00
Lemmy 26203a32db brightness: reduced debounce to 33ms for non DDC monitors. Fix #1965 2026-02-25 08:45:27 -05:00
Lysec b2ab1c45ce Volume/MicrophoneSettings: adjust i18n key 2026-02-25 14:23:23 +01:00
Lysec f5ad38234b Merge pull request #1952 from tmarti2/notification-close-margin
Increase notification close button margin
2026-02-25 13:40:01 +01:00
Lysec 83a1edd648 Merge pull request #1973 from Aitor42/main
Allow password input from monitors without active lockscreen
2026-02-25 13:38:48 +01:00
Lysec 9d447e9bf7 i18n 2026-02-25 13:36:12 +01:00
Lysec 795e93288b Revert "TrayMenu: use live menu model for dynamic tray state (#1957)"
This reverts commit 5b359d2ae9.
2026-02-25 13:29:21 +01:00
Thibault Martin 6589fa237e Show reset button on pill size setting 2026-02-25 13:28:57 +01:00
Aitor b27bbe3d4b readd register and unregister 2026-02-25 13:25:37 +01:00
Lysec 51f4243067 i18n 2026-02-25 13:22:32 +01:00
Lysec 5a0c13dd4c VolumesSubTab: add option to change volume change audio feedback sound 2026-02-25 13:19:38 +01:00
Lysec 2ad2462858 Plugins: 3rd party repo plugins open gh repo instead of noctalia.dev 2026-02-25 13:06:19 +01:00
Lysec 777395325f Merge pull request #1971 from 01micko/labwc-osd
Update labwc.conf osd bg color
2026-02-25 12:30:51 +01:00
micko b85cbc6577 Update labwc.conf osd bg color 2026-02-25 21:11:41 +10:00
Aitor a589506da3 Allow password input from monitors without LockScreen 2026-02-25 09:16:58 +01:00
Thibault Martin a7ac971a6e Same changes for workspaces groups 2026-02-25 09:01:37 +01:00
Krendil 43f2ac2737 Merge remote-tracking branch 'upstream/main' 2026-02-25 15:23:25 +10:00
Pulsar33550336 acb84b36a0 feat(Bar/MediaMini): add mouse side button control 2026-02-25 10:01:50 +08:00
Lemmy fe8e23f1d0 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-24 19:32:22 -05:00
Lemmy ce4be173a9 settings: when changed externally refresh bar widgets, fix #1925 2026-02-24 19:32:20 -05:00
Lemmy b1f751e556 settings: when changed externally refresh bar widgets 2026-02-24 19:31:05 -05:00
Lemmy 07be43462f autofmt 2026-02-24 19:13:47 -05:00
Lemmy 2704ef2d1d bar-launcher: added icon customization (similar to control-center) fix #1897 2026-02-24 19:13:37 -05:00
Thibault Martin ad5dd56728 Use NColorCoice for workspace widget settings 2026-02-25 00:21:06 +01:00
Lysec a6a4225a93 AudioService: use event driven update logic, fall back to wpctl for stale volume 2026-02-24 22:36:31 +01:00
Lysec 5b359d2ae9 TrayMenu: use live menu model for dynamic tray state (#1957) 2026-02-24 21:33:37 +01:00
Lysec 237845c65e LockScreen: add capslock indicator (closes #1960) 2026-02-24 21:24:23 +01:00
Lysec a0ac3750c3 Merge pull request #1959 from linuxmobile/helix-template
Templates: improve helix highlights
2026-02-24 17:40:00 +01:00
Braian A. Diez 837b79ff76 Templates: improve helix highlights
Signed-off-by: Braian A. Diez <bdiez19@gmail.com>
2026-02-24 13:29:55 -03:00
Lemmy c13db3635c clipboard: prevent restart spin loop of watchers. Fix #1954 2026-02-24 09:09:17 -05:00
Lemmy f7c156a509 settings: added missing "Settings panel" translation 2026-02-24 08:57:42 -05:00
Lemmy 99021b5304 settings: added missing "Settings panel" translation 2026-02-24 08:54:36 -05:00
Lemmy eccd76a318 Merge branch 'main' into niri-blur 2026-02-24 08:48:06 -05:00
Lemmy ad4bda1072 settings: more blur goodness - no more 75% transparency detection for the sidebar. 2026-02-24 08:47:53 -05:00
Lemmy c8d98f7901 i18n-hu 2026-02-24 08:31:57 -05:00
Lemmy e0d8ead79c i18n-italian: after fixes and refresh from i18n platform 2026-02-24 08:31:47 -05:00
Lemmy 8572ac598b Merge pull request #1940 from ToRvaLDz/feat/i18n-italian-translation
feat(i18n): add complete Italian translation and enable it as selectable locale
2026-02-24 08:22:31 -05:00
Lemmy e6b3996243 network: cleaning up duplicate settings and simplifying logic 2026-02-24 08:11:51 -05:00
Lemmy 40b299f94b ncolorpickerdialog: live mode 2026-02-24 07:59:12 -05:00
Alexander Nabokikh 4227ca71f5 fix(notifications): reordering root.close and invokeAction 2026-02-24 13:52:56 +01:00
Alexander Nabokikh 0fad4c5f1f feat(notifications): focus sender window on click in notification history 2026-02-24 13:34:13 +01:00
Thibault Martin 864023f1d7 Increase notification close button margin 2026-02-24 09:56:26 +01:00
Emre Can 4e3065822e Merge branch 'main' into add-bar-padding-setting 2026-02-24 03:24:16 +03:00
Lemmy 90e44d6edd autofmt 2026-02-23 13:54:29 -05:00
Lemmy 3f8f4156f8 brightness: fix OSD showing on every settings update. 2026-02-23 13:54:23 -05:00
Emre Can Çorapçı 1e68861fb6 chore: add translations for padding setting 2026-02-23 21:08:56 +03:00
Emre Can Çorapçı d1100bd03d feat: add padding setting for the bar 2026-02-23 21:07:38 +03:00
Florian Boulay 1e7db6c325 Fix: Khal event lasting multiple days
Multiple days events are now displayed only once. This fix is also
compatible with a previous fix, which was meant to deal with recurring
events.

fix #1908
2026-02-23 17:37:39 +01:00
Lemmy df8d93564f merge 2026-02-23 08:33:30 -05:00
Lemmy 88826b40f8 Merge branch 'main' into idle 2026-02-23 08:26:41 -05:00
Lysec 17760955ac Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-23 14:10:51 +01:00
Lysec b1de75bcae i18n 2026-02-23 14:10:46 +01:00
Lysec 716c3574a6 Merge pull request #1933 from notiant/patch-10
DockMenu: layout adjustments
2026-02-23 10:07:16 +01:00
Marco Migozzi 57bd9f9c99 feat(i18n): add full Italian locale support and enable it in language selector
This commit introduces complete Italian localization for Noctalia shell and wires the locale into the runtime language list.

Changes included:
- Added new translation file: Assets/Translations/it.json
- Localized the full string tree used by the shell UI, including:
  - common labels and shared terms
  - bar and widget settings
  - launcher, lock screen, notifications, wallpaper, weather, setup, tooltips
  - all settings panels and sub-panels (audio, display, dock, plugins, user interface, hooks, OSD, desktop widgets, color scheme, etc.)
- Preserved all runtime placeholders and markup tokens (e.g. {count}, {name}, <br>, <i>, <b>, )
- Enabled Italian in the language registry by updating Commons/I18n.qml availableLanguages

Validation and consistency checks:
- Verified JSON validity of Assets/Translations/it.json
- Verified placeholder parity against English source to avoid interpolation regressions
- Ensured translation key structure matches en.json so fallback behavior remains intact

Result:
- Italian (it) is now selectable from Region settings and loads as a first-class locale.
2026-02-23 09:26:03 +01:00
Lysec 3495b165c0 Merge pull request #1899 from yuzujr/feat/add-setting-display-backlight
feat(brightness): add per-output backlight device mapping with default fallback
2026-02-23 08:09:57 +01:00
Lysec a8dfb46cb5 Merge pull request #1922 from turannul/downstream-main
tiny typo
2026-02-23 08:06:32 +01:00
Lysec a05927ed89 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-23 08:00:34 +01:00
Lysec 02938a09ca HostService: fallback to /etc/conf.d/hostname for distros like gentoo 2026-02-23 08:00:31 +01:00
Lysec be38aafde4 Merge pull request #1927 from AlexNabokikh/1926
fix(1926): cache notification icons
2026-02-23 07:58:49 +01:00
Lysec d39ac05d3f Merge pull request #1929 from notiant/patch-8
Fix border clipping for tooltips and dock
2026-02-23 07:54:46 +01:00
Lysec 3f61c16dc9 Merge pull request #1930 from notiant/patch-9
CustomButton: prevent long delay for tooltip
2026-02-23 07:52:24 +01:00
Lysec 81b08fc0e6 IPCService: add lock call (implements #1935) 2026-02-23 07:44:17 +01:00
notiant fe0c7a4f6a adjust dock peek area length 2026-02-23 07:17:00 +01:00
Krendil 288b2e0a1d fix(Launcher): Allow item images to take advantage of preferredGridCellRatio 2026-02-23 13:19:24 +10:00
Lemmy bceeb98941 template-processor: pass wallpaper path for predefined color schemes too. 2026-02-22 22:00:36 -05:00
Lemmy 5043d0739a i18n-update 2026-02-22 21:43:06 -05:00
Lemmy 78c00f24e0 i18n-update 2026-02-22 21:42:47 -05:00
Lemmy a12de93d40 idle: added support for custom commands 2026-02-22 21:30:28 -05:00
Lemmy 90ae42bda2 Merge branch 'main' into idle 2026-02-22 20:42:54 -05:00
Lemmy aa512a4096 i18n-update 2026-02-22 19:03:02 -05:00
notiant d6d5bcd84e Update Dock.qml 2026-02-22 21:30:45 +01:00
notiant 9e30a6112b DockMenu: layout adjustments 2026-02-22 20:55:25 +01:00
Lysec 243d408019 Merge pull request #1931 from HANDZCZ/fix-control-center-position
fix(control-center): prevent panel being stuck in one position
2026-02-22 16:58:51 +01:00
notiant c347563a34 CustomButton: prevent long delay for tooltip 2026-02-22 16:18:13 +01:00
HANDZCZ 9f9d3a44af fix(control-center): prevent panel being stuck in one position 2026-02-22 15:52:47 +01:00
notiant 88c715427d Fix border clipping for tooltips and dock 2026-02-22 15:08:32 +01:00
Alexander Nabokikh fa090313ec fix(1926): cache notification icons 2026-02-22 14:12:50 +01:00
Lysec 76a58bcd61 Merge pull request #1924 from tmarti2/fix-session-menu-grid-initial-press
Fix Grid SessionMenu right/down press when nothing is selected
2026-02-22 11:42:17 +01:00
Thibault Martin df0dceae06 Fix Grid SessionMenu right/down press when nothing is selected 2026-02-22 10:25:55 +01:00
Thibault Martin 5c27c6739d Do not try to display the Session Menu if its empty 2026-02-22 10:25:55 +01:00
Turann_ 2f560763c4 tiny typo
Signed-off-by: Turann_ <turanull000@gmail.com>
2026-02-22 08:40:41 +03:00
Lemmy 341c5ee138 ncolorchoice: fix default setting and indicator 2026-02-21 22:51:20 -05:00
Lemmy d678db7d52 autofmt 2026-02-21 22:08:16 -05:00
Lemmy dd6acb6dd8 i18n-update 2026-02-21 22:08:02 -05:00
Lemmy 03644db842 idle: i18n cleanup 2026-02-21 22:06:35 -05:00
Lemmy cc50b59d63 idle: added fade out before action to serve as a warning for the user and grace period 2026-02-21 22:01:41 -05:00
Lemmy cba199edab autofmt 2026-02-21 21:13:06 -05:00
Lemmy 9ee707d300 idle-management 2026-02-21 21:11:50 -05:00
Lysec d709779c51 i18n: add en translation for panels.desktop-widgets.cpu-intensive-note 2026-02-22 02:22:52 +01:00
Lysec d9a37187c8 DesktopWidgetsTab: add toggle to show/hide widgets in overview 2026-02-22 02:20:13 +01:00
Lemmy 835d632e57 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-21 11:08:26 -05:00
Lysec 198a9f740d Merge pull request #1913 from tibssy/fix/dock-alignment-and-triggers
Fix/dock alignment and triggers
2026-02-21 14:15:24 +01:00
Lysec 1f84b3835b AudioService: add wpctl fallback for default sink volume/mute sync (#1911) 2026-02-21 13:54:33 +01:00
Lemmy 141ba96027 nbattery: increase width of graphical battery when at 100% 2026-02-20 23:59:32 -05:00
Lemmy bd0d8687cd Merge branch 'main' into niri-blur 2026-02-20 23:32:03 -05:00
Lemmy f240a7ca2c i18n: fix leading space in "Font Scale" + update 2026-02-20 21:29:36 -05:00
Lemmy 2911fd07a5 Merge pull request #1917 from tibssy/fix/bar-settings-organization
style(settings): group bar opacity toggle and slider for better UX
2026-02-20 21:13:55 -05:00
Lemmy 45120caaf6 lockscreen: fix warning when accessing lockSurface.screen.name 2026-02-20 21:13:01 -05:00
Lemmy db56321f54 layout: more double margins implementations 2026-02-20 21:11:06 -05:00
Lemmy b36bef4cc0 layout: implement double margin (e.g. Style.margin2M) instead of what PR #1408 did. 2026-02-20 21:01:35 -05:00
tibssy 6a83ab48da style(settings): group bar opacity toggle and slider for better UX 2026-02-21 01:53:58 +00:00
tibssy 927edbaebe fix(workspace): 'Previous workspace doesn't exist' warning on hyprland single workspace 2026-02-21 01:03:24 +00:00
tibssy 948c3f2e72 feat(bar-scroll-actions): add wrap-around option for bar mouse wheel workspace scrolling 2026-02-21 01:03:24 +00:00
tibssy 9c3d8434e5 feat(bar-scroll-actions): add reverse scroll setting for bar mouse wheel actions 2026-02-21 01:03:24 +00:00
tibssy 6a16e43298 feat(bar-scroll-actions): implement Niri content scrolling for mouse wheel action 2026-02-21 01:03:24 +00:00
tibssy 41c383d89b feat(bar-scroll-actions): refactor mouse wheel action setting to use a combobox 2026-02-21 01:02:58 +00:00
tibssy 8032978b2d feat(bar-scroll-actions) implement workspace switching by scrolling on empty bar areas 2026-02-21 00:58:42 +00:00
tibssy 52e720d54a feat(bar-scroll-actions) prepare bar settings UI for workspace scroll toggle. 2026-02-21 00:58:25 +00:00
Lemmy 8885be678c i18n-update 2026-02-20 19:54:41 -05:00
Lemmy 75e8444051 autofmt 2026-02-20 19:53:39 -05:00
Lemmy 01c5103f36 bar: added control for font scale 2026-02-20 19:53:34 -05:00
Lemmy 6b9550e763 Merge pull request #1611 from bryanm1529/feat/notification-action-ipc
notifications: add IPC functions for action invocation
2026-02-20 19:01:32 -05:00
Lemmy adbb178895 i18n-update 2026-02-20 18:53:39 -05:00
Lemmy e5863eaebd bar: reordering widget spacing slider 2026-02-20 18:53:34 -05:00
Lemmy ff2c3df829 Merge pull request #1806 from dudujerry452/features/bar-display-on-workspace-change
Features/bar display on workspace change
2026-02-20 18:51:09 -05:00
Lemmy bdd1c36e44 Merge pull request #1842 from Cleboost/feat/relative-wallpaper
feat(wallpaper): support relative paths in favorites configuration
2026-02-20 18:48:57 -05:00
Lemmy 6ea93d682f Merge pull request #1844 from Cleboost/feat/bar-widget-spacing
feat(bar): add widget spacing setting
2026-02-20 18:48:14 -05:00
Lemmy 6602f860f2 i18n cleanup 2026-02-20 18:46:48 -05:00
Lemmy 5b10bee137 Merge pull request #1880 from notiant/patch-5
CustomButton: add translation for tooltips
2026-02-20 18:43:06 -05:00
Lemmy 16be413a75 Merge pull request #1891 from iynaix/plugin-reinstall
Fix reinstalling 3rd party plugins
2026-02-20 18:41:36 -05:00
Lemmy 976a1fd838 Merge pull request #1915 from tmarti2/add-settings-bar-widget
Add settings bar widget
2026-02-20 18:41:03 -05:00
Lemmy 95e57065e4 Merge pull request #1876 from notiant/patch-4
Adjust margins in BluetoothPanel & fix flickering issue in BluetoothSubTab
2026-02-20 18:36:47 -05:00
Thibault Martin fcd1de3981 Add a Settings widget 2026-02-21 00:24:49 +01:00
Thibault Martin d92dad5819 Use Color.resolveColorKey when possible 2026-02-21 00:04:06 +01:00
Lysec 22527b9039 NSectionEditor: make DesktopWidgetsTab d&d between sections 2026-02-20 21:06:30 +01:00
tibssy 3d8de77453 fix(dock): dynamically adjust tooltip direction based on dock position 2026-02-20 19:42:17 +00:00
tibssy a1aeeb116f fix(dock): adjust centering logic to account for bar dimensions and margins 2026-02-20 19:20:40 +00:00
tibssy 02bde2a90d fix(dock): ensure frame indicator correctly fills the trigger area 2026-02-20 19:12:04 +00:00
Lemmy bc38f0201f Merge branch 'main' into niri-blur 2026-02-20 13:27:14 -05:00
Lysec c6f4a6bc16 NSectionEditor: add drag & drop between sections 2026-02-20 18:41:55 +01:00
Lemmy 02d8d38742 Merge branch 'main' into niri-blur 2026-02-20 09:58:05 -05:00
Lemmy 487afcea42 dock: i18n-update 2026-02-20 09:57:56 -05:00
Lemmy 5fbcf870db dock: autofmt 2026-02-20 09:54:11 -05:00
Lemmy 9513d8441c bar-clock: fix detection if panel is open 2026-02-20 09:53:58 -05:00
Lysec 67fa0865a2 Merge pull request #1900 from Dadangdut33/dock-group-apps
Feat(dock): Add option to group same apps in dock
2026-02-20 15:23:29 +01:00
Fauzan F A 3e841942ed Merge branch 'main' into dock-group-apps 2026-02-20 21:06:35 +07:00
Lysec adf888e0c1 Merge pull request #1905 from tibssy/feat/dock-refinements
Feat/dock refinements
2026-02-20 12:29:39 +01:00
Lysec 09b6d48228 Merge pull request #1909 from AlexNabokikh/1771
fix(1771): start clipboard watchers at shell boot instead of first la…
2026-02-20 12:27:27 +01:00
Lysec 04fe24a08c Merge pull request #1835 from CLEMENTINATOR/display-cc-on-right-click-pos
control-center: open at right-click position on bar
2026-02-20 12:23:56 +01:00
Alexander Nabokikh c7c4394eed fix(1771): start clipboard watchers at shell boot instead of first launcher open 2026-02-20 10:21:57 +01:00
tibssy 3ad4ac1b88 fix(dock): adjust dock peek window size to match dock length and screen minimum 2026-02-20 04:47:39 +00:00
tibssy 6aea22ef25 fix(dock): isolate dock launcher color setting in dock appearance tab 2026-02-20 04:47:39 +00:00
tibssy 022d6d33da feat(dock): prevent opening empty static dock panel 2026-02-20 04:47:39 +00:00
tibssy c192d248e0 feat(dock): static dock frame indicator sizing with launcher icon 2026-02-20 04:47:39 +00:00
Lemmy e579e6376c blur: added closing panel and extra framed bar region (wip) 2026-02-19 22:43:55 -05:00
Lemmy 7ac7075fb2 Merge branch 'main' into niri-blur 2026-02-19 21:53:25 -05:00
Lemmy 8eef8ef71d i18n-update 2026-02-19 21:32:51 -05:00
Lemmy 3541ae9548 widgets: add a way to show cpu intensive ones 2026-02-19 21:30:19 -05:00
Lemmy a479984555 i18n-update 2026-02-19 20:45:23 -05:00
Lemmy 5fae6b7b95 desktop-sysmon: fix interval var. 2026-02-19 20:42:47 -05:00
Lemmy b98392afa0 sys-stat: cpu usage and temp at 1Hz (from 3Hz) 2026-02-19 20:40:39 -05:00
Lemmy 3921c39c0e autofmt 2026-02-19 20:31:05 -05:00
Lemmy 795b49392f bar-sysmon: removed animations that are costly on the cpu. ensure the shell stays at 0% cpu on idle. 2026-02-19 20:30:58 -05:00
Lemmy ac6b622c3e Merge branch 'main' into niri-blur 2026-02-19 18:26:38 -05:00
Lemmy 1f4d787878 Merge pull request #1890 from MachXNU/millennium-theming
[Steam] added template + entry in the settings menu
2026-02-19 17:21:29 -05:00
yuzujr 42c52995ea fix setting search highlight the invisible "Backlight device" label, skip invisible label 2026-02-20 00:32:47 +08:00
Dadangdut33 6a7c68c6e3 feat: implement group the same apps in dock with configurable settings 2026-02-19 23:30:24 +07:00
Dadangdut33 98a7f2f7cb feat: add settings for goruped dock 2026-02-19 23:29:33 +07:00
yuzujr 2aa9a61f9f add missing files 2026-02-20 00:15:32 +08:00
yuzujr 1d4c6418c9 feat: add setting, map between monitor and backlight device 2026-02-19 23:55:51 +08:00
Lemmy 1426b1843d Merge branch 'main' into niri-blur 2026-02-19 10:39:52 -05:00
Lemmy 9c47ce03f2 clipboard: limit image decoded in memory 2026-02-19 10:12:09 -05:00
Lemmy 5340c1a3a2 autofmt 2026-02-19 10:02:56 -05:00
Lemmy 628e4cbc2d cava: avoid reallocation on every frame 2026-02-19 10:02:48 -05:00
Lysec 9beeb52508 Merge pull request #1892 from tibssy/feat/dock-launcher-icon
Feat/dock launcher icon
2026-02-19 12:08:59 +01:00
Lysec 3c3a8a2823 Merge pull request #1894 from notiant/patch-7
Small adjustments to GTK theme
2026-02-19 08:40:22 +01:00
notiant 3bd3eccb77 small adjustments to GTK theme 2026-02-19 07:42:37 +01:00
tibssy ff4da5d2b9 feat(dock): implement context menu for launcher icon and improve screen handling 2026-02-19 04:28:36 +00:00
Lin Xianyi f7b3035ce5 PluginService: Do not include hash in plugin ID when reinstalling 3rd party plugins 2026-02-19 12:14:25 +08:00
tibssy 6c555770cd feat(dock): implement application launcher icon with configurable position 2026-02-19 03:33:38 +00:00
tibssy ceda3dfd43 feat(settings): add dock launcher icon toggle option 2026-02-19 02:43:34 +00:00
Jb 2c24f2d375 [Steam] added template + entry in the settings menu 2026-02-18 21:23:36 +01:00
Lemmy cb77a08243 nbutton: border color match bg when hovered 2026-02-18 14:47:28 -05:00
Lemmy 5e6fe22928 lockscreen: fix hover colors (let the default do their job) 2026-02-18 14:38:14 -05:00
Lemmy 5d5ea8c335 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-18 14:37:57 -05:00
Lemmy 5937539a13 settings: fix show changelog with "separate window" 2026-02-18 14:37:54 -05:00
Lysec 1bd9801158 Templates/gtk: split into gtk3 and gtk4 to prevent warning 2026-02-18 20:30:37 +01:00
Clement Bouvet d64f58a5b1 lock screen: add option for media controls 2026-02-18 19:59:36 +01:00
Lysec 11056f365a Merge pull request #1873 from MachXNU/GTK4-theming-fix
GTK4 Theming fixed
2026-02-18 19:52:15 +01:00
Lysec dc268aec7a Merge pull request #1874 from 01micko/labwc-theme
Add labwc theme template
2026-02-18 19:43:54 +01:00
Lysec e6e969fa9d SwayService: cleanup 2026-02-18 19:42:13 +01:00
Lysec a941a39523 Merge pull request #1878 from yuzujr/fix/sway-active-window-update
fix(active-window): not updating when window title change on Sway/Scroll
2026-02-18 19:41:04 +01:00
notiant 9743246f4f re-add Math.round where necessary 2026-02-18 19:13:58 +01:00
Lemmy 794ea9efce settings: improve support of "Separate window" mode 2026-02-18 12:58:31 -05:00
Lemmy 04589a4f58 Merge pull request #1877 from Soulful-Sailer/main
Add loginctl to default Reboot to UEFI
2026-02-18 12:06:11 -05:00
notiant a1b1f74d9b Merge branch 'main' into patch-5 2026-02-18 18:01:52 +01:00
notiant 9c1b0e4af9 fix missing I18n function 2026-02-18 18:00:07 +01:00
Clement Bouvet cf29e898fc control-center: open at right-click position on bar 2026-02-18 17:44:45 +01:00
Lysec abfcbd3a54 LockScreenTab: add AppearanceSubTab, reorganize things 2026-02-18 17:14:55 +01:00
Lysec 5fc0634af3 Merge pull request #1847 from tmarti2/lockscreen-password-animation-and-icons
Lockscreen password animation and icons
2026-02-18 17:02:52 +01:00
Lysec ffd204ddf7 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-18 16:51:08 +01:00
Lysec ac76ccce31 SessionMenuEntrySettingsDialog: don't force modifier for keybind 2026-02-18 16:51:06 +01:00
Lysec ae66ce169a SessionMenuEntrySettingsDialog: don't force modifier for keybind 2026-02-18 16:50:45 +01:00
Lemmy c3d9d5f608 autofmat 2026-02-18 10:50:07 -05:00
Lemmy 07b525a02d nlistview: disable wheel if nothing to scroll 2026-02-18 10:50:01 -05:00
Lemmy 611e001003 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-18 09:59:16 -05:00
Lemmy 262f7c5db7 i18n-update 2026-02-18 09:59:13 -05:00
Lysec d2d9093d05 Merge pull request #1883 from AlexNabokikh/1882
fix(#1882): resolve notification popup actions failing to invoke
2026-02-18 15:58:22 +01:00
Lemmy e38000fa88 Merge pull request #1884 from tmarti2/improve-default-reset-settings
Improve default/reset slider
2026-02-18 09:55:44 -05:00
Alexander Nabokikh d2b9cd9d5a fix(#1882): show sender window with default actions 2026-02-18 15:03:29 +01:00
Alexander Nabokikh 5cbcb0b602 fix(#1882): fix animations 2026-02-18 14:35:37 +01:00
Thibault Martin b54971e971 Add showReset to NValueSlider to factorize the code 2026-02-18 14:35:04 +01:00
Lysec 7e9694c4dc ProgramCheckerService: move bluetoothctl check from BluetoothService here 2026-02-18 14:24:29 +01:00
Lysec a3853caf1c BluetoothService: add one time check for bluetoothctl 2026-02-18 13:47:22 +01:00
Alexander Nabokikh 6303f01529 fix(#1882): resolve notification popup actions failing to invoke 2026-02-18 11:48:03 +01:00
notiant d4b64ac343 CustomButton: add translation for tooltips 2026-02-18 09:25:03 +01:00
Thibault Martin 4cbf449ce6 Use default value to reset options 2026-02-18 09:05:50 +01:00
yuzujr f313faf7e5 fix(active-window): not updating when window title change on Sway/Scroll 2026-02-18 15:55:54 +08:00
Thibault Martin a649274a64 Option to display cute icons instead of just circles 2026-02-18 08:29:24 +01:00
Thibault Martin 15ccba1c8b Improve Password input style 2026-02-18 08:29:23 +01:00
Thibault Martin d0608b1a34 Add a small animation on password icon in lockscreen 2026-02-18 08:29:23 +01:00
Soulful Sailer 5fae2b8c07 Add loginctl to default Reboot to UEFI 2026-02-17 22:14:04 -06:00
notiant aabd28e40a adjust margins in BluetoothPanel & fix flickering issue in BluetoothSubTab 2026-02-18 05:06:17 +01:00
01micko 370b660514 Add labwc theme 2026-02-18 12:50:49 +10:00
Lemmy e0293e2666 reboot-uefi: proper settings and default 2026-02-17 21:15:35 -05:00
Lemmy 2eacfca3a9 bump version to 4.5.1-git 2026-02-17 19:38:41 -05:00
Lemmy dbfe3634df Release v4.5.0 2026-02-17 19:38:11 -05:00
Lysec b5c791253d Brightess: adjust settings access 2026-02-18 01:32:45 +01:00
Lemmy 64109296dd brightness cleanup 2026-02-17 19:15:42 -05:00
Jb 0c731b381e GTK4 Theming fixed 2026-02-17 22:52:23 +01:00
Lysec 96f4168db7 Merge pull request #1868 from notiant/patch-3
ControlCenter: add Airplane Mode widget
2026-02-17 22:39:54 +01:00
Lemmy 9ae8f17ffe wallpaper: reverting to the usual battle tested implementation 2026-02-17 15:30:17 -05:00
Lemmy 2ba86f4eb6 bt: autofmt 2026-02-17 15:05:09 -05:00
Lemmy 7287cd91fb wallpaper: getMaxCacheSizeForOrientation 2026-02-17 15:05:00 -05:00
notiant f81a36a299 Merge branch 'main' into patch-3 2026-02-17 20:45:17 +01:00
Lemmy 1982222e15 Merge pull request #1848 from turannul/pr/bluetooth-pin-fix
Bluetooth pairing pin support
2026-02-17 14:25:49 -05:00
Lemmy e2774a76f6 Merge pull request #1872 from tibssy/fix/notification-span-sanitization
fix(notifications): sanitize notification text by removing unknown ta…
2026-02-17 14:25:10 -05:00
Turann_ 3a97a09279 help needed 2026-02-17 22:05:01 +03:00
Turann_ 21bc732515 Thanks to UI you can't send empty pin even if you wanted to. 2026-02-17 22:04:49 +03:00
Turann_ 01d286a4ac v0.0.2: Add additonal time if device not found at first sight.
flush messages.
2026-02-17 21:06:00 +03:00
tibssy 604f709ad6 fix(notifications): sanitize notification text by removing unknown tags so attribute noise doesn’t appear in rendered messages 2026-02-17 15:21:14 +00:00
Lysec c2629c3c2f Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-17 15:56:46 +01:00
Lysec 7b536c74cf BrightnessWidget: add global brightness toggle (#1865) 2026-02-17 15:56:41 +01:00
Lemmy 232303200a background: attempt at saving a bit of VRAM - marginal gains due to Qt caching. 2026-02-17 09:27:18 -05:00
Lemmy df94ec485e i18n-update 2026-02-17 08:41:00 -05:00
Lemmy a1437ee04e dock-static: fixed invalid bindings 2026-02-17 08:39:03 -05:00
Lysec 7c210ef00e Merge pull request #1870 from lonerOrz/bar-cb-tooltip
fix(cc-cb): saveSettings accessible from Repeater delegate
2026-02-17 10:29:21 +01:00
loner 266503da34 qmlfmt 2026-02-17 17:24:58 +08:00
loner 896ddbec12 feat: Add default fields for CustomButton widget 2026-02-17 17:22:04 +08:00
loner 451e844944 feat(bar-cb): add custom tooltip option to CustomButton widget 2026-02-17 17:21:59 +08:00
loner 201eb7f8d0 fix(cc-cb): add showExecTooltip option and fix tooltip logic 2026-02-17 17:21:55 +08:00
loner b889dadd65 fix(cc-cb): saveSettings accessible from Repeater delegate 2026-02-17 17:21:51 +08:00
notiant fe37f56216 improve CustomButtonSettings layout 2026-02-17 02:12:19 +01:00
notiant 926dbd5265 ControlCenter: add Airplane Mode widget 2026-02-17 01:36:28 +01:00
Lysec c33db6b999 Merge pull request #1863 from lonerOrz/cb-tooltip
feat: add separate tooltips toggles for custom button widget
2026-02-16 20:22:39 +01:00
loner 6b1e965775 fix I18n 2026-02-17 03:21:36 +08:00
loner 065d4cbd92 fix tr 2026-02-17 03:16:25 +08:00
loner f92d2398ee fix: adjust tooltip logic and add i18n for default tooltip 2026-02-17 03:03:51 +08:00
loner b78de5c932 feat: add separate tooltips toggles for custom button widget 2026-02-17 03:03:47 +08:00
Lemmy 1ecbf4d771 bar: added override for display mode for other monitors 2026-02-16 13:22:02 -05:00
Lemmy 16d260a0b1 default-setting+db 2026-02-16 13:21:13 -05:00
Lysec f54615b035 autofmt 2026-02-16 19:20:06 +01:00
Lysec 07728d49e1 i18n 2026-02-16 19:19:40 +01:00
Lysec 3ad25944f6 Merge pull request #1714 from tibssy/feat/dock-static-mode
Feat/dock static mode
2026-02-16 19:06:20 +01:00
Lysec 79f540c88b Merge pull request #1861 from Gualidan/main
Shorten Translation
2026-02-16 19:04:12 +01:00
Lysec c1c97fe1d8 GeneralTab: move reverse scrolling toggle inside basics subtab 2026-02-16 18:48:21 +01:00
Gualidan 202d9d9306 Merge branch 'noctalia-dev:main' into main 2026-02-16 18:22:34 +01:00
Gualidan 5512b219e6 Update en.json 2026-02-16 18:21:35 +01:00
Lemmy 181da4d3d0 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-16 12:02:51 -05:00
Lemmy b8b5832d29 i18n-update 2026-02-16 12:02:49 -05:00
Lysec 5fcca04138 Merge pull request #1857 from tmarti2/always-clear-notification-history-on-triggered
Always clear notification history on triggered
2026-02-16 17:41:59 +01:00
Thibault Martin 30b68b2843 Factorize action parsing a bit 2026-02-16 17:32:01 +01:00
Thibault Martin 5a8eb35133 Use Color.resolveColorKey 2026-02-16 17:32:01 +01:00
Thibault Martin c2b32e8416 New setting to clear notif from history when dismissed 2026-02-16 17:32:01 +01:00
Lysec 73254f892f Merge pull request #1859 from bokicoder/patch-1
Nix: fix type of systemd Unit.X-Restart-Triggers
2026-02-16 17:10:35 +01:00
Gualidan a227e24da5 Merge branch 'noctalia-dev:main' into main 2026-02-16 17:07:06 +01:00
Gualidan 5772bc5c9d Update en.json 2026-02-16 17:06:17 +01:00
Lemmy 079dd75dd7 autofmt 2026-02-16 10:20:18 -05:00
Lemmy 0e80e70a22 systemd: default to --no-duplicate 2026-02-16 10:20:08 -05:00
bokicoder 0d12b7a715 Nix: fix type of systemd Unit.X-Restart-Triggers 2026-02-16 22:50:02 +08:00
Lysec 9e363ceb3a Merge pull request #1856 from tibssy/feat/notification-markdown
Feat/notification markdown
2026-02-16 14:12:29 +01:00
tibssy e8b16a2d9a refactor(notifications): move markdown setting to history tab and improve history panel UI 2026-02-16 12:32:06 +00:00
tibssy 42ea6ee1e8 feat(notifications): add markdown sanitizer for notification history expansion to notification service 2026-02-16 12:32:06 +00:00
tibssy 49dd92aa12 feat(notifications): add markdown support and top-align icons when expanded 2026-02-16 12:32:06 +00:00
tibssy e77e884742 feat(notifications): add setting to enable markdown formatting 2026-02-16 12:32:06 +00:00
Lysec d1d0ff9862 Merge pull request #1854 from yuzujr/fix/notification-actions-animation-disabled
notification: fix action invoke when animations are disabled
2026-02-16 12:38:15 +01:00
Lysec a9de816c72 Merge pull request #1852 from kevichi7/fix/keyremove-keybind-mapping
Fix remove keybind matching in notification history
2026-02-16 10:26:07 +01:00
yuzujr fac91ecbfc notification: fix action invoke when animations are disabled 2026-02-16 17:05:44 +08:00
sima e5196284a5 Fix remove keybind matching in notification history 2026-02-16 13:13:56 +08:00
Lemmy 1dc00a1373 mango-mmsg: use spawn_shell instead of spawn 2026-02-15 19:32:10 -05:00
Turann_ d141e1e056 This toast is not required. 2026-02-16 01:21:49 +03:00
Turann_ f8d992a409 Update log types 2026-02-16 00:37:16 +03:00
Lemmy 147ea92d1b Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-15 16:23:47 -05:00
Lemmy af8300b410 bt: fix syntax 2026-02-15 16:23:44 -05:00
Turann_ ac0ee8d673 Update bluetooth-pair.py
Update bluetooth-pair.py

Update BluetoothService.qml
2026-02-16 00:18:35 +03:00
Lysec 82f2525cf0 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-15 22:17:13 +01:00
Lysec e2f79aed70 Keybinds: turn Keybinds.js to Keybinds.qml for external access 2026-02-15 22:17:08 +01:00
Lemmy 7315e7257a wifi-bt: more ui cleanup 2026-02-15 16:08:42 -05:00
Turann_ 5f1bc5c587 Update BluetoothService.qml 2026-02-15 23:16:19 +03:00
Turann_ cec63da638 Update bluetooth-pair.py 2026-02-15 23:16:19 +03:00
Turann_ 952df8bce4 Delete test-pin-mock.py 2026-02-15 22:55:18 +03:00
Cleboost 38f01891c2 style: qmlfmt format 2026-02-15 20:11:07 +01:00
Lysec 070c3b523c Notification: properly display/escape html tags 2026-02-15 16:53:00 +01:00
Lemmy 12b5dea5d1 i18n-sorting 2026-02-15 10:26:26 -05:00
Lemmy 2b5b4d30fb autofmt 2026-02-15 10:26:10 -05:00
Lemmy 2e05e63557 i18n: fix broken translations (missing comma) 2026-02-15 10:25:58 -05:00
Lemmy 727aafd6b1 ext-background-effect-v1 2026-02-15 10:18:20 -05:00
Lysec 085e9557ef Merge pull request #1676 from Fireye04/feature/reverse-scroll
Add reverse scroll toggle to Volume and Brightness
2026-02-15 15:59:51 +01:00
Lysec 3c933a4752 TemplateRegistry: adjust zen path for newer versions (keep legacy support) #1839 2026-02-15 15:22:32 +01:00
Cleboost 091bad1bb9 style: Convert tab indentation to space indentation for widget spacing translations in en.json. 2026-02-15 13:49:40 +01:00
Cleboost ef24b195ad feat(bar): add widget spacing setting 2026-02-15 13:47:07 +01:00
Cleboost cc6517d5db feat(wallpaper): support relative paths in favorites configuration 2026-02-15 12:16:49 +01:00
Lemmy 7c6596917c Merge pull request #1836 from notiant/patch-2
Proper fix for Airplane Mode
2026-02-14 21:15:14 -05:00
Lemmy 1952ac598c network+wifi-panels: fixes 2026-02-14 20:56:43 -05:00
Lemmy 04308481ed optim: disable desktop widgets when lockscreen is on 2026-02-14 20:23:54 -05:00
notiant db87f90313 proper fix for Airplane Mode 2026-02-15 00:18:36 +01:00
Lemmy 04df2d7342 wallpaper: when a monitor without wallpaper is detected try to apply the "most relevant" user's wallpaper. Fix #1826 2026-02-14 15:52:30 -05:00
Lysec cac5f298ea i18n 2026-02-14 21:35:10 +01:00
Henry Riehl 3ba93cdb7f fix launcher scrolling pin button interrupt 2026-02-14 20:07:15 +00:00
Lysec a39c94bd77 Merge pull request #1829 from Gualidan/RebootToUEFI
Implement Reboot To UEFI In settings
2026-02-14 21:01:35 +01:00
Gualidan e7c42456bb Update en.json 2026-02-14 20:59:30 +01:00
Lemmy fa5166ff1b tooltips.open-settings 2026-02-14 14:36:02 -05:00
Lemmy 6cb98974cb bt-net: commont != common 2026-02-14 14:28:01 -05:00
Gualidan 3a81509764 Update CompositorService.qml 2026-02-14 17:57:47 +01:00
Lemmy a132920391 NColorChoice: fix "none" 2026-02-14 11:49:47 -05:00
Lemmy 65a7c3189b NColorChoice: fix ActiveWindow and default props 2026-02-14 11:42:04 -05:00
Lemmy 591b4b34ed NColorChoice: minor adjustments + fix bar capsule color edge case 2026-02-14 11:38:57 -05:00
Lemmy d40f54295d i18n - nn-NO 2026-02-14 11:26:03 -05:00
Lemmy 24844839c5 Merge pull request #1827 from tmarti2/add-new-widget-color
Add A new widget for theme color choice
2026-02-14 11:25:00 -05:00
Thibault Martin 6a066c1727 Remove hover animation and fix border management 2026-02-14 17:05:49 +01:00
Lemmy 2ee1ef0896 Merge pull request #1831 from shouya/fix-khal-date-format
Support custom khal date format
2026-02-14 10:37:12 -05:00
Lemmy 92b19a8165 framed-bar: properly handle attachmentOverlap for the screen edges. 2026-02-14 10:26:23 -05:00
Gualidan 43b3aca29e Update SessionMenu.qml 2026-02-14 16:17:43 +01:00
Gualidan 9fcc3622aa Fix forgotten naming scheme change 2026-02-14 16:14:29 +01:00
shouya 590324995f use python script to load khal events 2026-02-15 00:01:47 +09:00
Gualidan c1c23fbeab Update Naming Scheme 2026-02-14 15:50:52 +01:00
Thibault Martin 29f9cb16df Add tooltips on colors for NColorChoice 2026-02-14 15:48:52 +01:00
Lemmy 0ae72e81fa Merge pull request #1813 from bokicoder/main
Launcher: add missing system icons
2026-02-14 09:45:34 -05:00
Lemmy 74b9915d5c Merge pull request #1830 from shouya/main
Fix recurrent event with khal calendar backend
2026-02-14 09:44:48 -05:00
Lemmy c038878152 settings+connections: unified the way to open the settings on a particular tab/subtab + QoL settings access for bt and wifi 2026-02-14 09:42:13 -05:00
Gualidan d8e1ace910 Reboot To UEFI in settings 2026-02-14 15:35:00 +01:00
Gualidan 8072bc68ac Fix to QS complaining about a name 2026-02-14 15:32:26 +01:00
Thibault Martin 188a537704 Use NColorChoice when possible 2026-02-14 15:01:50 +01:00
shouya 77c8289281 fix recurrent event on khal 2026-02-14 22:58:14 +09:00
Thibault Martin bf860df8ea Change NColorChoice default label and description 2026-02-14 14:30:34 +01:00
Thibault Martin 2f6bf06270 Make "none" defaultValue of NColorChoice 2026-02-14 14:18:45 +01:00
Thibault Martin 8e19db1ce5 Reduce default circle size 2026-02-14 14:15:03 +01:00
Gualidan 647fac7937 Reboot To UEFI Implementation 2026-02-14 13:55:00 +01:00
Gualidan 86403ff590 Implement Reboot To UEFI In settings 2026-02-14 13:54:11 +01:00
Lysec 0647a12e2e HyprlandService: properly track active window 2026-02-14 13:05:10 +01:00
Thibault Martin e31077ade3 Use NColorChoice for bluetooth widget 2026-02-14 13:01:31 +01:00
Thibault Martin 4ec2959f46 [Widgets] Add a new Color selector widget NColorChoice 2026-02-14 13:01:31 +01:00
wxlyyy dce44c5692 Launcher: add missing system icons 2026-02-14 14:57:08 +08:00
Lemmy 92612c09a9 i18n: remove wifi and bt description 2026-02-13 23:59:30 -05:00
Lemmy 3baa1f414f wifi: hiding airplane mode 2026-02-13 23:53:22 -05:00
Lemmy fb15e46ea3 btsubtab: better look 2026-02-13 23:52:52 -05:00
Lemmy 6b72fd2a5e connections: first cleanup 2026-02-13 23:42:20 -05:00
Lemmy 47324a9ef6 widgets: added icon support to NToggle/NLabel 2026-02-13 23:17:10 -05:00
Lemmy a96b5f3361 Merge pull request #1824 from turannul/pr/bluetooth-refactor-pt2
bluetooth refactor pt2
2026-02-13 22:44:26 -05:00
Lemmy eba90971bc Merge branch 'main' into pr/bluetooth-refactor-pt2 2026-02-13 22:44:18 -05:00
Lemmy 4fd35e8acd i18n-update: Connections strings 2026-02-13 22:19:45 -05:00
Lemmy 65fe773dc7 bar: fix last remnants of access to Settings.data.bar that would not respect screen overrides. 2026-02-13 22:19:16 -05:00
Lysec 385ecc3487 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-14 03:42:14 +01:00
Lysec f1cd4e18a6 MediaPlayerPanel: fix cava display issue 2026-02-14 03:42:10 +01:00
Lemmy 31233ef009 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-13 21:34:51 -05:00
Lemmy 08273f7462 mediaplayer-panel: properly fetch bar widget settings 2026-02-13 21:34:48 -05:00
Turann_ e388b0454c Merge branch 'main' into pr/bluetooth-refactor-pt2 2026-02-14 05:33:27 +03:00
Lysec b7f816bde9 Add translations to en 2026-02-14 03:16:12 +01:00
Lysec 0a83ce62a2 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-14 03:15:48 +01:00
Lysec 461545c05d SessionMenu: add option to hide keybinds 2026-02-14 03:15:09 +01:00
Lemmy 83d4efb424 i18n-update 2026-02-13 20:57:14 -05:00
Lysec 5ab600598d Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-14 02:36:36 +01:00
Lysec 38b616ba0a Launcher: remove redundant NIcopnTabButton 2026-02-14 02:35:57 +01:00
notiant a28ce1a859 fix container outlines in connections tab 2026-02-14 02:07:44 +01:00
Lemmy b0c8175cd9 Merge pull request #1821 from tibssy/fix/notification-history
fix(notifications): disable initial layout animations in notification…
2026-02-13 19:31:54 -05:00
tibssy 6f158506b1 fix(notifications): stabilize notification history layout during open 2026-02-14 00:13:45 +00:00
Fireye aeca5d1544 Add global reverse scroll toggle
Move reverse scroll to general settings

Replace workspace reverse scroll with global
2026-02-13 16:39:12 -07:00
Turann_ cdb67bc73c fix button
Signed-off-by: Turann_ <turanull000@gmail.com>
2026-02-14 02:33:14 +03:00
tibssy ffed90a0b2 fix(notifications): disable initial layout animations in notification history panel 2026-02-13 23:24:15 +00:00
Lemmy f08b1d5666 autofmt+settings db 2026-02-13 16:09:25 -05:00
Lemmy 50e2055028 Merge pull request #1743 from turannul/pr/bluetooth-refactor-pt1
Bluetooth Panel Rework pt1
2026-02-13 16:07:44 -05:00
Lemmy 004903133b NGraph: back to Shapes renderer to avoid intense CPU load. 2026-02-13 15:37:24 -05:00
Lemmy 1a75b0b3f2 system-stats: many optimizations, removed GUI settings to control polling as it's too risky, disable all when on the lockscreen. 2026-02-13 14:34:35 -05:00
Lemmy 8c776b5504 lockeys-service: added a component registration system to avoid polling when not necessary 2026-02-13 13:31:42 -05:00
Lemmy aa10b9791d cava: fixed cava running all the time 2026-02-13 13:12:35 -05:00
Lemmy f851f5df00 bar-sysmon: padding off by default 2026-02-13 10:18:12 -05:00
Lemmy ba5c7d88c0 i18n-update: keybinds and sysmon text padding 2026-02-13 09:05:17 -05:00
Lemmy 683a1680cc ipc: new bar setPosition 2026-02-13 09:02:48 -05:00
Lysec 63ca0aabb7 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-13 13:56:34 +01:00
Lysec 23ed3c9897 NotificationHistoryPanel: add keybind controls 2026-02-13 13:56:29 +01:00
Lysec 37f650d884 Keybinds: add remove keybind, force modifier (ctrl/alt) except for function keys 2026-02-13 12:53:44 +01:00
notiant 40c8224f5a check for airplane mode on startup 2026-02-13 08:16:54 +01:00
dudujerry b566bbe3c4 fix vscode tag switch false triggering 2026-02-13 14:08:48 +08:00
Lemmy 8c4a30406b systemstat: slightly boosted theoric network max speed (rx 1MB, tx 512K) to avoid intense autoscaling 2026-02-12 23:39:33 -05:00
Turann_ 33a59888de Attempt to fix tracking, strict toggles,menus if airplane mode or hardware disabled/broken
Stricter toggles.

hw (bluetooth) state polling.

Update BluetoothSubTab.qml

Disable toggles if airplane mode active.

ethernetprefs cancelled.
2026-02-13 07:29:28 +03:00
Lemmy d5276a6b1a bar-sysmon: removed Hz from cpu freq. 2026-02-12 23:28:06 -05:00
Lemmy 322d3875fe sysmon-settings: cleanup, reordering. do not save usePadding when switching bar orientation 2026-02-12 23:15:47 -05:00
Lemmy 73833d660d desktopwidgets+cc: simplified settings save 2026-02-12 23:09:59 -05:00
Lemmy c330b670d8 bar-widgets-settings: added screen property + simplified settings save 2026-02-12 23:04:07 -05:00
Lemmy 77f5cc28ad Merge pull request #1812 from liquidnya/pad-text
SystemMonitor: Add option to pad the text
2026-02-12 22:46:05 -05:00
Lemmy 5695e9c6dd ncirclestat: fix white fbo flash 2026-02-12 22:11:18 -05:00
Lemmy 54bc7d3caf nlistview: hide the scrollbar when not needed so element on the right can be clicked. 2026-02-12 22:06:56 -05:00
Lemmy 4f7658f981 gitignore added build folder 2026-02-12 20:47:39 -05:00
Lemmy 62b1791159 i18n+autofmt 2026-02-12 20:37:53 -05:00
notiant 59b4b5b7ec fixes to Airplane Mode 2026-02-13 02:18:46 +01:00
Alice ✨🌙 Luna 3a6f42e79a SystemMonitor: Add option to pad the text
This option is only shown if compact mode is off and a monospace font is enabled.
If the bar is vertical the setting will be ignored.
Everything should not shift and the width is calculated from the maximum value (which can be system dependent).
2026-02-13 01:51:28 +01:00
Lemmy d7c244d108 Merge pull request #1809 from whiskeyPeak/dismiss-tooltip-after-click
Hide tooltip when clicking on Pill widget
2026-02-12 18:02:08 -05:00
Turann_ 71efe03251 hide if not available 2026-02-13 01:54:06 +03:00
Henry Riehl 7c7240e05c Hide tooltip when clicking on Pill widget 2026-02-12 20:59:49 +00:00
Lemmy d873649649 plugins+settings: added a way disable Settings.isDebug by putting the noctalia logo back up. This will also remove all plugins file watchers. 2026-02-12 13:46:46 -05:00
dudujerry a5bf781742 Merge remote-tracking branch 'upstream/main' into features/bar-display-on-workspace-change 2026-02-13 02:22:58 +08:00
dudujerry e6a964629c chore(i18n): add zh-CN and zh-TW translations for workspace switch option 2026-02-13 02:18:11 +08:00
dudujerry 32e77f6ac8 feat(bar): show bar on workspace switch in auto-hide mode. 2026-02-13 02:11:08 +08:00
Lemmy 0e9f27f8e1 settings: Defer ListModel population to prevent QV4 re-entrancy crash 2026-02-12 12:18:24 -05:00
Lysec 73daf1c25c NScrollText: disable gradient if capsule has transparency 2026-02-12 17:45:04 +01:00
Lemmy 93447f0b5e autofmt 2026-02-12 11:25:46 -05:00
Lemmy 994e94a569 settings: increased padding in sidebar's results 2026-02-12 11:25:09 -05:00
Lysec 83c3c30fdf Merge pull request #1788 from AlexNabokikh/main
fix(hyprland): emit workspaceChanged signal when toplevels update #1436
2026-02-12 16:01:53 +01:00
Lysec 2bd8911a95 Merge pull request #1798 from kevichi7/main
Notification swipe gestures
2026-02-12 15:48:09 +01:00
Lysec c4326288c5 SettingsPanelWindow: disable esc keybind when recording keybinds (fixes #1801) 2026-02-12 15:33:40 +01:00
Lysec 593c939a94 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-12 15:26:42 +01:00
Lysec e3c3b6b5e4 ApplicationProvider: change logger from warning to debug for quote handling 2026-02-12 15:26:38 +01:00
Lemmy d3bb430380 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-12 09:26:22 -05:00
Lemmy 3a8ce69519 clipboard: Logger.d for initialization 2026-02-12 09:26:20 -05:00
Lysec 4133b886d5 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-12 15:24:39 +01:00
Lysec 9ad2fceef1 ApplicationProvider: more quotes handling (#1742) 2026-02-12 15:24:34 +01:00
Lemmy daa80eeb7c Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-12 09:17:15 -05:00
Lemmy 0f0b533c33 custom-button: fix registration with IPC 2026-02-12 09:17:13 -05:00
Lysec 8fe1d32f33 i18n 2026-02-12 15:04:06 +01:00
Lysec 171224a1d3 Merge pull request #1781 from CLEMENTINATOR/notification-styling
Notifications: add density
2026-02-12 15:01:58 +01:00
Lemmy 81d0a034c8 bar-shell: prevent bar crash on rapid visibility toggle and convert IPCService to singleton 2026-02-12 08:54:32 -05:00
Lysec 83e9666e8e SessionMenu: fix warning 2026-02-12 13:00:26 +01:00
sima c68c9be676 Use vertical swipe dismiss for top/bottom centered notifications 2026-02-12 17:15:23 +08:00
sima 593f880125 Improve notification swipe gestures and dismissal animations 2026-02-12 17:06:48 +08:00
Clément B 72432deae5 Merge branch 'main' into notification-styling 2026-02-12 07:01:49 +01:00
Lemmy 204fe0cc6d bump to 4.4.4-git 2026-02-11 22:48:34 -05:00
Lemmy 3e0cd031ff v4.4.3 2026-02-11 22:47:48 -05:00
Lemmy ce794a9554 Merge pull request #1795 from tuibird/lysec-qa-fixes
Fix for explicit regen
2026-02-11 22:42:59 -05:00
tuibird 049f7c9444 smarter generation calls when switching between favorites + plus adds a conditional explicit call to generate new colours which solves lysecs bug. 2026-02-12 16:33:20 +13:00
Lemmy 57ec0d8359 plugin-service: simplified hot-reload 2026-02-11 21:54:03 -05:00
notiant 8eb20299f1 update search index 2026-02-12 03:49:46 +01:00
notiant 1d09185543 i18n update 2026-02-12 03:42:58 +01:00
Lemmy 5260e3b052 about: added a way to enable debug mode 2026-02-11 21:39:40 -05:00
Lemmy ec4bfb1397 Merge pull request #1793 from spiros132/main
Added button for plugin debug mode toggle
2026-02-11 21:30:05 -05:00
Lemmy 3f8242fbbd i18n-update 2026-02-11 21:25:02 -05:00
Lemmy f317ed0b54 Merge pull request #1794 from tuibird/posty-qa-fixes
Posty fixes for wallpaper favourites
2026-02-11 21:14:53 -05:00
Lemmy 208e0509b0 background-overview: improved init to avoid noctalia bg showing 2026-02-11 21:11:14 -05:00
Lemmy 46584adab0 background: really wait for image loaded to show anything 2026-02-11 20:56:46 -05:00
notiant 4b513b4d8f Fix airplane mode logic & some cleanup 2026-02-12 02:55:40 +01:00
Lemmy 28b95a83f2 background: dont show wallpaper until we are ready 2026-02-11 20:49:53 -05:00
tuibird e7769d9fa2 improved color scheme toggle descriptions 2026-02-12 14:03:50 +13:00
tuibird 4f4d45b22d fixes for thumbnail caching, more consistant model positions during order sorts, more robust handling of a nagivation race condition. 2026-02-12 13:56:53 +13:00
Lemmy bb22b5fad4 mango: band-aid fix for mmsg not support spaces in commands (even if escaped) 2026-02-11 19:30:41 -05:00
Lemmy 52c5aa952c autofmt 2026-02-11 19:02:57 -05:00
Lemmy 3fe44cbc95 Merge pull request #1792 from tuibird/wallpaper-enhancements
Wallpaper Favourite System
2026-02-11 19:02:07 -05:00
Spyridon Siarapis 901b0cd088 Merge branch 'noctalia-dev:main' into main 2026-02-12 00:03:55 +01:00
Spyridon Siarapis 7ee6b5065d feat(PluginService): Added the ability to have a button to press to enable debug mode for a specific plugin 2026-02-12 00:03:00 +01:00
tuibird dcb661e7f3 Wallpaper fav system 2026-02-12 11:34:55 +13:00
Lysec 7eeaa452fd Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-11 22:15:34 +01:00
Lysec 95313e1d24 Keybinds: adjust layout, reject duplicate keybinds 2026-02-11 22:15:31 +01:00
Lemmy 75d28e77a1 sessionMenu: auto-recreate 1..6 for as shortcuts for existing users 2026-02-11 15:57:28 -05:00
Lemmy c10f9b0f7e Merge pull request #1785 from bokicoder/main
fix: Use explicit hardware backends to avoid dGPU wakeup
2026-02-11 15:31:07 -05:00
Lemmy 9927fce5bd launcher-nicontabbutton: remove imperative assignation that breaks binding. Fix #1787 2026-02-11 15:29:53 -05:00
Lemmy b8de6b1599 custom-button: using a proper singleton for the CustomButtonIPCService instead of and object registered in Qt.application. The singleton directly check the settings for IPC calls definition instead of the Bar widgets, this allow us to unload the bar widgets when the bar is hidden while keeping IPC call functional. 2026-02-11 15:22:05 -05:00
Lemmy 02a5d10321 wallpaper: added an option to skip initial transition 2026-02-11 14:46:46 -05:00
Lemmy 046e6688eb session-menu: remove hover on exit 2026-02-11 14:35:35 -05:00
Lemmy 871310681e session-menu: removed numbers 2026-02-11 14:31:01 -05:00
Lemmy 5b7222ebad Merge pull request #1476 from shouya/main
Support Khal as calendar data provider
2026-02-11 14:15:45 -05:00
Lemmy 379ab1a79d Merge pull request #1782 from spiros132/main
Plugin hot-reload update
2026-02-11 14:13:25 -05:00
Lemmy 6058139e01 Merge pull request #1789 from shadowe1ite/main
fix: pywalfox color
2026-02-11 14:12:28 -05:00
Lemmy 0cf3f93148 launcher: added option to disable sessionMenu entries 2026-02-11 13:38:51 -05:00
Lemmy f5eeb52454 nscrollview: fix bug where it's hard to click on the right size controls due to being interactive even tho there is no scrollbar. 2026-02-11 13:30:30 -05:00
ALAN S bf2bfcd197 fix: pywalfox color 2026-02-11 22:36:43 +05:30
Alexander Nabokikh d10a0e9258 fix(hyprland): emit workspaceChanged signal when toplevels update #1436 2026-02-11 17:49:59 +01:00
Lemmy aafc57c4e9 autofmt 2026-02-11 10:30:45 -05:00
Lemmy 953558292a keybind: i18n cleanup 2026-02-11 10:30:38 -05:00
wxlyyy 9b01b6b0dd fix: Use explicit hardware backends to avoid dGPU wakeup 2026-02-11 23:17:09 +08:00
Lysec 3b7c6bd360 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-11 16:11:51 +01:00
Lysec d11ba483a0 NKeybindRecorder: adjust layout 2026-02-11 16:11:35 +01:00
Turann_ d05b46bd90 restore previous rfkill, add polling check 2026-02-11 17:36:26 +03:00
Turann_ 21814ee074 Revert airplane toggle 2026-02-11 17:29:27 +03:00
Lemmy e0c885a5cc Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-11 09:21:47 -05:00
Lemmy 6ddd5725c6 activewindow: pixel exact centering 2026-02-11 09:21:37 -05:00
Lemmy 520378d9d0 mediamini: pixel exact centering 2026-02-11 09:20:33 -05:00
Lemmy 3f3f59f0cd Revert "ActiveWindow: adjust vertical bar layout"
This reverts commit 21efd0db5c.
2026-02-11 09:09:18 -05:00
Turann_ 0acae22bc9 Added airpllane toggle. Minimal wifi UI 2026-02-11 16:43:06 +03:00
Lysec 21efd0db5c ActiveWindow: adjust vertical bar layout 2026-02-11 14:11:51 +01:00
Lysec 981d79782b Revert "AudioPanel: display device icon in devices tab"
This reverts commit eaa5793399.
2026-02-11 14:01:35 +01:00
Lysec eaa5793399 AudioPanel: display device icon in devices tab 2026-02-11 13:58:56 +01:00
Clement Bouvet 1b2e3526ab .gitignore: add result (nix build output) 2026-02-11 12:55:19 +01:00
Clement Bouvet 2071276755 Add compact notification density option
Implement a compact notification density similar to the compact bar
design.

Changes:
- Add notification density setting with simple/confortable(default)
options
- Update notification component to support simple density
- Add translations and settings search index entries
2026-02-11 12:55:19 +01:00
Lysec 825701a57b Compositor: remove individual arry conversion - we already do it in CompositorService 2026-02-11 12:10:41 +01:00
Spyridon Siarapis edd236d992 fix(PluginService): Renamed to root since that follows the last code 2026-02-11 12:05:14 +01:00
Spyridon Siarapis 64b1e65c8b Merge branch 'noctalia-dev:main' into main 2026-02-11 11:56:35 +01:00
Spyridon Siarapis 9cae4d118c Added ability to hot reload all qml and js files in the PluginService 2026-02-11 11:56:12 +01:00
Turann_ f59f4e6cf3 Addressing #1750 2026-02-11 13:46:50 +03:00
Turann_ 1bde070442 Syntax fix **better upower bridge 2026-02-11 13:46:16 +03:00
Turann_ cb6766e198 Rate is user controllable now 4/7 2026-02-11 13:45:40 +03:00
Turann_ 79c4131e36 min polling 60s 3/7 2026-02-11 13:45:26 +03:00
Turann_ a5037bc993 i18n 2/7 2026-02-11 13:45:09 +03:00
Turann_ a26f7b7828 increase polling rate 1/7 2026-02-11 13:45:00 +03:00
Lysec eedbfed5ee Compositor: adjust launch command logic (#1742) 2026-02-11 11:05:30 +01:00
Turann_ 4d88410bed Merge branch 'noctalia-dev:main' into pr/bluetooth-refactor-pt1 2026-02-11 12:49:42 +03:00
Lysec 6fbf7795af N*WidgetSettingsDialog: properly force max 80% screen height (#1777) 2026-02-11 10:26:32 +01:00
Lysec 9a20838904 Keybinds.js: factorize keybind detection & display logic
LockScreen: remove hardcoded Keybinds
Launcher: remove most hardcoded keybinds (except for Tab etc)
MainScreen: remove most hardcoded keybinds (except for Home etc)
SessionMenu: remove all hardcoded keybinds
WallpaperPanel: remove all hardcoded keybinds
2026-02-11 10:09:51 +01:00
Lemmy 17138ca7c0 keybinds: use instantiator for non visual elements 2026-02-10 22:52:33 -05:00
shouya cce8cf7177 Merge remote-tracking branch 'upstream/main' 2026-02-11 12:20:22 +09:00
Lemmy 52b710bf56 bump version to 4.4.3-git 2026-02-10 21:52:40 -05:00
Lemmy 58850aa38e v4.4.2 2026-02-10 21:45:58 -05:00
Lemmy ed5bb55579 wallpaper: removed stupid log 2026-02-10 21:42:19 -05:00
Lemmy 635219bf99 keybinds: support for multiple keybinds for the same action 2026-02-10 21:40:14 -05:00
Lemmy 75ab4b5b21 NIconButtonHot: Hover state is always prioritized 2026-02-10 21:29:25 -05:00
Lemmy 4edb4a177d Merge pull request #1775 from jdcodes28/wallpaper-randomizer-tracking
Added tracking to wallpaper randomizer
2026-02-10 20:46:38 -05:00
Lemmy 973608a4c2 settings: added migration49 to delete the old 'launcher_app_usage.json' file 2026-02-10 20:32:10 -05:00
Lemmy a3429c3d77 shell-state: unified storage of launcherUsage data - this will reset the old usage data 2026-02-10 20:27:03 -05:00
Lemmy edac72cd19 launcher: app usage recording moved to ShellState singleton 2026-02-10 20:16:31 -05:00
Lemmy f1f3c410cd launcher: attempt at fixing potential crash when launching app 2026-02-10 20:02:41 -05:00
Lemmy 0101bc1e46 launcher: attempt at fixing potential crash when launching app (recordUsage) 2026-02-10 19:51:27 -05:00
Lemmy b13e1936dc launcher: attempt at fixing potential crash when launching app 2026-02-10 19:44:59 -05:00
Lemmy 43079fe801 launcher: attempt at fixing potential crash when launching app 2026-02-10 19:29:18 -05:00
Turann_ 82ee342a4b new icon? 2026-02-11 03:05:19 +03:00
Lemmy a562bcd311 launcher: attempt at fixing potential crash when launching app 2026-02-10 18:50:35 -05:00
Lemmy 031685517b autofmt 2026-02-10 18:50:17 -05:00
Lemmy 3bbac2ac5a i18n-update 2026-02-10 18:50:07 -05:00
JD 0de6a669f1 flush history if someone toggles enableMultiMonitor 2026-02-10 17:29:43 -06:00
Turann_ 234d0915d9 . 2026-02-11 02:05:35 +03:00
Turann_ ec4fd9f858 chore work no one wants to do :P 2026-02-11 02:01:33 +03:00
Lemmy c063c1cb87 contributors+supporters: proper use of i18n.trp() 2026-02-10 17:43:02 -05:00
Lemmy 10e22d0e83 Merge pull request #1772 from gigamonster256/push-wyntnrryzxkl
fix: mark skipped changelogs as seen
2026-02-10 17:30:04 -05:00
Turann_ 89eccc83d4 Update BluetoothSubTab.qml 2026-02-11 01:01:19 +03:00
Lemmy ef3a68e452 Merge pull request #1774 from MrDowntempo/fix/LastTime
Last One I swear
2026-02-10 16:39:13 -05:00
Corey Woodworth dabc54d92a Last One I swear 2026-02-10 16:32:35 -05:00
JD 28917dcbe8 Added tracking to wallpaper randomizer 2026-02-10 15:09:18 -06:00
Caleb Norton aa3186867b fix: mark skipped changelogs as seen 2026-02-10 13:51:51 -06:00
Lemmy 3a20204378 Merge pull request #1769 from notiant/patch-1
Hide NDivider in bar settings panel if not needed
2026-02-10 13:29:44 -05:00
Lemmy 8bbd471888 shape: use curverRenderer instead of oversampling 2026-02-10 13:13:45 -05:00
notiant 302621850a hide NDivider in bar settings panel if not needed 2026-02-10 17:50:23 +01:00
Lysec c1b63e1153 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-10 17:22:22 +01:00
Lysec 5702defb39 NSlider: remove +1 implicitHeight for thumb 2026-02-10 17:22:18 +01:00
tibssy fd67acfe37 fix(static dock): use desktop entry names for pinned apps 2026-02-10 16:03:43 +00:00
tibssy 588046a332 fix(static dock): reopen on peek after close and hide on menu actions 2026-02-10 16:03:43 +00:00
tibssy 12572572f7 chore(i18n): update dock appearance strings across locales 2026-02-10 16:03:43 +00:00
tibssy ee322448d9 feat(dock): add frame indicator for static dock with settings toggle and fade animation 2026-02-10 16:03:43 +00:00
tibssy c583be80a1 fix(smartpanel): ignore floating bar margins on barless screens 2026-02-10 16:03:43 +00:00
tibssy b3fe8930ca fix(smartpanel): ignore framed offsets on barless screens 2026-02-10 16:03:43 +00:00
tibssy 7ce7a53c18 feat(dock): implement "sit on frame" setting for static dock to allow inner frame alignment 2026-02-10 16:03:43 +00:00
tibssy a02a49ff71 feat(dock): refine StaticDockPanel frame thickness calculation by detecting bar presence and position to prevent redundant spacing when the dock and bar share the same screen edge 2026-02-10 16:03:43 +00:00
tibssy 847d7676f9 fix(static dock): reset hover timer after menu close 2026-02-10 16:03:43 +00:00
tibssy 7123d387f5 refactor(dock): clean up StaticDockPanel by removing unused properties and timers, increasing hide delay, and refining hover state logic for smoother auto-close behavior 2026-02-10 16:03:43 +00:00
tibssy 92c43c6236 feat(dock): enable peek window activation for static mode to trigger dock panel opening and refine the settings interface by reorganizing components and conditionally showing display mode options 2026-02-10 16:03:43 +00:00
tibssy 6bd43fade6 feat(dock): fully implement StaticDockPanel with app management logic, transparent container styling, and hover-aware auto-close timers 2026-02-10 16:03:43 +00:00
tibssy 4b5c6c4619 feat(dock): integrate StaticDockPanel with main Dock logic and replace separate peek window with panel-based hover detection 2026-02-10 16:03:43 +00:00
Lemmy f7000b6af5 Bump version to 4.4.2-git 2026-02-10 11:03:28 -05:00
Lemmy b42586ca93 Release v4.4.1 2026-02-10 11:02:43 -05:00
tibssy ce027062fa feat(dock): extract DockContent into a reusable component and implement hover peek detection for static mode operation 2026-02-10 16:01:58 +00:00
tibssy 0015cf958c feat(dock): add StaticDockPanel to mainscreen 2026-02-10 15:57:18 +00:00
tibssy ddbff84c80 feat(dock): scaffolding for static dock mode
Added 'dockType' setting and created initial StaticDockPanel structure.
2026-02-10 15:57:18 +00:00
Lysec 330df2b6e4 Notification: adjust animation on action invoke 2026-02-10 16:54:42 +01:00
Lysec 2989f85d3b Notification: fix typeerror 2026-02-10 16:44:09 +01:00
Lemmy 5b3a0e8640 notification: removing the disconnect 2026-02-10 10:39:10 -05:00
Lemmy 3328beec86 notification: fixed warning introduced by previous "close on LMB" 2026-02-10 10:23:05 -05:00
Lysec ad6c098139 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-10 16:20:58 +01:00
Lysec e9f86eff04 NScrollText: proper fade implementation 2026-02-10 16:20:53 +01:00
Lemmy 0fa4dcc573 plugin-api: added launcher provider methods 2026-02-10 10:09:41 -05:00
Lemmy a6c880a632 ipc: simplified core launcher providers opening and closing 2026-02-10 10:09:26 -05:00
Lysec 7789b02bfb NScrollText: add fade in/out effect 2026-02-10 15:53:03 +01:00
Lemmy cc0c9c61b4 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-10 09:24:54 -05:00
Lemmy 522fa4c6da onclicked: mouse shorthands 2026-02-10 09:24:51 -05:00
Lysec f6d17d3d3c i18n 2026-02-10 15:23:54 +01:00
Lysec 03a93c1369 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-10 15:22:09 +01:00
Lysec bfa58611f0 LockScreen: add blur & tint option 2026-02-10 15:22:07 +01:00
Lemmy e48c1b99b4 settings-default 2026-02-10 09:18:00 -05:00
Lysec 1521ae0c71 Revert "Logger: remove timestamp"
This reverts commit 513ac18dc3.
2026-02-10 14:44:37 +01:00
Lysec 06ae4c58a6 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-10 14:36:13 +01:00
Lysec 513ac18dc3 Logger: remove timestamp 2026-02-10 14:36:10 +01:00
Lemmy b8a212978e autofmt 2026-02-10 08:18:26 -05:00
Lemmy 176128a610 clipboard: fix entries not appearing on first display of the panel 2026-02-10 08:18:17 -05:00
Lysec 60a0b121a5 Merge pull request #1754 from ctrl-kitty/main
Notification: left-click invoke default action
2026-02-10 13:49:33 +01:00
Lysec ebd7387101 N*View: fix scrollbar 2026-02-10 13:28:27 +01:00
Lysec dea9ef0816 ApplicationProvider: fix most used sorting 2026-02-10 13:13:25 +01:00
Turann_ 4582fc1ec2 https://discord.com/channels/1401598189823590460/1401607794414850120/1470623857940496414
Signed-off-by: Turann_ <turanull000@gmail.com>
2026-02-10 06:51:56 +03:00
Lemmy ba79acf687 Merge pull request #1761 from tuibird/main
use the correct axis when calculating content height
2026-02-09 22:50:09 -05:00
Lemmy c83c282aac launcher: ui fixes 2026-02-09 22:46:44 -05:00
tuibird 7c200450c6 use the correct axis when calculating pill size. this fixes a bug in vertical bar mode where the hover expansion animation was too fast. 2026-02-10 16:25:20 +13:00
Lemmy ee2791a950 readme: added "Scroll" compositor 2026-02-09 22:12:49 -05:00
notiant eb74bacefb make sure discoverable state stays true while Bluetooth tab is open 2026-02-10 04:11:13 +01:00
Lemmy 9b7147f126 compositor: added scrollwm support. 2026-02-09 22:07:06 -05:00
Lemmy b89bc0aaf3 fastfetch: provides a minimal config instead of relying on --none. Fix #1760 2026-02-09 21:36:48 -05:00
notiant 84bd4b94c7 update BluetoothSubTab layout 2026-02-10 02:51:48 +01:00
Lemmy 01aa58afde shell-state: added openedPanel property 2026-02-09 20:46:39 -05:00
Lemmy 9640db42f7 launcher: default bumper from 32 to 36 2026-02-09 20:36:26 -05:00
Lemmy 559823ec65 bar-lockkeys: cleanup + move visible at the right spot 2026-02-09 20:21:02 -05:00
Lemmy c7b3a043e6 overview-blur: translation keys cleanup 2026-02-09 20:00:30 -05:00
Lemmy 82b3cadfb2 i18n-update 2026-02-09 19:28:14 -05:00
Lemmy f03477620f settings: wallpaper + overview reordering and cleanup 2026-02-09 19:20:37 -05:00
Lemmy 427fb1f8d5 Merge pull request #1740 from whiskeyPeak/make-overview-blur-and-tint-customizable
Make overview blur and tint customizable
2026-02-09 19:09:43 -05:00
Lysec 0c463e2263 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-10 00:23:31 +01:00
Lysec a6baf6e2e9 Launcher: layout follow iRadius 2026-02-10 00:23:26 +01:00
Lemmy 6c2dea1fc9 ipc: added bar setDisplayMode {mode} 2026-02-09 18:23:23 -05:00
Lemmy 84b994ebae Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-09 18:03:09 -05:00
Lemmy 27b82413a6 bar: lockkeys and mediamini syntax fix 2026-02-09 18:03:06 -05:00
Lysec fec1eeb33e Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-10 00:00:10 +01:00
Lysec 18c836cff5 LauncherCore: layout adjustments 2026-02-10 00:00:04 +01:00
Lemmy 9a86b5bdd9 Merge pull request #1758 from MrDowntempo/fix/LockKeysGap
Fix/lock keys gap
2026-02-09 17:55:48 -05:00
Corey Woodworth 6c6a7852ba Lefthook after the qmlfmt update 2026-02-09 17:38:06 -05:00
MrDowntempo 49dd2e58e8 Merge branch 'noctalia-dev:main' into fix/LockKeysGap 2026-02-09 17:36:37 -05:00
Lemmy d391f4ca10 qmlfmt: support for Qt 6.9 2026-02-09 17:31:11 -05:00
Lysec 43c9f0dec5 Launcher: set ignoreDensity default to true 2026-02-09 23:14:48 +01:00
Lysec a8822eaf0a launcher: adjust defaults & ignore clipboard density 2026-02-09 23:11:26 +01:00
Lysec 1d26ed8014 LauncherCore: adjust fade color 2026-02-09 23:06:23 +01:00
Lysec 96f55ac7cf LauncherSettings: add density selection 2026-02-09 22:56:42 +01:00
Corey Woodworth e474f1f41f Even More cleanup 2026-02-09 14:15:58 -05:00
Corey Woodworth c774ae3e77 More cleanup 2026-02-09 14:09:25 -05:00
Lemmy 8b43787ef5 plugins: installed subtab - cleanup auto update toggle. 2026-02-09 14:02:21 -05:00
Corey Woodworth a64338df9c Back to Visible instead of Enabled. Moved it up in scope. 2026-02-09 13:48:00 -05:00
Turann_ 305ff1f591 run fmt. 2026-02-09 21:47:39 +03:00
Turann_ e6b06801d3 additional check to keep filter button around 2026-02-09 21:46:04 +03:00
Corey Woodworth 440ec8afb4 Switch Visible to Enabled to prevent gap from forming when no keys pressed 2026-02-09 13:37:41 -05:00
Turann_ 357dcb57b3 Update BluetoothSubTab.qml 2026-02-09 21:36:08 +03:00
Turann_ be0b3798b1 Update BluetoothPanel.qml
Update BluetoothDevicesList.qml

Update BluetoothSubTab.qml

No toast on discoverable

Update BluetoothService.qml

Delete BluetoothDevicesList.qml

Update BluetoothService.qml

Update BluetoothSubTab.qml

fmt
2026-02-09 21:30:15 +03:00
Lemmy ef95b3128a sysstat-panel: fixed auxiliary color to be similar to ngraph + some syntax tweak 2026-02-09 12:52:01 -05:00
Lemmy 1548b1ea9e Merge pull request #1756 from bean-factory/patch-3
rename bar ipc functions to avoid conflict
2026-02-09 12:12:05 -05:00
bean-factory 9952006afc rename bar ipc functions to avoid conflict 2026-02-09 22:28:32 +05:30
Turann_ d00638d382 syntaxing properly addressing warn in output 2026-02-09 18:48:58 +03:00
Turann_ 94b6ea6971 chore: do layout work
Signed-off-by: Turann_ <turanull000@gmail.com>
2026-02-09 18:42:04 +03:00
Lemmy 738b12535f better wezterm template escaping 2026-02-09 10:22:02 -05:00
Lysec 47e3fac825 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-09 14:44:39 +01:00
Lysec dc64edb12d SessionMenu: fix key mapping 2026-02-09 14:44:34 +01:00
Lemmy dec9d77f35 i18n-update 2026-02-09 08:36:01 -05:00
ctrl-kitty 135c7a6104 Notification: left click open default 2026-02-09 16:21:18 +03:00
Lysec 63130b23c0 GeneralTab: add keybind subtab
NKeybindRecorder: created
Remove all hardcoded keybinds
2026-02-09 08:23:15 +01:00
Lemmy e852103428 i18n: fixed reset to "auto" locale 2026-02-08 23:52:36 -05:00
Lemmy c2b3419b7f i18n: fix reactivity to settings change/load 2026-02-08 23:49:25 -05:00
Turann_ 3daa8b8d58 The message is actually working not just text but you'll never know :P
Signed-off-by: Turann_ <turanull000@gmail.com>
2026-02-09 07:44:03 +03:00
Turann_ 9861088203 Make me a favour don't use trap for stopping processes.
Signed-off-by: Turann_ <turanull000@gmail.com>
2026-02-09 07:33:33 +03:00
Turann_ a99685ee54 Link stat with Service.
Signed-off-by: Turann_ <turanull000@gmail.com>
2026-02-09 07:33:04 +03:00
Lemmy 51c86a571e colors: skip initial colors fade on loading + set hardcoded colors to noctalia (was rosepine) 2026-02-08 22:47:49 -05:00
Lemmy c39e200d54 i18n: speeding resolution with static available languages def. 2026-02-08 22:25:12 -05:00
Turann_ 3676ad3d89 checkpoint 2026-02-09 06:16:18 +03:00
Turann_ 76c927d2cf From now on while subpanel is open
Bluetooth controller is discoverable and assuming you're pair something scanning forever, just like any other.

No more hacky timers.
2026-02-09 05:52:50 +03:00
Turann_ d2a13e5709 I think im outdone myself 🌟 2026-02-09 05:51:44 +03:00
Turann_ ad13570aa1 Update HostService.qml 2026-02-09 05:35:08 +03:00
Lemmy 057a6a9a5d bar: reworked bleedInset to avoid potential gap below the bar 2026-02-08 21:08:50 -05:00
Henry Riehl d2d67d015b review 2 2026-02-09 01:34:34 +00:00
Turann_ a13c1f2d36 Questionable? testing ? no thats not even good. 2026-02-09 04:30:48 +03:00
Henry Riehl e003dad6a4 review 2026-02-09 01:18:02 +00:00
Lemmy 02335d7737 nbattery: when critical show full red 2026-02-08 20:16:06 -05:00
Turann_ 776dd81edc Add filtering logic back
Signed-off-by: Turann_ <turanull000@gmail.com>
2026-02-09 04:11:21 +03:00
Lemmy 2406bd5807 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-08 19:47:51 -05:00
Lemmy 01518ea691 ngraph: fix drifting over time 2026-02-08 19:47:46 -05:00
Turann_ c6768679de Update Bluetooth.qml 2026-02-09 03:46:06 +03:00
Lemmy dcd90b2196 ngraph: fix drifting over time 2026-02-08 19:28:50 -05:00
Turann_ 23548a3f32 Create BluetoothSubTab.qml 2026-02-09 03:04:40 +03:00
Turann_ e69886745b Squash 3 commits 2026-02-09 03:04:40 +03:00
Lemmy c4a83d7e0b settings: improved auto-nav to subtabs and highlight focus 2026-02-08 18:40:57 -05:00
Lemmy 48ae963ca4 nslider: fix potential cutout 2026-02-08 18:39:08 -05:00
Lemmy af3ea6252d ipc: fixing warnings 2026-02-08 18:01:13 -05:00
Lemmy 0ea0019c48 scrolling: speeding up wheel scrolling by x4 on all NxxxView widgets 2026-02-08 17:41:22 -05:00
Lemmy 3a9d42d99a autofmt 2026-02-08 17:03:50 -05:00
Lemmy 15860767bb i18n-update + default settings and search index 2026-02-08 17:03:41 -05:00
Lemmy 874a3622d6 Merge pull request #1715 from WerWolv/feature/per_monitor_lockscreen
Add option to display lockscreen only on certain monitors
2026-02-08 17:00:35 -05:00
Lemmy 796039a37d Merge pull request #1739 from MrDowntempo/fix/BetterLockKeysHide
Fix/better lock keys hide
2026-02-08 16:54:40 -05:00
Henry Riehl e361e12bdd add defaults 2026-02-08 20:15:34 +00:00
Henry Riehl 99fade61dd Merge branch 'main' into make-overview-blur-and-tint-customizable 2026-02-08 19:46:13 +00:00
Lemmy d241506bfc ipc-settings: added new call to focus a specific tab/subtab ex: "settings toggleTab bar/2" 2026-02-08 14:45:02 -05:00
Lemmy f8569c18c8 Merge pull request #1736 from notiant/patch-2
Fix Bluetooth discovering process & some enhancements to Bluetooth- & Wifi-Panel
2026-02-08 14:43:08 -05:00
Lemmy 3dce0468a6 Merge pull request #1738 from WerWolv/feature/day_night_weather_effect
Add weather effects for clear day and night
2026-02-08 14:42:54 -05:00
Lemmy ef17534ab0 desktop-systemstat: don't show GPU temperature as an option unless the dGPU setting is ON. 2026-02-08 14:31:54 -05:00
Henry Riehl 0f67ff8e18 use % 2026-02-08 19:28:49 +00:00
Lemmy c01f327a3a custombutton-ipc: also fix middle click 2026-02-08 14:17:56 -05:00
Lemmy 8c640d6cdf Merge pull request #1722 from deep4lpha/custom-button-ipc-fix
Fix CustomButton ipc calls not working
2026-02-08 14:10:36 -05:00
Corey Woodworth 034330d89a Fix edge case when specific keys are disabled 2026-02-08 14:02:33 -05:00
Lemmy 735d2a46d1 ngraph: trying the immediate renderStrategy 2026-02-08 13:59:06 -05:00
WerWolv 7e48d70ed2 Add option to display lockscreen only on certain monitors 2026-02-08 19:57:25 +01:00
Corey Woodworth d1e76c7c9f Hide entire capsule when Hide capsue is on, and no lock keys are. 2026-02-08 13:52:02 -05:00
Lemmy e4455de781 plugin-registry: properly update to version 2. 2026-02-08 13:50:41 -05:00
WerWolv 100b96350d Cleanup ugly formatting 2026-02-08 19:36:38 +01:00
WerWolv 53073ce07c Update compiled stars shader 2026-02-08 19:31:22 +01:00
WerWolv bea1522649 Add weather effects for clear day and night 2026-02-08 19:17:34 +01:00
notiant ce046c3252 increase wifi disconnect button size 2026-02-08 18:35:28 +01:00
Lysec f9f668dbe6 WallpaperPanel: fix text input for wallhaven page 2026-02-08 18:27:43 +01:00
Lemmy cd2b803301 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-08 11:54:06 -05:00
Lemmy 552d401788 launcher: in overview mode, no need to check if that bar exists on the target screen 2026-02-08 11:54:03 -05:00
Lysec f1d3b7b1b0 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-08 17:45:15 +01:00
Lysec b7af77bfcc WallpaperPanel: adjust wallhaven page input size 2026-02-08 17:45:10 +01:00
Lemmy 36848a3e5c launcher: fixes to overlay mode 2026-02-08 11:43:34 -05:00
Lemmy 9a1ad1d679 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-08 11:37:53 -05:00
Lysec 0cbe7cb81e Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-08 17:33:28 +01:00
Lysec 7cb894e3c5 WallpaperPanel: add NTextInput for wallhaven pages 2026-02-08 17:33:25 +01:00
Lemmy 30afb16ece Merge branch 'launcher-overview-support' 2026-02-08 11:30:52 -05:00
Henry Riehl 7e7210a458 fixes 2026-02-08 16:24:17 +00:00
Lemmy 8fd6c3213c bar: with auto-hide on, the bar starts hidden 2026-02-08 11:23:55 -05:00
notiant eee8e12546 increase scanAutoStop to 10s 2026-02-08 17:23:38 +01:00
Henry Riehl bad54ea28b fix step size 2026-02-08 16:12:26 +00:00
Henry Riehl 478472ab97 typo 2026-02-08 16:10:33 +00:00
Henry Riehl 927c6d6749 typo 2026-02-08 16:08:11 +00:00
Lemmy b01e8d9c3c Merge pull request #1733 from chenkeao/patch-bar
fix(bar): fix bar becomes transparent when switch out from auto hide mode
2026-02-08 11:05:00 -05:00
Lemmy e43bdd238b fonts: added "System Default" entry in each combobox, to use the system one. 2026-02-08 11:02:11 -05:00
Henry Riehl 30a96ef488 add stepSize 2026-02-08 16:02:07 +00:00
Henry Riehl fa3f632d86 Add blur and tint configuration for overview wallpaper 2026-02-08 15:52:40 +00:00
Lysec 0455538e26 Merge pull request #1737 from MachXNU/pywalfox-fix
Fix for pywalfox template on light mode
2026-02-08 16:42:15 +01:00
Lemmy 007912faa9 template-processor: general_normal_light, clamp lightness to give better results in light mode 2026-02-08 10:35:52 -05:00
Lemmy 61c1d52cfb i18n-update: lockscreen animations 2026-02-08 10:23:14 -05:00
Jb 7bba85fb3d Fix for pywalfox template 2026-02-08 16:10:07 +01:00
Lemmy ed7c13f2cf i18n: hn => nn-HN 2026-02-08 09:59:12 -05:00
Lemmy 3020fc32ce i18n-update 2026-02-08 09:49:22 -05:00
Lemmy 293e9e10be Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-08 09:33:02 -05:00
Lemmy 642980347b template-processor: use triangle/bilinear resize for M3 and use box resize for ours. 2026-02-08 09:33:00 -05:00
notiant 677d84b613 Fix Bluetooth discovering process & some enhancements to Bluetooth- & Wifi-Panel 2026-02-08 14:32:59 +01:00
Lysec 9ad50a17c0 Merge pull request #1735 from chenkeao/patch-session-menu
fix(session menu): fix custom lock screen command failure
2026-02-08 12:56:12 +01:00
kyle 72beaba6e6 fix(session menu): allow for custom lock screen command even when lock on suspend is on 2026-02-08 22:46:23 +11:00
kyle c261bb3250 fix(session menu): allow for custom lock screen command 2026-02-08 22:26:09 +11:00
kyle 7f5e7299c4 fix(bar): fix bar becomes transparent when switch from auto hide mode and doesn't hide automatically when auto hide is on 2026-02-08 20:58:40 +11:00
Lysec bf1a0f76bb Merge pull request #1726 from deep4lpha/optional-lockscreen-animations
make lockscreen animations optional
2026-02-08 10:33:04 +01:00
Lemmy 46fea8d980 bar-background: attempt to fix potential hairline gap between the bar and the screeb edge 2026-02-07 23:59:34 -05:00
Lemmy 6e4a302f31 www: updated end point url 2026-02-07 23:14:56 -05:00
Lemmy 22a349560f settings-sidebar: hide vertical scrollbar to avoid distortion when collapsing the sidebar 2026-02-07 23:02:11 -05:00
Lemmy fa88ca4a29 plugins: added check for updates button on the Installed subtab 2026-02-07 22:57:05 -05:00
Lemmy 21377c9e21 wallpapaper-pixelate: fix pixels being slightly shifted at 100% progress 2026-02-07 22:36:03 -05:00
Lemmy 3d2ac32805 wallpaper: moved color scheme generator one level above. refresh wallpaper list after each wallhaven download.
+ fix potential edge case where scale is not ready on startup
2026-02-07 22:18:44 -05:00
Lemmy 915ef85f32 merge main 2026-02-07 20:51:00 -05:00
Lemmy 50455b800d autofmt 2026-02-07 20:05:11 -05:00
Lemmy 493af28070 Merge pull request #1728 from tuibird/widget-segment-fix
bug fix for the widgets position context menu
2026-02-07 20:03:25 -05:00
Lemmy 27dd01f645 ngraph: use Canvas.Threaded to avoid degradation over time. Fixes #1724 2026-02-07 19:57:45 -05:00
tuibird 166a66a61a bug fix for the widgets position context menu not respecting orientation. Also some minor readibility improvments. 2026-02-08 13:52:29 +13:00
Lemmy 5ad9cb8584 launcher: slightly smaller action icons 75% (pin / unpin / trash) 2026-02-07 18:46:37 -05:00
Lemmy b3a3158b12 wallpaper: avoid wallpaper re-transition when changing color generation scheme 2026-02-07 18:26:32 -05:00
Lemmy 90720cd8b4 plugin-service: proper fallback to english translations 2026-02-07 16:37:41 -05:00
Lemmy 69c76adc82 theming: add WSMeans quantizer refinement for M3 source color extraction + fix 3 Wu quantizer bugs 2026-02-07 16:21:13 -05:00
Lemmy f357adb146 Update star history image source in README 2026-02-07 15:09:31 -05:00
Deep 4lpha ec01421ec7 make lockscreen animations optional 2026-02-07 20:33:31 +01:00
Deep 4lpha 8846ebf821 fix CustomButton ipc calls not working 2026-02-07 16:49:21 +01:00
Lemmy a7f70dcb4e Readme and Credits update 2026-02-07 08:59:51 -05:00
Lemmy de960611ef plugin-service: fixed update detection for third party repos 2026-02-07 08:31:45 -05:00
Lemmy c8776fb317 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-07 08:18:26 -05:00
Lysec 1447a49911 OSD: add guard check for root & proper cleanup for brightness 2026-02-07 12:14:56 +01:00
Lysec b56f3bd363 SessionMenu: properly run custom commands via IPC (fix #1708) 2026-02-07 11:00:44 +01:00
Lysec 80f35bf802 gtk-refresh: check for existing adw-gtk3 theme, else skip setting it (#1713) 2026-02-07 10:43:47 +01:00
Lemmy 9383835357 sysstat: dont scan for thermalzone gpus unless dgpu monitoring is on 2026-02-06 22:48:33 -05:00
Lemmy d90d705259 control-center: attemp to fix the too big Arch logo + fix hover 2026-02-06 22:06:06 -05:00
Lemmy 1067575848 system-stat: don't log about no cpu temp found unless it's really true. 2026-02-06 21:44:25 -05:00
Lemmy 944ec5c1ce plugins: fix BarService.openPluginSettings() for external repos - was missing composite key. 2026-02-06 21:16:42 -05:00
Lemmy 5dc9a2f47c bumping version to v4.4.1-git 2026-02-06 17:54:35 -05:00
Lemmy 55e9b3735d Release v4.4.0 2026-02-06 17:53:50 -05:00
Lemmy 641e0afeee clock-desktop: fixed undefined color in the settings 2026-02-06 17:37:07 -05:00
Lemmy af2e3d207a plugins: added auto-update via a new setting on the installed subtab. 2026-02-06 17:00:22 -05:00
Lemmy 72168bb47a plugins: default settings dialog width increased from 500 to 600px 2026-02-06 16:13:57 -05:00
Lemmy c3a219e114 sysstat: reset on resume (after suspend) 2026-02-06 15:51:24 -05:00
Lemmy 518b67c2d3 bar-widget: fix opening "close to button" 2026-02-06 15:09:36 -05:00
Lemmy ef94643dbc niconButton: borders cleanup 2026-02-06 14:17:04 -05:00
Lemmy 2f3e86e5a3 tray: added contextual menu (widget settings shortcut) on the chevron - when the drawer is enabled 2026-02-06 13:58:56 -05:00
Lemmy fe09dc92f0 Merge pull request #1583 from twilfredo/wilfred/fixup-timezone-conv
calendar/eds: convert event times to local timezone
2026-02-06 13:16:36 -05:00
Lemmy efe51e2302 i18n: proper fix 2026-02-06 13:07:08 -05:00
Lemmy 54170a4e24 i18n: try full langcode first 2026-02-06 13:00:33 -05:00
Lemmy 4449ba25f8 systemstats: ignore loopback interfaces 2026-02-06 12:14:34 -05:00
Lemmy 84e394e0f3 activewindow-mediamini: support for colored text 2026-02-06 11:53:51 -05:00
Lemmy 44d8dc43c3 weather: autofmt 2026-02-06 11:44:52 -05:00
Lemmy 77adbbb573 startup: faster i18n and plugins startup 2026-02-06 11:43:14 -05:00
Lemmy ede5d656e4 Merge pull request #1710 from WerWolv/feature/cloud_fog_weather_effects
Add weather widget effects for Cloudy and Foggy weather
2026-02-06 11:37:21 -05:00
WerWolv c979d871af Fix testEffects 2026-02-06 17:35:50 +01:00
Lemmy 7c7b929bf7 startup: don't wait for plugins fully loaded 2026-02-06 11:29:42 -05:00
Lemmy 081ac08e67 tray-bar: added setting to colorize the chevron 2026-02-06 11:18:56 -05:00
Lemmy dd9d643eb3 wallpaper-shaders: added 2 new transitions - pixelate and honeycomb 2026-02-06 10:58:06 -05:00
Lemmy 8ea92804ea stripes-shader: removed the * 1.6 hack and fix the shader itself 2026-02-06 10:30:23 -05:00
Lemmy 8af28530f1 background-wallpaper: reworked the initial startup by delaying it a tad to avoid weird compositing issue when the surface is not ready 2026-02-06 10:29:43 -05:00
WerWolv 31449a2f24 Fix comment capitalization 2026-02-06 16:27:30 +01:00
Lemmy 238891a90d autofmt 2026-02-06 10:16:42 -05:00
Lemmy 103ef53ff1 ngraph: dont force mError as secondary color - avoid two red curves on redish themes. 2026-02-06 10:16:33 -05:00
WerWolv 48f38ea4b2 Added weather widget effects for Cloudy and Foggy weather 2026-02-06 16:16:32 +01:00
Lysec 395ba7fec1 Merge pull request #1709 from notiant/patch-17
Fixing desktop clock widget colorization
2026-02-06 16:03:28 +01:00
notiant 8fbfc07890 fixing desktop clock widget colorization 2026-02-06 15:56:40 +01:00
Lemmy 3a6217628c Merge pull request #1660 from Sky1-Linux/thermal-zone-fallback
SystemStat: add thermal_zone fallback for CPU and GPU temperature
2026-02-06 09:46:26 -05:00
Lemmy e0a52fe319 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-06 09:42:24 -05:00
Lemmy cbea842ff4 bar: support for colored capsules 2026-02-06 09:42:22 -05:00
Lemmy b304fa01b7 Merge pull request #1694 from Cleboost/fix/ddc-brightness-slider
fix(display): external display brightness slider fluidity
2026-02-06 09:35:54 -05:00
Lemmy 27b89b37fa nbattery: dont blink when charging if the % is not shown. 2026-02-06 09:11:15 -05:00
Lemmy b2d9fe1b21 battery-bar: ensure tooltip is always 2 columns 2026-02-06 09:10:40 -05:00
Lysec e52061568e Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-06 14:51:57 +01:00
Lysec 79672a2709 NightLightService: implement restart on crash (#1687) 2026-02-06 14:51:23 +01:00
Lemmy e31534fb3d i18n-update 2026-02-06 08:40:57 -05:00
Lysec 8c83b0b36b SettingsContent: simplify scrollbar 2026-02-06 14:33:22 +01:00
Lysec 20a7a76aba Merge pull request #1650 from qalqa-dev/main
Feature/Dock pinned apps names changed from appId to appName
2026-02-06 14:17:10 +01:00
Lysec 236b4ef466 Merge pull request #1707 from notiant/patch-16
Add desktop clock colorization & fix control center widget hover color
2026-02-06 14:15:04 +01:00
Lysec 54dcf2bd40 cleanup 2026-02-06 14:04:30 +01:00
Lysec 3c92c91082 SettingsPanelWindow: fix random fullscreen tab switch (#1706) 2026-02-06 14:00:27 +01:00
Lysec c557f329fd SettingsPanelWindow: fix highlighting for separate window (#1706) 2026-02-06 13:57:54 +01:00
Lysec 88d8b44a9d SettingsContent: fix ghost highlight on tab switch (#1706) 2026-02-06 13:55:11 +01:00
notiant e1fd103479 update ControlCenter widget properties 2026-02-06 13:38:40 +01:00
notiant 76a41b1583 add desktop clock colorization & fix control center widget hover color 2026-02-06 13:26:00 +01:00
Lysec 82e0dfca11 SessionMenu: adjust keybind detection & layout 2026-02-06 13:19:22 +01:00
Lysec 23e08a60d5 SessionMenuTab: add keybind setting per entry 2026-02-06 12:50:45 +01:00
Lysec a6283d2962 Merge pull request #1703 from lonerOrz/cc-color
feat(cc): add icon color field parsing to JSON
2026-02-06 08:10:56 +01:00
loner 5b6e361f00 feat(cc): add icon color field parsing to JSON
Parse icon color with priority: dynamic > static > default
2026-02-06 15:08:59 +08:00
Lemmy 4a06e2f855 battery-service: restored showNotice as it's the only method that support custom icon 2026-02-06 00:32:34 -05:00
Lemmy 6006b2abc4 control-center: respect hover color (always!) + battery hand icon on hover 2026-02-06 00:10:38 -05:00
Lemmy 54b6c0263b battery: migrated threshold to system monitor 2026-02-06 00:03:59 -05:00
Lemmy 7ff6a59c6c cava: implemented restart on crash 2026-02-05 23:08:45 -05:00
Lemmy c2237baab3 battery-widget: better tooltip, reworked logic and improved display 2026-02-05 22:51:36 -05:00
Lemmy effc04b588 battery-settings: reordering 2026-02-05 21:45:49 -05:00
Lemmy 953f757f1b battery-service: use showError and showWarning instead of showNotice 2026-02-05 21:13:57 -05:00
Lemmy 460ea69d49 bar-monitor-override: properly refresh widget content when clearing override 2026-02-05 21:10:10 -05:00
Lemmy b55e762579 default-widgets-settings 2026-02-05 20:09:29 -05:00
Lemmy 9b9d4021eb barwidget-registry: removed remnant of the wifi widget 2026-02-05 20:08:58 -05:00
Lemmy 4ec02be171 bar: reworked most widgets to support custom icon and text color 2026-02-05 20:03:42 -05:00
Lemmy bda6ca7b55 sysmon-barwidget: ability to choose color of icon and text separately 2026-02-05 19:01:33 -05:00
Lemmy 93f153f5e0 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-05 18:58:48 -05:00
Lemmy 91b2fbe405 i18n-update 2026-02-05 18:58:46 -05:00
Lemmy 4926ebd017 Update README.md 2026-02-05 18:57:44 -05:00
Lemmy 5f04bf9501 sysmon: fix translations and allow for all colors to be used instead of none/primary 2026-02-05 15:43:28 -05:00
Lemmy 20a1b115d7 supporters: simplified the look 2026-02-05 10:14:10 -05:00
Lemmy f7634fd6dd i18n: update 2026-02-05 09:56:06 -05:00
Lemmy 08908818cb sysstat-panel: edge to edget NGraph 2026-02-05 09:51:43 -05:00
Lemmy 15129d444f sysstat-pane: "edge to edge" curves 2026-02-05 09:51:28 -05:00
Lemmy e8f0822118 about: supporters subtab 2026-02-05 09:34:24 -05:00
Lysec f13bc738be IPCService: add setGeneration method 2026-02-05 13:33:30 +01:00
Florian Boulay 107ea5698a Add screen argument to IPC wallpaper random
* Add argument to specify on which screen to apply a random wallpaper
* if `all` is provided, the old behavior is kept: a random wallpaper is
applied to all screen.
2026-02-05 13:22:08 +01:00
Lysec 94d9295ace LockScreenHeader: adjust analog clock size 2026-02-05 13:08:30 +01:00
Lysec 4cb377111b AvailableSubTab: make busyindicator same size as checkmark button 2026-02-05 12:35:05 +01:00
Lysec 5014c985ea AvailableSubTab: add NBusyIndicator when downloading plugins 2026-02-05 12:19:57 +01:00
Lysec 24b4e5944a SettingsContent: fix search icon/bar vertical jump 2026-02-05 12:12:16 +01:00
Lysec dcc43b8b48 i18n 2026-02-05 12:06:50 +01:00
Lysec ba904f24ff LockScreenTab: add clock options 2026-02-05 12:04:25 +01:00
Cleboost ba6d2aaa5f fix(display): external display brightness slider fluidity
- Defer ddcutil process start with Qt.callLater to avoid blocking UI thread
- Use local value and 120ms debounce in brightness settings tab to reduce stutter
2026-02-05 09:25:15 +01:00
Lemmy c6759fb9f4 bar: new "non-exclusive" mode, do not reserve space but do not auto-hide. 2026-02-04 22:22:01 -05:00
Lemmy 951d64bd0e i18n-update 2026-02-04 22:11:15 -05:00
Lemmy cf4c1dac68 Merge pull request #1693 from notiant/patch-14
Cleanup widget colorization settings
2026-02-04 21:56:26 -05:00
Lemmy 989ebbbdea nimagerounded: fixed the buggy PreserveAspectFit in the shader + new default is PreserveAspectCrop 2026-02-04 21:46:05 -05:00
notiant 1fb808f6cd change battery icon thresholds 2026-02-05 03:39:17 +01:00
notiant 1dab901347 cleanup widget colorization settings 2026-02-05 02:33:21 +01:00
Lemmy a1df4a3e3c settings-widgets-default 2026-02-04 19:58:36 -05:00
Lysec 3ff69382cf Bumping 4.3.4-git 2026-02-05 01:57:15 +01:00
Lysec c9444a5429 Release v4.3.3 2026-02-05 01:52:25 +01:00
Lemmy c10a1e1b16 nbattery: adjustments to the vertical display 2026-02-04 19:17:38 -05:00
Lemmy 364a6f9163 nbattery: smaller text in vertical mode 2026-02-04 18:15:18 -05:00
Lemmy d1aa59a69d battery: settings and translation 2026-02-04 18:07:32 -05:00
Lemmy a8a56f1a68 i18n: nn-NO 2026-02-04 18:04:14 -05:00
Lemmy d2d2368a5b battery: bring back the battery icon for those who prefer it 2026-02-04 17:57:29 -05:00
Lemmy b40d872454 nbattery: using simple rectangle instead of canvas 2026-02-04 17:31:45 -05:00
Lemmy b94075a567 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-04 17:14:46 -05:00
Lemmy cc64bff9cb launcher+mango: fix flatpak run 2026-02-04 17:14:43 -05:00
Lysec d4de39f3ea LockScreenHeader adjust clock design (#1541)
NClock: allow style overwrite
2026-02-04 21:37:25 +01:00
Lemmy 3a1dbd4c28 i18n: common.color-select 2026-02-04 13:58:32 -05:00
Lemmy 8ffcc346d8 i18n: update + removed dead translations "colors.xxxx" are now in common 2026-02-04 13:35:48 -05:00
Lemmy c52af1e976 Merge pull request #1688 from notiant/patch-12
Add more colorization options to clock widget
2026-02-04 13:32:20 -05:00
Lemmy 5539149abe Merge pull request #1689 from notiant/patch-13
Move i18n color keys to common
2026-02-04 13:31:30 -05:00
notiant 15b4401c8a Update ClockSettings.qml 2026-02-04 19:28:27 +01:00
notiant 9ec34579c8 Update ClockSettings.qml 2026-02-04 19:25:29 +01:00
notiant 0bb6c511e3 move i18n color keys to common 2026-02-04 19:21:25 +01:00
notiant 9b1470e119 update widget defaut settings 2026-02-04 18:58:31 +01:00
notiant 4f973261da add more colorization options to clock widget 2026-02-04 18:46:37 +01:00
Lemmy 5705140d6d Merge pull request #1681 from turannul/pr/bt-py-bridge
Increase bluetooth pair timeout
2026-02-04 12:41:02 -05:00
Turann_ e3ae626292 shorten log statement 2026-02-04 20:03:08 +03:00
Turann_ 8a9cff3636 script logs now appear on debug srg 2026-02-04 20:02:44 +03:00
Turann_ dcb79f2ee4 Removed clean-start/re-discovery part. 2026-02-04 19:27:48 +03:00
Lemmy 91d07e9279 tooltips: fixed truncated edges with fractionnal scaling on hyprland 2026-02-04 10:08:01 -05:00
Lemmy 4950f5404f battery: removing displayMode setting, removing warningThreshold that was moved to notifications. 2026-02-04 09:52:18 -05:00
Lemmy b29e327dff battery: fix tooltip direction, code cleanup and "no battery" icon 2026-02-04 09:47:51 -05:00
Lemmy a071a41612 template-processor: reset closest color 2026-02-04 09:13:06 -05:00
Lemmy 75661fbaef Merge pull request #1684 from iynaix/closest-color-template
template-processor: support closest_color in templates
2026-02-04 09:12:04 -05:00
Lemmy 726fc65641 battery: crossfade animation 2026-02-04 09:09:12 -05:00
Lemmy b66faafd1a battery: fix panel anchors warning + improve visual 2026-02-04 08:51:39 -05:00
Lemmy f94a72baef bar: disable exclusion zone when the bar is explicitely toggled off. Fix #1686 2026-02-04 08:38:31 -05:00
Lemmy 433ad41bbe bar-battery: fix capsule and hover 2026-02-04 08:32:45 -05:00
Lin Xianyi a90083d6eb template-processor: support closest_color in templates 2026-02-04 17:05:13 +08:00
Lemmy eac8cf3fbf bar-battery: tooltip added charge level and health 2026-02-04 00:06:24 -05:00
Lemmy c3ee10aed0 battery: introducing NBattery component to replace the basic icon - wip 2026-02-03 23:33:42 -05:00
Lemmy 787aab1f0a autofmt 2026-02-03 22:19:51 -05:00
Lemmy 59588c7060 Merge pull request #1682 from notiant/patch-11
BatteryPanel: extend battery health hover area & SystemMonitorCard: live tooltips
2026-02-03 22:17:13 -05:00
Lemmy c5f41cf185 icons: added plug-filled for a future usage 2026-02-03 22:16:29 -05:00
notiant 7ded5224b6 another variable fix 2026-02-04 04:14:00 +01:00
notiant bc5ea26f3c fix variable 2026-02-04 04:12:27 +01:00
notiant f0cc2735e1 BatteryPanel: extend battery health hover area & SystemMonitorCard: live tooltips 2026-02-04 04:05:51 +01:00
Lemmy 34a25f78d2 bump version to 4.3.3-git 2026-02-03 21:30:23 -05:00
Lemmy e4ab3d9ab6 v4.3.2 2026-02-03 21:26:10 -05:00
Lemmy 5e477480a6 autofmt 2026-02-03 21:12:39 -05:00
Lemmy fd45475f00 settings-widgets-default 2026-02-03 21:12:33 -05:00
Lemmy c1cd368697 Merge pull request #1665 from iynaix/wallpaper-sort-random
WallpaperPanel: add sort by random
2026-02-03 21:11:25 -05:00
Lemmy 8da1966ad3 sysstat: better default fill and some graphing improvments 2026-02-03 21:04:20 -05:00
Turann_ d626f766b2 Improve log statements.
Clean start is might not the best approach to this.
2026-02-04 03:47:17 +03:00
Turann_ 02318e0010 Increase timeout time 2026-02-04 03:22:23 +03:00
Turann_ 9c09af8816 rename
This script has nothing to do with connecting to devices name misleading.
2026-02-04 03:17:35 +03:00
Turann_ c5836808d1 add log bridge 2026-02-04 02:59:05 +03:00
Lemmy ad51d12c56 sysstat: better graphing 2026-02-03 18:19:37 -05:00
Lemmy 88645f5c0b i18n: media-toast => toast-media 2026-02-03 17:50:11 -05:00
Lemmy 7ab46ddb0f autofmt 2026-02-03 17:44:04 -05:00
Lemmy 8e320baf31 i18n: update 2026-02-03 17:43:56 -05:00
Lemmy 5ac437d976 Merge pull request #1680 from turannul/pr/refactor-battery-pt5
Battery refactor pt5
2026-02-03 17:41:57 -05:00
Lemmy d728850986 i18n: update 2026-02-03 17:41:38 -05:00
Lemmy a544b61cb7 ngraph: drawing improvements 2026-02-03 17:39:36 -05:00
Turann_ 1187c36718 Merge branch 'main' into pr/refactor-battery-pt5 2026-02-04 01:37:38 +03:00
notiant a8eb5090df add panelID to SmartPanel 2026-02-03 23:24:52 +01:00
Turann_ d1f4dccc0a run fmt 2026-02-04 00:09:15 +03:00
Turann_ d5e29a7b1c remove test code 2026-02-03 23:55:44 +03:00
Lemmy eb3c906a10 sysstats: switched from Shapes to Canvas - added smooth scrolling. 2026-02-03 15:40:03 -05:00
Lysec 505d6343e0 Bumping 4.3.2-git 2026-02-03 21:20:24 +01:00
Lysec 9fe299309e TrayMenu: properly use checkState (#1679) 2026-02-03 21:11:28 +01:00
Turann_ b2e8707f2f Wrap {} w\ () make a obj 2026-02-03 22:58:35 +03:00
Lysec a1a28302a7 HyprlandService: hide special workspaces 2026-02-03 20:53:46 +01:00
Lemmy 2ed7fee0d2 shapes: always return a valid path to avoid qt triangulator errors/crashes 2026-02-03 14:22:40 -05:00
Lemmy 644aba252c Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-03 14:14:16 -05:00
Lemmy 74c1464577 template-processor: back to 112x112 anamorphic 2026-02-03 14:14:12 -05:00
Lysec 03ba5629de Merge pull request #1678 from thmoee/bug/named-workspaces
bug(hyprland): named workspaces break workspaces
2026-02-03 20:13:00 +01:00
Lysec 3e876e88bb Hooks/CustomButton: switch back to sh -lc 2026-02-03 20:02:28 +01:00
Lysec 8aa32c7a6d Switch sh -lc to sh -c in the whole codebase 2026-02-03 19:55:08 +01:00
notiant a361890033 add per-device hasNotified logic 2026-02-03 19:46:13 +01:00
Lysec ab7102a7b0 Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell 2026-02-03 18:20:27 +01:00
Lysec ff5e02e847 TrayMenu: add checkbox/radio buttons (#1679) 2026-02-03 18:20:17 +01:00
Lemmy 6f3603fcc2 Merge branch 'main' of github.com:noctalia-dev/noctalia-shell 2026-02-03 10:05:50 -05:00
Lemmy 6fd14150c1 brightness: avoid calling ddcutil without a busNum 2026-02-03 10:05:48 -05:00
thmoee d3532bc7ee HyprlandService: switch to workspace if it has a name 2026-02-03 15:00:56 +01:00
thmoee 5f1d6f02c0 HyprlandService: show workspaces with negative ids 2026-02-03 14:03:34 +01:00
Turann_ a22d5e518a Update path 2026-02-03 00:20:12 +03:00
notiant 42a4682a8b implement proper battery warnings 2026-02-02 20:15:47 +01:00
Lin Xianyi 8e8d819521 WallpaperPanel: add sort by random 2026-02-02 22:48:30 +08:00
Turann_ b66a8c75ca no need to check on disconnect. 2026-02-02 17:46:35 +03:00
Turann_ bb6bedfcac disallow notifications while plugged or charging. 2026-02-02 17:43:14 +03:00
Turann_ 13996fa250 fix name appending on internal batteries. 2026-02-02 17:34:06 +03:00
Turann_ a150cdf899 Notifications wip 1/? 2026-02-02 17:25:29 +03:00
notiant 4604f09322 fix double entries in tooltip 2026-02-02 14:20:14 +01:00
Turann_ e94fafc7dc Merge branch 'noctalia-dev:main' into pr/refactor-battery-pt5 2026-02-02 15:05:13 +03:00
Entrpi 2d8e41beaf SystemStat: add thermal_zone fallback for CPU and GPU temperature
The hwmon-based temperature detection only supports coretemp (Intel),
k10temp and zenpower (AMD). On ARM SoCs using SCMI firmware sensors
(e.g., CIX Sky1 with Mali-G720), temperature data is exposed via
/sys/class/thermal/thermal_zone* rather than hwmon.

Add a fallback that scans thermal zones when no hwmon sensor is found:

- CPU: reads all cpu-*-thermal zones and reports the hottest core
- GPU: uses gpu-avg-thermal (firmware average) when available,
  otherwise takes the max of individual gpu[N]-thermal zones

This enables system monitor temperature display on ARM platforms
without requiring any user configuration.

Tested on CIX Sky1 (Radxa Orion O6) with 14 SCMI thermal zones.
2026-02-02 16:11:19 +11:00
Turann_ 0b2efff426 Update BatteryService.qml 2026-02-02 07:33:10 +03:00
Turann_ 9d08cf5faf Update en.json 2026-02-02 07:22:17 +03:00
Turann_ 7ff1e6106c Update Settings.qml 2026-02-02 07:22:10 +03:00
Turann_ 736d592e10 Update BatteryPanel.qml 2026-02-02 07:22:05 +03:00
Turann_ 3b19ee9d57 Merge branch 'pr/refactor-battery-pt5' of https://github.com/turannul/noctalia-shell into pr/refactor-battery-pt5 2026-02-02 06:44:43 +03:00
Turann_ 2277d0e801 Merge branch 'noctalia-dev:main' into pr/refactor-battery-pt5 2026-02-02 06:44:25 +03:00
Turann_ 76e1b6dcba Merge branch 'pr/refactor-battery-pt5' of https://github.com/turannul/noctalia-shell into pr/refactor-battery-pt5 2026-02-02 06:43:53 +03:00
Turann_ 4dfcc2f8a9 notifications for all | Work in progress.... 2026-02-02 06:41:26 +03:00
Turann_ a07e56a5ed Rework colors p2 2026-02-02 06:34:37 +03:00
Turann_ 940fd843b8 Rework panel colors. 2026-02-02 06:29:43 +03:00
Turann_ f2c0e70258 Merge branch 'noctalia-dev:main' into pr/refactor-battery-pt5 2026-02-02 06:20:51 +03:00
Turann_ 748a653386 Move maybaNotify to Service. 1/? 2026-02-02 06:01:49 +03:00
Turann_ 07e97d858f More colors.
Changes done here open to discussion.
2026-02-02 05:54:33 +03:00
Turann_ ff06367036 Relocating warningThreshold 5/5 2026-02-02 05:12:03 +03:00
Turann_ dd93ced4dc Relocating warningThreshold 4/5 2026-02-02 05:10:31 +03:00
Turann_ 546c6b0fe6 Relocating warningThreshold 3/5 2026-02-02 05:10:26 +03:00
Turann_ 1f0b9466f2 Relocating warningThreshold 2/5 2026-02-02 05:10:20 +03:00
Turann_ f67e27187f Relocating warningThreshold 1/5 2026-02-02 05:09:43 +03:00
Turann_ 6385a3576d Merge branch 'noctalia-dev:main' into pr/refactor-battery-pt5 2026-02-02 04:42:57 +03:00
Turann_ ee0e2e383d Add color to Device name/percentage. 2026-02-02 03:58:11 +03:00
Turann_ 2746c502fc Use alternative icon for maybenotify 2026-02-02 03:40:15 +03:00
Turann_ adf71c8356 Formatted 2026-02-02 02:14:36 +03:00
Turann_ 52e58b8c95 Simplify getIcon 2026-02-02 02:14:00 +03:00
Turann_ 16936221be Close Show each battery percentage
Fixes #1111
2026-02-02 02:08:08 +03:00
qalqa-dev 4b9115233b dock: refresh app icons and names on DesktopEntries changes, and improve pinned app handling with proper names 2026-02-01 19:26:00 +03:00
Turann_ 4eda8ad1fb Update BatteryService.qml 2026-02-01 03:42:20 +03:00
Turann_ 61a1e0adff Revert "Update BatteryService.qml"
This reverts commit 0872ac08ba.
2026-02-01 01:28:46 +03:00
Turann_ 0872ac08ba Update BatteryService.qml 2026-02-01 01:11:00 +03:00
Turann_ ad848c8a61 make rounding in function not individually. 2026-02-01 00:56:41 +03:00
Turann_ 53c7e85acc Use proxied item from LockScreen 2026-02-01 00:33:06 +03:00
Turann_ 045931cd9b Add Icon from service. 2026-02-01 00:32:11 +03:00
Turann_ 214eb9d1cd Expose batteryIcon - primaryDevice. 2026-02-01 00:31:48 +03:00
Turann_ 0d37c7c82d Enforce laptopBattery 1/? 2026-02-01 00:23:30 +03:00
Turann_ 8c7aed8ff2 Unused import removed 2026-02-01 00:21:08 +03:00
Turann_ 51d4bde15a Remove redundant function: hasAnyBattery() 2026-01-31 23:27:37 +03:00
Turann_ 3cca35f3aa Add proper naming for multi battery setup 2026-01-31 23:06:31 +03:00
Turann_ b5e2e99282 Battery Health on hover. 2026-01-31 22:47:03 +03:00
notiant 361324ad4e Battery: further refactor 2026-01-31 19:34:07 +01:00
Bryan Martinez-Sanchez 47835d1421 notifications: add IPC functions for action invocation
Adds four new IPC functions to the notifications handler:
- getActions: returns actions for a notification by index
- invokeDefault: invokes the default (or first) action
- invokeDefaultAndDismiss: invokes default action and dismisses
- invokeAction: invokes a specific action by notification id

Enables external tools and scripts to interact with notification
actions programmatically via the existing IPC mechanism.
2026-01-29 01:24:15 -05:00
shouya b7ce840dbb remove arguments to init 2026-01-27 10:38:16 +09:00
Wilfred Mallawa 75e7ebbb91 calendar/eds: convert event times to local timezone
Currently, the calendar does not convert events to local timezone.

This patch extracts the IANA timezone from Evolution's internal format and use
ZoneInfo for proper timezone-aware datetime conversion.

Signed-off-by: Wilfred Mallawa <wilfred.opensource@gmail.com>
2026-01-27 10:46:55 +10:00
shouya 2f702cdc43 Merge remote-tracking branch 'upstream/main' 2026-01-25 11:17:05 +09:00
shouya 5650a2cc4c fix bad merges 2026-01-25 11:14:27 +09:00
shouya f09ff15c23 Merge remote-tracking branch 'upstream/main' 2026-01-21 11:41:41 +09:00
shouya 5e6c28ee04 remove redundant logic 2026-01-21 11:35:31 +09:00
shouya 29f0874aae run qmlfmt 2026-01-21 00:40:39 +09:00
shouya 5e638271f2 check for khal availability 2026-01-21 00:39:03 +09:00
shouya 57e0528b99 check for khal availability 2026-01-20 23:55:27 +09:00
shouya 844c6c2bd3 support khal as calendar data provider 2026-01-20 23:49:01 +09:00
Lemmy 78f1c6825a 1st pass on launcher in overlay 2026-01-11 21:56:43 -05:00
486 changed files with 57927 additions and 20137 deletions
-31
View File
@@ -1,31 +0,0 @@
---
name: Bug Report
about: Report a bug from noctalia-shell
title: ''
labels: bug
assignees: ''
---
### Description
A clear and concise description of the bug.
### Steps to Reproduce
1. Go to '...'
2. Click on '...'
3. See the error.
### Expected Behavior
Explain what you expected to happen.
### Screenshots
Add screenshots if applicable.
### Environment
- Distro: [e.g., CachyOS, NixOS, Arch, ...]
- Compositor: [ e.g., Hyprland, Niri, ...]
- Noctalia-shell Version: [e.g., 1.0.0, available in About tab]
- Monitor resolution: [e.g., 1920x1080]
### Additional Context
Add any other context about the problem here.
+128
View File
@@ -0,0 +1,128 @@
name: Bug Report
description: Report a bug or regression in Noctalia
title: "[BUG] "
labels: ["bug"]
assignees: [Ly-sec, ItsLemmy]
body:
- type: checkboxes
id: submission-checklist
attributes:
label: Submission checklist
description: Please confirm the following before submitting.
options:
- label: I have searched existing issues and confirmed this is not a duplicate.
required: true
- label: I am using the latest available version of Noctalia.
required: true
- type: textarea
id: description
attributes:
label: Bug description
description: A clear and concise description of the issue.
placeholder: Describe the problem...
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: Steps required to reproduce the issue.
placeholder: |
1. Open ...
2. Click ...
3. Observe ...
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
description: What did you expect to happen?
validations:
required: true
- type: textarea
id: actual
attributes:
label: Actual behavior
description: What actually happened?
validations:
required: true
- type: textarea
id: logs
attributes:
label: Logs / error output
description: |
Paste any relevant logs, terminal output, or stack traces here.
Examples:
- journalctl output
- terminal errors
- crash logs
Large outputs can be wrapped in a `<details>` block.
render: text
- type: dropdown
id: compositor
attributes:
label: Compositor
description: Select the compositor where the issue occurs.
options:
- Niri
- Hyprland
- Sway
- Scroll
- Labwc
- Mango
- Other
validations:
required: true
- type: dropdown
id: distribution
attributes:
label: Distribution
description: Select the Linux distribution family where the issue occurs.
options:
- Arch-based
- Fedora-based
- Debian-based
- Gentoo-based
- NixOS
- openSUSE-based
- Void
- Other
validations:
required: true
- type: textarea
id: environment
attributes:
label: Environment information
description: |
Please provide relevant system information:
If you selected `Other` for distribution and/or compositor, please specify the exact one(s) here.
- Noctalia version or commit:
- Installation method:
- GPU:
placeholder: |
Noctalia version: main / commit hash
Installation method: AUR
GPU: AMD RX 7800 XT (amdgpu)
render: text
validations:
required: true
- type: textarea
id: additional
attributes:
label: Additional context
description: |
Add any other context, screenshots, or relevant information here.
+7 -11
View File
@@ -1,12 +1,8 @@
blank_issues_enabled: false
issue_templates:
- name: "Bug Report"
description: "Report a bug in the system."
title: "[Bug]: "
labels: ["bug"]
body: "./ISSUE_TEMPLATE/bug_report.md"
- name: "Feature Request"
description: "Propose a new feature or improvement."
title: "[Feature]: "
labels: ["enhancement"]
body: "./ISSUE_TEMPLATE/feature_request.md"
contact_links:
- name: Noctalia Fluxer
url: https://fluxer.gg/Noctalia
about: Join the community for support, discussions, and quick help.
- name: Noctalia Docs
url: https://docs.noctalia.dev
about: Browse the documentation, guides, and frequently asked questions.
-20
View File
@@ -1,20 +0,0 @@
---
name: Feature Request
about: Suggest a new feature or improvement
title: ''
labels: feature
assignees: ''
---
### Feature Description
What feature would you like to see?
### Why Is This Needed?
Explain the problem or need for this feature.
### Suggested Solutions
Describe how this feature could be implemented.
### Additional Context
Add any relevant screenshots, links, or resources.
@@ -0,0 +1,92 @@
name: Feature Request
description: Suggest an improvement, new feature, or enhancement for Noctalia
title: "[FEATURE] "
labels: ["feature"]
assignees: [Ly-sec, ItsLemmy]
body:
- type: checkboxes
id: submission-checklist
attributes:
label: Submission checklist
description: Please confirm the following before submitting.
options:
- label: I have searched existing issues and confirmed this has not been requested before.
required: true
- label: I have checked existing pull requests for similar changes.
required: true
- type: dropdown
id: feature-type
attributes:
label: Feature type
description: What kind of feature or improvement is this?
options:
- UI / visual improvement
- New functionality
- Performance improvement
- Configuration / customization
- Accessibility improvement
- Developer / API improvement
- Integration support
- Documentation improvement
- Other
validations:
required: true
- type: textarea
id: summary
attributes:
label: Feature summary
description: A concise description of the feature or enhancement.
placeholder: What would you like to see added or changed?
validations:
required: true
- type: textarea
id: motivation
attributes:
label: Motivation / use case
description: |
Why would this feature be useful?
What problem does it solve or improve?
placeholder: Explain the benefit or real-world use case...
validations:
required: true
- type: textarea
id: proposed-solution
attributes:
label: Proposed solution
description: |
Describe how you think this could work.
Mockups, examples, screenshots, or references are welcome.
placeholder: Describe your idea...
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives considered
description: |
Have you considered any alternative solutions or workarounds?
placeholder: Optional...
- type: textarea
id: references
attributes:
label: References / related projects
description: |
Link any related projects, concepts, screenshots, issues, or examples here.
placeholder: |
https://github.com/...
https://example.com/...
- type: textarea
id: additional
attributes:
label: Additional context
description: |
Add any additional information, screenshots, mockups, or context here.
+2
View File
@@ -2,6 +2,8 @@
<!-- If this is a color scheme PR, please create it in https://github.com/noctalia-dev/noctalia-colorschemes instead -->
If this PR is not ready for review yet, please mark it as **Draft** until it's good to be reviewed.
## Motivation
Provide a clear and concise explanation of what this PR does and why it is needed.
+26
View File
@@ -0,0 +1,26 @@
name: cachix
on:
push:
branches:
- main
workflow_run:
workflows: ["update flake"]
types:
- completed
branches:
- main
workflow_dispatch:
jobs:
cache:
runs-on: ubuntu-latest
if: ${{ github.repository == 'noctalia-dev/noctalia-shell' }}
steps:
- uses: actions/checkout@v6
- uses: cachix/install-nix-action@v31
- uses: cachix/cachix-action@v17
with:
name: "${{ secrets.CACHIX_CACHE_NAME }}"
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- run: nix build .
+128
View File
@@ -0,0 +1,128 @@
name: Label Issue Metadata
on:
issues:
types: [opened, edited]
permissions:
contents: read
issues: write
jobs:
label-issue-metadata:
runs-on: ubuntu-latest
steps:
- name: Apply compositor and distribution labels from issue form
uses: actions/github-script@v7
with:
script: |
const issue = context.payload.issue;
const body = issue.body || "";
const issueNumber = issue.number;
const { owner, repo } = context.repo;
const extractValue = (heading) => {
const escapedHeading = heading.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
const match = body.match(new RegExp(`^\\s*(?:###\\s*)?${escapedHeading}\\s*\\r?\\n+([^\\n\\r]+)`, "im"));
return match ? match[1].trim() : null;
};
const compositorValue = extractValue("Compositor");
const distributionValue = extractValue("Distribution");
const compositorLabelMap = {
"Niri": "compositor:niri",
"Hyprland": "compositor:hyprland",
"Sway": "compositor:sway",
"Scroll": "compositor:scroll",
"Labwc": "compositor:labwc",
"Mango": "compositor:mango",
"MangoWC": "compositor:mango",
"Other": "compositor:other"
};
const distributionLabelMap = {
"Arch-based": "distro:arch-based",
"Fedora-based": "distro:fedora-based",
"Debian-based": "distro:debian-based",
"NixOS": "distro:nixos",
"openSUSE-based": "distro:opensuse",
"Gentoo-based": "distro:gentoo",
"Void": "distro:void",
"Void-based": "distro:void",
"Other": "distro:other"
};
const mappings = [
{
kind: "compositor",
prefix: "compositor:",
selectedValue: compositorValue,
labelMap: compositorLabelMap,
description: "Issue reported for this compositor stack"
},
{
kind: "distribution",
prefix: "distro:",
selectedValue: distributionValue,
labelMap: distributionLabelMap,
description: "Issue reported for this Linux distribution family"
}
];
async function ensureLabelExists(name, description) {
try {
await github.rest.issues.getLabel({ owner, repo, name });
} catch (error) {
if (error.status !== 404) throw error;
await github.rest.issues.createLabel({
owner,
repo,
name,
color: "5319e7",
description
});
core.info(`Created missing label "${name}".`);
}
}
const existingLabels = issue.labels.map((label) => label.name);
for (const mapping of mappings) {
if (!mapping.selectedValue) {
core.info(`${mapping.kind} field not found in issue body; skipping.`);
continue;
}
const targetLabel = mapping.labelMap[mapping.selectedValue];
if (!targetLabel) {
core.info(`No ${mapping.kind} label mapping found for value: "${mapping.selectedValue}"`);
continue;
}
await ensureLabelExists(targetLabel, mapping.description);
const currentKindLabels = existingLabels.filter((name) => name.startsWith(mapping.prefix));
for (const label of currentKindLabels) {
if (label === targetLabel) continue;
try {
await github.rest.issues.removeLabel({
owner,
repo,
issue_number: issueNumber,
name: label
});
} catch (error) {
core.info(`Could not remove label "${label}": ${error.message}`);
}
}
await github.rest.issues.addLabels({
owner,
repo,
issue_number: issueNumber,
labels: [targetLabel]
});
core.info(`Applied ${mapping.kind} label "${targetLabel}" from value "${mapping.selectedValue}".`);
}
+20
View File
@@ -0,0 +1,20 @@
name: update flake
on:
schedule:
- cron: "0 0 * * *" # daily
workflow_dispatch:
jobs:
update:
runs-on: ubuntu-latest
if: ${{ github.repository == 'noctalia-dev/noctalia-shell' }}
permissions:
contents: write
steps:
- uses: actions/checkout@v6
- uses: DeterminateSystems/nix-installer-action@main
- run: nix flake update
- uses: stefanzweifel/git-auto-commit-action@v7
with:
commit_message: "chore(flake): update flake.lock"
+5
View File
@@ -5,3 +5,8 @@
*.code-workspace
RELEASE.md
__pycache__
result
build
/debian/
.direnv/
.envrc
+6 -6
View File
@@ -9,9 +9,9 @@
"mError": "#D95757",
"mOnError": "#0B0E14",
"mSurface": "#0B0E14",
"mOnSurface": "#BFBDB6",
"mOnSurface": "#D1D1C7",
"mSurfaceVariant": "#1e222a",
"mOnSurfaceVariant": "#636A72",
"mOnSurfaceVariant": "#8E959E",
"mOutline": "#565B66",
"mShadow": "#000000",
"mHover": "#39BAE6",
@@ -37,7 +37,7 @@
"cyan": "#95e6cb",
"white": "#ffffff"
},
"foreground": "#cccac2",
"foreground": "#D1D1C7",
"background": "#1f2430",
"selectionFg": "#1f2430",
"selectionBg": "#409fff",
@@ -55,9 +55,9 @@
"mError": "#E65050",
"mOnError": "#F8F9FA",
"mSurface": "#F8F9FA",
"mOnSurface": "#5C6166",
"mOnSurface": "#42474C",
"mSurfaceVariant": "#E4E6E9",
"mOnSurfaceVariant": "#8A9199",
"mOnSurfaceVariant": "#6E757C",
"mOutline": "#8A9199",
"mShadow": "#F8F9FA",
"mHover": "#55B4D4",
@@ -83,7 +83,7 @@
"cyan": "#4cbf99",
"white": "#d1d1d1"
},
"foreground": "#5c6166",
"foreground": "#42474C",
"background": "#f8f9fa",
"selectionFg": "#f8f9fa",
"selectionBg": "#035bd6",
+2 -2
View File
@@ -84,11 +84,11 @@
"white": "#eceff4"
},
"foreground": "#414858",
"background": "#e5e9f0",
"background": "#eceff4",
"selectionFg": "#4c556a",
"selectionBg": "#d8dee9",
"cursorText": "#3b4252",
"cursor": "#7bb3c3"
}
}
}
}
Binary file not shown.
@@ -0,0 +1,17 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"modules": [
"os",
"kernel",
"title",
"board",
"host",
"uptime",
"cpu",
"gpu",
"memory",
"disk",
"wm",
"packages"
]
}
-12
View File
@@ -1,12 +0,0 @@
[Unit]
Description=Noctalia Shell Service
BindsTo=graphical-session.target
After=graphical-session.target
[Service]
ExecStart=qs -c noctalia-shell
Restart=on-failure
RestartSec=1
[Install]
WantedBy=graphical-session.target
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

-1
View File
@@ -1,5 +1,4 @@
[color]
background = '{{colors.surface.default.hex}}'
foreground = '{{colors.primary.default.hex}}'
gradient = 1
+7 -7
View File
@@ -148,13 +148,13 @@
;; Org mode with hidden asterisks
`(org-level-1 ((t (:foreground ,primary :weight bold :height 1.2))))
`(org-level-2 ((t (:foreground ,primary-container :weight bold :height 1.1))))
`(org-level-3 ((t (:foreground ,secondary :weight bold))))
`(org-level-4 ((t (:foreground ,secondary-container :weight bold))))
`(org-level-5 ((t (:foreground ,tertiary :weight bold))))
`(org-level-6 ((t (:foreground ,tertiary-container :weight bold))))
`(org-level-7 ((t (:foreground ,primary-fixed :weight bold))))
`(org-level-8 ((t (:foreground ,primary-fixed-dim :weight bold))))
`(org-level-2 ((t (:foreground ,secondary :weight bold :height 1.1))))
`(org-level-3 ((t (:foreground ,tertiary :weight bold))))
`(org-level-4 ((t (:foreground ,primary :weight bold))))
`(org-level-5 ((t (:foreground ,secondary :weight bold))))
`(org-level-6 ((t (:foreground ,tertiary :weight bold))))
`(org-level-7 ((t (:foreground ,primary :weight bold))))
`(org-level-8 ((t (:foreground ,secondary :weight bold))))
`(org-document-title ((t (:foreground ,primary :weight bold :height 1.3))))
`(org-document-info ((t (:foreground ,primary-container))))
`(org-todo ((t (:foreground ,err :weight bold))))
@@ -1,6 +1,7 @@
/*
* GTK Colors
* GTK Colors (GTK3)
* Generated by Noctalia's Template Processor
* stylelint-disable at-rule-no-unknown
*/
@define-color accent_color {{colors.primary.default.hex}};
@@ -37,7 +38,7 @@
@define-color sidebar_bg_color {{colors.surface_container.default.hex}};
@define-color sidebar_fg_color {{colors.on_surface.default.hex}};
@define-color sidebar_backdrop_color @sidebar_bg_color;
@define-color sidebar_backdrop_color @window_bg_color;
@define-color sidebar_border_color @window_bg_color;
@define-color secondary_sidebar_bg_color {{colors.surface.default.hex}};
+103
View File
@@ -0,0 +1,103 @@
/*
* GTK Colors (GTK4)
* Generated by Noctalia's Template Processor
* stylelint-disable at-rule-no-unknown
*/
@define-color accent_color {{colors.primary.default.hex}};
@define-color accent_bg_color {{colors.primary.default.hex}};
@define-color accent_fg_color {{colors.on_primary.default.hex}};
@define-color destructive_bg_color {{colors.error.default.hex}};
@define-color destructive_fg_color {{colors.on_error.default.hex}};
@define-color error_bg_color {{colors.error.default.hex}};
@define-color error_fg_color {{colors.on_error.default.hex}};
@define-color window_bg_color {{colors.surface.default.hex}};
@define-color window_fg_color {{colors.on_surface.default.hex}};
@define-color view_bg_color {{colors.surface.default.hex}};
@define-color view_fg_color {{colors.on_surface.default.hex}};
@define-color headerbar_bg_color {{colors.surface.default.hex}};
@define-color headerbar_fg_color {{colors.on_surface.default.hex}};
@define-color headerbar_backdrop_color @window_bg_color;
@define-color popover_bg_color {{colors.surface_container.default.hex}};
@define-color popover_fg_color {{colors.on_surface.default.hex}};
@define-color card_bg_color {{colors.surface_container.default.hex}};
@define-color card_fg_color {{colors.on_surface.default.hex}};
@define-color dialog_bg_color {{colors.surface.default.hex}};
@define-color dialog_fg_color {{colors.on_surface.default.hex}};
@define-color overview_bg_color {{colors.surface_container.default.hex}};
@define-color overview_fg_color {{colors.on_surface.default.hex}};
@define-color sidebar_bg_color {{colors.surface_container.default.hex}};
@define-color sidebar_fg_color {{colors.on_surface.default.hex}};
@define-color sidebar_backdrop_color @window_bg_color;
@define-color sidebar_border_color @window_bg_color;
@define-color secondary_sidebar_bg_color {{colors.surface.default.hex}};
@define-color secondary_sidebar_fg_color {{colors.on_surface.default.hex}};
/* Backdrop/unfocused states */
@define-color theme_unfocused_fg_color @window_fg_color;
@define-color theme_unfocused_text_color @view_fg_color;
@define-color theme_unfocused_bg_color @window_bg_color;
@define-color theme_unfocused_base_color @window_bg_color;
@define-color theme_unfocused_selected_bg_color @accent_bg_color;
@define-color theme_unfocused_selected_fg_color @accent_fg_color;
:root {
--accent-color: {{colors.primary.default.hex}};
--accent-bg-color: {{colors.primary.default.hex}};
--accent-fg-color: {{colors.on_primary.default.hex}};
--destructive-bg-color: {{colors.error.default.hex}};
--destructive-fg-color: {{colors.on_error.default.hex}};
--error-bg-color: {{colors.error.default.hex}};
--error-fg-color: {{colors.on_error.default.hex}};
--error-color: {{colors.error.default.hex}};
--window-bg-color: {{colors.surface.default.hex}};
--window-fg-color: {{colors.on_surface.default.hex}};
--view-bg-color: {{colors.surface.default.hex}};
--view-fg-color: {{colors.on_surface.default.hex}};
--headerbar-bg-color: {{colors.surface.default.hex}};
--headerbar-fg-color: {{colors.on_surface.default.hex}};
--headerbar-backdrop-color: @window_bg_color;
--popover-bg-color: {{colors.surface_container.default.hex}};
--popover-fg-color: {{colors.on_surface.default.hex}};
--card-bg-color: {{colors.surface_container.default.hex}};
--card-fg-color: {{colors.on_surface.default.hex}};
--dialog-bg-color: {{colors.surface.default.hex}};
--dialog-fg-color: {{colors.on_surface.default.hex}};
--overview-bg-color: {{colors.surface_container.default.hex}};
--overview-fg-color: {{colors.on_surface.default.hex}};
--sidebar-bg-color: {{colors.surface_container.default.hex}};
--sidebar-fg-color: {{colors.on_surface.default.hex}};
--sidebar-backdrop-color: @window_bg_color;
--sidebar-border-color: @window_bg_color;
--warning-bg-color: {{colors.tertiary_container.default.hex}};
--warning-fg-color: {{colors.on_tertiary_container.default.hex}};
--warning-color: {{colors.tertiary.default.hex}};
--success-color: {{colors.secondary.default.hex}};
--success-bg-color: {{colors.secondary_container.default.hex}};
--success-fg-color: {{colors.on_secondary_container.default.hex}};
--shade-color: rgba(0, 0, 0, 0.36);
}
+16 -13
View File
@@ -1,6 +1,6 @@
# Syntax highlighting
# -------------------
"attribute" = "secondary"
"attribute" = { fg = "primary", modifiers = ["bold"] }
"type" = "primary"
"type.enum.variant" = "secondary"
@@ -11,27 +11,30 @@
"constant.character" = "secondaryContainer"
"constant.character.escape" = "tertiaryContainer"
"string" = "tertiary"
"string.regexp" = "tertiaryContainer"
"string.special" = "tertiary"
"string.special.symbol" = "tertiary"
"string" = { fg = "tertiary", bg = "surfaceContainerHigh" }
"string.regexp" = { fg = "tertiaryContainer", bg = "surfaceContainerHigh" }
"string.special" = { fg = "tertiary", bg = "surfaceContainerHigh" }
"string.special.symbol" = { fg = "tertiary", bg = "surfaceContainerHigh" }
"string.special.path" = { fg = "secondary", underline = { color = "secondary", style = "line" } }
"comment" = { fg = "outline", modifiers = ["italic"] }
"path" = { fg = "secondary", underline = { color = "secondary", style = "line" } }
"comment" = { fg = "outline", bg = "surfaceContainerHigh", modifiers = ["italic"] }
"variable" = "onSurface"
"variable.builtin" = "secondary"
"variable.parameter" = { fg = "onSurfaceVariant", modifiers = ["italic"] }
"variable.other.member" = "onSurface"
"variable.other.member" = "primary"
"label" = "secondary"
"punctuation" = "onBackground"
"punctuation.special" = "onBackground"
"punctuation" = "outlineVariant"
"punctuation.special" = "outline"
"keyword" = "primary"
"keyword.control.conditional" = { fg = "tertiary", modifiers = ["italic"] }
"keyword" = { fg = "primary", modifiers = ["bold"] }
"keyword.control.conditional" = { fg = "tertiary", modifiers = ["italic", "bold"] }
"operator" = "primary"
"operator" = { fg = "secondary", modifiers = ["bold"] }
"function" = "tertiary"
"function.macro" = "tertiary"
@@ -44,7 +47,7 @@
"markup.heading" = "primary"
"markup.list" = "onSurface"
"markup.bold" = { fg = "second", modifiers = ["bold"] }
"markup.bold" = { fg = "secondary", modifiers = ["bold"] }
"markup.italic" = { fg = "secondary", modifiers = ["italic"] }
"markup.link.url" = { fg = "secondary", modifiers = ["italic", "underlined"] }
"markup.link.label" = "primary"
+104 -104
View File
@@ -6,7 +6,7 @@ ColorScheme=Noctalia
Name=noctalia
[ColorEffects:Disabled]
Color={{colors.surface_container_lowest.default.hex}}
Color={{colors.surface_container_lowest.default.rgb_csv}}
ColorAmount=0
ColorEffect=0
ContrastAmount=0.65
@@ -16,7 +16,7 @@ IntensityEffect=2
[ColorEffects:Inactive]
ChangeSelectionColor=true
Color={{colors.surface_variant.default.hex}}
Color={{colors.surface_variant.default.rgb_csv}}
ColorAmount=0.025
ColorEffect=2
ContrastAmount=0.1
@@ -26,121 +26,121 @@ IntensityAmount=0
IntensityEffect=0
[Colors:Button]
BackgroundAlternate={{colors.surface_container_low.default.hex}}
BackgroundNormal={{colors.surface_container_high.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_surface.default.hex}}
ForegroundPositive={{colors.tertiary.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
BackgroundAlternate={{colors.surface_container_low.default.rgb_csv}}
BackgroundNormal={{colors.surface_container_high.default.rgb_csv}}
DecorationFocus={{colors.primary.default.rgb_csv}}
DecorationHover={{colors.primary.default.rgb_csv}}
ForegroundActive={{colors.primary.default.rgb_csv}}
ForegroundInactive={{colors.on_surface_variant.default.rgb_csv}}
ForegroundLink={{colors.secondary.default.rgb_csv}}
ForegroundNegative={{colors.error.default.rgb_csv}}
ForegroundNeutral={{colors.tertiary.default.rgb_csv}}
ForegroundNormal={{colors.on_surface.default.rgb_csv}}
ForegroundPositive={{colors.tertiary.default.rgb_csv}}
ForegroundVisited={{colors.on_secondary_container.default.rgb_csv}}
[Colors:Complementary]
BackgroundAlternate={{colors.surface_container_low.default.hex}}
BackgroundNormal={{colors.surface.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_primary_container.default.hex}}
ForegroundPositive={{colors.tertiary.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
BackgroundAlternate={{colors.surface_container_low.default.rgb_csv}}
BackgroundNormal={{colors.surface.default.rgb_csv}}
DecorationFocus={{colors.primary.default.rgb_csv}}
DecorationHover={{colors.primary.default.rgb_csv}}
ForegroundActive={{colors.primary.default.rgb_csv}}
ForegroundInactive={{colors.on_surface_variant.default.rgb_csv}}
ForegroundLink={{colors.secondary.default.rgb_csv}}
ForegroundNegative={{colors.error.default.rgb_csv}}
ForegroundNeutral={{colors.tertiary.default.rgb_csv}}
ForegroundNormal={{colors.on_primary_container.default.rgb_csv}}
ForegroundPositive={{colors.tertiary.default.rgb_csv}}
ForegroundVisited={{colors.on_secondary_container.default.rgb_csv}}
[Colors:Header]
BackgroundAlternate={{colors.surface.default.hex}}
BackgroundNormal={{colors.surface_container.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_surface.default.hex}}
ForegroundPositive={{colors.tertiary.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
BackgroundAlternate={{colors.surface.default.rgb_csv}}
BackgroundNormal={{colors.surface_container.default.rgb_csv}}
DecorationFocus={{colors.primary.default.rgb_csv}}
DecorationHover={{colors.primary.default.rgb_csv}}
ForegroundActive={{colors.primary.default.rgb_csv}}
ForegroundInactive={{colors.on_surface_variant.default.rgb_csv}}
ForegroundLink={{colors.secondary.default.rgb_csv}}
ForegroundNegative={{colors.error.default.rgb_csv}}
ForegroundNeutral={{colors.tertiary.default.rgb_csv}}
ForegroundNormal={{colors.on_surface.default.rgb_csv}}
ForegroundPositive={{colors.tertiary.default.rgb_csv}}
ForegroundVisited={{colors.on_secondary_container.default.rgb_csv}}
[Colors:Header][Inactive]
BackgroundAlternate={{colors.surface_container.default.hex}}
BackgroundNormal={{colors.surface.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_surface.default.hex}}
ForegroundPositive={{colors.tertiary.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
BackgroundAlternate={{colors.surface_container.default.rgb_csv}}
BackgroundNormal={{colors.surface.default.rgb_csv}}
DecorationFocus={{colors.primary.default.rgb_csv}}
DecorationHover={{colors.primary.default.rgb_csv}}
ForegroundActive={{colors.primary.default.rgb_csv}}
ForegroundInactive={{colors.on_surface_variant.default.rgb_csv}}
ForegroundLink={{colors.secondary.default.rgb_csv}}
ForegroundNegative={{colors.error.default.rgb_csv}}
ForegroundNeutral={{colors.tertiary.default.rgb_csv}}
ForegroundNormal={{colors.on_surface.default.rgb_csv}}
ForegroundPositive={{colors.tertiary.default.rgb_csv}}
ForegroundVisited={{colors.on_secondary_container.default.rgb_csv}}
[Colors:Selection]
BackgroundAlternate={{colors.surface_container_low.default.hex}}
BackgroundNormal={{colors.primary.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.on_primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error_container.default.hex}}
ForegroundNeutral={{colors.tertiary_container.default.hex}}
ForegroundNormal={{colors.on_primary.default.hex}}
ForegroundPositive={{colors.tertiary_container.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
BackgroundAlternate={{colors.surface_container_low.default.rgb_csv}}
BackgroundNormal={{colors.primary.default.rgb_csv}}
DecorationFocus={{colors.primary.default.rgb_csv}}
DecorationHover={{colors.primary.default.rgb_csv}}
ForegroundActive={{colors.on_primary.default.rgb_csv}}
ForegroundInactive={{colors.on_surface_variant.default.rgb_csv}}
ForegroundLink={{colors.secondary.default.rgb_csv}}
ForegroundNegative={{colors.error_container.default.rgb_csv}}
ForegroundNeutral={{colors.tertiary_container.default.rgb_csv}}
ForegroundNormal={{colors.on_primary.default.rgb_csv}}
ForegroundPositive={{colors.tertiary_container.default.rgb_csv}}
ForegroundVisited={{colors.on_secondary_container.default.rgb_csv}}
[Colors:Tooltip]
BackgroundAlternate={{colors.surface.default.hex}}
BackgroundNormal={{colors.surface_container.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_background.default.hex}}
ForegroundPositive={{colors.tertiary.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
BackgroundAlternate={{colors.surface.default.rgb_csv}}
BackgroundNormal={{colors.surface_container.default.rgb_csv}}
DecorationFocus={{colors.primary.default.rgb_csv}}
DecorationHover={{colors.primary.default.rgb_csv}}
ForegroundActive={{colors.primary.default.rgb_csv}}
ForegroundInactive={{colors.on_surface_variant.default.rgb_csv}}
ForegroundLink={{colors.secondary.default.rgb_csv}}
ForegroundNegative={{colors.error.default.rgb_csv}}
ForegroundNeutral={{colors.tertiary.default.rgb_csv}}
ForegroundNormal={{colors.on_background.default.rgb_csv}}
ForegroundPositive={{colors.tertiary.default.rgb_csv}}
ForegroundVisited={{colors.on_secondary_container.default.rgb_csv}}
[Colors:View]
BackgroundAlternate={{colors.surface_container.default.hex}}
BackgroundNormal={{colors.background.default.hex}}
DecorationFocus={{colors.on_primary_container.default.hex}}
DecorationHover={{colors.on_primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_background.default.hex}}
ForegroundPositive={{colors.tertiary.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
BackgroundAlternate={{colors.surface_container.default.rgb_csv}}
BackgroundNormal={{colors.background.default.rgb_csv}}
DecorationFocus={{colors.on_primary_container.default.rgb_csv}}
DecorationHover={{colors.on_primary.default.rgb_csv}}
ForegroundActive={{colors.primary.default.rgb_csv}}
ForegroundInactive={{colors.on_surface_variant.default.rgb_csv}}
ForegroundLink={{colors.secondary.default.rgb_csv}}
ForegroundNegative={{colors.error.default.rgb_csv}}
ForegroundNeutral={{colors.tertiary.default.rgb_csv}}
ForegroundNormal={{colors.on_background.default.rgb_csv}}
ForegroundPositive={{colors.tertiary.default.rgb_csv}}
ForegroundVisited={{colors.on_secondary_container.default.rgb_csv}}
[Colors:Window]
BackgroundAlternate={{colors.primary_container.default.hex}}
BackgroundNormal={{colors.surface_container.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_background.default.hex}}
ForegroundPositive={{colors.tertiary.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
BackgroundAlternate={{colors.primary_container.default.rgb_csv}}
BackgroundNormal={{colors.surface_container.default.rgb_csv}}
DecorationFocus={{colors.primary.default.rgb_csv}}
DecorationHover={{colors.primary.default.rgb_csv}}
ForegroundActive={{colors.primary.default.rgb_csv}}
ForegroundInactive={{colors.on_surface_variant.default.rgb_csv}}
ForegroundLink={{colors.secondary.default.rgb_csv}}
ForegroundNegative={{colors.error.default.rgb_csv}}
ForegroundNeutral={{colors.tertiary.default.rgb_csv}}
ForegroundNormal={{colors.on_background.default.rgb_csv}}
ForegroundPositive={{colors.tertiary.default.rgb_csv}}
ForegroundVisited={{colors.on_secondary_container.default.rgb_csv}}
[WM]
activeBackground={{colors.primary_container.default.hex}}
activeBlend={{colors.on_primary_container.default.hex}}
activeForeground={{colors.on_primary_container.default.hex}}
inactiveBackground={{colors.surface.default.hex}}
inactiveBlend={{colors.on_surface_variant.default.hex}}
inactiveForeground={{colors.on_surface_variant.default.hex}}
activeBackground={{colors.primary_container.default.rgb_csv}}
activeBlend={{colors.on_primary_container.default.rgb_csv}}
activeForeground={{colors.on_primary_container.default.rgb_csv}}
inactiveBackground={{colors.surface.default.rgb_csv}}
inactiveBlend={{colors.on_surface_variant.default.rgb_csv}}
inactiveForeground={{colors.on_surface_variant.default.rgb_csv}}
+37
View File
@@ -0,0 +1,37 @@
# window border
window.active.border.color: {{colors.primary.default.hex}}
window.inactive.border.color: {{colors.secondary.default.hex}}
# ToggleKeybinds status indicator
window.active.indicator.toggled-keybind.color: {{colors.error.default.hex}}
# window titlebar background
window.active.title.bg.color: {{colors.primary.default.hex}}
window.inactive.title.bg.color: {{colors.secondary.default.hex}}
window.active.label.text.color: {{colors.on_primary.default.hex}}
window.inactive.label.text.color: {{colors.on_secondary.default.hex}}
window.label.text.justify: center
# window button hover overlay
window.button.hover.bg.color: {{colors.hover.default.hex}}
# window buttons
window.active.button.unpressed.image.color: {{colors.on_primary.default.hex}}
window.inactive.button.unpressed.image.color: {{colors.on_primary.default.hex}}
# menu
menu.border.color: {{colors.on_primary.default.hex}}
menu.items.bg.color: {{colors.primary.default.hex}}
menu.items.text.color: {{colors.on_primary.default.hex}}
menu.items.active.bg.color: {{colors.secondary.default.hex}}
menu.items.active.text.color: {{colors.on_secondary.default.hex}}
menu.separator.color: {{colors.on_primary.default.hex}}
menu.title.bg.color: {{colors.primary.default.hex}}
menu.title.text.color: {{colors.on_primary.default.hex}}
# on screen display (window-cycle dialog)
osd.bg.color: {{colors.primary.default.hex}}
osd.border.color: {{colors.on_primary.default.hex}}
osd.label.text.color: {{colors.on_primary.default.hex}}
osd.window-switcher.preview.border.color: {{colors.outline.default.hex}}
+11 -11
View File
@@ -2,21 +2,21 @@
"wallpaper": "{{image}}",
"alpha": "100",
"colors": {
"color0": "{{colors.background.default.hex}}",
"color1": "{{colors.surface_container.default.hex}}",
"color2": "{{colors.surface_container_highest.default.hex}}",
"color3": "",
"color0": "{{colors.surface.dark.hex}}",
"color1": "",
"color2": "",
"color3": "{{colors.primary.default.hex}}",
"color4": "",
"color5": "",
"color5": "{{colors.tertiary.default.hex}}",
"color6": "",
"color7": "",
"color7": "{{colors.surface_container_highest.default.hex}}",
"color8": "",
"color9": "",
"color10": "{{colors.primary.default.hex}}",
"color11": "{{colors.secondary.default.hex}}",
"color12": "{{colors.tertiary.default.hex}}",
"color13": "{{colors.surface_bright.default.hex}}",
"color11": "",
"color12": "",
"color13": "{{colors.secondary.default.hex}}",
"color14": "",
"color15": "{{colors.on_surface.default.hex}}"
"color15": "{{colors.on_background.default.hex}}"
}
}
}
+7 -3
View File
@@ -1,4 +1,8 @@
[ColorScheme]
active_colors={{colors.on_background.default.hex}}, {{colors.surface.default.hex}}, #ffffff, #cacaca, #9f9f9f, #b8b8b8, {{colors.on_background.default.hex}}, #ffffff, {{colors.on_surface.default.hex}}, {{colors.background.default.hex}}, {{colors.background.default.hex}}, {{colors.shadow.default.hex}}, {{colors.primary_container.default.hex}}, {{colors.on_primary_container.default.hex}}, {{colors.secondary.default.hex}}, {{colors.primary.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.secondary.default.hex}}
disabled_colors={{colors.on_background.default.hex}}, {{colors.surface.default.hex}}, #ffffff, #cacaca, #9f9f9f, #b8b8b8, {{colors.on_background.default.hex}}, #ffffff, {{colors.on_surface.default.hex}}, {{colors.background.default.hex}}, {{colors.background.default.hex}}, {{colors.shadow.default.hex}}, {{colors.primary_container.default.hex}}, {{colors.on_primary_container.default.hex}}, {{colors.secondary.default.hex}}, {{colors.primary.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.secondary.default.hex}}
inactive_colors={{colors.on_background.default.hex}}, {{colors.surface.default.hex}}, #ffffff, #cacaca, #9f9f9f, #b8b8b8, {{colors.on_background.default.hex}}, #ffffff, {{colors.on_surface.default.hex}}, {{colors.background.default.hex}}, {{colors.background.default.hex}}, {{colors.shadow.default.hex}}, {{colors.primary_container.default.hex}}, {{colors.on_primary_container.default.hex}}, {{colors.secondary.default.hex}}, {{colors.primary.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.secondary.default.hex}}
#https://doc.qt.io/archives/qt-5.15/qpalette.html
#https://doc.qt.io/qt-6/qpalette.html - Qt6 didn't add/delete/change any of the color functions or docs
# functions that correspond to the colors definition location
# windowText,button,light,midlight,dark,mid,text,brightText,buttonText,base,window,shadow,highlight,highlightedText,link,linkVisited,alternateBase,NO_IDEA (just use some sane default),toolTipBase,toolTipText,placeholderText,accent
active_colors={{colors.on_background.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface_variant.default.hex}}, #cacaca, #9f9f9f, {{colors.surface_container.default.hex}}, {{colors.on_background.default.hex}}, #ffffff, {{colors.on_surface.default.hex}}, {{colors.background.default.hex}}, {{colors.background.default.hex}}, {{colors.shadow.default.hex}}, {{colors.primary_container.default.hex}}, {{colors.on_primary_container.default.hex}}, {{colors.secondary.default.hex}}, {{colors.primary.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.primary.default.hex}}
disabled_colors={{colors.on_background.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface_variant.default.hex}}, #cacaca, #9f9f9f, {{colors.surface_container.default.hex}}, {{colors.on_background.default.hex}}, #ffffff, {{colors.on_surface.default.hex}}, {{colors.background.default.hex}}, {{colors.background.default.hex}}, {{colors.shadow.default.hex}}, {{colors.primary_container.default.hex}}, {{colors.on_primary_container.default.hex}}, {{colors.secondary.default.hex}}, {{colors.primary.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.primary.default.hex}}
inactive_colors={{colors.on_background.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface_variant.default.hex}}, #cacaca, #9f9f9f, {{colors.surface_container.default.hex}}, {{colors.on_background.default.hex}}, #ffffff, {{colors.on_surface.default.hex}}, {{colors.background.default.hex}}, {{colors.background.default.hex}}, {{colors.shadow.default.hex}}, {{colors.primary_container.default.hex}}, {{colors.on_primary_container.default.hex}}, {{colors.secondary.default.hex}}, {{colors.primary.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.surface.default.hex}}, {{colors.surface_variant.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.on_surface.default.hex}}, {{colors.primary.default.hex}}
+22
View File
@@ -0,0 +1,22 @@
set $primary #{{colors.primary.default.hex_stripped}}
set $on_primary #{{colors.on_primary.default.hex_stripped}}
set $secondary #{{colors.secondary.default.hex_stripped}}
set $on_secondary_transp #{{colors.on_secondary.default.hex_stripped}}AA
set $tertiary #{{colors.tertiary.default.hex_stripped}}
set $error #{{colors.error.default.hex_stripped}}
set $surface #{{colors.surface.default.hex_stripped}}
set $on_surface #{{colors.on_surface.default.hex_stripped}}
set $on_surface_variant #{{colors.on_surface_variant.default.hex_stripped}}
set $outline #{{colors.outline.default.hex_stripped}}
## Window Colours
# class border backgr. text indicator child_border
client.focused $primary $surface $on_surface $primary $primary
client.focused_inactive $outline $surface $on_surface_variant $outline $outline
client.unfocused $outline $surface $on_surface_variant $outline $outline
client.urgent $error $surface $on_surface $error $error
client.placeholder $surface $surface $on_surface_variant $surface $surface
client.background $surface
jump_labels_color $secondary
jump_labels_background $on_secondary_transp
+7
View File
@@ -0,0 +1,7 @@
:root {
--theme-color: "Matugen";
--hue-rotate: 220deg;
<* for name, value in colors *>
--md-sys-color-{{name | replace: "_", "-" }}: {{value.default.rgb}};
<* endfor *>
}
+3 -4
View File
@@ -1,4 +1,3 @@
## Colours - Based on Material Design 3 Palette
set $primary #{{colors.primary.default.hex_stripped}}
set $on_primary #{{colors.on_primary.default.hex_stripped}}
set $secondary #{{colors.secondary.default.hex_stripped}}
@@ -10,10 +9,10 @@ set $on_surface_variant #{{colors.on_surface_variant.default.hex_stripped}}
set $outline #{{colors.outline.default.hex_stripped}}
## Window Colours
# class border backgr. text indicator child_border
client.focused $primary $surface $on_surface $secondary $primary
# class border backgr. text indicator child_border
client.focused $primary $surface $on_surface $primary $primary
client.focused_inactive $outline $surface $on_surface_variant $outline $outline
client.unfocused $outline $surface $on_surface_variant $outline $outline
client.urgent $error $surface $on_surface $error $error
client.urgent $error $surface $on_surface $error $error
client.placeholder $surface $surface $on_surface_variant $surface $surface
client.background $surface
@@ -0,0 +1,33 @@
# Colors (Noctalia)
[colors.bright]
black = '{{colors.terminal_bright_black.default.hex}}'
blue = '{{colors.terminal_bright_blue.default.hex}}'
cyan = '{{colors.terminal_bright_cyan.default.hex}}'
green = '{{colors.terminal_bright_green.default.hex}}'
magenta = '{{colors.terminal_bright_magenta.default.hex}}'
red = '{{colors.terminal_bright_red.default.hex}}'
white = '{{colors.terminal_bright_white.default.hex}}'
yellow = '{{colors.terminal_bright_yellow.default.hex}}'
[colors.cursor]
cursor = '{{colors.terminal_cursor.default.hex}}'
text = '{{colors.terminal_cursor_text.default.hex}}'
[colors.normal]
black = '{{colors.terminal_normal_black.default.hex}}'
blue = '{{colors.terminal_normal_blue.default.hex}}'
cyan = '{{colors.terminal_normal_cyan.default.hex}}'
green = '{{colors.terminal_normal_green.default.hex}}'
magenta = '{{colors.terminal_normal_magenta.default.hex}}'
red = '{{colors.terminal_normal_red.default.hex}}'
white = '{{colors.terminal_normal_white.default.hex}}'
yellow = '{{colors.terminal_normal_yellow.default.hex}}'
[colors.primary]
background = '{{colors.terminal_background.default.hex}}'
foreground = '{{colors.terminal_foreground.default.hex}}'
[colors.selection]
background = '{{colors.terminal_selection_bg.default.hex}}'
text = '{{colors.terminal_selection_fg.default.hex}}'
+1 -1
View File
@@ -1,4 +1,4 @@
[colors]
[colors-dark]
background = {{colors.surface.default.hex_stripped}}
foreground = {{colors.on_surface.default.hex_stripped}}
+22
View File
@@ -0,0 +1,22 @@
[colors-dark]
foreground={{colors.terminal_foreground.default.hex_stripped}}
background={{colors.terminal_background.default.hex_stripped}}
regular0={{colors.terminal_normal_black.default.hex_stripped}}
regular1={{colors.terminal_normal_red.default.hex_stripped}}
regular2={{colors.terminal_normal_green.default.hex_stripped}}
regular3={{colors.terminal_normal_yellow.default.hex_stripped}}
regular4={{colors.terminal_normal_blue.default.hex_stripped}}
regular5={{colors.terminal_normal_magenta.default.hex_stripped}}
regular6={{colors.terminal_normal_cyan.default.hex_stripped}}
regular7={{colors.terminal_normal_white.default.hex_stripped}}
bright0={{colors.terminal_bright_black.default.hex_stripped}}
bright1={{colors.terminal_bright_red.default.hex_stripped}}
bright2={{colors.terminal_bright_green.default.hex_stripped}}
bright3={{colors.terminal_bright_yellow.default.hex_stripped}}
bright4={{colors.terminal_bright_blue.default.hex_stripped}}
bright5={{colors.terminal_bright_magenta.default.hex_stripped}}
bright6={{colors.terminal_bright_cyan.default.hex_stripped}}
bright7={{colors.terminal_bright_white.default.hex_stripped}}
selection-foreground={{colors.terminal_selection_fg.default.hex_stripped}}
selection-background={{colors.terminal_selection_bg.default.hex_stripped}}
cursor={{colors.terminal_cursor_text.default.hex_stripped}} {{colors.terminal_cursor.default.hex_stripped}}
@@ -0,0 +1,22 @@
palette = 0={{colors.terminal_normal_black.default.hex}}
palette = 1={{colors.terminal_normal_red.default.hex}}
palette = 2={{colors.terminal_normal_green.default.hex}}
palette = 3={{colors.terminal_normal_yellow.default.hex}}
palette = 4={{colors.terminal_normal_blue.default.hex}}
palette = 5={{colors.terminal_normal_magenta.default.hex}}
palette = 6={{colors.terminal_normal_cyan.default.hex}}
palette = 7={{colors.terminal_normal_white.default.hex}}
palette = 8={{colors.terminal_bright_black.default.hex}}
palette = 9={{colors.terminal_bright_red.default.hex}}
palette = 10={{colors.terminal_bright_green.default.hex}}
palette = 11={{colors.terminal_bright_yellow.default.hex}}
palette = 12={{colors.terminal_bright_blue.default.hex}}
palette = 13={{colors.terminal_bright_magenta.default.hex}}
palette = 14={{colors.terminal_bright_cyan.default.hex}}
palette = 15={{colors.terminal_bright_white.default.hex}}
background = {{colors.terminal_background.default.hex}}
foreground = {{colors.terminal_foreground.default.hex}}
cursor-color = {{colors.terminal_cursor.default.hex}}
cursor-text = {{colors.terminal_cursor_text.default.hex}}
selection-background = {{colors.terminal_selection_bg.default.hex}}
selection-foreground = {{colors.terminal_selection_fg.default.hex}}
@@ -0,0 +1,30 @@
color0 {{colors.terminal_normal_black.default.hex}}
color1 {{colors.terminal_normal_red.default.hex}}
color2 {{colors.terminal_normal_green.default.hex}}
color3 {{colors.terminal_normal_yellow.default.hex}}
color4 {{colors.terminal_normal_blue.default.hex}}
color5 {{colors.terminal_normal_magenta.default.hex}}
color6 {{colors.terminal_normal_cyan.default.hex}}
color7 {{colors.terminal_normal_white.default.hex}}
color8 {{colors.terminal_bright_black.default.hex}}
color9 {{colors.terminal_bright_red.default.hex}}
color10 {{colors.terminal_bright_green.default.hex}}
color11 {{colors.terminal_bright_yellow.default.hex}}
color12 {{colors.terminal_bright_blue.default.hex}}
color13 {{colors.terminal_bright_magenta.default.hex}}
color14 {{colors.terminal_bright_cyan.default.hex}}
color15 {{colors.terminal_bright_white.default.hex}}
background {{colors.terminal_background.default.hex}}
selection_foreground {{colors.terminal_selection_fg.default.hex}}
cursor {{colors.terminal_cursor.default.hex}}
cursor_text_color {{colors.terminal_cursor_text.default.hex}}
foreground {{colors.terminal_foreground.default.hex}}
selection_background {{colors.terminal_selection_bg.default.hex}}
active_border_color {{colors.primary.default.hex}}
inactive_border_color {{colors.secondary.default.hex}}
active_tab_foreground {{colors.on_primary.default.hex}}
active_tab_background {{colors.primary.default.hex}}
inactive_tab_foreground {{colors.on_surface_variant.default.hex}}
inactive_tab_background {{colors.surface_variant.default.hex}}
cursor_trail_color {{colors.on_surface_variant.default.hex}}
+6
View File
@@ -24,3 +24,9 @@ selection_background {{colors.surface_variant.default.hex}}
active_border_color {{colors.primary.default.hex}}
inactive_border_color {{colors.surface_variant.default.hex}}
url_color {{colors.primary.default.hex}}
active_tab_foreground {{colors.on_primary.default.hex}}
active_tab_background {{colors.primary.default.hex}}
inactive_tab_foreground {{colors.on_surface_variant.default.hex}}
inactive_tab_background {{colors.surface_variant.default.hex}}
cursor_trail_color {{colors.on_surface_variant.default.hex}}
@@ -0,0 +1,41 @@
# Noctalia Starship Palette (predefined colorscheme)
# Generated by Noctalia - do not edit manually
[palettes.noctalia]
# Standard colors
blue = "{{colors.terminal_normal_blue.default.hex}}"
red = "{{colors.terminal_normal_red.default.hex}}"
green = "{{colors.terminal_normal_green.default.hex}}"
yellow = "{{colors.terminal_normal_yellow.default.hex}}"
cyan = "{{colors.terminal_normal_cyan.default.hex}}"
magenta = "{{colors.terminal_normal_magenta.default.hex}}"
white = "{{colors.terminal_normal_white.default.hex}}"
black = "{{colors.terminal_normal_black.default.hex}}"
# Extended palette (Catppuccin-compatible names)
rosewater = "{{colors.terminal_bright_yellow.default.hex}}"
flamingo = "{{colors.terminal_bright_red.default.hex}}"
pink = "{{colors.terminal_bright_magenta.default.hex}}"
mauve = "{{colors.terminal_normal_magenta.default.hex}}"
maroon = "{{colors.terminal_bright_red.default.hex}}"
peach = "{{colors.terminal_bright_yellow.default.hex}}"
teal = "{{colors.terminal_normal_cyan.default.hex}}"
sky = "{{colors.terminal_bright_cyan.default.hex}}"
sapphire = "{{colors.terminal_bright_blue.default.hex}}"
lavender = "{{colors.terminal_bright_magenta.default.hex}}"
# Text shades
text = "{{colors.terminal_foreground.default.hex}}"
subtext1 = "{{colors.terminal_normal_white.default.hex}}"
subtext0 = "{{colors.terminal_bright_black.default.hex}}"
# Surface shades
overlay2 = "{{colors.terminal_bright_black.default.hex}}"
overlay1 = "{{colors.terminal_bright_black.default.hex}}"
overlay0 = "{{colors.terminal_normal_black.default.hex}}"
surface2 = "{{colors.terminal_normal_black.default.hex}}"
surface1 = "{{colors.terminal_normal_black.default.hex}}"
surface0 = "{{colors.terminal_background.default.hex}}"
base = "{{colors.terminal_background.default.hex}}"
mantle = "{{colors.terminal_background.default.hex}}"
crust = "{{colors.terminal_background.default.hex}}"
+41
View File
@@ -0,0 +1,41 @@
# Noctalia Starship Palette (wallpaper-based)
# Generated by Noctalia - do not edit manually
[palettes.noctalia]
# Standard colors
blue = "{{colors.primary.default.hex}}"
red = "{{colors.error.default.hex}}"
green = "{{colors.secondary.default.hex}}"
yellow = "{{colors.tertiary.default.hex}}"
cyan = "{{colors.secondary_fixed_dim.default.hex}}"
magenta = "{{colors.primary_fixed_dim.default.hex}}"
white = "{{colors.on_surface.default.hex}}"
black = "{{colors.surface.default.hex}}"
# Extended palette (Catppuccin-compatible names)
rosewater = "{{colors.tertiary.default.hex}}"
flamingo = "{{colors.tertiary_fixed_dim.default.hex}}"
pink = "{{colors.primary_fixed_dim.default.hex}}"
mauve = "{{colors.inverse_primary.default.hex}}"
maroon = "{{colors.error.default.hex}}"
peach = "{{colors.tertiary_fixed_dim.default.hex}}"
teal = "{{colors.secondary.default.hex}}"
sky = "{{colors.secondary_fixed_dim.default.hex}}"
sapphire = "{{colors.secondary_fixed_dim.default.hex}}"
lavender = "{{colors.inverse_primary.default.hex}}"
# Text shades
text = "{{colors.on_surface.default.hex}}"
subtext1 = "{{colors.on_surface_variant.default.hex}}"
subtext0 = "{{colors.outline.default.hex}}"
# Surface shades
overlay2 = "{{colors.outline.default.hex}}"
overlay1 = "{{colors.on_surface_variant.default.hex}}"
overlay0 = "{{colors.surface_variant.default.hex}}"
surface2 = "{{colors.surface_variant.default.hex}}"
surface1 = "{{colors.surface.default.hex}}"
surface0 = "{{colors.background.default.hex}}"
base = "{{colors.background.default.hex}}"
mantle = "{{colors.surface.default.hex}}"
crust = "{{colors.on_tertiary.default.hex}}"
@@ -0,0 +1,84 @@
[colors]
ansi = [
"{{colors.terminal_normal_black.default.hex}}",
"{{colors.terminal_normal_red.default.hex}}",
"{{colors.terminal_normal_green.default.hex}}",
"{{colors.terminal_normal_yellow.default.hex}}",
"{{colors.terminal_normal_blue.default.hex}}",
"{{colors.terminal_normal_magenta.default.hex}}",
"{{colors.terminal_normal_cyan.default.hex}}",
"{{colors.terminal_normal_white.default.hex}}",
]
background = "{{colors.terminal_background.default.hex}}"
brights = [
"{{colors.terminal_bright_black.default.hex}}",
"{{colors.terminal_bright_red.default.hex}}",
"{{colors.terminal_bright_green.default.hex}}",
"{{colors.terminal_bright_yellow.default.hex}}",
"{{colors.terminal_bright_blue.default.hex}}",
"{{colors.terminal_bright_magenta.default.hex}}",
"{{colors.terminal_bright_cyan.default.hex}}",
"{{colors.terminal_bright_white.default.hex}}",
]
compose_cursor = "{{colors.terminal_cursor.default.hex}}"
cursor_bg = "{{colors.terminal_cursor.default.hex}}"
cursor_border = "{{colors.terminal_cursor.default.hex}}"
cursor_fg = "{{colors.terminal_cursor_text.default.hex}}"
foreground = "{{colors.terminal_foreground.default.hex}}"
scrollbar_thumb = "{{colors.terminal_selection_bg.default.hex}}"
selection_bg = "{{colors.terminal_selection_bg.default.hex}}"
selection_fg = "{{colors.terminal_selection_fg.default.hex}}"
split = "{{colors.terminal_bright_black.default.hex}}"
visual_bell = "{{colors.terminal_normal_black.default.hex}}"
[colors.indexed]
16 = "{{colors.secondary.default.hex}}"
17 = "{{colors.terminal_cursor.default.hex}}"
[colors.tab_bar]
background = "{{colors.terminal_background.default.hex | darken 0.1}}"
inactive_tab_edge = "{{colors.terminal_selection_bg.default.hex}}"
[colors.tab_bar.active_tab]
bg_color = "{{colors.primary.default.hex}}"
fg_color = "{{colors.on_primary.default.hex}}"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.inactive_tab]
bg_color = "{{colors.terminal_background.default.hex | darken 0.05}}"
fg_color = "{{colors.terminal_foreground.default.hex}}"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.inactive_tab_hover]
bg_color = "{{colors.terminal_background.default.hex}}"
fg_color = "{{colors.terminal_foreground.default.hex}}"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.new_tab]
bg_color = "{{colors.terminal_selection_bg.default.hex}}"
fg_color = "{{colors.terminal_foreground.default.hex}}"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.new_tab_hover]
bg_color = "{{colors.terminal_bright_black.default.hex}}"
fg_color = "{{colors.terminal_foreground.default.hex}}"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[metadata]
author = "Noctalia"
name = "Noctalia"
+3 -3
View File
@@ -76,9 +76,9 @@ selected = { reversed = true }
# : Tabs [[[
[tabs]
active = { fg = "{{colors.primary.default.hex}}", bold = true, bg = "{{colors.surface.default.hex}}" }
active = { fg = "{{colors.surface.default.hex}}", bold = true, bg = "{{colors.primary.default.hex}}" }
inactive = { fg = "{{colors.secondary.default.hex}}", bg = "{{colors.surface.default.hex}}" }
sep_inner = { open = "[", close = "]" }
sep_inner = { open = "", close = "" }
# : ]]]
@@ -914,4 +914,4 @@ conds = [
{ if = "!dir", text = "", fg = "{{colors.primary.default.hex}}" },
]
# : }}}
# : }}}
+1 -1
View File
@@ -340,7 +340,7 @@
"title_bar.inactive_background": "{{colors.surface_dim.light.hex}}",
"toolbar.background": "{{colors.surface_container_low.light.hex}}",
"tab_bar.background": "{{colors.surface_container.light.hex}}",
"tab.inactive_backgorround": "{{colors.surface_container_low.light.hex}}",
"tab.inactive_background": "{{colors.surface_container_low.light.hex}}",
"tab.active_background": "{{colors.surface_container_high.light.hex}}",
"search.match_background": "{{colors.tertiary_container.light.hex}}80",
"panel.background": "{{colors.surface_container_low.light.hex}}",
+113 -38
View File
@@ -11,46 +11,59 @@
}
:root {
/* Core Color Palette Overrides */
/* --- Core Palette Overrides --- */
--zen-colors-primary: var(--base) !important;
--zen-primary-color: var(--base) !important;
--zen-colors-secondary: var(--surface) !important;
--zen-colors-tertiary: var(--overlay) !important;
--zen-colors-border: var(--primary) !important;
/* Backgrounds */
/* --- Internal Zen Color Variables --- */
--zen-primary-color: var(--primary) !important;
--zen-colors-primary: var(--base) !important;
--zen-colors-secondary: var(--surface) !important;
--zen-colors-tertiary: var(--base) !important;
/* --- Backgrounds --- */
--toolbar-bgcolor: var(--base) !important;
--newtab-background-color: var(--overlay) !important;
--zen-themed-toolbar-bg: var(--base) !important;
--zen-main-browser-background: var(--base) !important;
--toolbox-bgcolor-inactive: var(--base) !important;
--zen-urlbar-background: var(--surface) !important;
--zen-colors-input-bg: var(--surface) !important;
--zen-themed-toolbar-bg-transparent: transparent !important;
/* Text & Icons */
/* --- Text & Icons --- */
--lwt-text-color: var(--text) !important;
--toolbarbutton-icon-fill: var(--primary) !important;
--toolbar-field-color: var(--text) !important;
--toolbar-field-focus-color: var(--text) !important;
--toolbar-color: var(--text) !important;
--toolbox-textcolor: var(--text) !important;
--toolbox-textcolor-inactive: var(--text) !important;
--tab-selected-textcolor: var(--primary) !important;
--newtab-text-primary-color: var(--text) !important;
/* Popups & Menus */
/* --- Popups, Menus & Sidebars --- */
--arrowpanel-color: var(--text) !important;
--arrowpanel-background: var(--overlay) !important;
/* Sidebar Stuff */
--sidebar-text-color: var(--text) !important;
--lwt-sidebar-text-color: var(--text) !important;
--lwt-sidebar-background-color: var(--base) !important;
/* --- Tab Selection --- */
--tab-selected-textcolor: var(--primary) !important;
}
/* Element Specific Overrides */
/* --- Sidebar & Layout --- */
#permissions-granted-icon {
color: var(--base) !important;
#navigator-toolbox,
#zen-tabbox-wrapper,
.sidebar-panel {
background-color: var(--base) !important;
}
#zen-sidebar-splitter {
background-color: var(--base) !important;
opacity: 1 !important;
}
.sidebar-placesTree {
@@ -61,29 +74,27 @@
background-color: var(--surface) !important;
}
#urlbar-background {
background-color: var(--surface) !important;
#zen-appcontent-navbar-container {
background-color: var(--base) !important;
}
.tab-background[selected=""] {
background: var(--overlay) !important;
}
/* --- Navigation Controls --- */
.content-shortcuts {
background-color: var(--surface) !important;
border-color: var(--secondary) !important;
}
.urlbarView-url {
#back-button .toolbarbutton-icon,
#forward-button .toolbarbutton-icon,
#reload-button .toolbarbutton-icon,
#stop-button .toolbarbutton-icon,
#PanelUI-menu-button .toolbarbutton-icon,
#unified-extensions-button .toolbarbutton-icon,
#nav-bar-overflow-button .toolbarbutton-icon,
#zen-toggle-compact-mode .toolbarbutton-icon {
fill: var(--primary) !important;
color: var(--primary) !important;
}
#zenEditBookmarkPanelFaviconContainer {
background: var(--base) !important;
}
#zen-toast-container {
color: var(--primary) !important;
#back-button[disabled] .toolbarbutton-icon,
#forward-button[disabled] .toolbarbutton-icon {
opacity: 0.3 !important;
}
toolbar .toolbarbutton-1 {
@@ -97,6 +108,75 @@ toolbar .toolbarbutton-1 {
}
}
}
.tab-text {
color: var(--text);
}
toolbarbutton#tabs-newtab-button {
color: var(--text) !important;
}
/* --- URL Bar --- */
#urlbar-input {
color: var(--text) !important;
}
#urlbar-input::selection {
background-color: var(--primary) !important;
color: var(--on_primary) !important;
}
.urlbar-background {
background-color: var(--base) !important;
}
#urlbar-input-container {
background-color: var(--base) !important;
}
.urlbarView-url {
color: var(--primary) !important;
}
.urlbarView-favicon {
background-color: var(--base) !important;
}
#urlbar-results {
background-color: var(--overlay) !important;
color: var(--text) !important;
}
.urlbarView-row:not([selected]) :is(.urlbarView-title, .urlbarView-action) {
color: var(--text) !important;
}
/* --- UI Components --- */
#zen-toast-container {
color: var(--primary) !important;
}
#PanelUI-menu-button[open] .toolbarbutton-icon {
fill: var(--primary) !important;
}
#permissions-granted-icon {
color: var(--base) !important;
}
.tab-background[selected=""] {
background: var(--overlay) !important;
}
.content-shortcuts {
background-color: var(--surface) !important;
border-color: var(--secondary) !important;
}
#zenEditBookmarkPanelFaviconContainer {
background: var(--base) !important;
}
#TabsToolbar {
background-color: var(--base) !important;
@@ -106,16 +186,11 @@ hbox#titlebar {
background-color: var(--base) !important;
}
#zen-appcontent-navbar-container {
background-color: var(--base) !important;
.zen-current-workspace-indicator-name {
color: var(--text);
}
/* Zen toast/indicator contrast visibility issue fix */
#zen-toast-container {
color: var(--primary) !important;
.zen-current-workspace-indicator-icon {
fill: var(--text) !important;
}
/* Pane UI button visibility issue fix */
#PanelUI-menu-button[open] .toolbarbutton-icon {
fill: var(--primary) !important;
}
@@ -44,10 +44,6 @@
--zen-primary-color: {{colors.primary.default.hex}} !important;
}
groupbox , moz-card{
background: {{colors.surface_container.default.hex}} !important;
}
button,
groupbox menulist {
background: {{colors.surface_container_high.default.hex}} !important;
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-5
View File
@@ -1,5 +0,0 @@
{
"toast": {
"donation-opened": ""
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+142 -132
View File
@@ -48,14 +48,19 @@
"device-default": "Berdest (Amûra dîmenderê)",
"device-description": "Ka kîjan amûrê betarî hilbijêre ku were nîşandan.",
"device-label": "Amûrê betarî",
"display-mode-description": "Hilbijêre ka bila betarî di darikê de were xuyakirin",
"display-mode-graphic": "Betariyê grafîkî",
"display-mode-graphic-clean": "Betariyê grafîkî (bê %)",
"display-mode-icon-always": "Îkon - Her dem nîşan bide %",
"display-mode-icon-hover": "Îkon - Li ser şemitandinê nîşan bide",
"display-mode-icon-only": "Tenê îkon",
"hide-if-idle-description": "Dema ku betarî neyê tijîkirin an valakirin, sepanokê veşêre.",
"hide-if-idle-label": "Dema de bêkar veşêre",
"hide-if-not-detected-description": "Dema betarî li ser pergalê neyê dîtin, sepanokê veşêre.",
"hide-if-not-detected-label": "Veşêre ku bêkar be",
"low-battery-threshold-description": "Dema ku betarî ji vê rêjeyê kêmtir bibe, hişyariyekê nîşan bide.",
"hide-if-not-detected-label": "Dema ku neyê dîtin veşêre",
"low-battery-threshold-label": "Asta hişyariya betarî ya kêm",
"show-noctalia-performance-description": "Guhêrbarê awaya performansê ya Noctalia di hundirê destgeha betariyê de nîşan bide.<br>Sî û anîmasyonan di Noctalia de neçalak dike da ku bikaranîna çavkaniyan kêm bike.",
"show-noctalia-performance-label": "Guhêrbarê performansa Noctalia nîşan bide",
"show-noctalia-performance-label": "Guhêrbarê Performansa Noctalia nîşan bide",
"show-power-profile-description": "Hilbijartina profîla hêzê di hundirê destgeha betariyê de nîşan bide.",
"show-power-profile-label": "Kontrolên profîla hêzê nîşan bide"
},
@@ -75,8 +80,6 @@
"use-custom-font-label": "Cûrenivîsa kesane bi kar bîne",
"use-monospaced-font-description": "Dema ku çalak be, demjimêr wê cûrenivîsa monospace bi kar bîne.",
"use-monospaced-font-label": "Cûrenivîsa monospace bi kar bîne",
"use-primary-color-description": "Dema ku çalak be, ev rengê sereke ji bo pejirandinê tê sepandin.",
"use-primary-color-label": "Rengê sereke bi kar bîne",
"vertical-bar-description": "Bi kar tînin valahiyekê ji hev veqetînin her beşek li ser rêzeke nû.",
"vertical-bar-label": "Darê vertical"
},
@@ -94,33 +97,31 @@
"collapse-condition-description": "Ger nivîsa derketî bi vê nirxê re têkildar be, dê bişkok hilweşe.",
"collapse-condition-label": "Rewşa hilweşînê",
"color-selection-description": "Rengên mûqeyê li îkon û nivîsê bi kar bîne.",
"color-selection-label": "Reng hilbijêre",
"display-command-output-description": "Fermanekê binivîse ku di navberên rêkûpêk de bixebite. Rêza yekem a derketina wê dê wekî nivîs were xuyang kirin.",
"display-command-output-label": "Nîşandana derketina fermanê",
"display-command-output-stream-description": "Fermanekê binivîse ku bi berdewamî bixebite.",
"dynamic-text": "Teksta dînamîk",
"dynamic-text": "Nivîsa dînamîkî",
"enable-colorization-description": "Rengînkirinê ji bo îkona bişkoka xwerû û nivîsê çalak bike, rengên temayê bi kar bîne.",
"enable-colorization-label": "Rengînkirin çalak bike",
"hide-mode-always-expanded": "Her tim berfireh kirin",
"hide-mode-description": "Dema ku ferman tune be, dîtina sepanokê kontrol dike.",
"hide-mode-expand-with-output": "Berfireh bike dema ku derket hebe",
"hide-mode-label": "Hêşartin modê",
"hide-mode-max-transparent": "Herî zêde berfirehkirî lê şefaf",
"hide-mode-always-expanded": "Her dem berferehkirî",
"hide-mode-description": "Dema ku derana fermanê tune be, dîtina sepanokê kontrol dike.",
"hide-mode-expand-with-output": "Berfireh bike dema ku deran hebe",
"hide-mode-label": "Awaya veşartinê",
"hide-mode-max-transparent": "Pir berfirehkirî lê zelal",
"icon-description": "Îkonekê ji pirtûkxaneyê hilbijêre.",
"ipc-identifier-description": "Nasnameya yekta ji bo fermanên IPC. Vê nasnameyê bi 'qs -c noctalia-shell ipc call cb [çalakî] [nasname]' bikar bînin da ku vê bişkokê bi rêya IPC kontrol bikin.",
"ipc-identifier-label": "Nasnameya IPC",
"left-click-description": "Fermana ku dema bişkok li ser çepê tê klîkkirin tê meşandin.",
"left-click-label": "Klîka çepê",
"left-click-update-text": "Nûvekirina nivîsa ku li ser klîka çepê tê nîşandan",
"max-text-length-horizontal-description": "Hejmara herî zêde ya tîpan ku di bara horizontî de bêne nîşandan (0 ji bo veşartina nivîsê).",
"max-text-length-horizontal-description": "Jimara herî pir ya tîpan ku di darika asoyî de tên nîşandan (0 ji bo veşartina nivîsê).",
"max-text-length-horizontal-label": "Dirêjahiya herî zêde ya nivîsê (horîzontal)",
"max-text-length-vertical-description": "Hejmara herî zêde ya tîpan ku di barê vertical de were nîşandan (0 ji bo veşartina nivîsê).",
"max-text-length-vertical-label": "Dirêjahiya herî zêde ya nivîsê (vertîkal)",
"max-text-length-vertical-description": "Jimara herî pir ya tîpan ku di darika stûnî de were nîşandan (0 ji bo veşartina nivîsê).",
"max-text-length-vertical-label": "Dirêjahiya herî pir ya nivîsê (stûnî)",
"middle-click-description": "Fermana ku dema bişkok bi mişkê navîn tê tikandin bê meşandin.",
"middle-click-label": "Klîka navîn",
"middle-click-update-text": "Nûvekirina nivîsa ku bi klîka navîn tê nîşandan",
"parse-json-description": "Parskirina derketina fermanê wekî objeyek JSON da ku nivîs û îkonê bi awayekî dînamîkî were danîn.",
"parse-json-label": "Ez encamê wekî JSON analîz bike",
"parse-json-label": "Deranê wekî JSON analîz bike",
"refresh-interval-description": "Navbera bi milîsaniyeyan.",
"refresh-interval-label": "Navbera nûkirinê",
"right-click-description": "Fermana ku dema bişkok bi aliyê rastê ve hat tikandin, tê bicihkirin.",
@@ -155,7 +156,7 @@
},
"media-mini": {
"compact-mode-description": "Çalak bike sêwirandinek ku cih digire ji bo panelê lîstikvanê medyayê.",
"compact-mode-label": "ڕێگای کورتکراوە",
"compact-mode-label": "Awaya kompakt",
"hide-mode-description": "Kontrola ku widget çawa tevdigere dema ku tu medya nayê lîstin.",
"max-width-description": "Mezinahiya herî mezin a asoyî ya sepanokê saz dike. Sepanok wê bi naveroka kurt re were biçûkkirin.",
"no-active-player": "Bê lîstikvanê çalak",
@@ -187,7 +188,7 @@
"unread-badge-color-label": "Rengê nîşana nexwendî"
},
"section-editor": {
"placeholder": "Widgetekek hilbijêre ku lê zêde bike...",
"placeholder": "Sepanokekê hilbijêre ku lê tevlî bikî...",
"search-placeholder": "Sepanokê bigere..."
},
"spacer": {
@@ -195,7 +196,8 @@
},
"system-monitor": {
"compact-mode-description": "Statîstîkan wekî şîroveya barên piçûk nîşan bide li şûna nirxên nivîskî. Pêşî li guhertina layoutê digire.",
"compact-mode-label": "Rewşa Kompakt",
"compact-mode-label": "Awaya kompakt",
"cpu-frequency-description": "Leza demjimêra CPU ya heyî di GHz de nîşan bide.",
"cpu-temperature-description": "Germahiya YKN ku hebe nîşan bide.",
"cpu-temperature-label": "Germahiya YKN",
"cpu-usage-description": "Rêjeya bikaranîna CPU ya niha nîşan bide.",
@@ -211,6 +213,7 @@
"memory-usage-label": "Bikaranîna bîrê",
"network-traffic-description": "Leza leza barkirina torê û dakêşana torê nîşan bide.",
"network-traffic-label": "Trafîka torê",
"storage-as-percentage-label": "Dîsk wekî rêje",
"storage-usage-description": "Agahiyên bikaranîna cîhê dîskê nîşan bide.",
"storage-usage-label": "Bikaranîna hilanînê",
"swap-usage-description": "Bikaranîna bîra swapê nîşan bide.",
@@ -225,7 +228,7 @@
"icon-scale-description": "Pîvana îkonên taskbarê destnîşan dike.",
"icon-scale-label": "Pîvandina îkonan",
"max-width-description": "Herî zêde firehiya taskbarê wekî rêjeya firehiya ekranê.",
"max-width-label": "Firehiya herî zêde",
"max-width-label": "Ferehiya herî pir",
"only-active-workspaces-description": "Tenê sepanên ji cihên kar ên çalak nîşan bide.",
"only-active-workspaces-label": "Tenê ji cihên kar ên çalak",
"only-same-monitor-description": "Tenê sepanên ji çavdêriya ku bar lê ye nîşan bide.",
@@ -242,6 +245,7 @@
"title-width-reset-tooltip": "Firehiya firehiya sernavê"
},
"tray": {
"chevron-color-label": "Rengê chevron",
"colorize-icons-description": "Rengên rûkarê li ser îkonên devera agahiyê bisepîne.",
"colorize-icons-label": "Îkonan rengîn bike",
"drawer-enabled-description": "Dema ku çalak be, hêmanên trayê yên nehatine pin kirin di panelek dolabê de têne xuyang kirin.<br>Dema ku neçalak be, hemî hêmanên trayê inline têne xuyang kirin.",
@@ -250,8 +254,7 @@
"hide-passive-label": "Veşartina tiştên pasîf"
},
"volume": {
"display-mode-description": "Tu dixwazî ev nirx çawa xuya bike hilbijêre.",
"display-mode-label": "Awayî nîşandanê"
"display-mode-description": "Tu dixwazî ev nirx çawa xuya bike hilbijêre."
},
"workspace": {
"character-count-description": "Hejmara tîpên ku ji navên qada xebatê bên nîşandan (1-10).",
@@ -311,7 +314,7 @@
"no-devices": "Amûr tune ne",
"paired-devices": "Amûrên hevgirtî",
"pairing-mode": "Piştrast bike ku cîhaza te di moda cotbûnê de ye.",
"scanning": "Lêgerîna cîhazan...",
"scanning": "Li amûran digere...",
"signal-text-excellent": "Nîşan: Baş e gelek",
"signal-text-fair": "Nîşan: Bihêz e",
"signal-text-good": "Nîşan: Baş e",
@@ -339,20 +342,13 @@
"version-new-user": "Sazkirina nû"
}
},
"colors": {
"error": "Çewtî",
"on-surface": "Li ser rûyê",
"primary": "Sereke",
"secondary": "Duyemîn",
"tertiary": "Sêyemîn"
},
"common": {
"actions": "Çalakî",
"add": "Tevlî bike",
"appearance": "Xuyanî",
"appearance": "Xuyang",
"apply": "Bisepîne",
"automation": "Xweserî",
"available": "Berdest",
"automation": "Xweberî",
"available": "Heyî",
"back": "Paş",
"battery": "Betarî",
"bluetooth": "Bluetooth",
@@ -361,7 +357,7 @@
"calendar": "Salname",
"calendar-panel": "Destgeha salnameyê",
"cancel": "Têk bibe",
"cards": "Kartên",
"cards": "Kert",
"charging": "Barkirin",
"clear": "Pak bike",
"clipboard": "Klîpbir",
@@ -378,21 +374,23 @@
"countdown": "Jimartin",
"date": "Dîrok",
"default": "Xwerû",
"delete": "Jêbirin",
"delete": "Jê bibe",
"devices": "Amûr",
"disabled": "Nabe kar",
"discharging": "Deravkirin",
"disconnect": "Qutbûn",
"disconnected": "Berdîtin qut bûye",
"disconnecting": "Derdibirîne...",
"display-mode": "Awaya nîşandanê",
"download": "Daxistin",
"duration": "Dirêjahî",
"edit": "Biguherîne",
"enabled": "Çalak",
"error": "Şaşetî",
"events": "Bûyer",
"execute": "Bicîh bîne",
"faithful": "Dilsoz",
"focus": "Bala serincê",
"focus": "Balê bide",
"frequency": "Frekans",
"gateway": "Dergeh",
"general": "Giştî",
@@ -402,7 +400,7 @@
"icon": "Îkon",
"idle": "Betal",
"info": "Zanyarî",
"input": "Têketin",
"input": "Ketan",
"install": "Sazkirin",
"installed": "Sazkirî",
"interface": "Navrû",
@@ -413,13 +411,14 @@
"location": "Cih",
"lock": "Kilît bike",
"logout": "Derkeve",
"look": "Xuyanî",
"look": "Xuyang",
"margins": "Qirax",
"media": "Medya",
"media-player": "Lîstikvanê medyayê",
"memory": "Bîr",
"monitors": "Dîmender",
"network": "Tor",
"next": "Dûmahî",
"next": "Pêş",
"night-light": "Ronahiya şevê",
"no": "Na",
"no-results": "Ti encam tune",
@@ -435,28 +434,32 @@
"pairing": "Hevberkirin...",
"panels": "Panelan",
"password": "Şîfre",
"pause": "Rawestan",
"pause": "Rawestîne",
"pin": "Bikêşîne",
"play": "Lîstik",
"play": "Bilîzîne",
"polling": "Lêpirsîn",
"position": "Helwest",
"position": "Cih",
"previous": "Berê",
"primary": "Serekî",
"random": "Bêserûber",
"reboot": "Ji nû dest pê bike",
"record": "tomarkirinê dest pê bike",
"refresh": "Nûkirin",
"required": "(pêwîst)",
"reset": "Vegerandin",
"reset-to-default": "Ji bo rewşa berdest ji nû ve saz bike",
"result-count": "{count} encam",
"result-count-plural": "{count} encaman",
"resume": "Berdewam kirin",
"save": "Tomar bike",
"scanning": "gerîn...",
"scanning": "Digere...",
"screen-corners": "Kişekanên dîmenderê",
"search": "gerîn",
"search": "Bigere",
"secondary": "Duyemîn",
"security": "Ewlehî",
"select": "Hilbijêre",
"select-color": "Rengê hilbijêre",
"select-icon-color": "Rengê îkonê hilbijêre",
"shortcuts": "Kurterê",
"shutdown": "Vemrîne",
"signal": "Sînyal",
@@ -464,6 +467,7 @@
"sources": "Çavkanî",
"start": "Destpêkirin",
"stop": "Raweste",
"supporters": "Piştgir",
"suspend": "Rawestîne",
"templates": "Şablonan",
"tertiary": "Sêyemîn",
@@ -475,7 +479,7 @@
"uninstall": "Rakirin",
"unknown": "Nenas",
"unpair": "Hevparekê berdan",
"unpin": "Jêbirin",
"unpin": "Bi dar nexe",
"update": "Nûkirin",
"upload": "Barkirin",
"version": "Guherto",
@@ -483,7 +487,7 @@
"visualizer": "Dîmender",
"volume": "Hêjmar",
"volumes": "Deng",
"wallpaper": "Dîwarê xuyanî",
"wallpaper": "Wêneyê dîwêr",
"weather": "Hewa",
"weather-loading": "Rewşa bayê tê barkirin...",
"week": "Hefte",
@@ -555,13 +559,13 @@
"clipboard-history-disabled": "Dîroka clipboardê neçalak e",
"clipboard-history-disabled-description": "Dîroka clipboardê di mîhengan de çalak bike an cliphist saz bike",
"clipboard-loading": "Dîroka clipboardê tê barkirin...",
"clipboard-search-description": "Lêgerîna dîroka clipboardê",
"clipboard-search-description": "Dîroka jêgirtindankê bigere",
"command-description": "Fermanên shell bixebitîne",
"emoji": "Hilbijêrê îmojî",
"emoji-loading": "Îmojî tên barkriin...",
"emoji-loading-description": "Tika raweste",
"emoji-no-recent": "Hîna emojiyên dawî tune ne",
"emoji-search-description": "gerîn û kopîkirina emojiyan",
"emoji-search-description": "Emojiyan bigere û jê bigire",
"settings-search-description": "Li sazkariyan bigere",
"windows-search-description": "Pencereyên vekirî bigere û bîne pêş"
}
@@ -610,6 +614,13 @@
"quick-settings-style-modern": "Nûjen"
},
"frame-rates-fps": "{fps} FPS",
"launcher-density": {
"default": "Berdest"
},
"launcher-view-mode": {
"grid": "Tor",
"list": "Lîste"
},
"scrolling-modes": {
"always": "Her tim bigere",
"hover": "Li ser gerandinê bigere",
@@ -641,7 +652,7 @@
"panels": {
"about": {
"changelog": "Dîroka guhertinan bibîne",
"contributors-desc": "Silav ji {count} beşkdarên me yên <b>gewre</b> re!",
"contributors-description": "Silav ji {count} beşkdarên me yên <b>gewre</b> re!",
"contributors-description-plural": "Spas ji {count} beşdarên me yên <b>ecêb</b>!",
"copy-info": "Zanyariyan jê bigire",
"info-copied": "Agahî li clipboardê hat kopîkirin",
@@ -652,10 +663,11 @@
"noctalia-title": "Noctalia qalik",
"privacy-policy": "Siyaseta nepenîtiyê",
"support": "Piştgiriya me bike",
"supporter-badge": "Piştgir",
"system-cpu": "YKN:",
"system-disk": "Dîsk:",
"system-gpu": "YKG:",
"system-host": "Mêvan:",
"system-host": "Host:",
"system-install-hint": "Fastfetch saz bike da ku agahiyên pergalê bibîne",
"system-kernel": "Kernel:",
"system-loading": "Agahiyên pergalê bar dikin...",
@@ -668,7 +680,7 @@
"system-title": "Zanyariyên pergalê",
"system-uptime": "Dema xebitandinê:",
"system-wm": "RÇ:",
"telemetry-data-copied": "Daneyên telemetriyê hatin kopîkirin bo clipboardê",
"telemetry-data-copied": "Daneyên Telemetry hatin jê girtin bo jêgirtindankê",
"telemetry-desc": "Bi parvekirina agahdariya sîstema anonîm (çareseriya ekranê, berhevkar, belavkirin) alîkariya pêşxistina Noctalia bikin. Carekê di destpêkê de tê şandin, şopandin tune, dane piştî 30 rojan bixweber têne jêbirin.",
"telemetry-enabled": "Agahiyên pergalê yên nenas bişîne",
"telemetry-show-data": "Dîtina daneyan",
@@ -696,7 +708,7 @@
"media-frame-rate-label": "Rêjeya çarçoveyê",
"media-primary-player-description": "Têgehek binivîse da ku lîstikvanê xwe yê sereke nas bike.",
"media-primary-player-label": "Lîstikvanê sereke",
"media-primary-player-placeholder": "spotify, vlc, mpv",
"media-primary-player-placeholder": "mînakî spotify, vlc, mpv",
"media-scrolling-speed-description": "Demjimêra bi saniyeyan ku sernav ji destpêkê heta dawiyê bigere.",
"media-scrolling-speed-label": "Leza gerandinê",
"media-scrolling-title-description": "Çalak bike geroka domdar ji bo sernavên medyayê yên dirêj.",
@@ -716,7 +728,7 @@
"volumes-output-volume-description": "Asta rêjeya dengê ya tevahiya pergalê.",
"volumes-step-size-description": "Guhertina pîvana gavê ji bo guhertinên deng (tekerê mişkê, kurteriyên klavyeyê).",
"volumes-step-size-label": "Mezinahiya gava dengdanê",
"volumes-volume-feedback-description": "Dema ku deng tê sererastkirin dengekî bersivdanê lêxe",
"volumes-volume-feedback-description": "Dema ku deng tê sererastkirin dengekî bersivdanê lêxe.",
"volumes-volume-feedback-label": "Dengê berteka qebareyê lêxe",
"volumes-volume-overdrive-description": "Destûr dide bilindkirina deng ji sedî 100î zêdetir. Dibe ku ji hêla hemû hardware ve neyê piştgirîkirin.",
"volumes-volume-overdrive-label": "Destûra zêdekirina deng"
@@ -734,10 +746,9 @@
"appearance-density-description": "Pêdivî ye ku pêlava barê were sererast kirin ji bo xuyangek berbiçav an fireh.",
"appearance-density-label": "Çalyî bar",
"appearance-desc": "Xuyakirina xuyabûn û pozîsyona bar.",
"appearance-display-mode-description": "Hilbijêre ka kengî bila darik were xuyakirin",
"appearance-display-mode-label": "Awaya nîşandanê",
"appearance-display-mode-description": "Hilbijêre ka kengî bila darik were xuyakirin.",
"appearance-floating-description": "Bariş wekî 'heb'eke herikbar nîşan bide.",
"appearance-floating-label": "Barê avjen",
"appearance-floating-label": "Darika herîkbar",
"appearance-frame-radius": "Nîvçapa Hundirîn",
"appearance-frame-settings-description": "Stûrahiya çarçoveyê û nîvçapa goşeyê hundirîn sererast bike",
"appearance-frame-settings-label": "Sazkariyên Çarçoveyê",
@@ -746,7 +757,6 @@
"appearance-hide-on-overview-label": "Li ser dîtinê bar veşêre",
"appearance-margins-description": "Marginên dora bara herikbar eyar bike.",
"appearance-margins-horizontal": "Asoyî",
"appearance-margins-label": "Qirax",
"appearance-margins-vertical": "Stûnî",
"appearance-outer-corners-description": "Goşeyên derveyî yên çemandî li ser barî nîşan bide.",
"appearance-outer-corners-label": "Goşeyên derve",
@@ -756,7 +766,7 @@
"appearance-show-capsule-label": "Pêşkêşkirina kapsulê",
"appearance-show-outline-description": "Dîwarê xuya li dora her widgetê nîşan dide.",
"appearance-show-outline-label": "Xêzên sepanokê nîşan bide",
"appearance-type-description": "Stîla darikê hilbijêre: Sade, Herikbar an Çarçovekirî",
"appearance-type-description": "Stîla darikê hilbijêre: Sade, Herikbar an Çarçovekirî.",
"appearance-type-label": "Cûreya darikê",
"appearance-use-separate-opacity-description": "Destûrê bide ku ji bo paşxaneya bar nirxek opakbûna cuda were bikaranîn.",
"appearance-use-separate-opacity-label": "Şefafiya bara cuda bikar bîne",
@@ -771,7 +781,7 @@
"title": "Darik",
"tray-blacklist-description": "Zêdekirina rêgezên derxistina trayê, piştgiriya wildcardan (*) dike.",
"tray-blacklist-label": "Reşkirin",
"tray-blacklist-placeholder": "nm-applet, Fcitx*",
"tray-blacklist-placeholder": "mînakî nm-applet, Fcitx*",
"tray-pin-application": "Sepanê bi dar bixe",
"tray-unpin-application": "Sepanê bi dar nexe",
"use-global-widgets": "Sepanokên gerdûnî bi kar bîne",
@@ -782,13 +792,13 @@
"color-source-use-wallpaper-colors-description": "Ji dîwarê xwe şemayên rengan çêbike. Rengan bixweber derdixe da ku temayek hevgirtî biafirîne.",
"color-source-use-wallpaper-colors-label": "Rengên dîwêr bikar bîne",
"dark-mode-mode-description": "Veguhestina otomatîkî di navbera moda ronahî û tarî de çalak dike.",
"dark-mode-mode-label": "Bernameya Moda Tarî",
"dark-mode-mode-label": "Bernameya moda tarî",
"dark-mode-mode-manual": "Bi destan",
"dark-mode-mode-off": "Vemirî",
"dark-mode-switch-description": "Veguherîne bo temayek tarîtir ji bo dîtina hêsantir bi şev.",
"delete-error-description": "Xwe ji birina {scheme} bi ser neket",
"delete-error-title": "Serbirin nemû ye",
"delete-success-description": "Bi serkeftî {scheme} hate jêbirin",
"delete-success-description": "Bi serkeftî {scheme} hat jêbirin",
"delete-success-title": "Şêweya rengan hate jêbirin",
"download-button": "Bêtir daxîne",
"download-downloading": "Tê daxistin...",
@@ -840,11 +850,7 @@
"shortcuts-custom-button-command-description": "Fermana ku dema ku bişkok tê tikandin were meşandin.",
"shortcuts-custom-button-enable-on-state-logic-description": "Çalak bike îkonek duyem û rewşa 'germ' li ser bingeha fermana kontrolê.",
"shortcuts-custom-button-enable-on-state-logic-label": "Mantiqa rewşa-li-ser çalak bike",
"shortcuts-custom-button-general-tooltip-text-description": "Danasîna giştî ji bo sernavê bişkokê.",
"shortcuts-custom-button-general-tooltip-text-label": "Teksta şiroveya giştî",
"shortcuts-custom-button-on-clicked-label": "Fermana klîka çepê",
"shortcuts-custom-button-on-middle-clicked-label": "Fermana klîka navîn",
"shortcuts-custom-button-on-right-clicked-label": "Fermana rast-klîk",
"shortcuts-custom-button-on-state-command-description": "Fermana ku bê meşandin ji bo kontrolkirina ka divê bişkok di rewşa 'vekirî' de be. Ji bo vekirî 0, ji bo girtî ne-sifir vedigerîne.",
"shortcuts-custom-button-on-state-command-label": "Fermana kontrola rewşa li ser",
"shortcuts-custom-button-on-state-icon-description": "Îkona ji bo bişkokê dema ku di rewşa 'vekirî' de ye.",
@@ -973,7 +979,7 @@
"appearance-pinned-static-description": "Her gav îkonên sepanên pêvekirî bi rêza statîk ber bi çepê ve bikişîne.",
"appearance-pinned-static-label": "Serîlêdanên sabîtkirî yên statîk",
"appearance-position-description": "Cihê ku bender li ser dîmenderêê xuya dibe hilbijêre.",
"appearance-position-label": "Rewş",
"appearance-position-label": "Cih",
"enabled-description": "Nîşan bide an jî bi tevahî dokê veşêre.",
"enabled-label": "Dock çalak bike",
"monitors-desc": "Nîşan bide dock li ser çavdêrên taybet. Eger tu neyê hilbijartin, ew bi awayekî xwerû li ser hemûyan e.",
@@ -983,7 +989,7 @@
"title": "Bender"
},
"general": {
"copy-settings": "Mîhengan kopî bike",
"copy-settings": "Sazkariyan jê bigire",
"fonts-default-description": "Cûrenivîsa sereke ku li seranserê navrûyê tê bikaranîn.",
"fonts-default-label": "Cûrenivîsa berdest",
"fonts-default-placeholder": "Cûrenivîsa berdest hilbijêre...",
@@ -997,13 +1003,15 @@
"fonts-monospace-scale-description": "Mezinahiya nivîsa monospace mezin an biçûk bike.",
"fonts-monospace-scale-label": "Mezinahiya cûernivîsa monospace",
"fonts-monospace-search-placeholder": "Lêgerîn li fonta monospace...",
"fonts-reset-scaling": "Vekirina pîvanê",
"fonts-title": "Cûrenivîs",
"keybinds-down": "Bilivîne jêr",
"keybinds-left": "Bilivîne çep",
"keybinds-right": "Bilivîne rast",
"language-desc": "Zimanê xwe yê daxwazkirî ji bo sepanê hilbijêre.",
"language-select-auto-detect": "Xweber",
"language-select-description": "Zimanê ku di navrûya sepanê de tê bikaranîn hilbijêre.",
"language-select-label": "Zimanê sepanê",
"launch-setup-wizard": "Sêrbazê sazkirinê bide destpêkirin",
"launch-setup-wizard": "Sêrbazê sazkirinê",
"profile-desc": "Hûrgilyên bikarhêner û avatarê xwe biguherîne.",
"profile-picture-description": "Wêneyê profîla we ku li seranserê navrûyê xuya dibe.",
"profile-picture-label": "Wêneyê profîlê",
@@ -1019,41 +1027,42 @@
"screen-corners-solid-black-description": "Reşekî zexm bikar bîne li şûna rengê paşnavê bar.",
"screen-corners-solid-black-label": "Goşeyên reş ên zexm",
"screen-corners-title": "Quncikên dîmenderê",
"settings-copied": "Mîheng hatin kopîkirin bo clipboardê"
"settings-copied": "Sazkarî hatin jê girtin bo jêgirtindankê",
"tab-basics": "Bingehîn"
},
"hooks": {
"info-command-info-description": "• Ferman bi rêya shellê (sh -lc) tên meşandin<br>• Ferman di paşperdeyê de dimeşin (veqetandî)<br>• Bişkokên ceribandinê bi nirxên heyî dimeşin",
"info-parameters-description": "• Hooka dîwêr: $1 = rêya dîwêr, $2 = navê ekranê<br>• Hooka guherîna mijarê: $1 = rast/derew (rewşa Moda Tarî)<br>• Hookên kilîtkirin/vekirina ekranê: Parametre tune<br>• Hookên moda performansê: Parametre tune<br>• Hooka danişînê: $1 = çalakî (girtin/ji nû ve destpêkirin)",
"info-parameters-description": "• Hooka dîwêr: $1 = rêya dîwêr, $2 = navê ekranê<br>• Hooka guherîna mijarê: $1 = rast/derew (rewşa moda tarî)<br>• Hookên kilîtkirin/vekirina ekranê: Parametre tune<br>• Hookên moda performansê: Parametre tune<br>• Hooka danişînê: $1 = çalakî (girtin/ji nû ve destpêkirin)",
"info-parameters-label": "Parametreyên berdest",
"noctalia-started-description": "Fermana ku dema Noctalia barkirina xwe qedand pêk were.",
"noctalia-started-label": "Noctalia Hêla Destpêkirin",
"noctalia-started-placeholder": "mînak notify-send 'Noctalia hate barkirin'",
"noctalia-started-label": "Noctalia hêla destpêkirin",
"noctalia-started-placeholder": "mînakî notify-send 'Noctalia hate barkirin'",
"performance-mode-disabled-description": "Fermana ku dema moda performansê ya Noctalia bêbandor dibe, tê meşandin.",
"performance-mode-disabled-label": "Rewaya kar rawestayî ye",
"performance-mode-disabled-placeholder": "notify-send \"Performans\" \"Moda neçalak\"",
"performance-mode-disabled-placeholder": "mînakî notify-send \"Performans\" \"Moda neçalak\"",
"performance-mode-enabled-description": "Fermana ku dema moda performansê ya Noctalia were çalak kirin, were meşandin.",
"performance-mode-enabled-label": "Hêza xebatê aktîf bû",
"performance-mode-enabled-placeholder": "notify-send \"Performans\" \"Moda çalak\"",
"performance-mode-enabled-placeholder": "mînakî notify-send \"Performans\" \"Moda çalak\"",
"screen-lock-description": "Fermana ku dema ekran tê kilîtkirin dê were meşandin.",
"screen-lock-label": "Ekrana kilîtkirî ye",
"screen-lock-placeholder": "agahdarkirin-şandin \"Dîmender\" \"Kilîtkirî\"",
"screen-lock-placeholder": "mînakî notify-send \"Dîmender\" \"Kilîtkirî\"",
"screen-unlock-description": "Fermana ku dema ekrana kilîtkirî vebe, bê tetbîqkirin.",
"screen-unlock-label": "Ekrana vekirî ye",
"screen-unlock-placeholder": "notify-send \"Screen\" \"Unlocked\"",
"screen-unlock-placeholder": "mînakî notify-send \"Screen\" \"Unlocked\"",
"session-description": "Fermana ku berî girtin an ji nû ve destpêkirinê were darve kirin. Cureya çalakiyê wekî $1 (girtin/ji nû ve destpêkirin) distîne.",
"session-label": "Dawiya rûniştinê",
"session-placeholder": "mînak, notify-send \"Session\" \"$1\"",
"session-placeholder": "mînakî notify-send \"Session\" \"$1\"",
"system-hooks-desc": "Fermanan saz bike ku dema bûyerên pergalê çêdibin werin darvekirin.",
"system-hooks-enable-description": "Hemû fermanên hook çalak bike an jî neçalak bike.",
"system-hooks-enable-label": "Hooks çalak bike",
"system-hooks-title": "Sîstem hooks",
"theme-changed-description": "Fermana ku dema mijar di navbera Moda Tarî û Ronahî de diguhere, were meşandin.",
"theme-changed-label": "Şêwe hate guhertin",
"theme-changed-placeholder": "notify-send \"Tema\" \"Guherandin\"",
"theme-changed-placeholder": "mînakî notify-send \"Tema\" \"Guherandin\"",
"title": "Çengel",
"wallpaper-changed-description": "Fermana ku dema dîwêr diguhere bê cîbicîkirin.",
"wallpaper-changed-label": "Dîwar hate guhertin",
"wallpaper-changed-placeholder": "agahdarkirin-şandin \"Dîwarê dîwarê\" \"Guherandin\""
"wallpaper-changed-placeholder": "mînakî notify-send \"Dîwarê dîwarê\" \"Guherandin\""
},
"indicator": {
"default-value": "Xwerû: {value}",
@@ -1065,7 +1074,7 @@
"execute-title": "Cîbicîkirin",
"settings-annotation-tool-description": "Fermana ku dema tikandina bişkoka şîrovekirinê de di dîroka clipboardê de were xebitandin. Wêne dê bi rêya pipe’ê were şandin nav vê fermanê.",
"settings-annotation-tool-label": "Amûra şîrovekirinê",
"settings-annotation-tool-placeholder": "nîş. 'gradia', 'satty -f -'",
"settings-annotation-tool-placeholder": "mînakî 'gradia', 'satty -f -'",
"settings-auto-paste-description": "Bi otomatîkî tişta clipboardê ya hilbijartî bişîne. Wtype hewce dike.",
"settings-auto-paste-label": "Otomatîkî bixwe ve zeliqandin",
"settings-clip-preview-description": "Dîmenek pêşdîtinê ya naveroka clipboardê nîşan bide dema ku emrê >clip tê bikaranîn.",
@@ -1074,11 +1083,11 @@
"settings-clip-wrap-text-label": "Pêça nivîsa clipboardê",
"settings-clipboard-history-description": "Gihîştina tiştên ku berê hatine kopîkirin ji destpêkerê.",
"settings-clipboard-history-label": "Dîroka clipboardê çalak bike",
"settings-clipboard-watch-image-description": "Ji bo guhertinên wêneyê, rêza fermanê ya tevahî ji wl-paste re hat şandin. (ji nû ve destpêkirinê pêwist dike)",
"settings-clipboard-watch-image-description": "Ji bo guhertinên wêneyê, rêza fermanê ya tevahî ji wl-paste re hat şandin (ji nû ve destpêkirinê pêwist dike).",
"settings-clipboard-watch-image-label": "Fermana temaşekirina wêneyê",
"settings-clipboard-watch-text-description": "Ji bo guhertinên nivîsê, rêza fermanê ya tevahî ji wl-paste re hat şandin. (ji nû ve destpêkirinê pêwist dike)",
"settings-clipboard-watch-text-description": "Ji bo guhertinên wêneyê, rêza fermanê ya tevahî ji wl-paste re hat şandin (ji nû ve destpêkirinê pêwist dike).",
"settings-clipboard-watch-text-label": "Fermana çavdêriya nivîsê",
"settings-custom-launch-prefix-description": "Fermanên pêşgiran bi destpêkerek xwerû pêşda bikin (mînak, 'runapp' ji bo entegrasyona systemd).",
"settings-custom-launch-prefix-description": "Fermanên pêşgiran bi destpêkerek xwerû pêşda bikin (mînakî 'runapp' ji bo entegrasyona systemd).",
"settings-custom-launch-prefix-enabled-description": "Bi awayekî xwerû destpêkê ji bo destpêkirina sepanan bikar bîne li şûna rêbaza standard.",
"settings-custom-launch-prefix-enabled-label": "Pêşgira destpêkirinê ya xwerû çalak bike",
"settings-custom-launch-prefix-label": "Pêşgira destpêkirinê ya kesane",
@@ -1099,14 +1108,15 @@
"settings-show-icon-background-label": "Paşxaneya îkonê nîşan bide",
"settings-sort-by-usage-description": "Dema ku çalak be, sepanên ku pir caran têne destpêkirin pêşî di lîsteyê de xuya dibin.",
"settings-sort-by-usage-label": "Li gorî ya herî pir tê bikaranîn rêz bike",
"settings-terminal-command-description": "Fermana destpêkirina termînalê. Mînak, 'kitty -e' an 'gnome-terminal --'.",
"settings-terminal-command-description": "Fermana destpêkirina termînalê. Mînakî 'kitty -e' an 'gnome-terminal --'.",
"settings-terminal-command-label": "Fermana termînalê",
"settings-use-app2unit-description": "Rêbazeke destpêkirinê ya alternatîf bikar tîne da ku pêvajoyên sepanê baştir birêve bibe û pêşî li pirsgirêkan bigire.",
"settings-use-app2unit-label": "App2Unit bi kar bîne da ku sepanan bide destpêkirin",
"settings-view-mode-label": "Awaya nîşandanê",
"title": "Destpêkar"
},
"location": {
"calendar-cards-desc": "Rêk bixe û kartên di panelê salnameyê de çalak/neçalak bike.",
"calendar-cards-desc": "kertan rêkxistin bike di destgeha salnameyê de çalak bike/neke.",
"calendar-cards-title": "Kartên salnameyê",
"calendar-header-label": "Sernavê salnameyê",
"calendar-month-label": "Meha salnameyê",
@@ -1121,10 +1131,10 @@
"date-time-title": "Dîrok & Dem",
"date-time-use-analog-description": "Demjimêreke bi şêwaza analog li ser çarçoveya salnameyê û dîmendera kilîtkirinê nîşan bide.",
"date-time-use-analog-label": "Demjimêrê bi şêwaza analog bi kar bîne",
"date-time-week-numbers-description": "Hefteya salê (mînak, hefteya 38) di salnameyê de nîşan bide.",
"date-time-week-numbers-description": "Hefteya salê (mînakî hefteya 38) di salnameyê de nîşan bide.",
"date-time-week-numbers-label": "Jimarên hefteyê nîşan bide",
"location-desc": "Ji bo wergirtina rewşa bayê û bernamekirina ronahiya şevê ya rast, cihê xwe saz bike.",
"location-search-description": "b.m., Toronto, ",
"location-search-description": "mînakî Toronto, ON",
"location-search-label": "Ji bo cihekî bigere",
"location-search-placeholder": "Navê cihê têxîne",
"location-title": "Cihê te",
@@ -1145,8 +1155,12 @@
"lock-screen": {
"allow-password-with-fprintd-description": "Dema ku fprintd (nasnameya tiliyan) çalak e, ev vebijêrk dihêle hûn bi şîfreya xwe têkevin, ne bi tiliya xwe.",
"allow-password-with-fprintd-label": "Rêdan bi têketina şîfreyê bi fprintd",
"auto-start-auth-description": "mînak, otomatîkî dest bi rastkirina tiliyê dike bêyî ku pêdivî bi pêlkeyek an klîkek hebe.",
"auto-start-auth-description": "Otomatîkî dest bi rastkirina tiliyê dike bêyî ku pêdivî bi pêlkeyek an klîkek hebe.",
"auto-start-auth-label": "Destpêkirina otomatîkî ya rastkirinê",
"clock-format-label": "Formata demjimêrê",
"clock-style-analog": "Analog",
"clock-style-custom": "Kesane bike",
"clock-style-digital": "Jimarî",
"compact-lockscreen-description": "Tenê têketina ketanê û kontrolên pergalê nîşan bide, sepanokên rewşa bayê û medyayê veşêre.",
"compact-lockscreen-label": "Kilîta ekrana berhevkirî",
"lock-on-suspend-description": "Dema ku pergal tê rawestandin, ekranê bixweber kilît bike.",
@@ -1172,7 +1186,6 @@
"duration-low-urgency-label": "Lezgînî kêm",
"duration-normal-urgency-description": "Notîfîkasyonên pêşîniya normal çiqas dirêj xuya dimînin.",
"duration-normal-urgency-label": "Lezgînahiya normal",
"duration-reset": "Demjimêra dema derbasbûnê ji nû ve saz bike",
"duration-respect-expire-description": "Dem wextê qedandinê yê ku di agahdariyê de hatiye danîn bikar bîne.",
"duration-respect-expire-label": "Dem bihurmet demdirêj qedandin",
"duration-title": "Dirêjahiya agahdariyê",
@@ -1183,8 +1196,6 @@
"history-low-urgency-label": "Dîroka lezgîniya kêm tomar bike",
"history-normal-urgency-description": "Agahdariyên pêşîniya normal di dîrokê de tomar bike.",
"history-normal-urgency-label": "Dîroka lezgîniya normal tomar bike",
"media-toast-description": "Dema rewşa lêdana medyayê biguhere, toastekê nîşan bide.",
"media-toast-label": "Medya",
"monitors-desc": "Nîşandana agahdarkirinê li ser çavdêrên taybet. Heke neyên hilbijartin, bi awayekî xwerû hemûyan nîşan dide.",
"settings-always-on-top-description": "Nîşandanên li ser pencereyên tev-ekran û qatên din nîşan bide.",
"settings-background-opacity-description": "Guhertina zelaliya paşxaneyên agahdariyan.",
@@ -1221,10 +1232,13 @@
"sounds-unavailable-description": "Ji bo ku dengên agahdarkirinê çalak bibin, Qt6 Multimedia saz bikin.",
"sounds-unavailable-label": "Dengên agahdarkirinê peyda nabin",
"sounds-volume-description": "Ayarê asta deng ji bo dengên agahdarkirinê rast bike.",
"sounds-volume-label": "Hêjmara deng",
"sounds-volume-label": "Jimara dengê",
"toast-battery-label": "Hişyariya betariyê",
"toast-desc": "Xuyabûn û reftarên toastê saz bike.",
"toast-keyboard-description": "Dema ku şewaza kilîtdankê were guhertin, hişyarî nîşan bide.",
"toast-keyboard-label": "Şêwaza kilîtdankê"
"toast-keyboard-label": "Şêwaza kilîtdankê",
"toast-media-description": "Dema rewşa lêdana medyayê biguhere, toastekê nîşan bide.",
"toast-media-label": "Medya"
},
"osd": {
"always-on-top-description": "OSD li ser pencereyên tev-ekran û qatên din nîşan bide.",
@@ -1237,38 +1251,40 @@
"duration-desc": "Çiqas dirêj OSD berî ku bixweber veşêre, xuya dimîne.",
"duration-title": "Demjimêra veşartina otomatîk",
"enabled-description": "Guhertinên deng û ronahiyê di dema rast de nîşan bide.",
"enabled-label": "Dîmendera ser ekranê çalak bike",
"enabled-label": "Pêşandana ser ekranê (OSD) çalak bike",
"events-desc": "Bûyerên ku pêşandana ser ekranê çalak dikin hilbijêre.",
"general-desc": "Vebijêrkên dîtin û tevgera OSD'ê saz bike.",
"location-description": "Li ku derê dîmenderên ser ekranê xuya dibin.",
"location-description": "Li ku derê pêşandanên ser ekranê xuya dibin.",
"monitors-desc": "OSD li ser çavdêrên taybet nîşan bide. Ger tu neyên hilbijartin, bi awayekî xwerû li ser hemûyan nîşan dide.",
"title": "şandana ser ekranê",
"title": "şandana ser ekranê",
"types-brightness-description": "Dîmendera OSD nîşan bide dema ronahiya ekranê diguhere.",
"types-brightness-label": "Ronahî",
"types-custom-text-description": "OSD ya nivîsandeyên xwerû yên ji IPC'yê nîşan bide.",
"types-custom-text-label": "Teksta xweser",
"types-desc": "Bûyerên ku OSD'ê çalak dikin hilbijêre.",
"types-input-volume-description": "Dîmenê OSD nîşan bide dema ku qebareya mîkrofonê diguhere.",
"types-input-volume-label": "Hêjmara têketinê",
"types-input-volume-label": "Dengê ketanê",
"types-lockkey-description": "Dema Caps Lock, Num Lock, an Scroll Lock hatin guhertin, OSD nîşan bide.",
"types-lockkey-label": "Kilîtên qeflê",
"types-media-description": "Dema rewşa lêdana medyayê biguhere OSD nîşan bide (lêdan, rawestandin, derbasbûn).",
"types-media-label": "Lîstina medyayê",
"types-title": "Bûyerên destpêker ên OSD",
"types-volume-description": "Dema ku asta dengê derketina bihîstwerê diguhere, OSD nîşan bide.",
"types-volume-label": "Hêjmara derketinê"
"types-volume-label": "Jimara deranê"
},
"plugins": {
"available-description": "Pêvekên ji çavkaniyên rêkxistî bigere û saz bike",
"available-label": "Pêvekên berdest",
"available-no-plugins-description": "Çavkaniyên pêvekê xwe kontrol bikin an lîsteyê nû bikin.",
"available-no-plugins-label": "Tiştên pêvek tune ne",
"check-for-updates": "Ji bo rojanekirinê kontrol bike",
"checking-for-updates": "Ji bo rojanekirinê kontrol dike...",
"collision-already-installed": "Ev pêvek berê hatiye sazkirin",
"collision-custom-version-exists": "Guhertoyeke taybet a ji \"{source}\" berê hatiye sazkirin",
"collision-official-version-exists": "Guhertoya fermî ya vê pêvekê berê hatiye sazkirin",
"filter-downloaded": "Daxistî",
"filter-not-downloaded": "Nehatiye daxistin",
"filter-tags-description": "Parzûna pêvekên bi kategoriya an rewşa daxistinê",
"filter-tags-description": "Parzûna pêvekên bi kategoriya an rewşa daxistinê.",
"filter-tags-label": "Tagan",
"hot-reload-description": "Bi guhertina pelên wan, bixweber pêvekên xwe ji nû ve bar bike. Ji bo pêşxistina pêvekan bikêr e.",
"hot-reload-label": "Nûbarkirina germ (moda pêşvebirinê)",
@@ -1302,7 +1318,7 @@
"sources-placeholder": "Depoya min a bedew",
"sources-remove-tooltip": "Çavkaniya pêvekê jê bibe",
"title": "Pêvek",
"uninstall-dialog-description": "Ma hûn bawer in ku hûn dixwazin {plugin} jêbirin? Ev ê hemî daneyên pêvekê jê bibe.",
"uninstall-dialog-description": "Tu dixwazî {plugin} jê bi? Ev ê hemû daneyên pêvekê jê bibe.",
"uninstall-dialog-title": "Rakêşana pêvekê",
"uninstall-error": "Nekarî were rakirin: {error}",
"uninstall-success": "Bi serkeftî {plugin} hate rakirin",
@@ -1328,7 +1344,7 @@
"entries-desc": "Çalakiyên hêzê yên ku di menuya danişînê de û bi kîjan rêzê de xuya dibin, xweş bikin.",
"entries-title": "Kiryarên hêzê",
"entry-settings-command-description": "Fermana xwerû ya ku ji bo vê çalakiyê were meşandin. Ji bo bikaranîna fermana pergalê ya xwerû vala bihêle.",
"entry-settings-command-placeholder": "systemctl poweroff",
"entry-settings-command-placeholder": "mînakî systemctl poweroff",
"entry-settings-default-command-lock": "Kilîta hundirîn a ekranê (bê ferman)",
"entry-settings-default-command-logout": "Derketina navxweyî (bê ferman)",
"entry-settings-default-info-description": "Heke fermana xwerû neyê diyarkirin, fermana pergalê ya xwerû dê were bikar anîn.",
@@ -1342,9 +1358,7 @@
"large-buttons-style-label": "Şêwaza bişkokên mezin",
"position-description": "Dema ku panelê menuya danişînê vebe, hilbijêre ku li ku derê xuya bibe.",
"show-header-description": "Sernavê û bişkoka girtinê li jorê menuyê rûniştinê nîşan bide.",
"show-header-label": "Serpê nîşan bide",
"show-number-labels-description": "Li ser bişkokan etîketên hejmaran (1-2-3-4...) nîşan bide û ji bo hilbijartina bilez kilîdên hejmaran çalak bike.",
"show-number-labels-label": "Nîşanên hejmaran nîşan bide"
"show-header-label": "Serpê nîşan bide"
},
"system-monitor": {
"critical-color-label": "Rengê krîtîk",
@@ -1372,7 +1386,7 @@
"allow-panels-without-bar-description": "Dema ku çalak be, panel dikarin li ser her ekranê vebin. Dema ku neçalak be, panel tenê dê li ser ekranên ku barekî wan heye vebin, ku dikare bikaranîna bîrê kêm bike.",
"allow-panels-without-bar-label": "Destûrê bide panelan li ser ekranan bêyî barekî",
"animation-disable-description": "Hemû anîmasyonan neçalak bike ji bo ezmûneke bileztir û bersivdartir.",
"animation-disable-label": "Bêçalakkirina anîmasyonên UI",
"animation-disable-label": "Anîmasyonên NB çalak neke",
"animation-speed-description": "Lezaaniya lezgîniya gerdûnî sererast bike.",
"animation-speed-label": "Leza anîmasyonê",
"animation-speed-reset": "Lezaaniya bilezîneka nû bike",
@@ -1380,28 +1394,24 @@
"box-border-description": "Xêzekê li dora deverên naverokê nîşan dide.",
"box-border-label": "Çarçoweya konteynerê",
"box-border-radius-description": "Goşeya dorfirehiya beşên sereke yên layoutê, wekî barên kêlekê, kart, û panelên naverokê, eyar dike.",
"box-border-radius-label": "Radiusa Konteynirê",
"box-border-radius-reset": "Vegerandina radiusa konteynerê",
"box-border-radius-label": "Radiusa konteynirê",
"control-border-radius-description": "Kontrola çemandina hêmanên înteraktîv, di nav de bişkok, guhêrbarok û qadên nivîsê.",
"control-border-radius-label": "Tîrêjê têketinê",
"control-border-radius-reset": "Dîsa çapemeniya têketinê saz bike",
"desc": "Xuyakirina xuyabûn, hest, û reftarên navrûyê.",
"dim-desktop-description": "Dema panel an menü vebin, sermaseyê tarî bike.",
"dim-desktop-label": "Dim sermaseyê",
"dimmer-opacity-description": "Ayarê asta zelalbûna ji bo tarîkirina sermaseyê bike.",
"dimmer-opacity-label": "Şefafiya sermaseyê sermaseyê kêmkirî",
"dimmer-opacity-reset": "Vekirina zelalbûna sermaseya tarîkirî",
"panel-background-opacity-description": "Zelalbûna paşrûyê ji bo hemû destgehan (darik, destpêker, sazkarî, hwd...) saz bike.",
"panel-background-opacity-label": "Zelaliya paşrûyê destgehê",
"panels-attached-to-bar-description": "Panelên bi qiraxên bar û ekranê ve têne kilît kirin, bi goşeyên berevajîkirî yên şêwekar xuyangek bêkêmasî diafirînin.",
"panels-attached-to-bar-label": "Panêlan bi kêlekê ve bişkînin",
"panels-overlay-description": "Pişkin dike ku panel û bar, heta ser sepanên tev-ekran jî, xuya bimînin.",
"panels-overlay-label": "Panêl û barê li jor bihêle",
"panels-overlay-label": "Destgeh & darikê li jor bihêle",
"scaling-description": "Guhertina mezinahiya navrûya giştî ya bikarhêner, ji bilî bar.",
"scaling-label": "Pîvana navbeynê",
"scaling-reset-scaling": "Pîvana navbeynê vegerîne",
"scaling-label": "Pîvana navrûyê",
"settings-panel-mode-description": "Hilbijêre şêweyê mîhengan (dibe ku ji nû ve vekirinê hewce bike).",
"settings-panel-mode-label": "Rewşa panelê mîhengan",
"settings-panel-mode-label": "Awaya destgeha sazkariyan",
"shadows-description": "Dîsa siya di bin bar û panelan de çalak dike.",
"shadows-direction-description": "Hilbijêre ku siya ji ku tê avêtin.",
"shadows-direction-label": "Arasteya siya",
@@ -1414,7 +1424,7 @@
"automation-change-mode-alphabetical": "Alfabetîk",
"automation-change-mode-description": "Dema ku dîwar otomatîk diguhere, hilbijêre ka dîwar çawa têne hilbijartin.",
"automation-change-mode-label": "Guherandin moda",
"automation-custom-interval-description": "Demê wekî HH:MM (b.m., 01:30) têxîne.",
"automation-custom-interval-description": "Demê wekî HH:MM (mînakî 01:30) têxîne.",
"automation-custom-interval-label": "Navbera xwerû",
"automation-interval-description": "Çend caran divê dîwarên dîwêr bixweber werin guhertin.",
"automation-interval-label": "Navbera dîwêr",
@@ -1429,7 +1439,7 @@
"look-feel-title": "Binêre û hîs bike",
"look-feel-transition-duration-description": "Dirêjahiya anîmasyonên derbasbûnê bi çirkeyan.",
"look-feel-transition-duration-label": "Dirêjahiya derbasbûnê",
"look-feel-transition-type-description": "Cureyê anîmasyonê dema ku di navbera dîwêran de diguherin.",
"look-feel-transition-type-description": "Cûreyê anîmasyonê dema ku di navbera wêneyên dîwêr de diguhere.",
"look-feel-transition-type-label": "Curey guherînê",
"settings-desc": "Kontrolkirina çawaniya birêvebirin û nîşandana dîwêrên dîmenderê.",
"settings-enable-management-description": "Bi Noctalia dîwaran birêve bibin. Ger hûn dixwazin serlêdanek din bikar bînin, nîşana wê rake.",
@@ -1464,11 +1474,11 @@
"enter-command": "Fermana ku bê tetbîqkirin binivîse (sepan an nivîsara taybet)",
"enter-ipc-identifier": "Ji bo fermanên IPC nasnameyek yekta binivîse",
"enter-path": "Rêya binivîse...",
"enter-text-to-collapse": "e.g., 'tiştek nayê lîstin'. Use /regex/ for patterns.",
"enter-text-to-collapse": "mînakî 'tiştek nayê lîstin'. Use /regex/ for patterns.",
"enter-tooltip": "Têketina sernavê amûrê",
"enter-width-pixels": "Firehiya bi pîxel binivîse",
"search": "Bigere...",
"search-icons": "b.m., noctalia, niri, betarî, ewr",
"search-icons": "mînakî noctalia, niri, betarî, ewr",
"search-launcher": "Li navan bigere... an ji bo fermanan > bi kar bîne",
"search-wallhaven": "Lêgerîn li Wallhaven...",
"search-wallpapers": "Binivîse da ku dîwêran parzûn bikî..."
@@ -1481,7 +1491,7 @@
"center": "Navend",
"center-left": "Navend çep",
"center-right": "Navend rast",
"close-to-bar": "Nêzîkî bişkoja barê",
"close-to-bar": "Nêzîkî bişkoka darikê",
"follow-bar": "Darikê bişopîne",
"left": "Çep",
"right": "Rast",
@@ -1498,7 +1508,7 @@
"setup": {
"all-done": "Qediya!",
"appearance": {
"subheader": "Dark Mode û çavkaniyên rengan hilbijêre (Wallpaper an pêşdiyarkirî)."
"subheader": "Moda tarî û çavkaniyên rengan hilbijêre (wallpaper an pêşdiyarkirî)."
},
"customize": {
"header": "Xweserkirina ezmûna xwe bike",
@@ -1506,7 +1516,7 @@
},
"skip-setup": "Sazkirinê Derbas Bike",
"telemetry-wizard-done": "Gihîşt!",
"telemetry-wizard-note": "Hûn di kontrolê de ne - hûn dikarin vê yekê di Mîhengan de her dem çalak an neçalak bikin",
"telemetry-wizard-note": "Hûn di kontrolê de ne hûn dikarin vê yekê di mîhengan de her dem çalak an neçalak bikin",
"telemetry-wizard-subtitle": "Me analîtîkên anonîm zêde kirin da ku alîkariya başkirina Noctalia bikin",
"telemetry-wizard-title": "Nûkirina Nepenîtiyê",
"wallpaper": {
@@ -1538,7 +1548,7 @@
"unknown-app": "Sepanek nenas",
"uptime": "Dema xebitandinê: {uptime}",
"user-requested": "Daxwaza bikarhêner",
"welcome-back": "Bi xêr hatî,",
"welcome-back": "Silav,",
"widget-settings-title": "Sazkariyên {widget}"
},
"system-monitor": {
@@ -1547,7 +1557,7 @@
"disk": "Dîsk",
"download-speed": "Leza daxistinê",
"gpu-temp": "Germahiya YKG",
"load-average": "Bar navîn",
"load-average": "Barkirina navîn",
"title": "Çavdêriya pergalê",
"upload-speed": "Leza barkirinê"
},
@@ -1583,7 +1593,7 @@
"disabled": "Dengê dernexîne neçalak e",
"disabled-desc": "Hemû agahdarî tên nîşandan",
"enabled": "Dengê dernexîne çalak e",
"enabled-desc": "Hûn ê van agahdariyan di dîroka xwe de bibînin"
"enabled-desc": "Tu yê van agahdariyan di dîroka xwe de bibînî"
},
"donation-opened": "Rûpela bexşînê di geroka we de vebû",
"internet-limited": "Pêwendîdar bê înternetê",
@@ -1603,7 +1613,7 @@
"noctalia-performance": {
"disabled": "Rewşa performansê hat betalkirin",
"enabled": "Rewşa performansê çalak bû",
"label": "Performansa Noctalîa"
"label": "Performansa Noctalia"
},
"power-profile": {
"changed": "Profîla hêzê hate guhertin",
@@ -1637,7 +1647,7 @@
"brightness-at": "Ronahî: {brightness}%",
"click-to-start-recording": "Tomarkarê dîmenderê (dest bi tomarkirinê bike)",
"click-to-stop-recording": "Tomarkarê dîmenderê (tomarkirinê rawestîne)",
"collapse": "Sidebarê veşêre",
"collapse": "Darika kêlelê veşêre",
"copy-address": "Navnîşana kopî bike",
"delete-notification": "Agahdariyê jê bibe",
"do-not-disturb-enabled": "Dengê dernexîne",
@@ -1677,7 +1687,7 @@
"search-close": "Lêgerînê bigire",
"session-menu": "Menuya danişînê",
"show-all-devices": "Hemû amûran nîşan bide",
"switch-to-dark-mode": "Awaya tarî",
"switch-to-dark-mode": "Moda tarî",
"switch-to-light-mode": "Awaya ronahî",
"unmute": "Bêdeng neke",
"up": "Rêgeha resen",
@@ -1705,8 +1715,6 @@
"apikey-label": "Kilîta API",
"apikey-managed-by-env": "Bi rêya guherbara hawîrdorê ya NOCTALIA_WALLHAVEN_API_KEY tê birêvebirin.",
"apikey-placeholder": "API Key-a Wallhavenê xwe binivîse",
"apply-all-monitors-description": "Wêneyê dîwêrê ya hilbijartî li ser hemû dîmenderan bisepîne.",
"apply-all-monitors-label": "Li ser hemû dîmenderan bisepîne",
"categories-anime": "Anîme",
"categories-label": "Beş",
"categories-people": "Mirov",
@@ -1741,13 +1749,15 @@
"disc": "Dîsk",
"fade": "Wendabûn",
"stripes": "xêz",
"wipe": "Rakirin"
"wipe": "Rake"
},
"try-different-search": "Lêgerîneke cûda bi kar bîne.",
"wallhaven": {
"loading": "Wêneyên dîwaran tên barkirin...",
"no-results": "Wêneyên dîwaran nehatin dîtin. Lêgerîneke cûda bi kar bîne.",
"page": "{current} ji {total}"
"page": "{current} ji {total}",
"page-prefix": "Rûpel",
"page-suffix": "ji {total}"
}
},
"weather": {
File diff suppressed because it is too large Load Diff
+240
View File
@@ -0,0 +1,240 @@
{
"actions": {
"clear-history": "Tøm tidefar",
"close-app": "Steng {app}",
"connect-vpn": "Få samband med {name}",
"cycle-visualizer": "Skift framsyning",
"disable-bluetooth": "Slå av Blåtann",
"disable-dnd": "Slå av \"Ikkje skjepla\"",
"disable-wifi": "Slå av trådlaust net",
"disconnect-vpn": "Enda samband med {name}",
"dock-settings": "Festeinnstillingar",
"enable-bluetooth": "Slå på Blåtann",
"enable-dnd": "Slå på \"Ikkje skjepla\"",
"enable-wifi": "Slå på trådlaust net",
"launcher-settings": "Innstillingar for nøytendeveljar",
"lower-to-bottom": "Send til botnar",
"open-calendar": "Opna almanakka",
"open-display-settings": "Syn innstillingar",
"open-launcher": "Opna nøytendeveljar",
"open-settings": "Opna innstillingar",
"raise-to-top": "Send til toppen",
"random-wallpaper": "Slumpebilæte",
"run-custom-command": "Køyr sjølvgjort styrebod",
"show-active-only": "Syn berre verksam",
"show-all": "Syn alt",
"toggle-mute": "Ljodsløkkjing på/av",
"widget-settings": "Nøytelinnstillingar"
},
"authentication": {
"error": "Sanningsmistak",
"failed": "Sanningsmistak"
},
"bar": {
"active-window": {
"colorize-icons-description": "Lita den verksame ruta med hamlitene.",
"hide-mode-description": "Stjorna kor nøytelen ter seg når det ikkje er ei verksam ruta.",
"scrolling-mode-description": "Stjorna når lange rutenomn kann bledjast.",
"show-app-icon-description": "Syn nøytendefråmerke attmed rutenamn.",
"show-app-icon-label": "Syn nøytendefråmerke"
},
"audio-visualizer": {
"color-name-description": "Kjos lìten på framsyningi.",
"color-name-label": "Fyllelìt",
"hide-when-idle-description": "Framsyningi løynest når dette er på, minder noko spelar av.",
"hide-when-idle-label": "Løyn når ingen ting spelar av",
"width-description": "Sjølvvald lutbreidd."
},
"battery": {
"device-default": "Fyrevald syningsambod",
"device-description": "Kjos batteriambod du vil syna fram.",
"device-label": "Batteriambod",
"display-mode-description": "Vel korleîs batteriet er synt fram på radi.",
"display-mode-graphic": "Upplysande batteriteikn",
"display-mode-graphic-clean": "Upplysande batteriteikn (ingen %)",
"display-mode-icon-always": "Fråmerke - syn % stødt",
"display-mode-icon-hover": "Fråmerke - syn ved sviv",
"display-mode-icon-only": "Einast teikn",
"hide-if-idle-description": "Løyn nøytelen når batteriet ikkje ladar og ikkje gjev straum.",
"hide-if-idle-label": "Løyn når uverksam",
"hide-if-not-detected-description": "Løyn nøytelen når kjernen ikkje finn eit batteri.",
"hide-if-not-detected-label": "Løyn når ikkje funne",
"low-battery-threshold-label": "Åtvaringstreskald for lågt batteri",
"show-noctalia-performance-description": "Syn brjotaren for Ytestoda frå Noctalia i batterifjøli.<br>Slær av skuggar og bilætrørslor i Noctalia for å minka emnebruk.",
"show-noctalia-performance-label": "Syn brjotaren for Ytestoda frå Noctalia",
"show-power-profile-description": "Syn veljaren for straumhått i batterifjøli.",
"show-power-profile-label": "Syn straumhåttstoli"
},
"brightness": {
"apply-all-description": "Brigd på ljosstyrke på kvar skjerm når ein nyttar bladhjulet.",
"apply-all-label": "Gjev bladbrigde åt kvar skjerm"
},
"clock": {
"clock-display-description": "Legg til merke frå skråi her for å måta til klokka. 'AP'-merket lyt vera med um klokka berre skal hava 12 timar.",
"clock-display-label": "Klokkesyning",
"custom-font-description": "Kjos skriftkynd til klokka.",
"custom-font-label": "Skriftkynd",
"custom-font-placeholder": "Vel skriftkynd ...",
"custom-font-search-placeholder": "Leita i skriftkynder ...",
"horizontal-bar-description": "Råd: Du kann nytta \\n til å skifta til ny lina.",
"horizontal-bar-label": "Vassbein rad",
"preview": "Vis fyreåt",
"tooltip-format-description": "Snidstreng for vitringi som kjem upp når du sviv yver klokka. Haldt tom for fyrevald vitring.",
"tooltip-format-label": "Vitringssnid",
"use-custom-font-description": "Sjå burt frå skriftkyndi elles og nytta ei onnor skriftkynd til klokka.",
"use-custom-font-label": "Nytta onnor skriftkynd",
"use-monospaced-font-description": "Klokka nyttar fastbreiddeskrift når dette er på.",
"use-monospaced-font-label": "Nytta fastbreiddeskrift",
"vertical-bar-description": "Skriv inn eit millomrom for å skifta kvar lut til ei ny lina.",
"vertical-bar-label": "Loddbein rad"
},
"control-center": {
"browse-file": "Leita etter fil",
"browse-library": "Leita i samning",
"color-selection-description": "Lita nøytelfråmerke med hamlitene.",
"enable-colorization-description": "Lita merket til styreromet med hamlitene.",
"icon-description": "Kjos fråmerke frå samningi eller ei onnor fil.",
"select-custom-icon": "Kjos anna fråmerke",
"use-distro-logo-description": "Nytta fråmerket til Linuxavbrigdet ditt helder en eit anna teikn.",
"use-distro-logo-label": "Nytta avbrigdesfråmerke"
},
"custom-button": {
"collapse-condition-description": "Knappen løynest um utskrifti er lik dette.",
"collapse-condition-label": "Løyningsvilkor",
"color-selection-description": "Lita fråmerket og teksti med hamlitene.",
"default-tooltip": "Sjølvgjord knapp, stjorna i innstillingane",
"display-command-output-description": "Skriv inn eit styrebod som skal køyra jamlege. Syner fyrste utskriftsradi som tekst.",
"display-command-output-label": "Syn utskrift frå styrebod",
"display-command-output-stream-description": "Skriv inn styrebod som skal køyra heile tidi.",
"dynamic-text": "Kvikskrift",
"enable-colorization-description": "Lita fråmerket og teksti på den sjølvgjorde knappen med hamlitene.",
"general-tooltip-text-description": "Sjølvvald tekst å syna i hjelpeteksti åt knappen.",
"general-tooltip-text-label": "Sjølvvald hjelpetekst",
"hide-mode-always-expanded": "Stødt vidka",
"hide-mode-description": "Stjornar um nøytelen er til å sjå når styrebodet ikkje kjem med utskrift.",
"hide-mode-expand-with-output": "Vidka ved utskrift",
"hide-mode-label": "Løyndarluna",
"hide-mode-max-transparent": "Vidka heilt men klår",
"icon-description": "Kjos fråmerke frå samningi.",
"ipc-identifier-description": "Sermerke for IPC-styrebod. Nytta dette merket med 'qs -c noctalia-shell ipc call cb [gjerning] [merke]' for å styra knappen med IPC.",
"ipc-identifier-label": "IPC-sermerke",
"left-click-description": "Styrebod som køyrer ved vinstretrykk.",
"left-click-label": "Vinstretrykk",
"left-click-update-text": "Før upp ny tekst ved vinstretrykk",
"max-text-length-horizontal-description": "Øvre grensa på teikn som kann synast på vassbein rad (0 for å løyna).",
"max-text-length-horizontal-label": "Øvre grensa på tekstlengd (vassbein)",
"max-text-length-vertical-description": "Øvre grensa på teikn som kann synast på loddbein rad (0 for å løyna).",
"max-text-length-vertical-label": "Øvre grensa på tekstlengd (loddbein)",
"middle-click-description": "Styrebod som køyrer ved midtrykk.",
"middle-click-label": "Midtrykk",
"middle-click-update-text": "Før upp ny tekst ved midtrykk",
"parse-json-description": "Tyd utfall frå styrebodet som JSON-likam for å stjorna tekst og fråmerke kvikt.",
"parse-json-label": "Tyd utfall som JSON",
"refresh-interval-description": "Bil i millisekundar.",
"refresh-interval-label": "Nykveikjingsbil",
"right-click-description": "Styrebod som køyrer ved høgretrykk.",
"right-click-label": "Høgretrykk",
"right-click-update-text": "Før upp ny tekst ved midtrykk",
"show-exec-tooltip-description": "Syn hjelpetekst med styrebodsupplysningar (vinstre/høgre/midtrykk, hjul).",
"show-exec-tooltip-label": "Syn hjelpetekst med styrebod",
"show-icon-description": "Skifter um nøytelfråmerket er synlegt eller ikkje.",
"show-icon-label": "Syn fråmerke",
"show-text-tooltip-description": "Syn hjelpetekst med utskrifti or styrebodet.",
"show-text-tooltip-label": "Syn kvikskrift hjelpeskrift",
"text-stream-description": "Strøymde utfallssegner frå styrebodet syner seg som tekst på knappen.",
"text-stream-label": "Strøym",
"wheel-description": "Styrebod som køyrer når ein bled hjulet på musi.<br>Nytta $delta i styrebodet for hjulsbrigdi.",
"wheel-down": "Bled nedetter",
"wheel-down-description": "Styrebod som køyrer når hjulet er bladt nedetter.",
"wheel-down-label": "Styrebod - nedetter",
"wheel-label": "Bladhjul",
"wheel-mode-separate-description": "Hav ulike styrebod når ein bled uppetter og nedetter.",
"wheel-mode-separate-label": "Skilde hjulstyrebod",
"wheel-up": "Bled uppetter",
"wheel-up-description": "Styrebod som køyrer når hjulet er bladt uppetter.",
"wheel-up-label": "Styrebod - uppetter",
"wheel-update-text": "Før upp ny tekst med bledjing"
},
"keyboard-layout": {
"show-icon-description": "Syn merket for knappefjøluppsett."
},
"lock-keys": {
"hide-when-off-description": "Løyn sermerket når knappen ikkje er verksam.",
"hide-when-off-label": "Løyn når av",
"show-caps-lock-description": "Syn storlåshåtten",
"show-caps-lock-label": "Storlås",
"show-num-lock-description": "Syn tallåshåtten",
"show-num-lock-label": "Tallås",
"show-scroll-lock-description": "Syn bladlåshåtten",
"show-scroll-lock-label": "Bladlås"
},
"media-mini": {
"compact-mode-description": "Få spelnøytelsfjøli til å roma mindre.",
"compact-mode-label": "Klemb spelnøytelen",
"hide-mode-description": "Stjorna framferdi åt nøytelen når ingen ting spelar av.",
"max-width-description": "Fastset kor mykje nøytelen kan lengjast vassbeint. Nøytelen dreg seg i hop for å røma stuttare innhald.",
"no-active-player": "Ingi verksame spelarar",
"panel-section-description": "Stjorna skapnaden og framferdi åt spelnøytelsfjøli.",
"panel-section-label": "Spelnøytelsfjøl",
"scrolling-mode-description": "Stjorna når lange spelnomn kann bledjast.",
"scrolling-mode-label": "Bladluna",
"show-album-art-description": "Syn platekunsten til spelet som spelar av no.",
"show-album-art-label": "Syn platekunst",
"show-artist-first-description": "Syn spelmann - spel helder en spel - spelmann",
"show-artist-first-label": "Syn spelmann fyrst",
"show-progress-ring-description": "Syn ein ringvorden framgangsvisar.",
"show-progress-ring-label": "Syn framgangsvisar",
"show-visualizer-description": "Syn ljodframsyning når eitkvart spelar av.",
"show-visualizer-label": "Syn framsyning",
"use-fixed-width-description": "Nøytelen ruvar so mykje råd er helder en å høva seg til innhald, når dette er på.",
"use-fixed-width-label": "Nytta fast breidd",
"visualizer-type-description": "Vel eit slag for ljodframsyningi.",
"visualizer-type-label": "Framsyningsslag"
},
"notification-history": {
"hide-widget-when-zero-description": "Løyn varselteikn når det ikkje er varsel.",
"hide-widget-when-zero-label": "Løyn teikn når inkje varsel",
"hide-widget-when-zero-unread-description": "Løyn varselteikn når det ikkje er ulesne varsel.",
"hide-widget-when-zero-unread-label": "Løyn teikn når inkje ulesne varsel",
"show-unread-badge-description": "Syn eit merke med kor mange ulesne varsel det er.",
"show-unread-badge-label": "Syn \"ulesne\"-merke",
"unread-badge-color-description": "Kjos lit for merket som syner kor mange ulesne varsel det er.",
"unread-badge-color-label": "\"Ulesne\"-merkelit"
},
"section-editor": {
"placeholder": "Kjos ein nøytel å leggja til ...",
"search-placeholder": "Leita etter nøytel ..."
},
"spacer": {
"width-description": "Rombreidd i molar."
},
"system-monitor": {
"compact-mode-description": "Syn upplysningar som suleteikningar helder en skrift. Stoggar brigde i uppsettet.",
"compact-mode-label": "Klemb nøytelen",
"cpu-frequency-description": "Syn midverksnarleik i GHz.",
"cpu-frequency-label": "Syn midverksøkning",
"cpu-temperature-description": "Syn hitemælingar for midverket um råd.",
"cpu-temperature-label": "Midverkhite",
"cpu-usage-description": "Syn midverkbruk som hundradpart.",
"cpu-usage-label": "Midverkbruk"
}
},
"common": {
"brightness": "Ljosstyrke",
"select-color-description": "Lita med hamlitene for tyngd."
},
"options": {
"bar": {
"density-compact": "Klembd"
},
"launcher-density": {
"compact": "Klembd"
},
"notification-density": {
"compact": "Klembd"
}
},
"system": {
"welcome-back": "Velkomen attende,"
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+162 -38
View File
@@ -8,9 +8,13 @@
"showOutline": false,
"showCapsule": true,
"capsuleOpacity": 1,
"capsuleColorKey": "none",
"widgetSpacing": 6,
"contentPadding": 2,
"fontScale": 1,
"enableExclusionZoneInset": true,
"backgroundOpacity": 0.93,
"useSeparateOpacity": false,
"floating": false,
"marginVertical": 4,
"marginHorizontal": 4,
"frameThickness": 8,
@@ -20,6 +24,7 @@
"displayMode": "always_visible",
"autoHideDelay": 500,
"autoShowDelay": 150,
"showOnWorkspaceSwitch": true,
"widgets": {
"left": [
{
@@ -64,6 +69,15 @@
}
]
},
"mouseWheelAction": "none",
"reverseScroll": false,
"mouseWheelWrap": true,
"middleClickAction": "none",
"middleClickFollowMouse": false,
"middleClickCommand": "",
"rightClickAction": "controlCenter",
"rightClickFollowMouse": true,
"rightClickCommand": "",
"screenOverrides": []
},
"general": {
@@ -79,10 +93,13 @@
"animationSpeed": 1,
"animationDisabled": false,
"compactLockScreen": false,
"lockScreenAnimations": false,
"lockOnSuspend": true,
"showSessionButtonsOnLockScreen": true,
"showHibernateOnLockScreen": false,
"enableLockScreenMediaControls": false,
"enableShadows": true,
"enableBlurBehind": true,
"shadowDirection": "bottom_right",
"shadowOffsetX": 2,
"shadowOffsetY": 3,
@@ -93,7 +110,39 @@
"enableLockScreenCountdown": true,
"lockScreenCountdownDuration": 10000,
"autoStartAuth": false,
"allowPasswordWithFprintd": false
"allowPasswordWithFprintd": false,
"clockStyle": "custom",
"clockFormat": "hh\\nmm",
"passwordChars": false,
"lockScreenMonitors": [],
"lockScreenBlur": 0,
"lockScreenTint": 0,
"keybinds": {
"keyUp": [
"Up"
],
"keyDown": [
"Down"
],
"keyLeft": [
"Left"
],
"keyRight": [
"Right"
],
"keyEnter": [
"Return",
"Enter"
],
"keyEscape": [
"Esc"
],
"keyRemove": [
"Del"
]
},
"reverseScroll": false,
"smoothScrollEnabled": true
},
"ui": {
"fontDefault": "",
@@ -101,19 +150,19 @@
"fontDefaultScale": 1,
"fontFixedScale": 1,
"tooltipsEnabled": true,
"scrollbarAlwaysVisible": true,
"boxBorderEnabled": false,
"panelBackgroundOpacity": 0.93,
"translucentWidgets": false,
"panelsAttachedToBar": true,
"settingsPanelMode": "attached",
"wifiDetailsViewMode": "grid",
"bluetoothDetailsViewMode": "grid",
"networkPanelView": "wifi",
"bluetoothHideUnnamedDevices": false,
"boxBorderEnabled": false
"settingsPanelSideBarCardStyle": false
},
"location": {
"name": "Tokyo",
"name": "",
"weatherEnabled": true,
"weatherShowEffects": true,
"weatherTaliaMascotAlways": false,
"useFahrenheit": false,
"use12hourFormat": false,
"showWeekNumberInCalendar": false,
@@ -122,7 +171,8 @@
"analogClockInCalendar": false,
"firstDayOfWeek": -1,
"hideWeatherTimezone": false,
"hideWeatherCityName": false
"hideWeatherCityName": false,
"autoLocate": true
},
"calendar": {
"cards": [
@@ -149,6 +199,7 @@
"showHiddenFiles": false,
"viewMode": "single",
"setWallpaperOnAllMonitors": true,
"linkLightAndDarkWallpapers": true,
"fillMode": "crop",
"fillColor": "#000000",
"useSolidColor": false,
@@ -157,10 +208,21 @@
"wallpaperChangeMode": "random",
"randomIntervalSec": 300,
"transitionDuration": 1500,
"transitionType": "random",
"transitionType": [
"fade",
"disc",
"stripes",
"wipe",
"pixelate",
"honeycomb"
],
"skipStartupTransition": false,
"transitionEdgeSmoothness": 0.05,
"panelPosition": "follow_bar",
"hideWallpaperFilenames": false,
"useOriginalImages": false,
"overviewBlur": 0.4,
"overviewTint": 0.6,
"useWallhaven": false,
"wallhavenQuery": "",
"wallhavenSorting": "relevance",
@@ -172,18 +234,20 @@
"wallhavenResolutionMode": "atleast",
"wallhavenResolutionWidth": "",
"wallhavenResolutionHeight": "",
"sortOrder": "name"
"sortOrder": "name",
"favorites": []
},
"appLauncher": {
"enableClipboardHistory": false,
"autoPasteClipboard": false,
"enableClipPreview": true,
"clipboardWrapText": true,
"enableClipboardSmartIcons": true,
"enableClipboardChips": true,
"clipboardWatchTextCommand": "wl-paste --type text --watch cliphist store",
"clipboardWatchImageCommand": "wl-paste --type image --watch cliphist store",
"position": "center",
"pinnedApps": [],
"useApp2Unit": false,
"sortByMostUsed": true,
"terminalCommand": "alacritty -e",
"customLaunchPrefixEnabled": false,
@@ -194,8 +258,11 @@
"showIconBackground": false,
"enableSettingsSearch": true,
"enableWindowsSearch": true,
"enableSessionSearch": true,
"ignoreMouseInput": false,
"screenshotAnnotationTool": ""
"screenshotAnnotationTool": "",
"overviewLayer": false,
"density": "default"
},
"controlCenter": {
"position": "close_to_bar_button",
@@ -272,22 +339,23 @@
"diskCriticalThreshold": 90,
"diskAvailWarningThreshold": 20,
"diskAvailCriticalThreshold": 10,
"cpuPollingInterval": 1000,
"gpuPollingInterval": 3000,
"batteryWarningThreshold": 20,
"batteryCriticalThreshold": 5,
"enableDgpuMonitoring": false,
"memPollingInterval": 1000,
"diskPollingInterval": 30000,
"networkPollingInterval": 1000,
"loadAvgPollingInterval": 3000,
"useCustomColors": false,
"warningColor": "",
"criticalColor": "",
"externalMonitor": "resources || missioncenter || jdsystemmonitor || corestats || system-monitoring-center || gnome-system-monitor || plasma-systemmonitor || mate-system-monitor || ukui-system-monitor || deepin-system-monitor || pantheon-system-monitor"
},
"noctaliaPerformance": {
"disableWallpaper": true,
"disableDesktopWidgets": true
},
"dock": {
"enabled": true,
"position": "bottom",
"displayMode": "auto_hide",
"dockType": "floating",
"backgroundOpacity": 1,
"floatingRatio": 1,
"size": 1,
@@ -295,56 +363,85 @@
"monitors": [],
"pinnedApps": [],
"colorizeIcons": false,
"showLauncherIcon": false,
"launcherPosition": "end",
"launcherUseDistroLogo": false,
"launcherIcon": "",
"launcherIconColor": "none",
"pinnedStatic": false,
"inactiveIndicators": false,
"groupApps": false,
"groupContextMenuMode": "extended",
"groupClickAction": "cycle",
"groupIndicatorStyle": "dots",
"deadOpacity": 0.6,
"animationSpeed": 1
"animationSpeed": 1,
"sitOnFrame": false,
"showDockIndicator": false,
"indicatorThickness": 3,
"indicatorColor": "primary",
"indicatorOpacity": 0.6
},
"network": {
"wifiEnabled": true,
"bluetoothRssiPollingEnabled": false,
"bluetoothRssiPollIntervalMs": 10000,
"bluetoothRssiPollIntervalMs": 60000,
"networkPanelView": "wifi",
"wifiDetailsViewMode": "grid",
"bluetoothDetailsViewMode": "grid",
"bluetoothHideUnnamedDevices": false
"bluetoothHideUnnamedDevices": false,
"disableDiscoverability": false,
"bluetoothAutoConnect": true
},
"sessionMenu": {
"enableCountdown": true,
"countdownDuration": 10000,
"position": "center",
"showHeader": true,
"showKeybinds": true,
"largeButtonsStyle": true,
"largeButtonsLayout": "single-row",
"showNumberLabels": true,
"powerOptions": [
{
"action": "lock",
"enabled": true
"enabled": true,
"keybind": "1"
},
{
"action": "suspend",
"enabled": true
"enabled": true,
"keybind": "2"
},
{
"action": "hibernate",
"enabled": true
"enabled": true,
"keybind": "3"
},
{
"action": "reboot",
"enabled": true
"enabled": true,
"keybind": "4"
},
{
"action": "logout",
"enabled": true
"enabled": true,
"keybind": "5"
},
{
"action": "shutdown",
"enabled": true
"enabled": true,
"keybind": "6"
},
{
"action": "rebootToUefi",
"enabled": true,
"keybind": "7"
}
]
},
"notifications": {
"enabled": true,
"enableMarkdown": false,
"density": "default",
"monitors": [],
"location": "top_right",
"overlayLayer": true,
@@ -353,7 +450,7 @@
"lowUrgencyDuration": 3,
"normalUrgencyDuration": 8,
"criticalUrgencyDuration": 15,
"enableKeyboardLayoutToast": true,
"clearDismissed": true,
"saveToHistory": {
"low": true,
"normal": true,
@@ -368,7 +465,9 @@
"lowSoundFile": "",
"excludedApps": "discord,firefox,chrome,chromium,edge"
},
"enableMediaToast": false
"enableMediaToast": false,
"enableKeyboardLayoutToast": true,
"enableBatteryToast": true
},
"osd": {
"enabled": true,
@@ -386,16 +485,19 @@
"audio": {
"volumeStep": 5,
"volumeOverdrive": false,
"cavaFrameRate": 30,
"spectrumFrameRate": 30,
"visualizerType": "linear",
"spectrumMirrored": true,
"mprisBlacklist": [],
"preferredPlayer": "",
"volumeFeedback": false
"volumeFeedback": false,
"volumeFeedbackSoundFile": ""
},
"brightness": {
"brightnessStep": 5,
"enforceMinimum": true,
"enableDdcSupport": false
"enableDdcSupport": false,
"backlightDeviceMappings": []
},
"colorSchemes": {
"useWallpaperColors": false,
@@ -405,7 +507,8 @@
"manualSunrise": "06:30",
"manualSunset": "18:30",
"generationMethod": "tonal-spot",
"monitorForColors": ""
"monitorForColors": "",
"syncGsettings": true
},
"templates": {
"activeTemplates": [],
@@ -429,11 +532,32 @@
"performanceModeEnabled": "",
"performanceModeDisabled": "",
"startup": "",
"session": ""
"session": "",
"colorGeneration": ""
},
"plugins": {
"autoUpdate": false,
"notifyUpdates": true
},
"idle": {
"enabled": false,
"screenOffTimeout": 600,
"lockTimeout": 660,
"suspendTimeout": 1800,
"fadeDuration": 5,
"screenOffCommand": "",
"lockCommand": "",
"suspendCommand": "",
"resumeScreenOffCommand": "",
"resumeLockCommand": "",
"resumeSuspendCommand": "",
"customCommands": "[]"
},
"desktopWidgets": {
"enabled": false,
"overviewEnabled": true,
"gridSnap": false,
"gridSnapScale": false,
"monitorWidgets": []
}
}
}
File diff suppressed because it is too large Load Diff
+94 -33
View File
@@ -1,12 +1,14 @@
{
"bar": {
"ActiveWindow": {
"showText": true,
"showIcon": true,
"hideMode": "hidden",
"scrollingMode": "hover",
"maxWidth": 145,
"useFixedWidth": false,
"colorizeIcons": false
"colorizeIcons": false,
"textColor": "none"
},
"AudioVisualizer": {
"width": 200,
@@ -14,8 +16,7 @@
"hideWhenIdle": false
},
"Battery": {
"displayMode": "onhover",
"warningThreshold": 30,
"displayMode": "graphic-clean",
"deviceNativePath": "__default__",
"showPowerProfiles": false,
"showNoctaliaPerformance": false,
@@ -23,13 +24,18 @@
"hideIfIdle": false
},
"Bluetooth": {
"displayMode": "onhover"
"displayMode": "onhover",
"iconColor": "none",
"textColor": "none"
},
"Brightness": {
"displayMode": "onhover"
"displayMode": "onhover",
"iconColor": "none",
"textColor": "none",
"applyToAllMonitors": false
},
"Clock": {
"usePrimaryColor": false,
"clockColor": "none",
"useCustomFont": false,
"customFont": "",
"formatHorizontal": "HH:mm ddd, MMM dd",
@@ -47,6 +53,10 @@
"CustomButton": {
"icon": "heart",
"showIcon": true,
"iconPosition": "left",
"showExecTooltip": true,
"showTextTooltip": true,
"generalTooltipText": "",
"hideMode": "alwaysExpanded",
"leftClickExec": "",
"leftClickUpdateText": false,
@@ -70,13 +80,22 @@
"horizontal": 10,
"vertical": 10
},
"enableColorization": false,
"colorizeSystemIcon": "none",
"colorizeSystemText": "none",
"ipcIdentifier": ""
},
"DarkMode": {
"iconColor": "none"
},
"KeepAwake": {
"iconColor": "none",
"textColor": "none"
},
"KeyboardLayout": {
"displayMode": "onhover",
"showIcon": true
"showIcon": true,
"iconColor": "none",
"textColor": "none"
},
"LockKeys": {
"showCapsLock": true,
@@ -88,8 +107,12 @@
"hideWhenOff": false
},
"Launcher": {
"useDistroLogo": false,
"icon": "rocket",
"usePrimaryColor": false
"customIconPath": "",
"colorizeSystemIcon": "none",
"enableColorization": false,
"iconColor": "none"
},
"MediaMini": {
"hideMode": "hidden",
@@ -102,33 +125,40 @@
"showVisualizer": false,
"showProgressRing": true,
"visualizerType": "linear",
"textColor": "none",
"compactMode": false,
"panelShowAlbumArt": true,
"panelShowVisualizer": true,
"compactShowAlbumArt": true,
"compactShowVisualizer": false
"panelShowAlbumArt": true
},
"Microphone": {
"displayMode": "onhover",
"middleClickCommand": "pwvucontrol || pavucontrol"
"middleClickCommand": "pwvucontrol || pavucontrol",
"iconColor": "none",
"textColor": "none"
},
"NotificationHistory": {
"showUnreadBadge": true,
"hideWhenZero": false,
"hideWhenZeroUnread": false,
"unreadBadgeColor": "primary"
"unreadBadgeColor": "primary",
"iconColor": "none"
},
"SessionMenu": {
"colorName": "error"
"iconColor": "error"
},
"Settings": {
"iconColor": "none"
},
"Spacer": {
"width": 20
},
"SystemMonitor": {
"compactMode": true,
"usePrimaryColor": false,
"iconColor": "none",
"textColor": "none",
"useMonospaceFont": true,
"usePadding": false,
"showCpuUsage": true,
"showCpuCores": false,
"showCpuFreq": false,
"showCpuTemp": true,
"showGpuTemp": false,
@@ -157,18 +187,29 @@
"Tray": {
"blacklist": [],
"colorizeIcons": false,
"chevronColor": "none",
"pinned": [],
"drawerEnabled": true,
"hidePassive": false
},
"VPN": {
"displayMode": "onhover"
},
"WiFi": {
"displayMode": "onhover"
"displayMode": "onhover",
"iconColor": "none",
"textColor": "none"
},
"Network": {
"displayMode": "onhover"
"displayMode": "onhover",
"iconColor": "none",
"textColor": "none"
},
"NightLight": {
"iconColor": "none"
},
"NoctaliaPerformance": {
"iconColor": "none"
},
"PowerProfile": {
"iconColor": "none"
},
"Workspace": {
"labelMode": "index",
@@ -176,6 +217,7 @@
"hideUnoccupied": false,
"characterCount": 2,
"showApplications": false,
"showApplicationsHover": false,
"showLabelsOnlyWhenOccupied": true,
"colorizeIcons": false,
"unfocusedIconsOpacity": 1,
@@ -186,11 +228,17 @@
"occupiedColor": "secondary",
"emptyColor": "secondary",
"showBadge": true,
"reverseScroll": false
"pillSize": 0.6,
"fontWeight": "bold"
},
"Volume": {
"displayMode": "onhover",
"middleClickCommand": "pwvucontrol || pavucontrol"
"middleClickCommand": "pwvucontrol || pavucontrol",
"iconColor": "none",
"textColor": "none"
},
"WallpaperSelector": {
"iconColor": "none"
}
},
"controlCenter": {
@@ -199,37 +247,50 @@
"onClicked": "",
"onRightClicked": "",
"onMiddleClicked": "",
"stateChecks": [],
"generalTooltipText": "Custom Button",
"enableOnStateLogic": false
"stateChecksJson": "[]",
"generalTooltipText": "",
"enableOnStateLogic": false,
"showExecTooltip": true
}
},
"desktop": {
"Clock": {
"showBackground": true,
"roundedCorners": true,
"clockStyle": "digital",
"usePrimaryColor": false,
"clockColor": "none",
"useCustomFont": false,
"customFont": "",
"format": "HH:mm\\nd MMMM yyyy"
},
"MediaPlayer": {
"showBackground": true,
"roundedCorners": true,
"visualizerType": "linear",
"hideMode": "visible",
"showButtons": true,
"showAlbumArt": true,
"showVisualizer": true,
"roundedCorners": true
"showVisualizer": true
},
"Weather": {
"showBackground": true
"showBackground": true,
"roundedCorners": true
},
"SystemStat": {
"showBackground": true,
"roundedCorners": true,
"statType": "CPU",
"diskPath": "/",
"roundedCorners": true,
"layout": "bottom"
},
"AudioVisualizer": {
"showBackground": true,
"roundedCorners": true,
"width": 320,
"height": 72,
"visualizerType": "linear",
"hideWhenIdle": false,
"colorName": "primary"
}
}
}
}
+5 -1
View File
@@ -27,6 +27,10 @@ Noctalia Shell is made possible by the incredible work of many open-source proje
### Utilities
- **[cliphist](https://github.com/sentriz/cliphist)** - Clipboard history support
## Icons
- **[Tabler Icons](https://tabler.io/icons)** - Icon set used throughout the shell
- **[Riyan Resdian on Noun Project](https://thenounproject.com/creator/yaicon/)** - Plug icon
## Audio Assets
- **[Universfield on Pixabay](https://pixabay.com/users/universfield-28281460/)** - Notification sound effect
- **[DrNI on Freesound](https://freesound.org/people/DrNI/sounds/34562/)** - Timer's alarm sound effect
@@ -35,7 +39,7 @@ Noctalia Shell is made possible by the incredible work of many open-source proje
## Special Thanks
- The **Wayland** community for building the future of Linux desktop graphics
- The **Niri**, **Hyprland**, **Sway**, and **MangoWC** teams for their excellent Wayland compositors
- The **Niri**, **Hyprland**, **Sway**, **Labwc**, and **MangoWC** teams for their excellent Wayland compositors
- All the contributors and users who have helped make Noctalia better
## License
+221 -38
View File
@@ -4,6 +4,7 @@ import QtQuick
import Quickshell
import Quickshell.Io
import qs.Commons
import qs.Services.Power
/*
Noctalia is not strictly a Material Design project, it supports both some predefined
@@ -20,6 +21,31 @@ Singleton {
property bool reloadColors: false
// Debounce external reload requests (file watcher + directory watcher)
// so atomic replacements only trigger one reload.
Timer {
id: externalColorReloadTimer
running: false
interval: 200
onTriggered: {
if (customColorsFile.path !== undefined) {
Logger.d("Color", "Reloading colors from disk");
reloadColors = true;
customColorsFile.reload();
}
}
}
function scheduleExternalColorReload() {
if (!Settings.directoriesCreated || customColorsFile.path === undefined) {
return;
}
externalColorReloadTimer.restart();
}
// Suppress transition animations until the first colors.json load completes
property bool skipTransition: true
// Flag indicating theme colors are currently transitioning (for widgets to disable their own animations)
property bool isTransitioning: false
@@ -57,96 +83,112 @@ Singleton {
// --- Color transition animations ---
Behavior on mPrimary {
enabled: !root.skipTransition
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.OutCubic
}
}
Behavior on mOnPrimary {
enabled: !root.skipTransition
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.OutCubic
}
}
Behavior on mSecondary {
enabled: !root.skipTransition
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.OutCubic
}
}
Behavior on mOnSecondary {
enabled: !root.skipTransition
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.OutCubic
}
}
Behavior on mTertiary {
enabled: !root.skipTransition
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.OutCubic
}
}
Behavior on mOnTertiary {
enabled: !root.skipTransition
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.OutCubic
}
}
Behavior on mError {
enabled: !root.skipTransition
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.OutCubic
}
}
Behavior on mOnError {
enabled: !root.skipTransition
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.OutCubic
}
}
Behavior on mSurface {
enabled: !root.skipTransition
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.OutCubic
}
}
Behavior on mOnSurface {
enabled: !root.skipTransition
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.OutCubic
}
}
Behavior on mSurfaceVariant {
enabled: !root.skipTransition
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.OutCubic
}
}
Behavior on mOnSurfaceVariant {
enabled: !root.skipTransition
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.OutCubic
}
}
Behavior on mOutline {
enabled: !root.skipTransition
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.OutCubic
}
}
Behavior on mShadow {
enabled: !root.skipTransition
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.OutCubic
}
}
Behavior on mHover {
enabled: !root.skipTransition
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.OutCubic
}
}
Behavior on mOnHover {
enabled: !root.skipTransition
ColorAnimation {
duration: Style.animationSlowest
easing.type: Easing.OutCubic
@@ -163,99 +205,220 @@ Singleton {
Connections {
target: customColorsData
function onMPrimaryChanged() {
startTransition();
if (!root.skipTransition) {
startTransition();
}
root.mPrimary = customColorsData.mPrimary;
}
function onMOnPrimaryChanged() {
startTransition();
if (!root.skipTransition) {
startTransition();
}
root.mOnPrimary = customColorsData.mOnPrimary;
}
function onMSecondaryChanged() {
startTransition();
if (!root.skipTransition) {
startTransition();
}
root.mSecondary = customColorsData.mSecondary;
}
function onMOnSecondaryChanged() {
startTransition();
if (!root.skipTransition) {
startTransition();
}
root.mOnSecondary = customColorsData.mOnSecondary;
}
function onMTertiaryChanged() {
startTransition();
if (!root.skipTransition) {
startTransition();
}
root.mTertiary = customColorsData.mTertiary;
}
function onMOnTertiaryChanged() {
startTransition();
if (!root.skipTransition) {
startTransition();
}
root.mOnTertiary = customColorsData.mOnTertiary;
}
function onMErrorChanged() {
startTransition();
if (!root.skipTransition) {
startTransition();
}
root.mError = customColorsData.mError;
}
function onMOnErrorChanged() {
startTransition();
if (!root.skipTransition) {
startTransition();
}
root.mOnError = customColorsData.mOnError;
}
function onMSurfaceChanged() {
startTransition();
if (!root.skipTransition) {
startTransition();
}
root.mSurface = customColorsData.mSurface;
}
function onMOnSurfaceChanged() {
startTransition();
if (!root.skipTransition) {
startTransition();
}
root.mOnSurface = customColorsData.mOnSurface;
}
function onMSurfaceVariantChanged() {
startTransition();
if (!root.skipTransition) {
startTransition();
}
root.mSurfaceVariant = customColorsData.mSurfaceVariant;
}
function onMOnSurfaceVariantChanged() {
startTransition();
if (!root.skipTransition) {
startTransition();
}
root.mOnSurfaceVariant = customColorsData.mOnSurfaceVariant;
}
function onMOutlineChanged() {
startTransition();
if (!root.skipTransition) {
startTransition();
}
root.mOutline = customColorsData.mOutline;
}
function onMShadowChanged() {
startTransition();
if (!root.skipTransition) {
startTransition();
}
root.mShadow = customColorsData.mShadow;
}
function onMHoverChanged() {
startTransition();
if (!root.skipTransition) {
startTransition();
}
root.mHover = customColorsData.mHover;
}
function onMOnHoverChanged() {
startTransition();
if (!root.skipTransition) {
startTransition();
}
root.mOnHover = customColorsData.mOnHover;
}
}
function resolveColorKey(key) {
switch (key) {
case "primary":
return root.mPrimary;
case "secondary":
return root.mSecondary;
case "tertiary":
return root.mTertiary;
case "error":
return root.mError;
default:
return root.mOnSurface;
}
}
function resolveOnColorKey(key) {
switch (key) {
case "primary":
return root.mOnPrimary;
case "secondary":
return root.mOnSecondary;
case "tertiary":
return root.mOnTertiary;
case "error":
return root.mOnError;
default:
return root.mSurface;
}
}
function resolveColorKeyOptional(key) {
switch (key) {
case "primary":
return root.mPrimary;
case "secondary":
return root.mSecondary;
case "tertiary":
return root.mTertiary;
case "error":
return root.mError;
default:
return "transparent";
}
}
// Adaptive opacity calculation: automatically makes light mode more transparent
function adaptiveOpacity(baseOpacity) {
if (PowerProfileService.noctaliaPerformanceMode)
return 1.0;
return Settings.data.colorSchemes.darkMode ? baseOpacity : Math.pow(baseOpacity, 1.5);
}
function smartAlpha(baseColor, minAlpha = 0.4) {
if (PowerProfileService.noctaliaPerformanceMode)
return baseColor;
if (!Settings.data.ui.translucentWidgets)
return baseColor;
let alpha = Math.max(adaptiveOpacity(Settings.data.ui.panelBackgroundOpacity), minAlpha);
// Combine with the base color's existing alpha
let resultAlpha = Math.max(0, baseColor.a - (1.0 - alpha));
return Qt.alpha(baseColor, resultAlpha);
}
readonly property var colorKeyModel: [
{
"key": "none",
"name": I18n.tr("common.none")
},
{
"key": "primary",
"name": I18n.tr("common.primary")
},
{
"key": "secondary",
"name": I18n.tr("common.secondary")
},
{
"key": "tertiary",
"name": I18n.tr("common.tertiary")
},
{
"key": "error",
"name": I18n.tr("common.error")
}
]
// --------------------------------
// Default colors: Rose Pine
// Default colors: Noctalia (default) dark must match Assets/ColorScheme/Noctalia-default
QtObject {
id: defaultColors
readonly property color mPrimary: "#c7a1d8"
readonly property color mOnPrimary: "#1a151f"
readonly property color mPrimary: "#fff59b"
readonly property color mOnPrimary: "#0e0e43"
readonly property color mSecondary: "#a984c4"
readonly property color mOnSecondary: "#f3edf7"
readonly property color mSecondary: "#a9aefe"
readonly property color mOnSecondary: "#0e0e43"
readonly property color mTertiary: "#e0b7c9"
readonly property color mOnTertiary: "#20161f"
readonly property color mTertiary: "#9BFECE"
readonly property color mOnTertiary: "#0e0e43"
readonly property color mError: "#e9899d"
readonly property color mOnError: "#1e1418"
readonly property color mError: "#FD4663"
readonly property color mOnError: "#0e0e43"
readonly property color mSurface: "#1c1822"
readonly property color mOnSurface: "#e9e4f0"
readonly property color mSurface: "#070722"
readonly property color mOnSurface: "#f3edf7"
readonly property color mSurfaceVariant: "#262130"
readonly property color mOnSurfaceVariant: "#a79ab0"
readonly property color mSurfaceVariant: "#11112d"
readonly property color mOnSurfaceVariant: "#7c80b4"
readonly property color mOutline: "#342c42"
readonly property color mShadow: "#120f18"
readonly property color mOutline: "#21215F"
readonly property color mShadow: "#070722"
readonly property color mHover: "#e0b7c9"
readonly property color mOnHover: "#20161f"
readonly property color mHover: "#9BFECE"
readonly property color mOnHover: "#0e0e43"
}
// ----------------------------------------------------------------
@@ -265,16 +428,20 @@ Singleton {
path: Settings.directoriesCreated ? (Settings.configDir + "colors.json") : undefined
printErrors: false
watchChanges: true
onFileChanged: {
Logger.d("Color", "Reloading colors from disk");
reloadColors = true;
reload();
}
onFileChanged: scheduleExternalColorReload()
onAdapterUpdated: {
Logger.d("Color", "Writing colors to disk");
writeAdapter();
}
onLoaded: {
if (root.skipTransition) {
Qt.callLater(function () {
root.skipTransition = false;
});
}
}
// Trigger initial load when path changes from empty to actual path
onPathChanged: {
if (path !== undefined) {
@@ -287,6 +454,12 @@ Singleton {
return;
}
if (root.skipTransition) {
Qt.callLater(function () {
root.skipTransition = false;
});
}
// Error code 2 = ENOENT (No such file or directory)
if (error === 2 || error.toString().includes("No such file")) {
// File doesn't exist, create it with default values
@@ -321,4 +494,14 @@ Singleton {
property color mOnHover: defaultColors.mOnHover
}
}
// Watch parent config directory as a fallback for declarative setups where
// colors.json may be replaced atomically (e.g., symlink/store-path swap).
FileView {
id: colorsDirWatcher
path: Settings.directoriesCreated ? Settings.configDir : undefined
printErrors: false
watchChanges: true
onFileChanged: scheduleExternalColorReload()
}
}
+137 -126
View File
@@ -13,40 +13,45 @@ Singleton {
property var locale: Qt.locale()
property string systemDetectedLangCode: ""
property string fullLocaleCode: "" // Preserves regional locale variants
property var availableLanguages: []
property var translations: ({})
property var fallbackTranslations: ({})
// Static list of available translations update when adding/removing translation files
property var availableLanguages: ["en", "en-GB", "cs", "de", "es", "fr", "hu", "it", "ja", "ko-KR", "ku", "nl", "nn-HN", "nn-NO", "pl", "pt", "ru", "sv", "tr", "uk-UA", "vi", "zh-CN", "zh-TW"]
// Default date format per language (used by lock screen, etc.)
readonly property var dateFormats: ({
"cs": "dddd d. MMMM",
"de": "dddd, d. MMMM",
"en": "dddd, MMMM d",
"es": "dddd, d 'de' MMMM",
"fr": "dddd d MMMM",
"hu": "MMMM d., dddd",
"it": "dddd d MMMM",
"ja": "yyyy年M月d日 dddd",
"ko": "yyyy년 M월 d일 dddd",
"ku": "dddd, dê MMMM",
"nl": "dddd d MMMM",
"nn": "dddd d. MMMM",
"pl": "dddd, d MMMM",
"pt": "dddd, d 'de' MMMM",
"ro": "dddd, d MMMM",
"ru": "dddd, d MMMM",
"sv": "dddd d MMMM",
"tr": "dddd, d MMMM",
"uk": "dddd, d MMMM",
"vi": "dddd, d 'tháng' M",
"zh": "yyyy年M月d日 dddd"
})
// Signals for reactive updates
signal languageChanged(string newLanguage)
signal translationsLoaded
// Process to list directory contents
property Process directoryScanner: Process {
id: directoryProcess
command: ["ls", `${Quickshell.shellDir}/Assets/Translations/`]
running: false
stdout: StdioCollector {
id: stdoutCollector
}
onExited: function (exitCode, exitStatus) {
if (exitCode === 0) {
var output = stdoutCollector.text || "";
parseDirectoryListing(output);
} else {
Logger.e("I18n", `Failed to scan translation directory`);
// Fallback to default languages
availableLanguages = ["en"];
detectLanguage();
}
}
}
// FileView to load translation files
property FileView translationFile: FileView {
id: fileView
printErrors: false
watchChanges: true
onFileChanged: reload()
onLoaded: {
@@ -54,18 +59,50 @@ Singleton {
var data = JSON.parse(text());
root.translations = data;
Logger.i("I18n", `Loaded translations for "${root.langCode}"`);
Logger.d("I18n", `Available root keys: ${Object.keys(data).join(", ")}`);
root.isLoaded = true;
root.translationsLoaded();
// Load English fallback for non-English languages (only after main file succeeds)
if (root.langCode !== "en") {
fallbackFileView.path = `file://${Quickshell.shellDir}/Assets/Translations/en.json`;
}
} catch (e) {
Logger.e("I18n", `Failed to parse translation file: ${e}`);
setLanguage("en");
}
}
onLoadFailed: function (error) {
setLanguage("en");
Logger.e("I18n", `Failed to load translation file: ${error}`);
if (root.langCode === "en") {
Logger.e("I18n", `Failed to load English translation file: ${error}`);
// English also failed - still emit signal to unblock startup
root.isLoaded = true;
root.translationsLoaded();
return;
}
// Qt.callLater is needed because FileView doesn't re-trigger when path
// is changed inside its own onLoadFailed handler
var strippedCode = stripScript(root.langCode);
if (strippedCode !== root.langCode) {
Logger.d("I18n", `Translation file for "${root.langCode}" not found, trying "${strippedCode}"`);
root.langCode = strippedCode;
Qt.callLater(loadTranslations);
} else {
// Try language-only code (e.g. "zh-CN" "zh")
var shortCode = root.langCode.substring(0, 2);
if (shortCode !== root.langCode) {
Logger.d("I18n", `Translation file for "${root.langCode}" not found, trying "${shortCode}"`);
root.langCode = shortCode;
Qt.callLater(loadTranslations);
} else {
Logger.w("I18n", `Translation file for "${root.langCode}" not found, falling back to English`);
root.langCode = "en";
root.fullLocaleCode = "en";
root.locale = Qt.locale("en");
Qt.callLater(loadTranslations);
}
}
}
}
@@ -88,117 +125,97 @@ Singleton {
}
}
// Correct language when settings finish loading from disk (or user changes it)
Connections {
target: Settings.data.general
function onLanguageChanged() {
var userLang = Settings.data.general.language;
if (userLang !== "" && userLang !== root.langCode && availableLanguages.includes(userLang)) {
Logger.i("I18n", `Applying user language preference: "${userLang}"`);
setLanguage(userLang);
} else if (userLang === "" && root.systemDetectedLangCode !== "" && root.systemDetectedLangCode !== root.langCode) {
Logger.i("I18n", `Language reset to default, reverting to system language: "${root.systemDetectedLangCode}"`);
setLanguage(root.systemDetectedLangCode);
}
}
}
Component.onCompleted: {
Logger.i("I18n", "Service started");
scanAvailableLanguages();
var lang = determineFastLanguage();
langCode = lang.code;
fullLocaleCode = lang.fullLocale;
locale = Qt.locale(lang.fullLocale);
systemDetectedLangCode = lang.code;
Logger.i("I18n", `Loading "${lang.code}" (locale: "${lang.fullLocale}")`);
loadTranslations();
}
// -------------------------------------------
function scanAvailableLanguages() {
Logger.d("I18n", "Scanning for available translation files...");
directoryScanner.running = true;
}
// -------------------------------------------
function parseDirectoryListing(output) {
var languages = [];
try {
if (!output || output.trim() === "") {
Logger.w("I18n", "Empty directory listing output");
availableLanguages = ["en"];
detectLanguage();
return;
// Strip 4-letter script subtag from a BCP 47 tag (e.g. "fr-Latn-FR" "fr-FR")
function stripScript(tag) {
var parts = tag.split("-");
var result = [];
for (var i = 0; i < parts.length; i++) {
if (parts[i].length === 4 && /^[A-Za-z]{4}$/.test(parts[i])) {
continue;
}
const entries = output.trim().split('\n');
for (var i = 0; i < entries.length; i++) {
const entry = entries[i].trim();
if (entry && entry.endsWith('.json')) {
// Extract language code from filename (e.g., "en.json" -> "en")
const langCode = entry.substring(0, entry.lastIndexOf('.json'));
if (langCode.length >= 2 && langCode.length <= 5) {
// Basic validation for language codes
languages.push(langCode);
}
}
}
// Sort languages alphabetically, but ensure "en" comes first if available
languages.sort();
const enIndex = languages.indexOf("en");
if (enIndex > 0) {
languages.splice(enIndex, 1);
languages.unshift("en");
}
if (languages.length === 0) {
Logger.w("I18n", "No translation files found, using fallback");
languages = ["en"]; // Fallback
}
availableLanguages = languages;
Logger.d("I18n", `Found ${languages.length} available languages: ${languages.join(', ')}`);
// Detect language after scanning
detectLanguage();
} catch (e) {
Logger.e("I18n", `Failed to parse directory listing: ${e}`);
// Fallback to default languages
availableLanguages = ["en"];
detectLanguage();
result.push(parts[i]);
}
return result.join("-");
}
// -------------------------------------------
function detectLanguage() {
Logger.d("I18n", `detectLanguage() called. Available languages: [${availableLanguages.join(', ')}]`);
if (availableLanguages.length === 0) {
Logger.w("I18n", "No available languages found");
return;
// Determine the best language match against availableLanguages
function determineFastLanguage() {
// User preference from Settings (defaults to "" if not yet loaded from disk)
var userLang = Settings.data.general.language;
if (userLang !== "" && availableLanguages.includes(userLang)) {
return {
code: userLang,
fullLocale: userLang
};
}
var detectedLang = "";
var detectedFullLocale = "";
// First, determine the system's preferred language
// Match system locale against available translations
for (var i = 0; i < Qt.locale().uiLanguages.length; i++) {
const fullUserLang = Qt.locale().uiLanguages[i];
var fullLang = Qt.locale().uiLanguages[i];
if (availableLanguages.includes(fullUserLang)) {
detectedLang = fullUserLang;
detectedFullLocale = fullUserLang;
break;
// Exact match (e.g. "zh-CN")
if (availableLanguages.includes(fullLang)) {
return {
code: fullLang,
fullLocale: fullLang
};
}
const shortUserLang = fullUserLang.substring(0, 2);
if (availableLanguages.includes(shortUserLang)) {
detectedLang = shortUserLang;
detectedFullLocale = fullUserLang;
break;
// Script-stripped match (e.g. "zh-Hans-CN" "zh-CN")
var stripped = stripScript(fullLang);
if (stripped !== fullLang && availableLanguages.includes(stripped)) {
return {
code: stripped,
fullLocale: fullLang
};
}
// Language-only match (e.g. "fr-FR" "fr")
var short_ = fullLang.substring(0, 2);
if (availableLanguages.includes(short_)) {
return {
code: short_,
fullLocale: fullLang
};
}
}
// If no system language is found among available languages, fallback
if (detectedLang === "") {
detectedLang = availableLanguages.includes("en") ? "en" : availableLanguages[0];
detectedFullLocale = detectedLang;
}
return {
code: "en",
fullLocale: "en"
};
}
root.systemDetectedLangCode = detectedLang;
root.fullLocaleCode = detectedFullLocale;
Logger.d("I18n", `System detected language: "${root.systemDetectedLangCode}" (full locale: "${root.fullLocaleCode}")`);
// Now, apply the language: user-defined, then system-detected
if (Settings.data.general.language !== "" && availableLanguages.includes(Settings.data.general.language)) {
Logger.d("I18n", `User-defined language found: "${Settings.data.general.language}"`);
setLanguage(Settings.data.general.language);
} else {
Logger.d("I18n", `No user-defined language, using system detected: "${root.systemDetectedLangCode}"`);
setLanguage(root.systemDetectedLangCode, root.fullLocaleCode);
}
function dateFormat() {
var lang = langCode.split("-")[0];
return dateFormats[lang] || "dddd, d MMMM";
}
// -------------------------------------------
@@ -226,12 +243,6 @@ Singleton {
const filePath = `file://${Quickshell.shellDir}/Assets/Translations/${langCode}.json`;
fileView.path = filePath;
isLoaded = false;
Logger.d("I18n", `Loading translations: ${langCode}`);
// Only load fallback translations if we are not using english and english is available
if (langCode !== "en" && availableLanguages.includes("en")) {
fallbackFileView.path = `file://${Quickshell.shellDir}/Assets/Translations/en.json`;
}
}
// -------------------------------------------
+11 -3
View File
@@ -33,6 +33,7 @@ Singleton {
"media-next": "player-skip-forward-filled",
"download-speed": "download",
"upload-speed": "upload",
"cpu-intensive": "alert-octagon",
"cpu-usage": "brand-speedtest",
"cpu-temperature": "flame",
"gpu-temperature": "device-desktop",
@@ -41,8 +42,6 @@ Singleton {
"balanced": "scale",
"powersaver": "leaf",
"storage": "database",
"ethernet": "sitemap",
"ethernet-off": "sitemap-off",
"keyboard": "keyboard",
"shutdown": "power",
"lock": "lock",
@@ -118,7 +117,7 @@ Singleton {
"settings-launcher": "rocket",
"settings-audio": "device-speaker",
"settings-display": "device-desktop",
"settings-network": "sitemap",
"settings-network": "circles-relation",
"settings-brightness": "brightness-up",
"settings-location": "world-pin",
"settings-color-scheme": "palette",
@@ -128,6 +127,7 @@ Singleton {
"settings-notifications": "bell",
"settings-osd": "picture-in-picture",
"settings-about": "info-square-rounded",
"settings-idle": "moon",
"settings-lock-screen": "lock",
"settings-session-menu": "power",
"settings-system-monitor": "activity",
@@ -2785,6 +2785,10 @@ Singleton {
"escalator-filled": "\u{10131}",
"escalator-up": "\u{fb05}",
"escalator-up-filled": "\u{10132}",
"ethernet": "\u{eccc}",
"ethernet-off": "\u{eccd}",
"ethernet-exclamation": "\u{ecce}",
"ethernet-question": "\u{eccf}",
"exchange": "\u{ebe7}",
"exchange-filled": "\u{10130}",
"exchange-off": "\u{f123}",
@@ -4788,6 +4792,7 @@ Singleton {
"playstation-triangle": "\u{f2af}",
"playstation-x": "\u{f2b0}",
"plug": "\u{ebd9}",
"plug-filled": "\u{f6b3}",
"plug-connected": "\u{f00a}",
"plug-connected-x": "\u{f0a0}",
"plug-off": "\u{f180}",
@@ -6082,7 +6087,10 @@ Singleton {
"wifi-0": "\u{eba3}",
"wifi-1": "\u{eba4}",
"wifi-2": "\u{eba5}",
"wifi-3": "\u{ebfc}",
"wifi-off": "\u{ecfa}",
"wifi-exclamation": "\u{ebfd}",
"wifi-question": "\u{ebfe}",
"wind": "\u{ec34}",
"wind-electricity": "\u{fcc6}",
"wind-off": "\u{f1c7}",
+201
View File
@@ -0,0 +1,201 @@
pragma Singleton
import QtQuick
QtObject {
function getKeybindString(event) {
let keyStr = "";
if (event.modifiers & Qt.ControlModifier)
keyStr += "Ctrl+";
if (event.modifiers & Qt.AltModifier)
keyStr += "Alt+";
if (event.modifiers & Qt.ShiftModifier)
keyStr += "Shift+";
let keyName = "";
let rawText = event.text;
if (event.key >= Qt.Key_A && event.key <= Qt.Key_Z || event.key >= Qt.Key_0 && event.key <= Qt.Key_9) {
keyName = String.fromCharCode(event.key);
} else if (event.key >= Qt.Key_F1 && event.key <= Qt.Key_F12) {
keyName = "F" + (event.key - Qt.Key_F1 + 1);
} else if (rawText && rawText.length > 0 && rawText.charCodeAt(0) > 31 && rawText.charCodeAt(0) !== 127) {
keyName = rawText.toUpperCase();
if (event.modifiers & Qt.ShiftModifier) {
const shiftMap = {
"!": "1",
"\"": "2",
"§": "3",
"$": "4",
"%": "5",
"&": "6",
"/": "7",
"(": "8",
")": "9",
"=": "0",
"@": "2",
"#": "3",
"^": "6",
"*": "8"
};
if (shiftMap[keyName]) {
keyName = shiftMap[keyName];
}
}
} else {
switch (event.key) {
case Qt.Key_Escape:
keyName = "Esc";
break;
case Qt.Key_Space:
keyName = "Space";
break;
case Qt.Key_Return:
keyName = "Return";
break;
case Qt.Key_Enter:
keyName = "Enter";
break;
case Qt.Key_Tab:
keyName = "Tab";
break;
case Qt.Key_Backspace:
keyName = "Backspace";
break;
case Qt.Key_Delete:
keyName = "Del";
break;
case Qt.Key_Insert:
keyName = "Ins";
break;
case Qt.Key_Home:
keyName = "Home";
break;
case Qt.Key_End:
keyName = "End";
break;
case Qt.Key_PageUp:
keyName = "PgUp";
break;
case Qt.Key_PageDown:
keyName = "PgDn";
break;
case Qt.Key_Left:
keyName = "Left";
break;
case Qt.Key_Right:
keyName = "Right";
break;
case Qt.Key_Up:
keyName = "Up";
break;
case Qt.Key_Down:
keyName = "Down";
break;
case Qt.Key_BracketLeft:
keyName = "[";
break;
case Qt.Key_BracketRight:
keyName = "]";
break;
case Qt.Key_Backslash:
keyName = "\\";
break;
case Qt.Key_Slash:
keyName = "/";
break;
case Qt.Key_QuoteLeft:
case Qt.Key_AsciiTilde:
case Qt.Key_Dead_Grave:
keyName = "`";
break;
}
}
if (!keyName)
return "";
return keyStr + keyName;
}
function checkKey(event, settingName, settings) {
// Accept both simplified names ("remove") and full property names ("keyRemove")
// so callers are less error-prone.
var normalized = String(settingName || "");
if (!normalized)
return false;
var propName = normalized.startsWith("key") ? normalized : ("key" + normalized.charAt(0).toUpperCase() + normalized.slice(1));
var boundKeys = settings.data.general.keybinds[propName];
if (!boundKeys || boundKeys.length === 0)
return false;
var eventString = getKeybindString(event);
for (var i = 0; i < boundKeys.length; i++) {
if (boundKeys[i] === eventString)
return true;
}
return false;
}
/**
* Check if a keybind string conflicts with any other existing keybinds.
* @param {string} keyStr - The keybind string to check (e.g., "Ctrl+A").
* @param {string} currentPath - The settings path of the keybind being edited (to skip checking itself).
* @param {object} data - The settings data object (from Settings.data).
* @returns {string|null} - The name of the conflicting action, or null if no conflict.
*/
function getKeybindConflict(keyStr, currentPath, data) {
if (!keyStr || !data)
return null;
const searchKey = String(keyStr).trim().toLowerCase();
// 1. Check navigation keybinds
const navKeybinds = data.general ? data.general.keybinds : null;
const navMap = {
"keyUp": "Navigation: Up",
"keyDown": "Navigation: Down",
"keyLeft": "Navigation: Left",
"keyRight": "Navigation: Right",
"keyEnter": "Navigation: Enter",
"keyEscape": "Navigation: Escape"
};
if (navKeybinds) {
for (const prop in navMap) {
const fullPath = "general.keybinds." + prop;
if (fullPath === currentPath)
continue;
const boundKeys = navKeybinds[prop];
if (boundKeys && boundKeys.length !== undefined) {
for (let i = 0; i < boundKeys.length; i++) {
if (String(boundKeys[i]).trim().toLowerCase() === searchKey) {
return navMap[prop];
}
}
}
}
}
// 2. Check session menu power options
const sessionMenu = data.sessionMenu;
if (sessionMenu && sessionMenu.powerOptions) {
const powerOptions = sessionMenu.powerOptions;
for (let i = 0; i < powerOptions.length; i++) {
const entry = powerOptions[i];
const fullPath = "sessionMenu.powerOptions[" + i + "].keybind";
if (fullPath === currentPath)
continue;
if (entry.keybind && String(entry.keybind).trim().toLowerCase() === searchKey) {
// Capitalize action name
const actionName = entry.action ? entry.action.charAt(0).toUpperCase() + entry.action.slice(1) : "Unknown";
return "Session Menu: " + actionName;
}
}
}
return null;
}
}
+2 -3
View File
@@ -1,5 +1,6 @@
import QtQuick
import Quickshell
import qs.Commons
QtObject {
id: root
@@ -7,9 +8,7 @@ QtObject {
function migrate(adapter, logger, rawJson) {
logger.i("Migration44", "Updating PAM pam/password.conf");
// Copying logic from Settings.qml to avoid dependency on it
const shellName = "noctalia";
const configDir = Quickshell.env("NOCTALIA_CONFIG_DIR") || (Quickshell.env("XDG_CONFIG_HOME") || Quickshell.env("HOME") + "/.config") + "/" + shellName + "/";
const configDir = Settings.configDir;
const pamConfigDir = configDir + "pam";
const pamConfigFile = pamConfigDir + "/password.conf";
const pamConfigDirEsc = pamConfigDir.replace(/'/g, "'\\''");
+1 -1
View File
@@ -7,7 +7,7 @@ QtObject {
function migrate(adapter, logger, rawJson) {
logger.i("Migration45", "Migrating bar settings...");
if (adapter.bar.floating) {
if (rawJson?.bar?.floating) {
adapter.bar.barType = "floating";
} else {
adapter.bar.barType = "simple";
+2 -2
View File
@@ -1,5 +1,6 @@
import QtQuick
import Quickshell
import qs.Commons
QtObject {
id: root
@@ -7,8 +8,7 @@ QtObject {
function migrate(adapter, logger, rawJson) {
logger.i("Migration46", "Removing legacy PAM configuration file");
const shellName = "noctalia";
const configDir = Quickshell.env("NOCTALIA_CONFIG_DIR") || (Quickshell.env("XDG_CONFIG_HOME") || Quickshell.env("HOME") + "/.config") + "/" + shellName + "/";
const configDir = Settings.configDir;
const pamConfigDir = configDir + "pam";
// Remove the entire pam directory if it exists
const script = `rm -rf '${pamConfigDir}'`;
+4 -14
View File
@@ -1,27 +1,17 @@
import QtQuick
import Quickshell
import qs.Commons
QtObject {
id: root
function migrate(adapter, logger, rawJson) {
logger.i("Migration47", "Removing network_stats.json cache and updating polling intervals");
logger.i("Migration47", "Removing network_stats.json cache");
// Remove the network_stats.json cache file (no longer used - autoscaling from history now)
const shellName = "noctalia";
const cacheDir = Quickshell.env("NOCTALIA_CACHE_DIR") || (Quickshell.env("XDG_CACHE_HOME") || Quickshell.env("HOME") + "/.cache") + "/" + shellName + "/";
const networkStatsFile = cacheDir + "network_stats.json";
const networkStatsFile = Settings.cacheDir + "network_stats.json";
Quickshell.execDetached(["rm", "-f", networkStatsFile]);
// Update polling intervals to 1000ms for smoother graphs (only if currently slower)
if (adapter.systemMonitor.cpuPollingInterval > 1000)
adapter.systemMonitor.cpuPollingInterval = 1000;
if (adapter.systemMonitor.memPollingInterval > 1000)
adapter.systemMonitor.memPollingInterval = 1000;
if (adapter.systemMonitor.networkPollingInterval > 1000)
adapter.systemMonitor.networkPollingInterval = 1000;
logger.d("Migration47", "Removed network_stats.json and adjusted polling intervals");
logger.d("Migration47", "Removed network_stats.json");
return true;
}
+22
View File
@@ -0,0 +1,22 @@
import QtQuick
QtObject {
id: root
// Migrate battery thresholds from notifications to systemMonitor
function migrate(adapter, logger, rawJson) {
logger.i("Settings", "Migrating settings to v48");
if (rawJson?.notifications?.batteryWarningThreshold !== undefined) {
adapter.systemMonitor.batteryWarningThreshold = rawJson.notifications.batteryWarningThreshold;
logger.i("Settings", "Migrated notifications.batteryWarningThreshold to systemMonitor: " + adapter.systemMonitor.batteryWarningThreshold);
}
if (rawJson?.notifications?.batteryCriticalThreshold !== undefined) {
adapter.systemMonitor.batteryCriticalThreshold = rawJson.notifications.batteryCriticalThreshold;
logger.i("Settings", "Migrated notifications.batteryCriticalThreshold to systemMonitor: " + adapter.systemMonitor.batteryCriticalThreshold);
}
return true;
}
}
+17
View File
@@ -0,0 +1,17 @@
import QtQuick
import Quickshell
import qs.Commons
QtObject {
id: root
// Remove old launcher_app_usage.json (usage tracking moved to ShellState)
function migrate(adapter, logger, rawJson) {
logger.i("Settings", "Migrating settings to v49");
Quickshell.execDetached(["rm", "-f", Settings.cacheDir + "launcher_app_usage.json"]);
logger.i("Settings", "Removed old launcher_app_usage.json");
return true;
}
}
+24
View File
@@ -0,0 +1,24 @@
import QtQuick
QtObject {
id: root
// Migrate keybinds from single strings to arrays of strings
function migrate(adapter, logger, rawJson) {
logger.i("Settings", "Migrating settings to v50");
const keybinds = rawJson?.general?.keybinds;
if (!keybinds)
return true;
const keys = ["keyUp", "keyDown", "keyLeft", "keyRight", "keyEnter", "keyEscape"];
for (const key of keys) {
if (keybinds[key] !== undefined && typeof keybinds[key] === "string") {
adapter.general.keybinds[key] = [keybinds[key]];
logger.i("Settings", "Migrated keybinds." + key + " from string to array: [" + keybinds[key] + "]");
}
}
return true;
}
}
+39
View File
@@ -0,0 +1,39 @@
import QtQuick
QtObject {
id: root
// Add default keybinds (1-6) to session menu power options if none are defined
function migrate(adapter, logger, rawJson) {
logger.i("Settings", "Migrating settings to v53");
const powerOptions = rawJson?.sessionMenu?.powerOptions;
if (!powerOptions || !Array.isArray(powerOptions))
return true;
// Check if any power option has a keybind defined
const hasAnyKeybind = powerOptions.some(opt => opt.keybind && opt.keybind !== "");
if (hasAnyKeybind)
return true;
// No keybinds defined apply defaults matching the action order
const defaultKeybinds = {
"lock": "1",
"suspend": "2",
"hibernate": "3",
"reboot": "4",
"logout": "5",
"shutdown": "6"
};
for (let i = 0; i < powerOptions.length; i++) {
const action = powerOptions[i].action;
if (defaultKeybinds[action]) {
adapter.sessionMenu.powerOptions[i].keybind = defaultKeybinds[action];
logger.i("Settings", "Set keybind '" + defaultKeybinds[action] + "' for session menu action: " + action);
}
}
return true;
}
}
+28
View File
@@ -0,0 +1,28 @@
import QtQuick
QtObject {
id: root
// Add numpad Enter as a second default keybind for keyEnter
function migrate(adapter, logger, rawJson) {
logger.i("Settings", "Migrating settings to v54");
const keybinds = rawJson?.general?.keybinds;
if (!keybinds)
return true;
const keyEnter = keybinds.keyEnter;
if (!keyEnter || !Array.isArray(keyEnter))
return true;
// Only add "Enter" if the first entry is "Return" and "Enter" isn't already present
if (keyEnter[0] === "Return" && !keyEnter.includes("Enter")) {
var updated = Array.from(keyEnter);
updated.splice(1, 0, "Enter");
adapter.general.keybinds.keyEnter = updated;
logger.i("Settings", "Added 'Enter' (numpad) as second default keybind for keyEnter");
}
return true;
}
}
+22
View File
@@ -0,0 +1,22 @@
import QtQuick
QtObject {
id: root
function migrate(adapter, logger, rawJson) {
logger.i("Settings", "Migrating settings to v55");
// Check if the old setting exists
if (rawJson.controlCenter && rawJson.controlCenter.openAtMouseOnBarRightClick !== undefined) {
if (!rawJson.bar)
rawJson.bar = {};
rawJson.bar.rightClickFollowMouse = rawJson.controlCenter.openAtMouseOnBarRightClick;
delete rawJson.controlCenter.openAtMouseOnBarRightClick;
logger.i("Settings", "Successfully moved openAtMouseOnBarRightClick to bar.rightClickFollowMouse");
}
return true;
}
}
+21
View File
@@ -0,0 +1,21 @@
import QtQuick
import Quickshell
import qs.Commons
QtObject {
id: root
function migrate(adapter, logger, rawJson) {
logger.i("Settings", "Migrating settings to v56 (Color Scheme Migration)");
const scriptPath = Quickshell.shellDir + "/Scripts/python/src/theming/migrate-colorschemes.py";
const configDir = Settings.configDir;
logger.i("Settings", `Running color scheme migration script: ${scriptPath} with configDir: ${configDir}`);
// Run the migration script detached
Quickshell.execDetached(["python3", scriptPath, configDir]);
return true;
}
}
+16
View File
@@ -0,0 +1,16 @@
import QtQuick
QtObject {
id: root
function migrate(adapter, logger, rawJson) {
logger.i("Settings", "Migrating settings to v57 (cavaFrameRate -> spectrumFrameRate)");
if (rawJson && rawJson.audio && rawJson.audio.cavaFrameRate !== undefined) {
adapter.audio.spectrumFrameRate = rawJson.audio.cavaFrameRate;
logger.i("Settings", "Migrated cavaFrameRate:", rawJson.audio.cavaFrameRate, "-> spectrumFrameRate");
}
return true;
}
}
+14
View File
@@ -0,0 +1,14 @@
import QtQuick
QtObject {
function migrate(adapter, logger, rawJson) {
logger.i("Settings", "Migrating settings to v58 (dock.dockType: static -> attached)");
if (rawJson && rawJson.dock && rawJson.dock.dockType === "static") {
adapter.dock.dockType = "attached";
logger.i("Settings", "Migrated dock.dockType: static -> attached");
}
return true;
}
}
+25
View File
@@ -0,0 +1,25 @@
import QtQuick
QtObject {
function migrate(adapter, logger, rawJson) {
logger.i("Settings", "Migrating settings to v59 (wallpaper.transitionType: string -> array)");
if (rawJson && rawJson.wallpaper && typeof rawJson.wallpaper.transitionType === "string") {
var oldValue = rawJson.wallpaper.transitionType;
var newValue;
if (oldValue === "random") {
newValue = ["fade", "disc", "stripes", "wipe", "pixelate", "honeycomb"];
} else if (oldValue === "none") {
newValue = [];
} else {
newValue = [oldValue];
}
adapter.wallpaper.transitionType = newValue;
logger.i("Settings", "Migrated wallpaper.transitionType:", oldValue, "->", JSON.stringify(newValue));
}
return true;
}
}
+21 -1
View File
@@ -21,7 +21,17 @@ QtObject {
44: migration44Component,
45: migration45Component,
46: migration46Component,
47: migration47Component
47: migration47Component,
48: migration48Component,
49: migration49Component,
50: migration50Component,
53: migration53Component,
54: migration54Component,
55: migration55Component,
56: migration56Component,
57: migration57Component,
58: migration58Component,
59: migration59Component
})
// Migration components
@@ -40,4 +50,14 @@ QtObject {
property Component migration45Component: Migration45 {}
property Component migration46Component: Migration46 {}
property Component migration47Component: Migration47 {}
property Component migration48Component: Migration48 {}
property Component migration49Component: Migration49 {}
property Component migration50Component: Migration50 {}
property Component migration53Component: Migration53 {}
property Component migration54Component: Migration54 {}
property Component migration55Component: Migration55 {}
property Component migration56Component: Migration56 {}
property Component migration57Component: Migration57 {}
property Component migration58Component: Migration58 {}
property Component migration59Component: Migration59 {}
}
+201 -49
View File
@@ -25,20 +25,42 @@ Singleton {
- Default cache directory: ~/.cache/noctalia
*/
readonly property alias data: adapter // Used to access via Settings.data.xxx.yyy
readonly property int settingsVersion: 47
readonly property bool isDebug: Quickshell.env("NOCTALIA_DEBUG") === "1"
readonly property int settingsVersion: 59
property bool isDebug: Quickshell.env("NOCTALIA_DEBUG") === "1"
readonly property string shellName: "noctalia"
readonly property string configDir: Quickshell.env("NOCTALIA_CONFIG_DIR") || (Quickshell.env("XDG_CONFIG_HOME") || Quickshell.env("HOME") + "/.config") + "/" + shellName + "/"
readonly property string cacheDir: Quickshell.env("NOCTALIA_CACHE_DIR") || (Quickshell.env("XDG_CACHE_HOME") || Quickshell.env("HOME") + "/.cache") + "/" + shellName + "/"
readonly property string configDir: ensureTrailingSlash(Quickshell.env("NOCTALIA_CONFIG_DIR") || (Quickshell.env("XDG_CONFIG_HOME") || Quickshell.env("HOME") + "/.config") + "/" + shellName + "/")
readonly property string cacheDir: ensureTrailingSlash(Quickshell.env("NOCTALIA_CACHE_DIR") || (Quickshell.env("XDG_CACHE_HOME") || Quickshell.env("HOME") + "/.cache") + "/" + shellName + "/")
readonly property string settingsFile: Quickshell.env("NOCTALIA_SETTINGS_FILE") || (configDir + "settings.json")
readonly property string defaultLocation: "Tokyo"
readonly property string defaultAvatar: Quickshell.env("HOME") + "/.face"
readonly property string defaultVideosDirectory: Quickshell.env("HOME") + "/Videos"
readonly property string defaultWallpapersDirectory: Quickshell.env("HOME") + "/Pictures/Wallpapers"
// Signal emitted when settings are loaded after startupcale changes
signal settingsLoaded
signal settingsSaved
signal settingsReloaded
// Debounce external reload requests (file watcher + directory watcher)
// so atomic replacements only trigger one reload.
Timer {
id: externalReloadTimer
running: false
interval: 200
onTriggered: {
if (settingsFileView.path !== undefined) {
Logger.d("Settings", "Reloading settings after external change detection");
reloadSettings = true;
settingsFileView.reload();
}
}
}
function scheduleExternalReload() {
if (!directoriesCreated || settingsFileView.path === undefined) {
return;
}
externalReloadTimer.restart();
}
// -----------------------------------------------------
// -----------------------------------------------------
@@ -87,10 +109,7 @@ Singleton {
watchChanges: true
onAdapterUpdated: saveTimer.start()
onFileChanged: {
reloadSettings = true;
reload();
}
onFileChanged: scheduleExternalReload()
// Trigger initial load when path changes from empty to actual path
onPathChanged: {
@@ -121,6 +140,9 @@ Singleton {
root.settingsLoaded();
upgradeSettings();
} else {
Logger.d("Settings", "Settings reloaded from external file change");
root.settingsReloaded();
}
}
onLoadFailed: function (error) {
@@ -139,6 +161,16 @@ Singleton {
}
}
// Watch parent config directory as a fallback for declarative setups where
// settings.json may be replaced atomically (e.g., symlink/store-path swap).
FileView {
id: settingsDirWatcher
path: directoriesCreated ? configDir : undefined
printErrors: false
watchChanges: true
onFileChanged: scheduleExternalReload()
}
// FileView to load default settings for comparison
FileView {
id: defaultSettingsFileView
@@ -177,13 +209,17 @@ Singleton {
property bool showOutline: false
property bool showCapsule: true
property real capsuleOpacity: 1.0
property string capsuleColorKey: "none"
property int widgetSpacing: 6
property int contentPadding: 2
property real fontScale: 1.0
property bool enableExclusionZoneInset: true
// Bar background opacity settings
property real backgroundOpacity: 0.93
property bool useSeparateOpacity: false
// Floating bar settings
property bool floating: false
property int marginVertical: 4
property int marginHorizontal: 4
@@ -198,9 +234,10 @@ Singleton {
property bool hideOnOverview: false
// Auto-hide settings
property string displayMode: "always_visible" // "always_visible", "auto_hide"
property string displayMode: "always_visible"
property int autoHideDelay: 500 // ms before hiding after mouse leaves
property int autoShowDelay: 150 // ms before showing when mouse enters
property bool showOnWorkspaceSwitch: true // show bar briefly on workspace switch
// Widget configuration for modular bar system
property JsonObject widgets
@@ -248,7 +285,15 @@ Singleton {
}
]
}
property string mouseWheelAction: "none"
property bool reverseScroll: false
property bool mouseWheelWrap: true
property string middleClickAction: "none"
property bool middleClickFollowMouse: false
property string middleClickCommand: ""
property string rightClickAction: "controlCenter"
property bool rightClickFollowMouse: true
property string rightClickCommand: ""
// Per-screen overrides for position and widgets
// Format: [{ "name": "HDMI-1", "position": "left" }, { "name": "DP-1", "position": "bottom", "widgets": {...} }]
property list<var> screenOverrides: []
@@ -268,10 +313,13 @@ Singleton {
property real animationSpeed: 1.0
property bool animationDisabled: false
property bool compactLockScreen: false
property bool lockScreenAnimations: false
property bool lockOnSuspend: true
property bool showSessionButtonsOnLockScreen: true
property bool showHibernateOnLockScreen: false
property bool enableLockScreenMediaControls: false
property bool enableShadows: true
property bool enableBlurBehind: true
property string shadowDirection: "bottom_right"
property int shadowOffsetX: 2
property int shadowOffsetY: 3
@@ -283,6 +331,23 @@ Singleton {
property int lockScreenCountdownDuration: 10000
property bool autoStartAuth: false
property bool allowPasswordWithFprintd: false
property string clockStyle: "custom"
property string clockFormat: "hh\\nmm"
property bool passwordChars: false
property list<string> lockScreenMonitors: [] // holds lock screen visibility per monitor
property real lockScreenBlur: 0.0
property real lockScreenTint: 0.0
property JsonObject keybinds: JsonObject {
property list<string> keyUp: ["Up"]
property list<string> keyDown: ["Down"]
property list<string> keyLeft: ["Left"]
property list<string> keyRight: ["Right"]
property list<string> keyEnter: ["Return", "Enter"]
property list<string> keyEscape: ["Esc"]
property list<string> keyRemove: ["Del"]
}
property bool reverseScroll: false
property bool smoothScrollEnabled: true
}
// ui
@@ -292,24 +357,21 @@ Singleton {
property real fontDefaultScale: 1.0
property real fontFixedScale: 1.0
property bool tooltipsEnabled: true
property bool scrollbarAlwaysVisible: true
property bool boxBorderEnabled: false
property real panelBackgroundOpacity: 0.93
property bool translucentWidgets: false
property bool panelsAttachedToBar: true
property string settingsPanelMode: "attached" // "centered", "attached", "window"
// Details view mode persistence for panels
property string wifiDetailsViewMode: "grid" // "grid" or "list"
property string bluetoothDetailsViewMode: "grid" // "grid" or "list"
// Persist the last-opened view for the unified network panel: "wifi" | "ethernet"
property string networkPanelView: "wifi"
// Bluetooth available devices list: hide items without a name
property bool bluetoothHideUnnamedDevices: false
property bool boxBorderEnabled: false
property bool settingsPanelSideBarCardStyle: false
}
// location
property JsonObject location: JsonObject {
property string name: defaultLocation
property string name: ""
property bool weatherEnabled: true
property bool weatherShowEffects: true
property bool weatherTaliaMascotAlways: false
property bool useFahrenheit: false
property bool use12hourFormat: false
property bool showWeekNumberInCalendar: false
@@ -319,6 +381,7 @@ Singleton {
property int firstDayOfWeek: -1 // -1 = auto (use locale), 0 = Sunday, 1 = Monday, 6 = Saturday
property bool hideWeatherTimezone: false
property bool hideWeatherCityName: false
property bool autoLocate: false
}
// calendar
@@ -349,6 +412,7 @@ Singleton {
property bool showHiddenFiles: false
property string viewMode: "single" // "single" | "recursive" | "browse"
property bool setWallpaperOnAllMonitors: true
property bool linkLightAndDarkWallpapers: true
property string fillMode: "crop"
property color fillColor: "#000000"
property bool useSolidColor: false
@@ -357,10 +421,14 @@ Singleton {
property string wallpaperChangeMode: "random" // "random" or "alphabetical"
property int randomIntervalSec: 300 // 5 min
property int transitionDuration: 1500 // 1500 ms
property string transitionType: "random"
property list<string> transitionType: ["fade", "disc", "stripes", "wipe", "pixelate", "honeycomb"]
property bool skipStartupTransition: false
property real transitionEdgeSmoothness: 0.05
property string panelPosition: "follow_bar"
property bool hideWallpaperFilenames: false
property bool useOriginalImages: false
property real overviewBlur: 0.4
property real overviewTint: 0.6
// Wallhaven settings
property bool useWallhaven: false
property string wallhavenQuery: ""
@@ -374,7 +442,10 @@ Singleton {
property string wallhavenResolutionWidth: ""
property string wallhavenResolutionHeight: ""
property string sortOrder: "name" // "name", "name_desc", "date", "date_desc"
property string sortOrder: "name" // "name", "name_desc", "date", "date_desc", "random"
property list<var> favorites: []
// Format: [{ "path": "...", "appearance": "light"|"dark", "colorScheme": "...", "darkMode": bool, "useWallpaperColors": bool, "generationMethod": "...", "paletteColors": [...] }]
// Legacy entries omit "appearance" and use darkMode to infer light vs dark slot.
}
// applauncher
@@ -383,11 +454,12 @@ Singleton {
property bool autoPasteClipboard: false
property bool enableClipPreview: true
property bool clipboardWrapText: true
property bool enableClipboardSmartIcons: true
property bool enableClipboardChips: true
property string clipboardWatchTextCommand: "wl-paste --type text --watch cliphist store"
property string clipboardWatchImageCommand: "wl-paste --type image --watch cliphist store"
property string position: "center" // Position: center, top_left, top_right, bottom_left, bottom_right, bottom_center, top_center
property list<string> pinnedApps: []
property bool useApp2Unit: false
property bool sortByMostUsed: true
property string terminalCommand: "alacritty -e"
property bool customLaunchPrefixEnabled: false
@@ -400,8 +472,11 @@ Singleton {
property bool showIconBackground: false
property bool enableSettingsSearch: true
property bool enableWindowsSearch: true
property bool enableSessionSearch: true
property bool ignoreMouseInput: false
property string screenshotAnnotationTool: ""
property bool overviewLayer: false
property string density: "default" // "compact", "default", "comfortable"
}
// control center
@@ -484,24 +559,27 @@ Singleton {
property int diskCriticalThreshold: 90
property int diskAvailWarningThreshold: 20
property int diskAvailCriticalThreshold: 10
property int cpuPollingInterval: 1000
property int gpuPollingInterval: 3000
property int batteryWarningThreshold: 20
property int batteryCriticalThreshold: 5
property bool enableDgpuMonitoring: false // Opt-in: reading dGPU sysfs/nvidia-smi wakes it from D3cold, draining battery
property int memPollingInterval: 1000
property int diskPollingInterval: 30000
property int networkPollingInterval: 1000
property int loadAvgPollingInterval: 3000
property bool useCustomColors: false
property string warningColor: ""
property string criticalColor: ""
property string externalMonitor: "resources || missioncenter || jdsystemmonitor || corestats || system-monitoring-center || gnome-system-monitor || plasma-systemmonitor || mate-system-monitor || ukui-system-monitor || deepin-system-monitor || pantheon-system-monitor"
}
// performance
property JsonObject noctaliaPerformance: JsonObject {
property bool disableWallpaper: true
property bool disableDesktopWidgets: true
}
// dock
property JsonObject dock: JsonObject {
property bool enabled: true
property string position: "bottom" // "top", "bottom", "left", "right"
property string displayMode: "auto_hide" // "always_visible", "auto_hide", "exclusive"
property string dockType: "floating" // "floating", "attached"
property real backgroundOpacity: 1.0
property real floatingRatio: 1.0
property real size: 1
@@ -509,21 +587,36 @@ Singleton {
property list<string> monitors: [] // holds dock visibility per monitor
property list<string> pinnedApps: [] // Desktop entry IDs pinned to the dock (e.g., "org.kde.konsole", "firefox.desktop")
property bool colorizeIcons: false
property bool showLauncherIcon: false
property string launcherPosition: "end" // "start", "end"
property bool launcherUseDistroLogo: false
property string launcherIcon: ""
property string launcherIconColor: "none"
property bool pinnedStatic: false
property bool inactiveIndicators: false
property bool groupApps: false
property string groupContextMenuMode: "extended" // "list", "extended"
property string groupClickAction: "cycle" // "cycle", "list"
property string groupIndicatorStyle: "dots" // "number", "dots"
property double deadOpacity: 0.6
property real animationSpeed: 1.0 // Speed multiplier for hide/show animations (0.1 = slowest, 2.0 = fastest)
property bool sitOnFrame: false
property bool showDockIndicator: false
property int indicatorThickness: 3
property string indicatorColor: "primary"
property real indicatorOpacity: 0.6
}
// network
property JsonObject network: JsonObject {
property bool wifiEnabled: true
property bool bluetoothRssiPollingEnabled: false // Opt-in Bluetooth RSSI polling (uses bluetoothctl)
property int bluetoothRssiPollIntervalMs: 10000 // Polling interval in milliseconds for RSSI queries
property int bluetoothRssiPollIntervalMs: 60000 // Polling interval in milliseconds for RSSI queries
property string networkPanelView: "wifi"
property string wifiDetailsViewMode: "grid" // "grid" or "list"
property string bluetoothDetailsViewMode: "grid" // "grid" or "list"
property bool bluetoothHideUnnamedDevices: false
property bool disableDiscoverability: false
property bool bluetoothAutoConnect: true
}
// session menu
@@ -532,33 +625,44 @@ Singleton {
property int countdownDuration: 10000
property string position: "center"
property bool showHeader: true
property bool showKeybinds: true
property bool largeButtonsStyle: true
property string largeButtonsLayout: "single-row"
property bool showNumberLabels: true
property list<var> powerOptions: [
{
"action": "lock",
"enabled": true
"enabled": true,
"keybind": "1"
},
{
"action": "suspend",
"enabled": true
"enabled": true,
"keybind": "2"
},
{
"action": "hibernate",
"enabled": true
"enabled": true,
"keybind": "3"
},
{
"action": "reboot",
"enabled": true
"enabled": true,
"keybind": "4"
},
{
"action": "logout",
"enabled": true
"enabled": true,
"keybind": "5"
},
{
"action": "shutdown",
"enabled": true
"enabled": true,
"keybind": "6"
},
{
"action": "rebootToUefi",
"enabled": true,
"keybind": "7"
}
]
}
@@ -566,6 +670,8 @@ Singleton {
// notifications
property JsonObject notifications: JsonObject {
property bool enabled: true
property bool enableMarkdown: false
property string density: "default" // "default", "compact"
property list<string> monitors: [] // holds notifications visibility per monitor
property string location: "top_right"
property bool overlayLayer: true
@@ -574,7 +680,7 @@ Singleton {
property int lowUrgencyDuration: 3
property int normalUrgencyDuration: 8
property int criticalUrgencyDuration: 15
property bool enableKeyboardLayoutToast: true
property bool clearDismissed: true
property JsonObject saveToHistory: JsonObject {
property bool low: true
property bool normal: true
@@ -590,6 +696,8 @@ Singleton {
property string excludedApps: "discord,firefox,chrome,chromium,edge"
}
property bool enableMediaToast: false
property bool enableKeyboardLayoutToast: true
property bool enableBatteryToast: true
}
// on-screen display
@@ -607,11 +715,13 @@ Singleton {
property JsonObject audio: JsonObject {
property int volumeStep: 5
property bool volumeOverdrive: false
property int cavaFrameRate: 30
property int spectrumFrameRate: 30
property string visualizerType: "linear"
property bool spectrumMirrored: true
property list<string> mprisBlacklist: []
property string preferredPlayer: ""
property bool volumeFeedback: false
property string volumeFeedbackSoundFile: ""
}
// brightness
@@ -619,6 +729,8 @@ Singleton {
property int brightnessStep: 5
property bool enforceMinimum: true
property bool enableDdcSupport: false
property list<var> backlightDeviceMappings: []
// Format: [{ "output": "eDP-1", "device": "/sys/class/backlight/intel_backlight" }]
}
property JsonObject colorSchemes: JsonObject {
@@ -630,6 +742,7 @@ Singleton {
property string manualSunset: "18:30"
property string generationMethod: "tonal-spot"
property string monitorForColors: ""
property bool syncGsettings: true
}
// templates toggles
@@ -661,19 +774,50 @@ Singleton {
property string performanceModeDisabled: ""
property string startup: ""
property string session: ""
property string colorGeneration: ""
}
// plugins
property JsonObject plugins: JsonObject {
property bool autoUpdate: false
property bool notifyUpdates: true
}
// idle management
property JsonObject idle: JsonObject {
property bool enabled: false
property int screenOffTimeout: 600 // seconds, 0 = disabled
property int lockTimeout: 660 // seconds, 0 = disabled
property int suspendTimeout: 1800 // seconds, 0 = disabled
property int fadeDuration: 5 // seconds of fade-to-black before action fires
property string screenOffCommand: ""
property string lockCommand: ""
property string suspendCommand: ""
property string resumeScreenOffCommand: ""
property string resumeLockCommand: ""
property string resumeSuspendCommand: ""
property string customCommands: "[]" // JSON array of {timeout, command, resumeCommand}
}
// desktop widgets
property JsonObject desktopWidgets: JsonObject {
property bool enabled: false
property bool overviewEnabled: true
property bool gridSnap: false
property bool gridSnapScale: false
property list<var> monitorWidgets: []
// Format: [{ "name": "DP-1", "widgets": [...] }, { "name": "HDMI-1", "widgets": [...] }]
}
}
// -----------------------------------------------------
// Function to preprocess paths by expanding "~" to user's home directory
// Preprocess paths by adding trailing "/"
function ensureTrailingSlash(path) {
return path.endsWith("/") ? path : path + "/";
}
// -----------------------------------------------------
// Preprocess paths by expanding "~" to user's home directory
function preprocessPath(path) {
if (typeof path !== "string" || path === "") {
return path;
@@ -829,6 +973,17 @@ Singleton {
return data.bar.density || "default";
}
// -----------------------------------------------------
// Get effective bar display mode for a screen (with inheritance)
// If the screen has a displayMode override and overrides are enabled, use it; otherwise use global default
function getBarDisplayModeForScreen(screenName) {
var override = _findScreenOverride(screenName);
if (override && override.enabled !== false && override.displayMode !== undefined) {
return override.displayMode;
}
return data.bar.displayMode || "always_visible";
}
// -----------------------------------------------------
// Check if a screen has any overrides, optionally for a specific property
function hasScreenOverride(screenName, property) {
@@ -942,9 +1097,7 @@ Singleton {
var defaultPath = Quickshell.shellDir + "/Assets/settings-default.json";
// Encode transfer it has base64 to avoid any escaping issue
var base64Data = Qt.btoa(jsonData);
Quickshell.execDetached(["sh", "-c", `echo "${base64Data}" | base64 -d > "${defaultPath}"`]);
Quickshell.execDetached(["sh", "-c", `cat > "${defaultPath}" << 'NOCTALIA_EOF'\n${jsonData}\nNOCTALIA_EOF`]);
} catch (error) {
Logger.e("Settings", "Failed to generate default settings file: " + error);
}
@@ -965,8 +1118,7 @@ Singleton {
var defaultPath = Quickshell.shellDir + "/Assets/settings-widgets-default.json";
var base64Data = Qt.btoa(jsonData);
Quickshell.execDetached(["sh", "-c", `echo "${base64Data}" | base64 -d > "${defaultPath}"`]);
Quickshell.execDetached(["sh", "-c", `cat > "${defaultPath}" << 'NOCTALIA_EOF'\n${jsonData}\nNOCTALIA_EOF`]);
} catch (error) {
Logger.e("Settings", "Failed to generate widget default settings file: " + error);
}
+32 -1
View File
@@ -71,6 +71,9 @@ Singleton {
property var telemetry: ({
instanceId: ""
})
// Launcher app usage counts
property var launcherUsage: ({})
}
onLoaded: {
@@ -90,6 +93,33 @@ Singleton {
}
}
// Launcher usage
function getLauncherUsageCount(key) {
const m = adapter.launcherUsage;
if (!m)
return 0;
const v = m[key];
return typeof v === 'number' && isFinite(v) ? v : 0;
}
function recordLauncherUsage(key) {
let counts = Object.assign({}, adapter.launcherUsage || {});
counts[key] = getLauncherUsageCount(key) + 1;
adapter.launcherUsage = counts;
save();
}
// Migrate usage from one key to another, merging counts in a single save
function migrateLauncherUsage(fromKey, toKey) {
let counts = Object.assign({}, adapter.launcherUsage || {});
const fromCount = typeof counts[fromKey] === 'number' && isFinite(counts[fromKey]) ? counts[fromKey] : 0;
const toCount = typeof counts[toKey] === 'number' && isFinite(counts[toKey]) ? counts[toKey] : 0;
counts[toKey] = toCount + fromCount;
delete counts[fromKey];
adapter.launcherUsage = counts;
save();
}
// Debounced save timer
Timer {
id: saveTimer
@@ -237,8 +267,9 @@ Singleton {
doNotDisturb: NotificationService.doNotDisturb,
noctaliaPerformanceMode: PowerProfileService.noctaliaPerformanceMode,
barVisible: BarService.isVisible,
openedPanel: PanelService.openedPanel?.objectName || "",
lockScreenActive: PanelService.lockScreen?.active || false,
wallpapers: WallpaperService.currentWallpapers || {},
wallpapers: WallpaperService.getWallpapersEffectiveMap(),
desktopWidgetsEditMode: DesktopWidgetRegistry.editMode || false,
// -------------
display: shellStateData.display || {},
+16 -3
View File
@@ -47,6 +47,7 @@ Singleton {
readonly property int borderL: Math.max(1, Math.round(3 * uiScaleRatio))
// Margins (for margins and spacing)
readonly property int marginXXXS: Math.round(1 * uiScaleRatio)
readonly property int marginXXS: Math.round(2 * uiScaleRatio)
readonly property int marginXS: Math.round(4 * uiScaleRatio)
readonly property int marginS: Math.round(6 * uiScaleRatio)
@@ -54,6 +55,15 @@ Singleton {
readonly property int marginL: Math.round(13 * uiScaleRatio)
readonly property int marginXL: Math.round(18 * uiScaleRatio)
// Double margins, for proper container sizing only (e.g. height: id.implicitHeight + Style.margin2M)
readonly property int margin2XXXS: marginXXXS * 2
readonly property int margin2XXS: marginXXS * 2
readonly property int margin2XS: marginXS * 2
readonly property int margin2S: marginS * 2
readonly property int margin2M: marginM * 2
readonly property int margin2L: marginL * 2
readonly property int margin2XL: marginXL * 2
// Opacity
readonly property real opacityNone: 0.0
readonly property real opacityLight: 0.25
@@ -62,6 +72,9 @@ Singleton {
readonly property real opacityAlmost: 0.95
readonly property real opacityFull: 1.0
readonly property real effectivePanelOpacity: PowerProfileService.noctaliaPerformanceMode ? 1.0 : Color.adaptiveOpacity(Settings.data.ui.panelBackgroundOpacity)
readonly property real effectiveBarOpacity: PowerProfileService.noctaliaPerformanceMode ? 1.0 : Settings.data.bar.backgroundOpacity
// Shadows
readonly property real shadowOpacity: 0.85
readonly property real shadowBlur: 1.0
@@ -137,9 +150,9 @@ Singleton {
// The base/default font size for all texts in the bar
readonly property real _barBaseFontSize: Math.max(1, (Style.barHeight / Style.capsuleHeight) * Style.fontSizeXXS)
readonly property real barFontSize: (Settings.data.bar.position === "left" || Settings.data.bar.position === "right") ? _barBaseFontSize * 0.9 : _barBaseFontSize
readonly property real barFontSize: (Settings.data.bar.position === "left" || Settings.data.bar.position === "right") ? _barBaseFontSize * 0.9 * Settings.data.bar.fontScale : _barBaseFontSize * Settings.data.bar.fontScale
readonly property color capsuleColor: Settings.data.bar.showCapsule ? Qt.alpha(Color.mSurfaceVariant, Settings.data.bar.capsuleOpacity) : "transparent"
readonly property color capsuleColor: Settings.data.bar.showCapsule ? Qt.alpha(Settings.data.bar.capsuleColorKey !== "none" ? Color.resolveColorKey(Settings.data.bar.capsuleColorKey) : Color.mSurfaceVariant, Settings.data.bar.capsuleOpacity) : "transparent"
readonly property color capsuleBorderColor: Settings.data.bar.showOutline ? Color.mPrimary : "transparent"
readonly property int capsuleBorderWidth: Settings.data.bar.showOutline ? Style.borderS : 0
@@ -210,7 +223,7 @@ Singleton {
// Get bar font size for a specific bar height, capsule height, and orientation
function getBarFontSizeForDensity(barHeight, capsuleHeight, isVertical) {
const baseFontSize = Math.max(1, (barHeight / capsuleHeight) * Style.fontSizeXXS);
return isVertical ? baseFontSize * 0.9 : baseFontSize;
return isVertical ? baseFontSize * 0.9 * Settings.data.bar.fontScale : baseFontSize * Settings.data.bar.fontScale;
}
// Convenience functions for per-screen bar sizing
+30 -24
View File
@@ -26,8 +26,18 @@ var constants = {
// Safe evaluation function that handles advanced math
function evaluate(expression) {
try {
// Replace mathematical constants
var processed = expression
// Fixes decimal arithmetic
var cleanExpr = expression.replace(/\s+/g, '').toLowerCase();
// Allows numbers (including decimals), basic operators, and explicitly permitted math terms only
var safeRegex = /^(\d*\.?\d+|[+\-*/()^%,]|sin|cos|tan|asin|acos|atan|atan2|sinh|cosh|tanh|asinh|acosh|atanh|log|ln|exp|pow|sqrt|cbrt|abs|floor|ceil|round|trunc|min|max|random|pi|e|sind|cosd|tand)+$/;
if (!safeRegex.test(cleanExpr)) {
throw new Error("Invalid characters or unauthorized functions in expression");
}
// Replace mathematical constants (Original Structure)
var processed = cleanExpr
.replace(/\bpi\b/gi, Math.PI)
.replace(/\be\b/gi, Math.E);
@@ -41,7 +51,7 @@ function evaluate(expression) {
.replace(/\bacos\s*\(/g, 'Math.acos(')
.replace(/\batan\s*\(/g, 'Math.atan(')
.replace(/\batan2\s*\(/g, 'Math.atan2(')
// Hyperbolic functions
.replace(/\bsinh\s*\(/g, 'Math.sinh(')
.replace(/\bcosh\s*\(/g, 'Math.cosh(')
@@ -49,28 +59,28 @@ function evaluate(expression) {
.replace(/\basinh\s*\(/g, 'Math.asinh(')
.replace(/\bacosh\s*\(/g, 'Math.acosh(')
.replace(/\batanh\s*\(/g, 'Math.atanh(')
// Logarithmic and exponential functions
.replace(/\blog\s*\(/g, 'Math.log10(')
.replace(/\bln\s*\(/g, 'Math.log(')
.replace(/\bexp\s*\(/g, 'Math.exp(')
.replace(/\bpow\s*\(/g, 'Math.pow(')
// Root functions
.replace(/\bsqrt\s*\(/g, 'Math.sqrt(')
.replace(/\bcbrt\s*\(/g, 'Math.cbrt(')
// Rounding and absolute
.replace(/\babs\s*\(/g, 'Math.abs(')
.replace(/\bfloor\s*\(/g, 'Math.floor(')
.replace(/\bceil\s*\(/g, 'Math.ceil(')
.replace(/\bround\s*\(/g, 'Math.round(')
.replace(/\btrunc\s*\(/g, 'Math.trunc(')
// Min/Max
.replace(/\bmin\s*\(/g, 'Math.min(')
.replace(/\bmax\s*\(/g, 'Math.max(')
// Random
.replace(/\brandom\s*\(\s*\)/g, 'Math.random()');
@@ -83,14 +93,10 @@ function evaluate(expression) {
// Handle ^ for exponentiation: convert 2^3 to Math.pow(2,3)
processed = processed.replace(/([\d.]+|\))\^([\d.]+|\([^)]*\))/g, 'Math.pow($1,$2)');
// Sanitize expression (only allow safe characters)
if (!/^[0-9+\-*/().\s\w,]+$/.test(processed)) {
throw new Error("Invalid characters in expression");
}
// Replacing eval() with a scoped function constructor
// This is safe because the strict whitelist guarantees only math reaches this point
var result = new Function('return ' + processed)();
// Evaluate the processed expression
var result = eval(processed);
if (!isFinite(result) || isNaN(result)) {
throw new Error("Invalid result");
}
@@ -106,12 +112,12 @@ function formatResult(result) {
if (Number.isInteger(result)) {
return result.toString();
}
// Handle very large or very small numbers
if (Math.abs(result) >= 1e15 || (Math.abs(result) < 1e-6 && result !== 0)) {
return result.toExponential(6);
}
// Normal decimal formatting
return parseFloat(result.toFixed(10)).toString();
}
@@ -120,35 +126,35 @@ function formatResult(result) {
function getAvailableFunctions() {
return [
// Basic arithmetic: +, -, *, /, %, ^, ()
// Trigonometric functions
"sin(x), cos(x), tan(x) - trigonometric functions (radians)",
"sind(x), cosd(x), tand(x) - trigonometric functions (degrees)",
"asin(x), acos(x), atan(x) - inverse trigonometric",
"atan2(y, x) - two-argument arctangent",
// Hyperbolic functions
"sinh(x), cosh(x), tanh(x) - hyperbolic functions",
"asinh(x), acosh(x), atanh(x) - inverse hyperbolic",
// Logarithmic and exponential
"log(x) - base 10 logarithm",
"ln(x) - natural logarithm",
"exp(x) - e^x",
"pow(x, y) - x^y",
// Root functions
"sqrt(x) - square root",
"cbrt(x) - cube root",
// Rounding and absolute
"abs(x) - absolute value",
"floor(x), ceil(x), round(x), trunc(x)",
// Min/Max/Random
"min(a, b, ...), max(a, b, ...)",
"random() - random number 0-1",
// Constants
"pi, e - mathematical constants"
];
+2 -2
View File
@@ -85,8 +85,8 @@ var signalIcon = (p) => {
// Icon mapping
var deviceIcon = (name, icon) => {
var s1 = (name || "").toLowerCase();
var s2 = (icon || "").toLowerCase();
var s1 = String(name || "").toLowerCase();
var s2 = String(icon || "").toLowerCase();
// Prefer icon-based hints for display devices first to avoid "audio" catching TVs
var displayHints = ["display", "tv", "monitor", "projector", "screen", "chromecast", "cast"];
+214 -36
View File
@@ -3,6 +3,7 @@ import Quickshell
import Quickshell.Wayland
import qs.Commons
import qs.Services.Compositor
import qs.Services.Power
import qs.Services.UI
Variants {
@@ -13,7 +14,7 @@ Variants {
required property ShellScreen modelData
active: modelData && Settings.data.wallpaper.enabled
active: modelData && Settings.data.wallpaper.enabled && (!PowerProfileService.noctaliaPerformanceMode || !Settings.data.noctaliaPerformance.disableWallpaper)
sourceComponent: PanelWindow {
id: root
@@ -22,6 +23,9 @@ Variants {
property string transitionType: "fade"
property real transitionProgress: 0
property bool isStartupTransition: true
property bool wallpaperReady: false
visible: wallpaperReady
readonly property real edgeSmoothness: Settings.data.wallpaper.transitionEdgeSmoothness
readonly property var allTransitions: WallpaperService.allTransitions
@@ -38,6 +42,14 @@ Variants {
property real stripesCount: 16
property real stripesAngle: 0
// Pixelate
property real pixelateMaxBlockSize: 64.0
// Honeycomb
property real honeycombCellSize: 0.04
property real honeycombCenterX: 0.5
property real honeycombCenterY: 0.5
// Used to debounce wallpaper changes
property string futureWallpaper: ""
// Track the original wallpaper path being transitioned to (before caching)
@@ -59,6 +71,7 @@ Variants {
Component.onDestruction: {
transitionAnimation.stop();
startupTransitionTimer.stop();
debounceTimer.stop();
shaderLoader.active = false;
currentWallpaper.source = "";
@@ -85,13 +98,27 @@ Variants {
Connections {
target: CompositorService
function onDisplayScalesChanged() {
if (isStartupTransition) {
if (!WallpaperService.isInitialized) {
return;
}
const currentPath = WallpaperService.getWallpaper(modelData.name);
if (currentPath) {
requestPreprocessedWallpaper(currentPath);
if (!currentPath || WallpaperService.isSolidColorPath(currentPath)) {
return;
}
if (isStartupTransition) {
// During startup, just ensure the correct cache exists without visual changes
const compositorScale = CompositorService.getDisplayScale(modelData.name);
const targetWidth = Math.round(modelData.width * compositorScale);
const targetHeight = Math.round(modelData.height * compositorScale);
ImageCacheService.getLarge(currentPath, targetWidth, targetHeight, function (cachedPath, success) {
WallpaperService.wallpaperProcessingComplete(modelData.name, currentPath, success ? cachedPath : "");
});
return;
}
requestPreprocessedWallpaper(currentPath);
}
}
@@ -116,6 +143,15 @@ Variants {
onTriggered: changeWallpaper()
}
// Delay startup transition to ensure the compositor has mapped the window
Timer {
id: startupTransitionTimer
interval: 100
running: false
repeat: false
onTriggered: _executeStartupTransition()
}
Image {
id: currentWallpaper
@@ -128,6 +164,8 @@ Variants {
onStatusChanged: {
if (status === Image.Error) {
Logger.w("Current wallpaper failed to load:", source);
} else if (status === Image.Ready && !wallpaperReady) {
wallpaperReady = true;
}
}
}
@@ -148,6 +186,9 @@ Variants {
Logger.w("Next wallpaper failed to load:", source);
pendingTransition = false;
} else if (status === Image.Ready) {
if (!wallpaperReady) {
wallpaperReady = true;
}
if (pendingTransition) {
pendingTransition = false;
currentWallpaper.asynchronous = false;
@@ -171,6 +212,10 @@ Variants {
return discShaderComponent;
case "stripes":
return stripesShaderComponent;
case "pixelate":
return pixelateShaderComponent;
case "honeycomb":
return honeycombShaderComponent;
case "fade":
case "none":
default:
@@ -186,7 +231,7 @@ Variants {
anchors.fill: parent
property variant source1: currentWallpaper
property variant source2: nextWallpaper
property variant source2: nextWallpaper.status === Image.Ready ? nextWallpaper : currentWallpaper.status === Image.Ready ? nextWallpaper : currentWallpaper
property real progress: root.transitionProgress
// Fill mode properties
@@ -216,7 +261,7 @@ Variants {
anchors.fill: parent
property variant source1: currentWallpaper
property variant source2: nextWallpaper
property variant source2: nextWallpaper.status === Image.Ready ? nextWallpaper : currentWallpaper
property real progress: root.transitionProgress
property real smoothness: root.edgeSmoothness
property real direction: root.wipeDirection
@@ -248,7 +293,7 @@ Variants {
anchors.fill: parent
property variant source1: currentWallpaper
property variant source2: nextWallpaper
property variant source2: nextWallpaper.status === Image.Ready ? nextWallpaper : currentWallpaper
property real progress: root.transitionProgress
property real smoothness: root.edgeSmoothness
property real aspectRatio: root.width / root.height
@@ -282,7 +327,7 @@ Variants {
anchors.fill: parent
property variant source1: currentWallpaper
property variant source2: nextWallpaper
property variant source2: nextWallpaper.status === Image.Ready ? nextWallpaper : currentWallpaper
property real progress: root.transitionProgress
property real smoothness: root.edgeSmoothness
property real aspectRatio: root.width / root.height
@@ -309,6 +354,71 @@ Variants {
}
}
// Pixelate transition shader component
Component {
id: pixelateShaderComponent
ShaderEffect {
anchors.fill: parent
property variant source1: currentWallpaper
property variant source2: nextWallpaper.status === Image.Ready ? nextWallpaper : currentWallpaper
property real progress: root.transitionProgress
property real maxBlockSize: root.pixelateMaxBlockSize
// Fill mode properties
property real fillMode: root.fillMode
property vector4d fillColor: root.fillColor
property real imageWidth1: source1.sourceSize.width
property real imageHeight1: source1.sourceSize.height
property real imageWidth2: source2.sourceSize.width
property real imageHeight2: source2.sourceSize.height
property real screenWidth: width
property real screenHeight: height
// Solid color mode
property real isSolid1: root.isSolid1 ? 1.0 : 0.0
property real isSolid2: root.isSolid2 ? 1.0 : 0.0
property vector4d solidColor1: root.solidColor1
property vector4d solidColor2: root.solidColor2
fragmentShader: Qt.resolvedUrl(Quickshell.shellDir + "/Shaders/qsb/wp_pixelate.frag.qsb")
}
}
// Honeycomb transition shader component
Component {
id: honeycombShaderComponent
ShaderEffect {
anchors.fill: parent
property variant source1: currentWallpaper
property variant source2: nextWallpaper.status === Image.Ready ? nextWallpaper : currentWallpaper
property real progress: root.transitionProgress
property real cellSize: root.honeycombCellSize
property real centerX: root.honeycombCenterX
property real centerY: root.honeycombCenterY
property real aspectRatio: root.width / root.height
// Fill mode properties
property real fillMode: root.fillMode
property vector4d fillColor: root.fillColor
property real imageWidth1: source1.sourceSize.width
property real imageHeight1: source1.sourceSize.height
property real imageWidth2: source2.sourceSize.width
property real imageHeight2: source2.sourceSize.height
property real screenWidth: width
property real screenHeight: height
// Solid color mode
property real isSolid1: root.isSolid1 ? 1.0 : 0.0
property real isSolid2: root.isSolid2 ? 1.0 : 0.0
property vector4d solidColor1: root.solidColor1
property vector4d solidColor2: root.solidColor2
fragmentShader: Qt.resolvedUrl(Quickshell.shellDir + "/Shaders/qsb/wp_honeycomb.frag.qsb")
}
}
// Animation for the transition progress
NumberAnimation {
id: transitionAnimation
@@ -316,10 +426,15 @@ Variants {
property: "transitionProgress"
from: 0.0
to: 1.0
// The stripes shader feels faster visually, we make it a bit slower here.
duration: transitionType == "stripes" ? Settings.data.wallpaper.transitionDuration * 1.6 : Settings.data.wallpaper.transitionDuration
duration: Settings.data.wallpaper.transitionDuration
easing.type: Easing.InOutCubic
onFinished: {
// Mark startup complete now that the animation has finished,
// so displayScalesChanged doesn't trigger a duplicate transition.
if (isStartupTransition) {
isStartupTransition = false;
}
// Clear the tracking of what we're transitioning to
transitioningToOriginalPath = "";
@@ -344,6 +459,18 @@ Variants {
}
}
// Normalize a path (string or QUrl) to a plain string for comparison.
// QML Image.source is a url type; comparing url === string can return
// false even for identical paths. This converts both sides to strings.
function _pathStr(p) {
var s = p.toString();
// QUrl.toString() may add a file:// prefix for local paths
if (s.startsWith("file://")) {
return s.substring(7);
}
return s;
}
// ------------------------------------------------------
function setWallpaperInitial() {
// On startup, defer assigning wallpaper until the services are ready
@@ -424,6 +551,14 @@ Variants {
} else {
futureWallpaper = originalPath;
}
// Skip transition if the resolved path matches what's already displayed
if (_pathStr(futureWallpaper) === _pathStr(currentWallpaper.source)) {
transitioningToOriginalPath = "";
WallpaperService.wallpaperProcessingComplete(modelData.name, originalPath, success ? cachedPath : "");
return;
}
debounceTimer.restart();
// Pass cached path for blur optimization (already resized)
WallpaperService.wallpaperProcessingComplete(modelData.name, originalPath, success ? cachedPath : "");
@@ -446,6 +581,9 @@ Variants {
// Clear image sources for memory efficiency
currentWallpaper.source = "";
nextWallpaper.source = "";
if (!wallpaperReady) {
wallpaperReady = true;
}
return;
}
@@ -473,8 +611,8 @@ Variants {
}
}
// For images, check if source matches
if (!isSolidSource && source === currentWallpaper.source) {
// For images, check if source matches (use _pathStr to normalize url vs string)
if (!isSolidSource && _pathStr(source) === _pathStr(currentWallpaper.source)) {
return;
}
@@ -519,11 +657,17 @@ Variants {
_solidColor2 = colorStr;
// No image to load, start transition immediately
nextWallpaper.source = "";
if (!wallpaperReady) {
wallpaperReady = true;
}
currentWallpaper.asynchronous = false;
transitionAnimation.start();
} else {
nextWallpaper.source = source;
if (nextWallpaper.status === Image.Ready) {
if (!wallpaperReady) {
wallpaperReady = true;
}
currentWallpaper.asynchronous = false;
transitionAnimation.start();
} else {
@@ -535,12 +679,15 @@ Variants {
// ------------------------------------------------------
// Main method that actually trigger the wallpaper change
function changeWallpaper() {
// Get the transitionType from the settings
transitionType = Settings.data.wallpaper.transitionType;
if (transitionType == "random") {
var index = Math.floor(Math.random() * allTransitions.length);
transitionType = allTransitions[index];
// Pick a transition from the user's selected list
var selected = Settings.data.wallpaper.transitionType;
if (!selected || selected.length === 0) {
transitionType = "none";
} else if (selected.length === 1) {
transitionType = selected[0];
} else {
var index = Math.floor(Math.random() * selected.length);
transitionType = selected[index];
}
// Ensure the transition type really exists
@@ -567,6 +714,16 @@ Variants {
stripesAngle = Math.random() * 360;
setWallpaperWithTransition(futureWallpaper);
break;
case "pixelate":
pixelateMaxBlockSize = Math.round(Math.random() * 80 + 32);
setWallpaperWithTransition(futureWallpaper);
break;
case "honeycomb":
honeycombCellSize = Math.random() * 0.04 + 0.02;
honeycombCenterX = Math.random();
honeycombCenterY = Math.random();
setWallpaperWithTransition(futureWallpaper);
break;
default:
setWallpaperWithTransition(futureWallpaper);
break;
@@ -575,13 +732,24 @@ Variants {
// ------------------------------------------------------
// Dedicated function for startup animation
// Sets up transition params, then defers the actual animation
// to allow the compositor time to map the window.
function performStartupTransition() {
// Get the transitionType from the settings
transitionType = Settings.data.wallpaper.transitionType;
if (Settings.data.wallpaper.skipStartupTransition) {
setWallpaperImmediate(futureWallpaper);
isStartupTransition = false;
return;
}
if (transitionType == "random") {
var index = Math.floor(Math.random() * allTransitions.length);
transitionType = allTransitions[index];
// Pick a transition from the user's selected list
var selected = Settings.data.wallpaper.transitionType;
if (!selected || selected.length === 0) {
transitionType = "none";
} else if (selected.length === 1) {
transitionType = selected[0];
} else {
var index = Math.floor(Math.random() * selected.length);
transitionType = selected[index];
}
// Ensure the transition type really exists
@@ -589,34 +757,44 @@ Variants {
transitionType = "fade";
}
// Apply transitionType so the shader loader picks the correct shader
this.transitionType = transitionType;
// Pre-compute per-type params so the shader is ready
switch (transitionType) {
case "none":
setWallpaperImmediate(futureWallpaper);
break;
case "wipe":
wipeDirection = Math.random() * 4;
setWallpaperWithTransition(futureWallpaper);
break;
case "disc":
// Force center origin for elegant startup animation
discCenterX = 0.5;
discCenterY = 0.5;
setWallpaperWithTransition(futureWallpaper);
break;
case "stripes":
stripesCount = Math.round(Math.random() * 20 + 4);
stripesAngle = Math.random() * 360;
setWallpaperWithTransition(futureWallpaper);
break;
default:
setWallpaperWithTransition(futureWallpaper);
case "pixelate":
pixelateMaxBlockSize = 64.0;
break;
case "honeycomb":
honeycombCellSize = 0.04;
honeycombCenterX = 0.5;
honeycombCenterY = 0.5;
break;
}
// Mark startup transition complete
isStartupTransition = false;
// Defer the actual transition start so the compositor can map the window
startupTransitionTimer.start();
}
// Actually kick off the startup transition after the delay
function _executeStartupTransition() {
if (transitionType === "none") {
setWallpaperImmediate(futureWallpaper);
isStartupTransition = false;
} else {
// isStartupTransition stays true until transitionAnimation.onFinished
// to prevent displayScalesChanged from triggering a duplicate transition.
setWallpaperWithTransition(futureWallpaper);
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More