Additional dotfiles
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
[General]
|
||||
shown-welcome=true
|
||||
|
||||
[bell]
|
||||
end=qrc:/sounds/chime.mp3
|
||||
small-end=qrc:/sounds/chime.mp3
|
||||
|
||||
[break]
|
||||
big-after=6
|
||||
flash-speed=25
|
||||
@@ -7,5 +7,5 @@ import = [
|
||||
normal = {family = "CaskaydiaMonoNerdFont"}
|
||||
size = 14
|
||||
|
||||
[cursor]
|
||||
smooth_motion_factor = 0.8
|
||||
[window]
|
||||
opacity = 0.9
|
||||
|
||||
@@ -8,10 +8,14 @@ alias rein="sudo dnf reinstall -y"
|
||||
alias se="sudo dnf search"
|
||||
alias re="sudo dnf remove"
|
||||
alias up="sudo dnf update"
|
||||
alias downgrade="sudo dnf downgrade"
|
||||
alias sys="sudo systemctl"
|
||||
alias sysu="systemctl --user"
|
||||
|
||||
alias nv="nvim"
|
||||
alias kernel="uname -r"
|
||||
alias gpu="inxi -Gxz"
|
||||
alias repo="sudo dnf copr"
|
||||
|
||||
alias hyprconf="nvim ~/dotfiles/.config/hypr/hyprland.conf"
|
||||
alias i3conf="nvim ~/dotfiles/.config/i3/config"
|
||||
|
||||
@@ -6,23 +6,20 @@
|
||||
// "width": 10
|
||||
// },
|
||||
"logo": {
|
||||
"type": "small"
|
||||
"type": "none"
|
||||
},
|
||||
"modules": [
|
||||
"title",
|
||||
"separator",
|
||||
"os",
|
||||
"kernel",
|
||||
"uptime",
|
||||
"packages",
|
||||
"shell",
|
||||
"de",
|
||||
"terminal",
|
||||
"terminalfont",
|
||||
"kernel",
|
||||
"cpu",
|
||||
"gpu",
|
||||
"memory",
|
||||
"swap",
|
||||
{
|
||||
"type":"gpu",
|
||||
"format":"{vendor} {name} | {driver}"
|
||||
},
|
||||
"disk",
|
||||
"localip",
|
||||
"battery",
|
||||
@@ -31,3 +28,4 @@
|
||||
"colors"
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
source ~/.config/aliases
|
||||
fastfetch
|
||||
set fish_greeting
|
||||
if status is-interactive
|
||||
# Commands to run in interactive sessions can go here
|
||||
end
|
||||
|
||||
fish_add_path /home/cory/.spicetify
|
||||
|
||||
@@ -33,3 +33,4 @@ SETUVAR fish_pager_color_description:yellow\x1e\x2di
|
||||
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
||||
SETUVAR fish_pager_color_selected_background:\x2dr
|
||||
SETUVAR fish_user_paths:/home/cory/\x2espicetify
|
||||
|
||||
+11
-1
@@ -34,10 +34,12 @@ require("config.lazy")
|
||||
vim.cmd.colorscheme("everforest")
|
||||
vim.api.nvim_set_hl(0, "Normal", { bg = "none" })
|
||||
vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" })
|
||||
vim.api.nvim_set_hl(0, 'FloatBorder', { bg = 'none' })
|
||||
vim.api.nvim_set_hl(0, 'Pmenu', { bg = 'none' })
|
||||
|
||||
-- Autocompletion
|
||||
vim.diagnostic.config({ virtual_text = { current_line = true } })
|
||||
vim.lsp.enable({ "lua_ls", "rust_analyzer", "ts_ls", "pyright", "html", "cssls", "gopls", "lemminx", "marksman" });
|
||||
vim.lsp.enable({ "lua_ls", "rust_analyzer", "ts_ls", "pyright", "html", "cssls", "cssmodules_ls", "gopls", "lemminx", "marksman" });
|
||||
|
||||
-- Spell Checking
|
||||
local spell_types = { "text", "plaintex", "typst", "gitcommit", "markdown" }
|
||||
@@ -50,3 +52,11 @@ vim.api.nvim_create_autocmd({ "FileType" }, {
|
||||
end,
|
||||
desc = "Enable spellcheck for defined filetypes"
|
||||
})
|
||||
|
||||
-- Autosave on exit insert mode
|
||||
vim.o.autowriteall = true
|
||||
vim.api.nvim_create_autocmd({ 'InsertLeavePre', 'TextChanged', 'TextChangedP' }, {
|
||||
pattern = '*', callback = function()
|
||||
vim.cmd('silent! write')
|
||||
end
|
||||
})
|
||||
|
||||
@@ -6,14 +6,17 @@
|
||||
"cord.nvim": { "branch": "master", "commit": "85d623661218c785379a554c59c71d1edde07114" },
|
||||
"everforest-nvim": { "branch": "main", "commit": "2eb7c348f880ba93de4d98cae049c9441f5d4d49" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||
"fzf-lua": { "branch": "main", "commit": "ce5a5fa2902933e7b4563ca78210254169463cb6" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" },
|
||||
"live-preview.nvim": { "branch": "main", "commit": "35ddc5a99499d1d2f4adefb7e92d0c537353fdec" },
|
||||
"lualine-macro-recording.nvim": { "branch": "main", "commit": "e2dcf63ba74e6111b53e1520a4f8a17a3d7427a1" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "0c6cca9f2c63dadeb9225c45bc92bb95a151d4af" },
|
||||
"mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" },
|
||||
"maximizer.nvim": { "branch": "main", "commit": "8e2e71ce705400b10ef02a25ef2528bb078514a2" },
|
||||
"mini.icons": { "branch": "main", "commit": "397ed3807e96b59709ef3292f0a3e253d5c1dc0a" },
|
||||
"mini.pick": { "branch": "main", "commit": "be6490ae9d7038b9f5185d95a8060054f9b23666" },
|
||||
"noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" },
|
||||
"nui.nvim": { "branch": "main", "commit": "7cd18e73cfbd70e1546931b7268b3eebaeff9391" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" },
|
||||
@@ -31,8 +34,9 @@
|
||||
"time-tracker.nvim": { "branch": "master", "commit": "c84998bbadb1afca8e09943b1c14bafe1711bb9a" },
|
||||
"toggleterm.nvim": { "branch": "main", "commit": "9a88eae817ef395952e08650b3283726786fb5fb" },
|
||||
"tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" },
|
||||
"true-zen.nvim": { "branch": "main", "commit": "2b9e210e0d1a735e1fa85ec22190115dffd963aa" },
|
||||
"twilight.nvim": { "branch": "main", "commit": "1584c0b0a979b71fd86b18d302ba84e9aba85b1b" },
|
||||
"vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" },
|
||||
"yazi.nvim": { "branch": "main", "commit": "e2ddbaa88ec61d0b96e3d53ba851b0e7a0b36f14" },
|
||||
"zen-mode.nvim": { "branch": "main", "commit": "863f150ca321b3dd8aa1a2b69b5f411a220e144f" }
|
||||
"yazi.nvim": { "branch": "main", "commit": "e2ddbaa88ec61d0b96e3d53ba851b0e7a0b36f14" }
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
return {
|
||||
'vyfor/cord.nvim',
|
||||
build = ':Cord update',
|
||||
-- opts = {}
|
||||
}
|
||||
@@ -5,5 +5,6 @@ return {
|
||||
config = function ()
|
||||
background = "soft"
|
||||
ui_contrast = "low"
|
||||
transparent = true
|
||||
end
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
return {
|
||||
"cdmill/focus.nvim",
|
||||
cmd = { "Focus", "Zen", "Narrow" },
|
||||
keys = {
|
||||
{
|
||||
"<A-z>",
|
||||
"<cmd>Focus<cr>",
|
||||
desc = "Toggle Focus Mode"
|
||||
}
|
||||
},
|
||||
opts = {
|
||||
window = {
|
||||
backdrop = 0.0
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
return {
|
||||
'brianhuster/live-preview.nvim',
|
||||
dependencies = {
|
||||
-- You can choose one of the following pickers
|
||||
'nvim-telescope/telescope.nvim',
|
||||
'ibhagwan/fzf-lua',
|
||||
'echasnovski/mini.pick',
|
||||
'folke/snacks.nvim',
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>sl",
|
||||
"<cmd>LivePreview start<cr>",
|
||||
desc = "Start Live Preview"
|
||||
}
|
||||
},
|
||||
opts = {}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
return {
|
||||
"folke/twilight.nvim",
|
||||
opts = {
|
||||
-- your configuration comes here
|
||||
-- or leave it empty to use the default settings
|
||||
-- refer to the configuration section below
|
||||
}
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
return {
|
||||
"folke/zen-mode.nvim",
|
||||
opts = {
|
||||
window = {
|
||||
backdrop = 0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -1 +1 @@
|
||||
4b0f4407-a1a3-4bd1-b1c3-443eb396506f
|
||||
78a3a4f9-fb3d-44a3-b586-5fc9ab8e939b
|
||||
@@ -1 +1 @@
|
||||
6d446931-7421-42b0-89dd-0cd902eb4737
|
||||
5b20bf67-dcf6-4372-87db-d1c1b29c2029
|
||||
@@ -1 +1 @@
|
||||
0ed133e5-956e-469d-ae55-b7525bb88fd6
|
||||
f5774298-f23f-4349-9568-be08faaccbbb
|
||||
@@ -1 +1 @@
|
||||
3ff48d18-f52e-448c-a0c2-6acebc8a846e
|
||||
11bab87e-a1e9-478f-a177-134c33e86c99
|
||||
+4
-3
@@ -171,10 +171,11 @@
|
||||
},
|
||||
"active": "2ce026f3ab9af9f8",
|
||||
"lastOpenFiles": [
|
||||
"Untitled.canvas",
|
||||
"Rating Overview/Needs Met.md",
|
||||
"Untitled.base",
|
||||
"Rating Overview/Page Quality.md",
|
||||
"Rating Overview/Needs Met.md",
|
||||
"Rating Overview/Additional Notes.md",
|
||||
"Untitled.canvas",
|
||||
"Untitled.base",
|
||||
"Untitled 3.base",
|
||||
"Untitled 1.base",
|
||||
"Untitled 2.base",
|
||||
|
||||
Vendored
-3
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"vimMode": true
|
||||
}
|
||||
Vendored
-1
@@ -1 +0,0 @@
|
||||
{}
|
||||
-4
@@ -1,4 +0,0 @@
|
||||
[
|
||||
"obsidian-prozen",
|
||||
"cm-typewriter-scroll-obsidian"
|
||||
]
|
||||
-33
@@ -1,33 +0,0 @@
|
||||
{
|
||||
"file-explorer": true,
|
||||
"global-search": true,
|
||||
"switcher": true,
|
||||
"graph": true,
|
||||
"backlink": true,
|
||||
"canvas": true,
|
||||
"outgoing-link": true,
|
||||
"tag-pane": true,
|
||||
"footnotes": false,
|
||||
"properties": false,
|
||||
"page-preview": true,
|
||||
"daily-notes": true,
|
||||
"templates": true,
|
||||
"note-composer": true,
|
||||
"command-palette": true,
|
||||
"slash-command": false,
|
||||
"editor-status": true,
|
||||
"bookmarks": true,
|
||||
"markdown-importer": false,
|
||||
"zk-prefixer": false,
|
||||
"random-note": false,
|
||||
"outline": true,
|
||||
"word-count": true,
|
||||
"slides": false,
|
||||
"audio-recorder": false,
|
||||
"workspaces": false,
|
||||
"file-recovery": true,
|
||||
"publish": false,
|
||||
"sync": true,
|
||||
"bases": true,
|
||||
"webviewer": false
|
||||
}
|
||||
Vendored
-10
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"obsidian-prozen:zenmode": [
|
||||
{
|
||||
"modifiers": [
|
||||
"Alt"
|
||||
],
|
||||
"key": "Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,427 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
var obsidian = require('obsidian');
|
||||
var state = require('@codemirror/state');
|
||||
var view = require('@codemirror/view');
|
||||
|
||||
/*! *****************************************************************************
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
***************************************************************************** */
|
||||
/* global Reflect, Promise */
|
||||
|
||||
var extendStatics = function(d, b) {
|
||||
extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
||||
return extendStatics(d, b);
|
||||
};
|
||||
|
||||
function __extends(d, b) {
|
||||
if (typeof b !== "function" && b !== null)
|
||||
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
}
|
||||
|
||||
function __awaiter(thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
}
|
||||
|
||||
function __generator(thisArg, body) {
|
||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
||||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
||||
function step(op) {
|
||||
if (f) throw new TypeError("Generator is already executing.");
|
||||
while (_) try {
|
||||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
||||
if (y = 0, t) op = [op[0] & 2, t.value];
|
||||
switch (op[0]) {
|
||||
case 0: case 1: t = op; break;
|
||||
case 4: _.label++; return { value: op[1], done: false };
|
||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||||
default:
|
||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||||
if (t[2]) _.ops.pop();
|
||||
_.trys.pop(); continue;
|
||||
}
|
||||
op = body.call(thisArg, _);
|
||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||
}
|
||||
}
|
||||
|
||||
// all credit to azu: https://github.com/azu/codemirror-typewriter-scrolling/blob/b0ac076d72c9445c96182de87d974de2e8cc56e2/typewriter-scrolling.js
|
||||
var movedByMouse = false;
|
||||
CodeMirror.commands.scrollSelectionToCenter = function (cm) {
|
||||
var cursor = cm.getCursor('head');
|
||||
var charCoords = cm.charCoords(cursor, "local");
|
||||
var top = charCoords.top;
|
||||
var halfLineHeight = (charCoords.bottom - top) / 2;
|
||||
var halfWindowHeight = cm.getWrapperElement().offsetHeight / 2;
|
||||
var scrollTo = Math.round((top - halfWindowHeight + halfLineHeight));
|
||||
cm.scrollTo(null, scrollTo);
|
||||
};
|
||||
CodeMirror.defineOption("typewriterScrolling", false, function (cm, val, old) {
|
||||
if (old && old != CodeMirror.Init) {
|
||||
const linesEl = cm.getScrollerElement().querySelector('.CodeMirror-lines');
|
||||
linesEl.style.paddingTop = null;
|
||||
linesEl.style.paddingBottom = null;
|
||||
cm.off("cursorActivity", onCursorActivity);
|
||||
cm.off("refresh", onRefresh);
|
||||
cm.off("mousedown", onMouseDown);
|
||||
cm.off("keydown", onKeyDown);
|
||||
cm.off("beforeChange", onBeforeChange);
|
||||
}
|
||||
if (val) {
|
||||
onRefresh(cm);
|
||||
cm.on("cursorActivity", onCursorActivity);
|
||||
cm.on("refresh", onRefresh);
|
||||
cm.on("mousedown", onMouseDown);
|
||||
cm.on("keydown", onKeyDown);
|
||||
cm.on("beforeChange", onBeforeChange);
|
||||
}
|
||||
});
|
||||
function onMouseDown() {
|
||||
movedByMouse = true;
|
||||
}
|
||||
const modiferKeys = ["Alt", "AltGraph", "CapsLock", "Control", "Fn", "FnLock", "Hyper", "Meta", "NumLock", "ScrollLock", "Shift", "Super", "Symbol", "SymbolLock"];
|
||||
function onKeyDown(cm, e) {
|
||||
if (!modiferKeys.includes(e.key)) {
|
||||
movedByMouse = false;
|
||||
}
|
||||
}
|
||||
function onBeforeChange() {
|
||||
movedByMouse = false;
|
||||
}
|
||||
function onCursorActivity(cm) {
|
||||
const linesEl = cm.getScrollerElement().querySelector('.CodeMirror-lines');
|
||||
if (cm.getSelection().length !== 0) {
|
||||
linesEl.classList.add("selecting");
|
||||
}
|
||||
else {
|
||||
linesEl.classList.remove("selecting");
|
||||
}
|
||||
|
||||
if(!movedByMouse) {
|
||||
cm.execCommand("scrollSelectionToCenter");
|
||||
}
|
||||
}
|
||||
function onRefresh(cm) {
|
||||
const halfWindowHeight = cm.getWrapperElement().offsetHeight / 2;
|
||||
const linesEl = cm.getScrollerElement().querySelector('.CodeMirror-lines');
|
||||
linesEl.style.paddingTop = `${halfWindowHeight}px`;
|
||||
linesEl.style.paddingBottom = `${halfWindowHeight}px`; // Thanks @walulula!
|
||||
if (cm.getSelection().length === 0) {
|
||||
cm.execCommand("scrollSelectionToCenter");
|
||||
}
|
||||
}
|
||||
|
||||
var allowedUserEvents = /^(select|input|delete|undo|redo)(\..+)?$/;
|
||||
var disallowedUserEvents = /^(select.pointer)$/;
|
||||
var typewriterOffset = state.Facet.define({
|
||||
combine: function (values) { return values.length ? Math.min.apply(Math, values) : 0.5; }
|
||||
});
|
||||
var resetTypewriterScrollPaddingPlugin = view.ViewPlugin.fromClass(/** @class */ (function () {
|
||||
function class_1(view) {
|
||||
this.view = view;
|
||||
}
|
||||
class_1.prototype.update = function (update) {
|
||||
if (this.view.contentDOM.style.paddingTop) {
|
||||
this.view.contentDOM.style.paddingTop = "";
|
||||
this.view.contentDOM.style.paddingBottom = (update.view.dom.clientHeight / 2) + "px";
|
||||
}
|
||||
};
|
||||
return class_1;
|
||||
}()));
|
||||
var typewriterScrollPaddingPlugin = view.ViewPlugin.fromClass(/** @class */ (function () {
|
||||
function class_2(view) {
|
||||
this.view = view;
|
||||
this.topPadding = null;
|
||||
}
|
||||
class_2.prototype.update = function (update) {
|
||||
var offset = (update.view.dom.clientHeight * update.view.state.facet(typewriterOffset)) - (update.view.defaultLineHeight / 2);
|
||||
this.topPadding = offset + "px";
|
||||
if (this.topPadding != this.view.contentDOM.style.paddingTop) {
|
||||
this.view.contentDOM.style.paddingTop = this.topPadding;
|
||||
this.view.contentDOM.style.paddingBottom = (update.view.dom.clientHeight - offset) + "px";
|
||||
}
|
||||
};
|
||||
return class_2;
|
||||
}()));
|
||||
var typewriterScrollPlugin = view.ViewPlugin.fromClass(/** @class */ (function () {
|
||||
function class_3(view) {
|
||||
this.view = view;
|
||||
this.myUpdate = false;
|
||||
}
|
||||
class_3.prototype.update = function (update) {
|
||||
if (this.myUpdate)
|
||||
this.myUpdate = false;
|
||||
else {
|
||||
var userEvents = update.transactions.map(function (tr) { return tr.annotation(state.Transaction.userEvent); });
|
||||
var isAllowed = userEvents.reduce(function (result, event) { return result && allowedUserEvents.test(event) && !disallowedUserEvents.test(event); }, userEvents.length > 0);
|
||||
if (isAllowed) {
|
||||
this.myUpdate = true;
|
||||
this.centerOnHead(update);
|
||||
}
|
||||
}
|
||||
};
|
||||
class_3.prototype.centerOnHead = function (update) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var _this = this;
|
||||
return __generator(this, function (_a) {
|
||||
// can't update inside an update, so request the next animation frame
|
||||
window.requestAnimationFrame(function () {
|
||||
// current selection range
|
||||
if (update.state.selection.ranges.length == 1) {
|
||||
// only act on the one range
|
||||
var head = update.state.selection.main.head;
|
||||
var prevHead = update.startState.selection.main.head;
|
||||
// TODO: work out line number and use that instead? Is that even possible?
|
||||
// don't bother with this next part if the range (line??) hasn't changed
|
||||
if (prevHead != head) {
|
||||
// this is the effect that does the centering
|
||||
var offset = (update.view.dom.clientHeight * update.view.state.facet(typewriterOffset)) - (update.view.defaultLineHeight / 2);
|
||||
var effect = view.EditorView.scrollIntoView(head, { y: "start", yMargin: offset });
|
||||
// const effect = EditorView.scrollIntoView(head, { y: "center" });
|
||||
var transaction = _this.view.state.update({ effects: effect });
|
||||
_this.view.dispatch(transaction);
|
||||
}
|
||||
}
|
||||
});
|
||||
return [2 /*return*/];
|
||||
});
|
||||
});
|
||||
};
|
||||
return class_3;
|
||||
}()));
|
||||
function typewriterScroll(options) {
|
||||
if (options === void 0) { options = {}; }
|
||||
return [
|
||||
options.typewriterOffset == null ? [] : typewriterOffset.of(options.typewriterOffset),
|
||||
typewriterScrollPaddingPlugin,
|
||||
typewriterScrollPlugin
|
||||
];
|
||||
}
|
||||
function resetTypewriterSrcoll() {
|
||||
return [
|
||||
resetTypewriterScrollPaddingPlugin
|
||||
];
|
||||
}
|
||||
|
||||
var DEFAULT_SETTINGS = {
|
||||
enabled: true,
|
||||
typewriterOffset: 0.5,
|
||||
zenEnabled: false,
|
||||
zenOpacity: 0.25
|
||||
};
|
||||
var CMTypewriterScrollPlugin = /** @class */ (function (_super) {
|
||||
__extends(CMTypewriterScrollPlugin, _super);
|
||||
function CMTypewriterScrollPlugin() {
|
||||
var _this = _super !== null && _super.apply(this, arguments) || this;
|
||||
_this.extArray = [];
|
||||
_this.toggleTypewriterScroll = function (newValue) {
|
||||
if (newValue === void 0) { newValue = null; }
|
||||
// if no value is passed in, toggle the existing value
|
||||
if (newValue === null)
|
||||
newValue = !_this.settings.enabled;
|
||||
// assign the new value and call the correct enable / disable function
|
||||
(_this.settings.enabled = newValue)
|
||||
? _this.enableTypewriterScroll() : _this.disableTypewriterScroll();
|
||||
// save the new settings
|
||||
_this.saveData(_this.settings);
|
||||
};
|
||||
_this.changeTypewriterOffset = function (newValue) {
|
||||
_this.settings.typewriterOffset = newValue;
|
||||
if (_this.settings.enabled) {
|
||||
_this.disableTypewriterScroll();
|
||||
// delete the extension, so it gets recreated with the new value
|
||||
delete _this.ext;
|
||||
_this.enableTypewriterScroll();
|
||||
}
|
||||
_this.saveData(_this.settings);
|
||||
};
|
||||
_this.toggleZen = function (newValue) {
|
||||
if (newValue === void 0) { newValue = null; }
|
||||
// if no value is passed in, toggle the existing value
|
||||
if (newValue === null)
|
||||
newValue = !_this.settings.zenEnabled;
|
||||
// assign the new value and call the correct enable / disable function
|
||||
(_this.settings.zenEnabled = newValue)
|
||||
? _this.enableZen() : _this.disableZen();
|
||||
// save the new settings
|
||||
_this.saveData(_this.settings);
|
||||
};
|
||||
_this.changeZenOpacity = function (newValue) {
|
||||
if (newValue === void 0) { newValue = 0.25; }
|
||||
_this.settings.zenOpacity = newValue;
|
||||
_this.css.innerText = "body{--zen-opacity: ".concat(newValue, ";}");
|
||||
// save the new settings
|
||||
_this.saveData(_this.settings);
|
||||
};
|
||||
_this.enableTypewriterScroll = function () {
|
||||
// add the class
|
||||
document.body.classList.add('plugin-cm-typewriter-scroll');
|
||||
// register the codemirror add on setting
|
||||
_this.registerCodeMirror(function (cm) {
|
||||
// @ts-ignore
|
||||
cm.setOption("typewriterScrolling", true);
|
||||
});
|
||||
if (!_this.ext) {
|
||||
_this.ext = typewriterScroll({ typewriterOffset: _this.settings.typewriterOffset });
|
||||
_this.extArray = [_this.ext];
|
||||
_this.registerEditorExtension(_this.extArray);
|
||||
}
|
||||
else {
|
||||
_this.extArray.splice(0, _this.extArray.length);
|
||||
_this.extArray.push(_this.ext);
|
||||
_this.app.workspace.updateOptions();
|
||||
}
|
||||
};
|
||||
_this.disableTypewriterScroll = function () {
|
||||
// remove the class
|
||||
document.body.classList.remove('plugin-cm-typewriter-scroll');
|
||||
// remove the codemirror add on setting
|
||||
_this.app.workspace.iterateCodeMirrors(function (cm) {
|
||||
// @ts-ignore
|
||||
cm.setOption("typewriterScrolling", false);
|
||||
});
|
||||
// clear out the registered extension
|
||||
_this.extArray.splice(0, _this.extArray.length);
|
||||
_this.extArray.push(resetTypewriterSrcoll());
|
||||
_this.app.workspace.updateOptions();
|
||||
};
|
||||
_this.enableZen = function () {
|
||||
// add the class
|
||||
document.body.classList.add('plugin-cm-typewriter-scroll-zen');
|
||||
};
|
||||
_this.disableZen = function () {
|
||||
// remove the class
|
||||
document.body.classList.remove('plugin-cm-typewriter-scroll-zen');
|
||||
};
|
||||
return _this;
|
||||
}
|
||||
CMTypewriterScrollPlugin.prototype.onload = function () {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var _a, _b, _c, _d;
|
||||
return __generator(this, function (_e) {
|
||||
switch (_e.label) {
|
||||
case 0:
|
||||
_a = this;
|
||||
_c = (_b = Object).assign;
|
||||
_d = [DEFAULT_SETTINGS];
|
||||
return [4 /*yield*/, this.loadData()];
|
||||
case 1:
|
||||
_a.settings = _c.apply(_b, _d.concat([_e.sent()]));
|
||||
// enable the plugin (based on settings)
|
||||
if (this.settings.enabled)
|
||||
this.enableTypewriterScroll();
|
||||
if (this.settings.zenEnabled)
|
||||
this.enableZen();
|
||||
this.css = document.createElement('style');
|
||||
this.css.id = 'plugin-typewriter-scroll';
|
||||
this.css.setAttr('type', 'text/css');
|
||||
document.getElementsByTagName("head")[0].appendChild(this.css);
|
||||
this.css.innerText = "body{--zen-opacity: ".concat(this.settings.zenOpacity, ";}");
|
||||
// add the settings tab
|
||||
this.addSettingTab(new CMTypewriterScrollSettingTab(this.app, this));
|
||||
// add the commands / keyboard shortcuts
|
||||
this.addCommands();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
CMTypewriterScrollPlugin.prototype.onunload = function () {
|
||||
// disable the plugin
|
||||
this.disableTypewriterScroll();
|
||||
this.disableZen();
|
||||
};
|
||||
CMTypewriterScrollPlugin.prototype.addCommands = function () {
|
||||
var _this = this;
|
||||
// add the toggle on/off command
|
||||
this.addCommand({
|
||||
id: 'toggle-typewriter-sroll',
|
||||
name: 'Toggle On/Off',
|
||||
callback: function () { _this.toggleTypewriterScroll(); }
|
||||
});
|
||||
// toggle zen mode
|
||||
this.addCommand({
|
||||
id: 'toggle-typewriter-sroll-zen',
|
||||
name: 'Toggle Zen Mode On/Off',
|
||||
callback: function () { _this.toggleZen(); }
|
||||
});
|
||||
};
|
||||
return CMTypewriterScrollPlugin;
|
||||
}(obsidian.Plugin));
|
||||
var CMTypewriterScrollSettingTab = /** @class */ (function (_super) {
|
||||
__extends(CMTypewriterScrollSettingTab, _super);
|
||||
function CMTypewriterScrollSettingTab(app, plugin) {
|
||||
var _this = _super.call(this, app, plugin) || this;
|
||||
_this.plugin = plugin;
|
||||
return _this;
|
||||
}
|
||||
CMTypewriterScrollSettingTab.prototype.display = function () {
|
||||
var _this = this;
|
||||
var containerEl = this.containerEl;
|
||||
containerEl.empty();
|
||||
new obsidian.Setting(containerEl)
|
||||
.setName("Toggle Typewriter Scrolling")
|
||||
.setDesc("Turns typewriter scrolling on or off globally")
|
||||
.addToggle(function (toggle) {
|
||||
return toggle.setValue(_this.plugin.settings.enabled)
|
||||
.onChange(function (newValue) { _this.plugin.toggleTypewriterScroll(newValue); });
|
||||
});
|
||||
new obsidian.Setting(containerEl)
|
||||
.setName("Center offset")
|
||||
.setDesc("Positions the typewriter text at the specified percentage of the screen")
|
||||
.addSlider(function (slider) {
|
||||
return slider.setLimits(0, 100, 5)
|
||||
.setValue(_this.plugin.settings.typewriterOffset * 100)
|
||||
.onChange(function (newValue) { _this.plugin.changeTypewriterOffset(newValue / 100); });
|
||||
});
|
||||
new obsidian.Setting(containerEl)
|
||||
.setName("Zen Mode")
|
||||
.setDesc("Darkens non-active lines in the editor so you can focus on what you're typing")
|
||||
.addToggle(function (toggle) {
|
||||
return toggle.setValue(_this.plugin.settings.zenEnabled)
|
||||
.onChange(function (newValue) { _this.plugin.toggleZen(newValue); });
|
||||
});
|
||||
new obsidian.Setting(containerEl)
|
||||
.setName("Zen Opacity")
|
||||
.setDesc("The opacity of unfocused lines in zen mode")
|
||||
.addSlider(function (slider) {
|
||||
return slider.setLimits(0, 100, 5)
|
||||
.setValue(_this.plugin.settings.zenOpacity * 100)
|
||||
.onChange(function (newValue) { _this.plugin.changeZenOpacity(newValue / 100); });
|
||||
});
|
||||
};
|
||||
return CMTypewriterScrollSettingTab;
|
||||
}(obsidian.PluginSettingTab));
|
||||
|
||||
module.exports = CMTypewriterScrollPlugin;
|
||||
|
||||
|
||||
/* nosourcemap */
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"id": "cm-typewriter-scroll-obsidian",
|
||||
"name": "Typewriter Scroll",
|
||||
"author": "death_au",
|
||||
"authorUrl": "https://github.com/deathau",
|
||||
"description": "Typewriter-style scrolling which keeps the view centered in the editor.",
|
||||
"isDesktopOnly": false,
|
||||
"version": "0.2.2",
|
||||
"minAppVersion": "0.10.0"
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
body.plugin-cm-typewriter-scroll-zen .CodeMirror-lines:not(.selecting) .CodeMirror-code > :not(.CodeMirror-activeline) {
|
||||
opacity: var(--zen-opacity);
|
||||
}
|
||||
body.plugin-cm-typewriter-scroll-zen .cm-editor.cm-focused .cm-line:not(.cm-active) {
|
||||
opacity: var(--zen-opacity);
|
||||
}
|
||||
@@ -1,197 +0,0 @@
|
||||
/*
|
||||
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
||||
if you want to view the source, please visit the github repository of this plugin
|
||||
*/
|
||||
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __export = (target, all) => {
|
||||
for (var name in all)
|
||||
__defProp(target, name, { get: all[name], enumerable: true });
|
||||
};
|
||||
var __copyProps = (to, from, except, desc) => {
|
||||
if (from && typeof from === "object" || typeof from === "function") {
|
||||
for (let key of __getOwnPropNames(from))
|
||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||
}
|
||||
return to;
|
||||
};
|
||||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||||
|
||||
// main.ts
|
||||
var main_exports = {};
|
||||
__export(main_exports, {
|
||||
default: () => Prozen
|
||||
});
|
||||
module.exports = __toCommonJS(main_exports);
|
||||
var import_obsidian = require("obsidian");
|
||||
var DEFAULT_SETTINGS = {
|
||||
animationDuration: 2,
|
||||
showHeader: false,
|
||||
showScroll: false,
|
||||
showGraphControls: false,
|
||||
forceReadable: true,
|
||||
vignetteOpacity: 0.75,
|
||||
vignetteScaleLinear: 20,
|
||||
vignetteScaleRadial: 75
|
||||
};
|
||||
var Prozen = class extends import_obsidian.Plugin {
|
||||
async onload() {
|
||||
await this.loadSettings();
|
||||
this.addCommand({
|
||||
id: "zenmode",
|
||||
name: "Zen mode",
|
||||
callback: this.fullscreenMode.bind(this)
|
||||
});
|
||||
this.addSettingTab(new ProzenSettingTab(this.app, this));
|
||||
}
|
||||
onunload() {
|
||||
}
|
||||
async loadSettings() {
|
||||
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
|
||||
}
|
||||
async saveSettings() {
|
||||
await this.saveData(this.settings);
|
||||
}
|
||||
fullscreenMode() {
|
||||
const leaf = this.app.workspace.getActiveViewOfType(import_obsidian.ItemView).leaf;
|
||||
if (!leaf)
|
||||
return;
|
||||
if (leaf.view.getViewType() === "empty")
|
||||
return;
|
||||
const root = document.documentElement;
|
||||
root.style.setProperty("--fadeIn-duration", this.settings.animationDuration + "s");
|
||||
root.style.setProperty("--vignette-opacity", this.settings.vignetteOpacity);
|
||||
root.style.setProperty("--vignette-scale-linear", this.settings.vignetteScaleLinear + "%");
|
||||
root.style.setProperty("--vignette-scale-radial", this.settings.vignetteScaleRadial + "%");
|
||||
const containerEl = leaf.containerEl;
|
||||
if (!document.fullscreenElement) {
|
||||
containerEl.requestFullscreen();
|
||||
this.addStyles(leaf);
|
||||
} else {
|
||||
document.exitFullscreen();
|
||||
this.removeStyles(leaf);
|
||||
}
|
||||
containerEl.onfullscreenchange = () => {
|
||||
if (!document.fullscreenElement) {
|
||||
this.removeStyles(leaf);
|
||||
}
|
||||
};
|
||||
}
|
||||
addStyles(leaf) {
|
||||
const viewEl = leaf.view.contentEl;
|
||||
const header = leaf.view.headerEl;
|
||||
const isGraph = leaf.view.getViewType() === "graph";
|
||||
let graphControls;
|
||||
if (isGraph) {
|
||||
graphControls = leaf.view.dataEngine.controlsEl;
|
||||
}
|
||||
if (!this.settings.showScroll) {
|
||||
viewEl.classList.add("noscroll");
|
||||
}
|
||||
if (isGraph && !this.settings.showGraphControls) {
|
||||
graphControls.classList.add("hide");
|
||||
}
|
||||
isGraph ? viewEl.classList.add("vignette-radial") : viewEl.classList.add("vignette-linear");
|
||||
if (!isGraph && this.settings.forceReadable) {
|
||||
leaf.view.editMode.editorEl.classList.add("is-readable-line-width");
|
||||
}
|
||||
viewEl.classList.add("animate");
|
||||
this.settings.showHeader ? header.classList.add("animate") : header.classList.add("hide");
|
||||
}
|
||||
removeStyles(leaf) {
|
||||
const viewEl = leaf.view.contentEl;
|
||||
const header = leaf.view.headerEl;
|
||||
const isGraph = leaf.view.getViewType() === "graph";
|
||||
let graphControls;
|
||||
if (isGraph) {
|
||||
graphControls = leaf.view.dataEngine.controlsEl;
|
||||
graphControls.classList.remove("animate", "hide");
|
||||
} else if (!this.app.vault.getConfig("readableLineLength")) {
|
||||
leaf.view.editMode.editorEl.classList.remove("is-readable-line-width");
|
||||
}
|
||||
viewEl.classList.remove("vignette-linear", "vignette-radial", "animate", "noscroll");
|
||||
header.classList.remove("animate", "hide");
|
||||
}
|
||||
};
|
||||
var ProzenSettingTab = class extends import_obsidian.PluginSettingTab {
|
||||
constructor(app, plugin) {
|
||||
super(app, plugin);
|
||||
this.plugin = plugin;
|
||||
}
|
||||
display() {
|
||||
const { containerEl } = this;
|
||||
containerEl.empty();
|
||||
this.containerEl.createEl("h3", {
|
||||
text: "Vignette"
|
||||
});
|
||||
let vignetteOpacityNumber;
|
||||
new import_obsidian.Setting(containerEl).setName("Opacity").setDesc("Intensity of vignette's dimming effect. Set to 0 to turn vignetting off.").addSlider((slider) => slider.setLimits(0, 1, 0.01).setValue(this.plugin.settings.vignetteOpacity).onChange(async (value) => {
|
||||
vignetteOpacityNumber.innerText = " " + value.toString();
|
||||
this.plugin.settings.vignetteOpacity = value;
|
||||
await this.plugin.saveSettings();
|
||||
})).settingEl.createDiv("", (el) => {
|
||||
vignetteOpacityNumber = el;
|
||||
el.style.minWidth = "2.0em";
|
||||
el.style.textAlign = "right";
|
||||
el.innerText = " " + this.plugin.settings.vignetteOpacity.toString();
|
||||
});
|
||||
let vignetteScaleLinearNumber;
|
||||
new import_obsidian.Setting(containerEl).setName("Scale in text views").setDesc("Determines how close to the screen's center vignetting spreads from both sides of the screen, as linear gradients.").addSlider((slider) => slider.setLimits(5, 50, 5).setValue(this.plugin.settings.vignetteScaleLinear).onChange(async (value) => {
|
||||
vignetteScaleLinearNumber.innerText = " " + value.toString();
|
||||
this.plugin.settings.vignetteScaleLinear = value;
|
||||
await this.plugin.saveSettings();
|
||||
})).settingEl.createDiv("", (el) => {
|
||||
vignetteScaleLinearNumber = el;
|
||||
el.style.minWidth = "2.0em";
|
||||
el.style.textAlign = "right";
|
||||
el.innerText = " " + this.plugin.settings.vignetteScaleLinear.toString();
|
||||
});
|
||||
let vignetteScaleRadialNumber;
|
||||
new import_obsidian.Setting(containerEl).setName("Scale in graph view").setDesc("Determines how close to the screen's center vignetting spreads from borders of the screen, as a radial gradient.").addSlider((slider) => slider.setLimits(5, 100, 5).setValue(this.plugin.settings.vignetteScaleRadial).onChange(async (value) => {
|
||||
vignetteScaleRadialNumber.innerText = " " + value.toString();
|
||||
this.plugin.settings.vignetteScaleRadial = value;
|
||||
await this.plugin.saveSettings();
|
||||
})).settingEl.createDiv("", (el) => {
|
||||
vignetteScaleRadialNumber = el;
|
||||
el.style.minWidth = "2.0em";
|
||||
el.style.textAlign = "right";
|
||||
el.innerText = " " + this.plugin.settings.vignetteScaleRadial.toString();
|
||||
});
|
||||
this.containerEl.createEl("h3", {
|
||||
text: "Animation"
|
||||
});
|
||||
new import_obsidian.Setting(containerEl).setName("Fade-in duration").setDesc("The duration (in seconds) of fade-in animation on entering Zen mode").addText((text) => text.setPlaceholder("1.2").setValue(String(this.plugin.settings.animationDuration)).onChange(async (value) => {
|
||||
this.plugin.settings.animationDuration = Number(value);
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
this.containerEl.createEl("h3", {
|
||||
text: "Element Toggles"
|
||||
});
|
||||
new import_obsidian.Setting(containerEl).setName("Show header").setDesc("Show the tab's header in Zen mode").addToggle((toggle) => toggle.setValue(this.plugin.settings.showHeader).onChange(async (value) => {
|
||||
this.plugin.settings.showHeader = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName("Show scrollbar").setDesc("Show the scrollbar in Zen mode. If it is hidden, scrolling is still available with mousewheel, arrows, touchpad, etc.").addToggle((toggle) => toggle.setValue(this.plugin.settings.showScroll).onChange(async (value) => {
|
||||
this.plugin.settings.showScroll = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName("Show graph controls").setDesc("Show the graph view's controls in Zen mode").addToggle((toggle) => toggle.setValue(this.plugin.settings.showGraphControls).onChange(async (value) => {
|
||||
this.plugin.settings.showGraphControls = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
this.containerEl.createEl("h3", {
|
||||
text: "Misc"
|
||||
});
|
||||
new import_obsidian.Setting(containerEl).setName("Force content centering").setDesc("Center text content in Zen mode, even if in regular view it takes all of the screen's width (ignore 'Editor -> Readable line length' being off in Zen mode)").addToggle((toggle) => toggle.setValue(this.plugin.settings.forceReadable).onChange(async (value) => {
|
||||
this.plugin.settings.forceReadable = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/* nosourcemap */
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"id": "obsidian-prozen",
|
||||
"name": "ProZen",
|
||||
"version": "0.3",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "Enter Zen mode to focus on writing. The plugin expands current tab to full screen removing everything but content.",
|
||||
"author": "Moskvitin",
|
||||
"authorUrl": "https://moskvit.in",
|
||||
"isDesktopOnly": true
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
:root {
|
||||
--vignette-opacity: 1;
|
||||
--fadeIn-duration: "2s";
|
||||
--vignette-scale-linear: 20%;
|
||||
--vignette-scale-radial: 50%;
|
||||
}
|
||||
|
||||
.noscroll ::-webkit-scrollbar-thumb{
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.vignette-linear {
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
rgba(0, 0, 0, var(--vignette-opacity)) 0%,
|
||||
rgba(0, 0, 0, 0) var(--vignette-scale-linear),
|
||||
rgba(0, 0, 0, 0) calc(100% - var(--vignette-scale-linear)),
|
||||
rgba(0, 0, 0, var(--vignette-opacity)) 100%
|
||||
);
|
||||
}
|
||||
|
||||
.vignette-radial {
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgba(0, 0, 0, 0) calc(100% - var(--vignette-scale-radial)),
|
||||
rgba(0, 0, 0, var(--vignette-opacity)) 100%
|
||||
);
|
||||
}
|
||||
|
||||
.animate {
|
||||
animation: fadeIn var(--fadeIn-duration);
|
||||
}
|
||||
|
||||
.hide {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale(1.05);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
Vendored
-174
@@ -1,174 +0,0 @@
|
||||
{
|
||||
"main": {
|
||||
"id": "4dce6d2131d80a7b",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "c1657b069f3403bb",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "8647a1a7ea34b009",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "WS/Welcome.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Welcome"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "vertical"
|
||||
},
|
||||
"left": {
|
||||
"id": "b0fbf53297d24057",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "181497fca9eccc89",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "078de3f57c1ad7e4",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "file-explorer",
|
||||
"state": {
|
||||
"sortOrder": "alphabetical",
|
||||
"autoReveal": false
|
||||
},
|
||||
"icon": "lucide-folder-closed",
|
||||
"title": "Files"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b501cf4687ed923e",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "search",
|
||||
"state": {
|
||||
"query": "",
|
||||
"matchingCase": false,
|
||||
"explainSearch": false,
|
||||
"collapseAll": false,
|
||||
"extraContext": false,
|
||||
"sortOrder": "alphabetical"
|
||||
},
|
||||
"icon": "lucide-search",
|
||||
"title": "Search"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "3059ec290437ffeb",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "bookmarks",
|
||||
"state": {},
|
||||
"icon": "lucide-bookmark",
|
||||
"title": "Bookmarks"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 300
|
||||
},
|
||||
"right": {
|
||||
"id": "66b02d9b83652f9c",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "78b83f9bd8b427f3",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "6241b5db8266074e",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "backlink",
|
||||
"state": {
|
||||
"file": "WS/Welcome.md",
|
||||
"collapseAll": false,
|
||||
"extraContext": false,
|
||||
"sortOrder": "alphabetical",
|
||||
"showSearch": false,
|
||||
"searchQuery": "",
|
||||
"backlinkCollapsed": false,
|
||||
"unlinkedCollapsed": true
|
||||
},
|
||||
"icon": "links-coming-in",
|
||||
"title": "Backlinks for Welcome"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "5f49c332d179c319",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "outgoing-link",
|
||||
"state": {
|
||||
"file": "WS/Welcome.md",
|
||||
"linksCollapsed": false,
|
||||
"unlinkedCollapsed": true
|
||||
},
|
||||
"icon": "links-going-out",
|
||||
"title": "Outgoing links from Welcome"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "2b3c8e958d000a35",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "tag",
|
||||
"state": {
|
||||
"sortOrder": "frequency",
|
||||
"useHierarchy": true,
|
||||
"showSearch": false,
|
||||
"searchQuery": ""
|
||||
},
|
||||
"icon": "lucide-tags",
|
||||
"title": "Tags"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "57cad7f1ff3dd67c",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "outline",
|
||||
"state": {
|
||||
"file": "WS/Welcome.md",
|
||||
"followCursor": false,
|
||||
"showSearch": false,
|
||||
"searchQuery": ""
|
||||
},
|
||||
"icon": "lucide-list",
|
||||
"title": "Outline of Welcome"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 300,
|
||||
"collapsed": true
|
||||
},
|
||||
"left-ribbon": {
|
||||
"hiddenItems": {
|
||||
"switcher:Open quick switcher": false,
|
||||
"graph:Open graph view": false,
|
||||
"canvas:Create new canvas": false,
|
||||
"daily-notes:Open today's daily note": false,
|
||||
"templates:Insert template": false,
|
||||
"command-palette:Open command palette": false,
|
||||
"bases:Create new base": false
|
||||
}
|
||||
},
|
||||
"active": "8647a1a7ea34b009",
|
||||
"lastOpenFiles": []
|
||||
}
|
||||
Vendored
-1
@@ -1 +0,0 @@
|
||||
{}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{}
|
||||
@@ -1,4 +0,0 @@
|
||||
[
|
||||
"obsidian-prozen",
|
||||
"cm-typewriter-scroll-obsidian"
|
||||
]
|
||||
-33
@@ -1,33 +0,0 @@
|
||||
{
|
||||
"file-explorer": true,
|
||||
"global-search": true,
|
||||
"switcher": true,
|
||||
"graph": true,
|
||||
"backlink": true,
|
||||
"canvas": true,
|
||||
"outgoing-link": true,
|
||||
"tag-pane": true,
|
||||
"footnotes": false,
|
||||
"properties": false,
|
||||
"page-preview": true,
|
||||
"daily-notes": true,
|
||||
"templates": true,
|
||||
"note-composer": true,
|
||||
"command-palette": true,
|
||||
"slash-command": false,
|
||||
"editor-status": true,
|
||||
"bookmarks": true,
|
||||
"markdown-importer": false,
|
||||
"zk-prefixer": false,
|
||||
"random-note": false,
|
||||
"outline": true,
|
||||
"word-count": true,
|
||||
"slides": false,
|
||||
"audio-recorder": false,
|
||||
"workspaces": false,
|
||||
"file-recovery": true,
|
||||
"publish": false,
|
||||
"sync": true,
|
||||
"bases": true,
|
||||
"webviewer": false
|
||||
}
|
||||
Vendored
-22
@@ -1,22 +0,0 @@
|
||||
{
|
||||
"collapse-filter": true,
|
||||
"search": "",
|
||||
"showTags": false,
|
||||
"showAttachments": false,
|
||||
"hideUnresolved": false,
|
||||
"showOrphans": true,
|
||||
"collapse-color-groups": true,
|
||||
"colorGroups": [],
|
||||
"collapse-display": true,
|
||||
"showArrow": false,
|
||||
"textFadeMultiplier": 0,
|
||||
"nodeSizeMultiplier": 1,
|
||||
"lineSizeMultiplier": 1,
|
||||
"collapse-forces": true,
|
||||
"centerStrength": 0.518713248970312,
|
||||
"repelStrength": 10,
|
||||
"linkStrength": 1,
|
||||
"linkDistance": 250,
|
||||
"scale": 1,
|
||||
"close": true
|
||||
}
|
||||
Vendored
-10
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"obsidian-prozen:zenmode": [
|
||||
{
|
||||
"modifiers": [
|
||||
"Alt"
|
||||
],
|
||||
"key": "Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,427 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
var obsidian = require('obsidian');
|
||||
var state = require('@codemirror/state');
|
||||
var view = require('@codemirror/view');
|
||||
|
||||
/*! *****************************************************************************
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
***************************************************************************** */
|
||||
/* global Reflect, Promise */
|
||||
|
||||
var extendStatics = function(d, b) {
|
||||
extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
||||
return extendStatics(d, b);
|
||||
};
|
||||
|
||||
function __extends(d, b) {
|
||||
if (typeof b !== "function" && b !== null)
|
||||
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
}
|
||||
|
||||
function __awaiter(thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
}
|
||||
|
||||
function __generator(thisArg, body) {
|
||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
||||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
||||
function step(op) {
|
||||
if (f) throw new TypeError("Generator is already executing.");
|
||||
while (_) try {
|
||||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
||||
if (y = 0, t) op = [op[0] & 2, t.value];
|
||||
switch (op[0]) {
|
||||
case 0: case 1: t = op; break;
|
||||
case 4: _.label++; return { value: op[1], done: false };
|
||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||||
default:
|
||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||||
if (t[2]) _.ops.pop();
|
||||
_.trys.pop(); continue;
|
||||
}
|
||||
op = body.call(thisArg, _);
|
||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||
}
|
||||
}
|
||||
|
||||
// all credit to azu: https://github.com/azu/codemirror-typewriter-scrolling/blob/b0ac076d72c9445c96182de87d974de2e8cc56e2/typewriter-scrolling.js
|
||||
var movedByMouse = false;
|
||||
CodeMirror.commands.scrollSelectionToCenter = function (cm) {
|
||||
var cursor = cm.getCursor('head');
|
||||
var charCoords = cm.charCoords(cursor, "local");
|
||||
var top = charCoords.top;
|
||||
var halfLineHeight = (charCoords.bottom - top) / 2;
|
||||
var halfWindowHeight = cm.getWrapperElement().offsetHeight / 2;
|
||||
var scrollTo = Math.round((top - halfWindowHeight + halfLineHeight));
|
||||
cm.scrollTo(null, scrollTo);
|
||||
};
|
||||
CodeMirror.defineOption("typewriterScrolling", false, function (cm, val, old) {
|
||||
if (old && old != CodeMirror.Init) {
|
||||
const linesEl = cm.getScrollerElement().querySelector('.CodeMirror-lines');
|
||||
linesEl.style.paddingTop = null;
|
||||
linesEl.style.paddingBottom = null;
|
||||
cm.off("cursorActivity", onCursorActivity);
|
||||
cm.off("refresh", onRefresh);
|
||||
cm.off("mousedown", onMouseDown);
|
||||
cm.off("keydown", onKeyDown);
|
||||
cm.off("beforeChange", onBeforeChange);
|
||||
}
|
||||
if (val) {
|
||||
onRefresh(cm);
|
||||
cm.on("cursorActivity", onCursorActivity);
|
||||
cm.on("refresh", onRefresh);
|
||||
cm.on("mousedown", onMouseDown);
|
||||
cm.on("keydown", onKeyDown);
|
||||
cm.on("beforeChange", onBeforeChange);
|
||||
}
|
||||
});
|
||||
function onMouseDown() {
|
||||
movedByMouse = true;
|
||||
}
|
||||
const modiferKeys = ["Alt", "AltGraph", "CapsLock", "Control", "Fn", "FnLock", "Hyper", "Meta", "NumLock", "ScrollLock", "Shift", "Super", "Symbol", "SymbolLock"];
|
||||
function onKeyDown(cm, e) {
|
||||
if (!modiferKeys.includes(e.key)) {
|
||||
movedByMouse = false;
|
||||
}
|
||||
}
|
||||
function onBeforeChange() {
|
||||
movedByMouse = false;
|
||||
}
|
||||
function onCursorActivity(cm) {
|
||||
const linesEl = cm.getScrollerElement().querySelector('.CodeMirror-lines');
|
||||
if (cm.getSelection().length !== 0) {
|
||||
linesEl.classList.add("selecting");
|
||||
}
|
||||
else {
|
||||
linesEl.classList.remove("selecting");
|
||||
}
|
||||
|
||||
if(!movedByMouse) {
|
||||
cm.execCommand("scrollSelectionToCenter");
|
||||
}
|
||||
}
|
||||
function onRefresh(cm) {
|
||||
const halfWindowHeight = cm.getWrapperElement().offsetHeight / 2;
|
||||
const linesEl = cm.getScrollerElement().querySelector('.CodeMirror-lines');
|
||||
linesEl.style.paddingTop = `${halfWindowHeight}px`;
|
||||
linesEl.style.paddingBottom = `${halfWindowHeight}px`; // Thanks @walulula!
|
||||
if (cm.getSelection().length === 0) {
|
||||
cm.execCommand("scrollSelectionToCenter");
|
||||
}
|
||||
}
|
||||
|
||||
var allowedUserEvents = /^(select|input|delete|undo|redo)(\..+)?$/;
|
||||
var disallowedUserEvents = /^(select.pointer)$/;
|
||||
var typewriterOffset = state.Facet.define({
|
||||
combine: function (values) { return values.length ? Math.min.apply(Math, values) : 0.5; }
|
||||
});
|
||||
var resetTypewriterScrollPaddingPlugin = view.ViewPlugin.fromClass(/** @class */ (function () {
|
||||
function class_1(view) {
|
||||
this.view = view;
|
||||
}
|
||||
class_1.prototype.update = function (update) {
|
||||
if (this.view.contentDOM.style.paddingTop) {
|
||||
this.view.contentDOM.style.paddingTop = "";
|
||||
this.view.contentDOM.style.paddingBottom = (update.view.dom.clientHeight / 2) + "px";
|
||||
}
|
||||
};
|
||||
return class_1;
|
||||
}()));
|
||||
var typewriterScrollPaddingPlugin = view.ViewPlugin.fromClass(/** @class */ (function () {
|
||||
function class_2(view) {
|
||||
this.view = view;
|
||||
this.topPadding = null;
|
||||
}
|
||||
class_2.prototype.update = function (update) {
|
||||
var offset = (update.view.dom.clientHeight * update.view.state.facet(typewriterOffset)) - (update.view.defaultLineHeight / 2);
|
||||
this.topPadding = offset + "px";
|
||||
if (this.topPadding != this.view.contentDOM.style.paddingTop) {
|
||||
this.view.contentDOM.style.paddingTop = this.topPadding;
|
||||
this.view.contentDOM.style.paddingBottom = (update.view.dom.clientHeight - offset) + "px";
|
||||
}
|
||||
};
|
||||
return class_2;
|
||||
}()));
|
||||
var typewriterScrollPlugin = view.ViewPlugin.fromClass(/** @class */ (function () {
|
||||
function class_3(view) {
|
||||
this.view = view;
|
||||
this.myUpdate = false;
|
||||
}
|
||||
class_3.prototype.update = function (update) {
|
||||
if (this.myUpdate)
|
||||
this.myUpdate = false;
|
||||
else {
|
||||
var userEvents = update.transactions.map(function (tr) { return tr.annotation(state.Transaction.userEvent); });
|
||||
var isAllowed = userEvents.reduce(function (result, event) { return result && allowedUserEvents.test(event) && !disallowedUserEvents.test(event); }, userEvents.length > 0);
|
||||
if (isAllowed) {
|
||||
this.myUpdate = true;
|
||||
this.centerOnHead(update);
|
||||
}
|
||||
}
|
||||
};
|
||||
class_3.prototype.centerOnHead = function (update) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var _this = this;
|
||||
return __generator(this, function (_a) {
|
||||
// can't update inside an update, so request the next animation frame
|
||||
window.requestAnimationFrame(function () {
|
||||
// current selection range
|
||||
if (update.state.selection.ranges.length == 1) {
|
||||
// only act on the one range
|
||||
var head = update.state.selection.main.head;
|
||||
var prevHead = update.startState.selection.main.head;
|
||||
// TODO: work out line number and use that instead? Is that even possible?
|
||||
// don't bother with this next part if the range (line??) hasn't changed
|
||||
if (prevHead != head) {
|
||||
// this is the effect that does the centering
|
||||
var offset = (update.view.dom.clientHeight * update.view.state.facet(typewriterOffset)) - (update.view.defaultLineHeight / 2);
|
||||
var effect = view.EditorView.scrollIntoView(head, { y: "start", yMargin: offset });
|
||||
// const effect = EditorView.scrollIntoView(head, { y: "center" });
|
||||
var transaction = _this.view.state.update({ effects: effect });
|
||||
_this.view.dispatch(transaction);
|
||||
}
|
||||
}
|
||||
});
|
||||
return [2 /*return*/];
|
||||
});
|
||||
});
|
||||
};
|
||||
return class_3;
|
||||
}()));
|
||||
function typewriterScroll(options) {
|
||||
if (options === void 0) { options = {}; }
|
||||
return [
|
||||
options.typewriterOffset == null ? [] : typewriterOffset.of(options.typewriterOffset),
|
||||
typewriterScrollPaddingPlugin,
|
||||
typewriterScrollPlugin
|
||||
];
|
||||
}
|
||||
function resetTypewriterSrcoll() {
|
||||
return [
|
||||
resetTypewriterScrollPaddingPlugin
|
||||
];
|
||||
}
|
||||
|
||||
var DEFAULT_SETTINGS = {
|
||||
enabled: true,
|
||||
typewriterOffset: 0.5,
|
||||
zenEnabled: false,
|
||||
zenOpacity: 0.25
|
||||
};
|
||||
var CMTypewriterScrollPlugin = /** @class */ (function (_super) {
|
||||
__extends(CMTypewriterScrollPlugin, _super);
|
||||
function CMTypewriterScrollPlugin() {
|
||||
var _this = _super !== null && _super.apply(this, arguments) || this;
|
||||
_this.extArray = [];
|
||||
_this.toggleTypewriterScroll = function (newValue) {
|
||||
if (newValue === void 0) { newValue = null; }
|
||||
// if no value is passed in, toggle the existing value
|
||||
if (newValue === null)
|
||||
newValue = !_this.settings.enabled;
|
||||
// assign the new value and call the correct enable / disable function
|
||||
(_this.settings.enabled = newValue)
|
||||
? _this.enableTypewriterScroll() : _this.disableTypewriterScroll();
|
||||
// save the new settings
|
||||
_this.saveData(_this.settings);
|
||||
};
|
||||
_this.changeTypewriterOffset = function (newValue) {
|
||||
_this.settings.typewriterOffset = newValue;
|
||||
if (_this.settings.enabled) {
|
||||
_this.disableTypewriterScroll();
|
||||
// delete the extension, so it gets recreated with the new value
|
||||
delete _this.ext;
|
||||
_this.enableTypewriterScroll();
|
||||
}
|
||||
_this.saveData(_this.settings);
|
||||
};
|
||||
_this.toggleZen = function (newValue) {
|
||||
if (newValue === void 0) { newValue = null; }
|
||||
// if no value is passed in, toggle the existing value
|
||||
if (newValue === null)
|
||||
newValue = !_this.settings.zenEnabled;
|
||||
// assign the new value and call the correct enable / disable function
|
||||
(_this.settings.zenEnabled = newValue)
|
||||
? _this.enableZen() : _this.disableZen();
|
||||
// save the new settings
|
||||
_this.saveData(_this.settings);
|
||||
};
|
||||
_this.changeZenOpacity = function (newValue) {
|
||||
if (newValue === void 0) { newValue = 0.25; }
|
||||
_this.settings.zenOpacity = newValue;
|
||||
_this.css.innerText = "body{--zen-opacity: ".concat(newValue, ";}");
|
||||
// save the new settings
|
||||
_this.saveData(_this.settings);
|
||||
};
|
||||
_this.enableTypewriterScroll = function () {
|
||||
// add the class
|
||||
document.body.classList.add('plugin-cm-typewriter-scroll');
|
||||
// register the codemirror add on setting
|
||||
_this.registerCodeMirror(function (cm) {
|
||||
// @ts-ignore
|
||||
cm.setOption("typewriterScrolling", true);
|
||||
});
|
||||
if (!_this.ext) {
|
||||
_this.ext = typewriterScroll({ typewriterOffset: _this.settings.typewriterOffset });
|
||||
_this.extArray = [_this.ext];
|
||||
_this.registerEditorExtension(_this.extArray);
|
||||
}
|
||||
else {
|
||||
_this.extArray.splice(0, _this.extArray.length);
|
||||
_this.extArray.push(_this.ext);
|
||||
_this.app.workspace.updateOptions();
|
||||
}
|
||||
};
|
||||
_this.disableTypewriterScroll = function () {
|
||||
// remove the class
|
||||
document.body.classList.remove('plugin-cm-typewriter-scroll');
|
||||
// remove the codemirror add on setting
|
||||
_this.app.workspace.iterateCodeMirrors(function (cm) {
|
||||
// @ts-ignore
|
||||
cm.setOption("typewriterScrolling", false);
|
||||
});
|
||||
// clear out the registered extension
|
||||
_this.extArray.splice(0, _this.extArray.length);
|
||||
_this.extArray.push(resetTypewriterSrcoll());
|
||||
_this.app.workspace.updateOptions();
|
||||
};
|
||||
_this.enableZen = function () {
|
||||
// add the class
|
||||
document.body.classList.add('plugin-cm-typewriter-scroll-zen');
|
||||
};
|
||||
_this.disableZen = function () {
|
||||
// remove the class
|
||||
document.body.classList.remove('plugin-cm-typewriter-scroll-zen');
|
||||
};
|
||||
return _this;
|
||||
}
|
||||
CMTypewriterScrollPlugin.prototype.onload = function () {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var _a, _b, _c, _d;
|
||||
return __generator(this, function (_e) {
|
||||
switch (_e.label) {
|
||||
case 0:
|
||||
_a = this;
|
||||
_c = (_b = Object).assign;
|
||||
_d = [DEFAULT_SETTINGS];
|
||||
return [4 /*yield*/, this.loadData()];
|
||||
case 1:
|
||||
_a.settings = _c.apply(_b, _d.concat([_e.sent()]));
|
||||
// enable the plugin (based on settings)
|
||||
if (this.settings.enabled)
|
||||
this.enableTypewriterScroll();
|
||||
if (this.settings.zenEnabled)
|
||||
this.enableZen();
|
||||
this.css = document.createElement('style');
|
||||
this.css.id = 'plugin-typewriter-scroll';
|
||||
this.css.setAttr('type', 'text/css');
|
||||
document.getElementsByTagName("head")[0].appendChild(this.css);
|
||||
this.css.innerText = "body{--zen-opacity: ".concat(this.settings.zenOpacity, ";}");
|
||||
// add the settings tab
|
||||
this.addSettingTab(new CMTypewriterScrollSettingTab(this.app, this));
|
||||
// add the commands / keyboard shortcuts
|
||||
this.addCommands();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
CMTypewriterScrollPlugin.prototype.onunload = function () {
|
||||
// disable the plugin
|
||||
this.disableTypewriterScroll();
|
||||
this.disableZen();
|
||||
};
|
||||
CMTypewriterScrollPlugin.prototype.addCommands = function () {
|
||||
var _this = this;
|
||||
// add the toggle on/off command
|
||||
this.addCommand({
|
||||
id: 'toggle-typewriter-sroll',
|
||||
name: 'Toggle On/Off',
|
||||
callback: function () { _this.toggleTypewriterScroll(); }
|
||||
});
|
||||
// toggle zen mode
|
||||
this.addCommand({
|
||||
id: 'toggle-typewriter-sroll-zen',
|
||||
name: 'Toggle Zen Mode On/Off',
|
||||
callback: function () { _this.toggleZen(); }
|
||||
});
|
||||
};
|
||||
return CMTypewriterScrollPlugin;
|
||||
}(obsidian.Plugin));
|
||||
var CMTypewriterScrollSettingTab = /** @class */ (function (_super) {
|
||||
__extends(CMTypewriterScrollSettingTab, _super);
|
||||
function CMTypewriterScrollSettingTab(app, plugin) {
|
||||
var _this = _super.call(this, app, plugin) || this;
|
||||
_this.plugin = plugin;
|
||||
return _this;
|
||||
}
|
||||
CMTypewriterScrollSettingTab.prototype.display = function () {
|
||||
var _this = this;
|
||||
var containerEl = this.containerEl;
|
||||
containerEl.empty();
|
||||
new obsidian.Setting(containerEl)
|
||||
.setName("Toggle Typewriter Scrolling")
|
||||
.setDesc("Turns typewriter scrolling on or off globally")
|
||||
.addToggle(function (toggle) {
|
||||
return toggle.setValue(_this.plugin.settings.enabled)
|
||||
.onChange(function (newValue) { _this.plugin.toggleTypewriterScroll(newValue); });
|
||||
});
|
||||
new obsidian.Setting(containerEl)
|
||||
.setName("Center offset")
|
||||
.setDesc("Positions the typewriter text at the specified percentage of the screen")
|
||||
.addSlider(function (slider) {
|
||||
return slider.setLimits(0, 100, 5)
|
||||
.setValue(_this.plugin.settings.typewriterOffset * 100)
|
||||
.onChange(function (newValue) { _this.plugin.changeTypewriterOffset(newValue / 100); });
|
||||
});
|
||||
new obsidian.Setting(containerEl)
|
||||
.setName("Zen Mode")
|
||||
.setDesc("Darkens non-active lines in the editor so you can focus on what you're typing")
|
||||
.addToggle(function (toggle) {
|
||||
return toggle.setValue(_this.plugin.settings.zenEnabled)
|
||||
.onChange(function (newValue) { _this.plugin.toggleZen(newValue); });
|
||||
});
|
||||
new obsidian.Setting(containerEl)
|
||||
.setName("Zen Opacity")
|
||||
.setDesc("The opacity of unfocused lines in zen mode")
|
||||
.addSlider(function (slider) {
|
||||
return slider.setLimits(0, 100, 5)
|
||||
.setValue(_this.plugin.settings.zenOpacity * 100)
|
||||
.onChange(function (newValue) { _this.plugin.changeZenOpacity(newValue / 100); });
|
||||
});
|
||||
};
|
||||
return CMTypewriterScrollSettingTab;
|
||||
}(obsidian.PluginSettingTab));
|
||||
|
||||
module.exports = CMTypewriterScrollPlugin;
|
||||
|
||||
|
||||
/* nosourcemap */
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"id": "cm-typewriter-scroll-obsidian",
|
||||
"name": "Typewriter Scroll",
|
||||
"author": "death_au",
|
||||
"authorUrl": "https://github.com/deathau",
|
||||
"description": "Typewriter-style scrolling which keeps the view centered in the editor.",
|
||||
"isDesktopOnly": false,
|
||||
"version": "0.2.2",
|
||||
"minAppVersion": "0.10.0"
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
body.plugin-cm-typewriter-scroll-zen .CodeMirror-lines:not(.selecting) .CodeMirror-code > :not(.CodeMirror-activeline) {
|
||||
opacity: var(--zen-opacity);
|
||||
}
|
||||
body.plugin-cm-typewriter-scroll-zen .cm-editor.cm-focused .cm-line:not(.cm-active) {
|
||||
opacity: var(--zen-opacity);
|
||||
}
|
||||
@@ -1,197 +0,0 @@
|
||||
/*
|
||||
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
||||
if you want to view the source, please visit the github repository of this plugin
|
||||
*/
|
||||
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __export = (target, all) => {
|
||||
for (var name in all)
|
||||
__defProp(target, name, { get: all[name], enumerable: true });
|
||||
};
|
||||
var __copyProps = (to, from, except, desc) => {
|
||||
if (from && typeof from === "object" || typeof from === "function") {
|
||||
for (let key of __getOwnPropNames(from))
|
||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||
}
|
||||
return to;
|
||||
};
|
||||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||||
|
||||
// main.ts
|
||||
var main_exports = {};
|
||||
__export(main_exports, {
|
||||
default: () => Prozen
|
||||
});
|
||||
module.exports = __toCommonJS(main_exports);
|
||||
var import_obsidian = require("obsidian");
|
||||
var DEFAULT_SETTINGS = {
|
||||
animationDuration: 2,
|
||||
showHeader: false,
|
||||
showScroll: false,
|
||||
showGraphControls: false,
|
||||
forceReadable: true,
|
||||
vignetteOpacity: 0.75,
|
||||
vignetteScaleLinear: 20,
|
||||
vignetteScaleRadial: 75
|
||||
};
|
||||
var Prozen = class extends import_obsidian.Plugin {
|
||||
async onload() {
|
||||
await this.loadSettings();
|
||||
this.addCommand({
|
||||
id: "zenmode",
|
||||
name: "Zen mode",
|
||||
callback: this.fullscreenMode.bind(this)
|
||||
});
|
||||
this.addSettingTab(new ProzenSettingTab(this.app, this));
|
||||
}
|
||||
onunload() {
|
||||
}
|
||||
async loadSettings() {
|
||||
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
|
||||
}
|
||||
async saveSettings() {
|
||||
await this.saveData(this.settings);
|
||||
}
|
||||
fullscreenMode() {
|
||||
const leaf = this.app.workspace.getActiveViewOfType(import_obsidian.ItemView).leaf;
|
||||
if (!leaf)
|
||||
return;
|
||||
if (leaf.view.getViewType() === "empty")
|
||||
return;
|
||||
const root = document.documentElement;
|
||||
root.style.setProperty("--fadeIn-duration", this.settings.animationDuration + "s");
|
||||
root.style.setProperty("--vignette-opacity", this.settings.vignetteOpacity);
|
||||
root.style.setProperty("--vignette-scale-linear", this.settings.vignetteScaleLinear + "%");
|
||||
root.style.setProperty("--vignette-scale-radial", this.settings.vignetteScaleRadial + "%");
|
||||
const containerEl = leaf.containerEl;
|
||||
if (!document.fullscreenElement) {
|
||||
containerEl.requestFullscreen();
|
||||
this.addStyles(leaf);
|
||||
} else {
|
||||
document.exitFullscreen();
|
||||
this.removeStyles(leaf);
|
||||
}
|
||||
containerEl.onfullscreenchange = () => {
|
||||
if (!document.fullscreenElement) {
|
||||
this.removeStyles(leaf);
|
||||
}
|
||||
};
|
||||
}
|
||||
addStyles(leaf) {
|
||||
const viewEl = leaf.view.contentEl;
|
||||
const header = leaf.view.headerEl;
|
||||
const isGraph = leaf.view.getViewType() === "graph";
|
||||
let graphControls;
|
||||
if (isGraph) {
|
||||
graphControls = leaf.view.dataEngine.controlsEl;
|
||||
}
|
||||
if (!this.settings.showScroll) {
|
||||
viewEl.classList.add("noscroll");
|
||||
}
|
||||
if (isGraph && !this.settings.showGraphControls) {
|
||||
graphControls.classList.add("hide");
|
||||
}
|
||||
isGraph ? viewEl.classList.add("vignette-radial") : viewEl.classList.add("vignette-linear");
|
||||
if (!isGraph && this.settings.forceReadable) {
|
||||
leaf.view.editMode.editorEl.classList.add("is-readable-line-width");
|
||||
}
|
||||
viewEl.classList.add("animate");
|
||||
this.settings.showHeader ? header.classList.add("animate") : header.classList.add("hide");
|
||||
}
|
||||
removeStyles(leaf) {
|
||||
const viewEl = leaf.view.contentEl;
|
||||
const header = leaf.view.headerEl;
|
||||
const isGraph = leaf.view.getViewType() === "graph";
|
||||
let graphControls;
|
||||
if (isGraph) {
|
||||
graphControls = leaf.view.dataEngine.controlsEl;
|
||||
graphControls.classList.remove("animate", "hide");
|
||||
} else if (!this.app.vault.getConfig("readableLineLength")) {
|
||||
leaf.view.editMode.editorEl.classList.remove("is-readable-line-width");
|
||||
}
|
||||
viewEl.classList.remove("vignette-linear", "vignette-radial", "animate", "noscroll");
|
||||
header.classList.remove("animate", "hide");
|
||||
}
|
||||
};
|
||||
var ProzenSettingTab = class extends import_obsidian.PluginSettingTab {
|
||||
constructor(app, plugin) {
|
||||
super(app, plugin);
|
||||
this.plugin = plugin;
|
||||
}
|
||||
display() {
|
||||
const { containerEl } = this;
|
||||
containerEl.empty();
|
||||
this.containerEl.createEl("h3", {
|
||||
text: "Vignette"
|
||||
});
|
||||
let vignetteOpacityNumber;
|
||||
new import_obsidian.Setting(containerEl).setName("Opacity").setDesc("Intensity of vignette's dimming effect. Set to 0 to turn vignetting off.").addSlider((slider) => slider.setLimits(0, 1, 0.01).setValue(this.plugin.settings.vignetteOpacity).onChange(async (value) => {
|
||||
vignetteOpacityNumber.innerText = " " + value.toString();
|
||||
this.plugin.settings.vignetteOpacity = value;
|
||||
await this.plugin.saveSettings();
|
||||
})).settingEl.createDiv("", (el) => {
|
||||
vignetteOpacityNumber = el;
|
||||
el.style.minWidth = "2.0em";
|
||||
el.style.textAlign = "right";
|
||||
el.innerText = " " + this.plugin.settings.vignetteOpacity.toString();
|
||||
});
|
||||
let vignetteScaleLinearNumber;
|
||||
new import_obsidian.Setting(containerEl).setName("Scale in text views").setDesc("Determines how close to the screen's center vignetting spreads from both sides of the screen, as linear gradients.").addSlider((slider) => slider.setLimits(5, 50, 5).setValue(this.plugin.settings.vignetteScaleLinear).onChange(async (value) => {
|
||||
vignetteScaleLinearNumber.innerText = " " + value.toString();
|
||||
this.plugin.settings.vignetteScaleLinear = value;
|
||||
await this.plugin.saveSettings();
|
||||
})).settingEl.createDiv("", (el) => {
|
||||
vignetteScaleLinearNumber = el;
|
||||
el.style.minWidth = "2.0em";
|
||||
el.style.textAlign = "right";
|
||||
el.innerText = " " + this.plugin.settings.vignetteScaleLinear.toString();
|
||||
});
|
||||
let vignetteScaleRadialNumber;
|
||||
new import_obsidian.Setting(containerEl).setName("Scale in graph view").setDesc("Determines how close to the screen's center vignetting spreads from borders of the screen, as a radial gradient.").addSlider((slider) => slider.setLimits(5, 100, 5).setValue(this.plugin.settings.vignetteScaleRadial).onChange(async (value) => {
|
||||
vignetteScaleRadialNumber.innerText = " " + value.toString();
|
||||
this.plugin.settings.vignetteScaleRadial = value;
|
||||
await this.plugin.saveSettings();
|
||||
})).settingEl.createDiv("", (el) => {
|
||||
vignetteScaleRadialNumber = el;
|
||||
el.style.minWidth = "2.0em";
|
||||
el.style.textAlign = "right";
|
||||
el.innerText = " " + this.plugin.settings.vignetteScaleRadial.toString();
|
||||
});
|
||||
this.containerEl.createEl("h3", {
|
||||
text: "Animation"
|
||||
});
|
||||
new import_obsidian.Setting(containerEl).setName("Fade-in duration").setDesc("The duration (in seconds) of fade-in animation on entering Zen mode").addText((text) => text.setPlaceholder("1.2").setValue(String(this.plugin.settings.animationDuration)).onChange(async (value) => {
|
||||
this.plugin.settings.animationDuration = Number(value);
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
this.containerEl.createEl("h3", {
|
||||
text: "Element Toggles"
|
||||
});
|
||||
new import_obsidian.Setting(containerEl).setName("Show header").setDesc("Show the tab's header in Zen mode").addToggle((toggle) => toggle.setValue(this.plugin.settings.showHeader).onChange(async (value) => {
|
||||
this.plugin.settings.showHeader = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName("Show scrollbar").setDesc("Show the scrollbar in Zen mode. If it is hidden, scrolling is still available with mousewheel, arrows, touchpad, etc.").addToggle((toggle) => toggle.setValue(this.plugin.settings.showScroll).onChange(async (value) => {
|
||||
this.plugin.settings.showScroll = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName("Show graph controls").setDesc("Show the graph view's controls in Zen mode").addToggle((toggle) => toggle.setValue(this.plugin.settings.showGraphControls).onChange(async (value) => {
|
||||
this.plugin.settings.showGraphControls = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
this.containerEl.createEl("h3", {
|
||||
text: "Misc"
|
||||
});
|
||||
new import_obsidian.Setting(containerEl).setName("Force content centering").setDesc("Center text content in Zen mode, even if in regular view it takes all of the screen's width (ignore 'Editor -> Readable line length' being off in Zen mode)").addToggle((toggle) => toggle.setValue(this.plugin.settings.forceReadable).onChange(async (value) => {
|
||||
this.plugin.settings.forceReadable = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/* nosourcemap */
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"id": "obsidian-prozen",
|
||||
"name": "ProZen",
|
||||
"version": "0.3",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "Enter Zen mode to focus on writing. The plugin expands current tab to full screen removing everything but content.",
|
||||
"author": "Moskvitin",
|
||||
"authorUrl": "https://moskvit.in",
|
||||
"isDesktopOnly": true
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
:root {
|
||||
--vignette-opacity: 1;
|
||||
--fadeIn-duration: "2s";
|
||||
--vignette-scale-linear: 20%;
|
||||
--vignette-scale-radial: 50%;
|
||||
}
|
||||
|
||||
.noscroll ::-webkit-scrollbar-thumb{
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.vignette-linear {
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
rgba(0, 0, 0, var(--vignette-opacity)) 0%,
|
||||
rgba(0, 0, 0, 0) var(--vignette-scale-linear),
|
||||
rgba(0, 0, 0, 0) calc(100% - var(--vignette-scale-linear)),
|
||||
rgba(0, 0, 0, var(--vignette-opacity)) 100%
|
||||
);
|
||||
}
|
||||
|
||||
.vignette-radial {
|
||||
background: radial-gradient(
|
||||
circle,
|
||||
rgba(0, 0, 0, 0) calc(100% - var(--vignette-scale-radial)),
|
||||
rgba(0, 0, 0, var(--vignette-opacity)) 100%
|
||||
);
|
||||
}
|
||||
|
||||
.animate {
|
||||
animation: fadeIn var(--fadeIn-duration);
|
||||
}
|
||||
|
||||
.hide {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale(1.05);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
-173
@@ -1,173 +0,0 @@
|
||||
{
|
||||
"main": {
|
||||
"id": "818dc27015a3a8b9",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "507fe4cb9fb40b05",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "4eace81f2bc87c42",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Welcome.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Welcome"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "vertical"
|
||||
},
|
||||
"left": {
|
||||
"id": "6a08ba34065ab16a",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "b61a4c0173c80ac0",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "95e8321afc2fdf5a",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "file-explorer",
|
||||
"state": {
|
||||
"sortOrder": "alphabetical",
|
||||
"autoReveal": false
|
||||
},
|
||||
"icon": "lucide-folder-closed",
|
||||
"title": "Files"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "74269fb2e22d8599",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "search",
|
||||
"state": {
|
||||
"query": "",
|
||||
"matchingCase": false,
|
||||
"explainSearch": false,
|
||||
"collapseAll": false,
|
||||
"extraContext": false,
|
||||
"sortOrder": "alphabetical"
|
||||
},
|
||||
"icon": "lucide-search",
|
||||
"title": "Search"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "583ff41e239bbced",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "bookmarks",
|
||||
"state": {},
|
||||
"icon": "lucide-bookmark",
|
||||
"title": "Bookmarks"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 300
|
||||
},
|
||||
"right": {
|
||||
"id": "d5fe95067370bf78",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "de827558bc33dc13",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "fd81265e589917be",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "backlink",
|
||||
"state": {
|
||||
"collapseAll": false,
|
||||
"extraContext": false,
|
||||
"sortOrder": "alphabetical",
|
||||
"showSearch": false,
|
||||
"searchQuery": "",
|
||||
"backlinkCollapsed": false,
|
||||
"unlinkedCollapsed": true
|
||||
},
|
||||
"icon": "links-coming-in",
|
||||
"title": "Backlinks"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "0d57ff02e0b48af5",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "outgoing-link",
|
||||
"state": {
|
||||
"linksCollapsed": false,
|
||||
"unlinkedCollapsed": true
|
||||
},
|
||||
"icon": "links-going-out",
|
||||
"title": "Outgoing links"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "437389f203bf15c2",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "tag",
|
||||
"state": {
|
||||
"sortOrder": "frequency",
|
||||
"useHierarchy": true,
|
||||
"showSearch": false,
|
||||
"searchQuery": ""
|
||||
},
|
||||
"icon": "lucide-tags",
|
||||
"title": "Tags"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "ffc3e152d6264c18",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "outline",
|
||||
"state": {
|
||||
"followCursor": false,
|
||||
"showSearch": false,
|
||||
"searchQuery": ""
|
||||
},
|
||||
"icon": "lucide-list",
|
||||
"title": "Outline"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 300,
|
||||
"collapsed": true
|
||||
},
|
||||
"left-ribbon": {
|
||||
"hiddenItems": {
|
||||
"switcher:Open quick switcher": false,
|
||||
"graph:Open graph view": false,
|
||||
"canvas:Create new canvas": false,
|
||||
"daily-notes:Open today's daily note": false,
|
||||
"templates:Insert template": false,
|
||||
"command-palette:Open command palette": false,
|
||||
"bases:Create new base": false
|
||||
}
|
||||
},
|
||||
"active": "4eace81f2bc87c42",
|
||||
"lastOpenFiles": [
|
||||
"Welcome.md"
|
||||
]
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
This is your new *vault*.
|
||||
|
||||
Make a note of something, [[create a link]], or try [the Importer](https://help.obsidian.md/Plugins/Importer)!
|
||||
|
||||
When you're ready, delete this note and make the vault your own.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 966 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 143 KiB |
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 4.2 MiB |
Reference in New Issue
Block a user