NowFocus 0.2.3__tar.gz → 0.2.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. {nowfocus-0.2.3/src/NowFocus.egg-info → nowfocus-0.2.5}/PKG-INFO +41 -37
  2. {nowfocus-0.2.3 → nowfocus-0.2.5}/README.md +37 -33
  3. {nowfocus-0.2.3 → nowfocus-0.2.5}/pyproject.toml +4 -4
  4. nowfocus-0.2.5/src/desktop-extras/nowfocus.desktop +13 -0
  5. nowfocus-0.2.5/src/desktop-extras/nowfocus.png +0 -0
  6. nowfocus-0.2.5/src/desktop-extras/nowfocus.svg +46 -0
  7. nowfocus-0.2.5/src/desktop-extras/set_gsettings_keybinding.sh +51 -0
  8. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/__main__.py +7 -1
  9. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/conf.py +1 -1
  10. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/todotxt.py +0 -2
  11. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/example-todo.txt +1 -1
  12. nowfocus-0.2.5/src/nowfocus/icon/icon-0.svg +91 -0
  13. nowfocus-0.2.5/src/nowfocus/icon/icon-1.svg +91 -0
  14. nowfocus-0.2.5/src/nowfocus/icon/icon-2.svg +91 -0
  15. nowfocus-0.2.5/src/nowfocus/icon/icon-3.svg +91 -0
  16. nowfocus-0.2.5/src/nowfocus/icon/icon-4.svg +91 -0
  17. nowfocus-0.2.5/src/nowfocus/icon/icon-5.svg +91 -0
  18. nowfocus-0.2.5/src/nowfocus/icon/icon-6.svg +91 -0
  19. nowfocus-0.2.5/src/nowfocus/icon/icon-7.svg +91 -0
  20. nowfocus-0.2.5/src/nowfocus/icon/icon-8.svg +91 -0
  21. nowfocus-0.2.5/src/nowfocus/icon/icon-9.svg +91 -0
  22. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/icon.svg +40 -22
  23. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/settings.py +96 -52
  24. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/task_window.py +3 -6
  25. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/utils.py +4 -4
  26. {nowfocus-0.2.3 → nowfocus-0.2.5/src/nowfocus.egg-info}/PKG-INFO +41 -37
  27. nowfocus-0.2.5/src/nowfocus.egg-info/SOURCES.txt +60 -0
  28. nowfocus-0.2.5/src/nowfocus.egg-info/top_level.txt +2 -0
  29. nowfocus-0.2.3/src/NowFocus.egg-info/SOURCES.txt +0 -113
  30. nowfocus-0.2.3/src/NowFocus.egg-info/top_level.txt +0 -1
  31. nowfocus-0.2.3/src/nowfocus/icon/icon-0.png +0 -0
  32. nowfocus-0.2.3/src/nowfocus/icon/icon-0.svg +0 -86
  33. nowfocus-0.2.3/src/nowfocus/icon/icon-1.svg +0 -86
  34. nowfocus-0.2.3/src/nowfocus/icon/icon-2.svg +0 -86
  35. nowfocus-0.2.3/src/nowfocus/icon/icon-3.svg +0 -86
  36. nowfocus-0.2.3/src/nowfocus/icon/icon-4.svg +0 -86
  37. nowfocus-0.2.3/src/nowfocus/icon/icon-5.svg +0 -86
  38. nowfocus-0.2.3/src/nowfocus/icon/icon-6.svg +0 -86
  39. nowfocus-0.2.3/src/nowfocus/icon/icon-7.svg +0 -86
  40. nowfocus-0.2.3/src/nowfocus/icon/icon-8.svg +0 -86
  41. nowfocus-0.2.3/src/nowfocus/icon/icon-9.svg +0 -86
  42. nowfocus-0.2.3/src/nowfocus/icon/icon.png +0 -0
  43. nowfocus-0.2.3/src/nowfocus/icon/unused/action-unavailable-symbolic.svg +0 -3
  44. nowfocus-0.2.3/src/nowfocus/icon/unused/applications-engineering-symbolic.svg +0 -3
  45. nowfocus-0.2.3/src/nowfocus/icon/unused/background-selected-symbolic.svg +0 -5
  46. nowfocus-0.2.3/src/nowfocus/icon/unused/cancel-operation-symbolic.svg +0 -1
  47. nowfocus-0.2.3/src/nowfocus/icon/unused/checkbox-checked-symbolic (2).svg +0 -7
  48. nowfocus-0.2.3/src/nowfocus/icon/unused/checkbox-checked-symbolic.svg +0 -4
  49. nowfocus-0.2.3/src/nowfocus/icon/unused/checkbox-mixed-symbolic (2).svg +0 -6
  50. nowfocus-0.2.3/src/nowfocus/icon/unused/checkbox-mixed-symbolic.svg +0 -4
  51. nowfocus-0.2.3/src/nowfocus/icon/unused/checkbox-symbolic (2).svg +0 -6
  52. nowfocus-0.2.3/src/nowfocus/icon/unused/checkbox-symbolic.svg +0 -4
  53. nowfocus-0.2.3/src/nowfocus/icon/unused/clock-app-symbolic.svg +0 -5
  54. nowfocus-0.2.3/src/nowfocus/icon/unused/document-edit-symbolic.svg +0 -3
  55. nowfocus-0.2.3/src/nowfocus/icon/unused/document-new-symbolic.svg +0 -5
  56. nowfocus-0.2.3/src/nowfocus/icon/unused/document-open-recent-symbolic.svg +0 -3
  57. nowfocus-0.2.3/src/nowfocus/icon/unused/edit-find-symbolic.svg +0 -3
  58. nowfocus-0.2.3/src/nowfocus/icon/unused/edit-symbolic.svg +0 -5
  59. nowfocus-0.2.3/src/nowfocus/icon/unused/filter-flagged-symbolic.svg +0 -6
  60. nowfocus-0.2.3/src/nowfocus/icon/unused/format-unordered-list-symbolic.svg +0 -5
  61. nowfocus-0.2.3/src/nowfocus/icon/unused/help-about-symbolic.svg +0 -6
  62. nowfocus-0.2.3/src/nowfocus/icon/unused/list-add-symbolic.svg +0 -3
  63. nowfocus-0.2.3/src/nowfocus/icon/unused/list-remove-symbolic.svg +0 -3
  64. nowfocus-0.2.3/src/nowfocus/icon/unused/media-playback-pause.svg +0 -46
  65. nowfocus-0.2.3/src/nowfocus/icon/unused/media-playback-start-symbolic.svg +0 -3
  66. nowfocus-0.2.3/src/nowfocus/icon/unused/no-event-symbolic.svg +0 -6
  67. nowfocus-0.2.3/src/nowfocus/icon/unused/object-select-symbolic.svg +0 -5
  68. nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-about-symbolic-2.svg +0 -4
  69. nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-about-symbolic.svg +0 -1
  70. nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-keyboard-symbolic.svg +0 -1
  71. nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-notifications-symbolic (2).svg +0 -4
  72. nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-notifications-symbolic.svg +0 -1
  73. nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-search-symbolic-2.svg +0 -4
  74. nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-search-symbolic.svg +0 -1
  75. nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-system-symbolic.svg +0 -4
  76. nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-time-symbolic.svg +0 -7
  77. nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-wacom-symbolic.svg +0 -1
  78. nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.clocks-symbolic.svg +0 -5
  79. nowfocus-0.2.3/src/nowfocus/icon/unused/pause-large-symbolic.svg +0 -3
  80. nowfocus-0.2.3/src/nowfocus/icon/unused/preferences-system-time-symbolic.svg +0 -6
  81. nowfocus-0.2.3/src/nowfocus/icon/unused/process-stop-symbolic.svg +0 -3
  82. nowfocus-0.2.3/src/nowfocus/icon/unused/selection-checked.svg +0 -71
  83. nowfocus-0.2.3/src/nowfocus/icon/unused/software-installed-symbolic.svg +0 -3
  84. nowfocus-0.2.3/src/nowfocus/icon/unused/stopwatch-symbolic.svg +0 -8
  85. nowfocus-0.2.3/src/nowfocus/icon/unused/system-settings-symbolic.svg +0 -7
  86. nowfocus-0.2.3/src/nowfocus/icon/unused/timer-sand-symbolic.svg +0 -8
  87. nowfocus-0.2.3/src/nowfocus/icon/unused/timer-symbolic.svg +0 -3
  88. nowfocus-0.2.3/src/nowfocus/icon/unused/user-trash-symbolic (2).svg +0 -3
  89. nowfocus-0.2.3/src/nowfocus/icon/unused/user-trash-symbolic.svg +0 -10
  90. nowfocus-0.2.3/src/nowfocus/icon/unused/view-fullscreen-symbolic.svg +0 -8
  91. nowfocus-0.2.3/src/nowfocus/icon/unused/view-more-horizontal-symbolic.svg +0 -7
  92. nowfocus-0.2.3/src/nowfocus/icon/unused/view-more-symbolic.svg +0 -7
  93. nowfocus-0.2.3/src/nowfocus/icon/unused/view-restore-symbolic.svg +0 -3
  94. nowfocus-0.2.3/src/nowfocus/icon/unused/view-sort-ascending-symbolic.svg +0 -3
  95. nowfocus-0.2.3/src/nowfocus/icon/unused/view-sort-descending-symbolic.svg +0 -3
  96. nowfocus-0.2.3/src/nowfocus/icon/unused/view-tasks-unscheduled-symbolic.svg +0 -12
  97. nowfocus-0.2.3/src/nowfocus/runner.sh +0 -8
  98. {nowfocus-0.2.3 → nowfocus-0.2.5}/LICENSE +0 -0
  99. {nowfocus-0.2.3 → nowfocus-0.2.5}/setup.cfg +0 -0
  100. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/__init__.py +0 -0
  101. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/activitywatch.py +0 -0
  102. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/caldav.py +0 -0
  103. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/csv.py +0 -0
  104. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/psc_timetracker.py +0 -0
  105. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/taskwarrior.py +0 -0
  106. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/timewarrior.py +0 -0
  107. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/todo_template.py +0 -0
  108. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/trello.py +0 -0
  109. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/txt.py +0 -0
  110. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/vikunja.py +0 -0
  111. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/cancel.png +0 -0
  112. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/cancel.svg +0 -0
  113. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/edit.png +0 -0
  114. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/edit.svg +0 -0
  115. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/mark-done.png +0 -0
  116. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/mark-done.svg +0 -0
  117. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/pause.png +0 -0
  118. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/pause.svg +0 -0
  119. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/settings.png +0 -0
  120. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/settings.svg +0 -0
  121. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/new_task_dialog.py +0 -0
  122. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/session_edit_dialog.py +0 -0
  123. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/session_options.py +0 -0
  124. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/sessions.csv +0 -0
  125. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/sound/bell-xylophone-g.mp3 +0 -0
  126. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/sound/dinner-bell.mp3 +0 -0
  127. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/sound/xylophone-chord.mp3 +0 -0
  128. {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/styles.css +0 -0
  129. {nowfocus-0.2.3/src/NowFocus.egg-info → nowfocus-0.2.5/src/nowfocus.egg-info}/dependency_links.txt +0 -0
  130. {nowfocus-0.2.3/src/NowFocus.egg-info → nowfocus-0.2.5/src/nowfocus.egg-info}/entry_points.txt +0 -0
  131. {nowfocus-0.2.3/src/NowFocus.egg-info → nowfocus-0.2.5/src/nowfocus.egg-info}/requires.txt +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
- Name: NowFocus
3
- Version: 0.2.3
4
- Summary: NowFocus: the open source task-tracking self-control panel.
2
+ Name: nowfocus
3
+ Version: 0.2.5
4
+ Summary: nowfocus: the open source task-tracking self-control panel.
5
5
  Author: GitFr33
6
- Project-URL: Homepage, https://gitlab.com/GitFr33/NowFocus
6
+ Project-URL: Homepage, https://gitlab.com/GitFr33/nowfocus
7
7
  Classifier: Programming Language :: Python :: 3
8
8
  Classifier: Operating System :: OS Independent
9
9
  Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
@@ -44,14 +44,15 @@ Requires-Dist: vobject
44
44
  Requires-Dist: x-wr-timezone
45
45
  Dynamic: license-file
46
46
 
47
- <div align="center"><img src="nowfocus.svg" width="60" align="center">
47
+ <div align="center"><img src="https://gitlab.com/GitFr33/nowfocus/-/raw/main/nowfocus.svg" width="60" align="center">
48
48
 
49
- # *NowFocus* <br> Open-source task timer for linux
49
+ # *nowfocus* <br> Open-source task timer for linux
50
50
 
51
51
  **Avoid multifailing. Master your to-do lists. Track your time.**
52
52
 
53
53
  </div>
54
- NowFocus is a clean, keyboard-driven project time tracker build with python + GTK that flexibly connects multiple to-do lists with multiple time trackers and displays your current task and time spent in the status bar.
54
+
55
+ nowfocus is a clean, keyboard-driven project time tracker build with python + GTK that flexibly connects multiple to-do lists with multiple time trackers and displays your current task and time spent in the status bar.
55
56
 
56
57
  ## Features
57
58
  - Unlimited flexible combinations of to-do lists and time tracking systems
@@ -67,9 +68,9 @@ NowFocus is a clean, keyboard-driven project time tracker build with python + GT
67
68
  - Run a command (or launch an application) when a task is started
68
69
 
69
70
 
70
- <img src="Screenshot-25-09-23-11-42-56.webp" width="500">
71
- <img src="Screenshot-25-09-23-11-46-14.webp" width="400">
72
- <img src="Screenshot-25-09-23-11-53-22.webp" width="400">
71
+ <img src="https://gitlab.com/GitFr33/nowfocus/-/raw/main/docs/Screenshot-25-09-23-11-42-56.webp" width="500">
72
+ <img src="https://gitlab.com/GitFr33/nowfocus/-/raw/main/docs/Screenshot-25-09-23-11-46-14.webp" width="400">
73
+ <img src="https://gitlab.com/GitFr33/nowfocus/-/raw/main/docs/Screenshot-25-09-23-11-53-22.webp" width="400">
73
74
 
74
75
  <br>
75
76
 
@@ -93,24 +94,45 @@ NowFocus is a clean, keyboard-driven project time tracker build with python + GT
93
94
 
94
95
  ## Installation (using pipx)
95
96
 
96
- 1. Run the following in terminal to install with dependencies:
97
+ Run the following in terminal to install and setup:
97
98
  ```
99
+ # Install dependencies
98
100
  sudo apt install pip pipx install gir1.2-appindicator3-0.1 meson libdbus-glib-1-dev patchelf python3.12-venv libgirepository1.0-dev gcc libcairo2-dev pkg-config python3-dev
101
+
102
+ # Set up pipx
99
103
  pipx ensurepath
100
- pipx install NowFocus
101
- ```
102
- 2. Now run `nowfocus` and check for errors
103
104
 
104
- 3. Set up a keybinding (on Ubuntu or Linux Mint), open **Setting > Keyboard > Keyboard Shortcuts > Custom Shortcuts**, set the **command** to `nowfocus`, and pick whatever key combo you'd like.
105
+ # Install nowfocus
106
+ pipx install nowfocus
107
+
108
+ # Enter application directory
109
+ cd ~/.local/pipx/nowfocus
110
+
111
+ # Copy .desktop and icon to .local/share
112
+ cp src/desktop-extras/nowfocus.desktop ~/.local/share/applications/nowfocus.desktop
113
+ cp src/desktop-extras/nowfocus.svg ~/.local/share/icons/nowfocus.png
114
+ cp src/desktop-extras/nowfocus.svg ~/.local/share/icons/hicolor/scalable/apps/nowfocus.svg
115
+
116
+ # Setup autostart
117
+ cp src/desktop-extras/nowfocus.desktop ~/.config/autostart/nowfocus.desktop
118
+
119
+ # Set Super space as keybinding to raise task window
120
+ chmod +x src/desktop-extras/set_gsettings_keybinding.sh
121
+
122
+ src/desktop-extras/set_gsettings_keybinding.sh "Open nowfocus" nowfocus "<Super>space"
123
+
124
+ # and now Focus!
125
+ nowfocus
126
+
127
+ ```
105
128
 
106
- 4. Add the following command to your startup applications: `nowfocus --force`
107
129
 
108
130
 
109
131
  ## Usage
110
132
 
111
133
  #### Set up to-do lists and time trackers
112
134
 
113
- Open NowFocus **Settings** from the indicator menu or tasks window and connect your to-do lists and time tracker(s)
135
+ Open nowfocus **Settings** from the indicator menu or tasks window and connect your to-do lists and time tracker(s)
114
136
 
115
137
  #### Task Window Keybindings
116
138
 
@@ -127,8 +149,8 @@ Open NowFocus **Settings** from the indicator menu or tasks window and connect y
127
149
  #### Commandline Interface
128
150
 
129
151
  - To raise the task window use simply: `nowfocus`
130
- - If NowFocus has crashed or failed to shut down nicely use `nowfocus --force`
131
- - To start timing a task: add the task name as the first positional argument. `nowfocus "checking email"`
152
+ - If nowfocus has crashed or failed to shut down nicely use `nowfocus --force`
153
+ - To start timing a task: add the task name as the first positional argument. `nowfocus "checking email"`
132
154
  - To stop timing use `nowfocus stop`
133
155
  - Start with verbose logging use: `nowfocus -l 3`
134
156
  - Start with targeted verbose logging use: `nowfocus -s trello`
@@ -143,21 +165,3 @@ Open NowFocus **Settings** from the indicator menu or tasks window and connect y
143
165
  - Change to `YOUR_INSTALL_PATH` directory with `cd YOUR_INSTALL_PATH/nowfocus`
144
166
  - build python module with `python3 -m build` (this should be done in a venv and will require some dependecies...)
145
167
  - pipx install -e --force YOUR_INSTALL_PATH/monotask/
146
-
147
-
148
-
149
- <!--
150
- ## Build Flatpak
151
-
152
- ```
153
- python3 -m build
154
- # python3 flatpak-pip-generator --runtime=org.gnome.Sdk/x86_64/47 PACKAGE # run this for lots of stuff
155
- flatpak run org.flatpak.Builder --force-clean --user --install --install-deps-from=flathub --repo=repo builddir APPID.yaml
156
- flatpak run APPID
157
- ```
158
- -->
159
-
160
-
161
- <!-- ## Contributing
162
- Package it for your operating system.
163
- Write a connector for your favorite to-do list or time tracker -->
@@ -1,11 +1,12 @@
1
- <div align="center"><img src="nowfocus.svg" width="60" align="center">
1
+ <div align="center"><img src="https://gitlab.com/GitFr33/nowfocus/-/raw/main/nowfocus.svg" width="60" align="center">
2
2
 
3
- # *NowFocus* <br> Open-source task timer for linux
3
+ # *nowfocus* <br> Open-source task timer for linux
4
4
 
5
5
  **Avoid multifailing. Master your to-do lists. Track your time.**
6
6
 
7
7
  </div>
8
- NowFocus is a clean, keyboard-driven project time tracker build with python + GTK that flexibly connects multiple to-do lists with multiple time trackers and displays your current task and time spent in the status bar.
8
+
9
+ nowfocus is a clean, keyboard-driven project time tracker build with python + GTK that flexibly connects multiple to-do lists with multiple time trackers and displays your current task and time spent in the status bar.
9
10
 
10
11
  ## Features
11
12
  - Unlimited flexible combinations of to-do lists and time tracking systems
@@ -21,9 +22,9 @@ NowFocus is a clean, keyboard-driven project time tracker build with python + GT
21
22
  - Run a command (or launch an application) when a task is started
22
23
 
23
24
 
24
- <img src="Screenshot-25-09-23-11-42-56.webp" width="500">
25
- <img src="Screenshot-25-09-23-11-46-14.webp" width="400">
26
- <img src="Screenshot-25-09-23-11-53-22.webp" width="400">
25
+ <img src="https://gitlab.com/GitFr33/nowfocus/-/raw/main/docs/Screenshot-25-09-23-11-42-56.webp" width="500">
26
+ <img src="https://gitlab.com/GitFr33/nowfocus/-/raw/main/docs/Screenshot-25-09-23-11-46-14.webp" width="400">
27
+ <img src="https://gitlab.com/GitFr33/nowfocus/-/raw/main/docs/Screenshot-25-09-23-11-53-22.webp" width="400">
27
28
 
28
29
  <br>
29
30
 
@@ -47,24 +48,45 @@ NowFocus is a clean, keyboard-driven project time tracker build with python + GT
47
48
 
48
49
  ## Installation (using pipx)
49
50
 
50
- 1. Run the following in terminal to install with dependencies:
51
+ Run the following in terminal to install and setup:
51
52
  ```
53
+ # Install dependencies
52
54
  sudo apt install pip pipx install gir1.2-appindicator3-0.1 meson libdbus-glib-1-dev patchelf python3.12-venv libgirepository1.0-dev gcc libcairo2-dev pkg-config python3-dev
55
+
56
+ # Set up pipx
53
57
  pipx ensurepath
54
- pipx install NowFocus
55
- ```
56
- 2. Now run `nowfocus` and check for errors
57
58
 
58
- 3. Set up a keybinding (on Ubuntu or Linux Mint), open **Setting > Keyboard > Keyboard Shortcuts > Custom Shortcuts**, set the **command** to `nowfocus`, and pick whatever key combo you'd like.
59
+ # Install nowfocus
60
+ pipx install nowfocus
61
+
62
+ # Enter application directory
63
+ cd ~/.local/pipx/nowfocus
64
+
65
+ # Copy .desktop and icon to .local/share
66
+ cp src/desktop-extras/nowfocus.desktop ~/.local/share/applications/nowfocus.desktop
67
+ cp src/desktop-extras/nowfocus.svg ~/.local/share/icons/nowfocus.png
68
+ cp src/desktop-extras/nowfocus.svg ~/.local/share/icons/hicolor/scalable/apps/nowfocus.svg
69
+
70
+ # Setup autostart
71
+ cp src/desktop-extras/nowfocus.desktop ~/.config/autostart/nowfocus.desktop
72
+
73
+ # Set Super space as keybinding to raise task window
74
+ chmod +x src/desktop-extras/set_gsettings_keybinding.sh
75
+
76
+ src/desktop-extras/set_gsettings_keybinding.sh "Open nowfocus" nowfocus "<Super>space"
77
+
78
+ # and now Focus!
79
+ nowfocus
80
+
81
+ ```
59
82
 
60
- 4. Add the following command to your startup applications: `nowfocus --force`
61
83
 
62
84
 
63
85
  ## Usage
64
86
 
65
87
  #### Set up to-do lists and time trackers
66
88
 
67
- Open NowFocus **Settings** from the indicator menu or tasks window and connect your to-do lists and time tracker(s)
89
+ Open nowfocus **Settings** from the indicator menu or tasks window and connect your to-do lists and time tracker(s)
68
90
 
69
91
  #### Task Window Keybindings
70
92
 
@@ -81,8 +103,8 @@ Open NowFocus **Settings** from the indicator menu or tasks window and connect y
81
103
  #### Commandline Interface
82
104
 
83
105
  - To raise the task window use simply: `nowfocus`
84
- - If NowFocus has crashed or failed to shut down nicely use `nowfocus --force`
85
- - To start timing a task: add the task name as the first positional argument. `nowfocus "checking email"`
106
+ - If nowfocus has crashed or failed to shut down nicely use `nowfocus --force`
107
+ - To start timing a task: add the task name as the first positional argument. `nowfocus "checking email"`
86
108
  - To stop timing use `nowfocus stop`
87
109
  - Start with verbose logging use: `nowfocus -l 3`
88
110
  - Start with targeted verbose logging use: `nowfocus -s trello`
@@ -97,21 +119,3 @@ Open NowFocus **Settings** from the indicator menu or tasks window and connect y
97
119
  - Change to `YOUR_INSTALL_PATH` directory with `cd YOUR_INSTALL_PATH/nowfocus`
98
120
  - build python module with `python3 -m build` (this should be done in a venv and will require some dependecies...)
99
121
  - pipx install -e --force YOUR_INSTALL_PATH/monotask/
100
-
101
-
102
-
103
- <!--
104
- ## Build Flatpak
105
-
106
- ```
107
- python3 -m build
108
- # python3 flatpak-pip-generator --runtime=org.gnome.Sdk/x86_64/47 PACKAGE # run this for lots of stuff
109
- flatpak run org.flatpak.Builder --force-clean --user --install --install-deps-from=flathub --repo=repo builddir APPID.yaml
110
- flatpak run APPID
111
- ```
112
- -->
113
-
114
-
115
- <!-- ## Contributing
116
- Package it for your operating system.
117
- Write a connector for your favorite to-do list or time tracker -->
@@ -1,10 +1,10 @@
1
1
  [project]
2
- name = "NowFocus"
3
- version = "0.2.3"
2
+ name = "nowfocus"
3
+ version = "0.2.5"
4
4
  authors = [
5
5
  { name="GitFr33" },
6
6
  ]
7
- description = "NowFocus: the open source task-tracking self-control panel."
7
+ description = "nowfocus: the open source task-tracking self-control panel."
8
8
  readme = "README.md"
9
9
 
10
10
  classifiers = [
@@ -55,7 +55,7 @@ dependencies = [
55
55
  ]
56
56
 
57
57
  [project.urls]
58
- Homepage = "https://gitlab.com/GitFr33/NowFocus"
58
+ Homepage = "https://gitlab.com/GitFr33/nowfocus"
59
59
 
60
60
  [project.gui-scripts]
61
61
  nowfocus = "nowfocus.__main__:startup"
@@ -0,0 +1,13 @@
1
+ [Desktop Entry]
2
+ Name=nowfocus
3
+ GenericName=Task, Todo, Timer, timertacker
4
+ Version=1.0
5
+ Comment=Accomplish one worthwhile thing at a time.
6
+ Exec=nowfocus
7
+ Icon=nowfocus
8
+ Terminal=false
9
+ Type=Application
10
+ StartupNotify=true
11
+ Categories=Utility;Application;
12
+ X-GNOME-SingleWindow=true
13
+ SingleMainWindow=true
@@ -0,0 +1,46 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ viewBox="0 0 16 16"
4
+ version="1.1"
5
+ id="svg1"
6
+ sodipodi:docname="nowfocus.svg"
7
+ xml:space="preserve"
8
+ inkscape:version="1.3.2 (1:1.3.2+202404261509+091e20ef0f)"
9
+ inkscape:export-filename="nowfocus.png"
10
+ inkscape:export-xdpi="1536"
11
+ inkscape:export-ydpi="1536"
12
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
13
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ xmlns:svg="http://www.w3.org/2000/svg"><defs
16
+ id="defs1" /><sodipodi:namedview
17
+ id="namedview1"
18
+ pagecolor="#ffffff"
19
+ bordercolor="#666666"
20
+ borderopacity="1.0"
21
+ inkscape:showpageshadow="2"
22
+ inkscape:pageopacity="0.0"
23
+ inkscape:pagecheckerboard="true"
24
+ inkscape:deskcolor="#ffffff"
25
+ showborder="true"
26
+ inkscape:zoom="13.599277"
27
+ inkscape:cx="1.0662332"
28
+ inkscape:cy="13.713964"
29
+ inkscape:window-width="1920"
30
+ inkscape:window-height="1011"
31
+ inkscape:window-x="0"
32
+ inkscape:window-y="0"
33
+ inkscape:window-maximized="1"
34
+ inkscape:current-layer="svg1"
35
+ inkscape:export-bgcolor="#ffffff00" /><circle
36
+ style="fill:#008a03;fill-opacity:1;stroke:#ffffff;stroke-width:0.993891;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
37
+ id="path2"
38
+ cx="8"
39
+ cy="8"
40
+ r="7.4525633"
41
+ inkscape:export-filename="src/desktop-extras/nowfocus.svg"
42
+ inkscape:export-xdpi="1536"
43
+ inkscape:export-ydpi="1536" /><path
44
+ style="color:#000000;fill:#008a03;fill-opacity:1;stroke:#ffffff;stroke-width:0.977448;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
45
+ d="M 14.000668,2.1939015 7.2594966,8.8841635 4.0649707,5.7193344 a 0.81454047,0.81454047 0 0 0 -1.1518112,0.00636 0.81454047,0.81454047 0 0 0 0.00636,1.1518112 l 3.7672497,3.7333114 a 0.81462193,0.81462193 0 0 0 1.1475686,0 L 15.148237,3.3499549 a 0.81454047,0.81454047 0 0 0 0.0042,-1.1518111 0.81454047,0.81454047 0 0 0 -1.151811,-0.00425 z"
46
+ id="path3" /></svg>
@@ -0,0 +1,51 @@
1
+ #!/bin/bash
2
+
3
+ # This function simplifies setting up Gnome 3 shortcuts from terminal
4
+
5
+ # $1 name of the shortcut
6
+ # $2 command to execute
7
+ # $3 keyboard shortcut
8
+
9
+ # src: https://askubuntu.com/a/597414/279745 and https://gitlab.com/tukusejssirs/lnx_scripts/-/blob/master/bash/functions/gshort.sh
10
+
11
+ # TODO
12
+ # - before shortcut creation, check if:
13
+ # - the shortcut is not used already in custom shortcuts;
14
+ # - the command is not used already in custom shortcuts;
15
+ # - sometimes is uses the very same $num multiple times;
16
+
17
+
18
+ gshort(){
19
+ set -o errexit
20
+ local name="$1"
21
+ local command="$2"
22
+ local shortcut="$3"
23
+ local value test value_new
24
+ value="$(gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings)"
25
+ test="$(sed "s/\['//;s/', '/,/g;s/'\]//" <<< "$value" | tr ',' '\n' | grep -oP ".*/custom\K[0-9]*(?=/$)")"
26
+
27
+ if [ "$(echo "$value" | grep -o "@as")" = "@as" ]; then
28
+ local num=0
29
+ value_new="['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom${num}/']"
30
+ else
31
+ local i=1
32
+
33
+ until [ "$num" != "" ]; do
34
+ if [ "$(grep -o $i <<< "$test")" != "$i" ]; then
35
+ local num=$i
36
+ fi
37
+ i="$(echo 1+$i | bc)";
38
+ done
39
+
40
+ value_new="$(gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings | sed "s#']\$#', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom${num}/']#")"
41
+ fi
42
+
43
+ echo setting custom-keybinding ${num} to ${command} with ${shortcut}
44
+
45
+ gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "$value_new"
46
+ gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom${num}/ name "$name"
47
+ gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom${num}/ command "$command"
48
+ gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom${num}/ binding "$shortcut"
49
+ }
50
+
51
+ gshort $1 $2 $3
@@ -52,6 +52,8 @@ dbg(conf.user,l=3,s='user_settings')
52
52
  setproctitle.setproctitle(conf.app_name)
53
53
  pipe_file = os.path.dirname(os.path.realpath(__file__))+"/"+conf.app_id+"_pipe"
54
54
 
55
+ print(conf.app_name +" running from " + os.path.dirname(os.path.realpath(__file__)))
56
+
55
57
  class Application(Gtk.Application):
56
58
  def __init__(self, *args, **kwargs):
57
59
  super().__init__(*args, application_id="org.example.myapp", **kwargs)
@@ -331,14 +333,18 @@ class Application(Gtk.Application):
331
333
 
332
334
  if transfer_current_session_time:
333
335
  start_time = self.session['start_time']
336
+ duration = self.session['duration']
337
+
334
338
  if(self.is_running == True):
335
339
  self.stop_task(None,'cancel')
336
340
 
337
341
  else:
338
342
  start_time = now()
343
+ duration = 0
339
344
 
340
345
  if(self.is_running == True):
341
346
  self.stop_task()
347
+
342
348
 
343
349
  self.is_running = True
344
350
 
@@ -346,7 +352,7 @@ class Application(Gtk.Application):
346
352
  "label": task_label,
347
353
  "extended_label": utils.extended_label(task_data),
348
354
  "start_time": start_time,
349
- "duration":0,
355
+ "duration":duration,
350
356
  "task":task_data,
351
357
  "notes":'',
352
358
  }
@@ -12,7 +12,7 @@ from gi.repository import Gtk, GLib, Gdk
12
12
  # Set working dir to file location
13
13
  os.chdir(os.path.dirname(os.path.realpath(__file__)))
14
14
  app_id = "nowfocus" # Folder name for xdg config and data locations
15
- app_name = "NowFocus" # What shows up with pidof and in window titles etc
15
+ app_name = "nowfocus" # What shows up with pidof and in window titles etc
16
16
 
17
17
  user_data_dir = GLib.get_user_data_dir()+"/"+app_id
18
18
  Path(user_data_dir).mkdir(parents=True, exist_ok=True)
@@ -76,8 +76,6 @@ def mark_task_done(task):
76
76
  '''Return True on success False on error'''
77
77
 
78
78
  todotxt = pytodotxt.TodoTxt(conf.user['todolists'][task['todolist']]['file'])
79
-
80
- # id = user_conf['id']+">"+t.bare_description() # TODO: better id!
81
79
 
82
80
  for t in todotxt.parse():
83
81
  if t.bare_description() == task['label']:
@@ -5,7 +5,7 @@ Exercise
5
5
  Running
6
6
  Push-ups
7
7
  Yoga
8
- Set Up NowFocus
8
+ Set Up nowfocus
9
9
  1 Open Settings
10
10
  3 Add your real Todo List(s)
11
11
  2 Set up your Time Tracker(s)
@@ -0,0 +1,91 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ width="48"
6
+ height="48"
7
+ viewBox="0 0 12.7 12.7"
8
+ version="1.1"
9
+ id="svg1"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ xmlns:svg="http://www.w3.org/2000/svg">
12
+ <defs
13
+ id="defs1" />
14
+ <g
15
+ id="layer1"
16
+ transform="matrix(1.0567177,0,0,1.0567177,-0.36015771,-0.36015771)">
17
+ <rect
18
+ style="display:none;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.316;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
19
+ id="rect1"
20
+ width="9.5708742"
21
+ height="9.5708742"
22
+ x="1.5645629"
23
+ y="1.5645629" />
24
+ <rect
25
+ style="display:none;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.915798;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
26
+ id="rect38"
27
+ width="9.5708742"
28
+ height="9.5708742"
29
+ x="1.5645629"
30
+ y="1.5645629"
31
+ ry="3.110863" />
32
+ <rect
33
+ style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.915798;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
34
+ id="rect2"
35
+ width="9.5708742"
36
+ height="9.5708742"
37
+ x="1.5645629"
38
+ y="1.5645629"
39
+ ry="4.7854371"
40
+ rx="4.7854371" />
41
+ </g>
42
+ <g
43
+ id="layer2"
44
+ style="display:inline">
45
+ <path
46
+ style="display:none;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
47
+ d="M 6.3410664,6.36546 4.4335013,4.0522236"
48
+ id="path2" />
49
+ <path
50
+ style="display:none;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
51
+ d="M 6.37713,6.3615649 11.260009,1.2965066"
52
+ id="use31" />
53
+ <path
54
+ style="display:none;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
55
+ d="M 6.3610066,6.3773634 13.39526,6.248543"
56
+ id="use32" />
57
+ <path
58
+ style="display:none;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
59
+ d="m 6.338434,6.3771308 5.065058,4.8828782"
60
+ id="use33" />
61
+ <path
62
+ style="display:none;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
63
+ d="M 6.322637,6.3610073 6.4514574,13.395261"
64
+ id="use34" />
65
+ <path
66
+ style="display:none;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
67
+ d="M 6.322869,6.3384356 1.4399903,11.403494"
68
+ id="use35" />
69
+ <path
70
+ style="display:none;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
71
+ d="M 6.3389932,6.3226376 -0.69526049,6.451458"
72
+ id="use36" />
73
+ <path
74
+ style="display:none;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
75
+ d="M 6.3615647,6.3228685 1.2965064,1.4399898"
76
+ id="use37" />
77
+ <path
78
+ style="display:none;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
79
+ d="M 6.3773615,6.3389927 6.2485411,-0.69526102"
80
+ id="use38" />
81
+ </g>
82
+ <g
83
+ id="layer3"
84
+ style="display:inline">
85
+ <path
86
+ style="font-weight:bold;font-size:10.4396px;line-height:1.25;font-family:'Besley*';-inkscape-font-specification:'Besley*, Bold';letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.198419"
87
+ d="m 5.2723149,3.6126858 c 0,-0.040213 0.03016,-0.080427 0.1005332,-0.1407465 0.06032,-0.06032 0.1709064,-0.1105865 0.3116529,-0.1507998 0.1407465,-0.040213 0.2915463,-0.070373 0.4624528,-0.070373 0.4121862,0 0.6936791,0.1105865 0.8545323,0.3317595 0.1507998,0.2211731 0.2312264,0.5428794 0.2312264,0.9550655 0,0.4222395 -0.1206399,0.7640524 -0.3518663,1.0254388 -0.2412797,0.2613863 -0.5830926,0.4825594 -1.0254387,0.6434125 -0.03016,0.020106 -0.080427,0.040213 -0.1608531,0.06032 -0.080427,0.020106 -0.1306932,0.040213 -0.1407465,0.050267 -0.020106,0.010054 -0.040213,0.03016 -0.080427,0.070373 -0.040213,0.040213 -0.06032,0.080427 -0.06032,0.1407464 -0.010054,0.06032 -0.010054,0.1306932 -0.010054,0.2211731 v 0.8243723 c 0,0.080427 0.010054,0.1407465 0.050267,0.1608532 0.03016,0.020106 0.1005332,0.03016 0.2211731,0.03016 h 0.9852264 c 0.1608531,0 0.2613863,-0.010054 0.3015996,-0.040213 C 6.991433,7.6943348 7.01154,7.603855 7.01154,7.4430018 V 6.9906026 c 0,-0.070373 0,-0.1306932 0.010054,-0.1809598 0,-0.040213 0.010054,-0.080427 0.020106,-0.1105865 0.010054,-0.020106 0.03016,-0.050267 0.06032,-0.070373 0.03016,-0.020106 0.050267,-0.03016 0.070373,-0.040213 0.020106,0 0.050267,-0.010054 0.1105865,-0.03016 0.06032,-0.010054 0.1005332,-0.020106 0.1407465,-0.040213 C 7.9263916,6.3572424 8.3184711,6.1159627 8.6100174,5.7842031 8.9015637,5.4624969 9.0523635,5.0402574 9.0523635,4.5375913 c 0,-0.6233059 -0.221173,-1.1159186 -0.6635191,-1.4778381 -0.4423462,-0.3518663 -1.1159187,-0.532826 -2.0408242,-0.532826 -0.8042657,0 -1.4376249,0.2111197 -1.8900243,0.6132525 -0.4624528,0.4121862 -0.6836258,0.8746389 -0.6836258,1.3873583 0,0.3418129 0.090479,0.6132526 0.2915463,0.814319 0.2010664,0.2010664 0.4423461,0.3015996 0.7338924,0.3015996 0.2714397,0 0.502666,-0.080427 0.6936791,-0.251333 0.1809598,-0.1709064 0.281493,-0.3920795 0.281493,-0.6534658 0,-0.2010665 -0.050267,-0.3820262 -0.1306931,-0.5428794 C 5.5638612,4.0349253 5.4733813,3.9142854 5.3929547,3.8238056 5.3125282,3.7333257 5.2723149,3.6629524 5.2723149,3.6126858 Z m -0.050267,5.8510328 c 0,0.2814929 0.090479,0.5127198 0.2915463,0.7137864 0.2010664,0.201066 0.4322928,0.291546 0.7137858,0.291546 0.2714396,0 0.502666,-0.09048 0.7037324,-0.291546 C 7.1321792,9.9764384 7.2327125,9.7452115 7.2327125,9.4637186 7.2327125,9.1922789 7.1321792,8.9610525 6.9311128,8.7599861 6.7300464,8.5589197 6.49882,8.4583865 6.2273804,8.4583865 c -0.281493,0 -0.5127194,0.1005332 -0.7137858,0.3015996 C 5.3125282,8.9610525 5.2220483,9.1922789 5.2220479,9.4637186 Z"
88
+ id="text38"
89
+ aria-label="?" />
90
+ </g>
91
+ </svg>
@@ -0,0 +1,91 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ width="48"
6
+ height="48"
7
+ viewBox="0 0 12.7 12.7"
8
+ version="1.1"
9
+ id="svg1"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ xmlns:svg="http://www.w3.org/2000/svg">
12
+ <defs
13
+ id="defs1" />
14
+ <g
15
+ id="layer1"
16
+ transform="matrix(1.0567177,0,0,1.0567177,-0.36015771,-0.36015771)">
17
+ <rect
18
+ style="display:none;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.316;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
19
+ id="rect1"
20
+ width="9.5708742"
21
+ height="9.5708742"
22
+ x="1.5645629"
23
+ y="1.5645629" />
24
+ <rect
25
+ style="display:none;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.915798;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
26
+ id="rect38"
27
+ width="9.5708742"
28
+ height="9.5708742"
29
+ x="1.5645629"
30
+ y="1.5645629"
31
+ ry="3.110863" />
32
+ <rect
33
+ style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.915798;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
34
+ id="rect2"
35
+ width="9.5708742"
36
+ height="9.5708742"
37
+ x="1.5645629"
38
+ y="1.5645629"
39
+ ry="4.7854371"
40
+ rx="4.7854371" />
41
+ </g>
42
+ <g
43
+ id="layer2"
44
+ style="display:inline">
45
+ <path
46
+ style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
47
+ d="M 6.3410664,6.36546 4.4335013,4.0522236"
48
+ id="path2" />
49
+ <path
50
+ style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
51
+ d="M 6.37713,6.3615649 11.260009,1.2965066"
52
+ id="use31" />
53
+ <path
54
+ style="display:none;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
55
+ d="M 6.3610066,6.3773634 13.39526,6.248543"
56
+ id="use32" />
57
+ <path
58
+ style="display:none;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
59
+ d="m 6.338434,6.3771308 5.065058,4.8828782"
60
+ id="use33" />
61
+ <path
62
+ style="display:none;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
63
+ d="M 6.322637,6.3610073 6.4514574,13.395261"
64
+ id="use34" />
65
+ <path
66
+ style="display:none;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
67
+ d="M 6.322869,6.3384356 1.4399903,11.403494"
68
+ id="use35" />
69
+ <path
70
+ style="display:none;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
71
+ d="M 6.3389932,6.3226376 -0.69526049,6.451458"
72
+ id="use36" />
73
+ <path
74
+ style="display:none;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
75
+ d="M 6.3615647,6.3228685 1.2965064,1.4399898"
76
+ id="use37" />
77
+ <path
78
+ style="display:none;fill:none;stroke:#ffffff;stroke-width:1.465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
79
+ d="M 6.3773615,6.3389927 6.2485411,-0.69526102"
80
+ id="use38" />
81
+ </g>
82
+ <g
83
+ id="layer3"
84
+ style="display:none">
85
+ <path
86
+ style="font-weight:bold;font-size:10.4396px;line-height:1.25;font-family:'Besley*';-inkscape-font-specification:'Besley*, Bold';letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.206043"
87
+ d="m 5.2284722,3.5018237 c 0,-0.041758 0.031319,-0.083517 0.104396,-0.1461544 0.062638,-0.062638 0.1774732,-0.1148356 0.3236276,-0.156594 0.1461544,-0.041758 0.3027484,-0.073077 0.4802216,-0.073077 0.4280236,0 0.7203324,0.1148356 0.887366,0.3445068 0.156594,0.2296712 0.2401108,0.5637384 0.2401108,0.991762 0,0.4384632 -0.1252752,0.7934096 -0.365386,1.0648392 C 6.6482578,5.7985359 6.2933114,6.0282071 5.833969,6.1952407 5.80265,6.2161197 5.750452,6.2369987 5.6669354,6.2578787 5.5834184,6.2787577 5.5312206,6.2996367 5.520781,6.3100767 5.499902,6.3205167 5.479023,6.3413957 5.437264,6.3831537 5.395506,6.4249117 5.374626,6.4666707 5.374626,6.5293081 5.364186,6.5919461 5.364186,6.6650229 5.364186,6.7589793 v 0.8560472 c 0,0.083517 0.01044,0.1461544 0.052198,0.1670336 0.031319,0.020879 0.104396,0.031319 0.2296712,0.031319 H 6.669137 c 0.1670336,0 0.2714296,-0.01044 0.313188,-0.041758 0.031319,-0.031319 0.052198,-0.1252752 0.052198,-0.2923088 v -0.469782 c 0,-0.073077 0,-0.1357148 0.01044,-0.1879128 0,-0.041758 0.01044,-0.083517 0.020879,-0.1148356 0.01044,-0.020879 0.031319,-0.052198 0.062638,-0.073077 0.031319,-0.020879 0.052198,-0.031319 0.073077,-0.041758 0.020879,0 0.052198,-0.01044 0.1148356,-0.031319 0.062638,-0.01044 0.104396,-0.020879 0.1461544,-0.041758 C 7.9845266,6.3518345 8.391671,6.1012841 8.6944194,5.7567773 8.9971678,5.4227101 9.1537618,4.9842469 9.1537618,4.4622669 9.1537618,3.8150117 8.9240906,3.3034713 8.4647482,2.9276457 8.0054058,2.5622597 7.3059526,2.3743469 6.3455094,2.3743469 c -0.835168,0 -1.4928628,0.2192316 -1.9626448,0.6368156 -0.4802216,0.4280236 -0.7098928,0.9082452 -0.7098928,1.4406648 0,0.3549464 0.093956,0.6368156 0.3027484,0.8456076 0.208792,0.208792 0.4593424,0.313188 0.7620908,0.313188 0.2818692,0 0.52198,-0.083517 0.7203324,-0.26099 0.1879128,-0.1774732 0.2923088,-0.4071444 0.2923088,-0.678574 0,-0.208792 -0.052198,-0.3967048 -0.1357148,-0.5637384 C 5.5312206,3.9402869 5.4372642,3.8150117 5.3537474,3.7210553 5.2702306,3.6270989 5.2284722,3.5540217 5.2284722,3.5018237 Z m -0.052198,6.0758472 c 0,0.2923088 0.093956,0.5324201 0.3027484,0.7412121 0.208792,0.208792 0.4489028,0.302748 0.7412116,0.302748 0.2818692,0 0.52198,-0.09396 0.730772,-0.302748 0.208792,-0.208792 0.313188,-0.4489033 0.313188,-0.7412121 0,-0.2818692 -0.104396,-0.52198 -0.313188,-0.730772 -0.208792,-0.208792 -0.4489028,-0.313188 -0.730772,-0.313188 -0.2923088,0 -0.5324196,0.104396 -0.7412116,0.313188 -0.208792,0.208792 -0.3027484,0.4489028 -0.3027484,0.730772 z"
88
+ id="text38"
89
+ aria-label="?" />
90
+ </g>
91
+ </svg>