feat(all): move to Nord theme

This commit is contained in:
minhtrannhat 2022-07-11 21:35:34 -04:00
parent 9d9fdee9cb
commit fbfeefd849
No known key found for this signature in database
GPG Key ID: 894C6A5801E01CA9
23 changed files with 555 additions and 196 deletions

View File

@ -42,3 +42,5 @@ export LC_ALL=en_US.UTF-8
eval "$(direnv hook bash)"
eval "$(starship init bash)"
export PATH="/home/minhradz/.cargo/bin;/home/minhradz/.local/bin;/home/minhradz/go/bin;/home/minhradz/.cabal/bin:$PATH"
[ -f "/home/minhradz/.ghcup/env" ] && source "/home/minhradz/.ghcup/env"

View File

@ -7,7 +7,7 @@
;; Some functionality uses this to identify you, e.g. GPG configuration, email
;; clients, file templates and snippets.
(setq user-full-name "minhtrannhat"
user-mail-address "minhtrannhat2001@gmail.com")
user-mail-address "minhtrannhat@minhtrannhat.com")
;; Doom exposes five (optional) variables for controlling fonts in Doom. Here
;; are the three important ones:
@ -25,11 +25,14 @@
(setq doom-emoji-fallback-font-families nil)
(setq doom-symbol-fallback-font-families nil)
(add-hook 'prog-mode-hook #'pixel-scroll-mode)
(add-hook 'text-mode-hook #'pixel-scroll-mode)
(setq fancy-splash-image "/home/minhradz/.doom.d/marivector.png")
(defun synchronize-theme ()
(let* ((light-theme 'doom-gruvbox-light)
(dark-theme 'doom-gruvbox)
(let* ((light-theme 'doom-nord-light)
(dark-theme 'doom-nord)
(start-time-light-theme 6)
(end-time-light-theme 16)
(hour (string-to-number (substring (current-time-string) 11 13)))
@ -81,6 +84,13 @@
;; (global-tree-sitter-mode)
;; (add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode))
(global-tree-sitter-mode)
(add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode)
(require 'elcord)
(elcord-mode)
(setq elcord-use-major-mode-as-main-icon 't)
;; gpg
(setq epg-pinentry-mode 'loopback)
@ -89,6 +99,8 @@
;; org org
(setq +latex-viewers '(zathura))
;; auto render latex in org mode
(add-hook 'org-mode-hook 'org-fragtog-mode)
;; fish fish
(setq vterm-shell 'fish)
@ -163,18 +175,6 @@
:desc "Search org-roam with consult-ripgrep"
"n r F" #'org-roam-rg-search)
;; Function for inserting node into Org Roam
(defun org-roam-node-insert-immediate (arg &rest args)
(interactive "P")
(let ((args (cons arg args))
(org-roam-capture-templates (list (append (car org-roam-capture-templates)
'(:immediate-finish t)))))
(apply #'org-roam-node-insert args)))
(map! :leader
:desc "Insert node immediately"
"n r I" #'org-roam-node-insert-immediate)
(setq avy-all-windows 't)
;; Disables lsp-signature-auto-activate
@ -208,9 +208,7 @@
(blamer-face ((t :foreground "#7a88cf"
:background nil
:height 110
:italic t)))
:config
(global-blamer-mode 1))
:italic t))))
;; elfeed the rss reader
(after! elfeed
@ -265,3 +263,29 @@
((daily today remove-match)
(800 1200 1600 2000)
"......" "----------------")))
;; Clojure stuffs
(setq clojure-indent-style :always-align)
(defun delete-file-and-buffer ()
"Kill the current buffer and deletes the file it is visiting."
(interactive)
(let ((filename (buffer-file-name)))
(if filename
(if (y-or-n-p (concat "Do you really want to delete file " filename " ?"))
(progn
(delete-file filename)
(message "Deleted file %s." filename)
(kill-buffer)))
(message "Not a file visiting buffer!"))))
;; email stuffs
;; Each path is relative to the path of the maildir you passed to mu
(set-email-account! "minhtrannhat.com"
'((mu4e-sent-folder . "/minhtrannhat@minhtrannhat.com/Sent")
(mu4e-drafts-folder . "/minhtrannhat@minhtrannhat.com/Drafts")
(mu4e-trash-folder . "/minhtrannhat@minhtrannhat.com/Trash")
(mu4e-refile-folder . "/minhtrannhat@minhtrannhat.com/All Mail")
(smtpmail-smtp-user . "minhtrannhat@minhtrannhat.com")
(mu4e-compose-signature . "---\nMinh Tran"))
t)

View File

@ -0,0 +1,17 @@
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(elcord-display-buffer-details t)
'(git-gutter:update-interval 0.02)
'(smtpmail-smtp-server "mail.minhtrannhat.com")
'(smtpmail-smtp-service 587)
'(warning-suppress-types '((org-element-cache))))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(blamer-face ((t :foreground "#7a88cf" :background nil :height 110 :italic t)))
'(ts-fold-replacement-face ((t (:foreground nil :box nil :inherit font-lock-comment-face :weight light)))))

View File

@ -31,7 +31,7 @@
indent-guides ; highlighted indent columns
ligatures ; ligatures and symbols to make your code pretty again
;;minimap ; show a map of the code on the side
modeline ; snazzy, Atom-inspired modeline, plus API
(modeline +light) ; snazzy, Atom-inspired modeline, plus API
;;nav-flash ; blink cursor line after big motions
;;neotree ; a project drawer, like NERDTree for vim
ophints ; highlight the region an operation acts on
@ -75,6 +75,7 @@
:tools
;;ansible
;;debugger ; FIXME stepping through code, to help you add bugs
tree-sitter
direnv
(docker +lsp)
;;editorconfig ; let someone else argue about tabs vs spaces
@ -100,7 +101,7 @@
;;agda ; types of types of types of types...
;;beancount ; mind the GAAP
(cc +lsp) ; C > C++ == 1
clojure ; java with a lisp
(clojure +lsp) ; java with a lisp
common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c
@ -158,9 +159,9 @@
;;terra ; Earth and Moon in alignment for performance.
(web +lsp) ; the tubes
yaml ; JSON, but readable
;;zig ; C, but simpler
zig ; C, but simpler
:email
;;(mu4e +gmail +org)
(mu4e +org)
;;notmuch
;;(wanderlust +gmail)
:app

View File

@ -48,12 +48,10 @@
;(unpin! pinned-package another-pinned-package)
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
;(unpin! t)
;;(package! elcord)
(package! tree-sitter)
(package! tree-sitter-langs)
(package! elcord)
(unpin! org-roam)
(package! websocket)
(package! org-roam-ui :recipe (:host github :repo "org-roam/org-roam-ui" :files ("*.el" "out")))
(package! magit-delta)
(package! blamer :recipe (:host github :repo "artawower/blamer.el"))
(package! org-gtd)
(package! org-fragtog)

View File

@ -2,8 +2,6 @@ set fish_greeting
fish_vi_key_bindings
set fish_bind_mode insert
theme_gruvbox dark hard
alias rm 'rm -i'
alias nnn 'nnn -e'
alias icat 'kitty +kitten icat'
@ -37,7 +35,7 @@ set -gx LC_ALL en_US.UTF-8
set -gx _JAVA_AWT_WM_NONREPARENTING 1
set -x PATH /usr/libexec /usr/local/bin /home/minhradz/.cargo/bin /home/minhradz/.local/bin /home/minhradz/go/bin /home/minhradz/.cabal/bin /home/minhradz/.local/share/gem/ruby/3.0.0/bin $PATH
set -x PATH /home/minhradz/.ghcup/bin/ /usr/libexec /usr/local/bin /home/minhradz/.cargo/bin /home/minhradz/.local/bin /home/minhradz/go/bin /home/minhradz/.cabal/bin /home/minhradz/.local/share/gem/ruby/3.0.0/bin $PATH
starship init fish | source

View File

@ -2,18 +2,18 @@
# VERSION: 3.0
SETUVAR --export GTK_IM_MODULE:ibus
SETUVAR --export QT_IM_MODULE:ibus
SETUVAR --export SSH_AGENT_PID:1050
SETUVAR --export SSH_AUTH_SOCK:/tmp/ssh\x2dXXXXXXF1IpnD/agent\x2e1049
SETUVAR --export SSH_AGENT_PID:1167
SETUVAR --export SSH_AUTH_SOCK:/tmp/ssh\x2dXXXXXXZc9gOi/agent\x2e1166
SETUVAR --export XMODIFIERS:\x40im\x3dibus
SETUVAR __fish_initialized:3400
SETUVAR fish_color_autosuggestion:93a1a1
SETUVAR fish_color_cancel:\x2dr
SETUVAR fish_color_command:586e75
SETUVAR fish_color_comment:93a1a1
SETUVAR fish_color_autosuggestion:4c566a
SETUVAR fish_color_cancel:\x2d\x2dreverse
SETUVAR fish_color_command:81a1c1
SETUVAR fish_color_comment:434c5e
SETUVAR fish_color_cwd:green
SETUVAR fish_color_cwd_root:red
SETUVAR fish_color_end:268bd2
SETUVAR fish_color_error:dc322f
SETUVAR fish_color_end:88c0d0
SETUVAR fish_color_error:ebcb8b
SETUVAR fish_color_escape:00a6b2
SETUVAR fish_color_history_current:\x2d\x2dbold
SETUVAR fish_color_host:normal
@ -21,17 +21,17 @@ SETUVAR fish_color_host_remote:yellow
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
SETUVAR fish_color_normal:normal
SETUVAR fish_color_operator:00a6b2
SETUVAR fish_color_param:657b83
SETUVAR fish_color_quote:839496
SETUVAR fish_color_redirection:6c71c4
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dwhite
SETUVAR fish_color_param:eceff4
SETUVAR fish_color_quote:a3be8c
SETUVAR fish_color_redirection:b48ead
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_status:red
SETUVAR fish_color_user:brgreen
SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_key_bindings:fish_vi_key_bindings
SETUVAR fish_pager_color_completion:green
SETUVAR fish_pager_color_completion:normal
SETUVAR fish_pager_color_description:B3A06D
SETUVAR fish_pager_color_prefix:cyan\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
SETUVAR fish_pager_color_selected_background:\x2dr
SETUVAR fish_pager_color_selected_background:\x2d\x2dbackground\x3dbrblack

View File

@ -0,0 +1,138 @@
"""
To be used with a companion fish function like this:
function refish
set -l _x (python /tmp/bass.py source ~/.nvm/nvim.sh ';' nvm use iojs); source $_x; and rm -f $_x
end
"""
from __future__ import print_function
import json
import os
import signal
import subprocess
import sys
import traceback
BASH = 'bash'
FISH_READONLY = [
'PWD', 'SHLVL', 'history', 'pipestatus', 'status', 'version',
'FISH_VERSION', 'fish_pid', 'hostname', '_', 'fish_private_mode'
]
IGNORED = [
'PS1', 'XPC_SERVICE_NAME'
]
def ignored(name):
if name == 'PWD': # this is read only, but has special handling
return False
# ignore other read only variables
if name in FISH_READONLY:
return True
if name in IGNORED or name.startswith("BASH_FUNC"):
return True
return False
def escape(string):
# use json.dumps to reliably escape quotes and backslashes
return json.dumps(string).replace(r'$', r'\$')
def escape_identifier(word):
return escape(word.replace('?', '\\?'))
def comment(string):
return '\n'.join(['# ' + line for line in string.split('\n')])
def gen_script():
# Use the following instead of /usr/bin/env to read environment so we can
# deal with multi-line environment variables (and other odd cases).
env_reader = "%s -c 'import os,json; print(json.dumps({k:v for k,v in os.environ.items()}))'" % (sys.executable)
args = [BASH, '-c', env_reader]
output = subprocess.check_output(args, universal_newlines=True)
old_env = output.strip()
pipe_r, pipe_w = os.pipe()
if sys.version_info >= (3, 4):
os.set_inheritable(pipe_w, True)
command = 'eval $1 && ({}; alias) >&{}'.format(
env_reader,
pipe_w
)
args = [BASH, '-c', command, 'bass', ' '.join(sys.argv[1:])]
p = subprocess.Popen(args, universal_newlines=True, close_fds=False)
os.close(pipe_w)
with os.fdopen(pipe_r) as f:
new_env = f.readline()
alias_str = f.read()
if p.wait() != 0:
raise subprocess.CalledProcessError(
returncode=p.returncode,
cmd=' '.join(sys.argv[1:]),
output=new_env + alias_str
)
new_env = new_env.strip()
old_env = json.loads(old_env)
new_env = json.loads(new_env)
script_lines = []
for k, v in new_env.items():
if ignored(k):
continue
v1 = old_env.get(k)
if not v1:
script_lines.append(comment('adding %s=%s' % (k, v)))
elif v1 != v:
script_lines.append(comment('updating %s=%s -> %s' % (k, v1, v)))
# process special variables
if k == 'PWD':
script_lines.append('cd %s' % escape(v))
continue
else:
continue
if k == 'PATH':
value = ' '.join([escape(directory)
for directory in v.split(':')])
else:
value = escape(v)
script_lines.append('set -g -x %s %s' % (k, value))
for var in set(old_env.keys()) - set(new_env.keys()):
script_lines.append(comment('removing %s' % var))
script_lines.append('set -e %s' % var)
script = '\n'.join(script_lines)
alias_lines = []
for line in alias_str.splitlines():
_, rest = line.split(None, 1)
k, v = rest.split("=", 1)
alias_lines.append("alias " + escape_identifier(k) + "=" + v)
alias = '\n'.join(alias_lines)
return script + '\n' + alias
script_file = os.fdopen(3, 'w')
if not sys.argv[1:]:
print('__bass_usage', file=script_file, end='')
sys.exit(0)
try:
script = gen_script()
except subprocess.CalledProcessError as e:
sys.exit(e.returncode)
except Exception:
print('Bass internal error!', file=sys.stderr)
raise # traceback will output to stderr
except KeyboardInterrupt:
signal.signal(signal.SIGINT, signal.SIG_DFL)
os.kill(os.getpid(), signal.SIGINT)
else:
script_file.write(script)

View File

@ -0,0 +1,29 @@
function bass
set -l bash_args $argv
set -l bass_debug
if test "$bash_args[1]_" = '-d_'
set bass_debug true
set -e bash_args[1]
end
set -l script_file (mktemp)
if command -v python3 >/dev/null 2>&1
command python3 -sS (dirname (status -f))/__bass.py $bash_args 3>$script_file
else
command python -sS (dirname (status -f))/__bass.py $bash_args 3>$script_file
end
set -l bass_status $status
if test $bass_status -ne 0
return $bass_status
end
if test -n "$bass_debug"
cat $script_file
end
source $script_file
command rm $script_file
end
function __bass_usage
echo "Usage: bass [-d] <bash-command>"
end

View File

@ -0,0 +1,16 @@
function load_nvm --on-variable="PWD"
set -l default_node_version (nvm version default)
set -l node_version (nvm version)
set -l nvmrc_path (nvm_find_nvmrc)
if test -n "$nvmrc_path"
set -l nvmrc_node_version (nvm version (cat $nvmrc_path))
if test "$nvmrc_node_version" = "N/A"
nvm install (cat $nvmrc_path)
else if test "$nvmrc_node_version" != "$node_version"
nvm use $nvmrc_node_version
end
else if test "$node_version" != "$default_node_version"
echo "Reverting to default Node version"
nvm use default
end
end

View File

@ -0,0 +1,3 @@
function nvm
bass source ~/.nvm/nvm.sh --no-use ';' nvm $argv
end

View File

@ -0,0 +1,3 @@
function nvm_find_nvmrc
bass source ~/.nvm/nvm.sh --no-use ';' nvm_find_nvmrc
end

View File

@ -1,7 +1,7 @@
[pull]
rebase = false
[user]
email = minhtrannhat@tutanota.com
email = minhtrannhat@minhtrannhat.com
name = minhtrannhat
signingkey = 894C6A5801E01CA9
[commit]
@ -9,9 +9,10 @@
[init]
defaultBranch = master
[gpg]
program = /usr/bin/gpg
program = /usr/bin/gpg2
[pager]
diff = delta
blame = delta
log = delta
reflog = delta
show = delta
@ -19,7 +20,7 @@
[delta]
side-by-side = true
line-numbers = true
syntax-theme = gruvbox-dark
syntax-theme = Nord
navigate = true
[interactive]

View File

@ -46,4 +46,4 @@ map ctrl+right neighboring_window right
map ctrl+up neighboring_window up
map ctrl+down neighboring_window down
include gruvbox_light.conf
include nord.conf

View File

@ -0,0 +1,34 @@
# Nord Colorscheme for Kitty
# Based on:
# - https://gist.github.com/marcusramberg/64010234c95a93d953e8c79fdaf94192
# - https://github.com/arcticicestudio/nord-hyper
foreground #D8DEE9
background #2E3440
selection_foreground #000000
selection_background #FFFACD
url_color #0087BD
cursor #81A1C1
# black
color0 #3B4252
color8 #4C566A
# red
color1 #BF616A
color9 #BF616A
# green
color2 #A3BE8C
color10 #A3BE8C
# yellow
color3 #EBCB8B
color11 #EBCB8B
# blue
color4 #81A1C1
color12 #81A1C1
# magenta
color5 #B48EAD
color13 #B48EAD
# cyan
color6 #88C0D0
color14 #8FBCBB
# white
color7 #E5E9F0
color15 #ECEFF4

View File

@ -9,16 +9,21 @@ lvim.builtin.alpha.active = true
lvim.builtin.terminal.active = true
lvim.builtin.autopairs.active = true
lvim.builtin.gitsigns.active = true
lvim.builtin.notify.active = true
lvim.builtin.notify.active = false
lvim.builtin.dap.active = true
lvim.builtin.nvimtree.side = "left"
lvim.builtin.nvimtree.show_icons.git = 1
lvim.builtin.terminal.shell = "/bin/fish"
vim.termguicolors = true
vim.background = "dark"
lvim.colorscheme = "gruvbox"
vim.g.nord_contrast = true
vim.g.nord_borders = true
vim.g.nord_disable_background = false
vim.g.nord_italic = true
vim.termguicolors = true
lvim.colorscheme = "nord"
vim.api.nvim_set_var("Hexokinase_highlighters", { "backgroundfull" })
lvim.builtin.treesitter.ensure_installed = {}
lvim.builtin.treesitter.ignore_install = { "" }
@ -28,82 +33,133 @@ local formatters = require("lvim.lsp.null-ls.formatters")
local linters = require("lvim.lsp.null-ls.linters")
formatters.setup({
{
exe = "black",
filetypes = { "python" },
args = { "--quiet", "--fast", "-" },
},
{
exe = "clang_format",
filetypes = { "c", "cpp" },
},
{
exe = "rustfmt",
filetype = { "rust" },
},
{ exe = "prettier" },
{ exe = "gofmt", filetypes = { "go" } },
{ exe = "eslint_d" },
{ exe = "stylua", filetypes = { "lua" } },
{ exe = "brittany", filetypes = { "haskell" } },
{
exe = "black",
filetypes = { "python" },
args = { "--quiet", "--fast", "-" },
},
{
exe = "clang_format",
filetypes = { "c", "cpp" },
},
{
exe = "rustfmt",
filetype = { "rust" },
},
{ exe = "prettier" },
{ exe = "gofmt", filetypes = { "go" } },
{ exe = "eslint_d" },
{ exe = "stylua", filetypes = { "lua" } },
{ exe = "brittany", filetypes = { "haskell" } },
})
linters.setup({
{ exe = "flake8" },
{ exe = "flake8" },
})
-- Additional Plugins
lvim.plugins = {
{ "ellisonleao/gruvbox.nvim" },
{
"ray-x/lsp_signature.nvim",
config = function()
require("lsp_signature").on_attach()
end,
event = "InsertEnter",
},
{ "machakann/vim-sandwich" },
{ "tpope/vim-fugitive" },
{
"lewis6991/spellsitter.nvim",
config = function()
require("spellsitter").setup()
end,
},
{ "ggandor/lightspeed.nvim", requires = { "tpope/vim-repeat" }, event = "InsertEnter" },
{ "ellisonleao/glow.nvim" },
{ "shaunsingh/nord.nvim" },
{
"ray-x/lsp_signature.nvim",
config = function()
require("lsp_signature").on_attach()
end,
event = "InsertEnter",
},
{ "machakann/vim-sandwich" },
{ "tpope/vim-fugitive" },
{
"lewis6991/spellsitter.nvim",
config = function()
require("spellsitter").setup()
end,
},
{ "ggandor/lightspeed.nvim", requires = { "tpope/vim-repeat" }, event = "InsertEnter" },
{ "ellisonleao/glow.nvim" },
{ "andweeb/presence.nvim" },
{
"RRethy/vim-hexokinase",
run = "cd ~/.local/share/lunarvim/site/pack/packer/start/vim-hexokinase && make hexokinase",
},
{
"m-demare/hlargs.nvim",
config = function()
require("hlargs").setup()
end,
},
{
"aserowy/tmux.nvim",
config = function()
require("tmux").setup({
copy_sync = {
enable = false,
},
navigation = {
enable_default_keybindings = true,
},
resize = {
enable_default_keybindings = true,
},
})
end,
},
}
-- The setup config table shows all available config options with their default values:
require("presence"):setup({
-- General options
auto_update = true, -- Update activity based on autocmd events (if `false`, map or manually execute `:lua package.loaded.presence:update()`)
neovim_image_text = "The One True Text Editor", -- Text displayed when hovered over the Neovim image
main_image = "file", -- Main image display (either "neovim" or "file")
client_id = "793271441293967371", -- Use your own Discord application client id (not recommended)
log_level = nil, -- Log messages at or above this level (one of the following: "debug", "info", "warn", "error")
debounce_timeout = 10, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(<filename>, true)`)
enable_line_number = false, -- Displays the current line number instead of the current project
blacklist = {}, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches
buttons = true, -- Configure Rich Presence button(s), either a boolean to enable/disable, a static table (`{{ label = "<label>", url = "<url>" }, ...}`, or a function(buffer: string, repo_url: string|nil): table)
file_assets = {}, -- Custom file asset definitions keyed by file names and extensions (see default config at `lua/presence/file_assets.lua` for reference)
-- Rich Presence text options
editing_text = "Editing %s", -- Format string rendered when an editable file is loaded in the buffer (either string or function(filename: string): string)
file_explorer_text = "Browsing %s", -- Format string rendered when browsing a file explorer (either string or function(file_explorer_name: string): string)
git_commit_text = "Committing changes", -- Format string rendered when committing changes in git (either string or function(filename: string): string)
plugin_manager_text = "Managing plugins", -- Format string rendered when managing plugins (either string or function(plugin_manager_name: string): string)
reading_text = "Reading %s", -- Format string rendered when a read-only or unmodifiable file is loaded in the buffer (either string or function(filename: string): string)
workspace_text = "Working on %s", -- Format string rendered when in a git repository (either string or function(project_name: string|nil, filename: string): string)
line_number_text = "Line %s out of %s", -- Format string rendered when `enable_line_number` is set to true (either string or function(line_number: number, line_count: number): string)
})
-- Changes to clangd
vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "clangd" })
-- some settings can only passed as commandline flags `clangd --help`
local clangd_flags = {
"--all-scopes-completion",
"--suggest-missing-includes",
"--background-index",
"--pch-storage=disk",
"--cross-file-rename",
"--log=info",
"--completion-style=detailed",
"--enable-config", -- clangd 11+ supports reading from .clangd configuration file
"--clang-tidy",
"--offset-encoding=utf-16",
"--clang-tidy-checks=-*,llvm-*,clang-analyzer-*,modernize-*,-modernize-use-trailing-return-type",
"--fallback-style=Google",
"--all-scopes-completion",
"--suggest-missing-includes",
"--background-index",
"--pch-storage=disk",
"--cross-file-rename",
"--log=info",
"--completion-style=detailed",
"--enable-config", -- clangd 11+ supports reading from .clangd configuration file
"--clang-tidy",
"--offset-encoding=utf-16",
"--clang-tidy-checks=-*,llvm-*,clang-analyzer-*,modernize-*,-modernize-use-trailing-return-type",
"--fallback-style=Google",
}
local clangd_bin = "clangd"
local custom_on_attach = function(client, bufnr)
require("lvim.lsp").common_on_attach(client, bufnr)
local opts = { noremap = true, silent = true }
vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>lh", "<Cmd>ClangdSwitchSourceHeader<CR>", opts)
require("lvim.lsp").common_on_attach(client, bufnr)
local opts = { noremap = true, silent = true }
vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>lh", "<Cmd>ClangdSwitchSourceHeader<CR>", opts)
end
local opts = {
cmd = { clangd_bin, unpack(clangd_flags) },
on_attach = custom_on_attach,
cmd = { clangd_bin, unpack(clangd_flags) },
on_attach = custom_on_attach,
}
require("lvim.lsp.manager").setup("clangd", opts)

View File

@ -49,10 +49,13 @@ default_border pixel 5
font pango:FiraCodeNerdFontMono Regular 11
# # class border bground text indicator child_border
client.focused #F3722C #EBDBB2 #3C3836 #D65D0E #FE8019
client.unfocused #3C3836 #3C3836 #EBDBB2 #CC241D #504945
client.focused_inactive #3C3836 #EBDBB2 #3C3836 #000000 #00000000
# Window decoration
# class border backgr. text indicator child_border
client.focused #5e81ac #5e81ac #eceff4 #434c5e #5e81ac
client.focused_inactive #4c566a #4c566a #d8dee9 #3b4252 #434c5e
client.unfocused #4c566a #4c566a #d8dee9 #3b4252 #434c5e
client.urgent #bf616a #bf616a #eceff4 #900000 #bf616a
client.placeholder #000000 #0c0c0c #eceff4 #000000 #0c0c0c
# Additionally, you can issue commands with the following syntax. This is useful to bind keys to changing the gap size.
gaps inner 6
@ -60,7 +63,7 @@ gaps outer 3
### Output configuration
output * bg /home/minhradz/Downloads/lantern.jpg fill
output * bg /home/minhradz/Downloads/wall.png fill
output LVDS-1 pos 0 0 res 1366x768
output DP-1 res 1920x1080 position 1366,0
@ -78,6 +81,7 @@ for_window [app_id="soffice.bin"] inhibit_idle visible; border none; max_render_
for_window [app_id="firefox"] inhibit_idle fullscreen; max_render_time off
for_window [app_id="jellyfinmediaplayer"] inhibit_idle fullscreen; max_render_time off
for_window [app_id="zathura"] inhibit_idle visible; max_render_time off
for_window [app_id="kitty"] inhibit_idle visible; max_render_time off
### Input configuration
#

View File

@ -1,4 +1,6 @@
# remap prefix from 'C-b' to 'C-a'
set-environment -g PATH "/usr/local/bin:/bin:/usr/bin"
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
@ -12,8 +14,9 @@ unbind %
set-option -g default-shell /usr/bin/fish
# index number starts at 1
# window and pane index number starts at 1
set -g base-index 1
setw -g pane-base-index 1
# vi-mode
set-window-option -g mode-keys vi
@ -23,17 +26,34 @@ bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'wl-copy'
# reload config file (change file location to your the tmux.conf you want to use)
bind r source-file /home/minhradz/.tmux.conf
# switch panes using Alt-arrow without prefix
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
is_vim="ps -o state= -o comm= -t '#{pane_tty}'| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|[ln]?vim?x?)(diff)?$'"
bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' { if -F '#{pane_at_left}' '' 'select-pane -L' }
bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' { if -F '#{pane_at_bottom}' '' 'select-pane -D' }
bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' { if -F '#{pane_at_top}' '' 'select-pane -U' }
bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' { if -F '#{pane_at_right}' '' 'select-pane -R' }
bind-key -T copy-mode-vi 'C-h' if -F '#{pane_at_left}' '' 'select-pane -L'
bind-key -T copy-mode-vi 'C-j' if -F '#{pane_at_bottom}' '' 'select-pane -D'
bind-key -T copy-mode-vi 'C-k' if -F '#{pane_at_top}' '' 'select-pane -U'
bind-key -T copy-mode-vi 'C-l' if -F '#{pane_at_right}' '' 'select-pane -R'
is_vim="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|l?vim?x?)(diff)?$'"
bind -n 'M-h' if-shell "$is_vim" 'send-keys M-h' 'resize-pane -L 1'
bind -n 'M-j' if-shell "$is_vim" 'send-keys M-j' 'resize-pane -D 1'
bind -n 'M-k' if-shell "$is_vim" 'send-keys M-k' 'resize-pane -U 1'
bind -n 'M-l' if-shell "$is_vim" 'send-keys M-l' 'resize-pane -R 1'
bind-key -T copy-mode-vi M-h resize-pane -L 1
bind-key -T copy-mode-vi M-j resize-pane -D 1
bind-key -T copy-mode-vi M-k resize-pane -U 1
bind-key -T copy-mode-vi M-l resize-pane -R 1
# Enable mouse mode (tmux 2.1 and above)
set -g mouse on
# Neovim escape time
set-option -sg escape-time 10
set-option -sg escape-time 1
set-option -g focus-events on
######################
@ -49,11 +69,9 @@ set -g bell-action none
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'egel/tmux-gruvbox'
set -g @plugin "arcticicestudio/nord-tmux"
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @tmux-gruvbox 'dark' # or 'light'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run -b '~/.tmux/plugins/tpm/tpm'

View File

@ -18,18 +18,18 @@
}
#workspaces button {
color: #d8a657;
color: #b48ead;
margin: 0;
padding: 1px 1px 0px 1px;
}
#workspaces button.focused {
border: 1px solid #e78a4e;
border: 1px solid #b48ead;
}
window#waybar {
background: transparent;
color: #e78a4e;
color: #b48ead;
}
.modules-left, .modules-center, .modules-right {
@ -119,16 +119,16 @@ tooltip {
animation-duration: 0.2s;
border: 2px solid #787878;
text-shadow: none;
color: #e78a4e;
color: #b48ead;
}
tooltip label {
color: #e78a4e;
color: #b48ead;
}
#tray menu {
background: #464646;
color: #e78a4e;
color: #b48ead;
border-radius: 5px;
border: 2px solid #787878;
}

View File

@ -1,24 +1,23 @@
{
"label" : "lock",
"action" : "swaylock -c ~/.config/swaylock/config",
"action" : "swaylock -i ~/Downloads/william-moreland-W61Rp5RouCA-unsplash.png .s fill",
"text" : "Lock",
"keybind" : "l"
}
{
"label" : "hibernate",
"action" : "systemctl hibernate",
"action" : "systemctl suspend",
"text" : "Hibernate",
"keybind" : "h"
}
{
"label" : "logout",
"action" : "loginctl terminate-user $USER",
"action" : "swaymsg exit",
"text" : "Logout",
"keybind" : "e"
}
{
"label" : "shutdown",
"action" : "systemctl poweroff",
"action" : "shutdown now",
"text" : "Shutdown",
"keybind" : "s"
}

View File

@ -1,51 +1,52 @@
* {
background-image: none;
background-image: none;
}
@keyframes fadeIn {
from {opacity: 0;}
to {opacity: 1;}
}
window {
background-image: image(url("/home/minhradz/Downloads/lantern.jpg"), url("/home/minhradz/Downloads/lantern.jpg"));
background-color: rgba(46,52,64, 0.9);
font-size: 26px;
font-family: Product Sans;
animation: fadeIn;
animation-duration: 0.5s;
}
button {
background-color: #2e3440;
border-width: 0px;
border-radius: 0;
background-repeat: no-repeat;
background-position: center;
background-size: 25%;
color: #5e81ac;
color: #eceff4;
background-color: #4c566a;
border-style: solid;
margin: 20px;
border: 3px solid #3b4252;
background-repeat: no-repeat;
background-position: center;
}
button:active, button:hover {
background-color: #4c566a;
color: #81a1c1;
outline-style: none;
button:focus, button:active, button:hover {
background-color: #5e81ac;
outline-style: none;
}
#lock {
opacity: 0.9;
background-image: image(url("/usr/share/wlogout/icons/logout.png"), url("/usr/share/wlogout/icons/logout.png"));
background-image: image(url("/home/minhradz/.config/wlogout/icons/lock.png"), url("/usr/local/share/wlogout/icons/lock.png"));
}
#logout {
opacity: 0.9;
background-image: image(url("/usr/share/wlogout/icons/logout.png"), url("/usr/local/share/wlogout/icons/logout.png"));
background-image: image(url("/home/minhradz/.config/wlogout/icons/logout.png"), url("/usr/local/share/wlogout/icons/logout.png"));
}
#suspend {
opacity: 0.9;
background-image: image(url("/usr/share/wlogout/icons/suspend.png"), url("/usr/local/share/wlogout/icons/suspend.png"));
background-image: image(url("/home/minhradz/.config/wlogout/icons/suspend.png"), url("/usr/local/share/wlogout/icons/suspend.png"));
}
#hibernate {
opacity: 0.9;
background-image: image(url("/usr/share/wlogout/icons/hibernate.png"), url("/usr/local/share/wlogout/icons/hibernate.png"));
background-image: image(url("/home/minhradz/.config/wlogout/icons/hibernate.png"), url("/usr/local/share/wlogout/icons/hibernate.png"));
}
#shutdown {
opacity: 0.9;
background-image: image(url("/usr/share/wlogout/icons/shutdown.png"), url("/usr/local/share/wlogout/icons/shutdown.png"));
background-image: image(url("/home/minhradz/.config/wlogout/icons/shutdown.png"), url("/usr/local/share/wlogout/icons/shutdown.png"));
}
#reboot {
opacity: 0.9;
background-image: image(url("/usr/share/wlogout/icons/reboot.png"), url("/usr/local/share/wlogout/icons/reboot.png"));
background-image: image(url("/home/minhradz/.config/wlogout/icons/reboot.png"), url("/usr/local/share/wlogout/icons/reboot.png"));
}

View File

@ -1,5 +1,20 @@
term=kitty -1
allow-images=true
image_size=25
key_expand=Tab
stylesheet=/home/minhradz/.config/wofi/style.css
xoffset=0%
yoffset=0%
hide_scroll=true
show=drun
width=15%
lines=10
line_wrap=word
term=kitty
allow_markup=true
always_parse_args=true
show_all=true
print_command=true
layer=overlay
allow-images=true
insensitive=true
prompt=
image_size=25
display_generic=true
key_expand=Tab

View File

@ -1,63 +1,65 @@
#window {
padding: 2px;
background-color: transparent;
font-family: JetBrainsMonoMedium Nerd Font Mono;
}
#entry {
border-radius: 5px;
padding: 5px;
margin-bottom: 5px;
padding: 7px;
margin: 0px 5px 0px 5px;
}
@keyframes fadeIn {
from {opacity: 0;}
to {opacity: 1;}
}
#entry:selected {
background-color: #665C54;
}
#text {
padding: 5px;
font-size: 13px;
color:#FBF1C7;
background-color: transparent;
background-color: #5e81ac;
}
#text:selected {
font-size:14px;
font-weight:400;
color: #ffffff;
color: #d8dee9;
}
#window {
background-color: #3b4252;
background-color: transparent;
border-radius: 15px;
font-family: Product Sans;
animation: fadeIn;
animation-duration: 0.3s;
}
#input {
border: 2px solid #3C3836;
background-color: #EBDBB2;
padding: 5px;
font-size: 13px;
border-radius: 8px;
color: #1D2021;
box-shadow: 0 0 5px black;
border: 2px solid #5e81ac;
background-color: #4c566a;
padding: 6px;
margin: 15px;
margin-bottom: 0px;
font-size: 16px;
border-radius: 5px;
}
#inner-box {
margin-top: 10px;
color: #d8dee9;
padding: 8px;
border-radius:8px;
border-width: 2px;
border:2px solid #BDAE93;
background-color: #282828;
box-shadow: 0 0 5px black;
color: #d8dee9;
padding: 10px;
padding-top: 5px;
}
#outer-box {
margin: 15px;
background-color: transparent;
border-radius: 15px;
background-color: rgba(53,59,73,1.0);
box-shadow: 0px 0px 5px 0 #0F0F0F;
}
#scroll {
margin-top: 10px;
margin-bottom: 10px;
}
#text {
font-size: 16px;
padding: 7px;
color: #d8dee9;
background-color: transparent;
}
#img {
background-color: transparent;