feat: refactor
This commit is contained in:
parent
42db054021
commit
4bf6a46a85
@ -22,6 +22,8 @@ eval `dircolors ~/.dircolors`
|
||||
|
||||
export FPATH=$FPATH:~/.dotfiles/completions
|
||||
export NVIM_HOME=$HOME/.config/nvim
|
||||
export NVIM_LISTEN_ADDRESS=/tmp/nvimsocket
|
||||
export NVR_CMD=""
|
||||
|
||||
# Load oh my zsh
|
||||
export ZSH=~/.oh-my-zsh
|
||||
@ -78,6 +80,10 @@ if type rg &> /dev/null; then
|
||||
export FZF_DEFAULT_OPTS='-m --height 50% --border'
|
||||
fi
|
||||
|
||||
if [ "$XDG_SESSION_TYPE" = "wayland" ]; then
|
||||
export MOZ_ENABLE_WAYLAND=1
|
||||
fi
|
||||
|
||||
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
||||
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
||||
|
||||
|
21
configs/kitty/current-theme.conf
Normal file
21
configs/kitty/current-theme.conf
Normal file
@ -0,0 +1,21 @@
|
||||
background #000000
|
||||
foreground #fffaf3
|
||||
cursor #ffffff
|
||||
selection_background #002a3a
|
||||
color0 #222222
|
||||
color8 #444444
|
||||
color1 #ff000f
|
||||
color9 #ff273f
|
||||
color2 #8ce00a
|
||||
color10 #abe05a
|
||||
color3 #ffb900
|
||||
color11 #ffd141
|
||||
color4 #008df8
|
||||
color12 #0092ff
|
||||
color5 #6c43a5
|
||||
color13 #9a5feb
|
||||
color6 #00d7eb
|
||||
color14 #67ffef
|
||||
color7 #ffffff
|
||||
color15 #ffffff
|
||||
selection_foreground #0d0f18
|
@ -1,7 +1,5 @@
|
||||
# vim:fileencoding=utf-8:ft=conf:foldmethod=marker
|
||||
|
||||
include ./theme.conf
|
||||
|
||||
#: Fonts {{{
|
||||
|
||||
#: kitty has very powerful font management. You can configure
|
||||
@ -627,9 +625,8 @@ window_padding_width 10
|
||||
|
||||
#: Color scheme {{{
|
||||
#
|
||||
|
||||
foreground #dddddd
|
||||
background #000000
|
||||
# foreground #dddddd
|
||||
# background #000000
|
||||
|
||||
#: The foreground and background colors
|
||||
|
||||
@ -793,7 +790,7 @@ background #000000
|
||||
#: to yes means that any background processes still using the terminal
|
||||
#: can fail silently because their stdout/stderr/stdin no longer work.
|
||||
|
||||
# allow_remote_control no
|
||||
allow_remote_control yes
|
||||
|
||||
#: Allow other programs to control kitty. If you turn this on other
|
||||
#: programs can control all aspects of kitty, including sending text
|
||||
@ -806,7 +803,7 @@ background #000000
|
||||
#: you want to prevent programs running on a remote computer over ssh
|
||||
#: from controlling kitty.
|
||||
|
||||
# listen_on none
|
||||
listen_on unix:/tmp/kitty-socket
|
||||
|
||||
#: Tell kitty to listen to the specified unix/tcp socket for remote
|
||||
#: control connections. Note that this will apply to all kitty
|
||||
@ -1314,3 +1311,9 @@ map kitty_mod+minus change_font_size all -2.0
|
||||
#: }}}
|
||||
|
||||
# }}}
|
||||
|
||||
|
||||
# BEGIN_KITTY_THEME
|
||||
# Argonaut
|
||||
include current-theme.conf
|
||||
# END_KITTY_THEME
|
||||
|
1319
configs/kitty/kitty.conf.bak
Normal file
1319
configs/kitty/kitty.conf.bak
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,21 +0,0 @@
|
||||
background #000000
|
||||
foreground #ffffff
|
||||
cursor #e2bbef
|
||||
selection_background #4d4d4d
|
||||
color0 #3d352a
|
||||
color8 #554444
|
||||
color1 #cd5c5c
|
||||
color9 #cc5533
|
||||
color2 #86af80
|
||||
color10 #88aa22
|
||||
color3 #e8ae5b
|
||||
color11 #ffa75d
|
||||
color4 #6495ed
|
||||
color12 #87ceeb
|
||||
color5 #deb887
|
||||
color13 #996600
|
||||
color6 #b0c4de
|
||||
color14 #b0c4de
|
||||
color7 #bbaa99
|
||||
color15 #ddccbb
|
||||
selection_foreground #1c1c1c
|
21
configs/kitty/themes/Argonaut.conf
Normal file
21
configs/kitty/themes/Argonaut.conf
Normal file
@ -0,0 +1,21 @@
|
||||
background #000000
|
||||
foreground #fffaf3
|
||||
cursor #ffffff
|
||||
selection_background #002a3a
|
||||
color0 #222222
|
||||
color8 #444444
|
||||
color1 #ff000f
|
||||
color9 #ff273f
|
||||
color2 #8ce00a
|
||||
color10 #abe05a
|
||||
color3 #ffb900
|
||||
color11 #ffd141
|
||||
color4 #008df8
|
||||
color12 #0092ff
|
||||
color5 #6c43a5
|
||||
color13 #9a5feb
|
||||
color6 #00d7eb
|
||||
color14 #67ffef
|
||||
color7 #ffffff
|
||||
color15 #ffffff
|
||||
selection_foreground #0d0f18
|
21
configs/kitty/themes/Atom One Light.conf
Normal file
21
configs/kitty/themes/Atom One Light.conf
Normal file
@ -0,0 +1,21 @@
|
||||
background #f8f8f8
|
||||
foreground #2a2b33
|
||||
cursor #bbbbbb
|
||||
selection_background #ececec
|
||||
color0 #000000
|
||||
color8 #000000
|
||||
color1 #de3d35
|
||||
color9 #de3d35
|
||||
color2 #3e953a
|
||||
color10 #3e953a
|
||||
color3 #d2b67b
|
||||
color11 #d2b67b
|
||||
color4 #2f5af3
|
||||
color12 #2f5af3
|
||||
color5 #950095
|
||||
color13 #a00095
|
||||
color6 #3e953a
|
||||
color14 #3e953a
|
||||
color7 #bbbbbb
|
||||
color15 #ffffff
|
||||
selection_foreground #f8f8f8
|
@ -1,228 +1,93 @@
|
||||
require("install-packer")
|
||||
require("utils.install-packer")
|
||||
|
||||
local u = require("utils")
|
||||
require("core.plugins")
|
||||
|
||||
local o = vim.o
|
||||
local g = vim.g
|
||||
local cmd = vim.cmd
|
||||
local opt = vim.opt
|
||||
|
||||
require("plugins")
|
||||
|
||||
if u.has_plugin("cmp") then
|
||||
-- Global options
|
||||
o.number = true -- show line number
|
||||
o.showmatch = true -- show matching brackets
|
||||
require "impatient"
|
||||
|
||||
-- Indentation options
|
||||
vim.cmd [[
|
||||
set autoindent
|
||||
set expandtab
|
||||
set shiftwidth=2
|
||||
set softtabstop=2
|
||||
set tabstop=1
|
||||
]]
|
||||
require "core.options"
|
||||
require "core.autocommands"
|
||||
require "core.keymappings"
|
||||
|
||||
g.hidden = true -- unload buffers when hidden
|
||||
g.filetype = true -- execute autocommands based on filetype
|
||||
opt.clipboard = {"unnamedplus"}
|
||||
o.autoread = true
|
||||
opt.termguicolors = true
|
||||
local packer = require("packer")
|
||||
|
||||
-- Search
|
||||
o.inccommand = "nosplit" -- show substitutions incrementally
|
||||
o.ignorecase = true
|
||||
o.smartcase = true
|
||||
opt.wildignore:append(".git/*", "node_modules/*")
|
||||
o.wildignorecase = true
|
||||
o.lazyredraw = true
|
||||
|
||||
opt.listchars:append(
|
||||
{
|
||||
extends = "#",
|
||||
eol = "↴",
|
||||
space = "⋅",
|
||||
tab = "▸ "
|
||||
-- Have packer use a popup window
|
||||
packer.init {
|
||||
display = {
|
||||
open_fn = function()
|
||||
return require("packer.util").float { border = "rounded" }
|
||||
end,
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
-- Shortmess
|
||||
cmd [[set shortmess+=F]]
|
||||
g.loaded_netrw = 1
|
||||
g.loaded_netrwPlugin = 1
|
||||
g.loaded_zipPlugin = 1
|
||||
g.loaded_zip = 1
|
||||
|
||||
g.languagetool_server_jar = "~/build/languagetool/languagetool-server.jar"
|
||||
g.languagetool_lang = "de"
|
||||
|
||||
cmd [[set mouse=a]] -- enable mouse interaction
|
||||
cmd [[set undofile]]
|
||||
cmd [[set fcs=eob:\ ]] -- disable showing ~ in empty lines
|
||||
|
||||
cmd [[set noshowmode]] -- to get rid of thing like --INSERT--
|
||||
cmd [[set noshowcmd]] -- to get rid of display of last command
|
||||
cmd [[set shortmess+=F]] -- to get rid of the file name displayed in the command line bar
|
||||
|
||||
cmd [[set noruler]]
|
||||
|
||||
g.ale_fixers = {"prettier", "eslint"}
|
||||
|
||||
require("command-center-conf")
|
||||
|
||||
local notify = require("notify")
|
||||
vim.notify = notify;
|
||||
|
||||
notify.setup(
|
||||
{
|
||||
stages = "fade_in_slide_out",
|
||||
max_width = 50,
|
||||
render = "minimal",
|
||||
background_colour = "#000000",
|
||||
icons = {
|
||||
ERROR = "",
|
||||
WARN = "",
|
||||
INFO = "",
|
||||
DEBUG = "",
|
||||
TRACE = "✎"
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
vim.wo.foldmethod = "expr"
|
||||
vim.wo.foldexpr = "nvim_treesitter#foldexpr()"
|
||||
vim.cmd [[
|
||||
set foldlevel=99
|
||||
]]
|
||||
|
||||
require("telescope-conf").setup()
|
||||
require "configs.command-center"
|
||||
require "configs.notify"
|
||||
require "configs.lsp"
|
||||
require "configs.lspinstaller"
|
||||
require "configs.telescope"
|
||||
require "configs.tree"
|
||||
|
||||
-- Enable Theming / Syntax
|
||||
o.syntax = "enable"
|
||||
o.termguicolors = true
|
||||
cmd("colorscheme nightfox")
|
||||
g.material_terminal_italics = 1
|
||||
g.material_theme_style = "darker"
|
||||
g.tokyonight_style = "night"
|
||||
g.tokyonight_transparent_sidebar = true
|
||||
require("nightfox").setup(
|
||||
{
|
||||
require("nightfox").setup({
|
||||
options = {
|
||||
styles = {
|
||||
comments = "italic",
|
||||
keywords = "bold",
|
||||
types = "italic,bold"
|
||||
},
|
||||
transparent = true
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
g.markdown_fenced_languages = {"html", "python", "bash=sh"}
|
||||
|
||||
-- Remove background color
|
||||
cmd("highlight Normal guibg=none")
|
||||
cmd("highlight NonText guibg=none")
|
||||
|
||||
|
||||
|
||||
-- Configure nvim-tree
|
||||
g.nvim_tree_highlight_opened_files = 1
|
||||
g.nvim_tree_group_empty = 1
|
||||
g.nvim_tree_show_icons = {
|
||||
folder_arrows = 0,
|
||||
folders = 1,
|
||||
files = 1,
|
||||
git = 1
|
||||
}
|
||||
require("nvim-tree").setup {
|
||||
auto_open = 1,
|
||||
gitignore = 1,
|
||||
group_empty = 1,
|
||||
hijack_cursor = 1,
|
||||
update_cwd = true,
|
||||
update_focused_file = {
|
||||
enable = false
|
||||
},
|
||||
renderer = {
|
||||
indent_markers = {
|
||||
enable = 0
|
||||
}
|
||||
},
|
||||
diagnostics = {
|
||||
enable = true,
|
||||
icons = {
|
||||
hint = "",
|
||||
info = "",
|
||||
warning = "",
|
||||
error = ""
|
||||
}
|
||||
},
|
||||
view = {
|
||||
auto_resize = true,
|
||||
hide_root_folder = true,
|
||||
signcolumn = "no"
|
||||
}
|
||||
}
|
||||
})
|
||||
cmd("colorscheme nightfox")
|
||||
require "utils.theme-reloader"
|
||||
require "configs.lualine"
|
||||
|
||||
-- Configure Wiki
|
||||
g.wiki_root = "~/Notes"
|
||||
g.wiki_filetypes = {"md"}
|
||||
g.wiki_filetypes = { "md" }
|
||||
g.wiki_link_extension = ".md"
|
||||
|
||||
-- KeyBindings
|
||||
require "keymappings"
|
||||
|
||||
require "overlays"
|
||||
|
||||
require "nvim-tmux-navigation".setup {
|
||||
keybindings = {
|
||||
left = "<C-h>",
|
||||
down = "<C-j>",
|
||||
up = "<C-k>",
|
||||
right = "<C-l>",
|
||||
last_active = "<C-\\>",
|
||||
next = "<C-Space>"
|
||||
}
|
||||
}
|
||||
-- require "nvim-tmux-navigation".setup {
|
||||
-- keybindings = {
|
||||
-- left = "<C-h>",
|
||||
-- down = "<C-j>",
|
||||
-- up = "<C-k>",
|
||||
-- right = "<C-l>",
|
||||
-- last_active = "<C-\\>",
|
||||
-- next = "<C-Space>"
|
||||
-- }
|
||||
-- }
|
||||
|
||||
require "nvim-autopairs".setup()
|
||||
|
||||
-- Treesitter config
|
||||
require "treesitter-conf"
|
||||
require "configs.treesitter"
|
||||
|
||||
-- Autocompletion Setup
|
||||
require "snippets"
|
||||
require "cmp-conf"
|
||||
|
||||
-- LSP Config
|
||||
require "lspinstaller-conf"
|
||||
|
||||
-- Setup Command OVerlays
|
||||
require "lazy-git"
|
||||
|
||||
require "autocommands"
|
||||
require "configs.autocomplete"
|
||||
|
||||
-- Setup rest.vim
|
||||
require("rest-nvim").setup(
|
||||
{
|
||||
-- Open request results in a horizontal split
|
||||
result_split_horizontal = false,
|
||||
-- Skip SSL verification, useful for unknown certificates
|
||||
skip_ssl_verification = false,
|
||||
-- Highlight request on run
|
||||
highlight = {
|
||||
enabled = true,
|
||||
timeout = 150
|
||||
},
|
||||
-- Jump to request line on run
|
||||
jump_to_request = false
|
||||
}
|
||||
)
|
||||
-- require("rest-nvim").setup(
|
||||
-- {
|
||||
-- -- Open request results in a horizontal split
|
||||
-- result_split_horizontal = false,
|
||||
-- -- Skip SSL verification, useful for unknown certificates
|
||||
-- skip_ssl_verification = false,
|
||||
-- -- Highlight request on run
|
||||
-- highlight = {
|
||||
-- enabled = true,
|
||||
-- timeout = 150
|
||||
-- },
|
||||
-- -- Jump to request line on run
|
||||
-- jump_to_request = false
|
||||
-- }
|
||||
-- )
|
||||
|
||||
-- LSP Config
|
||||
require "lspinstaller-conf"
|
||||
-- require "lsp-conf"
|
||||
else
|
||||
vim.cmd [[PackerSync]]
|
||||
vim.cmd [[echo Installed -> Reload]]
|
||||
end
|
||||
|
@ -1,24 +1,24 @@
|
||||
-- luasnip setup
|
||||
local luasnip = require "luasnip"
|
||||
local lspkind = require "lspkind"
|
||||
-- local lspkind = require "lspkind"
|
||||
local cmp = require "cmp"
|
||||
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
|
||||
|
||||
cmp.setup {
|
||||
formatting = {
|
||||
format = lspkind.cmp_format(
|
||||
{
|
||||
with_text = true,
|
||||
menu = ({
|
||||
buffer = "[Buffer]",
|
||||
nvim_lsp = "[LSP]",
|
||||
luasnip = "[LuaSnip]",
|
||||
nvim_lua = "[Lua]",
|
||||
latex_symbols = "[Latex]"
|
||||
})
|
||||
}
|
||||
)
|
||||
},
|
||||
-- formatting = {
|
||||
-- format = lspkind.cmp_format(
|
||||
-- {
|
||||
-- with_text = true,
|
||||
-- menu = ({
|
||||
-- buffer = "[Buffer]",
|
||||
-- nvim_lsp = "[LSP]",
|
||||
-- luasnip = "[LuaSnip]",
|
||||
-- nvim_lua = "[Lua]",
|
||||
-- latex_symbols = "[Latex]"
|
||||
-- })
|
||||
-- }
|
||||
-- )
|
||||
-- },
|
||||
experimental = {
|
||||
ghost_text = true
|
||||
},
|
@ -4,28 +4,28 @@ local noremap = {noremap = true}
|
||||
command_center.add({
|
||||
{
|
||||
description = "Search inside current buffer",
|
||||
command = "Telescope current_buffer_fuzzy_find",
|
||||
cmd = "Telescope current_buffer_fuzzy_find",
|
||||
keybindings = { "n", "<leader>fl", noremap },
|
||||
}, {
|
||||
-- If no descirption is specified, command is used to replace descirption by default
|
||||
-- You can change this behavior in settigns
|
||||
command = "Telescope find_files",
|
||||
cmd = "Telescope find_files",
|
||||
},
|
||||
{
|
||||
-- If no keybindings specified, no keybindings will be displayed or registered
|
||||
description = "Find hidden files",
|
||||
command = "Telescope find_files hidden=true",
|
||||
cmd = "Telescope find_files hidden=true",
|
||||
},
|
||||
{
|
||||
-- You can specify multiple keybindings for the same command ...
|
||||
description = "Show document symbols",
|
||||
command = "Telescope lsp_document_symbols",
|
||||
cmd = "Telescope lsp_document_symbols",
|
||||
},
|
||||
{
|
||||
description = "Show function signaure (hover)",
|
||||
command = "lua vim.lsp.buf.hover()",
|
||||
cmd = "lua vim.lsp.buf.hover()",
|
||||
},{
|
||||
description="(TS) Organize Imports",
|
||||
command = "OrganizeImports"
|
||||
cmd = "OrganizeImports"
|
||||
}
|
||||
})
|
@ -1,6 +1,6 @@
|
||||
local lsp = require "lspconfig"
|
||||
local lsp_status = require("lsp-status")
|
||||
local ts_utils = require("nvim-lsp-ts-utils")
|
||||
-- local ts_utils = require("nvim-lsp-ts-utils")
|
||||
|
||||
require'nvim-lightbulb'.setup {
|
||||
-- LSP client names to ignore
|
239
configs/nvim/lua/configs/lualine.lua
Normal file
239
configs/nvim/lua/configs/lualine.lua
Normal file
@ -0,0 +1,239 @@
|
||||
-----------------
|
||||
-- Status Line --
|
||||
-----------------
|
||||
|
||||
-- Eviline / Vimline config for lualine
|
||||
-- Author: shadmansaleh
|
||||
-- Credit: glepnir
|
||||
-- Credit: Elai
|
||||
|
||||
local lualine = require "lualine"
|
||||
|
||||
-- Color table for highlights
|
||||
-- stylua: ignore
|
||||
local colors = {
|
||||
bg = '#00000000',
|
||||
fg = '#bbc2cf',
|
||||
yellow = '#ECBE7B',
|
||||
cyan = '#008080',
|
||||
darkblue = '#081633',
|
||||
green = '#B7BD82',
|
||||
orange = '#8d6141',
|
||||
violet = '#B294BB',
|
||||
magenta = '#AE84BB',
|
||||
blue = '#81A2BE',
|
||||
red = '#CC8282',
|
||||
}
|
||||
|
||||
local conditions = {
|
||||
buffer_not_empty = function()
|
||||
return vim.fn.empty(vim.fn.expand('%:t')) ~= 1
|
||||
end,
|
||||
hide_in_width = function()
|
||||
return vim.fn.winwidth(0) > 80
|
||||
end,
|
||||
check_git_workspace = function()
|
||||
local filepath = vim.fn.expand('%:p:h')
|
||||
local gitdir = vim.fn.finddir('.git', filepath .. ';')
|
||||
return gitdir and #gitdir > 0 and #gitdir < #filepath
|
||||
end,
|
||||
}
|
||||
|
||||
-- Config
|
||||
local config = {
|
||||
options = {
|
||||
-- Disable sections and component separators
|
||||
component_separators = '',
|
||||
section_separators = '',
|
||||
theme = {
|
||||
-- We are going to use lualine_c an lualine_x as left and
|
||||
-- right section. Both are highlighted by c theme . So we
|
||||
-- are just setting default looks o statusline
|
||||
normal = { c = { fg = colors.fg, bg = colors.bg } },
|
||||
inactive = { c = { fg = colors.fg, bg = colors.bg } },
|
||||
},
|
||||
},
|
||||
|
||||
-- These are to remove the defaults
|
||||
sections = {
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
-- These will be filled later
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
},
|
||||
inactive_sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
},
|
||||
}
|
||||
|
||||
-- Inserts a component in lualine_c at left section
|
||||
local function ins_left(component)
|
||||
table.insert(config.sections.lualine_c, component)
|
||||
end
|
||||
|
||||
-- Inserts a component in lualine_x ot right section
|
||||
local function ins_right(component)
|
||||
table.insert(config.sections.lualine_x, component)
|
||||
end
|
||||
|
||||
-- Begining Of The StatusLine
|
||||
-- ins_left {
|
||||
-- function()
|
||||
-- return '|'
|
||||
-- end,
|
||||
-- color = { fg = colors.blue }, -- Sets highlighting of component
|
||||
-- padding = { left = 0, right = 1 }, -- We don't need space before this
|
||||
-- }
|
||||
|
||||
-- Icon Of Diffrent Mode: -- normal -- | -- insert -- | -- visual --
|
||||
ins_left {
|
||||
-- mode component
|
||||
function()
|
||||
return ''
|
||||
end,
|
||||
color = function()
|
||||
|
||||
-- auto change color according to neovims mode
|
||||
local mode_color = {
|
||||
n = colors.green,
|
||||
i = colors.blue,
|
||||
v = colors.magenta,
|
||||
[''] = colors.blue,
|
||||
V = colors.blue,
|
||||
c = colors.red,
|
||||
no = colors.red,
|
||||
s = colors.orange,
|
||||
S = colors.orange,
|
||||
[''] = colors.orange,
|
||||
ic = colors.yellow,
|
||||
R = colors.violet,
|
||||
Rv = colors.violet,
|
||||
cv = colors.red,
|
||||
ce = colors.red,
|
||||
r = colors.cyan,
|
||||
rm = colors.cyan,
|
||||
['r?'] = colors.cyan,
|
||||
['!'] = colors.red,
|
||||
t = colors.red,
|
||||
}
|
||||
return { fg = mode_color[vim.fn.mode()] }
|
||||
end,
|
||||
padding = { right = 1 },
|
||||
}
|
||||
|
||||
-- File Name
|
||||
ins_left {
|
||||
'filename',
|
||||
file_status = true, -- Displays file status (readonly status, modified status)
|
||||
path = 2, -- 0: Just the filename
|
||||
-- 1: Relative path
|
||||
-- 2: Absolute path
|
||||
shorting_target = 100, -- Shortens path to leave 40 spaces in the window
|
||||
-- for other components. (terrible name, any suggestions?)
|
||||
symbols = {
|
||||
modified = ' ', -- Text to show when the file is modified.
|
||||
readonly = ' ', -- Text to show when the file is non-modifiable or readonly.
|
||||
unnamed = '[No Name]', -- Text to show for unnamed buffers.
|
||||
}
|
||||
}
|
||||
|
||||
-- Git Diff
|
||||
local function diff_source()
|
||||
local gitsigns = vim.b.gitsigns_status_dict
|
||||
if gitsigns then
|
||||
return {
|
||||
added = gitsigns.added,
|
||||
modified = gitsigns.changed,
|
||||
removed = gitsigns.removed
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
ins_right { 'diff', source = diff_source }
|
||||
|
||||
-- Git Branch
|
||||
ins_right {
|
||||
'branch',
|
||||
icon = '',
|
||||
-- icon = '',
|
||||
-- color = { fg = colors.green },
|
||||
-- padding = { right = 1 },
|
||||
-- padding = { left = 1 },
|
||||
}
|
||||
|
||||
-- File Type
|
||||
ins_right {
|
||||
'filetype',
|
||||
icon_only = true,
|
||||
padding = { right = 2, left = 1 }
|
||||
}
|
||||
|
||||
-- File Encoding
|
||||
ins_right {
|
||||
'o:encoding', -- option component same as &encoding in viml
|
||||
fmt = string.upper, -- I'm not sure why it's upper case either ;)
|
||||
cond = conditions.hide_in_width,
|
||||
padding = { right = 2 },
|
||||
-- color = { fg = colors.green, gui = 'bold' },
|
||||
-- Add components to right sections
|
||||
}
|
||||
|
||||
-- File Format
|
||||
-- ins_right {
|
||||
-- 'fileformat',
|
||||
-- -- fmt = string.upper,
|
||||
-- -- icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
|
||||
-- padding = { right = 2 },
|
||||
-- symbols = { unix = 'NIX '},
|
||||
-- -- color = { fg = colors.green, gui = 'bold' },
|
||||
-- }
|
||||
|
||||
-- File Size
|
||||
ins_right {
|
||||
-- filesize component
|
||||
'filesize',
|
||||
padding = { right = 2 },
|
||||
cond = conditions.buffer_not_empty,
|
||||
}
|
||||
|
||||
-- Text Progress
|
||||
ins_right {
|
||||
'progress',
|
||||
padding = { right = 1 },
|
||||
-- padding = { left = 1 },
|
||||
}
|
||||
|
||||
-- File Location
|
||||
ins_right {
|
||||
'location',
|
||||
padding = { right = 0 },
|
||||
}
|
||||
|
||||
-- Insert mid section. You can make any number of sections in neovim :)
|
||||
-- for lualine it's any number greater then 2
|
||||
ins_left {
|
||||
function()
|
||||
return '%='
|
||||
end,
|
||||
}
|
||||
|
||||
-- End Of The Status Bar
|
||||
-- ins_right {
|
||||
-- function()
|
||||
-- return ''
|
||||
-- end,
|
||||
-- color = { fg = colors.blue }, -- Sets highlighting of component
|
||||
-- padding = { left = 1, right = 0 }, -- We don't need space before this
|
||||
-- }
|
||||
|
||||
-- Now don't forget to initialize lualine
|
||||
lualine.setup(config)
|
17
configs/nvim/lua/configs/notify.lua
Normal file
17
configs/nvim/lua/configs/notify.lua
Normal file
@ -0,0 +1,17 @@
|
||||
local notify = require("notify")
|
||||
notify.setup(
|
||||
{
|
||||
stages = "fade_in_slide_out",
|
||||
max_width = 50,
|
||||
render = "minimal",
|
||||
background_colour = "#000000",
|
||||
icons = {
|
||||
ERROR = "",
|
||||
WARN = "",
|
||||
INFO = "",
|
||||
DEBUG = "",
|
||||
TRACE = "✎"
|
||||
}
|
||||
}
|
||||
)
|
||||
vim.notify = notify;
|
@ -49,11 +49,7 @@ local default = {
|
||||
}
|
||||
}
|
||||
|
||||
local M = {}
|
||||
M.setup = function()
|
||||
telescope.setup(default)
|
||||
-- telescope.load_extension("themes");
|
||||
telescope.load_extension("command_center");
|
||||
end
|
||||
|
||||
return M
|
||||
telescope.setup(default)
|
||||
-- telescope.load_extension("themes");
|
||||
telescope.load_extension("command_center");
|
||||
telescope.load_extension("notify");
|
40
configs/nvim/lua/configs/tree.lua
Normal file
40
configs/nvim/lua/configs/tree.lua
Normal file
@ -0,0 +1,40 @@
|
||||
local g = vim.g
|
||||
|
||||
-- Configure nvim-tree
|
||||
g.nvim_tree_highlight_opened_files = 1
|
||||
g.nvim_tree_group_empty = 1
|
||||
g.nvim_tree_show_icons = {
|
||||
folder_arrows = 0,
|
||||
folders = 1,
|
||||
files = 1,
|
||||
git = 1
|
||||
}
|
||||
require("nvim-tree").setup {
|
||||
auto_open = 1,
|
||||
gitignore = 1,
|
||||
group_empty = 1,
|
||||
hijack_cursor = 1,
|
||||
update_cwd = true,
|
||||
update_focused_file = {
|
||||
enable = false
|
||||
},
|
||||
renderer = {
|
||||
indent_markers = {
|
||||
enable = 0
|
||||
}
|
||||
},
|
||||
diagnostics = {
|
||||
enable = true,
|
||||
icons = {
|
||||
hint = "",
|
||||
info = "",
|
||||
warning = "",
|
||||
error = ""
|
||||
}
|
||||
},
|
||||
view = {
|
||||
auto_resize = true,
|
||||
hide_root_folder = true,
|
||||
signcolumn = "no"
|
||||
}
|
||||
}
|
@ -7,11 +7,6 @@ cmd [[
|
||||
augroup END
|
||||
]]
|
||||
|
||||
cmd [[
|
||||
au ColorScheme * hi Normal ctermbg=none guibg=none
|
||||
au ColorScheme myspecialcolors hi Normal ctermbg=red guibg=red
|
||||
]]
|
||||
|
||||
cmd [[
|
||||
augroup filetypedetect
|
||||
au BufNewFile,BufRead *.frag setl ft=glsl
|
||||
@ -27,6 +22,9 @@ augroup SaveManualFolds
|
||||
augroup END
|
||||
]]
|
||||
|
||||
|
||||
|
||||
|
||||
vim.api.nvim_create_autocmd("BufWritePre",{
|
||||
callback = function()
|
||||
vim.lsp.buf.formatting_sync();
|
@ -1,6 +1,5 @@
|
||||
local map = vim.api.nvim_set_keymap
|
||||
local g = vim.g
|
||||
local cmd = vim.cmd
|
||||
|
||||
local options = {noremap = true}
|
||||
local remap = {noremap = false}
|
||||
@ -21,7 +20,7 @@ map("n", "K", "<Cmd>lua vim.lsp.buf.hover()<CR>", options)
|
||||
map("n", "<Leader>e", "<cmd>lua vim.diagnostic.open_float()<CR>", options)
|
||||
map("n", "<Leader>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", options)
|
||||
map("n", "<Leader>c", "<cmd>lua vim.lsp.buf.code_action()<CR>", options)
|
||||
map("n", "<Leader><C-f>", ":Neoformat<CR>", options)
|
||||
-- map("n", "<Leader><C-f>", ":Neoformat<CR>", options)
|
||||
map("n", "[d", "<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>", options)
|
||||
map("n", "]d", "<cmd>lua vim.lsp.diagnostic.goto_next()<CR>", options)
|
||||
map("n", "<leader>t", ":TroubleToggle<CR>", remap)
|
||||
@ -36,6 +35,9 @@ map("n", "<C-l>", "<C-w>l", options)
|
||||
map("n", "<A-Left>", ":bprevious<CR>",options);
|
||||
map("n", "<A-Right>", ":bnext<CR>",options);
|
||||
|
||||
-- Backspace Delete like Browser
|
||||
map('i', '<C-H>', '<Esc>caw', options)
|
||||
|
||||
map("n", "Y", "yy", options)
|
||||
map("n", "<Leader>k", "{", options)
|
||||
map("n", "<Leader>j", "}", options)
|
63
configs/nvim/lua/core/options.lua
Normal file
63
configs/nvim/lua/core/options.lua
Normal file
@ -0,0 +1,63 @@
|
||||
|
||||
-------------
|
||||
-- General --
|
||||
-------------
|
||||
local set = vim.opt
|
||||
set.swapfile = false -- Don't use swapfile
|
||||
set.updatetime = 0 -- Faster completion
|
||||
set.encoding="utf-8" -- The encoding displayed
|
||||
set.fileencoding="utf-8" -- The encoding written to file
|
||||
set.smartindent = true -- Makes indenting smart
|
||||
set.iskeyword:append("-") -- treat dash separated words as a word text object"
|
||||
set.clipboard = "unnamedplus" -- Copy paste between vim and everything else
|
||||
set.smarttab = true -- Makes tabbing smarter will realize you have 2 vs 4
|
||||
set.expandtab = true -- Converts tabs to spaces
|
||||
set.autoindent = true -- Good auto indent
|
||||
set.autochdir = true -- Your working directory will always be the same as your working directory
|
||||
set.incsearch = true -- sets incremental search
|
||||
set.shell = "/bin/zsh" -- Set your shell to bash or zsh
|
||||
set.shortmess:append "sI" -- Disable nvim intro
|
||||
vim.cmd [[set nobackup]] -- creates a backup file
|
||||
vim.cmd [[set nowritebackup]] -- creates a backup file i guess
|
||||
vim.cmd [[set formatoptions-=cro]] -- Stop newline continution of comments
|
||||
vim.cmd [[set complete+=kspell]] -- auto complete with spellcheck
|
||||
vim.cmd [[set completeopt=menuone,longest]] -- auto complete menu (It's pretty great)
|
||||
vim.cmd [[set nocompatible]] -- Disable compatibility to old-time vi
|
||||
set.mouse = 'a' -- Enable mouse support
|
||||
|
||||
---------------
|
||||
-- Neovim UI --
|
||||
---------------
|
||||
set.pumheight = 15 -- Makes popup menu smaller
|
||||
set.ruler = true -- Show the cursor position all the time
|
||||
set.splitbelow = true -- Horizontal splits will automatically be below
|
||||
set.splitright = true -- Vertical splits will automatically be to the right
|
||||
set.conceallevel = 0 -- So that I can see `` in markdown files
|
||||
set.tabstop = 2 -- Insert 2 spaces for a tab
|
||||
set.number = true -- Line numbers
|
||||
set.background = "dark" -- tell vim what the background color looks like
|
||||
set.virtualedit = "onemore" -- With This option you can move the cursor one character over the end
|
||||
set.ignorecase = true -- ignores case when searching
|
||||
set.smartcase = true -- turns on case sensitive search when letters are capitalized
|
||||
set.termguicolors = true -- set term gui colors (most terminals support this)
|
||||
set.laststatus=2 -- Always display the status line
|
||||
set.title = true -- Show current txt that you editing
|
||||
set.relativenumber = false -- Vim’s absolute, relative and hybrid line numbers
|
||||
set.cursorline = false -- Enable highlighting of the current line
|
||||
set.shiftwidth = 2 -- Change the number of space characters inserted for indentation
|
||||
set.showtabline = 1 -- Always show tabs
|
||||
set.cmdheight = 1 -- More space for displaying messages
|
||||
vim.cmd [[set nowrap]] -- Display long lines as just one line
|
||||
vim.cmd [[set noshowmode]] -- We don't need to see things like -- INSERT -- anymore
|
||||
vim.cmd [[syntax enable]] -- Enables syntax highlighing
|
||||
vim.cmd [[set t_Co=256]] -- Support 256 colors
|
||||
-- vim.cmd "set whichwrap+=<,>,[,],h,l" -- Breaks Space-Time Continuum
|
||||
|
||||
-----------------
|
||||
-- Memory, CPU --
|
||||
-----------------
|
||||
set.hidden = true -- Required to keep multiple buffers open multiple buffers
|
||||
set.timeoutlen = 500 -- By default timeoutlen is 1000 ms
|
||||
set.lazyredraw = true -- Disable lazyredraw
|
||||
set.synmaxcol = 240 -- Max column for syntax highlight
|
||||
set.updatetime = 700 -- ms to wait for trigger an event
|
@ -3,15 +3,18 @@ return require("packer").startup(
|
||||
-- Let packer manage itself
|
||||
use "wbthomason/packer.nvim"
|
||||
|
||||
use 'lewis6991/impatient.nvim'
|
||||
|
||||
-- General Helper Functions
|
||||
use "nvim-lua/plenary.nvim"
|
||||
|
||||
-- Filetype Detection
|
||||
use "nathom/filetype.nvim"
|
||||
-- use "nathom/filetype.nvim"
|
||||
|
||||
-- Theming Section
|
||||
-- use 'folke/tokyonight.nvim'
|
||||
use "EdenEast/nightfox.nvim"
|
||||
use "nvim-lualine/lualine.nvim"
|
||||
-- use "xiyaowong/nvim-transparent"
|
||||
|
||||
-- Layout Plugins
|
||||
@ -19,22 +22,22 @@ return require("packer").startup(
|
||||
use "kyazdani42/nvim-tree.lua"
|
||||
use "nvim-lua/popup.nvim"
|
||||
use "mhinz/vim-startify"
|
||||
use "tpope/vim-fugitive"
|
||||
-- use "tpope/vim-fugitive"
|
||||
use "tpope/vim-commentary"
|
||||
use "tpope/vim-surround"
|
||||
use "lambdalisue/suda.vim"
|
||||
-- use "tpope/vim-surround"
|
||||
-- use "lambdalisue/suda.vim"
|
||||
use "windwp/nvim-autopairs"
|
||||
|
||||
-- Code Navigation
|
||||
use "alexghergh/nvim-tmux-navigation"
|
||||
use "dense-analysis/ale"
|
||||
use "nathanmsmith/nvim-ale-diagnostic"
|
||||
-- use "alexghergh/nvim-tmux-navigation"
|
||||
-- use "dense-analysis/ale"
|
||||
-- use "nathanmsmith/nvim-ale-diagnostic"
|
||||
use "junegunn/fzf"
|
||||
use "nvim-telescope/telescope.nvim"
|
||||
use "gfeiyou/command-center.nvim"
|
||||
|
||||
-- Postman like features
|
||||
use "NTBBloodbath/rest.nvim"
|
||||
-- use "NTBBloodbath/rest.nvim"
|
||||
|
||||
-- Obsidian / Roam like features
|
||||
-- use "lervag/wiki.vim"
|
||||
@ -44,7 +47,7 @@ return require("packer").startup(
|
||||
-- Lsp Errors
|
||||
use "folke/lsp-colors.nvim"
|
||||
use "kosayoda/nvim-lightbulb"
|
||||
use "onsails/lspkind-nvim"
|
||||
-- use "onsails/lspkind-nvim"
|
||||
use {
|
||||
"folke/trouble.nvim",
|
||||
requires = "kyazdani42/nvim-web-devicons",
|
||||
@ -54,7 +57,7 @@ return require("packer").startup(
|
||||
}
|
||||
|
||||
-- Syntax / Autocomplete
|
||||
use "terminalnode/sway-vim-syntax" --sway config syntax
|
||||
-- use "terminalnode/sway-vim-syntax" --sway config syntax
|
||||
use "neovim/nvim-lspconfig"
|
||||
use "hrsh7th/nvim-cmp"
|
||||
use "hrsh7th/cmp-nvim-lsp"
|
||||
@ -68,8 +71,8 @@ return require("packer").startup(
|
||||
use "saadparwaiz1/cmp_luasnip"
|
||||
use "williamboman/nvim-lsp-installer"
|
||||
use "nvim-lua/lsp-status.nvim"
|
||||
use "jose-elias-alvarez/nvim-lsp-ts-utils"
|
||||
use "neoclide/jsonc.vim"
|
||||
-- use "jose-elias-alvarez/nvim-lsp-ts-utils"
|
||||
-- use "neoclide/jsonc.vim"
|
||||
use "brymer-meneses/grammar-guard.nvim"
|
||||
use {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
@ -84,6 +87,8 @@ return require("packer").startup(
|
||||
-- General Popup Window
|
||||
use "akinsho/nvim-toggleterm.lua"
|
||||
|
||||
use "rktjmp/fwatch.nvim"
|
||||
|
||||
-- Database Feature
|
||||
use "tpope/vim-dadbod"
|
||||
use "kristijanhusak/vim-dadbod-ui"
|
@ -1,57 +0,0 @@
|
||||
local cmd = vim.cmd
|
||||
local g = vim.g
|
||||
|
||||
local function tablelength(T)
|
||||
local count = 0
|
||||
for _ in pairs(T) do
|
||||
count = count + 1
|
||||
end
|
||||
return count
|
||||
end
|
||||
|
||||
local function select_client(method)
|
||||
local all_clients = vim.tbl_values(vim.lsp.buf_get_clients())
|
||||
|
||||
local supported_client
|
||||
local found_client = false
|
||||
for _, client in ipairs(all_clients) do
|
||||
local supports = client.supports_method(method)
|
||||
if supports then
|
||||
found_client = true
|
||||
supported_client = client
|
||||
end
|
||||
end
|
||||
|
||||
if not found_client then
|
||||
return nil
|
||||
end
|
||||
|
||||
return supported_client
|
||||
end
|
||||
|
||||
g.neoformat_enabled_glsl = {}
|
||||
|
||||
function FormattingSync()
|
||||
vim.cmd("Neoformat")
|
||||
-- local client = select_client("textDocument/formatting")
|
||||
-- if client == nil then
|
||||
-- vim.notify("No LSP Client with formatting connected")
|
||||
-- end
|
||||
-- vim.notify("Formatting with LSP")
|
||||
-- local params = util.make_formatting_params({})
|
||||
-- local result, err = client.request_sync("textDocument/formatting", params, 500, vim.api.nvim_get_current_buf())
|
||||
-- if result and result.result then
|
||||
-- util.apply_text_edits(result.result)
|
||||
-- elseif err then
|
||||
-- vim.notify("vim.lsp.buf.formatting_sync: " .. err, vim.log.levels.WARN)
|
||||
-- end
|
||||
end
|
||||
|
||||
vim.cmd [[command! Format lua FormattingSync()]]
|
||||
|
||||
cmd [[
|
||||
augroup auto_format
|
||||
au!
|
||||
au BufWritePre * lua FormattingSync()
|
||||
augroup END
|
||||
]]
|
@ -1,68 +0,0 @@
|
||||
local Terminal = require("toggleterm.terminal").Terminal
|
||||
local u = require("utils")
|
||||
local lazygit =
|
||||
Terminal:new(
|
||||
{
|
||||
cmd = "lazygit",
|
||||
dir = "git_dir",
|
||||
direction = "float",
|
||||
float_opts = {
|
||||
winblend = 0,
|
||||
border = "shadow"
|
||||
},
|
||||
on_open = function(term)
|
||||
vim.cmd("startinsert!")
|
||||
vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", "<cmd>close<CR>", {noremap = true, silent = true})
|
||||
end,
|
||||
on_close = function(term)
|
||||
Terminal:close()
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
function _lazygit_toggle()
|
||||
lazygit:toggle()
|
||||
end
|
||||
|
||||
vim.api.nvim_set_keymap("n", "<C-g>", "<cmd>lua _lazygit_toggle()<CR>", {noremap = true, silent = true})
|
||||
|
||||
local pnpm =
|
||||
Terminal:new(
|
||||
{
|
||||
cmd = "pnpm dev",
|
||||
dir = "git_dir",
|
||||
size = 5,
|
||||
direction = "vertical",
|
||||
on_close = function(term)
|
||||
Terminal:close()
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
function _pnpm_toggle()
|
||||
pnpm:toggle()
|
||||
end
|
||||
|
||||
vim.api.nvim_set_keymap("n", "<Leader>d", "<cmd>lua _pnpm_toggle()<CR>", {noremap = true, silent = true})
|
||||
|
||||
local nvimConfig =
|
||||
Terminal:new(
|
||||
{
|
||||
cmd = "cd $HOME/.dotfiles && nvim configs/init.lua && cd -",
|
||||
direction = "float",
|
||||
on_close = function(term)
|
||||
Terminal:close()
|
||||
u.ReloadConfig()
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
function _nvimConfig_toggle()
|
||||
nvimConfig:toggle()
|
||||
end
|
||||
|
||||
vim.api.nvim_set_keymap("n", "<Leader><C-i>", "<cmd>lua _nvimConfig_toggle()<CR>", {noremap = true, silent = true})
|
||||
|
||||
require("toggleterm").setup {
|
||||
shade_terminals = true
|
||||
}
|
@ -1,85 +0,0 @@
|
||||
local lorem = {}
|
||||
|
||||
local WORDS_IN_SENTENCE = {min = 5, max = 15}
|
||||
local SENTENCES_IN_PARAGRAPH = {min = 2, max = 7 }
|
||||
local PARAGRAPHS_IN_TEXT = {min = 2, max = 7 }
|
||||
|
||||
local function random_int(min, max)
|
||||
return math.random(min, max)
|
||||
end
|
||||
|
||||
local BASE_PHRASE = [[
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
Suspendisse rutrum accumsan elit vel auctor.
|
||||
Praesent sit amet aliquam turpis.
|
||||
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae.
|
||||
Maecenas non erat ut elit sodales commodo.
|
||||
Nam gravida ipsum quis nulla tempus, quis pulvinar augue tristique.
|
||||
Nulla massa odio, imperdiet non ultricies tincidunt, viverra sed lorem.
|
||||
Nulla elementum sapien ut commodo aliquet.
|
||||
Pellentesque iaculis turpis tellus, eget laoreet augue condimentum vel.
|
||||
Quisque at risus rhoncus, facilisis tellus nec, tristique dolor.
|
||||
Maecenas cursus magna eget imperdiet laoreet.
|
||||
]]
|
||||
|
||||
local function get_words(phrase)
|
||||
local list = {}
|
||||
for word in phrase:gmatch('%a+') do
|
||||
table.insert(list, word:lower())
|
||||
end
|
||||
return list
|
||||
end
|
||||
|
||||
lorem.__index = lorem
|
||||
lorem._dict = get_words(BASE_PHRASE)
|
||||
|
||||
function lorem:generator(phrase)
|
||||
if type(phrase) ~= 'string' then
|
||||
error('First argument of lorem.generator should be a string', 2)
|
||||
end
|
||||
local g = {_dict = {}}
|
||||
for word in phrase:gmatch('%a+') do
|
||||
table.insert(g._dict, word:lower())
|
||||
end
|
||||
if #(g._dict) == 0 then
|
||||
error('String argument of lorem.generator should contain words', 2)
|
||||
end
|
||||
setmetatable(g, self)
|
||||
return g
|
||||
end
|
||||
|
||||
function lorem:word()
|
||||
return self._dict[random_int(1, #(self._dict))]
|
||||
end
|
||||
|
||||
function lorem:sentence()
|
||||
local n = random_int(WORDS_IN_SENTENCE.min, WORDS_IN_SENTENCE.max)
|
||||
local words = {}
|
||||
for i = 1, n do
|
||||
words[i] = self:word()
|
||||
end
|
||||
local s = table.concat(words, ' ')
|
||||
s = s .. "."
|
||||
s = s:sub(1, 1):upper() .. s:sub(2)
|
||||
return s
|
||||
end
|
||||
|
||||
function lorem:paragraph()
|
||||
local n = random_int(SENTENCES_IN_PARAGRAPH.min, SENTENCES_IN_PARAGRAPH.max)
|
||||
local sentences = {}
|
||||
for i = 1, n do
|
||||
sentences[i] = self:sentence()
|
||||
end
|
||||
return table.concat(sentences, ' ')
|
||||
end
|
||||
|
||||
function lorem:text()
|
||||
local n = random_int(PARAGRAPHS_IN_TEXT.min, PARAGRAPHS_IN_TEXT.max)
|
||||
local paragraphs = {}
|
||||
for i = 1, n do
|
||||
paragraphs[i] = self:paragraph()
|
||||
end
|
||||
return table.concat(paragraphs, '\n')
|
||||
end
|
||||
|
||||
return lorem
|
35
configs/nvim/lua/utils/theme-reloader.lua
Normal file
35
configs/nvim/lua/utils/theme-reloader.lua
Normal file
@ -0,0 +1,35 @@
|
||||
-- see if the file exists
|
||||
local function file_exists(file)
|
||||
local f = io.open(file, "rb")
|
||||
if f then f:close() end
|
||||
return f ~= nil
|
||||
end
|
||||
|
||||
-- get all lines from a file, returns an empty
|
||||
-- list/table if the file does not exist
|
||||
local function line_from(file)
|
||||
if not file_exists(file) then return {} end
|
||||
local f = io.open(file) -- 'r' is unnecessary because it's a default value.
|
||||
local line = f:read() -- '*l' is unnecessary because it's a default value.
|
||||
f:close()
|
||||
return line;
|
||||
end
|
||||
|
||||
local filePath = os.getenv("HOME").."/.cache/dark-mode";
|
||||
local function updateTheme()
|
||||
local line = line_from(filePath);
|
||||
if line then
|
||||
local dark = string.find(line, "dark");
|
||||
if dark then
|
||||
vim.cmd("colorscheme nightfox")
|
||||
else
|
||||
vim.cmd("colorscheme dayfox")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
updateTheme()
|
||||
local w = vim.loop.new_fs_event()
|
||||
w:start(filePath, {}, vim.schedule_wrap(updateTheme))
|
@ -86,9 +86,12 @@ output * bg `find $wallpapers_path -type f | shuf -n 1` fill
|
||||
#
|
||||
exec swayidle -w \
|
||||
timeout 300 '~/.config/sway/lock_screen.sh' \
|
||||
timeout 600 'swaymsg "output \* dpms off"' \
|
||||
timeout 600 'swaymsg "output * dpms off"' \
|
||||
timeout 660 'systemctl suspend' \
|
||||
resume 'swaymsg "output \* dpms on"'
|
||||
resume 'swaymsg "output * dpms on"' \
|
||||
before-sleep '~/.config/sway/lock_screen.sh'
|
||||
|
||||
|
||||
#
|
||||
# This will lock your screen after 300 seconds of inactivity, then turn off
|
||||
# your displays after another 300 seconds, and turn your screens back on when
|
||||
|
@ -7,7 +7,7 @@
|
||||
"hidden_state": "show",
|
||||
"modules-left": ["custom/clock", "custom/waybar-mpris"],
|
||||
"modules-center": ["sway/workspaces", "sway/mode"],
|
||||
"modules-right": ["pulseaudio", "network", "custom/cpu_speed", "memory", "battery"],
|
||||
"modules-right": ["custom/theme","pulseaudio", "network", "battery"],
|
||||
"sway/workspaces": {
|
||||
"disable-scroll": true,
|
||||
"all-outputs": false,
|
||||
@ -27,6 +27,11 @@
|
||||
"unlocked": ""
|
||||
}
|
||||
},
|
||||
"custom/theme":{
|
||||
"exec": "~/.config/waybar/theme.sh",
|
||||
"on-click": "~/.config/waybar/theme.sh --toggle",
|
||||
"restart-interval": 1,
|
||||
},
|
||||
"custom/spotify": {
|
||||
"exec": "/usr/bin/python3 /home/jim/.config/waybar/mediaplayer.py --player spotify",
|
||||
"format": "{} ",
|
||||
|
215
configs/waybar/dark-mode.sh
Executable file
215
configs/waybar/dark-mode.sh
Executable file
@ -0,0 +1,215 @@
|
||||
#!/usr/bin/env bash
|
||||
# https://gitlab.com/wef/dotfiles/-/blob/master/bin/dark-mode
|
||||
|
||||
TIME_STAMP="20220227.144601"
|
||||
|
||||
# dark-mode [light|dark|refresh]
|
||||
# sets dark mode on or off
|
||||
|
||||
# Copyright (C) 2021 Bob Hepple < bob dot hepple at gmail dot com>
|
||||
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or (at
|
||||
# your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# I like to have this called by my
|
||||
# ~/.config/i3blocks/i3blocks/weather script which runs every 10m and
|
||||
# knows about sunset and sunrise times.
|
||||
|
||||
|
||||
PROG=$( basename $0 )
|
||||
|
||||
KITTY_ONLY=""
|
||||
[[ "$1" == "--kitty-only" ]] && {
|
||||
KITTY_ONLY="true"
|
||||
shift
|
||||
}
|
||||
|
||||
CMD="$1"
|
||||
|
||||
DARK_MODE_STATUS_FILE=~/.cache/dark-mode
|
||||
CURRENT_DARK_MODE=$( cat $DARK_MODE_STATUS_FILE )
|
||||
|
||||
case $CMD in
|
||||
-h|--help)
|
||||
echo "Usage: $PROG <[on|start|dark]|refresh|[off|stop|light]>"
|
||||
echo
|
||||
echo "toggles or refreshes dark-mode for emacs, kitty, gtk and qt"
|
||||
exit 0
|
||||
;;
|
||||
on|start|dark)
|
||||
CMD="dark"
|
||||
;;
|
||||
re*)
|
||||
CMD="refresh"
|
||||
;;
|
||||
*) # off|stop|light
|
||||
CMD="light"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "$CMD" == "refresh" ]]; then
|
||||
CMD="$CURRENT_DARK_MODE"
|
||||
else
|
||||
[[ "$CURRENT_DARK_MODE" == "$CMD" ]] && exit 0
|
||||
fi
|
||||
|
||||
# for emacs, these themes can be chosen from the standard ones (in
|
||||
# custom-theme-load-path) or they can be installed in
|
||||
# custom-theme-directory (usually ~/.emacs.d)
|
||||
# They must have a filename of $THEMENAME-theme.el
|
||||
|
||||
case "$CMD" in
|
||||
light)
|
||||
# light mode
|
||||
# new_emacs_theme="dichromacy-bh"
|
||||
# new_emacs_theme="modus-operandi"
|
||||
#new_emacs_theme="Adwaita" # text background is #ededed !!!
|
||||
#new_emacs_theme="solarized-light"
|
||||
# new_emacs_modeline_theme="smart-mode-line-light"
|
||||
|
||||
# new_gtk_theme='WhiteSur'
|
||||
new_gtk_theme='Pop'
|
||||
#new_gtk_theme='Solarized-Light'
|
||||
#new_gtk_theme='Crux'
|
||||
|
||||
new_icon_theme='WhiteSur'
|
||||
new_cursor_theme='WhiteSur-cursors'
|
||||
|
||||
# new_kitty_theme="$HOME/.config/kitty/Adwaita.conf"
|
||||
|
||||
# new_nvim_theme="dayfox"
|
||||
|
||||
new_kitty_theme="Atom One Light"
|
||||
# new_fg='black'
|
||||
# new_fg='00/00/00'
|
||||
# new_bg='white'
|
||||
# new_bg='ff/ff/ff'
|
||||
BRIGHTNESS=100
|
||||
TERM_BACKGROUND=light
|
||||
;;
|
||||
*)
|
||||
# dark mode
|
||||
# new_emacs_theme="dichromacy-dark-bh"
|
||||
# new_emacs_theme="modus-vivendi"
|
||||
# new_emacs_theme="manoj-dark-bh"
|
||||
# new_emacs_theme="solarized-dark"
|
||||
# new_emacs_modeline_theme="smart-mode-line-dark"
|
||||
|
||||
new_gtk_theme='Pop-dark'
|
||||
#new_gtk_theme='Solarized-Dark'
|
||||
#new_gtk_theme='Crux-dark'
|
||||
|
||||
# 'Breeze' icons are too dark for Adwaita-dark:
|
||||
new_icon_theme='WhiteSur-dark'
|
||||
new_cursor_theme='WhiteSur-cursors'
|
||||
|
||||
#new_kitty_theme="$HOME/.config/kitty/Adwaita-dark.conf"
|
||||
new_kitty_theme="Argonaut"
|
||||
|
||||
# new_nvim_theme="nightfox"
|
||||
# new_fg='white'
|
||||
# new_fg='ff/ff/ff'
|
||||
# new_bg='#232729'
|
||||
# new_bg='black'
|
||||
# new_bg='00/00/00'
|
||||
BRIGHTNESS=20
|
||||
TERM_BACKGROUND=dark
|
||||
;;
|
||||
esac
|
||||
|
||||
(
|
||||
[[ -z "$KITTY_ONLY" ]] && {
|
||||
# brightnessctl set $BRIGHTNESS
|
||||
|
||||
## look for an emacs running as this user:
|
||||
#emacs_pid=$(pgrep -u $USER emacs | head -n 1)
|
||||
#[[ "$emacs_pid" ]] && emacsclient --eval "
|
||||
# (progn
|
||||
# (mapcar 'disable-theme custom-enabled-themes)
|
||||
# (load-theme '$new_emacs_theme t))"
|
||||
##(load-theme '$new_emacs_modeline_theme))"
|
||||
|
||||
f=~/.gtkrc-2.0
|
||||
[[ -w $f ]] && {
|
||||
sed -i "s/^gtk-theme-name=.*/gtk-theme-name=\"$new_gtk_theme\"/" $f
|
||||
sed -i "s/^gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$new_icon_theme\"/" $f
|
||||
sed -i "s/^gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$new_cursor_theme\"/" $f
|
||||
}
|
||||
|
||||
# gtkreload # gtk2 only!
|
||||
|
||||
# if ! command -v nvr &> /dev/null
|
||||
# then
|
||||
# echo "nvr not installed"
|
||||
# elif [ "$(pgrep nvim)" != "" ]; then
|
||||
# echo "new theme $new_nvim_theme"
|
||||
# nvr --nostart --remote-send ":colorscheme $new_nvim_theme<CR>"
|
||||
# exit
|
||||
# fi
|
||||
|
||||
|
||||
f=~/.config/gtk-3.0/settings.ini
|
||||
[[ -w $f ]] && {
|
||||
sed -i "s/^gtk-theme-name=.*/gtk-theme-name=$new_gtk_theme/" $f
|
||||
sed -i "s/^gtk-icon-theme-name=.*/gtk-icon-theme-name=$new_icon_theme/" $f
|
||||
sed -i "s/^gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$new_cursor_theme/" $f
|
||||
}
|
||||
|
||||
# /usr/libexec/gsd-xsettings notifies gtk3 clients - start it in sway
|
||||
|
||||
# these two appear to be completely equivalent:
|
||||
dconf write /org/gnome/desktop/interface/gtk-theme "'$new_gtk_theme'"
|
||||
#gsettings set org.gnome.desktop.interface gtk-theme $new_gtk_theme
|
||||
|
||||
dconf write /org/gnome/desktop/interface/icon-theme "'$new_icon_theme'"
|
||||
dconf write /org/gnome/desktop/interface/cursor-theme "'$new_cursor_theme'"
|
||||
|
||||
f=~/.config/qt5ct/qt5ct.conf
|
||||
[[ -w $f ]] && {
|
||||
sed -i "s/^style=.*/style=$new_gtk_theme/" $f
|
||||
sed -i "s/^icon-theme=.*/style=$new_icon_theme/" $f
|
||||
# cursor?
|
||||
}
|
||||
}
|
||||
|
||||
# requires this in ~/.config/kitty/kitty.conf:
|
||||
# allow_remote_control yes
|
||||
# listen_on unix:/tmp/kitty-socket
|
||||
kitty +kitten themes --reload-in=all $new_kitty_theme
|
||||
# for SOCK in /tmp/kitty-socket-*; do
|
||||
# if [[ -r $new_kitty_theme ]]; then
|
||||
# else
|
||||
# # this should work for all terms:
|
||||
# for TERM in /dev/pts/[0-9]*; do
|
||||
# if [[ -O $TERM ]]; then
|
||||
# {
|
||||
# printf "\\033]10;rgb:$new_fg\\033\\\\"
|
||||
# printf "\\033]11;rgb:$new_bg\\033\\\\"
|
||||
# } >$TERM
|
||||
# fi
|
||||
# done
|
||||
# # kitty @ --to=unix:$SOCK set_colors --all foreground=$new_fg background=$new_bg
|
||||
# fi
|
||||
# done
|
||||
|
||||
# for 'low-power' script:
|
||||
echo $TERM_BACKGROUND > $DARK_MODE_STATUS_FILE
|
||||
) >/dev/null
|
||||
|
||||
# echo "TERM_BACKGROUND=$TERM_BACKGROUND; setup_prompt"
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# time-stamp-pattern: "4/TIME_STAMP=\"%:y%02m%02d.%02H%02M%02S\""
|
||||
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||
# End:
|
@ -14,7 +14,7 @@ window > box {
|
||||
margin: 6px;
|
||||
margin-bottom: 0px;
|
||||
background: #2b303b;
|
||||
background: black;
|
||||
background: @theme_bg_color;
|
||||
padding: 5px 8px;
|
||||
border-radius: 4px;
|
||||
/*border-bottom: 3px solid rgba(100, 114, 125, 0.5);*/
|
||||
@ -23,7 +23,7 @@ window > box {
|
||||
#workspaces button {
|
||||
padding: 0px 7px;
|
||||
padding-left: 4px;
|
||||
color: white;
|
||||
color: @theme_fg_color;
|
||||
background: transparent;
|
||||
border-radius: 2px;
|
||||
}
|
||||
@ -33,8 +33,8 @@ window > box {
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
background-color: white;
|
||||
color: #2b303b;
|
||||
background-color: @theme_fg_color;
|
||||
color: @theme_bg_color;
|
||||
}
|
||||
|
||||
#battery, #network, #pulseaudio, #clock, #custom-power, #custom-qbitstats {
|
||||
|
24
configs/waybar/theme.sh
Executable file
24
configs/waybar/theme.sh
Executable file
@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
DARK_MODE_STATUS_FILE=~/.cache/dark-mode
|
||||
CURRENT_DARK_MODE=$( cat $DARK_MODE_STATUS_FILE )
|
||||
|
||||
LIGHT="☀️"
|
||||
DARK="🌙"
|
||||
|
||||
echo "\$1 $1"
|
||||
echo "MODE: $CURRENT_DARK_MODE"
|
||||
|
||||
if [ "$1" == "--toggle" ]; then
|
||||
if [ $CURRENT_DARK_MODE == "light" ]; then
|
||||
~/.config/waybar/dark-mode.sh dark
|
||||
else
|
||||
~/.config/waybar/dark-mode.sh light
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $CURRENT_DARK_MODE != "light" ]; then
|
||||
echo $DARK
|
||||
else
|
||||
echo $LIGHT
|
||||
fi
|
Loading…
Reference in New Issue
Block a user