feat: switch to kitty

This commit is contained in:
max_richter 2022-03-14 19:21:46 +01:00
parent 2cae0ba5f5
commit fe391566e1
25 changed files with 2049 additions and 147 deletions

View File

@ -113,5 +113,7 @@ if ! shopt -oq posix; then
fi fi
export MAX_TEST_VAR="working"
[ -z $DISPLAY ] && export DISPLAY=127.0.0.1:0.0 [ -z $DISPLAY ] && export DISPLAY=127.0.0.1:0.0
. "$HOME/.cargo/env" . "$HOME/.cargo/env"

View File

@ -28,6 +28,11 @@ set -g mode-keys vi
# Enable mouse mode (tmux 2.1 and above) # Enable mouse mode (tmux 2.1 and above)
set -g mouse on set -g mouse on
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Customize status line # Customize status line
# set-option -g status-style bg=default # set-option -g status-style bg=default

View File

@ -76,9 +76,6 @@ fi
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. # To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
# Auto connect to tmux session of ssh # Auto connect to tmux session of ssh
if [[ -n "$PS1" ]] && [[ -z "$TMUX" ]] && [[ -n "$SSH_CONNECTION" ]]; then if [[ -n "$PS1" ]] && [[ -z "$TMUX" ]] && [[ -n "$SSH_CONNECTION" ]]; then
tmux attach-session -t $USER || tmux new-session -s $USER tmux attach-session -t $USER || tmux new-session -s $USER

1317
configs/kitty/kitty.conf Normal file

File diff suppressed because it is too large Load Diff

View File

@ -153,13 +153,6 @@ if u.has_plugin("cmp") then
} }
) )
require("transparent").setup(
{
enable = true,
extra_groups = "All"
}
)
g.markdown_fenced_languages = {"html", "python", "bash=sh"} g.markdown_fenced_languages = {"html", "python", "bash=sh"}
-- Remove background color -- Remove background color

View File

@ -12,6 +12,13 @@ cmd [[
au ColorScheme myspecialcolors hi Normal ctermbg=red guibg=red au ColorScheme myspecialcolors hi Normal ctermbg=red guibg=red
]] ]]
cmd [[
augroup filetypedetect
au BufNewFile,BufRead *.frag setl ft=glsl
au BufNewFile,BufRead *.vert setl ft=glsl
augroup END
]]
cmd [[ cmd [[
augroup SaveManualFolds augroup SaveManualFolds
autocmd! autocmd!

View File

@ -1,8 +1,7 @@
local cmd = vim.cmd local cmd = vim.cmd
local util = require "vim.lsp.util" local g = vim.g
local utils = require("utils")
function tablelength(T) local function tablelength(T)
local count = 0 local count = 0
for _ in pairs(T) do for _ in pairs(T) do
count = count + 1 count = count + 1
@ -30,16 +29,15 @@ local function select_client(method)
return supported_client return supported_client
end end
g.neoformat_enabled_glsl = {}
function FormattingSync() function FormattingSync()
vim.cmd("Neoformat") vim.cmd("Neoformat")
-- local client = select_client("textDocument/formatting") -- local client = select_client("textDocument/formatting")
-- if client == nil then -- if client == nil then
-- vim.notify("No LSP Client with formatting connected") -- vim.notify("No LSP Client with formatting connected")
-- end -- end
-- vim.notify("Formatting with LSP") -- vim.notify("Formatting with LSP")
-- local params = util.make_formatting_params({}) -- local params = util.make_formatting_params({})
-- local result, err = client.request_sync("textDocument/formatting", params, 500, vim.api.nvim_get_current_buf()) -- local result, err = client.request_sync("textDocument/formatting", params, 500, vim.api.nvim_get_current_buf())
-- if result and result.result then -- if result and result.result then

View File

@ -66,7 +66,7 @@ map("n", "<Leader>r", "<cmd>lua require('rest-nvim').run()<CR>", options)
map("n", "<Leader>q", "<Esc>:q<CR>", options) map("n", "<Leader>q", "<Esc>:q<CR>", options)
-- Open Nerdtree -- Open Nerdtree
map("n", "<C-n>", ":NvimTreeToggle<CR>", options) map("n", "<C-n>", ":NvimTreeToggle<CR>:TransparentEnable<CR>", options)
-- Make ctrl+s work -- Make ctrl+s work
map("n", "<C-s>", "<Esc>:w<CR>", options) map("n", "<C-s>", "<Esc>:w<CR>", options)

View File

@ -1,29 +1,17 @@
local lsp = require "lspconfig" local lsp = require "lspconfig"
local lsp_status = require("lsp-status") local lsp_status = require("lsp-status")
local ts_utils = require("nvim-lsp-ts-utils")
_G.lsp_organize_imports = function()
local params = {
command = "_typescript.organizeImports",
arguments = {vim.api.nvim_buf_get_name(0)},
title = ""
}
vim.lsp.buf.execute_command(params)
end
-- function to attach completion when setting up lsp -- function to attach completion when setting up lsp
local function on_attach() local function on_attach(client, bufnr)
vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc")
vim.cmd("command! LspOrganize lua lsp_organize_imports()")
vim.api.nvim_buf_map(bufnr, "n", "gs", ":LspOrganize<CR>", {silent = true})
end end
local runtime_path = vim.split(package.path, ";") local runtime_path = vim.split(package.path, ";")
table.insert(runtime_path, "lua/?.lua") table.insert(runtime_path, "lua/?.lua")
table.insert(runtime_path, "lua/?/init.lua") table.insert(runtime_path, "lua/?/init.lua")
print(runtime_path) lsp.sumneko_lua.setup {
require "lspconfig".sumneko_lua.setup {
settings = { settings = {
Lua = { Lua = {
runtime = { runtime = {
@ -50,8 +38,9 @@ require "lspconfig".sumneko_lua.setup {
-- Ltex Language Server -- Ltex Language Server
require("grammar-guard").init() require("grammar-guard").init()
-- setup LSP config -- setup LSP config
require("lspconfig").grammar_guard.setup( lsp.grammar_guard.setup(
{ {
cmd = {vim.fn.expand("~/.local/share/nvim/lsp_servers/ltex/ltex-ls/bin/ltex-ls")}, cmd = {vim.fn.expand("~/.local/share/nvim/lsp_servers/ltex/ltex-ls/bin/ltex-ls")},
settings = { settings = {
@ -90,26 +79,74 @@ lsp.svelte.setup {
capabilities = lsp_status.capabilities capabilities = lsp_status.capabilities
} }
local function organize_imports()
local params = {
command = "_typescript.organizeImports",
arguments = {vim.api.nvim_buf_get_name(0)},
title = ""
}
vim.lsp.buf.execute_command(params)
end
-- Typescript Language Server -- Typescript Language Server
lsp.tsserver.setup { lsp.tsserver.setup(
on_attach = on_attach, {
capabilities = lsp_status.capabilities, -- Needed for inlayHints. Merge this table with your settings or copy
commands = { -- it from the source if you want to add your own init_options.
OrganizeImports = { init_options = require("nvim-lsp-ts-utils").init_options,
organize_imports, --
description = "Organize Imports" on_attach = function(client, bufnr)
} vim.notify("Eyyyy")
-- defaults
ts_utils.setup(
{
debug = true,
disable_commands = false,
enable_import_on_completion = false,
-- import all
import_all_timeout = 5000, -- ms
-- lower numbers = higher priority
import_all_priorities = {
same_file = 1, -- add to existing import statement
local_files = 2, -- git files or files with relative path markers
buffer_content = 3, -- loaded buffer content
buffers = 4 -- loaded buffer names
},
import_all_scan_buffers = 100,
import_all_select_source = false,
-- if false will avoid organizing imports
always_organize_imports = true,
-- filter diagnostics
filter_out_diagnostics_by_severity = {},
filter_out_diagnostics_by_code = {},
-- inlay hints
auto_inlay_hints = true,
inlay_hints_highlight = "Comment",
inlay_hints_priority = 200, -- priority of the hint extmarks
inlay_hints_throttle = 150, -- throttle the inlay hint request
inlay_hints_format = {
-- format options for individual hint kind
Type = {},
Parameter = {},
Enum = {}
-- Example format customization for `Type` kind:
-- Type = {
-- highlight = "Comment",
-- text = function(text)
-- return "->" .. text:sub(2)
-- end,
-- },
},
-- update imports on file move
update_imports_on_move = false,
require_confirmation_on_move = false,
watch_dir = nil
}
)
-- required to fix code action ranges and filter diagnostics
ts_utils.setup_client(client)
-- no default maps, so you may want to define some here
local opts = {silent = true}
vim.api.nvim_buf_set_keymap(bufnr, "n", "gs", ":TSLspOrganize<CR>", opts)
vim.api.nvim_buf_set_keymap(bufnr, "n", "gr", ":TSLspRenameFile<CR>", opts)
vim.api.nvim_buf_set_keymap(bufnr, "n", "gi", ":TSLspImportAll<CR>", opts)
end
} }
} )
-- JSON ls setup -- JSON ls setup
lsp.jsonls.setup { lsp.jsonls.setup {
@ -117,6 +154,12 @@ lsp.jsonls.setup {
capabilities = lsp_status.capabilities capabilities = lsp_status.capabilities
} }
-- JSON ls setup
lsp.cssls.setup {
on_attach = on_attach,
capabilities = lsp_status.capabilities
}
-- Setup diagnostics formaters and linters for non LSP provided files -- Setup diagnostics formaters and linters for non LSP provided files
lsp.diagnosticls.setup { lsp.diagnosticls.setup {
on_attach = on_attach, on_attach = on_attach,

View File

@ -1,14 +1,16 @@
local lsp_installer = require("nvim-lsp-installer") local lsp_installer = require("nvim-lsp-installer")
lsp_installer.on_server_ready(function(server) lsp_installer.on_server_ready(
local opts = {} function(server)
local opts = {}
-- (optional) Customize the options passed to the server -- (optional) Customize the options passed to the server
-- if server.name == "tsserver" then -- if server.name == "tsserver" then
-- opts.root_dir = function() ... end -- opts.root_dir = function() ... end
-- end -- end
-- This setup() function is exactly the same as lspconfig's setup function (:help lspconfig-quickstart) -- This setup() function is exactly the same as lspconfig's setup function (:help lspconfig-quickstart)
server:setup(opts) -- server:setup(opts)
vim.cmd [[ do User LspAttachBuffers ]] vim.cmd [[ do User LspAttachBuffers ]]
end) end
)

View File

@ -6,9 +6,8 @@ return require("packer").startup(
-- General Helper Functions -- General Helper Functions
use "nvim-lua/plenary.nvim" use "nvim-lua/plenary.nvim"
-- Faster Filetype Detection -- Filetype Detection
use "nathom/filetype.nvim" use "nathom/filetype.nvim"
use "alexghergh/nvim-tmux-navigation"
-- Theming Section -- Theming Section
-- use 'folke/tokyonight.nvim' -- use 'folke/tokyonight.nvim'
@ -27,6 +26,7 @@ return require("packer").startup(
use "windwp/nvim-autopairs" use "windwp/nvim-autopairs"
-- Code Navigation -- Code Navigation
use "alexghergh/nvim-tmux-navigation"
use "dense-analysis/ale" use "dense-analysis/ale"
use "nathanmsmith/nvim-ale-diagnostic" use "nathanmsmith/nvim-ale-diagnostic"
use "junegunn/fzf" use "junegunn/fzf"
@ -52,6 +52,7 @@ return require("packer").startup(
} }
-- Syntax / Autocomplete -- Syntax / Autocomplete
use "terminalnode/sway-vim-syntax" --sway config syntax
use "neovim/nvim-lspconfig" use "neovim/nvim-lspconfig"
use "hrsh7th/nvim-cmp" use "hrsh7th/nvim-cmp"
use "hrsh7th/cmp-nvim-lsp" use "hrsh7th/cmp-nvim-lsp"
@ -65,6 +66,7 @@ return require("packer").startup(
use "saadparwaiz1/cmp_luasnip" use "saadparwaiz1/cmp_luasnip"
use "williamboman/nvim-lsp-installer" use "williamboman/nvim-lsp-installer"
use "nvim-lua/lsp-status.nvim" use "nvim-lua/lsp-status.nvim"
use "jose-elias-alvarez/nvim-lsp-ts-utils"
use "neoclide/jsonc.vim" use "neoclide/jsonc.vim"
use "brymer-meneses/grammar-guard.nvim" use "brymer-meneses/grammar-guard.nvim"
use { use {
@ -72,10 +74,6 @@ return require("packer").startup(
run = ":TSUpdate" run = ":TSUpdate"
} }
-- Language Supports
use "beyondmarc/glsl.vim" -- GLSL
use "ellisonleao/glow.nvim" -- MARKDOWN
-- Autoformat -- Autoformat
use "sbdchd/neoformat" use "sbdchd/neoformat"
-- use "lukas-reineke/format.nvim" -- use "lukas-reineke/format.nvim"

View File

@ -1,5 +1,4 @@
# vi: ft=confj # vim: ft=swayconfig
# /go
# Default config for sway # Default config for sway
# #
@ -7,7 +6,7 @@
# #
# Read `man 5 sway` for a complete reference. # Read `man 5 sway` for a complete reference.
exec export $(dbus-launch --exit-with-session); exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
### Variables ### Variables
# #
@ -32,26 +31,29 @@ set $screenshot wl-copy < "$($grimshot --notify save screen $screenshot_dir/scrn
set $windowshot wl-copy < "$($grimshot --notify save window $screenshot_dir/scrn-$(date +"%Y-%m-%d-%H-%M-%S").png)" set $windowshot wl-copy < "$($grimshot --notify save window $screenshot_dir/scrn-$(date +"%Y-%m-%d-%H-%M-%S").png)"
# Default Programs # Default Programs
set $term alacritty set $term kitty
set $explorer nautilus set $explorer nautilus
set $mail geary set $mail geary
set $browser google-chrome --enable-features=UseOzonePlatform --ozone-platform=wayland set $browser google-chrome-beta --enable-features=UseOzonePlatform --ozone-platform=wayland
set $config_editor ~/.config/sway/config_editor.sh set $config_editor ~/.config/sway/config_editor.sh
set $debug_window ~/.config/sway/debug_window.sh
set $settings gnome-control-center set $settings gnome-control-center
set $toggle_layout ~/.config/sway/toggle_layout.sh set $toggle_layout ~/.config/sway/toggle_layout.sh
set $toggle_gaps ~/.config/sway/toggle_gaps.sh set $toggle_gaps ~/.config/sway/toggle_gaps.sh
set $toggle_bar ~/.config/sway/toggle_bar.sh
set $web_search $wofi_scripts/web-search.sh set $web_search $wofi_scripts/web-search.sh
set $select_window ~/.config/sway/select_window.sh set $select_window ~/.config/sway/select_window.sh
set $lock_screen ~/.config/sway/lock_screen.sh set $lock_screen ~/.config/sway/lock_screen.sh
set $select_emoji $wofi_scripts/wofi-emoji set $select_emoji $wofi_scripts/wofi-emoji
set $password_mngr rofi-rbw --selector wofi set $password_mngr rofi-rbw --selector wofi --typer wtyper --cliboarder wl-copy
set $open_localhost $wofi_scripts/open-localhost
set $bluetooth_mngr blueman-manager
# Input configuration # Input configuration
input * { input * {
xkb_layout de xkb_layout de
xkb_capslock disabled xkb_capslock disabled
tap enabled
} }
smart_gaps off smart_gaps off
@ -89,12 +91,12 @@ exec swayidle -w \
# #
# Example configuration: # Example configuration:
# #
# input "2:14:SynPS/2_Synaptics_TouchPad" { input "1739:24385:Synaptics_TM2438-005" {
# dwt enabled dwt enabled
# tap enabled tap enabled
# natural_scroll enabled natural_scroll enabled
# middle_emulation enabled middle_emulation enabled
# } }
# #
# You can get the names of your inputs by running: swaymsg -t get_inputs # You can get the names of your inputs by running: swaymsg -t get_inputs
# Read `man 5 sway-input` for more information about this section. # Read `man 5 sway-input` for more information about this section.
@ -110,6 +112,7 @@ exec swayidle -w \
bindsym $mod+e exec $explorer bindsym $mod+e exec $explorer
bindsym $mod+Comma exec $settings bindsym $mod+Comma exec $settings
bindsym $mod+b exec $browser bindsym $mod+b exec $browser
bindsym $mod+Shift+b exec $bluetooth_mngr
bindsym $mod+Shift+Comma exec $config_editor bindsym $mod+Shift+Comma exec $config_editor
bindsym $mod+a exec $web_search bindsym $mod+a exec $web_search
bindsym $mod+p exec $password_mngr bindsym $mod+p exec $password_mngr
@ -138,7 +141,7 @@ exec swayidle -w \
bindsym $mod+$left focus left bindsym $mod+$left focus left
bindsym $mod+$down focus down bindsym $mod+$down focus down
bindsym $mod+$up focus up bindsym $mod+$up focus up
# bindsym $mod+$right focus right bindsym $mod+$right focus right
# Or use $mod+[up|down|left|right] # Or use $mod+[up|down|left|right]
bindsym $mod+Left focus left bindsym $mod+Left focus left
@ -151,6 +154,7 @@ exec swayidle -w \
bindsym $mod+Shift+$down move down bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right bindsym $mod+Shift+$right move right
# Ditto, with arrow keys # Ditto, with arrow keys
bindsym $mod+Shift+Left move left bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down bindsym $mod+Shift+Down move down
@ -159,46 +163,52 @@ exec swayidle -w \
# #
# Workspaces: # Workspaces:
# #
for_window [class="zoom"] floating enable
for_window [app_id="gnome-calculator"] floating enable
for_window [title="Zoom Meeting.*"] floating disable
for_window [title="Zoom Meeting.*"] inhibit_idle visible
set $ws1 "1:  Code" set $ws1 "1:  Code"
assign [class="Alacritty"] $ws1 assign [app_id="Alacritty"] $ws1
set $ws2 "2:  Browser" set $ws2 "2:  Browser"
assign [class="Firefox"] $ws2 assign [class="Firefox"] $ws2
assign [class="Chromium"] $ws2 assign [class="Chromium"] $ws2
assign [class="Google-chrome-beta"] $ws2 assign [class="Google-chrome-beta"] $ws2
assign [class="Google-chrome"] $ws2 assign [app_id="google-chrome-beta"] $ws2
assign [class="Google-chrome"] $ws2
assign [app_id="google-chrome"] $ws2
set $ws3 "3:  Music" set $ws3 "3:  Music"
assign [class="Spotify"] $ws3 assign [class="Spotify"] $ws3
assign [class="spotify"] $ws3 assign [class="spotify"] $ws3
assign [app_id="dev.alextren.Spot"] $ws3
set $ws4 "4:  Chat" set $ws4 "4:  Chat"
# Switch to workspace # Switch to workspace
bindsym $mod+1 workspace $ws1 bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2 bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3 bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4 bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace number 5 bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6 bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7 bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8 bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9 bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10 bindsym $mod+0 workspace number 10
# Move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $ws1 # Move focused container to workspace
bindsym $mod+Shift+2 move container to workspace $ws2 bindsym $mod+Shift+1 move container to workspace $ws1
bindsym $mod+Shift+3 move container to workspace $ws3 bindsym $mod+Shift+2 move container to workspace $ws2
bindsym $mod+Shift+4 move container to workspace $ws4 bindsym $mod+Shift+3 move container to workspace $ws3
bindsym $mod+Shift+5 move container to workspace number 5 bindsym $mod+Shift+4 move container to workspace $ws4
bindsym $mod+Shift+6 move container to workspace number 6 bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+7 move container to workspace number 7 bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+8 move container to workspace number 8 bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+9 move container to workspace number 9 bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+0 move container to workspace number 10 bindsym $mod+Shift+9 move container to workspace number 9
# Note: workspaces can have any name you want, not just numbers. bindsym $mod+Shift+0 move container to workspace number 10
# We just use 1-10 as the default. # Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default.
for_window [class="zoom"] floating enable
for_window [title="Zoom Meeting.*"] floating disable
for_window [title="Zoom Meeting.*"] inhibit_idle visible
# #
# Layout stuff: # Layout stuff:
@ -212,6 +222,7 @@ for_window [title="Zoom Meeting.*"] inhibit_idle visible
# Switch the current container between different layout styles # Switch the current container between different layout styles
bindsym $mod+w exec $toggle_layout bindsym $mod+w exec $toggle_layout
bindsym $mod+g exec $toggle_gaps bindsym $mod+g exec $toggle_gaps
bindsym $mod+Shift+g exec $toggle_bar
# Make the current focus fullscreen # Make the current focus fullscreen
bindsym $mod+f fullscreen bindsym $mod+f fullscreen
@ -226,16 +237,18 @@ for_window [title="Zoom Meeting.*"] inhibit_idle visible
# bindsym $mod+a focus parent # bindsym $mod+a focus parent
# Screenshots # Screenshots
# -- Entire Screen
bindsym $mod+s exec $screenshot
# -- Area Screenshot # -- Area Screenshot
bindsym $mod+Shift+s exec $screenclip bindsym $mod+Shift+s exec $screenclip
# -- Select Window # -- Select Window
bindsym $mod+Control+s exec $windowshot bindsym $mod+Control+s exec $windowshot
# -- Entire Screen
bindsym $mod+s exec $screenshot
bindsym $mod+i exec $select_emoji bindsym $mod+i exec $select_emoji
bindsym $mod+l exec $lock_screen bindsym $mod+Shift+i exec $debug_window
bindsym $mod+Tab exec $select_window bindsym $mod+o exec $open_localhost
bindsym $mod+c exec $lock_screen
bindsym Alt+Tab exec $select_window
bindsym $mod+m exec $mail bindsym $mod+m exec $mail
# #
# Scratchpad: # Scratchpad:
@ -257,10 +270,16 @@ mode "resize" {
# right will grow the containers width # right will grow the containers width
# up will shrink the containers height # up will shrink the containers height
# down will grow the containers height # down will grow the containers height
bindsym $left resize shrink width 10px bindsym $left resize shrink width 100px
bindsym $down resize grow height 10px bindsym $down resize grow height 100px
bindsym $up resize shrink height 10px bindsym $up resize shrink height 100px
bindsym $right resize grow width 10px bindsym $right resize grow width 100px
bindsym Shift+$left resize shrink width 20px
bindsym Shift+$down resize grow height 20px
bindsym Shift+$up resize shrink height 20px
bindsym Shift+$right resize grow width 20px
# Ditto, with arrow keys # Ditto, with arrow keys
bindsym Left resize shrink width 10px bindsym Left resize shrink width 10px
@ -274,10 +293,7 @@ mode "resize" {
} }
bindsym $mod+r mode "resize" bindsym $mod+r mode "resize"
exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK
# Do we need that? # Do we need that?
exec_always nm-applet --indicator
# Handles notifications # Handles notifications
exec_always mako exec_always mako
@ -294,4 +310,4 @@ bar {
} }
include @sysconfdir@/sway/config.d/* include @sysconfdir@/sway/config.d/*
exec systemctl --user import-environment exec "systemctl --user import-environment SWAYSOCK WAYLAND_DISPLAY";

33
configs/sway/debug_window.sh Executable file
View File

@ -0,0 +1,33 @@
#!/bin/bash
ALL_NODES='recurse(.nodes[]?, .floating_nodes[]?) | select(.pid and .visible)'
WINDOW_NAME='(.app_id // .window_properties.class)'
ID_PREFIX='"\(.pid):"'
WINDOW_PROTOCOL='(if .shell == "xwayland" then "X11" else "wayland" end)'
WINDOW_GEOMETRY='(.rect | "\(.x),\(.y) \(.width)x\(.height) ")'
WINDOW_PID='(.pid | tostring)'
CLEAR_OBJ="del(.rect, .name, .focus, .border, .current_border_width, .window_rect, .orientation, .layout, .percent, .deco_rect, .geometry, .window, .urgent, .marks, .sticky, .type, .fullscreen_mode, .nodes, .floating_nodes, .shell, .max_render_time, .visible, .idle_inhibitors, .inhibit_idle)"
# Output format, e.g. "1234 - 12:firefox (wayland)" or "5678 - 17:discord (X11)"
FORMAT="$WINDOW_PID"
FILT="$ALL_NODES | $WINDOW_GEOMETRY + $FORMAT"
function getprop() {
typeset -A views
local selected
while read POS GEOM INFO; do
views["$POS $GEOM"]="$INFO"
done
selected="$(printf "%s\n" "${!views[@]}" | slurp)"
if [[ -n "$selected" ]]; then
window_id=${views[${selected}]};
SELECT_ID=$(echo ".. | (.nodes? // empty)[] | select(.pid == $window_id) | $CLEAR_OBJ ")
echo $SELECT_ID
notify "Debug:" "$(swaymsg -t get_tree | jq -r "$SELECT_ID")";
fi
}
swaymsg -t get_tree | jq -r "$FILT" | getprop

16
configs/sway/toggle_bar.sh Executable file
View File

@ -0,0 +1,16 @@
#!/bin/bash
GAPS=3
# How to get the current inner border from swaymsg
#$ echo $(swaymsg -t get_config | jq ".config") | sed -n '/gaps\ inner/p' | sed 's/gaps\ inner//g' | xargs
if [ "$(pgrep waybar)" != "" ]; then
killall waybar;
swaymsg gaps outer all set 0;
swaymsg gaps inner all set 0;
else
swaymsg gaps outer all set $GAPS;
swaymsg gaps inner all set $GAPS;
nohup waybar & 2&> /dev/null;
fi

9
configs/wofi/open-localhost Executable file
View File

@ -0,0 +1,9 @@
#!/bin/bash
open "http://localhost:$(sed '1,/^### DATA ###$/d' $0 | wofi --show dmenu -i | cut -d ' ' -f 1 | tr -d '\n')"
exit
### DATA ###
8000
8080
3000
3001
80

View File

@ -1,7 +1,306 @@
#!/bin/bash #!/bin/bash
sed '1,/^### DATA ###$/d' $0 | wofi --show dmenu -i | cut -d ' ' -f 1 | tr -d '\n' | wl-copy EMOJI=$(sed '1,/^### DATA ###$/d' $0 | wofi --show dmenu -i | cut -d ' ' -f 1 | tr -d '\n')
wtype $EMOJI
wl-copy $EMOJI
exit exit
### DATA ### ### DATA ###
Ω Ohm
← Left Arrow
↑ Up Arrow
→ Right Arrow
↓ Down Arrow
↔ Left Right Arrow
↕ Up Down Arrow
↖ North West Arrow
↗ North East Arrow
↘ South East Arrow
↙ South West Arrow
↚ Left Arrow with Stroke
↛ Right Arrow with Stroke
↜ Left Wave Arrow
↝ Right Wave Arrow
↞ Left Two Headed Arrow
↟ Up Two Headed Arrow
↠ Right Two Headed Arrow
↡ Down Two Headed Arrow
↢ Left Arrow with Tail
↣ Right Arrow with Tail
↤ Left Arrow from Bar
↥ Up Arrow from Bar
↦ Right Arrow from Bar
↧ Down Arrow from Bar
↨ Up Down Arrow with Base
↩ Left Arrow with Hook
↪ Right Arrow with Hook
↫ Left Arrow with Loop
↬ Right Arrow with Loop
↭ Left Right Wave Arrow
↮ Left Right Arrow with Stroke
↯ Down Zigzag Arrow
↰ Up Arrow with Tip Left
↱ Up Arrow with Tip Right
↲ Down Arrow with Tip Left
↳ Down Arrow with Tip Right
↴ Right Arrow with Corner Down
↵ Down Arrow with Corner Left
↶ Anticlockwise Top Semicircle Arrow
↷ Clockwise Top Semicircle Arrow
↸ North West Arrow to Long Bar
↹ Left Arrow to Bar over Right Arrow to bar
↺ Anticlockwise Open Circle Arrow
↻ Clockwise Open Circle Arrow
↼ Left Harpoon with Barb Up
↽ Left Harpoon with Barb Down
↾ Up Harpoon with Barb Right
↿ Up Harpoon with Barb Left
⇀ Right Harpoon with Barb Up
⇁ Right Harpoon with Barb Down
⇂ Down Harpoon with Barb Right
⇃ Down Harpoon with Barb Left
⇄ Right Arrow over Left Arrow
⇅ Up Arrow Left of Down Arrow
⇆ Left Arrow over Right Arrow
⇇ Left Paired Arrows
⇈ Up Paired Arrows
⇉ Right Paired Arrows
⇊ Downards Paired Arrows
⇋ Left Harpoon over Right Harpoon
⇌ Right Harpoon over Left Harpoon
⇍ Left Double Arrow with Stroke
⇎ Left Right Double Arrow with Stroke
⇏ Right Double Arrow with Stroke
⇐ Left Double Arrow
⇑ Up Double Arrow
⇒ Right Double Arrow
⇓ Down Double Arrow
⇔ Left Right Double Arrow
⇕ Up Down Double Arrow
⇖ North West Double Arrow
⇗ North East Double Arrow
⇘ South East Double Arrow
⇙ South West Double Arrow
⇚ Left Triple Arrow
⇛ Right Triple Arrow
⇜ Left Squiggle Arrow
⇝ Right Squiggle Arrow
⇞ Up Arrow with Double Stroke
⇟ Down Arrow with Double Stroke
⇠ Left Dashed Arrow
⇡ Up Dashed Arrow
⇢ Right Dashed Arrow
⇣ Down Dashed Arrow
⇤ Left Arrow to Bar
⇥ Right Arrow to Bar
⇥ Right Arrow to Bar
⇦ Left White Arrow
⇧ Up White Arrow
⇨ Right White Arrow
⇩ Down White Arrow
⇪ Up White Arrow from Bar
⇫ Up White Arrow on Pedestal
⇬ Up White Arrow on Pedestal with Horizontal Bar
⇭ Up White Arrow on Pedestal with Vertical Bar
⇮ Up White Double Arrow
⇯ Up White Double Arrow on Pedestal
⇰ Right White Arrow from Wall
⇱ North West Arrow to Corner
⇲ South East Arrow to Corner
⇳ Up Down White Arrow
⇴ Right Arrow with Small Circle
⇵ Down Arrow Left of Up Arrow
⇶ Three Right Arrows
⇷ Left Arrow with Vertical Stroke
⇸ Right Arrow with Vertical Stroke
⇹ Left Right Arrow with Vertical Stroke
⇺ Left Arrow with Double Vertical Stroke
⇻ Right Arrow with Double Vertical Stroke
⇼ Left Right Arrow with Double Vertical Stroke
⇽ Left Open-headed Arrow
⇾ Right Open-headed Arrow
⇿ Left Right Open-headed Arrow
⟰ Up Quadruple Arrow
⟱ Down Quadruple Arrow
⟲ Anticlockwise Gapped Circle Arrow
⟳ Clockwise Gapped Circle Arrow
⟴ Right Arrow With Circled Plus
⟵ Long Left Arrow
⟶ Long Right Arrow
⟷ Long Left Right Arrow
⟸ Long Left Double Arrow
⟹ Long Right Double Arrow
⟺ Long Left Right Double Arrow
⟻ Long Left Arrow From Bar
⟼ Long Right Arrow From Bar
⟽ Long Left Double Arrow From Bar
⟾ Long Right Double Arrow From Bar
⟿ Long Right Squiggle Arrow
⤀ Right Two-Headed Arrow With Vertical Stroke
⤁ Right Two-Headed Arrow With Double Vertical Stroke
⤂ Left Double Arrow With Vertical Stroke
⤃ Right Double Arrow With Vertical Stroke
⤄ Left Right Double Arrow With Vertical Stroke
⤅ Right Two-Headed Arrow From Bar
⤆ Left Double Arrow From Bar
⤇ Right Double Arrow From Bar
⤈ Down Arrow With Horizontal Stroke
⤉ Up Arrow With Horizontal Stroke
⤊ Up Triple Arrow
⤋ Down Triple Arrow
⤌ Left Double Dash Arrow
⤍ Right Double Dash Arrow
⤎ Left Triple Dash Arrow
⤏ Right Triple Dash Arrow
⤐ Right Two-Headed Triple Dash Arrow
⤑ Right Arrow With Dotted Stem
⤒ Up Arrow to Bar
⤓ Down Arrow to Bar
⤔ Right Arrow With Tail With Vertical Stroke
⤕ Right Arrow With Tail With Double Vertical Stroke
⤖ Right Two-Headed Arrow With Tail
⤗ Right Two-Headed Arrow With Tail With Vertical Stroke
⤘ Right Two-Headed Arrow With Tail With Double Vertical Stroke
⤙ Left Arrow-Tail
⤚ Right Arrow-Tail
⤛ Left Double Arrow-Tail
⤜ Right Double Arrow-Tail
⤝ Left Arrow to Black Diamond
⤞ Right Arrow to Black Diamond
⤟ Left Arrow From Bar to Black Diamond
⤠ Right Arrow From Bar to Black Diamond
⤡ North West and South East Arrow
⤢ North East and South West Arrow
⤣ North West Arrow With Hook
⤤ North East Arrow With Hook
⤥ South East Arrow With Hook
⤦ South West Arrow With Hook
⤧ North West Arrow and North East Arrow
⤨ North East Arrow and South East Arrow
⤩ South East Arrow and South West Arrow
⤪ South West Arrow and North West Arrow
Rising Diagonal Crossing Falling Diagonal
Falling Diagonal Crossing Rising Diagonal
⤭ South East Arrow Crossing North East Arrow
⤮ North East Arrow Crossing South East Arrow
⤯ Falling Diagonal Crossing North East Arrow
⤰ Rising Diagonal Crossing South East Arrow
⤱ North East Arrow Crossing North West Arrow
⤲ North West Arrow Crossing North East Arrow
⤳ Wave Arrow Pointing Directly Right
⤴ Arrow Pointing Right Then Curving Up
⤵ Arrow Pointing Right Then Curving Down
⤶ Arrow Pointing Down Then Curving Left
⤷ Arrow Pointing Down Then Curving Right
⤸ Right-Side Arc Clockwise Arrow
⤹ Left-Side Arc Anticlockwise Arrow
⤺ Top Arc Anticlockwise Arrow
⤻ Bottom Arc Anticlockwise Arrow
⤼ Top Arc Clockwise Arrow With Minus
⤽ Top Arc Anticlockwise Arrow With Plus
⤾ Lower Right Semicircular Clockwise Arrow
⤿ Lower Left Semicircular Anticlockwise Arrow
⥀ Anticlockwise Closed Circle Arrow
⥁ Clockwise Closed Circle Arrow
⥂ Right Arrow Above Short Left Arrow
⥃ Left Arrow Above Short Right Arrow
⥄ Short Right Arrow Above Left Arrow
⥅ Right Arrow With Plus Below
⥆ Left Arrow With Plus Below
⥇ Right Arrow Through X
⥈ Left Right Arrow Through Small Circle
⥉ Up Two-Headed Arrow From Small Circle
⥊ Left Barb Up Right Barb Down Harpoon
⥋ Left Barb Down Right Barb Up Harpoon
⥌ Up Barb Right Down Barb Left Harpoon
⥍ Up Barb Left Down Barb Right Harpoon
⥎ Left Barb Up Right Barb Up Harpoon
⥏ Up Barb Right Down Barb Right Harpoon
⥐ Left Barb Down Right Barb Down Harpoon
⥑ Up Barb Left Down Barb Left Harpoon
⥒ Left Harpoon With Barb Up to Bar
⥓ Right Harpoon With Barb Up to Bar
⥔ Up Harpoon With Barb Right to Bar
⥕ Down Harpoon With Barb Right to Bar
⥖ Left Harpoon With Barb Down to Bar
⥗ Right Harpoon With Barb Down to Bar
⥘ Up Harpoon With Barb Left to Bar
⥙ Down Harpoon With Barb Left to Bar
⥚ Left Harpoon With Barb Up From Bar
⥛ Right Harpoon With Barb Up From Bar
⥜ Up Harpoon With Barb Right From Bar
⥝ Down Harpoon With Barb Right From Bar
⥞ Left Harpoon With Barb Down From Bar
⥟ Right Harpoon With Barb Down From Bar
⥠ Up Harpoon With Barb Left From Bar
⥡ Down Harpoon With Barb Left From Bar
⥢ Left Harpoon With Barb Up Above Left Harpoon With Barb Down
⥣ Up Harpoon With Barb Left Beside Up Harpoon With Barb Right
⥤ Right Harpoon With Barb Up Above Right Harpoon With Barb Down
⥥ Down Harpoon With Barb Left Beside Down Harpoon With Barb Right
⥦ Left Harpoon With Barb Up Above Right Harpoon With Barb Up
⥧ Left Harpoon With Barb Down Above Right Harpoon With Barb Down
⥨ Right Harpoon With Barb Up Above Left Harpoon With Barb Up
⥩ Right Harpoon With Barb Down Above Left Harpoon With Barb Down
⥪ Left Harpoon With Barb Up Above Long Dash
⥫ Left Harpoon With Barb Down Below Long Dash
⥬ Right Harpoon With Barb Up Above Long Dash
⥭ Right Harpoon With Barb Down Below Long Dash
⥮ Up Harpoon With Barb Left Beside Down Harpoon With Barb Right
⥯ Down Harpoon With Barb Left Beside Up Harpoon With Barb Right
⥰ Right Double Arrow With Rounded Head
⥱ Equals Sign Above Right Arrow
⥲ Tilde Operator Above Right Arrow
⥳ Left Arrow Above Tilde Operator
⥴ Right Arrow Above Tilde Operator
⥵ Right Arrow Above Almost Equal To
⥶ Less-Than Above Left Arrow
⥷ Left Arrow Through Less-Than
⥸ Greater-Than Above Right Arrow
⥹ Subset Above Right Arrow
⥺ Left Arrow Through Subset
⥻ Superset Above Left Arrow
⥼ Left Fish Tail
⥽ Right Fish Tail
⥾ Up Fish Tail
⥿ Down Fish Tail
➔ Heavy Wide-Headed Right Arrow
➘ Heavy South East Arrow
➙ Heavy Right Arrow
➚ Heavy North East Arrow
➛ Drafting Point Right Arrow
➜ Heavy Round-Tipped Right Arrow
➝ Triangle-Headed Right Arrow
➞ Heavy Triangle-Headed Right Arrow
➟ Dashed Triangle-Headed Right Arrow
➠ Heavy Dashed Triangle-Headed Right Arrow
➡ Black Right Arrow
➢ Three-D Top-Lighted Right Arrowhead
➣ Three-D Bottom-Lighted Right Arrowhead
➤ Black Right Arrowhead
➥ Heavy Black Curved Down and Right Arrow
➦ Heavy Black Curved Up and Right Arrow
➧ Squat Black Right Arrow
➨ Heavy Concave-Pointed Black Right Arrow
➩ Right-Shaded White Right Arrow
➪ Left-Shaded White Right Arrow
➫ Back-Tilted Shadowed White Right Arrow
➬ Front-Tilted Shadowed White Right Arrow
➭ Heavy Lower Right-Shadowed White Right Arrow
➮ Heavy Upper Right-Shadowed White Right Arrow
➯ Notched Lower Right-Shadowed White Right Arrow
➱ Notched Upper Right-Shadowed White Right Arrow
➲ Circled Heavy White Right Arrow
➳ White-Feathered Right Arrow
➴ Black-Feathered South East Arrow
➵ Black-Feathered Right Arrow
➶ Black-Feathered North East Arrow
➷ Heavy Black-Feathered South East Arrow
➸ Heavy Black-Feathered Right Arrow
➹ Heavy Black-Feathered North East Arrow
➺ Teardrop-Barbed Right Arrow
➻ Heavy Teardrop-Shanked Right Arrow
➼ Wedge-Tailed Right Arrow
➽ Heavy Wedge-Tailed Right Arrow
➾ Open-Outlined Right Arrow
😀 grinning face 😀 grinning face
😃 grinning face with big eyes 😃 grinning face with big eyes
😄 grinning face with smiling eyes 😄 grinning face with smiling eyes

3
configs/wofi/wofi-emoji-new Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
rofimoji

138
configs/wofi/wofi-emoji-old-2 Executable file
View File

@ -0,0 +1,138 @@
#!/usr/bin/env bash
# Source: https://gist.github.com/NearHuscarl/5d366e1a3b788814bcbea62c1f66241d
#
# Use wofi to pick emoji because that's what this
# century is about apparently...
#
# Requirements:
# wofi, wlroots based compositor
#
# Usage:
# 1. Download all emoji
# $ wofi-emoji --download
#
# 2. Run it!
# $ wofi-emoji
#
# Notes:
# * You'll need a emoji font like "Noto Emoji" or "EmojiOne".
# * Confirming an item will automatically paste it WITHOUT
# writing it to your clipboard.
# * Ctrl+C will copy it to your clipboard WITHOUT pasting it.
#
# Where to save the emojis file.
EMOJI_FILE="$HOME/.cache/emojis.txt"
# Urls of emoji to download.
# You can remove what you don't need.
URLS=(
'https://emojipedia.org/people/'
'https://emojipedia.org/nature/'
'https://emojipedia.org/food-drink/'
'https://emojipedia.org/activity/'
'https://emojipedia.org/travel-places/'
'https://emojipedia.org/objects/'
'https://emojipedia.org/symbols/'
'https://emojipedia.org/flags/'
)
function notify() {
if [ "$(command -v notify-send)" ]; then
notify-send "$1" "$2"
fi
}
function download() {
notify "$(basename "$0")" 'Downloading all emoji for your pleasure'
echo "" > "$EMOJI_FILE"
for url in "${URLS[@]}"; do
echo "Downloading: $url"
# Download the list of emoji and remove all the junk around it
emojis=$(curl -s "$url" | \
xmllint --html \
--xpath '//ul[@class="emoji-list"]' - 2>/dev/null)
# Get rid of starting/closing ul tags
emojis=$(echo "$emojis" | head -n -1 | tail -n +1)
# Extract the emoji and its description
emojis=$(echo "$emojis" | \
sed -rn 's/.*<span class="emoji">(.*)<\/span> (.*)<\/a><\/li>/\1 \2/p')
echo "$emojis" >> "$EMOJI_FILE"
done
notify "$(basename "$0")" "We're all set!"
}
function wofi_menu() { # {{{
wofi -width 25 -lines 7 -dmenu -i -p 'emoji: ' \
-kb-row-tab '' \
-kb-row-select Tab \
-kb-custom-1 Ctrl+c
}
# }}}
function repeat() { # {{{
local rplc str="$1" count="$2"
rplc="$(printf "%${count}s")"
echo "${rplc// /"$str"}"
}
# }}}
function toclipboard() { # {{{
wl-copy
}
# }}}
function pastedirectly() { #{{{
wtype -
}
# }}}
function display() {
local emoji line exit_code quantifier
emoji=$(cat "$EMOJI_FILE" | grep -v '#' | grep -v '^[[:space:]]*$')
line="$(echo "$emoji" | wofi_menu)"
exit_code=$?
line=($line)
last=${line[${#line[@]}-1]}
quantifier="${last:${#last}-1:1}"
if [[ ! "$quantifier" =~ [0-9] ]]; then
quantifier=1
fi
emoijs="$(repeat "${line[0]}" "$quantifier")"
if [ $exit_code == 0 ]; then
echo -n "$emoijs" | pastedirectly
elif [ $exit_code == 10 ]; then
echo -n "$emoijs" | toclipboard
fi
}
# Some simple argparsing
if [[ "$1" =~ -D|--download ]]; then
download
exit 0
elif [[ "$1" =~ -h|--help ]]; then
echo "usage: $0 [-D|--download]"
exit 0
fi
# Download all emoji if they don't exist yet
if [ ! -f "$EMOJI_FILE" ]; then
download
fi
# display displays :)
display

View File

@ -9,21 +9,12 @@ alias yoink="curl"
alias pls='sudo -E env "PATH=$PATH"' alias pls='sudo -E env "PATH=$PATH"'
alias zshi="cd ~/.dotfiles && vim configs/init.lua && cd -"
alias zshc="cd ~/.dotfiles && vim configs/.zshrc && cd -"
alias zshu="source ~/.zshrc"
alias online="ping 1.1.1.1" alias online="ping 1.1.1.1"
alias vim="nvim" alias vim="nvim"
alias v="nvim" alias v="nvim"
alias gs="git status"
alias gaa="git add ."
alias gpm="git push origin main"
alias gcm="git commit -m " alias gcm="git commit -m "
alias czi="commitizen init cz-conventional-changelog --yarn --dev --exact"
alias cz="git-cz"
alias D="run dev" alias D="run dev"
alias B="run build" alias B="run build"

View File

@ -5,8 +5,9 @@ source $(dirname "$0")/functions/wp.zsh;
source $(dirname "$0")/functions/fp.zsh; source $(dirname "$0")/functions/fp.zsh;
source $(dirname "$0")/functions/rn.zsh; source $(dirname "$0")/functions/rn.zsh;
source $(dirname "$0")/functions/sum.zsh; source $(dirname "$0")/functions/sum.zsh;
source $(dirname "$0")/functions/mke.zsh;
source $(dirname "$0")/functions/myip.zsh; source $(dirname "$0")/functions/myip.zsh;
source $(dirname "$0")/functions/cht.zsh; source $(dirname "$0")/functions/cht.zsh;
source $(dirname "$0")/functions/dv.zsh; source $(dirname "$0")/functions/dv.zsh;
source $(dirname "$0")/functions/run.zsh; source $(dirname "$0")/functions/run.zsh;
source $(dirname "$0")/functions/conf.zsh;
source $(dirname "$0")/functions/note.zsh;

View File

@ -0,0 +1,27 @@
function conf(){
if [ "$1" = "u" ]; then
source ~/.zshrc
else
cd ~/.dotfiles/
if [ "$1" != "" ]; then
cd configs
cd $1
fi
if [[ -f "init.lua" ]]; then
nvim init.lua
elif [[ -f ".zshrc" ]]; then
nvim .zshrc
source ~/.zshrc
elif [[ -f "config" ]]; then
nvim config
else
nvim .
fi
fi
}

View File

@ -1,4 +0,0 @@
function mke(){
mkdir -p $1
cd $1
}

View File

@ -0,0 +1,15 @@
function note(){
cd ~/Notes
if [ "$1" != "" ]; then
cd $1
fi
if [[ -f "index.md" ]]; then
nvim index.md
else
nvim .
fi
}
compctl -/ -W ~/Notes/$@ note

View File

@ -1,11 +1,7 @@
function run(){ function run(){
HAS_MAKE="$(ls | grep Makefile)" if [[ -f "package.json" ]]; then
HAS_PACKAGE="$(ls | grep package.json)"
if [ "$HAS_PACKAGE" != "" ]; then
pnpm $1 pnpm $1
elif [ "$HAS_MAKE" != "" ]; then elif [[ -f "Makefile" ]]; then
make $1 make $1
fi fi
} }