Feat. .Desktop Actions#109
Conversation
|
Can you resolve the conflicts? |
|
Also please un-draft it if it's ready... |
Logs shows, it's docker's issue, as the image is unable to fetch details required. |
No like, rebase the branch on top of main. Not talking about the CI failure. Had seen already seen the logs for that. |
SoumyaRanjanPatnaik
left a comment
There was a problem hiding this comment.
Preliminary review. Haven't looked at the DesktopAppPage.vala file yet. LMK if you have any queries. Will do a more thorough review later.
f379a1f to
2b8ba1e
Compare
- Fix incorrect UP/DOWN key code constants (65362/65364 swapped) - Improve cursor positioning after paste operations - Enhance keyboard navigation handling for dialog pages - Add proper Alt+D key event delegation to active pages - Improve dialog resizing for both X11 and Wayland - Add get_wm_name() method to SessionController interface
- Add fuzzy_match_score() function for string matching - Add character sequence matching - Include fuzzy_match() helper with configurable threshold - Replace old compare_desktop_apps sorting logic - Improve search accuracy for application names and keywords
- Implement desktop actions popover accessible via Alt+D - Add favorites system with Ctrl+S toggle and star indicators - Support .desktop file actions and generic actions - Include workspace management for next workspace launches - Integrate fuzzy search with favorites prioritization - Add GSettings storage for favorite apps list - Enhance app sorting to prioritize favorites over launch history
822c815 to
a7772c3
Compare
- Create standalone HelpPage class implementing DialogPage interface - Add comprehensive keybinding documentation with TreeView - Remove inline help implementation from DialogWindow
a7772c3 to
b9ef838
Compare
| case "clipboard": | ||
| dialog_pages[0] = new ClipboardPage (); | ||
| dialog_pages[0].initialize.begin(settings, arg_map, entry, this, this.wm_name, this.is_wayland); | ||
| break; |
There was a problem hiding this comment.
Remove clipboard page.
| dialog_pages[6] = new ClipboardPage (); | ||
| dialog_pages[6].initialize.begin(settings, arg_map, entry, this, this.wm_name, this.is_wayland); |
There was a problem hiding this comment.
Remove clipboard page
| */ | ||
| private int create_all_pages(HashTable<string, string ?> arg_map, string focus_page, ref uint start_page) { | ||
| int page_count = 6; | ||
| int page_count = 7; // increased for clipboard page |
There was a problem hiding this comment.
Should be 6 without clipboard page.
| return; | ||
| } | ||
|
|
||
| if (dialog_pages[page_num] is HelpPage) { // On help page |
There was a problem hiding this comment.
HelpPage doesn't exist at this point.
| if (pos > 0 && (s_lower[pos - 1] == ' ' || s_lower[pos - 1] == '-' || s_lower[pos - 1] == '_')) { | ||
| return 85 + int.min(10, 10 * pattern.length / source.length); | ||
| } | ||
| // Regular substring match - penalize based on position | ||
| return 75 + int.min(10, 15 * pattern.length / source.length) - int.min(10, pos / 3); |
There was a problem hiding this comment.
Refer to my comment on the old commit. See if you can generalize these cases and make the formula more readable. Also is there a specific reason for prioritizing cases with _,- or space?
| // Check for acronym match (first letters of words) | ||
| if (check_acronym_match(s_lower, p_lower)) { | ||
| return 70 + int.min(15, 20 * pattern.length / source.length); | ||
| } |
There was a problem hiding this comment.
You can skip this check also. We want to minimize the number of checks we do.
| // Bonus for matching at the start | ||
| if (j == 0) { | ||
| start_bonus += 10; | ||
| } | ||
|
|
||
| // Bonus for matching at word boundaries | ||
| if (j > 0 && (s_lower[j - 1] == ' ' || s_lower[j - 1] == '-' || s_lower[j - 1] == '_')) { | ||
| word_boundary_bonus += 5; | ||
| } | ||
|
|
There was a problem hiding this comment.
Again not sure how this helps.
9ec7749 to
d6308c8
Compare
Added .desktop actions popover.
Works with :
Screencast_20250607_183046.mov
Added libNotify for notification (Added to Favourite)
TO DO