Skip to content

Instantly share code, notes, and snippets.

@dharmx
dharmx / eww.yuck
Last active July 25, 2023 08:11
Handle keys only when EWW window is open.
(defwindow window :windowtype "normal" :wm-ignore true
:geometry (geometry :anchor "center" :y 100 :width "10%" :height "10%")
(key))
(deflisten log "./key.sh")
(defwidget key[] "This prints nohing. '${log}'")
;; vim:filetype=yuck
@dharmx
dharmx / desktop.py
Created August 18, 2023 12:11
A python script for making a dock in Eww.
#!/usr/bin/env python
import json
from pathlib import Path
from sys import stdout
from typing import Any, Callable, Dict, List
import gi
gi.require_version("Gtk", "3.0")
@dharmx
dharmx / sort.lua
Created October 29, 2023 16:17
Sort TailwindCSS classes.
local T = vim.treesitter
local query = T.query
-- caps indicate config values
local SORTERS = {}
SORTERS.ASCII = function(a, b) return string.byte(a:sub(1, 1)) > string.byte(b:sub(1, 1)) end
-- add more
local SELECTED_SORTERS = { SORTERS.ASCII } -- add more
local FILETYPE = vim.o.filetype
@dharmx
dharmx / close.lua
Created October 29, 2023 16:32
Neovim closinng dialogbox (depends on NUI)
local Menu = require("nui.menu")
local NuiText = require("nui.text")
local popup_options = {
size = { width = 20, height = 4 },
position = {
row = "50%",
col = "50%",
},
border = {
@dharmx
dharmx / ethos.lua
Created October 30, 2023 02:07
Get meanings, examples, antonyms and synonyms of a word using dictd in Neovim. This supports multiple sources like urban dictionary.
---@diagnostic disable: cast-local-type, param-type-mismatch, assign-type-mismatch, need-check-nil, undefined-field
-- TODO:
-- + Add UI, HL and mapping options.
-- + Cleanup buffers.
-- + Use namespaces and add_highlights.
-- + Calculate floating window width.
-- + Add a telescope extension.
-- + Variable name suggestor.
-- + Write docs.
@dharmx
dharmx / permalink.lua
Created October 30, 2023 05:13
Generate a permanent link to a file or, line of your GitHub repository.
@dharmx
dharmx / cd.lua
Created October 30, 2023 18:08
Fuzzily change cwd based off of the lines in the current buffer. Works well with oil.nvim.
---@brief [[
---Get lines from a buffer > feed the lines into telescope\
---Choose from the entries
---See if the chosen entry is a directory
---If yes then run :chd <chosen> else do nothing
---@brief ]]
local finders = require("telescope.finders")
local pickers = require("telescope.pickers")
local config = require("telescope.config")
@dharmx
dharmx / class.lua
Last active February 20, 2024 17:20
Sort class items inside HTML.
local T = vim.treesitter
local query = T.query
-- caps indicate config values
local SORTERS = {}
SORTERS.ASCII = function(a, b) return string.byte(a:sub(1, 1)) > string.byte(b:sub(1, 1)) end
-- add more
local SELECTED_SORTERS = { SORTERS.ASCII } -- add more
local FILETYPE = vim.o.filetype
@dharmx
dharmx / config.json
Last active February 23, 2024 19:21
Generate problem set for boosting mental calculations.
{
"multiply": {
"two": 20,
"three": 10
},
"add": {
"two": 10,
"three": 20,
"four": 10,
"five": 5
@dharmx
dharmx / kao.lua
Created March 5, 2024 16:47
Kaomoji Picker!
-- put this in ~/nvim/lua/telescope/_extensions/kao.lua
-- then call require("telescope").load_extension("kao") after configuring telescope
local actions = require("telescope.actions")
local pickers = require("telescope.pickers")
local finders = require("telescope.finders")
local config = require("telescope.config")
local entry_display = require("telescope.pickers.entry_display")
local make_entry = require("telescope.make_entry")
local actions_state = require("telescope.actions.state")