+TODAY = dt.now().strftime('%Y.%m.%d')
+PAYROLL = os.environ.get('PAYROLL')
+SCHOOL = f"{HOME}/School"
+
+expect_URLs = [
+'budget',
+'cu',
+'allowance'
+]
+
+expect_PATHs = [
+'podcasts',
+]
+
+
+
+URLS = {}
+for url in expect_URLs:
+ key = f'URL_{url.upper()}'
+ result = os.environ.get(key)
+ if not result:
+ raise ValueError(f'Missing expected {key} in environment.')
+ URLS[url] = result
+
+
+PATHS = {}
+for path in expect_PATHs:
+ key = f'PATH_{path.upper()}'
+ result = os.environ.get(key)
+ if not result:
+ raise ValueError(f'Missing expected {key} in environment.')
+ PATHS[path] = result
+
+
+def browse(c, url):
+ c.run(f"librefox {url}", asynchronous=True)
+
+
+def code(c, path):
+ c.run(f"codium {path}")
+
+
+def folder(c, path):
+ c.run(f"nemo {path}")
+ c.run(f"dolphin {path}")
+
+@task
+def go(c, bookmark):
+ var = f'URL_{bookmark.upper()}'
+ url = os.environ.get(var)
+ browse(c, url)
+
+@task
+def cloud_panel(c):
+ go(c, 'cloud')
+
+@task
+def debug(c):
+ result = c.run('which minetest')
+ print(result.ok)
+
+
+@task
+def fix_mouse(c):
+ c.run('xinput --disable 18')
+ c.run('xinput --enable 18')
+
+
+@task
+def fix_invoke_complete(c):
+ c.run('invoke --print-completion-script bash > ~/.invoke-complete.sh')
+
+@task
+def temp(c):
+ c.run('sensors')
+
+
+
+def term(c, path):
+ c.run(f'konsole --separate --workdir {path}', asynchronous=True)
+
+def browse(c, url):
+ c.run(f"librewolf {url}", asynchronous=True)
+
+
+def code(c, path):
+ c.run(f"codium {path}")
+
+
+def folder(c, path):
+ c.run(f'dolphin {path}', asynchronous=True)
+ # c.run(f"nemo {path}")
+