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