| // ==UserScript== | |
| // @name Vikunja Quick Project Switch (try.vikunja.io) | |
| // @namespace http://tampermonkey.net/ | |
| // @version 1.3 | |
| // @description Adds a button to quickly move tasks to other projects, add tags, and delete tasks in Vikunja. | |
| // @author Yandrik | |
| // @match https://try.vikunja.io/* | |
| // @grant GM_addStyle | |
| // @grant GM_xmlhttpRequest | |
| // ==/UserScript== |
| // A postcss plugin that allows partial-global Vue SFC scoped CSS selectors. | |
| // | |
| // It introduces the :scoped() pseudo-selector. Use this inside Vue's | |
| // :global() to once again make something scoped. This is useful | |
| // e.g. if you have an attribute/class on the html element to select | |
| // theme or locale. | |
| // | |
| // ## Status | |
| // | |
| // This works with (at least) Nuxt 3 on Vue 3.3.4. It has not received much |
| const ordinalizeNumber = n => { | |
| const rule = new Intl.PluralRules('en-US', { type: 'ordinal' }).select(n); | |
| const suffix = ({ | |
| one: 'st', | |
| two: 'nd', | |
| few: 'rd', | |
| other: 'th', | |
| })[rule]; | |
| return `${n}${suffix}`; | |
| } |
Hi! On Thursday 25 April 2021, I entirely switched from macOS to Linux: https://maelvls.dev/evolution-of-my-home-office/. I took note of every adjustment I had to make along the way. I use Ubuntu "vanilla" (with Gnome as my desktop manager).
🔥 Update 26 June 2023: I am abandoning "desktop" Linux! I can't bear having to work around everything all the time, not even counting the tons of problems that occur whenever I do a major version upgrade (e.g., when I upgraded from 21.10 to 22.04, my PPAs broken obviously, and also I lost all the hack I had made to the
/etcto work around problems). I am officially back to macOS starting 26 June 2023. I'll still use my Linux workstation remotely over Mosh, but not as a desktop environment. To learn more: https://hackmd.io/@maelvls/my-macos-tweaks
My other articles:
| /* | |
| * Viktor's Roam Mobile Double tap to Exluce Filters and Right click on bullets | |
| * version: 0.2 | |
| * author: @ViktorTabori | |
| * | |
| * How to install it: | |
| * - go to page [[roam/js]] | |
| * - create a node with: { {[[roam/js]]}} | |
| * - create a clode block under it, and change its type from clojure to javascript | |
| * - allow the running of the javascript on the {{[[roam/js]]}} node |
| (function () { | |
| function loadZendeskChat(callback) { | |
| var zdscript = document.createElement('script'); | |
| zdscript.setAttribute('id','ze-snippet'); | |
| zdscript.src = 'https://static.zdassets.com/ekr/snippet.js?key=XXX-XXX-XXX-XXX'; | |
| (document.getElementsByTagName('body')[0]).appendChild(zdscript); | |
| window.zdonload = setInterval(function(){ | |
| if(typeof zE !== "undefined" && typeof zE.activate !== "undefined") { |
| Favorites: | |
| Unrefined: | |
| !(@home|@$WIFE|@phone|@laptop|@desk|@errand|@office|##$EMPLOYER|##Someday/Maybe) & !search:* | | |
| (no priority & !search:* & !recurring & !##Someday/Maybe) | | |
| (!search:: & !##Someday/Maybe & !recurring & !no priority) | | |
| ##Inbox, | |
| (##Someday/Maybe|@not_now) & (!no due date|@next) | |
| Home: |
| .cursor { | |
| cursor: url("cursor.png") 0 0, pointer; /* Legacy */ | |
| cursor: url("cursor.svg") 0 0, pointer; /* FF */ | |
| cursor: -webkit-image-set(url("cursor.png") 1x, url("[email protected]") 2x) 0 0, pointer; /* Webkit */ | |
| } |