Browse Source

first commit

master
Juni Kim 2 weeks ago
commit
6179b747fa
  1. 48
      .config/alacritty/alacritty.toml
  2. 313
      .config/hypr/hyprland.conf
  3. 24
      .config/hypr/hyprlock.conf
  4. 2
      .config/hypr/hyprpaper.conf
  5. 6
      .config/nvim/init.lua
  6. 21
      .config/nvim/lazy-lock.json
  7. 0
      .config/nvim/lua/arch2025/init.lua
  8. 31
      .config/nvim/lua/arch2025/plugins/lualine.lua
  9. 15
      .config/nvim/lua/arch2025/plugins/theme.lua
  10. 16
      .config/nvim/lua/junikim/bootstrap-lazy.lua
  11. 4
      .config/nvim/lua/junikim/init.lua
  12. 104
      .config/nvim/lua/junikim/options.lua
  13. 7
      .config/nvim/lua/junikim/plugins/autopairs.lua
  14. 43
      .config/nvim/lua/junikim/plugins/barbar.lua
  15. 1
      .config/nvim/lua/junikim/plugins/devicons.lua
  16. 1
      .config/nvim/lua/junikim/plugins/emmet.lua
  17. 6
      .config/nvim/lua/junikim/plugins/fugitive.lua
  18. 1
      .config/nvim/lua/junikim/plugins/gitsigns.lua
  19. 101
      .config/nvim/lua/junikim/plugins/lsp.lua
  20. 13
      .config/nvim/lua/junikim/plugins/nvim-tree.lua
  21. 37
      .config/nvim/lua/junikim/plugins/telescope.lua
  22. 20
      .config/nvim/lua/junikim/plugins/treesitter.lua
  23. 1
      .config/nvim/lua/junikim/plugins/vimtex.lua
  24. 53
      .config/nvim/lua/junikim/remaps.lua
  25. 105
      .config/rofi/config.rasi
  26. 218
      .config/waybar/config.jsonc
  27. 213
      .config/waybar/style.css
  28. 52
      .tmux.conf
  29. 50
      .zshrc

48
.config/alacritty/alacritty.toml

@ -0,0 +1,48 @@
[window]
padding = {x = 10, y = 10}
opacity = 0.8
[general]
live_config_reload = true
[font]
size = 12.0
[font.bold]
family = "JetBrainsMono Nerd Font Mono"
style = "Bold"
[font.bold_italic]
family = "JetBrainsMono Nerd Font Mono"
style = "Bold Italic"
[font.italic]
family = "JetBrainsMono Nerd Font Mono"
style = "Italic"
[font.normal]
family = "JetBrainsMono Nerd Font Mono"
style = "Regular"
[colors.primary]
background= '#2d353b'
foreground= '#d3c6aa'
[colors.normal]
black= '#475258'
red= '#e67e80'
green= '#a7c080'
yellow= '#dbbc7f'
blue= '#7fbbb3'
magenta= '#d699b6'
cyan= '#83c092'
white= '#d3c6aa'
[colors.bright]
black= '#475258'
red= '#e67e80'
green= '#a7c080'
yellow= '#dbbc7f'
blue= '#7fbbb3'
magenta= '#d699b6'
cyan= '#83c092'
white= '#d3c6aa'

313
.config/hypr/hyprland.conf

@ -0,0 +1,313 @@
# This is an example Hyprland config file.
# Refer to the wiki for more information.
# https://wiki.hyprland.org/Configuring/
# Please note not all available settings / options are set here.
# For a full list, see the wiki
# You can split this configuration into multiple files
# Create your files separately and then link them to this file like this:
# source = ~/.config/hypr/myColors.conf
################
### MONITORS ###
################
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=eDP-1, 1920x1080@60, 0x0, 1
# why the skibidi is this here.
monitor=Unknown-1, disable
###################
### MY PROGRAMS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
# Set programs that you use
$terminal = alacritty
$fileManager = dolphin
$browser = firefox
$menu = rofi -show drun
#################
### AUTOSTART ###
#################
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
# exec-once = $terminal
# exec-once = nm-applet &
# exec-once = waybar & hyprpaper & firefox
exec-once = hyprpaper
exec-once = waybar
#############################
### ENVIRONMENT VARIABLES ###
#############################
# See https://wiki.hyprland.org/Configuring/Environment-variables/
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
#####################
### LOOK AND FEEL ###
#####################
# Refer to https://wiki.hyprland.org/Configuring/Variables/
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
gaps_in = 5
gaps_out = 20
border_size = 2
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgba(93b259ee)
col.inactive_border = rgba(595959aa)
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
rounding = 10
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
enabled = true
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
enabled = yes, please :)
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = easeOutQuint,0.23,1,0.32,1
bezier = easeInOutCubic,0.65,0.05,0.36,1
bezier = linear,0,0,1,1
bezier = almostLinear,0.5,0.5,0.75,1.0
bezier = quick,0.15,0,0.1,1
animation = global, 1, 10, default
animation = border, 1, 5.39, easeOutQuint
animation = windows, 1, 4.79, easeOutQuint
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
animation = windowsOut, 1, 1.49, linear, popin 87%
animation = fadeIn, 1, 1.73, almostLinear
animation = fadeOut, 1, 1.46, almostLinear
animation = fade, 1, 3.03, quick
animation = layers, 1, 3.81, easeOutQuint
animation = layersIn, 1, 4, easeOutQuint, fade
animation = layersOut, 1, 1.5, linear, fade
animation = fadeLayersIn, 1, 1.79, almostLinear
animation = fadeLayersOut, 1, 1.39, almostLinear
animation = workspaces, 1, 1.94, almostLinear, fade
animation = workspacesIn, 1, 1.21, almostLinear, fade
animation = workspacesOut, 1, 1.94, almostLinear, fade
}
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
# "Smart gaps" / "No gaps when only"
# uncomment all if you wish to use that.
# workspace = w[tv1], gapsout:0, gapsin:0
# workspace = f[1], gapsout:0, gapsin:0
# windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
# windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
# windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
# windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
new_status = master
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
}
#############
### INPUT ###
#############
# https://wiki.hyprland.org/Configuring/Variables/#input
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = true
tap-to-click = false
}
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = false
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
###################
### KEYBINDINGS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod SHIFT, A, exec, $terminal
bind = $mainMod SHIFT, Q, killactive,
bind = $mainMod SHIFT, E, exit,
#bind = $mainMod, E, exec, $fileManager
bind = $mainMod SHIFT, W, exec, firefox
bind = $mainMod, V, togglefloating,
bind = $mainMod, SPACE, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
#bind = $mainMod, J, togglesplit, # dwindle
# Move focus with mainMod + arrow keys
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d
bind = $mainMod SHIFT, h, movewindow, l
bind = $mainMod SHIFT, l, movewindow, r
bind = $mainMod SHIFT, k, movewindow, u
bind = $mainMod SHIFT, j, movewindow, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Laptop multimedia keys for volume and LCD brightness
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
# Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
# Screen Locker
bindl = , switch:Lid Switch, exec, hyprlock
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
windowrulev2 = workspace 1,class:Alacritty
windowrulev2 = workspace 1,class:kitty
windowrulev2 = workspace 3,class:Code
windowrulev2 = workspace 3,class:jetbrains
windowrulev2 = workspace 3,class:sublime
windowrulev2 = workspace 2,class:firefox
windowrulev2 = workspace 8,class:discord
windowrulev2 = workspace 8 float,class:zoom
windowrulev2 = workspace 7 float,class:Blueberry.py
# Ignore maximize requests from apps. You'll probably like this.
windowrulev2 = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0

24
.config/hypr/hyprlock.conf

@ -0,0 +1,24 @@
# sample hyprlock.conf
# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
input-field {
monitor =
size = 30%, 60%
outline_thickness = 3
inner_color = rgba(0, 0, 0, 0.0) # no fill
font_color = rgb(143, 143, 143)
fade_on_empty = false
rounding = 15
halign = center
valign = center
font_family = JetBrainsMono Nerd Font Mono
}
background {
path = /home/junikim/wallpaper/trees.png
color = rgb(23, 39, 41)
}

2
.config/hypr/hyprpaper.conf

@ -0,0 +1,2 @@
preload = /home/junikim/wallpaper/trees.png
wallpaper = eDP-1, /home/junikim/wallpaper/trees.png

6
.config/nvim/init.lua

@ -0,0 +1,6 @@
vim.g.mapleader = " "
require("junikim")
require("lazy").setup({
{ import = 'junikim.plugins' },
{ import = 'arch2025.plugins', enabled = true }
})

21
.config/nvim/lazy-lock.json

@ -0,0 +1,21 @@
{
"barbar.nvim": { "branch": "master", "commit": "53b5a2f34b68875898f0531032fbf090e3952ad7" },
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
"emmet-vim": { "branch": "master", "commit": "6c511a8d7d2863066f32e25543e2bb99d505172c" },
"everforest-nvim": { "branch": "main", "commit": "3598755ade98f87e66415cb0e15d3f99b895bdf8" },
"gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
"lazy.nvim": { "branch": "main", "commit": "ee64abc76be2b237b95d241a924b0323005b868a" },
"lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "8e46de9241d3997927af12196bd8faa0ed08c29a" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"nvim-autopairs": { "branch": "master", "commit": "b464658e9b880f463b9f7e6ccddd93fb0013f559" },
"nvim-cmp": { "branch": "main", "commit": "ca4d3330d386e76967e53b85953c170658255ecb" },
"nvim-lspconfig": { "branch": "master", "commit": "47f236c058f0511702286a21ba53bbf42abbd8a8" },
"nvim-tree.lua": { "branch": "master", "commit": "c7639482a1598f4756798df1b2d72f79fe5bb34f" },
"nvim-treesitter": { "branch": "master", "commit": "53e20aa728713af5cb4a3e0e2dcfea18975d49fc" },
"nvim-web-devicons": { "branch": "master", "commit": "21417212f640a1dad28a1408f04468819848f5e7" },
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"vim-fugitive": { "branch": "master", "commit": "320b18fba2a4f2fe3c8225c778c687e0d2620384" },
"vimtex": { "branch": "master", "commit": "44a2f1203ce2b6fcf1ff2b03aeca52c45f8a157e" }
}

0
.config/nvim/lua/arch2025/init.lua

31
.config/nvim/lua/arch2025/plugins/lualine.lua

@ -0,0 +1,31 @@
local function getWords()
local wordcount = vim.fn.wordcount()
if wordcount.visual_words ~= nil then
return tostring(wordcount.visual_words) .. "/" .. tostring(wordcount.words) .. " W"
end
return tostring(wordcount.words) .. " W"
end
return {
'nvim-lualine/lualine.nvim',
dependencies = { 'nvim-tree/nvim-web-devicons' },
init = function()
vim.opt.laststatus = 3
end,
opts = {
options = {
icons_enabled = true,
theme = 'everforest',
section_separators = { left = '', right = '' },
component_separators = { left = '', right = '' },
},
sections = {
lualine_a = { 'mode' },
lualine_b = { 'branch', 'diff', 'diagnostics' },
lualine_c = { 'filename' },
lualine_x = { 'encoding', 'fileformat', 'filetype' },
lualine_y = { getWords },
--lualine_z = { [[require'lsp-status'.status()]] }
},
}
}

15
.config/nvim/lua/arch2025/plugins/theme.lua

@ -0,0 +1,15 @@
return {
"neanias/everforest-nvim",
version = false,
lazy = false,
priority = 1000, -- make sure to load this before all the other start plugins
-- Optional; default configuration will be used if setup isn't called.
config = function()
require("everforest").setup({
-- Your config here
transparent_background_level = 1,
background = "medium",
})
vim.cmd.colorscheme 'everforest'
end,
}

16
.config/nvim/lua/junikim/bootstrap-lazy.lua

@ -0,0 +1,16 @@
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)

4
.config/nvim/lua/junikim/init.lua

@ -0,0 +1,4 @@
vim.g.mapleader = " "
require("junikim.bootstrap-lazy")
require("junikim.options")
require("junikim.remaps")

104
.config/nvim/lua/junikim/options.lua

@ -0,0 +1,104 @@
vim.opt.mouse:append('a')
vim.opt.guicursor = ""
vim.opt.number = true
vim.opt.linebreak = true
vim.opt.shiftwidth = 2
vim.opt.tabstop = 2
vim.opt.softtabstop = 2
vim.opt.expandtab = true
vim.opt.smarttab = true
vim.opt.shiftround = true
vim.opt.autoindent = true
vim.opt.textwidth = 80
vim.opt.colorcolumn = "80"
vim.opt.list = true
vim.opt.wrap = false
vim.opt.conceallevel = 0
vim.opt.splitbelow = false
vim.opt.splitright = false
vim.g.indentLine_fileTypeExclude = { 'text', 'tex' }
vim.opt.undodir = vim.fn.stdpath('data') .. "/undodir"
vim.opt.undofile = true
vim.opt.hlsearch = false
vim.opt.incsearch = true
vim.opt.nu = true
vim.opt.rnu = true
vim.opt.termguicolors = true
vim.opt.scrolloff = 7
vim.cmd("filetype plugin indent on")
vim.cmd("filetype on")
vim.api.nvim_create_autocmd("FileType", {
pattern = "python",
callback = function(args)
vim.bo.textwidth = 0
vim.bo.formatprg = "autopep8"
vim.bo.shiftwidth = 4
vim.bo.tabstop = 4
vim.bo.softtabstop = 4
end
})
vim.api.nvim_create_autocmd(
{ "BufRead", "BufNewFile" },
{
pattern = { "*.ms", "*.me", "*.mom" },
callback = function(args)
vim.bo.filetype = "groff"
end
}
)
vim.api.nvim_create_autocmd(
{ "BufRead", "BufNewFile" },
{
pattern = { "*.mdx", "*.md" },
callback = function(args)
vim.bo.filetype = "markdown"
end
}
)
vim.api.nvim_create_autocmd("FileType", {
pattern = { "tex", "text" },
callback = function(args)
vim.o.smarttab = false
vim.bo.autoindent = false
end
})
vim.api.nvim_create_autocmd("FileType", {
pattern = { "c", "cpp", "slang" },
callback = function(args)
vim.bo.cindent = true
end
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "markdown",
callback = function(args)
vim.bo.shiftwidth = 2
vim.bo.tabstop = 2
vim.bo.softtabstop = 2
vim.bo.autoindent = true
end
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "go",
callback = function(args)
vim.bo.shiftwidth = 4
vim.bo.expandtab = false
vim.bo.tabstop = 4
vim.bo.softtabstop = 4
vim.bo.preserveindent = true
vim.bo.copyindent = true
vim.api.nvim_set_keymap("n", "<F4>", ":w|:!cpgo test<CR>", { noremap = true })
end
})

7
.config/nvim/lua/junikim/plugins/autopairs.lua

@ -0,0 +1,7 @@
return {
'windwp/nvim-autopairs',
event = "InsertEnter",
config = true
-- use opts = {} for passing setup options
-- this is equivalent to setup({}) function
}

43
.config/nvim/lua/junikim/plugins/barbar.lua

@ -0,0 +1,43 @@
return {
'romgrk/barbar.nvim',
dependencies = {
'lewis6991/gitsigns.nvim', -- OPTIONAL: for git status
'nvim-tree/nvim-web-devicons', -- OPTIONAL: for file icons
},
init = function()
vim.g.barbar_auto_setup = false
local map = vim.api.nvim_set_keymap
local opts = { noremap = true, silent = true }
-- Move to previous/next
map('n', '<leader>,', '<Cmd>BufferPrevious<CR>', opts)
map('n', '<leader>.', '<Cmd>BufferNext<CR>', opts)
-- Re-order to previous/next
map('n', '<leader><', '<Cmd>BufferMovePrevious<CR>', opts)
map('n', '<leader>>', '<Cmd>BufferMoveNext<CR>', opts)
-- Goto buffer in position...
map('n', '<leader>1', '<Cmd>BufferGoto 1<CR>', opts)
map('n', '<leader>2', '<Cmd>BufferGoto 2<CR>', opts)
map('n', '<leader>3', '<Cmd>BufferGoto 3<CR>', opts)
map('n', '<leader>4', '<Cmd>BufferGoto 4<CR>', opts)
map('n', '<leader>5', '<Cmd>BufferGoto 5<CR>', opts)
map('n', '<leader>6', '<Cmd>BufferGoto 6<CR>', opts)
map('n', '<leader>7', '<Cmd>BufferGoto 7<CR>', opts)
map('n', '<leader>8', '<Cmd>BufferGoto 8<CR>', opts)
map('n', '<leader>9', '<Cmd>BufferGoto 9<CR>', opts)
map('n', '<leader>0', '<Cmd>BufferLast<CR>', opts)
-- Pin/unpin buffer
map('n', '<leader>p', '<Cmd>BufferPin<CR>', opts)
map('n', '<leader>i', '<Cmd>BufferPick<CR>', opts)
-- Close buffer
map('n', '<leader>c', '<Cmd>w|BufferClose<CR>', opts)
map('n', '<leader>q', '<Cmd>BufferClose!<CR>', opts)
end,
opts = {
-- lazy.nvim will automatically call setup for you. put your options here, anything missing will use the default:
-- animation = true,
-- insert_at_start = true,
-- …etc.
},
version = '^1.0.0', -- optional: only update when a new 1.x version is released
}

1
.config/nvim/lua/junikim/plugins/devicons.lua

@ -0,0 +1 @@
return { 'nvim-tree/nvim-web-devicons' }

1
.config/nvim/lua/junikim/plugins/emmet.lua

@ -0,0 +1 @@
return { 'mattn/emmet-vim' }

6
.config/nvim/lua/junikim/plugins/fugitive.lua

@ -0,0 +1,6 @@
return {
'tpope/vim-fugitive',
init = function()
vim.keymap.set("n", "<leader>gs", vim.cmd.Git)
end
}

1
.config/nvim/lua/junikim/plugins/gitsigns.lua

@ -0,0 +1 @@
return { 'lewis6991/gitsigns.nvim' }

101
.config/nvim/lua/junikim/plugins/lsp.lua

@ -0,0 +1,101 @@
return {
{
'williamboman/mason.nvim',
lazy = false,
opts = {},
},
-- Autocompletion
{
'hrsh7th/nvim-cmp',
event = 'InsertEnter',
config = function()
local cmp = require('cmp')
cmp.setup({
sources = {
{ name = 'nvim_lsp' },
},
mapping = cmp.mapping.preset.insert({
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
['<C-s>'] = cmp.mapping.confirm({ select = true }),
["<C-Space>"] = cmp.mapping.complete(),
['<Tab>'] = nil,
['<S-Tab>'] = nil,
}),
snippet = {
expand = function(args)
vim.snippet.expand(args.body)
end,
},
})
end
},
-- LSP
{
'neovim/nvim-lspconfig',
cmd = { 'LspInfo', 'LspInstall', 'LspStart' },
event = { 'BufReadPre', 'BufNewFile' },
dependencies = {
{ 'hrsh7th/cmp-nvim-lsp' },
{ 'williamboman/mason.nvim' },
{ 'williamboman/mason-lspconfig.nvim' },
},
init = function()
-- Reserve a space in the gutter
-- This will avoid an annoying layout shift in the screen
vim.opt.signcolumn = 'yes'
end,
config = function()
local lsp_defaults = require('lspconfig').util.default_config
-- Add cmp_nvim_lsp capabilities settings to lspconfig
-- This should be executed before you configure any language server
lsp_defaults.capabilities = vim.tbl_deep_extend(
'force',
lsp_defaults.capabilities,
require('cmp_nvim_lsp').default_capabilities()
)
-- LspAttach is where you enable features that only work
-- if there is a language server active in the file
vim.api.nvim_create_autocmd('LspAttach', {
desc = 'LSP actions',
callback = function(event)
local opts = { buffer = event.buf }
vim.keymap.set('n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>', opts)
vim.keymap.set('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<cr>', opts)
vim.keymap.set('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<cr>', opts)
vim.keymap.set('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<cr>', opts)
vim.keymap.set('n', 'go', '<cmd>lua vim.lsp.buf.type_definition()<cr>', opts)
vim.keymap.set('n', 'gr', '<cmd>lua vim.lsp.buf.references()<cr>', opts)
vim.keymap.set('n', 'gs', '<cmd>lua vim.lsp.buf.signature_help()<cr>', opts)
vim.keymap.set('n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<cr>', opts)
vim.keymap.set({ 'n', 'x' }, '<leader>ft', '<cmd>lua vim.lsp.buf.format({async = true})<cr>', opts)
vim.keymap.set('n', '<F4>', '<cmd>lua vim.lsp.buf.code_action()<cr>', opts)
end,
})
require('mason-lspconfig').setup({
ensure_installed = {
'tailwindcss',
'ts_ls',
'texlab',
'pyright',
'ltex',
'jsonls'
},
handlers = {
-- this first function is the "default handler"
-- it applies to every language server without a "custom handler"
function(server_name)
require('lspconfig')[server_name].setup({})
end,
}
})
end
}
}

13
.config/nvim/lua/junikim/plugins/nvim-tree.lua

@ -0,0 +1,13 @@
return {
"nvim-tree/nvim-tree.lua",
version = "*",
lazy = false,
dependencies = {
"nvim-tree/nvim-web-devicons",
},
config = function()
local api = require("nvim-tree.api")
vim.keymap.set("n", "<C-n>", api.tree.toggle)
require("nvim-tree").setup {}
end,
}

37
.config/nvim/lua/junikim/plugins/telescope.lua

@ -0,0 +1,37 @@
return {
'nvim-telescope/telescope.nvim',
tag = '0.1.x',
dependencies = { 'nvim-lua/plenary.nvim' },
config = function()
local builtin = require("telescope.builtin")
local path = require("plenary.path")
local function git_exists()
local p = "."
while true do
local gitpath = p .. "/.git"
local d = io.open(gitpath)
if d then
d:close()
return true
else
p = p .. "/.."
end
if path:new(p):absolute() == "/" then
return false
end
end
end
vim.keymap.set('n', '<C-P>', function()
if git_exists() then
builtin.git_files()
else
builtin.find_files()
end
end, {})
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
end
}

20
.config/nvim/lua/junikim/plugins/treesitter.lua

@ -0,0 +1,20 @@
return { -- Highlight, edit, and navigate code
'nvim-treesitter/nvim-treesitter',
build = ':TSUpdate',
main = 'nvim-treesitter.configs', -- Sets main module to use for opts
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
opts = {
ensure_installed = { "c", "cpp", "rust", "javascript", "typescript", "tsx", "json", "html", "latex", "bash", "python", "go", "css", "bibtex", "make", "vim", "lua", "markdown", "gitignore", "toml", "yaml", "nix" },
-- Autoinstall languages that are not installed
auto_install = true,
sync_install = false,
highlight = {
enable = true,
-- Some languages depend on vim's regex highlighting system (such as Ruby) for indent rules.
-- If you are experiencing weird indenting issues, add the language to
-- the list of additional_vim_regex_highlighting and disabled languages for indent.
additional_vim_regex_highlighting = { 'ruby' },
},
indent = { enable = true, disable = { 'ruby' } },
},
}

1
.config/nvim/lua/junikim/plugins/vimtex.lua

@ -0,0 +1 @@
return { 'lervag/vimtex' }

53
.config/nvim/lua/junikim/remaps.lua

@ -0,0 +1,53 @@
vim.g.mapleader = " "
vim.keymap.set("n", "<C-h>", "<C-w>h")
vim.keymap.set("n", "<C-j>", "<C-w>j")
vim.keymap.set("n", "<C-k>", "<C-w>k")
vim.keymap.set("n", "<C-l>", "<C-w>l")
vim.keymap.set("i", "<A-a>", "ā")
vim.keymap.set("i", "<A-e>", "ē")
vim.keymap.set("i", "<A-i>", "ī")
vim.keymap.set("i", "<A-o>", "ō")
vim.keymap.set("i", "<A-u>", "ū")
vim.keymap.set("n", "<F12>", ":w|:!texbld run compile<CR>")
vim.keymap.set("n", "<F5>", ":w|:!./test.sh<CR>")
-- hacks
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
vim.keymap.set("v", "gq", "gw")
vim.keymap.set("n", "J", "mzJ`z")
vim.keymap.set("n", "<C-d>", "<C-d>zz")
vim.keymap.set("n", "<C-u>", "<C-u>zz")
vim.keymap.set("n", "n", "nzzzv")
vim.keymap.set("n", "N", "Nzzzv")
vim.keymap.set("x", "<leader>p", [["_dP]])
vim.keymap.set({ "n", "v" }, "<leader>y", [["+y]])
vim.keymap.set("n", "<leader>Y", [["+Y]])
vim.keymap.set("n", "<leader>x", "<cmd>!chmod +x %<CR>", { silent = true })
vim.keymap.set("n", "<leader>X", "<cmd>!chmod -x %<CR>", { silent = true })
-- execute file
vim.keymap.set("n", "<leader>r", "<cmd>so ~/.config/nvim/init.lua<CR>")
vim.keymap.set("n", "<leader>e", "<cmd>!%:p<CR>", { silent = true })
vim.keymap.set("n", "<leader>vz", "<cmd>e ~/.zshrc<CR>");
vim.keymap.set("n", "<leader>vc", "<cmd>e ~/.config/nvim<CR>");
if os.getenv("TMUX") ~= nil then
vim.keymap.set("n", "<C-f>", [[<cmd>silent !tmux neww tmuxs\; setenv WORKSPACES $WORKSPACES \;<CR>]])
vim.keymap.set("n", "<C-y>", [[<cmd>silent !tmux neww cht.sh<CR>]])
else
local function unavailable()
print("Not in a tmux session")
end
vim.keymap.set("n", "<C-f>", unavailable)
vim.keymap.set("n", "<C-y>", unavailable)
end

105
.config/rofi/config.rasi

@ -0,0 +1,105 @@
* {
font: "JetBrainsMono Nerd Font Mono Medium 11";
bgdark: #272E33;
bgalt: #3C4841;
bggreen: #56635F;
fg0: #A7C080;
accent-color: #A7C080;
urgent-color: #DBBC7F;
background-color: transparent;
text-color: @fg0;
transparent: rgba(0,0,0,0);
}
window {
location: center;
anchor: center;
transparency: "screenshot";
padding: 10px;
border: 0px;
border-radius: 3px;
background-color: @transparent;
spacing: 0;
children: [mainbox];
orientation: horizontal;
}
mainbox {
spacing: 0;
children: [ inputbar, message, listview ];
}
message {
color: @bggreen;
padding: 5px;
border-color: @fg0;
border: 0px 2px 2px 2px;
background-color: @bgdark;
}
inputbar {
color: @fg0;
padding: 11px;
background-color: @bgalt;
border: 1px;
border-radius: 3px 3px 0px 0px;
border-color: @bggreen;
}
entry, prompt, case-indicator {
text-font: inherit;
text-color:inherit;
}
prompt {
margin: 0px 1em 0em 0em ;
}
listview {
padding: 8px;
border-radius: 0px 0px 3px 3px;
border-color: @bggreen;
border: 0px 1px 1px 1px;
background-color: rgba(46,52,64,0.9);
dynamic: false;
}
element {
padding: 3px;
vertical-align: 0.5;
border-radius: 3px;
background-color: transparent;
color: @fg0;
text-color: rgb(216, 222, 233);
}
element selected.normal {
background-color: @accent-color;
text-color: #2e3440;
}
element-text, element-icon {
background-color: inherit;
text-color: inherit;
}
button {
padding: 6px;
color: @fg0;
horizontal-align: 0.5;
border: 2px 0px 2px 2px;
border-radius: 4px 0px 0px 4px;
border-color: @bggreen;
}
button selected normal {
border: 2px 0px 2px 2px;
border-color: @fg0;
}

218
.config/waybar/config.jsonc

@ -0,0 +1,218 @@
// -*- mode: jsonc -*-
{
// "layer": "top", // Waybar at top layer
// "position": "bottom", // Waybar position (top|bottom|left|right)
"height": 40, // Waybar height (to be removed for auto height)
// "width": 1280, // Waybar width
"spacing": 4, // Gaps between modules (4px)
"margin-top": 2,
"margin-left": 20,
"margin-right": 20,
// Choose the order of the modules
"modules-left": [
"hyprland/workspaces",
"hyprland/window"
],
"modules-center": [
],
"modules-right": [
//"mpd",
"wireplumber",
"cpu",
//"memory",
//"temperature",
"backlight",
//"keyboard-state",
"battery",
"network",
"clock"
//"tray",
//"custom/power"
],
"hyprland/workspaces": {
"format": "{icon}",
"format-icons": {
"1": "",
"2": "",
"3": "",
"4": "󰀑",
"5": "󰒋",
"6": "♪",
"7": "",
"8": "󰙯",
"9": ""
},
"persistent-workspaces": {
"*": 9
}
},
"hyprland/window": {
"format": "👉 {}",
"rewrite": {
"(.*) — Mozilla Firefox": "🌎 $1",
"(.*) - fish": "> [$1]"
},
"separate-outputs": true
},
"keyboard-state": {
"numlock": true,
"capslock": true,
"format": "{name} {icon}",
"format-icons": {
"locked": "",
"unlocked": ""
}
},
"mpd": {
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
"format-disconnected": "Disconnected ",
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
"unknown-tag": "N/A",
"interval": 5,
"consume-icons": {
"on": " "
},
"random-icons": {
"off": "<span color=\"#f53c3c\"></span> ",
"on": " "
},
"repeat-icons": {
"on": " "
},
"single-icons": {
"on": "1 "
},
"state-icons": {
"paused": "",
"playing": ""
},
"tooltip-format": "MPD (connected)",
"tooltip-format-disconnected": "MPD (disconnected)"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
},
"tray": {
// "icon-size": 21,
"spacing": 10
},
"clock": {
// "timezone": "America/New_York",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "{:%Y-%m-%d}"
},
"cpu": {
"format": "{usage}% ",
"tooltip": false
},
"memory": {
"format": "{}% "
},
"temperature": {
// "thermal-zone": 2,
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
"critical-threshold": 80,
// "format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C {icon}",
"format-icons": [
"",
"",
""
]
},
"backlight": {
// "device": "acpi_video1",
"format": "{percent}% {icon}",
"format-icons": [
"",
"",
"",
"",
"",
"",
"",
"",
""
]
},
"battery": {
"states": {
// "good": 95,
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon}",
"format-full": "{capacity}% {icon}",
"format-charging": "{capacity}% ",
"format-plugged": "{capacity}% ",
"format-alt": "{time} {icon}",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": [
"",
"",
"",
"",
""
],
"interval": 2
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "",
"balanced": "",
"power-saver": ""
}
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "{essid} ({signalStrength}%) ",
"format-ethernet": "{ipaddr}/{cidr} ",
"tooltip-format": "{ifname} via {gwaddr} ",
"format-linked": "{ifname} (No IP) ",
"format-disconnected": "Disconnected ⚠",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
"wireplumber": {
"format": "{volume}% {icon}",
"format-muted": "muted ",
"on-click": "helvum",
"format-icons": [
"",
"",
""
]
},
"custom/media": {
"format": "{icon} {}",
"return-type": "json",
"max-length": 40,
"format-icons": {
"spotify": "",
"default": "🎜"
},
"escape": true,
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
},
"custom/power": {
"format": "⏻ ",
"tooltip": false,
"menu": "on-click",
"menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder
"menu-actions": {
"shutdown": "shutdown",
"reboot": "reboot",
"suspend": "systemctl suspend",
"hibernate": "systemctl hibernate"
}
}
}

213
.config/waybar/style.css

@ -0,0 +1,213 @@
* {
/* `otf-font-awesome` is required to be installed for icons */
font-family: JetBrainsMono Nerd Font Mono;
/*font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;*/
font-size: 16px;
}
window#waybar {
background-color: rgba(43, 48, 59, 0.9);
color: #d3c6aa;
transition-property: background-color;
transition-duration: .5s;
padding-left: 4px;
padding-right: 4px;
border-radius: 12px;
}
window#waybar.hidden {
opacity: 0.2;
}
window#waybar.termite {
background-color: #3F3F3F;
}
window#waybar.chromium {
background-color: #000000;
border: none;
}
button {
/* Use box-shadow instead of border so the text isn't offset */
box-shadow: inset 0 -3px transparent;
/* Avoid rounded borders under each button name */
border: none;
border-radius: 0;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
box-shadow: inherit;
text-shadow: inherit;
}
/* you can set a style on hover for any module like this */
#pulseaudio:hover {
background-color: #a37800;
}
#window, #workspaces {
background-color: #343f44;
border: 2px solid #4f585e;
border-radius: 10px;
}
#window {
padding-left: 4px;
padding-right: 4px;
border: 2px solid #a7c080;
}
#workspaces button {
padding: 0 8px;
background-color: transparent;
color: #d3c6aa;
}
#workspaces button.empty {
color: rgba(211,198,170,0.5);
}
#workspaces button.active {
background: rgba(0, 0, 0, 0.2);
box-shadow: inset 0 -3px #d3c6aa;
}
#workspaces button.focused {
background-color: #64727D;
box-shadow: inset 0 -3px #d3c6aa;
}
#workspaces button.urgent {
background-color: #eb4d4b;
}
#mode {
background-color: #64727D;
box-shadow: inset 0 -3px #d3c6aa;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#wireplumber,
#backlight,
#network,
#pulseaudio,
#custom-media,
#tray,
#mode,
#idle_inhibitor,
#scratchpad,
#power-profiles-daemon,
#mpd {
padding: 0 10px;
color: #d3c6aa;
border-radius: 10px;
background-color: #343f44;
}
.modules-left,
.modules-right {
padding: 4px 4px 4px 4px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
#clock {
border: 2px solid #e67e80;
}
#battery {
border: 2px solid #7fbbb3;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}
#power-profiles-daemon {
padding-right: 15px;
}
#power-profiles-daemon.performance {
background-color: #f53c3c;
color: #ffffff;
}
#power-profiles-daemon.balanced {
background-color: #2980b9;
color: #ffffff;
}
#power-profiles-daemon.power-saver {
background-color: #2ecc71;
color: #000000;
}
label:focus {
background-color: #000000;
}
#cpu {
border: 2px solid #83c092;
}
#memory {
background-color: #9b59b6;
}
#disk {
background-color: #964B00;
}
#backlight {
border: 2px solid #dbbc7f;
}
#network {
border: 2px solid #d699b6;
}
#wireplumber {
border: 2px solid #e67e80;
}
#custom-media {
background-color: #66cc99;
color: #2a5c45;
min-width: 100px;
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
}
#temperature {
background-color: #f0932b;
}
#temperature.critical {
background-color: #eb4d4b;
}

52
.tmux.conf

@ -0,0 +1,52 @@
set -s escape-time 0
set -g focus-events on
set-option -g status-style fg=white,bg=black
set-window-option -g mode-keys vi
#set-option -g default-terminal "tmux-256color"
#set -sa terminal-overrides ",tmux-256color*:Tc"
set-option -sa terminal-overrides ",xterm*:Tc"
unbind-key C-b
set-option -g prefix C-a
bind-key C-a send-prefix
bind c new-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind '"' split-window -v -c "#{pane_current_path}"
bind -r k select-pane -U
bind -r j select-pane -D
bind -r h select-pane -L
bind -r l select-pane -R
bind -r r source-file ~/.tmux.conf
set -g mouse on
bind-key X \
if-shell '[ "$(tmux display -p "#{session_many_attached}")" -gt 0 ]' {
# the session is attached to multiple clients, so we can just switch the client to a different session.
choose-session
} {
# we are the last client attached to this session; kill it.
# we need to use `run-shell` to ensure that the current session number is expanded *before* we switch to the new session.
confirm -p 'Kill #S (y/n)?' {
choose-tree -s {
run-shell 'tmux switch-client -t "%%" \; kill-session -t "#S"'
}
}
}
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'TanglingTreats/tmux-everforest' # Adds to the list of plugins
set -g @tmux-everforest 'dark-medium' # Sets the option to select the theme. Also the default.
# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin 'github_username/plugin_name#branch'
# set -g @plugin 'git@github.com:user/plugin'
# set -g @plugin 'git@bitbucket.com:user/plugin'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
#set-window-option -g status-left " #30S "

50
.zshrc

@ -0,0 +1,50 @@
# export PATH=$HOME/bin:/usr/local/bin:$PATH
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="edvardm"
plugins=(git zsh-syntax-highlighting)
source $ZSH/oh-my-zsh.sh
set -o vi
alias gac='git add . && git commit'
alias v='nvim'
alias s='ls'
alias c='clear'
alias e='exit'
alias o='xdg-open'
alias cp='cp -r'
alias vc='nvim ~/.config/nvim'
alias vrc='vim ~/.vimrc'
alias vz='nvim ~/.zshrc'
alias sz='source ~/.zshrc'
alias sy='systemctl'
# ~/.zshrc
export MT_EDITOR=nvim
export VISUAL=nvim
export WORKSPACES=$HOME/Documents
f() {
fff "$@"
cd "$(cat "${XDG_CACHE_HOME:=${HOME}/.cache}/fff/.fff_d")"
}
bindkey -s "^f" "~/.local/bin/tmuxs\n"
export WORKSPACES=$HOME/.config/waybar:$HOME/.config/alacritty:$HOME/.config/hypr:$HOME/.config/nvim:$WORKSPACES
alias schoolmount='sudo mount 192.168.1.179:/srv/nfs ~/nfs/rpi'
alias d2mount='sudo mount.cifs -o username=junikim,uid=$(id -u),gid=$(id -g) //157.245.86.196/d2nas ~/nfs/d2'
alias mp='ncmpcpp'
alias vh='nvim ~/.config/hypr/hyprland.conf'
export EDITOR=nvim
export PATH=$HOME/.local/bin:$PATH
export PATH=$HOME/go/bin:$PATH
if [[ "$(command -v nvim)" ]]; then
export EDITOR='nvim'
export MANPAGER='nvim +Man!'
export MANWIDTH=999
fi
Loading…
Cancel
Save