Minor mode to capture:
(define-minor-mode lmno-blog-capture-mode
"Mode for capturing blog entries like org-capture."
:lighter ">> BlogCapture"
:keymap (let ((map (make-sparse-keymap)))
{ | |
"\u001b\u003c": "CursorStart", | |
"\u001b\u003e": "CursorEnd", | |
"\u003cCtrl-x\u003e\u003c0\u003e": "Unsplit", | |
"\u003cCtrl-x\u003e\u003c2\u003e": "HSplit", | |
"\u003cCtrl-x\u003e\u003c3\u003e": "VSplit", | |
"\u003cCtrl-x\u003e\u003cCtrl-c\u003e": "Quit", | |
"\u003cCtrl-x\u003e\u003cCtrl-f\u003e": "OpenFile", | |
"\u003cCtrl-x\u003e\u003cCtrl-s\u003e": "Save", | |
"\u003cCtrl-x\u003e\u003ch\u003e": "SelectAll", |
#!/usr/bin/env bash | |
############################################################################### | |
# daily.nb-plugin | |
# | |
# Write to a daily log. | |
# | |
# Install with: | |
# nb plugin install https://github.com/xwmx/nb/blob/master/plugins/daily.nb-plugin | |
# | |
# A plugin for `nb`. |
#!/usr/bin/env ruby | |
# - `makeapp.rb --help` for help on the options | |
require 'optparse' | |
# Where do we want to put things? | |
app_dir = "~/Applications" | |
custom_dir = "/home/mph/.local/share/applications/" |
-- provided there's a custom date field in a contact record, this will prepend a datestamped note and update "last contacted" to today. | |
set theDate to do shell script "date +%Y-%m-%d" | |
tell application "Contacts" | |
set selectedPeople to selection | |
repeat with thePerson in selectedPeople | |
set customDates to custom dates of thePerson | |
repeat with aCustomDate in customDates | |
if label of aCustomDate is "last contacted" then | |
set value of aCustomDate to current date |
A bunch of functions and views to allow org-contacts to serve as the basis for a lightweight, text-based CRM.
Basic workflow:
org-vcard
, but that didn’t work for me so I made a script.[fn:1]:CONTACTED:
property to the cards. It takes a date (not an org-date, just an ISO-8601 YYYY-mm-dd
date). The script adds one.:close:
, :fam:
, and :network:
#!/usr/bin/env ruby | |
require 'net/http' | |
require 'json' | |
require 'time' | |
# Replace with your TriMet API key | |
API_KEY = '73E10D534D59A179A687B98EDEE' | |
# Replace with the TriMet stop ID for the stop you're interested in | |
STOP_ID = '13136' |
@import url('https://fonts.googleapis.com/css2?family=Neuton:wght@700&display=swap'); | |
@import url('https://fonts.googleapis.com/css2?family=Fira+Mono&display=swap'); | |
@import url('https://unpkg.com/@catppuccin/[email protected]/css/catppuccin.css'); | |
h1, h2, h3, h4, h5, h6 { | |
font-family: 'Neuton', serif; | |
} | |
:root { |
Kanbans/Tasks.md;## Inbox
Kanbans/Content.md;## Todo
Kanbans/Website.md;## Inbox
Push line/selection to another file