vault backup: 2025-11-22 08:14:07

This commit is contained in:
2025-11-22 08:14:07 +01:00
parent fd37421245
commit abc0e1ffbf
222 changed files with 13799 additions and 310 deletions

View File

@@ -0,0 +1,28 @@
---
created: 2025-07-21 13:30
updated: 2025-07-21 14:49
---
```embed
title: "Fetching"
image: "data:image/svg+xml;base64,PHN2ZyBjbGFzcz0ibGRzLW1pY3Jvc29mdCIgd2lkdGg9IjgwcHgiICBoZWlnaHQ9IjgwcHgiICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoMCkiPjxjaXJjbGUgY3g9IjgxLjczNDEzMzYxMTY0OTQxIiBjeT0iNzQuMzUwNDU3MTYwMzQ4ODIiIGZpbGw9IiNlMTViNjQiIHI9IjUiIHRyYW5zZm9ybT0icm90YXRlKDM0MC4wMDEgNDkuOTk5OSA1MCkiPgogIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBjYWxjTW9kZT0ic3BsaW5lIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiB0aW1lcz0iMDsxIiBrZXlTcGxpbmVzPSIwLjUgMCAwLjUgMSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMS41cyIgYmVnaW49IjBzIj48L2FuaW1hdGVUcmFuc2Zvcm0+CjwvY2lyY2xlPjxjaXJjbGUgY3g9Ijc0LjM1MDQ1NzE2MDM0ODgyIiBjeT0iODEuNzM0MTMzNjExNjQ5NDEiIGZpbGw9IiNmNDdlNjAiIHI9IjUiIHRyYW5zZm9ybT0icm90YXRlKDM0OC4zNTIgNTAuMDAwMSA1MC4wMDAxKSI+CiAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIGNhbGNNb2RlPSJzcGxpbmUiIHZhbHVlcz0iMCA1MCA1MDszNjAgNTAgNTAiIHRpbWVzPSIwOzEiIGtleVNwbGluZXM9IjAuNSAwIDAuNSAxIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxLjVzIiBiZWdpbj0iLTAuMDYyNXMiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KPC9jaXJjbGU+PGNpcmNsZSBjeD0iNjUuMzA3MzM3Mjk0NjAzNiIgY3k9Ijg2Ljk1NTE4MTMwMDQ1MTQ3IiBmaWxsPSIjZjhiMjZhIiByPSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzNTQuMjM2IDUwIDUwKSI+CiAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIGNhbGNNb2RlPSJzcGxpbmUiIHZhbHVlcz0iMCA1MCA1MDszNjAgNTAgNTAiIHRpbWVzPSIwOzEiIGtleVNwbGluZXM9IjAuNSAwIDAuNSAxIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxLjVzIiBiZWdpbj0iLTAuMTI1cyI+PC9hbmltYXRlVHJhbnNmb3JtPgo8L2NpcmNsZT48Y2lyY2xlIGN4PSI1NS4yMjEwNDc2ODg4MDIwNyIgY3k9Ijg5LjY1Nzc5NDQ1NDk1MjQxIiBmaWxsPSIjYWJiZDgxIiByPSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzNTcuOTU4IDUwLjAwMDIgNTAuMDAwMikiPgogIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBjYWxjTW9kZT0ic3BsaW5lIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiB0aW1lcz0iMDsxIiBrZXlTcGxpbmVzPSIwLjUgMCAwLjUgMSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMS41cyIgYmVnaW49Ii0wLjE4NzVzIj48L2FuaW1hdGVUcmFuc2Zvcm0+CjwvY2lyY2xlPjxjaXJjbGUgY3g9IjQ0Ljc3ODk1MjMxMTE5NzkzIiBjeT0iODkuNjU3Nzk0NDU0OTUyNDEiIGZpbGw9IiM4NDliODciIHI9IjUiIHRyYW5zZm9ybT0icm90YXRlKDM1OS43NiA1MC4wMDY0IDUwLjAwNjQpIj4KICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgY2FsY01vZGU9InNwbGluZSIgdmFsdWVzPSIwIDUwIDUwOzM2MCA1MCA1MCIgdGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMC41IDAgMC41IDEiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjEuNXMiIGJlZ2luPSItMC4yNXMiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KPC9jaXJjbGU+PGNpcmNsZSBjeD0iMzQuNjkyNjYyNzA1Mzk2NDE1IiBjeT0iODYuOTU1MTgxMzAwNDUxNDciIGZpbGw9IiNlMTViNjQiIHI9IjUiIHRyYW5zZm9ybT0icm90YXRlKDAuMTgzNTUyIDUwIDUwKSI+CiAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIGNhbGNNb2RlPSJzcGxpbmUiIHZhbHVlcz0iMCA1MCA1MDszNjAgNTAgNTAiIHRpbWVzPSIwOzEiIGtleVNwbGluZXM9IjAuNSAwIDAuNSAxIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxLjVzIiBiZWdpbj0iLTAuMzEyNXMiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KPC9jaXJjbGU+PGNpcmNsZSBjeD0iMjUuNjQ5NTQyODM5NjUxMTc2IiBjeT0iODEuNzM0MTMzNjExNjQ5NDEiIGZpbGw9IiNmNDdlNjAiIHI9IjUiIHRyYW5zZm9ybT0icm90YXRlKDEuODY0NTcgNTAgNTApIj4KICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgY2FsY01vZGU9InNwbGluZSIgdmFsdWVzPSIwIDUwIDUwOzM2MCA1MCA1MCIgdGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMC41IDAgMC41IDEiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjEuNXMiIGJlZ2luPSItMC4zNzVzIj48L2FuaW1hdGVUcmFuc2Zvcm0+CjwvY2lyY2xlPjxjaXJjbGUgY3g9IjE4LjI2NTg2NjM4ODM1MDYiIGN5PSI3NC4zNTA0NTcxNjAzNDg4NCIgZmlsbD0iI2Y4YjI2YSIgcj0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoNS40NTEyNiA1MCA1MCkiPgogIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBjYWxjTW9kZT0ic3BsaW5lIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiB0aW1lcz0iMDsxIiBrZXlTcGxpbmVzPSIwLjUgMCAwLjUgMSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMS41cyIgYmVnaW49Ii0wLjQzNzVzIj48L2FuaW1hdGVUcmFuc2Zvcm0+CjwvY2lyY2xlPjxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBjYWxjTW9kZT0ic3BsaW5lIiB2YWx1ZXM9IjAgNTAgNTA7MCA1MCA1MCIgdGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMC41IDAgMC41IDEiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjEuNXMiPjwvYW5pbWF0ZVRyYW5zZm9ybT48L2c+PC9zdmc+"
description: "Fetching https://tweakers.net/pricewatch/1874892/dreame-d10-plus.html?utm_source=google&utm_medium=css&utm_campaign=organic"
url: "https://tweakers.net/pricewatch/1874892/dreame-d10-plus.html?utm_source=google&utm_medium=css&utm_campaign=organic"
favicon: ""
```
https://tweakers.net/pricewatch/1874892/dreame-d10-plus.html
269
https://tweakers.net/pricewatch/2131962/sharkclean-matrix-plus.html
229
With mop
```embed
title: "Dreame L10s Ultra Gen 2: beste prijs - Tweakers"
image: "https://tweakers.net/i/vdbpYqv05d8v7E9Skfi-SCTt0to=/fit-in/120x90/filters:fill(white):strip_exif()/i/2006551226.webp?f=thumb"
description: "Dreame L10s Ultra Gen 2 kopen? Vergelijk de shops met de beste prijzen op Tweakers. Wacht je op een prijsdaling? Stel een alert in."
url: "https://tweakers.net/pricewatch/2127744/dreame-l10s-ultra-gen-2.html"
favicon: ""
aspectRatio: "75"
```
439

View File

@@ -0,0 +1,11 @@
Three ways to try marinading tempeh.
Smoky “Bacon” Marinade
Whisk together 1 Tbsp avocado (or neutral) oil, 3 Tbsp tamari, 2½ Tbsp maple syrup, 1½ tsp liquid smoke, 1½ tsp smoked paprika, a pinch of sea salt, ½ tsp black pepper, and a dash of cayenne (optional). Place thinly sliced tempeh in a shallow dish, pour the marinade over, and let rest for 1015 minutes so the strips absorb the smoky, sweet, and savory notes .
SambalStyle Marinade
In a measuring cup, stir 3 Tbsp sweet soy sauce (kecap manis) with 1 Tbsp palm (or brown) sugar, 1 tsp tamarind concentrate (or 2½ tsp tamarind paste), and ¾ cup water until the sugar dissolves. Pour over bite-sized tempeh pieces and let marinate 15 minutes to develop that tangy-sweet sambal flavor before frying or sautéing .
Taco “Meat” Marinade
Crumble an 8 oz block of tempeh by hand into small bits, then toss with 2 Tbsp low-sodium tamari, 2 Tbsp fresh lime juice, and 1 Tbsp taco seasoning (plus 1 tsp extra if you like it spicier). Let sit for at least 5 minutes (up to 15) so the tempeh soaks up the tangy, umami-packed seasoning before cooking .

View File

@@ -0,0 +1,7 @@
---
created: 2025-06-28 16:05
updated: 2025-06-28 16:05
---
Don't like the smoked varieties.
Don't like the lemon varieties, they are to chemical.
Favourit as of Juni 2025 the Yerba Mate Mas INtelligent

View File

@@ -0,0 +1,4 @@
On the first of May, I fell while climbing over something and slipping, landing with my full weight just below my knee. Initially, it was painful but not more than you would expect, considering the circumstances. The swelling was less than I expected. I even finished my run and when on a run on the 5th.
However, the pain didn't disappear, so I stopped running and playing padel. I did continue with my strength training, although at a much lower weight when training my legs. On the 23rd of June (after about 7 weeks), I asked my doctor about it, and he told me to rest and take a non-steroidal anti-inflammatory drug for at least the next two weeks.
After two weeks, everything was indeed fine - the doctor was right.

Submodule Personal/Areas/MCP-Servers/mcp-wolframalpha added at 3306f22da9

View File

@@ -0,0 +1,7 @@
---
created: 2025-07-18 16:21
updated: 2025-07-18 16:22
tags:
- RandomInterests
---
hi

View File

@@ -0,0 +1,83 @@
---
created: 2025-07-04 08:32
updated: 2025-09-26 14:27
---
Cognitive Behavioral Therapy has undergone revolutionary transformation from 2004-2024, evolving from a structured, Western-centric intervention to a sophisticated, globally-adapted treatment approach validated by over 1,000 randomized controlled trials and neuroimaging evidence showing measurable brain changes. The therapy now reaches millions through digital platforms, demonstrates effectiveness across previously excluded populations, and has spawned successful third-wave variants that address earlier limitations. This comprehensive analysis reveals both **remarkable advances in CBT's scientific foundation and delivery methods**, alongside persistent challenges including a 27% non-responder rate and ongoing debates about its theoretical assumptions.
## The neuroscience revolution validates CBT's biological mechanisms
Two decades of brain imaging research have revealed that CBT creates systematic, measurable changes in brain structure and function, providing biological validation for psychological interventions. Meta-analyses of neuroimaging studies demonstrate that **CBT consistently reduces amygdala hyperactivity while strengthening prefrontal cortex control regions**, with these neural changes directly correlating with symptom improvement. The therapy normalizes disrupted default mode network activity associated with rumination and self-referential processing, while structural neuroplasticity studies show gray matter changes detectable within 9-11 weeks of treatment. Most remarkably, pre-treatment brain scans can now predict CBT response with **64-90% accuracy using machine learning algorithms**, suggesting future possibilities for precision medicine approaches. These findings reveal that CBT works by enhancing top-down emotional regulation through strengthened prefrontal-amygdala connectivity, providing an objective neurobiological foundation that distinguishes it from placebo effects.
## Third-wave therapies mature from innovation to mainstream practice
The period witnessed extraordinary growth of third-wave CBT approaches, with Acceptance and Commitment Therapy alone accumulating **over 1,000 randomized controlled trials by 2024**, establishing it among the most researched psychotherapies globally. Dialectical Behavior Therapy expanded far beyond borderline personality disorder to treat eating disorders, substance use, and emotional dysregulation across age groups, while Mindfulness-Based Cognitive Therapy became recommended treatment for depression relapse prevention with **30-40% reduction in relapse risk**. New approaches like Compassion-Focused Therapy emerged with sophisticated evolutionary frameworks targeting shame and self-criticism, showing large effect sizes for self-compassion improvements. These third-wave therapies successfully addressed earlier CBT limitations by incorporating mindfulness, acceptance, and values-based interventions, with 45% of ACT research now originating from low- and middle-income countries demonstrating global adoption. The establishment of certification programs, professional organizations like the Association for Contextual Behavioral Science with 9,000 members globally, and integration into healthcare systems marks the maturation of these approaches from experimental to evidence-based mainstream treatments.
## Technology transforms accessibility while maintaining clinical effectiveness
Digital innovation fundamentally altered CBT delivery, with meta-analyses of 154 randomized controlled trials showing internet-delivered CBT maintains effectiveness beyond one year with effect sizes comparable to face-to-face therapy. Major platforms like **BetterHelp's network of 35,000+ therapists** and evidence-based apps reaching over 70 million users globally democratized access to CBT. Virtual reality exposure therapy achieved non-inferiority to traditional exposure with the advantage of creating controlled environments for "overexposure" training. The emergence of AI-powered chatbots marked a breakthrough, with Dartmouth's 2024 Therabot study showing **51% average reduction in depression symptoms** and users reporting trust levels comparable to human therapists. Most significantly, the FDA's approval of prescription digital therapeutics like Rejoyn for major depression and DaylightRx for anxiety, with Medicare coverage beginning January 2025, legitimizes digital CBT as medical treatment. However, the digital divide persists with 13.1% of rural households lacking broadband, and concerns about engagement and retention remain challenges for fully self-guided interventions.
## Cultural adaptations prove essential for global effectiveness
Research definitively established that culturally adapted CBT shows superior outcomes to standard protocols, with the Triple-A Framework (Awareness, Assessment, Adjustment) providing systematic adaptation methodology across philosophical, practical, and technical domains. Successful adaptations integrated religious and spiritual elements, with Islamic adaptations incorporating Sufism as mindfulness equivalent and Indigenous approaches using "Two-Eyed Seeing" frameworks combining traditional and Western knowledge. CBT for psychosis studies in Pakistan, China, and the Middle East demonstrated **20-40% reduction in symptom distress** when culturally adapted. The expansion to previously underserved populations proved remarkably successful, with geriatric CBT showing **80% reliable improvement rates** in UK services, autism spectrum adaptations achieving 51% anxiety remission rates, and chronic pain applications demonstrating moderate to large effect sizes. These developments transformed CBT from a Western-centric approach to a globally applicable intervention respecting diverse worldviews and healing traditions.
## Meta-analytic evidence confirms robust effectiveness across conditions
The most comprehensive meta-analysis to date, examining 494 systematic reviews representing 221,128 participants across 27 conditions, found consistent effectiveness with standardized mean differences of 0.23-0.30 for quality of life, anxiety, and pain outcomes. Depression-specific analyses of 409 trials with 52,702 patients revealed CBT equals antidepressants short-term but provides **superior long-term outcomes** with relapse rates of 30.8% versus 76.2% for medication withdrawal. For anxiety disorders, placebo-controlled effect sizes ranged from 0.56 overall to 1.31 for acute stress disorder, with benefits maintained at 12-month follow-up. Cost-effectiveness analyses demonstrated that despite higher initial costs, CBT produces 20 additional quality-adjusted life-days over 5 years compared to medications, with a **73-77% probability of being cost-effective** at standard thresholds. These findings, robust even after adjusting for publication bias, establish CBT as both clinically effective and economically advantageous for long-term mental healthcare.
## Theoretical advances shift focus from content to process
The field experienced fundamental theoretical evolution, with psychological flexibility emerging as the central mechanism underlying effective therapy rather than specific cognitive content changes. Beck's Generic Cognitive Model updates incorporated dual information processing and recovery-oriented approaches focusing on aspirations beyond symptom reduction. The Unified Protocol for Transdiagnostic Treatment demonstrated that **targeting common underlying processes across disorders equals or exceeds disorder-specific protocols** while reducing therapist training burden. Metacognitive Therapy's focus on thinking processes rather than thought content showed 74% recovery rates for depression versus 52% for traditional CBT in comparative trials. Component analyses revealing behavioral activation alone equals full CBT packages challenged assumptions about cognitive specificity, suggesting mechanisms of change may be more about common factors than specific techniques. This shift toward process-based therapy represents movement from mechanistic protocols to flexible, personalized interventions based on individual psychological processes.
## Integration with other approaches addresses earlier limitations
Successful integration with psychodynamic therapy, EMDR, and somatic approaches created more comprehensive treatments, with studies showing integrated approaches achieving **89% remission for generalized anxiety** versus 53% for CBT alone. Combined CBT-medication treatments proved most beneficial for severe cases, though sequential combinations showed comparable outcomes regardless of order. The emergence of unified protocols and transdiagnostic approaches reduced the need for multiple disorder-specific trainings while maintaining effectiveness. Somatic CBT integration addressed criticisms about neglecting body-mind connections, proving particularly effective for trauma where traditional CBT reached limitations. These integrative developments represent mature evolution beyond rigid adherence to pure CBT models, acknowledging that different therapeutic elements serve different functions in healing.
## Critical perspectives reveal persistent limitations and debates
Despite advances, approximately **27% of patients remain non-responders** to CBT, with higher rates for complex trauma and personality disorders. Meta-meta-analyses revealed moderate allegiance effects where researchers' preferred treatments consistently outperform comparisons, raising objectivity questions about effectiveness claims. Cultural critiques highlight that CBT's Western individualistic assumptions conflict with collectivistic values, requiring systematic adaptation rather than simple translation. Relapse rates of 31.6% for CBT versus 41.3% for controls, while favorable, indicate substantial room for improvement. Professional debates increasingly question CBT's "gold standard" status, with social media analyses showing negative content about CBT receiving more engagement than positive content. Theoretical concerns persist about whether CBT's emphasis on "faulty thinking" pathologizes normal cognitive patterns and whether mechanisms of change involve specific techniques or common therapeutic factors.
## Implementation challenges persist despite proven effectiveness
Real-world implementation faces significant barriers including therapist shortages, with community mental health settings particularly underserved in CBT-trained professionals. Training costs and time requirements limit scalability, while maintaining treatment fidelity outside research settings proves challenging. The complexity of cases in community settings often exceeds manualized CBT protocols' scope, requiring flexible adaptation. Access barriers disproportionately affect low-income populations, with transportation, childcare, and financial constraints limiting treatment engagement. Digital solutions partially address these challenges but introduce new barriers through the digital divide and technology literacy requirements.
## Conclusion
The transformation of CBT from 2004-2024 represents remarkable scientific and clinical progress, with neurobiological validation, technological innovation, and cultural adaptation expanding its reach and effectiveness globally. The development of third-wave therapies, transdiagnostic protocols, and integrated approaches successfully addressed many early limitations while maintaining robust empirical support. **Meta-analytic evidence from over 1,000 studies confirms CBT's effectiveness across conditions**, with particular strength in preventing relapse and providing lasting benefits beyond treatment completion.
However, this maturation also brought recognition of CBT's boundaries. The therapy is not universally effective, with significant non-response rates and cultural considerations requiring careful attention. Debates about mechanisms of change and allegiance effects in research suggest need for continued theoretical refinement and methodological rigor. The future trajectory points toward personalized medicine approaches using neurobiological markers, continued technology integration, and flexible process-based interventions adapted to individual and cultural needs. These two decades have transformed CBT from a relatively rigid, symptom-focused intervention to a sophisticated, evolving family of evidence-based approaches that remain central to mental healthcare while acknowledging their place within a broader therapeutic landscape.

View File

@@ -0,0 +1,427 @@
---
created: 2025-11-11 11:00
updated: 2025-11-11 11:00
---
# Daily System: Tracking & Accountability
## The Problem
You have multiple commitments:
- Morning routine (stretch, face, bed, water)
- Meditation (15 min daily - new)
- Running training (3x/week - complex schedule)
- Plus other daily goals
**Issue:** Plans without systems fail. You need reminders, tracking, and accountability.
## The Solution: Three-Layer System
### Layer 1: Habit Tracking App (PRIMARY SYSTEM)
### Layer 2: Obsidian Daily Note Checklist (BACKUP/REVIEW)
### Layer 3: Accountability Mechanisms (ENFORCEMENT)
---
## Layer 1: Habit Tracking App
**Recommended: Habitify** (iOS/Android, free with paid upgrade)
### Why Habitify for Your Needs:
**Time tracking** - Log exact time spent (important for running workouts)
**Notes per habit** - Can note which run you did, how meditation felt
**Reminders** - Multiple per day for different habits
**Streaks** - Visual motivation
**Calendar view** - See patterns over weeks/months
**Groups** - Organize by morning/evening/training
**Free tier** - Enough for your needs
**Alternative if iOS-only: Streaks** ($5 one-time)
- Simpler, more polished
- Limited to 12 habits (enough for you)
- Better widgets
### Your Habitify Setup
**Group 1: Morning Stack (Do in sequence)**
1. Stretch (2-5 min)
2. Clean face (1 min)
3. Make bed (1 min)
4. Drink water bottle (2 min)
5. **Meditate - Headspace** (15 min) ← NEW
- Reminder: 7:00 AM
- Enable time tracking
**Group 2: Running (3x/week - Variable)**
6. Track Repeats (Tue/Thu typically)
- Note: Log which week/workout in notes
- Time tracking enabled
7. Tempo Run (Wed/Fri typically)
- Note: Log workout details
8. Long Run (Weekend)
- Note: Log distance/time
**Group 3: Evening/Flexible**
9. [Add any other daily habits here]
- Reading?
- Journaling?
- Dating app check?
### Daily Workflow with Habitify
**Morning:**
1. Wake up → See Habitify notification
2. Open app → See today's pending habits
3. Complete morning stack in order
4. Check off each one as you complete it
5. Add time/notes if relevant
**Running days:**
1. Check which workout (refer to Running.md or have it in notes)
2. Complete workout
3. Check off in Habitify
4. Log details in notes section
**Evening:**
1. Open Habitify
2. Review day - what's incomplete?
3. Complete remaining habits or note why you didn't
---
## Layer 2: Obsidian Daily Note Checklist
**Purpose:** Backup system + review mechanism
### Daily Note Template
Create this in your daily notes (or create a template):
```markdown
---
created: {{date}}
---
## Morning Stack
- [ ] Stretch
- [ ] Clean face
- [ ] Make bed
- [ ] Drink water
- [ ] Meditate (15 min) - Headspace
## Training Today
**Week:** [Current week from Running.md]
- [ ] Track Repeats: [Details from schedule]
- [ ] Tempo Run: [Details from schedule]
- [ ] Long Run: [Details from schedule]
- [ ] Rest day
## Evening
- [ ] [Other habits]
## Notes
- How did meditation feel?
- Running notes:
- Energy level today:
```
**How to use:**
- Morning: Check Obsidian, see what's planned
- Throughout day: Check off in Habitify (main system)
- Evening: Reconcile - update Obsidian from Habitify
- Weekly review: Look at week's daily notes for patterns
---
## Layer 3: Accountability Mechanisms
Choose based on how much enforcement you need:
### Level 1: Visual Accountability (START HERE)
**Physical Calendar**
- Print 8-week calendar
- Hang on bathroom mirror
- Big X for each day you complete ALL habits
- "Don't break the chain"
**Habitify Widgets**
- Add to home screen
- See streaks without opening app
- Seeing broken streak = motivation
### Level 2: Social Accountability (IF LEVEL 1 ISN'T ENOUGH)
**Accountability Partner**
- Text a friend: "I'm tracking 5 daily habits. Can you check in Sundays?"
- Every Sunday: Send them screenshot of Habitify week
- They don't judge, just acknowledge
- Knowing someone will see = powerful motivator
**Public Commitment (Nuclear option)**
- Post weekly on social media: "Week X of daily meditation: 6/7 days"
- Public shame is motivating for some people
### Level 3: Financial Accountability (NUCLEAR OPTION)
**Beeminder** (beeminder.com)
- Connect goals to credit card
- Miss meditation → Pay $5 (increases each time)
- Miss 3+ running sessions in a week → Pay $10
- Money goes to Beeminder (motivates you to not waste money)
- **Very effective but stressful**
**stickK** (stickk.com)
- Similar to Beeminder
- Can donate to charity you HATE if you fail
- Can assign referee (friend) to verify
- Psychological pain of failing = high
**Only use if:**
- You're consistently failing with Levels 1-2
- You have disposable income to risk
- You respond well to negative consequences
---
## Implementation Plan
### Tonight (Setup):
**Step 1: Download Habitify**
- [ ] Download from App Store/Play Store
- [ ] Create account
- [ ] Skip tutorial (we'll set it up properly)
**Step 2: Set Up Habits in Habitify**
- [ ] Create Group: "Morning Stack"
- Add: Stretch, Clean face, Make bed, Drink water, Meditate
- Set all to "Daily"
- Add reminder: 7:00 AM to "Stretch" (first one triggers the rest)
- [ ] Create Group: "Running"
- Add: Track Repeats (Tue/Thu), Tempo Run (Wed/Fri), Long Run (Sat/Sun)
- Set to specific days
- Enable time tracking + notes
- [ ] Create Group: "Evening" (if needed)
**Step 3: Set Up Obsidian Template (Optional but useful)**
- [ ] Create daily note template with checklist above
- [ ] Or just manually add to tomorrow's note
**Step 4: Choose Accountability Level**
- [ ] Level 1: Print calendar, hang it up
- [ ] Level 2: Text accountability partner
- [ ] Level 3: Sign up for Beeminder/stickK (only if really needed)
**Step 5: Add Habitify Widget to Home Screen**
- [ ] Long press home screen
- [ ] Add Habitify widget
- [ ] Place prominently
### Tomorrow Morning (First Day):
1. **7:00 AM:** Habitify reminder goes off
2. Open Habitify → See morning stack
3. Complete each item, checking off as you go:
- Stretch ✓
- Clean face ✓
- Make bed ✓
- Drink water ✓
- Open Headspace, do session, mark Meditate ✓
4. Check running schedule in Running.md
5. If running day, complete workout later, log in Habitify
6. Evening: Review Habitify, mark X on calendar if all done
### Weekly Review (Every Sunday):
**5-10 minute check-in:**
1. Open Habitify → Statistics tab
2. Review each habit:
- Morning stack: __/7 days
- Meditation: __/7 days
- Running: __/3 expected (did you hit all workouts?)
3. Identify patterns:
- What day did I skip? Why?
- What made it easy this week?
- What got in the way?
4. Adjust for next week:
- Move reminder time?
- Add a new habit?
- Increase difficulty?
5. If accountability partner: Send screenshot
6. Update calendar with weekly stats
---
## Your Complete Daily Workflow
### Morning (7:00 AM - 7:30 AM)
```
Habitify reminder → Open app → Complete stack:
├─ Stretch (2 min)
├─ Clean face (1 min)
├─ Make bed (1 min)
├─ Drink water (2 min)
└─ Meditate - Headspace (15 min)
Total: ~22 minutes
All checked off in Habitify ✓
```
### Running Days (Variable time)
```
Check Running.md for today's workout
├─ Week X, Day Y workout
├─ Complete workout
├─ Log in Habitify with notes
└─ Check off ✓
```
### Evening (Before bed)
```
Open Habitify
├─ What's incomplete?
├─ Complete remaining OR note why not
├─ If all done → X on calendar
└─ Quick reflection: How'd today go?
```
---
## Troubleshooting Common Issues
### "I forgot to check it off"
- Set specific time-based reminders
- Check Habitify right after completing habit, not end of day
- Make checking off part of the habit itself
### "I did it but forgot to track it"
- Habitify allows retroactive checking (back-date)
- But this defeats the purpose - track IN THE MOMENT
- Solution: Phone must be with you during habits
### "I'm traveling / sick / unusual day"
- Habitify lets you skip days intentionally
- Mark as "Skip" rather than leaving incomplete
- Maintains streak psychologically
- Prevents demotivation from broken chain
### "Too many habits, overwhelmed"
- Start with just morning stack + meditation
- Add running tracking after 2 weeks
- Build gradually
- 5-7 daily habits is realistic max
### "Not seeing progress / losing motivation"
- Check weekly stats - focus on % completion
- 80% is excellent (28/35 morning items per week)
- Compare month-over-month, not day-to-day
- Small wins compound
### "App is annoying / too many notifications"
- Reduce reminders to just 1st habit of each stack
- Turn off achievement notifications if distracting
- Customize notification sound to something pleasant
---
## Success Metrics (What Actually Matters)
**NOT:** Perfect 100% every day
**YES:**
- **Morning stack: 80%+ completion** (28/35 items per week)
- **Meditation: 6-7 days per week** (the real goal)
- **Running: Hit planned workouts** (3/3 each week for race prep)
- **Consistency over perfection** - 4 weeks of 80% beats 1 week of 100%
- **Awareness** - You notice when you skip and why
---
## Recommended Stack for You
Based on everything:
**Primary System:**
- **Habitify** (free) - Main tracking + reminders
- **Headspace** ($70/yr) - Meditation content
- **Running.md** (Obsidian) - Reference for workouts
**Accountability:**
- **Physical calendar** - Visual daily reminder
- **Habitify streaks** - Built-in gamification
- **Weekly review** - Self-accountability
**Optional Add-ons:**
- **Accountability partner** - If you need social pressure
- **Obsidian daily notes** - If you want backup tracking
- **Beeminder** - Only if consistently failing
---
## Cost Breakdown
**Free:**
- Habitify (free tier sufficient)
- Physical calendar (print yourself)
- Accountability partner (friend)
- Obsidian (you already use)
**Paid:**
- Headspace: $70/year (~$6/month) - ALREADY COMMITTED
- Streaks (iOS): $5 one-time (optional alternative to Habitify)
- Beeminder: Free to start, pay when you fail (optional)
**Total investment:** $70/year for Headspace (already decided)
**Everything else:** FREE
---
## Next Actions
**Right now (tonight):**
1. [ ] Download Habitify
2. [ ] Set up 3 groups (Morning, Running, Evening)
3. [ ] Add all habits with appropriate frequency
4. [ ] Set 7:00 AM reminder on "Stretch"
5. [ ] Enable time tracking on Meditate and Running habits
6. [ ] Add Habitify widget to home screen
7. [ ] Print 8-week calendar, hang on bathroom mirror
8. [ ] Optional: Text accountability partner
**Tomorrow morning:**
1. [ ] 7:00 AM reminder goes off
2. [ ] Complete morning stack
3. [ ] Check off each item in Habitify as you go
4. [ ] Mark X on calendar before leaving bathroom
**Next Sunday:**
1. [ ] 10 min weekly review
2. [ ] Check Habitify stats
3. [ ] Identify patterns and adjust
4. [ ] Send screenshot to accountability partner if using
---
## The Bottom Line
You don't need a complex system. You need:
1. **One app** that reminds you and tracks (Habitify)
2. **One visual** that keeps you honest (calendar)
3. **One person** who knows what you're doing (optional accountability partner)
4. **One review** per week to course-correct (Sunday check-in)
**Start simple:**
- Habitify + Calendar + Weekly review
- Add accountability partner if you slip
- Add Beeminder only if you're still failing after 4 weeks
**Execute tonight. Review next Sunday. Adjust and continue.**

View File

@@ -0,0 +1 @@
25-11-11, Hunger around 21

View File

@@ -0,0 +1,4 @@
- [ ] Stretch
- [ ] Clean face
- [ ] Make bed
- [ ] Drink a bottle of water

View File

@@ -0,0 +1,482 @@
---
created: 2025-11-11 11:15
updated: 2025-11-11 11:15
---
# Tasker Automation - Meditation Enforcement System
## Your Current Tools
- **Loop Habit Tracker** - Currently using, but ignoring notifications
- **Simple Time Tracker** - Time tracking app
- **Tasker** - Automation powerhouse
## The Problem
You've become immune to simple notifications. You need **automated enforcement** that escalates if you ignore it.
---
## Solution: Tasker-Based Escalating Enforcement System
### Concept
Instead of a single notification you can dismiss:
1. **7:00 AM:** Gentle reminder
2. **7:15 AM:** If not started → Annoying reminder
3. **7:30 AM:** If not started → VERY annoying (locks apps, plays sound, etc.)
4. **8:00 AM:** If not started → Nuclear option (send message to accountability partner)
### How It Works
**Trigger:** Time (7:00 AM)
**Check:** Has "Meditation" timer started in Simple Time Tracker?
**If NO:** Escalate reminders every 15 minutes
**If YES:** Stop reminders, congratulate
---
## Tasker Profiles & Tasks
### Profile 1: Morning Meditation Check (7:00 AM)
**Trigger:** Time - 7:00 AM, Every day
**Task: "Meditation Reminder Level 1"**
```
A1: Variable Set
Name: %MeditationDone
To: 0
A2: Notify
Title: Time to Meditate
Text: Open Headspace - 15 minutes
Icon: [Meditation icon]
Actions: Start:Start Meditation / Snooze:Snooze
A3: Wait
15 minutes
A4: If %MeditationDone = 0
Perform Task: "Meditation Reminder Level 2"
```
### Profile 2: Detect Meditation Started
**Trigger:** App → Headspace Opened
OR
**Trigger:** Simple Time Tracker → "Meditation" activity started
**Task: "Meditation Started"**
```
A1: Variable Set
Name: %MeditationDone
To: 1
A2: Cancel All Previous Meditation Reminders
A3: Notify
Title: Great! Meditation Started
Text: Keep going - 15 minutes
```
### Profile 3: Detect Meditation Completed
**Trigger:** Simple Time Tracker → "Meditation" activity stopped
AND Duration >= 10 minutes
**Task: "Meditation Completed"**
```
A1: Variable Set
Name: %MeditationDone
To: 2
A2: Notify Sound/Vibrate
[Positive sound]
A3: Notify
Title: Meditation Complete! ✓
Text: Well done - streak continues
A4: HTTP Post to Beeminder (optional)
[Log completion]
A5: Variable Add
Name: %MeditationStreak
Value: 1
```
### Task: "Meditation Reminder Level 2" (7:15 AM if not started)
```
A1: Play Media
File: [Annoying sound file]
Volume: 80%
A2: Notify
Title: MEDITATION REMINDER
Text: You're 15 minutes late. Start now!
Priority: Max
LED: Red
A3: Flash
Text: MEDITATE NOW
Long: On
A4: Wait
15 minutes
A5: If %MeditationDone = 0
Perform Task: "Meditation Reminder Level 3"
```
### Task: "Meditation Reminder Level 3" (7:30 AM if not started)
**Nuclear escalation:**
```
A1: Play Ringtone
[Loud, annoying ringtone]
Volume: Max
Repeat: Until dismissed
A2: Notification
Title: MEDITATION: LAST WARNING
Text: Apps will lock in 5 minutes if you don't start
Priority: Max
Persistent: On
A3: Vibrate Pattern
[Long vibration]
A4: Flash
Text: START MEDITATION NOW
Long: On
A5: Wait
5 minutes
A6: If %MeditationDone = 0
Perform Task: "Meditation Lockdown"
```
### Task: "Meditation Lockdown" (7:35 AM if still not started)
**The nuclear option:**
```
A1: App → Block All Apps
Except: Headspace, Phone, Messages
[Using AppBlock or Custom Overlay]
A2: Play Media
File: [Very annoying alarm sound]
Volume: Max
Loop: Until meditation started
A3: Send SMS (Optional - Accountability Partner)
To: [Friend's number]
Message: "I haven't meditated yet today. Hold me accountable."
A4: AutoNotification
Title: APPS LOCKED
Text: Open Headspace to unlock your phone
Persistent: On
Can't Dismiss: On
A5: Create Scene
[Full screen overlay that only dismisses when meditation starts]
Text: "Your phone is locked until you meditate"
Button: "Open Headspace"
```
### Task: "Unlock After Meditation"
**Trigger:** %MeditationDone = 1 (meditation started)
```
A1: Stop All Sounds
A2: Unblock Apps
A3: Destroy Scene
A4: Notification
Title: Apps Unlocked
Text: Good job starting. Finish the session!
```
---
## Simple Time Tracker Integration
### Setup in Simple Time Tracker
1. Create activity: "Meditation"
- Icon: [Meditation icon]
- Color: Calm blue/purple
- Goal: 15 minutes daily
2. Add widget to home screen
- Quick-start meditation timer
- One tap to begin
### Tasker Integration Options
**Option A: Detect App Launch (Simpler)**
- Profile: App → Headspace
- When opened → Set %MeditationDone = 1
- When closed (>10 min later) → Set %MeditationDone = 2
**Option B: Detect Time Tracker Activity (More Accurate)**
- Use AutoNotification or Tasker to detect Simple Time Tracker notifications
- When "Meditation" activity starts → Set %MeditationDone = 1
- When stops (>=10 min) → Set %MeditationDone = 2
**Option C: HTTP/Intent Integration (Most Reliable)**
- Simple Time Tracker supports Tasker intents
- Create intent to start "Meditation" activity
- Tasker detects when activity is running
---
## Beeminder Integration (Optional Financial Stakes)
### Setup
1. Create Beeminder goal: "Meditate 6 days/week"
2. Get API key from Beeminder
3. Add to Tasker
### Tasker HTTP Post When Complete
**In "Meditation Completed" task:**
```
HTTP Post
Server: https://www.beeminder.com/api/v1/users/[USERNAME]/goals/meditation/datapoints.json
Path:
Data:
auth_token=[YOUR_API_KEY]
value=1
comment=Completed via Tasker
Content Type: application/json
```
**Result:** Automatic logging to Beeminder when you complete meditation
**Consequence:** Miss meditation → Beeminder charges you $5+
---
## Implementation Levels (Choose Your Enforcement)
### Level 1: Basic Reminders
- 7:00 AM: Gentle notification
- 7:15 AM: Annoying notification
- 7:30 AM: Very annoying notification
- **No app locking, no external accountability**
### Level 2: App Locking
- All of Level 1, PLUS
- 7:35 AM: Lock all apps except Headspace
- Can't use phone until meditation started
- **Forces action through restriction**
### Level 3: Social Accountability
- All of Level 2, PLUS
- 7:35 AM: Auto-send text to accountability partner
- "I haven't meditated yet, hold me accountable"
- **Social pressure + restriction**
### Level 4: Financial + Social + Locking (Nuclear)
- All of Level 3, PLUS
- Beeminder integration (auto-logs, charges if you miss)
- **Maximum enforcement**
---
## Recommended Setup for You
Based on "I ignore all app notifications":
### Start with Level 2 (App Locking)
**Why:**
- Level 1 won't work (you already ignore notifications)
- Level 2 makes ignoring PAINFUL (can't use phone)
- No external judgment (Level 3) yet
- No money (Level 4) yet
**Implementation:**
1. Set up Profiles 1-3 (reminders + escalation)
2. Add "Meditation Lockdown" task (locks apps at 7:35 AM)
3. Add detection for Headspace launch (unlocks apps)
4. Test for 1 week
**If Level 2 still doesn't work after 1 week:**
- Add Level 3 (text to friend)
- Or jump to Level 4 (Beeminder)
---
## Additional Tasker Automations for Meditation
### Auto-Open Headspace After Water
**Trigger:** Simple Time Tracker → "Drink Water" activity stopped
**Task:**
```
A1: Wait 5 seconds
A2: Launch App
App: Headspace
A3: Notify
Title: Morning Stack Complete
Text: Time for meditation - app opened for you
```
**Why:** Removes decision fatigue, automatically opens Headspace after your water routine
### Evening Check-In
**Trigger:** Time - 9:00 PM
**Task:**
```
A1: If %MeditationDone = 2
Say: "Great job meditating today!"
Notify: "Meditation streak: %MeditationStreak days"
A2: Else
Say: "You didn't meditate today. Better luck tomorrow."
Variable Set: %MeditationStreak = 0
Notify: "Streak broken. Start fresh tomorrow."
```
### Weekly Stats
**Trigger:** Time - Sunday, 8:00 PM
**Task:**
```
A1: Calculate meditation days this week
A2: Send SMS to Accountability Partner
To: [Friend]
Message: "This week's meditation: %DaysCompleted/7 days"
A3: Variable Set: %WeeklyMeditationDays = 0
[Reset counter]
```
---
## Physical Setup to Support Automation
**Tonight:**
1. Put phone on meditation cushion/chair to charge
2. Put headphones next to phone
3. Set up Simple Time Tracker "Meditation" activity
4. Create basic Tasker profile (just 7:00 AM reminder to start)
**Tomorrow:**
1. Test the basic automation
2. If you ignore it, add Level 2 (app locking)
3. If you still ignore it, add Level 3 (social accountability)
**Why this works:**
- You're a power user (Tasker + time tracking already)
- Leverages your existing tools
- Escalating automation you CAN'T ignore
- Removes manual tracking (automatic via Tasker)
---
## Tasker Profiles Summary
| Time | Profile | Action |
|------|---------|--------|
| 7:00 AM | Reminder L1 | Gentle notification |
| 7:15 AM | Reminder L2 | Annoying notification + sound |
| 7:30 AM | Reminder L3 | Very annoying + vibrate |
| 7:35 AM | Lockdown | Lock all apps except Headspace |
| On start | Detection | Unlock apps, stop sounds |
| On complete | Logging | Log to Beeminder, update streak |
| 9:00 PM | Check-in | Review day, update streak |
---
## Next Steps
**Tonight (30 minutes):**
1. **Simple Time Tracker:**
- [ ] Create "Meditation" activity
- [ ] Set goal: 15 min daily
- [ ] Add widget to home screen
2. **Tasker - Basic Setup:**
- [ ] Profile: Time 7:00 AM → Notify
- [ ] Profile: App Headspace → Set %MeditationDone=1
- [ ] Test tomorrow morning
3. **Physical:**
- [ ] Phone charging on meditation cushion
- [ ] Headphones ready
**After 2-3 Days (If You're Ignoring It):**
1. **Tasker - Add Escalation:**
- [ ] Add 7:15 AM Level 2 reminder (annoying)
- [ ] Add 7:30 AM Level 3 reminder (very annoying)
- [ ] Test escalation
**After 1 Week (If Still Struggling):**
1. **Tasker - Add Enforcement:**
- [ ] Add 7:35 AM app locking
- [ ] OR add SMS to accountability partner
- [ ] OR set up Beeminder integration
**The key:** Start simple, add enforcement only if needed.
---
## Resources
**Tasker Profiles for Meditation:**
- r/Tasker - Search "habit enforcement"
- TaskerNet - Download pre-made profiles
**Simple Time Tracker + Tasker:**
- Simple Time Tracker supports intents/broadcasts
- Check app settings → "Send intent on activity start/stop"
**Beeminder API:**
- https://api.beeminder.com/#beeminder-api-reference
- Tasker HTTP Post guide: https://tasker.joaoapps.com/userguide/en/help/ah_http_post.html
**App Locking with Tasker:**
- Use "Block App" action (Tasker 6.0+)
- Or create custom Scene that overlays all apps
- Or integrate with AppBlock app
---
## Bottom Line
You don't need a new app. You have the tools to build something that **forces** you to meditate:
**Your advantage:**
- Already using Tasker (most people don't have this skill)
- Already using Simple Time Tracker (integrates with Tasker)
- Power user mindset (you can customize everything)
**Your system:**
1. Start simple: 7:00 AM Tasker notification
2. Add escalation if needed: Annoying sounds, vibrations
3. Add enforcement if still failing: Lock apps, text friend
4. Add consequences if nuclear needed: Beeminder charges
**Start tonight with the basic profile. Build from there based on what you actually need.**

View File

@@ -1,6 +1,21 @@
---
created: 2025-11-02 10:48
updated: 2025-11-02 10:48
---
# Gitea Setup on TrueNAS Scale
## Installation Options
## Installation Status
**Gitea is currently installed and working!**
- Deployed using Docker with Traefik reverse proxy
- Accessible via HTTPS through Traefik
- SSH access configured for git operations
- All services operational
---
## Installation Options (Reference)
### Option 1: TrueNAS Scale Apps (Recommended for Beginners)
@@ -237,15 +252,21 @@ Plenty of headroom for other services.
---
## Next Steps
## Completed Setup Steps
- [ ] Choose installation method (TrueNAS App vs Custom Docker)
- [ ] Create storage dataset for Gitea data
- [ ] Install Gitea
- [ ] Complete initial setup wizard
- [ ] Create admin account
- [ ] Configure SSH access
- [ ] Set up backup strategy
- [ ] Migrate existing repositories
- [ ] (Optional) Set up HTTPS with reverse proxy
- [ ] (Optional) Configure external access via VPN or port forwarding
- [x] Choose installation method (Custom Docker with Traefik)
- [x] Create storage dataset for Gitea data
- [x] Install Gitea
- [x] Complete initial setup wizard
- [x] Create admin account
- [x] Configure SSH access
- [x] Set up HTTPS with Traefik reverse proxy
- [x] Configure external access via port forwarding
## Optional Next Steps
- [ ] Set up automated backup strategy
- [ ] Migrate existing repositories from other platforms
- [ ] Configure repository mirroring
- [ ] Set up webhooks for CI/CD integration
- [ ] Configure additional authentication providers (OAuth, LDAP)

View File

@@ -1,5 +1,18 @@
---
created: 2025-11-02 10:48
updated: 2025-11-11 16:24
---
# TrueNAS Quick Reference
## Current Status
**All services operational:**
- Traefik (reverse proxy with SSL)
- Gitea (git service)
- Servarr stack (media automation)
---
## Common Commands
### Docker Management

View File

@@ -1,3 +1,7 @@
---
created: 2025-11-02 10:47
updated: 2025-11-02 10:47
---
# Recommended Setup for Your TrueNAS
## Your Situation
@@ -256,18 +260,27 @@ If you already have:
---
## Next Steps Checklist
## Setup Status
- [ ] Get Cloudflare API token/key
- [ ] SSH into TrueNAS
- [ ] Verify `/mnt/tank/stacks/` directory structure
- [ ] Deploy Traefik stack
- [ ] Configure router port forwarding (80, 443, 2222)
- [ ] Add DNS records in Cloudflare
- [ ] Deploy Gitea stack
- [ ] Modify existing stack to connect to Traefik
- [ ] Test access to all services via HTTPS
- [ ] Configure backups
### ✅ Completed Steps
- [x] Get Cloudflare API token/key
- [x] SSH into TrueNAS
- [x] Verify `/mnt/tank/stacks/` directory structure
- [x] Deploy Traefik stack
- [x] Configure router port forwarding (80, 443, 2222)
- [x] Add DNS records in Cloudflare
- [x] Deploy Gitea stack
- [x] Test access to all services via HTTPS
**Status:** Git service is operational and working! 🎉
### 🔜 Optional Next Steps
- [ ] Modify existing Servarr stack to connect to Traefik (if desired)
- [ ] Configure automated backups for Gitea
- [ ] Set up additional services through Traefik
- [ ] Configure Traefik dashboard access
---

View File

@@ -1,3 +1,7 @@
---
created: 2025-11-02 10:47
updated: 2025-11-02 10:47
---
# TrueNAS Server
## Overview
@@ -22,11 +26,15 @@ Documentation for TrueNAS home server setup, configuration, and services.
## Services & Applications
**Currently Deployed:**
- Servarr Stack (VPN-routed media automation) - See [[servarr.yaml]]
- **Traefik** - Reverse proxy with SSL management
-**Gitea** - Self-hosted Git service (accessible via Traefik)
-**Servarr Stack** - VPN-routed media automation - See [[servarr.yaml]]
- Gluetun (ProtonVPN), qBittorrent, Sonarr, Radarr, Lidarr, Prowlarr, Bazarr, Recyclarr, Dozzle, Watchtower
**Status:** All services operational
**Start Here:**
- [[Recommended Setup]] - ⭐ Your complete setup plan (Traefik + Gitea + existing stack)
- [[Recommended Setup]] - ⭐ Setup guide (implemented and working)
**Detailed Guides:**
- [[Traefik Multi-Stack Setup]] - One Traefik instance for multiple service stacks

View File

@@ -0,0 +1,157 @@
---
created: 2025-11-11 16:30
updated: 2025-11-11 16:30
---
# Tasker Routine Reminders Project
Standardized Tasker automation project for daily routine reminders with notification buttons that trigger actions.
## Project: Routine_Reminders.prj.xml
### Naming Conventions
**Commands** (used in AutoNotification buttons/filters):
- Format: `cmd_<action>_<target>`
- Examples: `cmd_open_skincare_note`, `cmd_mark_skincare_done`
**Notification IDs**:
- Format: `notif_<routine>_<time>`
- Examples: `notif_skincare_morning`, `notif_exercise_prep`
**Profiles**:
- Time triggers: `Trigger <Routine> Notification`
- Event listeners: `Event: <Action> <Target>`
**Tasks**:
- Notification display: `Show <Routine> Notification`
- Actions: `<Action> <Target>` (e.g., `Open Skincare Note`, `Mark Exercise Done`)
### Project Structure
#### Time-Based Triggers (show notifications at specific times)
- `Trigger Skincare Notification` → 7:30 AM → Shows skincare reminder
- `Trigger Exercise Notification` → 11:30 AM → Shows exercise reminder
#### Event Listeners (respond to notification button taps)
- `Event: Mark Skincare Done` → Listens for `cmd_mark_skincare_done` → Marks habit complete + dismisses notification
- `Event: Mark Exercise Done` → Listens for `cmd_mark_exercise_done` → Dismisses notification
- `Event: Open Skincare Note` → Listens for `cmd_open_skincare_done` → Opens Obsidian note
- `Event: Open Exercise Note` → Listens for `cmd_open_exercise_note` → Opens Obsidian note
#### Notification Tasks (display the actual notifications)
- `Show Skincare Notification` → Creates notification with buttons:
- Button 1: "Open Note" → Sends `cmd_open_skincare_note`
- Button 2: "Mark Done" → Sends `cmd_mark_skincare_done`
- `Show Exercise Notification` → Creates notification with buttons:
- Button 1: "Open Note" → Sends `cmd_open_exercise_note`
- Button 2: "Mark Done" → Sends `cmd_mark_exercise_done`
#### Action Tasks (perform actual actions)
- `Open Skincare Note` → Opens `Personal/Projects/Skincare/Skincare Morning` in Obsidian
- `Open Exercise Note` → Opens exercise note in Obsidian
- `Open Diet Note` → Opens diet note in Obsidian
- `Mark Skincare Done` → Checks off habit in Loop Habit Tracker + dismisses notification
- `Mark Exercise Done` → Dismisses notification
### How It Works
1. **At trigger time** (e.g., 7:30 AM):
- Profile `Trigger Skincare Notification` activates
- Runs task `Show Skincare Notification`
- Notification appears with two buttons
2. **When button is tapped**:
- AutoNotification sends command (e.g., `cmd_open_skincare_note`)
- Event profile listens for that command (e.g., `Event: Open Skincare Note`)
- Runs linked task (e.g., `Open Skincare Note`)
- Opens Obsidian to the correct note
3. **When "Mark Done" is tapped**:
- Sends `cmd_mark_skincare_done` command
- `Event: Mark Skincare Done` profile catches it
- Runs `Mark Skincare Done` task
- Checks off habit in Loop Habit Tracker
- Dismisses the notification
### Adding New Routines
To add a new routine (e.g., "Meditation"):
1. **Create time trigger profile**:
- Name: `Trigger Meditation Notification`
- Trigger: Time (e.g., 7:00 AM)
- Task: `Show Meditation Notification`
2. **Create notification display task**:
- Name: `Show Meditation Notification`
- Action: AutoNotification
- Notification ID: `notif_meditation_morning`
- Button 1 command: `cmd_open_meditation_note`
- Button 2 command: `cmd_mark_meditation_done`
3. **Create event listener profiles**:
- `Event: Open Meditation Note` → Listens for `cmd_open_meditation_note`
- `Event: Mark Meditation Done` → Listens for `cmd_mark_meditation_done`
4. **Create action tasks**:
- `Open Meditation Note` → Opens Obsidian note
- `Mark Meditation Done` → Marks habit complete + dismisses notification
### Dependencies
- **AutoNotification** (Joao Apps) - For creating interactive notifications and listening to button commands
- **Loop Habit Tracker** - For checking off habits
- **Obsidian** - For opening notes via obsidian:// URLs
### Files
- `Routine_Reminders.prj.xml` - Main project file (import into Tasker)
- `Skincare_Demo_Standardized.prj.xml` - Original file before standardization
- `standardize_tasker_v2.py` - Python script used for standardization
### Standardization Script
Run `standardize_tasker_v2.py` to:
- Standardize all naming conventions
- Link notification buttons to event profiles
- Add missing event listeners
- Remove trailing spaces and inconsistencies
```bash
python3 standardize_tasker_v2.py
```
### Import Instructions
1. Open Tasker
2. Long-press Projects tab
3. Select "Import Project"
4. Navigate to `Routine_Reminders.prj.xml`
5. Import
6. Enable profiles
### Tips
- Use `cmd_` prefix for all AutoNotification commands (consistency + easy grep)
- Use `notif_` prefix for all notification IDs (avoids conflicts)
- Always create event listener profiles for button commands
- Link event profiles to existing action tasks via `mid0` (task ID)
### Troubleshooting
**Button doesn't do anything when tapped:**
- Check that event profile exists for that command
- Verify command name matches exactly (case-sensitive)
- Check that event profile is enabled
- Verify `mid0` in profile points to correct task ID
**Notification doesn't appear:**
- Check time trigger is correct and profile is enabled
- Verify notification display task is working (run manually)
- Check AutoNotification permissions
**Wrong note opens:**
- Check Obsidian URL in action task
- Verify vault name and file path are correct
- Test URL in browser first

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,800 @@
<TaskerData sr="" dvi="1" tv="6.5.11">
<Profile sr="prof104" ve="2">
<cdate>1762631944649</cdate>
<clp>true</clp>
<edate>1762935025169</edate>
<flags>8</flags>
<id>104</id>
<mid0>105</mid0>
<nme>Launch Skincare Notification</nme>
<Time sr="con0">
<fh>7</fh>
<fm>30</fm>
<th>7</th>
<tm>30</tm>
</Time>
</Profile>
<Profile sr="prof107" ve="2">
<cdate>1762862939813</cdate>
<clp>true</clp>
<edate>1762935050872</edate>
<flags>8</flags>
<id>107</id>
<mid0>108</mid0>
<Event sr="con0" ve="2">
<code>1825107102</code>
<pri>0</pri>
<Bundle sr="arg0">
<Vals sr="val">
<com.twofortyfouram.locale.intent.extra.BLURB>Event Behaviour
Filter: mark skincare done </com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<command_params_var>anpar</command_params_var>
<command_params_var-type>java.lang.String</command_params_var-type>
<command_var>ancomm</command_var>
<command_var-type>java.lang.String</command_var-type>
<config_notification_command>mark skincare done </config_notification_command>
<config_notification_command-type>java.lang.String</config_notification_command-type>
<message_single_case_insensitive>false</message_single_case_insensitive>
<message_single_case_insensitive-type>java.lang.Boolean</message_single_case_insensitive-type>
<message_single_exact>false</message_single_exact>
<message_single_exact-type>java.lang.Boolean</message_single_exact-type>
<message_single_regex>false</message_single_regex>
<message_single_regex-type>java.lang.Boolean</message_single_regex-type>
<message_var>anmessage</message_var>
<message_var-type>java.lang.String</message_var-type>
<net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED>true</net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED>
<net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED-type>java.lang.Boolean</net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED-type>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES>&lt;StringArray sr=""&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;%ancomm
Everything to the right of =:=
Everything to the right of =:=&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;%anmessage
Whole AutoNotification Message
Whole AutoNotification Message&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&gt;%anpar()
Array of single words to the left of =:=
Array of single words to the left of =:=&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&gt;&lt;/StringArray&gt;</net.dinglisch.android.tasker.RELEVANT_VARIABLES>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>
<net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT>10000</net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT>
<net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT-type>java.lang.Integer</net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT-type>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>message_var command_var command_params_var config_notification_command plugininstanceid plugintypeid </net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
<plugininstanceid>e1a87f0a-2e17-4b02-ab14-479198b7aea8</plugininstanceid>
<plugininstanceid-type>java.lang.String</plugininstanceid-type>
<plugintypeid>com.joaomgcd.autonotification.intent.IntentCommandEvent</plugintypeid>
<plugintypeid-type>java.lang.String</plugintypeid-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.joaomgcd.autonotification</Str>
<Str sr="arg2" ve="3">com.joaomgcd.autonotification.activity.ActivityConfigConditionTaskerEvent</Str>
<Int sr="arg3" val="1"/>
</Event>
</Profile>
<Profile sr="prof109" ve="2">
<cdate>1762631944649</cdate>
<clp>true</clp>
<edate>1762935044697</edate>
<flags>8</flags>
<id>109</id>
<mid0>110</mid0>
<nme>Launch Prepare For Exercise Notification</nme>
<Time sr="con0">
<fh>11</fh>
<fm>30</fm>
<th>11</th>
<tm>30</tm>
</Time>
</Profile>
<Profile sr="prof111" ve="2">
<cdate>1762934954023</cdate>
<edate>1762935062373</edate>
<flags>8</flags>
<id>111</id>
<mid0>112</mid0>
<Event sr="con0" ve="2">
<code>1825107102</code>
<pri>0</pri>
<Bundle sr="arg0">
<Vals sr="val">
<com.twofortyfouram.locale.intent.extra.BLURB>Event Behaviour
Filter: mark exercise done</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<command_params_var>anpar</command_params_var>
<command_params_var-type>java.lang.String</command_params_var-type>
<command_var>ancomm</command_var>
<command_var-type>java.lang.String</command_var-type>
<config_notification_command>mark exercise done</config_notification_command>
<config_notification_command-type>java.lang.String</config_notification_command-type>
<message_single_case_insensitive>false</message_single_case_insensitive>
<message_single_case_insensitive-type>java.lang.Boolean</message_single_case_insensitive-type>
<message_single_exact>false</message_single_exact>
<message_single_exact-type>java.lang.Boolean</message_single_exact-type>
<message_single_regex>false</message_single_regex>
<message_single_regex-type>java.lang.Boolean</message_single_regex-type>
<message_var>anmessage</message_var>
<message_var-type>java.lang.String</message_var-type>
<net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED>true</net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED>
<net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED-type>java.lang.Boolean</net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED-type>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES>&lt;StringArray sr=""&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;%ancomm
Everything to the right of =:=
Everything to the right of =:=&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;%anmessage
Whole AutoNotification Message
Whole AutoNotification Message&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&gt;%anpar()
Array of single words to the left of =:=
Array of single words to the left of =:=&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&gt;&lt;/StringArray&gt;</net.dinglisch.android.tasker.RELEVANT_VARIABLES>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>
<net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT>10000</net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT>
<net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT-type>java.lang.Integer</net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT-type>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>message_var command_var command_params_var config_notification_command plugininstanceid plugintypeid </net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
<plugininstanceid>6cbbccc1-1242-4f6a-861e-cfe4b82309fc</plugininstanceid>
<plugininstanceid-type>java.lang.String</plugininstanceid-type>
<plugintypeid>com.joaomgcd.autonotification.intent.IntentCommandEvent</plugintypeid>
<plugintypeid-type>java.lang.String</plugintypeid-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.joaomgcd.autonotification</Str>
<Str sr="arg2" ve="3">com.joaomgcd.autonotification.activity.ActivityConfigConditionTaskerEvent</Str>
<Int sr="arg3" val="1"/>
</Event>
</Profile>
<Project sr="proj0" ve="2">
<cdate>1762862634390</cdate>
<name>Skincare Demo</name>
<pids>111,107,109,104</pids>
<psort>ActiveAlpha</psort>
<tids>108,105,112,82,110</tids>
</Project>
<Task sr="task105">
<cdate>1762631971435</cdate>
<edate>1762934992403</edate>
<id>105</id>
<nme>Open Skincare Notification</nme>
<pri>6</pri>
<Action sr="act0" ve="7">
<code>166160670</code>
<Bundle sr="arg0">
<Vals sr="val">
<ActionIconString1>&lt;null&gt;</ActionIconString1>
<ActionIconString1-type>java.lang.String</ActionIconString1-type>
<ActionIconString2>&lt;null&gt;</ActionIconString2>
<ActionIconString2-type>java.lang.String</ActionIconString2-type>
<ActionIconString3>&lt;null&gt;</ActionIconString3>
<ActionIconString3-type>java.lang.String</ActionIconString3-type>
<ActionIconString4>&lt;null&gt;</ActionIconString4>
<ActionIconString4-type>java.lang.String</ActionIconString4-type>
<ActionIconString5>&lt;null&gt;</ActionIconString5>
<ActionIconString5-type>java.lang.String</ActionIconString5-type>
<AppendTexts>false</AppendTexts>
<AppendTexts-type>java.lang.Boolean</AppendTexts-type>
<BackgroundColor>&lt;null&gt;</BackgroundColor>
<BackgroundColor-type>java.lang.String</BackgroundColor-type>
<BadgeType>&lt;null&gt;</BadgeType>
<BadgeType-type>java.lang.String</BadgeType-type>
<Button1UnlockScreen>false</Button1UnlockScreen>
<Button1UnlockScreen-type>java.lang.Boolean</Button1UnlockScreen-type>
<Button2UnlockScreen>false</Button2UnlockScreen>
<Button2UnlockScreen-type>java.lang.Boolean</Button2UnlockScreen-type>
<Button3UnlockScreen>false</Button3UnlockScreen>
<Button3UnlockScreen-type>java.lang.Boolean</Button3UnlockScreen-type>
<Button4UnlockScreen>false</Button4UnlockScreen>
<Button4UnlockScreen-type>java.lang.Boolean</Button4UnlockScreen-type>
<Button5UnlockScreen>false</Button5UnlockScreen>
<Button5UnlockScreen-type>java.lang.Boolean</Button5UnlockScreen-type>
<ChronometerCountDown>false</ChronometerCountDown>
<ChronometerCountDown-type>java.lang.Boolean</ChronometerCountDown-type>
<Colorize>false</Colorize>
<Colorize-type>java.lang.Boolean</Colorize-type>
<DismissOnTouchVariable>&lt;null&gt;</DismissOnTouchVariable>
<DismissOnTouchVariable-type>java.lang.String</DismissOnTouchVariable-type>
<ExtraInfo>&lt;null&gt;</ExtraInfo>
<ExtraInfo-type>java.lang.String</ExtraInfo-type>
<GroupAlertBehaviour>&lt;null&gt;</GroupAlertBehaviour>
<GroupAlertBehaviour-type>java.lang.String</GroupAlertBehaviour-type>
<GroupKey>&lt;null&gt;</GroupKey>
<GroupKey-type>java.lang.String</GroupKey-type>
<IconExpanded>&lt;null&gt;</IconExpanded>
<IconExpanded-type>java.lang.String</IconExpanded-type>
<IsGroupSummary>false</IsGroupSummary>
<IsGroupSummary-type>java.lang.Boolean</IsGroupSummary-type>
<IsGroupVariable>&lt;null&gt;</IsGroupVariable>
<IsGroupVariable-type>java.lang.String</IsGroupVariable-type>
<MediaAlbum>&lt;null&gt;</MediaAlbum>
<MediaAlbum-type>java.lang.String</MediaAlbum-type>
<MediaArtist>&lt;null&gt;</MediaArtist>
<MediaArtist-type>java.lang.String</MediaArtist-type>
<MediaDuration>&lt;null&gt;</MediaDuration>
<MediaDuration-type>java.lang.String</MediaDuration-type>
<MediaIcon>&lt;null&gt;</MediaIcon>
<MediaIcon-type>java.lang.String</MediaIcon-type>
<MediaLayout>false</MediaLayout>
<MediaLayout-type>java.lang.Boolean</MediaLayout-type>
<MediaNextCommand>&lt;null&gt;</MediaNextCommand>
<MediaNextCommand-type>java.lang.String</MediaNextCommand-type>
<MediaPauseCommand>&lt;null&gt;</MediaPauseCommand>
<MediaPauseCommand-type>java.lang.String</MediaPauseCommand-type>
<MediaPlayCommand>&lt;null&gt;</MediaPlayCommand>
<MediaPlayCommand-type>java.lang.String</MediaPlayCommand-type>
<MediaPlaybackState>&lt;null&gt;</MediaPlaybackState>
<MediaPlaybackState-type>java.lang.String</MediaPlaybackState-type>
<MediaPosition>&lt;null&gt;</MediaPosition>
<MediaPosition-type>java.lang.String</MediaPosition-type>
<MediaPreviousCommand>&lt;null&gt;</MediaPreviousCommand>
<MediaPreviousCommand-type>java.lang.String</MediaPreviousCommand-type>
<MediaTrack>&lt;null&gt;</MediaTrack>
<MediaTrack-type>java.lang.String</MediaTrack-type>
<MessagingImages>&lt;null&gt;</MessagingImages>
<MessagingImages-type>java.lang.String</MessagingImages-type>
<MessagingOwnIcon>&lt;null&gt;</MessagingOwnIcon>
<MessagingOwnIcon-type>java.lang.String</MessagingOwnIcon-type>
<MessagingOwnName>&lt;null&gt;</MessagingOwnName>
<MessagingOwnName-type>java.lang.String</MessagingOwnName-type>
<MessagingPersonBot>&lt;null&gt;</MessagingPersonBot>
<MessagingPersonBot-type>java.lang.String</MessagingPersonBot-type>
<MessagingPersonIcons>&lt;null&gt;</MessagingPersonIcons>
<MessagingPersonIcons-type>java.lang.String</MessagingPersonIcons-type>
<MessagingPersonImportant>&lt;null&gt;</MessagingPersonImportant>
<MessagingPersonImportant-type>java.lang.String</MessagingPersonImportant-type>
<MessagingPersonNames>&lt;null&gt;</MessagingPersonNames>
<MessagingPersonNames-type>java.lang.String</MessagingPersonNames-type>
<MessagingPersonUri>&lt;null&gt;</MessagingPersonUri>
<MessagingPersonUri-type>java.lang.String</MessagingPersonUri-type>
<MessagingSeparator>&lt;null&gt;</MessagingSeparator>
<MessagingSeparator-type>java.lang.String</MessagingSeparator-type>
<MessagingTexts>&lt;null&gt;</MessagingTexts>
<MessagingTexts-type>java.lang.String</MessagingTexts-type>
<NotificationChannelBypassDnd>false</NotificationChannelBypassDnd>
<NotificationChannelBypassDnd-type>java.lang.Boolean</NotificationChannelBypassDnd-type>
<NotificationChannelDescription>&lt;null&gt;</NotificationChannelDescription>
<NotificationChannelDescription-type>java.lang.String</NotificationChannelDescription-type>
<NotificationChannelId>&lt;null&gt;</NotificationChannelId>
<NotificationChannelId-type>java.lang.String</NotificationChannelId-type>
<NotificationChannelImportance>&lt;null&gt;</NotificationChannelImportance>
<NotificationChannelImportance-type>java.lang.String</NotificationChannelImportance-type>
<NotificationChannelName>&lt;null&gt;</NotificationChannelName>
<NotificationChannelName-type>java.lang.String</NotificationChannelName-type>
<NotificationChannelShowBadge>false</NotificationChannelShowBadge>
<NotificationChannelShowBadge-type>java.lang.Boolean</NotificationChannelShowBadge-type>
<PersistentVariable>&lt;null&gt;</PersistentVariable>
<PersistentVariable-type>java.lang.String</PersistentVariable-type>
<PhoneOnly>false</PhoneOnly>
<PhoneOnly-type>java.lang.Boolean</PhoneOnly-type>
<PriorityVariable>&lt;null&gt;</PriorityVariable>
<PriorityVariable-type>java.lang.String</PriorityVariable-type>
<PublicVersion>&lt;null&gt;</PublicVersion>
<PublicVersion-type>java.lang.String</PublicVersion-type>
<ReplyAction>&lt;null&gt;</ReplyAction>
<ReplyAction-type>java.lang.String</ReplyAction-type>
<ReplyChoices>&lt;null&gt;</ReplyChoices>
<ReplyChoices-type>java.lang.String</ReplyChoices-type>
<ReplyLabel>&lt;null&gt;</ReplyLabel>
<ReplyLabel-type>java.lang.String</ReplyLabel-type>
<ShareButtonsVariable>&lt;null&gt;</ShareButtonsVariable>
<ShareButtonsVariable-type>java.lang.String</ShareButtonsVariable-type>
<SkipPictureCache>false</SkipPictureCache>
<SkipPictureCache-type>java.lang.Boolean</SkipPictureCache-type>
<SoundPath>&lt;null&gt;</SoundPath>
<SoundPath-type>java.lang.String</SoundPath-type>
<StatusBarIconString>&lt;null&gt;</StatusBarIconString>
<StatusBarIconString-type>java.lang.String</StatusBarIconString-type>
<StatusBarTextSize>16</StatusBarTextSize>
<StatusBarTextSize-type>java.lang.String</StatusBarTextSize-type>
<TextExpanded>&lt;null&gt;</TextExpanded>
<TextExpanded-type>java.lang.String</TextExpanded-type>
<Time>&lt;null&gt;</Time>
<Time-type>java.lang.String</Time-type>
<TimeFormat>&lt;null&gt;</TimeFormat>
<TimeFormat-type>java.lang.String</TimeFormat-type>
<Timeout>&lt;null&gt;</Timeout>
<Timeout-type>java.lang.String</Timeout-type>
<TitleExpanded>&lt;null&gt;</TitleExpanded>
<TitleExpanded-type>java.lang.String</TitleExpanded-type>
<UpdateNotification>false</UpdateNotification>
<UpdateNotification-type>java.lang.Boolean</UpdateNotification-type>
<UseChronometer>false</UseChronometer>
<UseChronometer-type>java.lang.Boolean</UseChronometer-type>
<UseHTML>false</UseHTML>
<UseHTML-type>java.lang.Boolean</UseHTML-type>
<Visibility>&lt;null&gt;</Visibility>
<Visibility-type>java.lang.String</Visibility-type>
<com.twofortyfouram.locale.intent.extra.BLURB>Title: Morning Skincare
Text: Go and be pretty!
Action on Touch: Open morning skincare
Status Bar Text Size: 16
Id: skincare morning
Separator: ,
Button 1: open skincare note
Label 1: Open Note
Button 2: mark skincare done
Label 2: Mark done</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<config_action_1_icon>&lt;null&gt;</config_action_1_icon>
<config_action_1_icon-type>java.lang.String</config_action_1_icon-type>
<config_action_2_icon>&lt;null&gt;</config_action_2_icon>
<config_action_2_icon-type>java.lang.String</config_action_2_icon-type>
<config_action_3_icon>&lt;null&gt;</config_action_3_icon>
<config_action_3_icon-type>java.lang.String</config_action_3_icon-type>
<config_action_4_icon>&lt;null&gt;</config_action_4_icon>
<config_action_4_icon-type>java.lang.String</config_action_4_icon-type>
<config_action_5_icon>&lt;null&gt;</config_action_5_icon>
<config_action_5_icon-type>java.lang.String</config_action_5_icon-type>
<config_notification_action>Open morning skincare </config_notification_action>
<config_notification_action-type>java.lang.String</config_notification_action-type>
<config_notification_action_button1>open skincare note</config_notification_action_button1>
<config_notification_action_button1-type>java.lang.String</config_notification_action_button1-type>
<config_notification_action_button2>mark skincare done</config_notification_action_button2>
<config_notification_action_button2-type>java.lang.String</config_notification_action_button2-type>
<config_notification_action_button3>&lt;null&gt;</config_notification_action_button3>
<config_notification_action_button3-type>java.lang.String</config_notification_action_button3-type>
<config_notification_action_button4>&lt;null&gt;</config_notification_action_button4>
<config_notification_action_button4-type>java.lang.String</config_notification_action_button4-type>
<config_notification_action_button5>&lt;null&gt;</config_notification_action_button5>
<config_notification_action_button5-type>java.lang.String</config_notification_action_button5-type>
<config_notification_action_label1>Open Note</config_notification_action_label1>
<config_notification_action_label1-type>java.lang.String</config_notification_action_label1-type>
<config_notification_action_label2>Mark done</config_notification_action_label2>
<config_notification_action_label2-type>java.lang.String</config_notification_action_label2-type>
<config_notification_action_label3>&lt;null&gt;</config_notification_action_label3>
<config_notification_action_label3-type>java.lang.String</config_notification_action_label3-type>
<config_notification_action_on_dismiss>&lt;null&gt;</config_notification_action_on_dismiss>
<config_notification_action_on_dismiss-type>java.lang.String</config_notification_action_on_dismiss-type>
<config_notification_action_share>false</config_notification_action_share>
<config_notification_action_share-type>java.lang.Boolean</config_notification_action_share-type>
<config_notification_command>&lt;null&gt;</config_notification_command>
<config_notification_command-type>java.lang.String</config_notification_command-type>
<config_notification_content_info>&lt;null&gt;</config_notification_content_info>
<config_notification_content_info-type>java.lang.String</config_notification_content_info-type>
<config_notification_dismiss_on_touch>false</config_notification_dismiss_on_touch>
<config_notification_dismiss_on_touch-type>java.lang.Boolean</config_notification_dismiss_on_touch-type>
<config_notification_icon>&lt;null&gt;</config_notification_icon>
<config_notification_icon-type>java.lang.String</config_notification_icon-type>
<config_notification_indeterminate_progress>false</config_notification_indeterminate_progress>
<config_notification_indeterminate_progress-type>java.lang.Boolean</config_notification_indeterminate_progress-type>
<config_notification_led_color>&lt;null&gt;</config_notification_led_color>
<config_notification_led_color-type>java.lang.String</config_notification_led_color-type>
<config_notification_led_off>&lt;null&gt;</config_notification_led_off>
<config_notification_led_off-type>java.lang.String</config_notification_led_off-type>
<config_notification_led_on>&lt;null&gt;</config_notification_led_on>
<config_notification_led_on-type>java.lang.String</config_notification_led_on-type>
<config_notification_max_progress>&lt;null&gt;</config_notification_max_progress>
<config_notification_max_progress-type>java.lang.String</config_notification_max_progress-type>
<config_notification_number>&lt;null&gt;</config_notification_number>
<config_notification_number-type>java.lang.String</config_notification_number-type>
<config_notification_persistent>false</config_notification_persistent>
<config_notification_persistent-type>java.lang.Boolean</config_notification_persistent-type>
<config_notification_picture>&lt;null&gt;</config_notification_picture>
<config_notification_picture-type>java.lang.String</config_notification_picture-type>
<config_notification_priority>&lt;null&gt;</config_notification_priority>
<config_notification_priority-type>java.lang.String</config_notification_priority-type>
<config_notification_progress>&lt;null&gt;</config_notification_progress>
<config_notification_progress-type>java.lang.String</config_notification_progress-type>
<config_notification_subtext>&lt;null&gt;</config_notification_subtext>
<config_notification_subtext-type>java.lang.String</config_notification_subtext-type>
<config_notification_text>Go and be pretty!</config_notification_text>
<config_notification_text-type>java.lang.String</config_notification_text-type>
<config_notification_ticker>&lt;null&gt;</config_notification_ticker>
<config_notification_ticker-type>java.lang.String</config_notification_ticker-type>
<config_notification_title>Morning Skincare </config_notification_title>
<config_notification_title-type>java.lang.String</config_notification_title-type>
<config_notification_url>&lt;null&gt;</config_notification_url>
<config_notification_url-type>java.lang.String</config_notification_url-type>
<config_notification_vibration>&lt;null&gt;</config_notification_vibration>
<config_notification_vibration-type>java.lang.String</config_notification_vibration-type>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES>&lt;StringArray sr=""&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;%err
Error Code
Only available if you select &amp;lt;b&amp;gt;Continue Task After Error&amp;lt;/b&amp;gt; and the action ends in error&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;%errmsg
Error Message
Only available if you select &amp;lt;b&amp;gt;Continue Task After Error&amp;lt;/b&amp;gt; and the action ends in error&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;&lt;/StringArray&gt;</net.dinglisch.android.tasker.RELEVANT_VARIABLES>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>StatusBarTextSize config_notification_title config_notification_text config_notification_action config_notification_action_button1 config_notification_action_label1 config_notification_action_button2 config_notification_action_label2 notificaitionid plugininstanceid plugintypeid </net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
<notificaitionid>skincare morning </notificaitionid>
<notificaitionid-type>java.lang.String</notificaitionid-type>
<notificaitionsound>&lt;null&gt;</notificaitionsound>
<notificaitionsound-type>java.lang.String</notificaitionsound-type>
<plugininstanceid>2c3b7c1e-0ee9-4d73-bf77-2b1311cf1a25</plugininstanceid>
<plugininstanceid-type>java.lang.String</plugininstanceid-type>
<plugintypeid>com.joaomgcd.autonotification.intent.IntentNotification</plugintypeid>
<plugintypeid-type>java.lang.String</plugintypeid-type>
<preferenceScreen>&lt;null&gt;</preferenceScreen>
<preferenceScreen-type>java.lang.String</preferenceScreen-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.joaomgcd.autonotification</Str>
<Str sr="arg2" ve="3">com.joaomgcd.autonotification.activity.ActivityConfigNotify</Str>
<Int sr="arg3" val="20"/>
<Int sr="arg4" val="1"/>
</Action>
</Task>
<Task sr="task108">
<cdate>1762862950419</cdate>
<edate>1762935050872</edate>
<id>108</id>
<nme>Mark Skincare Done</nme>
<Action sr="act0" ve="7">
<code>2112800467</code>
<Bundle sr="arg0">
<Vals sr="val">
<action>0</action>
<action-type>java.lang.Integer</action-type>
<com.twofortyfouram.locale.intent.extra.BLURB>Check: Morning routine</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<habit>11</habit>
<habit-type>java.lang.Long</habit-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">org.isoron.uhabits</Str>
<Str sr="arg2" ve="3">org.isoron.uhabits.automation.EditSettingActivity</Str>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="1"/>
</Action>
</Task>
<Task sr="task110">
<cdate>1762631971435</cdate>
<edate>1762935044696</edate>
<id>110</id>
<nme>Open Prepare Exercise Notification</nme>
<pri>100</pri>
<Action sr="act0" ve="7">
<code>166160670</code>
<Bundle sr="arg0">
<Vals sr="val">
<ActionIconString1>&lt;null&gt;</ActionIconString1>
<ActionIconString1-type>java.lang.String</ActionIconString1-type>
<ActionIconString2>&lt;null&gt;</ActionIconString2>
<ActionIconString2-type>java.lang.String</ActionIconString2-type>
<ActionIconString3>&lt;null&gt;</ActionIconString3>
<ActionIconString3-type>java.lang.String</ActionIconString3-type>
<ActionIconString4>&lt;null&gt;</ActionIconString4>
<ActionIconString4-type>java.lang.String</ActionIconString4-type>
<ActionIconString5>&lt;null&gt;</ActionIconString5>
<ActionIconString5-type>java.lang.String</ActionIconString5-type>
<AppendTexts>false</AppendTexts>
<AppendTexts-type>java.lang.Boolean</AppendTexts-type>
<BackgroundColor>&lt;null&gt;</BackgroundColor>
<BackgroundColor-type>java.lang.String</BackgroundColor-type>
<BadgeType>&lt;null&gt;</BadgeType>
<BadgeType-type>java.lang.String</BadgeType-type>
<Button1UnlockScreen>false</Button1UnlockScreen>
<Button1UnlockScreen-type>java.lang.Boolean</Button1UnlockScreen-type>
<Button2UnlockScreen>false</Button2UnlockScreen>
<Button2UnlockScreen-type>java.lang.Boolean</Button2UnlockScreen-type>
<Button3UnlockScreen>false</Button3UnlockScreen>
<Button3UnlockScreen-type>java.lang.Boolean</Button3UnlockScreen-type>
<Button4UnlockScreen>false</Button4UnlockScreen>
<Button4UnlockScreen-type>java.lang.Boolean</Button4UnlockScreen-type>
<Button5UnlockScreen>false</Button5UnlockScreen>
<Button5UnlockScreen-type>java.lang.Boolean</Button5UnlockScreen-type>
<ChronometerCountDown>false</ChronometerCountDown>
<ChronometerCountDown-type>java.lang.Boolean</ChronometerCountDown-type>
<Colorize>false</Colorize>
<Colorize-type>java.lang.Boolean</Colorize-type>
<DismissOnTouchVariable>&lt;null&gt;</DismissOnTouchVariable>
<DismissOnTouchVariable-type>java.lang.String</DismissOnTouchVariable-type>
<ExtraInfo>&lt;null&gt;</ExtraInfo>
<ExtraInfo-type>java.lang.String</ExtraInfo-type>
<GroupAlertBehaviour>&lt;null&gt;</GroupAlertBehaviour>
<GroupAlertBehaviour-type>java.lang.String</GroupAlertBehaviour-type>
<GroupKey>&lt;null&gt;</GroupKey>
<GroupKey-type>java.lang.String</GroupKey-type>
<IconExpanded>&lt;null&gt;</IconExpanded>
<IconExpanded-type>java.lang.String</IconExpanded-type>
<IsGroupSummary>false</IsGroupSummary>
<IsGroupSummary-type>java.lang.Boolean</IsGroupSummary-type>
<IsGroupVariable>&lt;null&gt;</IsGroupVariable>
<IsGroupVariable-type>java.lang.String</IsGroupVariable-type>
<MediaAlbum>&lt;null&gt;</MediaAlbum>
<MediaAlbum-type>java.lang.String</MediaAlbum-type>
<MediaArtist>&lt;null&gt;</MediaArtist>
<MediaArtist-type>java.lang.String</MediaArtist-type>
<MediaDuration>&lt;null&gt;</MediaDuration>
<MediaDuration-type>java.lang.String</MediaDuration-type>
<MediaIcon>&lt;null&gt;</MediaIcon>
<MediaIcon-type>java.lang.String</MediaIcon-type>
<MediaLayout>false</MediaLayout>
<MediaLayout-type>java.lang.Boolean</MediaLayout-type>
<MediaNextCommand>&lt;null&gt;</MediaNextCommand>
<MediaNextCommand-type>java.lang.String</MediaNextCommand-type>
<MediaPauseCommand>&lt;null&gt;</MediaPauseCommand>
<MediaPauseCommand-type>java.lang.String</MediaPauseCommand-type>
<MediaPlayCommand>&lt;null&gt;</MediaPlayCommand>
<MediaPlayCommand-type>java.lang.String</MediaPlayCommand-type>
<MediaPlaybackState>&lt;null&gt;</MediaPlaybackState>
<MediaPlaybackState-type>java.lang.String</MediaPlaybackState-type>
<MediaPosition>&lt;null&gt;</MediaPosition>
<MediaPosition-type>java.lang.String</MediaPosition-type>
<MediaPreviousCommand>&lt;null&gt;</MediaPreviousCommand>
<MediaPreviousCommand-type>java.lang.String</MediaPreviousCommand-type>
<MediaTrack>&lt;null&gt;</MediaTrack>
<MediaTrack-type>java.lang.String</MediaTrack-type>
<MessagingImages>&lt;null&gt;</MessagingImages>
<MessagingImages-type>java.lang.String</MessagingImages-type>
<MessagingOwnIcon>&lt;null&gt;</MessagingOwnIcon>
<MessagingOwnIcon-type>java.lang.String</MessagingOwnIcon-type>
<MessagingOwnName>&lt;null&gt;</MessagingOwnName>
<MessagingOwnName-type>java.lang.String</MessagingOwnName-type>
<MessagingPersonBot>&lt;null&gt;</MessagingPersonBot>
<MessagingPersonBot-type>java.lang.String</MessagingPersonBot-type>
<MessagingPersonIcons>&lt;null&gt;</MessagingPersonIcons>
<MessagingPersonIcons-type>java.lang.String</MessagingPersonIcons-type>
<MessagingPersonImportant>&lt;null&gt;</MessagingPersonImportant>
<MessagingPersonImportant-type>java.lang.String</MessagingPersonImportant-type>
<MessagingPersonNames>&lt;null&gt;</MessagingPersonNames>
<MessagingPersonNames-type>java.lang.String</MessagingPersonNames-type>
<MessagingPersonUri>&lt;null&gt;</MessagingPersonUri>
<MessagingPersonUri-type>java.lang.String</MessagingPersonUri-type>
<MessagingSeparator>&lt;null&gt;</MessagingSeparator>
<MessagingSeparator-type>java.lang.String</MessagingSeparator-type>
<MessagingTexts>&lt;null&gt;</MessagingTexts>
<MessagingTexts-type>java.lang.String</MessagingTexts-type>
<NotificationChannelBypassDnd>false</NotificationChannelBypassDnd>
<NotificationChannelBypassDnd-type>java.lang.Boolean</NotificationChannelBypassDnd-type>
<NotificationChannelDescription>&lt;null&gt;</NotificationChannelDescription>
<NotificationChannelDescription-type>java.lang.String</NotificationChannelDescription-type>
<NotificationChannelId>&lt;null&gt;</NotificationChannelId>
<NotificationChannelId-type>java.lang.String</NotificationChannelId-type>
<NotificationChannelImportance>&lt;null&gt;</NotificationChannelImportance>
<NotificationChannelImportance-type>java.lang.String</NotificationChannelImportance-type>
<NotificationChannelName>&lt;null&gt;</NotificationChannelName>
<NotificationChannelName-type>java.lang.String</NotificationChannelName-type>
<NotificationChannelShowBadge>false</NotificationChannelShowBadge>
<NotificationChannelShowBadge-type>java.lang.Boolean</NotificationChannelShowBadge-type>
<PersistentVariable>&lt;null&gt;</PersistentVariable>
<PersistentVariable-type>java.lang.String</PersistentVariable-type>
<PhoneOnly>false</PhoneOnly>
<PhoneOnly-type>java.lang.Boolean</PhoneOnly-type>
<PriorityVariable>&lt;null&gt;</PriorityVariable>
<PriorityVariable-type>java.lang.String</PriorityVariable-type>
<PublicVersion>&lt;null&gt;</PublicVersion>
<PublicVersion-type>java.lang.String</PublicVersion-type>
<ReplyAction>&lt;null&gt;</ReplyAction>
<ReplyAction-type>java.lang.String</ReplyAction-type>
<ReplyChoices>&lt;null&gt;</ReplyChoices>
<ReplyChoices-type>java.lang.String</ReplyChoices-type>
<ReplyLabel>&lt;null&gt;</ReplyLabel>
<ReplyLabel-type>java.lang.String</ReplyLabel-type>
<ShareButtonsVariable>&lt;null&gt;</ShareButtonsVariable>
<ShareButtonsVariable-type>java.lang.String</ShareButtonsVariable-type>
<SkipPictureCache>false</SkipPictureCache>
<SkipPictureCache-type>java.lang.Boolean</SkipPictureCache-type>
<SoundPath>&lt;null&gt;</SoundPath>
<SoundPath-type>java.lang.String</SoundPath-type>
<StatusBarIconString>&lt;null&gt;</StatusBarIconString>
<StatusBarIconString-type>java.lang.String</StatusBarIconString-type>
<StatusBarTextSize>16</StatusBarTextSize>
<StatusBarTextSize-type>java.lang.String</StatusBarTextSize-type>
<TextExpanded>&lt;null&gt;</TextExpanded>
<TextExpanded-type>java.lang.String</TextExpanded-type>
<Time>&lt;null&gt;</Time>
<Time-type>java.lang.String</Time-type>
<TimeFormat>&lt;null&gt;</TimeFormat>
<TimeFormat-type>java.lang.String</TimeFormat-type>
<Timeout>&lt;null&gt;</Timeout>
<Timeout-type>java.lang.String</Timeout-type>
<TitleExpanded>&lt;null&gt;</TitleExpanded>
<TitleExpanded-type>java.lang.String</TitleExpanded-type>
<UpdateNotification>false</UpdateNotification>
<UpdateNotification-type>java.lang.Boolean</UpdateNotification-type>
<UseChronometer>false</UseChronometer>
<UseChronometer-type>java.lang.Boolean</UseChronometer-type>
<UseHTML>false</UseHTML>
<UseHTML-type>java.lang.Boolean</UseHTML-type>
<Visibility>&lt;null&gt;</Visibility>
<Visibility-type>java.lang.String</Visibility-type>
<com.twofortyfouram.locale.intent.extra.BLURB>Title: Prepare for your exercise!
Text: Go and load up!
Action on Touch: Open morning skincare
Icon: android.resource://net.dinglisch.android.taskerm/hd_aaa_ext_ball
Status Bar Icon: ic_launcher
Status Bar Text Size: 16
Id: prepare for exercise
Priority: 2
Separator: ,
Button 1: open exercise note
Label 1: Open Note
Button 2: mark exercise done
Label 2: Mark done</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<config_action_1_icon>&lt;null&gt;</config_action_1_icon>
<config_action_1_icon-type>java.lang.String</config_action_1_icon-type>
<config_action_2_icon>&lt;null&gt;</config_action_2_icon>
<config_action_2_icon-type>java.lang.String</config_action_2_icon-type>
<config_action_3_icon>&lt;null&gt;</config_action_3_icon>
<config_action_3_icon-type>java.lang.String</config_action_3_icon-type>
<config_action_4_icon>&lt;null&gt;</config_action_4_icon>
<config_action_4_icon-type>java.lang.String</config_action_4_icon-type>
<config_action_5_icon>&lt;null&gt;</config_action_5_icon>
<config_action_5_icon-type>java.lang.String</config_action_5_icon-type>
<config_notification_action>Open morning skincare </config_notification_action>
<config_notification_action-type>java.lang.String</config_notification_action-type>
<config_notification_action_button1>open exercise note</config_notification_action_button1>
<config_notification_action_button1-type>java.lang.String</config_notification_action_button1-type>
<config_notification_action_button2>mark exercise done</config_notification_action_button2>
<config_notification_action_button2-type>java.lang.String</config_notification_action_button2-type>
<config_notification_action_button3>&lt;null&gt;</config_notification_action_button3>
<config_notification_action_button3-type>java.lang.String</config_notification_action_button3-type>
<config_notification_action_button4>&lt;null&gt;</config_notification_action_button4>
<config_notification_action_button4-type>java.lang.String</config_notification_action_button4-type>
<config_notification_action_button5>&lt;null&gt;</config_notification_action_button5>
<config_notification_action_button5-type>java.lang.String</config_notification_action_button5-type>
<config_notification_action_label1>Open Note</config_notification_action_label1>
<config_notification_action_label1-type>java.lang.String</config_notification_action_label1-type>
<config_notification_action_label2>Mark done</config_notification_action_label2>
<config_notification_action_label2-type>java.lang.String</config_notification_action_label2-type>
<config_notification_action_label3>&lt;null&gt;</config_notification_action_label3>
<config_notification_action_label3-type>java.lang.String</config_notification_action_label3-type>
<config_notification_action_on_dismiss>&lt;null&gt;</config_notification_action_on_dismiss>
<config_notification_action_on_dismiss-type>java.lang.String</config_notification_action_on_dismiss-type>
<config_notification_action_share>false</config_notification_action_share>
<config_notification_action_share-type>java.lang.Boolean</config_notification_action_share-type>
<config_notification_command>&lt;null&gt;</config_notification_command>
<config_notification_command-type>java.lang.String</config_notification_command-type>
<config_notification_content_info>&lt;null&gt;</config_notification_content_info>
<config_notification_content_info-type>java.lang.String</config_notification_content_info-type>
<config_notification_dismiss_on_touch>false</config_notification_dismiss_on_touch>
<config_notification_dismiss_on_touch-type>java.lang.Boolean</config_notification_dismiss_on_touch-type>
<config_notification_icon>android.resource://net.dinglisch.android.taskerm/hd_aaa_ext_ball</config_notification_icon>
<config_notification_icon-type>java.lang.String</config_notification_icon-type>
<config_notification_indeterminate_progress>false</config_notification_indeterminate_progress>
<config_notification_indeterminate_progress-type>java.lang.Boolean</config_notification_indeterminate_progress-type>
<config_notification_led_color>&lt;null&gt;</config_notification_led_color>
<config_notification_led_color-type>java.lang.String</config_notification_led_color-type>
<config_notification_led_off>&lt;null&gt;</config_notification_led_off>
<config_notification_led_off-type>java.lang.String</config_notification_led_off-type>
<config_notification_led_on>&lt;null&gt;</config_notification_led_on>
<config_notification_led_on-type>java.lang.String</config_notification_led_on-type>
<config_notification_max_progress>&lt;null&gt;</config_notification_max_progress>
<config_notification_max_progress-type>java.lang.String</config_notification_max_progress-type>
<config_notification_number>&lt;null&gt;</config_notification_number>
<config_notification_number-type>java.lang.String</config_notification_number-type>
<config_notification_persistent>true</config_notification_persistent>
<config_notification_persistent-type>java.lang.Boolean</config_notification_persistent-type>
<config_notification_picture>&lt;null&gt;</config_notification_picture>
<config_notification_picture-type>java.lang.String</config_notification_picture-type>
<config_notification_priority>2</config_notification_priority>
<config_notification_priority-type>java.lang.String</config_notification_priority-type>
<config_notification_progress>&lt;null&gt;</config_notification_progress>
<config_notification_progress-type>java.lang.String</config_notification_progress-type>
<config_notification_subtext>&lt;null&gt;</config_notification_subtext>
<config_notification_subtext-type>java.lang.String</config_notification_subtext-type>
<config_notification_text>Go and load up!</config_notification_text>
<config_notification_text-type>java.lang.String</config_notification_text-type>
<config_notification_ticker>&lt;null&gt;</config_notification_ticker>
<config_notification_ticker-type>java.lang.String</config_notification_ticker-type>
<config_notification_title>Prepare for your exercise!</config_notification_title>
<config_notification_title-type>java.lang.String</config_notification_title-type>
<config_notification_url>&lt;null&gt;</config_notification_url>
<config_notification_url-type>java.lang.String</config_notification_url-type>
<config_notification_vibration>&lt;null&gt;</config_notification_vibration>
<config_notification_vibration-type>java.lang.String</config_notification_vibration-type>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>StatusBarTextSize config_notification_title config_notification_text config_notification_action config_notification_icon config_notification_action_button1 config_notification_action_label1 config_notification_action_button2 config_notification_action_label2 notificaitionid preferenceScreen config_notification_priority plugininstanceid plugintypeid </net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
<notificaitionid>prepare for exercise</notificaitionid>
<notificaitionid-type>java.lang.String</notificaitionid-type>
<notificaitionsound>&lt;null&gt;</notificaitionsound>
<notificaitionsound-type>java.lang.String</notificaitionsound-type>
<plugininstanceid>2c3b7c1e-0ee9-4d73-bf77-2b1311cf1a25</plugininstanceid>
<plugininstanceid-type>java.lang.String</plugininstanceid-type>
<plugintypeid>com.joaomgcd.autonotification.intent.IntentNotification</plugintypeid>
<plugintypeid-type>java.lang.String</plugintypeid-type>
<preferenceScreen>ic_launcher</preferenceScreen>
<preferenceScreen-type>java.lang.String</preferenceScreen-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.joaomgcd.autonotification</Str>
<Str sr="arg2" ve="3">com.joaomgcd.autonotification.activity.ActivityConfigNotify</Str>
<Int sr="arg3" val="20"/>
<Int sr="arg4" val="1"/>
</Action>
</Task>
<Task sr="task112">
<cdate>1762934967274</cdate>
<edate>1762935062373</edate>
<id>112</id>
<nme>Dismiss Exercise Notification</nme>
<pri>6</pri>
<Action sr="act0" ve="7">
<code>2046367074</code>
<Bundle sr="arg0">
<Vals sr="val">
<App>&lt;null&gt;</App>
<App-type>java.lang.String</App-type>
<CancelAll>false</CancelAll>
<CancelAll-type>java.lang.Boolean</CancelAll-type>
<CancelPersistent>false</CancelPersistent>
<CancelPersistent-type>java.lang.Boolean</CancelPersistent-type>
<CaseinsensitiveApp>false</CaseinsensitiveApp>
<CaseinsensitiveApp-type>java.lang.Boolean</CaseinsensitiveApp-type>
<CaseinsensitivePackage>false</CaseinsensitivePackage>
<CaseinsensitivePackage-type>java.lang.Boolean</CaseinsensitivePackage-type>
<CaseinsensitiveText>false</CaseinsensitiveText>
<CaseinsensitiveText-type>java.lang.Boolean</CaseinsensitiveText-type>
<CaseinsensitiveTitle>false</CaseinsensitiveTitle>
<CaseinsensitiveTitle-type>java.lang.Boolean</CaseinsensitiveTitle-type>
<ExactApp>false</ExactApp>
<ExactApp-type>java.lang.Boolean</ExactApp-type>
<ExactPackage>false</ExactPackage>
<ExactPackage-type>java.lang.Boolean</ExactPackage-type>
<ExactText>false</ExactText>
<ExactText-type>java.lang.Boolean</ExactText-type>
<ExactTitle>false</ExactTitle>
<ExactTitle-type>java.lang.Boolean</ExactTitle-type>
<InterceptApps>&lt;StringArray sr=""/&gt;</InterceptApps>
<InterceptApps-type>[Ljava.lang.String;</InterceptApps-type>
<InvertApp>false</InvertApp>
<InvertApp-type>java.lang.Boolean</InvertApp-type>
<InvertPackage>false</InvertPackage>
<InvertPackage-type>java.lang.Boolean</InvertPackage-type>
<InvertText>false</InvertText>
<InvertText-type>java.lang.Boolean</InvertText-type>
<InvertTitle>false</InvertTitle>
<InvertTitle-type>java.lang.Boolean</InvertTitle-type>
<OtherId>&lt;null&gt;</OtherId>
<OtherId-type>java.lang.String</OtherId-type>
<OtherPackage>&lt;null&gt;</OtherPackage>
<OtherPackage-type>java.lang.String</OtherPackage-type>
<OtherTag>&lt;null&gt;</OtherTag>
<OtherTag-type>java.lang.String</OtherTag-type>
<PackageName>&lt;null&gt;</PackageName>
<PackageName-type>java.lang.String</PackageName-type>
<RegexApp>false</RegexApp>
<RegexApp-type>java.lang.Boolean</RegexApp-type>
<RegexPackage>false</RegexPackage>
<RegexPackage-type>java.lang.Boolean</RegexPackage-type>
<RegexText>false</RegexText>
<RegexText-type>java.lang.Boolean</RegexText-type>
<RegexTitle>false</RegexTitle>
<RegexTitle-type>java.lang.Boolean</RegexTitle-type>
<Text>&lt;null&gt;</Text>
<Text-type>java.lang.String</Text-type>
<Title>&lt;null&gt;</Title>
<Title-type>java.lang.String</Title-type>
<com.twofortyfouram.locale.intent.extra.BLURB>Id: prepare for exercise</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES>&lt;StringArray sr=""&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;%err
Error Code
Only available if you select &amp;lt;b&amp;gt;Continue Task After Error&amp;lt;/b&amp;gt; and the action ends in error&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;%errmsg
Error Message
Only available if you select &amp;lt;b&amp;gt;Continue Task After Error&amp;lt;/b&amp;gt; and the action ends in error&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;&lt;/StringArray&gt;</net.dinglisch.android.tasker.RELEVANT_VARIABLES>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>notificaitionid plugininstanceid plugintypeid </net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
<notificaitionid>prepare for exercise</notificaitionid>
<notificaitionid-type>java.lang.String</notificaitionid-type>
<plugininstanceid>2d6b7e1a-427b-442e-9f39-356480bf35d2</plugininstanceid>
<plugininstanceid-type>java.lang.String</plugininstanceid-type>
<plugintypeid>com.joaomgcd.autonotification.intent.IntentCancelNotification</plugintypeid>
<plugintypeid-type>java.lang.String</plugintypeid-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.joaomgcd.autonotification</Str>
<Str sr="arg2" ve="3">com.joaomgcd.autonotification.activity.ActivityConfigCancelNotification</Str>
<Int sr="arg3" val="20"/>
<Int sr="arg4" val="1"/>
</Action>
</Task>
<Task sr="task82">
<cdate>1762626933199</cdate>
<edate>1762862747599</edate>
<id>82</id>
<nme>Open Skincare Note</nme>
<pri>6</pri>
<Action sr="act0" ve="7">
<code>104</code>
<Str sr="arg0" ve="3">obsidian://open?vault=Personal&amp;file=Personal%2FProjects%2FSkincare%2FSkincare%20Morning</Str>
<App sr="arg1"/>
<Int sr="arg2" val="0"/>
<Str sr="arg3" ve="3"/>
</Action>
</Task>
</TaskerData>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,5 @@
---
created: 2025-11-12 09:21
updated: 2025-11-12 09:25
---
![[Skincare_Demo_Standardized.prj.xml]]# Tasker![[Skincare_Demo.prj.xml]]

View File

@@ -0,0 +1,312 @@
#!/usr/bin/env python3
"""
Add "Evaluate Diet" routine to Tasker project
- 21:00 (9:00 PM) notification
- Open Note button
- Mark Done button
"""
import re
def add_diet_routine(input_file, output_file):
with open(input_file, 'r', encoding='utf-8') as f:
content = f.read()
# Find the highest profile and task IDs
profile_ids = re.findall(r'<Profile sr="prof(\d+)"', content)
task_ids = re.findall(r'<Task sr="task(\d+)"', content)
max_profile_id = max([int(pid) for pid in profile_ids]) if profile_ids else 150
max_task_id = max([int(tid) for tid in task_ids]) if task_ids else 150
# New IDs
new_profile_trigger_id = max_profile_id + 1
new_profile_event_open_id = max_profile_id + 2
new_profile_event_done_id = max_profile_id + 3
new_task_show_id = max_task_id + 1
new_task_done_id = max_task_id + 2
# Check if already exists
if 'Trigger Diet Notification' in content:
print("⚠ Diet routine already exists. Skipping.")
return
# Find insertion point (before </TaskerData>)
insert_point = content.rfind('</TaskerData>')
# Profile 1: Time trigger (21:00)
profile_trigger = f'''
<!-- Diet Evaluation Routine -->
<Profile sr="prof{new_profile_trigger_id}" ve="2">
<cdate>1762631944649</cdate>
<edate>1762935025169</edate>
<flags>8</flags>
<id>{new_profile_trigger_id}</id>
<mid0>{new_task_show_id}</mid0>
<nme>Trigger Diet Notification</nme>
<Time sr="con0">
<fh>21</fh>
<fm>0</fm>
<th>21</th>
<tm>0</tm>
</Time>
</Profile>'''
# Profile 2: Event listener for "Open Diet Note" button
profile_event_open = f'''
<Profile sr="prof{new_profile_event_open_id}" ve="2">
<cdate>1762862939813</cdate>
<edate>1762935050872</edate>
<flags>8</flags>
<id>{new_profile_event_open_id}</id>
<mid0>63</mid0>
<nme>Event: Open Diet Note</nme>
<Event sr="con0" ve="2">
<code>1825107102</code>
<pri>0</pri>
<Bundle sr="arg0">
<Vals sr="val">
<com.twofortyfouram.locale.intent.extra.BLURB>Event Behaviour
Filter: cmd_open_diet_note</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<command_params_var>anpar</command_params_var>
<command_params_var-type>java.lang.String</command_params_var-type>
<command_var>ancomm</command_var>
<command_var-type>java.lang.String</command_var-type>
<config_notification_command>cmd_open_diet_note</config_notification_command>
<config_notification_command-type>java.lang.String</config_notification_command-type>
<message_single_case_insensitive>false</message_single_case_insensitive>
<message_single_case_insensitive-type>java.lang.Boolean</message_single_case_insensitive-type>
<message_single_exact>false</message_single_exact>
<message_single_exact-type>java.lang.Boolean</message_single_exact-type>
<message_single_regex>false</message_single_regex>
<message_single_regex-type>java.lang.Boolean</message_single_regex-type>
<message_var>anmessage</message_var>
<message_var-type>java.lang.String</message_var-type>
<net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED>true</net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED>
<net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED-type>java.lang.Boolean</net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED-type>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES>&lt;StringArray sr=""&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;%ancomm
Everything to the right of =:=
Everything to the right of =:=&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;%anmessage
Whole AutoNotification Message
Whole AutoNotification Message&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&gt;%anpar()
Array of single words to the left of =:=
Array of single words to the left of =:=&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&gt;&lt;/StringArray&gt;</net.dinglisch.android.tasker.RELEVANT_VARIABLES>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>
<net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT>10000</net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT>
<net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT-type>java.lang.Integer</net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT-type>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>message_var command_var command_params_var config_notification_command plugininstanceid plugintypeid </net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
<plugininstanceid>e1a87f0a-2e17-4b02-ab14-479198b7aeb1</plugininstanceid>
<plugininstanceid-type>java.lang.String</plugininstanceid-type>
<plugintypeid>com.joaomgcd.autonotification.intent.IntentCommandEvent</plugintypeid>
<plugintypeid-type>java.lang.String</plugintypeid-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.joaomgcd.autonotification</Str>
<Str sr="arg2" ve="3">com.joaomgcd.autonotification.activity.ActivityConfigConditionTaskerEvent</Str>
<Int sr="arg3" val="1"/>
</Event>
</Profile>'''
# Profile 3: Event listener for "Mark Done" button
profile_event_done = f'''
<Profile sr="prof{new_profile_event_done_id}" ve="2">
<cdate>1762934954023</cdate>
<edate>1762935062373</edate>
<flags>8</flags>
<id>{new_profile_event_done_id}</id>
<mid0>{new_task_done_id}</mid0>
<nme>Event: Mark Diet Done</nme>
<Event sr="con0" ve="2">
<code>1825107102</code>
<pri>0</pri>
<Bundle sr="arg0">
<Vals sr="val">
<com.twofortyfouram.locale.intent.extra.BLURB>Event Behaviour
Filter: cmd_mark_diet_done</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<command_params_var>anpar</command_params_var>
<command_params_var-type>java.lang.String</command_params_var-type>
<command_var>ancomm</command_var>
<command_var-type>java.lang.String</command_var-type>
<config_notification_command>cmd_mark_diet_done</config_notification_command>
<config_notification_command-type>java.lang.String</config_notification_command-type>
<message_single_case_insensitive>false</message_single_case_insensitive>
<message_single_case_insensitive-type>java.lang.Boolean</message_single_case_insensitive-type>
<message_single_exact>false</message_single_exact>
<message_single_exact-type>java.lang.Boolean</message_single_exact-type>
<message_single_regex>false</message_single_regex>
<message_single_regex-type>java.lang.Boolean</message_single_regex-type>
<message_var>anmessage</message_var>
<message_var-type>java.lang.String</message_var-type>
<net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED>true</net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED>
<net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED-type>java.lang.Boolean</net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED-type>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES>&lt;StringArray sr=""&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;%ancomm
Everything to the right of =:=
Everything to the right of =:=&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;%anmessage
Whole AutoNotification Message
Whole AutoNotification Message&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&gt;%anpar()
Array of single words to the left of =:=
Array of single words to the left of =:=&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&gt;&lt;/StringArray&gt;</net.dinglisch.android.tasker.RELEVANT_VARIABLES>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>
<net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT>10000</net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT>
<net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT-type>java.lang.Integer</net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT-type>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>message_var command_var command_params_var config_notification_command plugininstanceid plugintypeid </net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
<plugininstanceid>6cbbccc1-1242-4f6a-861e-cfe4b82309fd</plugininstanceid>
<plugininstanceid-type>java.lang.String</plugininstanceid-type>
<plugintypeid>com.joaomgcd.autonotification.intent.IntentCommandEvent</plugintypeid>
<plugintypeid-type>java.lang.String</plugintypeid-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.joaomgcd.autonotification</Str>
<Str sr="arg2" ve="3">com.joaomgcd.autonotification.activity.ActivityConfigConditionTaskerEvent</Str>
<Int sr="arg3" val="1"/>
</Event>
</Profile>'''
# Task 1: Show Diet Notification
task_show = f'''
<Task sr="task{new_task_show_id}">
<cdate>1762631971435</cdate>
<edate>1762935044696</edate>
<id>{new_task_show_id}</id>
<nme>Show Diet Notification</nme>
<pri>100</pri>
<Action sr="act0" ve="7">
<code>166160670</code>
<Bundle sr="arg0">
<Vals sr="val">
<StatusBarTextSize>16</StatusBarTextSize>
<StatusBarTextSize-type>java.lang.String</StatusBarTextSize-type>
<com.twofortyfouram.locale.intent.extra.BLURB>Title: Evaluate Your Diet
Text: Time to review your eating today!
Action on Touch: cmd_open_diet_note
Status Bar Text Size: 16
Id: notif_diet_evening
Separator: ,
Button 1: cmd_open_diet_note
Label 1: Open Note
Button 2: cmd_mark_diet_done
Label 2: Mark Done</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<config_notification_action>cmd_open_diet_note</config_notification_action>
<config_notification_action-type>java.lang.String</config_notification_action-type>
<config_notification_action_button1>cmd_open_diet_note</config_notification_action_button1>
<config_notification_action_button1-type>java.lang.String</config_notification_action_button1-type>
<config_notification_action_button2>cmd_mark_diet_done</config_notification_action_button2>
<config_notification_action_button2-type>java.lang.String</config_notification_action_button2-type>
<config_notification_action_label1>Open Note</config_notification_action_label1>
<config_notification_action_label1-type>java.lang.String</config_notification_action_label1-type>
<config_notification_action_label2>Mark Done</config_notification_action_label2>
<config_notification_action_label2-type>java.lang.String</config_notification_action_label2-type>
<config_notification_dismiss_on_touch>false</config_notification_dismiss_on_touch>
<config_notification_dismiss_on_touch-type>java.lang.Boolean</config_notification_dismiss_on_touch-type>
<config_notification_persistent>false</config_notification_persistent>
<config_notification_persistent-type>java.lang.Boolean</config_notification_persistent-type>
<config_notification_text>Time to review your eating today!</config_notification_text>
<config_notification_text-type>java.lang.String</config_notification_text-type>
<config_notification_title>Evaluate Your Diet</config_notification_title>
<config_notification_title-type>java.lang.String</config_notification_title-type>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>StatusBarTextSize config_notification_title config_notification_text config_notification_action config_notification_action_button1 config_notification_action_label1 config_notification_action_button2 config_notification_action_label2 notificaitionid plugininstanceid plugintypeid </net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
<notificaitionid>notif_diet_evening</notificaitionid>
<notificaitionid-type>java.lang.String</notificaitionid-type>
<plugininstanceid>2c3b7c1e-0ee9-4d73-bf77-2b1311cf1a26</plugininstanceid>
<plugininstanceid-type>java.lang.String</plugininstanceid-type>
<plugintypeid>com.joaomgcd.autonotification.intent.IntentNotification</plugintypeid>
<plugintypeid-type>java.lang.String</plugintypeid-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.joaomgcd.autonotification</Str>
<Str sr="arg2" ve="3">com.joaomgcd.autonotification.activity.ActivityConfigNotify</Str>
<Int sr="arg3" val="20"/>
<Int sr="arg4" val="1"/>
</Action>
</Task>'''
# Task 2: Mark Diet Done (dismiss notification)
task_done = f'''
<Task sr="task{new_task_done_id}">
<cdate>1762934967274</cdate>
<edate>1762935062373</edate>
<id>{new_task_done_id}</id>
<nme>Mark Diet Done</nme>
<pri>6</pri>
<Action sr="act0" ve="7">
<code>2046367074</code>
<Bundle sr="arg0">
<Vals sr="val">
<App>&lt;null&gt;</App>
<App-type>java.lang.String</App-type>
<CancelAll>false</CancelAll>
<CancelAll-type>java.lang.Boolean</CancelAll-type>
<CancelPersistent>false</CancelPersistent>
<CancelPersistent-type>java.lang.Boolean</CancelPersistent-type>
<com.twofortyfouram.locale.intent.extra.BLURB>Id: notif_diet_evening</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>notificaitionid plugininstanceid plugintypeid </net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
<notificaitionid>notif_diet_evening</notificaitionid>
<notificaitionid-type>java.lang.String</notificaitionid-type>
<plugininstanceid>2d6b7e1a-427b-442e-9f39-356480bf35d3</plugininstanceid>
<plugininstanceid-type>java.lang.String</plugininstanceid-type>
<plugintypeid>com.joaomgcd.autonotification.intent.IntentCancelNotification</plugintypeid>
<plugintypeid-type>java.lang.String</plugintypeid-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.joaomgcd.autonotification</Str>
<Str sr="arg2" ve="3">com.joaomgcd.autonotification.activity.ActivityConfigCancelNotification</Str>
<Int sr="arg3" val="20"/>
<Int sr="arg4" val="1"/>
</Action>
</Task>'''
# Combine all new elements
new_elements = profile_trigger + profile_event_open + profile_event_done + task_show + task_done
# Insert before </TaskerData>
content = content[:insert_point] + new_elements + '\n' + content[insert_point:]
# Update project pids (profile IDs)
content = re.sub(
r'<pids>([^<]+)</pids>',
lambda m: f'<pids>{m.group(1)},{new_profile_trigger_id},{new_profile_event_open_id},{new_profile_event_done_id}</pids>',
content,
count=1
)
# Update project tids (task IDs)
content = re.sub(
r'<tids>([^<]+)</tids>',
lambda m: f'<tids>{m.group(1)},{new_task_show_id},{new_task_done_id}</pids>',
content,
count=1
)
# Write output
with open(output_file, 'w', encoding='utf-8') as f:
f.write(content)
print(f"✓ Added 'Evaluate Diet' routine")
print(f" - Trigger time: 21:00 (9:00 PM)")
print(f" - Profile IDs: {new_profile_trigger_id}, {new_profile_event_open_id}, {new_profile_event_done_id}")
print(f" - Task IDs: {new_task_show_id}, {new_task_done_id}")
print(f" - Commands: cmd_open_diet_note, cmd_mark_diet_done")
print(f" - Notification ID: notif_diet_evening")
print(f"✓ Output written to {output_file}")
if __name__ == '__main__':
input_file = '/Users/vincentverbruggen/Personal/Personal/Areas/Tasker/Routine_Reminders.prj.xml'
output_file = '/Users/vincentverbruggen/Personal/Personal/Areas/Tasker/Routine_Reminders.prj.xml'
add_diet_routine(input_file, output_file)

View File

@@ -0,0 +1,151 @@
#!/usr/bin/env python3
"""
Standardize Tasker XML project file
- Consistent naming conventions
- Link notification buttons to correct tasks via AutoNotification commands
- Remove trailing spaces and inconsistencies
"""
import re
import sys
def standardize_tasker_xml(input_file, output_file):
with open(input_file, 'r', encoding='utf-8') as f:
content = f.read()
# Standardize Profile names
profile_replacements = {
'Launch Skincare Notification': 'Trigger Skincare Notification',
'Launch Prepare For Exercise Notification': 'Trigger Exercise Notification',
'Open Skincare Notification': 'Show Skincare Notification',
'Open Prepare Exercise Notification': 'Show Exercise Notification',
'Dismiss Exercise Notification': 'Mark Exercise Done',
}
for old, new in profile_replacements.items():
content = content.replace(f'<nme>{old}</nme>', f'<nme>{new}</nme>')
# Standardize command names (used in AutoNotification event filters and button actions)
command_replacements = {
'Open morning skincare': 'cmd_open_skincare_note',
'open skincare note': 'cmd_open_skincare_note',
'mark skincare done': 'cmd_mark_skincare_done',
'open exercise note': 'cmd_open_exercise_note',
'mark exercise done': 'cmd_mark_exercise_done',
'open diet note': 'cmd_open_diet_note',
}
for old, new in command_replacements.items():
# Remove trailing spaces from old commands
old_variants = [old, old + ' ', old + ' ']
for variant in old_variants:
# Replace in command filters
content = content.replace(
f'<config_notification_command>{variant}</config_notification_command>',
f'<config_notification_command>{new}</config_notification_command>'
)
# Replace in button actions
content = content.replace(
f'<config_notification_action_button1>{variant}</config_notification_action_button1>',
f'<config_notification_action_button1>{new}</config_notification_action_button1>'
)
content = content.replace(
f'<config_notification_action_button2>{variant}</config_notification_action_button2>',
f'<config_notification_action_button2>{new}</config_notification_action_button2>'
)
content = content.replace(
f'<config_notification_action>{variant}</config_notification_action>',
f'<config_notification_action>{new}</config_notification_action>'
)
# Standardize notification IDs
notif_id_replacements = {
'skincare morning': 'notif_skincare_morning',
'skincare morning ': 'notif_skincare_morning',
'prepare for exercise': 'notif_exercise_prep',
}
for old, new in notif_id_replacements.items():
content = content.replace(
f'<notificaitionid>{old}</notificaitionid>',
f'<notificaitionid>{new}</notificaitionid>'
)
# Also update in BLURB text
content = re.sub(
f'Id: {re.escape(old)}([\\n<])',
f'Id: {new}\\1',
content
)
# Standardize notification titles and texts (remove trailing spaces)
content = re.sub(
r'<config_notification_title>([^<]+?) +</config_notification_title>',
r'<config_notification_title>\1</config_notification_title>',
content
)
content = re.sub(
r'<config_notification_text>([^<]+?) +</config_notification_text>',
r'<config_notification_text>\1</config_notification_text>',
content
)
# Update project name
content = content.replace(
'<name>Skincare Demo</name>',
'<name>Routine Reminders</name>'
)
# Fix BLURB descriptions to reflect standardized commands
content = re.sub(
r'Filter: mark skincare done[ ]*',
'Filter: cmd_mark_skincare_done',
content
)
content = re.sub(
r'Filter: mark exercise done[ ]*',
'Filter: cmd_mark_exercise_done',
content
)
content = re.sub(
r'Button 1: open skincare note',
'Button 1: cmd_open_skincare_note',
content
)
content = re.sub(
r'Button 2: mark skincare done',
'Button 2: cmd_mark_skincare_done',
content
)
content = re.sub(
r'Button 1: open exercise note',
'Button 1: cmd_open_exercise_note',
content
)
content = re.sub(
r'Button 2: mark exercise done',
'Button 2: cmd_mark_exercise_done',
content
)
content = re.sub(
r'Button 1: open diet note',
'Button 1: cmd_open_diet_note',
content
)
content = re.sub(
r'Action on Touch: Open morning skincare[ ]*',
'Action on Touch: cmd_open_skincare_note',
content
)
# Write output
with open(output_file, 'w', encoding='utf-8') as f:
f.write(content)
print(f"✓ Standardized {input_file}")
print(f"✓ Output written to {output_file}")
if __name__ == '__main__':
input_file = '/Users/vincentverbruggen/Personal/Personal/Areas/Tasker/Skincare_Demo_Standardized.prj.xml'
output_file = '/Users/vincentverbruggen/Personal/Personal/Areas/Tasker/Routine_Reminders.prj.xml'
standardize_tasker_xml(input_file, output_file)

View File

@@ -0,0 +1,303 @@
#!/usr/bin/env python3
"""
Standardize Tasker XML project file v2
- Consistent naming conventions
- Link notification buttons to correct tasks via AutoNotification commands
- Add missing event profiles for button commands
- Remove trailing spaces and inconsistencies
"""
import re
def standardize_tasker_xml(input_file, output_file):
with open(input_file, 'r', encoding='utf-8') as f:
content = f.read()
# Standardize Profile names
profile_replacements = {
'Launch Skincare Notification': 'Trigger Skincare Notification',
'Launch Prepare For Exercise Notification': 'Trigger Exercise Notification',
'Open Skincare Notification': 'Show Skincare Notification',
'Open Prepare Exercise Notification': 'Show Exercise Notification',
'Dismiss Exercise Notification': 'Mark Exercise Done',
}
for old, new in profile_replacements.items():
content = content.replace(f'<nme>{old}</nme>', f'<nme>{new}</nme>')
# Standardize command names (used in AutoNotification event filters and button actions)
command_replacements = {
'Open morning skincare': 'cmd_open_skincare_note',
'open skincare note': 'cmd_open_skincare_note',
'mark skincare done': 'cmd_mark_skincare_done',
'open exercise note': 'cmd_open_exercise_note',
'mark exercise done': 'cmd_mark_exercise_done',
'open diet note': 'cmd_open_diet_note',
}
for old, new in command_replacements.items():
# Remove trailing spaces from old commands
old_variants = [old, old + ' ', old + ' ']
for variant in old_variants:
# Replace in command filters
content = content.replace(
f'<config_notification_command>{variant}</config_notification_command>',
f'<config_notification_command>{new}</config_notification_command>'
)
# Replace in button actions
content = content.replace(
f'<config_notification_action_button1>{variant}</config_notification_action_button1>',
f'<config_notification_action_button1>{new}</config_notification_action_button1>'
)
content = content.replace(
f'<config_notification_action_button2>{variant}</config_notification_action_button2>',
f'<config_notification_action_button2>{new}</config_notification_action_button2>'
)
content = content.replace(
f'<config_notification_action>{variant}</config_notification_action>',
f'<config_notification_action>{new}</config_notification_action>'
)
# Standardize notification IDs
notif_id_replacements = {
'skincare morning': 'notif_skincare_morning',
'skincare morning ': 'notif_skincare_morning',
'prepare for exercise': 'notif_exercise_prep',
}
for old, new in notif_id_replacements.items():
content = content.replace(
f'<notificaitionid>{old}</notificaitionid>',
f'<notificaitionid>{new}</notificaitionid>'
)
# Also update in BLURB text
content = re.sub(
f'Id: {re.escape(old)}([\\n<])',
f'Id: {new}\\1',
content
)
# Standardize notification titles and texts (remove trailing spaces)
content = re.sub(
r'<config_notification_title>([^<]+?) +</config_notification_title>',
r'<config_notification_title>\1</config_notification_title>',
content
)
content = re.sub(
r'<config_notification_text>([^<]+?) +</config_notification_text>',
r'<config_notification_text>\1</config_notification_text>',
content
)
# Update project name
content = content.replace(
'<name>Skincare Demo</name>',
'<name>Routine Reminders</name>'
)
# Fix BLURB descriptions to reflect standardized commands
content = re.sub(
r'Filter: mark skincare done[ ]*',
'Filter: cmd_mark_skincare_done',
content
)
content = re.sub(
r'Filter: mark exercise done[ ]*',
'Filter: cmd_mark_exercise_done',
content
)
content = re.sub(
r'Button 1: open skincare note',
'Button 1: cmd_open_skincare_note',
content
)
content = re.sub(
r'Button 2: mark skincare done',
'Button 2: cmd_mark_skincare_done',
content
)
content = re.sub(
r'Button 1: open exercise note',
'Button 1: cmd_open_exercise_note',
content
)
content = re.sub(
r'Button 2: mark exercise done',
'Button 2: cmd_mark_exercise_done',
content
)
content = re.sub(
r'Button 1: open diet note',
'Button 1: cmd_open_diet_note',
content
)
content = re.sub(
r'Action on Touch: Open morning skincare[ ]*',
'Action on Touch: cmd_open_skincare_note',
content
)
# Add missing event profiles for "open note" commands
# Find where to insert (before </TaskerData>)
insert_point = content.rfind('</TaskerData>')
# Check if profiles already exist
missing_profiles = []
if 'Event: Open Skincare Note' not in content:
missing_profiles.append('''
<Profile sr="prof150" ve="2">
<cdate>1762862939813</cdate>
<edate>1762935050872</edate>
<flags>8</flags>
<id>150</id>
<mid0>82</mid0>
<nme>Event: Open Skincare Note</nme>
<Event sr="con0" ve="2">
<code>1825107102</code>
<pri>0</pri>
<Bundle sr="arg0">
<Vals sr="val">
<com.twofortyfouram.locale.intent.extra.BLURB>Event Behaviour
Filter: cmd_open_skincare_note</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<command_params_var>anpar</command_params_var>
<command_params_var-type>java.lang.String</command_params_var-type>
<command_var>ancomm</command_var>
<command_var-type>java.lang.String</command_var-type>
<config_notification_command>cmd_open_skincare_note</config_notification_command>
<config_notification_command-type>java.lang.String</config_notification_command-type>
<message_single_case_insensitive>false</message_single_case_insensitive>
<message_single_case_insensitive-type>java.lang.Boolean</message_single_case_insensitive-type>
<message_single_exact>false</message_single_exact>
<message_single_exact-type>java.lang.Boolean</message_single_exact-type>
<message_single_regex>false</message_single_regex>
<message_single_regex-type>java.lang.Boolean</message_single_regex-type>
<message_var>anmessage</message_var>
<message_var-type>java.lang.String</message_var-type>
<net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED>true</net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED>
<net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED-type>java.lang.Boolean</net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED-type>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES>&lt;StringArray sr=""&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;%ancomm
Everything to the right of =:=
Everything to the right of =:=&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;%anmessage
Whole AutoNotification Message
Whole AutoNotification Message&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&gt;%anpar()
Array of single words to the left of =:=
Array of single words to the left of =:=&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&gt;&lt;/StringArray&gt;</net.dinglisch.android.tasker.RELEVANT_VARIABLES>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>
<net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT>10000</net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT>
<net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT-type>java.lang.Integer</net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT-type>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>message_var command_var command_params_var config_notification_command plugininstanceid plugintypeid </net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
<plugininstanceid>e1a87f0a-2e17-4b02-ab14-479198b7aea9</plugininstanceid>
<plugininstanceid-type>java.lang.String</plugininstanceid-type>
<plugintypeid>com.joaomgcd.autonotification.intent.IntentCommandEvent</plugintypeid>
<plugintypeid-type>java.lang.String</plugintypeid-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.joaomgcd.autonotification</Str>
<Str sr="arg2" ve="3">com.joaomgcd.autonotification.activity.ActivityConfigConditionTaskerEvent</Str>
<Int sr="arg3" val="1"/>
</Event>
</Profile>''')
if 'Event: Open Exercise Note' not in content:
missing_profiles.append('''
<Profile sr="prof151" ve="2">
<cdate>1762862939813</cdate>
<edate>1762935050872</edate>
<flags>8</flags>
<id>151</id>
<mid0>141</mid0>
<nme>Event: Open Exercise Note</nme>
<Event sr="con0" ve="2">
<code>1825107102</code>
<pri>0</pri>
<Bundle sr="arg0">
<Vals sr="val">
<com.twofortyfouram.locale.intent.extra.BLURB>Event Behaviour
Filter: cmd_open_exercise_note</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<command_params_var>anpar</command_params_var>
<command_params_var-type>java.lang.String</command_params_var-type>
<command_var>ancomm</command_var>
<command_var-type>java.lang.String</command_var-type>
<config_notification_command>cmd_open_exercise_note</config_notification_command>
<config_notification_command-type>java.lang.String</config_notification_command-type>
<message_single_case_insensitive>false</message_single_case_insensitive>
<message_single_case_insensitive-type>java.lang.Boolean</message_single_case_insensitive-type>
<message_single_exact>false</message_single_exact>
<message_single_exact-type>java.lang.Boolean</message_single_exact-type>
<message_single_regex>false</message_single_regex>
<message_single_regex-type>java.lang.Boolean</message_single_regex-type>
<message_var>anmessage</message_var>
<message_var-type>java.lang.String</message_var-type>
<net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED>true</net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED>
<net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED-type>java.lang.Boolean</net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED-type>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES>&lt;StringArray sr=""&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;%ancomm
Everything to the right of =:=
Everything to the right of =:=&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;%anmessage
Whole AutoNotification Message
Whole AutoNotification Message&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&gt;%anpar()
Array of single words to the left of =:=
Array of single words to the left of =:=&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&gt;&lt;/StringArray&gt;</net.dinglisch.android.tasker.RELEVANT_VARIABLES>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>
<net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT>10000</net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT>
<net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT-type>java.lang.Integer</net.dinglisch.android.tasker.extras.REQUESTED_TIMEOUT-type>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>message_var command_var command_params_var config_notification_command plugininstanceid plugintypeid </net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
<plugininstanceid>e1a87f0a-2e17-4b02-ab14-479198b7aea0</plugininstanceid>
<plugininstanceid-type>java.lang.String</plugininstanceid-type>
<plugintypeid>com.joaomgcd.autonotification.intent.IntentCommandEvent</plugintypeid>
<plugintypeid-type>java.lang.String</plugintypeid-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.joaomgcd.autonotification</Str>
<Str sr="arg2" ve="3">com.joaomgcd.autonotification.activity.ActivityConfigConditionTaskerEvent</Str>
<Int sr="arg3" val="1"/>
</Event>
</Profile>''')
# Insert missing profiles
if missing_profiles:
profiles_text = ''.join(missing_profiles)
content = content[:insert_point] + profiles_text + '\n' + content[insert_point:]
# Update project profile IDs (pids) to include new profiles
if 'prof150' in profiles_text:
content = re.sub(
r'<pids>([^<]+)</pids>',
lambda m: f'<pids>{m.group(1)},150</pids>',
content,
count=1
)
if 'prof151' in profiles_text:
content = re.sub(
r'<pids>([^<]+)</pids>',
lambda m: f'<pids>{m.group(1)},151</pids>',
content,
count=1
)
# Write output
with open(output_file, 'w', encoding='utf-8') as f:
f.write(content)
print(f"✓ Standardized {input_file}")
if missing_profiles:
print(f"✓ Added {len(missing_profiles)} missing event profile(s) to link buttons to actions")
print(f"✓ Output written to {output_file}")
print("\nStandardization complete!")
print("- All command names use 'cmd_' prefix")
print("- All notification IDs use 'notif_' prefix")
print("- Profile/task names are consistent")
print("- Button actions are linked to event profiles")
if __name__ == '__main__':
input_file = '/Users/vincentverbruggen/Personal/Personal/Areas/Tasker/Skincare_Demo_Standardized.prj.xml'
output_file = '/Users/vincentverbruggen/Personal/Personal/Areas/Tasker/Routine_Reminders.prj.xml'
standardize_tasker_xml(input_file, output_file)

Binary file not shown.

After

Width:  |  Height:  |  Size: 735 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 KiB

View File

@@ -0,0 +1,277 @@
---
created: 2025-11-11 10:16
updated: 2025-11-11 10:36
---
# Dating Anxiety Resources
## Understanding What's Happening
What you're experiencing is completely normal - it's called **performance anxiety in romantic contexts**. Here's why you feel anxious with potential romantic interests but not with female friends:
### The Neurological Explanation
Research shows that when we're interested in someone romantically, our brains activate differently than with friends:
- **Reward circuits activate**: Areas containing dopamine and oxytocin receptors (putamen, caudate nucleus, VTA) light up with romantic interest
- **Critical assessment suppresses**: The brain regions that normally help us objectively assess people shut down - making the stakes feel much higher
- **High-motivation state**: Passionate/romantic interest creates a highly motivated state that's neurologically more intense than friendship
In simple terms: your brain treats romantic situations as high-stakes because evolutionarily they are. With friends, those reward/assessment circuits stay calm.
## Why "Blinding Excitement" Turns Into Anxiety
The "blinding excitement" you feel is actually your brain's reward system firing up - but when combined with:
- Fear of rejection
- Pressure to perform well conversationally
- Self-monitoring ("how am I doing?")
- Vulnerability of showing romantic interest
...it can quickly flip into anxiety. You're essentially experiencing **performance anxiety** - evaluating your performance while you're performing, which makes performance worse.
## Practical Coping Strategies
### Immediate Techniques (In the Moment)
1. **Deep Breathing Exercise**
- Inhale slowly for 4 counts
- Hold for 2 counts
- Exhale for 6 counts
- Repeat 3-5 times
- This activates your parasympathetic nervous system and counteracts the stress response
2. **Grounding Technique (5-4-3-2-1)**
- Name 5 things you can see
- 4 things you can touch
- 3 things you can hear
- 2 things you can smell
- 1 thing you can taste
- This pulls you out of your head and into the present moment
3. **Reframe the Excitement**
- Your body's anxiety response (racing heart, butterflies) is identical to excitement
- When you feel it coming on, literally say to yourself: "I'm excited" instead of "I'm anxious"
- Research shows this reappraisal technique is highly effective
### Cognitive Behavioral Therapy (CBT) Techniques
#### Cognitive Restructuring
**Identify anxious thoughts:**
- "What if they don't like me?"
- "What if I embarrass myself?"
- "I'm going to mess this up"
- "They're probably not interested anyway"
**Challenge them with reality:**
- "They agreed to talk/meet, so there's some interest"
- "Everyone has awkward moments - it's human"
- "I have successful friendships with women, so I can have good conversations"
- "The worst case is they're not interested, which doesn't mean anything about my worth"
**Write it down:**
- Keep a small note in your phone where you write down the anxious thought, then counter it with evidence
- Do this after interactions to build a reference library for next time
#### Behavioral Experiments
Test your fears in low-stakes ways:
1. **Graduated Exposure**
- Start with brief, casual conversations (coffee shop, bookstore, etc.)
- Progress to slightly longer interactions
- Eventually work up to asking someone out
- Each successful interaction rewires your brain's threat response
2. **Reality Testing**
- Make a prediction: "If I talk to her, she'll think I'm boring"
- Test it: Have the conversation
- Evaluate: What actually happened? Usually reality is far better than prediction
3. **Embrace Imperfection**
- Deliberately say something slightly awkward to practice
- Notice that conversations continue and people don't react dramatically
- This desensitizes you to the fear of imperfection
### Long-Term Strategies
1. **Lifestyle Factors**
- Regular exercise (you already run!) - helps regulate anxiety baseline
- Reduce caffeine on days you might interact with someone you're interested in
- Adequate sleep - sleep deprivation amplifies anxiety
- Balanced diet - blood sugar crashes can trigger anxiety responses
2. **Mindfulness Practice** (see detailed research section below)
- 10 minutes of daily meditation builds your capacity to stay present
- Apps like Calm, Headspace, or Insight Timer have specific dating anxiety programs
- The goal is to notice anxious thoughts without getting pulled into them
3. **Self-Compassion**
- Talk to yourself like you'd talk to a friend
- "This is hard, and that's okay. I'm doing my best."
- Research shows self-compassion is more effective than self-criticism for performance improvement
4. **Prepare Conversation Topics**
- Have 3-5 go-to topics/questions ready
- Reduces cognitive load when anxious
- Examples:
- "What's keeping you busy these days?"
- "Have you been to [relevant place/event]?"
- "What got you into [something you know about them]?"
### The "Shift Focus" Technique
Instead of monitoring yourself ("How am I doing? Do I sound interesting?"), shift focus to genuine curiosity about them:
- What's interesting about this person?
- What can I learn from them?
- What makes them light up when they talk?
This switches you from performance mode to connection mode - which ironically makes you more attractive AND less anxious.
## The Science: Meditation and Anxiety Research
There's **extensive** research supporting meditation for anxiety - hundreds of clinical trials and brain imaging studies. Here's what the science shows:
### Meta-Analyses and Clinical Effectiveness
**Large-Scale Studies:**
- **JAMA 2014 Meta-Analysis**: Reviewed 47 trials with 3,515 participants. Mindfulness meditation showed **moderate evidence** of improved anxiety with an effect size of 0.38 at 8 weeks and 0.22 at 3-6 months
- **2021 Nature Study**: 23 randomized controlled trials with 1,815 adults with DSM-5 anxiety disorders found mindfulness-based interventions (MBSR, MBCT) led to significant short-term effects on both clinician- and patient-rated anxiety
- **2024 App Study**: Meta-analysis of 45 trials found meditation apps reduce anxiety (effect size: 0.28) - modest but significant for a phone app!
- **2025 MBSR Review**: Studies on young adults (ages 13-26) consistently showed significant reductions in anxiety levels, with improvements in emotional regulation and coping skills
**Effect Sizes Explained:**
- 0.2 = small effect
- 0.5 = medium effect
- 0.8 = large effect
Most meditation studies show effect sizes of 0.3-0.6 for anxiety - comparable to some medications and CBT, which is remarkable for a free, side-effect-free practice.
**For Anxiety Disorders Specifically:**
- Mindfulness-based therapy showed a Hedges' g = 0.63 for improving anxiety symptoms
- In patients with diagnosed anxiety and mood disorders, the effect size was **0.97** - nearly a large effect
- For social anxiety disorder, mindfulness was superior to no treatment (g = 0.89) and equivalent to active treatment
- Effects persisted for **12 months** in follow-up studies
### Brain Changes: What fMRI Studies Show
Neuroscience research reveals meditation literally changes brain structures and activity patterns related to anxiety:
**Amygdala Changes (Your Anxiety Alarm System):**
- fMRI studies show **reduced amygdala size and reactivity** after meditation training
- The amygdala is your brain's threat detector - it triggers the anxiety response
- One study on MBSR for generalized anxiety disorder found changes in amygdala activation that **correlated with improvements** in anxiety scores
- These changes appear in as little as 8 weeks of practice
**Prefrontal Cortex Strengthening (Your Rational Brain):**
- Meditation increases connectivity between the prefrontal cortex (rational thinking) and the amygdala
- This means better "top-down" control - your thinking brain can better regulate emotional reactions
- Studies show increased activation in attention-regulating regions when facing anxiety-provoking situations
**Default Mode Network (The "Worry Circuit"):**
- Meditators show **decreased activity in the default mode network** during meditation
- This network is responsible for mind-wandering, rumination, and self-focused worry
- Lower DMN activity = less rumination and anxiety
- One study found decreased low-frequency brain activity that correlated with reduced depression symptoms after 40 days of practice
**Timeline of Changes:**
- Some changes occur relatively quickly (4-8 weeks)
- Other structural changes require more sustained practice (months to years)
- Even novice meditators show measurable brain changes
### How It Works: The Mechanisms
Research suggests meditation reduces anxiety through multiple pathways:
1. **Attention Regulation**: Training to notice when your mind wanders to anxious thoughts and bring it back to the present
2. **Emotion Regulation**: Decreased amygdala reactivity + increased prefrontal control = better emotional management
3. **Body Awareness**: Learning to notice physical sensations without immediately interpreting them as threats
4. **Reduced Rumination**: Breaking the cycle of repetitive negative thinking
5. **Self-Compassion**: Treating yourself kindly rather than critically when anxious
### Practical Implications for You
**What This Means:**
- Meditation isn't just "relaxation" - it creates measurable changes in anxiety-related brain circuits
- The effects are comparable to established treatments like CBT and medication
- You need consistency more than long sessions - 10 minutes daily is better than 60 minutes once a week
- Changes begin within weeks but deepen with continued practice
- It works for clinical anxiety disorders, not just everyday stress
**Types of Meditation Studied:**
- **MBSR (Mindfulness-Based Stress Reduction)**: 8-week structured program, most researched
- **MBCT (Mindfulness-Based Cognitive Therapy)**: Combines meditation with CBT elements
- **General mindfulness meditation**: Simple breath-focused or body-scan practices
- **App-based programs**: Headspace, Calm, Insight Timer - all shown to help
**Starting Point:**
Given the research, a practical approach for your dating anxiety:
- Start with 10 minutes daily of simple breath-focused meditation
- Use an app with anxiety-specific content (Headspace's anxiety course is well-studied)
- Practice consistently for at least 8 weeks to see brain changes
- Combine with the CBT techniques mentioned earlier for maximum benefit
### Important Caveats
The research isn't perfect:
- Many studies have small sample sizes
- Long-term effects (beyond 12 months) need more research
- Some people benefit more than others (no way to predict who yet)
- It's not a cure-all - severe anxiety may need professional treatment + meditation
- Effects are modest - think of it as one tool in your toolkit, not a magic solution
### Bottom Line
The evidence is clear: meditation works for anxiety, changes your brain in measurable ways, and the effects are real and lasting. For your specific situation (episodic anxiety when talking to romantic interests), a consistent meditation practice could help by:
- Reducing baseline amygdala reactivity
- Strengthening your ability to notice anxious thoughts without getting swept away
- Improving your capacity to stay present in the moment rather than monitoring your performance
- Building general emotional resilience
## When to Seek Professional Help
Consider talking to a therapist specializing in CBT or anxiety if:
- The anxiety is preventing you from pursuing romantic interests at all
- You experience panic attacks in dating situations
- The anxiety is affecting other areas of your life
- Self-help strategies aren't making a difference after a few months
Therapists can provide:
- Structured CBT programs specifically for dating anxiety
- Exposure therapy in a supportive environment
- Tools for managing panic symptoms
- Exploration of underlying beliefs about relationships/worthiness
## Key Takeaway
Your brain is doing exactly what it evolved to do - signaling that something important is happening. The anxiety isn't a flaw; it's just your system being overly protective. With practice, you can teach your brain that romantic conversations are exciting opportunities, not threats.
The fact that you're comfortable with female friends proves you have the social skills. This is purely about managing the anxiety response when romantic stakes are present.
## Resources
### Books
- "The Anxiety and Phobia Workbook" by Edmund Bourne
- "Feeling Good: The New Mood Therapy" by David Burns (CBT techniques)
- "The Confidence Gap" by Russ Harris (acceptance-based approach)
### Online Resources
- [National Social Anxiety Center - Dating Phobia CBT Strategies](https://nationalsocialanxietycenter.com/professional-workshops/the-deeply-personal-fear-of-rejection-in-dating-phobia-cbt-treatment-strategies/)
- [Psychology Today - Dating with Social Anxiety CBT Tips](https://www.psychologytoday.com/us/blog/the-dynamics-of-love/202502/dating-with-social-anxiety-3-intimacy-boosting-cbt-tips)
- [Choosing Therapy - Dating Anxiety Guide](https://www.choosingtherapy.com/dating-anxiety/)
### Research Papers (Meditation & Anxiety)
- [JAMA 2014 - Meditation Programs for Psychological Stress and Well-being (Meta-Analysis)](https://jamanetwork.com/journals/jamainternalmedicine/fullarticle/1809754)
- [Harvard Study - How Mindfulness Changes the Brain](https://news.harvard.edu/gazette/story/2018/04/harvard-researchers-study-how-mindfulness-may-change-the-brain-in-depressed-patients/)
- [MDPI 2021 - Effectiveness of Mindfulness-Based Interventions on Anxiety Disorders](https://www.mdpi.com/2254-9625/10/3/52)
- [PMC - Neurobiological Changes Induced by Mindfulness and Meditation](https://pmc.ncbi.nlm.nih.gov/articles/PMC11591838/)
### Apps
- Calm (mindfulness and anxiety management)
- Headspace (meditation and anxiety courses)
- Insight Timer (free meditation app with dating anxiety content)
- DARE (specifically for anxiety management)
---
*Remember: The goal isn't to never feel anxious. The goal is to feel anxious AND do it anyway. The anxiety will decrease naturally with repeated positive experiences.*

View File

@@ -1,3 +1,7 @@
---
created: 2025-11-13 08:53
updated: 2025-11-13 13:43
---
# Breeze
@@ -28,18 +32,88 @@ When creating a Breeze profile, users provide:
## Q&A Prompts List
Here are the confirmed prompts available in Breeze (with Dutch translations where applicable):
Breeze organizes Q&A prompts into four categories: Speels (Playful), Ambities (Ambitions), Interesses (Interests), and Persoonlijk (Personal).
### Confirmed Prompts
### Speels (Playful)
1. **"Worst idea I've ever had"** / **"Slechtste idee dat ik ooit had"**
- Example: "Making a fool of myself by using a dating app"
<!-- 1. **Mijn allerlaatste maaltijd zou zijn** - My very last meal would be -->
2. **Als ik onze tweede date mocht plannen, zouden we** - If I could plan our second date, we would
3. **Mijn perfecte vakantie** - My perfect vacation
4. **Wat ik graag doe op een regenachtige zondag** - What I like to do on a rainy Sunday
1. Rustig wakker worden met koffie in bed, een excuse verzinnen om niet te gaan hardlopen, toch gaan hardlopen en een film.
5. **Een mythisch wezen waar ik me het meest in herken** - A mythical creature I relate to most
6. **Mijn favoriete gekke eetcombinatie** - My favorite weird food combination
7. **Hier moet ik altijd om lachen** - This always makes me laugh
8. **Als mijn leven een themafeest had, dan was het** - If my life was a theme party, it would be
9. **Het mooiste uitzicht dat ik ooit heb gezien** - The most beautiful view I've ever seen
10. **Een superkracht die ik graag zou hebben** - A superpower I'd like to have
11. **Ik zou graag een etentje organiseren voor deze drie bekende mensen** - I'd like to organize a dinner for these three famous people
2. **"My dream job if money didn't matter"** / **"Mijn droombaan als geld geen rol speelde"**
### Ambities (Ambitions)
3. **"Random fact(s) about me"** / **"Willekeurig feit(en) over mij"**
12. **Iets wat ik nog graag wil leren** - Something I still want to learn
13. **Mijn droombaan als geld geen rol speelde** - My dream job if money didn't matter
14. **Het slechtste idee dat ik ooit heb gehad** - The worst idea I've ever had
15. **Een levensdoel van mij** - A life goal of mine
16. **Waar ik trots op ben** - What I'm proud of
17. **Iets waarvan ik wou dat ik er goed in was** - Something I wish I was good at
18. **Een uitdaging waarvan ik mezelf verbaas dat ik het aankon** - A challenge I'm surprised I could handle
19. **Het meest willekeurige ding op mijn bucketlist** - The most random thing on my bucket list
20. **Mijn ideale plek om te wonen** - My ideal place to live
21. **Iets waar ik op dit moment naar uitkijk** - Something I'm looking forward to right now
22. **Een nutteloze skill waar ik stiekem best trots op ben** - A useless skill I'm secretly quite proud of
4. **"Most awkward moment of my life"** / **"Meest awkward moment van mijn leven"**
### Interesses (Interests)
23. **Iets waar ik uren over kan praten** - Something I can talk about for hours
24. **Wat ik op dit moment aan het lezen ben** - What I'm currently reading
1. How to read a book - Mortimer J. Adler
25. **Mijn favoriete artiest of band** - My favorite artist or band
26. **Mijn favoriete boek/film/tv serie** - My favorite book/film/tv series
27. **Dingen die mij blij maken** - Things that make me happy
28. **Iets dat iedereen minstens één keer zou moeten proberen** - Something everyone should try at least once
29. **Het nummer waar ik op dit moment helemaal verslaafd aan ben** - The song I'm completely addicted to right now
30. **Het meest obscure feit dat ik ken** - The most obscure fact I know
31. **Een activiteit waar ik mijzelf in verlies** - An activity I lose myself in
32. **Het fictieve personage waar ik me het meest in herken** - The fictional character I relate to most
33. **Een niche rabbit hole die me fascineert** - A niche rabbit hole that fascinates me
### Persoonlijk (Personal)
<!-- 34. **Iets ongebruikelijks dat ik aantrekkelijk vind aan iemand** - Something unusual I find attractive in someone -->
<!-- 35. **Mijn kernwaarden** - My core values -->
36. **Willekeurige feitjes over mij** - Random facts about me
37. **Meest ongemakkelijke moment uit mijn leven** - Most awkward moment of my life
38. **Mijn persoonlijke motto** - My personal motto
39. **Het verhaal achter mijn tattoo** - The story behind my tattoo
40. **Wat 'thuis' voor mij betekent** - What 'home' means to me
41. **Wat mijn innerlijke kind naar boven haalt** - What brings out my inner child
42. **Een compliment dat ik nooit ben vergeten** - A compliment I've never forgotten
43. **Vrienden komen altijd bij mij voor** - Friends always come to me for
44. **De emoji(s) die mijn energie het beste beschrijven** - The emoji(s) that best describe my energy
### Photo Caption Prompts (Dutch)
When adding photos to your Breeze profile, you can select from these caption prompts:
1. **Ik op mijn best** - Me at my best
2. **Laten we hier samen naartoe gaan** - Let's go here together
3. **#SquadGoals** - #SquadGoals
4. **Dit is mijn kind** - This is my child
5. **Ik beloof je dat ik veranderd ben** - I promise you I've changed
6. **Woke up like this** - Woke up like this
7. **Mijn beste vriend en ik** - My best friend and I
8. **Point of view** - Point of view
9. **Zoals te zien op mijn LinkedIn** - As seen on my LinkedIn
10. **Ik zou nu kunnen huilen** - I could cry right now
11. **Mijn geheime talent** - My secret talent
12. **Dit is niet mijn kind** - This is not my child
13. **Met mij daten ziet er zo uit** - Dating me looks like this
14. **Dit zouden wij kunnen zijn** - This could be us
15. **Een diepe herinnering van mij** - A deep memory of mine
16. **Hier heb ik hard voor gewerkt** - I worked hard for this
17. **Ik kan dit uitleggen...** - I can explain this...
18. **Mijn favoriete plek in de wereld** - My favorite place in the world
## Profile Tips (From Breeze's Analysis)
@@ -58,4 +132,4 @@ Users can join "dating pools" for better matching:
## Note
The complete list of all Q&A prompts wasn't publicly available. To see all prompts, you would need to download the app and view them during profile setup. The prompts above were mentioned in Dutch reviews and user experiences.
All Q&A prompts and photo caption prompts extracted from the Breeze app (November 2025). The app organizes prompts into four main categories to help users showcase different aspects of their personality.

View File

@@ -0,0 +1,361 @@
---
created: 2025-11-11 10:50
updated: 2025-11-11 10:50
---
# Guided Meditation System for Dating Anxiety (Accountability-Focused)
## The Problem: You Know Meditation Hasn't Stuck Before
**Why unguided meditation fails for most people:**
- No structure = decision fatigue every morning ("what do I do?")
- No voice = your mind wanders with no anchor
- No accountability = easy to skip
- No progression = feels aimless
**What you actually need:**
- ✅ Someone telling you what to do (guided voice)
- ✅ Structured program (removes decisions)
- ✅ Built-in accountability (streaks, reminders)
- ✅ Progressive difficulty (feels like progress)
## The Recommended System
### App: **Headspace** (Best for Your Needs)
**Why Headspace specifically:**
1. **Most research-backed** - 14 clinical trials (vs 1 for Calm)
2. **Structured courses** - "Basics" → "Stress" → "Managing Anxiety" progression
3. **Gradual progression** - Each session builds on the last
4. **15-minute sessions** - Exactly what you wanted
5. **Anxiety-specific content** - "Reframing Anxiety" and "Difficult Conversations" packs
6. **Built-in streaks** - Shows your consecutive days
7. **Daily reminders** - Push notifications at your chosen time
**Cost:** $69.99/year (~$5.83/month) OR $12.99/month
- 14-day free trial for annual plan
- **Worth it** - same price as 1-2 coffees/month for brain rewiring
**Alternative if budget is tight:** Insight Timer (free, huge library, but less structured)
### The 8-Week Program Using Headspace
#### Week 1-2: Headspace "Basics 1" Course
- **What:** Foundation meditation training
- **Duration:** 10 sessions, 10 minutes each → then bump to 15 min
- **Focus:** Breath awareness, body scan, noting thoughts
- **Your job:** Just show up and press play
#### Week 3-4: Headspace "Stress" Course
- **What:** Managing stress responses
- **Duration:** 10 sessions, 15 minutes each
- **Focus:** Recognizing stress in body, letting go of tension
- **Relevance:** This is where you learn body awareness for anxiety
#### Week 5-6: Headspace "Managing Anxiety" Course
- **What:** EXACTLY what you need
- **Duration:** 10 sessions, 15 minutes each
- **Focus:** Reframing anxiety, staying present, responding vs reacting
- **Relevance:** Direct application to dating anxiety
#### Week 7-8: Headspace "Reframing Anxiety" or "Difficult Conversations"
- **What:** Advanced application
- **Duration:** 10 sessions, 15 minutes each
- **Focus:** Using anxiety as information, navigating challenging interactions
- **Relevance:** Performance anxiety in romantic contexts
### Daily Routine Integration
**Your current morning routine:**
1. Stretch
2. Clean face
3. Make bed
4. Drink bottle of water
**New routine:**
1. Stretch
2. Clean face
3. Make bed
4. Drink bottle of water
5. **→ Open Headspace, press play on today's session (15 min)**
6. Continue with day
**Key insight:** You're not "meditating" - you're "following instructions from the app"
- Removes the mental load
- Just show up, hit play, do what the voice says
## The Accountability Layer
Using **just** Headspace isn't enough if you've failed before. Add these:
### 1. Built-in Headspace Features (Use These!)
**Daily Reminder:**
- Set for 7:00 AM (or right after you finish water)
- Turn on push notifications
- Don't snooze - when you see it, do it immediately
**Streak Counter:**
- Headspace shows your current streak prominently
- Gamifies consistency
- Goal: Don't break the streak
**Progress Tracker:**
- Shows % of course completed
- Creates "I'm almost done with this course" momentum
### 2. External Accountability: Habit Tracker App
**Recommended: Streaks (iOS) or Habitify (iOS/Android)**
Why add this when Headspace has tracking?
- **Separate visual reminder** - see it on your home screen
- **Cross-links with other habits** - meditation becomes part of routine cluster
- **Backup accountability** - if you skip Headspace, you still see the broken streak
**Setup:**
- Add habit: "Headspace meditation - 15 min"
- Set reminder: 7:00 AM
- Widget on home screen showing streak
- Check it off AFTER you complete Headspace session
### 3. Social Accountability (Optional but Powerful)
**Option A: Tell someone**
- Text a friend: "I'm doing 8 weeks of daily meditation for anxiety. Can you check in on me Sundays?"
- Weekly text to them: "5/7 days this week"
- Adds external pressure (in a good way)
**Option B: Public commitment**
- Post on social media: "Starting 8-week meditation challenge for mental health"
- Weekly updates with streak count
- Public shame is motivating for some people
**Option C: Financial stakes (Nuclear option)**
- Use **Beeminder** or **stickK** app
- Put $50-100 on the line
- If you miss meditation, money goes to charity you hate
- Extremely effective for people who need strong accountability
### 4. Physical Tracker: Calendar X's
**Old school but works:**
- Print a calendar for 8 weeks
- Hang it where you see it (bathroom mirror, bedroom door)
- Big red X for each day you complete
- "Don't break the chain" method (Jerry Seinfeld technique)
## Implementation Plan
### Tonight (Setup Night)
**Step 1: Download Headspace**
- Sign up for 14-day free trial (annual plan for longer trial)
- Complete the onboarding questionnaire
- Select "Managing anxiety" as a goal
- Set daily reminder for 7:00 AM (or your wake time)
**Step 2: Do Day 1 NOW**
- Don't wait until tomorrow
- Complete the first "Basics 1" session tonight
- This creates momentum and familiarizes you with the interface
- You'll know exactly what to expect tomorrow morning
**Step 3: Set up accountability layers**
- Download Streaks or Habitify
- Add "Headspace 15 min" habit
- Set reminder for 7:00 AM
- Optional: Text a friend about your 8-week commitment
- Optional: Print 8-week calendar and hang it up
**Step 4: Prepare environment**
- Choose your meditation spot (chair, cushion on floor)
- Test that headphones work
- Put phone on Do Not Disturb mode settings (allow Headspace notifications only)
- Set out water bottle for tomorrow morning
### Tomorrow Morning (Day 2)
1. Wake up
2. Stretch
3. Clean face
4. Make bed
5. Drink water bottle
6. **Open Headspace → "Basics 1" Day 2 → Press Play → Follow instructions**
7. Mark complete in Streaks/Habitify
8. X on calendar
9. Continue with day
**That's it. No decisions. Just execute.**
### Weekly Review (Every Sunday Evening)
**5-minute check-in:**
1. Days completed this week: __/7
2. Current streak: __
3. What made it easy this week?
4. What got in the way?
5. Adjustment for next week?
6. Text accountability partner if you have one
## Troubleshooting: Why You'll Want to Skip
### "I don't have time"
- You have time for 15 min of social media scrolling
- This is a priority or it isn't
- Set alarm 15 min earlier if genuinely tight
### "I forgot"
- You have 3 reminders: Headspace, Streaks, and (optionally) calendar
- Forgetting = not looking at phone in morning (unlikely)
- Real issue: saw reminder, chose not to do it
- Solution: Commitment = do it when you see reminder, no negotiation
### "I'm traveling / sick / busy"
- Headspace works anywhere with phone
- Sick in bed? Do it lying down
- Traveling? Do it in hotel/Airbnb
- Truly impossible day? OK, but get back on tomorrow
- Missing 1 day won't break you, but 2+ starts a quit pattern
### "I don't feel like it"
- This is THE moment that matters
- Meditation on days you don't feel like it = the actual practice
- Do it especially on these days
- Discipline over motivation
### "It's not working"
- 8 weeks minimum for brain changes
- You won't feel different after week 1 or 2
- Trust the process, trust the research
- Results are cumulative and subtle
## The Real-World Application Piece
**Headspace teaches you the skills. You apply them in dating contexts.**
### After Week 2 (Body Awareness Trained)
- Before talking to someone you're attracted to:
- Quick body scan (jaw, shoulders, stomach)
- Release any tension
- Takes 30 seconds
### After Week 4 (Stress Management Trained)
- When you feel the anxiety spike:
- Notice it (you've practiced noticing in Headspace)
- One deep breath (exactly like in the sessions)
- Reframe: "I'm excited"
### After Week 6 (Anxiety Reframing Trained)
- During an interaction:
- Notice self-monitoring starting
- Shift focus to curiosity about them (Headspace taught you to shift attention)
- Stay present with what they're saying
### After Week 8 (Difficult Conversations Trained)
- You have a full toolkit:
- Pre-interaction: 5-min Headspace "SOS" session
- During: Present-moment awareness
- After: Self-compassion (not self-criticism)
## Success Metrics
**NOT:** "I never feel anxious anymore"
**YES:**
- [ ] I completed 45+ days out of 56 (80%)
- [ ] I notice anxiety earlier in my body
- [ ] I've used a technique in a real dating situation
- [ ] I recover faster when anxiety hits
- [ ] I stayed present for part of a conversation instead of monitoring myself
- [ ] I'm less harsh on myself about the anxiety
## Cost-Benefit Analysis
**Investment:**
- Money: $70/year = $5.83/month
- Time: 15 min/day × 56 days = 14 hours total
- Effort: Pressing play and following instructions
**Return if it works:**
- Less anxiety in romantic situations
- More authentic connections
- Brain changes that last beyond 8 weeks
- Transferable skill for any stressful situation
- Better than therapy hourly rate ($70 for 14 hours of guided practice)
**Return if it doesn't work:**
- You tried something backed by research
- You built a 15-min morning habit (transferable to other things)
- You learned meditation isn't for you (valuable info)
- Cost: 1-2 dinners out
## Your Commitment Statement
Fill this out and keep it somewhere visible:
```
I, [your name], commit to 8 weeks (56 days) of guided meditation using Headspace.
Start date: ____________
End date: ____________ (8 weeks from start)
I will practice for 15 minutes every morning after drinking my water bottle.
I'm doing this because: ________________________________
I will use these accountability measures:
[ ] Headspace streaks
[ ] Streaks/Habitify app
[ ] Calendar X's
[ ] Accountability partner: __________
[ ] Financial stakes (optional)
When I don't feel like it, I will remember:
- This is the moment that counts
- Just press play and follow instructions
- 15 minutes is nothing
- I committed to 8 weeks, not "until I feel like stopping"
Signed: ____________
```
## Next Actions
**Right now (tonight):**
1. [ ] Download Headspace
2. [ ] Start 14-day free trial
3. [ ] Complete "Basics 1" Day 1 (10 min) RIGHT NOW
4. [ ] Set 7:00 AM reminder
5. [ ] Download Streaks or Habitify
6. [ ] Add meditation habit with reminder
7. [ ] Optional: Text accountability partner
8. [ ] Optional: Print 8-week calendar
**Tomorrow morning:**
1. [ ] Follow your routine through "drink water"
2. [ ] Open Headspace → Press play → Follow instructions
3. [ ] Mark complete in tracker
4. [ ] X on calendar
5. [ ] Done
**No more planning. No more research. Just execute.**
---
## The Bottom Line
You've tried unguided meditation and it didn't stick. That's fine - most people need structure.
**This system removes all friction:**
- ✅ Voice tells you what to do (no decisions)
- ✅ Courses progress automatically (no planning)
- ✅ Multiple reminders (no forgetting)
- ✅ Streak tracking (gamified motivation)
- ✅ Specific to anxiety (directly applicable)
**Your job is stupidly simple:**
1. Press play when reminder goes off
2. Do what the voice says for 15 minutes
3. Mark it complete
4. Repeat for 56 days
**Start tonight. Session 1. Right now. Go.**

View File

@@ -0,0 +1,297 @@
---
created: 2025-11-11 10:45
updated: 2025-11-11 10:45
---
# Meditation Plan for Dating/Romantic Anxiety (Specific)
## Your Specific Situation
**Not generalized anxiety** - You have:
- Female friends you're comfortable with
- Generally fine social skills
- Specific trigger: women you're romantically interested in
- Symptom: "blinding excitement" that becomes anxiety
- Mechanism: Performance anxiety + reward system activation
**What you need:** Tools to manage the specific neurological response when romantic stakes are present.
## The Targeted Approach
Unlike general anxiety meditation, your plan needs to focus on:
1. **Recognizing early warning signs** (body scan skills)
2. **Interrupt the performance monitoring loop** (mindfulness to stay present)
3. **Reframe excitement as positive** (not threat)
4. **Build distress tolerance** for the physical sensations
5. **Practice "in-situation" grounding** (quick techniques)
## Daily Practice: 15 Minutes (Morning Anchor)
### Why Morning?
- Builds baseline emotional regulation
- Creates reserves for when you need them (like strength training)
- Research shows best adherence for beginners
### Week 1-2: Body Awareness Training
**Goal:** Learn to recognize where YOUR anxiety shows up physically
**The Practice (15 min):**
1. **Settle (2 min)**: Sit, close eyes, few deep breaths
2. **Body Scan with Anxiety Focus (10 min):**
- Move attention through body slowly
- **Pay special attention to common anxiety hotspots:**
- **Jaw** - clenched teeth?
- **Throat** - tight, hard to swallow?
- **Chest** - heart racing, tight?
- **Stomach** - butterflies, nausea, dropping sensation?
- **Hands** - cold, sweaty, tingly?
- **Breath** - shallow, rapid?
3. **Mental Rehearsal (3 min):**
- Imagine talking to someone you're attracted to
- Notice what happens in your body
- Don't change it - just observe and get familiar
- This teaches your brain the sensations aren't dangerous
**Why This Works:**
- You'll start noticing the physical anxiety CASCADE earlier
- Earlier detection = easier intervention
- Familiarity reduces threat response
### Week 3-4: Present-Moment Training
**Goal:** Break the "performance monitoring" loop
**The Practice (15 min):**
1. **Breath Focus (7 min):**
- Simple breath awareness
- Notice when mind goes to:
- Evaluating performance ("Am I doing this right?")
- Imagining future scenarios
- Rehashing past interactions
- Each time, label it: "thinking" or "planning" or "judging"
- Return to breath
2. **Sensory Awareness (5 min):**
- Open eyes
- Notice 5 things you can see (colors, shapes, light)
- Notice sounds without naming them
- Notice physical sensations (feet on floor, air on skin)
- **This is what you'll do IN conversation** instead of monitoring yourself
3. **Intention Setting (3 min):**
- Set intention: "Today, when talking to anyone, I'll practice curiosity over performance"
- Visualize yourself genuinely curious about what someone is saying
- Notice how that feels different than monitoring yourself
**Why This Works:**
- Trains the "shift focus" technique from the anxiety doc
- Builds the neural pathway: notice self-monitoring → redirect to external curiosity
- This is THE key skill for your specific issue
### Week 5-6: Excitement Reframing
**Goal:** Change your relationship with the physical sensations
**The Practice (15 min):**
1. **Intentional Arousal (5 min):**
- Do 20 jumping jacks or run in place for 1 minute
- Sit down immediately
- Notice: racing heart, rapid breath, energy
- Label it: "excitement" or "energy" (not anxiety)
- Practice: "This feeling is my body preparing me for something good"
2. **Loving-Kindness with Romantic Focus (7 min):**
- Traditional loving-kindness for yourself (2 min)
- Then for someone you're attracted to (3 min):
- "May you be happy"
- "May you be at ease"
- Visualize them as a whole person (not just romantic object)
- Notice how this reduces the "threat" feeling (2 min)
3. **Integration (3 min):**
- Bring to mind: "The excitement I feel is evidence I'm alive and connecting"
- "These sensations are my friend, not my enemy"
**Why This Works:**
- Research shows labeling arousal as "excitement" vs "anxiety" changes outcomes
- Humanizing people you're attracted to reduces amygdala activation
- You're literally rewiring the interpretation circuit
### Week 7-8: Real-World Application
**Goal:** Practice in progressively challenging scenarios
**The Practice (15 min):**
1. **Morning Meditation (10 min):**
- Choose from previous weeks based on what you need
- Body scan if you're tense
- Present-moment if you're in your head
- Loving-kindness if you're self-critical
2. **Visualization Practice (5 min):**
- Visualize a specific upcoming interaction (or generic scenario)
- Notice anxiety arising
- Practice your tools:
- Body scan → find the sensation
- Reframe → "I'm excited"
- Shift focus → curiosity about them
- Breathe → 4-2-6 pattern
- See yourself successful and calm
**Why This Works:**
- Mental rehearsal activates same brain regions as real experience
- You're building new neural pathways for romantic interactions
- Confidence from repeated "success" in visualization transfers to reality
## In-The-Moment Protocol (When You're Actually Talking to Someone)
This is the payoff - using your practice in real time:
### Micro-Intervention (30 seconds)
When you feel the anxiety spike:
1. **Notice (5 sec)**: "I'm feeling anxious" - just acknowledge it
2. **Locate (5 sec)**: Where is it? (stomach, chest, throat?)
3. **Breathe (10 sec)**: One deep 4-2-6 breath
4. **Reframe (5 sec)**: "I'm excited to connect"
5. **Shift focus (5 sec)**: What are THEY saying? What makes them light up?
**Practice this during daily life** (not just dating):
- Talking to barista
- Chatting with coworker
- Any conversation where you start self-monitoring
### Pre-Interaction Ritual (5 minutes before)
If you know you'll see someone you're attracted to:
1. **2 min**: Body scan → release jaw, shoulders, stomach
2. **1 min**: 4-2-6 breathing (5-6 cycles)
3. **1 min**: Loving-kindness phrases for yourself
4. **1 min**: Set intention: "I'm here to be curious and enjoy this person"
## Integration with Your Morning Routine
**Current routine:**
- Stretch
- Clean face
- Make bed
- Drink bottle of water
**New routine:**
- Stretch
- Clean face
- Make bed
- Drink bottle of water
- **→ Meditate (15 min)** ← Add here
- Continue with day
**Why this spot?**
- You're awake (from stretching)
- You're fresh (face cleaned)
- You're organized (bed made)
- You're hydrated (water)
- Phone is still off → no stress activation yet
## Tracking & Adjustments
### Daily Log (Simple)
Date | Meditated? | Minutes | Technique Used | 1-Word Feeling After
-----|-----------|---------|----------------|--------------------
| | | |
### Weekly Check-In (Sundays)
1. Days completed: __/7
2. Dating situations this week: __
3. Did I use in-the-moment protocol? Y/N
4. What's working?
5. What needs adjustment?
### Real Success Metrics (What Actually Matters)
Track these instead of "anxiety level":
- [ ] I noticed anxiety earlier (before it peaked)
- [ ] I used a technique in a real situation
- [ ] I stayed present instead of monitoring myself
- [ ] I reframed physical sensation as excitement
- [ ] I recovered faster after an anxious moment
- [ ] I asked someone a genuine question (curiosity over performance)
## The Difference From General Anxiety Meditation
**General anxiety meditation:**
- Daily calming practice
- Reduce overall baseline anxiety
- Works for people anxious most of the time
**Your targeted approach:**
- Daily skill-building practice
- Create tools for specific situations
- Works for people with situational anxiety triggers
**You're not trying to be calm all the time.** You're trying to:
1. Recognize the pattern early
2. Have tools ready when it happens
3. Reframe the experience
4. Stay present instead of self-monitoring
## Timeline & Expectations
**Week 1-2:** Mostly just establishing habit, getting familiar with your body's signals
**Week 3-4:** Starting to notice self-monitoring in real life
**Week 5-6:** First attempts at reframing in low-stakes situations
**Week 7-8:** Applying in actual dating contexts with some success
**After 8 weeks:**
- Won't eliminate the response (that's your brain working correctly)
- Will have reliable tools to manage it
- Will recover faster when it happens
- Will feel more in control
## Quick Reference Card (Keep on Phone)
```
WHEN ANXIETY HITS:
1. Notice & locate (5 sec)
2. One deep breath (5 sec)
3. "I'm excited" (reframe)
4. Curiosity about them (shift focus)
DAILY PRACTICE:
15 min morning meditation
Current week: [Week __]
Current technique: [________]
```
## Apps If You Want Guidance
**Most useful for your specific issue:**
- **Headspace**: "Reframing Anxiety" and "Difficult Conversations" packs
- **Insight Timer**: Search "performance anxiety" - lots of free options
- **10% Happier**: "Anxiety" course by Joseph Goldstein
**For simple timer:**
- Insight Timer (nice bells, free)
- Your phone timer (works fine)
## Bottom Line
Your meditation practice isn't about becoming a "calm person." You're already calm most of the time.
It's about:
- **Building awareness** of your specific anxiety pattern
- **Creating intervention tools** for when it happens
- **Reframing the response** from threat to excitement
- **Staying present** instead of performance monitoring
**This is like having a toolkit for one specific problem, not renovating your whole house.**
Start tomorrow morning. 15 minutes. Week 1 technique. Build from there.

View File

@@ -1,6 +1,6 @@
---
created: 2025-10-22 10:04
updated: 2025-10-23 19:49
updated: 2025-10-22 10:04
---
1. A boundary of mine is
2. A life goal of mine
@@ -63,31 +63,4 @@ updated: 2025-10-23 19:49
59. One thing I'll never do again
60. Proof I have musical talent
61. Saying "Hi!" in as many languages I know
62. Something that's non-negotiable for me is
### General advise
### Good prompts
- Prompts that allow **self-disclosure of something unique** (originality)
E.g., “A shower thought I recently had…”, “Two truths and a lie…”
- Prompts that encourage showing a **sense of purpose / values / goals**
E.g., “This year I really want to…”, “My life goal is…”
- Prompts that clarify what youre **looking for in a partner / relationship**
E.g., “I want someone who…”, “If we match its because…”
- Prompts that invite **conversation / allow someone to respond** (less studied but implied)
E.g., “Ask me about…” or “You should go out with me to save me from…”
- Prompts that balance personality (humour, wit) + substance (values/goal)
Because originality and meaning both matter.
### Bad propmps
- Prompts purely about “fun facts” without linking to values may engage but may not filter for compatibility.
- Prompts that are too generic or cliché lack originality — and the originality study showed originality matters. [ResearchGate](https://www.researchgate.net/publication/364420243_Originality_in_online_dating_profile_texts_How_does_perceived_originality_affect_impression_formation_and_what_makes_a_text_original?utm_source=chatgpt.com)
- Prompts that devote _all_ text to self-promotion (hobbies, “Paragliding, yoga, indie bands…” as in the Berkeley study) but omit partner-preferences are less effective. [Haas News | Berkeley Haas](https://newsroom.haas.berkeley.edu/research/research-reveals-the-key-to-an-irresistible-online-dating-profile/?utm_source=chatgpt.com)
- Relying solely on text and ignoring visuals: pictures remain highly predictive of success. [Arno](https://arno.uvt.nl/show.cgi?fid=155361&utm_source=chatgpt.com)
62. Something that's non-negotiable for me is

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

View File

@@ -0,0 +1,320 @@
---
created: 2025-11-11 10:40
updated: 2025-11-11 10:40
---
# 15-Minute Daily Meditation Plan for Anxiety
## The Commitment
**Daily Practice:** 15 minutes every morning
**Start Date:** [Fill in when you start]
**Goal:** 8 weeks (56 days) to see measurable brain changes
## Why This Plan Works
Research shows:
- **Morning meditation** has the highest adherence rates for beginners
- **Consistency matters more than duration** - 15 minutes daily beats 60 minutes weekly
- **8 weeks** is when fMRI studies show structural brain changes
- **Simple techniques** are just as effective as complex ones
## Week 1-2: Foundation - Breath Awareness Meditation
**Goal:** Get comfortable with the basics, establish the habit
### The Technique
1. **Setup (1 minute)**
- Sit comfortably - chair with feet on floor, or cross-legged on cushion
- Back straight but not rigid - imagine a string gently pulling you up from the crown of your head
- Hands resting on knees or in lap
- Set timer for 15 minutes
- Close eyes or soft gaze downward
2. **Breath Focus (12 minutes)**
- Notice the natural rhythm of your breath
- Don't control it - just observe
- Focus on one anchor point:
- Sensation at nostrils as air enters/exits, OR
- Rising/falling of chest, OR
- Expansion/contraction of belly
- Count breaths if helpful: "in" (1), "out" (1), "in" (2), "out" (2), up to 10, then restart
3. **When Your Mind Wanders** (This will happen constantly - it's normal!)
- Notice you've wandered (this noticing IS the practice)
- No judgment - don't criticize yourself
- Gently return attention to breath
- Think of it like training a puppy - kind, patient, consistent
4. **Closing (2 minutes)**
- Expand awareness to your whole body
- Notice sounds in the room
- Take 3 deeper breaths
- Slowly open eyes
- Sit for a moment before standing
### Week 1-2 Tips
- **Expect restlessness** - it's normal for beginners
- **Wandering mind is not failure** - returning to the breath is the workout
- **Don't judge the session** - there are no "good" or "bad" meditations
- **Same time, same place** - builds the habit fastest
## Week 3-4: Body Scan for Anxiety
**Goal:** Learn to recognize where anxiety lives in your body
### The Technique
1. **Setup (1 minute)** - Same as above
2. **Initial Settling (2 minutes)**
- Few deep breaths
- Notice your body's contact with chair/floor
3. **Body Scan (10 minutes)**
- Start at the crown of your head
- Slowly move attention down through your body:
- Forehead → notice tension, soften
- Eyes → notice if they're clenched
- Jaw → often holds anxiety (unclench if needed)
- Shoulders → notice if they're up by your ears
- Chest → notice your heartbeat, breath
- Stomach → notice tightness or butterflies (this is where anxiety often lives)
- Hands → notice temperature, tingling
- Legs → notice contact with ground
- Feet → notice any sensation
- Don't try to change anything - just notice
- Spend 30-60 seconds on each area
4. **Integration (2 minutes)**
- Awareness of whole body at once
- Notice overall sense of calm or tension
- Return to breath
### Week 3-4 Benefits
- **Anxiety early warning system**: You'll start noticing physical anxiety earlier (jaw tension, stomach tightness)
- **Before dating interactions**: Quick body scan to release tension
- **Grounding**: Brings you out of your head into your body
## Week 5-6: Loving-Kindness for Self-Compassion
**Goal:** Build self-compassion to counter the critical inner voice during anxiety
### The Technique
1. **Setup (1 minute)** - Same as above
2. **Self-Compassion Phase (5 minutes)**
- Place hand on heart or belly (optional but helps)
- Silently repeat these phrases, feeling them:
- "May I be safe"
- "May I be peaceful"
- "May I be kind to myself"
- "May I accept myself as I am"
- Repeat slowly, let them sink in
- If it feels awkward, that's normal - keep going
3. **Extending to Others (6 minutes)**
- Think of someone you care about (friend, family)
- Repeat phrases for them:
- "May you be safe"
- "May you be peaceful"
- "May you be happy"
- Then think of a neutral person (barista, neighbor)
- Repeat phrases for them
- Finally, think of someone you find attractive or want to connect with
- Repeat phrases - this reduces the "threat" your brain perceives
4. **Closing (3 minutes)**
- Return awareness to yourself
- Notice how you feel
- Return to breath
### Week 5-6 Benefits
- **Reduces harsh self-judgment** when you feel anxious
- **Humanizes** people you're attracted to (they're just people, not threats)
- **Builds compassion** for your anxiety itself
## Week 7-8: Integration - Mixed Practice
**Goal:** Combine techniques based on what you need each day
### Choose Your Adventure (15 minutes)
Pick based on how you're feeling:
**High Anxiety Day:**
- 10 min Body Scan (release physical tension)
- 5 min Breath Focus (calm the mind)
**Self-Critical Day:**
- 10 min Loving-Kindness
- 5 min Breath Focus
**Restless Day:**
- 10 min Walking Meditation (see below)
- 5 min Breath Focus sitting
**Neutral Day:**
- 15 min Breath Focus (deepest practice)
### Walking Meditation (For Restless Days)
1. Find a quiet path (10-20 steps)
2. Walk very slowly
3. Notice each micro-movement:
- Lifting heel
- Shifting weight
- Moving foot forward
- Placing foot down
- Shifting weight again
4. When mind wanders, return to sensations of walking
5. Walk back and forth for 10 minutes
## Implementation Strategy
### Habit Stacking (Add to Morning Routine)
Current routine:
- Stretch
- Clean face
- Make bed
- Drink bottle of water
**Proposed addition:**
- Stretch
- Clean face
- Make bed
- Drink bottle of water
- **→ MEDITATE (15 min)**
- Continue with day
**Why after water?** You're hydrated, awake, and before you check phone/email (which activates stress)
### Preparation the Night Before
1. **Set out meditation space:**
- Chair or cushion in quiet corner
- Phone on airplane mode (for timer only)
- Blanket if you get cold
2. **Set implementation intention:**
- Write in journal: "After I drink my water bottle, I will sit and meditate for 15 minutes"
- Research shows this increases follow-through by 2-3x
3. **Reduce friction:**
- Don't check phone until after meditation
- Tell household you're not available 7:00-7:15am (or whenever)
### Tracking Progress
**Simple Daily Log** (just yes/no):
- Did I meditate? Y/N
- How many minutes?
- How did I feel after? (1 word)
**Weekly Review** (every Sunday):
- Days completed: __/7
- What worked well?
- What got in the way?
- Adjustment for next week?
**8-Week Milestone** (after 56 days):
- How has anxiety changed?
- What technique helps most?
- How's the habit feel - automatic or still effortful?
## Troubleshooting Common Issues
### "I can't stop thinking"
- **That's normal!** The goal isn't to stop thoughts
- Meditation is noticing you're thinking and returning to the object (breath, body, phrases)
- Think of thoughts like clouds passing - you don't have to grab them
### "I fell asleep"
- Sit more upright, less comfortable
- Meditate earlier, when less tired
- Open eyes slightly (soft downward gaze)
### "I feel more anxious during meditation"
- **This is actually progress** - you're noticing anxiety you usually suppress
- Switch to body scan - gives the mind something to do
- Shorten to 5-10 minutes until you build capacity
- Keep eyes open with soft gaze
### "I missed a day/week"
- **No guilt** - shame kills habits
- Just restart the next morning
- Every day is day 1
- Consistency matters more than perfection
### "I'm not seeing results"
- Brain changes take 8 weeks minimum
- Results are subtle - you might not notice them directly
- Ask: Am I noticing anxiety earlier? Do I recover from stress faster?
- Keep going - this is like strength training, gains are gradual
### "It's boring"
- **Boredom is not a problem** - it means you're not constantly stimulated (which is good)
- Boredom is where growth happens
- If unbearable, try walking meditation or use a guided app
## Apps & Resources (If You Want Guidance)
**Free Options:**
- **Insight Timer** - Largest free library, including anxiety-specific meditations
- **UCLA Mindful App** - Free guided meditations from UCLA's Mindful Awareness Research Center
- **Plum Village** - Thich Nhat Hanh's teachings, very gentle approach
**Paid (But Worth It):**
- **Headspace** - "Managing Anxiety" course is excellent, most research-backed
- **Calm** - "How to Meditate" series for beginners
- **Ten Percent Happier** - Skeptic-friendly, practical
**For This Plan:**
- **Weeks 1-4**: Consider using Headspace's "Basics" course alongside this plan
- **Weeks 5-8**: Transition to unguided practice using just a timer
**Timer Recommendations:**
- **Insight Timer** (free, beautiful bells)
- **Simple Habit Timer** (minimalist)
- **Your phone timer** works fine too
## Before Dating Situations: 5-Minute Emergency Protocol
When you know you'll be in an anxiety-triggering situation:
**5-Minute Pre-Interaction Meditation:**
1. **1 minute**: Three deep breaths (4 count in, 6 count out)
2. **2 minutes**: Body scan (release jaw, shoulders, stomach tension)
3. **1 minute**: Loving-kindness phrases for yourself
4. **1 minute**: Reframe - "I'm excited" + remember this is just a conversation
This is your secret weapon - activates all the benefits of your daily practice when you need it most.
## The 8-Week Challenge
**Week 1:** ☐ ☐ ☐ ☐ ☐ ☐ ☐
**Week 2:** ☐ ☐ ☐ ☐ ☐ ☐ ☐
**Week 3:** ☐ ☐ ☐ ☐ ☐ ☐ ☐
**Week 4:** ☐ ☐ ☐ ☐ ☐ ☐ ☐
**Week 5:** ☐ ☐ ☐ ☐ ☐ ☐ ☐
**Week 6:** ☐ ☐ ☐ ☐ ☐ ☐ ☐
**Week 7:** ☐ ☐ ☐ ☐ ☐ ☐ ☐
**Week 8:** ☐ ☐ ☐ ☐ ☐ ☐ ☐
**Target:** 80% (45 out of 56 days) = Success
**Anything above 50% (28 days) = Significant benefit
---
## Key Reminders
1. **The goal isn't to eliminate anxiety** - it's to change your relationship with it
2. **Wandering mind isn't failure** - noticing and returning IS the practice
3. **Consistency beats intensity** - 15 minutes daily beats 2 hours weekly
4. **Be kind to yourself** - self-criticism makes anxiety worse
5. **This is strength training for your brain** - results are cumulative
**You've got this. Start tomorrow morning.**

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 MiB

View File

@@ -0,0 +1,94 @@
---
created: 2025-10-23
---
# Recommended Hinge Prompts (Research-Backed)
Based on analysis of effectiveness research, these prompts are categorized by their ability to show originality, values/goals, and partner preferences.
## Tier 1: Best Overall
**Shows values/goals + partner preferences**
1. **I want someone who** - Clearly states partner preferences (proven most effective)
2. **A life goal of mine** - Shows purpose and values
3. **Green flags I look for** - Partner preferences + values combined
4. **I'm looking for** - Direct about relationship expectations
5. **I'll fall for you if** - Combines partner preferences with personality
6. **Let's make sure we're on the same page about** - Clarifies compatibility upfront
## Tier 2: Strong Conversation Starters
**Originality + engagement**
7. **A shower thought I recently had** - Shows unique thinking, very original
8. **I recently discovered that** - Fresh, unique, conversation starter
9. **I'm convinced that** - Shows personality + invites debate
10. **Change my mind about** - Interactive, invites response
11. **Let's debate this topic** - Direct conversation invitation
12. **I won't shut up about** - Shows passion, very engaging
## Tier 3: Personality + Substance Balance
**Humor + depth**
13. **I geek out on** - Shows passion and depth
14. **My simple pleasures** - Reveals values through everyday moments
15. **I know the best spot in town for** - Local knowledge + date idea
16. **First round is on me if** - Playful + filters compatibility
17. **I'll brag about you to my friends if** - Shows what you value in a partner
## Recommended Profile Strategy
Choose **3 prompts total**:
1. **One from Tier 1** - Shows what you're looking for (compatibility filter)
2. **One from Tier 2** - Shows originality and personality (engagement)
3. **One from Tier 3** - Balances humor and substance (memorability)
### Example Combinations
**Combo A: Serious + Thoughtful + Fun**
- I want someone who
- A shower thought I recently had
- My simple pleasures
**Combo B: Clear + Passionate + Playful**
- Green flags I look for
- I won't shut up about
- First round is on me if
**Combo C: Compatible + Unique + Local**
- Let's make sure we're on the same page about
- I recently discovered that
- I know the best spot in town for
## Prompts to Avoid
### Too Generic/Cliché
- Never have I ever
- My biggest date fail
- Biggest risk I've taken
### Pure Self-Promotion (No Partner Preference)
- Proof I have musical talent
- My best celebrity impression
- Saying "Hi!" in as many languages I know
### Just Fun Facts (Low Substance)
- How to pronounce my name
- My best Dad Joke
- A random fact I love is
### Potentially Negative Framing
- Don't hate me if I
- My cry-in-the-car song is
- My therapist would say I
- My most irrational fear
## Why This Works
According to the research cited in your notes:
1. **Originality matters** - Unique, authentic responses stand out
2. **Values/goals attract** - Showing purpose and direction is compelling
3. **Partner preferences filter** - Being clear about what you want saves time
4. **Balance is key** - Mix personality (humor) with substance (values)
5. **Conversation hooks** - Prompts that invite responses get more engagement

View File

@@ -0,0 +1,197 @@
---
created: 2025-10-23
updated: 2025-10-23 22:01
---
# What I Want - Reflection Guide
## Relationship Type & Goals
### What are you looking for right now?
- [ ] Casual dating / exploring
- [x] Something that could become serious (exploring but taking it seriously)
- [ ] Definitely looking for a long-term relationship
- [ ] Not sure yet, open to seeing where it goes
### Timeline & Commitment
- Open to exploring but serious about finding something real (not casual)
- Ideally in a committed relationship within 3 years
- Life is stable - no major career changes planned
- Travel is important but in reasonable chunks (max 1 month)
**My thoughts:**
Still exploring but pretty serious about it. Not looking for casual hookups. Want to find something that could develop into a real relationship within the next few years.
## Values & Lifestyle Compatibility
### What matters most to you in daily life?
- **Work/Career:** Work 40hrs/week from home, value free time highly. Upper middle class financially, not very career-driven. Partner's career doesn't matter as long as it's not 80hrs/week and they put in effort.
- **Social life:** More introverted with a sizeable friend group, but fine on my own. Don't need partner to match social style exactly - important that we don't have to do everything together.
- **Health/Fitness:** Work out daily. Partner should be active but doesn't have to be extreme. Must be able to join annual skiing trips.
- **Creativity/Hobbies:** Books, movies, TV series, podcasts, gaming, working out - all solitary activities. Would be nice if shared but not a dealbreaker. More important that she respects my hobbies and has her own passions.
- **Adventure vs Routine:** Naturally routine-oriented (that's my default state), but would actually welcome someone who injects spontaneity into my life.
- **Home life:** Mix of both - independent lives with flexibility for together time.
**My thoughts:**
Independence is key. Want someone with their own life who doesn't need to be joined at the hip. Value having lots of free time and personal space.
## Communication & Emotional Needs
### How do you need to feel in a relationship?
- Need space when stressed - can work through things myself
- Want support available but NOT someone proactively trying to help/solve everything
- Someone who can be there for me without hovering
- Offloading stress through conversation is nice, but on my terms
### Communication style you appreciate:
- Very direct communication - this is essential
- Want a partner who is equally direct and honest
- At 34, both will have independent lives - don't need constant check-ins
- Natural flow works better than scheduled relationship talks
**My thoughts:**
Support without hovering. Be there when I need you but don't try to manage my problems. Direct, honest communication always.
## Intellectual & Personal Growth
### What kind of conversations energize you?
Deep conversations with wit injected. The balance between substance and humor is important.
### Personal growth & learning:
- Partner MUST be intellectually curious
- Intelligence becomes less critical if she's solid/expert in her own domain
- We will challenge each other's thinking
- MUST remain intellectually honest - no dogmatic beliefs
- **Shared sense of humor is absolutely essential** - what would be the point otherwise?
**My thoughts:**
Sharp mind, witty banter, deep conversations. We can disagree and challenge each other but have to stay honest about it. Humor compatibility is non-negotiable.
## Deal-Breakers & Non-Negotiables
### Hard boundaries (actual deal-breakers):
**Kids:** NO kids. Non-negotiable.
**Location:** Relocating might be a problem depending on timelines. Netherlands is small so everything is close by, but still a consideration.
**Religion/Beliefs:**
- Very religious = dealbreaker
- ANY dogmatic beliefs = dealbreaker
- Must be intellectually honest
**Politics/Values:**
- I'm center-left, progressive
- She can't be far-right or far-left
- MUST be progressive (not conservative)
**Financial:**
- Upper middle class would be nice
- But real requirement: has a job where she puts in effort
- As long as somewhat responsible with money, don't care
**Substance Use:**
- Occasional hard drugs fine, even great (few times per year max)
- ZERO smoking - absolute dealbreaker
**Relationship Dynamics:**
- No drama or backhanded behavior
- Can't need me to "take charge"
- Can't want princess treatment
- MUST be equals in the relationship
**Physical:**
- Must take care of herself
- Can't be overweight (doesn't have to be slim, but can't be fat)
### Green Flags (what excites you):
- **Sharp mind** - can build common understanding quickly
- **The knowing look** - instant recognition that we "get" each other
- **Direct communication** - no games, no hidden meanings
- **Equals mentality** - neither of us leads, we're partners
- **Spontaneous** - brings energy and spontaneity to my routine-oriented life
- **Forward without being obnoxious** - confident and direct
- **Witty** - can match my humor and banter
## Physical & Chemistry
### What creates attraction for you?
**Personality traits:**
- Spontaneous
- Witty and sharp mind
- Forward without being obnoxious
- Takes care of herself (physically and otherwise)
**Physical:**
- Not overweight (doesn't have to be slim, but can't be fat)
- Takes care of her body and health
**Energy/Chemistry:**
- That instant "knowing look" connection
- Shared humor clicking immediately
- Intellectual banter that flows naturally
- Forward confidence
**My thoughts:**
Chemistry comes from mental sharpness, wit, and that instant recognition. Physical attraction requires someone who clearly takes care of themselves.
## Practical Compatibility
### Daily life compatibility:
**Schedule:** Can be both morning person and night owl - flexible. Doesn't matter if we're on different schedules.
**Cleanliness:** Not very clean/organized but want to be. Fine leaving things out if actively using them. Living alone for long time means can't really make a huge mess anyway.
**Planning:** Usually fine with spontaneity. If I think there needs to be a plan, I'll make one. Flexible either way.
**Money:** Live well within my means, and my means are pretty roomy. Don't care what partner does with their money as long as somewhat responsible. Effort in work matters more than income.
**Free time:** Random free Saturday = likely doing separate activities. If we plan something together, that's great too. If it's a completely free day with no plans, we'll probably have already decided to do something together in advance.
**My thoughts:**
Very flexible on practical day-to-day stuff. Independent lives that overlap when it makes sense.
## Reflection Summary
### Top 5 things I'm looking for:
1. **Sharp, witty mind with shared humor** - intellectually curious, can banter, we get each other's jokes
2. **Independent but connected** - has her own life, doesn't need to do everything together, equals in the relationship
3. **Direct and honest communication** - no games, no drama, straightforward
4. **Progressive values** - center-left, not dogmatic, intellectually honest
5. **Active and spontaneous** - takes care of herself, can join skiing trips, injects spontaneity into my routine
### Top 3 deal-breakers:
1. **Wants kids** - absolute no
2. **Drama/games/traditional gender roles** - need equals, no princess treatment or needing me to take charge
3. **Smoking** - zero tolerance (occasional other substances fine)
### The vibe I want in a relationship:
Two independent people who have their own lives, interests, and friends, but choose to build something together. We challenge each other intellectually while staying honest, share a sense of humor that just clicks, and give each other space when needed. No drama, no games - just two equals who genuinely enjoy each other's company and can be both deep and playful. She brings spontaneity to my routine; I bring stability to her energy.
### What I can offer in return:
- Financial stability and comfortable lifestyle
- Lots of free time and flexibility (40hr remote work week)
- Direct, honest communication - no guessing games
- Intellectual curiosity and deep conversations with humor
- Independence - won't be clingy or demanding
- Active lifestyle (daily workouts, annual skiing)
- Emotional support without hovering
- Space and respect for her own interests and friendships
- Progressive, open-minded worldview

View File

@@ -0,0 +1,185 @@
---
created: 2025-10-23
---
# Your Best Hinge Prompts (Personalized)
Based on your interview, here are the prompts that will work best for YOU and help attract the right person.
## Recommended 3-Prompt Combination
### Option A: Clear + Witty + Active
1. **"I want someone who"** (Tier 1 - Partner preferences)
2. **"I'm convinced that"** (Tier 2 - Conversation starter with wit)
3. **"First round is on me if"** (Tier 3 - Playful compatibility filter)
### Option B: Direct + Intellectual + Fun
1. **"Green flags I look for"** (Tier 1 - Values + preferences)
2. **"I won't shut up about"** (Tier 2 - Shows passion)
3. **"I know the best spot in town for"** (Tier 3 - Date idea)
### Option C: Compatible + Unique + Forward
1. **"Let's make sure we're on the same page about"** (Tier 1 - Filters early)
2. **"A shower thought I recently had"** (Tier 2 - Original/witty)
3. **"I'll fall for you if"** (Tier 3 - Shows what you value)
---
## Draft Answers (Based on What You Want)
### "I want someone who"
**Draft 1 (Direct about independence):**
"...has her own life and doesn't need to do everything together. We should be two independent people who choose to build something, not two halves trying to make a whole."
**Draft 2 (Humor focus):**
"...gets my jokes without explanation. What's the point otherwise? Also: can ski, won't try to fix all my problems, and thinks traditional gender roles are bullshit."
**Draft 3 (Values-focused):**
"...challenges my thinking but stays intellectually honest. Progressive, direct communicator, independent. Bonus points if you bring spontaneity to my very routine life."
---
### "Green flags I look for"
**Draft 1 (Sharp mind focus):**
"That instant 'knowing look' when we get each other without words. Sharp wit, direct communication, and the ability to debate without getting dogmatic. Also: takes care of herself and can handle a ski trip."
**Draft 2 (Equals mentality):**
"Someone with their own passions and friend group who doesn't need me to take charge or play princess. We're equals or we're nothing. Also critical: shared sense of humor and progressive values."
**Draft 3 (Balanced):**
"Intellectual curiosity, direct communication, and that rare combo of depth and humor. Someone who's comfortable being independent but also knows when to be there. No drama, no games."
---
### "Let's make sure we're on the same page about"
**Draft 1 (No kids - direct):**
"No kids. Also: progressive politics, we're equals in this relationship, and occasional psychedelics > any smoking ever."
**Draft 2 (Softer but clear):**
"Building independent lives together rather than codependent ones. Also: childfree, progressive values, and direct communication > playing games."
**Draft 3 (Comprehensive):**
"Being partners not caretakers, no kids, progressive mindsets, and that skiing trips are non-negotiable. Oh, and shared humor isn't optional - it's essential."
---
### "I'm convinced that"
**Draft 1 (Humor about independence):**
"...the best relationships are between two people who don't *need* each other but actively *choose* each other. Also convinced most people ski wrong."
**Draft 2 (Intellectual):**
"...intellectual honesty is sexier than intelligence. You can be brilliant but dogmatic and we won't work. Sharp + open-minded > just smart."
**Draft 3 (Playful):**
"...routine gets a bad rap. Give me someone who brings spontaneity to my structured life and I'll show you adventure with a breakfast schedule."
---
### "First round is on me if"
**Draft 1 (Humor compatibility test):**
"...you can keep up with my dry humor without asking 'wait, are you serious?' Also if you think traditional dating rules are as outdated as I do."
**Draft 2 (Shared interests):**
"...you can tell me about something you geek out on for 20 minutes without apologizing. Bonus points if it's something I've never heard of and you can ski."
**Draft 3 (Values filter):**
"...you think 'childfree by choice' and 'occasionally exploring consciousness' are green flags not red ones. Progressive minds only."
---
### "I won't shut up about"
**Draft 1 (Multi-interest):**
"The books I'm reading, why most people's workout routines make no sense, and which ski resorts are actually worth it. Fair warning: I get passionate."
**Draft 2 (Specific passion):**
"Whatever I'm currently obsessed with - could be a podcast series, training methodology, or why some common belief is completely wrong. I geek out hard."
**Draft 3 (Meta/witty):**
"The fact that we both need independent lives to make this work. Also: the perfect espresso, strength training progressions, and obscure film photography techniques."
---
### "I know the best spot in town for"
**Draft 1 (Active lifestyle):**
"A proper workout that doesn't involve boutique fitness nonsense. Also: coffee that's actually good and conversations that go deeper than small talk."
**Draft 2 (Dutch-specific if applicable):**
"[Insert actual favorite spot] - but only sharing if you promise not to need constant plans. Sometimes the best nights are the spontaneous ones."
**Draft 3 (Playful):**
"Deep conversations over good coffee. Or mediocre coffee. Honestly the conversation matters more, but why settle?"
---
### "A shower thought I recently had"
**Draft 1 (Relationships):**
"People say 'opposites attract' but really it's 'independently whole people who complement each other attract.' Needing someone is a red flag, choosing them is the point."
**Draft 2 (Witty observation):**
"Most people confuse being busy with being productive, and confuse codependency with love. Related thoughts."
**Draft 3 (Original take):**
"The best relationships are two people with full lives who make space for each other, not two people filling each other's gaps. Also: why do ski resorts keep [specific pet peeve]?"
---
### "I'll fall for you if"
**Draft 1 (Comprehensive):**
"...we can challenge each other's thinking without it becoming a thing, your idea of fun includes both deep conversations and spontaneous adventures, and that 'knowing look' just clicks."
**Draft 2 (Humor-focused):**
"...our humor syncs up instantly, you have your own life and passions, and you think 'I need space' is a sign of health not a problem. Bonus: can ski."
**Draft 3 (Direct):**
"...you're sharp, direct, progressive, and treat partnership as equals not roles. Also if you bring spontaneity to my routine-heavy life while respecting that I actually like structure."
---
## Why These Work For You
**They filter for:**
- ✅ Progressive, childfree values
- ✅ Independence and equality
- ✅ Sharp mind and shared humor
- ✅ Direct communication style
- ✅ Active lifestyle compatibility
- ✅ No traditional gender roles
- ✅ Intellectual curiosity
**They communicate:**
- 🎯 You know what you want
- 🎯 You value depth + wit
- 🎯 You're looking for equals not dependents
- 🎯 You have your life together
- 🎯 You're direct and authentic
**They repel:**
- ❌ People who want kids
- ❌ Drama seekers
- ❌ Traditional gender role believers
- ❌ Codependent types
- ❌ Conservative values
- ❌ People who can't handle direct communication
---
## Next Steps
1. Pick one of the 3-prompt combinations (A, B, or C)
2. Choose which draft answer resonates most for each prompt (or mix elements)
3. Personalize with your actual voice and specific details
4. Test and iterate based on who matches with you
Remember: The research shows originality + values + partner preferences = success. These prompts nail all three.

Binary file not shown.

After

Width:  |  Height:  |  Size: 750 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

View File

@@ -0,0 +1,54 @@
---
created: 2025-10-22 19:37
updated: 2025-11-21 15:12
---
## Training Schedule
Race Date: March 29, 2025
### Core 12-Week Program (Weeks 1-12)
| Week | Track Repeats | Total | Tempo Run | Total | Long Run | Week Total |
| ---- | ------------------------------------------------------------------ | ------- | ------------------------------------------------------------------------------------------- | ------- | ------------------ | ---------- |
| 12 | 1.5 km @ WU → 8 × 400 (400 RI) @ Z4-Z5 → 1.5 km CD | 9.0 km | 1.5 km @ WU → 5 km @ Z4 → 1.5 km CD | 8 km | 10 km @ Z3 | 27.0 km |
| 11 | 1.5 km @ WU → 5 × 800 (400 RI) @ Z4 → 1.5 km CD | 8.6 km | 1.5 km @ WU → 3 km @ Z4 → 1.5 km @ Z3 → 3 km @ Z4 → 1.5 km CD | 10.5 km | 11 km @ Z3 | 30.1 km |
| 10 | 1.5 km @ WU → 2 × 1600 + 1 × 800 (400 RI) @ Z4 → 1.5 km CD | 8.2 km | 1.5 km @ WU → 6.5 km @ Z4 → 1.5 km CD | 9.5 km | 13 km @ Z3 | 30.3 km |
| 9 | 1.5 km @ WU → 400-600-800-800-600-400 (400 RI) @ Z4-Z5 → 1.5 km CD | 8.6 km | 1.5 km @ WU → 3 km @ Z4 → 1.5 km @ Z3 → 1.5 km @ Z4 → 1.5 km @ Z3 → 3 km @ Z4 → 1.5 km CD | 13.5 km | 14 km @ Z3 | 36.1 km |
| 8 | 1.5 km @ WU → 4 × 1000 (400 RI) @ Z4 → 1.5 km CD | 8.2 km | 1.5 km @ WU → 6.5 km @ Z4 → 1.5 km CD | 9.5 km | 16 km @ Z3 | 33.7 km |
| 7 | 1.5 km @ WU → 1600-1200-800-400 (400 RI) @ Z4 → 1.5 km CD | 8.2 km | 1.5 km @ WU → 8 km @ Z4 → 1.5 km CD | 11 km | 13 km @ Z3 | 32.2 km |
| 6 | 1.5 km @ WU → 10 × 400 (400 RI) @ Z4-Z5 → 1.5 km CD | 10.6 km | 1.5 km @ WU → 6.5 km @ Z4 → 1.5 km CD | 9.5 km | 16 km @ Z3 | 36.1 km |
| 5 | 1.5 km @ WU → 6 × 800 (400 RI) @ Z4 → 1.5 km CD | 9.8 km | 1.5 km @ WU → 1.5 km @ Z4 → 1.5 km @ Z3 → 3 km @ Z4 → 1.5 km @ Z3 → 1.5 km @ Z4 → 1.5 km CD | 12 km | 13 km @ Z3 | 34.8 km |
| 4 | 1.5 km @ WU → 4 × 1200 (400 RI) @ Z4 → 1.5 km CD | 9.0 km | 1.5 km @ WU → 5 km @ Z4 → 1.5 km CD | 8 km | 16 km @ Z3 | 33.0 km |
| 3 | 1.5 km @ WU → 5 × 1000 (400 RI) @ Z4 → 1.5 km CD | 9.6 km | 1.5 km @ WU → 10 km @ Z4 → 1.5 km CD | 13 km | 13 km @ Z3 | 35.6 km |
| 2 | 1.5 km @ WU → 3 × 1600 (400 RI) @ Z4 → 1.5 km CD | 8.6 km | 1.5 km @ WU → 5 km @ Z4 → 1.5 km CD | 8 km | 11 km @ Z3 | 27.6 km |
| 1 | 1.5 km @ WU → 6 × 400 (400 RI) @ Z5 → 1.5 km CD | 7.4 km | No warm-up / cooldown | - | 10 km Race — Z4-Z5 | 17.4 km |
### Additional Filler Weeks (Use as needed)
| Week | Track Repeats | Total | Tempo Run | Total | Long Run | Focus | Week Total |
| ---- | --------------------------------------------------- | ------- | ------------------------------------- | ------ | ---------- | ----------------------- | ---------- |
| A | 1.5 km @ WU → 6 × 800 (400 RI) @ Z4 → 1.5 km CD | 9.8 km | 1.5 km @ WU → 5 km @ Z4 → 1.5 km CD | 8 km | 16 km @ Z3 | Long run emphasis | 33.8 km |
| B | 1.5 km @ WU → 5 × 800 (400 RI) @ Z4 → 1.5 km CD | 8.6 km | 1.5 km @ WU → 10 km @ Z4 → 1.5 km CD | 13 km | 13 km @ Z3 | Tempo run emphasis | 34.6 km |
| C | 1.5 km @ WU → 10 × 400 (400 RI) @ Z4-Z5 → 1.5 km CD | 10.6 km | 1.5 km @ WU → 6.5 km @ Z4 → 1.5 km CD | 9.5 km | 13 km @ Z3 | Intense 400m intervals | 34.7 km |
| D | 1.5 km @ WU → 4 × 1600 (400 RI) @ Z4 → 1.5 km CD | 10.6 km | 1.5 km @ WU → 6.5 km @ Z4 → 1.5 km CD | 9.5 km | 13 km @ Z3 | Intense 1600m intervals | 33.1 km |
## Courses
- 7.2 km - Over the train tracks
- 8.6 km - Tracks, N212, Achterbos
- 9.2 km - Cycling lane to work and back over the N201
- 10.3 km - Tracks, Mijdrecht, Dwarsweg *
- 10.3 km - Tracks, Work, N201
- 11.3 km - Over the train tracks and back over the N201
- 12 km - Tracks, Mijdrecht, back over N201
- 14.3 km - Tracks, dike, tracks, Waverveen
- 16.3 km - Tracks, dike, tracks, Hofland, N201, Waverveen
###
So lets reduce everthing to 10km ,7 km, 8 km , 12 km, 14 km, 16 km
800m 25-10-29 4:45
3000m 25-10-31 5:10
1600m 25-11-05 5:05
Easy 25-11-01 5:40

View File

@@ -0,0 +1,6 @@
- [ ] **Cleanse**
- [ ] **Eye treatment:** Caffeine Solution 5% + EGCG
- [ ] **Serum**
- [ ] **Moisturize:**
- [ ] **SPF**

View File

@@ -0,0 +1,382 @@
---
created: 2025-11-08
updated: 2025-11-08 14:25
---
# Skincare Project
## Project Goal
Develop an effective skincare routine to address:
1. Dry skin during winter months
2. Puffy dark circles around the eyes
## Current Problems
### Dry Skin (Winter)
- **Issue:** Skin becomes excessively dry during winter months
- **Severity:** TBD (track daily)
- **Affected areas:** TBD (face, hands, body)
- **Current routine:** Using The Ordinary products (see Current Products section)
- **Triggers/Patterns:** Seasonal (winter-specific)
### Dark Circles & Puffiness Under Eyes
- **Issue:** Persistent puffy, dark circles around eyes
- **Severity:** TBD
- **Current routine:** None documented
- **Possible contributing factors to explore:**
- Sleep quality/quantity
- Allergies
- Dehydration
- Genetics
- Salt intake
- Screen time
## Research Notes
### Dry Winter Skin Solutions
(Research pending)
Potential areas to investigate:
- Humidifier use
- Moisturizer types (ceramides, hyaluronic acid)
- Gentle cleansers (avoid harsh soaps)
- Shorter, lukewarm showers
- Immediate post-shower moisturizing
- Overnight treatments
- Hand cream routine
### Under-Eye Solutions
(Research pending)
Potential areas to investigate:
- Eye creams with caffeine (reduces puffiness)
- Eye creams with vitamin K or retinol (dark circles)
- Cold compresses
- Adequate hydration
- Sleep elevation (extra pillow)
- Allergy management
- Concealer techniques (temporary)
## Action Items
- [ ] Track current routine (if any)
- [ ] Document environmental factors (indoor heating, humidity levels)
- [ ] Research evidence-based solutions for dry skin
- [ ] Research evidence-based solutions for under-eye concerns
- [ ] Identify product recommendations (budget-friendly options)
- [ ] Create simple, sustainable routine
- [ ] Track progress with photos (weekly?)
- [ ] Note any improvements or reactions
## Current Products
### The Ordinary - Current Routine
**Cleanser:**
- **Product:** Squalane Cleanser
- **Link:** https://theordinary.com/en-nl/squalane-face-cleanser-100446.html
- **Price:** €8.39 (reduced from €10.90)
- **Key ingredients:** Plant-derived squalane, lipophilic esters
- **How to use:** Apply to dry skin, warm until oil-like, massage, rinse with warm water
- **Benefits:** Removes makeup/impurities while maintaining hydration, non-comedogenic, soap-free
- **Notes:** Good choice - gentle, hydrating cleanser suitable for dry skin
**Serum:**
- **Product:** Multi-Peptide + HA Serum
- **Link:** https://theordinary.com/en-nl/multi-peptide-ha-serum-100613.html
- **Price:** €16.17 (reduced from €21.00)
- **Key ingredients:** Multiple peptides (SYN-AKE, Matrixyl synthe'6, Matrixyl 3000, ARGIRELOX), hyaluronic acid, amino acids
- **Benefits:** Reduces fine lines/crow's feet, improves elasticity and firmness, enhances hydration
- **How to use:** Few drops to face morning and evening, apply AFTER cleansing/toning, BEFORE moisturizer
- **Results:** Visible after 8 weeks of consistent use
- **Notes:** Excellent for dry skin - adds hydration layer. Avoid using with: direct acids, vitamin C, resveratrol, ferulic acid, salicylic acid
**Moisturizers (you have 2):**
1. **Natural Moisturizing Factors + HA** (Standard version)
- **Link:** https://theordinary.com/en-nl/natural-moisturizing-factors-ha-moisturizer-100435.html
- **Key ingredients:** Hyaluronic acid, amino acids, ceramides, fatty acids, urea, glycerin
- **Benefits:** Lightweight hydration mimicking skin's natural moisture
- **When to use:** Morning and evening after serums
- **Notes:** Lighter formula, good for layering
2. **Natural Moisturizing Factors + PhytoCeramides** (Intensive version)
- **Link:** https://theordinary.com/en-nl/natural-moisturizing-factors-phytoceramides-moisturizer-100610.html
- **Key ingredients:** Plant ceramides, fatty acids, hyaluronic acid, humectants
- **Benefits:** 68% hydration boost, 4x more emollients than HA version, strengthens skin barrier
- **When to use:** Morning (before SPF) and evening (final step)
- **Best for:** Dry skin requiring intensive hydration
- **Notes:** Their "most nourishing moisturizer" - this is likely better for winter dryness
### Considering
**Sunscreen:**
- **Product:** UV Filters SPF 45 Serum
- **Link:** https://theordinary.com/en-nl/uv-filters-spf-45-serum-100720.html
- **Price:** €15.32 (reduced from €19.90) for 60ml
- **SPF:** SPF 45, broad-spectrum UVA/UVB, PA++++
- **Key ingredients:** Chemical filters (Homosalate, Octisalate, Octocrylene, Avobenzone) + ceramides for barrier support
- **Texture:** Lightweight serum, no white cast, luminous finish
- **How to use:** Apply 15 min before sun exposure, reapply every 2 hours
- **Benefits:** Non-comedogenic, suitable for sensitive skin
- **Status:** Considering as replacement for current sunscreen
- **Notes:** Good option - ceramides align with barrier-strengthening strategy for dry skin, serum texture may layer better than traditional sunscreens
**Eye Treatment (EXPERIMENT):**
- **Product:** Caffeine Solution 5% + EGCG
- **Link:** https://theordinary.com/en-nl/caffeine-solution-5-egcg-eye-serum-100412.html
- **Price:** €7.62 (reduced from €9.90) for 30ml
- **Key ingredients:** 5% caffeine, EGCG (green tea extract)
- **How to use:** Apply small amount to eye contour morning and evening
- **Pro tip:** Keep in fridge for cooling sensation
- **Status:** Adding as 4-6 week experiment to test effectiveness
- **Expected results:** Puffiness may improve within days; dark circles take 2-4 weeks
- **Notes:** Worth trying at this price point. Will track results to determine if dark circles are vascular (responds to caffeine) vs pigmented/structural (won't respond)
## Product Research
### For Dry Skin
**Current assessment:** You have excellent foundation products from The Ordinary
- Gentle, hydrating cleanser ✓
- Hydrating peptide serum (adds extra moisture layer) ✓
- Two moisturizer options (standard + intensive) ✓
- Missing: SPF (considering adding)
**Your current routine is well-suited for dry skin:**
- Peptide serum provides additional hydration beyond basic moisturizing
- Layering serum + intensive moisturizer creates strong barrier protection
- All products are gentle and hydration-focused
**Gaps to address:**
1. No product specifically for under-eye area (dark circles/puffiness)
2. May benefit from adding occasional treatments (exfoliant, hydrating mask)
3. SPF needed for daytime protection
### For Under-Eye Area
**Currently missing dedicated eye product**
**Research completed on The Ordinary Caffeine Solution 5% + EGCG:**
**Scientific Evidence:**
- Studies show caffeine can reduce puffiness and dark circles, but effects are **temporary** and **type-dependent**
- Clinical studies: 3% caffeine gel showed puffiness reduction; 3-month use reduced fine lines
- Effectiveness score: 75/100 (moderate effectiveness)
- Results timeline: Puffiness improves in 1-2 weeks; dark circles take 2-4 weeks
- **Important**: Effects fade once you stop using it
**What Type of Dark Circles Do You Have?**
Dark circles fall into 3 types:
1. **Vascular (blue/purple)** - From visible blood vessels, thin skin → **Caffeine helps** (vasoconstrictor)
2. **Pigmented (brown)** - From melanin/sun damage → **Caffeine doesn't help much** (need vitamin C, retinoids)
3. **Structural (shadowy)** - From volume loss/deep-set eyes → **Topicals can't fix** (need fillers)
Most people have **mixed types**, so partial improvement is realistic.
**Realistic Expectations for Caffeine Solution:**
- ✓ Good for puffiness (vasoconstriction + diuretic effect)
- ✓ May help vascular dark circles (constricts blood vessels)
- ✗ Won't help pigmented dark circles significantly
- ✗ Won't fix structural/shadow issues
- Expect 20-50% improvement at best with consistent use
- Must use continuously to maintain results
**The Ordinary Caffeine Solution Specifics:**
- Price: ~€6-8 (budget-friendly)
- Concentration: 5% caffeine (above ideal 0.5-3% range, but generally safe)
- Also contains EGCG (antioxidant/anti-inflammatory)
- Low irritation potential
**Verdict:**
Worth trying if you have **vascular dark circles or puffiness**. If your dark circles are mainly pigmented (brown) or structural (shadows from bone structure), this won't be very effective. Budget-friendly enough to test for 4 weeks.
**Alternative considerations:**
- Address lifestyle factors: sleep, hydration, reduce salt, manage allergies
- Cold compresses for immediate puffiness relief
- If no improvement after 4-6 weeks, may indicate pigmented/structural type needing different approach
## Routine Development
### Recommendations Based on Current Products
**For Winter Dry Skin:**
- Primary moisturizer: **NMF + HA** (standard version) for daily use
- Backup for extra dryness: **PhytoCeramides** when skin feels very dry or after hot baths
- Apply moisturizer immediately after cleansing while skin is still slightly damp
- Apply twice daily (morning + evening)
- May need to reapply during the day if dryness persists
**For Under-Eye Concerns:**
- **Experiment starting:** Caffeine Solution 5% + EGCG (€7.62)
- Apply morning and evening to eye contour
- Keep in fridge for extra cooling effect
- Track results over 4-6 weeks
- Can also use cold compresses in the morning for immediate puffiness relief
### Current Morning Routine
1. **Cleanse:** Squalane Cleanser (optional - can just rinse with water if not oily)
2. **Eye treatment:** Caffeine Solution 5% + EGCG (EXPERIMENT - track results)
3. **Serum:** Multi-Peptide + HA Serum (few drops)
4. **Moisturize:** Natural Moisturizing Factors + HA
5. **SPF:** [Current sunscreen, considering UV Filters SPF 45 Serum]
**Total time:** ~5 minutes
### Current Evening Routine
1. **Cleanse:** Squalane Cleanser (to remove SPF/impurities)
2. **Eye treatment:** Caffeine Solution 5% + EGCG (EXPERIMENT - track results)
3. **Serum:** Multi-Peptide + HA Serum (few drops)
4. **Moisturize:** Natural Moisturizing Factors + HA (or PhytoCeramides if extra dry/after hot bath)
**Total time:** ~5 minutes
### Weekly Treatments
Consider adding (optional):
- **Gentle exfoliant** (1-2x per week) - helps moisturizers absorb better
- The Ordinary: Lactic Acid 5% or 10% (also hydrating)
- **Hydrating mask** (1x per week) for extra moisture boost
- **Overnight occlusive** (petroleum jelly on very dry areas) on especially dry nights
## Progress Tracking
### Caffeine Solution Experiment Tracking
**Experiment start date:** TBD (when product arrives)
**Duration:** 4-6 weeks minimum
**Check-in frequency:** Weekly photos + daily notes
**Before starting (Day 0):**
- [ ] Take close-up photo of under-eye area (natural light, same time of day)
- [ ] Note dark circle type: Blue/purple (vascular), Brown (pigmented), or Shadowy (structural)
- [ ] Rate current state:
- Puffiness: ___/10
- Dark circle visibility: ___/10
**Weekly check-ins:**
- Take photo (same lighting/time as baseline)
- Rate puffiness and dark circles (1-10)
- Note any changes observed
**After 4-6 weeks:**
- [ ] Compare before/after photos
- [ ] Assess: Did puffiness improve? Did dark circles improve?
- [ ] Decision: Continue (if working) or try different approach (if not working)
### Daily Journal
Track observations:
- Dryness level (1-10)
- Under-eye puffiness (1-10)
- Under-eye darkness (1-10)
- Products used
- Environmental factors (heating, humidity)
- Sleep quality (hours + quality)
- Water intake
- Salt intake (high salt = more puffiness)
- Notes on skin feel/appearance
## Future Considerations: Retinol/Retinoids
**Status:** Research completed, not adding yet. Will revisit after skin is stable (3-6 months)
### What Retinoids Do
- **Most studied anti-aging ingredient** (Harvard Medical)
- Speed up cell turnover + boost collagen production
- Reduces fine lines, wrinkles, age spots, improves texture
- Also treats acne and prevents acne scars
- **Timeline:** 3-6 months for visible results; best results at 6-12 months
### Why Waiting Makes Sense
- Already dealing with winter dryness (retinol causes more dryness)
- Need to establish consistent SPF routine first (retinol increases sun sensitivity)
- Better to add in spring/summer when skin isn't already compromised
- Current goals (dry skin + dark circles) should be addressed first
### Major Downsides to Consider
1. **Dryness & irritation** (especially first 2-4 weeks)
- Peeling, redness, tightness
- Compounds winter dryness issues
2. **Requires daily SPF** (non-negotiable)
3. **Long-term commitment** (3-12 months for results)
4. **Effects disappear** when you stop using it
5. **Cannot use** during pregnancy/breastfeeding
### Best The Ordinary Options for Dry Skin (When Ready)
- **Retinol 0.2% in Squalane** - Lowest strength, moisturizing base
- **Granactive Retinoid 2% in Squalane** - Gentler alternative, low irritation
### Product Compatibility Research
**✅ SAFE with retinol:**
- Hyaluronic acid (in peptide serum & moisturizers) - actually helps reduce dryness
- Ceramides (in PhytoCeramides moisturizer) - minimizes irritation
- Squalane (in cleanser & retinol formulations) - moisturizes and buffers
**⚠️ USE SEPARATELY (timing conflicts):**
- **Multi-Peptide Serum** - May lose potency with retinol
- Solution: Peptides AM, Retinol PM
- **Caffeine Solution** - Can aggravate retinol's inflammatory effects
- Solution: Caffeine AM only, Retinol PM only
**❌ CANNOT MIX with retinol:**
- Direct acids (AHA/BHA) - over-exfoliation risk
- Vitamin C - neutralize each other
- Benzoyl Peroxide - neutralizes retinol
### Recommended Routine (If/When Adding Retinol)
**MORNING (No Retinol):**
1. Cleanse (or just water rinse)
2. Caffeine Solution → under eyes
3. Multi-Peptide + HA Serum → face
4. Moisturizer (NMF + HA)
5. **SPF (CRITICAL - non-negotiable with retinol)**
**EVENING (With Retinol):**
1. Cleanse thoroughly
2. *(Optional: thin layer of moisturizer first for "sandwich" method)*
3. **RETINOL** → Wait 20-30 minutes for absorption
4. Moisturizer (NMF + HA or PhytoCeramides)
**Notes:**
- Skip peptide serum at night (replaced by retinol)
- Skip caffeine solution at night (use morning only)
- Start retinol 2-3x per week, gradually increase to nightly
- Can reduce to 2-3x/week in winter if too drying
- Use "retinol sandwich" (moisturizer → retinol → moisturizer) for sensitive/dry skin
### Decision Timeline
1. **Now:** Establish current routine + caffeine experiment (4-6 weeks)
2. **Next:** Add consistent SPF usage (1-2 months)
3. **Then:** Reassess if retinol needed (spring 2025?)
4. **If adding:** Start with lowest strength, increase slowly
## Resources
### Articles & Guides
(To be collected)
### Professional Consultation
Consider dermatologist if:
- No improvement after 4-6 weeks
- Severe dryness/cracking
- Signs of skin conditions (eczema, rosacea)
- Considering prescription retinoids (tretinoin)
## Budget
Target monthly spend: TBD
- Cleanser:
- Moisturizer:
- Eye cream:
- Other:
## Notes
Winter dry skin often requires:
- Heavier moisturizers than summer
- More frequent application
- Environmental adjustments (humidifier)
Under-eye concerns may need:
- Dedicated eye cream (face cream may be too heavy)
- Consistency over time (results take weeks)
- Lifestyle factors addressed alongside topical treatments

View File

@@ -0,0 +1,248 @@
---
created: 2025-11-14 09:28
updated: 2025-11-17 07:59
---
# Color e research (nonAmazon, ~6")
## Your rough requirements
- Screen size: around 6" (pocketable)
- Color E Ink display
- No Amazon/Kindle
- Preferably Android (for flexibility), but open to other platforms
- Use in the Netherlands; want local pricing and realistic standby battery expectations
Color + 6" + Android is still a niche combination. Most 6" color devices are **closed Linux-based s** (Kobo, PocketBook), while **Android color devices are mostly 7.8"+** (Onyx, Bigme). Below is a curated shortlist that tries to balance size, color, and software.
### Usage
Reading in the bath as a backup to my read books.
Phone replacement add home. So podcasts, quick todo lijst referencing and some smarthome control.
---
## Shortlist summary
**If color is the hard requirement and 6" is important:**
- **Kobo Clara Colour** 6" color E Ink, compact, good ecosystem, but **not Android**.
- **PocketBook Verse Pro Color** 6" color, slightly more “open” on formats, also **not Android**.
**If Android and color are more important than 6" size:**
- **Onyx Boox Tab Mini C** 7.8" color E Ink, full Android with Google Play; much more like an eink tablet than a simple e.
**If you want 6" with color AND Android:**
- **BigMe B6** 6" color E Ink with Android; rare combination of all three requirements but less common in EU market.
**If you can compromise on color (blackandwhite only) but want 6" + Android:**
- **Onyx Boox Poke 5** or **Onyx Boox Palma** 6" class blackandwhite E Ink, Android, very flexible, excellent for reading apps, but no color.
---
## Device details
### 1. Kobo Clara Colour (6" color, nonAndroid)
**Basics**
- **Screen:** 6" E Ink Kaleido 3, ~300 ppi mono / ~150 ppi color.
- **OS:** Kobos custom Linuxbased firmware (not Android).
- **Formats:** EPUB, Kobo, PDF, etc. (no native Kindle).
- **Waterproofing:** No formal IP rating (check current spec if this matters).
**Approximate NL price**
- Expect roughly **€160€190** at Dutch retailers (e.g. bol.com, Coolblue, local book chains).
- Pricing is similar to other EU markets; promotions can move it ±€2030.
**Battery / standby**
- Battery capacity is in the ~1500 mAh range (similar to Clara BW generation).
- Realworld standby: **multiple weeks** with WiFi off and ~30 minutes daily reading.
- Color E Ink and higher frontlight usage shorten life versus older blackandwhite Clara, but you are still in “weeks”, not “days”.
**Pros**
- Very compact and light; close to your 6" requirement.
- Mature firmware; good typography, library management, overdrive support in some regions.
- Color is enough for covers, comics, light diagrams, highlighting.
- Kobo store is strong in NL; sideloading EPUB is straightforward.
**Cons**
- **Not Android** you cannot install arbitrary apps (e.g. Kindle, Pocket, Libby).
- Color resolution is effectively ~150 ppi; fine for graphics but not “tabletlike”.
- No SD card; 16 GB is usually plenty for books, more marginal for large comic libraries.
---
### 2. PocketBook Verse Pro Color (6" color, nonAndroid)
**Basics**
- **Screen:** 6" E Ink Kaleido 3 color panel.
- **OS:** PocketBooks own Linuxbased system.
- **Formats:** Broad format support (EPUB, FB2, PDF, DJVU, CBZ/CBR, etc.).
- **Storage / expansion:** Internal storage + usually microSD card slot (PocketBook tradition; confirm on final spec).
- **Build:** Typically with pageturn buttons and IPX8 waterproofing on “Pro” models.
**Approximate NL price**
- Expect roughly **€180€220** in the Netherlands depending on configuration and retailer.
- PocketBook devices are sold via EUwide online shops; sometimes you import from a nearby country with ~€10€20 shipping.
**Battery / standby**
- Battery capacity typically ~15001700 mAh on 6" PocketBook models.
- With color E Ink, realistic standby is **34 weeks** of light reading (WiFi mostly off, frontlight moderate).
- Heavy color use (comics, manga with light at max) can pull this down to ~2 weeks between charges.
**Pros**
- 6" color E Ink, nonAmazon, good format support.
- microSD (if present) is nice for big comic/manga libraries.
- PocketBook firmware is relatively open in file formats; USB massstorage sideload works well.
- Pageturn buttons and waterproofing are practical.
**Cons**
- Also **not Android**; same limitation as Kobo on installing arbitrary apps.
- UI polish is weaker than Kobos; translations and menus can feel more “toolish”.
- Color performance similar to Clara Colour; do not expect huge qualitative differences.
---
### 3. BigMe B6 (6" color, Android)
**Basics**
- **Screen:** 6" E Ink Kaleido 3 color panel, ~300 ppi mono / ~150 ppi color.
- **OS:** Android 11 with Google Play Store access.
- **Formats / apps:** Any Android reading app (Kindle, Kobo, Pocket, library apps, comics apps, etc.).
- **Build:** Lightweight design with physical page turn buttons.
- **Storage:** Typically 32GB or 64GB internal storage.
**Approximate NL price**
- Expect roughly **€300€400** depending on retailer and import costs.
- BigMe devices are less common in EU/NL retail; often purchased via AliExpress, specialized e-reader importers, or directly from BigMe with international shipping.
- Import duties and shipping can add €30€60 to the base price.
**Battery / standby**
- Battery capacity typically ~20002500 mAh for 6" models.
- With Android running background services, realistic standby is **23 weeks** with light reading and Wi-Fi mostly off.
- More conservative than dedicated e-readers, but better than larger Android tablets due to smaller screen and battery optimization.
**Pros**
- Rare combination of **6" + color + Android** hits all three of your key requirements.
- Full app flexibility while maintaining pocketable size.
- Physical page turn buttons are practical for one-handed reading.
- Generally good build quality and responsiveness.
**Cons**
- **Limited EU availability** harder to find through standard Dutch retailers; may require import with longer shipping times and uncertain warranty support.
- Less established brand in Western markets compared to Kobo, PocketBook, or Onyx Boox.
- Firmware updates and support may be less predictable than major brands.
- Price premium over non-Android 6" color devices for the Android flexibility.
---
### 4. Onyx Boox Tab Mini C (7.8" color, Android)
This is the closest thing to a **small color Android eink tablet** from a major vendor, but it is **larger than 6"**.
**Basics**
- **Screen:** 7.8" E Ink Kaleido 3 color, ~300 ppi mono / ~150 ppi color.
- **OS:** Android (Booxs customized build, Android 11 era), with Google Play access.
- **Formats / apps:** Any Android reading app (Kindle, Kobo, Pocket, Libby, comics apps, RSS, etc.).
- **Hardware:** Octacore SoC, more RAM and storage than simple s; feels like a small tablet.
**Approximate NL price**
- EU pricing is in the **€450€520** range depending on retailer and sales.
- In NL you usually buy via EU shops (Boox store EU, Amazon.de, other electronics retailers) with shipping rather than a dedicated Dutch chain.
**Battery / standby**
- Battery is in the **~5000 mAh** class.
- Because it runs full Android and faster hardware, standby is more variable than on Kobo/PocketBook:
- With radios off and no background apps: **a few weeks** of light use is realistic.
- With multiple apps syncing (Kindle, Pocket, RSS, etc.) and frequent WiFi: you may be closer to **a week** between charges.
**Pros**
- Full Android with Google Play you can unify all ecosystems (Kindle, Kobo, local library apps) on one device, while still avoiding Amazon hardware.
- Much more flexible for notetaking, web reading, and niche apps.
- Boox offers granular refresh modes and perapp tuning for ghosting and speed.
**Cons**
- **7.8"** materially larger than your 6" target; more of a “small tablet” than a pocket .
- More expensive; you pay a clear premium for Android + color.
- Battery management requires some attention (background apps, sync, WiFi) to preserve “weekslevel” standby.
---
### 4. Onyx Boox Poke 5 / Palma (6" class, Android, blackandwhite)
These are alternatives if you decide color is not worth the tradeoffs and you care more about **Android + 6" size**.
**Basics**
- **Screen:** ~6" 300 ppi blackandwhite E Ink (no color).
- **OS:** Android (Boox firmware, again around Android 11 generation).
- **Form factor:**
- **Poke 5:** classic 6" e shape.
- **Palma:** phonelike 6.13" aspect ratio; very pocketable.
**Approximate NL price**
- Generally **€200€280** depending on model and storage.
- Purchased via EU online retailers; NLspecific street prices are close to the broader EU range.
**Battery / standby**
- 15002500 mAh class batteries, depending on model.
- Without color and with careful app management, **“several weeks”** of light reading per charge is realistic; these last clearly longer than equivalentlysized color E Ink devices.
**Pros**
- Full Android on a ~6" E Ink device; you can run any reading app.
- Great if you want one device for Kindle, Kobo, Pocket, library apps, etc., but do not care about color.
- Battery life notably better than color Android tablets at similar usage.
**Cons**
- No color; comics and technical diagrams lose some value.
- Boox UI can be fiddly; requires some setup to behave well (refresh modes, app whitelisting, etc.).
---
## Color E Ink: pros and cons
**Pros**
- **Better for comics, manga, and covers** color adds useful information (highlighting, diagrams, coding books with color syntax).
- **Still reflective and lowglare** compared to LCD/OLED tablets; good in bright light and outdoors.
- **Power usage remains low** compared to tablets: the display is bistable; most power is used when changing the page and for the frontlight.
**Cons**
- **Lower effective resolution for color** with current Kaleido 3 panels, color subpixels mean you effectively get about half the color PPI (~150 ppi) versus the mono layer (~300 ppi). Text is fine, but images look less sharp than on an LCD tablet.
- **Dimmer and less saturated** colors are more muted and “pastel” than on an iPad or phone.
- **Slightly worse contrast for text** even in blackandwhite mode, color filter layers can reduce contrast compared to pure monochrome E Ink panels.
- **Battery life impact** more frequent frontlight use and sometimes more page refreshes reduce battery life versus otherwise similar blackandwhite models, though you usually still get weeks, not days.
Useful background source: E Inks own documentation on color technology (e.g. the “Color ePaper” / “Color Technology” pages on **eink.com**) explains how Kaleido uses a color filter over a monochrome panel and what that implies for brightness and color saturation.
---
## Android vs closed e OS
**Advantages of Android (Boox, Bigme, etc.)**
- **App flexibility:** install Kindle, Kobo, Pocket, Libby/Bibliovore, RSS s, web browsers, notetaking tools, etc.
- **Consolidation:** one device for multiple ecosystems and libraries.
- **Systemlevel features:** better annotation export, cloud sync via thirdparty tools, integration with “read later” services.
**Drawbacks of Android on E Ink**
- **Battery management:** background services, push notifications, and sync jobs can wake the device; careless app installation can reduce standby from “weeks” to “days”.
- **UI not optimized for E Ink:** many Android apps assume a fast LCD; on E Ink you can get ghosting, lag, or animations that feel bad unless you tune refresh mode per app.
- **Complexity:** more settings, more ways to break things; you trade the “appliancelike” simplicity of Kobo/PocketBook for flexibility.
**Advantages of closed e OS (Kobo, PocketBook)**
- **Predictable battery life:** firmware and apps are tuned for E Ink; background activity is minimal, so “several weeks” of battery is realistic for most users.
- **Simplicity:** focused UI for reading, collections, and sync with one store/library system.
- **Stability:** fewer updates that radically change behavior; less chance of weird Android app interactions.
**Drawbacks of closed OS**
- You are **tied to one ecosystem** and whatever formats/features the vendor supports.
- You cannot easily install competing stores or experimental apps.
- Workflows relying on integrations (e.g. specific notetaking apps, niche RSS clients) are not possible.
**Representative sources for Android vs dedicated OS tradeoffs**
- Longrunning e reviews at **Ars Technica**, **The Verge**, and **Good e** typically compare Boox (Android) against Kobo/Kindle and highlight exactly these tradeoffs.
- Manufacturer documentation and user manuals (Kobo, PocketBook, Onyx Boox) are reliable for OS type, supported formats, and official batterylife claims.
---
## How this maps to your preferences
- If **6" + color** matters most and you accept a closed OS: shortlist **Kobo Clara Colour** and **PocketBook Verse Pro Color**.
- If **Android + color** is the priority and you can accept a larger device: consider **Onyx Boox Tab Mini C**.
- If after seeing color tradeoffs you decide it is not worth it, but Android + 6" is important: look at **Onyx Boox Poke 5** or **Palma** as blackandwhite alternatives.
For final purchase, check **bol.com**, **Coolblue**, and manufacturer EU stores directly from your browser to confirm **current NL pricing and local availability**, since the numbers above are approximate and promotions can move them significantly.

View File

@@ -0,0 +1,30 @@
## Internal Sizes
50L 59cm x 35cm x 22cm
65L 74cm x 33cm x 31cm = 75.7
4 medium & 4 small packing cubes
2 medium camera cubes & 4 ultralight packing cubes
80L 77cm x 35cm x 31cm = 83.5
5 in a row
64 + 17 = 81
4 in a row and a pouch
64 + 11 = 75
2 on top
17 + 17 = 34 cm
Packing cubes
32cm x 17cm x 8cm
32cm x 17cm x 17cm
32cm x 32cm x 8cm
32cm x 32cm x 17cm
Ultralight
30cm x 17cm x 13cm
Wash pouch
26cm x 15cm x 11cm
Tech pouch
24cm x 15cm x 10cm

View File

@@ -0,0 +1,22 @@
| Possibility | **Product** | **Price** | **OS Compatibility** | **NL Availability** | Wireless | Notes | **Link** |
| ----------- | ----------------------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Yes | **ErgoDox EZ (Glow/Shine)** | $355 (USD) | Linux, Windows, macOS (plug-and-play; small tweaks for macOS layouts) | Ships from ZSA (EU facility), free shipping; built-to-order in ~2 weeks ([ergodox-ez.com](https://ergodox-ez.com/gift?utm_source=chatgpt.com "The gift of ErgoDox EZ"), [ergodox-ez.com](https://ergodox-ez.com/buy "Get an ErgoDox EZ \| ErgoDox EZ")) | No | | |
| No | **Kinesis Freestyle Edge RGB** | $199 (USD) | Linux, Windows, macOS (plug-and-play; remapping via SmartSet/VIA/xmodmap) | In stock on Amazon and Kinesis store; ships worldwide (incl. NL) ([amazon.com](https://www.amazon.com/KINESIS-Gaming-Freestyle-Mechanical-Keyboard/dp/B07STXYG5T?utm_source=chatgpt.com "KINESIS Gaming Freestyle Edge RGB Split Mechanical Keyboard ..."), [gaming.kinesis-ergo.com](https://gaming.kinesis-ergo.com/shop/?srsltid=AfmBOooegYjxwQxLDX6gRjRAs_9NtD5z_kekMYf_SJMICeQNEOGIdaD0&utm_source=chatgpt.com "Kinesis Gaming Store \| Official")) | No | ugly | [gaming.kinesis-ergo.com](https://gaming.kinesis-ergo.com/product/freestyle-edge/) |
| Yes | Dygma Defy | 539 Euro | Bazecor | | | | |
| | **Dygma Raise 2** | 539 euro | Bazecor | In stock; free worldwide shipping on orders ≥ $99 ([dygma.com](https://dygma.com/products/dygma-raise-2?srsltid=AfmBOoq6KVY6sK5At5WdsmLSb5rSCprz4HhcSFsRc1r_YsI-PKU9bdd4&utm_source=chatgpt.com "Dygma Raise 2 - Wireless ergonomic split keyboard"), [dygma.com](https://dygma.com/pages/dygma-raise-2?srsltid=AfmBOopg3HOGuqxVI7TuXQJmFLNJ6-Vig67UBqq32LtBUhZrLnkqByLa&utm_source=chatgpt.com "The Best Wireless Split Keyboard - Dygma Raise 2")) | Yes | When added wireless and tilt | [dygma.com](https://dygma.com/products/dygma-raise-2) |
| No | **Aurora Lily58 (PCB Kit)** | €37.95 (EUR) | Linux, Windows, macOS (QMK/ZMK) | In stock at splitkb.com; carbon-neutral EU shipping ([splitkb.com](https://splitkb.com/products/aurora-lily58?srsltid=AfmBOoo_jI_yes_q1-i7J5Uv6X59w1ydF_VnVUv-wgbn05dCkuSPnkcb&utm_source=chatgpt.com "Aurora Lily58 PCB Kit - splitkb.com")) | ? | Build kit | [splitkb.com](https://splitkb.com/products/aurora-lily58) |
| No | **Ultimate Hacking Keyboard (UHK 60 v2)** | $320 (USD) | Linux, Windows, macOS (configurator “Agent” on all) | Ships from EU facility in ~1 week; free shipping on new orders ([ultimatehackingkeyboard.com](https://ultimatehackingkeyboard.com/shop?utm_source=chatgpt.com "Shop - Ultimate Hacking Keyboard"), [ultimatehackingkeyboard.com](https://ultimatehackingkeyboard.com/uhk60?utm_source=chatgpt.com "UHK 60 - Ultimate Hacking Keyboard")) | ? | Build kit | [ultimatehackingkeyboard.com](https://ultimatehackingkeyboard.com/shop) |
| No | **Mistel BAROCCO MD770** | $139 USD | Linux, Windows, macOS (standard USB-HID) ([mechanicalkeyboards.com](https://mechanicalkeyboards.com/products/mistel-md770?srsltid=AfmBOorTHGybOhvSDrGkrSLUlJbzpLvGR39cyaA1tyuBtwloTfA-pISw "Mistel MD770 75% Double Shot PBT Mechanical Keyboard"), [mechanicalkeyboards.com](https://mechanicalkeyboards.com/products/mistel-md770?srsltid=AfmBOorTHGybOhvSDrGkrSLUlJbzpLvGR39cyaA1tyuBtwloTfA-pISw&utm_source=chatgpt.com "Mistel MD770 75% Double Shot PBT Mechanical Keyboard")) | In stock at Mistel with pre-order option; ships EU-wide ([mechanicalkeyboards.com](https://mechanicalkeyboards.com/products/mistel-md770?srsltid=AfmBOorTHGybOhvSDrGkrSLUlJbzpLvGR39cyaA1tyuBtwloTfA-pISw&utm_source=chatgpt.com "Mistel MD770 75% Double Shot PBT Mechanical Keyboard")) | | Basic split keyboard | [mistelkeyboard.com/products/md770](https://mistelkeyboard.com/products/d11cf7a73da49468e2a530b4cf18e76c) ([mistelkeyboard.com](https://mistelkeyboard.com/products/d11cf7a73da49468e2a530b4cf18e76c?utm_source=chatgpt.com "BAROCCO MD770 - Mistel Keyboard")) |
| No | **Aurora Corne PCB Kit** | €34.94 EUR | Linux, Windows, macOS (QMK/ZMK firmware) ([splitkb.com](https://splitkb.com/products/aurora-corne?srsltid=AfmBOorFVt3RTYtLjOphNfzndw2OxvLPx35l1eLi7ffoWLdPrj2mnzQg&utm_source=chatgpt.com "Aurora Corne PCB Kit - splitkb.com"), [splitkb.com](https://splitkb.com/products/aurora-corne?srsltid=AfmBOorFVt3RTYtLjOphNfzndw2OxvLPx35l1eLi7ffoWLdPrj2mnzQg "Aurora Corne PCB Kit — splitkb.com")) | In stock at SplitKB with carbon-neutral EU shipping ([splitkb.com](https://splitkb.com/products/aurora-corne?srsltid=AfmBOorFVt3RTYtLjOphNfzndw2OxvLPx35l1eLi7ffoWLdPrj2mnzQg "Aurora Corne PCB Kit — splitkb.com")) | | | [splitkb.com/products/aurora-corne](https://splitkb.com/products/aurora-corne) ([splitkb.com](https://splitkb.com/products/aurora-corne?srsltid=AfmBOorFVt3RTYtLjOphNfzndw2OxvLPx35l1eLi7ffoWLdPrj2mnzQg&utm_source=chatgpt.com "Aurora Corne PCB Kit - splitkb.com")) |
| Yes | **Sofle MX Prebuilt Split Keyboard** | $259 USD (USB-C wired) | Linux, Windows, macOS (USB-C HID) ([keebmaker.com](https://keebmaker.com/products/sofle-rgb?srsltid=AfmBOop7mkIpy5oaFb3LwBzx4e6WxuQd1PTheinGrcWW3ZXqC22-RjKN "Sofle MX Prebuilt Split Keyboard")) | Ships worldwide from KeebMaker; 23 day EU dispatch ([keebmaker.com](https://keebmaker.com/products/sofle-rgb?srsltid=AfmBOop7mkIpy5oaFb3LwBzx4e6WxuQd1PTheinGrcWW3ZXqC22-RjKN "Sofle MX Prebuilt Split Keyboard")) | | | [keebmaker.com/products/sofle-rgb](https://keebmaker.com/products/sofle-rgb) ([keebmaker.com](https://keebmaker.com/products/sofle-rgb?srsltid=AfmBOop7mkIpy5oaFb3LwBzx4e6WxuQd1PTheinGrcWW3ZXqC22-RjKN&utm_source=chatgpt.com "Sofle MX Prebuilt Split Keyboard - KeebMaker")) |
| No | **Matias Ergo Pro** | $215 USD | Windows, macOS (official); Linux works as USB-HID ([askergoworks.com](https://askergoworks.com/products/matias-ergo-pro-keyboard?srsltid=AfmBOorf6rE64KC4cwmNuo3mRvgBvomYyKvJNdjYh_5PcdWzIBlWCX8k&utm_source=chatgpt.com "Matias Ergo Pro Keyboard \| Ergonomic Keyboard \| PC and Mac")) | Available from Matias (Canada) with EU tax-adjusted checkout ([askergoworks.com](https://askergoworks.com/products/matias-ergo-pro-keyboard?srsltid=AfmBOorf6rE64KC4cwmNuo3mRvgBvomYyKvJNdjYh_5PcdWzIBlWCX8k&utm_source=chatgpt.com "Matias Ergo Pro Keyboard \| Ergonomic Keyboard \| PC and Mac")) | | NO thumbcluster | [matias.ca/ergopro](https://matias.ca/ergopro/pc/) ([matias.ca](https://matias.ca/ergopro/pc/?utm_source=chatgpt.com "Matias Ergo Pro Keyboard")) |
| No | **Keebio Iris CE (Compact Edition)** | $199.94 USD | Linux, Windows, macOS (QMK/VIA, USB-HID) ([keeb.io](https://keeb.io/products/iris-ce-keyboard?srsltid=AfmBOooLGIxrGs9hS8tFCwrCufNZS8v-50rbLy9pty17AN5ETADyoVSA&utm_source=chatgpt.com "Iris CE - Low-Profile Split Ergonomic Keyboard (Pre-Built) - Keebio")) | Pre-built and kits in stock at Keebio; ships EU-wide ([keeb.io](https://keeb.io/products/iris-ce-keyboard?srsltid=AfmBOooLGIxrGs9hS8tFCwrCufNZS8v-50rbLy9pty17AN5ETADyoVSA&utm_source=chatgpt.com "Iris CE - Low-Profile Split Ergonomic Keyboard (Pre-Built) - Keebio")) | | Low profile | [keeb.io/products/iris-ce-keyboard](https://keeb.io/products/iris-ce-keyboard) ([keeb.io](https://keeb.io/products/iris-ce-keyboard?srsltid=AfmBOooLGIxrGs9hS8tFCwrCufNZS8v-50rbLy9pty17AN5ETADyoVSA&utm_source=chatgpt.com "Iris CE - Low-Profile Split Ergonomic Keyboard (Pre-Built) - Keebio")) |
### Requirements
I need compatibility with all OS's.
I need a thumb cluster
I need the ability to use macros.
RGB to show which layer I am on is a big plus.
I need a number row.
Disregard any build kits
I don't want low profile boards