3 Commits
btw ... main

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
39 changed files with 835 additions and 799 deletions

View File

@@ -1,9 +1,19 @@
# 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"

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

@@ -1,4 +1,4 @@
#? Config file for btop v. 1.4.1
#? 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"
@@ -144,7 +144,7 @@ background_update = True
custom_cpu_name = ""
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
#* 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.
@@ -196,7 +196,7 @@ net_download = 100
net_upload = 100
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
net_auto = True
net_auto = False
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
net_sync = True

View File

@@ -1,7 +1,7 @@
theme = "catppuccin-mocha"
cursor-text = 181825
font-size = 12
font-size = 14
font-family = "JetbrainsMono Nerd Font"
font-thicken = true
@@ -28,3 +28,15 @@ 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

View File

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

View File

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

View File

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

View File

@@ -1,7 +1,8 @@
include themes/Catppuccin_Mocha.conf
font_family JetBrainsMono Nerd Font
font_size 12.0
font_size 14.0
cursor_shape beam
@@ -11,28 +12,37 @@ 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
# # tab bar at bottom
# tab_bar_style powerline
# tab_bar_min_tabs 2
# tab_title_template "{index}:{tab.active_exe}"
# active_tab_title_template "{index}:{tab.active_exe}*"
# tab_bar_background none
# Jump to tabs
map cmd+1 goto_tab 1
map cmd+2 goto_tab 2
map cmd+3 goto_tab 3
map cmd+4 goto_tab 4
map cmd+5 goto_tab 5
map cmd+6 goto_tab 6
map cmd+7 goto_tab 7
map cmd+8 goto_tab 8
map cmd+9 goto_tab 9
# # 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
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

@@ -1,26 +1,26 @@
{
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"SchemaStore.nvim": { "branch": "main", "commit": "b20f287e59a5376ca0de23140c6d94563d64695d" },
"blink.cmp": { "branch": "main", "commit": "022521a8910a5543b0251b21c9e1a1e989745796" },
"catpuccin": { "branch": "main", "commit": "1bf070129c0b6f77cc23f6a2212dcdc868308c52" },
"conform.nvim": { "branch": "master", "commit": "2b2b30260203af3b93a7470ac6c8457ddd6e32d9" },
"fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" },
"gitsigns.nvim": { "branch": "main", "commit": "e399f9748d7cfd8859747c8d6c4e9c8b4d50a1bd" },
"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": "d39a75bbce4b8aad5d627191ea915179c77c100f" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "75d60a8f928decd8b38897f80849768b7c540a5b" },
"mason.nvim": { "branch": "main", "commit": "7c7318e8bae7e3536ef6b9e86b9e38e74f2e125e" },
"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": "009435c6c3653d54bc62997ca6b2e8513bc52cf4" },
"nvim-lint": { "branch": "master", "commit": "fdb04e9285edefbe25a02a31a35e8fbb10fe054d" },
"nvim-lspconfig": { "branch": "master", "commit": "ac1dfbe3b60e5e23a2cff90e3bd6a3bc88031a57" },
"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": "066fd6505377e3fd4aa219e61ce94c2b8bdb0b79" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "b0debd5c424969b4baeabdc8f54db3036c691732" },
"nvim-web-devicons": { "branch": "master", "commit": "d360317f8f509b99229bb31d42269987696df6ff" },
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
"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" },

View File

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

View File

@@ -6,6 +6,10 @@ return {
init = function()
require("catppuccin").setup {
transparent_background = true,
float = {
solid = true,
transparent = true,
},
}
vim.cmd.colorscheme "catppuccin"
end,

View File

@@ -25,7 +25,11 @@ return {
go = { "gofumpt", "goimports_reviser" },
html = { "prettier" },
lua = { "stylua" },
python = { "autopep8" },
python = {
"ruff_fix",
"ruff_format",
"ruff_organize_imports",
},
typescript = { "prettier" },
typescriptreact = { "prettier" },
},

View File

@@ -6,13 +6,11 @@ return {
lint.linters_by_ft = {
json = { "jsonlint" },
python = { "mypy" },
python = { "ruff" },
-- typescript = { "eslint" },
-- typescriptreact = { "eslint" },
}
-- Create autocommand which carries out the actual linting
-- on the specified events.
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
group = lint_augroup,

View File

@@ -15,10 +15,6 @@ return {
},
config = function()
-- This function gets run when an LSP attaches to a particular buffer.
-- That is to say, every time a new file is opened that is associated with
-- an lsp (for example, opening `main.rs` is associated with `rust_analyzer`) this
-- function will be executed to configure the current buffer
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("lsp-attach", { clear = true }),
callback = function(event)
@@ -27,10 +23,8 @@ return {
vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = "LSP: " .. desc })
end
-- Opens a popup that displays documentation about the word under your cursor
-- See `:help K` for why this keymap.
map("K", function()
vim.lsp.buf.hover { border = "rounded" }
vim.lsp.buf.hover {}
end, "Hover Documentation")
-- Jump to the definition of the word under your cursor.
@@ -39,43 +33,21 @@ return {
map("gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition")
-- Jump to the implementation of the word under your cursor.
-- Useful when your language has ways of declaring types without an actual implementation.
-- 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")
-- Rename the variable under your cursor.
-- Most Language Servers support renaming across files, etc.
map("grn", vim.lsp.buf.rename, "[R]e[n]ame")
-- Execute a code action, usually your cursor needs to be on top of an error
-- or a suggestion from your LSP for this to activate.
map("gra", vim.lsp.buf.code_action, "[G]oto Code [A]ction", { "n", "x" })
-- Find references for the word under your cursor.
map("grr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
-- This is not Goto Definition, this is Goto Declaration.
-- For example, in C this would take you to the header.
map("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
-- Jump to the type of the word under your cursor.
-- Useful when you're not sure what type a variable is and you want to see
-- the definition of its *type*, not where it was *defined*.
map("grt", require("telescope.builtin").lsp_type_definitions, "[G]oto [T]ype Definition")
-- NOTE: commenting this untile I figure out when to use it
-- Fuzzy find all the symbols in your current workspace.
-- Similar to document symbols, except searches over your entire project.
-- map("gW", require("telescope.builtin").lsp_dynamic_workspace_symbols, "Open Workspace Symbols")
---
-- Fuzzy find all the symbols in your current document.
-- Symbols are things like variables, functions, types, etc.
-- map("gO", require("telescope.builtin").lsp_document_symbols, "Open Document Symbols")
-- The following two autocommands are used to highlight references of the
-- word under your cursor when your cursor rests there for a little while.
-- See `:help CursorHold` for information about when this is executed
--
-- When you move your cursor, the highlights will be cleared (the second autocommand).
local client = vim.lsp.get_client_by_id(event.data.client_id)
if
client
@@ -103,25 +75,27 @@ return {
end,
})
end
-- NOTE: commenting this untile I figure out when to use it
-- The following code creates a keymap to toggle inlay hints in your
-- code, if the language server you are using supports them
-- This may be unwanted, since they displace some of your code
--
-- if client and client:supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint, event.buf) then
-- map("<leader>th", function()
-- vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled { bufnr = event.buf })
-- end, "[T]oggle Inlay [H]ints")
-- end
end,
})
-- Diagnostic Config
-- See :help vim.diagnostic.Opts
vim.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 = { border = "rounded", source = "if_many" },
float = { source = "if_many" },
underline = { severity = vim.diagnostic.severity.ERROR },
signs = vim.g.have_nerd_font and {
text = {
@@ -146,19 +120,11 @@ return {
},
}
-- LSP servers and clients are able to communicate to each other what features they support.
-- By default, Neovim doesn't support everything that is in the LSP specification.
-- When you add blink.cmp, luasnip, etc. Neovim now has *more* capabilities.
-- So, we create new capabilities with blink.cmp, and then broadcast that to the servers.
local capabilities = require("blink.cmp").get_lsp_capabilities()
-- enable the following language servers
-- Add any additional override configuration in the following tables. Available keys are:
-- - cmd (table): Override the default command used to start the server
-- - filetypes (table): Override the default list of associated filetypes for the server
-- - capabilities (table): Override fields in capabilities. Can be used to disable certain LSP features.
-- - settings (table): Override the default settings passed when initializing the server.
-- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/
local servers = {
gopls = {
filetypes = { "go", "gomod", "gowork", "gotmpl" },
@@ -172,21 +138,27 @@ return {
},
},
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 = {},
pyright = {
settings = {
pyright = {
disableOrganizeImports = true,
},
python = {
analysis = {
ignore = { "*" },
},
},
},
},
ts_ls = {},
@@ -201,8 +173,6 @@ return {
"goimports-reviser",
"jsonlint",
"prettier",
"mypy",
"autopep8",
"stylua",
})

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")
@@ -46,7 +32,6 @@ 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 = 10,

View File

@@ -44,4 +44,4 @@ vim.o.linebreak = true
vim.o.wrap = true
vim.o.breakindent = true
vim.o.showbreak = ""
-- vim.o.winborder = "rounded"
vim.o.winborder = "rounded"

View File

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

View File

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

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

View File

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

View File

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

View File

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

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
View File

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

View File

@@ -27,5 +27,12 @@ _darcs
install.sh
assets
.bashrc
# 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*

9
.zshrc
View File

@@ -1,3 +1,6 @@
# ---- homebrew ----
eval "$(/opt/homebrew/bin/brew shellenv)"
# ---- Aliases ----
alias ls='lsd'
alias lg='lazygit'
@@ -17,5 +20,11 @@ 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"

View File

@@ -1,21 +1,72 @@
#!/bin/bash
#!/bin/zsh
# ---- Terminal ----
echo "Installing your Teminal and other thingies..."
yay -S git ghostty starship neovim ttf-jetbrains-mono-nerd tmux fzf lsd ripgrep zoxide lazygit fastfetch stow btop
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 "changing default shell to z-shell"
sudo chsh -s $(which zsh)
echo "Sourcing zsh config It should work now atleast"
source ~/.zshrc
yay -S bun-bin go node npm
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..."
yay -S zen-browser-bin discord docker spotify
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"