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.
- {nowfocus-0.2.3/src/NowFocus.egg-info → nowfocus-0.2.5}/PKG-INFO +41 -37
- {nowfocus-0.2.3 → nowfocus-0.2.5}/README.md +37 -33
- {nowfocus-0.2.3 → nowfocus-0.2.5}/pyproject.toml +4 -4
- nowfocus-0.2.5/src/desktop-extras/nowfocus.desktop +13 -0
- nowfocus-0.2.5/src/desktop-extras/nowfocus.png +0 -0
- nowfocus-0.2.5/src/desktop-extras/nowfocus.svg +46 -0
- nowfocus-0.2.5/src/desktop-extras/set_gsettings_keybinding.sh +51 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/__main__.py +7 -1
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/conf.py +1 -1
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/todotxt.py +0 -2
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/example-todo.txt +1 -1
- nowfocus-0.2.5/src/nowfocus/icon/icon-0.svg +91 -0
- nowfocus-0.2.5/src/nowfocus/icon/icon-1.svg +91 -0
- nowfocus-0.2.5/src/nowfocus/icon/icon-2.svg +91 -0
- nowfocus-0.2.5/src/nowfocus/icon/icon-3.svg +91 -0
- nowfocus-0.2.5/src/nowfocus/icon/icon-4.svg +91 -0
- nowfocus-0.2.5/src/nowfocus/icon/icon-5.svg +91 -0
- nowfocus-0.2.5/src/nowfocus/icon/icon-6.svg +91 -0
- nowfocus-0.2.5/src/nowfocus/icon/icon-7.svg +91 -0
- nowfocus-0.2.5/src/nowfocus/icon/icon-8.svg +91 -0
- nowfocus-0.2.5/src/nowfocus/icon/icon-9.svg +91 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/icon.svg +40 -22
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/settings.py +96 -52
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/task_window.py +3 -6
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/utils.py +4 -4
- {nowfocus-0.2.3 → nowfocus-0.2.5/src/nowfocus.egg-info}/PKG-INFO +41 -37
- nowfocus-0.2.5/src/nowfocus.egg-info/SOURCES.txt +60 -0
- nowfocus-0.2.5/src/nowfocus.egg-info/top_level.txt +2 -0
- nowfocus-0.2.3/src/NowFocus.egg-info/SOURCES.txt +0 -113
- nowfocus-0.2.3/src/NowFocus.egg-info/top_level.txt +0 -1
- 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.5}/LICENSE +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/setup.cfg +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/__init__.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/activitywatch.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/caldav.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/csv.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/psc_timetracker.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/taskwarrior.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/timewarrior.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/todo_template.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/trello.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/txt.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/connectors/vikunja.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/cancel.png +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/cancel.svg +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/edit.png +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/edit.svg +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/mark-done.png +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/mark-done.svg +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/pause.png +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/pause.svg +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/settings.png +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/icon/settings.svg +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/new_task_dialog.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/session_edit_dialog.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/session_options.py +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/sessions.csv +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/sound/bell-xylophone-g.mp3 +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/sound/dinner-bell.mp3 +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/sound/xylophone-chord.mp3 +0 -0
- {nowfocus-0.2.3 → nowfocus-0.2.5}/src/nowfocus/styles.css +0 -0
- {nowfocus-0.2.3/src/NowFocus.egg-info → nowfocus-0.2.5/src/nowfocus.egg-info}/dependency_links.txt +0 -0
- {nowfocus-0.2.3/src/NowFocus.egg-info → nowfocus-0.2.5/src/nowfocus.egg-info}/entry_points.txt +0 -0
- {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:
|
|
3
|
-
Version: 0.2.
|
|
4
|
-
Summary:
|
|
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/
|
|
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,45 @@ 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
|
```
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
# *
|
|
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,45 @@ 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
|
```
|
|
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
|
-
|
|
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
|
|
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
|
|
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 = "
|
|
3
|
-
version = "0.2.
|
|
2
|
+
name = "nowfocus"
|
|
3
|
+
version = "0.2.5"
|
|
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"
|
|
@@ -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
|
|
@@ -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,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>
|