Compare commits

...

95 Commits

Author SHA1 Message Date
047a4808cc Updated config 2025-04-13 15:20:52 +02:00
ead7d8c480 Updated config 2025-04-04 16:30:58 +02:00
4c2971044a Updated config 2025-03-28 22:12:24 +01:00
9c4c9eb38f Updated config 2025-03-28 15:33:49 +01:00
308823b1e8 Updated config 2025-03-25 16:37:27 +01:00
67c7037866 Updated config 2025-03-24 11:12:08 +01:00
a94d05eede Updated config 2025-03-24 11:08:46 +01:00
08427161a2 Updated config 2025-03-21 20:15:53 +01:00
92efc41e6e Updated config 2025-03-21 17:38:04 +01:00
02cf6da26a Updated config 2025-03-21 17:00:05 +01:00
52cc73aed5 Updated config 2025-03-21 16:31:57 +01:00
03d943541d Updated config 2025-03-10 10:10:09 +01:00
63cc79e5ae Updated config 2025-03-09 22:11:56 +01:00
87007955eb Updated config 2025-03-07 16:22:30 +01:00
3fb4a346b8 Updated config 2025-02-13 15:32:17 +01:00
cf03acd24a Updated config 2025-02-12 10:30:10 +01:00
eff6b82f1f Updated config 2025-02-11 17:54:18 +01:00
8931c1696f Updated config 2025-02-11 17:37:34 +01:00
483f1614a0 Updated config 2025-02-07 19:40:27 +01:00
549b443893 Updated config 2025-02-05 09:58:20 +01:00
e411d35dd3 Updated config 2025-02-02 20:04:52 +01:00
86f53356d1 Updated config 2025-02-02 11:05:39 +01:00
ffd1fd767a Updated config 2025-01-25 22:59:35 +01:00
02248d3c8b Updated config 2025-01-25 22:09:37 +01:00
e2fed71e49 Updated config 2025-01-24 11:18:26 +01:00
56aa5d1e9d Updated config 2025-01-24 11:04:56 +01:00
f0f26f7b6b Updated config 2025-01-21 09:55:39 +01:00
201ef6fd3b Updated config 2025-01-20 22:53:56 +01:00
ff6d581fa5 Updated config 2025-01-20 13:47:32 +01:00
e0b8d3886b Updated config 2024-08-13 00:23:01 +02:00
6051260a5c Updated config 2024-08-10 17:36:39 +02:00
deaf4ecbb9 Updated config 2024-07-31 11:48:59 +02:00
553844b092 Updated config 2024-07-25 12:11:42 +02:00
70a484d2a4 Updated config 2024-07-23 10:34:18 +02:00
86cb944fa1 Updated config 2024-07-23 10:28:52 +02:00
059260eaae Updated config 2024-07-22 09:37:50 +02:00
4262236e71 Updated config 2024-07-15 15:59:55 +02:00
a6622041a9 Updated config 2024-07-14 16:01:03 +02:00
18683b4d79 Updated config 2024-07-12 22:24:07 +02:00
aef5bc74b2 Added zed config 2024-07-11 23:56:03 +02:00
2430319001 Updated config 2024-07-11 11:21:04 +02:00
7dc88dea9c Updated config 2024-07-10 21:40:50 +02:00
8c1ac7bf90 Updated config 2024-07-08 17:51:17 +02:00
72f0126311 Updated config 2024-07-06 16:12:34 +02:00
1d43fe06c2 Updated config 2024-07-02 17:07:24 +02:00
ab3930e7a3 Updated config 2024-06-28 21:10:40 +02:00
c4b2f4946d Updated config 2024-06-28 09:59:26 +02:00
42c60d64ab Updated config 2024-06-27 22:53:41 +02:00
8e0dd3f050 Updated config 2024-06-26 15:49:03 +02:00
63057fae7a Updated config 2024-06-24 10:29:54 +02:00
a789bfb97a Updated config 2024-06-23 11:23:10 +02:00
2449bfbccc Updated config 2024-06-21 16:42:08 +02:00
d356f59c23 Updated config 2024-06-20 09:26:24 +02:00
93a4ec7f7e Updated config 2024-06-19 16:52:32 +02:00
0a339fad34 Updated config 2024-06-17 19:11:29 +02:00
33e490f05f Updated config 2024-06-17 16:19:21 +02:00
cbc235c993 Updated config 2024-06-11 21:02:22 +02:00
d1a86106db Updated config 2024-06-02 13:08:11 +02:00
4749123761 Updated config 2024-05-31 13:04:39 +02:00
723da392b2 Updated config 2024-05-23 18:11:22 +02:00
d39fe31074 Updated config 2024-04-11 18:24:39 +02:00
a6b6c608aa Updated config 2024-04-11 12:53:14 +02:00
ea23c1fbce Updated config 2024-04-05 20:07:55 +02:00
cffa57255b Updated config 2024-03-31 11:54:31 +02:00
6e3a289407 Updated config 2024-03-27 00:09:55 +01:00
b9c4ed16a7 Updated config 2024-03-26 23:48:06 +01:00
6a991f0a61 Updated config 2024-03-26 17:00:49 +01:00
c42cf0264f Updated config 2024-03-25 13:55:15 +01:00
68e87da51d Updated config 2024-03-24 13:33:23 +01:00
6a1f678121 Added mako 2024-03-24 12:30:32 +01:00
05881e1329 Added btop 2024-03-23 13:39:29 +01:00
158165d1aa Updated config 2024-03-23 13:34:38 +01:00
db4241180a Updated config 2024-03-22 14:58:11 +01:00
6835ac3463 Updated config 2024-03-21 23:16:02 +01:00
886dde2003 Updated config 2024-03-21 18:26:30 +01:00
64b37682bf Updated config 2024-03-21 16:10:24 +01:00
8acac0e405 Updated config 2024-03-21 14:50:22 +01:00
c2738b61f1 Updated config 2024-03-20 15:45:06 +01:00
1d36614fcc Updated config 2024-03-15 18:10:25 +01:00
41e0cf7143 Updated config 2024-03-14 15:43:32 +01:00
36faa964ed Updated config 2024-03-10 23:52:28 +01:00
4ee1f9f1a1 Updated config 2024-03-10 15:03:03 +01:00
e0a90fb1f6 Updated config 2024-03-10 14:59:44 +01:00
e2e8834d8c Updated config 2024-03-09 22:03:35 +01:00
6abf78bec4 Updated config 2024-03-08 11:28:13 +01:00
26e4fd0ff8 Updated config 2024-03-08 10:55:37 +01:00
6cae7cf1a2 Updated config 2024-03-08 10:37:52 +01:00
15f21925ce Updated config 2024-03-08 00:39:34 +01:00
73b45ccf8d Updated config 2024-03-08 00:03:58 +01:00
7d5a2940ef Updated config 2024-03-07 13:09:05 +01:00
eca02857ec Updated config 2024-03-05 13:28:48 +01:00
307d253d9e Updated config 2024-03-05 00:40:49 +01:00
29a8811800 Updated config 2024-03-03 19:59:08 +01:00
acfceb3c65 Updated config 2024-03-03 17:47:02 +01:00
4ac1314fad Updated config 2024-03-03 00:06:17 +01:00
84 changed files with 1436 additions and 682 deletions

View File

@ -1,30 +1,26 @@
[colors.bright]
black = "#666666"
blue = "#3b8eea"
cyan = "#29b8db"
green = "#23d18b"
magenta = "#d670d6"
red = "#f14c4c"
white = "#e5e5e5"
yellow = "#f5f543"
[colors.cursor]
cursor = "#cccccc"
text = "#1d1f21"
[colors.primary]
background = "#26292C"
foreground = "#F8F8F0"
[colors.normal]
black = "#000000"
blue = "#2472c8"
cyan = "#11a8cd"
green = "#0dbc79"
magenta = "#bc3fbc"
red = "#cd3131"
white = "#e5e5e5"
yellow = "#e5e510"
black = "#272822"
red = "#F92672"
green = "#A6E22E"
yellow = "#F4BF75"
blue = "#66D9EF"
magenta = "#AE81FF"
cyan = "#A1EFE4"
white = "#F8F8F2"
[colors.primary]
background = "#241F31"
foreground = "#D4D4D4"
[colors.bright]
black = "#75715E"
red = "#F92672"
green = "#A6E22E"
yellow = "#F4BF75"
blue = "#66D9EF"
magenta = "#AE81FF"
cyan = "#A1EFE4"
white = "#F9F8F5"
[env]
LANG = "en_US.UTF-8"
@ -43,6 +39,4 @@ action = "ToggleFullscreen"
key = "F11"
[window]
opacity = 0.9
#decorations = "none"
#startup_mode = "Maximized"
opacity = 1.0

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

@ -0,0 +1,76 @@
color_theme = "Default"
theme_background = False
truecolor = True
force_tty = False
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
vim_keys = False
rounded_corners = True
graph_symbol = "braille"
graph_symbol_cpu = "default"
graph_symbol_gpu = "default"
graph_symbol_mem = "default"
graph_symbol_net = "default"
graph_symbol_proc = "default"
shown_boxes = "proc"
update_ms = 2000
proc_sorting = "cpu lazy"
proc_reversed = False
proc_tree = False
proc_colors = True
proc_gradient = True
proc_per_core = True
proc_mem_bytes = True
proc_cpu_graphs = True
proc_info_smaps = False
proc_left = False
proc_filter_kernel = True
proc_aggregate = False
cpu_graph_upper = "Auto"
cpu_graph_lower = "Auto"
show_gpu_info = "Auto"
cpu_invert_lower = True
cpu_single_graph = False
cpu_bottom = False
show_uptime = True
check_temp = True
cpu_sensor = "Auto"
show_coretemp = True
cpu_core_map = ""
temp_scale = "celsius"
base_10_sizes = False
show_cpu_freq = True
clock_format = "%X"
background_update = True
custom_cpu_name = ""
disks_filter = ""
mem_graphs = True
mem_below_net = False
zfs_arc_cached = True
show_swap = True
swap_disk = True
show_disks = True
only_physical = True
use_fstab = True
zfs_hide_datasets = False
disk_free_priv = False
show_io_stat = True
io_mode = False
io_graph_combined = False
io_graph_speeds = ""
net_download = 100
net_upload = 100
net_auto = True
net_sync = True
net_iface = ""
show_battery = True
selected_battery = "Auto"
show_battery_watts = True
log_level = "WARNING"
nvml_measure_pcie_speeds = True
gpu_mirror_graph = True
custom_gpu_name0 = ""
custom_gpu_name1 = ""
custom_gpu_name2 = ""
custom_gpu_name3 = ""
custom_gpu_name4 = ""
custom_gpu_name5 = ""

11
.config/cava/config Normal file
View File

@ -0,0 +1,11 @@
[color]
gradient = 1
gradient_count = 8
gradient_color_1 = '#59cc33'
gradient_color_2 = '#80cc33'
gradient_color_3 = '#a6cc33'
gradient_color_4 = '#cccc33'
gradient_color_5 = '#cca633'
gradient_color_6 = '#cc8033'
gradient_color_7 = '#cc5933'
gradient_color_8 = '#cc3333'

View File

@ -1,25 +0,0 @@
[global]
font = Ubuntu Nerd Font 10
corner_radius = 10
follow = mouse
origin = top-center
offset = 0x0
frame_width = 1
frame_color = "#232323"
format = "<big>%s</big>\n<span color='#ffffff7f'>%b</span>"
[urgency_low]
background = "#232323"
foreground = "#ffffff"
timeout = 10
[urgency_normal]
background = "#232323"
foreground = "#ffffff"
timeout = 10
[urgency_critical]
background = "#d64e4e"
foreground = "#f0e0e0"
frame_color = "#d64e4e"
timeout = 0

View File

@ -0,0 +1,51 @@
{
"input": {
"bass_enhancer#0": {
"amount": 3.0,
"blend": 0.0,
"bypass": false,
"floor": 12.0,
"floor-active": true,
"harmonics": 10.0,
"input-gain": 0.0,
"output-gain": 0.0,
"scope": 150.0
},
"blocklist": [],
"limiter#0": {
"alr": false,
"alr-attack": 5.0,
"alr-knee": 0.0,
"alr-release": 50.0,
"attack": 1.0,
"bypass": false,
"dithering": "16bit",
"external-sidechain": false,
"gain-boost": true,
"input-gain": 0.0,
"lookahead": 5.0,
"mode": "Herm Wide",
"output-gain": 0.0,
"oversampling": "Half x2(2L)",
"release": 5.0,
"sidechain-preamp": 0.0,
"stereo-link": 100.0,
"threshold": -1.0
},
"plugins_order": [
"rnnoise#0",
"bass_enhancer#0",
"limiter#0"
],
"rnnoise#0": {
"bypass": false,
"enable-vad": false,
"input-gain": 0.0,
"model-name": "",
"output-gain": 0.0,
"release": 20.0,
"vad-thres": 50.0,
"wet": 0.0
}
}
}

View File

@ -0,0 +1,77 @@
{
"output": {
"bass_enhancer#0": {
"amount": 3.0,
"blend": 0.0,
"bypass": false,
"floor": 12.0,
"floor-active": true,
"harmonics": 10.0,
"input-gain": 0.0,
"output-gain": 0.0,
"scope": 150.0
},
"blocklist": [],
"filter#0": {
"balance": 0.0,
"bypass": false,
"equal-mode": "IIR",
"frequency": 12.0,
"gain": 0.0,
"input-gain": 0.0,
"mode": "RLC (BT)",
"output-gain": 0.0,
"quality": 0.0,
"slope": "x1",
"type": "High-pass",
"width": 4.0
},
"limiter#0": {
"alr": false,
"alr-attack": 5.0,
"alr-knee": 0.0,
"alr-release": 50.0,
"attack": 2.0,
"bypass": false,
"dithering": "None",
"external-sidechain": false,
"gain-boost": true,
"input-gain": 0.0,
"lookahead": 4.0,
"mode": "Herm Thin",
"output-gain": 0.0,
"oversampling": "Half x4(3L)",
"release": 8.0,
"sidechain-preamp": 0.0,
"stereo-link": 100.0,
"threshold": 0.0
},
"plugins_order": [
"filter#0",
"bass_enhancer#0",
"stereo_tools#0",
"limiter#0"
],
"stereo_tools#0": {
"balance-in": 0.0,
"balance-out": 0.0,
"bypass": false,
"delay": 0.0,
"input-gain": 0.0,
"middle-level": 0.0,
"middle-panorama": 0.0,
"mode": "LR > LR (Stereo Default)",
"mutel": false,
"muter": false,
"output-gain": 0.0,
"phasel": false,
"phaser": false,
"sc-level": 1.0,
"side-balance": 0.0,
"side-level": 0.0,
"softclip": false,
"stereo-base": 0.25,
"stereo-phase": 0.0
}
}
}

View File

@ -0,0 +1,6 @@
XDG_CACHE_HOME=$HOME/.cache
XDG_CONFIG_HOME=$HOME/.config
XDG_DATA_HOME=$HOME/.local/share
XDG_BIN_HOME=$HOME/.local/bin
XDG_LIB_HOME=$HOME/.local/lib
XDG_STATE_HOME=$HOME/.local/state

View File

@ -0,0 +1,11 @@
CARGO_HOME=$XDG_DATA_HOME/cargo
CUDA_CACHE_PATH=$XDG_CACHE_HOME/nv
DOTNET_CLI_HOME=$XDG_DATA_HOME/dotnet
GOPATH=$XDG_DATA_HOME/go
GTK2_RC_FILES=$XDG_CONFIG_HOME/gtk-2.0/gtkrc
HISTFILE=$XDG_STATE_HOME/bash/history
NIMBLE_DIR=$XDG_DATA_HOME/nimble
NUGET_PACKAGES=$XDG_CACHE_HOME/nuget
RUSTUP_HOME=$XDG_DATA_HOME/rustup
W3M_DIR=$XDG_DATA_HOME/w3m
WINEPREFIX=$XDG_DATA_HOME/wine

View File

@ -0,0 +1,6 @@
BROWSER=firefox
EDITOR=nvim
LANG=en_US.UTF-8
PAGER=less
SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket
TERMINAL=foot

View File

@ -0,0 +1,22 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"modules": [
"os",
"kernel",
"shell",
"packages",
"break",
"cpu",
"gpu",
"memory",
"disk",
"break",
"colors"
// "display",
// "de",
// "host",
// "wm",
// "battery",
// "poweradapter",
]
}

View File

@ -1,19 +1,32 @@
# Git
alias g "git"
alias gc "git clone"
alias gd "git diff"
alias gd "git diff --ignore-space-at-eol"
alias gl "git log --oneline"
alias gp "git pull"
alias gs "git status"
alias home "git --git-dir=$HOME/.home/ --work-tree=$HOME"
# Go
alias gb "go build -v"
alias godeps "go list -f '{{ join .Deps \"\n\"}}' ."
alias gt "go test -v"
alias gts "gotestsum"
# Home
alias home "git --git-dir=$HOME/.home/ --work-tree=$HOME"
alias homeinit "git clone --bare https://git.urbach.dev/sys/home $HOME/.home && home checkout"
alias h "home"
alias hs "home status"
alias hd "home diff --ignore-space-at-eol"
alias hp "home pull"
# Hyperfine
alias bench "hyperfine --shell=none"
# Kernel
alias kerr "sudo dmesg --level=emerg,alert,crit,err"
alias klog "sudo dmesg"
# List
alias l "ls"
alias ll "ls -l"
@ -21,6 +34,10 @@ alias l2 "ls -T -L2"
alias lu "ls -l --total-size --sort=size --reverse --no-permissions --no-user --no-time"
alias lp "ls -l --no-filesize --no-time"
# Lsof
alias tcp "lsof -PniTCP"
alias udp "lsof -PniUDP"
# Neovim
alias e "nvim"
alias n "nvim"
@ -30,35 +47,41 @@ alias p "pacman"
alias pi "sudo pacman -S"
alias pr "sudo pacman -Rs"
alias pu "sudo pacman -Syu"
alias pl "pacman -Q"
alias po "pacman -Qo"
alias pl "pacman -Qq"
alias pe "pacman -Qe"
alias pc "sudo pacman -Sc"
alias paur "pacman -Qm"
alias pfiles "pacman -Ql"
alias porphan "pacman -Qtdq"
alias powner "pacman -Qo"
# Systemctl
alias start "sudo systemctl start"
alias stop "sudo systemctl stop"
alias enable "sudo systemctl enable"
alias disable "sudo systemctl disable"
alias restart "sudo systemctl restart"
alias running "systemctl list-units --type=service --state=running"
alias disabled "systemctl list-unit-files --type=service --state=disabled"
alias enabled "systemctl list-unit-files --type=service --state=enabled"
alias timers "systemctl list-timers"
# Tmux
alias t "tmux"
alias ta "tmux attach"
alias td "tmux detach"
alias tl "tmux ls"
alias tk "tmux kill-server"
# Systemctl
alias s "systemctl"
alias s+ "systemctl start"
alias s- "systemctl stop"
alias sr "systemctl restart"
alias ss "systemctl status"
alias sl "systemctl list-units --type=service --state=running"
alias sld "systemctl list-unit-files --type=service --state=disabled"
alias sle "systemctl list-unit-files --type=service --state=enabled"
alias slt "systemctl list-timers"
# ...
alias cdp "cd ~/projects"
alias bios "systemctl reboot --firmware-setup"
alias cfg "config"
alias cls "clear"
alias debug "blinkenlights"
alias disasm "llvm-objdump --disassembler-color=on --x86-asm-syntax=intel -d"
alias ff "fastfetch"
alias hex "hexdump -C"
alias log "journalctl"
# Close all windows
alias closeall "wmctrl -l | awk '{print $1}' | xargs -rn1 wmctrl -ic"
alias utc "date -u +'%Y-%m-%dT%H:%M:%SZ'"
alias dl "yt-dlp -x -f bestaudio"
alias mirror "wget --mirror --page-requisites --adjust-extension --no-parent --convert-links"
alias perfstats "perf stat -etask-clock,context-switches,cpu-migrations,page-faults,cycles,branches,branch-misses,instructions,uops_issued.any,uops_executed.thread,idq_uops_not_delivered.core"

View File

@ -1,11 +1,16 @@
# Interactive mode
if status is-interactive
source $HOME/.config/fish/alias.fish
set -x LS_COLORS di=0:ln=0:so=0:pi=0:ex=0:bd=0:cd=0:su=0:sg=0:tw=0:ow=0
end
set -x GOPATH $HOME/.go
set -x EDITOR nvim
set -x LANG en_US.UTF-8
# Load systemd user environment
set GENERATOR /usr/lib/systemd/user-environment-generators/30-systemd-environment-d-generator
fish_add_path $GOPATH/bin
fish_add_path $HOME/.bin
if test -e $GENERATOR
export ($GENERATOR)
end
# Add to PATH
fish_add_path (go env GOPATH)/bin
fish_add_path $XDG_CONFIG_HOME/fish/scripts

View File

@ -1,11 +1,11 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR __fish_initialized:3400
SETUVAR __fish_initialized:3800
SETUVAR fish_color_autosuggestion:707A8C
SETUVAR fish_color_cancel:\x2d\x2dreverse
SETUVAR fish_color_command:00ff00
SETUVAR fish_color_comment:5C6773
SETUVAR fish_color_cwd:73D0FF
SETUVAR fish_color_cwd:66D9EF
SETUVAR fish_color_cwd_root:red
SETUVAR fish_color_end:F29E74
SETUVAR fish_color_error:FF3333
@ -42,4 +42,4 @@ SETUVAR fish_pager_color_selected_completion:\x1d
SETUVAR fish_pager_color_selected_description:\x1d
SETUVAR fish_pager_color_selected_prefix:\x1d
SETUVAR fish_prompt_pwd_dir_length:0
SETUVAR fish_user_paths:/home/eduard/\x2ego/bin\x1e/home/eduard/\x2ebin
SETUVAR fish_user_paths:/home/eduard/\x2econfig/fish/scripts\x1e/home/eduard/\x2elocal/share/go/bin\x1e/home/eduard/\x2elocal/bin

View File

@ -0,0 +1,3 @@
function countchars
tr -d '\n' < $argv[1] | fold -w1 | sort | uniq -c | sort -nr
end

View File

@ -0,0 +1,8 @@
function f
set tmp (mktemp -t "yazi-cwd.XXXXXX")
yazi $argv --cwd-file="$tmp"
if set cwd (command cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
builtin cd -- "$cwd"
end
rm -f -- "$tmp"
end

View File

@ -2,5 +2,5 @@ function fish_prompt
set_color $fish_color_cwd
echo -n (prompt_pwd)
set_color normal
printf ' '
printf " "
end

View File

@ -0,0 +1,9 @@
function gpr
for dir in (find . -type d -name ".git")
set repo (dirname $dir)
set_color green
echo "Updating $repo"
set_color normal
git -C $repo pull
end
end

View File

@ -0,0 +1,15 @@
function t
if not tmux has-session -t main 2>/dev/null
init_session
end
tmux attach-session -t main
end
function init_session
tmux new-session -d -s main -d -x (tput cols) -y (tput lines)
tmux split-window -v -l 10 journalctl -f
tmux select-pane -t 0
tmux split-window -h -l 50 btop
tmux select-pane -t 0
end

20
.config/fish/scripts/backup Executable file
View File

@ -0,0 +1,20 @@
#!/bin/fish
set DIRECTORIES documents music pictures projects videos
set EXCLUDES node_modules .cache .godot .svelte-kit
set FLAGS -avz --delete
set HOSTS $argv
set USER (whoami)
set DESTINATION "~/files/"
for exclude in $EXCLUDES
set -a FLAGS --exclude $exclude
end
for host in $HOSTS
echo "[$host]"
for DIR in $DIRECTORIES
echo "Backing up $DIR..."
rsync $FLAGS ~/$DIR $USER@$host:$DESTINATION
end
end

26
.config/fish/scripts/gitloc Executable file
View File

@ -0,0 +1,26 @@
#!/bin/fish
echo "This will modify your git repository to count the lines of code for each commit."
read -l -P "Do you want to continue? [y/N] " CONFIRM
if test -z $CONFIRM; or test $CONFIRM != 'y'
return
end
if not command -q tokei
echo "tokei is not installed"
return
end
if not command -q jq
echo "jq is not installed"
return
end
git log --pretty=format:"%h" --reverse | read -za COMMITS
for commit in $COMMITS
git checkout $commit &> /dev/null
tokei --output json | jq ".Total.code"
end
git checkout main &> /dev/null

21
.config/foot/foot.ini Normal file
View File

@ -0,0 +1,21 @@
font=UbuntuMono Nerd Font:size=15.5
[colors]
background=26292C
foreground=E0E0E0
regular0=272822
regular1=F92672
regular2=A6E22E
regular3=F4BF75
regular4=66D9EF
regular5=AE81FF
regular6=A1EFE4
regular7=F8F8F2
bright0=75715E
bright1=F92672
bright2=A6E22E
bright3=F4BF75
bright4=66D9EF
bright5=AE81FF
bright6=A1EFE4
bright7=F9F8F5

View File

@ -10,4 +10,12 @@ fields=filename,name,generic,exec
[border]
width=0
radius=8
radius=10
[colors]
#background=26292c20
#text=ffffff20
#match=ffffff30
#selection=26292c20
#selection-text=ffffffe0
#selection-match=ffffffff

View File

@ -1,55 +0,0 @@
# Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly.
htop_version=3.3.0
config_reader_min_version=3
fields=46 47 1
hide_kernel_threads=1
hide_userland_threads=1
hide_running_in_container=0
shadow_other_users=0
show_thread_names=0
show_program_path=0
highlight_base_name=1
highlight_deleted_exe=1
shadow_distribution_path_prefix=0
highlight_megabytes=1
highlight_threads=1
highlight_changes=0
highlight_changes_delay_secs=5
find_comm_in_cmdline=1
strip_exe_from_cmdline=1
show_merged_command=0
header_margin=1
screen_tabs=0
detailed_cpu_time=0
cpu_count_from_one=0
show_cpu_usage=1
show_cpu_frequency=0
show_cpu_temperature=0
degree_fahrenheit=0
update_process_names=0
account_guest_in_cpu_meter=0
color_scheme=0
enable_mouse=1
delay=15
hide_function_bar=2
header_layout=two_50_50
column_meters_0=CPU Memory
column_meter_modes_0=1 1
column_meters_1=DiskIO NetworkIO
column_meter_modes_1=1 1
tree_view=0
sort_key=46
tree_sort_key=46
sort_direction=-1
tree_sort_direction=-1
tree_view_always_by_pid=0
all_branches_collapsed=0
screen:Main=PERCENT_CPU PERCENT_MEM Command
.sort_key=PERCENT_CPU
.tree_sort_key=PERCENT_CPU
.tree_view_always_by_pid=0
.tree_view=0
.sort_direction=-1
.tree_sort_direction=-1
.all_branches_collapsed=0

View File

@ -1,8 +1,5 @@
exec-once = $statusbar
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = waypaper --restore
exec-once = dunst
exec-once = wl-paste --watch cliphist store
exec-once = [workspace 1 silent] $browser
exec-once = [workspace 7 silent] $files
exec-once = [workspace 9 silent] $email
exec-once = $statusbar

View File

@ -1,27 +1,41 @@
# Cursor
env = XCURSOR_SIZE,24
env = WLR_NO_HARDWARE_CURSORS,1
# Firefox
env = MOZ_ENABLE_WAYLAND,1
# Nvidia
env = LIBVA_DRIVER_NAME,nvidia
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
# Programs
env = EDITOR,$editor
env = TERMINAL,$terminal
# Qt
env = QT_QPA_PLATFORM,wayland
env = QT_QPA_PLATFORM,wayland;xcb
env = QT_QPA_PLATFORMTHEME,qt6ct
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
# SSH
env = SSH_AUTH_SOCK,$XDG_RUNTIME_DIR/gcr/ssh
# Wayland
env = XDG_SESSION_TYPE,wayland
env = CLUTTER_BACKEND,wayland
env = EGL_PLATFORM,wayland
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
env = GDK_BACKEND,wayland
env = MOZ_ENABLE_WAYLAND,1
env = SDL_VIDEODRIVER,wayland,x11,windows
# Load shared objects immediately
env = LD_BIND_NOW,1
# OpenGL
env = __GL_GSYNC_ALLOWED,1
env = __GL_SHADER_DISK_CACHE_SKIP_CLEANUP,1
env = __GL_SYNC_TO_VBLANK,0
env = __GL_VRR_ALLOWED,1
# Proton
env = PROTON_ENABLE_WAYLAND,1
env = PROTON_NO_WM_DECORATION,1
env = PROTON_PREFER_SDL_INPUT,1
# Vulkan
env = DXVK_ASYNC,1
env = GSK_RENDERER,vulkan
# X11
env = XCURSOR_SIZE,24
# XDG
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_UTILS_BROWSER, $browser
env = XDG_UTILS_FILEMANAGER, $files
env = XDG_UTILS_TERMINAL, $terminal

View File

@ -1,72 +1,72 @@
general {
gaps_in = 5
gaps_out = 20
border_size = 2
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
layout = dwindle
allow_tearing = false
}
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
touchpad {
natural_scroll = no
}
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
gaps_out = 10
border_size = 1
allow_tearing = true
col.active_border = rgb(7f7f7f)
col.inactive_border = rgb(4f4f4f)
}
decoration {
rounding = 10
rounding = 5
active_opacity = 1.0
inactive_opacity = 0.9
blur {
enabled = true
size = 3
passes = 1
}
drop_shadow = yes
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
shadow {
enabled = true
range = 100
render_power = 3
color = rgba(1a1a1aaf)
offset = 0 40
scale = 0.9
}
}
animations {
enabled = yes
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 6, myBezier
animation = windowsOut, 1, 6, default, popin 80%
animation = border, 1, 9, default
animation = borderangle, 1, 7, default
animation = fade, 1, 6, default
animation = workspaces, 1, 1, default
animation = border, 0
animation = borderangle, 0
animation = workspaces, 0
animation = fade, 1, 2, default
animation = windows, 1, 2, default
animation = windowsOut, 1, 2, default, popin 80%
}
dwindle {
pseudotile = yes
preserve_split = yes
}
master {
new_is_master = true
}
gestures {
workspace_swipe = off
render {
explicit_sync = 1
explicit_sync_kms = 1
direct_scanout = true
}
misc {
force_default_wallpaper = 0
vrr = true
vfr = true
animate_manual_resizes = false
render_ahead_of_time = false
}
cursor {
use_cpu_buffer = true
no_hardware_cursors = true
}
input {
accel_profile = flat
sensitivity = 0
}
dwindle {
preserve_split = yes
}
ecosystem {
no_update_news = true
no_donation_nag = true
}
debug {
overlay = false
}

View File

@ -5,3 +5,4 @@ source = autostart.conf
source = general.conf
source = rules.conf
source = keys.conf
source = typing.conf

View File

@ -1,28 +1,41 @@
$leader = SUPER
$movews = CTRL ALT
$main = SUPER
# Apps
bind = $leader, T, exec, $terminal
bind = $leader, B, exec, $browser
bind = $leader, E, exec, $files
bind = $leader, L, exec, $lockscreen
bind = $leader, Space, exec, $menu
bind = $leader, F12, exec, $logout
bind = $main, B, exec, $browser
bind = $main, D, exec, $editor
bind = $main, E, exec, $files
bind = $main, F1, exec, $systeminfo
bind = $main, L, exec, $lockscreen
bind = $main, P, exec, $processmonitor
bind = $main, Return, exec, $floating
bind = $main, S, exec, pkill $statusbar || $statusbar
bind = $main, Space, exec, pkill $menu || $menu
bind = $main, T, exec, $terminal
bind = $main, W, exec, $wallpaper
bind = $main, U, exec, $update
bind = , Print, exec, $screenshot
# Window management
bind = $leader, C, killactive,
bind = $leader, F, fullscreen,
bind = $leader, V, togglefloating,
bind = $leader, P, pseudo,
bind = $leader, J, togglesplit,
bind = $leader, M, exit,
bind = $main, C, killactive,
bind = $main, F, fullscreen,
bind = $main, V, togglefloating,
bind = $main, J, togglesplit,
# Move focus with leader + arrow keys
bind = $leader, left, movefocus, l
bind = $leader, right, movefocus, r
bind = $leader, up, movefocus, u
bind = $leader, down, movefocus, d
# Session management
bind = $main, Backspace, exit,
bind = $main, F12, exec, $logout
# Window focus
bind = $main, left, movefocus, l
bind = $main, right, movefocus, r
bind = $main, up, movefocus, u
bind = $main, down, movefocus, d
# Window resizing
binde = $main SHIFT, left, resizeactive, -10 0
binde = $main SHIFT, right, resizeactive, 10 0
binde = $main SHIFT, up, resizeactive, 0 -10
binde = $main SHIFT, down, resizeactive, 0 10
# Switch workspaces with numpad
bind =, KP_Home, workspace, 1
@ -35,35 +48,46 @@ bind =, KP_End, workspace, 7
bind =, KP_Down, workspace, 8
bind =, KP_Next, workspace, 9
# Move active window to an adjacent workspace
bind = $movews, right, movetoworkspace, +1
bind = $movews, left, movetoworkspace, -1
# Move window to a specific workspace with numpad
bind = $main, KP_Home, movetoworkspace, 1
bind = $main, KP_Up, movetoworkspace, 2
bind = $main, KP_Prior, movetoworkspace, 3
bind = $main, KP_Left, movetoworkspace, 4
bind = $main, KP_Begin, movetoworkspace, 5
bind = $main, KP_Right, movetoworkspace, 6
bind = $main, KP_End, movetoworkspace, 7
bind = $main, KP_Down, movetoworkspace, 8
bind = $main, KP_Next, movetoworkspace, 9
# Move active window to a specific workspace
bind = $movews, 1, movetoworkspace, 1
bind = $movews, 2, movetoworkspace, 2
bind = $movews, 3, movetoworkspace, 3
bind = $movews, 4, movetoworkspace, 4
bind = $movews, 5, movetoworkspace, 5
bind = $movews, 6, movetoworkspace, 6
bind = $movews, 7, movetoworkspace, 7
bind = $movews, 8, movetoworkspace, 8
bind = $movews, 9, movetoworkspace, 9
# Move window to a specific workspace with numbers
bind = $main, 1, movetoworkspace, 1
bind = $main, 2, movetoworkspace, 2
bind = $main, 3, movetoworkspace, 3
bind = $main, 4, movetoworkspace, 4
bind = $main, 5, movetoworkspace, 5
bind = $main, 6, movetoworkspace, 6
bind = $main, 7, movetoworkspace, 7
bind = $main, 8, movetoworkspace, 8
bind = $main, 9, movetoworkspace, 9
# Example special workspace (scratchpad)
bind = $leader, S, togglespecialworkspace, magic
bind = $leader SHIFT, S, movetoworkspace, special:magic
# Move window to an adjacent workspace
bind = $main ALT, right, movetoworkspace, +1
bind = $main ALT, left, movetoworkspace, -1
# Move/resize windows with leader + LMB/RMB and dragging
bindm = $leader, mouse:272, movewindow
bindm = $leader, mouse:273, resizewindow
# Special workspace (scratchpad)
bind = $main, F9, togglespecialworkspace, magic
bind = $main SHIFT, F9, movetoworkspace, special:magic
# Move and resize windows (main + LMB/RMB and drag)
bindm = $main, mouse:272, movewindow
bindm = $main, mouse:273, resizewindow
# Media player control
bindl =, XF86AudioPlay, exec, playerctl play-pause
bindl =, XF86AudioNext, exec, playerctl next
bindl =, XF86AudioPrev, exec, playerctl previous
# Volume control
bindle =, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+
bindle =, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-
bindl =, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
# Media keys
bindl =, XF86AudioPlay, exec, playerctl play-pause
bindl =, XF86AudioNext, exec, playerctl next
bindl =, XF86AudioPrev, exec, playerctl previous
bindl =, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle

View File

@ -1 +1 @@
monitor=,highrr,auto,auto
monitor = ,highrr,auto,auto

View File

@ -1,10 +1,19 @@
# Apps
$browser = firefox
$editor = nvim
$email = geary
$files = nautilus
$email = evolution
$files = thunar
$logout = wlogout
$lockscreen = swaylock
$menu = pkill fuzzel || fuzzel
$screenshot = grim -g "$(slurp -d)" - | wl-copy
$statusbar = ~/.bin/launch-waybar
$terminal = alacritty
$menu = fuzzel
$screenshot = IMG=~/pictures/screenshots/$(date +%Y-%m-%d_%H-%M-%S).png && grim -g "$(slurp -d)" $IMG && wl-copy < $IMG
$statusbar = waybar
$terminal = foot
$wallpaper = waypaper
# Terminal based
$editor = $terminal -e nvim
$center = [float;size 960 540;center]
$floating = $center $terminal
$systeminfo = $center $terminal --hold -e fastfetch
$processmonitor = $terminal -e btop
$update = $floating -e sudo pacman -Syu

View File

@ -1,2 +1,21 @@
windowrulev2 = suppressevent maximize, class:.*
#windowrulev2 = tile, class:.*
# Blur the status bar
layerrule = blur, $statusbar
layerrule = ignorealpha 0.1, $statusbar
# Blur the launcher
layerrule = blur, launcher
layerrule = ignorealpha 0.1, launcher
# Disable maximize event
windowrule = suppressevent maximize, class:.*
# Open wallpaper selector in float mode
windowrule = float, class:($wallpaper)
# No gaps when there is a single window
# workspace = w[tv1], gapsout:0, gapsin:0
# workspace = f[1], gapsout:0, gapsin:0
# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
# windowrule = bordersize 0, floating:0, onworkspace:f[1]
# windowrule = rounding 0, floating:0, onworkspace:f[1]

27
.config/hypr/typing.conf Normal file
View File

@ -0,0 +1,27 @@
$mod = ALT
# Special characters
bindle = $mod, KP_Add, exec, wtype ±
bindle = $mod, KP_Subtract, exec, wtype ±
bindle = $mod, Equal, exec, wtype ≈
bindle = $mod, Grave, exec, wtype ≈
bindle = $mod, T, exec, wtype ™
bindle = $mod, C, exec, wtype ©
bindle = $mod, R, exec, wtype ®
bindle = $mod, L, exec, wtype λ
bindle = $mod, M, exec, wtype μ
# German language
bindle = $mod, A, exec, wtype ä
bindle = $mod SHIFT, A, exec, wtype Ä
bindle = $mod, O, exec, wtype ö
bindle = $mod SHIFT, O, exec, wtype Ö
bindle = $mod, U, exec, wtype ü
bindle = $mod SHIFT, U, exec, wtype Ü
bindle = $mod, S, exec, wtype ß
# Emoji
bindle = $mod, F, exec, wtype 🤣
bindle = $mod, H, exec, wtype ❤️
bindle = $mod, P, exec, wtype 🙏
bindle = $mod, W, exec, wtype 👋

24
.config/mako/config Normal file
View File

@ -0,0 +1,24 @@
anchor=top-center
width=300
height=110
font=Ubuntu Nerd Font 12
format=<b>%a ⏵</b> %s\n%b
sort=-time
layer=overlay
background-color=#2e3440
margin=5
padding=0,5,10
border-size=2
border-color=#88c0d0
border-radius=15
icons=0
max-icon-size=64
default-timeout=5000
ignore-timeout=1
[urgency=normal]
border-color=#d08770
[urgency=high]
border-color=#bf616a
default-timeout=0

12
.config/mpd/mpd.conf Normal file
View File

@ -0,0 +1,12 @@
auto_update "yes"
music_directory "~/music"
audio_output {
type "pipewire"
name "PipeWire Sound Server"
}
database {
plugin "simple"
path "~/.local/share/mpd/database"
}

9
.config/mpv/mpv.conf Normal file
View File

@ -0,0 +1,9 @@
deband
dscale=mitchell
gpu-api=vulkan
hwdec=auto
interpolation
no-osd-bar
profile=high-quality
video-sync=display-resample
vo=gpu-next

View File

@ -1,4 +1,6 @@
require("config.settings")
require("boot")
require("config.keys")
require("config.autocmds")
require("settings")
require("lsp")
require("packages")
require("keys")
require("autocmds")
require("usercmds")

View File

@ -1,19 +0,0 @@
{
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
"flash.nvim": { "branch": "main", "commit": "48817af25f51c0590653bbc290866e4890fe1cbe" },
"gitsigns.nvim": { "branch": "main", "commit": "2c2463dbd82eddd7dbab881c3a62cfbfbe3c67ae" },
"lazy.nvim": { "branch": "main", "commit": "aedcd79811d491b60d0a6577a9c1701063c2a609" },
"mini.completion": { "branch": "main", "commit": "0cf6c4e257b5e8189ac6b3ffa2064a319c4eb8a8" },
"neodev.nvim": { "branch": "main", "commit": "84e0290f5600e8b89c0dfcafc864f45496a53400" },
"noice.nvim": { "branch": "main", "commit": "bf67d70bd7265d075191e7812d8eb42b9791f737" },
"nui.nvim": { "branch": "main", "commit": "b81333d12f824dbed5eb231c8a4409a290fdd848" },
"nvim-lspconfig": { "branch": "master", "commit": "9553725789be682ecd945a527ec552e489ea8534" },
"nvim-notify": { "branch": "master", "commit": "5371f4bfc1f6d3adf4fe9d62cd3a9d44356bfd15" },
"nvim-tree.lua": { "branch": "master", "commit": "d52fdeb0a300ac42b9cfa65ae0600a299f8e8677" },
"nvim-treesitter": { "branch": "master", "commit": "e3e5ff4ebddcbfa8f5798253ebd1f9b449e8ee69" },
"nvim-web-devicons": { "branch": "master", "commit": "4adea17610d140a99c313e3f79a9dc01825d59ae" },
"onedark.nvim": { "branch": "master", "commit": "1230aaf2a427b2c5b73aba6e4a9a5881d3e69429" },
"plenary.nvim": { "branch": "master", "commit": "4f71c0c4a196ceb656c824a70792f3df3ce6bb6d" },
"telescope-project.nvim": { "branch": "master", "commit": "1aaf16580a614601a7f7077d9639aeb457dc5559" },
"telescope.nvim": { "branch": "master", "commit": "aa83606299c5beeaf80e656efbf07bde258db7be" }
}

View File

@ -0,0 +1,5 @@
return {
cmd = { "clangd", "--background-index" },
root_markers = { "meson_options.txt", "CMakePresets.json" },
filetypes = { "c", "cpp" },
}

View File

@ -0,0 +1,5 @@
return {
cmd = { "gopls" },
root_markers = { "go.mod", "go.work" },
filetypes = { "go", "gomod", "gowork", "gotmpl" },
}

View File

@ -0,0 +1,5 @@
return {
cmd = { "rust-analyzer" },
root_markers = { "Cargo.toml" },
filetypes = { "rust" },
}

View File

@ -0,0 +1,70 @@
local on = vim.api.nvim_create_autocmd
local group = vim.api.nvim_create_augroup("autocmds", {clear = true})
on({ "BufNewFile", "BufRead" }, {
desc = "Enable word wrap in text files and markdown documents",
group = group,
pattern = { "*.txt", "*.md" },
callback = function()
vim.opt_local.wrap = true
vim.opt_local.signcolumn = "no"
end,
})
on({ "LspAttach" }, {
desc = "LSP completion",
group = group,
callback = function(ev)
local client = vim.lsp.get_client_by_id(ev.data.client_id)
if client:supports_method("textDocument/completion") then
vim.lsp.completion.enable(true, client.id, ev.buf, { autotrigger = true })
end
end,
})
on({ "TermOpen", "TermEnter" }, {
desc = "Disable sign column in terminals",
group = group,
callback = function()
vim.opt_local.signcolumn = "no"
end,
})
on({ "TextYankPost" }, {
desc = "Highlight when copying text",
group = group,
callback = function()
vim.highlight.on_yank()
end,
})
on({ "VimEnter" }, {
desc = "Allow opening a directory and jumping to project root",
group = group,
callback = function()
-- Change file to its directory if needed
local name = vim.api.nvim_buf_get_name(0)
local is_directory = vim.fn.isdirectory(name)
if is_directory == 0 then
name = vim.fs.dirname(name)
end
-- Switch to root directory of the project
local root_patterns = { ".git", "go.mod", "init.lua" }
local root_dir = vim.fs.dirname(vim.fs.find(root_patterns, {
upward = true,
path = name,
})[1])
if root_dir then
vim.api.nvim_set_current_dir(root_dir)
else
vim.api.nvim_set_current_dir(name)
end
if is_directory ~= 0 then
require("telescope.builtin").find_files()
end
end,
})

View File

@ -1,47 +0,0 @@
local on = vim.api.nvim_create_autocmd
on({ "TermOpen", "TermEnter" }, {
callback = function()
vim.opt_local.signcolumn = "no"
end,
})
on({ "BufNewFile", "BufRead" }, {
pattern = { "*.txt", "*.md" },
callback = function()
vim.opt_local.wrap = true
vim.opt_local.signcolumn = "no"
end,
})
on({ "VimEnter" }, {
callback = function()
-- Change file to its directory if needed
local file = vim.api.nvim_buf_get_name(0)
if vim.fn.isdirectory(file) == 0 then
file = vim.fs.dirname(file)
end
-- Switch to root directory of the project
local root_patterns = { ".git", "go.mod", "init.lua" }
local root_dir = vim.fs.dirname(vim.fs.find(root_patterns, {
upward = true,
path = file,
})[1])
if root_dir then
vim.api.nvim_set_current_dir(root_dir)
else
vim.api.nvim_set_current_dir(file)
end
-- Open file explorer if we have enough space
local files = require("nvim-tree.api")
local width = vim.go.columns
if width > 120 then
files.tree.toggle({ focus = false })
end
end,
})

View File

@ -1,67 +0,0 @@
local function map(mode, lhs, rhs, info)
vim.keymap.set(mode, lhs, rhs, { desc = info })
end
-- Basics
map("n", ";", ":", "Command mode")
map("n", "U", "<cmd>redo<cr>", "Redo")
map({ "i", "n" }, "<esc>", "<cmd>noh<cr><esc>", "Clear search")
map({ "i", "n", "s", "v" }, "<C-s>", "<cmd>w<cr><esc>", "Save file")
map("n", "<C-l>", "^Da", "Rewrite line")
map("i", "<C-l>", "<esc>^Da", "Rewrite line")
map("n", "<C-a>", "ggVG", "Select all")
map({ "n", "v" }, "<C-b>", "^", "Beginning of line")
map("i", "<C-b>", "<esc>^i", "Beginning of line")
map({ "i", "n", "v" }, "<C-e>", "<end>", "End of line")
map("n", "qq", "<cmd>qa!<cr>", "Quit all")
-- Editing multiple instances
map("n", "<C-d>", "*#", "Search word under cursor")
map("n", "<C-r>", "*#:%s//<C-r><C-w>", "Replace word under cursor")
map("v", "<C-d>", "y/<C-r>\"<cr>N", "Search selection")
map("v", "<C-r>", "y/<C-r>\"<cr>N:%s//<C-r>\"", "Replace selection")
-- Increasing and decreasing numbers
map("n", "+", "<C-a>", "Increase number")
map("n", "-", "<C-x>", "Decrease number")
map("n", "<kPlus>", "<C-a>", "Increase number")
map("n", "<kMinus>", "<C-x>", "Decrease number")
-- Buffer management
map("n", "<C-n>", "<cmd>enew<cr>", "New file")
map("n", "<C-q>", "<cmd>bd<cr>", "Delete buffer")
-- Copy and paste
map("v", "<C-c>", "y")
map("n", "<C-v>", '"+p')
-- Indenting
map("v", "<", "<gv")
map("v", ">", ">gv")
-- Shift arrow selection
map("n", "<S-Up>", "v<Up>")
map("n", "<S-Down>", "v<Down>")
map("n", "<S-Left>", "v<Left>")
map("n", "<S-Right>", "v<Right>")
map("v", "<S-Up>", "<Up>")
map("v", "<S-Down>", "<Down>")
map("v", "<S-Left>", "<Left>")
map("v", "<S-Right>", "<Right>")
map("i", "<S-Up>", "<Esc>v<Up>")
map("i", "<S-Down>", "<Esc>v<Down>")
map("i", "<S-Left>", "<Esc>v<Left>")
map("i", "<S-Right>", "<Esc>v<Right>")
-- LSP
map("n", "gr", vim.lsp.buf.references, "References")
map("n", "gd", vim.lsp.buf.definition, "Definition")
map({ "n", "i" }, "<f1>", vim.lsp.buf.hover, "Hover")
map({ "n", "i" }, "<f2>", vim.lsp.buf.rename, "Rename")
map({ "n", "i" }, "<C-f>", vim.lsp.buf.format, "Format")
map("n", "<leader>ca", vim.lsp.buf.code_action, "Code action")
-- Package manager
map("n", "<leader>l", "<cmd>Lazy<cr>", "Lazy")

View File

@ -45,55 +45,55 @@ return {
"hrsh7th/nvim-cmp",
event = "InsertEnter",
dependencies = {
"hrsh7th/cmp-nvim-lsp",
-- "hrsh7th/cmp-nvim-lsp",
-- "hrsh7th/cmp-buffer",
-- "hrsh7th/cmp-path",
-- "L3MON4D3/LuaSnip",
},
config = function()
opts = {
completion = {
autocomplete = true,
completeopt = "menu,menuone,noinsert",
},
formatting = {
fields = { "abbr", "kind", "menu" },
format = function(_, item)
local icon = icons[item.kind] or ""
item.kind = string.format(" %s %s", icon, item.kind)
return item
end,
},
-- snippet = {
-- expand = function(args)
-- require("luasnip").lsp_expand(args.body)
-- end,
-- },
-- preselect = cmp.PreselectMode.None,
sources = {
-- { name = "nvim_lsp" },
-- { name = "luasnip" },
{ name = "buffer" },
-- { name = "path" },
},
window = {
completion = {
border = "rounded",
scrollbar = false,
},
documentation = {
border = "rounded",
}
},
},
config = function(_, opts)
local cmp = require("cmp")
local opts = {
completion = {
-- autocomplete = false,
completeopt = "menu,menuone,noinsert",
},
formatting = {
fields = { "abbr", "kind", "menu" },
format = function(_, item)
local icon = icons[item.kind] or ""
item.kind = string.format(" %s %s", icon, item.kind)
return item
end,
},
mapping = {
["<C-space>"] = cmp.mapping.complete(),
["<C-up>"] = cmp.mapping.select_prev_item(),
["<C-down>"] = cmp.mapping.select_next_item(),
["<C-x>"] = cmp.mapping.abort(),
["<cr>"] = cmp.mapping.confirm({ select = true }),
},
-- snippet = {
-- expand = function(args)
-- require("luasnip").lsp_expand(args.body)
-- end,
-- },
-- preselect = cmp.PreselectMode.None,
sources = {
{ name = "nvim_lsp" },
-- { name = "luasnip" },
-- { name = "buffer" },
-- { name = "path" },
},
window = {
completion = {
border = "rounded",
scrollbar = false,
},
documentation = {
border = "rounded",
}
},
opts.mapping = {
["<C-space>"] = cmp.mapping.complete(),
["<C-up>"] = cmp.mapping.select_prev_item(),
["<C-down>"] = cmp.mapping.select_next_item(),
["<C-x>"] = cmp.mapping.abort(),
["<cr>"] = cmp.mapping.confirm({ select = true }),
}
cmp.setup(opts)

View File

@ -0,0 +1,11 @@
return {
"j-hui/fidget.nvim",
opts = {
integration = {
["nvim-tree"] = {
enable = true,
},
},
},
config = true,
}

View File

@ -0,0 +1,15 @@
return {
"lukas-reineke/indent-blankline.nvim",
event = "VeryLazy",
main = "ibl",
opts = {
indent = {
char = "",
},
scope = {
enabled = true,
show_start = false,
},
},
config = true,
}

View File

@ -0,0 +1,4 @@
return {
"mrded/nvim-lsp-notify",
config = true,
}

View File

@ -0,0 +1,103 @@
return {
"neovim/nvim-lspconfig",
event = { "BufReadPre", "BufNewFile" },
opts = {
servers = {
clangd = {},
gdscript = {},
gopls = {},
lua_ls = {
settings = {
Lua = {
completion = {
callSnippet = "Replace",
},
runtime = {
version = "LuaJIT",
},
workspace = {
checkThirdParty = false,
library = {
"${3rd}/luv/library",
unpack(vim.api.nvim_get_runtime_file("", true)),
},
},
},
},
},
rust_analyzer = {
settings = {
["rust-analyzer"] = {
imports = {
granularity = {
group = "module",
},
prefix = "self",
},
cargo = {
buildScripts = {
enable = true,
},
},
procMacro = {
enable = true
},
},
},
},
},
},
config = function(_, opts)
-- Servers
local servers = opts.servers
for server, server_opts in pairs(servers) do
require("lspconfig")[server].setup(server_opts)
end
-- Icons
local icons = {
Error = "",
Warn = "",
Hint = "",
Info = "",
}
for name, icon in pairs(icons) do
name = "DiagnosticSign" .. name
vim.fn.sign_define(name, { text = icon, texthl = name, numhl = "" })
end
-- Runs when the LSP is attached
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("lsp-attach", { clear = true }),
callback = function(event)
local function map(mode, lhs, rhs, info)
vim.keymap.set(mode, lhs, rhs, { buffer = event.buf, desc = "LSP: " .. info })
end
map("n", "gr", require("telescope.builtin").lsp_references, "References")
map("n", "gd", require("telescope.builtin").lsp_definitions, "Definition")
map({ "n", "i" }, "<f1>", vim.lsp.buf.hover, "Hover")
map({ "n", "i" }, "<f2>", vim.lsp.buf.rename, "Rename")
map({ "n", "i" }, "<C-f>", vim.lsp.buf.format, "Format")
map("n", "<leader>ca", vim.lsp.buf.code_action, "Code action")
-- Highlight the word your cursor is on
-- 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

@ -0,0 +1,11 @@
return {
"L3MON4D3/LuaSnip",
dependencies = {
"rafamadriz/friendly-snippets"
},
event = "InsertEnter",
version = "v2.*",
config = function()
require("luasnip.loaders.from_vscode").lazy_load()
end,
}

View File

@ -0,0 +1,18 @@
return {
"echasnovski/mini.surround",
event = { "BufReadPost", "BufNewFile" },
opts = {
mappings = {
add = 'gsa',
delete = 'gsd',
find = 'gsf',
find_left = 'gsF',
highlight = 'gsh',
replace = 'gsr',
update_n_lines = 'gsn',
suffix_last = '',
suffix_next = '',
},
},
config = true,
}

View File

@ -1,14 +0,0 @@
return {
"brenton-leighton/multiple-cursors.nvim",
event = "VeryLazy",
keys = {
{"<C-Down>", "<Cmd>MultipleCursorsAddDown<CR>", mode = {"n", "i"}},
{"<C-j>", "<Cmd>MultipleCursorsAddDown<CR>"},
{"<C-Up>", "<Cmd>MultipleCursorsAddUp<CR>", mode = {"n", "i"}},
{"<C-k>", "<Cmd>MultipleCursorsAddUp<CR>"},
{"<C-LeftMouse>", "<Cmd>MultipleCursorsMouseAddDelete<CR>", mode = {"n", "i"}},
{"<Leader>a", "<Cmd>MultipleCursorsAddBySearch<CR>", mode = {"n", "x"}},
{"<Leader>A", "<Cmd>MultipleCursorsAddBySearchV<CR>", mode = {"n", "x"}},
},
config = true,
}

View File

@ -0,0 +1,14 @@
return {
"mg979/vim-visual-multi",
keys = {
{ "<C-d>", mode = { "n", "x" }, desc = "Multicursor (word)" },
{ "<C-Up>", mode = { "n", "x" }, desc = "Multicursor (next line)" },
{ "<C-Down>", mode = { "n", "x" }, desc = "Multicursor (previous line)" },
},
init = function()
vim.g.VM_maps = {
["Find Under"] = "<C-d>",
["Find Subword Under"] = "<C-d>",
}
end,
}

View File

@ -3,7 +3,6 @@ return {
event = "VeryLazy",
dependencies = {
"MunifTanjim/nui.nvim",
"rcarriga/nvim-notify",
},
opts = {
lsp = {

View File

@ -3,6 +3,8 @@ return {
event = "VeryLazy",
opts = {
background_colour = "#000000",
fps = 60,
render = "compact",
timeout = 0,
},
config = true,

View File

@ -0,0 +1,10 @@
return {
"folke/snacks.nvim",
event = "BufReadPre",
opts = {
explorer = {
replace_netrw = true,
},
},
config = true,
}

68
.config/nvim/lua/keys.lua Normal file
View File

@ -0,0 +1,68 @@
local function map(mode, lhs, rhs, info)
vim.keymap.set(mode, lhs, rhs, { desc = info })
end
map("n", ";", ":", "Command mode")
map("n", "U", "<cmd>redo<cr>", "Redo")
map("n", "<Bslash>", "<cmd>ToggleWord<cr>", "Toggle word")
map("n", "<C-q>", "<cmd>close<cr>", "Close window")
map("n", "<leader>l", "<cmd>Lazy<cr>", "Lazy")
map({"n", "v"}, "q", "<cmd>qa<cr>", "Quit all")
map({"n", "v"}, "<leader>q", "<cmd>qa!<cr>", "Quit all")
map({"n", "i"}, "<esc>", "<cmd>noh<cr><esc>", "Clear search")
map({"n", "i", "s", "v"}, "<C-s>", "<cmd>w<cr><esc>", "Save file")
-- Add or delete empty lines
map("n", "<C-j>", "<cmd>set paste<cr>m`O<esc>``<cmd>set nopaste<cr>", "Add empty line above")
map("n", "<C-k>", "m`<cmd>-g/\\m^\\s*$/d<cr>``<cmd>noh<cr>", "Delete empty line above")
map("n", "<A-j>", "<cmd>set paste<cr>m`o<esc>``<cmd>set nopaste<cr>", "Add empty line below")
map("n", "<A-k>", "m`<cmd>+g/\\m^\\s*$/d<cr>``<cmd>noh<cr>", "Delete empty line below")
-- Quick movement
map("n", "J", "}", "Next paragraph")
map("n", "K", "{", "Previous paragraph")
-- Editing multiple instances
map("n", "<f2>", "*#:%s//<C-r><C-w>/g<left><left>", "Replace word under cursor")
map("v", "<f2>", "y/<C-r>\"<cr>N:%s//<C-r>\"/g<left><left>", "Replace selection")
map("n", "<f3>", "#*", "Search word under cursor")
map("v", "<f3>", "y/<C-r>\"<cr>N", "Search selection")
-- Line movement
map({"n", "v"}, "<C-b>", "^", "Beginning of line")
map("i", "<C-b>", "<esc>^i", "Beginning of line")
map({"i", "n", "v"}, "<C-e>", "<end>", "End of line")
-- Increasing and decreasing numbers
map("n", "+", "<C-a>", "Increase number")
map("n", "-", "<C-x>", "Decrease number")
map("n", "<kPlus>", "<C-a>", "Increase number")
map("n", "<kMinus>", "<C-x>", "Decrease number")
-- Indenting
map("n", "<Tab>", "V>gv<esc>")
map("n", "<S-Tab>", "V<gv<esc>")
map("v", "<Tab>", ">gv")
map("v", "<S-Tab>", "<gv")
-- Shift arrow selection
map("n", "<S-Up>", "v<Up>")
map("n", "<S-Down>", "v<Down>")
map("n", "<S-Left>", "v<Left>")
map("n", "<S-Right>", "v<Right>")
map("v", "<S-Up>", "<Up>")
map("v", "<S-Down>", "<Down>")
map("v", "<S-Left>", "<Left>")
map("v", "<S-Right>", "<Right>")
map("i", "<S-Up>", "<Esc>v<Up>")
map("i", "<S-Down>", "<Esc>v<Down>")
map("i", "<S-Left>", "<Esc>v<Left>")
map("i", "<S-Right>", "<Esc>v<Right>")
-- Window switching
map("n", "<A-Up>", "<C-w>k", "Move to the window above")
map("n", "<A-Down>", "<C-w>j", "Move to the window below")
map("n", "<A-Left>", "<C-w>h", "Move to the window on the left")
map("n", "<A-Right>", "<C-w>l", "Move to the window on the right")

9
.config/nvim/lua/lsp.lua Normal file
View File

@ -0,0 +1,9 @@
vim.diagnostic.config({
virtual_lines = true,
})
vim.lsp.enable({
"clangd",
"gopls",
"rust-analyzer",
})

View File

@ -1,4 +1,6 @@
-- Install the package manager if needed
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
@ -9,8 +11,10 @@ if not vim.loop.fs_stat(lazypath) then
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
-- Load plugins
require("lazy").setup("plugins", {
defaults = {
lazy = true,
@ -18,6 +22,17 @@ require("lazy").setup("plugins", {
change_detection = {
notify = false
},
rocks = {
enabled = false
},
ui = {
icons = {
ft = "",
lazy = "󰂠 ",
loaded = "",
not_loaded = "",
},
},
performance = {
rtp = {
disabled_plugins = {
@ -51,4 +66,4 @@ require("lazy").setup("plugins", {
},
},
},
})
})

View File

@ -0,0 +1,5 @@
return {
"windwp/nvim-autopairs",
event = "InsertEnter",
config = true,
}

View File

@ -1,7 +1,9 @@
return {
"folke/flash.nvim",
event = { "BufReadPost", "BufNewFile" },
keys = {
{ "s", function() require("flash").jump() end, mode = { "n", "x", "o" }, desc = "Flash" },
{ "S", function() require("flash").treesitter() end, mode = { "n", "o", "x" }, desc = "Flash Treesitter" },
{ "s", function() require("flash").jump() end, mode = { "n", "o", "x" }, desc = "Flash" },
{ "S", function() require("flash").treesitter() end, mode = { "n", "o", "x" }, desc = "Flash Treesitter" },
},
config = true,
}

View File

@ -2,4 +2,4 @@ return {
"lewis6991/gitsigns.nvim",
event = "BufReadPre",
config = true,
}
}

View File

@ -1,46 +0,0 @@
return {
"neovim/nvim-lspconfig",
event = { "BufReadPre", "BufNewFile" },
dependencies = {
"folke/neodev.nvim",
},
opts = {
servers = {
clangd = {},
gdscript = {},
gopls = {},
lua_ls = {
settings = {
Lua = {
workspace = {
checkThirdParty = false,
},
},
},
},
},
},
config = function(_, opts)
require("neodev").setup()
-- Servers
local servers = opts.servers
for server, server_opts in pairs(servers) do
require("lspconfig")[server].setup(server_opts)
end
-- Icons
local icons = {
Error = "",
Warn = "",
Hint = "",
Info = "",
}
for name, icon in pairs(icons) do
name = "DiagnosticSign" .. name
vim.fn.sign_define(name, { text = icon, texthl = name, numhl = "" })
end
end,
}

View File

@ -0,0 +1,7 @@
return {
"tanvirtin/monokai.nvim",
lazy = false,
priority = 1000,
opts = {},
config = true,
}

View File

@ -5,10 +5,10 @@ return {
"nvim-telescope/telescope-project.nvim",
},
keys = {
{"<C-Tab>", "<cmd>Telescope buffers<cr>", desc = "Buffers"},
{"<leader>f", "<cmd>Telescope find_files<cr>", desc = "Find files"},
{"<leader>r", "<cmd>Telescope oldfiles<cr>", desc = "Recent files"},
{"<leader>p", "<cmd>Telescope project<cr>", desc = "Projects"},
{"<leader>b", "<cmd>Telescope buffers<cr>", desc = "Buffers"},
{"<leader>r", "<cmd>Telescope oldfiles<cr>", desc = "Recent files"},
},
config = function()
require("telescope").setup({
@ -32,6 +32,5 @@ return {
},
},
})
require("telescope").load_extension("project")
end,
}

View File

@ -4,30 +4,10 @@ return {
build = ":TSUpdate",
opts = {
ensure_installed = {
-- basics
"bash",
"json",
"markdown",
"markdown_inline",
"lua",
"regex",
"vim",
-- go
"go",
"gomod",
"gowork",
"gosum",
-- web dev
"html",
"css",
"javascript",
"typescript",
"svelte",
-- game dev
"gdscript",
},
highlight = { enable = true },
indent = { enable = true },

View File

@ -10,6 +10,7 @@ end
local opt = vim.opt
opt.autowrite = false
opt.clipboard = "unnamedplus"
opt.cmdheight = 0
opt.completeopt = "menu,menuone,noinsert"
opt.conceallevel = 0
opt.cursorline = true
@ -51,3 +52,7 @@ opt.statusline = "%{repeat('─',winwidth('.'))}"
-- Undo
opt.undofile = true
opt.undolevels = 10000
-- Virtual text
vim.diagnostic.config({ virtual_lines = true })
vim.lsp.enable({"clangd", "gopls", "rust-analyzer"})

View File

@ -0,0 +1,40 @@
-- ToggleWord
vim.api.nvim_create_user_command("ToggleWord", function()
local inverse = {
["bottom"] = "top",
["horizontal"] = "vertical",
["left"] = "right",
["on"] = "off",
["true"] = "false",
["True"] = "False",
["TRUE"] = "FALSE",
["yes"] = "no",
["Yes"] = "No",
["YES"] = "NO",
["1"] = "0",
["<"] = ">",
["("] = ")",
["["] = "]",
["{"] = "}",
['"'] = "'",
['""'] = "''",
["+"] = "-",
["==="] = "!==",
["=="] = "!=",
}
for key, value in pairs(inverse) do
inverse[value] = key
end
vim.cmd("normal! yiw")
local yanked = vim.fn.getreg('"')
local flipped = inverse[yanked]
if flipped == nil then
return
end
vim.cmd("normal! ciw" .. flipped)
end, {})

View File

@ -2,5 +2,19 @@
{
"key": "ctrl+,",
"command": "workbench.action.openSettingsJson"
},
{
"key": "alt+e",
"command": "editor.action.insertSnippet",
"args": {
"snippet": "if err != nil {\n\treturn err$0\n}"
}
},
{
"key": "alt+n",
"command": "editor.action.insertSnippet",
"args": {
"snippet": "$CURSOR_NUMBER"
}
}
]
]

View File

@ -7,13 +7,16 @@
"editor.glyphMargin": false,
"editor.guides.indentation": false,
"editor.hideCursorInOverviewRuler": true,
"editor.inlayHints.enabled": "off",
"editor.insertSpaces": false,
"editor.lineNumbers": "off",
"editor.renderFinalNewline": "off",
"editor.renderLineHighlight": "none",
"editor.scrollbar.vertical": "hidden",
"editor.scrollbar.verticalScrollbarSize": 0,
"editor.scrollBeyondLastLine": false,
"editor.showFoldingControls": "never",
"editor.stickyScroll.enabled": false,
"explorer.compactFolders": false,
"explorer.confirmDelete": false,
"explorer.openEditors.visible": 1,
@ -26,17 +29,19 @@
"gitProjectManager.maxDepthRecursion": 2,
"gitProjectManager.openInNewWindow": false,
"gitProjectManager.storeRepositoriesBetweenSessions": false,
"go.gopath": "~/.go",
"go.gopath": "~/.local/share/go",
"go.toolsManagement.autoUpdate": true,
"godotTools.editorPath.godot4": "/usr/bin/godot",
"godotTools.lsp.serverPort": 6005,
"security.workspace.trust.enabled": false,
"svelte.enable-ts-plugin": true,
"telemetry.telemetryLevel": "off",
"typescript.updateImportsOnFileMove.enabled": "always",
"window.customTitleBarVisibility": "never",
"window.menuBarVisibility": "hidden",
"window.titleBarStyle": "native",
"window.zoomLevel": 1,
"workbench.activityBar.location": "hidden",
"workbench.colorCustomizations": {"scrollbar.shadow": "#0000"},
"workbench.colorTheme": "Monokai",
"workbench.editor.enablePreview": false,
"workbench.editor.showTabs": "none",
@ -44,4 +49,5 @@
"workbench.layoutControl.enabled": false,
"workbench.startupEditor": "none",
"workbench.statusBar.visible": false,
"workbench.tree.enableStickyScroll": false,
}

View File

@ -1,88 +0,0 @@
{
"layer": "top",
"modules-left": ["custom/os","hyprland/workspaces"],
"modules-center": ["clock"],
"modules-right": ["cpu","custom/gpu","memory","disk","network","custom/power"],
"clock": {
"interval": 60,
"format": "{:%H : %M}",
"tooltip-format": "{:%A, %Y-%m-%d}",
"on-click": "date -u +'%Y-%m-%dT%H:%M:%SZ' | wl-copy"
},
"cpu": {
"interval": 2,
"format": "{icon} {usage}%",
"format-icons": ["󰾆", "󰾅", "󰓅"],
"max-length": 10,
"on-click": "$TERMINAL -e btop",
},
"custom/gpu": {
"exec": "nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits",
"format": " {}%",
"return-type": "",
"interval": 2,
"on-click": "$TERMINAL -e nvtop",
},
"memory": {
"interval": 2,
"format": " {used} GiB",
"max-length": 10,
"on-click": "$TERMINAL -e btop",
},
"network": {
"interval": 2,
"format": " {ifname}",
"format-wifi": " {essid}",
"format-ethernet": " {bandwidthUpBits}  {bandwidthDownBits}",
"format-disconnected": "",
"tooltip-format": "{ifname} via {gwaddr}",
"tooltip-format-wifi": " {essid} ({signalStrength}%)",
"tooltip-format-ethernet": " {ifname}",
"tooltip-format-disconnected": "",
"max-length": 50,
"on-click": "$TERMINAL -e nethogs",
},
"disk": {
"interval": 30,
"format": "󰋊 {used}",
"path": "/",
"on-click": "$TERMINAL -e dua i",
},
"mpris": {
"format": "{player_icon} {title}",
"format-paused": "{status_icon} {title}",
"player-icons": {
"default": "󰝚",
"mpv": "󰝚"
},
"status-icons": {
"paused": "󰏤"
},
"title-len": 30,
},
"wireplumber": {
"format": "{icon} {volume}%",
"format-muted": "",
"scroll-step": 5,
"on-click": "helvum",
"format-icons": ["", "", ""],
},
"hyprland/workspaces": {
"format": "{icon}",
"on-click": "activate",
"persistent-workspaces": {
"*": 9
},
"format-icons": {
"urgent": "",
"active": "",
"default": ""
},
"sort-by-number": true,
},
"custom/os":{
"format": "",
"tooltip": false,
"on-click": "$TERMINAL --hold -e neofetch",
},
}

View File

@ -0,0 +1,8 @@
{
"layer": "top",
"position": "top",
"modules-left": ["cpu", "custom/gpu", "memory", "disk"],
"modules-center": ["hyprland/workspaces"],
"modules-right": ["wireplumber", "clock"],
"include": "~/.config/waybar/modules.jsonc",
}

View File

@ -0,0 +1,92 @@
{
"cpu": {
"interval": 2,
"format": "{icon} {usage}%",
"format-icons": ["󰾆 ", "󰾅 ", "󰓅 "],
"on-click": "$TERMINAL -- btop",
},
"custom/gpu": {
"interval": 2,
"format": " {}%",
"exec": "nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits",
"return-type": "",
"on-click": "$TERMINAL -- nvtop",
},
"memory": {
"interval": 2,
"format": " {used} G",
"on-click": "$TERMINAL -- btop",
},
"disk": {
"interval": 30,
"format": "󰋊 {specific_used:0.0f} G",
"path": "/",
"unit": "GiB",
"on-click": "$TERMINAL -- dua i /",
},
"custom/pacman": {
"format": " {}",
"interval": 30,
"exec": "checkupdates | wc -l",
"exec-if": "exit 0",
"on-click": "$TERMINAL -- sudo pacman -Syu",
"signal": 8,
"tooltip": false,
},
"custom/processes": {
"interval": 2,
"format": "[PRC] {}",
"exec": "ps --ppid 2 -p 2 --deselect --no-headers | wc -l",
"return-type": "",
"tooltip-format": "Number of running processes",
"on-click": "$TERMINAL -- btop",
},
"custom/tcp": {
"interval": 2,
"format": "[TCP] {}",
"exec": "lsof -tPniTCP | wc -l",
"return-type": "",
"tooltip-format": "Number of processes with TCP connections",
"on-click": "$TERMINAL -- bandwhich",
},
"custom/udp": {
"interval": 2,
"format": "[UDP] {}",
"exec": "lsof -tPniUDP | wc -l",
"return-type": "",
"tooltip-format": "Number of processes with UDP connections",
"on-click": "$TERMINAL -- bandwhich",
},
"hyprland/workspaces": {
"format": "{icon}",
"persistent-workspaces": {
"*": 9
},
"format-icons": {
"default": " ",
"empty": " ",
"active": " ",
"urgent": " ",
},
"sort-by-number": true,
"on-click": "activate",
},
"wireplumber": {
"format": "{icon} {volume}%",
"format-muted": " ",
"format-icons": [" ", " ", " "],
"scroll-step": 5,
"on-click": "easyeffects",
},
"clock": {
"interval": 60,
"format": " {:%H:%M}",
"tooltip-format": "<tt>{calendar}</tt>",
"calendar": {
"format": {
"today": "<span color='#fAfBfC'><b>{}</b></span>"
}
},
"on-click": "date -u +'%Y-%m-%dT%H:%M:%SZ' | wl-copy",
},
}

View File

@ -1,48 +1,42 @@
* {
border: none;
font-family: "Ubuntu Nerd Font";
font-size: 14px;
all: unset;
font-family: "UbuntuMono Nerd Font";
font-size: 15px;
padding: 0;
margin: 0;
}
window#waybar {
background: transparent;
.modules-left, .modules-center, .modules-right {
background-color: rgba(38, 41, 44, 0.5);
border: 1px #4f4f4f solid;
border-radius: 3px;
margin: 8px;
margin-bottom: 0;
}
window#waybar.hidden {
opacity: 0.2;
#cpu, #custom-gpu, #memory, #disk, #custom-processes, #custom-tcp, #custom-udp, #custom-pacman, #wireplumber, #clock {
color: rgba(255, 255, 255, 0.75);
border-radius: 3px;
padding: 4px 8px;
margin-left: 4px;
}
#clock,
#cpu,
#disk,
#memory,
#mpris,
#network,
#wireplumber,
#workspaces,
#custom-os,
#custom-gpu {
color: @fg;
background: @bg;
margin: 0 8px;
transition: none;
tooltip {
background-color: rgba(38, 41, 44, 0.5);
border: 1px #4f4f4f solid;
border-radius: 3px;
padding: 4px 8px;
}
#workspaces button {
padding: 0px 5px;
color: rgba(255, 255, 255, 0.5);
background: transparent;
text-shadow: none;
color: rgba(255, 255, 255, 0.1);
padding: 4px;
}
#workspaces button.empty {
color: transparent;
}
#workspaces button:hover,
#workspaces button.active {
color: rgba(255, 255, 255, 1.0);
}
#custom-os {
font-size: 24px;
color: rgb(137, 220, 235);
}
color: rgba(255, 255, 255, 0.75);
}

View File

@ -2,7 +2,7 @@
"label" : "logout",
"action" : "loginctl terminate-user $USER",
"text" : "Logout",
"keybind" : "e"
"keybind" : "l"
}
{
"label" : "shutdown",

View File

@ -1,27 +1,26 @@
* {
background-image: none;
font-family: "Ubuntu Nerd Font";
font-size: 20px;
}
window {
background-color: rgba(0, 0, 0, 0.5);
background-color: rgba(0, 0, 0, 0.9);
}
button {
color: #ffffff;
background-color: rgba(0, 0, 0, 1);
border-style: solid;
border-color: #33ccfe;
background-color: rgba(0, 0, 0, 0.5);
border-width: 2px;
border-radius: 10px;
border-style: solid;
border-color: rgba(255, 255, 255, 0.5);
background-repeat: no-repeat;
background-position: center;
background-size: 25%;
margin: 50px;
background-size: 10%;
margin: 25px;
}
button:focus, button:active, button:hover {
background-color: #353c4a;
outline-style: none;
border-color: rgb(255, 255, 255);
}
#logout {
@ -43,4 +42,4 @@ button:focus, button:active, button:hover {
url("/usr/share/wlogout/icons/reboot.png"),
url("/usr/local/share/wlogout/icons/reboot.png")
);
}
}

4
.config/yazi/keymap.toml Normal file
View File

@ -0,0 +1,4 @@
[[manager.prepend_keymap]]
on = [ "<C-s>" ]
run = 'shell "$SHELL" --block --confirm'
desc = "Open shell here"

2
.config/yazi/yazi.toml Normal file
View File

@ -0,0 +1,2 @@
[manager]
show_hidden = true

43
.config/zed/settings.json Normal file
View File

@ -0,0 +1,43 @@
{
"buffer_font_family": "UbuntuMono Nerd Font",
"buffer_font_size": 17,
"buffer_line_height": "standard",
"current_line_highlight": "none",
"ensure_final_newline_on_save": false,
"hard_tabs": true,
"icon_theme": "VSCode Icons (Dark)",
"scroll_beyond_last_line": "off",
"show_wrap_guides": false,
"tab_size": 4,
"ui_font_family": "Ubuntu Nerd Font",
"ui_font_size": 17,
"features": {
"edit_prediction_provider": "zed"
},
"git": {
"inline_blame": {
"enabled": false
}
},
"gutter": {
"code_actions": false,
"folds": false,
"line_numbers": false,
"runnables": false
},
"indent_guides": {
"enabled": false
},
"terminal": {
"line_height": "standard"
},
"theme": {
"mode": "dark",
"light": "KTRZ Monokai",
"dark": "KTRZ Monokai"
},
"toolbar": {
"breadcrumbs": false,
"quick_actions": false
}
}

9
.editorconfig Normal file
View File

@ -0,0 +1,9 @@
root = true
[*]
indent_style = tab
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = false

24
.gitignore vendored
View File

@ -1,21 +1,31 @@
/*
*.bak
*.txt
*.sqlite3
*.sqlite3-shm
*.sqlite3-wal
*.frag
*.log
*.vert
lazy-lock.json
!.editorconfig
!.gitignore
!.init
!/.config
/.config/*
!/.config/alacritty
!/.config/dunst
!/.config/btop
!/.config/cava
!/.config/easyeffects
!/.config/environment.d
!/.config/fastfetch
!/.config/foot
!/.config/fish
!/.config/fuzzel
!/.config/htop
!/.config/hypr
!/.config/mako
!/.config/mpd
!/.config/mpv
!/.config/nvim
!/.config/swaylock
!/.config/tmux
!/.config/vscode
!/.config/waybar
!/.config/wlogout
!/.config/yazi
!/.config/zed

2
.init Executable file
View File

@ -0,0 +1,2 @@
#!/bin/fish
uwsm start hyprland.desktop