Additional dotfiles

This commit is contained in:
2025-11-03 02:29:38 -06:00
parent 3d08f6f795
commit 9cc95f2f44
49 changed files with 95 additions and 1902 deletions
+10
View File
@@ -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
+2 -2
View File
@@ -7,5 +7,5 @@ import = [
normal = {family = "CaskaydiaMonoNerdFont"}
size = 14
[cursor]
smooth_motion_factor = 0.8
[window]
opacity = 0.9
+4
View File
@@ -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"
+7 -9
View File
@@ -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"
]
}
+3
View File
@@ -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
+1
View File
@@ -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
View File
@@ -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 -2
View File
@@ -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" }
}
-5
View File
@@ -1,5 +0,0 @@
return {
'vyfor/cord.nvim',
build = ':Cord update',
-- opts = {}
}
+1
View File
@@ -5,5 +5,6 @@ return {
config = function ()
background = "soft"
ui_contrast = "low"
transparent = true
end
}
+16
View File
@@ -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
},
}
}
+18
View File
@@ -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 = {}
}
+8
View File
@@ -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
}
}
-8
View File
@@ -1,8 +0,0 @@
return {
"folke/zen-mode.nvim",
opts = {
window = {
backdrop = 0.5
}
}
}
+1 -1
View File
@@ -1 +1 @@
4b0f4407-a1a3-4bd1-b1c3-443eb396506f
78a3a4f9-fb3d-44a3-b586-5fc9ab8e939b
+1 -1
View File
@@ -1 +1 @@
6d446931-7421-42b0-89dd-0cd902eb4737
5b20bf67-dcf6-4372-87db-d1c1b29c2029
+1 -1
View File
@@ -1 +1 @@
0ed133e5-956e-469d-ae55-b7525bb88fd6
f5774298-f23f-4349-9568-be08faaccbbb
+1 -1
View File
@@ -1 +1 @@
3ff48d18-f52e-448c-a0c2-6acebc8a846e
11bab87e-a1e9-478f-a177-134c33e86c99
+4 -3
View File
@@ -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",
-3
View File
@@ -1,3 +0,0 @@
{
"vimMode": true
}
-1
View File
@@ -1 +0,0 @@
{}
-4
View File
@@ -1,4 +0,0 @@
[
"obsidian-prozen",
"cm-typewriter-scroll-obsidian"
]
-33
View File
@@ -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
}
-10
View File
@@ -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);
}
-197
View File
@@ -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
}
-47
View File
@@ -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);
}
}
-174
View File
@@ -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": []
}
-1
View File
@@ -1 +0,0 @@
{}
-1
View File
@@ -1 +0,0 @@
{}
-4
View File
@@ -1,4 +0,0 @@
[
"obsidian-prozen",
"cm-typewriter-scroll-obsidian"
]
-33
View File
@@ -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
}
-22
View File
@@ -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
}
-10
View File
@@ -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);
}
-197
View File
@@ -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
View File
@@ -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"
]
}
-5
View File
@@ -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

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB