Juni Kim
2 weeks ago
commit
6179b747fa
29 changed files with 1506 additions and 0 deletions
-
48.config/alacritty/alacritty.toml
-
313.config/hypr/hyprland.conf
-
24.config/hypr/hyprlock.conf
-
2.config/hypr/hyprpaper.conf
-
6.config/nvim/init.lua
-
21.config/nvim/lazy-lock.json
-
0.config/nvim/lua/arch2025/init.lua
-
31.config/nvim/lua/arch2025/plugins/lualine.lua
-
15.config/nvim/lua/arch2025/plugins/theme.lua
-
16.config/nvim/lua/junikim/bootstrap-lazy.lua
-
4.config/nvim/lua/junikim/init.lua
-
104.config/nvim/lua/junikim/options.lua
-
7.config/nvim/lua/junikim/plugins/autopairs.lua
-
43.config/nvim/lua/junikim/plugins/barbar.lua
-
1.config/nvim/lua/junikim/plugins/devicons.lua
-
1.config/nvim/lua/junikim/plugins/emmet.lua
-
6.config/nvim/lua/junikim/plugins/fugitive.lua
-
1.config/nvim/lua/junikim/plugins/gitsigns.lua
-
101.config/nvim/lua/junikim/plugins/lsp.lua
-
13.config/nvim/lua/junikim/plugins/nvim-tree.lua
-
37.config/nvim/lua/junikim/plugins/telescope.lua
-
20.config/nvim/lua/junikim/plugins/treesitter.lua
-
1.config/nvim/lua/junikim/plugins/vimtex.lua
-
53.config/nvim/lua/junikim/remaps.lua
-
105.config/rofi/config.rasi
-
218.config/waybar/config.jsonc
-
213.config/waybar/style.css
-
52.tmux.conf
-
50.zshrc
@ -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' |
@ -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 |
@ -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) |
||||
|
} |
||||
|
|
||||
|
|
@ -0,0 +1,2 @@ |
|||||
|
preload = /home/junikim/wallpaper/trees.png |
||||
|
wallpaper = eDP-1, /home/junikim/wallpaper/trees.png |
@ -0,0 +1,6 @@ |
|||||
|
vim.g.mapleader = " " |
||||
|
require("junikim") |
||||
|
require("lazy").setup({ |
||||
|
{ import = 'junikim.plugins' }, |
||||
|
{ import = 'arch2025.plugins', enabled = true } |
||||
|
}) |
@ -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,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()]] } |
||||
|
}, |
||||
|
} |
||||
|
} |
@ -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, |
||||
|
} |
@ -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) |
@ -0,0 +1,4 @@ |
|||||
|
vim.g.mapleader = " " |
||||
|
require("junikim.bootstrap-lazy") |
||||
|
require("junikim.options") |
||||
|
require("junikim.remaps") |
@ -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 |
||||
|
}) |
@ -0,0 +1,7 @@ |
|||||
|
return { |
||||
|
'windwp/nvim-autopairs', |
||||
|
event = "InsertEnter", |
||||
|
config = true |
||||
|
-- use opts = {} for passing setup options |
||||
|
-- this is equivalent to setup({}) function |
||||
|
} |
@ -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 |
||||
|
} |
@ -0,0 +1 @@ |
|||||
|
return { 'nvim-tree/nvim-web-devicons' } |
@ -0,0 +1 @@ |
|||||
|
return { 'mattn/emmet-vim' } |
@ -0,0 +1,6 @@ |
|||||
|
return { |
||||
|
'tpope/vim-fugitive', |
||||
|
init = function() |
||||
|
vim.keymap.set("n", "<leader>gs", vim.cmd.Git) |
||||
|
end |
||||
|
} |
@ -0,0 +1 @@ |
|||||
|
return { 'lewis6991/gitsigns.nvim' } |
@ -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 |
||||
|
} |
||||
|
} |
@ -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, |
||||
|
} |
@ -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 |
||||
|
} |
@ -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' } }, |
||||
|
}, |
||||
|
} |
@ -0,0 +1 @@ |
|||||
|
return { 'lervag/vimtex' } |
@ -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 |
@ -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; |
||||
|
} |
@ -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" |
||||
|
} |
||||
|
} |
||||
|
} |
@ -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; |
||||
|
} |
@ -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 " |
@ -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 |
Write
Preview
Loading…
Cancel
Save
Reference in new issue