Skip to content

Conversation

@harshaaaaaaaaaa
Copy link
Contributor

@harshaaaaaaaaaa harshaaaaaaaaaa commented Jun 7, 2025

Added .desktop actions popover.
Works with :

  • ctrl+D to hide,
  • alt+D to show,
  • alt+D & alt+S to navigate in popover. & few more implementations
  • ctrl + S for favourite toggle
Screencast_20250607_183046.mov

Added libNotify for notification (Added to Favourite)

TO DO

  • Add to favourite symbol
  • App list sort improvement
  • open in next workspace (works but couldn't open new workspace)

@harshaaaaaaaaaa harshaaaaaaaaaa marked this pull request as draft June 7, 2025 11:24
@SoumyaRanjanPatnaik
Copy link
Contributor

Can you resolve the conflicts?

@SoumyaRanjanPatnaik
Copy link
Contributor

Also please un-draft it if it's ready...

@harshaaaaaaaaaa harshaaaaaaaaaa marked this pull request as ready for review July 16, 2025 08:52
@harshaaaaaaaaaa
Copy link
Contributor Author

Can you resolve the conflicts?

Logs shows, it's docker's issue, as the image is unable to fetch details required.

@SoumyaRanjanPatnaik
Copy link
Contributor

Can you resolve the conflicts?

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.

Copy link
Contributor

@SoumyaRanjanPatnaik SoumyaRanjanPatnaik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Preliminary review. Haven't looked at the DesktopAppPage.vala file yet. LMK if you have any queries. Will do a more thorough review later.

- 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
- Create standalone HelpPage class implementing DialogPage interface
- Add comprehensive keybinding documentation with TreeView
- Remove inline help implementation from DialogWindow
Comment on lines 318 to 321
case "clipboard":
dialog_pages[0] = new ClipboardPage ();
dialog_pages[0].initialize.begin(settings, arg_map, entry, this, this.wm_name, this.is_wayland);
break;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove clipboard page.

Comment on lines 351 to 352
dialog_pages[6] = new ClipboardPage ();
dialog_pages[6].initialize.begin(settings, arg_map, entry, this, this.wm_name, this.is_wayland);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be 6 without clipboard page.

return;
}

if (dialog_pages[page_num] is HelpPage) { // On help page
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HelpPage doesn't exist at this point.

src/Util.vala Outdated
Comment on lines 123 to 127
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);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

src/Util.vala Outdated
// 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);
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can skip this check also. We want to minimize the number of checks we do.

src/Util.vala Outdated
Comment on lines 153 to 162
// 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;
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again not sure how this helps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants