├── .gitignore ├── augmentations ├── Directory watches.alfredworkflow ├── GitHub jump.alfredworkflow ├── Recent Downloads.alfredworkflow └── Workflow directory.alfredworkflow ├── birthday ├── Birthday.alfredworkflow ├── README.md ├── birthday.go ├── main.go ├── modd.conf └── workflow │ ├── icon.png │ ├── icons │ ├── update-available.png │ └── update.png │ └── info.plist ├── clean-folders ├── Clean folders.alfredworkflow ├── readme.md └── workflow │ ├── icon.png │ └── info.plist ├── dropbox-upload ├── Dropbox Upload.alfredworkflow ├── README.md └── workflow │ ├── icon.png │ └── info.plist ├── file-actions ├── File actions.alfredworkflow ├── readme.md └── workflow │ ├── 05C183C4-C1D8-4B1C-975A-A499D399AAED.png │ ├── 0941FA29-8416-4289-A6B8-4165625D4A55.png │ ├── 210C0038-86C7-4781-9F6E-5A81F859E877.png │ ├── 2BD3A8BE-D9BA-4B12-948C-E2632F3D67ED.png │ ├── 3A020D59-FE40-4328-A767-B5725A876915.png │ ├── 474B26D3-4450-49AC-A7C4-C9D71DDD76E1.png │ ├── 57AB6F96-9189-4E21-8E77-3D27FA388664.png │ ├── 5D838964-73AF-474B-BD3D-F69814EDB761.png │ ├── 80A02279-4EB1-4B30-BA7F-D41C31EE28BD.png │ ├── 8429A703-7734-4224-9EA0-81AE424B57FC.png │ ├── 892D04AB-DEDD-4956-ABB6-32A828F4900B.png │ ├── 95CE1AA4-AFB9-486F-BA43-359EE4BCFE98.png │ ├── 973E95B3-0ADF-442D-8CBE-EB91FA2ED3A7.png │ ├── A409F4C0-E91C-475F-B62C-754FCBCE18A8.png │ ├── B27EECE8-761E-4804-9306-2D597B6FD49C.png │ ├── B4CED3D9-C478-45AE-BB69-339ECF6468A9.png │ ├── C8CF626A-8D5A-4D55-8AB8-E0B87BD656A3.png │ ├── CA7377D2-2480-45DD-A0E4-1AAB5F4A910A.png │ ├── CEEED62C-6361-4AE4-A89B-80D0EC11AA6A.png │ ├── E074972D-2A62-407B-9472-B5C9CECEAE05.png │ ├── E8D01873-DECE-4575-B35F-2048329D0B42.png │ ├── EC932FFD-E3FD-462E-BB1C-8848A0D80471.png │ ├── FFBA68A2-E374-4725-9573-7B9A290E14D1.png │ ├── getFilePath.scpt │ ├── getFilePathjs.scpt │ ├── icon.png │ └── info.plist ├── focus ├── Focus.alfredworkflow ├── README.md └── workflow │ ├── icon.png │ └── info.plist ├── folder-search ├── Folder search.alfredworkflow ├── readme.md └── workflow │ ├── icon.png │ └── info.plist ├── go-play ├── Go Play.alfredworkflow ├── readme.md └── workflow │ ├── icon.png │ └── info.plist ├── go.mod ├── goto-subreddit ├── Go to subreddit.alfredworkflow ├── readme.md └── workflow │ ├── icon.png │ └── info.plist ├── license ├── local-host ├── Local host.alfredworkflow ├── readme.md └── workflow │ ├── icon.png │ └── info.plist ├── month-numbers ├── Month numbers.alfredworkflow ├── readme.md └── workflow │ ├── icon.png │ └── info.plist ├── objects-library ├── Objects library.alfredworkflow ├── readme.md └── workflow │ ├── icon.png │ └── info.plist ├── open-with-app ├── Open with app.alfredworkflow ├── readme.md └── workflow │ ├── 3AF332F9-4AE3-4396-9785-78B0677A29CB.png │ ├── 45989721-9E50-4BEC-8362-08BE847F2475.png │ ├── BF2D5DFE-38FF-4077-A341-4E0BEFDF94E2.png │ ├── C96CE88F-544B-4BEB-87E7-FD6BD4E856FD.png │ ├── E5CF2D70-1E75-4F8C-AD05-1FCCB7CFAF78.png │ ├── icon.png │ └── info.plist ├── pastee └── main.go ├── personal └── Manage notes.alfredworkflow ├── readme.md ├── search-content ├── Search content.alfredworkflow ├── readme.md └── workflow │ ├── 25B10AEB-A152-4465-A992-53818C416EAD.png │ ├── 6D57C744-41AD-44F3-B941-863B242D62B6.png │ ├── icon.png │ └── info.plist ├── search-files ├── Search files.alfredworkflow ├── readme.md └── workflow │ ├── 04B7255A-49E1-423B-AE98-319E3B944069.png │ ├── 04DA1148-4172-400D-975B-77622025E21C.png │ ├── 0B2D9E41-21AB-405F-8A4D-B47491598A47.png │ ├── 1383B5DA-0525-498E-AAB8-150E5D35E1AD.png │ ├── 1AF49277-F905-425A-819F-BD400CEF29ED.png │ ├── 1FFBE4B4-3819-4F17-95DC-65ECBE884124.png │ ├── 3053E552-E0AE-4B7E-9967-8D50924ECA77.png │ ├── 3603C545-0022-4E52-A8B7-45E9FFF50443.png │ ├── 44407665-DF7A-40B3-B141-9844BCB2622B.png │ ├── 56D82740-33E9-4B85-9B5C-7DB3B49772F4.png │ ├── 72273002-2C12-41AA-8B00-9BC70F458A51.png │ ├── 78024F5D-3C7F-4A7A-B9D7-1FA3D15BB40C.png │ ├── 983D785B-9B16-4F4B-A8E9-1E5B0174E9C9.png │ ├── 9BC050AF-6C7A-481A-8B22-294718088C78.png │ ├── 9BCF53A1-B4BD-45BA-9F0C-80F2871DC37B.png │ ├── 9F1670EC-E79E-41FA-B541-F6E757E0DF47.png │ ├── B964994F-932B-476E-A943-CB2EC8B05062.png │ ├── BA26AB10-27F4-41A3-B317-D10614E82935.png │ ├── BF7FC6EC-156B-4076-9073-7DE46C61FB88.png │ ├── C0BEB9C4-E2EB-44A9-9975-D029B2793ECE.png │ ├── C4094CBD-1E63-41BC-970A-23D37CD13D6E.png │ ├── DA0A225C-B763-4CD6-AE87-DBF8765D9D60.png │ ├── E12B52E6-2A69-4ADE-AF3C-298DBA7CEB89.png │ ├── E9D079C1-B439-4088-ADED-0F42AAF8B549.png │ ├── EB40CB64-2242-4938-A9C6-575912C20B8C.png │ ├── EBC5894C-6E68-4AAB-8947-18E929325FE4.png │ ├── EFE95ECE-64EC-4B1C-B8F1-F52208AC733B.png │ ├── F37F9D1D-B30E-42B4-A576-E3EA5B9F742E.png │ ├── icon.png │ └── info.plist ├── search-selection ├── Search selection.alfredworkflow ├── readme.md └── workflow │ ├── icon.png │ └── info.plist ├── search-websites ├── Search websites.alfredworkflow ├── readme.md └── workflow │ ├── 1127BC62-DD3B-4005-9B34-AB0CFADB051F.png │ ├── 146F85B0-0C5C-4B63-BB42-FCA37B4181F5.png │ ├── 183DC403-68C6-40B5-AB94-C8EFE9C7E43B.png │ ├── 193D060F-BAB2-4CED-AD5A-E3E3F3E87D6F.png │ ├── 37ED8832-1FD5-46E1-8AE2-59AF11022A93.png │ ├── 3FCA627E-69CA-4C97-B9D8-4C45B2ED3CEF.png │ ├── 4A3F8E58-17A1-47F8-9EEF-DB02059716E6.png │ ├── 62634646-FB07-4AED-B4B8-57427DFFBF21.png │ ├── 62CAD691-222B-46BF-872E-831400C666AA.png │ ├── 6943818F-D651-47ED-833A-BE0692C9EE9E.png │ ├── 6E2F5D28-3C24-4A0E-868B-B7E8458130D9.png │ ├── 70E96744-F08C-4740-8B32-706DDC657BC6.png │ ├── 7EE275C6-301E-4A93-B0A3-B0C6C9838FBB.png │ ├── 80BF4F73-C741-4BAD-8027-7AC28C522DFD.png │ ├── 85F7CEA6-934E-4127-B2C4-B6CEE98D95B3.png │ ├── 87AAAE94-DA95-4D19-947C-F604E99A1D08.png │ ├── 8836EFCE-F9CF-4CCE-8D73-ED1E59260E67.png │ ├── 8CE145BF-6ECE-417C-9BC7-E1A1C4DE5534.png │ ├── 8DCEA3D5-DBB6-48C1-9972-B60DFDEF6231.png │ ├── 9502628F-708E-4131-8C50-005ABEDA9F3C.png │ ├── A8BA4B5A-88DC-4EDD-9BB0-3D5F6A1675BE.png │ ├── ACF70BD1-4F9B-42CF-BADC-74441A205C99.png │ ├── B215DB9E-231C-4F38-BE45-0AC689713916.png │ ├── B81F54C3-CED5-4CFE-AD34-8431F9E78288.png │ ├── B8400670-4FCE-4992-A55D-F81A336CC82C.png │ ├── C12F319E-CAC7-4883-9CBA-65C4AFE009A8.png │ ├── C9A9C868-A7D4-475C-AF70-68A4A5D9B7D4.png │ ├── CBC50E38-D305-4BC6-BF89-0F106E3FA461.png │ ├── CBDD132A-64D6-4A52-90E3-18B988244724.png │ ├── CE07D201-AA28-440D-BE08-6AFE7663ABC4.png │ ├── D06CE468-9B5B-4ACC-B1C3-FAA5C4129FD2.png │ ├── DA3436F6-9BAC-4AB4-8656-75C9AA080B70.png │ ├── DDA6D61F-E6A8-44D4-BE6E-81B10508AEC1.png │ ├── E57F3424-9E2D-456D-93A7-13DA368A615C.png │ ├── E954D61A-11ED-44AE-9213-B281148306B2.png │ ├── E96EDBD8-7A33-4173-B462-4B0EDC097EBB.png │ ├── EA56BE8E-1B06-49AD-99A3-14B9866FEBB2.png │ ├── icon.png │ └── info.plist ├── todo-task ├── TODO Task.alfredworkflow ├── readme.md └── workflow │ ├── icon.png │ └── info.plist ├── todo.md ├── useful-utilities ├── Useful utilities.alfredworkflow ├── readme.md └── workflow │ ├── icon.png │ └── info.plist └── wifi-tools ├── WiFi tools.alfredworkflow ├── readme.md └── workflow ├── icon.png └── info.plist /.gitignore: -------------------------------------------------------------------------------- 1 | awesome-lists 2 | my-mind 3 | -------------------------------------------------------------------------------- /augmentations/Directory watches.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/augmentations/Directory watches.alfredworkflow -------------------------------------------------------------------------------- /augmentations/GitHub jump.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/augmentations/GitHub jump.alfredworkflow -------------------------------------------------------------------------------- /augmentations/Recent Downloads.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/augmentations/Recent Downloads.alfredworkflow -------------------------------------------------------------------------------- /augmentations/Workflow directory.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/augmentations/Workflow directory.alfredworkflow -------------------------------------------------------------------------------- /birthday/Birthday.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/birthday/Birthday.alfredworkflow -------------------------------------------------------------------------------- /birthday/README.md: -------------------------------------------------------------------------------- 1 | # Alfred Birthday - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/birthday/Birthday.alfredworkflow?raw=true) 2 | 3 | > See time passed since your birthday 4 | 5 | img 6 | 7 | In order to use this workflow, you first have to set your birthday as Alfred environment variable here: 8 | 9 | img 10 | 11 | Which you can open here: 12 | 13 | ![](https://i.imgur.com/Bwumi6L.png) 14 | 15 | ## Contributing 16 | 17 | See [contribution guidelines](../contributing.md). 18 | -------------------------------------------------------------------------------- /birthday/birthday.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "log" 5 | "os" 6 | "time" 7 | 8 | aw "github.com/deanishe/awgo" 9 | humanize "github.com/dustin/go-humanize" 10 | ) 11 | 12 | var ( 13 | updateAvailable = &aw.Icon{Value: "icons/update-available.png"} 14 | 15 | dateOfBirth = os.Getenv("Date of Birth (DD/MM/YYYY)") 16 | 17 | query string 18 | ) 19 | 20 | // Gets age correctly. 21 | func getAge(birthday time.Time) int { 22 | currentYear := time.Now().Year() 23 | currentMonth := time.Now().Month() 24 | currentDay := time.Now().Day() 25 | 26 | birthYear := birthday.Year() 27 | birthMonth := birthday.Month() 28 | birthDay := birthday.Day() 29 | 30 | var age int 31 | if currentMonth < birthMonth { 32 | age = currentYear - birthYear - 1 33 | } else if currentMonth > birthMonth { 34 | age = currentYear - birthYear 35 | } else { 36 | if currentDay >= birthDay { 37 | age = currentYear - birthYear 38 | } else { 39 | age = currentYear - birthYear - 1 40 | } 41 | } 42 | return age 43 | } 44 | 45 | // TODO: cache value so not to rerun this every second, only append to seconds on reruns 46 | func getBirthday() error { 47 | log.Printf("query=%s", query) 48 | 49 | // Get birthday 50 | if dateOfBirth == "" { 51 | wf.NewItem("Please add your date of birth in configuration sheet") 52 | wf.SendFeedback() 53 | } else { 54 | wf.Rerun(1) 55 | const dateForm = "02/01/2006" 56 | parsedDate, err := time.Parse(dateForm, dateOfBirth) 57 | if err != nil { 58 | log.Fatal(err) 59 | } 60 | 61 | birthDate := time.Date(parsedDate.Year(), parsedDate.Month(), parsedDate.Day(), 0, 0, 0, 0, time.UTC) 62 | 63 | timeSinceBirthdate := time.Since(birthDate) 64 | 65 | wf.NewItem("You have lived:") 66 | // Years 67 | wf.NewItem(humanize.Comma(int64(timeSinceBirthdate.Hours()/8760)) + " years") 68 | // Months 69 | wf.NewItem(humanize.Comma(int64(timeSinceBirthdate.Hours()/730)) + " months") 70 | // Days 71 | wf.NewItem(humanize.Comma(int64(timeSinceBirthdate.Hours()/24)) + " days") 72 | // Hours 73 | wf.NewItem(humanize.Comma(int64(timeSinceBirthdate.Hours())) + " hours") 74 | // Minutes 75 | wf.NewItem(humanize.Comma(int64(timeSinceBirthdate.Minutes())) + " minutes") 76 | // Seconds 77 | wf.NewItem(humanize.Comma(int64(timeSinceBirthdate.Seconds())) + " seconds") 78 | 79 | query = os.Args[1] 80 | 81 | if query != "" { 82 | wf.Filter(query) 83 | } 84 | 85 | wf.WarnEmpty("No matching items", "Try a different query?") 86 | wf.SendFeedback() 87 | } 88 | 89 | return nil 90 | } 91 | -------------------------------------------------------------------------------- /birthday/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | aw "github.com/deanishe/awgo" 5 | ) 6 | 7 | var ( 8 | wf *aw.Workflow 9 | ) 10 | 11 | func init() { 12 | wf = aw.New() 13 | } 14 | 15 | func run() { 16 | getBirthday() 17 | } 18 | 19 | func main() { 20 | wf.Run(run) 21 | } 22 | -------------------------------------------------------------------------------- /birthday/modd.conf: -------------------------------------------------------------------------------- 1 | **/*.go { 2 | prep: alfred build 3 | } 4 | -------------------------------------------------------------------------------- /birthday/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/birthday/workflow/icon.png -------------------------------------------------------------------------------- /birthday/workflow/icons/update-available.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/birthday/workflow/icons/update-available.png -------------------------------------------------------------------------------- /birthday/workflow/icons/update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/birthday/workflow/icons/update.png -------------------------------------------------------------------------------- /birthday/workflow/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bundleid 6 | nikivi.birthday 7 | category 8 | Mine 9 | connections 10 | 11 | AB356A8B-95DA-4C03-9C4E-508015EF3A27 12 | 13 | 14 | destinationuid 15 | EA32160F-6A33-4317-9262-D5BD565E6F46 16 | modifiers 17 | 0 18 | modifiersubtext 19 | 20 | vitoclose 21 | 22 | 23 | 24 | EA32160F-6A33-4317-9262-D5BD565E6F46 25 | 26 | 27 | createdby 28 | Nikita Voloboev 29 | description 30 | See time passed since your birthday 31 | disabled 32 | 33 | name 34 | Time 35 | objects 36 | 37 | 38 | config 39 | 40 | triggerid 41 | show age 42 | 43 | type 44 | alfred.workflow.trigger.external 45 | uid 46 | AB356A8B-95DA-4C03-9C4E-508015EF3A27 47 | version 48 | 1 49 | 50 | 51 | config 52 | 53 | alfredfiltersresults 54 | 55 | alfredfiltersresultsmatchmode 56 | 0 57 | argumenttreatemptyqueryasnil 58 | 59 | argumenttrimmode 60 | 0 61 | argumenttype 62 | 1 63 | escaping 64 | 102 65 | keyword 66 | age 67 | queuedelaycustom 68 | 3 69 | queuedelayimmediatelyinitially 70 | 71 | queuedelaymode 72 | 0 73 | queuemode 74 | 1 75 | runningsubtext 76 | Loading... 77 | script 78 | ./birthday "$1" 79 | scriptargtype 80 | 1 81 | scriptfile 82 | 83 | subtext 84 | Time passed since your birthday 85 | title 86 | Age 87 | type 88 | 0 89 | withspace 90 | 91 | 92 | type 93 | alfred.workflow.input.scriptfilter 94 | uid 95 | EA32160F-6A33-4317-9262-D5BD565E6F46 96 | version 97 | 3 98 | 99 | 100 | config 101 | 102 | concurrently 103 | 104 | escaping 105 | 0 106 | script 107 | # THESE VARIABLES MUST BE SET. SEE THE ONEUPDATER README FOR AN EXPLANATION OF EACH. 108 | readonly remote_info_plist="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/birthday/workflow/info.plist" 109 | readonly workflow_url="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/birthday/Birthday.alfredworkflow" 110 | readonly download_type='direct' 111 | readonly frequency_check='7' 112 | 113 | # FROM HERE ON, CODE SHOULD BE LEFT UNTOUCHED! 114 | function abort { 115 | echo "${1}" >&2 116 | exit 1 117 | } 118 | 119 | function url_exists { 120 | curl --silent --location --output /dev/null --fail --range 0-0 "${1}" 121 | } 122 | 123 | function notification { 124 | readonly local notificator="$(find . -type d -name 'Notificator.app')" 125 | if [[ -n "${notificator}" ]]; then 126 | "${notificator}/Contents/Resources/Scripts/notificator" --message "${1}" --title "${alfred_workflow_name}" --subtitle 'A new version is available' 127 | return 128 | fi 129 | 130 | readonly local terminal_notifier="$(find . -type f -name 'terminal-notifier')" 131 | if [[ -n "${terminal_notifier}" ]]; then 132 | "${terminal_notifier}" -title "${alfred_workflow_name}" -subtitle 'A new version is available' -message "${1}" 133 | return 134 | fi 135 | 136 | osascript -e "display notification \"${1}\" with title \"${alfred_workflow_name}\" subtitle \"A new version is available\"" 137 | } 138 | 139 | # Local sanity checks 140 | readonly local_info_plist='info.plist' 141 | readonly local_version="$(/usr/libexec/PlistBuddy -c 'print version' "${local_info_plist}")" 142 | 143 | [[ -n "${local_version}" ]] || abort 'You need to set a workflow version in the configuration sheet.' 144 | [[ "${download_type}" =~ ^(direct|page|github_release)$ ]] || abort "'download_type' (${download_type}) needs to be one of 'direct', 'page', or 'github_release'." 145 | [[ "${frequency_check}" =~ ^[0-9]+$ ]] || abort "'frequency_check' (${frequency_check}) needs to be a number." 146 | 147 | # Check for updates 148 | if [[ $(find "${local_info_plist}" -mtime +"${frequency_check}"d) ]]; then 149 | if ! url_exists "${remote_info_plist}"; then abort "'remote_info_plist' (${remote_info_plist}) appears to not be reachable."; fi # Remote sanity check 150 | 151 | readonly tmp_file="$(mktemp)" 152 | curl --silent --location --output "${tmp_file}" "${remote_info_plist}" 153 | readonly remote_version="$(/usr/libexec/PlistBuddy -c 'print version' "${tmp_file}")" 154 | 155 | if [[ "${local_version}" == "${remote_version}" ]]; then 156 | touch "${local_info_plist}" # Reset timer by touching local file 157 | exit 0 158 | fi 159 | 160 | if [[ "${download_type}" == 'page' ]]; then 161 | notification 'Opening download page…' 162 | open "${workflow_url}" 163 | exit 0 164 | fi 165 | 166 | download_url="$([[ "${download_type}" == 'github_release' ]] && curl --silent "https://api.github.com/repos/${workflow_url}/releases/latest" | grep 'browser_download_url' | head -1 | sed -E 's/.*browser_download_url": "(.*)"/\1/' || echo "${workflow_url}")" 167 | 168 | if url_exists "${download_url}"; then 169 | notification 'Downloading and installing…' 170 | curl --silent --location --output "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" "${download_url}" 171 | open "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" 172 | else 173 | abort "'workflow_url' (${download_url}) appears to not be reachable." 174 | fi 175 | fi 176 | scriptargtype 177 | 1 178 | scriptfile 179 | 180 | type 181 | 0 182 | 183 | type 184 | alfred.workflow.action.script 185 | uid 186 | 81156AF5-AC9D-44E9-ACA7-B55BB757E720 187 | version 188 | 2 189 | 190 | 191 | config 192 | 193 | alfredfiltersresults 194 | 195 | alfredfiltersresultsmatchmode 196 | 0 197 | argumenttreatemptyqueryasnil 198 | 199 | argumenttrimmode 200 | 0 201 | argumenttype 202 | 1 203 | escaping 204 | 102 205 | keyword 206 | until 207 | queuedelaycustom 208 | 3 209 | queuedelayimmediatelyinitially 210 | 211 | queuedelaymode 212 | 0 213 | queuemode 214 | 1 215 | runningsubtext 216 | Loading... 217 | script 218 | ./birthday "$1" 219 | scriptargtype 220 | 1 221 | scriptfile 222 | 223 | subtext 224 | Time until end of week/month/year 225 | title 226 | Until 227 | type 228 | 0 229 | withspace 230 | 231 | 232 | type 233 | alfred.workflow.input.scriptfilter 234 | uid 235 | FC05A1F2-7AE8-4CE5-AEBF-BA1AE30EA932 236 | version 237 | 3 238 | 239 | 240 | readme 241 | You have to enter Date of Birth as variable in the right panel. 242 | 243 | i.e. `12/04/1995` 244 | 245 | ---------------------------------------------------------------- 246 | 247 | Details on how to use this workflow are found in the GitHub repo attached to the workflow. 248 | 249 | Double click this workflow in sidebar -> Open website. 250 | 251 | Post any issues and feature requests you have there. 💜 252 | uidata 253 | 254 | 81156AF5-AC9D-44E9-ACA7-B55BB757E720 255 | 256 | colorindex 257 | 12 258 | note 259 | OneUpdater 260 | xpos 261 | 350 262 | ypos 263 | 30 264 | 265 | AB356A8B-95DA-4C03-9C4E-508015EF3A27 266 | 267 | xpos 268 | 10 269 | ypos 270 | 30 271 | 272 | EA32160F-6A33-4317-9262-D5BD565E6F46 273 | 274 | note 275 | Time passed since your birthday 276 | xpos 277 | 170 278 | ypos 279 | 30 280 | 281 | FC05A1F2-7AE8-4CE5-AEBF-BA1AE30EA932 282 | 283 | note 284 | Time until end of week/month/year 285 | xpos 286 | 175 287 | ypos 288 | 280 289 | 290 | 291 | variables 292 | 293 | Date of Birth (DD/MM/YYYY) 294 | 12/04/1995 295 | 296 | variablesdontexport 297 | 298 | Date of Birth (DD/MM/YYYY) 299 | 300 | version 301 | 1.7 302 | webaddress 303 | https://github.com/nikitavoloboev/small-workflows/blob/master/birthday 304 | 305 | 306 | -------------------------------------------------------------------------------- /clean-folders/Clean folders.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/clean-folders/Clean folders.alfredworkflow -------------------------------------------------------------------------------- /clean-folders/readme.md: -------------------------------------------------------------------------------- 1 | # Clean Folders - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/clean-folders/Clean%20folders.alfredworkflow?raw=true) 2 | 3 | > Trash items from Desktop and clean certain folders. 4 | 5 | ![](https://i.imgur.com/hKrJyfs.png) 6 | 7 | ## Contributing 8 | 9 | See [contribution guidelines](../contributing.md). 10 | -------------------------------------------------------------------------------- /clean-folders/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/clean-folders/workflow/icon.png -------------------------------------------------------------------------------- /clean-folders/workflow/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bundleid 6 | nikivi.clean.folders 7 | category 8 | Mine 9 | connections 10 | 11 | 155ED3E5-4396-4B1B-BE88-90F3D55FC861 12 | 13 | 14 | destinationuid 15 | 73CA7F02-2273-405C-9D47-726815AA4385 16 | modifiers 17 | 0 18 | modifiersubtext 19 | 20 | vitoclose 21 | 22 | 23 | 24 | 3D5EFEB3-5C3E-49F3-9AB0-B6BEA80EDEAE 25 | 26 | 27 | destinationuid 28 | D0F37795-89B0-4B61-9E16-CB75D7A0F6A4 29 | modifiers 30 | 0 31 | modifiersubtext 32 | 33 | vitoclose 34 | 35 | 36 | 37 | 42736838-B89C-45EB-8076-8BCB6F44C6CE 38 | 39 | 40 | destinationuid 41 | D0F37795-89B0-4B61-9E16-CB75D7A0F6A4 42 | modifiers 43 | 0 44 | modifiersubtext 45 | 46 | vitoclose 47 | 48 | 49 | 50 | 5057395B-BBF8-4DC5-B5A2-654FA359196D 51 | 52 | 53 | destinationuid 54 | 42736838-B89C-45EB-8076-8BCB6F44C6CE 55 | modifiers 56 | 0 57 | modifiersubtext 58 | 59 | vitoclose 60 | 61 | 62 | 63 | 73CA7F02-2273-405C-9D47-726815AA4385 64 | 65 | 66 | destinationuid 67 | 3D5EFEB3-5C3E-49F3-9AB0-B6BEA80EDEAE 68 | modifiers 69 | 0 70 | modifiersubtext 71 | 72 | vitoclose 73 | 74 | 75 | 76 | D0F37795-89B0-4B61-9E16-CB75D7A0F6A4 77 | 78 | D46423F8-CE62-4912-A854-DBCC0741CF03 79 | 80 | 81 | destinationuid 82 | 5057395B-BBF8-4DC5-B5A2-654FA359196D 83 | modifiers 84 | 0 85 | modifiersubtext 86 | 87 | vitoclose 88 | 89 | 90 | 91 | DD6E7B84-2E1C-4DD1-8D5D-6385A774266D 92 | 93 | 94 | destinationuid 95 | 5057395B-BBF8-4DC5-B5A2-654FA359196D 96 | modifiers 97 | 0 98 | modifiersubtext 99 | 100 | vitoclose 101 | 102 | 103 | 104 | 105 | createdby 106 | Nikita Voloboev 107 | description 108 | Trash items from Desktop and clean certain folders like removing .alfredworkflows from ~/Downloads 109 | disabled 110 | 111 | name 112 | Clean folders 113 | objects 114 | 115 | 116 | config 117 | 118 | argumenttrimmode 119 | 0 120 | argumenttype 121 | 1 122 | fixedorder 123 | 124 | items 125 | [{"title":"Downloads (Alfred workflows)","arg":"~\/Downloads\/*.alfredworkflow"},{"title":"Downloads (KM macros)","arg":"~\/Downloads\/*.kmmacros"}] 126 | keyword 127 | clean 128 | runningsubtext 129 | 130 | subtext 131 | Things inside () shows what will be trashed 132 | title 133 | Clean folders of things 134 | withspace 135 | 136 | 137 | type 138 | alfred.workflow.input.listfilter 139 | uid 140 | 73CA7F02-2273-405C-9D47-726815AA4385 141 | version 142 | 1 143 | 144 | 145 | config 146 | 147 | concurrently 148 | 149 | escaping 150 | 102 151 | script 152 | mv {query} ~/.Trash 153 | scriptargtype 154 | 0 155 | scriptfile 156 | 157 | type 158 | 0 159 | 160 | type 161 | alfred.workflow.action.script 162 | uid 163 | 3D5EFEB3-5C3E-49F3-9AB0-B6BEA80EDEAE 164 | version 165 | 2 166 | 167 | 168 | config 169 | 170 | triggerid 171 | clean folders 172 | 173 | type 174 | alfred.workflow.trigger.external 175 | uid 176 | 155ED3E5-4396-4B1B-BE88-90F3D55FC861 177 | version 178 | 1 179 | 180 | 181 | config 182 | 183 | concurrently 184 | 185 | escaping 186 | 0 187 | script 188 | # THESE VARIABLES MUST BE SET. SEE THE ONEUPDATER README FOR AN EXPLANATION OF EACH. 189 | readonly remote_info_plist="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/clean-folders/workflow/info.plist" 190 | readonly workflow_url="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/clean-folders/Clean%20folders.alfredworkflow" 191 | readonly download_type='direct' 192 | readonly frequency_check='7' 193 | 194 | # FROM HERE ON, CODE SHOULD BE LEFT UNTOUCHED! 195 | function abort { 196 | echo "${1}" >&2 197 | exit 1 198 | } 199 | 200 | function url_exists { 201 | curl --silent --location --output /dev/null --fail --range 0-0 "${1}" 202 | } 203 | 204 | function notification { 205 | readonly local notificator="$(find . -type d -name 'Notificator.app')" 206 | if [[ -n "${notificator}" ]]; then 207 | "${notificator}/Contents/Resources/Scripts/notificator" --message "${1}" --title "${alfred_workflow_name}" --subtitle 'A new version is available' 208 | return 209 | fi 210 | 211 | readonly local terminal_notifier="$(find . -type f -name 'terminal-notifier')" 212 | if [[ -n "${terminal_notifier}" ]]; then 213 | "${terminal_notifier}" -title "${alfred_workflow_name}" -subtitle 'A new version is available' -message "${1}" 214 | return 215 | fi 216 | 217 | osascript -e "display notification \"${1}\" with title \"${alfred_workflow_name}\" subtitle \"A new version is available\"" 218 | } 219 | 220 | # Local sanity checks 221 | readonly local_info_plist='info.plist' 222 | readonly local_version="$(/usr/libexec/PlistBuddy -c 'print version' "${local_info_plist}")" 223 | 224 | [[ -n "${local_version}" ]] || abort 'You need to set a workflow version in the configuration sheet.' 225 | [[ "${download_type}" =~ ^(direct|page|github_release)$ ]] || abort "'download_type' (${download_type}) needs to be one of 'direct', 'page', or 'github_release'." 226 | [[ "${frequency_check}" =~ ^[0-9]+$ ]] || abort "'frequency_check' (${frequency_check}) needs to be a number." 227 | 228 | # Check for updates 229 | if [[ $(find "${local_info_plist}" -mtime +"${frequency_check}"d) ]]; then 230 | if ! url_exists "${remote_info_plist}"; then abort "'remote_info_plist' (${remote_info_plist}) appears to not be reachable."; fi # Remote sanity check 231 | 232 | readonly tmp_file="$(mktemp)" 233 | curl --silent --location --output "${tmp_file}" "${remote_info_plist}" 234 | readonly remote_version="$(/usr/libexec/PlistBuddy -c 'print version' "${tmp_file}")" 235 | 236 | if [[ "${local_version}" == "${remote_version}" ]]; then 237 | touch "${local_info_plist}" # Reset timer by touching local file 238 | exit 0 239 | fi 240 | 241 | if [[ "${download_type}" == 'page' ]]; then 242 | notification 'Opening download page…' 243 | open "${workflow_url}" 244 | exit 0 245 | fi 246 | 247 | download_url="$([[ "${download_type}" == 'github_release' ]] && curl --silent "https://api.github.com/repos/${workflow_url}/releases/latest" | grep 'browser_download_url' | head -1 | sed -E 's/.*browser_download_url": "(.*)"/\1/' || echo "${workflow_url}")" 248 | 249 | if url_exists "${download_url}"; then 250 | notification 'Downloading and installing…' 251 | curl --silent --location --output "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" "${download_url}" 252 | open "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" 253 | else 254 | abort "'workflow_url' (${download_url}) appears to not be reachable." 255 | fi 256 | fi 257 | scriptargtype 258 | 1 259 | scriptfile 260 | 261 | type 262 | 0 263 | 264 | type 265 | alfred.workflow.action.script 266 | uid 267 | A498E0E7-C6B7-4E93-9898-83DFED65F521 268 | version 269 | 2 270 | 271 | 272 | type 273 | alfred.workflow.utility.junction 274 | uid 275 | D0F37795-89B0-4B61-9E16-CB75D7A0F6A4 276 | version 277 | 1 278 | 279 | 280 | config 281 | 282 | triggerid 283 | trash desktop 284 | 285 | type 286 | alfred.workflow.trigger.external 287 | uid 288 | D46423F8-CE62-4912-A854-DBCC0741CF03 289 | version 290 | 1 291 | 292 | 293 | config 294 | 295 | concurrently 296 | 297 | escaping 298 | 102 299 | script 300 | mv ~/Desktop/* ~/.Trash 301 | scriptargtype 302 | 1 303 | scriptfile 304 | 305 | type 306 | 5 307 | 308 | type 309 | alfred.workflow.action.script 310 | uid 311 | 5057395B-BBF8-4DC5-B5A2-654FA359196D 312 | version 313 | 2 314 | 315 | 316 | config 317 | 318 | lastpathcomponent 319 | 320 | onlyshowifquerypopulated 321 | 322 | removeextension 323 | 324 | text 325 | 326 | title 327 | Emptied ~/Desktop 328 | 329 | type 330 | alfred.workflow.output.notification 331 | uid 332 | 42736838-B89C-45EB-8076-8BCB6F44C6CE 333 | version 334 | 1 335 | 336 | 337 | config 338 | 339 | argumenttype 340 | 2 341 | keyword 342 | trashdesk 343 | subtext 344 | 345 | text 346 | Trash everything inside ~/Desktop 347 | withspace 348 | 349 | 350 | type 351 | alfred.workflow.input.keyword 352 | uid 353 | DD6E7B84-2E1C-4DD1-8D5D-6385A774266D 354 | version 355 | 1 356 | 357 | 358 | readme 359 | Details on how to use this workflow are found in the GitHub repo attached to the workflow. 360 | 361 | Double click this workflow in sidebar -> Open website. 362 | 363 | Post any issues and feature requests you have there. 💜 364 | uidata 365 | 366 | 155ED3E5-4396-4B1B-BE88-90F3D55FC861 367 | 368 | xpos 369 | 10 370 | ypos 371 | 60 372 | 373 | 3D5EFEB3-5C3E-49F3-9AB0-B6BEA80EDEAE 374 | 375 | xpos 376 | 350 377 | ypos 378 | 60 379 | 380 | 42736838-B89C-45EB-8076-8BCB6F44C6CE 381 | 382 | xpos 383 | 370 384 | ypos 385 | 350 386 | 387 | 5057395B-BBF8-4DC5-B5A2-654FA359196D 388 | 389 | note 390 | Trash Desktop 391 | xpos 392 | 200 393 | ypos 394 | 350 395 | 396 | 73CA7F02-2273-405C-9D47-726815AA4385 397 | 398 | note 399 | Clean folders 400 | xpos 401 | 190 402 | ypos 403 | 60 404 | 405 | A498E0E7-C6B7-4E93-9898-83DFED65F521 406 | 407 | colorindex 408 | 12 409 | note 410 | OneUpdater 411 | xpos 412 | 660 413 | ypos 414 | 190 415 | 416 | D0F37795-89B0-4B61-9E16-CB75D7A0F6A4 417 | 418 | xpos 419 | 550 420 | ypos 421 | 220 422 | 423 | D46423F8-CE62-4912-A854-DBCC0741CF03 424 | 425 | xpos 426 | 10 427 | ypos 428 | 300 429 | 430 | DD6E7B84-2E1C-4DD1-8D5D-6385A774266D 431 | 432 | xpos 433 | 10 434 | ypos 435 | 420 436 | 437 | 438 | version 439 | 2.4 440 | webaddress 441 | https://github.com/nikitavoloboev/small-workflows/blob/master/clean-folders 442 | 443 | 444 | -------------------------------------------------------------------------------- /dropbox-upload/Dropbox Upload.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/dropbox-upload/Dropbox Upload.alfredworkflow -------------------------------------------------------------------------------- /dropbox-upload/README.md: -------------------------------------------------------------------------------- 1 | # Dropbox Upload - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/birthday/Dropbox%20upload.alfredworkflow?raw=true) 2 | 3 | > Upload and share files with Dropbox 4 | 5 | To use this workflow, you need to first install [Dropbox Uploader script](https://github.com/andreafabrizi/Dropbox-Uploader/blob/master/dropbox_uploader.sh). 6 | 7 | I put this script inside `~/Dropbox` named `upload.sh`. 8 | 9 | I then designated another folder `~/Dropbox/Shares` as a place where I put all the files I want to share with Dropbox. This workflow **assumes this structure** and **won't work** if you don't have the [above script](https://github.com/andreafabrizi/Dropbox-Uploader/blob/master/dropbox_uploader.sh) inside `Scripts` dir with name `upload.sh` and if you don't have the `Shares` folder too. Of course you can change all of this and find a structure that works for you if you wish. I just share what I am using myself. 10 | 11 | Inside the workflow there are 2 things. First, there is a file action that will take the given file, then put it inside `~/Dropbox/Shares`, then share the file and give you a downloadable link of the file in clipboard. 12 | 13 | The second is a script filter that will filter through the contents of `~/Dropbox/Shares` and on enter will give you a downloadable link to the file. You can also delete the file from the directory and Dropbox with a modifier key press. 14 | 15 | ## Contributing 16 | 17 | See [contribution guidelines](../contributing.md). 18 | -------------------------------------------------------------------------------- /dropbox-upload/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/dropbox-upload/workflow/icon.png -------------------------------------------------------------------------------- /file-actions/File actions.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/File actions.alfredworkflow -------------------------------------------------------------------------------- /file-actions/readme.md: -------------------------------------------------------------------------------- 1 | # File Actions - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/file-actions/File%20actions.alfredworkflow?raw=true) 2 | 3 | > Various file actions I made to operate on files and folders. 4 | 5 | ![](https://i.imgur.com/yhazzRh.png) 6 | 7 | Many actions I copied from [Alfred Browser Toolbox](http://customct.com/alfred-2-workflows) as that workflow whilst awesome had too many things I did not need. 8 | 9 | ## Contributing 10 | 11 | See [contribution guidelines](../contributing.md). 12 | -------------------------------------------------------------------------------- /file-actions/workflow/05C183C4-C1D8-4B1C-975A-A499D399AAED.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/05C183C4-C1D8-4B1C-975A-A499D399AAED.png -------------------------------------------------------------------------------- /file-actions/workflow/0941FA29-8416-4289-A6B8-4165625D4A55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/0941FA29-8416-4289-A6B8-4165625D4A55.png -------------------------------------------------------------------------------- /file-actions/workflow/210C0038-86C7-4781-9F6E-5A81F859E877.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/210C0038-86C7-4781-9F6E-5A81F859E877.png -------------------------------------------------------------------------------- /file-actions/workflow/2BD3A8BE-D9BA-4B12-948C-E2632F3D67ED.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/2BD3A8BE-D9BA-4B12-948C-E2632F3D67ED.png -------------------------------------------------------------------------------- /file-actions/workflow/3A020D59-FE40-4328-A767-B5725A876915.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/3A020D59-FE40-4328-A767-B5725A876915.png -------------------------------------------------------------------------------- /file-actions/workflow/474B26D3-4450-49AC-A7C4-C9D71DDD76E1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/474B26D3-4450-49AC-A7C4-C9D71DDD76E1.png -------------------------------------------------------------------------------- /file-actions/workflow/57AB6F96-9189-4E21-8E77-3D27FA388664.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/57AB6F96-9189-4E21-8E77-3D27FA388664.png -------------------------------------------------------------------------------- /file-actions/workflow/5D838964-73AF-474B-BD3D-F69814EDB761.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/5D838964-73AF-474B-BD3D-F69814EDB761.png -------------------------------------------------------------------------------- /file-actions/workflow/80A02279-4EB1-4B30-BA7F-D41C31EE28BD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/80A02279-4EB1-4B30-BA7F-D41C31EE28BD.png -------------------------------------------------------------------------------- /file-actions/workflow/8429A703-7734-4224-9EA0-81AE424B57FC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/8429A703-7734-4224-9EA0-81AE424B57FC.png -------------------------------------------------------------------------------- /file-actions/workflow/892D04AB-DEDD-4956-ABB6-32A828F4900B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/892D04AB-DEDD-4956-ABB6-32A828F4900B.png -------------------------------------------------------------------------------- /file-actions/workflow/95CE1AA4-AFB9-486F-BA43-359EE4BCFE98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/95CE1AA4-AFB9-486F-BA43-359EE4BCFE98.png -------------------------------------------------------------------------------- /file-actions/workflow/973E95B3-0ADF-442D-8CBE-EB91FA2ED3A7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/973E95B3-0ADF-442D-8CBE-EB91FA2ED3A7.png -------------------------------------------------------------------------------- /file-actions/workflow/A409F4C0-E91C-475F-B62C-754FCBCE18A8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/A409F4C0-E91C-475F-B62C-754FCBCE18A8.png -------------------------------------------------------------------------------- /file-actions/workflow/B27EECE8-761E-4804-9306-2D597B6FD49C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/B27EECE8-761E-4804-9306-2D597B6FD49C.png -------------------------------------------------------------------------------- /file-actions/workflow/B4CED3D9-C478-45AE-BB69-339ECF6468A9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/B4CED3D9-C478-45AE-BB69-339ECF6468A9.png -------------------------------------------------------------------------------- /file-actions/workflow/C8CF626A-8D5A-4D55-8AB8-E0B87BD656A3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/C8CF626A-8D5A-4D55-8AB8-E0B87BD656A3.png -------------------------------------------------------------------------------- /file-actions/workflow/CA7377D2-2480-45DD-A0E4-1AAB5F4A910A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/CA7377D2-2480-45DD-A0E4-1AAB5F4A910A.png -------------------------------------------------------------------------------- /file-actions/workflow/CEEED62C-6361-4AE4-A89B-80D0EC11AA6A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/CEEED62C-6361-4AE4-A89B-80D0EC11AA6A.png -------------------------------------------------------------------------------- /file-actions/workflow/E074972D-2A62-407B-9472-B5C9CECEAE05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/E074972D-2A62-407B-9472-B5C9CECEAE05.png -------------------------------------------------------------------------------- /file-actions/workflow/E8D01873-DECE-4575-B35F-2048329D0B42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/E8D01873-DECE-4575-B35F-2048329D0B42.png -------------------------------------------------------------------------------- /file-actions/workflow/EC932FFD-E3FD-462E-BB1C-8848A0D80471.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/EC932FFD-E3FD-462E-BB1C-8848A0D80471.png -------------------------------------------------------------------------------- /file-actions/workflow/FFBA68A2-E374-4725-9573-7B9A290E14D1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/FFBA68A2-E374-4725-9573-7B9A290E14D1.png -------------------------------------------------------------------------------- /file-actions/workflow/getFilePath.scpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/getFilePath.scpt -------------------------------------------------------------------------------- /file-actions/workflow/getFilePathjs.scpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/getFilePathjs.scpt -------------------------------------------------------------------------------- /file-actions/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/file-actions/workflow/icon.png -------------------------------------------------------------------------------- /focus/Focus.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/focus/Focus.alfredworkflow -------------------------------------------------------------------------------- /focus/README.md: -------------------------------------------------------------------------------- 1 | # Focus - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/focus/Focus.alfredworkflow?raw=true) 2 | 3 | > Start [Focus](https://heyfocus.com) blocking for some time that you specify. 4 | 5 | ![](https://i.imgur.com/cHRL6FV.png) 6 | 7 | ## Contributing 8 | 9 | See [contribution guidelines](../contributing.md). 10 | -------------------------------------------------------------------------------- /focus/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/focus/workflow/icon.png -------------------------------------------------------------------------------- /focus/workflow/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bundleid 6 | nikivi.block.websites 7 | category 8 | Mine 9 | connections 10 | 11 | 44369872-5E47-44C9-8556-8AA941F51BC6 12 | 13 | 14 | destinationuid 15 | 593A7218-EA63-4807-92B5-62977944BB5C 16 | modifiers 17 | 0 18 | modifiersubtext 19 | 20 | vitoclose 21 | 22 | 23 | 24 | 593A7218-EA63-4807-92B5-62977944BB5C 25 | 26 | DA16BA53-317D-4790-986C-9FDA6903A436 27 | 28 | 29 | destinationuid 30 | 4BC60BC5-7DB4-4603-941E-1AF131D5C534 31 | modifiers 32 | 0 33 | modifiersubtext 34 | 35 | vitoclose 36 | 37 | 38 | 39 | DC4D64CD-8E80-440E-93E6-39ECDF9B9A67 40 | 41 | 42 | destinationuid 43 | 44369872-5E47-44C9-8556-8AA941F51BC6 44 | modifiers 45 | 0 46 | modifiersubtext 47 | 48 | vitoclose 49 | 50 | 51 | 52 | E98490E1-AD11-4855-86EC-56DA98B100EF 53 | 54 | 55 | destinationuid 56 | 3A9730A7-3CF3-437E-8CC8-CD994A15B2F9 57 | modifiers 58 | 0 59 | modifiersubtext 60 | 61 | vitoclose 62 | 63 | 64 | 65 | 66 | createdby 67 | Nikita Voloboev 68 | description 69 | Start Focus blocking for some time that you specify. 70 | disabled 71 | 72 | name 73 | Focus 74 | objects 75 | 76 | 77 | config 78 | 79 | triggerid 80 | focus 81 | 82 | type 83 | alfred.workflow.trigger.external 84 | uid 85 | DC4D64CD-8E80-440E-93E6-39ECDF9B9A67 86 | version 87 | 1 88 | 89 | 90 | config 91 | 92 | concurrently 93 | 94 | escaping 95 | 0 96 | script 97 | # THESE VARIABLES MUST BE SET. SEE THE ONEUPDATER README FOR AN EXPLANATION OF EACH. 98 | readonly remote_info_plist="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/focus/workflow/info.plist" 99 | readonly workflow_url="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/focus/Focus.alfredworkflow" 100 | readonly download_type='direct' 101 | readonly frequency_check='7' 102 | 103 | # FROM HERE ON, CODE SHOULD BE LEFT UNTOUCHED! 104 | function abort { 105 | echo "${1}" >&2 106 | exit 1 107 | } 108 | 109 | function url_exists { 110 | curl --silent --location --output /dev/null --fail --range 0-0 "${1}" 111 | } 112 | 113 | function notification { 114 | readonly local notificator="$(find . -type d -name 'Notificator.app')" 115 | if [[ -n "${notificator}" ]]; then 116 | "${notificator}/Contents/Resources/Scripts/notificator" --message "${1}" --title "${alfred_workflow_name}" --subtitle 'A new version is available' 117 | return 118 | fi 119 | 120 | readonly local terminal_notifier="$(find . -type f -name 'terminal-notifier')" 121 | if [[ -n "${terminal_notifier}" ]]; then 122 | "${terminal_notifier}" -title "${alfred_workflow_name}" -subtitle 'A new version is available' -message "${1}" 123 | return 124 | fi 125 | 126 | osascript -e "display notification \"${1}\" with title \"${alfred_workflow_name}\" subtitle \"A new version is available\"" 127 | } 128 | 129 | # Local sanity checks 130 | readonly local_info_plist='info.plist' 131 | readonly local_version="$(/usr/libexec/PlistBuddy -c 'print version' "${local_info_plist}")" 132 | 133 | [[ -n "${local_version}" ]] || abort 'You need to set a workflow version in the configuration sheet.' 134 | [[ "${download_type}" =~ ^(direct|page|github_release)$ ]] || abort "'download_type' (${download_type}) needs to be one of 'direct', 'page', or 'github_release'." 135 | [[ "${frequency_check}" =~ ^[0-9]+$ ]] || abort "'frequency_check' (${frequency_check}) needs to be a number." 136 | 137 | # Check for updates 138 | if [[ $(find "${local_info_plist}" -mtime +"${frequency_check}"d) ]]; then 139 | if ! url_exists "${remote_info_plist}"; then abort "'remote_info_plist' (${remote_info_plist}) appears to not be reachable."; fi # Remote sanity check 140 | 141 | readonly tmp_file="$(mktemp)" 142 | curl --silent --location --output "${tmp_file}" "${remote_info_plist}" 143 | readonly remote_version="$(/usr/libexec/PlistBuddy -c 'print version' "${tmp_file}")" 144 | 145 | if [[ "${local_version}" == "${remote_version}" ]]; then 146 | touch "${local_info_plist}" # Reset timer by touching local file 147 | exit 0 148 | fi 149 | 150 | if [[ "${download_type}" == 'page' ]]; then 151 | notification 'Opening download page…' 152 | open "${workflow_url}" 153 | exit 0 154 | fi 155 | 156 | download_url="$([[ "${download_type}" == 'github_release' ]] && curl --silent "https://api.github.com/repos/${workflow_url}/releases/latest" | grep 'browser_download_url' | head -1 | sed -E 's/.*browser_download_url": "(.*)"/\1/' || echo "${workflow_url}")" 157 | 158 | if url_exists "${download_url}"; then 159 | notification 'Downloading and installing…' 160 | curl --silent --location --output "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" "${download_url}" 161 | open "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" 162 | else 163 | abort "'workflow_url' (${download_url}) appears to not be reachable." 164 | fi 165 | fi 166 | scriptargtype 167 | 1 168 | scriptfile 169 | 170 | type 171 | 0 172 | 173 | type 174 | alfred.workflow.action.script 175 | uid 176 | DFF78986-22C5-4BA5-B239-F70B8DD1B486 177 | version 178 | 2 179 | 180 | 181 | config 182 | 183 | argumenttype 184 | 0 185 | keyword 186 | focus 187 | subtext 188 | 189 | text 190 | Focus for {query} minutes 191 | withspace 192 | 193 | 194 | type 195 | alfred.workflow.input.keyword 196 | uid 197 | 44369872-5E47-44C9-8556-8AA941F51BC6 198 | version 199 | 1 200 | 201 | 202 | config 203 | 204 | concurrently 205 | 206 | escaping 207 | 102 208 | script 209 | open focus://focus?minutes=$1 210 | scriptargtype 211 | 1 212 | scriptfile 213 | 214 | type 215 | 0 216 | 217 | type 218 | alfred.workflow.action.script 219 | uid 220 | 593A7218-EA63-4807-92B5-62977944BB5C 221 | version 222 | 2 223 | 224 | 225 | config 226 | 227 | concurrently 228 | 229 | escaping 230 | 102 231 | script 232 | open focus://preferences 233 | scriptargtype 234 | 1 235 | scriptfile 236 | 237 | type 238 | 0 239 | 240 | type 241 | alfred.workflow.action.script 242 | uid 243 | 3A9730A7-3CF3-437E-8CC8-CD994A15B2F9 244 | version 245 | 2 246 | 247 | 248 | config 249 | 250 | argumenttype 251 | 2 252 | keyword 253 | focus preferences 254 | subtext 255 | 256 | text 257 | Open focus preferences 258 | withspace 259 | 260 | 261 | type 262 | alfred.workflow.input.keyword 263 | uid 264 | E98490E1-AD11-4855-86EC-56DA98B100EF 265 | version 266 | 1 267 | 268 | 269 | config 270 | 271 | argumenttype 272 | 2 273 | keyword 274 | unfocus 275 | subtext 276 | 277 | text 278 | Stop focusing 279 | withspace 280 | 281 | 282 | type 283 | alfred.workflow.input.keyword 284 | uid 285 | DA16BA53-317D-4790-986C-9FDA6903A436 286 | version 287 | 1 288 | 289 | 290 | config 291 | 292 | concurrently 293 | 294 | escaping 295 | 102 296 | script 297 | open focus://unfocus 298 | scriptargtype 299 | 1 300 | scriptfile 301 | 302 | type 303 | 0 304 | 305 | type 306 | alfred.workflow.action.script 307 | uid 308 | 4BC60BC5-7DB4-4603-941E-1AF131D5C534 309 | version 310 | 2 311 | 312 | 313 | readme 314 | Details on how to use this workflow are found in the GitHub repo attached to the workflow. 315 | 316 | Double click this workflow in sidebar -> Open website. 317 | 318 | Post any issues and feature requests you have there. 💜 319 | uidata 320 | 321 | 3A9730A7-3CF3-437E-8CC8-CD994A15B2F9 322 | 323 | xpos 324 | 210 325 | ypos 326 | 190 327 | 328 | 44369872-5E47-44C9-8556-8AA941F51BC6 329 | 330 | note 331 | Enter block mode for the time of minutes specified 332 | xpos 333 | 220 334 | ypos 335 | 10 336 | 337 | 4BC60BC5-7DB4-4603-941E-1AF131D5C534 338 | 339 | xpos 340 | 210 341 | ypos 342 | 335 343 | 344 | 593A7218-EA63-4807-92B5-62977944BB5C 345 | 346 | xpos 347 | 380 348 | ypos 349 | 10 350 | 351 | DA16BA53-317D-4790-986C-9FDA6903A436 352 | 353 | xpos 354 | 40 355 | ypos 356 | 335 357 | 358 | DC4D64CD-8E80-440E-93E6-39ECDF9B9A67 359 | 360 | xpos 361 | 30 362 | ypos 363 | 10 364 | 365 | DFF78986-22C5-4BA5-B239-F70B8DD1B486 366 | 367 | colorindex 368 | 12 369 | note 370 | OneUpdater 371 | xpos 372 | 560 373 | ypos 374 | 10 375 | 376 | E98490E1-AD11-4855-86EC-56DA98B100EF 377 | 378 | xpos 379 | 40 380 | ypos 381 | 190 382 | 383 | 384 | version 385 | 1.4 386 | webaddress 387 | https://github.com/nikitavoloboev/small-workflows/blob/master/focus 388 | 389 | 390 | -------------------------------------------------------------------------------- /folder-search/Folder search.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/folder-search/Folder search.alfredworkflow -------------------------------------------------------------------------------- /folder-search/readme.md: -------------------------------------------------------------------------------- 1 | # Folder Search - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/folder-search/Folder%20search.alfredworkflow?raw=true) 2 | 3 | > Search folders from Alfred and open them in Finder/iTerm/Editor. 4 | 5 | You can do many things with modifiers to the folders. By default it will cd to the folder path inside your currently active iTerm tab which saves me a lot of time and makes navigating the file system a dream. 6 | 7 | You can also open the folders in the editors of your choice, for me those editors are Sublime Text and VS Code. 8 | 9 | One of the modifier actions there (⌥ + ⏎) will open the README file inside the editor with an editor you specified (Sublime Text by default). I use this action a lot. 10 | 11 | ![](https://i.imgur.com/ybBvpfD.png) 12 | 13 | ## Contributing 14 | 15 | See [contribution guidelines](../contributing.md). 16 | -------------------------------------------------------------------------------- /folder-search/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/folder-search/workflow/icon.png -------------------------------------------------------------------------------- /folder-search/workflow/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bundleid 6 | nikivi.search.folders 7 | category 8 | Mine 9 | connections 10 | 11 | 03377977-4206-4DE4-B59C-45AAD4A0980A 12 | 13 | BEDF7EC9-9327-4967-876A-A6F5F4303055 14 | 15 | 16 | destinationuid 17 | CAD232B5-6B26-4DB8-B878-BD157C8296F0 18 | modifiers 19 | 0 20 | modifiersubtext 21 | 22 | vitoclose 23 | 24 | 25 | 26 | C34E01D2-E55A-4908-8A98-3DE22A77AA48 27 | 28 | 29 | destinationuid 30 | BEDF7EC9-9327-4967-876A-A6F5F4303055 31 | modifiers 32 | 0 33 | modifiersubtext 34 | 35 | vitoclose 36 | 37 | 38 | 39 | CAD232B5-6B26-4DB8-B878-BD157C8296F0 40 | 41 | 42 | destinationuid 43 | 6A4E18A0-FDC8-4BA3-93B0-32B605CC24A9 44 | modifiers 45 | 0 46 | modifiersubtext 47 | 48 | vitoclose 49 | 50 | 51 | 52 | destinationuid 53 | F22A1096-062D-4C05-A1C1-CF8D63389B78 54 | modifiers 55 | 0 56 | modifiersubtext 57 | 58 | vitoclose 59 | 60 | 61 | 62 | destinationuid 63 | E5B51884-A97D-4E15-9321-11A17837DA38 64 | modifiers 65 | 131072 66 | modifiersubtext 67 | cd to folder in new iTerm tab 68 | vitoclose 69 | 70 | 71 | 72 | destinationuid 73 | D066FC2C-E05A-468E-816D-5496289AE4AD 74 | modifiers 75 | 8388608 76 | modifiersubtext 77 | Open in Sublime Text 78 | vitoclose 79 | 80 | 81 | 82 | destinationuid 83 | 03377977-4206-4DE4-B59C-45AAD4A0980A 84 | modifiers 85 | 524288 86 | modifiersubtext 87 | Edit README inside Folder 88 | vitoclose 89 | 90 | 91 | 92 | destinationuid 93 | 71F8D037-965A-4B39-AEF4-480468260C15 94 | modifiers 95 | 262144 96 | modifiersubtext 97 | Trash folder 98 | vitoclose 99 | 100 | 101 | 102 | destinationuid 103 | 27618EAD-E675-43BC-841E-6986EAE4597D 104 | modifiers 105 | 1048576 106 | modifiersubtext 107 | Open in VS Code 108 | vitoclose 109 | 110 | 111 | 112 | F22A1096-062D-4C05-A1C1-CF8D63389B78 113 | 114 | 115 | createdby 116 | Nikita Voloboev 117 | description 118 | Search folders from Alfred and open them in Finder/iTerm/Editor 119 | disabled 120 | 121 | name 122 | Folder search 123 | objects 124 | 125 | 126 | config 127 | 128 | paths 129 | 130 | /Applications/iTerm.app 131 | 132 | toggle 133 | 134 | 135 | type 136 | alfred.workflow.action.launchfiles 137 | uid 138 | 6A4E18A0-FDC8-4BA3-93B0-32B605CC24A9 139 | version 140 | 1 141 | 142 | 143 | config 144 | 145 | concurrently 146 | 147 | escaping 148 | 102 149 | script 150 | tell application "iTerm" if exists window 1 then tell current window tell current session to write text "cd \"{query}\"" end tell else create window with default profile tell current window tell current session to write text "cd \"{query}\"" end tell end if end tell 151 | tell application "System Events" if frontmost of process "iTerm2" is false then key code 13 using {option down, control down, shift down, command down} end tell 152 | scriptargtype 153 | 0 154 | scriptfile 155 | 156 | type 157 | 6 158 | 159 | type 160 | alfred.workflow.action.script 161 | uid 162 | F22A1096-062D-4C05-A1C1-CF8D63389B78 163 | version 164 | 2 165 | 166 | 167 | config 168 | 169 | concurrently 170 | 171 | escaping 172 | 0 173 | script 174 | # THESE VARIABLES MUST BE SET. SEE THE ONEUPDATER README FOR AN EXPLANATION OF EACH. 175 | readonly remote_info_plist="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/folder-search/workflow/info.plist" 176 | readonly workflow_url="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/folder-search/Folder%20search.alfredworkflow" 177 | readonly download_type='direct' 178 | readonly frequency_check='10' 179 | 180 | # FROM HERE ON, CODE SHOULD BE LEFT UNTOUCHED! 181 | function abort { 182 | echo "${1}" >&2 183 | exit 1 184 | } 185 | 186 | function url_exists { 187 | curl --silent --location --output /dev/null --fail --range 0-0 "${1}" 188 | } 189 | 190 | function notification { 191 | readonly local notificator="$(find . -type d -name 'Notificator.app')" 192 | if [[ -n "${notificator}" ]]; then 193 | "${notificator}/Contents/Resources/Scripts/notificator" --message "${1}" --title "${alfred_workflow_name}" --subtitle 'A new version is available' 194 | return 195 | fi 196 | 197 | readonly local terminal_notifier="$(find . -type f -name 'terminal-notifier')" 198 | if [[ -n "${terminal_notifier}" ]]; then 199 | "${terminal_notifier}" -title "${alfred_workflow_name}" -subtitle 'A new version is available' -message "${1}" 200 | return 201 | fi 202 | 203 | osascript -e "display notification \"${1}\" with title \"${alfred_workflow_name}\" subtitle \"A new version is available\"" 204 | } 205 | 206 | # Local sanity checks 207 | readonly local_info_plist='info.plist' 208 | readonly local_version="$(/usr/libexec/PlistBuddy -c 'print version' "${local_info_plist}")" 209 | 210 | [[ -n "${local_version}" ]] || abort 'You need to set a workflow version in the configuration sheet.' 211 | [[ "${download_type}" =~ ^(direct|page|github_release)$ ]] || abort "'download_type' (${download_type}) needs to be one of 'direct', 'page', or 'github_release'." 212 | [[ "${frequency_check}" =~ ^[0-9]+$ ]] || abort "'frequency_check' (${frequency_check}) needs to be a number." 213 | 214 | # Check for updates 215 | if [[ $(find "${local_info_plist}" -mtime +"${frequency_check}"d) ]]; then 216 | if ! url_exists "${remote_info_plist}"; then abort "'remote_info_plist' (${remote_info_plist}) appears to not be reachable."; fi # Remote sanity check 217 | 218 | readonly tmp_file="$(mktemp)" 219 | curl --silent --location --output "${tmp_file}" "${remote_info_plist}" 220 | readonly remote_version="$(/usr/libexec/PlistBuddy -c 'print version' "${tmp_file}")" 221 | 222 | if [[ "${local_version}" == "${remote_version}" ]]; then 223 | touch "${local_info_plist}" # Reset timer by touching local file 224 | exit 0 225 | fi 226 | 227 | if [[ "${download_type}" == 'page' ]]; then 228 | notification 'Opening download page…' 229 | open "${workflow_url}" 230 | exit 0 231 | fi 232 | 233 | download_url="$([[ "${download_type}" == 'github_release' ]] && curl --silent "https://api.github.com/repos/${workflow_url}/releases/latest" | grep 'browser_download_url' | head -1 | sed -E 's/.*browser_download_url": "(.*)"/\1/' || echo "${workflow_url}")" 234 | 235 | if url_exists "${download_url}"; then 236 | notification 'Downloading and installing…' 237 | curl --silent --location --output "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" "${download_url}" 238 | open "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" 239 | else 240 | abort "'workflow_url' (${download_url}) appears to not be reachable." 241 | fi 242 | fi 243 | scriptargtype 244 | 1 245 | scriptfile 246 | 247 | type 248 | 0 249 | 250 | type 251 | alfred.workflow.action.script 252 | uid 253 | 32C1304F-4BF8-43BE-8163-49EE025637F8 254 | version 255 | 2 256 | 257 | 258 | config 259 | 260 | openwith 261 | /Applications/iTerm.app 262 | sourcefile 263 | 264 | 265 | type 266 | alfred.workflow.action.openfile 267 | uid 268 | E5B51884-A97D-4E15-9321-11A17837DA38 269 | version 270 | 3 271 | 272 | 273 | config 274 | 275 | anchorfields 276 | 277 | argumenttrimmode 278 | 0 279 | argumenttype 280 | 0 281 | daterange 282 | 0 283 | fields 284 | 285 | 286 | field 287 | kMDItemDisplayName 288 | not 289 | 290 | split 291 | 292 | value 293 | {query} 294 | words 295 | 296 | 297 | 298 | field 299 | kMDItemAlternateNames 300 | not 301 | 302 | split 303 | 304 | value 305 | {query} 306 | words 307 | 308 | 309 | 310 | field 311 | kMDItemFinderComment 312 | not 313 | 314 | split 315 | 316 | value 317 | {query} 318 | words 319 | 320 | 321 | 322 | includesystem 323 | 324 | keyword 325 | fo 326 | limit 327 | 0 328 | runningsubtext 329 | 330 | scopes 331 | 332 | sortmode 333 | 0 334 | subtext 335 | 336 | title 337 | Search folders 338 | types 339 | 340 | public.folder 341 | 342 | withspace 343 | 344 | 345 | type 346 | alfred.workflow.input.filefilter 347 | uid 348 | CAD232B5-6B26-4DB8-B878-BD157C8296F0 349 | version 350 | 2 351 | 352 | 353 | config 354 | 355 | triggerid 356 | search folders 357 | 358 | type 359 | alfred.workflow.trigger.external 360 | uid 361 | C34E01D2-E55A-4908-8A98-3DE22A77AA48 362 | version 363 | 1 364 | 365 | 366 | config 367 | 368 | json 369 | { 370 | "alfredworkflow" : { 371 | "arg" : "{query}", 372 | "config" : { 373 | "title" : "", 374 | "runningsubtext" : "", 375 | "subtext" : "" 376 | }, 377 | "variables" : { 378 | } 379 | } 380 | } 381 | 382 | type 383 | alfred.workflow.utility.json 384 | uid 385 | BEDF7EC9-9327-4967-876A-A6F5F4303055 386 | version 387 | 1 388 | 389 | 390 | config 391 | 392 | openwith 393 | /Applications/Sublime Text.app 394 | sourcefile 395 | 396 | 397 | type 398 | alfred.workflow.action.openfile 399 | uid 400 | D066FC2C-E05A-468E-816D-5496289AE4AD 401 | version 402 | 3 403 | 404 | 405 | config 406 | 407 | concurrently 408 | 409 | escaping 410 | 102 411 | script 412 | cd "$1" 413 | /usr/local/bin/subl README.md 414 | scriptargtype 415 | 1 416 | scriptfile 417 | 418 | type 419 | 5 420 | 421 | type 422 | alfred.workflow.action.script 423 | uid 424 | 03377977-4206-4DE4-B59C-45AAD4A0980A 425 | version 426 | 2 427 | 428 | 429 | config 430 | 431 | concurrently 432 | 433 | escaping 434 | 102 435 | script 436 | mv "$1" ~/.Trash 437 | scriptargtype 438 | 1 439 | scriptfile 440 | 441 | type 442 | 0 443 | 444 | type 445 | alfred.workflow.action.script 446 | uid 447 | 71F8D037-965A-4B39-AEF4-480468260C15 448 | version 449 | 2 450 | 451 | 452 | config 453 | 454 | openwith 455 | /Applications/Visual Studio Code - Insiders.app 456 | sourcefile 457 | 458 | 459 | type 460 | alfred.workflow.action.openfile 461 | uid 462 | 27618EAD-E675-43BC-841E-6986EAE4597D 463 | version 464 | 3 465 | 466 | 467 | readme 468 | Details on how to use this workflow are found in the GitHub repo attached to the workflow. 469 | 470 | Double click this workflow in sidebar -> Open website. 471 | 472 | Post any issues and feature requests you have there. 💜 473 | uidata 474 | 475 | 03377977-4206-4DE4-B59C-45AAD4A0980A 476 | 477 | note 478 | Edit readme of folder 479 | xpos 480 | 565 481 | ypos 482 | 530 483 | 484 | 27618EAD-E675-43BC-841E-6986EAE4597D 485 | 486 | xpos 487 | 565 488 | ypos 489 | 810 490 | 491 | 32C1304F-4BF8-43BE-8163-49EE025637F8 492 | 493 | colorindex 494 | 12 495 | note 496 | OneUpdater 497 | xpos 498 | 765 499 | ypos 500 | 130 501 | 502 | 6A4E18A0-FDC8-4BA3-93B0-32B605CC24A9 503 | 504 | xpos 505 | 565 506 | ypos 507 | 10 508 | 509 | 71F8D037-965A-4B39-AEF4-480468260C15 510 | 511 | note 512 | Trash folder 513 | xpos 514 | 565 515 | ypos 516 | 670 517 | 518 | BEDF7EC9-9327-4967-876A-A6F5F4303055 519 | 520 | xpos 521 | 165 522 | ypos 523 | 330 524 | 525 | C34E01D2-E55A-4908-8A98-3DE22A77AA48 526 | 527 | xpos 528 | 10 529 | ypos 530 | 300 531 | 532 | CAD232B5-6B26-4DB8-B878-BD157C8296F0 533 | 534 | note 535 | Search folders 536 | xpos 537 | 245 538 | ypos 539 | 300 540 | 541 | D066FC2C-E05A-468E-816D-5496289AE4AD 542 | 543 | xpos 544 | 565 545 | ypos 546 | 410 547 | 548 | E5B51884-A97D-4E15-9321-11A17837DA38 549 | 550 | xpos 551 | 565 552 | ypos 553 | 290 554 | 555 | F22A1096-062D-4C05-A1C1-CF8D63389B78 556 | 557 | note 558 | cd to folder in current iTerm tab 559 | xpos 560 | 565 561 | ypos 562 | 130 563 | 564 | 565 | version 566 | 1.5 567 | webaddress 568 | https://github.com/nikitavoloboev/small-workflows/blob/master/folder-search 569 | 570 | 571 | -------------------------------------------------------------------------------- /go-play/Go Play.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/go-play/Go Play.alfredworkflow -------------------------------------------------------------------------------- /go-play/readme.md: -------------------------------------------------------------------------------- 1 | # Go play - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/go-play/Go%20Play.alfredworkflow?raw=true) 2 | 3 | > Create [Go Playground](https://play.golang.org) from selected Go code for sharing. 4 | 5 | Can also share to [Go Play Space](https://goplay.space/). 6 | 7 | ![](https://i.imgur.com/k0fW7uN.png) 8 | 9 | ## Contributing 10 | 11 | See [contribution guidelines](../contributing.md). 12 | -------------------------------------------------------------------------------- /go-play/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/go-play/workflow/icon.png -------------------------------------------------------------------------------- /go-play/workflow/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bundleid 6 | nikivi.go.play 7 | category 8 | Mine 9 | connections 10 | 11 | 8474618B-7176-421C-B7AB-601B83BAB4F3 12 | 13 | 8A0C6DCE-7A5E-4E1E-B841-576643197943 14 | 15 | 16 | destinationuid 17 | 8474618B-7176-421C-B7AB-601B83BAB4F3 18 | modifiers 19 | 0 20 | modifiersubtext 21 | 22 | vitoclose 23 | 24 | 25 | 26 | B62482BE-F9F8-4E81-BC4F-376931A2EEE9 27 | 28 | 29 | destinationuid 30 | 8A0C6DCE-7A5E-4E1E-B841-576643197943 31 | modifiers 32 | 0 33 | modifiersubtext 34 | 35 | vitoclose 36 | 37 | 38 | 39 | B9409AD1-C53F-48CB-84BB-632CAF2A75CF 40 | 41 | 42 | destinationuid 43 | B62482BE-F9F8-4E81-BC4F-376931A2EEE9 44 | modifiers 45 | 0 46 | modifiersubtext 47 | 48 | vitoclose 49 | 50 | 51 | 52 | EDB86F6C-30F2-4E1A-8F2C-4BD241F5EFD1 53 | 54 | 55 | destinationuid 56 | 8474618B-7176-421C-B7AB-601B83BAB4F3 57 | modifiers 58 | 0 59 | modifiersubtext 60 | 61 | vitoclose 62 | 63 | 64 | 65 | 66 | createdby 67 | Nikita Voloboev 68 | description 69 | Create Go Playground from selected Go code for sharing 70 | disabled 71 | 72 | name 73 | Go Play 74 | objects 75 | 76 | 77 | config 78 | 79 | lastpathcomponent 80 | 81 | onlyshowifquerypopulated 82 | 83 | removeextension 84 | 85 | text 86 | 87 | title 88 | Copied link 89 | 90 | type 91 | alfred.workflow.output.notification 92 | uid 93 | 81E69D82-0504-4F92-A607-C88110E69C64 94 | version 95 | 1 96 | 97 | 98 | config 99 | 100 | action 101 | 0 102 | argument 103 | 1 104 | focusedappvariable 105 | 106 | focusedappvariablename 107 | 108 | hotkey 109 | 41 110 | hotmod 111 | 393216 112 | hotstring 113 | ; 114 | leftcursor 115 | 116 | modsmode 117 | 0 118 | relatedAppsMode 119 | 0 120 | 121 | type 122 | alfred.workflow.trigger.hotkey 123 | uid 124 | B9409AD1-C53F-48CB-84BB-632CAF2A75CF 125 | version 126 | 2 127 | 128 | 129 | config 130 | 131 | autopaste 132 | 133 | clipboardtext 134 | https://play.golang.org/p/{query} 135 | transient 136 | 137 | 138 | type 139 | alfred.workflow.output.clipboard 140 | uid 141 | 8A0C6DCE-7A5E-4E1E-B841-576643197943 142 | version 143 | 3 144 | 145 | 146 | config 147 | 148 | concurrently 149 | 150 | escaping 151 | 68 152 | script 153 | import sys 154 | import urllib 155 | from urllib2 import Request, urlopen 156 | 157 | query = sys.argv[1] 158 | 159 | url = 'https://play.golang.org/share' 160 | 161 | request = Request(url, query) 162 | json = urlopen(request).read().decode() 163 | sys.stdout.write(json) 164 | scriptargtype 165 | 1 166 | scriptfile 167 | 168 | type 169 | 3 170 | 171 | type 172 | alfred.workflow.action.script 173 | uid 174 | B62482BE-F9F8-4E81-BC4F-376931A2EEE9 175 | version 176 | 2 177 | 178 | 179 | config 180 | 181 | concurrently 182 | 183 | escaping 184 | 0 185 | script 186 | # THESE VARIABLES MUST BE SET. SEE THE ONEUPDATER README FOR AN EXPLANATION OF EACH. 187 | readonly remote_info_plist="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/go-play/workflow/info.plist" 188 | readonly workflow_url="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/go-play/Go%20Play.alfredworkflow" 189 | readonly download_type='direct' 190 | readonly frequency_check='7' 191 | 192 | # FROM HERE ON, CODE SHOULD BE LEFT UNTOUCHED! 193 | function abort { 194 | echo "${1}" >&2 195 | exit 1 196 | } 197 | 198 | function url_exists { 199 | curl --silent --location --output /dev/null --fail --range 0-0 "${1}" 200 | } 201 | 202 | function notification { 203 | readonly local notificator="$(find . -type d -name 'Notificator.app')" 204 | if [[ -n "${notificator}" ]]; then 205 | "${notificator}/Contents/Resources/Scripts/notificator" --message "${1}" --title "${alfred_workflow_name}" --subtitle 'A new version is available' 206 | return 207 | fi 208 | 209 | readonly local terminal_notifier="$(find . -type f -name 'terminal-notifier')" 210 | if [[ -n "${terminal_notifier}" ]]; then 211 | "${terminal_notifier}" -title "${alfred_workflow_name}" -subtitle 'A new version is available' -message "${1}" 212 | return 213 | fi 214 | 215 | osascript -e "display notification \"${1}\" with title \"${alfred_workflow_name}\" subtitle \"A new version is available\"" 216 | } 217 | 218 | # Local sanity checks 219 | readonly local_info_plist='info.plist' 220 | readonly local_version="$(/usr/libexec/PlistBuddy -c 'print version' "${local_info_plist}")" 221 | 222 | [[ -n "${local_version}" ]] || abort 'You need to set a workflow version in the configuration sheet.' 223 | [[ "${download_type}" =~ ^(direct|page|github_release)$ ]] || abort "'download_type' (${download_type}) needs to be one of 'direct', 'page', or 'github_release'." 224 | [[ "${frequency_check}" =~ ^[0-9]+$ ]] || abort "'frequency_check' (${frequency_check}) needs to be a number." 225 | 226 | # Check for updates 227 | if [[ $(find "${local_info_plist}" -mtime +"${frequency_check}"d) ]]; then 228 | if ! url_exists "${remote_info_plist}"; then abort "'remote_info_plist' (${remote_info_plist}) appears to not be reachable."; fi # Remote sanity check 229 | 230 | readonly tmp_file="$(mktemp)" 231 | curl --silent --location --output "${tmp_file}" "${remote_info_plist}" 232 | readonly remote_version="$(/usr/libexec/PlistBuddy -c 'print version' "${tmp_file}")" 233 | 234 | if [[ "${local_version}" == "${remote_version}" ]]; then 235 | touch "${local_info_plist}" # Reset timer by touching local file 236 | exit 0 237 | fi 238 | 239 | if [[ "${download_type}" == 'page' ]]; then 240 | notification 'Opening download page…' 241 | open "${workflow_url}" 242 | exit 0 243 | fi 244 | 245 | download_url="$([[ "${download_type}" == 'github_release' ]] && curl --silent "https://api.github.com/repos/${workflow_url}/releases/latest" | grep 'browser_download_url' | head -1 | sed -E 's/.*browser_download_url": "(.*)"/\1/' || echo "${workflow_url}")" 246 | 247 | if url_exists "${download_url}"; then 248 | notification 'Downloading and installing…' 249 | curl --silent --location --output "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" "${download_url}" 250 | open "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" 251 | else 252 | abort "'workflow_url' (${download_url}) appears to not be reachable." 253 | fi 254 | fi 255 | scriptargtype 256 | 1 257 | scriptfile 258 | 259 | type 260 | 0 261 | 262 | type 263 | alfred.workflow.action.script 264 | uid 265 | E9E8BFEF-668E-418B-9122-64DB2A78DFAC 266 | version 267 | 2 268 | 269 | 270 | type 271 | alfred.workflow.utility.junction 272 | uid 273 | 8474618B-7176-421C-B7AB-601B83BAB4F3 274 | version 275 | 1 276 | 277 | 278 | config 279 | 280 | autopaste 281 | 282 | clipboardtext 283 | https://goplay.space/#{query} 284 | transient 285 | 286 | 287 | type 288 | alfred.workflow.output.clipboard 289 | uid 290 | EDB86F6C-30F2-4E1A-8F2C-4BD241F5EFD1 291 | version 292 | 3 293 | 294 | 295 | config 296 | 297 | browser 298 | 299 | spaces 300 | 301 | url 302 | https://play.golang.org/p/{query} 303 | utf8 304 | 305 | 306 | type 307 | alfred.workflow.action.openurl 308 | uid 309 | BCD45A73-C5A2-4B36-BBB8-DD6CE2D94511 310 | version 311 | 1 312 | 313 | 314 | readme 315 | Details on how to use this workflow are found in the GitHub repo attached to the workflow. 316 | 317 | Double click this workflow in sidebar -> Open website. 318 | 319 | Post any issues and feature requests you have there. 💜 320 | uidata 321 | 322 | 81E69D82-0504-4F92-A607-C88110E69C64 323 | 324 | xpos 325 | 430 326 | ypos 327 | 40 328 | 329 | 8474618B-7176-421C-B7AB-601B83BAB4F3 330 | 331 | xpos 332 | 610 333 | ypos 334 | 270 335 | 336 | 8A0C6DCE-7A5E-4E1E-B841-576643197943 337 | 338 | note 339 | Official Go playground 340 | xpos 341 | 430 342 | ypos 343 | 160 344 | 345 | B62482BE-F9F8-4E81-BC4F-376931A2EEE9 346 | 347 | note 348 | You can attach connection to where you want. Either: 349 | 350 | 1. Official Go playground 351 | 2. Go play Space 352 | xpos 353 | 210 354 | ypos 355 | 160 356 | 357 | B9409AD1-C53F-48CB-84BB-632CAF2A75CF 358 | 359 | note 360 | Select some Go code and it will give you a playground to share 361 | xpos 362 | 10 363 | ypos 364 | 160 365 | 366 | BCD45A73-C5A2-4B36-BBB8-DD6CE2D94511 367 | 368 | note 369 | Open the playground in the browser 370 | xpos 371 | 430 372 | ypos 373 | 440 374 | 375 | E9E8BFEF-668E-418B-9122-64DB2A78DFAC 376 | 377 | colorindex 378 | 12 379 | note 380 | OneUpdater 381 | xpos 382 | 710 383 | ypos 384 | 240 385 | 386 | EDB86F6C-30F2-4E1A-8F2C-4BD241F5EFD1 387 | 388 | note 389 | Go play space 390 | xpos 391 | 430 392 | ypos 393 | 300 394 | 395 | 396 | version 397 | 1.1 398 | webaddress 399 | https://github.com/nikitavoloboev/small-workflows/blob/master/go-play 400 | 401 | 402 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/nikitavoloboev/small-workflows 2 | 3 | go 1.14 4 | 5 | require ( 6 | github.com/deanishe/awgo v0.22.1 7 | github.com/dustin/go-humanize v1.0.0 8 | ) 9 | -------------------------------------------------------------------------------- /goto-subreddit/Go to subreddit.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/goto-subreddit/Go to subreddit.alfredworkflow -------------------------------------------------------------------------------- /goto-subreddit/readme.md: -------------------------------------------------------------------------------- 1 | # Go to Reddit Subreddit - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/goto-subreddit/Go%20to%20subreddit.alfredworkflow?raw=true) 2 | 3 | > Go to a subreddit that you specify. For searching subreddits, use [this](https://github.com/deanishe/alfred-reddit). 4 | 5 | ![](https://i.imgur.com/alH0cWt.png) 6 | 7 | ## Contributing 8 | 9 | See [contribution guidelines](../contributing.md). 10 | -------------------------------------------------------------------------------- /goto-subreddit/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/goto-subreddit/workflow/icon.png -------------------------------------------------------------------------------- /goto-subreddit/workflow/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bundleid 6 | nikivi.go.to.sub 7 | category 8 | Mine 9 | connections 10 | 11 | 05EBC522-8195-4564-9525-7FA0D4EA6340 12 | 13 | 1482B57B-388E-4944-AFF6-8BAD3BFB68BB 14 | 15 | 16 | destinationuid 17 | 05EBC522-8195-4564-9525-7FA0D4EA6340 18 | modifiers 19 | 0 20 | modifiersubtext 21 | 22 | vitoclose 23 | 24 | 25 | 26 | destinationuid 27 | F09FDBA1-A245-4099-88C1-4CD44A3AC864 28 | modifiers 29 | 1048576 30 | modifiersubtext 31 | New 32 | vitoclose 33 | 34 | 35 | 36 | destinationuid 37 | 893325FF-CA33-4918-A831-39E8E704B4B7 38 | modifiers 39 | 262144 40 | modifiersubtext 41 | Top (all) 42 | vitoclose 43 | 44 | 45 | 46 | destinationuid 47 | C471EC9A-ACA5-45EC-BCE5-3A8090DE294B 48 | modifiers 49 | 524288 50 | modifiersubtext 51 | Top (week) 52 | vitoclose 53 | 54 | 55 | 56 | destinationuid 57 | 32C3B89F-AF22-4FEE-B6C4-18042F842F35 58 | modifiers 59 | 8388608 60 | modifiersubtext 61 | Top (month) 62 | vitoclose 63 | 64 | 65 | 66 | 91D6FD5D-9A2D-41FF-A714-5D5A25161817 67 | 68 | 69 | destinationuid 70 | 1482B57B-388E-4944-AFF6-8BAD3BFB68BB 71 | modifiers 72 | 0 73 | modifiersubtext 74 | 75 | vitoclose 76 | 77 | 78 | 79 | 80 | createdby 81 | Nikita Voloboev 82 | description 83 | Go to any subreddit on Reddit 84 | disabled 85 | 86 | name 87 | Go to subreddit 88 | objects 89 | 90 | 91 | config 92 | 93 | browser 94 | 95 | spaces 96 | 97 | url 98 | https://www.reddit.com/r/{query}/ 99 | utf8 100 | 101 | 102 | type 103 | alfred.workflow.action.openurl 104 | uid 105 | 05EBC522-8195-4564-9525-7FA0D4EA6340 106 | version 107 | 1 108 | 109 | 110 | config 111 | 112 | concurrently 113 | 114 | escaping 115 | 0 116 | script 117 | # THESE VARIABLES MUST BE SET. SEE THE ONEUPDATER README FOR AN EXPLANATION OF EACH. 118 | readonly remote_info_plist="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/goto-subreddit/workflow/info.plist" 119 | readonly workflow_url="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/goto-subreddit/Go%20to%20subreddit.alfredworkflow" 120 | readonly download_type='direct' 121 | readonly frequency_check='7' 122 | 123 | # FROM HERE ON, CODE SHOULD BE LEFT UNTOUCHED! 124 | function abort { 125 | echo "${1}" >&2 126 | exit 1 127 | } 128 | 129 | function url_exists { 130 | curl --silent --location --output /dev/null --fail --range 0-0 "${1}" 131 | } 132 | 133 | function notification { 134 | readonly local notificator="$(find . -type d -name 'Notificator.app')" 135 | if [[ -n "${notificator}" ]]; then 136 | "${notificator}/Contents/Resources/Scripts/notificator" --message "${1}" --title "${alfred_workflow_name}" --subtitle 'A new version is available' 137 | return 138 | fi 139 | 140 | readonly local terminal_notifier="$(find . -type f -name 'terminal-notifier')" 141 | if [[ -n "${terminal_notifier}" ]]; then 142 | "${terminal_notifier}" -title "${alfred_workflow_name}" -subtitle 'A new version is available' -message "${1}" 143 | return 144 | fi 145 | 146 | osascript -e "display notification \"${1}\" with title \"${alfred_workflow_name}\" subtitle \"A new version is available\"" 147 | } 148 | 149 | # Local sanity checks 150 | readonly local_info_plist='info.plist' 151 | readonly local_version="$(/usr/libexec/PlistBuddy -c 'print version' "${local_info_plist}")" 152 | 153 | [[ -n "${local_version}" ]] || abort 'You need to set a workflow version in the configuration sheet.' 154 | [[ "${download_type}" =~ ^(direct|page|github_release)$ ]] || abort "'download_type' (${download_type}) needs to be one of 'direct', 'page', or 'github_release'." 155 | [[ "${frequency_check}" =~ ^[0-9]+$ ]] || abort "'frequency_check' (${frequency_check}) needs to be a number." 156 | 157 | # Check for updates 158 | if [[ $(find "${local_info_plist}" -mtime +"${frequency_check}"d) ]]; then 159 | if ! url_exists "${remote_info_plist}"; then abort "'remote_info_plist' (${remote_info_plist}) appears to not be reachable."; fi # Remote sanity check 160 | 161 | readonly tmp_file="$(mktemp)" 162 | curl --silent --location --output "${tmp_file}" "${remote_info_plist}" 163 | readonly remote_version="$(/usr/libexec/PlistBuddy -c 'print version' "${tmp_file}")" 164 | 165 | if [[ "${local_version}" == "${remote_version}" ]]; then 166 | touch "${local_info_plist}" # Reset timer by touching local file 167 | exit 0 168 | fi 169 | 170 | if [[ "${download_type}" == 'page' ]]; then 171 | notification 'Opening download page…' 172 | open "${workflow_url}" 173 | exit 0 174 | fi 175 | 176 | download_url="$([[ "${download_type}" == 'github_release' ]] && curl --silent "https://api.github.com/repos/${workflow_url}/releases/latest" | grep 'browser_download_url' | head -1 | sed -E 's/.*browser_download_url": "(.*)"/\1/' || echo "${workflow_url}")" 177 | 178 | if url_exists "${download_url}"; then 179 | notification 'Downloading and installing…' 180 | curl --silent --location --output "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" "${download_url}" 181 | open "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" 182 | else 183 | abort "'workflow_url' (${download_url}) appears to not be reachable." 184 | fi 185 | fi 186 | scriptargtype 187 | 1 188 | scriptfile 189 | 190 | type 191 | 0 192 | 193 | type 194 | alfred.workflow.action.script 195 | uid 196 | C64D30BD-0C81-4B35-B4B4-517E8C1BC175 197 | version 198 | 2 199 | 200 | 201 | config 202 | 203 | browser 204 | 205 | spaces 206 | 207 | url 208 | https://www.reddit.com/r/{query}/new 209 | utf8 210 | 211 | 212 | type 213 | alfred.workflow.action.openurl 214 | uid 215 | F09FDBA1-A245-4099-88C1-4CD44A3AC864 216 | version 217 | 1 218 | 219 | 220 | config 221 | 222 | triggerid 223 | goto subreddit 224 | 225 | type 226 | alfred.workflow.trigger.external 227 | uid 228 | 91D6FD5D-9A2D-41FF-A714-5D5A25161817 229 | version 230 | 1 231 | 232 | 233 | config 234 | 235 | argumenttype 236 | 0 237 | keyword 238 | sub 239 | subtext 240 | ⌘ = New | ⌃ = Top (all) | ⌥ = Top (week) | fn = Top (month) 241 | text 242 | Go to {query} subreddit 243 | withspace 244 | 245 | 246 | type 247 | alfred.workflow.input.keyword 248 | uid 249 | 1482B57B-388E-4944-AFF6-8BAD3BFB68BB 250 | version 251 | 1 252 | 253 | 254 | config 255 | 256 | browser 257 | 258 | spaces 259 | 260 | url 261 | https://www.reddit.com/r/{query}/top/?sort=top&t=all 262 | utf8 263 | 264 | 265 | type 266 | alfred.workflow.action.openurl 267 | uid 268 | 893325FF-CA33-4918-A831-39E8E704B4B7 269 | version 270 | 1 271 | 272 | 273 | config 274 | 275 | browser 276 | 277 | spaces 278 | 279 | url 280 | https://www.reddit.com/r/{query}/top/?sort=top&t=week 281 | utf8 282 | 283 | 284 | type 285 | alfred.workflow.action.openurl 286 | uid 287 | C471EC9A-ACA5-45EC-BCE5-3A8090DE294B 288 | version 289 | 1 290 | 291 | 292 | config 293 | 294 | browser 295 | 296 | spaces 297 | 298 | url 299 | https://www.reddit.com/r/{query}/top/?sort=top&t=month 300 | utf8 301 | 302 | 303 | type 304 | alfred.workflow.action.openurl 305 | uid 306 | 32C3B89F-AF22-4FEE-B6C4-18042F842F35 307 | version 308 | 1 309 | 310 | 311 | readme 312 | Details on how to use this workflow are found in the GitHub repo attached to the workflow. 313 | 314 | Double click this workflow in sidebar -> Open website. 315 | 316 | Post any issues and feature requests you have there. 💜 317 | uidata 318 | 319 | 05EBC522-8195-4564-9525-7FA0D4EA6340 320 | 321 | xpos 322 | 470 323 | ypos 324 | 10 325 | 326 | 1482B57B-388E-4944-AFF6-8BAD3BFB68BB 327 | 328 | xpos 329 | 170 330 | ypos 331 | 210 332 | 333 | 32C3B89F-AF22-4FEE-B6C4-18042F842F35 334 | 335 | xpos 336 | 470 337 | ypos 338 | 520 339 | 340 | 893325FF-CA33-4918-A831-39E8E704B4B7 341 | 342 | xpos 343 | 470 344 | ypos 345 | 270 346 | 347 | 91D6FD5D-9A2D-41FF-A714-5D5A25161817 348 | 349 | xpos 350 | 10 351 | ypos 352 | 210 353 | 354 | C471EC9A-ACA5-45EC-BCE5-3A8090DE294B 355 | 356 | xpos 357 | 470 358 | ypos 359 | 390 360 | 361 | C64D30BD-0C81-4B35-B4B4-517E8C1BC175 362 | 363 | colorindex 364 | 12 365 | note 366 | OneUpdater 367 | xpos 368 | 660 369 | ypos 370 | 10 371 | 372 | F09FDBA1-A245-4099-88C1-4CD44A3AC864 373 | 374 | xpos 375 | 470 376 | ypos 377 | 140 378 | 379 | 380 | version 381 | 1.3 382 | webaddress 383 | https://github.com/nikitavoloboev/small-workflows/blob/master/goto-subreddit 384 | 385 | 386 | -------------------------------------------------------------------------------- /license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Nikita (nikiv.dev) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /local-host/Local host.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/local-host/Local host.alfredworkflow -------------------------------------------------------------------------------- /local-host/readme.md: -------------------------------------------------------------------------------- 1 | # Local host - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/local-host/Local%20host.alfredworkflow?raw=true) 2 | 3 | > Open port that you specify at local host. 4 | 5 | ![](https://i.imgur.com/qaBIYOD.png) 6 | 7 | ## Contributing 8 | 9 | See [contribution guidelines](../contributing.md). 10 | -------------------------------------------------------------------------------- /local-host/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/local-host/workflow/icon.png -------------------------------------------------------------------------------- /local-host/workflow/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bundleid 6 | nikivi.local.host 7 | category 8 | Mine 9 | connections 10 | 11 | 313CFB22-54DE-4C7D-AAB2-74BEAEB6DD66 12 | 13 | 14 | destinationuid 15 | DCC9376D-FA56-4ECB-9A9E-713A0B50412D 16 | modifiers 17 | 0 18 | modifiersubtext 19 | 20 | vitoclose 21 | 22 | 23 | 24 | destinationuid 25 | D0BE0533-09B2-4A09-BBF9-7745BBCCA530 26 | modifiers 27 | 1048576 28 | modifiersubtext 29 | Open in Chrome 30 | vitoclose 31 | 32 | 33 | 34 | destinationuid 35 | BF48C5AD-B1FE-4E7B-AEAD-A05394A7082D 36 | modifiers 37 | 262144 38 | modifiersubtext 39 | Open in Firefox 40 | vitoclose 41 | 42 | 43 | 44 | 9F0C6149-6519-4882-B7D5-95A3CB366EA3 45 | 46 | 47 | destinationuid 48 | 313CFB22-54DE-4C7D-AAB2-74BEAEB6DD66 49 | modifiers 50 | 0 51 | modifiersubtext 52 | 53 | vitoclose 54 | 55 | 56 | 57 | DCC9376D-FA56-4ECB-9A9E-713A0B50412D 58 | 59 | 60 | createdby 61 | Nikita Voloboev 62 | description 63 | Open port that you specify at local host 64 | disabled 65 | 66 | name 67 | Local host 68 | objects 69 | 70 | 71 | config 72 | 73 | concurrently 74 | 75 | escaping 76 | 0 77 | script 78 | # THESE VARIABLES MUST BE SET. SEE THE ONEUPDATER README FOR AN EXPLANATION OF EACH. 79 | readonly remote_info_plist="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/local-host/workflow/info.plist" 80 | readonly workflow_url="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/local-host/Local%20host.alfredworkflow" 81 | readonly download_type='direct' 82 | readonly frequency_check='7' 83 | 84 | # FROM HERE ON, CODE SHOULD BE LEFT UNTOUCHED! 85 | function abort { 86 | echo "${1}" >&2 87 | exit 1 88 | } 89 | 90 | function url_exists { 91 | curl --silent --location --output /dev/null --fail --range 0-0 "${1}" 92 | } 93 | 94 | function notification { 95 | readonly local notificator="$(find . -type d -name 'Notificator.app')" 96 | if [[ -n "${notificator}" ]]; then 97 | "${notificator}/Contents/Resources/Scripts/notificator" --message "${1}" --title "${alfred_workflow_name}" --subtitle 'A new version is available' 98 | return 99 | fi 100 | 101 | readonly local terminal_notifier="$(find . -type f -name 'terminal-notifier')" 102 | if [[ -n "${terminal_notifier}" ]]; then 103 | "${terminal_notifier}" -title "${alfred_workflow_name}" -subtitle 'A new version is available' -message "${1}" 104 | return 105 | fi 106 | 107 | osascript -e "display notification \"${1}\" with title \"${alfred_workflow_name}\" subtitle \"A new version is available\"" 108 | } 109 | 110 | # Local sanity checks 111 | readonly local_info_plist='info.plist' 112 | readonly local_version="$(/usr/libexec/PlistBuddy -c 'print version' "${local_info_plist}")" 113 | 114 | [[ -n "${local_version}" ]] || abort 'You need to set a workflow version in the configuration sheet.' 115 | [[ "${download_type}" =~ ^(direct|page|github_release)$ ]] || abort "'download_type' (${download_type}) needs to be one of 'direct', 'page', or 'github_release'." 116 | [[ "${frequency_check}" =~ ^[0-9]+$ ]] || abort "'frequency_check' (${frequency_check}) needs to be a number." 117 | 118 | # Check for updates 119 | if [[ $(find "${local_info_plist}" -mtime +"${frequency_check}"d) ]]; then 120 | if ! url_exists "${remote_info_plist}"; then abort "'remote_info_plist' (${remote_info_plist}) appears to not be reachable."; fi # Remote sanity check 121 | 122 | readonly tmp_file="$(mktemp)" 123 | curl --silent --location --output "${tmp_file}" "${remote_info_plist}" 124 | readonly remote_version="$(/usr/libexec/PlistBuddy -c 'print version' "${tmp_file}")" 125 | 126 | if [[ "${local_version}" == "${remote_version}" ]]; then 127 | touch "${local_info_plist}" # Reset timer by touching local file 128 | exit 0 129 | fi 130 | 131 | if [[ "${download_type}" == 'page' ]]; then 132 | notification 'Opening download page…' 133 | open "${workflow_url}" 134 | exit 0 135 | fi 136 | 137 | download_url="$([[ "${download_type}" == 'github_release' ]] && curl --silent "https://api.github.com/repos/${workflow_url}/releases/latest" | grep 'browser_download_url' | head -1 | sed -E 's/.*browser_download_url": "(.*)"/\1/' || echo "${workflow_url}")" 138 | 139 | if url_exists "${download_url}"; then 140 | notification 'Downloading and installing…' 141 | curl --silent --location --output "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" "${download_url}" 142 | open "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" 143 | else 144 | abort "'workflow_url' (${download_url}) appears to not be reachable." 145 | fi 146 | fi 147 | scriptargtype 148 | 1 149 | scriptfile 150 | 151 | type 152 | 0 153 | 154 | type 155 | alfred.workflow.action.script 156 | uid 157 | 8227BF02-65B5-4A70-8033-06583898F087 158 | version 159 | 2 160 | 161 | 162 | config 163 | 164 | browser 165 | com.google.Chrome 166 | spaces 167 | 168 | url 169 | http://localhost:{query} 170 | utf8 171 | 172 | 173 | type 174 | alfred.workflow.action.openurl 175 | uid 176 | DCC9376D-FA56-4ECB-9A9E-713A0B50412D 177 | version 178 | 1 179 | 180 | 181 | config 182 | 183 | triggerid 184 | open local port 185 | 186 | type 187 | alfred.workflow.trigger.external 188 | uid 189 | 9F0C6149-6519-4882-B7D5-95A3CB366EA3 190 | version 191 | 1 192 | 193 | 194 | config 195 | 196 | argumenttype 197 | 0 198 | keyword 199 | port 200 | subtext 201 | ⌃ = Safari | ⌘ = Firefox 202 | text 203 | Open port {query} in Chrome 204 | withspace 205 | 206 | 207 | type 208 | alfred.workflow.input.keyword 209 | uid 210 | 313CFB22-54DE-4C7D-AAB2-74BEAEB6DD66 211 | version 212 | 1 213 | 214 | 215 | config 216 | 217 | browser 218 | com.apple.Safari 219 | spaces 220 | 221 | url 222 | http://localhost:{query} 223 | utf8 224 | 225 | 226 | type 227 | alfred.workflow.action.openurl 228 | uid 229 | D0BE0533-09B2-4A09-BBF9-7745BBCCA530 230 | version 231 | 1 232 | 233 | 234 | config 235 | 236 | browser 237 | org.mozilla.firefox 238 | spaces 239 | 240 | url 241 | http://localhost:{query} 242 | utf8 243 | 244 | 245 | type 246 | alfred.workflow.action.openurl 247 | uid 248 | BF48C5AD-B1FE-4E7B-AEAD-A05394A7082D 249 | version 250 | 1 251 | 252 | 253 | readme 254 | Details on how to use this workflow are found in the GitHub repo attached to the workflow. 255 | 256 | Double click this workflow in sidebar -> Open website. 257 | 258 | Post any issues and feature requests you have there. 💜 259 | uidata 260 | 261 | 313CFB22-54DE-4C7D-AAB2-74BEAEB6DD66 262 | 263 | xpos 264 | 180 265 | ypos 266 | 50 267 | 268 | 8227BF02-65B5-4A70-8033-06583898F087 269 | 270 | colorindex 271 | 12 272 | note 273 | OneUpdater 274 | xpos 275 | 650 276 | ypos 277 | 40 278 | 279 | 9F0C6149-6519-4882-B7D5-95A3CB366EA3 280 | 281 | xpos 282 | 10 283 | ypos 284 | 50 285 | 286 | BF48C5AD-B1FE-4E7B-AEAD-A05394A7082D 287 | 288 | xpos 289 | 460 290 | ypos 291 | 290 292 | 293 | D0BE0533-09B2-4A09-BBF9-7745BBCCA530 294 | 295 | xpos 296 | 460 297 | ypos 298 | 170 299 | 300 | DCC9376D-FA56-4ECB-9A9E-713A0B50412D 301 | 302 | xpos 303 | 460 304 | ypos 305 | 40 306 | 307 | 308 | version 309 | 1.2 310 | webaddress 311 | https://github.com/nikitavoloboev/small-workflows/blob/master/local-host 312 | 313 | 314 | -------------------------------------------------------------------------------- /month-numbers/Month numbers.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/month-numbers/Month numbers.alfredworkflow -------------------------------------------------------------------------------- /month-numbers/readme.md: -------------------------------------------------------------------------------- 1 | # Month numbers - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/month-numbers/Month%20numbers.alfredworkflow?raw=true) 2 | 3 | > Search for a month and copy the month number to your clipboard. 4 | 5 | ![](https://i.imgur.com/fdhOWm4.png) 6 | 7 | ## Contributing 8 | 9 | See [contribution guidelines](../contributing.md). 10 | -------------------------------------------------------------------------------- /month-numbers/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/month-numbers/workflow/icon.png -------------------------------------------------------------------------------- /month-numbers/workflow/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bundleid 6 | nikivi.month.numbers 7 | category 8 | Mine 9 | connections 10 | 11 | 3FD0DA9D-7238-4BCF-B96B-518BF96BC747 12 | 13 | 57E7D8A0-DA41-457F-9FE1-154441AB917F 14 | 15 | 16 | destinationuid 17 | 86EFED13-62E2-45A0-96FE-FDBB9E23A406 18 | modifiers 19 | 0 20 | modifiersubtext 21 | 22 | vitoclose 23 | 24 | 25 | 26 | 86EFED13-62E2-45A0-96FE-FDBB9E23A406 27 | 28 | 29 | destinationuid 30 | 3FD0DA9D-7238-4BCF-B96B-518BF96BC747 31 | modifiers 32 | 0 33 | modifiersubtext 34 | 35 | vitoclose 36 | 37 | 38 | 39 | 40 | createdby 41 | Nikita Voloboev 42 | description 43 | Search for a month and copy the month number to your clipboard 44 | disabled 45 | 46 | name 47 | Month numbers 48 | objects 49 | 50 | 51 | config 52 | 53 | concurrently 54 | 55 | escaping 56 | 0 57 | script 58 | # THESE VARIABLES MUST BE SET. SEE THE ONEUPDATER README FOR AN EXPLANATION OF EACH. 59 | readonly remote_info_plist="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/month-numbers/workflow/info.plist" 60 | readonly workflow_url="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/month-numbers/Month%20numbers.alfredworkflow" 61 | readonly download_type='direct' 62 | readonly frequency_check='7' 63 | 64 | # FROM HERE ON, CODE SHOULD BE LEFT UNTOUCHED! 65 | function abort { 66 | echo "${1}" >&2 67 | exit 1 68 | } 69 | 70 | function url_exists { 71 | curl --silent --location --output /dev/null --fail --range 0-0 "${1}" 72 | } 73 | 74 | function notification { 75 | readonly local notificator="$(find . -type d -name 'Notificator.app')" 76 | if [[ -n "${notificator}" ]]; then 77 | "${notificator}/Contents/Resources/Scripts/notificator" --message "${1}" --title "${alfred_workflow_name}" --subtitle 'A new version is available' 78 | return 79 | fi 80 | 81 | readonly local terminal_notifier="$(find . -type f -name 'terminal-notifier')" 82 | if [[ -n "${terminal_notifier}" ]]; then 83 | "${terminal_notifier}" -title "${alfred_workflow_name}" -subtitle 'A new version is available' -message "${1}" 84 | return 85 | fi 86 | 87 | osascript -e "display notification \"${1}\" with title \"${alfred_workflow_name}\" subtitle \"A new version is available\"" 88 | } 89 | 90 | # Local sanity checks 91 | readonly local_info_plist='info.plist' 92 | readonly local_version="$(/usr/libexec/PlistBuddy -c 'print version' "${local_info_plist}")" 93 | 94 | [[ -n "${local_version}" ]] || abort 'You need to set a workflow version in the configuration sheet.' 95 | [[ "${download_type}" =~ ^(direct|page|github_release)$ ]] || abort "'download_type' (${download_type}) needs to be one of 'direct', 'page', or 'github_release'." 96 | [[ "${frequency_check}" =~ ^[0-9]+$ ]] || abort "'frequency_check' (${frequency_check}) needs to be a number." 97 | 98 | # Check for updates 99 | if [[ $(find "${local_info_plist}" -mtime +"${frequency_check}"d) ]]; then 100 | if ! url_exists "${remote_info_plist}"; then abort "'remote_info_plist' (${remote_info_plist}) appears to not be reachable."; fi # Remote sanity check 101 | 102 | readonly tmp_file="$(mktemp)" 103 | curl --silent --location --output "${tmp_file}" "${remote_info_plist}" 104 | readonly remote_version="$(/usr/libexec/PlistBuddy -c 'print version' "${tmp_file}")" 105 | 106 | if [[ "${local_version}" == "${remote_version}" ]]; then 107 | touch "${local_info_plist}" # Reset timer by touching local file 108 | exit 0 109 | fi 110 | 111 | if [[ "${download_type}" == 'page' ]]; then 112 | notification 'Opening download page…' 113 | open "${workflow_url}" 114 | exit 0 115 | fi 116 | 117 | download_url="$([[ "${download_type}" == 'github_release' ]] && curl --silent "https://api.github.com/repos/${workflow_url}/releases/latest" | grep 'browser_download_url' | head -1 | sed -E 's/.*browser_download_url": "(.*)"/\1/' || echo "${workflow_url}")" 118 | 119 | if url_exists "${download_url}"; then 120 | notification 'Downloading and installing…' 121 | curl --silent --location --output "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" "${download_url}" 122 | open "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" 123 | else 124 | abort "'workflow_url' (${download_url}) appears to not be reachable." 125 | fi 126 | fi 127 | scriptargtype 128 | 1 129 | scriptfile 130 | 131 | type 132 | 0 133 | 134 | type 135 | alfred.workflow.action.script 136 | uid 137 | 94077C4C-3B77-4DB0-98A0-BDBA0FA629BE 138 | version 139 | 2 140 | 141 | 142 | config 143 | 144 | triggerid 145 | search months 146 | 147 | type 148 | alfred.workflow.trigger.external 149 | uid 150 | 57E7D8A0-DA41-457F-9FE1-154441AB917F 151 | version 152 | 1 153 | 154 | 155 | config 156 | 157 | autopaste 158 | 159 | clipboardtext 160 | {query} 161 | transient 162 | 163 | 164 | type 165 | alfred.workflow.output.clipboard 166 | uid 167 | 3FD0DA9D-7238-4BCF-B96B-518BF96BC747 168 | version 169 | 3 170 | 171 | 172 | config 173 | 174 | argumenttrimmode 175 | 0 176 | argumenttype 177 | 1 178 | fixedorder 179 | 180 | items 181 | [{"title":"January (01)","arg":"01","subtitle":""},{"title":"February (02)","arg":"02","subtitle":""},{"title":"March (03)","arg":"03"},{"title":"April (04)","arg":"04"},{"title":"May (05)","arg":"05"},{"title":"June (06)","arg":"06"},{"title":"July (07)","arg":"07"},{"title":"August (08)","arg":"08"},{"title":"September (09)","arg":"09"},{"title":"October (10)","arg":"10"},{"title":"November (11)","arg":"11"},{"title":"December (12)","arg":"12"}] 182 | keyword 183 | mon 184 | runningsubtext 185 | 186 | subtext 187 | Press enter to copy the month number 188 | title 189 | Months numbers 190 | withspace 191 | 192 | 193 | type 194 | alfred.workflow.input.listfilter 195 | uid 196 | 86EFED13-62E2-45A0-96FE-FDBB9E23A406 197 | version 198 | 1 199 | 200 | 201 | readme 202 | Details on how to use this workflow are found in the GitHub repo attached to the workflow. 203 | 204 | Double click this workflow in sidebar -> Open website. 205 | 206 | Post any issues and feature requests you have there. 💜 207 | uidata 208 | 209 | 3FD0DA9D-7238-4BCF-B96B-518BF96BC747 210 | 211 | xpos 212 | 350 213 | ypos 214 | 20 215 | 216 | 57E7D8A0-DA41-457F-9FE1-154441AB917F 217 | 218 | xpos 219 | 10 220 | ypos 221 | 20 222 | 223 | 86EFED13-62E2-45A0-96FE-FDBB9E23A406 224 | 225 | note 226 | Search months 227 | xpos 228 | 170 229 | ypos 230 | 20 231 | 232 | 94077C4C-3B77-4DB0-98A0-BDBA0FA629BE 233 | 234 | colorindex 235 | 12 236 | note 237 | OneUpdater 238 | xpos 239 | 540 240 | ypos 241 | 20 242 | 243 | 244 | version 245 | 1.4 246 | webaddress 247 | https://github.com/nikitavoloboev/small-workflows/blob/master/month-numbers 248 | 249 | 250 | -------------------------------------------------------------------------------- /objects-library/Objects library.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/objects-library/Objects library.alfredworkflow -------------------------------------------------------------------------------- /objects-library/readme.md: -------------------------------------------------------------------------------- 1 | # Objects library - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/objects-library/Objects%20library.alfredworkflow?raw=true) 2 | 3 | > Useful premade objects for workflows. 4 | 5 | Currently contains only [Vitor's](https://github.com/vitorgalvao) [OneUpdater](https://github.com/vitorgalvao/alfred-workflows/tree/master/OneUpdater). 6 | 7 | I use this workflow to quickly copy useful premade objects to my workflows. 8 | 9 | ![](https://i.imgur.com/VYrTQfi.png) 10 | 11 | ## Contributing 12 | 13 | See [contribution guidelines](../contributing.md). 14 | -------------------------------------------------------------------------------- /objects-library/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/objects-library/workflow/icon.png -------------------------------------------------------------------------------- /open-with-app/Open with app.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/open-with-app/Open with app.alfredworkflow -------------------------------------------------------------------------------- /open-with-app/readme.md: -------------------------------------------------------------------------------- 1 | # Open with app - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/open-with-app/Open%20with%20app.alfredworkflow?raw=true) 2 | 3 | > File actions to quickly open file/folder in the application without going to `Open with...` menu 4 | 5 | ![](https://i.imgur.com/WsyaSkn.png) 6 | 7 | ## Contributing 8 | 9 | See [contribution guidelines](../contributing.md). 10 | -------------------------------------------------------------------------------- /open-with-app/workflow/3AF332F9-4AE3-4396-9785-78B0677A29CB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/open-with-app/workflow/3AF332F9-4AE3-4396-9785-78B0677A29CB.png -------------------------------------------------------------------------------- /open-with-app/workflow/45989721-9E50-4BEC-8362-08BE847F2475.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/open-with-app/workflow/45989721-9E50-4BEC-8362-08BE847F2475.png -------------------------------------------------------------------------------- /open-with-app/workflow/BF2D5DFE-38FF-4077-A341-4E0BEFDF94E2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/open-with-app/workflow/BF2D5DFE-38FF-4077-A341-4E0BEFDF94E2.png -------------------------------------------------------------------------------- /open-with-app/workflow/C96CE88F-544B-4BEB-87E7-FD6BD4E856FD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/open-with-app/workflow/C96CE88F-544B-4BEB-87E7-FD6BD4E856FD.png -------------------------------------------------------------------------------- /open-with-app/workflow/E5CF2D70-1E75-4F8C-AD05-1FCCB7CFAF78.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/open-with-app/workflow/E5CF2D70-1E75-4F8C-AD05-1FCCB7CFAF78.png -------------------------------------------------------------------------------- /open-with-app/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/open-with-app/workflow/icon.png -------------------------------------------------------------------------------- /open-with-app/workflow/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bundleid 6 | nikivi.open.with.app 7 | category 8 | Mine 9 | connections 10 | 11 | 115CB874-1FC9-4D18-A63E-B686A43F8649 12 | 13 | 14 | destinationuid 15 | CA8F9A11-5256-4EF2-9113-A146104AD853 16 | modifiers 17 | 0 18 | modifiersubtext 19 | 20 | vitoclose 21 | 22 | 23 | 24 | 3AF332F9-4AE3-4396-9785-78B0677A29CB 25 | 26 | 27 | destinationuid 28 | B65381DC-D719-4F11-83D2-F022FDA8CA8F 29 | modifiers 30 | 0 31 | modifiersubtext 32 | 33 | vitoclose 34 | 35 | 36 | 37 | 3B95E8DC-40AF-4C0C-B9B3-01EB0FD63E1A 38 | 39 | 40 | destinationuid 41 | CA8F9A11-5256-4EF2-9113-A146104AD853 42 | modifiers 43 | 0 44 | modifiersubtext 45 | 46 | vitoclose 47 | 48 | 49 | 50 | B65381DC-D719-4F11-83D2-F022FDA8CA8F 51 | 52 | 53 | destinationuid 54 | CA8F9A11-5256-4EF2-9113-A146104AD853 55 | modifiers 56 | 0 57 | modifiersubtext 58 | 59 | vitoclose 60 | 61 | 62 | 63 | C96CE88F-544B-4BEB-87E7-FD6BD4E856FD 64 | 65 | 66 | destinationuid 67 | 115CB874-1FC9-4D18-A63E-B686A43F8649 68 | modifiers 69 | 0 70 | modifiersubtext 71 | 72 | vitoclose 73 | 74 | 75 | 76 | CA8F9A11-5256-4EF2-9113-A146104AD853 77 | 78 | E5CF2D70-1E75-4F8C-AD05-1FCCB7CFAF78 79 | 80 | 81 | destinationuid 82 | 3B95E8DC-40AF-4C0C-B9B3-01EB0FD63E1A 83 | modifiers 84 | 0 85 | modifiersubtext 86 | 87 | vitoclose 88 | 89 | 90 | 91 | 92 | createdby 93 | Nikita Voloboev 94 | description 95 | File actions to quickly open file/folder in the application without going to Open with... menu 96 | disabled 97 | 98 | name 99 | Open with app 100 | objects 101 | 102 | 103 | config 104 | 105 | openwith 106 | /Applications/Visual Studio Code.app 107 | sourcefile 108 | 109 | 110 | type 111 | alfred.workflow.action.openfile 112 | uid 113 | 3B95E8DC-40AF-4C0C-B9B3-01EB0FD63E1A 114 | version 115 | 3 116 | 117 | 118 | config 119 | 120 | acceptsmulti 121 | 122 | filetypes 123 | 124 | name 125 | Code 126 | 127 | type 128 | alfred.workflow.trigger.action 129 | uid 130 | E5CF2D70-1E75-4F8C-AD05-1FCCB7CFAF78 131 | version 132 | 1 133 | 134 | 135 | config 136 | 137 | concurrently 138 | 139 | escaping 140 | 0 141 | script 142 | # THESE VARIABLES MUST BE SET. SEE THE ONEUPDATER README FOR AN EXPLANATION OF EACH. 143 | readonly remote_info_plist="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/open-with-app/workflow/info.plist" 144 | readonly workflow_url="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/open-with-app/Open%20with%20app.alfredworkflow" 145 | readonly download_type='direct' 146 | readonly frequency_check='7' 147 | 148 | # FROM HERE ON, CODE SHOULD BE LEFT UNTOUCHED! 149 | function abort { 150 | echo "${1}" >&2 151 | exit 1 152 | } 153 | 154 | function url_exists { 155 | curl --silent --location --output /dev/null --fail --range 0-0 "${1}" 156 | } 157 | 158 | function notification { 159 | readonly local notificator="$(find . -type d -name 'Notificator.app')" 160 | if [[ -n "${notificator}" ]]; then 161 | "${notificator}/Contents/Resources/Scripts/notificator" --message "${1}" --title "${alfred_workflow_name}" --subtitle 'A new version is available' 162 | return 163 | fi 164 | 165 | readonly local terminal_notifier="$(find . -type f -name 'terminal-notifier')" 166 | if [[ -n "${terminal_notifier}" ]]; then 167 | "${terminal_notifier}" -title "${alfred_workflow_name}" -subtitle 'A new version is available' -message "${1}" 168 | return 169 | fi 170 | 171 | osascript -e "display notification \"${1}\" with title \"${alfred_workflow_name}\" subtitle \"A new version is available\"" 172 | } 173 | 174 | # Local sanity checks 175 | readonly local_info_plist='info.plist' 176 | readonly local_version="$(/usr/libexec/PlistBuddy -c 'print version' "${local_info_plist}")" 177 | 178 | [[ -n "${local_version}" ]] || abort 'You need to set a workflow version in the configuration sheet.' 179 | [[ "${download_type}" =~ ^(direct|page|github_release)$ ]] || abort "'download_type' (${download_type}) needs to be one of 'direct', 'page', or 'github_release'." 180 | [[ "${frequency_check}" =~ ^[0-9]+$ ]] || abort "'frequency_check' (${frequency_check}) needs to be a number." 181 | 182 | # Check for updates 183 | if [[ $(find "${local_info_plist}" -mtime +"${frequency_check}"d) ]]; then 184 | if ! url_exists "${remote_info_plist}"; then abort "'remote_info_plist' (${remote_info_plist}) appears to not be reachable."; fi # Remote sanity check 185 | 186 | readonly tmp_file="$(mktemp)" 187 | curl --silent --location --output "${tmp_file}" "${remote_info_plist}" 188 | readonly remote_version="$(/usr/libexec/PlistBuddy -c 'print version' "${tmp_file}")" 189 | 190 | if [[ "${local_version}" == "${remote_version}" ]]; then 191 | touch "${local_info_plist}" # Reset timer by touching local file 192 | exit 0 193 | fi 194 | 195 | if [[ "${download_type}" == 'page' ]]; then 196 | notification 'Opening download page…' 197 | open "${workflow_url}" 198 | exit 0 199 | fi 200 | 201 | download_url="$([[ "${download_type}" == 'github_release' ]] && curl --silent "https://api.github.com/repos/${workflow_url}/releases/latest" | grep 'browser_download_url' | head -1 | sed -E 's/.*browser_download_url": "(.*)"/\1/' || echo "${workflow_url}")" 202 | 203 | if url_exists "${download_url}"; then 204 | notification 'Downloading and installing…' 205 | curl --silent --location --output "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" "${download_url}" 206 | open "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" 207 | else 208 | abort "'workflow_url' (${download_url}) appears to not be reachable." 209 | fi 210 | fi 211 | scriptargtype 212 | 1 213 | scriptfile 214 | 215 | type 216 | 0 217 | 218 | type 219 | alfred.workflow.action.script 220 | uid 221 | 0873A998-83A2-4686-8C7E-4C85FD0AD0C8 222 | version 223 | 2 224 | 225 | 226 | config 227 | 228 | openwith 229 | /Applications/Marked 2.app 230 | sourcefile 231 | 232 | 233 | type 234 | alfred.workflow.action.openfile 235 | uid 236 | 115CB874-1FC9-4D18-A63E-B686A43F8649 237 | version 238 | 3 239 | 240 | 241 | config 242 | 243 | acceptsmulti 244 | 245 | filetypes 246 | 247 | name 248 | Marked 2 249 | 250 | type 251 | alfred.workflow.trigger.action 252 | uid 253 | C96CE88F-544B-4BEB-87E7-FD6BD4E856FD 254 | version 255 | 1 256 | 257 | 258 | type 259 | alfred.workflow.utility.junction 260 | uid 261 | CA8F9A11-5256-4EF2-9113-A146104AD853 262 | version 263 | 1 264 | 265 | 266 | config 267 | 268 | openwith 269 | /Applications/Sublime Text.app 270 | sourcefile 271 | 272 | 273 | type 274 | alfred.workflow.action.openfile 275 | uid 276 | B65381DC-D719-4F11-83D2-F022FDA8CA8F 277 | version 278 | 3 279 | 280 | 281 | config 282 | 283 | acceptsmulti 284 | 285 | filetypes 286 | 287 | name 288 | Sublime Text 289 | 290 | type 291 | alfred.workflow.trigger.action 292 | uid 293 | 3AF332F9-4AE3-4396-9785-78B0677A29CB 294 | version 295 | 1 296 | 297 | 298 | readme 299 | Details on how to use this workflow are found in the GitHub repo attached to the workflow. 300 | 301 | Double click this workflow in sidebar -> Open website. 302 | 303 | Post any issues and feature requests you have there. 💜 304 | uidata 305 | 306 | 0873A998-83A2-4686-8C7E-4C85FD0AD0C8 307 | 308 | colorindex 309 | 12 310 | note 311 | OneUpdater 312 | xpos 313 | 480 314 | ypos 315 | 130 316 | 317 | 115CB874-1FC9-4D18-A63E-B686A43F8649 318 | 319 | xpos 320 | 200 321 | ypos 322 | 130 323 | 324 | 3AF332F9-4AE3-4396-9785-78B0677A29CB 325 | 326 | xpos 327 | 10 328 | ypos 329 | 260 330 | 331 | 3B95E8DC-40AF-4C0C-B9B3-01EB0FD63E1A 332 | 333 | xpos 334 | 200 335 | ypos 336 | 10 337 | 338 | B65381DC-D719-4F11-83D2-F022FDA8CA8F 339 | 340 | xpos 341 | 200 342 | ypos 343 | 260 344 | 345 | C96CE88F-544B-4BEB-87E7-FD6BD4E856FD 346 | 347 | xpos 348 | 10 349 | ypos 350 | 130 351 | 352 | CA8F9A11-5256-4EF2-9113-A146104AD853 353 | 354 | xpos 355 | 390 356 | ypos 357 | 160 358 | 359 | E5CF2D70-1E75-4F8C-AD05-1FCCB7CFAF78 360 | 361 | xpos 362 | 10 363 | ypos 364 | 10 365 | 366 | 367 | version 368 | 1.2 369 | webaddress 370 | https://github.com/nikitavoloboev/small-workflows/blob/master/open-with-app 371 | 372 | 373 | -------------------------------------------------------------------------------- /pastee/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/pastee/main.go -------------------------------------------------------------------------------- /personal/Manage notes.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/personal/Manage notes.alfredworkflow -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Alfred 2 | 3 | > [Alfred](https://www.alfredapp.com) workflows I use 4 | 5 | ## Workflows 6 | 7 | - [Search websites](search-websites) - Searches on popular websites. I use [Web Searches](https://github.com/nikitavoloboev/alfred-web-searches) and [Searchio](https://github.com/deanishe/alfred-searchio) for all other searches. 8 | - [Search Files](search-files) - A lot of [file filters](https://www.alfredapp.com/help/workflows/inputs/file-filter/) to find files quickly 9 | - [Search Selection](search-selection) - Search selected text on various websites with hotkeys. 10 | - [Search Content](search-content) - Actions to search through the insides of PDF and MindNode documents as well as Contacts. 11 | - [WiFi Tools](wifi-tools) - Check WiFi connection / Restart WiFi / Toggle it on/off. 12 | - [Go play](go-play) - Create [Go Playground](https://play.golang.org) from selected Go code for sharing. 13 | - [Useful utilities](useful-utilities) - Only has one utility, to search selected text in Alfred. 14 | - [Month numbers](month-numbers) - Search for a month and copy the month number to your clipboard. 15 | - [Clean Folders](clean-folders) - Trash items from Desktop and clean certain folders. 16 | - [Folder Search](folder-search) - Search folders from Alfred and open them in Finder/iTerm/Editor. 17 | - [File Actions](file-actions) - Various file actions I made to operate on files and folders. 18 | - [Go to Subreddit](goto-subreddit) - Go to a subreddit that you specify. For searching subreddits, use [this](https://github.com/deanishe/alfred-reddit). 19 | - [Focus](focus) - Start [Focus](https://heyfocus.com) blocking for some time that you specify. 20 | - [Local host](local-host) - Open port that you specify at local host. 21 | - [Objects library](objects-library) - Useful premade objects for workflows. 22 | - [Open with app](open-with-app) - File actions to quickly open file/folder in the application without going to `Open with...` menu. 23 | - [TODO Task](todo-task) - Write a task and display it on TouchBar, in middle of screen or menu bar. 24 | - [Birthday](birthday) - See time passed since your birthday. 25 | - [Dropbox Upload](dropbox-upload) - Upload and share files with Dropbox. 26 | 27 | ## Workflow Augmentations 28 | 29 | Below are workflows that were not made by me, I just augmented them in my own way to make them 'better' (for me). 30 | 31 | I often propose these changes to the workflow author so that the change is merged but sometimes the author does not want to accept the change so I am left with my own fork until then. Credit goes to the authors of these awesome workflows 32 | 33 | Take a look at the original workflows first, it will most probably work for you well. 34 | 35 | - [GitHub Jump](https://github.com/lox/alfred-github-jump) - Quickly jump to GitHub repositories you made/starred. ([My modification](https://github.com/nikitavoloboev/small-workflows/blob/master/augmentations/GitHub%20jump.alfredworkflow?raw=true)) 36 | - I added many modifiers to do different things such as go directly to issues of the workflow, pull requests of it or even clone the repo to a specified directory. 37 | - I use this workflow many many times a day and it saved me a lot of time. [My modification](https://github.com/nikitavoloboev/small-workflows/blob/master/augmentations/GitHub%20jump.alfredworkflow?raw=true) has over [7,300 repos I starred](https://github.com/nikitavoloboev/github-stars) that are within 1 second access from you. 38 | - [Alfred Workflow Directory](https://github.com/jeeftor/AlfredWorkflowDirectory) - Quickly open any Alfred Workflow directory in your Terminal, Finder. ([My modification](https://github.com/nikitavoloboev/small-workflows/blob/master/augmentations/Workflow%20directory.alfredworkflow?raw=true)) 39 | - I changed it so that by default it will cd to the workflow in my current iTerm tab but also it can export workflow to `~/Desktop` (you can change location) or it will open the workflow with an editor (VS Code or Sublime in my case). 40 | - [Directory watches](https://github.com/vitorgalvao/alfred-workflows/tree/master/RecentDownloads) - Search insides of directories and action on things. ([My modification](https://github.com/nikitavoloboev/small-workflows/blob/master/augmentations/Directory%20watches.alfredworkflow?raw=true)) 41 | - I modified a script he once shared to quickly see insides of various directories and action on items of them to do various things opening the path in iTerm or moving the file somewhere. 42 | - [Recent Downloads](https://github.com/ddjfreedom/recent-downloads-alfred-v2) - View `~/Downloads` folder from Alfred and action on contents of it. ([My modification](https://github.com/nikitavoloboev/small-workflows/blob/master/augmentations/Recent%20Downloads.alfredworkflow?raw=true)) 43 | - I modified it by adding few actions like opening the path in iTerm. Or opening the file/folder in VS Code. 44 | 45 | ## Personal workflows 46 | 47 | Below is a list of workflows that were made for my own personal use and will most certainly not work on your systems unless you change many things in the workflow. 48 | 49 | You can take some inspiration or ideas from these workflows if you wish. 50 | 51 | - [Manage notes](https://github.com/nikitavoloboev/small-workflows/blob/master/personal/Manage%20notes.alfredworkflow?raw=true) - I use it to manage editing and extending my [wiki](https://github.com/nikitavoloboev/knowledge). 52 | 53 | ## Fixing permission issues 54 | 55 | Some workflows here are written with Go. See [here](https://github.com/deanishe/awgo/wiki/Catalina) for instructions on fixing permissions in macOS refusing to run Go binary. 56 | 57 | ## Run 58 | 59 | Most workflows here are small enough that everything is done with Alfred blocks with minimal code. You can also open the contents of workflow. Like this: 60 | 61 | ![](https://i.imgur.com/1z1sHEq.png) 62 | 63 | Sometimes the workflows are written in [Go](https://golang.org/) and use [AwGo](https://github.com/deanishe/awgo) library for all Alfred related things. 64 | 65 | You can run those workflows like so. Assumes you have [Alfred command](https://godoc.org/github.com/jason0x43/go-alfred/alfred) installed. 66 | 67 | 1. Clone repo 68 | 2. cd to folder with workflow you want to edit 69 | 3. Run `alfred link` (makes symbolic link of [`workflow`](workflow) directory) 70 | 4. Running `alfred build` will build workflow and place binary inside [`workflow`](workflow) directory. 71 | 5. Make changes to code or modify Alfred objects to do what you want! Open debugger in Alfred or run the workflow with `workflow:log` passed in as argument to see the logs Alfred produces. 72 | 73 | ![](https://i.imgur.com/FFYOecx.png) 74 | 75 | ## Other workflows 76 | 77 | See [Alfred Gallery](https://alfred.app/) and [this list](https://github.com/learn-anything/alfred-workflows). 78 | 79 | ## Contribute 80 | 81 | Always open to useful ideas or fixes in form of issues or PRs. 82 | 83 | Can [open new issue](../../issues/new/choose) (search [existing issues](../../issues) first) or [start discussion](../../discussions). 84 | 85 | It's okay to submit draft PR as you can get help along the way to make it merge ready. 86 | 87 | Join [Discord](https://discord.com/invite/TVafwaD23d) for more indepth discussions on this repo and [others](https://github.com/nikitavoloboev#src). 88 | 89 | ### 🖤 90 | 91 | [Support on GitHub](https://github.com/sponsors/nikitavoloboev) or look into [other projects](https://nikiv.dev/projects). 92 | 93 | [![Discord](https://img.shields.io/badge/Discord-100000?style=flat&logo=discord&logoColor=white&labelColor=black&color=black)](https://discord.com/invite/TVafwaD23d) [![X](https://img.shields.io/badge/nikitavoloboev-100000?logo=X&color=black)](https://twitter.com/nikitavoloboev) [![nikiv.dev](https://img.shields.io/badge/nikiv.dev-black)](https://nikiv.dev) 94 | -------------------------------------------------------------------------------- /search-content/Search content.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-content/Search content.alfredworkflow -------------------------------------------------------------------------------- /search-content/readme.md: -------------------------------------------------------------------------------- 1 | # Search Content - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/search-content/Search%20content.alfredworkflow?raw=true) 2 | 3 | > Actions to search through the insides of PDF and MindNode documents as well as Contacts. 4 | 5 | ![](https://i.imgur.com/yaMp5ph.png) 6 | 7 | ## Contributing 8 | 9 | See [contribution guidelines](../contributing.md). 10 | -------------------------------------------------------------------------------- /search-content/workflow/25B10AEB-A152-4465-A992-53818C416EAD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-content/workflow/25B10AEB-A152-4465-A992-53818C416EAD.png -------------------------------------------------------------------------------- /search-content/workflow/6D57C744-41AD-44F3-B941-863B242D62B6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-content/workflow/6D57C744-41AD-44F3-B941-863B242D62B6.png -------------------------------------------------------------------------------- /search-content/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-content/workflow/icon.png -------------------------------------------------------------------------------- /search-files/Search files.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/Search files.alfredworkflow -------------------------------------------------------------------------------- /search-files/readme.md: -------------------------------------------------------------------------------- 1 | # Search files - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/search-files/Search%20files.alfredworkflow?raw=true) 2 | 3 | > A lot of [file filters](https://www.alfredapp.com/help/workflows/inputs/file-filter/) to find files quickly 4 | 5 | ![](https://i.imgur.com/i2bEO5Q.png) 6 | 7 | ## Contributing 8 | 9 | See [contribution guidelines](../contributing.md). 10 | -------------------------------------------------------------------------------- /search-files/workflow/04B7255A-49E1-423B-AE98-319E3B944069.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/04B7255A-49E1-423B-AE98-319E3B944069.png -------------------------------------------------------------------------------- /search-files/workflow/04DA1148-4172-400D-975B-77622025E21C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/04DA1148-4172-400D-975B-77622025E21C.png -------------------------------------------------------------------------------- /search-files/workflow/0B2D9E41-21AB-405F-8A4D-B47491598A47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/0B2D9E41-21AB-405F-8A4D-B47491598A47.png -------------------------------------------------------------------------------- /search-files/workflow/1383B5DA-0525-498E-AAB8-150E5D35E1AD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/1383B5DA-0525-498E-AAB8-150E5D35E1AD.png -------------------------------------------------------------------------------- /search-files/workflow/1AF49277-F905-425A-819F-BD400CEF29ED.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/1AF49277-F905-425A-819F-BD400CEF29ED.png -------------------------------------------------------------------------------- /search-files/workflow/1FFBE4B4-3819-4F17-95DC-65ECBE884124.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/1FFBE4B4-3819-4F17-95DC-65ECBE884124.png -------------------------------------------------------------------------------- /search-files/workflow/3053E552-E0AE-4B7E-9967-8D50924ECA77.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/3053E552-E0AE-4B7E-9967-8D50924ECA77.png -------------------------------------------------------------------------------- /search-files/workflow/3603C545-0022-4E52-A8B7-45E9FFF50443.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/3603C545-0022-4E52-A8B7-45E9FFF50443.png -------------------------------------------------------------------------------- /search-files/workflow/44407665-DF7A-40B3-B141-9844BCB2622B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/44407665-DF7A-40B3-B141-9844BCB2622B.png -------------------------------------------------------------------------------- /search-files/workflow/56D82740-33E9-4B85-9B5C-7DB3B49772F4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/56D82740-33E9-4B85-9B5C-7DB3B49772F4.png -------------------------------------------------------------------------------- /search-files/workflow/72273002-2C12-41AA-8B00-9BC70F458A51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/72273002-2C12-41AA-8B00-9BC70F458A51.png -------------------------------------------------------------------------------- /search-files/workflow/78024F5D-3C7F-4A7A-B9D7-1FA3D15BB40C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/78024F5D-3C7F-4A7A-B9D7-1FA3D15BB40C.png -------------------------------------------------------------------------------- /search-files/workflow/983D785B-9B16-4F4B-A8E9-1E5B0174E9C9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/983D785B-9B16-4F4B-A8E9-1E5B0174E9C9.png -------------------------------------------------------------------------------- /search-files/workflow/9BC050AF-6C7A-481A-8B22-294718088C78.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/9BC050AF-6C7A-481A-8B22-294718088C78.png -------------------------------------------------------------------------------- /search-files/workflow/9BCF53A1-B4BD-45BA-9F0C-80F2871DC37B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/9BCF53A1-B4BD-45BA-9F0C-80F2871DC37B.png -------------------------------------------------------------------------------- /search-files/workflow/9F1670EC-E79E-41FA-B541-F6E757E0DF47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/9F1670EC-E79E-41FA-B541-F6E757E0DF47.png -------------------------------------------------------------------------------- /search-files/workflow/B964994F-932B-476E-A943-CB2EC8B05062.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/B964994F-932B-476E-A943-CB2EC8B05062.png -------------------------------------------------------------------------------- /search-files/workflow/BA26AB10-27F4-41A3-B317-D10614E82935.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/BA26AB10-27F4-41A3-B317-D10614E82935.png -------------------------------------------------------------------------------- /search-files/workflow/BF7FC6EC-156B-4076-9073-7DE46C61FB88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/BF7FC6EC-156B-4076-9073-7DE46C61FB88.png -------------------------------------------------------------------------------- /search-files/workflow/C0BEB9C4-E2EB-44A9-9975-D029B2793ECE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/C0BEB9C4-E2EB-44A9-9975-D029B2793ECE.png -------------------------------------------------------------------------------- /search-files/workflow/C4094CBD-1E63-41BC-970A-23D37CD13D6E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/C4094CBD-1E63-41BC-970A-23D37CD13D6E.png -------------------------------------------------------------------------------- /search-files/workflow/DA0A225C-B763-4CD6-AE87-DBF8765D9D60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/DA0A225C-B763-4CD6-AE87-DBF8765D9D60.png -------------------------------------------------------------------------------- /search-files/workflow/E12B52E6-2A69-4ADE-AF3C-298DBA7CEB89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/E12B52E6-2A69-4ADE-AF3C-298DBA7CEB89.png -------------------------------------------------------------------------------- /search-files/workflow/E9D079C1-B439-4088-ADED-0F42AAF8B549.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/E9D079C1-B439-4088-ADED-0F42AAF8B549.png -------------------------------------------------------------------------------- /search-files/workflow/EB40CB64-2242-4938-A9C6-575912C20B8C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/EB40CB64-2242-4938-A9C6-575912C20B8C.png -------------------------------------------------------------------------------- /search-files/workflow/EBC5894C-6E68-4AAB-8947-18E929325FE4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/EBC5894C-6E68-4AAB-8947-18E929325FE4.png -------------------------------------------------------------------------------- /search-files/workflow/EFE95ECE-64EC-4B1C-B8F1-F52208AC733B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/EFE95ECE-64EC-4B1C-B8F1-F52208AC733B.png -------------------------------------------------------------------------------- /search-files/workflow/F37F9D1D-B30E-42B4-A576-E3EA5B9F742E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/F37F9D1D-B30E-42B4-A576-E3EA5B9F742E.png -------------------------------------------------------------------------------- /search-files/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-files/workflow/icon.png -------------------------------------------------------------------------------- /search-selection/Search selection.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-selection/Search selection.alfredworkflow -------------------------------------------------------------------------------- /search-selection/readme.md: -------------------------------------------------------------------------------- 1 | # Search Selection - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/search-selection/Search%20selection.alfredworkflow?raw=true) 2 | 3 | > Search selected text on various websites with hotkeys. 4 | 5 | You can customise the hotkeys to ones you like. To make things easier for myself, I call the hotkeys from [Karabiner](https://nikitavoloboev.gitbooks.io/knowledge/content/macOS/apps/karabiner/Karabiner.html) with my custom modifier keys which you can take a look [here](https://github.com/nikitavoloboev/dotfiles) for. 6 | 7 | I also heavily use [Web Searches workflow](https://github.com/nikitavoloboev/alfred-web-searches) to search selected text on a wider array of websites. 8 | 9 | ![](https://i.imgur.com/2n7XAYF.png) 10 | 11 | ## Contributing 12 | 13 | See [contribution guidelines](../contributing.md). 14 | -------------------------------------------------------------------------------- /search-selection/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-selection/workflow/icon.png -------------------------------------------------------------------------------- /search-websites/Search websites.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/Search websites.alfredworkflow -------------------------------------------------------------------------------- /search-websites/readme.md: -------------------------------------------------------------------------------- 1 | # Search websites - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/search-websites/Search%20websites.alfredworkflow?raw=true) 2 | 3 | > Searches on popular websites. I use [Web Searches](https://github.com/nikitavoloboev/alfred-web-searches) and [Searchio](https://github.com/deanishe/alfred-searchio) for all other searches. 4 | 5 | I also add many modifier key options to scope my searches better. 6 | 7 | ![](https://i.imgur.com/ulb19tz.png) 8 | 9 | ## Contributing 10 | 11 | See [contribution guidelines](../contributing.md). 12 | -------------------------------------------------------------------------------- /search-websites/workflow/1127BC62-DD3B-4005-9B34-AB0CFADB051F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/1127BC62-DD3B-4005-9B34-AB0CFADB051F.png -------------------------------------------------------------------------------- /search-websites/workflow/146F85B0-0C5C-4B63-BB42-FCA37B4181F5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/146F85B0-0C5C-4B63-BB42-FCA37B4181F5.png -------------------------------------------------------------------------------- /search-websites/workflow/183DC403-68C6-40B5-AB94-C8EFE9C7E43B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/183DC403-68C6-40B5-AB94-C8EFE9C7E43B.png -------------------------------------------------------------------------------- /search-websites/workflow/193D060F-BAB2-4CED-AD5A-E3E3F3E87D6F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/193D060F-BAB2-4CED-AD5A-E3E3F3E87D6F.png -------------------------------------------------------------------------------- /search-websites/workflow/37ED8832-1FD5-46E1-8AE2-59AF11022A93.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/37ED8832-1FD5-46E1-8AE2-59AF11022A93.png -------------------------------------------------------------------------------- /search-websites/workflow/3FCA627E-69CA-4C97-B9D8-4C45B2ED3CEF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/3FCA627E-69CA-4C97-B9D8-4C45B2ED3CEF.png -------------------------------------------------------------------------------- /search-websites/workflow/4A3F8E58-17A1-47F8-9EEF-DB02059716E6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/4A3F8E58-17A1-47F8-9EEF-DB02059716E6.png -------------------------------------------------------------------------------- /search-websites/workflow/62634646-FB07-4AED-B4B8-57427DFFBF21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/62634646-FB07-4AED-B4B8-57427DFFBF21.png -------------------------------------------------------------------------------- /search-websites/workflow/62CAD691-222B-46BF-872E-831400C666AA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/62CAD691-222B-46BF-872E-831400C666AA.png -------------------------------------------------------------------------------- /search-websites/workflow/6943818F-D651-47ED-833A-BE0692C9EE9E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/6943818F-D651-47ED-833A-BE0692C9EE9E.png -------------------------------------------------------------------------------- /search-websites/workflow/6E2F5D28-3C24-4A0E-868B-B7E8458130D9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/6E2F5D28-3C24-4A0E-868B-B7E8458130D9.png -------------------------------------------------------------------------------- /search-websites/workflow/70E96744-F08C-4740-8B32-706DDC657BC6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/70E96744-F08C-4740-8B32-706DDC657BC6.png -------------------------------------------------------------------------------- /search-websites/workflow/7EE275C6-301E-4A93-B0A3-B0C6C9838FBB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/7EE275C6-301E-4A93-B0A3-B0C6C9838FBB.png -------------------------------------------------------------------------------- /search-websites/workflow/80BF4F73-C741-4BAD-8027-7AC28C522DFD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/80BF4F73-C741-4BAD-8027-7AC28C522DFD.png -------------------------------------------------------------------------------- /search-websites/workflow/85F7CEA6-934E-4127-B2C4-B6CEE98D95B3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/85F7CEA6-934E-4127-B2C4-B6CEE98D95B3.png -------------------------------------------------------------------------------- /search-websites/workflow/87AAAE94-DA95-4D19-947C-F604E99A1D08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/87AAAE94-DA95-4D19-947C-F604E99A1D08.png -------------------------------------------------------------------------------- /search-websites/workflow/8836EFCE-F9CF-4CCE-8D73-ED1E59260E67.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/8836EFCE-F9CF-4CCE-8D73-ED1E59260E67.png -------------------------------------------------------------------------------- /search-websites/workflow/8CE145BF-6ECE-417C-9BC7-E1A1C4DE5534.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/8CE145BF-6ECE-417C-9BC7-E1A1C4DE5534.png -------------------------------------------------------------------------------- /search-websites/workflow/8DCEA3D5-DBB6-48C1-9972-B60DFDEF6231.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/8DCEA3D5-DBB6-48C1-9972-B60DFDEF6231.png -------------------------------------------------------------------------------- /search-websites/workflow/9502628F-708E-4131-8C50-005ABEDA9F3C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/9502628F-708E-4131-8C50-005ABEDA9F3C.png -------------------------------------------------------------------------------- /search-websites/workflow/A8BA4B5A-88DC-4EDD-9BB0-3D5F6A1675BE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/A8BA4B5A-88DC-4EDD-9BB0-3D5F6A1675BE.png -------------------------------------------------------------------------------- /search-websites/workflow/ACF70BD1-4F9B-42CF-BADC-74441A205C99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/ACF70BD1-4F9B-42CF-BADC-74441A205C99.png -------------------------------------------------------------------------------- /search-websites/workflow/B215DB9E-231C-4F38-BE45-0AC689713916.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/B215DB9E-231C-4F38-BE45-0AC689713916.png -------------------------------------------------------------------------------- /search-websites/workflow/B81F54C3-CED5-4CFE-AD34-8431F9E78288.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/B81F54C3-CED5-4CFE-AD34-8431F9E78288.png -------------------------------------------------------------------------------- /search-websites/workflow/B8400670-4FCE-4992-A55D-F81A336CC82C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/B8400670-4FCE-4992-A55D-F81A336CC82C.png -------------------------------------------------------------------------------- /search-websites/workflow/C12F319E-CAC7-4883-9CBA-65C4AFE009A8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/C12F319E-CAC7-4883-9CBA-65C4AFE009A8.png -------------------------------------------------------------------------------- /search-websites/workflow/C9A9C868-A7D4-475C-AF70-68A4A5D9B7D4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/C9A9C868-A7D4-475C-AF70-68A4A5D9B7D4.png -------------------------------------------------------------------------------- /search-websites/workflow/CBC50E38-D305-4BC6-BF89-0F106E3FA461.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/CBC50E38-D305-4BC6-BF89-0F106E3FA461.png -------------------------------------------------------------------------------- /search-websites/workflow/CBDD132A-64D6-4A52-90E3-18B988244724.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/CBDD132A-64D6-4A52-90E3-18B988244724.png -------------------------------------------------------------------------------- /search-websites/workflow/CE07D201-AA28-440D-BE08-6AFE7663ABC4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/CE07D201-AA28-440D-BE08-6AFE7663ABC4.png -------------------------------------------------------------------------------- /search-websites/workflow/D06CE468-9B5B-4ACC-B1C3-FAA5C4129FD2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/D06CE468-9B5B-4ACC-B1C3-FAA5C4129FD2.png -------------------------------------------------------------------------------- /search-websites/workflow/DA3436F6-9BAC-4AB4-8656-75C9AA080B70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/DA3436F6-9BAC-4AB4-8656-75C9AA080B70.png -------------------------------------------------------------------------------- /search-websites/workflow/DDA6D61F-E6A8-44D4-BE6E-81B10508AEC1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/DDA6D61F-E6A8-44D4-BE6E-81B10508AEC1.png -------------------------------------------------------------------------------- /search-websites/workflow/E57F3424-9E2D-456D-93A7-13DA368A615C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/E57F3424-9E2D-456D-93A7-13DA368A615C.png -------------------------------------------------------------------------------- /search-websites/workflow/E954D61A-11ED-44AE-9213-B281148306B2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/E954D61A-11ED-44AE-9213-B281148306B2.png -------------------------------------------------------------------------------- /search-websites/workflow/E96EDBD8-7A33-4173-B462-4B0EDC097EBB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/E96EDBD8-7A33-4173-B462-4B0EDC097EBB.png -------------------------------------------------------------------------------- /search-websites/workflow/EA56BE8E-1B06-49AD-99A3-14B9866FEBB2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/EA56BE8E-1B06-49AD-99A3-14B9866FEBB2.png -------------------------------------------------------------------------------- /search-websites/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/search-websites/workflow/icon.png -------------------------------------------------------------------------------- /todo-task/TODO Task.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/todo-task/TODO Task.alfredworkflow -------------------------------------------------------------------------------- /todo-task/readme.md: -------------------------------------------------------------------------------- 1 | # TODO Task - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/todo-task/TODO%20Task.alfredworkflow?raw=true) 2 | 3 | > Write a task and display it on TouchBar, in middle of screen or menu bar. 4 | 5 | ## Why use this? 6 | 7 | I use this workflow to create (or update) my current **active TODO**. 8 | 9 | The way this workflow works is that it creates a small `todo` file the Alfred data directory of this workflow. 10 | 11 | You can then by calling the external trigger or with `todo` trigger write the task you want to work on and it will be added as active TODO. 12 | 13 | ![](https://i.imgur.com/wxFuODw.png) 14 | 15 | In order to make sure I always keep my active TODO in mind, I display it on my TouchBar with [help of BetterTouchTool](https://github.com/nikitavoloboev/my-mac-os/tree/master/btt). 16 | 17 | ![](https://i.imgur.com/l9ueqja.png) 18 | 19 | There is also an action that will take selected text and put it as your active TODO. Or if you use [Keyboard Maestro](https://www.keyboardmaestro.com/main/), you can use [this macro](https://www.dropbox.com/s/mkn483urqme9hs2/Add%20selected%20text%20as%20todo.kmmacros?dl=1) to smartly grab text from various apps like 2Do tasks, Trello cards, or `TODO:`'s in code as well as any arbitrary text you want to make your active TODO. 20 | 21 | This workflow lets me work on tasks one by one in GTD style. No multi tasking. This approach works really well with [breaking down of complex tasks into smaller parts](https://wiki.nikitavoloboev.xyz/research/solving-problems.html). 22 | 23 | ## Contributing 24 | 25 | See [contribution guidelines](../contributing.md). 26 | -------------------------------------------------------------------------------- /todo-task/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/todo-task/workflow/icon.png -------------------------------------------------------------------------------- /todo-task/workflow/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bundleid 6 | nikivi.todo.task 7 | category 8 | Mine 9 | connections 10 | 11 | 0072C59D-3BEB-4DD7-94D3-C8EE2846B2A1 12 | 13 | 15101BC7-D97A-4FB2-9395-A7AD893544A8 14 | 15 | 16 | destinationuid 17 | A01F674A-AF96-4863-83D9-402E28CAED8B 18 | modifiers 19 | 0 20 | modifiersubtext 21 | 22 | vitoclose 23 | 24 | 25 | 26 | 1E07DCA9-9A95-48B4-AD53-11ACDAC37663 27 | 28 | 29 | destinationuid 30 | 0072C59D-3BEB-4DD7-94D3-C8EE2846B2A1 31 | modifiers 32 | 0 33 | modifiersubtext 34 | 35 | vitoclose 36 | 37 | 38 | 39 | destinationuid 40 | 15101BC7-D97A-4FB2-9395-A7AD893544A8 41 | modifiers 42 | 1048576 43 | modifiersubtext 44 | 45 | vitoclose 46 | 47 | 48 | 49 | 2C38BF03-D9A6-4387-8886-B5ED81016B36 50 | 51 | 52 | destinationuid 53 | 1E07DCA9-9A95-48B4-AD53-11ACDAC37663 54 | modifiers 55 | 0 56 | modifiersubtext 57 | 58 | vitoclose 59 | 60 | 61 | 62 | 8C5A1837-E1CF-4DD9-9B5A-DC0C4BC0A581 63 | 64 | 65 | destinationuid 66 | 0072C59D-3BEB-4DD7-94D3-C8EE2846B2A1 67 | modifiers 68 | 0 69 | modifiersubtext 70 | 71 | vitoclose 72 | 73 | 74 | 75 | 76 | createdby 77 | Nikita Voloboev 78 | description 79 | Write a task and display it on TouchBar, in middle of screen or menu bar 80 | disabled 81 | 82 | name 83 | TODO Task 84 | objects 85 | 86 | 87 | config 88 | 89 | triggerid 90 | new todo 91 | 92 | type 93 | alfred.workflow.trigger.external 94 | uid 95 | 2C38BF03-D9A6-4387-8886-B5ED81016B36 96 | version 97 | 1 98 | 99 | 100 | config 101 | 102 | concurrently 103 | 104 | escaping 105 | 102 106 | script 107 | # Create the data dir and TODO file if it doesn't exist already 108 | if [ ! -d ~/Library/Application\ Support/Alfred/Workflow\ Data/nikivi.todo.task ]; then 109 | mkdir ~/Library/Application\ Support/Alfred/Workflow\ Data/nikivi.todo.task 110 | touch ~/Library/Application\ Support/Alfred/Workflow\ Data/nikivi.todo.task/todo 111 | fi 112 | 113 | # cd to to the Alfred dir 114 | cd ~/Library/Application\ Support/Alfred/Workflow\ Data/nikivi.todo.task 115 | 116 | # Remove the file 117 | rm -rf todo 118 | 119 | # Write the TODO task to the file 120 | echo -e "$1" > todo 121 | scriptargtype 122 | 1 123 | scriptfile 124 | 125 | type 126 | 0 127 | 128 | type 129 | alfred.workflow.action.script 130 | uid 131 | 0072C59D-3BEB-4DD7-94D3-C8EE2846B2A1 132 | version 133 | 2 134 | 135 | 136 | config 137 | 138 | concurrently 139 | 140 | escaping 141 | 0 142 | script 143 | # THESE VARIABLES MUST BE SET. SEE THE ONEUPDATER README FOR AN EXPLANATION OF EACH. 144 | readonly remote_info_plist="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/todo-task/workflow/info.plist" 145 | readonly workflow_url="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/todo-task/TODO%20Task.alfredworkflow" 146 | readonly download_type='direct' 147 | readonly frequency_check='7' 148 | 149 | # FROM HERE ON, CODE SHOULD BE LEFT UNTOUCHED! 150 | function abort { 151 | echo "${1}" >&2 152 | exit 1 153 | } 154 | 155 | function url_exists { 156 | curl --silent --location --output /dev/null --fail --range 0-0 "${1}" 157 | } 158 | 159 | function notification { 160 | readonly local notificator="$(find . -type d -name 'Notificator.app')" 161 | if [[ -n "${notificator}" ]]; then 162 | "${notificator}/Contents/Resources/Scripts/notificator" --message "${1}" --title "${alfred_workflow_name}" --subtitle 'A new version is available' 163 | return 164 | fi 165 | 166 | readonly local terminal_notifier="$(find . -type f -name 'terminal-notifier')" 167 | if [[ -n "${terminal_notifier}" ]]; then 168 | "${terminal_notifier}" -title "${alfred_workflow_name}" -subtitle 'A new version is available' -message "${1}" 169 | return 170 | fi 171 | 172 | osascript -e "display notification \"${1}\" with title \"${alfred_workflow_name}\" subtitle \"A new version is available\"" 173 | } 174 | 175 | # Local sanity checks 176 | readonly local_info_plist='info.plist' 177 | readonly local_version="$(/usr/libexec/PlistBuddy -c 'print version' "${local_info_plist}")" 178 | 179 | [[ -n "${local_version}" ]] || abort 'You need to set a workflow version in the configuration sheet.' 180 | [[ "${download_type}" =~ ^(direct|page|github_release)$ ]] || abort "'download_type' (${download_type}) needs to be one of 'direct', 'page', or 'github_release'." 181 | [[ "${frequency_check}" =~ ^[0-9]+$ ]] || abort "'frequency_check' (${frequency_check}) needs to be a number." 182 | 183 | # Check for updates 184 | if [[ $(find "${local_info_plist}" -mtime +"${frequency_check}"d) ]]; then 185 | if ! url_exists "${remote_info_plist}"; then abort "'remote_info_plist' (${remote_info_plist}) appears to not be reachable."; fi # Remote sanity check 186 | 187 | readonly tmp_file="$(mktemp)" 188 | curl --silent --location --output "${tmp_file}" "${remote_info_plist}" 189 | readonly remote_version="$(/usr/libexec/PlistBuddy -c 'print version' "${tmp_file}")" 190 | 191 | if [[ "${local_version}" == "${remote_version}" ]]; then 192 | touch "${local_info_plist}" # Reset timer by touching local file 193 | exit 0 194 | fi 195 | 196 | if [[ "${download_type}" == 'page' ]]; then 197 | notification 'Opening download page…' 198 | open "${workflow_url}" 199 | exit 0 200 | fi 201 | 202 | download_url="$([[ "${download_type}" == 'github_release' ]] && curl --silent "https://api.github.com/repos/${workflow_url}/releases/latest" | grep 'browser_download_url' | head -1 | sed -E 's/.*browser_download_url": "(.*)"/\1/' || echo "${workflow_url}")" 203 | 204 | if url_exists "${download_url}"; then 205 | notification 'Downloading and installing…' 206 | curl --silent --location --output "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" "${download_url}" 207 | open "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" 208 | else 209 | abort "'workflow_url' (${download_url}) appears to not be reachable." 210 | fi 211 | fi 212 | scriptargtype 213 | 1 214 | scriptfile 215 | 216 | type 217 | 0 218 | 219 | type 220 | alfred.workflow.action.script 221 | uid 222 | B6A4F1AB-CFED-47B3-8BE3-7FE2595A3737 223 | version 224 | 2 225 | 226 | 227 | config 228 | 229 | argumenttype 230 | 0 231 | keyword 232 | todo 233 | subtext 234 | 235 | text 236 | {var:empty} 237 | withspace 238 | 239 | 240 | type 241 | alfred.workflow.input.keyword 242 | uid 243 | 1E07DCA9-9A95-48B4-AD53-11ACDAC37663 244 | version 245 | 1 246 | 247 | 248 | config 249 | 250 | action 251 | 0 252 | argument 253 | 1 254 | focusedappvariable 255 | 256 | focusedappvariablename 257 | 258 | hotkey 259 | 0 260 | hotmod 261 | 0 262 | hotstring 263 | 264 | leftcursor 265 | 266 | modsmode 267 | 0 268 | relatedAppsMode 269 | 0 270 | 271 | type 272 | alfred.workflow.trigger.hotkey 273 | uid 274 | 8C5A1837-E1CF-4DD9-9B5A-DC0C4BC0A581 275 | version 276 | 2 277 | 278 | 279 | config 280 | 281 | concurrently 282 | 283 | escaping 284 | 102 285 | script 286 | # Create the data dir and TODO file if it doesn't exist already 287 | if [ ! -d ~/Library/Application\ Support/Alfred/Workflow\ Data/nikivi.todo.task ]; then 288 | mkdir ~/Library/Application\ Support/Alfred/Workflow\ Data/nikivi.todo.task 289 | touch ~/Library/Application\ Support/Alfred/Workflow\ Data/nikivi.todo.task/todo 290 | fi 291 | 292 | # cd to to the Alfred dir 293 | cd ~/Library/Application\ Support/Alfred/Workflow\ Data/nikivi.todo.task 294 | 295 | # Remove the file 296 | rm -rf todo 297 | 298 | # Write the TODO task to the file 299 | echo -e "$1" > todo 300 | scriptargtype 301 | 1 302 | scriptfile 303 | 304 | type 305 | 0 306 | 307 | type 308 | alfred.workflow.action.script 309 | uid 310 | 15101BC7-D97A-4FB2-9395-A7AD893544A8 311 | version 312 | 2 313 | 314 | 315 | config 316 | 317 | applescript 318 | on alfred_script(q) 319 | tell application "Keyboard Maestro Engine" to do script "Move active todo to MindNode" 320 | end alfred_script 321 | cachescript 322 | 323 | 324 | type 325 | alfred.workflow.action.applescript 326 | uid 327 | A01F674A-AF96-4863-83D9-402E28CAED8B 328 | version 329 | 1 330 | 331 | 332 | readme 333 | Details on how to use this workflow are found in the GitHub repo attached to the workflow. 334 | 335 | Double click this workflow in sidebar -> Open website. 336 | 337 | Post any issues and feature requests you have there. 💚 338 | uidata 339 | 340 | 0072C59D-3BEB-4DD7-94D3-C8EE2846B2A1 341 | 342 | note 343 | Create TODO 344 | xpos 345 | 380 346 | ypos 347 | 30 348 | 349 | 15101BC7-D97A-4FB2-9395-A7AD893544A8 350 | 351 | note 352 | create TODO in MindNode 353 | xpos 354 | 380 355 | ypos 356 | 180 357 | 358 | 1E07DCA9-9A95-48B4-AD53-11ACDAC37663 359 | 360 | xpos 361 | 190 362 | ypos 363 | 30 364 | 365 | 2C38BF03-D9A6-4387-8886-B5ED81016B36 366 | 367 | xpos 368 | 30 369 | ypos 370 | 30 371 | 372 | 8C5A1837-E1CF-4DD9-9B5A-DC0C4BC0A581 373 | 374 | note 375 | Create TODO from selected text 376 | xpos 377 | 190 378 | ypos 379 | 160 380 | 381 | A01F674A-AF96-4863-83D9-402E28CAED8B 382 | 383 | xpos 384 | 545 385 | ypos 386 | 180 387 | 388 | B6A4F1AB-CFED-47B3-8BE3-7FE2595A3737 389 | 390 | colorindex 391 | 12 392 | note 393 | OneUpdater 394 | xpos 395 | 545 396 | ypos 397 | 30 398 | 399 | 400 | variablesdontexport 401 | 402 | version 403 | 1.9.3 404 | webaddress 405 | https://github.com/nikitavoloboev/small-workflows/blob/master/todo-task 406 | 407 | 408 | -------------------------------------------------------------------------------- /todo.md: -------------------------------------------------------------------------------- 1 | - clean up repo, readme 2 | - update workflows docs + rewrite in rust/ts or go (good code) 3 | -------------------------------------------------------------------------------- /useful-utilities/Useful utilities.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/useful-utilities/Useful utilities.alfredworkflow -------------------------------------------------------------------------------- /useful-utilities/readme.md: -------------------------------------------------------------------------------- 1 | # Useful utilities - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/useful-utilities/Useful%20utilities.alfredworkflow?raw=true) 2 | 3 | > Only has one utility, to search selected text in Alfred. 4 | 5 | ![](https://i.imgur.com/7TIrBQh.png) 6 | 7 | ## Contributing 8 | 9 | See [contribution guidelines](../contributing.md). 10 | -------------------------------------------------------------------------------- /useful-utilities/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/useful-utilities/workflow/icon.png -------------------------------------------------------------------------------- /useful-utilities/workflow/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bundleid 6 | nikivi.utilities 7 | category 8 | Mine 9 | connections 10 | 11 | 432BC856-0A4D-4BAB-B9D6-9C8C386C75D6 12 | 13 | 14 | destinationuid 15 | D9E9BC85-823E-4974-B595-8E95CC1A8F6D 16 | modifiers 17 | 0 18 | modifiersubtext 19 | 20 | vitoclose 21 | 22 | 23 | 24 | D7F39F5F-B33A-461E-8BCF-D0F5175035BE 25 | 26 | 27 | destinationuid 28 | D06FAE0A-3F34-4B96-9F3B-7B20D11112C3 29 | modifiers 30 | 0 31 | modifiersubtext 32 | 33 | vitoclose 34 | 35 | 36 | 37 | 38 | createdby 39 | Nikita Voloboev 40 | description 41 | Only has one utilty, to search selected text in Alfred 42 | disabled 43 | 44 | name 45 | Useful utilities 46 | objects 47 | 48 | 49 | config 50 | 51 | argumenttype 52 | 2 53 | keyword 54 | :update utilities 55 | subtext 56 | 57 | text 58 | Update utilities workflow 59 | withspace 60 | 61 | 62 | type 63 | alfred.workflow.input.keyword 64 | uid 65 | 432BC856-0A4D-4BAB-B9D6-9C8C386C75D6 66 | version 67 | 1 68 | 69 | 70 | config 71 | 72 | concurrently 73 | 74 | escaping 75 | 0 76 | script 77 | # THESE VARIABLES MUST BE SET. SEE THE ONEUPDATER README FOR AN EXPLANATION OF EACH. 78 | readonly remote_info_plist="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/useful-utilities/workflow/info.plist" 79 | readonly workflow_url="https://raw.githubusercontent.com/nikitavoloboev/small-workflows/master/useful-utilities/Useful%20utilities.alfredworkflow" 80 | readonly download_type='direct' 81 | readonly frequency_check='4' 82 | 83 | # FROM HERE ON, CODE SHOULD BE LEFT UNTOUCHED! 84 | function abort { 85 | echo "${1}" >&2 86 | exit 1 87 | } 88 | 89 | function url_exists { 90 | curl --silent --location --output /dev/null --fail --range 0-0 "${1}" 91 | } 92 | 93 | function notification { 94 | readonly local notificator="$(find . -type d -name 'Notificator.app')" 95 | if [[ -n "${notificator}" ]]; then 96 | "${notificator}/Contents/Resources/Scripts/notificator" --message "${1}" --title "${alfred_workflow_name}" --subtitle 'A new version is available' 97 | return 98 | fi 99 | 100 | readonly local terminal_notifier="$(find . -type f -name 'terminal-notifier')" 101 | if [[ -n "${terminal_notifier}" ]]; then 102 | "${terminal_notifier}" -title "${alfred_workflow_name}" -subtitle 'A new version is available' -message "${1}" 103 | return 104 | fi 105 | 106 | osascript -e "display notification \"${1}\" with title \"${alfred_workflow_name}\" subtitle \"A new version is available\"" 107 | } 108 | 109 | # Local sanity checks 110 | readonly local_info_plist='info.plist' 111 | readonly local_version="$(/usr/libexec/PlistBuddy -c 'print version' "${local_info_plist}")" 112 | 113 | [[ -n "${local_version}" ]] || abort 'You need to set a workflow version in the configuration sheet.' 114 | [[ "${download_type}" =~ ^(direct|page|github_release)$ ]] || abort "'download_type' (${download_type}) needs to be one of 'direct', 'page', or 'github_release'." 115 | [[ "${frequency_check}" =~ ^[0-9]+$ ]] || abort "'frequency_check' (${frequency_check}) needs to be a number." 116 | 117 | # Check for updates 118 | if [[ $(find "${local_info_plist}" -mtime +"${frequency_check}"d) ]]; then 119 | if ! url_exists "${remote_info_plist}"; then abort "'remote_info_plist' (${remote_info_plist}) appears to not be reachable."; fi # Remote sanity check 120 | 121 | readonly tmp_file="$(mktemp)" 122 | curl --silent --location --output "${tmp_file}" "${remote_info_plist}" 123 | readonly remote_version="$(/usr/libexec/PlistBuddy -c 'print version' "${tmp_file}")" 124 | 125 | if [[ "${local_version}" == "${remote_version}" ]]; then 126 | touch "${local_info_plist}" # Reset timer by touching local file 127 | exit 0 128 | fi 129 | 130 | if [[ "${download_type}" == 'page' ]]; then 131 | notification 'Opening download page…' 132 | open "${workflow_url}" 133 | exit 0 134 | fi 135 | 136 | download_url="$([[ "${download_type}" == 'github_release' ]] && curl --silent "https://api.github.com/repos/${workflow_url}/releases/latest" | grep 'browser_download_url' | head -1 | sed -E 's/.*browser_download_url": "(.*)"/\1/' || echo "${workflow_url}")" 137 | 138 | if url_exists "${download_url}"; then 139 | notification 'Downloading and installing…' 140 | curl --silent --location --output "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" "${download_url}" 141 | open "${HOME}/Downloads/${alfred_workflow_name}.alfredworkflow" 142 | else 143 | abort "'workflow_url' (${download_url}) appears to not be reachable." 144 | fi 145 | fi 146 | scriptargtype 147 | 1 148 | scriptfile 149 | 150 | type 151 | 0 152 | 153 | type 154 | alfred.workflow.action.script 155 | uid 156 | D9E9BC85-823E-4974-B595-8E95CC1A8F6D 157 | version 158 | 2 159 | 160 | 161 | config 162 | 163 | action 164 | 1 165 | argument 166 | 1 167 | focusedappvariable 168 | 169 | focusedappvariablename 170 | 171 | hotkey 172 | 13 173 | hotmod 174 | 1310720 175 | hotstring 176 | W 177 | leftcursor 178 | 179 | modsmode 180 | 0 181 | relatedAppsMode 182 | 0 183 | 184 | type 185 | alfred.workflow.trigger.hotkey 186 | uid 187 | 6402E710-5A01-4E8C-9EC5-6E26CFB6ECE9 188 | version 189 | 2 190 | 191 | 192 | config 193 | 194 | triggerid 195 | search alfred 196 | 197 | type 198 | alfred.workflow.trigger.external 199 | uid 200 | D7F39F5F-B33A-461E-8BCF-D0F5175035BE 201 | version 202 | 1 203 | 204 | 205 | config 206 | 207 | argument 208 | {query} 209 | leftcursor 210 | 211 | 212 | type 213 | alfred.workflow.utility.showalfred 214 | uid 215 | D06FAE0A-3F34-4B96-9F3B-7B20D11112C3 216 | version 217 | 1 218 | 219 | 220 | readme 221 | Details on how to use this workflow are found in the GitHub repo attached to the workflow. 222 | 223 | Double click this workflow in sidebar -> Open website. 224 | 225 | Post any issues and feature requests you have there. 💜 226 | uidata 227 | 228 | 432BC856-0A4D-4BAB-B9D6-9C8C386C75D6 229 | 230 | note 231 | Type .update objects if you want to check if there is update available 232 | xpos 233 | 270 234 | ypos 235 | 30 236 | 237 | 6402E710-5A01-4E8C-9EC5-6E26CFB6ECE9 238 | 239 | xpos 240 | 30 241 | ypos 242 | 30 243 | 244 | D06FAE0A-3F34-4B96-9F3B-7B20D11112C3 245 | 246 | xpos 247 | 225 248 | ypos 249 | 260 250 | 251 | D7F39F5F-B33A-461E-8BCF-D0F5175035BE 252 | 253 | xpos 254 | 60 255 | ypos 256 | 230 257 | 258 | D9E9BC85-823E-4974-B595-8E95CC1A8F6D 259 | 260 | colorindex 261 | 5 262 | note 263 | Run :update utilities to update this workflow 264 | xpos 265 | 440 266 | ypos 267 | 30 268 | 269 | 270 | version 271 | 1.2 272 | webaddress 273 | https://github.com/nikitavoloboev/small-workflows/blob/master/useful-utilities 274 | 275 | 276 | -------------------------------------------------------------------------------- /wifi-tools/WiFi tools.alfredworkflow: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/wifi-tools/WiFi tools.alfredworkflow -------------------------------------------------------------------------------- /wifi-tools/readme.md: -------------------------------------------------------------------------------- 1 | # WiFi Tools - [Download](https://github.com/nikitavoloboev/small-workflows/blob/master/wifi-tools/WiFi%20tools.alfredworkflow?raw=true) 2 | 3 | > Check WiFi connection / Restart WiFi / Toggle it on/off. 4 | 5 | It can: 6 | 7 | 1. **Check WiFi** - It pings google.com and if there is no response, you are offline and you get notification on the top. 8 | 2. **Restart WiFi** - Turns the WiFi on and off. 9 | 3. **Toggle WiFi on/off** - If on, will turn it off, if off will turn it on. 10 | 11 | ![](https://i.imgur.com/KpHIpNl.png) 12 | 13 | ## Contributing 14 | 15 | See [contribution guidelines](../contributing.md). 16 | -------------------------------------------------------------------------------- /wifi-tools/workflow/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikitavoloboev/alfred-past/e5356575f1f76ae5e48fabe611defc5a083a09da/wifi-tools/workflow/icon.png --------------------------------------------------------------------------------