Compare commits

..

11 Commits

17 changed files with 507 additions and 55 deletions

View File

@@ -1,2 +1,7 @@
# dotfiles
These are my dotfiles. Most stuff goes in ~/.config with a few exceptions (bash).
# How to use
This git repo is setup to be used with (stow)[https://www.gnu.org/software/stow/].
`stow -t ~ <dotfile module>`

View File

@@ -1,4 +1,4 @@
alias la="ls -ahl --color=auto"
alias la='ls -Ahl --color=auto --group-directories-first'
alias src='source ~/.bashrc'
# docker
@@ -9,5 +9,7 @@ alias dcl='docker container logs'
alias dcr='docker container restart'
alias dcsp='docker container stop'
alias dcrm='docker container rm'
function dsh() { docker exec -it $1 sh }
# function dsh() { docker exec -it $1 sh }
ddg() {
w3m "https://lite.duckduckgo.com/lite/?q=${*// /+}"
}

View File

@@ -0,0 +1,4 @@
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin/:$(go env GOPATH)/bin
export PATH=$PATH:$HOME/.opencode/bin
fastfetch

View File

@@ -0,0 +1,38 @@
# foot does not support ligatures
font=JetBrainsMono Nerd Font:size=12
[colors]
alpha=0.8
cursor=11111b f5e0dc
foreground=cdd6f4
background=101020
regular0=45475a
regular1=f38ba8
regular2=a6e3a1
regular3=f9e2af
regular4=89b4fa
regular5=f5c2e7
regular6=94e2d5
regular7=bac2de
bright0=585b70
bright1=f38ba8
bright2=a6e3a1
bright3=f9e2af
bright4=89b4fa
bright5=f5c2e7
bright6=94e2d5
bright7=a6adc8
16=fab387
17=f5e0dc
selection-foreground=cdd6f4
selection-background=414356
search-box-no-match=11111b f38ba8
search-box-match=cdd6f4 313244
jump-labels=11111b fab387
urls=89b4fa

View File

@@ -1,28 +0,0 @@
;; defsrc is still necessary
(defcfg
process-unmapped-keys yes
)
(defsrc
caps a s d k l ;
)
(defvar
tap-time 150
hold-time 200
)
(defalias
caps (tap-hold 100 100 caps esc)
a (multi f24 (tap-hold $tap-time $hold-time a lctrl))
s (multi f24 (tap-hold $tap-time $hold-time s lalt))
d (multi f24 (tap-hold $tap-time $hold-time d lmet))
;; f (multi f24 (tap-hold $tap-time $hold-time f lctl))
;; j (multi f24 (tap-hold $tap-time $hold-time j rctl))
k (multi f24 (tap-hold $tap-time $hold-time k rmet))
l (multi f24 (tap-hold $tap-time $hold-time l ralt))
; (multi f24 (tap-hold $tap-time $hold-time ; rctrl))
)
(deflayer base
@caps @a @s @d @k @l @;
)

View File

@@ -0,0 +1,11 @@
[ids]
*
[main]
# Maps capslock to escape when pressed and control when held.
capslock = overload(control, esc)
# Remaps the escape key to capslock
esc = capslock

View File

@@ -1,14 +1,17 @@
map ctrl+1 goto_tab 1
map ctrl+2 goto_tab 2
map ctrl+3 goto_tab 3
map ctrl+4 goto_tab 4
map ctrl+5 goto_tab 5
map ctrl+6 goto_tab 6
map ctrl+7 goto_tab 7
map ctrl+8 goto_tab 8
map ctrl+9 goto_tab 9
map ctrl+alt+1 goto_tab 1
map ctrl+alt+2 goto_tab 2
map ctrl+alt+3 goto_tab 3
map ctrl+alt+4 goto_tab 4
map ctrl+alt+5 goto_tab 5
map ctrl+alt+6 goto_tab 6
map ctrl+alt+7 goto_tab 7
map ctrl+alt+8 goto_tab 8
map ctrl+alt+9 goto_tab 9
background_opacity 0.8
font_family JetBrainsMono Nerd Font
font_size 12.0
# vim:ft=kitty
## name: Catppuccin Kitty Mocha

View File

@@ -21,6 +21,7 @@
"nvim-tree.lua": { "branch": "master", "commit": "b8b44b6a2494d086a9177251a119f9daec6cace8" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-web-devicons": { "branch": "master", "commit": "6788013bb9cb784e606ada44206b0e755e4323d7" },
"peek.nvim": { "branch": "master", "commit": "5820d937d5414baea5f586dc2a3d912a74636e5b" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"telescope.nvim": { "branch": "master", "commit": "3333a52ff548ba0a68af6d8da1e54f9cd96e9179" },
"ui": { "branch": "v3.0", "commit": "ebf58649bc5c759ee6c730c87d8d2d4dd4124c0d" },

View File

@@ -17,11 +17,34 @@ M.base46 = {
M.nvdash = { load_on_startup = true }
M.ui = {
-- theme_toggle = { "rosepine-dawn", "catppuccin" }
-- tabufline = {
-- lazyload = false
-- },
}
M.mason = {
pkgs = {
"azure-pipelines-language-server",
"bash-language-server",
"bicep-lsp",
"black",
"css-lsp",
"docker-language-server",
"gotests",
"html-lsp",
"htmx-lsp",
"lua-language-server",
"mdformat",
"gopls",
"omnisharp",
"angular-language-server",
"typescript-language-server",
"postgres-language-server",
"prettier",
"sqls",
"tailwindcss-language-server",
"yaml-language-server",
"jq"
}
}
return M

View File

@@ -1,6 +1,6 @@
require("nvchad.configs.lspconfig").defaults()
local servers = { "html", "cssls" }
local servers = { "html", "cssls", "gopls" }
vim.lsp.enable(servers)
-- read :h vim.lsp.config for changing options of lsp servers

View File

@@ -5,6 +5,7 @@ require "nvchad.mappings"
local map = vim.keymap.set
map("n", ";", ":", { desc = "CMD enter command mode" })
map("i", "jk", "<ESC>")
map("i", "jk", "<ESC>l")
map("n", " pm", ":PeekOpen<Enter>")
-- map({ "n", "i", "v" }, "<C-s>", "<cmd> w <cr>")

View File

@@ -3,4 +3,6 @@ require "nvchad.options"
-- add yours here!
local o = vim.o
o.cursorlineopt ='both' -- to enable cursorline!
o.cursorlineopt = 'both' -- to enable cursorline!
o.relativenumber = true
o.scrolloff = 20

View File

@@ -12,7 +12,50 @@ return {
require "configs.lspconfig"
end,
},
{
"neovim-telescope/telescope.nvim",
opts = {
defaults = {
layout_config = {
horizontal = {
width = 0.98,
}
},
path_display = {
"filename_first",
shorten = 3,
},
dynamic_preview_title = true,
}
}
},
{
"toppair/peek.nvim",
event = { "BufEnter" },
build = "deno task --quiet build:fast",
ft = "markdown",
config = function()
require('peek').setup({
auto_load = true, -- whether to automatically load preview when
-- entering another markdown buffer
close_on_bdelete = true, -- close preview window on buffer delete
syntax = true, -- enable syntax highlighting, affects performance
theme = 'dark', -- 'dark' or 'light'
update_on_change = true,
app = 'browser', -- 'webview', 'browser', string or a table of strings
-- explained below
filetype = { 'markdown' },-- list of filetypes to recognize as markdown
-- relevant if update_on_change is true
throttle_at = 200000, -- start throttling when file exceeds this
-- amount of bytes in size
throttle_time = 'auto', -- minimum amount of time in milliseconds
-- that has to pass before starting new render
})
vim.api.nvim_create_user_command("PeekOpen", require("peek").open, {})
vim.api.nvim_create_user_command("PeekClose", require("peek").close, {})
end,
},
-- test new blink
-- { import = "nvchad.blink.lazyspec" },

View File

@@ -38,6 +38,8 @@ output * bg ~/Pictures/wallpapers/neon-highway-outrun-3840x2160-16079.jpg fill
# output HDMI-A-1 resolution 1920x1080 position 1920,0
#
# You can get the names of your outputs by running: swaymsg -t get_outputs
output DP-1 position 0,0
output eDP-1 position 320,1440
### Idle configuration
#
@@ -179,6 +181,7 @@ output * bg ~/Pictures/wallpapers/neon-highway-outrun-3840x2160-16079.jpg fill
# Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them.
bindsym $mod+minus scratchpad show
bindsym $mod+Tab exec rofi -show window -modes window
#
# Resizing containers:
#
@@ -225,14 +228,4 @@ bindsym $mod+r mode "resize"
# important to make the magic work. And if you want to learn the secret behind
# the trick, it's all in the `wordexp(3)`.
#
exec --no-startup-id $term
# Switch to workspace 2 (second desktop)
workspace number 3
# Open Brave Browser on workspace 2
exec --no-startup-id brave-browser
workspace number 1
include '$(/usr/libexec/sway/layered-include "/usr/share/sway/config.d/*.conf" "/etc/sway/config.d/*.conf" "${XDG_CONFIG_HOME:-$HOME/.config}/sway/config.d/*.conf")'

View File

@@ -0,0 +1,210 @@
// -*- mode: jsonc -*-
{
// "layer": "top", // Waybar at top layer
"position": "bottom", // Waybar position (top|bottom|left|right)
"height": 38, // Waybar height (to be removed for auto height)
// "width": 1280, // Waybar width
"spacing": 0, // Gaps between modules (4px)
// Choose the order of the modules
"modules-left": [
"sway/workspaces",
"sway/mode",
"sway/scratchpad"
],
"modules-center": [
"sway/window"
],
"modules-right": [
"pulseaudio",
"network",
"battery",
"idle_inhibitor",
"clock",
"tray"
],
// Modules configuration
"sway/workspaces": {
"disable-scroll": true,
// "all-outputs": true,
"warp-on-scroll": false,
"format": "{name} {icon}",
"format-icons": {
"1": "",
"2": "",
"3": "",
"4": "",
"5": "",
"urgent": "",
"focused": "",
"default": ""
}
},
"keyboard-state": {
"numlock": true,
"capslock": true,
"format": "{name} {icon}",
"format-icons": {
"locked": "",
"unlocked": ""
}
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"sway/scratchpad": {
"format": "{icon} {count}",
"show-empty": false,
"format-icons": ["", ""],
"tooltip": true,
"tooltip-format": "{app}: {title}"
},
"mpd": {
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
"format-disconnected": "Disconnected ",
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
"unknown-tag": "N/A",
"interval": 5,
"consume-icons": {
"on": " "
},
"random-icons": {
"off": "<span color=\"#f53c3c\"></span> ",
"on": " "
},
"repeat-icons": {
"on": " "
},
"single-icons": {
"on": "1 "
},
"state-icons": {
"paused": "",
"playing": ""
},
"tooltip-format": "MPD (connected)",
"tooltip-format-disconnected": "MPD (disconnected)"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
},
"tray": {
// "icon-size": 21,
"spacing": 10,
// "icons": {
// "blueman": "bluetooth",
// "TelegramDesktop": "$HOME/.local/share/icons/hicolor/16x16/apps/telegram.png"
// }
},
"clock": {
"timezone": "America/Chicago",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "{:%Y-%m-%d}",
"format": "{:%I:%M:%S %p %A %b %d}",
"interval": 1
},
"cpu": {
"format": "{usage}% ",
"tooltip": false
},
"memory": {
"format": "{}% "
},
"temperature": {
// "thermal-zone": 2,
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
"critical-threshold": 80,
// "format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C {icon}",
"format-icons": ["", "", ""]
},
"backlight": {
// "device": "acpi_video1",
"format": "{percent}% {icon}",
"format-icons": ["🌑", "🌘", "🌗", "🌖", "🌕"]
},
"battery": {
"states": {
// "good": 95,
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon}",
"format-full": "{capacity}% {icon}",
"format-charging": "{capacity}% ",
"format-plugged": "{capacity}% ",
"format-alt": "{time} {icon}",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": ["", "", "", "", ""]
},
"battery#bat2": {
"bat": "BAT2"
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "",
"balanced": "",
"power-saver": ""
}
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "{essid} ",
"format-ethernet": "{ipaddr}/{cidr} ",
"tooltip-format": "{ifname} via {gwaddr}  ({signalStrength}%)",
"format-linked": "{ifname} (No IP) ",
"format-disconnected": "Disconnected ⚠",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "{volume}% {icon} {format_source}",
"format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "pavucontrol"
},
"custom/media": {
"format": "{icon} {text}",
"return-type": "json",
"max-length": 40,
"format-icons": {
"spotify": "",
"default": "🎜"
},
"escape": true,
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
},
"custom/power": {
"format" : "⏻ ",
"tooltip": false,
"menu": "on-click",
"menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder
"menu-actions": {
"shutdown": "shutdown",
"reboot": "reboot",
"suspend": "systemctl suspend",
"hibernate": "systemctl hibernate"
}
}
}

37
waybar/.config/waybar/mocha.css Executable file
View File

@@ -0,0 +1,37 @@
/*
*
* Catppuccin Mocha palette
* Maintainer: rubyowo
*
*/
@define-color base #1e1e2e;
@define-color mantle #181825;
@define-color crust #11111b;
@define-color text #cdd6f4;
@define-color subtext0 #a6adc8;
@define-color subtext1 #bac2de;
@define-color surface0 #313244;
@define-color surface1 #45475a;
@define-color surface2 #585b70;
@define-color overlay0 #6c7086;
@define-color overlay1 #7f849c;
@define-color overlay2 #9399b2;
@define-color blue #89b4fa;
@define-color lavender #b4befe;
@define-color sapphire #74c7ec;
@define-color sky #89dceb;
@define-color teal #94e2d5;
@define-color green #a6e3a1;
@define-color yellow #f9e2af;
@define-color peach #fab387;
@define-color maroon #eba0ac;
@define-color red #f38ba8;
@define-color mauve #cba6f7;
@define-color pink #f5c2e7;
@define-color flamingo #f2cdcd;
@define-color rosewater #f5e0dc;

View File

@@ -0,0 +1,107 @@
@import "mocha.css";
* {
font-family: "JetBrainsMono Nerd Font";
font-size: 12px;
min-height: 0;
}
#waybar {
background: transparent;
color: @text;
margin: 5px 5px;
}
#workspaces {
border-radius: 1rem;
margin: 5px;
background-color: @surface0;
}
#workspaces button {
color: @lavender;
border-radius: 1rem;
padding: 0.4rem;
}
#workspaces button.active {
color: @sky;
border-radius: 1rem;
}
#workspaces button:hover {
color: @sapphire;
border-radius: 1rem;
}
#custom-music,
#tray,
#backlight,
#clock,
#battery,
#pulseaudio,
#network,
#custom-lock,
#custom-power {
background-color: @surface0;
padding: 0 .4rem;
margin: 0;
}
#clock {
color: @blue;
border-radius: 0px 1rem 1rem 0px;
margin-right: 0.3rem;
}
#battery {
color: @green;
}
#battery.charging {
color: @green;
}
#battery.warning:not(.charging) {
color: @red;
}
#backlight {
color: @yellow;
}
#backlight, #battery {
border-radius: 0;
}
#pulseaudio {
color: @blue;
border-radius: 1rem 0px 0px 1rem;
margin-left: 0.3rem;
}
#network {
color: @blue;
padding-right: 0.5rem;
}
#custom-music {
color: @mauve;
border-radius: 1rem;
}
#custom-lock {
border-radius: 1rem 0px 0px 1rem;
color: @lavender;
}
#custom-power {
margin-right: 1rem;
border-radius: 0px 1rem 1rem 0px;
color: @red;
}
#tray {
margin-right: 1rem;
border-radius: 1rem;
}