Add .desktop file, icons
This commit is contained in:
parent
2a78027afc
commit
6becae6eac
6 changed files with 305 additions and 0 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
# Bouquin
|
# Bouquin
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
|
|
|
||||||
5
bouquin.desktop
Normal file
5
bouquin.desktop
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
Name=Bouquin
|
||||||
|
Exec=Bouquin.AppImage
|
||||||
|
Categories=Office;TextEditor
|
||||||
145
bouquin/icons/bouquin-light.svg
Normal file
145
bouquin/icons/bouquin-light.svg
Normal file
|
|
@ -0,0 +1,145 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-labelledby="title desc">
|
||||||
|
<title id="title">Bouquin</title>
|
||||||
|
<desc id="desc">
|
||||||
|
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.
|
||||||
|
</desc>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<!-- Lighter background gradient for toolbar use -->
|
||||||
|
<linearGradient id="bgGrad" x1="0" y1="0" x2="0" y2="1">
|
||||||
|
<stop offset="0%" stop-color="#e5f2ff"/> <!-- very light blue -->
|
||||||
|
<stop offset="100%" stop-color="#cbd5f5"/> <!-- soft indigo-ish -->
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
<!-- Shield gradient -->
|
||||||
|
<linearGradient id="shieldGrad" x1="0" y1="0" x2="0" y2="1">
|
||||||
|
<stop offset="0%" stop-color="#22c55e"/>
|
||||||
|
<stop offset="100%" stop-color="#14b8a6"/>
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
<!-- Version control neon stroke gradient (used for all segments) -->
|
||||||
|
<linearGradient id="vcGradAll" x1="0" y1="0" x2="1" y2="1">
|
||||||
|
<stop offset="0%" stop-color="#6ee7b7"/> <!-- mint green -->
|
||||||
|
<stop offset="35%" stop-color="#22c55e"/> <!-- bright green -->
|
||||||
|
<stop offset="75%" stop-color="#38bdf8"/> <!-- teal-blue -->
|
||||||
|
<stop offset="100%" stop-color="#0ea5e9"/> <!-- blue neon -->
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
<!-- Soft glow for version control lines -->
|
||||||
|
<filter id="vcGlow" x="-50%" y="-50%" width="200%" height="200%">
|
||||||
|
<feGaussianBlur stdDeviation="3" result="blur"/>
|
||||||
|
<feColorMatrix
|
||||||
|
in="blur"
|
||||||
|
type="matrix"
|
||||||
|
values="
|
||||||
|
0 0 0 0 0.30
|
||||||
|
0 0 0 0 0.90
|
||||||
|
0 0 0 0 0.85
|
||||||
|
0 0 0 0.85 0" />
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<!-- Background rounded square (now light) -->
|
||||||
|
<rect x="32" y="32" width="448" height="448" rx="96" ry="96"
|
||||||
|
fill="url(#bgGrad)" stroke="#94a3b8" stroke-width="2"/>
|
||||||
|
|
||||||
|
<!-- Notebook body with centered, deeper B-like indent on the right edge -->
|
||||||
|
<path
|
||||||
|
d="
|
||||||
|
M 148 96
|
||||||
|
H 360
|
||||||
|
Q 384 96 384 120
|
||||||
|
V 224
|
||||||
|
Q 304 256 384 288
|
||||||
|
V 392
|
||||||
|
Q 384 416 360 416
|
||||||
|
H 148
|
||||||
|
Q 128 416 128 396
|
||||||
|
V 116
|
||||||
|
Q 128 96 148 96
|
||||||
|
Z
|
||||||
|
"
|
||||||
|
fill="#202738"
|
||||||
|
stroke="#3a4254"
|
||||||
|
stroke-width="4"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- Notebook spine -->
|
||||||
|
<rect x="128" y="96" width="20" height="320" rx="12" ry="12" fill="#3ddc97"/>
|
||||||
|
|
||||||
|
<!-- Shield + keyhole (upper "hole" of the B) -->
|
||||||
|
<g transform="translate(0,-56)">
|
||||||
|
<!-- Shield -->
|
||||||
|
<path d="M 256 180 L 296 196 L 296 244 C 296 269 281 296 256 308 C 231 296 216 269 216 244 L 216 196 Z"
|
||||||
|
fill="url(#shieldGrad)" stroke="#0f172a" stroke-width="4"/>
|
||||||
|
|
||||||
|
<!-- Keyhole -->
|
||||||
|
<circle cx="256" cy="216" r="10" fill="#020617"/>
|
||||||
|
<rect x="248" y="226" width="16" height="26" rx="8" ry="8" fill="#020617"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<!-- Version control graph: lower "hole" of the B with green-blue neon -->
|
||||||
|
<!-- Glow layer behind -->
|
||||||
|
<g transform="translate(0,-66)"
|
||||||
|
stroke="#22c55e" stroke-width="4" fill="#22c55e" opacity="0.6"
|
||||||
|
filter="url(#vcGlow)">
|
||||||
|
<!-- Short stem under shield -->
|
||||||
|
<path d="M 256 318 L 256 332" fill="none" stroke-linecap="round"/>
|
||||||
|
|
||||||
|
<!-- Root node -->
|
||||||
|
<circle cx="256" cy="332" r="7"/>
|
||||||
|
|
||||||
|
<!-- Left branch (shorter) -->
|
||||||
|
<path d="M 256 332 L 236 360" fill="none"
|
||||||
|
stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M 236 360 L 236 395" fill="none"
|
||||||
|
stroke-linecap="round"/>
|
||||||
|
|
||||||
|
<!-- Center branch (longest) -->
|
||||||
|
<path d="M 256 332 L 256 422" fill="none"
|
||||||
|
stroke-linecap="round"/>
|
||||||
|
|
||||||
|
<!-- Right branch (medium) -->
|
||||||
|
<path d="M 256 332 L 276 360" fill="none"
|
||||||
|
stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M 276 360 L 276 410" fill="none"
|
||||||
|
stroke-linecap="round"/>
|
||||||
|
|
||||||
|
<!-- Leaf nodes -->
|
||||||
|
<circle cx="236" cy="395" r="8"/>
|
||||||
|
<circle cx="256" cy="422" r="8"/>
|
||||||
|
<circle cx="276" cy="410" r="8"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<!-- Main neon gradient strokes on top -->
|
||||||
|
<g transform="translate(0,-66)"
|
||||||
|
stroke="url(#vcGradAll)" stroke-width="4.5" fill="#bbf7d0" opacity="1">
|
||||||
|
<!-- Short stem under shield -->
|
||||||
|
<path d="M 256 318 L 256 332" fill="none" stroke-linecap="round"/>
|
||||||
|
|
||||||
|
<!-- Root node -->
|
||||||
|
<circle cx="256" cy="332" r="7"/>
|
||||||
|
|
||||||
|
<!-- Left branch (shorter) -->
|
||||||
|
<path d="M 256 332 L 236 360" fill="none"
|
||||||
|
stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M 236 360 L 236 395" fill="none"
|
||||||
|
stroke-linecap="round"/>
|
||||||
|
|
||||||
|
<!-- Center branch (longest) -->
|
||||||
|
<path d="M 256 332 L 256 422" fill="none"
|
||||||
|
stroke-linecap="round"/>
|
||||||
|
|
||||||
|
<!-- Right branch (medium) -->
|
||||||
|
<path d="M 256 332 L 276 360" fill="none"
|
||||||
|
stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M 276 360 L 276 410" fill="none"
|
||||||
|
stroke-linecap="round"/>
|
||||||
|
|
||||||
|
<!-- Leaf nodes -->
|
||||||
|
<circle cx="236" cy="395" r="8"/>
|
||||||
|
<circle cx="256" cy="422" r="8"/>
|
||||||
|
<circle cx="276" cy="410" r="8"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.8 KiB |
145
bouquin/icons/bouquin.svg
Normal file
145
bouquin/icons/bouquin.svg
Normal file
|
|
@ -0,0 +1,145 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-labelledby="title desc">
|
||||||
|
<title id="title">Bouquin</title>
|
||||||
|
<desc id="desc">
|
||||||
|
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.
|
||||||
|
</desc>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<!-- Background gradient -->
|
||||||
|
<linearGradient id="bgGrad" x1="0" y1="0" x2="0" y2="1">
|
||||||
|
<stop offset="0%" stop-color="#101622"/>
|
||||||
|
<stop offset="100%" stop-color="#151b2b"/>
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
<!-- Shield gradient -->
|
||||||
|
<linearGradient id="shieldGrad" x1="0" y1="0" x2="0" y2="1">
|
||||||
|
<stop offset="0%" stop-color="#22c55e"/>
|
||||||
|
<stop offset="100%" stop-color="#14b8a6"/>
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
<!-- Version control neon stroke gradient (used for all segments) -->
|
||||||
|
<linearGradient id="vcGradAll" x1="0" y1="0" x2="1" y2="1">
|
||||||
|
<stop offset="0%" stop-color="#6ee7b7"/> <!-- mint green -->
|
||||||
|
<stop offset="35%" stop-color="#22c55e"/> <!-- bright green -->
|
||||||
|
<stop offset="75%" stop-color="#38bdf8"/> <!-- teal-blue -->
|
||||||
|
<stop offset="100%" stop-color="#0ea5e9"/> <!-- blue neon -->
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
<!-- Soft glow for version control lines -->
|
||||||
|
<filter id="vcGlow" x="-50%" y="-50%" width="200%" height="200%">
|
||||||
|
<feGaussianBlur stdDeviation="3" result="blur"/>
|
||||||
|
<feColorMatrix
|
||||||
|
in="blur"
|
||||||
|
type="matrix"
|
||||||
|
values="
|
||||||
|
0 0 0 0 0.30
|
||||||
|
0 0 0 0 0.90
|
||||||
|
0 0 0 0 0.85
|
||||||
|
0 0 0 0.85 0" />
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<!-- Background rounded square -->
|
||||||
|
<rect x="32" y="32" width="448" height="448" rx="96" ry="96" fill="url(#bgGrad)"/>
|
||||||
|
|
||||||
|
<!-- Notebook body with centered, deeper B-like indent on the right edge -->
|
||||||
|
<path
|
||||||
|
d="
|
||||||
|
M 148 96
|
||||||
|
H 360
|
||||||
|
Q 384 96 384 120
|
||||||
|
V 224
|
||||||
|
Q 304 256 384 288
|
||||||
|
V 392
|
||||||
|
Q 384 416 360 416
|
||||||
|
H 148
|
||||||
|
Q 128 416 128 396
|
||||||
|
V 116
|
||||||
|
Q 128 96 148 96
|
||||||
|
Z
|
||||||
|
"
|
||||||
|
fill="#202738"
|
||||||
|
stroke="#3a4254"
|
||||||
|
stroke-width="4"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- Notebook spine -->
|
||||||
|
<rect x="128" y="96" width="20" height="320" rx="12" ry="12" fill="#3ddc97"/>
|
||||||
|
|
||||||
|
<!-- Shield + keyhole (upper "hole" of the B) -->
|
||||||
|
<g transform="translate(0,-56)">
|
||||||
|
<!-- Shield -->
|
||||||
|
<path d="M 256 180 L 296 196 L 296 244 C 296 269 281 296 256 308 C 231 296 216 269 216 244 L 216 196 Z"
|
||||||
|
fill="url(#shieldGrad)" stroke="#0f172a" stroke-width="4"/>
|
||||||
|
|
||||||
|
<!-- Keyhole -->
|
||||||
|
<circle cx="256" cy="216" r="10" fill="#020617"/>
|
||||||
|
<rect x="248" y="226" width="16" height="26" rx="8" ry="8" fill="#020617"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<!-- Version control graph: lower "hole" of the B with green-blue neon -->
|
||||||
|
<!-- Glow layer behind -->
|
||||||
|
<g transform="translate(0,-66)"
|
||||||
|
stroke="#22c55e" stroke-width="4" fill="#22c55e" opacity="0.6"
|
||||||
|
filter="url(#vcGlow)">
|
||||||
|
<!-- Short stem under shield -->
|
||||||
|
<path d="M 256 318 L 256 332" fill="none" stroke-linecap="round"/>
|
||||||
|
|
||||||
|
<!-- Root node -->
|
||||||
|
<circle cx="256" cy="332" r="7"/>
|
||||||
|
|
||||||
|
<!-- Left branch (shorter) -->
|
||||||
|
<path d="M 256 332 L 236 360" fill="none"
|
||||||
|
stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M 236 360 L 236 395" fill="none"
|
||||||
|
stroke-linecap="round"/>
|
||||||
|
|
||||||
|
<!-- Center branch (longest) -->
|
||||||
|
<path d="M 256 332 L 256 422" fill="none"
|
||||||
|
stroke-linecap="round"/>
|
||||||
|
|
||||||
|
<!-- Right branch (medium) -->
|
||||||
|
<path d="M 256 332 L 276 360" fill="none"
|
||||||
|
stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M 276 360 L 276 410" fill="none"
|
||||||
|
stroke-linecap="round"/>
|
||||||
|
|
||||||
|
<!-- Leaf nodes -->
|
||||||
|
<circle cx="236" cy="395" r="8"/>
|
||||||
|
<circle cx="256" cy="422" r="8"/>
|
||||||
|
<circle cx="276" cy="410" r="8"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<!-- Main neon gradient strokes on top -->
|
||||||
|
<g transform="translate(0,-66)"
|
||||||
|
stroke="url(#vcGradAll)" stroke-width="4.5" fill="#bbf7d0" opacity="1">
|
||||||
|
<!-- Short stem under shield -->
|
||||||
|
<path d="M 256 318 L 256 332" fill="none" stroke-linecap="round"/>
|
||||||
|
|
||||||
|
<!-- Root node -->
|
||||||
|
<circle cx="256" cy="332" r="7"/>
|
||||||
|
|
||||||
|
<!-- Left branch (shorter) -->
|
||||||
|
<path d="M 256 332 L 236 360" fill="none"
|
||||||
|
stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M 236 360 L 236 395" fill="none"
|
||||||
|
stroke-linecap="round"/>
|
||||||
|
|
||||||
|
<!-- Center branch (longest) -->
|
||||||
|
<path d="M 256 332 L 256 422" fill="none"
|
||||||
|
stroke-linecap="round"/>
|
||||||
|
|
||||||
|
<!-- Right branch (medium) -->
|
||||||
|
<path d="M 256 332 L 276 360" fill="none"
|
||||||
|
stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M 276 360 L 276 410" fill="none"
|
||||||
|
stroke-linecap="round"/>
|
||||||
|
|
||||||
|
<!-- Leaf nodes -->
|
||||||
|
<circle cx="236" cy="395" r="8"/>
|
||||||
|
<circle cx="256" cy="422" r="8"/>
|
||||||
|
<circle cx="276" cy="410" r="8"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
|
||||||
|
After Width: | Height: | Size: 4.7 KiB |
|
|
@ -1,7 +1,9 @@
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
from PySide6.QtWidgets import QApplication
|
from PySide6.QtWidgets import QApplication
|
||||||
|
from PySide6.QtGui import QIcon
|
||||||
|
|
||||||
from .settings import APP_NAME, APP_ORG, get_settings
|
from .settings import APP_NAME, APP_ORG, get_settings
|
||||||
from .main_window import MainWindow
|
from .main_window import MainWindow
|
||||||
|
|
@ -13,6 +15,11 @@ def main():
|
||||||
app = QApplication(sys.argv)
|
app = QApplication(sys.argv)
|
||||||
app.setApplicationName(APP_NAME)
|
app.setApplicationName(APP_NAME)
|
||||||
app.setOrganizationName(APP_ORG)
|
app.setOrganizationName(APP_ORG)
|
||||||
|
# Icon
|
||||||
|
BASE_DIR = Path(__file__).resolve().parent
|
||||||
|
ICON_PATH = BASE_DIR / "icons" / "bouquin-light.svg"
|
||||||
|
icon = QIcon(str(ICON_PATH))
|
||||||
|
app.setWindowIcon(icon)
|
||||||
|
|
||||||
s = get_settings()
|
s = get_settings()
|
||||||
theme_str = s.value("ui/theme", "system")
|
theme_str = s.value("ui/theme", "system")
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,8 @@ pyproject-appimage = "^4.2"
|
||||||
[tool.pyproject-appimage]
|
[tool.pyproject-appimage]
|
||||||
script = "bouquin"
|
script = "bouquin"
|
||||||
output = "Bouquin.AppImage"
|
output = "Bouquin.AppImage"
|
||||||
|
icon = "bouquin/icons/bouquin-light.svg"
|
||||||
|
desktop-entry = "bouquin.desktop"
|
||||||
|
|
||||||
[tool.vulture]
|
[tool.vulture]
|
||||||
paths = ["bouquin", "vulture_ignorelist.py"]
|
paths = ["bouquin", "vulture_ignorelist.py"]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue