NowFocus 0.2.3__tar.gz → 0.2.6__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.
- {nowfocus-0.2.3/src/NowFocus.egg-info → nowfocus-0.2.6}/PKG-INFO +44 -38
- {nowfocus-0.2.3 → nowfocus-0.2.6}/README.md +40 -34
- {nowfocus-0.2.3 → nowfocus-0.2.6}/pyproject.toml +4 -4
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/__main__.py +7 -1
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/conf.py +1 -1
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/connectors/todotxt.py +0 -2
- nowfocus-0.2.6/src/nowfocus/desktop-extras/nowfocus.desktop +13 -0
- nowfocus-0.2.6/src/nowfocus/desktop-extras/nowfocus.png +0 -0
- nowfocus-0.2.6/src/nowfocus/desktop-extras/nowfocus.svg +46 -0
- nowfocus-0.2.6/src/nowfocus/desktop-extras/set_gsettings_keybinding.sh +51 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/example-todo.txt +1 -1
- nowfocus-0.2.6/src/nowfocus/icon/icon-0.svg +91 -0
- nowfocus-0.2.6/src/nowfocus/icon/icon-1.svg +91 -0
- nowfocus-0.2.6/src/nowfocus/icon/icon-2.svg +91 -0
- nowfocus-0.2.6/src/nowfocus/icon/icon-3.svg +91 -0
- nowfocus-0.2.6/src/nowfocus/icon/icon-4.svg +91 -0
- nowfocus-0.2.6/src/nowfocus/icon/icon-5.svg +91 -0
- nowfocus-0.2.6/src/nowfocus/icon/icon-6.svg +91 -0
- nowfocus-0.2.6/src/nowfocus/icon/icon-7.svg +91 -0
- nowfocus-0.2.6/src/nowfocus/icon/icon-8.svg +91 -0
- nowfocus-0.2.6/src/nowfocus/icon/icon-9.svg +91 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/icon/icon.svg +40 -22
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/settings.py +96 -52
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/task_window.py +3 -6
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/utils.py +5 -5
- {nowfocus-0.2.3 → nowfocus-0.2.6/src/nowfocus.egg-info}/PKG-INFO +44 -38
- nowfocus-0.2.6/src/nowfocus.egg-info/SOURCES.txt +60 -0
- nowfocus-0.2.3/src/NowFocus.egg-info/SOURCES.txt +0 -113
- nowfocus-0.2.3/src/nowfocus/icon/icon-0.png +0 -0
- nowfocus-0.2.3/src/nowfocus/icon/icon-0.svg +0 -86
- nowfocus-0.2.3/src/nowfocus/icon/icon-1.svg +0 -86
- nowfocus-0.2.3/src/nowfocus/icon/icon-2.svg +0 -86
- nowfocus-0.2.3/src/nowfocus/icon/icon-3.svg +0 -86
- nowfocus-0.2.3/src/nowfocus/icon/icon-4.svg +0 -86
- nowfocus-0.2.3/src/nowfocus/icon/icon-5.svg +0 -86
- nowfocus-0.2.3/src/nowfocus/icon/icon-6.svg +0 -86
- nowfocus-0.2.3/src/nowfocus/icon/icon-7.svg +0 -86
- nowfocus-0.2.3/src/nowfocus/icon/icon-8.svg +0 -86
- nowfocus-0.2.3/src/nowfocus/icon/icon-9.svg +0 -86
- nowfocus-0.2.3/src/nowfocus/icon/icon.png +0 -0
- nowfocus-0.2.3/src/nowfocus/icon/unused/action-unavailable-symbolic.svg +0 -3
- nowfocus-0.2.3/src/nowfocus/icon/unused/applications-engineering-symbolic.svg +0 -3
- nowfocus-0.2.3/src/nowfocus/icon/unused/background-selected-symbolic.svg +0 -5
- nowfocus-0.2.3/src/nowfocus/icon/unused/cancel-operation-symbolic.svg +0 -1
- nowfocus-0.2.3/src/nowfocus/icon/unused/checkbox-checked-symbolic (2).svg +0 -7
- nowfocus-0.2.3/src/nowfocus/icon/unused/checkbox-checked-symbolic.svg +0 -4
- nowfocus-0.2.3/src/nowfocus/icon/unused/checkbox-mixed-symbolic (2).svg +0 -6
- nowfocus-0.2.3/src/nowfocus/icon/unused/checkbox-mixed-symbolic.svg +0 -4
- nowfocus-0.2.3/src/nowfocus/icon/unused/checkbox-symbolic (2).svg +0 -6
- nowfocus-0.2.3/src/nowfocus/icon/unused/checkbox-symbolic.svg +0 -4
- nowfocus-0.2.3/src/nowfocus/icon/unused/clock-app-symbolic.svg +0 -5
- nowfocus-0.2.3/src/nowfocus/icon/unused/document-edit-symbolic.svg +0 -3
- nowfocus-0.2.3/src/nowfocus/icon/unused/document-new-symbolic.svg +0 -5
- nowfocus-0.2.3/src/nowfocus/icon/unused/document-open-recent-symbolic.svg +0 -3
- nowfocus-0.2.3/src/nowfocus/icon/unused/edit-find-symbolic.svg +0 -3
- nowfocus-0.2.3/src/nowfocus/icon/unused/edit-symbolic.svg +0 -5
- nowfocus-0.2.3/src/nowfocus/icon/unused/filter-flagged-symbolic.svg +0 -6
- nowfocus-0.2.3/src/nowfocus/icon/unused/format-unordered-list-symbolic.svg +0 -5
- nowfocus-0.2.3/src/nowfocus/icon/unused/help-about-symbolic.svg +0 -6
- nowfocus-0.2.3/src/nowfocus/icon/unused/list-add-symbolic.svg +0 -3
- nowfocus-0.2.3/src/nowfocus/icon/unused/list-remove-symbolic.svg +0 -3
- nowfocus-0.2.3/src/nowfocus/icon/unused/media-playback-pause.svg +0 -46
- nowfocus-0.2.3/src/nowfocus/icon/unused/media-playback-start-symbolic.svg +0 -3
- nowfocus-0.2.3/src/nowfocus/icon/unused/no-event-symbolic.svg +0 -6
- nowfocus-0.2.3/src/nowfocus/icon/unused/object-select-symbolic.svg +0 -5
- nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-about-symbolic-2.svg +0 -4
- nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-about-symbolic.svg +0 -1
- nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-keyboard-symbolic.svg +0 -1
- nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-notifications-symbolic (2).svg +0 -4
- nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-notifications-symbolic.svg +0 -1
- nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-search-symbolic-2.svg +0 -4
- nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-search-symbolic.svg +0 -1
- nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-system-symbolic.svg +0 -4
- nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-time-symbolic.svg +0 -7
- nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.Settings-wacom-symbolic.svg +0 -1
- nowfocus-0.2.3/src/nowfocus/icon/unused/org.gnome.clocks-symbolic.svg +0 -5
- nowfocus-0.2.3/src/nowfocus/icon/unused/pause-large-symbolic.svg +0 -3
- nowfocus-0.2.3/src/nowfocus/icon/unused/preferences-system-time-symbolic.svg +0 -6
- nowfocus-0.2.3/src/nowfocus/icon/unused/process-stop-symbolic.svg +0 -3
- nowfocus-0.2.3/src/nowfocus/icon/unused/selection-checked.svg +0 -71
- nowfocus-0.2.3/src/nowfocus/icon/unused/software-installed-symbolic.svg +0 -3
- nowfocus-0.2.3/src/nowfocus/icon/unused/stopwatch-symbolic.svg +0 -8
- nowfocus-0.2.3/src/nowfocus/icon/unused/system-settings-symbolic.svg +0 -7
- nowfocus-0.2.3/src/nowfocus/icon/unused/timer-sand-symbolic.svg +0 -8
- nowfocus-0.2.3/src/nowfocus/icon/unused/timer-symbolic.svg +0 -3
- nowfocus-0.2.3/src/nowfocus/icon/unused/user-trash-symbolic (2).svg +0 -3
- nowfocus-0.2.3/src/nowfocus/icon/unused/user-trash-symbolic.svg +0 -10
- nowfocus-0.2.3/src/nowfocus/icon/unused/view-fullscreen-symbolic.svg +0 -8
- nowfocus-0.2.3/src/nowfocus/icon/unused/view-more-horizontal-symbolic.svg +0 -7
- nowfocus-0.2.3/src/nowfocus/icon/unused/view-more-symbolic.svg +0 -7
- nowfocus-0.2.3/src/nowfocus/icon/unused/view-restore-symbolic.svg +0 -3
- nowfocus-0.2.3/src/nowfocus/icon/unused/view-sort-ascending-symbolic.svg +0 -3
- nowfocus-0.2.3/src/nowfocus/icon/unused/view-sort-descending-symbolic.svg +0 -3
- nowfocus-0.2.3/src/nowfocus/icon/unused/view-tasks-unscheduled-symbolic.svg +0 -12
- nowfocus-0.2.3/src/nowfocus/runner.sh +0 -8
- {nowfocus-0.2.3 → nowfocus-0.2.6}/LICENSE +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/setup.cfg +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/__init__.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/connectors/activitywatch.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/connectors/caldav.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/connectors/csv.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/connectors/psc_timetracker.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/connectors/taskwarrior.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/connectors/timewarrior.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/connectors/todo_template.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/connectors/trello.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/connectors/txt.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/connectors/vikunja.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/icon/cancel.png +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/icon/cancel.svg +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/icon/edit.png +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/icon/edit.svg +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/icon/mark-done.png +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/icon/mark-done.svg +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/icon/pause.png +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/icon/pause.svg +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/icon/settings.png +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/icon/settings.svg +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/new_task_dialog.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/session_edit_dialog.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/session_options.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/sessions.csv +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/sound/bell-xylophone-g.mp3 +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/sound/dinner-bell.mp3 +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/sound/xylophone-chord.mp3 +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.6}/src/nowfocus/styles.css +0 -0
- {nowfocus-0.2.3/src/NowFocus.egg-info → nowfocus-0.2.6/src/nowfocus.egg-info}/dependency_links.txt +0 -0
- {nowfocus-0.2.3/src/NowFocus.egg-info → nowfocus-0.2.6/src/nowfocus.egg-info}/entry_points.txt +0 -0
- {nowfocus-0.2.3/src/NowFocus.egg-info → nowfocus-0.2.6/src/nowfocus.egg-info}/requires.txt +0 -0
- {nowfocus-0.2.3/src/NowFocus.egg-info → nowfocus-0.2.6/src/nowfocus.egg-info}/top_level.txt +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
|
-
Name:
|
|
3
|
-
Version: 0.2.
|
|
4
|
-
Summary:
|
|
2
|
+
Name: nowfocus
|
|
3
|
+
Version: 0.2.6
|
|
4
|
+
Summary: nowfocus: the open source task-tracking self-control panel.
|
|
5
5
|
Author: GitFr33
|
|
6
|
-
Project-URL: Homepage, https://gitlab.com/GitFr33/
|
|
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
|
-
# *
|
|
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
|
-
|
|
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,47 @@ NowFocus is a clean, keyboard-driven project time tracker build with python + GT
|
|
|
93
94
|
|
|
94
95
|
## Installation (using pipx)
|
|
95
96
|
|
|
96
|
-
|
|
97
|
+
Run the following in terminal to install and setup:
|
|
97
98
|
```
|
|
98
|
-
|
|
99
|
+
# Install dependencies
|
|
100
|
+
sudo apt install pip pipx gir1.2-appindicator3-0.1 meson libdbus-glib-1-dev patchelf 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
|
-
|
|
105
|
+
# At this point you may need to restart your terminal window
|
|
106
|
+
|
|
107
|
+
# Install nowfocus
|
|
108
|
+
pipx install nowfocus
|
|
109
|
+
|
|
110
|
+
# Enter application directory
|
|
111
|
+
cd ~/.local/share/pipx/venvs/nowfocus/lib/python3.12/site-packages/nowfocus
|
|
112
|
+
|
|
113
|
+
# Copy .desktop and icon to .local/share
|
|
114
|
+
cp src/desktop-extras/nowfocus.desktop ~/.local/share/applications/nowfocus.desktop
|
|
115
|
+
cp src/desktop-extras/nowfocus.svg ~/.local/share/icons/nowfocus.png
|
|
116
|
+
cp src/desktop-extras/nowfocus.svg ~/.local/share/icons/hicolor/scalable/apps/nowfocus.svg
|
|
117
|
+
|
|
118
|
+
# Setup autostart
|
|
119
|
+
cp src/desktop-extras/nowfocus.desktop ~/.config/autostart/nowfocus.desktop
|
|
120
|
+
|
|
121
|
+
# Set Super space as keybinding to raise task window
|
|
122
|
+
chmod +x src/desktop-extras/set_gsettings_keybinding.sh
|
|
123
|
+
|
|
124
|
+
src/desktop-extras/set_gsettings_keybinding.sh "Open nowfocus" nowfocus "<Super>space"
|
|
125
|
+
|
|
126
|
+
# and now Focus!
|
|
127
|
+
nowfocus
|
|
128
|
+
|
|
129
|
+
```
|
|
105
130
|
|
|
106
|
-
4. Add the following command to your startup applications: `nowfocus --force`
|
|
107
131
|
|
|
108
132
|
|
|
109
133
|
## Usage
|
|
110
134
|
|
|
111
135
|
#### Set up to-do lists and time trackers
|
|
112
136
|
|
|
113
|
-
Open
|
|
137
|
+
Open nowfocus **Settings** from the indicator menu or tasks window and connect your to-do lists and time tracker(s)
|
|
114
138
|
|
|
115
139
|
#### Task Window Keybindings
|
|
116
140
|
|
|
@@ -127,8 +151,8 @@ Open NowFocus **Settings** from the indicator menu or tasks window and connect y
|
|
|
127
151
|
#### Commandline Interface
|
|
128
152
|
|
|
129
153
|
- To raise the task window use simply: `nowfocus`
|
|
130
|
-
- If
|
|
131
|
-
- To start timing a task: add the task name as the first positional argument. `nowfocus "checking email"`
|
|
154
|
+
- If nowfocus has crashed or failed to shut down nicely use `nowfocus --force`
|
|
155
|
+
- To start timing a task: add the task name as the first positional argument. `nowfocus "checking email"`
|
|
132
156
|
- To stop timing use `nowfocus stop`
|
|
133
157
|
- Start with verbose logging use: `nowfocus -l 3`
|
|
134
158
|
- Start with targeted verbose logging use: `nowfocus -s trello`
|
|
@@ -143,21 +167,3 @@ Open NowFocus **Settings** from the indicator menu or tasks window and connect y
|
|
|
143
167
|
- Change to `YOUR_INSTALL_PATH` directory with `cd YOUR_INSTALL_PATH/nowfocus`
|
|
144
168
|
- build python module with `python3 -m build` (this should be done in a venv and will require some dependecies...)
|
|
145
169
|
- 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
|
-
# *
|
|
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
|
-
|
|
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,47 @@ NowFocus is a clean, keyboard-driven project time tracker build with python + GT
|
|
|
47
48
|
|
|
48
49
|
## Installation (using pipx)
|
|
49
50
|
|
|
50
|
-
|
|
51
|
+
Run the following in terminal to install and setup:
|
|
51
52
|
```
|
|
52
|
-
|
|
53
|
+
# Install dependencies
|
|
54
|
+
sudo apt install pip pipx gir1.2-appindicator3-0.1 meson libdbus-glib-1-dev patchelf 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
|
-
|
|
59
|
+
# At this point you may need to restart your terminal window
|
|
60
|
+
|
|
61
|
+
# Install nowfocus
|
|
62
|
+
pipx install nowfocus
|
|
63
|
+
|
|
64
|
+
# Enter application directory
|
|
65
|
+
cd ~/.local/share/pipx/venvs/nowfocus/lib/python3.12/site-packages/nowfocus
|
|
66
|
+
|
|
67
|
+
# Copy .desktop and icon to .local/share
|
|
68
|
+
cp src/desktop-extras/nowfocus.desktop ~/.local/share/applications/nowfocus.desktop
|
|
69
|
+
cp src/desktop-extras/nowfocus.svg ~/.local/share/icons/nowfocus.png
|
|
70
|
+
cp src/desktop-extras/nowfocus.svg ~/.local/share/icons/hicolor/scalable/apps/nowfocus.svg
|
|
71
|
+
|
|
72
|
+
# Setup autostart
|
|
73
|
+
cp src/desktop-extras/nowfocus.desktop ~/.config/autostart/nowfocus.desktop
|
|
74
|
+
|
|
75
|
+
# Set Super space as keybinding to raise task window
|
|
76
|
+
chmod +x src/desktop-extras/set_gsettings_keybinding.sh
|
|
77
|
+
|
|
78
|
+
src/desktop-extras/set_gsettings_keybinding.sh "Open nowfocus" nowfocus "<Super>space"
|
|
79
|
+
|
|
80
|
+
# and now Focus!
|
|
81
|
+
nowfocus
|
|
82
|
+
|
|
83
|
+
```
|
|
59
84
|
|
|
60
|
-
4. Add the following command to your startup applications: `nowfocus --force`
|
|
61
85
|
|
|
62
86
|
|
|
63
87
|
## Usage
|
|
64
88
|
|
|
65
89
|
#### Set up to-do lists and time trackers
|
|
66
90
|
|
|
67
|
-
Open
|
|
91
|
+
Open nowfocus **Settings** from the indicator menu or tasks window and connect your to-do lists and time tracker(s)
|
|
68
92
|
|
|
69
93
|
#### Task Window Keybindings
|
|
70
94
|
|
|
@@ -81,8 +105,8 @@ Open NowFocus **Settings** from the indicator menu or tasks window and connect y
|
|
|
81
105
|
#### Commandline Interface
|
|
82
106
|
|
|
83
107
|
- To raise the task window use simply: `nowfocus`
|
|
84
|
-
- If
|
|
85
|
-
- To start timing a task: add the task name as the first positional argument. `nowfocus "checking email"`
|
|
108
|
+
- If nowfocus has crashed or failed to shut down nicely use `nowfocus --force`
|
|
109
|
+
- To start timing a task: add the task name as the first positional argument. `nowfocus "checking email"`
|
|
86
110
|
- To stop timing use `nowfocus stop`
|
|
87
111
|
- Start with verbose logging use: `nowfocus -l 3`
|
|
88
112
|
- Start with targeted verbose logging use: `nowfocus -s trello`
|
|
@@ -97,21 +121,3 @@ Open NowFocus **Settings** from the indicator menu or tasks window and connect y
|
|
|
97
121
|
- Change to `YOUR_INSTALL_PATH` directory with `cd YOUR_INSTALL_PATH/nowfocus`
|
|
98
122
|
- build python module with `python3 -m build` (this should be done in a venv and will require some dependecies...)
|
|
99
123
|
- 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 = "
|
|
3
|
-
version = "0.2.
|
|
2
|
+
name = "nowfocus"
|
|
3
|
+
version = "0.2.6"
|
|
4
4
|
authors = [
|
|
5
5
|
{ name="GitFr33" },
|
|
6
6
|
]
|
|
7
|
-
description = "
|
|
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/
|
|
58
|
+
Homepage = "https://gitlab.com/GitFr33/nowfocus"
|
|
59
59
|
|
|
60
60
|
[project.gui-scripts]
|
|
61
61
|
nowfocus = "nowfocus.__main__:startup"
|
|
@@ -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":
|
|
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 = "
|
|
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']:
|
|
@@ -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
|
|
Binary file
|
|
@@ -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
|
|
@@ -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>
|