Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
252 commits
Select commit Hold shift + click to select a range
7d85051
Update thumbgen.py
leriart Apr 21, 2026
f48cdaa
Shaders enhanced
leriart Apr 21, 2026
1a7f7c8
Update palette.frag
leriart Apr 21, 2026
184d93a
Update palette.frag
leriart Apr 21, 2026
c51152d
Matriz de dithering Bayer 8x8 normalizada
leriart Apr 21, 2026
4370a9d
Mejoras de rendimiento del shader
leriart Apr 21, 2026
a1ad5a3
Translated comments
leriart Apr 21, 2026
45d62b3
Fix (animation not working)
leriart Apr 21, 2026
c46df44
Blue color fix
leriart Apr 21, 2026
d6c5f6e
Fix Quality and dark zones
leriart Apr 21, 2026
59bc115
optimize palette mapping with fast exp approx and early culling
leriart Apr 21, 2026
79010e6
optimize palette mapping with low‑level GPU techniques
leriart Apr 21, 2026
f640286
Add frame interpolation shader
leriart Apr 28, 2026
07551de
ambxst: update logos, cleanup, and general improvements
leriart May 22, 2026
b498e65
docs: update README for NothingLess - performance fork of Ambxst
leriart May 22, 2026
6520c57
Massive rebrand: Ambxst -> NothingLess (fork by Leriart)
leriart May 22, 2026
f90dff8
Rebrand assets folder and README
leriart May 22, 2026
baeea4d
Generate Nothing-style 16:9 wallpapers for NothingLess
leriart May 22, 2026
80dcca7
Replace wallpapers with Nothing-style gray/white/red palette
leriart May 22, 2026
1e0bf2a
Add 'Nothing' color theme (red, white, gray, black)
leriart May 22, 2026
52452eb
Fix README badges - use static shields instead of dynamic GitHub badges
leriart May 22, 2026
1e968d4
Apply HIGH priority fixes from Ambxst upstream
leriart May 22, 2026
7cf7d40
Add comprehensive improvement analysis
leriart May 22, 2026
7d78523
Fix: restore UPSTREAM_IMPROVEMENTS.md (accidentally removed)
leriart May 22, 2026
781b28c
fix(ui): selected settings text invisible (red on red)
leriart May 22, 2026
7a561a7
fix(system): remove donation link, fix About, update URLs
leriart May 22, 2026
d74090e
fix(theme): improve Nothing color preset contrast
leriart May 22, 2026
dc1b74d
fix: orphan ActionButton broke ShellPanel.qml syntax
leriart May 22, 2026
22d36ed
feat: add metrics toggle keybind (SUPER+SHIFT+BACKSPACE)
leriart May 22, 2026
3800fb7
fix(metrics): use jq to toggle showMetrics in notch.json
leriart May 22, 2026
d40e441
fix(metrics): toggle via external script + Process element
leriart May 22, 2026
f2a4417
fix: QML syntax error - escaped backslash in path string
leriart May 22, 2026
5408cc3
fix: clean up GlobalShortcuts after duplicate removal
leriart May 22, 2026
03ec6f1
fix: properly apply metrics toggle to clean GlobalShortcuts
leriart May 22, 2026
724ff34
feat: set Nothing color theme as default
leriart May 22, 2026
61484ee
chore: remove stale Ambxst screenshots, fix README
leriart May 22, 2026
8f8bfc1
chore: complete rebrand - remove remaining ambxst refs from code
leriart May 22, 2026
0f44418
fix(workspace): change onPressed to onClicked + debug log
leriart May 22, 2026
0820abe
perf: shader optimizations (SDF/inversesqrt), Canvas→ShaderEffect, so…
leriart May 22, 2026
0a9567a
Renombrados wallpapers a nothingless1-8
leriart May 22, 2026
220f6a8
Docs: actualizar README con comandos, keybinds, nothing-fps y Steam i…
leriart May 23, 2026
578b834
Feat: nothing-fps auto-instala librerías + MangoHud modificado
leriart May 23, 2026
88662fe
Sync: pasar cambios de Test-NothingLess a main (notch metrics, FPS, o…
leriart May 23, 2026
1a76ebe
Sync full project from test to main (notch metrics, FPS overlay, Mang…
leriart May 23, 2026
64b8a12
Cleanup: remove wallpaper backups, test branch, add assets table to R…
leriart May 23, 2026
1d57097
Remove assets section from README
leriart May 23, 2026
6cc59f2
Feat: generate hyprland.conf with compositor settings (sourced by use…
leriart May 23, 2026
04982e1
Merge branch 'main' of https://github.com/leriart/NothingLess
leriart May 23, 2026
3a25a63
Docs: add nothingless install hyprland command to README
leriart May 23, 2026
7d55f7a
Fix: HoverHandler for cursor, barMouseArea no-block clicks
leriart May 23, 2026
d29e02b
Fix: workspace buttons with Item+MouseArea (Button click not working)
leriart May 23, 2026
02e95b5
Fix: remove background: from workspace items (Button->Item migration)
leriart May 23, 2026
aa02cde
Fix: slider track color + workspace dispatch direct Process
leriart May 23, 2026
8dc622b
Fix: slider track height 6px + color overSurfaceVariant
leriart May 23, 2026
4cad795
Fix: slider left=overprimary, right=overSecondaryFixedVariant
leriart May 23, 2026
533d648
Fix: remove wavy shader from sliders, static bar
leriart May 23, 2026
0685993
Fix: HoverHandler en ToggleButton + hover color iconos
leriart May 23, 2026
90f38a2
Fix: ToggleButton hover overlay color Styling.srItem overprimary
leriart May 23, 2026
4392e43
Fix: performance icon color overprimary (rojo) como los demás
leriart May 23, 2026
5e9a928
Fix: icono no cambia de color al hover (solo fondo)
leriart May 23, 2026
9ddbf0f
Fix: workspace dispatch con axctl -c config explícita
leriart May 23, 2026
e235775
Fix: AxctlService.dispatch usa -c <config>
leriart May 23, 2026
bc47524
Fix: workspace click usa hyprctl dispatch directo
leriart May 23, 2026
6ba2c2e
Fix: wheel handler usa hyprctl dispatch
leriart May 23, 2026
c76efc2
Fix: remove wavy animations, thick bars (6px)
leriart May 23, 2026
a040dae
Fix: StyledSlider thickness 6px
leriart May 23, 2026
9183d48
Fix: remove wavy de ControlsButton y PositionSlider
leriart May 23, 2026
7ac463f
Fix: PositionSlider wavy props
leriart May 23, 2026
552ad85
Fix: remove remaining wavy everywhere
leriart May 23, 2026
23dfab7
Fix: remove last wavy everywhere
leriart May 23, 2026
dc1a1bb
Fix: actually remove wavy from SystemPanel and LockPlayer
leriart May 23, 2026
320c96c
Fix: ColorPickerView GridView scroll con WheelHandler
leriart May 23, 2026
554c49c
Fix: ColorPickerView scroll+click con MouseArea
leriart May 23, 2026
584d0df
Fix: desactivar mainFlickable cuando mouse en color picker
leriart May 23, 2026
3c4f07c
Fix: SchemeSelector+ColorPickerView+ThemePanel scroll/click
leriart May 23, 2026
5127be3
Fix: SchemeSelector WheelHandler
leriart May 23, 2026
4660a4a
Fix: scheme list parent expand + disable wallpaperGrid interactive
leriart May 23, 2026
951b467
Refactor: SchemeSelector usa Popup
leriart May 23, 2026
6941464
Revert: SchemeSelector to original
leriart May 23, 2026
de8e666
Feat: install hyprland adds exec-once axctl automatically
leriart May 23, 2026
7294b97
Fix: exec-once nothingless directly in hyprland.conf
leriart May 23, 2026
8a723a8
Feat: toggle-metrics in axctl.toml by default
leriart May 23, 2026
81301b1
fix: fix ThemePanel syntax error and add missing toggle-metrics bind
leriart May 23, 2026
3d62b0a
fix: add missing toggle-metrics property to keybinds adapter
leriart May 23, 2026
8bdcf96
fix: add missing toggle-metrics bind via repairKeybinds fallback
leriart May 23, 2026
c7856fa
Merge branch 'main' of https://github.com/leriart/NothingLess
leriart May 23, 2026
d36debe
fix: remove invalid QML property with hyphenated name
leriart May 23, 2026
545dce4
fix: fallback to defaultNothinglessBinds for keys not exposed by Json…
leriart May 23, 2026
d6d3a84
fix: remove invalid onMouseOverChanged handler on ColorPickerView
leriart May 23, 2026
0286046
perf: cache-resolved colors, variant configs, and system monitor paths
leriart May 23, 2026
b5c5241
fix: use sentinel-based cache invalidation instead of cross-module call
leriart May 23, 2026
254ba24
revert: remove color resolution cache
leriart May 23, 2026
d4cc20b
fix: auto-start on Lua configs and reinforce on conf configs
leriart May 23, 2026
51c5873
feat(compositor): integrate all hyprmod settings into compositor config
leriart May 23, 2026
439d339
feat(compositor): add full UI for all compositor settings in settings…
leriart May 23, 2026
8aa2f17
feat(compositor): live apply all settings, remove donation nag, add c…
leriart May 23, 2026
073e197
fix: resolve QML runtime warnings for missing imports and stale handlers
leriart May 23, 2026
2511989
fix: remove duplicate onMetricColorCpuChanged handler
leriart May 23, 2026
e0fd987
fix(compositor): remove Coming Soon tab, match Ambxst startup flow
leriart May 23, 2026
1bf073f
fix(compositor): make sourced hyprland.conf static to prevent Hyprlan…
leriart May 23, 2026
24e7eb5
fix(compositor): match Ambxst startup — only daemon starts NothingLess
leriart May 23, 2026
8c15d74
fix(compositor): create hyprland.conf at install, never regenerate it
leriart May 23, 2026
155ac6f
fix(compositor): move exec-once to static sourced file to survive rel…
leriart May 23, 2026
fedc4f0
fix(compositor): pgrep guard on exec-once to survive Hyprland reloads
leriart May 23, 2026
f383ec4
fix(cli): prevent duplicate NothingLess instances on Hyprland reload
leriart May 23, 2026
7f2e8d6
fix(compositor): NothingLess starts directly, daemon via QML — no Hyp…
leriart May 23, 2026
28d7184
fix(compositor): boot flag file prevents Hyprland from re-executing o…
leriart May 23, 2026
a2be5a3
fix(compositor): re-apply binds and settings on Hyprland config reload
leriart May 23, 2026
af9482c
perf(compositor): eliminate flicker on Hyprland reload with direct apply
leriart May 23, 2026
c0b2621
perf(compositor): add core binds baseline to sourced file for instant…
leriart May 23, 2026
652e94e
fix(compositor): update preset with all 130+ settings
leriart May 23, 2026
49938d6
fix(compositor): panel blank because ColumnLayout had no width
leriart May 23, 2026
8e56b1c
fix(compositor): remove extra closing brace leftover from StackLayout…
leriart May 23, 2026
9e2a433
fix(compositor): center content like System panel
leriart May 23, 2026
1a54ddf
docs: comprehensive README rewrite with full feature list and Ambxst …
leriart May 23, 2026
c48655c
docs: fix Ambxst comparison — mpv video, shaders were inherited
leriart May 23, 2026
084e64a
feat(compositor): configurable GPU backend (OpenGL/Vulkan) + fix README
leriart May 23, 2026
a1bfbc9
docs: simplify README — remove noise, keep it direct
leriart May 23, 2026
c1f1951
docs: remove entire Features section — keep README minimal
leriart May 23, 2026
374f6f8
fix(wallpapers): remove x1 from motion multiplier, range x2-x5 now
leriart May 23, 2026
0792598
fix: prevent segfaults from async loader + nullable Connections (Qt 6…
leriart May 23, 2026
6867180
fix(keybinds): toggle-metrics was missing from keybinds-batch and sou…
leriart May 23, 2026
cca2670
docs: add screenshots section to README with settings and gaming capt…
leriart May 23, 2026
f92d068
fix(install): generate valid Lua config for Hyprland 0.48+ lua mode
leriart May 23, 2026
d28c72e
docs: add --lua/--conf install flags to README
leriart May 23, 2026
816815b
feat: add NOTHING splash with transparent background and ping-pong GIF
leriart May 23, 2026
c6d7d16
fix: add debounce to toggle-metrics to prevent double-fire from Hyprl…
leriart May 23, 2026
a4462da
fix: remove duplicate toggle-metrics keybind registration in shell.qml
leriart May 23, 2026
c6bee7e
feat: add GitHub social preview (1280x640)
leriart May 23, 2026
d1c52c1
fix(social-preview): use Ndot font for logo, JetBrains for info, NOTH…
leriart May 23, 2026
d47e2b7
fix(social-preview): correct logo text to NOTHINGLESS
leriart May 23, 2026
1f27a35
docs: add Zack to credits for logo & animation design
leriart May 23, 2026
8de3a61
fix: add deepseek to AI providers and visual systray icon picker
leriart May 23, 2026
be24405
fix: move Process declaration out of enablePowerSave function
leriart May 23, 2026
2d073cd
fix: add missing Quickshell.Io import for Process type in Battery.qml
leriart May 23, 2026
4aa2ad8
feat: battery settings UI, systray icon picker, deepseek AI, chromium…
leriart May 23, 2026
50253ae
feat: add Monitor Layout section to Compositor settings
leriart May 23, 2026
512917f
feat: add monitor layout controls to Compositor settings
leriart May 23, 2026
0229248
fix: replace StyledButton with Button (type didn't exist)
leriart May 23, 2026
3fe6842
fix: add missing SystemTray import to ShellPanel
leriart May 23, 2026
7347db4
fix: replace .filter() on UntypedObjectModel with manual loop in SysTray
leriart May 23, 2026
c5bf9fa
fix: use Quickshell.screens.length as Repeater model in monitors section
leriart May 23, 2026
a97bceb
fix: simplify monitors section, charge limit defaults to 80%
leriart May 23, 2026
da479c0
fix: use plain Rectangle instead of StyledRect in monitors section
leriart May 23, 2026
5711ff4
fix: separate MonitorsPanel into its own QML file loaded via Loader
leriart May 23, 2026
29da9e8
fix: correct monitors section indentation to match other sections
leriart May 23, 2026
adf57a5
fix: replace monitors section with Loader, fix Advanced section closing
leriart May 23, 2026
2fa58c0
fix: replace inline monitors section with Loader (MonitorsPanel.qml)
leriart May 23, 2026
5d6ef2c
fix: wrap monitors Loader in ColumnLayout with visible property
leriart May 23, 2026
40be886
debug: replace monitors Loader with inline text to test visibility
leriart May 23, 2026
6e76b2e
fix: add missing Advanced ColumnLayout closing brace, fix monitors in…
leriart May 23, 2026
79816d6
fix: restore root Item closing, rebalance monitors section
leriart May 23, 2026
beed9be
debug: replace monitors with bright red rectangle for visibility test
leriart May 23, 2026
8ca428e
fix: restore CompositorPanel and add full monitor management
leriart May 23, 2026
49eeb80
fix: Bluetooth device discovery and monitor layout improvements
leriart May 23, 2026
bd5eea0
fix: auto-detect .conf vs .lua and write monitor config directly
leriart May 23, 2026
7e2a346
fix(bar): add missing qmldir to register BarContent type
leriart May 23, 2026
7df2162
feat(monitors): rebuild monitor config with persistence à la nwg-disp…
leriart May 24, 2026
8de3125
fix(monitors): refresh TOML config after monitor sync
leriart May 24, 2026
31e4a7f
feat(monitors): real-coordinate canvas à la nwg-displays
leriart May 24, 2026
58e59cf
fix(monitors): rewrite canvas with proper real-coordinate rendering
leriart May 24, 2026
4a725b5
fix(monitors): scale-aware monitor sizing matching nwg-displays
leriart May 24, 2026
d870825
style(monitors): theme-consistent styling matching rest of shell
leriart May 24, 2026
a5122b7
fix(monitors): replace undefined icon references in info bar
leriart May 24, 2026
cc550fe
feat(tasktray): add running apps task tray with toggle button
leriart May 24, 2026
b597610
fix(tasktray): add missing Quickshell.Widgets import, use toplevel.ac…
leriart May 24, 2026
201ea92
fix(tasktray): remove sourceSize (not a Quickshell IconImage prop), f…
leriart May 24, 2026
cbad500
fix(tasktray): remove sourceSize from popup IconImage too
leriart May 24, 2026
29db42b
fix(tasktray): remove StyledRect-only properties from TaskTray instan…
leriart May 24, 2026
3441fcb
fix(tasktray): complete rewrite to match bar component style
leriart May 24, 2026
64100f9
fix(tasktray): add missing import qs.modules.components for StyledRect
leriart May 24, 2026
627a61f
fix(tasktray): remove iconSize from BarContent (not a TaskTray property)
leriart May 24, 2026
4de8241
fix(tasktray): remove orientation from BarContent (TaskTray uses bar.…
leriart May 24, 2026
083e44d
feat(tasktray): match bar icon style + dock background for app icons
leriart May 24, 2026
9103d1c
feat(tasktray): system tray overflow with toggle button
leriart May 24, 2026
5deb381
fix(tasktray): expand animation, toggle sizing, popup controls
leriart May 24, 2026
3cc1622
fix(tasktray): expand animation, native menus, dynamic sizing
leriart May 24, 2026
6f4c7fd
fix(tasktray): floating dock, proper QsMenuOpener, exact LayoutSelect…
leriart May 24, 2026
eade0ad
fix(tasktray): native context menu via BarPopup + QsMenuOpener
leriart May 24, 2026
048b45e
fix(tasktray): complete rewrite — StyledRect root matching ToggleButton
leriart May 24, 2026
c98c672
fix(tasktray): total rewrite — left=icon popup, right=settings
leriart May 24, 2026
ec3b9d7
fix(tasktray): inline expansion + native context menu
leriart May 24, 2026
8b78e5e
fix(tasktray): width override prevented inline expansion
leriart May 24, 2026
99bb6fa
fix(tasktray): floating dock + per-item visibility toggle
leriart May 24, 2026
49be2be
fix(tasktray): layout grows with dock, icons use allItems with visibl…
leriart May 24, 2026
496decd
fix(tasktray): visibility toggle key generation + MouseArea propagation
leriart May 24, 2026
b9da1b0
fix(tasktray): persist visibility state via Config.bar.hiddenIcons
leriart May 24, 2026
02d61db
fix(tasktray): reactive visibility via _hiddenVersion version counter
leriart May 24, 2026
997de33
fix(tasktray): inline visibility bindings for proper reactivity
leriart May 24, 2026
3b506de
fix(tasktray): safe SystemTray.items access — was showing undefined
leriart May 24, 2026
c5dedb2
fix(tasktray): MouseArea stacking + local _hidden array
leriart May 24, 2026
342ab17
fix(tasktray): remove explicit width, fix dock visibility
leriart May 24, 2026
462dc57
fix(tasktray): unique keys per item using index prefix
leriart May 24, 2026
9d09fe8
fix(tasktray): direct SystemTray.items + floating dock
leriart May 24, 2026
0adb7d5
fix(tasktray): MouseArea now sibling of toggleBtn with z:100
leriart May 24, 2026
86697fe
fix(tasktray): reactive SystemTray.items tracking + mouse→event
leriart May 24, 2026
bb607bb
fix(tasktray): event parameter in all onClicked handlers
leriart May 24, 2026
ca46fa1
fix(tasktray): reactive via Repeater.count + poll timer
leriart May 24, 2026
dfd2290
fix(tasktray): inline expansion + Repeater.count reactivity
leriart May 24, 2026
f343e34
fix(tasktray): reactive _vc via _vkey counter + min dock width
leriart May 24, 2026
75f0415
fix(tasktray): dynamic popup size + _vc reactivity fix
leriart May 24, 2026
747d604
fix(tasktray): explicit _vc property updated by _recalc()
leriart May 24, 2026
bbcc631
fix(tasktray): corners, counter readability, no-empty-expand, ctxPopu…
leriart May 24, 2026
c4a3134
fix(tasktray): _recalc error handling + safe length access
leriart May 24, 2026
e4eea8f
fix(tasktray): _recalc on click + dock expansion fixes
leriart May 24, 2026
692f945
fix(tasktray): simplified — no hidden state, expand by total count
leriart May 24, 2026
0b5bf7b
fix(tasktray): restoration of expansion + improved spacing
leriart May 24, 2026
47bea46
fix(tasktray): safe _n with length || 0 + _dw Math.max
leriart May 24, 2026
f4324ae
fix(tasktray): minimal implementation — popup with tray icons
leriart May 24, 2026
ad76b80
fix(tasktray): restored e4eea8f2 + bigger spacing (32px, spacing 4)
leriart May 24, 2026
0ae7bf8
fix(tasktray): restored c4a3134d + spacing fixes
leriart May 24, 2026
488e5a0
fix(tasktray): restored c4a3134d exactly + bigger spacing only
leriart May 24, 2026
77510e3
fix(tasktray): remove settings popup, clean unused code, perma-rounded
leriart May 24, 2026
c3a1cee
fix(tasktray): remove settings popup, clean dead code, perma-rounded
leriart May 24, 2026
fdc0057
fix(tasktray): cleanup dead code — remove _hid/_recalc/_toggle/_key
leriart May 24, 2026
d40d9f3
fix(tasktray): remove duplicate _dockN property declaration
leriart May 24, 2026
5c5a63d
style(tasktray): remove badge, add 90deg rotation, perma-rounded
leriart May 24, 2026
d3c8869
fix(tasktray): seamless join between toggle and dock
leriart May 24, 2026
53206a8
fix(tasktray): onClicked requires event parameter
leriart May 24, 2026
0af5daa
fix(tasktray): onClicked event parameter + missing brace
leriart May 24, 2026
8f0427b
fix(tasktray): right-click opens popup regardless of hasMenu
leriart May 24, 2026
d0430c1
fix(tasktray): event param + remove hasMenu (clean restore from d3c88…
leriart May 24, 2026
e8cc798
fix(tasktray): ctxPopup anchors to clicked icon + uses toggle()
leriart May 24, 2026
c40cb5e
fix(tasktray): ctxPopup shows 'No actions' fallback + proper sizing
leriart May 24, 2026
d300111
fix(tasktray): restored exactly from c4a3134d + styling
leriart May 24, 2026
076f82f
fix(tasktray): dynamic popup + background fusion + icon spacing
leriart May 24, 2026
58d3fdd
fix(tasktray): bigger icon spacing — 30px items, spacing 6, 36px slot
leriart May 24, 2026
e82c356
fix(tasktray): unified background + icon expansion
leriart May 24, 2026
20b2561
fix(tasktray): dock icon sizing matches bar buttons (36px, spacing 4)
leriart May 24, 2026
bb37710
fix(tasktray): use dockRep.count directly for expansion width
leriart May 24, 2026
e38ba51
fix(tasktray): smooth expand animation with clip + opacity fade
leriart May 24, 2026
e998f5c
fix(settings): remove Hidden Systray Icons section from Bar settings
leriart May 24, 2026
c6a28a4
fix(tasktray): vertical bar expansion support
leriart May 24, 2026
2e2fef3
fix(tasktray): hide horizontal dock when vertical bar
leriart May 24, 2026
972ade6
fix(tasktray): always rounded corners on unified background
leriart May 24, 2026
4b0aa19
fix(monitors): AxctlService dispatch monitor → hyprctl dispatch
leriart May 24, 2026
e37f364
fix(monitors): read x/y from metadata sub-object (axctl format)
leriart May 24, 2026
8a3caca
fix(monitors): direct hyprctl reload for live apply + remove axctl di…
leriart May 24, 2026
f705d07
fix(monitors): inject monitor config into NothingLess hyprland.conf
leriart May 24, 2026
ba758cc
fix(monitors): include position (x,y,transform) in AxctlService monit…
leriart May 24, 2026
ed8a66a
fix(monitors): add explicit hyprctl reload after MonitorsWriter sync
leriart May 24, 2026
fc067c7
fix(monitors): fix monitors_writer.py script path (was off by one dir…
leriart May 24, 2026
3bff7d8
fix(monitors): restore AxctlService.dispatch for live position updates
leriart May 24, 2026
59185ff
fix(monitors): buildMonitorList should prefer axctl positions over sc…
leriart May 24, 2026
0a4fe01
fix(systray): restore tasktray context menu with proper QsMenuHandle …
leriart May 25, 2026
acbde04
fix(systray): strip any :// prefix variants from menu item text
leriart May 25, 2026
d199db8
feat(presets): restore Ambxst Default preset, rename user preset to N…
leriart May 25, 2026
33fff18
fix(presets): set Axenide as author for all Ambxst presets
leriart May 25, 2026
ea0b4ee
nixos: kirigami and kde.desktop not found error fix
kagurazakei May 25, 2026
36d4eea
remove: duplicate packages
kagurazakei May 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Empty file modified .github/pull_request_template.md
100644 → 100755
Empty file.
Empty file modified .gitignore
100644 → 100755
Empty file.
14 changes: 7 additions & 7 deletions AGENTS.md
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@

## IMPORTANT: axctl Build Requirement

When changes are made to axctl (in `/home/adriano/Repos/Axenide/axctl/`), manual build and install is required:
When changes are made to axctl (in `/home/adriano/Repos/Leriart/axctl/`), manual build and install is required:

1. Build: `cd /home/adriano/Repos/Axenide/axctl && go build -o bin/axctl .`
1. Build: `cd /home/adriano/Repos/Leriart/axctl && go build -o bin/axctl .`
2. Install: Replace `/usr/local/bin/axctl` with the new binary (requires manual intervention)

The agent cannot test axctl changes directly because the daemon runs in the user's session environment.

## OVERVIEW
Ambxst is a highly customizable Wayland shell built with Quickshell. It provides a unified panel (bar, dock, notch), dashboard, lockscreen, desktop widgets, and notification system, driven by a reactive JSON configuration system. Multi-monitor support via `Variants` on `Quickshell.screens`.
NothingLess is a highly customizable Wayland shell built with Quickshell. It provides a unified panel (bar, dock, notch), dashboard, lockscreen, desktop widgets, and notification system, driven by a reactive JSON configuration system. Multi-monitor support via `Variants` on `Quickshell.screens`.

## STRUCTURE
```
Expand Down Expand Up @@ -59,7 +59,7 @@ Ambxst is a highly customizable Wayland shell built with Quickshell. It provides
| **Config Logic** | `config/Config.qml` | >3100 lines. `FileView` + `JsonAdapter` persistence |
| **Transient State** | `modules/globals/GlobalStates.qml` | Window visibility, active modes, runtime flags |
| **Services** | `modules/services/*.qml` | 30+ singletons. System integration layer |
| **Theme/Colors** | `modules/theme/Colors.qml` | Watches `~/.cache/ambxst/colors.json` reactively |
| **Theme/Colors** | `modules/theme/Colors.qml` | Watches `~/.cache/NothingLess/colors.json` reactively |
| **Styling** | `modules/theme/Styling.qml` | `radius()`, `fontSize()`, `getStyledRectConfig()` |
| **UI Primitives** | `modules/components/` | `StyledRect`, `BarPopup`, `SearchInput`, shaders |
| **Dashboard** | `modules/widgets/dashboard/` | Tabbed hub with LRU lazy-loading |
Expand Down Expand Up @@ -118,7 +118,7 @@ qs -p shell.qml
./cli.sh

# Install (Arch/Fedora/NixOS)
curl -L get.axeni.de/ambxst | sh
curl -L github.com/Leriart/NothingLess/NothingLess | sh
```

## NOTES
Expand All @@ -127,8 +127,8 @@ curl -L get.axeni.de/ambxst | sh
- The `qs.` import prefix is a Quickshell VFS construct, not a physical directory.
- `screenshotToolMode` in `GlobalStates.qml` is **DEPRECATED**.
- Gemini AI provider doesn't support the `system` role; handled in `services/ai/strategies/`.
- `axctl` is a core part of this project. It abstracts compositor interactions. It is one of Axenide's projects and the source code is available at `/home/adriano/Repos/Axenide/axctl/`.
- We register a changelog in a website. The local repo for this website is at `/home/adriano/Repos/Axenide/web/`. The changelog entries are stored in `content/ambxst/changelog/` as Zola markdown files. Write following the structure by referencing other entries, and add links to PRs and issues when relevant. Only write a changelog when the user asks for it.
- `axctl` is a core part of this project. It abstracts compositor interactions. It is one of Leriart's projects and the source code is available at `/home/adriano/Repos/Leriart/axctl/`.
- We register a changelog in a website. The local repo for this website is at `/home/adriano/Repos/Leriart/web/`. The changelog entries are stored in `content/NothingLess/changelog/` as Zola markdown files. Write following the structure by referencing other entries, and add links to PRs and issues when relevant. Only write a changelog when the user asks for it.

- Some projects to keep in mind for reference:
- DankMaterialShell (DMS): https://github.com/AvengeMedia/DankMaterialShell
Expand Down
Empty file modified LICENSE
100644 → 100755
Empty file.
267 changes: 165 additions & 102 deletions README.md
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,148 +1,211 @@
<p align="center">
<img src="./assets/ambxst/ambxst-logo-color.svg" alt="Ambxst Logo" style="width: 50%;" align="center" />
<br>
<br>
An <i><b>Ax</b>tremely</i> customizable shell.
<img src="./assets/not.gif" alt="NothingLess" width="400"/>
<br><br>
A high-performance, deeply customizable Wayland shell built with Quickshell.
<br><br>
<i>Forked from <a href="https://github.com/Axenide/Ambxst">Ambxst</a> — less is more.</i>
</p>

<p align="center">
<a href="https://github.com/Axenide/Ax-Shell/stargazers">
<img src="https://img.shields.io/github/stars/Axenide/Ambxst?style=for-the-badge&logo=github&color=E3B341&logoColor=D9E0EE&labelColor=000000" alt="GitHub stars">
</a>
<a href="https://ko-fi.com/Axenide">
<img src="https://img.shields.io/badge/Support me on-Ko--fi-FF6433?style=for-the-badge&logo=kofi&logoColor=white&labelColor=000000" alt="Ko-Fi">
<p align="center">
<a href="https://github.com/Leriart/NothingLess">
<img src="https://img.shields.io/badge/NothingLess-0A0A0A?style=for-the-badge&logo=github&logoColor=FFFFFF" alt="repo">
</a>
<a href="https://discord.com/invite/gHG9WHyNvH">
<img src="https://img.shields.io/discord/669048311034150914?style=for-the-badge&logo=discord&logoColor=D9E0EE&labelColor=000000&color=5865F2&label=Discord" alt="Discord">
<a href="https://github.com/Axenide/Ambxst">
<img src="https://img.shields.io/badge/Fork%20of-Ambxst-E80012?style=for-the-badge&logo=github&logoColor=FFFFFF&labelColor=0A0A0A" alt="fork">
</a>
</p>

---

<h2><sub><img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Animated-Fluent-Emojis/master/Emojis/Objects/Camera%20with%20Flash.png" alt="Camera with Flash" width="32" height="32" /></sub> Screenshots</h2>
## Screenshots

<p align="center">
<img src="./assets/screenshots/settings.png" alt="NothingLess Settings" width="45%"/>
&nbsp;&nbsp;
<img src="./assets/screenshots/gaming.png" alt="NothingLess Gaming" width="45%"/>
</p>

---

## Installation

```bash
curl -sL https://github.com/Leriart/NothingLess/raw/main/install.sh | sh
```

Or clone manually:

```bash
git clone https://github.com/Leriart/NothingLess.git ~/.local/src/nothingless
sudo ln -s ~/.local/src/nothingless/cli.sh /usr/local/bin/nothingless
```

Then run:

```bash
nothingless
```

<div align="center">
<img src="./assets/screenshots/1.png" width="100%" />
### Compositor integration

<br />
```bash
nothingless install hyprland # Auto-detect (default: conf)
nothingless install hyprland --conf # Force config file mode (safe default)
nothingless install hyprland --lua # Force Lua mode (Hyprland >= 0.48)
nothingless remove hyprland # Remove NothingLess config from Hyprland
```

<img src="./assets/screenshots/2.png" width="32%" />
<img src="./assets/screenshots/3.png" width="32%" />
<img src="./assets/screenshots/4.png" width="32%" />
**Mode selection:**
- `--conf` (default): Creates `~/.local/share/nothingless/hyprland.conf` and adds `source = ~/.local/share/nothingless/hyprland.conf` to your Hyprland config. Works on all Hyprland versions.
- `--lua`: Creates `~/.local/share/nothingless/hyprland.lua` as valid Lua and adds `loadfile(...)()` to your Hyprland config. Requires Hyprland >= 0.48.
- No flag: Auto-detects based on existing config (`hyprland.lua` → lua, `hyprland.conf` → conf). If neither exists, defaults to `--conf`.

<img src="./assets/screenshots/5.png" width="32%" />
<img src="./assets/screenshots/6.png" width="32%" />
<img src="./assets/screenshots/7.png" width="32%" />
On first boot, `exec-once = nothingless` launches the shell, which starts the axctl daemon internally. All compositor settings are managed by axctl (live via `raw-batch`, persisted via `axctl.toml`).

<img src="./assets/screenshots/8.png" width="32%" />
<img src="./assets/screenshots/9.png" width="32%" />
<img src="./assets/screenshots/10.png" width="32%" />
</div>
Supported on **Arch**, **Fedora**, and **NixOS** (requires Hyprland).

---

<h2><sub><img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Animated-Fluent-Emojis/master/Emojis/Objects/Package.png" alt="Package" width="32" height="32" /></sub> Installation</h2>
## Commands

### CLI

```bash
curl -L get.axeni.de/ambxst | sh
nothingless # Start NothingLess shell
nothingless update # Update NothingLess
nothingless reload # Reload NothingLess
nothingless quit # Quit NothingLess
nothingless lock # Activate lockscreen
nothingless run <command> # Run a NothingLess module
nothingless brightness <0-100> # Set brightness
nothingless brightness +/-<delta> # Adjust brightness
nothingless brightness -s # Save current brightness
nothingless brightness -r # Restore saved brightness
nothingless screen on|off # Control display power
nothingless suspend # Suspend system
```

This will install Ambxst and its dependencies. You will have the `ambxst` command available in your terminal, which you can use to start the shell.
### Module Commands

| `nothingless run ...` | Description |
|---|---|
| `launcher` | Open app launcher |
| `dashboard` | Open dashboard |
| `assistant` | Open AI assistant |
| `clipboard` | Open clipboard manager |
| `emoji` | Open emoji picker |
| `notes` | Open notes |
| `tmux` | Open tmux session manager |
| `wallpapers` | Open wallpaper picker |
| `overview` | Open workspace overview |
| `powermenu` | Open power menu |
| `tools` | Open tools menu |
| `config` | Open settings |
| `screenshot` | Take screenshot |
| `screenrecord` | Screen record |
| `lens` | Open OCR capture |
| `toggle-metrics` | Toggle notch metrics display |
| `lockscreen` | Lock session |

### Keybinds

| Key | Action |
|---|---|
| `SUPER` (hold) | Launcher |
| `SUPER + D` | Dashboard |
| `SUPER + A` | Assistant |
| `SUPER + V` | Clipboard |
| `SUPER + PERIOD` | Emoji picker |
| `SUPER + N` | Notes |
| `SUPER + T` | Tmux |
| `SUPER + COMMA` | Wallpapers |
| `SUPER + TAB` | Workspace overview |
| `SUPER + ESC` | Power menu |
| `SUPER + S` | Tools menu |
| `SUPER + SHIFT + C` | Settings |
| `SUPER + SHIFT + S` | Screenshot |
| `SUPER + SHIFT + R` | Screen record |
| `SUPER + SHIFT + A` | Lens |
| `SUPER + L` | Lock session |
| `SUPER + SHIFT + BACKSPACE` | Toggle metrics overlay |

### Hyprland (more compositors coming soon!)
---

1. Run the installation command above.
## FPS Monitoring (`nothing-fps`)

2. Run `ambxst install hyprland` to add Ambxst's configuration to Hyprland. This will source a config file that applies Ambxst's settings. It will look like this:
NothingLess includes a modified MangoHud that captures FPS data and displays it in the notch metrics overlay.

```bash
# Ambxst
source = ~/.local/share/ambxst/hyprland.conf
# Launch a game with FPS monitoring
nothing-fps ./my-game

# OVERRIDES
# Down here you can write or source anything that you want to override from Ambxst's settings.
# Steam launch options (right-click game > Properties > Launch Options)
nothing-fps %command%
```

As stated, anything you want to override from Ambxst's settings should be written under the "OVERRIDES" section.
**How it works:**

3. Start Ambxst by running `ambxst` in your terminal. If you want to keep it running without having the terminal window open, you can run `ambxst & disown`. This will be only necessary for your first test run, as Ambxst will start automatically on login after step 2.
1. `nothing-fps` sets up a modified MangoHud (`libMangoHud_shim.so`) via `LD_PRELOAD`
2. MangoHud hooks Vulkan/OpenGL to capture frame-present events
3. Calculated FPS is written to `/dev/shm/nothingless_fps`
4. NothingLess reads this file in real-time and displays FPS in the notch

Ambxst is currently supported on **Arch**, **Fedora**, and **NixOS**. This means both based and derivative distributions.
**Rebuilding MangoHud from source:**

> [!IMPORTANT]
> The only pre-requisite is having Hyprland installed.
```bash
./scripts/mangohud-patch/build-mangohud.sh
```

> [!NOTE]
> For NixOS users, the screen recording utility `gpu-screen-recorder` will only be able to use the `portal` backend until you add `programs.gpu-screen-recorder.enable = true;` to your `configuration.nix` or **home-manager**.
Requires: `meson`, `ninja`, `gcc`, `glslang`, `python-mako`.

---

## Will this change my config?
## Differences from Ambxst

Nope! Besides the source line in your `hyprland.conf`, Ambxst is designed to be non-intrusive. It won't modify any of your existing configurations.
### Architecture

---
| Area | Ambxst | NothingLess |
|------|--------|-------------|
| Compositor settings | ~40 options (border, shadow, blur) | 130+ options across 11 categories |
| Config reload handling | Basic | `configreloaded` event detection with instant bind/settings recovery |

<h2><sub><img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Telegram-Animated-Emojis/main/Activity/Sparkles.webp" alt="Sparkles" width="32" height="32" /></sub> Features</h2>

- [x] Customizable components
- [x] Themes
- [x] System integration
- [x] App launcher
- [x] Clipboard manager
- [x] Quick notes (and not so quick ones)
- [x] Wallpaper manager
- [x] Emoji picker
- [x] [tmux](https://github.com/tmux/tmux) session manager
- [x] System monitor
- [x] Media control
- [x] Notification system
- [x] Wi-Fi manager
- [x] Bluetooth manager
- [x] Audio mixer
- [x] [EasyEffects](https://github.com/wwmm/easyeffects) integration
- [x] Screen capture
- [x] Screen recording
- [x] Color picker
- [x] OCR
- [x] QR and barcode scanner
- [x] "Mirror" (webcam)
- [x] Game mode
- [x] Night mode
- [x] Power profile manager
- [x] AI Assistant
- [x] Weather
- [x] Calendar
- [x] Power menu
- [x] Workspace management
- [x] Support for different layouts (dwindle, master, scrolling, etc.)
- [x] Multi-monitor support
- [x] Customizable keybindings
- [ ] Plugin and extension system
- [ ] Compatibility with other Wayland compositors
### Performance

| Area | Ambxst | NothingLess |
|------|--------|-------------|
| Video wallpaper | mpv-based | QtMultimedia + FFmpeg (hardware-accelerated, lower overhead) |
| Rendering backend | Default | Configurable: OpenGL (default) or Vulkan with threaded render loop |
| GPU optimization | Standard | NVIDIA env vars, GPU texture caching (`GradientCache`) |
| GLSL shaders | Original set | Optimized (reduced draw calls, shared GPU textures) |
| FPS monitoring | Not available | Custom MangoHud integration with real-time notch display |

---

## I need help!
### Design

If you are having trouble or have any questions:
- You can ask anything on [Discord](https://discord.com/invite/gHG9WHyNvH) or in the [GitHub discussions](https://github.com/Axenide/Ambxst/discussions).
- You can open an issue on the [GitHub repository](https://github.com/Axenide/Ambxst/issues).
- The main configuration is located at `~/.config/ambxst`.
| Area | Ambxst | NothingLess |
|------|--------|-------------|
| Typography | Roboto, varied | Ndot (dot-matrix), monospace-first |
| Color scheme | Vibrant themes | Monochrome with subtle red accents |
| Animations | Heavy, ornate | Minimal, functional |
| Branding | Color glyphs | Red + white dot-matrix |

---

## Credits
- [outfoxxed](https://outfoxxed.me/) for creating Quickshell and great documentation!
- [end-4](https://github.com/end-4) for his awesome projects. I learned a lot from them! (And *yoinked* a lot of code, too. 😅)
- [soramane](https://github.com/soramanew) for helping me when I started with Quickshell. (You probably don't remember, but still, heh.)
- [tr1x_em](https://trix.is-a.dev/) for being a great friend and helping me find great tools. You rock!
- [Darsh](https://github.com/its-darsh) for not killing me when I left Fabric. u_u (Also for being a great friend and creating Fabric! Without Fabric, Ax-Shell wouldn't exist, so Ambxst wouldn't either. Thank you!)
- [Mario](https://github.com/mariokhz) for being a great friend and showing me Quickshell!
- [Samouly](https://samouly.is-a.dev/) for being Samouly. :3
- [Brys](https://github.com/brys0) for being his continuous support and for being a great friend!
- [Zen](https://github.com/wer-zen) for being a great friend and helping me when I started with Quickshell too!
- [kh](https://www.youtube.com/watch?v=dQw4w9WgXcQ) for being an awesome human being and listening to my delusions about Ambxst. :D
- And you, the user, for trying out Ambxst! You're awesome! 💖

(If I forgot someone, please let me know. 🙏)

- **Leriart** -- fork maintainer and NothingLess developer
- **Axenide** -- original [Ambxst](https://github.com/Axenide/Ambxst) creator
- **Zack** ([@zackytodearena](https://bsky.app/profile/zackytodearena.bsky.social)) -- logo & animation design
- **outfoxxed** -- creator of [Quickshell](https://git.outfoxxed.me/outfoxxed/quickshell)
- **end-4** -- inspiration from [dots-hyprland](https://github.com/end-4/dots-hyprland)
- **DankMaterialShell** -- design reference from [DMS](https://github.com/AvengeMedia/DankMaterialShell)
- **Noctalia** -- reference from [noctalia-shell](https://github.com/noctalia-dev/noctalia-shell)

---

## License

- NothingLess modifications are provided under the same license as the upstream.
- Ambxst and the Ambxst logo are trademarks of Adriano Tisera (Axenide).
- See [LICENSE](./LICENSE) and [TRADEMARK.md](./assets/nothingless/TRADEMARK.md) for details.

Empty file modified assets/aiproviders/anthropic.svg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified assets/aiproviders/deepseek.svg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified assets/aiproviders/gemini.svg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified assets/aiproviders/github.svg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified assets/aiproviders/google.svg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified assets/aiproviders/groq.svg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified assets/aiproviders/lmstudio.svg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified assets/aiproviders/minimax.svg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified assets/aiproviders/mistral.svg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified assets/aiproviders/ollama.svg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified assets/aiproviders/openai.svg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified assets/aiproviders/openrouter.svg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified assets/aiproviders/perplexity.svg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified assets/aiproviders/xai.svg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading