diff --git a/CHANGELOG.md b/CHANGELOG.md index bc9ce34..e4876c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,3 @@ -# 0.5.1 - - * Try to address Noto Sans font issue that works for both numbers and checkbox/bullets. - * Update icon - * Update French translations - # 0.5 * More Italian translations, thank you @mdaleo404 diff --git a/README.md b/README.md index 475f077..d59f08a 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ report from within the app, or optionally to check for new versions to upgrade t * Data is encrypted at rest * Encryption key is prompted for and never stored, unless user chooses to via Settings - * All changes are version controlled, with ability to view/diff versions, revert or delete revisions + * All changes are version controlled, with ability to view/diff versions and revert * Automatic rendering of basic Markdown syntax * Tabs are supported - right-click on a date from the calendar to open it in a new tab. * Images are supported @@ -66,8 +66,8 @@ report from within the app, or optionally to check for new versions to upgrade t * Automatically generate checkboxes when typing 'TODO' * It is possible to automatically move unchecked checkboxes from the last 7 days to the next weekday. * English, French and Italian locales provided - * Ability to set reminder alarms (which will be flashed as the reminder) - * Ability to log time per day for different projects/activities, pomodoro-style log timer and timesheet reports + * Ability to set reminder alarms in the app against the current line of text (which will be flashed as the reminder) + * Ability to log time per day for different projects/activities and run timesheet reports ## How to install diff --git a/bouquin/fonts/NotoSans-Regular.ttf b/bouquin/fonts/NotoSans-Regular.ttf deleted file mode 100644 index 4bac02f..0000000 Binary files a/bouquin/fonts/NotoSans-Regular.ttf and /dev/null differ diff --git a/bouquin/icons/bouquin-light.svg b/bouquin/icons/bouquin-light.svg new file mode 100644 index 0000000..aa96992 --- /dev/null +++ b/bouquin/icons/bouquin-light.svg @@ -0,0 +1,145 @@ + + Bouquin + + A notebook with a centered B-shaped right edge, a shield and keyhole as the upper hole of a B, + and a green-blue neon version control fork as the lower hole, on a lighter toolbar-friendly background. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bouquin/icons/bouquin.svg b/bouquin/icons/bouquin.svg index e3d5e51..fd5f345 100644 --- a/bouquin/icons/bouquin.svg +++ b/bouquin/icons/bouquin.svg @@ -1,64 +1,145 @@ - - - + + Bouquin + + A notebook with a centered B-shaped right edge, a shield and keyhole as the upper hole of a B, + and a green-blue neon version control fork as the lower hole, with one shorter branch like a git fork. + - - + + + + + + - - + + + + + - + + + + + + + + + + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bouquin/locales/fr.json b/bouquin/locales/fr.json index 8dc0b48..ecb5000 100644 --- a/bouquin/locales/fr.json +++ b/bouquin/locales/fr.json @@ -1,9 +1,9 @@ { "db_sqlcipher_integrity_check_failed": "Échec de la vérification d'intégrité SQLCipher", "db_issues_reported": "problème(s) signalé(s)", - "db_reopen_failed_after_rekey": "Échec de la réouverture après changement de clé", + "db_reopen_failed_after_rekey": "Échec de la réouverture après modification de la clé", "db_version_id_does_not_belong_to_the_given_date": "version_id ne correspond pas à la date indiquée", - "db_key_incorrect": "La clé est probablement incorrecte", + "db_key_incorrect": "La clé est peut-être incorrecte", "db_database_error": "Erreur de base de données", "database_maintenance": "Maintenance de la base de données", "database_compact": "Compacter la base de données", @@ -16,9 +16,9 @@ "reenter_the_new_key": "Saisir de nouveau la nouvelle clé", "key_mismatch": "Les clés ne correspondent pas", "key_mismatch_explanation": "Les deux saisies ne correspondent pas.", - "empty_key": "La clé est vide", + "empty_key": "Clé est vide", "empty_key_explanation": "La clé ne peut pas être vide.", - "key_changed": "La clé a été modifiée", + "key_changed": "Clé modifiée", "key_changed_explanation": "Le bouquin a été rechiffré avec la nouvelle clé !", "error": "Erreur", "success": "Succès", @@ -26,14 +26,13 @@ "find": "Rechercher", "file": "Fichier", "locale": "Langue", - "locale_restart": "Veuillez redémarrer l'application pour appliquer la nouvelle langue.", + "locale_restart": "Veuillez redémarrer l’application pour appliquer la nouvelle langue.", "settings": "Paramètres", "theme": "Thème", "system": "Système", "light": "Clair", "dark": "Sombre", "never": "Jamais", - "close_tab": "Fermer l'onglet", "previous": "Précédent", "previous_day": "Jour précédent", "next": "Suivant", @@ -41,95 +40,68 @@ "today": "Aujourd'hui", "show": "Afficher", "history": "Historique", + "view_history": "Afficher l'historique", "export_accessible_flag": "E&xporter", "export_entries": "Exporter les entrées", "export_complete": "Exportation terminée", - "export_failed": "Échec de l'exportation", + "export_failed": "Échec de l’exportation", "backup": "Sauvegarder", "backup_complete": "Sauvegarde terminée", "backup_failed": "Échec de la sauvegarde", "quit": "Quitter", - "cancel": "Annuler", - "ok": "OK", - "save": "Enregistrer", "help": "Aide", "saved": "Enregistré", "saved_to": "Enregistré dans", "documentation": "Documentation", - "couldnt_open": "Impossible d'ouvrir", + "couldnt_open": "Impossible d’ouvrir", "report_a_bug": "Signaler un bug", "version": "Version", - "update": "Mise à jour", - "check_for_updates": "Rechercher des mises à jour", - "could_not_check_for_updates": "Impossible de vérifier les mises à jour:\n", - "update_server_returned_an_empty_version_string": "Le serveur de mise à jour a renvoyé une chaîne de version vide", - "you_are_running_the_latest_version": "Vous utilisez déjà la dernière version:\n", - "there_is_a_new_version_available": "Une nouvelle version est disponible:\n", - "download_the_appimage": "Télécharger l'AppImage ?", - "downloading": "Téléchargement en cours", - "download_cancelled": "Téléchargement annulé", - "failed_to_download_update": "Échec du téléchargement de la mise à jour:\n", - "could_not_read_bundled_gpg_public_key": "Impossible de lire la clé publique GPG fournie:\n", - "could_not_find_gpg_executable": "Impossible de trouver l'exécutable 'gpg' pour vérifier le téléchargement.", - "gpg_signature_verification_failed": "Échec de la vérification de la signature GPG. Les fichiers téléchargés ont été supprimés.\n\n", - "downloaded_and_verified_new_appimage": "Nouvelle AppImage téléchargée et vérifiée:\n\n", "navigate": "Naviguer", "current": "actuel", "selected": "sélectionné", "find_on_page": "Rechercher dans la page", - "find_next": "Rechercher le suivant", - "find_previous": "Rechercher le précédent", + "find_next": "Rechercher suivant", + "find_previous": "Rechercher précédent", "find_bar_type_to_search": "Tapez pour rechercher", "find_bar_match_case": "Respecter la casse", "history_dialog_preview": "Aperçu", "history_dialog_diff": "Différences", "history_dialog_revert_to_selected": "Revenir à la sélection", "history_dialog_revert_failed": "Échec de la restauration", - "history_dialog_delete": "Supprimer la révision", - "history_dialog_delete_failed": "Impossible de supprimer la révision", "key_prompt_enter_key": "Saisir la clé", "lock_overlay_locked": "Verrouillé", "lock_overlay_unlock": "Déverrouiller", - "main_window_lock_screen_accessibility": "&Verrouiller l'écran", "main_window_ready": "Prêt", "main_window_save_a_version": "Enregistrer une version", "main_window_settings_accessible_flag": "&Paramètres", "set_an_encryption_key": "Définir une clé de chiffrement", "set_an_encryption_key_explanation": "Bouquin chiffre vos données.\n\nVeuillez créer une phrase de passe robuste pour chiffrer le bouquin.\n\nVous pourrez toujours la modifier plus tard !", "unlock_encrypted_notebook": "Déverrouiller le bouquin chiffré", - "unlock_encrypted_notebook_explanation": "Saisir votre clé pour déverrouiller le bouquin", + "unlock_encrypted_notebook_explanation": "Saisissez votre clé pour déverrouiller le bouquin", "open_in_new_tab": "Ouvrir dans un nouvel onglet", "autosave": "enregistrement automatique", "unchecked_checkbox_items_moved_to_next_day": "Les cases non cochées ont été reportées au jour suivant", - "move_unchecked_todos_to_today_on_startup": "Déplacer automatiquement les TODO non cochés\ndes 7 derniers jours vers le prochain jour ouvrable", + "move_unchecked_todos_to_today_on_startup": "Déplacer automatiquement les TODO non cochés au jour suivant", "insert_images": "Insérer des images", "images": "Images", "reopen_failed": "Échec de la réouverture", "unlock_failed": "Échec du déverrouillage", "could_not_unlock_database_at_new_path": "Impossible de déverrouiller la base de données au nouveau chemin.", "unencrypted_export": "Export non chiffré", - "unencrypted_export_warning": "L'exportation de la base de données ne sera pas chiffrée !\nÊtes-vous sûr de vouloir continuer ?\nSi vous voulez une sauvegarde chiffrée, choisissez Sauvegarde plutôt qu'Export.", + "unencrypted_export_warning": "L’export de la base de données ne sera pas chiffré !\nÊtes-vous sûr de vouloir continuer ?\nSi vous voulez une sauvegarde chiffrée, choisissez Sauvegarde plutôt qu’Export.", "unrecognised_extension": "Extension non reconnue !", "backup_encrypted_notebook": "Sauvegarder le bouquin chiffré", "enter_a_name_for_this_version": "Saisir un nom pour cette version", - "new_version_i_saved_at": "Nouvelle version que j'ai enregistrée à", - "appearance": "Apparence", - "security": "Sécurité", - "features": "Fonctionnalités", - "database": "Base de données", - "save_key_warning": "Si vous ne voulez pas que l'on vous demande votre clé de chiffrement, cochez cette case pour la mémoriser.\nAVERTISSEMENT : la clé est enregistrée sur le disque et pourrait être récupérée si votre disque est compromis.", - "lock_screen_when_idle": "Verrouiller l'écran en cas d'inactivité", - "autolock_explanation": "Bouquin verrouillera automatiquement le bouquin après cette durée, après quoi vous devrez ressaisir la clé pour le déverrouiller.\nMettre à 0 (jamais) pour ne jamais verrouiller.", - "font_size": "Taille de police", - "font_size_explanation": "La modification de cette valeur change la taille de tout le texte de paragraphe dans tous les onglets. Cela n'affecte pas la taille des titres ni des blocs de code.", - "search_for_notes_here": "Recherchez des notes ici", + "new_version_i_saved_at": "Nouvelle version que j’ai enregistrée à", + "save_key_warning": "Si vous ne voulez pas que l’on vous demande votre clé de chiffrement, cochez ceci pour la mémoriser.\nAVERTISSEMENT : la clé est enregistrée sur le disque et pourrait être récupérée si votre disque est compromis.", + "lock_screen_when_idle": "Verrouiller l’écran en cas d’inactivité", + "autolock_explanation": "Bouquin verrouillera automatiquement le bouquin après cette durée ; vous devrez alors ressaisir la clé pour le déverrouiller.\nMettre à 0 (jamais) pour ne jamais verrouiller.", + "search_for_notes_here": "Recherchez des notes", "toolbar_format": "Format", "toolbar_bold": "Gras", "toolbar_italic": "Italique", "toolbar_strikethrough": "Barré", - "toolbar_normal_paragraph_text": "Texte de paragraphe normal", - "toolbar_font_smaller": "Texte plus petit", - "toolbar_font_larger": "Texte plus grand", + "toolbar_normal_paragraph_text": "Texte normale", "toolbar_bulleted_list": "Liste à puces", "toolbar_numbered_list": "Liste numérotée", "toolbar_code_block": "Bloc de code", @@ -138,8 +110,8 @@ "tags": "Étiquettes", "tag": "Étiquette", "manage_tags": "Gérer les étiquettes", - "add_tag_placeholder": "Ajouter une étiquette puis appuyez sur Entrée", - "tag_browser_title": "Navigateur d'étiquettes", + "add_tag_placeholder": "Ajouter une étiquette et appuyez sur Entrée", + "tag_browser_title": "Navigateur de étiquettes", "tag_browser_instructions": "Cliquez sur une étiquette pour l'étendre et voir toutes les pages avec cette étiquette. Cliquez sur une date pour l'ouvrir. Sélectionnez une étiquette pour modifier son nom, changer sa couleur ou la supprimer globalement.", "color_hex": "Couleur", "date": "Date", @@ -150,149 +122,15 @@ "delete_tag": "Supprimer l'étiquette", "delete_tag_confirm": "Êtes-vous sûr de vouloir supprimer l'étiquette '{name}' ? Cela la supprimera de toutes les pages.", "tag_already_exists_with_that_name": "Une étiquette portant ce nom existe déjà", - "statistics": "Statistiques", - "main_window_statistics_accessible_flag": "Stat&istiques", - "stats_pages_with_content": "Pages avec contenu (version actuelle)", - "stats_total_revisions": "Nombre total de révisions", - "stats_page_most_revisions": "Page avec le plus de révisions", - "stats_total_words": "Nombre total de mots (versions actuelles)", - "stats_unique_tags": "Étiquettes uniques", - "stats_page_most_tags": "Page avec le plus d'étiquettes", - "stats_activity_heatmap": "Carte de chaleur d'activité", - "stats_heatmap_metric": "Colorer selon", - "stats_metric_words": "Mots", - "stats_metric_revisions": "Révisions", - "stats_no_data": "Aucune statistique disponible pour le moment.", - "select_notebook": "Sélectionner un bouquin", - "bug_report_explanation": "Décrivez ce qui s'est mal passé, ce que vous attendiez et les étapes pour reproduire le problème.\n\nNous ne collectons rien d'autre que le numéro de version de Bouquin.\n\nSi vous souhaitez être contacté, veuillez laisser vos coordonnées.\n\nVotre demande sera envoyée via HTTPS.", - "bug_report_placeholder": "Saisissez votre rapport de bug ici", - "bug_report_empty": "Veuillez saisir quelques détails sur le bug avant l'envoi.", - "bug_report_send_failed": "Impossible d'envoyer le rapport de bug.", - "bug_report_sent_ok": "Rapport de bug envoyé. Merci !", - "send": "Envoyer", - "reminder": "Rappel", - "set_reminder": "Définir le rappel", - "reminder_no_text_fallback": "Vous avez programmé un rappel pour maintenant !", - "invalid_time_title": "Heure invalide", - "invalid_time_message": "Veuillez saisir une heure au format HH:MM", - "dismiss": "Ignorer", - "toolbar_alarm": "Régler l'alarme de rappel", - "activities": "Activités", - "activity": "Activité", - "note": "Note", - "activity_delete_error_message": "Un problème est survenu lors de la suppression de l'activité", - "activity_delete_error_title": "Problème lors de la suppression de l'activité", - "activity_rename_error_message": "Un problème est survenu lors du renommage de l'activité", - "activity_rename_error_title": "Problème lors du renommage de l'activité", - "activity_required_message": "Un nom d'activité est requis", - "activity_required_title": "Nom d'activité requis", - "add_activity": "Ajouter une activité", - "add_project": "Ajouter un projet", - "add_time_entry": "Ajouter une entrée de temps", - "time_period": "Période", - "by_day": "par jour", - "by_month": "par mois", - "by_week": "par semaine", - "date_range": "Plage de dates", - "delete_activity": "Supprimer l'activité", - "delete_activity_confirm": "Êtes-vous sûr de vouloir supprimer cette activité ?", - "delete_activity_title": "Supprimer l'activité - êtes-vous sûr ?", - "delete_project": "Supprimer le projet", - "delete_project_confirm": "Êtes-vous sûr de vouloir supprimer ce projet ?", - "delete_project_title": "Supprimer le projet - êtes-vous sûr ?", - "delete_time_entry": "Supprimer l'entrée de temps", - "group_by": "Grouper par", - "hours": "Heures", - "invalid_activity_message": "L'activité est invalide", - "invalid_activity_title": "Activité invalide", - "invalid_project_message": "Le projet est invalide", - "invalid_project_title": "Projet invalide", - "manage_activities": "Gérer les activités", - "manage_projects": "Gérer les projets", - "manage_projects_activities": "Gérer les activités du projet", - "open_time_log": "Ouvrir le journal de temps", - "project": "Projet", - "project_delete_error_message": "Un problème est survenu lors de la suppression du projet", - "project_delete_error_title": "Problème lors de la suppression du projet", - "project_rename_error_message": "Un problème est survenu lors du renommage du projet", - "project_rename_error_title": "Problème lors du renommage du projet", - "project_required_message": "Un projet est requis", - "project_required_title": "Projet requis", - "projects": "Projets", - "rename_activity": "Renommer l'activité", - "rename_project": "Renommer le projet", - "run_report": "Exécuter le rapport", - "add_activity_title": "Ajouter une activité", - "add_activity_label": "Ajouter une activité", - "rename_activity_label": "Renommer l'activité", - "add_project_title": "Ajouter un projet", - "add_project_label": "Ajouter un projet", - "rename_activity_title": "Renommer cette activité", - "rename_project_label": "Renommer le projet", - "rename_project_title": "Renommer ce projet", - "select_activity_message": "Sélectionner une activité", - "select_activity_title": "Sélectionner une activité", - "select_project_message": "Sélectionner un projet", - "select_project_title": "Sélectionner un projet", - "time_log": "Journal de temps", - "time_log_collapsed_hint": "Journal de temps", - "time_log_date_label": "Date du journal de temps : {date}", - "time_log_for": "Journal de temps pour {date}", - "time_log_no_date": "Journal de temps", - "time_log_no_entries": "Aucune entrée de temps pour l'instant", - "time_log_report": "Rapport de temps", - "time_log_report_title": "Journal de temps pour {project}", - "time_log_report_meta": "Du {start} au {end}, groupé par {granularity}", - "time_log_total_hours": "Total pour la journée : {hours:.2f}h", - "time_log_with_total": "Journal de temps ({hours:.2f}h)", - "update_time_entry": "Mettre à jour l'entrée de temps", - "time_report_total": "Total : {hours:.2f} heures", - "no_report_title": "Aucun rapport", - "no_report_message": "Veuillez exécuter un rapport avant d'exporter.", - "total": "Total", - "export_csv": "Exporter en CSV", - "export_csv_error_title": "Échec de l'exportation", - "export_csv_error_message": "Impossible d'écrire le fichier CSV:\n{error}", - "export_pdf": "Exporter en PDF", - "export_pdf_error_title": "Échec de l'exportation PDF", - "export_pdf_error_message": "Impossible d'écrire le fichier PDF:\n{error}", - "enable_tags_feature": "Activer les étiquettes", - "enable_time_log_feature": "Activer le journal de temps", - "enable_reminders_feature": "Activer les rappels", - "pomodoro_time_log_default_text": "Session de concentration", - "toolbar_pomodoro_timer": "Minuteur de suivi du temps", - "set_code_language": "Définir le langage du code", - "cut": "Couper", - "copy": "Copier", - "paste": "Coller", - "edit_table": "Modifier le tableau", - "toolbar_insert_table": "Insérer un tableau", - "start": "Démarrer", - "pause": "Pause", - "resume": "Reprendre", - "stop_and_log": "Arrêter et enregistrer", - "once": "une fois", - "daily": "quotidien", - "weekdays": "jours de semaine", - "weekly": "hebdomadaire", - "edit_reminder": "Modifier le rappel", - "time": "Heure", - "once_today": "Une fois (aujourd'hui)", - "every_day": "Tous les jours", - "every_weekday": "Tous les jours de semaine (lun-ven)", - "every_week": "Toutes les semaines", - "repeat": "Répéter", - "monday": "Lundi", - "tuesday": "Mardi", - "wednesday": "Mercredi", - "thursday": "Jeudi", - "friday": "Vendredi", - "saturday": "Samedi", - "sunday": "Dimanche", - "day": "Jour", - "add_row": "Ajouter une ligne", - "add_column": "Ajouter une colonne", - "delete_row": "Supprimer la ligne", - "delete_column": "Supprimer la colonne", - "column": "Colonne" + "cut" : "Couper", + "copy" : "Copier", + "paste" : "Coller", + "monday" : "Lundi", + "tuesday" : "Mardi", + "wednesday" : "Mercredi", + "thursday" : "Jeudi", + "friday" : "Vendredi", + "saturday" : "Samedi", + "sunday" : "Dimanche", + "day" : "Jour" } diff --git a/bouquin/main.py b/bouquin/main.py index 958185d..6ef3718 100644 --- a/bouquin/main.py +++ b/bouquin/main.py @@ -17,7 +17,7 @@ def main(): app.setOrganizationName(APP_ORG) # Icon BASE_DIR = Path(__file__).resolve().parent - ICON_PATH = BASE_DIR / "icons" / "bouquin.svg" + ICON_PATH = BASE_DIR / "icons" / "bouquin-light.svg" icon = QIcon(str(ICON_PATH)) app.setWindowIcon(icon) diff --git a/bouquin/markdown_editor.py b/bouquin/markdown_editor.py index 27850f6..c5efa74 100644 --- a/bouquin/markdown_editor.py +++ b/bouquin/markdown_editor.py @@ -42,29 +42,14 @@ class MarkdownEditor(QTextEdit): # We accept plain text, not rich text (markdown is plain text) self.setAcceptRichText(False) - # Load in our preferred fonts + # Normal text base_dir = Path(__file__).resolve().parent - - # Load regular text font (primary) - regular_font_path = base_dir / "fonts" / "NotoSans-Regular.ttf" - regular_font_id = QFontDatabase.addApplicationFont(str(regular_font_path)) - if regular_font_id == -1: - print("Failed to load NotoSans-Regular.ttf") - - # Load Symbols font (fallback) - symbols_font_path = base_dir / "fonts" / "NotoSansSymbols2-Regular.ttf" - symbols_font_id = QFontDatabase.addApplicationFont(str(symbols_font_path)) - symbols_families = QFontDatabase.applicationFontFamilies(symbols_font_id) - self.symbols_font_family = symbols_families[0] - if symbols_font_id == -1: - print("Failed to load NotoSansSymbols2-Regular.ttf") - - # Use the regular Noto Sans family as the editor font - regular_families = QFontDatabase.applicationFontFamilies(regular_font_id) - if regular_families: - self.text_font_family = regular_families[0] - self.qfont = QFont(self.text_font_family, 11) - self.setFont(self.qfont) + font_path = base_dir / "fonts" / "NotoSansSymbols2-Regular.ttf" + font_id = QFontDatabase.addApplicationFont(str(font_path)) + families = QFontDatabase.applicationFontFamilies(font_id) + font_family = families[0] + self.qfont = QFont(font_family, 11) + self.setFont(self.qfont) self._apply_line_spacing() # 1.25× initial spacing diff --git a/bouquin/markdown_highlighter.py b/bouquin/markdown_highlighter.py index caff702..b6d7ac8 100644 --- a/bouquin/markdown_highlighter.py +++ b/bouquin/markdown_highlighter.py @@ -108,13 +108,6 @@ class MarkdownHighlighter(QSyntaxHighlighter): # Bullets self.bullet_format = QTextCharFormat() - # Use Symbols font for checkbox and bullet glyphs if present - if self._editor is not None and hasattr(self._editor, "symbols_font_family"): - base_size = self._editor.qfont.pointSize() - symbols_font = QFont(self._editor.symbols_font_family, base_size) - self.checkbox_format.setFont(symbols_font) - self.bullet_format.setFont(symbols_font) - # Markdown syntax (the markers themselves) - make invisible self.syntax_format = QTextCharFormat() # Make the markers invisible by setting font size to 0.1 points diff --git a/bouquin/version_check.py b/bouquin/version_check.py index e38072c..07a8a41 100644 --- a/bouquin/version_check.py +++ b/bouquin/version_check.py @@ -56,7 +56,7 @@ class VersionChecker: """ Render the SVG logo to a high-DPI-aware QPixmap so it stays crisp. """ - svg_path = Path(__file__).resolve().parent / "icons" / "bouquin.svg" + svg_path = Path(__file__).resolve().parent / "icons" / "bouquin-light.svg" # Logical size (what Qt layouts see) dpr = QGuiApplication.primaryScreen().devicePixelRatio() diff --git a/pyproject.toml b/pyproject.toml index fbea2d7..55a9065 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ pyproject-appimage = "^4.2" [tool.pyproject-appimage] script = "bouquin" output = "Bouquin.AppImage" -icon = "bouquin/icons/bouquin.svg" +icon = "bouquin/icons/bouquin-light.svg" rename-icon = "bouquin.png" desktop-entry = "bouquin.desktop"