534 Commits

Author SHA1 Message Date
tototo31 8754b327c3 GUI: Add Sreen Settings shortcut to Control Center brightness click (#487)
* Enhance momentum app to support command line arguments for scene navigation and add RGB settings event to desktop lock menu.

* Rename to ScreenSettings

* Format

* Update changelog

* ugh

* ugh

* Update changelog again

---------

Co-authored-by: tototo31 <Recipient7966@proton.me>
Co-authored-by: WillyJL <me@willyjl.dev>
2025-11-30 01:47:20 +01:00
WillyJL 5d5fa5e9aa Merge branch 'feat/nfc-type-4-final' into mntm-dev 2025-10-06 01:32:15 +02:00
MMX 30077dd512 Fix PVS warnings (#4277)
* Fixing PVS warns

* pvs: additional fixes

---------

Co-authored-by: hedger <hedger@nanode.su>
2025-09-24 21:00:39 +04:00
Alexander Bays 0e3e1b352b Desktop / MNTM Settings: Directories and generic files support for Keybinds / Main Menu (#331)
* feat(Desktop): Directories support for keybinds

- Adds *RIGHT* button select in the file browser dialogs and changing the `Open File` action to `Open File/Directory` in `Settings > Desktop > Keybinds Setup`. This adds the ability to open to any directory in the Archive app, in addition to the default behavior of opening a file in it's default app.

* line order mixup

* Main Menu: Allow adding JS files (or any file)

- Normal files and directories are now able to be added to then main menu and are run in their appropriate apps.
- e.g. .txt files shown in text viewer, .js files are run in the JS Runner app, and folders are navigated to by the Archive app. All similar to the desktop keybinds functionality.
- Icons are also assigned appropriately based on the extensions, though more could probably be added to the `loader_menu_get_ext_icon` function.
- Also replaced some of the long arduous is_dir checks and just used the `storage_dir_exists` function since its already there and does the same.

* should be checking `ext` for NULL

* Move select_right at end of structs for binary compatibility

apps may blindly reach into these structs so need to keep the basics in same structure

for DialogsFileBrowserOptions this is even in public api and after compilation this would be incompatible with other firmwares even without reaching into private structs

* Select menu item / folder for directories too

* Move api below too

* Keep ofw order here too

* Refactor starting archive into desktop, less FuriString passing around

* Dont leave main menu when launching archive

* Simplify/fix a few things

* Handle folders in run_with_default_app()

* Update App -> Item naming in MNTM settings

* Fix build

* Explain pressing right

* Update changelog

---------

Co-authored-by: WillyJL <me@willyjl.dev>
2025-07-22 01:51:33 +00:00
Aaron Tulino 4f014a630a Desktop: Fix lock screen hang (#438)
* Fix lock screen hang
See #438

* Desktop: Dont delay screen off at boot

* Update changelog

* Revert "Desktop: Dont delay screen off at boot"

This reverts commit ff43264258.

* Update changelog

* Format

---------

Co-authored-by: WillyJL <me@willyjl.dev>
2025-07-20 00:50:16 +00:00
Aaron Tulino b33456d243 MNTM Settings: Add Skip Sliding Animations option for Lockscreen (#436)
* Add Fast Lock/Unlock
The cover animation takes time and blocks input while animating, so add options to skip the animations.

* Combine options into "Skip Sliding Animation"

* Update changelog

* Wording

---------

Co-authored-by: WillyJL <me@willyjl.dev>
2025-07-20 00:46:11 +00:00
Alexander Bays 16fb7e44df GUI: Checkerboard overlay behind popup elements (#380)
* GUI: Checkerboard overlay behind popup elements

Adds setting 'Popup Overlay' (default ON) which draws a checkerboard pattern behind popups, like the Archive actions menu, keypad/pin lock modal, and the varitemlist locked message. Gives the illusion of separation from the popup element and the background content and is an aesthetic improvement.

* Refactor

* Update changelog

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2025-04-13 03:59:28 +01:00
Willy-JL 49d7ce7349 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-04-12 10:36:13 +01:00
Anna Antonenko 6b5d006690 [FL-3953] Application chaining (#4105)
* feat: app chaining

* add `launch_current_app_after_deferred`, remove `get_referring_application`

* fix naming

* new api

* fix f18

* fix deferred launches after errors

* fix: memory leak

* Updater: MIN_GAP_PAGES = 0

* loader: loader_get_application_launch_path doc

* loader: fix freeze

* loader: reject mlib, reduce code size

* loader: generic synchronous call, reduce size

* loader: reject furi_string, reduce size

* apps: debug: removed order field from manifests since it is no longer meaningful

---------

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Co-authored-by: hedger <hedger@nanode.su>
2025-04-05 20:22:05 +04:00
Anna Antonenko 7192c9e68b [FL-3965] Separate cli_shell into toolbox (#4175)
* cli_shell: separate into toolbox

* fix: cmd flags

* fix formatting

* cli: increase default stack depth

* cli_shell: fix loader lock logic

* cli: fix command flags

* fix f18

* speaker_debug: fix

* cli_registry: fix docs

* ufbt: rename cli target back

* cli: rename app and record

* cli: fix and simplify help command

* cli_master_shell: fix ext commands

* fix formatting

* cli: rename master to main

* fix formatting

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>
2025-04-05 02:58:58 +04:00
Willy-JL e7fd9a43cc CLI: Fix VCP with lock on boot + allow locked RPC 2025-04-04 14:57:46 +01:00
Anna Antonenko 5dcf6b55ef [FL-3928, FL-3929] CLI commands in fals and threads (#4116)
* feat: FuriThread stdin

* ci: fix f18

* feat: stdio callback context

* feat: FuriPipe

* POTENTIALLY EXPLOSIVE pipe welding

* fix: non-explosive welding

* Revert welding

* docs: furi_pipe

* feat: pipe event loop integration

* update f18 sdk

* f18

* docs: make doxygen happy

* fix: event loop not triggering when pipe attached to stdio

* fix: partial stdout in pipe

* allow simultaneous in and out subscription in event loop

* feat: vcp i/o

* feat: cli ansi stuffs and history

* feat: more line editing

* working but slow cli rewrite

* restore previous speed after 4 days of debugging 🥲

* fix: cli_app_should_stop

* fix: cli and event_loop memory leaks

* style: remove commented out code

* ci: fix pvs warnings

* fix: unit tests, event_loop crash

* ci: fix build

* ci: silence pvs warning

* feat: cli gpio

* ci: fix formatting

* Fix memory leak during event loop unsubscription

* Event better memory leak fix

* feat: cli completions

* Merge remote-tracking branch 'origin/dev' into portasynthinca3/3928-cli-threads

* merge fixups

* temporarily exclude speaker_debug app

* pvs and unit tests fixups

* feat: commands in fals

* move commands out of flash, code cleanup

* ci: fix errors

* fix: run commands in buffer when stopping session

* speedup cli file transfer

* fix f18

* separate cli_shell into modules

* fix pvs warning

* fix qflipper refusing to connect

* remove temp debug logs

* remove erroneous conclusion

* Fix memory leak during event loop unsubscription

* Event better memory leak fix

* unit test for the fix

* improve thread stdio callback signatures

* pipe stdout timeout

* update api symbols

* fix f18, formatting

* fix pvs warnings

* increase stack size, hope to fix unit tests

* cli completions

* more key combos

* commands in fals

* move commands out of flash

* ci: fix errors

* speedup cli file transfer

* merge fixups

* fix f18

* cli: revert flag changes

* cli: fix formatting

* cli, fbt: loopback perf benchmark

* thread, event_loop: subscribing to thread flags

* cli: signal internal events using thread flags, improve performance

* fix f18, formatting

* event_loop: fix crash

* storage_cli: increase write_chunk buffer size again

* cli: explanation for order=0

* thread, event_loop: thread flags callback refactor

* cli: increase stack size

* cli: rename cli_app_should_stop -> cli_is_pipe_broken_or_is_etx_next_char

* cli: use plain array instead of mlib for history

* cli: prepend file name to static fns

* cli: fix formatting

* cli_shell: increase stack size

* cli_shell: give up pipe to command thread

* fix formatting

* fix: format

* fix merge

* fix. merge.

* cli_shell: fix detach ordering

* desktop: record_cli -> record_cli_vcp

* cli: fix spelling, reload/remove ext cmds on card mount/unmount

* cli: fix race conditions and formatting

* scripts: wait for CTS to go high before starting flipper

* scripts: better race condition fix

* REVERT THIS: test script race condition fix

* Revert "REVERT THIS: test script race condition fix"

This reverts commit 3b028d29b07212755872c5706c8c6a58be551636.

* REVERT THIS: test script fix

* scripts: sleep?

* cli: updated oplist for CliCommandTree

* Revert "REVERT THIS: test script fix"

This reverts commit e9846318549ce092ef422ff97522ba51916163be.

* cli: mention memory leak in FL ticket

---------

Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com>
Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: hedger <hedger@nanode.su>
2025-04-03 21:39:53 +04:00
Willy-JL 7f46fe5d5c Merge remote-tracking branch 'ofw/dev' into mntm-dev --nobuild 2025-04-03 06:19:15 +01:00
Anna Antonenko 13333edd30 [FL-3954, FL-3955] New CLI architecture (#4111)
* feat: FuriThread stdin

* ci: fix f18

* feat: stdio callback context

* feat: FuriPipe

* POTENTIALLY EXPLOSIVE pipe welding

* fix: non-explosive welding

* Revert welding

* docs: furi_pipe

* feat: pipe event loop integration

* update f18 sdk

* f18

* docs: make doxygen happy

* fix: event loop not triggering when pipe attached to stdio

* fix: partial stdout in pipe

* allow simultaneous in and out subscription in event loop

* feat: vcp i/o

* feat: cli ansi stuffs and history

* feat: more line editing

* working but slow cli rewrite

* restore previous speed after 4 days of debugging 🥲

* fix: cli_app_should_stop

* fix: cli and event_loop memory leaks

* style: remove commented out code

* ci: fix pvs warnings

* fix: unit tests, event_loop crash

* ci: fix build

* ci: silence pvs warning

* feat: cli gpio

* ci: fix formatting

* Fix memory leak during event loop unsubscription

* Event better memory leak fix

* feat: cli completions

* Merge remote-tracking branch 'origin/dev' into portasynthinca3/3928-cli-threads

* merge fixups

* temporarily exclude speaker_debug app

* pvs and unit tests fixups

* feat: commands in fals

* move commands out of flash, code cleanup

* ci: fix errors

* fix: run commands in buffer when stopping session

* speedup cli file transfer

* fix f18

* separate cli_shell into modules

* fix pvs warning

* fix qflipper refusing to connect

* remove temp debug logs

* remove erroneous conclusion

* Fix memory leak during event loop unsubscription

* Event better memory leak fix

* unit test for the fix

* improve thread stdio callback signatures

* pipe stdout timeout

* update api symbols

* fix f18, formatting

* fix pvs warnings

* increase stack size, hope to fix unit tests

* cli: revert flag changes

* cli: fix formatting

* cli, fbt: loopback perf benchmark

* thread, event_loop: subscribing to thread flags

* cli: signal internal events using thread flags, improve performance

* fix f18, formatting

* event_loop: fix crash

* storage_cli: increase write_chunk buffer size again

* cli: explanation for order=0

* thread, event_loop: thread flags callback refactor

* cli: increase stack size

* cli: rename cli_app_should_stop -> cli_is_pipe_broken_or_is_etx_next_char

* cli: use plain array instead of mlib for history

* cli: prepend file name to static fns

* cli: fix formatting

* cli_shell: increase stack size

* cli: fix rpc lockup

* cli: better lockup fix

* cli: fix f18

* fix merge

---------

Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com>
Co-authored-by: あく <alleteam@gmail.com>
2025-04-02 22:10:10 +04:00
Alexander Bays adc66d78da Clock: 12 hour "midnight format" (#341)
* Clock: 12 hour midnight format

- References #317 and adds the options `12:XX` and `00:XX` in `Settings > System > Midnight Format` to display the preferred clock format past midnight on all clocks (Desktop, Main Menu MNTM style, Lock screen and Nightstand clock app). "12:30 AM" -> "00:30" OR "12:30".

* Fix: Move midnight format setting out of furi_rtc

- Also felt like the midnight format setting was too out of place in `MNTM > Interface` with the 5 other submenu entries, so I put it in Misc for now.

* clock app external

* Moved midnight format setting into new `Interface > General`

* Update applications/main/momentum_app/scenes/momentum_app_scene_interface_general.c

* Update changelog

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2025-03-02 04:20:38 +00:00
Willy-JL 2242176a88 Asset Packs: Fix level-up anims not being themed 2025-02-06 01:05:06 +00:00
Willy-JL c4d1328acc Lock on boot by default if SD is missing
Setting defaults to ON, so removing SD card will lock on boot if PIN is set
Also changes that lock on boot will not apply if PIN is not set (what if no PIN set and no SD card, then lock keypad always? bad idea)
2025-02-05 02:10:54 +00:00
Willy-JL 69e9423712 Prevent autolock based on RPC too --nobuild 2025-02-05 01:58:32 +00:00
Willy-JL 8553132b71 Merge remote-tracking branch 'ul/dev' into mntm-dev 2025-02-05 01:57:25 +00:00
Dmitry422 e809e3ddbb Cosmetic menu changes 2025-01-17 13:12:20 +07:00
Dmitry422 0a2b47c7e1 Autolock disarm by active USB connection instead of USB charging connection. 2025-01-17 12:12:27 +07:00
MX 633f5d7c57 fbt format and naming fix 2025-01-15 17:23:38 +03:00
MX 1666c4d04f upd settings to see release version only and current 2025-01-15 00:42:43 +03:00
Dmitry422 cf50875c5c *POWER*
- serice:
    renamed function and variable
- settings:
    add test value 5 sec for auto_power_off timer

*DESKTOP*
- settings|service
    add USB_inhibit for desktop_auto_lock
    (dont autolock desktop with different condition)
    PS. RPC condition now working now.
2025-01-15 01:33:49 +07:00
Dmitry422 c73495767c Auto_poweroff option moved from desktop to power.
Add settings for power service (load|save).
2025-01-14 02:01:54 +07:00
Alexander Bays 34379f1fbe Lockscreen: Separate 'Allow RPC While Locked' for USB/BLE (#343)
* Lockscreen: Separate 'Allow RPC While Locked' for USB/Bluetooth (BLE)

- #330, split of the `allow_locked_rpc_commands` bool into `allow_locked_rpc_usb` and `allow_locked_rpc_ble` to allow the connections separately.

* Shorter wording

* Update changelog

---------

Co-authored-by: Willy-JL <49810075+Willy-JL@users.noreply.github.com>
2025-01-13 02:40:36 +00:00
Willy-JL f4777e0424 Merge remote-tracking branch 'ul/dev' into mntm-dev 2025-01-11 05:13:52 +00:00
MX 1a95757a75 upd changelog 2024-12-24 14:23:07 +03:00
MX 7fc34db57b use event system 2024-12-24 14:04:34 +03:00
MX 38326877ea add input events sub check [ci skip] 2024-12-23 19:19:12 +03:00
MX 306b728587 fix wrong order 2024-12-08 13:39:34 +03:00
MX 53fa3f85b3 upd changelog 2024-12-06 12:51:06 +03:00
MX c9bc05199e add auto power off timer setting [ci skip]
by @Dmitry422 with little fixes by @xMasterX
2024-12-06 12:18:51 +03:00
MX 8d2476733e Merge remote-tracking branch 'OFW/dev' into dev 2024-10-16 18:21:22 +03:00
porta c2c288b9ad [FL-3916] Require PIN on boot (#3952)
Co-authored-by: hedger <hedger@users.noreply.github.com>
2024-10-16 16:12:58 +01:00
Willy-JL 8b8d3b2833 Merge remote-tracking branch 'ul/dev' into mntm-dev 2024-09-27 01:48:29 +01:00
MX e407c623e0 Revert "Merge remote-tracking branch 'OFW/portasynthinca3/3332-autolock-fixes' into dev"
This reverts commit ba4c4e528a, reversing
changes made to 16e4b9219a.
2024-09-26 21:58:50 +03:00
Willy-JL 62ce89e41e Merge remote-tracking branch 'ul/dev' into mntm-dev 2024-09-24 05:47:20 +01:00
MX ba4c4e528a Merge remote-tracking branch 'OFW/portasynthinca3/3332-autolock-fixes' into dev 2024-09-21 03:54:08 +03:00
Anna Antonenko 1a9aca2d8c fix: always autolock if pin set 2024-09-16 17:11:31 +03:00
Anna Antonenko 15b271bd92 fix: cli autolock inhibit 2024-09-16 16:27:24 +03:00
MX 6911ba12ad Merge remote-tracking branch 'OFW/dev' into dev 2024-09-07 22:31:11 +03:00
Willy-JL 2b5b6543d6 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-09-07 19:14:22 +02:00
Silent 8672a1d94c Replace all calls to strncpy with strlcpy, use strdup more, expose strlcat (#3866)
strlcpy doesn't zero the buffer and ensures null termination,
just like snprintf

strlcat is already used by mjs and it's a safe alternative to strcat,
so it should be OK to expose to apps
2024-09-07 17:16:56 +01:00
Willy-JL cb0798cdc3 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-09-06 23:09:48 +02:00
Willy-JL 5901fa4844 Add explanation 2024-09-06 18:29:47 +02:00
MX 2927e211a7 Merge remote-tracking branch 'OFW/dev' into dev 2024-09-06 12:40:06 +03:00
WillyJL 4fd76524c9 Desktop: Sanity check PIN length for good measure (#3879)
* Desktop: Sanity check PIN length for good measure
* Desktop: replace hardcoded values with macros in desktop_view_pin_input.c

Co-authored-by: あく <alleteam@gmail.com>
2024-09-06 10:33:17 +01:00
Willy-JL f438199c4a Desktop: Poweroff fallback when app unavailable (#208) 2024-09-06 04:42:25 +02:00
Willy-JL dd7cd8f487 Desktop: Fix PIN locked with no PIN set edge case 2024-09-02 00:45:59 +02:00