39 Commits

Author SHA1 Message Date
Kulvir Singh
3f76901864 hyprland config and roficonfig 2025-05-16 09:04:33 +05:30
Kulvir Singh
100c0f16d7 waybar initial catpuccin 2025-05-15 22:50:48 +05:30
Kulvir Singh
331939657c edited install scripts 2025-05-15 17:33:37 +05:30
Kulvir Singh
5a990fb35c mac stuff removed from shell configs 2025-05-15 17:31:40 +05:30
Kulvir Singh
c03bb420fd no need of mac window managers 2025-05-15 17:30:14 +05:30
Kulvir Singh
4e27e6c419 removed macos specific settings from terminal 2025-05-15 17:29:56 +05:30
Kulvir Singh
b8bc1fbb46 smaller display smaller text size 2025-05-15 17:07:29 +05:30
Kulvir Singh
58beb6ba41 btop something something 2025-05-07 20:11:48 +05:30
Kulvir Singh
52d123e6cf lsp added to statusbar 2025-05-07 20:11:36 +05:30
Kulvir Singh
bbbe31edef either made of breaked my starship config 2025-05-02 20:25:04 +05:30
Kulvir Singh
13e0c80873 make some plugins load lazily 2025-05-02 03:19:13 +05:30
Kulvir Singh
d3886e267e turned off ghostty ligatures 2025-04-27 23:31:51 +05:30
Kulvir Singh
6b8a0ae751 borders in docs in comp 2025-04-24 03:30:48 +05:30
Kulvir Singh
554306870d removed duplicate smthng 2025-04-24 03:03:07 +05:30
Kulvir Singh
6a9e822249 ghostty cursor issue fixed 2025-04-24 02:58:42 +05:30
Kulvir Singh
fecfab2d64 updated lspconfig 2025-04-24 02:46:11 +05:30
Kulvir Singh
20e4e7539d here and there changes 2025-04-24 02:45:33 +05:30
Kulvir Singh
ef360f5705 moved from nvim-cmp to blink.cmp 2025-04-24 02:44:55 +05:30
Kulvir Singh
742011ae6d removed deprecated funcs and formatting correction 2025-04-23 23:18:59 +05:30
Kulvir Singh
d567640a26 cleaned up mini config 2025-04-23 20:21:46 +05:30
Kulvir Singh
01c641ef0e hover borders and some other stuff 2025-04-23 17:15:26 +05:30
Kulvir Singh
510950d5dd removed unused config 2025-04-15 13:23:36 +05:30
Kulvir Singh
db28d94007 better statusline icons 2025-03-14 09:26:55 +05:30
Kulvir Singh
3499cc0de8 eslint not needed 2025-03-09 20:22:49 +05:30
Kulvir Singh
a008233c7b . 2025-03-09 18:23:11 +05:30
Kulvir Singh
449cb4bc6c removed node from starship 2025-03-09 16:15:47 +05:30
Kulvir Singh
5270082cc0 4 tab 2025-03-09 03:11:17 +05:30
Kulvir Singh
4966457528 we love bun 2025-03-09 02:05:08 +05:30
Kulvir Singh
0c16f49f16 deleted useless stuff 2025-03-09 01:48:19 +05:30
Kulvir Singh
a260286c40 uninstall lsp kinda stuff 2025-03-09 01:30:10 +05:30
Kulvir Singh
e80ee5d017 git config 2025-03-09 01:26:41 +05:30
Kulvir Singh
4519042414 improved install script 2025-03-09 01:24:37 +05:30
Kulvir Singh
c1865cf4d7 starship cleanup 2025-03-09 01:14:20 +05:30
Kulvir Singh
0a88470d41 ghostty config 2025-03-09 01:13:54 +05:30
Kulvir Singh
64b610c59c irrelevant 2025-03-09 01:13:40 +05:30
Kulvir Singh
c3e692d02a terminals font change 2025-03-09 01:13:08 +05:30
Kulvir Singh
1e4dcc5546 feat: added env vars to zsh config 2025-03-09 01:12:24 +05:30
Kulvir Singh
f85a079b90 hapi: tmux is back 2025-03-09 00:53:16 +05:30
Kulvir Singh
db0ef4bcc3 something 2025-01-06 23:21:35 +05:30
78 changed files with 2038 additions and 1602 deletions

18
.bashrc Normal file
View File

@@ -0,0 +1,18 @@
# ----------------------
# Aliases
# ----------------------
alias ls='lsd'
alias nv='nvim'
alias neofetch="fastfetch"
# ---- Air for GO ----
alias air="~/go/bin/air"
# ---- starship ----
eval "$(starship init bash)"
# ---- zoxide ----
eval "$(zoxide init --cmd cd bash)"
# ---- fzf ----
eval "$(fzf --bash)"

View File

@@ -0,0 +1,78 @@
import = ["~/.config/alacritty/themes/rose-pine.toml"]
[env]
TERM = "xterm-256color"
[font]
size = 16.0
[font.bold]
style = "Bold"
[font.glyph_offset]
x = 0
y = 1
[font.normal]
family = "JetBrainsMono Nerd Font"
[font.italic]
style = "Italic"
[mouse]
hide_when_typing = true
[cursor]
style = "Beam"
[scrolling]
history = 1000
[window]
decorations = "none"
opacity = 0.95
[window.dimensions]
columns = 98
lines = 28
[window.padding]
x = 0
y = 0
# macOS copy/paste
[[keyboard.bindings]]
action = "Paste"
key = "v"
mods = "Command"
[[keyboard.bindings]]
action = "Copy"
key = "c"
mods = "Command"
[[keyboard.bindings]]
action = "ToggleFullscreen"
key = "Return"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[1;5C"
key = "Right"
mods = "Option"
[[keyboard.bindings]]
chars = "\u001B[1;5D"
key = "Left"
mods = "Option"
[[keyboard.bindings]]
chars = "\u0015"
key = "Backspace"
mods = "Command"
[[keyboard.bindings]]
key = "K"
mods = "Command"
mode = "~Vi|~Search"
action = "ClearHistory"

View File

@@ -0,0 +1,75 @@
# Colors section of "Alacritty - TOML configuration file format"
# https://github.com/alacritty/alacritty/blob/master/extra/man/alacritty.5.scd#colors
[colors.primary]
foreground = "#e0def4"
background = "#191724"
dim_foreground = "#908caa"
bright_foreground = "#e0def4"
[colors.cursor]
text = "#e0def4"
cursor = "#524f67"
[colors.vi_mode_cursor]
text = "#e0def4"
cursor = "#524f67"
[colors.search.matches]
foreground = "#908caa"
background = "#26233a"
[colors.search.focused_match]
foreground = "#191724"
background = "#ebbcba"
[colors.hints.start]
foreground = "#908caa"
background = "#1f1d2e"
[colors.hints.end]
foreground = "#6e6a86"
background = "#1f1d2e"
[colors.line_indicator]
foreground = "None"
background = "None"
[colors.footer_bar]
foreground = "#e0def4"
background = "#1f1d2e"
[colors.selection]
text = "#e0def4"
background = "#403d52"
[colors.normal]
black = "#26233a"
red = "#eb6f92"
green = "#31748f"
yellow = "#f6c177"
blue = "#9ccfd8"
magenta = "#c4a7e7"
cyan = "#ebbcba"
white = "#e0def4"
[colors.bright]
black = "#6e6a86"
red = "#eb6f92"
green = "#31748f"
yellow = "#f6c177"
blue = "#9ccfd8"
magenta = "#c4a7e7"
cyan = "#ebbcba"
white = "#e0def4"
[colors.dim]
black = "#6e6a86"
red = "#eb6f92"
green = "#31748f"
yellow = "#f6c177"
blue = "#9ccfd8"
magenta = "#c4a7e7"
cyan = "#ebbcba"
white = "#e0def4"

221
.config/btop/btop.conf Normal file
View File

@@ -0,0 +1,221 @@
#? Config file for btop v. 1.4.1
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
color_theme = "Default"
#* If the theme set background should be shown, set to False if you want terminal background transparency.
theme_background = False
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
truecolor = True
#* Set to true to force tty mode regardless if a real tty has been detected or not.
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
force_tty = False
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
#* Use whitespace " " as separator between different presets.
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
presets = "cpu:0:default mem:0:default net:0:default"
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
vim_keys = True
#* Rounded corners on boxes, is ignored if TTY mode is ON.
rounded_corners = True
#* Default symbols to use for graph creation, "braille", "block" or "tty".
#* "braille" offers the highest resolution but might not be included in all fonts.
#* "block" has half the resolution of braille but uses more common characters.
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
graph_symbol = "braille"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_cpu = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_mem = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_net = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_proc = "default"
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
shown_boxes = "cpu mem net proc"
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
update_ms = 2000
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
proc_sorting = "memory"
#* Reverse sorting order, True or False.
proc_reversed = False
#* Show processes as a tree.
proc_tree = True
#* Use the cpu graph colors in the process list.
proc_colors = True
#* Use a darkening gradient in the process list.
proc_gradient = True
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
proc_per_core = False
#* Show process memory as bytes instead of percent.
proc_mem_bytes = True
#* Show cpu graph for each process.
proc_cpu_graphs = True
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
proc_info_smaps = False
#* Show proc box on left side of screen instead of right.
proc_left = False
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
proc_filter_kernel = False
#* In tree-view, always accumulate child process resources in the parent process.
proc_aggregate = False
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_upper = "Auto"
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_lower = "Auto"
#* Toggles if the lower CPU graph should be inverted.
cpu_invert_lower = True
#* Set to True to completely disable the lower CPU graph.
cpu_single_graph = False
#* Show cpu box at bottom of screen instead of top.
cpu_bottom = False
#* Shows the system uptime in the CPU box.
show_uptime = True
#* Show cpu temperature.
check_temp = True
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
cpu_sensor = "Auto"
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
show_coretemp = True
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
#* Example: "4:0 5:1 6:3"
cpu_core_map = ""
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
temp_scale = "celsius"
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
base_10_sizes = False
#* Show CPU frequency.
show_cpu_freq = True
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
clock_format = "%X"
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
background_update = True
#* Custom cpu model name, empty string to disable.
custom_cpu_name = ""
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
disks_filter = ""
#* Show graphs instead of meters for memory values.
mem_graphs = True
#* Show mem box below net box instead of above.
mem_below_net = False
#* Count ZFS ARC in cached and available memory.
zfs_arc_cached = True
#* If swap memory should be shown in memory box.
show_swap = True
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
swap_disk = True
#* If mem box should be split to also show disks info.
show_disks = True
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
only_physical = True
#* Read disks list from /etc/fstab. This also disables only_physical.
use_fstab = True
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
zfs_hide_datasets = False
#* Set to true to show available disk space for privileged users.
disk_free_priv = False
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
show_io_stat = True
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
io_mode = False
#* Set to True to show combined read/write io graphs in io mode.
io_graph_combined = False
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
#* Example: "/mnt/media:100 /:20 /boot:1".
io_graph_speeds = ""
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
net_download = 100
net_upload = 100
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
net_auto = True
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
net_sync = True
#* Starts with the Network Interface specified here.
net_iface = ""
#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
base_10_bitrate = "Auto"
#* Show battery stats in top right if battery is present.
show_battery = True
#* Which battery to use if multiple are present. "Auto" for auto detection.
selected_battery = "Auto"
#* Show power stats of battery next to charge indicator.
show_battery_watts = True
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
log_level = "WARNING"

View File

@@ -0,0 +1,93 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"padding": {
"top": 2
}
},
"display": {
"separator": " ➜ "
},
"modules": [
"break",
"break",
"break",
{
"type": "os",
"key": "OS ",
"keyColor": "red"
},
{
"type": "kernel",
"key": " ├  ",
"keyColor": "red"
},
{
"type": "shell",
"key": " └  ",
"keyColor": "red"
},
"break",
{
"type": "wm",
"key": "WM ",
"keyColor": "green"
},
{
"type": "terminal",
"key": " ├  ",
"keyColor": "green"
},
{
"type": "terminalfont",
"key": " └  ",
"keyColor": "green"
},
"break",
{
"type": "host",
"format": "{5} {1} Type {2}",
"key": "PC ",
"keyColor": "yellow"
},
{
"type": "cpu",
"format": "{1} ({3}) @ {7} GHz",
"key": " ├  ",
"keyColor": "yellow"
},
{
"type": "gpu",
"format": "{1} {2} @ {12} GHz",
"key": " ├ 󰢮 ",
"keyColor": "yellow"
},
{
"type": "uptime",
"key": " └  ",
"keyColor": "yellow"
},
{
"type": "memory",
"key": " ├  ",
"keyColor": "yellow"
},
{
"type": "swap",
"key": " ├ 󰓡 ",
"keyColor": "yellow"
},
{
"type": "disk",
"key": " ├ 󰋊 ",
"keyColor": "yellow"
},
{
"type": "monitor",
"key": " └  ",
"keyColor": "yellow"
},
"break",
"break"
]
}

30
.config/ghostty/config Normal file
View File

@@ -0,0 +1,30 @@
theme = "catppuccin-mocha"
cursor-text = 181825
font-size = 12
font-family = "JetbrainsMono Nerd Font"
font-thicken = true
cursor-style = bar
cursor-style-blink = false
background-opacity = 0.9
background-blur-radius = 8
mouse-hide-while-typing = true
font-feature = -calt
font-feature = -liga
font-feature = -dlig
clipboard-read = allow
clipboard-write = allow
copy-on-select = clipboard
clipboard-trim-trailing-spaces = true
clipboard-paste-protection = true
window-decoration = false
window-padding-x = 2
window-padding-y = 2
window-padding-balance = true

11
.config/git/config Normal file
View File

@@ -0,0 +1,11 @@
[credential]
helper = cache
[user]
name = Kulvir Singh
email = kulvirs734@gmail.com
[init]
defaultBranch = trunk
[lfs]
enable = true
[push]
autoSetupRemote = true

203
.config/hypr/hyprland.conf Normal file
View File

@@ -0,0 +1,203 @@
source=~/.config/hypr/mocha.conf
# exec-once = hyprctl setcursor catppuccin-mocha-dark-cursors 28
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,preferred,auto,auto
# Set programs that you use
$terminal = ghostty
$menu = rofi -show drun drun
$powerMenu = rofi -show power-menu -modi "power-menu:rofi-power-menu --choices=shutdown/reboot/logout/lockscreen/suspend"
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
exec-once=waybar & swaync & hyprpaper & hypridle
# env variables
env = XCURSOR_SIZE,18
env = HYPRCURSOR_SIZE,18
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
kb_options =
# kb_options = ctrl:nocaps
follow_mouse = 1
sensitivity = 0 # -1.0 to 1.0, 0 means no modification.
touchpad {
natural_scroll = yes
}
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = false
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
border_size = 1
col.active_border = $peach
col.inactive_border = $surface2
resize_on_border = true
gaps_in = 2
gaps_out = 3
layout = dwindle
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 4
blur {
enabled = true
size = 3
passes = 1
new_optimizations = true
}
}
animations {
enabled = false
bezier = linear, 0.0, 0.0, 1, 1
animation = borderangle, 1, 50, linear, loop
animation=workspaces,1,0.5,default
animation=windows,0,0.1,default
animation=fade,0,0.1,default
}
dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # you probably want this
}
misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
}
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = super
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, W, killactive,
bind = $mainMod, Q, exit,
bind = $mainMod, V, togglefloating,
bind = $mainMod, F, fullscreen, # dwindle
bind = $mainMod, P, pseudo, # dwindle
# bind = $mainMod, E, togglesplit, # dwindle
bind = $mainMod, space, exec, $menu
bind = $mainMod, return, exec, $terminal
bind = $mainMod, F1, exec, powermenu
# bind = $mainMod, period, exec, $emojiPicker # install emoji picker first
# 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 = $SUPER_SHIFT, l, exec, hyprlock
# bind = $SUPER_SHIFT, R, exec, hyprctl reload
# 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, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 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
# screenshots w Hyprshot
# bind = , Print, exec, hyprshot -m window
# bind = shift, Print, exec, hyprshot -m region
bind = $mainMod, PRINT, exec, hyprshot --freeze -m window --clipboard-only
bind = , PRINT, exec, hyprshot --freeze -m output #--clipboard-only
bind = SHIFT, PRINT, exec, hyprshot --freeze -m region --clipboard-only
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Sound through pactl
bindel = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +10%
bindel = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -10%
bindel = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
# Brightness through brightnessctl
bindel = , XF86MonBrightnessUp, exec, brightnessctl set +5%
bindel = , XF86MonBrightnessDown, exec, brightnessctl set 5%-
# Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
# Example windowrule
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# Ignore maximize requests from apps. You'll probably like this.
windowrule = suppressevent maximize, class:.*
layerrule = noanim, rofi
# Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
# windowrulev2 = workspace 9, class:zen
# windowrulev2 = fullscreen,class:^steam_app\d+$

View File

@@ -0,0 +1,3 @@
preload = ~/wall/lofiwallpaper.png
wallpaper = , ~/wall/lofiwallpaper.png

77
.config/hypr/mocha.conf Normal file
View File

@@ -0,0 +1,77 @@
$rosewater = rgb(f5e0dc)
$rosewaterAlpha = f5e0dc
$flamingo = rgb(f2cdcd)
$flamingoAlpha = f2cdcd
$pink = rgb(f5c2e7)
$pinkAlpha = f5c2e7
$mauve = rgb(cba6f7)
$mauveAlpha = cba6f7
$red = rgb(f38ba8)
$redAlpha = f38ba8
$maroon = rgb(eba0ac)
$maroonAlpha = eba0ac
$peach = rgb(fab387)
$peachAlpha = fab387
$yellow = rgb(f9e2af)
$yellowAlpha = f9e2af
$green = rgb(a6e3a1)
$greenAlpha = a6e3a1
$teal = rgb(94e2d5)
$tealAlpha = 94e2d5
$sky = rgb(89dceb)
$skyAlpha = 89dceb
$sapphire = rgb(74c7ec)
$sapphireAlpha = 74c7ec
$blue = rgb(89b4fa)
$blueAlpha = 89b4fa
$lavender = rgb(b4befe)
$lavenderAlpha = b4befe
$text = rgb(cdd6f4)
$textAlpha = cdd6f4
$subtext1 = rgb(bac2de)
$subtext1Alpha = bac2de
$subtext0 = rgb(a6adc8)
$subtext0Alpha = a6adc8
$overlay2 = rgb(9399b2)
$overlay2Alpha = 9399b2
$overlay1 = rgb(7f849c)
$overlay1Alpha = 7f849c
$overlay0 = rgb(6c7086)
$overlay0Alpha = 6c7086
$surface2 = rgb(585b70)
$surface2Alpha = 585b70
$surface1 = rgb(45475a)
$surface1Alpha = 45475a
$surface0 = rgb(313244)
$surface0Alpha = 313244
$base = rgb(1e1e2e)
$baseAlpha = 1e1e2e
$mantle = rgb(181825)
$mantleAlpha = 181825
$crust = rgb(11111b)
$crustAlpha = 11111b

38
.config/kitty/kitty.conf Normal file
View File

@@ -0,0 +1,38 @@
include themes/Catppuccin_Mocha.conf
font_family JetBrainsMono Nerd Font
font_size 12.0
cursor_shape beam
background_opacity 0.9
background_blur 12
enable_audio_bell no
hide_window_decorations yes
shell_integration enabled
map kitty_mod+enter no_op
map cmd+enter no_op
# # tab bar at bottom
# tab_bar_style powerline
# tab_bar_min_tabs 2
# tab_title_template "{index}:{tab.active_exe}"
# active_tab_title_template "{index}:{tab.active_exe}*"
# tab_bar_background none
# # Jump to tabs
# map cmd+1 goto_tab 1
# map cmd+2 goto_tab 2
# map cmd+3 goto_tab 3
# map cmd+4 goto_tab 4
# map cmd+5 goto_tab 5
# map cmd+6 goto_tab 6
# map cmd+7 goto_tab 7
# map cmd+8 goto_tab 8
# map cmd+9 goto_tab 9
#
# map cmd+t new_tab_with_cwd

View File

@@ -0,0 +1,80 @@
# vim:ft=kitty
## name: Catppuccin-Mocha
## author: Pocco81 (https://github.com/Pocco81)
## license: MIT
## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf
## blurb: Soothing pastel theme for the high-spirited!
# The basic colors
foreground #CDD6F4
background #1E1E2E
selection_foreground #1E1E2E
selection_background #F5E0DC
# Cursor colors
cursor #F5E0DC
cursor_text_color #1E1E2E
# URL underline color when hovering with mouse
url_color #F5E0DC
# Kitty window border colors
active_border_color #B4BEFE
inactive_border_color #6C7086
bell_border_color #F9E2AF
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #11111B
active_tab_background #CBA6F7
inactive_tab_foreground #CDD6F4
inactive_tab_background #181825
tab_bar_background #11111B
# Colors for marks (marked text in the terminal)
mark1_foreground #1E1E2E
mark1_background #B4BEFE
mark2_foreground #1E1E2E
mark2_background #CBA6F7
mark3_foreground #1E1E2E
mark3_background #74C7EC
# The 16 terminal colors
# black
color0 #45475A
color8 #585B70
# red
color1 #F38BA8
color9 #F38BA8
# green
color2 #A6E3A1
color10 #A6E3A1
# yellow
color3 #F9E2AF
color11 #F9E2AF
# blue
color4 #89B4FA
color12 #89B4FA
# magenta
color5 #F5C2E7
color13 #F5C2E7
# cyan
color6 #94E2D5
color14 #94E2D5
# white
color7 #BAC2DE
color15 #A6ADC8

5
.config/nvim/.luarc.json Normal file
View File

@@ -0,0 +1,5 @@
{
"diagnostics.globals": [
"vim"
]
}

View File

@@ -0,0 +1,28 @@
{
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"SchemaStore.nvim": { "branch": "main", "commit": "b20f287e59a5376ca0de23140c6d94563d64695d" },
"blink.cmp": { "branch": "main", "commit": "022521a8910a5543b0251b21c9e1a1e989745796" },
"catpuccin": { "branch": "main", "commit": "1bf070129c0b6f77cc23f6a2212dcdc868308c52" },
"conform.nvim": { "branch": "master", "commit": "2b2b30260203af3b93a7470ac6c8457ddd6e32d9" },
"fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" },
"gitsigns.nvim": { "branch": "main", "commit": "e399f9748d7cfd8859747c8d6c4e9c8b4d50a1bd" },
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "d39a75bbce4b8aad5d627191ea915179c77c100f" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "75d60a8f928decd8b38897f80849768b7c540a5b" },
"mason.nvim": { "branch": "main", "commit": "7c7318e8bae7e3536ef6b9e86b9e38e74f2e125e" },
"mdx.nvim": { "branch": "main", "commit": "464a74be368dce212cff02f6305845dc7f209ab3" },
"mini.nvim": { "branch": "main", "commit": "009435c6c3653d54bc62997ca6b2e8513bc52cf4" },
"nvim-lint": { "branch": "master", "commit": "fdb04e9285edefbe25a02a31a35e8fbb10fe054d" },
"nvim-lspconfig": { "branch": "master", "commit": "ac1dfbe3b60e5e23a2cff90e3bd6a3bc88031a57" },
"nvim-tmux-navigation": { "branch": "main", "commit": "4898c98702954439233fdaf764c39636681e2861" },
"nvim-treesitter": { "branch": "master", "commit": "066fd6505377e3fd4aa219e61ce94c2b8bdb0b79" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "b0debd5c424969b4baeabdc8f54db3036c691732" },
"nvim-web-devicons": { "branch": "master", "commit": "d360317f8f509b99229bb31d42269987696df6ff" },
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }
}

View File

@@ -0,0 +1,52 @@
--[[
--
-- This file is not required for your own configuration,
-- but helps people determine if their system is setup correctly.
--
--]]
local check_version = function()
local verstr = string.format("%s.%s.%s", vim.version().major, vim.version().minor, vim.version().patch)
if not vim.version.cmp then
vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr))
return
end
if vim.version.cmp(vim.version(), { 0, 9, 4 }) >= 0 then
vim.health.ok(string.format("Neovim version is: '%s'", verstr))
else
vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr))
end
end
local check_external_reqs = function()
-- Basic utils: `git`, `make`, `unzip`
for _, exe in ipairs { "git", "make", "unzip", "rg" } do
local is_executable = vim.fn.executable(exe) == 1
if is_executable then
vim.health.ok(string.format("Found executable: '%s'", exe))
else
vim.health.warn(string.format("Could not find executable: '%s'", exe))
end
end
return true
end
return {
check = function()
vim.health.start "kickstart.nvim"
vim.health.info [[NOTE: Not every warning is a 'must-fix' in `:checkhealth`
Fix only warnings for plugins and languages you intend to use.
Mason will give warnings for languages that are not installed.
You do not need to install, unless you want to use those languages!]]
local uv = vim.uv or vim.loop
vim.health.info("System Information: " .. vim.inspect(uv.os_uname()))
check_version()
check_external_reqs()
end,
}

View File

@@ -0,0 +1,51 @@
return {
"saghen/blink.cmp",
event = "InsertEnter",
-- use a release tag to download pre-built binaries
version = "1.*",
dependencies = {
"folke/lazydev.nvim",
},
---@module 'blink.cmp'
---@type blink.cmp.Config
opts = {
-- See :h blink-cmp-config-keymap for defining your own keymap
keymap = { preset = "default" },
appearance = {
nerd_font_variant = "mono",
},
completion = {
documentation = { auto_show = true, auto_show_delay_ms = 500, window = { border = "rounded" } },
menu = {
border = "rounded",
draw = {
columns = {
{ "kind_icon", "label", "label_description", gap = 1 },
{ "kind" },
},
treesitter = { "lsp" },
},
},
},
-- Default list of enabled providers defined so that you can extend it
-- elsewhere in your config, without redefining it, due to `opts_extend`
sources = {
default = { "lsp", "path", "lazydev", "snippets", "buffer" },
providers = {
lazydev = { module = "lazydev.integrations.blink", score_offset = 100 },
},
},
fuzzy = { implementation = "prefer_rust_with_warning" },
-- Shows a signature help window while you type arguments for a function
signature = { enabled = true, window = { border = "rounded" } },
},
opts_extend = { "sources.default" },
}

View File

@@ -0,0 +1,12 @@
return {
"catppuccin/nvim",
name = "catpuccin",
priority = 1000,
lazy = false,
init = function()
require("catppuccin").setup {
transparent_background = true,
}
vim.cmd.colorscheme "catppuccin"
end,
}

View File

@@ -0,0 +1,33 @@
return {
"stevearc/conform.nvim",
event = { "BufWritePre" },
cmd = { "ConformInfo" },
opts = {
notify_on_error = false,
format_on_save = function(bufnr)
-- Disable "format_on_save lsp_fallback" for languages that don't
-- have a well standardized coding style. You can add additional
-- languages here or re-enable it for the disabled ones.
local disable_filetypes = { c = true, cpp = true }
if disable_filetypes[vim.bo[bufnr].filetype] then
return nil
else
return {
timeout_ms = 500,
lsp_format = "fallback",
}
end
end,
formatters_by_ft = {
css = { "prettier" },
go = { "gofumpt", "goimports_reviser" },
html = { "prettier" },
lua = { "stylua" },
python = { "autopep8" },
typescript = { "prettier" },
typescriptreact = { "prettier" },
},
},
}

View File

@@ -0,0 +1,9 @@
return {
"lukas-reineke/indent-blankline.nvim",
main = "ibl",
event = "BufReadPre",
opts = {
indent = { char = "" },
whitespace = { highlight = { "Whitespace", "NonText" } },
},
}

View File

@@ -0,0 +1,12 @@
return {
-- `lazydev` configures Lua LSP for your Neovim config, runtime and plugins
-- used for completion, annotations and signatures of Neovim apis
"folke/lazydev.nvim",
ft = "lua",
opts = {
library = {
-- Load luvit types when the `vim.uv` word is found
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
},
},
}

View File

@@ -0,0 +1,24 @@
return {
"mfussenegger/nvim-lint",
event = { "BufReadPre", "BufNewFile" },
config = function()
local lint = require "lint"
lint.linters_by_ft = {
json = { "jsonlint" },
python = { "mypy" },
-- typescript = { "eslint" },
-- typescriptreact = { "eslint" },
}
-- Create autocommand which carries out the actual linting
-- on the specified events.
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
group = lint_augroup,
callback = function()
require("lint").try_lint()
end,
})
end,
}

View File

@@ -0,0 +1,223 @@
return {
"neovim/nvim-lspconfig",
dependencies = {
{ "williamboman/mason.nvim", opts = {} },
"williamboman/mason-lspconfig.nvim",
"WhoIsSethDaniel/mason-tool-installer.nvim",
-- Useful status updates for LSP.
{ "j-hui/fidget.nvim", opts = {} },
"b0o/SchemaStore.nvim",
-- Allows extra capabilities provided by blink.cmp
"saghen/blink.cmp",
},
config = function()
-- This function gets run when an LSP attaches to a particular buffer.
-- That is to say, every time a new file is opened that is associated with
-- an lsp (for example, opening `main.rs` is associated with `rust_analyzer`) this
-- function will be executed to configure the current buffer
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("lsp-attach", { clear = true }),
callback = function(event)
local map = function(keys, func, desc, mode)
mode = mode or "n"
vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = "LSP: " .. desc })
end
-- Opens a popup that displays documentation about the word under your cursor
-- See `:help K` for why this keymap.
map("K", function()
vim.lsp.buf.hover { border = "rounded" }
end, "Hover Documentation")
-- Jump to the definition of the word under your cursor.
-- This is where a variable was first declared, or where a function is defined, etc.
-- To jump back, press <C-t>.
map("gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition")
-- Jump to the implementation of the word under your cursor.
-- Useful when your language has ways of declaring types without an actual implementation.
map("gI", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
-- Rename the variable under your cursor.
-- Most Language Servers support renaming across files, etc.
map("grn", vim.lsp.buf.rename, "[R]e[n]ame")
-- Execute a code action, usually your cursor needs to be on top of an error
-- or a suggestion from your LSP for this to activate.
map("gra", vim.lsp.buf.code_action, "[G]oto Code [A]ction", { "n", "x" })
-- Find references for the word under your cursor.
map("grr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
-- This is not Goto Definition, this is Goto Declaration.
-- For example, in C this would take you to the header.
map("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
-- Jump to the type of the word under your cursor.
-- Useful when you're not sure what type a variable is and you want to see
-- the definition of its *type*, not where it was *defined*.
map("grt", require("telescope.builtin").lsp_type_definitions, "[G]oto [T]ype Definition")
-- NOTE: commenting this untile I figure out when to use it
-- Fuzzy find all the symbols in your current workspace.
-- Similar to document symbols, except searches over your entire project.
-- map("gW", require("telescope.builtin").lsp_dynamic_workspace_symbols, "Open Workspace Symbols")
---
-- Fuzzy find all the symbols in your current document.
-- Symbols are things like variables, functions, types, etc.
-- map("gO", require("telescope.builtin").lsp_document_symbols, "Open Document Symbols")
-- The following two autocommands are used to highlight references of the
-- word under your cursor when your cursor rests there for a little while.
-- See `:help CursorHold` for information about when this is executed
--
-- When you move your cursor, the highlights will be cleared (the second autocommand).
local client = vim.lsp.get_client_by_id(event.data.client_id)
if
client
and client:supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight, event.buf)
then
local highlight_augroup = vim.api.nvim_create_augroup("lsp-highlight", { clear = false })
vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.document_highlight,
})
vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.clear_references,
})
vim.api.nvim_create_autocmd("LspDetach", {
group = vim.api.nvim_create_augroup("lsp-detach", { clear = true }),
callback = function(event2)
vim.lsp.buf.clear_references()
vim.api.nvim_clear_autocmds { group = "lsp-highlight", buffer = event2.buf }
end,
})
end
-- NOTE: commenting this untile I figure out when to use it
-- The following code creates a keymap to toggle inlay hints in your
-- code, if the language server you are using supports them
-- This may be unwanted, since they displace some of your code
--
-- if client and client:supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint, event.buf) then
-- map("<leader>th", function()
-- vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled { bufnr = event.buf })
-- end, "[T]oggle Inlay [H]ints")
-- end
end,
})
-- Diagnostic Config
-- See :help vim.diagnostic.Opts
vim.diagnostic.config {
severity_sort = true,
float = { border = "rounded", source = "if_many" },
underline = { severity = vim.diagnostic.severity.ERROR },
signs = vim.g.have_nerd_font and {
text = {
[vim.diagnostic.severity.ERROR] = "󰅚 ",
[vim.diagnostic.severity.WARN] = "󰀪 ",
[vim.diagnostic.severity.INFO] = "󰋽 ",
[vim.diagnostic.severity.HINT] = "󰌶 ",
},
} or {},
virtual_text = {
source = "if_many",
spacing = 2,
format = function(diagnostic)
local diagnostic_message = {
[vim.diagnostic.severity.ERROR] = diagnostic.message,
[vim.diagnostic.severity.WARN] = diagnostic.message,
[vim.diagnostic.severity.INFO] = diagnostic.message,
[vim.diagnostic.severity.HINT] = diagnostic.message,
}
return diagnostic_message[diagnostic.severity]
end,
},
}
-- LSP servers and clients are able to communicate to each other what features they support.
-- By default, Neovim doesn't support everything that is in the LSP specification.
-- When you add blink.cmp, luasnip, etc. Neovim now has *more* capabilities.
-- So, we create new capabilities with blink.cmp, and then broadcast that to the servers.
local capabilities = require("blink.cmp").get_lsp_capabilities()
-- enable the following language servers
-- Add any additional override configuration in the following tables. Available keys are:
-- - cmd (table): Override the default command used to start the server
-- - filetypes (table): Override the default list of associated filetypes for the server
-- - capabilities (table): Override fields in capabilities. Can be used to disable certain LSP features.
-- - settings (table): Override the default settings passed when initializing the server.
-- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/
local servers = {
gopls = {
filetypes = { "go", "gomod", "gowork", "gotmpl" },
},
jsonls = {
settings = {
json = {
schemas = require("schemastore").json.schemas(),
validate = { enable = true },
},
},
},
lua_ls = {
-- cmd = {...},
-- filetypes = { ...},
-- capabilities = {},
settings = {
lua = {
completion = {
callsnippet = "replace",
},
-- you can toggle below to ignore lua_ls's noisy `missing-fields` warnings
-- diagnostics = { disable = { 'missing-fields' } },
},
},
},
pyright = {},
ts_ls = {},
tailwindcss = {
filetypes = { "html", "css", "typescript", "typescriptreact", "astro" },
},
}
local ensure_installed = vim.tbl_keys(servers or {})
vim.list_extend(ensure_installed, {
"gofumpt",
"goimports-reviser",
"jsonlint",
"prettier",
"mypy",
"autopep8",
"stylua",
})
require("mason-tool-installer").setup { ensure_installed = ensure_installed }
require("mason-lspconfig").setup {
ensure_installed = {}, -- explicitly set to an empty table because we populates installs via mason-tool-installer
automatic_installation = true,
handlers = {
function(server_name)
local server = servers[server_name] or {}
server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {})
require("lspconfig")[server_name].setup(server)
end,
},
}
end,
}

View File

@@ -0,0 +1,5 @@
return {
"davidmh/mdx.nvim",
config = true,
dependencies = { "nvim-treesitter/nvim-treesitter" },
}

View File

@@ -1,41 +1,44 @@
return {
"echasnovski/mini.nvim",
config = function()
-- Better Around/Inside textobjects
--
-- Examples:
-- - va) - [V]isually select [A]round [)]paren
-- - yinq - [Y]ank [I]nside [N]ext [']quote
-- - ci' - [C]hange [I]nside [']quote
require("mini.ai").setup { n_lines = 500 }
-- Add/delete/replace surroundings (brackets, quotes, etc.)
--
-- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
-- - sd' - [S]urround [D]elete [']quotes
-- - sr)' - [S]urround [R]eplace [)] [']
require("mini.surround").setup()
local statusline = require "mini.statusline"
statusline.setup { use_icons = vim.g.have_nerd_font }
local function get_lsp_clients()
local clients = vim.lsp.get_clients()
if #clients == 0 then
return ""
end
local names = {}
for _, client in ipairs(clients) do
table.insert(names, client.name)
end
local lsp_string = table.concat(names, "|")
return "" .. lsp_string
end
---@diagnostic disable-next-line: duplicate-set-field
statusline.active = function()
local mode, mode_hl = statusline.section_mode { trunc_width = 120 }
local git = statusline.section_git
local diagnostics = statusline.section_diagnostics
local filename = statusline.section_filename { trunc_width = 140 }
-- local fileinfo = statusline.section_fileinfo()
local diff = statusline.section_diff { trunc_width = 75 }
local git = statusline.section_git()
local diagnostics = statusline.section_diagnostics()
local fileinfo = MiniStatusline.section_fileinfo { trunc_width = 120 }
local location = statusline.section_location()
local lsp = get_lsp_clients()
return statusline.combine_groups {
{ hl = mode_hl, strings = { mode } },
{ hl = "MiniStatuslineDevinfo", strings = { diagnostics } },
{ hl = "MiniStatuslineDevinfo", strings = { git, diff } },
"%<",
{ hl = "MiniStatuslineFilename", strings = { filename } },
{ hl = "MiniStatuslineFilename", strings = { fileinfo } },
"%=",
-- { hl = "MiniStatuslineFileinfo", strings = { fileinfo } },
{ hl = "MiniStatuslineDevinfo", strings = { git } },
{ hl = "MiniStatuslineFilename", strings = { lsp } },
{ hl = "MiniStatuslineDevinfo", strings = { diagnostics } },
{ hl = mode_hl, strings = { location } },
}
end
@@ -51,16 +54,16 @@ return {
local diagnostics = {}
if buffer_diagnostics.errors > 0 then
table.insert(diagnostics, string.format(":%d", buffer_diagnostics.errors))
table.insert(diagnostics, string.format(" :%d", buffer_diagnostics.errors))
end
if buffer_diagnostics.warnings > 0 then
table.insert(diagnostics, string.format(":%d", buffer_diagnostics.warnings))
table.insert(diagnostics, string.format(" :%d", buffer_diagnostics.warnings))
end
if buffer_diagnostics.info > 0 then
table.insert(diagnostics, string.format(":%d", buffer_diagnostics.info))
table.insert(diagnostics, string.format(" :%d", buffer_diagnostics.info))
end
if buffer_diagnostics.hints > 0 then
table.insert(diagnostics, string.format(":%d", buffer_diagnostics.hints))
table.insert(diagnostics, string.format(" :%d", buffer_diagnostics.hints))
end
return table.concat(diagnostics, " ")
end

View File

@@ -1,11 +1,7 @@
return {
"alexghergh/nvim-tmux-navigation",
lazy = false,
config = function()
local nvim_tmux_nav = require "nvim-tmux-navigation"
nvim_tmux_nav.setup {
disable_when_zoomed = true,
}

View File

@@ -1,6 +1,6 @@
return {
"folke/todo-comments.nvim",
event = "VimEnter",
event = "BufRead",
dependencies = { "nvim-lua/plenary.nvim" },
opts = { signs = false },
}

View File

@@ -5,7 +5,7 @@ return {
"nvim-treesitter/nvim-treesitter-textobjects",
},
opts = {
ensure_installed = { "go", "lua" },
ensure_installed = { "go", "lua", "typescript" },
auto_install = true,
highlight = {
enable = true,

View File

@@ -38,7 +38,6 @@ vim.keymap.set("n", "<leader>sh", builtin.help_tags, { desc = "[S]earch [H]elp"
vim.keymap.set("n", "<leader>sk", builtin.keymaps, { desc = "[S]earch [K]eymaps" })
vim.keymap.set("n", "<leader>ss", builtin.builtin, { desc = "[S]earch [S]elect Telescope" })
-- IDK how to make grep work on my machine... (skill issues tbh)
vim.keymap.set("n", "<leader>sw", builtin.grep_string, { desc = "[S]earch current [W]ord" })
vim.keymap.set("n", "<leader>sg", builtin.live_grep, { desc = "[S]earch by [G]rep" })
@@ -50,7 +49,7 @@ vim.keymap.set("n", "<leader><leader>", builtin.buffers, { desc = "[ ] Find exis
-- Slightly advanced example of overriding default behavior and theme
vim.keymap.set("n", "<leader>/", function()
builtin.current_buffer_fuzzy_find(require("telescope.themes").get_dropdown {
winblend = 50,
winblend = 10,
previewer = false,
})
end, { desc = "[/] Fuzzily search in current buffer" })

View File

@@ -34,8 +34,14 @@ vim.opt.hlsearch = true
set("n", "<Esc>", "<cmd>nohlsearch<CR>")
-- Diagnostic keymaps
set("n", "[d", vim.diagnostic.goto_prev, { desc = "Go to previous [D]iagnostic message" })
set("n", "]d", vim.diagnostic.goto_next, { desc = "Go to next [D]iagnostic message" })
set("n", "[d", function()
vim.diagnostic.jump { count = -1, float = true }
end, { desc = "Go to previous [D]iagnostic message" })
set("n", "]d", function()
vim.diagnostic.jump { count = 1, float = true }
end, { desc = "Go to next [D]iagnostic message" })
set("n", "<leader>q", vim.diagnostic.setloclist, { desc = "Open diagnostic [Q]uickfix list" })
set("n", "<leader>e", vim.diagnostic.open_float, { desc = "Show diagnostic [E]rror messages" })
@@ -50,6 +56,6 @@ vim.api.nvim_create_autocmd("TextYankPost", {
desc = "Highlight when yanking (copying) text",
group = vim.api.nvim_create_augroup("highlight-yank", { clear = true }),
callback = function()
vim.highlight.on_yank()
vim.hl.on_yank()
end,
})

View File

@@ -1,6 +1,5 @@
local opt = vim.opt
-- Use 4 space tabs
opt.tabstop = 4
opt.softtabstop = 4
opt.shiftwidth = 4
@@ -45,3 +44,4 @@ vim.o.linebreak = true
vim.o.wrap = true
vim.o.breakindent = true
vim.o.showbreak = ""
-- vim.o.winborder = "rounded"

99
.config/rofi/config.rasi Normal file
View File

@@ -0,0 +1,99 @@
configuration{
modi: "drun,run,window";
icon-theme: "Papirus-Dark";
show-icons: true;
drun-display-format: "{icon} {name}";
location: 0;
disable-history: false;
hide-scrollbar: true;
display-drun: "  Apps ";
display-run: "  Run ";
display-window: "  Window";
display-Network: " 󰤨 Network";
sidebar-mode: true;
}
@theme "catpuccin-mocha"
element-text, element-icon , mode-switcher {
background-color: inherit;
text-color: inherit;
}
window {
height: 360px;
border: 3px;
border-color: @border-col;
background-color: @bg-col;
}
mainbox {
background-color: @bg-col;
}
inputbar {
children: [prompt,entry];
background-color: @bg-col;
border-radius: 5px;
padding: 2px;
}
prompt {
background-color: @blue;
padding: 6px;
text-color: @bg-col;
border-radius: 3px;
margin: 20px 0px 0px 20px;
}
textbox-prompt-colon {
expand: false;
str: ":";
}
entry {
padding: 6px;
margin: 20px 0px 0px 10px;
text-color: @fg-col;
background-color: @bg-col;
}
listview {
border: 0px 0px 0px;
padding: 6px 0px 0px;
margin: 10px 0px 0px 20px;
columns: 2;
background-color: @bg-col;
}
element {
padding: 5px;
background-color: @bg-col;
text-color: @fg-col ;
}
element-icon {
size: 25px;
}
element selected {
background-color: @selected-col ;
text-color: @fg-col2 ;
}
mode-switcher {
spacing: 0;
}
button {
padding: 10px;
background-color: @bg-col-light;
text-color: @grey;
vertical-align: 0.5;
horizontal-align: 0.5;
}
button selected {
background-color: @bg-col;
text-color: @blue;
}

View File

@@ -0,0 +1,13 @@
* {
bg-col: #1e1e2e;
bg-col-light: #1e1e2e;
border-col: #1e1e2e;
selected-col: #1e1e2e;
blue: #89b4fa;
fg-col: #cdd6f4;
fg-col2: #f38ba8;
grey: #6c7086;
width: 600;
font: "JetBrainsMono Nerd Font 14";
}

81
.config/starship.toml Normal file
View File

@@ -0,0 +1,81 @@
"$schema" = 'https://starship.rs/config-schema.json'
format = "$directory$bun$golang$python$git_branch$git_status$git_state[ ](bold yellow)[](bold mauve)[](bold sapphire)\n$character"
palette = "catppuccin_mocha"
[bun]
format = '[bun ${version}](bold yellow)'
version_format = 'v${major}.${minor}'
[character]
success_symbol = "[➜](bold peach)"
error_symbol = "[✗](bold maroon)"
[cmd_duration]
disabled = true
[directory]
home_symbol= "󰊠 "
truncation_length = 2
truncate_to_repo = true
truncation_symbol = "󰊠 "
style = "bold lavender"
[git_branch]
format='[ $symbol$branch]($style)'
style='bold mauve'
symbol=" "
[git_state]
cherry_pick = '[🍒](bold maroon)'
[git_status]
format = '([\[$all_status$ahead_behind\]]($style))'
style = 'peach'
staged = '[++\($count\)](green)'
up_to_date = '[✓](green)'
untracked = '[ \($count\)](maroon)'
modified = '[ \($count\)](yellow)'
deleted = '[✘\($count\)](red)'
ahead = '⇡${count}'
diverged = '⇕⇡${ahead_count}⇣${behind_count}'
behind = '⇣${count}'
renamed = '»\($count\)'
stashed = '襁'
[golang]
format = '[ ${version}](bold $style)'
version_format = 'v${major}.${minor}'
[palettes.catppuccin_mocha]
rosewater = "#f5e0dc"
flamingo = "#f2cdcd"
pink = "#f5c2e7"
mauve = "#cba6f7"
red = "#f38ba8"
maroon = "#eba0ac"
peach = "#fab387"
yellow = "#f9e2af"
green = "#a6e3a1"
teal = "#94e2d5"
sky = "#89dceb"
sapphire = "#74c7ec"
blue = "#89b4fa"
lavender = "#b4befe"
text = "#cdd6f4"
subtext1 = "#bac2de"
subtext0 = "#a6adc8"
overlay2 = "#9399b2"
overlay1 = "#7f849c"
overlay0 = "#6c7086"
surface2 = "#585b70"
surface1 = "#45475a"
surface0 = "#313244"
base = "#1e1e2e"
mantle = "#181825"
crust = "#11111b"
[python]
symbol = " "
format = '[(\($virtualenv\))${symbol}${version}]($style)'
version_format = 'v${major}.${minor}'

44
.config/tmux/tmux.conf Normal file
View File

@@ -0,0 +1,44 @@
#!/usr/bin/env bash
set-option -sa terminal-overrides ",xterm*:Tc"
set -g mouse on
unbind C-b
set -g prefix C-x
bind C-x send-prefix
# Start windows and panes at 1, not 0
set -g base-index 1
set -g pane-base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on
set -g @plugin 'christoomey/vim-tmux-navigator'
# Better split window keybind and same directory for new panes
unbind '"'
unbind %
bind - split-window -v -c "#{pane_current_path}"
bind _ split-window -h -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
set -g @plugin 'catppuccin/tmux'
# Catpuccin Theme....
set -g status-left ""
set -g status-right "#{E:@catppuccin_status_application}"
set -ag status-right "#{E:@catppuccin_status_session}"
set -g @catppuccin_window_current_number_color "#{@thm_peach}"
set -ogq @catppuccin_window_text " #W"
set -ogq @catppuccin_window_current_text " #W"
set -ogq @catppuccin_status_left_separator "█"
set -ogq @catppuccin_window_flags "icon"
# RUN TPM
set -g @plugin 'tmux-plugins/tpm'
run '~/.config/tmux/plugins/tpm/tpm'

120
.config/waybar/config.jsonc Normal file
View File

@@ -0,0 +1,120 @@
{
"layer": "top",
"position": "top",
"height": 26,
"spacing": 0,
"margin-top": 4,
"margin-right": 4,
"margin-bottom": 0,
"margin-left": 4,
"modules-left": [
"custom/icon",
"hyprland/workspaces",
"hyprland/window"
],
"modules-center": [
"clock"
],
"modules-right": [
"tray",
"network",
"pulseaudio",
"memory",
"battery"
// "custom/lock"
],
"custom/icon": {
"format": "󰣇",
// "on-click": "rofi -show drun",
"tooltip": false
},
"hyprland/workspaces": {
"on-click": "activate",
"format": "{icon}",
"format-icons": {
"urgent": "",
"active": "",
"default": ""
},
"persistent-workspaces": {
"*": 3
}
},
"hyprland/window": {
"format": " {class}",
"empty_format": "",
"rewrite": {
"(.*)zen(.*)": "󰈹 Zen Browser",
"(.*)ghostty(.*)": " Neovim"
}
},
"clock": {
"format": "<b>󰥔 {:%H:%M 󰃭 %d.%m}</b> ",
"tooltip-format": "<tt>{calendar}</tt>"
},
"tray": {
"icon-size": 14,
"spacing": 10
},
"network": {
"interval": 30,
"format-wifi": "󰤨 ",
"format-ethernet": "󰈀 Wired",
"fomat-disconnected": "󱚵 Disconnected",
"tooltip-format-wifi": "{essid} ({signalStrength}% | {bandwidthDownBits}, {bandwidthUpBits})",
"tooltip-format-ethernet": "{ifname} ",
"tooltip-format-disconnected": "Disconnected"
},
"memory": {
"interval": 30,
"format": " {used:0.1f}G/{total:0.1f}G"
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-muted": " Muted",
"scroll-step": 1,
// "on-click": "pavucontrol",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": [
"",
"",
"󰕾",
""
]
}
},
"battery": {
"states": {
"good": 95,
"warning": 30,
"critical": 20
},
"format": "{icon} {capacity}%",
"format-charging": " {capacity}%",
"format-plugged": " {capacity}%",
"format-alt": "{time} {icon}",
"format-icons": [
"󰂎",
"󰁺",
"󰁻",
"󰁼",
"󰁽",
"󰁾",
"󰁿",
"󰂀",
"󰂁",
"󰂂",
"󰁹"
]
},
"custom/lock": {
"format": "",
"on-click": "wlogout"
}
}

25
.config/waybar/mocha.css Normal file
View File

@@ -0,0 +1,25 @@
@define-color rosewater #f5e0dc;
@define-color fl #f2cdcd;
@define-color pink #f5c2e7;
@define-color vl #cba6f7;
@define-color red #eba0ac;
@define-color peach #fab387;
@define-color yellow #f9e2af;
@define-color green #a6e3a1;
@define-color teal #94e2d5;
@define-color sky #89dceb;
@define-color sapphire #74c7ec;
@define-color blue #89b4fa;
@define-color lavender #b4befe;
@define-color fg #cdd6f4;
@define-color subtext1 #bac2de;
@define-color subtext0 #a6adc8;
@define-color overlay2 #9399b2;
@define-color overlay1 #7f849c;
@define-color overlay0 #6c7086;
@define-color surface2 #585b70;
@define-color surface1 #45475a;
@define-color surface0 #313244;
@define-color bg #1e1e2e;
@define-color bg2 #181825;
@define-color crust #11111b;

116
.config/waybar/style.css Normal file
View File

@@ -0,0 +1,116 @@
@import "mocha.css";
* {
font-family: "JetBrainsMono Nerd Font";
font-weight: bold;
font-size: 12px;
}
window#waybar {
color: @fg;
background-color: @bg2;
border-radius: 6px;
}
/* ------ Custom Modules ------ */
#custom-icon {
font-size: 18px;
color: @blue;
padding: 0 10px;
}
/* Workspaces */
#workspaces {
padding: 0px 3px;
margin: 5px;
font-family: JetBrainsMono Nerd Font;
}
#workspaces button {
padding: 0px 2px;
color: @peach;
background-color: transparent;
font-family: JetBrainsMono Nerd Font;
}
#workspaces button.active {
color: @fg;
}
#workspaces button.urgent {
color: @red;
}
/* ------ Window Title ------ */
#window {
padding: 2px 8px;
color: @fg;
}
/* ------ Clock ------ */
#clock {
padding: 2px 12px;
margin: 5px;
color: @lavender;
background-color: @bg;
border-radius: 8px;
}
/* ------ Tray ------ */
#tray {
padding: 2px 12px;
margin: 5px;
background-color: @bg;
border-radius: 0px;
}
/* ------ Network ------ */
#network {
padding: 2px 8px;
margin: 4px 2px;
color: @text;
background-color: @bg;
}
#pulseaudio {
padding: 2px 8px;
margin: 5px;
color: @yellow;
background-color: @bg;
}
#pulseaudio.muted {
color: @red;
}
#memory {
padding: 2px 8px;
margin: 5px;
color: @red;
background-color: @bg;
border-radius: 0px;
}
/* ------ Battery ------ */
#battery {
padding: 2px 8px;
margin: 5px;
color: @green;
background-color: @bg;
}
/* #custom-power { */
/* color: @red; */
/* background-color: @surface1; */
/* padding: 2px 9px; */
/* margin: 4px 2px; */
/* font-size: 15px; */
/* } */
tooltip {
border: 1px solid @blue;
background: @bg2;
margin: 20px;
padding: 15px;
border-radius: 14px;
}

16
.gitignore vendored Normal file
View File

@@ -0,0 +1,16 @@
*.DS_Store**
# tmux plugin files etc
tmux/**
**!tmux/tmux.conf
# btop files
*btop/**
!btop/btop.conf
procps
pulse
systemd
yay
lazygit
dconf

31
.stow-local-ignore Normal file
View File

@@ -0,0 +1,31 @@
# Comments and blank lines are allowed.
RCS
.+,v
CVS
\.\#.+ # CVS conflict files / emacs lock files
\.cvsignore
\.svn
_darcs
\.hg
\.git
\.gitignore
\.gitmodules
.+~ # emacs backup files
\#.*\# # emacs autosave files
^/README.*
^/readme.*
^/LICENSE.*
^/COPYING
# extra stuff not part of configs
install.sh
assets
.bashrc
^/alacritty*

21
.zshrc Normal file
View File

@@ -0,0 +1,21 @@
# ---- Aliases ----
alias ls='lsd'
alias lg='lazygit'
alias nv='nvim'
alias neofetch="fastfetch"
alias python='python3'
# ---- Air GO hot reload ----
alias air="~/go/bin/air"
# ---- starship ----
eval "$(starship init zsh)"
# ---- zoxide ----
eval "$(zoxide init --cmd cd zsh)"
# ---- fzf ----
source <(fzf --zsh)
export EDITOR="nvim"
export MANPAGER="nvim +Man!"

86
flake.lock generated
View File

@@ -1,86 +0,0 @@
{
"nodes": {
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1740494361,
"narHash": "sha256-Dd/GhJ9qKmUwuhgt/PAROG8J6YdU2ZjtJI9SQX5sVQI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "74f0a8546e3f2458c870cf90fc4b38ac1f498b17",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1740452771,
"narHash": "sha256-/tI1vFJ7/dXJqUmI+s0EV1F0DPe6dZvT444mrLUkrlU=",
"owner": "LnL7",
"repo": "nix-darwin",
"rev": "42be12b510253d750138ec90c66decc282298b44",
"type": "github"
},
"original": {
"owner": "LnL7",
"repo": "nix-darwin",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1740396192,
"narHash": "sha256-ATMHHrg3sG1KgpQA5x8I+zcYpp5Sf17FaFj/fN+8OoQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d9b69c3ec2a2e2e971c534065bdd53374bd68b97",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1740567784,
"narHash": "sha256-vtNes0DPo720tDDVTKrvLBhW/kY0EMHB1ik1Bw4bWZI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "8c97496b319743c0ac82205fc6ba2197bf7db9a7",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "release-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"nix-darwin": "nix-darwin",
"nixpkgs": "nixpkgs",
"nixpkgs-stable": "nixpkgs-stable"
}
}
},
"root": "root",
"version": 7
}

View File

@@ -1,47 +0,0 @@
{
description = "lilJ's nix-config";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
nixpkgs-stable.url = "github:nixos/nixpkgs/release-24.11";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-darwin = {
url = "github:LnL7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs @ {
self,
nixpkgs,
nix-darwin,
home-manager,
...
}: let
username = "lilj";
email = "kulvir@duck.com";
system = "aarch64-darwin"; # apple
forAllSystems = nixpkgs.lib.genAttrs [
"aarch64-darwin"
];
inherit (self) outputs;
in {
# own packages and some modifications
packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
overlays = import ./overlays {inherit inputs;};
# darwin-rebuild switch --flake .#mba
darwinConfigurations."mba" = nix-darwin.lib.darwinSystem {
specialArgs = {inherit inputs username email outputs system;};
modules = [
./hosts/mba
];
};
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
};
}

View File

@@ -1,85 +0,0 @@
{
pkgs,
inputs,
...
}: {
security.pam.services.sudo_local.touchIdAuth = true;
# Set Git commit hash for darwin-version.
system.configurationRevision = inputs.self.rev or inputs.self.dirtyRev or null;
system.defaults = {
controlcenter = {
BatteryShowPercentage = true;
NowPlaying = false;
};
dock = {
autohide = false;
tilesize = 22;
mineffect = "genie";
largesize = 32;
mru-spaces = true;
show-recents = false;
# don't ned hotcorners
wvous-bl-corner = null;
wvous-br-corner = null;
wvous-tl-corner = null;
wvous-tr-corner = null;
};
finder = {
CreateDesktop = false;
FXDefaultSearchScope = "SCcf";
FXPreferredViewStyle = "Nlsv";
NewWindowTarget = "Other";
NewWindowTargetPath = "file:///Users/lilj/Downloads";
ShowPathbar = true;
ShowStatusBar = true;
ShowRemovableMediaOnDesktop = false;
};
menuExtraClock = {
Show24Hour = false;
ShowAMPM = false;
ShowSeconds = false;
ShowDate = 1;
ShowDayOfWeek = true;
};
NSGlobalDomain = {
AppleInterfaceStyle = "Dark";
AppleICUForce24HourTime = false;
AppleSpacesSwitchOnActivate = true; # Switch to other workspace when switching application
"com.apple.keyboard.fnState" = false;
"com.apple.sound.beep.feedback" = 0;
"com.apple.sound.beep.volume" = 0.7788008;
"com.apple.swipescrolldirection" = true;
"com.apple.trackpad.scaling" = 1.35;
InitialKeyRepeat = 15;
KeyRepeat = 3;
NSAutomaticCapitalizationEnabled = false;
NSAutomaticDashSubstitutionEnabled = false;
NSAutomaticSpellingCorrectionEnabled = false;
NSAutomaticWindowAnimationsEnabled = true;
NSScrollAnimationEnabled = true;
NSTableViewDefaultSizeMode = 2; # finder sidebar icons size
};
screencapture = {
include-date = false;
location = "~/Documents/screenshots";
type = "png";
};
trackpad = {
ActuationStrength = 0;
Clicking = true;
TrackpadRightClick = true;
};
WindowManager = {
EnableStandardClickToShowDesktop = true;
EnableTiledWindowMargins = true;
};
};
system.stateVersion = 5;
time.timeZone = "Asia/Calcutta";
}

View File

@@ -1,32 +0,0 @@
{
inputs,
outputs,
username,
email,
...
}: {
imports = [
inputs.home-manager.darwinModules.home-manager
./configuration.nix
./mac-apps.nix
./nix.nix
./users.nix
];
nixpkgs = {
overlays = [
outputs.overlays.additions
outputs.overlays.modifications
outputs.overlays.stable-packages
];
};
home-manager = {
backupFileExtension = "hnm";
extraSpecialArgs = {inherit username email outputs;};
useGlobalPkgs = true;
useUserPackages = true;
users.${username} = import ./home.nix;
};
}

View File

@@ -1,42 +0,0 @@
{
pkgs,
username,
email,
outputs,
...
}: {
imports = [
# ../../modules/alacritty.nix
../../modules/git.nix
../../modules/fastfetch.nix
../../modules/kitty.nix
../../modules/nvim.nix
../../modules/shell.nix
../../modules/starship.nix
../../modules/tmux.nix
];
home.packages = [
pkgs.air
pkgs.bun
pkgs.go
pkgs.nodejs_23
pkgs.pnpm
pkgs.discord # nigga ain't working properly
pkgs.redis
pkgs.postgresql_17_jit
];
nixpkgs = {
overlays = [
outputs.overlays.additions
outputs.overlays.modifications
outputs.overlays.stable-packages
];
};
home.stateVersion = "24.11";
programs.home-manager.enable = true;
}

View File

@@ -1,61 +0,0 @@
{
pkgs,
config,
...
}: {
environment.systemPackages = [];
environment.variables = {
MANPAGER = "nvim +Man!";
};
# Enable alternative shell support in nix-darwin.
# environment.shells = [
# pkgs.fish
# ];
fonts.packages = [
pkgs.nerd-fonts.jetbrains-mono
# Alternate Fonts
# pkgs.nerd-fonts.caskaydia-mono
# pkgs.nerd-fonts.iosevka
];
homebrew = {
enable = true;
brews = [
# "bun"
];
caskArgs = {
appdir = "/Applications";
};
# darwin support for packages sucks
casks = [
"docker"
"obsidian"
"raycast"
"spotify"
"zen-browser"
# not me using em :(
"postman"
"slack"
"zoom"
];
global.autoUpdate = true;
onActivation = {
autoUpdate = true;
upgrade = true;
cleanup = "zap";
};
taps = [
# "oven-sh/bun"
];
};
}

View File

@@ -1,16 +0,0 @@
# This file seems like generic nix config options could be moved to common in future
{
pkgs,
lib,
system,
...
}: {
nixpkgs.config.allowUnfree = true;
# Cross-compile GNU/Linux binaries, or even full GNU/Linux system images
nix.linux-builder.enable = true;
nix.settings.experimental-features = "nix-command flakes";
nixpkgs.hostPlatform = "${system}";
}

View File

@@ -1,11 +0,0 @@
# same as nix.nix file, could be moved to common
{username, ...}: {
system.defaults.smb.NetBIOSName = "lilJ's mba";
users.users."${username}" = {
name = "${username}";
home = "/Users/${username}";
};
nix.settings.trusted-users = [username];
}

21
install.sh Executable file
View File

@@ -0,0 +1,21 @@
#!/bin/bash
# ---- Terminal ----
echo "Installing your Teminal and other thingies..."
yay -S git ghostty starship neovim ttf-jetbrains-mono-nerd tmux fzf lsd ripgrep zoxide lazygit fastfetch stow btop
echo "Creating symlinks using GNU STOW"
stow .
echo "changing default shell to z-shell"
sudo chsh -s $(which zsh)
source ~/.zshrc
yay -S bun-bin go node npm
# ---- Applications ----
echo "Installing the Applications..."
yay -S zen-browser-bin discord docker spotify
echo "setup complete...\n"

View File

@@ -1,115 +0,0 @@
{...}: {
programs.alacritty = {
enable = true;
settings = {
env = {
TERM = "xterm-256color";
};
cursor = {
style = "Beam";
};
font = {
normal.family = "JetBrainsMono Nerd Font";
bold.family = "JetBrainsMono Nerd Font";
italic.family = "JetBrainsMono Nerd Font";
bold_italic.family = "JetBrainsMono Nerd Font";
size = 16;
};
mouse.hide_when_typing = true;
selection.save_to_clipboard = true;
window = {
decorations = "none";
opacity = 0.95;
padding = {
x = 2;
y = 2;
};
};
# ROSE-PINE theme
colors = {
primary = {
foreground = "#e0def4";
background = "#191724";
dim_foreground = "#908caa";
bright_foreground = "#e0def4";
};
cursor = {
text = "#e0def4";
cursor = "#524f67";
};
vi_mode_cursor = {
text = "#e0def4";
cursor = "#524f67";
};
search = {
matches = {
foreground = "#908caa";
background = "#26233a";
};
focused_match = {
foreground = "#191724";
background = "#ebbcba";
};
};
hints = {
start = {
foreground = "#908caa";
background = "#1f1d2e";
};
end = {
foreground = "#6e6a86";
background = "#1f1d2e";
};
};
line_indicator = {
foreground = "None";
background = "None";
};
footer_bar = {
foreground = "#e0def4";
background = "#1f1d2e";
};
selection = {
text = "#e0def4";
background = "#403d52";
};
normal = {
black = "#26233a";
red = "#eb6f92";
green = "#31748f";
yellow = "#f6c177";
blue = "#9ccfd8";
magenta = "#c4a7e7";
cyan = "#ebbcba";
white = "#e0def4";
};
bright = {
black = "#6e6a86";
red = "#eb6f92";
green = "#31748f";
yellow = "#f6c177";
blue = "#9ccfd8";
magenta = "#c4a7e7";
cyan = "#ebbcba";
white = "#e0def4";
};
dim = {
black = "#6e6a86";
red = "#eb6f92";
green = "#31748f";
yellow = "#f6c177";
blue = "#9ccfd8";
magenta = "#c4a7e7";
cyan = "#ebbcba";
white = "#e0def4";
};
};
};
};
}

View File

@@ -1,99 +0,0 @@
{...}: {
programs.fastfetch = {
enable = true;
settings = {
logo = {
padding = {
top = 2;
};
};
display = {
separator = " ";
};
modules = [
"break"
"break"
"break"
{
type = "os";
key = "OS ";
keyColor = "red";
}
{
type = "kernel";
key = " ";
keyColor = "red";
}
{
type = "shell";
key = " ";
keyColor = "red";
}
"break"
{
type = "wm";
key = "WM ";
keyColor = "green";
}
{
type = "icons";
key = " 󰀻 ";
keyColor = "green";
}
{
type = "cursor";
key = " ";
keyColor = "green";
}
{
type = "terminal";
key = " ";
keyColor = "green";
}
"break"
{
type = "host";
format = "{5} {1} Type {2}";
key = "PC ";
keyColor = "yellow";
}
{
type = "cpu";
format = "{1} ({3}) @ {7} GHz";
key = " ";
keyColor = "yellow";
}
{
type = "memory";
key = " ";
keyColor = "yellow";
}
{
type = "swap";
key = " 󰓡 ";
keyColor = "yellow";
}
{
type = "disk";
key = " 󰋊 ";
keyColor = "yellow";
}
{
type = "uptime";
key = " ";
keyColor = "yellow";
}
{
type = "monitor";
key = " ";
keyColor = "yellow";
}
"break"
"break"
];
};
};
}

View File

@@ -1,27 +0,0 @@
{
username,
email,
...
}: {
programs.git = {
enable = true;
userName = "Kulvir Singh";
userEmail = "kulvirs734@gmail.com";
aliases = {};
ignores = [
".DS_Store"
".env"
];
lfs.enable = true; # make ptr to large files(audio/video) locally
extraConfig = {
init.defaultBranch = "trunk";
credential.helper = "cache";
push.autoSetupRemote = true;
};
};
}

View File

@@ -1,56 +0,0 @@
{...}: {
programs.kitty = {
enable = true;
font = {
name = "JetBrainsMono Nerd Font";
size = 14.0;
};
keybindings = {
"kitty_mod+enter" = "no_op";
"cmd+enter" = "no_op";
"cmd+t" = "new_tab_with_cwd";
"cmd+1" = "goto_tab 1";
"cmd+2" = "goto_tab 2";
"cmd+3" = "goto_tab 3";
"cmd+4" = "goto_tab 4";
"cmd+5" = "goto_tab 5";
"cmd+6" = "goto_tab 6";
"cmd+7" = "goto_tab 7";
"cmd+8" = "goto_tab 8";
"cmd+9" = "goto_tab 9";
};
shellIntegration.enableZshIntegration = true;
themeFile = "Catppuccin-Mocha";
extraConfig = ''
cursor_shape beam
background_opacity 0.95
background_blur 12
macos_quit_when_last_window_closed yes
macos_show_window_title_in none
enable_audio_bell no
hide_window_decorations yes
# tab bar at bottom stlying
tab_bar_style powerline
tab_bar_min_tabs 2
tab_title_template "{index}"
active_tab_title_template "{index}"
tab_bar_background none
# macOS - CMD/Option navs
map cmd+backspace send_text all \x15
map alt+backspace send_text all \x17
map cmd+left send_text all \x01
map cmd+right send_text all \x05
'';
};
}

View File

@@ -1,16 +0,0 @@
{pkgs, ...}: {
home.file = {
".config/nvim" = {
recursive = true;
source = "${pkgs.lilj-nvim-config}";
};
};
programs = {
neovim = {
enable = true;
defaultEditor = true;
vimAlias = true;
};
};
}

View File

@@ -1,50 +0,0 @@
{pkgs, ...}: {
programs = {
zsh = {
enable = true;
envExtra = ''
eval "$(/opt/homebrew/bin/brew shellenv)"
export PATH="/opt/homebrew/bin:$PATH"
'';
shellAliases = {
ls = "lsd";
lg = "lazygit";
neofetch = "fastfetch";
nv = "nvim";
python = "python3";
};
syntaxHighlighting.enable = true;
};
btop = {
enable = true;
settings = {
theme_background = false;
presets = "cpu:0:default mem:0:default net:0:default";
proc_sorting = "memory";
update_ms = 1000;
vim_keys = true;
};
};
fzf = {
enable = true;
enableZshIntegration = true;
};
lazygit.enable = true;
ripgrep.enable = true;
zoxide = {
enable = true;
options = ["--cmd cd"];
};
};
# environment.sessionVariables = {};
home.packages = [
pkgs.lsd
];
}

View File

@@ -1,98 +0,0 @@
{...}: {
programs.starship = {
enable = true;
settings = {
add_newline = true;
continuation_prompt = " ";
format = "$directory$c$bun$golang$nodejs(bold blue)$git_branch$git_status[](bold yellow)[](bold purple)[](bold blue)\n$character";
# format = ''$directory$all$character'';
palette = "catppuccin_mocha";
scan_timeout = 120;
bun = {
format = "[🍞 $version ](bold green)";
version_format = "\${major}.\${minor}";
};
c = {
detect_extensions = ["c" "cpp"];
format = "[$symbol $version ]($style)";
symbol = "";
version_format = "\${major}.\${minor}";
};
character = {
success_symbol = "[](bold green)";
error_symbol = "[](bold red)";
};
cmd_duration = {
disabled = true;
};
directory = {
home_symbol = "󰊠 ";
truncation_length = 2;
truncate_to_repo = true;
truncation_symbol = "󰊠 ";
style = "bold blue";
};
git_branch = {
format = "[$symbol$branch ]($style)";
style = "bold purple";
symbol = " ";
always_show_remote = true;
};
golang = {
format = "[$symbol $version ](bold cyan)";
version_format = "\${major}.\${minor}";
symbol = " ";
};
hostname = {
ssh_only = true;
format = "[$ssh_symbol$hostname ]($style)";
style = "bold green";
ssh_symbol = "󰇧 ";
disabled = false;
};
nodejs = {
detect_files = ["!bun.lock"];
format = "[$symbol$version ]($style)";
version_format = "\${major}.\${minor}";
};
palettes.catppuccin_mocha = {
rosewater = "#f5e0dc";
flamingo = "#f2cdcd";
pink = "#f5c2e7";
mauve = "#cba6f7";
red = "#f38ba8";
maroon = "#eba0ac";
peach = "#fab387";
yellow = "#f9e2af";
green = "#a6e3a1";
teal = "#94e2d5";
sky = "#89dceb";
sapphire = "#74c7ec";
blue = "#89b4fa";
lavender = "#b4befe";
text = "#cdd6f4";
subtext1 = "#bac2de";
subtext0 = "#a6adc8";
overlay2 = "#9399b2";
overlay1 = "#7f849c";
overlay0 = "#6c7086";
surface2 = "#585b70";
surface1 = "#45475a";
surface0 = "#313244";
base = "#1e1e2e";
mantle = "#181825";
crust = "#11111b";
};
};
};
}

View File

@@ -1,37 +0,0 @@
{pkgs, ...}: {
programs.tmux = {
enable = true;
baseIndex = 1;
historyLimit = 10000;
mouse = true;
prefix = "C-x";
plugins = [
pkgs.tmuxPlugins.vim-tmux-navigator
{
plugin = pkgs.tmuxPlugins.catppuccin;
}
];
extraConfig = ''
set-option -sa terminal-overrides ",xterm*:Tc"
set -s escape-time 0
# split panes using | and -
unbind '"'
unbind %
bind - split-window -v -c "#{pane_current_path}"
bind _ split-window -h -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
'';
};
}

View File

@@ -1,81 +0,0 @@
{...}: {
programs.zed-editor = {
enable = true;
extensions = [];
userSettings = {
auto_update = false;
buffer_font_size = 14;
buffer_font_family = "JetBrainsMono Nerd Font";
ensure_final_newline_on_save = false;
hard_tabs = true;
languages = {
"TypeScript" = {
code_actions_on_format = {
"source.fixAll.eslint" = true;
"source.organizeImports" = true;
};
codeActionOnSave = {
rules = ["import/order"];
};
formatter = "prettier";
};
};
lsp = {
};
search = {
regex = true;
};
show_whitespaces = "boundary";
tab_size = 4;
tab_bar = {
show_nav_history_buttons = false;
};
tabs = {
file_icons = true;
git_status = true;
};
telemetery = {
diagnostics = false;
metrics = false;
};
terminal = {
font_size = 13;
line_height = "standard";
toolbar = {
breadcrumbs = false;
};
};
theme = {
mode = "dark";
light = "Rosé Pine";
dark = "Rosé Pine";
};
toolbar = {
breadcrumbs = false;
quick_actions = false;
};
ui_font_size = 14;
ui_font_family = "JetBrainsMono Nerd Font";
vim_mode = true;
};
};
}

View File

@@ -1,18 +0,0 @@
{inputs, ...}: {
additions = final: _prev: import ../pkgs {pkgs = final;};
modifications = final: prev: {
discord = prev.discord.override {
withOpenASAR = true;
withVencord = true;
};
};
# The stable nixpkgs set (declared in the flake inputs) will be accessible through 'pkgs.stable'
stable-packages = final: _prev: {
stable = import inputs.nixpkgs-stable {
system = final.system;
config.allowUnfree = true;
};
};
}

View File

@@ -1,3 +0,0 @@
{pkgs, ...}: {
lilj-nvim-config = pkgs.callPackage ./nvim-conf {};
}

View File

@@ -1,22 +0,0 @@
{
stdenv,
lib,
}: let
nvim = ./nvim;
in
stdenv.mkDerivation {
pname = "lilj-nvim-config";
version = "1.0.0";
buildCommand = ''
mkdir -p $out
cp -r ${nvim}/* "$out/"
'';
meta = with lib; {
description = "lilJ's nvim config";
homepage = "https://kulvir.gg";
platforms = platforms.all;
license = licenses.gpl3;
};
}

View File

@@ -1,44 +0,0 @@
{
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"LuaSnip": { "branch": "master", "commit": "33b06d72d220aa56a7ce80a0dd6f06c70cd82b9d" },
"SchemaStore.nvim": { "branch": "main", "commit": "55d2ae33ce57de9fcd0cc3c8ee2f225ddbf2cd6a" },
"catpuccin": { "branch": "main", "commit": "faf15ab0201b564b6368ffa47b56feefc92ce3f4" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"conform.nvim": { "branch": "master", "commit": "f4e8837878fc5712d053ba3091a73d27d96a09e2" },
"fidget.nvim": { "branch": "main", "commit": "9238947645ce17d96f30842e61ba81147185b657" },
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
"gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
"indent-blankline.nvim": { "branch": "master", "commit": "259357fa4097e232730341fa60988087d189193a" },
"lazy.nvim": { "branch": "main", "commit": "7e6c863bc7563efbdd757a310d17ebc95166cef3" },
"lspkind.nvim": { "branch": "master", "commit": "d79a1c3299ad0ef94e255d045bed9fa26025dab6" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "2daa8921b7afdcfa47419a21ea343c3df6d74fa0" },
"mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "c5e07b8ff54187716334d585db34282e46fa2932" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"mini.nvim": { "branch": "main", "commit": "2faada1cffce5609d78ac5e81eaf3754e0476758" },
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
"nvim-cmp": { "branch": "main", "commit": "b555203ce4bd7ff6192e759af3362f9d217e8c89" },
"nvim-dap": { "branch": "master", "commit": "a6070b4e9e9a8ff1bc513c3748eff27080b0f44a" },
"nvim-dap-go": { "branch": "main", "commit": "6aa88167ea1224bcef578e8c7160fe8afbb44848" },
"nvim-dap-python": { "branch": "master", "commit": "34282820bb713b9a5fdb120ae8dd85c2b3f49b51" },
"nvim-dap-ui": { "branch": "master", "commit": "ffa89839f97bad360e78428d5c740fdad9a0ff02" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "76d80c3d171224315b61c006502a1e30c213a9ab" },
"nvim-lint": { "branch": "master", "commit": "1fea92f1d9908eaa5eb8bafe08b4293d7aadaa55" },
"nvim-lspconfig": { "branch": "master", "commit": "8b15a1a597a59f4f5306fad9adfe99454feab743" },
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
"nvim-tmux-navigation": { "branch": "main", "commit": "4898c98702954439233fdaf764c39636681e2861" },
"nvim-treesitter": { "branch": "master", "commit": "7e0fcf0d456fc5818da1af35b1a3f5c784fce457" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "ad8f0a472148c3e0ae9851e26a722ee4e29b1595" },
"nvim-web-devicons": { "branch": "master", "commit": "0eb18da56e2ba6ba24de7130a12bcc4e31ad11cb" },
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "dae2eac9d91464448b584c7949a31df8faefec56" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" },
"vim-dadbod": { "branch": "master", "commit": "f740950d0703099e0f172016f10e0e39f50fd0ba" },
"vim-dadbod-completion": { "branch": "master", "commit": "9e354e86fcc67a5ec2c104f312e374ea2f89c799" },
"vim-dadbod-ui": { "branch": "master", "commit": "0fec59e3e1e619e302198cd491b7d27f8d398b7c" }
}

View File

@@ -1,82 +0,0 @@
local luasnip = require "luasnip"
luasnip.config.setup {
history = false,
updateevents = "TextChanged,TextChangedI",
}
require("luasnip.loaders.from_vscode").lazy_load()
local lspkind = require "lspkind"
lspkind.init {}
local cmp = require "cmp"
cmp.setup {
window = {
documentation = {
border = "rounded",
},
completion = {
border = "rounded",
},
},
sources = {
{ name = "nvim_lsp" },
{ name = "path" },
{ name = "buffer" },
},
completion = {
completeopt = "menu, menuone, noinsert, noselect",
},
formatting = {
fields = { "kind", "abbr", "menu" },
expandable_indicator = true,
format = lspkind.cmp_format {
mode = "symbol",
},
},
-- No, but seriously. Please read `:help ins-completion`, it is really good!
mapping = cmp.mapping.preset.insert {
["<C-n>"] = cmp.mapping.select_next_item(),
["<C-p>"] = cmp.mapping.select_prev_item(),
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-y>"] = cmp.mapping.confirm { select = true },
["<C-Space>"] = cmp.mapping.complete {},
-- Think of <c-l> as moving to the right of your snippet expansion.
-- So if you have a snippet that's like:
-- function $name($args)
-- $body
-- end
--
-- <c-l> will move you to the right of each of the expansion locations.
-- <c-h> is similar, except moving you backwards.
["<C-l>"] = cmp.mapping(function()
if luasnip.expand_or_locally_jumpable() then
luasnip.expand_or_jump()
end
end, { "i", "s" }),
["<C-h>"] = cmp.mapping(function()
if luasnip.locally_jumpable(-1) then
luasnip.jump(-1)
end
end, { "i", "s" }),
},
snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
},
}
cmp.setup.filetype({ "sql" }, {
sources = {
{ name = "vim-dadbod-completion" },
{ name = "buffer" },
},
})

View File

@@ -1,52 +0,0 @@
--[[
--
-- This file is not required for your own configuration,
-- but helps people determine if their system is setup correctly.
--
--]]
local check_version = function()
local verstr = string.format("%s.%s.%s", vim.version().major, vim.version().minor, vim.version().patch)
if not vim.version.cmp then
vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr))
return
end
if vim.version.cmp(vim.version(), { 0, 9, 4 }) >= 0 then
vim.health.ok(string.format("Neovim version is: '%s'", verstr))
else
vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr))
end
end
local check_external_reqs = function()
-- Basic utils: `git`, `make`, `unzip`
for _, exe in ipairs({ "git", "make", "unzip", "rg" }) do
local is_executable = vim.fn.executable(exe) == 1
if is_executable then
vim.health.ok(string.format("Found executable: '%s'", exe))
else
vim.health.warn(string.format("Could not find executable: '%s'", exe))
end
end
return true
end
return {
check = function()
vim.health.start("kickstart.nvim")
vim.health.info([[NOTE: Not every warning is a 'must-fix' in `:checkhealth`
Fix only warnings for plugins and languages you intend to use.
Mason will give warnings for languages that are not installed.
You do not need to install, unless you want to use those languages!]])
local uv = vim.uv or vim.loop
vim.health.info("System Information: " .. vim.inspect(uv.os_uname()))
check_version()
check_external_reqs()
end,
}

View File

@@ -1,29 +0,0 @@
return {
"catppuccin/nvim",
name = "catpuccin",
priority = 1000,
lazy = false,
init = function()
require("catppuccin").setup {
transparent_background = true,
}
vim.cmd.colorscheme "catppuccin"
vim.cmd.hi "Comment gui=none"
vim.api.nvim_set_hl(0, "Normal", { bg = "none" })
vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" })
vim.api.nvim_set_hl(0, "NormalNC", { bg = "none" })
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {
border = "rounded",
})
vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, {
border = "rounded",
})
vim.diagnostic.config {
float = { border = "rounded" },
}
end,
}

View File

@@ -1,27 +0,0 @@
return {
"hrsh7th/nvim-cmp",
event = "InsertEnter",
dependencies = {
"onsails/lspkind.nvim",
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-path",
"hrsh7th/cmp-buffer",
{
"L3MON4D3/LuaSnip",
build = "make install_jsregexp",
dependencies = {
-- https://github.com/rafamadriz/friendly-snippets
{
"rafamadriz/friendly-snippets",
config = function()
require("luasnip.loaders.from_vscode").lazy_load()
end,
},
},
},
"saadparwaiz1/cmp_luasnip",
},
config = function()
require "lilJ.completions"
end,
}

View File

@@ -1,22 +0,0 @@
return {
"stevearc/conform.nvim",
opts = {
notify_on_error = false,
format_on_save = function(bufnr)
local disable_filetypes = {}
return {
timeout_ms = 500,
lsp_fallback = not disable_filetypes[vim.bo[bufnr].filetype],
}
end,
formatters_by_ft = {
c = { "clang-format" },
css = { "prettier" },
go = { "gofumpt", "goimports-reviser" },
html = { "prettier" },
lua = { "stylua" },
typescript = { "prettier" },
typescriptreact = { "prettier" },
},
},
}

View File

@@ -1,88 +0,0 @@
-- debug.lua
-- Shows how to use the DAP plugin to debug your code.
--
-- Primarily focused on configuring the debugger for Go, but can
-- be extended to other languages as well. That's why it's called
-- kickstart.nvim and not kitchen-sink.nvim ;)
return {
"mfussenegger/nvim-dap",
dependencies = {
"rcarriga/nvim-dap-ui",
"nvim-neotest/nvim-nio",
"theHamsta/nvim-dap-virtual-text",
"williamboman/mason.nvim",
"jay-babu/mason-nvim-dap.nvim",
-- GO DEBUG
"leoluz/nvim-dap-go",
},
config = function()
local dap = require "dap"
local ui = require "dapui"
require("dapui").setup()
require("dap-go").setup()
require("nvim-dap-virtual-text").setup {
-- This just tries to mitigate the chance that I leak tokens here. Probably won't stop it from happening...
-- But I am not a streamer, so I may not want this, or prolly change it in future, but rn its commented
--
-- display_callback = function(variable)
-- local name = string.lower(variable.name)
-- local value = string.lower(variable.value)
-- if name:match "secret" or name:match "api" or value:match "secret" or value:match "api" then
-- return "*****"
-- end
--
-- if #variable.value > 15 then
-- return " " .. string.sub(variable.value, 1, 15) .. "... "
-- end
--
-- return " " .. variable.value
-- end,
}
require("mason-nvim-dap").setup {
automatic_setup = true,
automatic_installation = true,
handlers = {},
ensure_installed = {
"debugpy",
"delve",
},
}
-- the very common keybind `<leader>db` overlaps with some other keybind
vim.keymap.set("n", "<leader>dt", dap.toggle_breakpoint, { desc = "Debug: Toggle Breakpoint" })
vim.keymap.set("n", "<Space>?", function()
require("dapui").eval(nil, { enter = true })
end)
-- Basic debugging keymaps, feel free to change to your liking!
vim.keymap.set("n", "<F5>", dap.continue, { desc = "Start/Continue" })
vim.keymap.set("n", "<F4>", dap.step_into, { desc = "Step Into" })
vim.keymap.set("n", "<F3>", dap.step_over, { desc = "Step Over" })
vim.keymap.set("n", "<F2>", dap.step_out, { desc = "Step Out" })
vim.keymap.set("n", "<F1>", dap.step_back, { desc = "Step Back" })
vim.keymap.set("n", "<F10>", dap.restart, { desc = "Restart" })
dap.listeners.before.attach.dapui_config = function()
ui.open()
end
dap.listeners.before.launch.dapui_config = function()
ui.open()
end
dap.listeners.before.event_terminated.dapui_config = function()
ui.close()
end
dap.listeners.before.event_exited.dapui_config = function()
ui.close()
end
require("dap-go").setup()
end,
}

View File

@@ -1,10 +0,0 @@
return {
{
"lukas-reineke/indent-blankline.nvim",
main = "ibl",
opts = {
indent = { char = "" },
whitespace = { highlight = { "Whitespace", "NonText" } },
},
},
}

View File

@@ -1,45 +0,0 @@
return {
{
"mfussenegger/nvim-lint",
event = { "BufReadPre", "BufNewFile" },
config = function()
local lint = require "lint"
lint.linters_by_ft = {
-- python = { "ruff", "mypy" },
dockerfile = { "hadolint" },
-- json = { "jsonlint" },
-- markdown = { "vale" },
}
-- To allow other plugins to add linters to require('lint').linters_by_ft,
-- instead set linters_by_ft like this:
-- lint.linters_by_ft = lint.linters_by_ft or {}
-- lint.linters_by_ft['markdown'] = { 'markdownlint' }
--
-- However, note that this will enable a set of default linters,
-- which will cause errors unless these tools are available:
-- {
-- dockerfile = { "hadolint" },
-- json = { "jsonlint" },
-- markdown = { "vale" },
-- text = { "vale" }
-- }
--
-- You can disable the default linters by setting their filetypes to nil:
-- lint.linters_by_ft['dockerfile'] = nil
-- lint.linters_by_ft['json'] = nil
-- lint.linters_by_ft['text'] = nil
-- Create autocommand which carries out the actual linting
-- on the specified events.
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
group = lint_augroup,
callback = function()
require("lint").try_lint()
end,
})
end,
},
}

View File

@@ -1,161 +0,0 @@
return {
"neovim/nvim-lspconfig",
dependencies = {
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
"WhoIsSethDaniel/mason-tool-installer.nvim",
{ "j-hui/fidget.nvim", opts = {} },
{ "folke/neodev.nvim", opts = {} },
"b0o/SchemaStore.nvim",
},
config = function()
local capabilities = nil
if pcall(require, "cmp_nvim_lsp") then
capabilities = require("cmp_nvim_lsp").default_capabilities()
end
-- Enable the following language servers
local servers = {
clangd = {},
gopls = {
filetypes = { "go", "gomod", "gowork", "gotmpl" },
},
html = {
filetypes = { "html", "tmpl" },
},
jsonls = {
settings = {
json = {
schemas = require("schemastore").json.schemas(),
validate = { enable = true },
},
},
},
lua_ls = {
-- cmd = {...},
-- filetypes = { ...},
-- capabilities = {},
settings = {
Lua = {
completion = {
callSnippet = "Replace",
},
-- You can toggle below to ignore Lua_LS's noisy `missing-fields` warnings
-- diagnostics = { disable = { 'missing-fields' } },
},
},
},
pyright = {},
ts_ls = {},
tailwindcss = {
filetypes = { "html", "css", "typescript", "typescriptreact" },
},
}
require("mason").setup()
local ensure_installed = vim.tbl_keys(servers or {})
vim.list_extend(ensure_installed, {
"clang-format",
"gofumpt",
"goimports-reviser",
"hadolint",
-- "jsonlint",
-- "mypy",
"prettier",
-- "ruff",
"stylua",
-- "vale",
})
require("mason-tool-installer").setup { ensure_installed = ensure_installed }
require("mason-lspconfig").setup {
handlers = {
function(server_name)
local server = servers[server_name] or {}
server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {})
require("lspconfig")[server_name].setup(server)
end,
},
ensure_installed = {},
automatic_installation = true,
}
local signs = { Error = "", Warn = "", Hint = "󰠠 ", Info = "" }
for type, icon in pairs(signs) do
local hl = "DiagnosticSign" .. type
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
end
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }),
callback = function(event)
local map = function(keys, func, desc)
vim.keymap.set("n", keys, func, { buffer = event.buf, desc = "LSP: " .. desc })
end
-- Jump to the definition of the word under your cursor.
-- This is where a variable was first declared, or where a function is defined, etc.
-- To jump back, press <C-t>.
map("gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition")
-- Find references for the word under your cursor.
map("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
-- Jump to the implementation of the word under your cursor.
-- Useful when your language has ways of declaring types without an actual implementation.
map("gI", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
-- Jump to the type of the word under your cursor.
-- Useful when you're not sure what type a variable is and you want to see
-- the definition of its *type*, not where it was *defined*.
map("<leader>D", require("telescope.builtin").lsp_type_definitions, "Type [D]efinition")
-- Fuzzy find all the symbols in your current document.
-- Symbols are things like variables, functions, types, etc.
map("<leader>ds", require("telescope.builtin").lsp_document_symbols, "[D]ocument [S]ymbols")
-- Fuzzy find all the symbols in your current workspace.
-- Similar to document symbols, except searches over your entire project.
map("<leader>ws", require("telescope.builtin").lsp_dynamic_workspace_symbols, "[W]orkspace [S]ymbols")
-- Rename the variable under your cursor.
-- Most Language Servers support renaming across files, etc.
map("<leader>rn", vim.lsp.buf.rename, "[R]e[n]ame")
-- Execute a code action, usually your cursor needs to be on top of an error
-- or a suggestion from your LSP for this to activate.
map("<leader>ca", vim.lsp.buf.code_action, "[C]ode [A]ction")
-- Opens a popup that displays documentation about the word under your cursor
-- See `:help K` for why this keymap.
map("K", vim.lsp.buf.hover, "Hover Documentation")
-- WARN: This is not Goto Definition, this is Goto Declaration.
-- For example, in C this would take you to the header.
map("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
-- The following two autocommands are used to highlight references of the
-- word under your cursor when your cursor rests there for a little while.
local client = vim.lsp.get_client_by_id(event.data.client_id)
if client and client.server_capabilities.documentHighlightProvider then
vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
buffer = event.buf,
callback = vim.lsp.buf.document_highlight,
})
vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, {
buffer = event.buf,
callback = vim.lsp.buf.clear_references,
})
end
end,
})
end,
}

View File

@@ -1 +1,27 @@
# lilJ Nix configs
<h2 align="center">
<b style="font-size:24px;line-height:24px;vertical-align:middle;">
<i>lilJs dotfiles</i>
</b>
</h2>
![](./assets/)
### 🚀 Installation
1. Clone this repository.
```sh
git clone https://github.com/kulvirdotgg/dotFiles.git
```
2. Run `install.sh` script.
```sh
cd dotFiles
./install.sh
```
3. Install `tmux tpm` from their [repo](https://github.com/tmux-plugins/tpm)
```sh
git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm
```