-- Returns a string with a list of attached LSP clients, including | |
-- formatters and linters from null-ls, nvim-lint and formatter.nvim | |
local function get_attached_clients() | |
local buf_clients = vim.lsp.get_active_clients({ bufnr = 0 }) | |
if #buf_clients == 0 then | |
return "LSP Inactive" | |
end | |
local buf_ft = vim.bo.filetype |
Highly extensible software like Emacs, Vim, and Neovim tend to grow their own package managers. A software developer, for example, might want to install editor plugins that hook into a particular programming language's linter or language server. The programmer's text editor is therefore extended to support managing additional software to extend the text editor. If this loop continues for too long, the programmer's editor becomes more delicate and complex. The remedy for this problem is to manage software using dedicated tools apart
Please note that these instructions are not offically supported or condoned by Nix and are not guaranteed to always work, but from my testing everything seems to work perfectly fine.
These steps may not be required if NixOS/nix#2374 is resolved.
These commands are required for both Fedora Workstation and Fedora Silverblue
using namespace System.Management.Automation | |
using namespace System.Management.Automation.Language | |
if ($host.Name -eq 'ConsoleHost') | |
{ | |
Import-Module PSReadLine | |
} | |
#Import-Module PSColors | |
#Import-Module posh-git | |
Import-Module -Name Terminal-Icons |
I've used this guide through 2024 despite archinstall
and it's still more or less valid. After having
used archinstall
twice and having encountered obscure issues (luksOpen
taking ages, or slow
reboots in general) I switched back to a manual setup and it seems to be almost as straightforward.
Always refer to the official guide in case of doubt.
One important thing first: the environment you will encounter on the live image is very different from what you'll end up installing, some things are significantly easier there: e.g. wifi tools come
const channels = [...document.querySelectorAll("#main-link.channel-link")].map(e => { | |
const [, a, b] = e.href.match("/((?:user)|(?:channel))/(.*)$"); | |
const feed = "https://www.youtube.com/feeds/videos.xml?" + (a === "user" ? "user=" : "channel_id=") + b; | |
const channelName = e.querySelector("yt-formatted-string.ytd-channel-name").innerText; | |
return [feed, channelName]; | |
}); | |
if (channels.length == 0) { | |
alert("Couldn't find any subscriptions"); | |
} else { | |
console.log(channels.map(([feed, _]) => feed).join("\n")); |
---------------------- | |
-- #example ytdl_preload.conf | |
-- # make sure lines do not have trailing whitespace | |
-- # ytdl_opt has no sanity check and should be formatted exactly how it would appear in yt-dlp CLI, they are split into a key/value pair on whitespace | |
-- # at least on Windows, do not escape '\' in temp, just us a single one for each divider | |
-- #temp=R:\ytdltest | |
-- #ytdl_opt1=-r 50k | |
-- #ytdl_opt2=-N 5 | |
-- #ytdl_opt#=etc |
# | |
# This fish config sets up a working `gnome-keyring` on WSL2. | |
# I imagine it will work with WSL1 as well, perhaps after adjusting the `DISPLAY` value. | |
# | |
# Based off this bash script: https://askubuntu.com/questions/815327/running-gnome-keyring-on-wsl-windows-subsystem-for-linux | |
# Tested and working with `aws-vault` and `jetbrains-toolbox`. | |
# | |
# Be sure your x server is running!!! | |
set -x DISPLAY (cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0 |
-- Create animated GIFs with mpv | |
-- Requires ffmpeg, gifski, exiftool, and vorbis-tools. | |
-- Based on github.com/Scheliux/mpv-gif-generator | |
-- Usage: "g" to set start frame, "G" to set end frame, | |
-- "Ctrl+g" to create gif | |
-- "Ctrl+v" to create video clip | |
-- "Ctrl+a" to create audio clip | |
-- Metadata about the filename and timestamps will be written in the comment tag | |
local msg = require 'mp.msg' |