35 Commits

Author SHA1 Message Date
Kulvir Singh
4fa4219b02 python linter lsp setup:
:
2025-08-27 03:11:42 +05:30
Kulvir Singh
78da7dc18c better floating windows 2025-08-09 03:11:30 +05:30
Kulvir Singh
6d17587e2e chores 2025-06-21 18:55:47 +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
85 changed files with 2089 additions and 1617 deletions

28
.bash_profile Normal file
View File

@@ -0,0 +1,28 @@
# homebrew
eval "$(/opt/homebrew/bin/brew shellenv)"
# ----------------------
# Aliases
# ----------------------
alias ga='git add'
alias gaa='git add -A'
alias gcm='git commit -m'
alias gpsh='git push'
alias gs='git status'
alias ls='lsd'
alias nv='nvim'
alias neofetch="fastfetch"
alias python='python3'
# ---- Air for GO ----
alias air="~/go/bin/air"
# ---- starship ----
eval "$(starship init bash)"
# ---- zoxide ----
eval "$(zoxide init --cmd cd bash)"
# ---- fzf ----
eval "$(fzf --bash)"

245
.clang-format Normal file
View File

@@ -0,0 +1,245 @@
---
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignArrayOfStructures: None
AlignConsecutiveAssignments:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: true
AlignConsecutiveBitFields:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveDeclarations:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveMacros:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveShortCaseStatements:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCaseColons: false
AlignEscapedNewlines: Right
AlignOperands: Align
AlignTrailingComments:
Kind: Always
OverEmptyLines: 0
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowBreakBeforeNoexceptSpecifier: Never
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortCompoundRequirementOnASingleLine: true
AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: MultiLine
AttributeMacros:
- __capability
BinPackArguments: true
BinPackParameters: true
BitFieldColonSpacing: Both
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: Never
AfterEnum: false
AfterExternBlock: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
BeforeCatch: false
BeforeElse: false
BeforeLambdaBody: false
BeforeWhile: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakAdjacentStringLiterals: true
BreakAfterAttributes: Leave
BreakAfterJavaFieldAnnotations: false
BreakArrays: true
BreakBeforeBinaryOperators: None
BreakBeforeConceptDeclarations: Always
BreakBeforeBraces: Attach
BreakBeforeInlineASMColon: OnlyMultiline
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakInheritanceList: BeforeColon
BreakStringLiterals: true
ColumnLimit: 80
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: LogicalBlock
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IfMacros:
- KJ_IF_MAYBE
IncludeBlocks: Preserve
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
SortPriority: 0
CaseSensitive: false
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
Priority: 3
SortPriority: 0
CaseSensitive: false
- Regex: '.*'
Priority: 1
SortPriority: 0
CaseSensitive: false
IncludeIsMainRegex: '(Test)?$'
IncludeIsMainSourceRegex: ''
IndentAccessModifiers: false
IndentCaseBlocks: false
IndentCaseLabels: false
IndentExternBlock: AfterExternBlock
IndentGotoLabels: true
IndentPPDirectives: None
IndentRequiresClause: true
IndentWidth: 4
IndentWrappedFunctionNames: false
InsertBraces: false
InsertNewlineAtEOF: false
InsertTrailingCommas: None
IntegerLiteralSeparator:
Binary: 0
BinaryMinDigits: 0
Decimal: 0
DecimalMinDigits: 0
Hex: 0
HexMinDigits: 0
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
KeepEmptyLinesAtEOF: false
LambdaBodyIndentation: Signature
LineEnding: DeriveLF
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 4
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PackConstructorInitializers: BinPack
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakOpenParenthesis: 0
PenaltyBreakScopeResolution: 500
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyIndentedWhitespace: 0
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right
PPIndentWidth: -1
QualifierAlignment: Leave
ReferenceAlignment: Pointer
ReflowComments: true
RemoveBracesLLVM: false
RemoveParentheses: Leave
RemoveSemicolon: false
RequiresClausePosition: OwnLine
RequiresExpressionIndentation: OuterScope
SeparateDefinitionBlocks: Leave
ShortNamespaceLines: 1
SkipMacroDefinitionBody: false
SortIncludes: CaseSensitive
SortJavaStaticImport: Before
SortUsingDeclarations: LexicographicNumeric
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceAroundPointerQualifiers: Default
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeJsonColon: false
SpaceBeforeParens: ControlStatements
SpaceBeforeParensOptions:
AfterControlStatements: true
AfterForeachMacros: true
AfterFunctionDefinitionName: false
AfterFunctionDeclarationName: false
AfterIfMacros: true
AfterOverloadedOperator: false
AfterPlacementOperator: true
AfterRequiresInClause: false
AfterRequiresInExpression: false
BeforeNonEmptyParentheses: false
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: Never
SpacesInContainerLiterals: true
SpacesInLineCommentPrefix:
Minimum: 1
Maximum: -1
SpacesInParens: Never
SpacesInParensOptions:
InCStyleCasts: false
InConditionalStatements: false
InEmptyParentheses: false
Other: false
SpacesInSquareBrackets: false
Standard: Latest
StatementAttributeLikeMacros:
- Q_EMIT
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
TabWidth: 8
UseTab: Never
VerilogBreakBetweenInstancePorts: true
WhitespaceSensitiveMacros:
- BOOST_PP_STRINGIZE
- CF_SWIFT_NAME
- NS_SWIFT_NAME
- PP_STRINGIZE
- STRINGIZE
...

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.4
#* 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 " ".
#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", 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 = False
#* 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"
]
}

42
.config/ghostty/config Normal file
View File

@@ -0,0 +1,42 @@
theme = "catppuccin-mocha"
cursor-text = 181825
font-size = 14
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
# Don't use if using fullscreen
window-width = 168
window-height = 47
# macos stuff
quit-after-last-window-closed = true
macos-option-as-alt = true
# fullscreen = true
# macos-non-native-fullscreen = true # fullscreen, hide menubar and dock toooo
# keybind = cmd+backspace=text:\x15

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

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

@@ -0,0 +1,48 @@
include themes/Catppuccin_Mocha.conf
font_family JetBrainsMono Nerd Font
font_size 14.0
cursor_shape beam
background_opacity 0.9
background_blur 12
enable_audio_bell no
hide_window_decorations yes
# 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
macos_quit_when_last_window_closed yes
macos_titlebar_color background
macos_show_window_title_in none
shell_integration enabled
map kitty_mod+enter no_op
map cmd+enter no_op
# 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
# macOS nightmares - 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

@@ -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": "8e74c08998fd786239caba373344f4e4601e21fe" },
"blink.cmp": { "branch": "main", "commit": "bae4bae0eedd1fa55f34b685862e94a222d5c6f8" },
"catpuccin": { "branch": "main", "commit": "30fa4d122d9b22ad8b2e0ab1b533c8c26c4dde86" },
"conform.nvim": { "branch": "master", "commit": "a0ab60ed666c56b37fd7ed1847d2ac52f2482ce0" },
"fidget.nvim": { "branch": "main", "commit": "4d5858bd4c471c895060e1b9f3575f1551184dc5" },
"gitsigns.nvim": { "branch": "main", "commit": "6e3c66548035e50db7bd8e360a29aec6620c3641" },
"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": "1ec4da522fa49dcecee8d190efda273464dd2192" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" },
"mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" },
"mdx.nvim": { "branch": "main", "commit": "464a74be368dce212cff02f6305845dc7f209ab3" },
"mini.nvim": { "branch": "main", "commit": "dee23b41ba27bd583f1d19e199738f3bd0236648" },
"nvim-lint": { "branch": "master", "commit": "ee04d481d4e6089892c2fb2ad8924b1a053591e1" },
"nvim-lspconfig": { "branch": "master", "commit": "3d97ec4174bcc750d70718ddedabf150536a5891" },
"nvim-tmux-navigation": { "branch": "main", "commit": "4898c98702954439233fdaf764c39636681e2861" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "71385f191ec06ffc60e80e6b0c9a9d5daed4824c" },
"nvim-web-devicons": { "branch": "master", "commit": "4ae47f4fb18e85b80e84b729974fe65483b06aaf" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"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,45 @@
return {
"saghen/blink.cmp",
event = "InsertEnter",
version = "1.*",
dependencies = {
"folke/lazydev.nvim",
},
---@module 'blink.cmp'
---@type blink.cmp.Config
opts = {
keymap = { preset = "default" },
appearance = {
nerd_font_variant = "mono",
},
completion = {
documentation = { auto_show = true, auto_show_delay_ms = 500 },
menu = {
draw = {
columns = {
{ "kind_icon", "label", "label_description", gap = 1 },
{ "kind" },
},
treesitter = { "lsp" },
},
},
},
sources = {
default = { "lsp", "path", "lazydev", "snippets", "buffer" },
providers = {
lazydev = { module = "lazydev.integrations.blink", score_offset = 100 },
},
},
fuzzy = { implementation = "prefer_rust_with_warning" },
signature = { enabled = true },
},
opts_extend = { "sources.default" },
}

View File

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

View File

@@ -0,0 +1,37 @@
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 = {
"ruff_fix",
"ruff_format",
"ruff_organize_imports",
},
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,22 @@
return {
"mfussenegger/nvim-lint",
event = { "BufReadPre", "BufNewFile" },
config = function()
local lint = require "lint"
lint.linters_by_ft = {
json = { "jsonlint" },
python = { "ruff" },
-- typescript = { "eslint" },
-- typescriptreact = { "eslint" },
}
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,193 @@
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()
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
map("K", function()
vim.lsp.buf.hover {}
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 (C) has ways of declaring types without an actual implementation.
map("gI", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
map("grn", vim.lsp.buf.rename, "[R]e[n]ame")
map("gra", vim.lsp.buf.code_action, "[G]oto Code [A]ction", { "n", "x" })
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")
map("grt", require("telescope.builtin").lsp_type_definitions, "[G]oto [T]ype Definition")
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
end,
})
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("lsp_attach_disable_ruff_hover", { clear = true }),
callback = function(args)
local client = vim.lsp.get_client_by_id(args.data.client_id)
if client == nil then
return
end
if client.name == "ruff" then
-- Disable hover in favor of Pyright
client.server_capabilities.hoverProvider = false
end
end,
desc = "LSP: Disable hover capability from Ruff",
})
vim.diagnostic.config {
severity_sort = true,
float = { 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,
},
}
-- 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()
local servers = {
gopls = {
filetypes = { "go", "gomod", "gowork", "gotmpl" },
},
jsonls = {
settings = {
json = {
schemas = require("schemastore").json.schemas(),
validate = { enable = true },
},
},
},
lua_ls = {
settings = {
lua = {
completion = {
callsnippet = "replace",
},
},
},
},
pyright = {
settings = {
pyright = {
disableOrganizeImports = true,
},
python = {
analysis = {
ignore = { "*" },
},
},
},
},
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",
"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

@@ -1,21 +1,8 @@
-- Telescope is a fuzzy finder that comes with a lot of different things that
-- it can fuzzy find! It's more than just a "file finder", it can search
-- many different aspects of Neovim, your workspace, LSP, and more!
--
-- Two important keymaps to use while in Telescope are:
-- - Insert mode: <c-/>
-- - Normal mode: ?
--
-- This opens a window that shows you all of the keymaps for the current
-- Telescope picker. This is really useful to discover what Telescope can
-- do as well as how to actually do it!
require("telescope").setup {
defaults = {
file_ignore_patterns = { ".git/", "node%_modules/.*" },
prompt_prefix = "🔭 ",
selection_caret = "",
-- initial_mode = "normal",
},
extensions = {
@@ -27,7 +14,6 @@ require("telescope").setup {
},
}
-- Enable Telescope extensions if they are installed
pcall(require("telescope").load_extension, "fzf")
pcall(require("telescope").load_extension, "ui-select")
@@ -38,7 +24,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" })
@@ -47,10 +32,9 @@ vim.keymap.set("n", "<leader>sr", builtin.resume, { desc = "[S]earch [R]esume" }
vim.keymap.set("n", "<leader>s.", builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' })
vim.keymap.set("n", "<leader><leader>", builtin.buffers, { desc = "[ ] Find existing buffers" })
-- 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"

View File

@@ -0,0 +1,20 @@
#!/usr/bin/env bash
COLOR="$BLUE"
sketchybar --add item battery right \
--set battery \
update_freq=60 \
icon.color="$COLOR" \
icon.padding_left=10 \
label.padding_right=10 \
label.color="$COLOR" \
background.height=21 \
background.corner_radius="$CORNER_RADIUS" \
background.padding_right=5 \
background.border_width="$BORDER_WIDTH" \
background.border_color="$COLOR" \
background.color="$BAR_COLOR" \
background.drawing=on \
script="$PLUGIN_DIR/power.sh" \
--subscribe battery power_source_change

View File

@@ -0,0 +1,18 @@
#!/usr/bin/env bash
COLOR="$BLUE"
sketchybar --add item calendar center\
--set calendar update_freq=15 \
icon.color="$COLOR" \
icon.padding_left=10 \
label.color="$COLOR" \
label.padding_right=10 \
background.height=21 \
background.corner_radius="$CORNER_RADIUS" \
background.padding_right=5 \
background.border_width="$BORDER_WIDTH" \
background.border_color="$COLOR" \
background.color="$BAR_COLOR" \
background.drawing=on \
script="$PLUGIN_DIR/calendar.sh"

View File

@@ -0,0 +1,21 @@
#!/usr/bin/env bash
COLOR="$BLUE"
sketchybar --add item clock right \
--set clock update_freq=1 \
icon.padding_left=10 \
icon.color="$COLOR" \
icon="" \
label.color="$COLOR" \
label.width=54 \
label.padding_right=5 \
align=center \
background.height=21 \
background.corner_radius="$CORNER_RADIUS" \
background.padding_right=2 \
background.border_width="$BORDER_WIDTH" \
background.border_color="$COLOR" \
background.color="$BAR_COLOR" \
background.drawing=on \
script="$PLUGIN_DIR/clock.sh"

View File

@@ -0,0 +1,20 @@
#!/usr/bin/env bash
COLOR="$WHITE"
sketchybar \
--add item front_app left \
--set front_app script="$PLUGIN_DIR/front_app.sh" \
icon.drawing=off \
background.height=21 \
background.padding_left=0 \
background.padding_right=10 \
background.border_width="$BORDER_WIDTH" \
background.border_color="$COLOR" \
background.corner_radius="$CORNER_RADIUS" \
background.color="$BAR_COLOR" \
label.color="$COLOR" \
label.padding_left=10 \
label.padding_right=10 \
associated_display=active \
--subscribe front_app front_app_switched

View File

@@ -0,0 +1,43 @@
#!/usr/bin/env bash
source "$HOME/.config/sketchybar/variables.sh"
sketchybar --add item spacer.1 left \
--set spacer.1 background.drawing=off \
label.drawing=off \
icon.drawing=off \
width=10
for i in "${!SPACE_ICONS[@]}"; do
sid=$((i + 1))
sketchybar --add space space.$sid left \
--set space.$sid associated_space=$sid \
label.drawing=off \
icon.padding_left=10 \
icon.padding_right=10 \
background.padding_left=-5 \
background.padding_right=-5 \
script="$PLUGIN_DIR/space.sh"
done
sketchybar --add item spacer.2 left \
--set spacer.2 background.drawing=off \
label.drawing=off \
icon.drawing=off \
width=5
sketchybar --add bracket spaces '/space.*/' \
--set spaces background.border_width="$BORDER_WIDTH" \
background.border_color="$BLUE" \
background.corner_radius="$CORNER_RADIUS" \
background.color="$BAR_COLOR" \
background.height=21 \
background.drawing=on
sketchybar --add item separator left \
icon.font="$FONT:Regular:16.0" \
background.padding_left=26 \
background.padding_right=15 \
label.drawing=off \
associated_display=active \
icon.color="$YELLOW"

View File

@@ -0,0 +1,3 @@
#!/usr/bin/env bash
sketchybar --set "$NAME" icon="󰸗" label="$(date '+%a, %d %b')"

View File

@@ -0,0 +1,4 @@
#!/usr/bin/env bash
LABEL=$(date '+%H:%M')
sketchybar --set "$NAME" label="$LABEL"

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
case "$SENDER" in
"front_app_switched")
sketchybar --set "$NAME" label="$INFO"
;;
esac

View File

@@ -0,0 +1,30 @@
#!/usr/bin/env bash
PERCENTAGE=$(pmset -g batt | grep -Eo "\d+%" | cut -d% -f1)
CHARGING=$(pmset -g batt | grep 'AC Power')
if [ "$PERCENTAGE" = "" ]; then
exit 0
fi
case ${PERCENTAGE} in
9[0-9] | 100)
ICON=""
;;
[6-8][0-9])
ICON=""
;;
[3-5][0-9])
ICON=""
;;
[1-2][0-9])
ICON=""
;;
*) ICON="" ;;
esac
if [ "$CHARGING" != "" ]; then
ICON=""
fi
sketchybar --set "$NAME" icon="$ICON" label="${PERCENTAGE}% "

View File

@@ -0,0 +1,17 @@
#!/usr/bin/env bash
source "$HOME/.config/sketchybar/variables.sh" # Loads all defined colors
SPACE_CLICK_SCRIPT="yabai -m space --focus $SID 2>/dev/null"
if [ "$SELECTED" = "true" ]; then
sketchybar --animate tanh 5 --set "$NAME" \
icon.color="$BLUE" \
icon="${SPACE_ICONS[$SID - 1]}" \
click_script="$SPACE_CLICK_SCRIPT"
else
sketchybar --animate tanh 5 --set "$NAME" \
icon.color="$COMMENT" \
icon="${SPACE_ICONS[$SID - 1]}" \
click_script="$SPACE_CLICK_SCRIPT"
fi

40
.config/sketchybar/sketchybarrc Executable file
View File

@@ -0,0 +1,40 @@
#!/usr/bin/env bash
source "$HOME/.config/sketchybar/variables.sh"
sketchybar --bar height=27 \
color="$TRANSPARENT" \
shadow="$SHADOW" \
position=top \
y_offset=0 \
padding_right=11 \
padding_left=10 \
blur_radius=0 \
--default updates=when_shown \
icon.font="$FONT:Bold:13.5" \
icon.color="$ICON_COLOR" \
icon.padding_left="$PADDINGS" \
icon.padding_right="$PADDINGS" \
label.font="$FONT:Bold:13.0" \
label.color="$LABEL_COLOR" \
label.padding_left="$PADDINGS" \
label.padding_right="$PADDINGS" \
background.padding_right="$PADDINGS" \
background.padding_left="$PADDINGS" \
# corner_radius="$CORNER_RADIUS" \
# sticky=on \
# margin=5 \
source "$ITEM_DIR/spaces.sh"
source "$ITEM_DIR/front_app.sh"
source "$ITEM_DIR/calendar.sh"
source "$ITEM_DIR/clock.sh"
source "$ITEM_DIR/battery.sh"
sketchybar --hotload true
sketchybar --update
echo "sketchybar configuration loaded.."

View File

@@ -0,0 +1,53 @@
#!/usr/bin/env sh
# Color Palette
# Tokyonight Night
# BLACK=0xff24283b
# WHITE=0xffa9b1d6
# MAGENTA=0xffbb9af7
# BLUE=0xff7aa2f7
# CYAN=0xff7dcfff
# GREEN=0xff9ece6a
# YELLOW=0xffe0af68
# ORANGE=0xffff9e64
# RED=0xfff7768e
# BAR_COLOR=0xff1a1b26
# COMMENT=0xff565f89
# Oxocarbon Theme
BLACK=0xff161616
WHITE=0xfff2f4f8
MAGENTA=0xffbe95ff
BLUE=0xff82cfff
CYAN=0xff3ddbd9
GREEN=0xff42be65
YELLOW=0xffffe97b
ORANGE=0xffff7eb6
RED=0xff3ddbd9
BAR_COLOR=0xff161616
COMMENT=0xff525252
# TRANSPARENT=0x110000cc
TRANSPARENT=0x00ffffff
ICON_COLOR=$WHITE
LABEL_COLOR=$WHITE
ITEM_DIR="$HOME/.config/sketchybar/items"
PLUGIN_DIR="$HOME/.config/sketchybar/plugins"
FONT="MesloLGS Nerd Font Mono"
PADDINGS=3
POPUP_BORDER_WIDTH=2
POPUP_CORNER_RADIUS=11
POPUP_BACKGROUND_COLOR=$BLACK
POPUP_BORDER_COLOR=$COMMENT
CORNER_RADIUS=15
BORDER_WIDTH=1
SHADOW=on
SPACE_ICONS=("一" "二" "三" "四" "五" "六" "七" "八" "九" "十")

75
.config/skhd/skhdrc Executable file
View File

@@ -0,0 +1,75 @@
# OPEN IT, This too conflicts with some macos keybinds, fuck me
# cmd - return : /Applications/kitty.app/Contents/MacOS/kitty --single-instance -d ~
# cmd - return : /Applications/WezTerm.app/Contents/MacOS/wezterm start --cwd ~
# focus window
alt - h : yabai -m window --focus west
alt - j : yabai -m window --focus south
alt - k : yabai -m window --focus north
alt - l : yabai -m window --focus east
# swap managed window
shift + alt - h : yabai -m window --swap west
shift + alt - j : yabai -m window --swap south
shift + alt - k : yabai -m window --swap north
shift + alt - l : yabai -m window --swap east
# move managed window
# shift + cmd - h : yabai -m window --warp east
# balance size of windows
shift + alt - 0 : yabai -m space --balance
# make floating window fill screen
# shift + alt - up : yabai -m window --grid 1:1:0:0:1:1
# make floating window fill left-half of screen
# shift + alt - left : yabai -m window --grid 1:2:0:0:1:1
# create desktop, move window and follow focus - uses jq for parsing json (brew install jq)
# shift + cmd - n : yabai -m space --create && \
# index="$(yabai -m query --spaces --display | jq 'map(select(."is-native-fullscreen" == false))[-1].index')" && \
# yabai -m window --space "${index}" && \
# yabai -m space --focus "${index}"
# fast focus desktop
# cmd + alt - x : yabai -m space --focus recent
cmd + alt - 1 : yabai -m space --focus 1
cmd + alt - 2 : yabai -m space --focus 2
cmd + alt - 3 : yabai -m space --focus 3
# shift + cmd overlaps with mac shortcut for screenshots... find a alternate for this
# send window to desktop and follow focus
# shift + cmd - z : yabai -m window --space next; yabai -m space --focus next
# shift + cmd - 1 : yabai -m window --space 1; yabai -m space --focus 1
# shift + cmd - 2 : yabai -m window --space 2; yabai -m space --focus 2
# shift + cmd - 3 : yabai -m window --space 3; yabai -m space --focus 3
# move floating window
# shift + ctrl - a : yabai -m window --move rel:-20:0
# shift + ctrl - s : yabai -m window --move rel:0:20
# increase window size
# shift + alt - a : yabai -m window --resize left:-20:0
# cmd + alt - a : yabai -m window --resize left:-20:0
# shift + alt - w : yabai -m window --resize top:0:-20
# decrease window size
# shift + cmd - s : yabai -m window --resize bottom:0:-20
# shift + cmd - w : yabai -m window --resize top:0:20
# set insertion point in focused container
# ctrl + alt - h : yabai -m window --insert west
# toggle window zoom
# alt - d : yabai -m window --toggle zoom-parent
# alt - f : yabai -m window --toggle zoom-fullscreen
# toggle window split type
alt - e : yabai -m window --toggle split
# float / unfloat window and center on screen
alt - t : yabai -m window --toggle float --grid 4:4:1:1:2:2
# toggle sticky(+float), picture-in-picture
# alt - p : yabai -m window --toggle sticky --toggle pip

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'

49
.config/yabai/yabairc Executable file
View File

@@ -0,0 +1,49 @@
#!/usr/bin/env sh
yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"
sudo yabai --load-sa
# global settings
yabai -m config \
external_bar all:27:0 \
menubar_opacity 1.0 \
mouse_follows_focus off \
focus_follows_mouse off \
display_arrangement_order default \
window_origin_display default \
window_placement second_child \
window_zoom_persist on \
window_shadow on \
window_animation_duration 0.0 \
window_animation_easing ease_out_circ \
window_opacity off \
insert_feedback_color 0xffd75f5f \
split_ratio 0.50 \
split_type auto \
auto_balance off \
top_padding 08 \
bottom_padding 08 \
left_padding 08 \
right_padding 08 \
window_gap 08 \
layout bsp \
mouse_modifier alt \
mouse_action1 move \
mouse_action2 resize \
mouse_drop_action swap
yabai -m rule --add app="^System Settings$" manage=off
yabai -m rule --add app="^Calculator$" manage=off
yabai -m rule --add app="^Finder$" manage=off
yabai -m rule --add app="^Preview$" manage=off
yabai -m rule --add app="^Spotify$" manage=off
yabai -m rule --add app="^Safari$" manage=off
yabai -m rule --add app="^App Store$" manage=off
yabai -m rule --add app="^Activity Monitor$" manage=off
yabai -m rule --add label="Software Update" title="Software Update" manage=off
yabai -m rule --add app="System Information" manage=off
borders active_color=0xff82cfff inactive_color=0xff494d64 width=4.0 &
echo "yabai configuration loaded.."

9
.gitignore vendored Normal file
View File

@@ -0,0 +1,9 @@
*.DS_Store**
# tmux plugin files etc
*.config/tmux/**
**!tmux/tmux.conf
# btop files
*btop/**
!btop/btop.conf

38
.stow-local-ignore Normal file
View File

@@ -0,0 +1,38 @@
# 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
# NOTE:
# do not symlink configs for packages currently not in use
# comment stuff from here if using in future maybe
.clang-format
.bash_profile
^/alacritty*
^/skhd*
^/sketchybar*
^/yabai*

30
.zshrc Normal file
View File

@@ -0,0 +1,30 @@
# ---- homebrew ----
eval "$(/opt/homebrew/bin/brew shellenv)"
# ---- 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)
# ---- syntax highlighting ----
source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
export EDITOR="nvim"
export MANPAGER="nvim +Man!"
# bun completions
[ -s "/Users/lilj/.bun/_bun" ] && source "/Users/lilj/.bun/_bun"

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];
}

72
install.sh Executable file
View File

@@ -0,0 +1,72 @@
#!/bin/zsh
# ---- Terminal ----
echo "Installing your Teminal and other thingies..."
brew install git
brew install ghostty
brew install starship
brew install neovim
brew install font-jetbrains-mono-nerd-font
brew install tmux
brew install fzf
brew install lsd
brew install ripgrep
brew install zoxide
brew install lazygit
brew install fastfetch
brew install btop
brew install zsh-syntax-highlighting
brew install stow
echo "Creating symlinks using GNU STOW"
stow .
echo "Sourcing zsh config It should work now atleast"
source ~/.zshrc
echo "Installing languages & runtime envs etc..."
brew install oven-sh/bun/bun
brew install go
brew install node
brew install pnpm
# ---- Applications ----
echo "Installing the Applications..."
brew install --cask discord
brew install --cask docker
brew install --cask ghostty
brew install --cask httpie
brew install --cask keka
brew install --cask obsidian
brew install --cask raycast
brew install --cask spotify
brew install --cask zen-browser
yabai() {
brew install koekeishiya/formulae/yabai
brew install koekeishiya/formulae/skhd
brew install FelixKratz/formulae/borders
brew install FelixKratz/formulae/sketchybar
yabai --start-service
skhd --start-service
brew services start borders
brew services start sketchybar
}
install_yabai=false
for arg in "$@"; do
if [ "$arg" = "--yabai" ]; then
install_yabai=true
break
fi
done
if $install_yabai; then
echo "Installing yabaiiiiiiiii...."
yabai
fi
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
```