feat: add new dotfiles

This commit is contained in:
Ahmet Kaan Gümüş 2025-02-22 23:29:01 +03:00
parent 7a5975bb81
commit e8bfb35161
34 changed files with 1474 additions and 0 deletions

248
.config/btop/btop.conf Normal file
View file

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

231
.config/hypr/hyprland.conf Normal file
View file

@ -0,0 +1,231 @@
# monitor=,preferred,auto,auto
monitor = HDMI-A-1, 1920x1080@75, 1920x0, 1
monitor = eDP-1, disable
exec-once = sleep 1 && waybar
exec-once = sleep 2 && nm-applet
exec-once = sleep 2 && hyprpaper
exec-once = sleep 3 && /opt/Mullvad\ VPN/mullvad-vpn
exec-once = sleep 3 && hyprctl keyword input:touchdevice:enabled false
exec-once = wl-paste --type text --watch cliphist store # Stores only text data
exec-once = wl-paste --type image --watch cliphist store # Stores only image data
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
env = PATH, $HOME/.cargo/bin/:$HOME/.local/bin/:$PATH
env = XDG_CURRENT_SESSION, Hyprland
render:explicit_sync = true
$terminal = wezterm start --always-new-process
$fileManager = flatpak run org.kde.dolphin
$active_menu = rofi -show
$menu = rofi -show drun -show-icons
$menu_unsafe = mullvad-exclude rofi -show drun -show-icons
$clipboard = cliphist list | rofi -dmenu -show-icons | cliphist decode | wl-copy
$screenshot = grim "$HOME/Pictures/Screenshots/$(date '+%y%m%d_%H-%M-%S').png" | grim - | wl-copy
$screenshot_with_area_selector = grim -g "$(slurp)" - | wl-copy
$browser = flatpak run app.zen_browser.zen
$browser_unsafe = mullvad-exclude flatpak run io.github.ungoogled_software.ungoogled_chromium --incognito
$mainMod = SUPER
$my_trigger = Alt
bind = $my_trigger, T, exec, $terminal
bind = $my_trigger, Q, exec, $fileManager
bind = Alt, F1, exec, $active_menu
bind = Alt, F2, exec, $menu
bind = Alt SHIFT, F2, exec, $menu_unsafe
bind = Alt, F3, exec, $clipboard
bind = , Print, exec, $screenshot
bind = $my_trigger, F, exec, $browser
bind = $my_trigger SHIFT, F, exec, $browser_unsafe
bind = Shift, Print, exec, $screenshot_with_area_selector
$codeberg = /var/lib/flatpak/exports/bin/app.zen_browser.zen --no-remote --class dev.heppen.webapps.Codeberg2172 --name dev.heppen.webapps.Codeberg2172 --profile "/home/tahinli/.var/app/dev.heppen.webapps/data/quick-webapps/profiles/app.zen_browser.zen/Codeberg2172" --new-window https://codeberg.org
$whatsapp = /var/lib/flatpak/exports/bin/app.zen_browser.zen --no-remote --class dev.heppen.webapps.WhatsApp5679 --name dev.heppen.webapps.WhatsApp5679 --profile "/home/tahinli/.var/app/dev.heppen.webapps/data/quick-webapps/profiles/app.zen_browser.zen/WhatsApp5679" --new-window https://web.whatsapp.com
$discord = flatpak run dev.vencord.Vesktop
$youtube = flatpak run io.freetubeapp.FreeTube
$deezer = /var/lib/flatpak/exports/bin/io.github.ungoogled_software.ungoogled_chromium --app=https://deezer.com --class=dev.heppen.webapps.Deezer7429 --name=dev.heppen.webapps.Deezer7429 --user-data-dir="/home/tahinli/.var/app/dev.heppen.webapps/data/quick-webapps/profiles/io.github.ungoogled_software.ungoogled_chromium/Deezer7429"
$mail = /var/lib/flatpak/exports/bin/app.zen_browser.zen --no-remote --class dev.heppen.webapps.Proton1470 --name dev.heppen.webapps.Proton1470 --profile "/home/tahinli/.var/app/dev.heppen.webapps/data/quick-webapps/profiles/app.zen_browser.zen/Proton1470" --new-window https://mail.proton.me
workspace = 101, on-created-empty: $codeberg
workspace = 102, on-created-empty: $dev
workspace = 201, on-created-empty: $whatsapp
workspace = 202, on-created-empty: $discord
workspace = 203, on-created-empty: $deezer
workspace = 204, on-created-empty: $youtube
workspace = 205, on-created-empty: $mail
bind = $my_trigger, G, workspace, 101
bind = $my_trigger, E, workspace, 102
bind = $my_trigger, W, workspace, 201
bind = $my_trigger, D, workspace, 202
bind = $my_trigger, S, workspace, 203
bind = $my_trigger, Y, workspace, 204
bind = $my_trigger, P, workspace, 205
bind = Alt, F4, killactive,
bind = $mainMod $my_trigger, F4, exit,
bind = $mainMod, H, exec, pkill -SIGUSR1 waybar
binds {
allow_workspace_cycles = true
}
bindr = $mainMod, Tab, bringactivetotop
binde = $mainMod, Tab, cyclenext
bind = Alt, Tab, workspace, previous
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, F, togglefloating,
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
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
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
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
bindle = $mainMod SHIFT, right, resizeactive, 30 0
bindle = $mainMod SHIFT, left, resizeactive, -30 0
bindle = $mainMod SHIFT, up, resizeactive, 0 -30
bindle = $mainMod SHIFT, down, resizeactive, 0 30
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
windowrulev2 = suppressevent maximize, class:.*
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
general {
gaps_in = 3
gaps_out = 10
border_size = 2
col.active_border = rgba(FFAA93FF) rgba(0053DFEE) rgba(5500FFAA) rgba(FFAFFAAA) 0deg
col.inactive_border = rgba(595959aa)
resize_on_border = true
allow_tearing = true
layout = dwindle
}
decoration {
rounding = 0
active_opacity = 1.0
inactive_opacity = 1.0
drop_shadow = true
shadow_range = 100
shadow_render_power = 10
col.shadow = rgba(1a1a1aee)
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
windowrulev2 = opacity 0.8, class:kitty
windowrulev2 = opacity 0.8, class:wezterm
windowrulev2 = opacity 0.8, class:yazi
windowrulev2 = tile, class:dev.heppen.webapps
}
animations {
enabled = false
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
master {
new_status = master
}
misc {
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
}
input {
kb_layout = tr
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 0
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = true
}
}
gestures {
workspace_swipe = false
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}

View file

@ -0,0 +1,5 @@
$location = ~/Pictures/michael-niessl-KraoHdRYrRE-unsplash.jpg
preload = $location
wallpaper = eDP-1,$location
wallpaper = HDMI-A-1,$location
splash = false

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

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

3
.config/nvim/init.lua Normal file
View file

@ -0,0 +1,3 @@
require("options")
require("configs.lazy")
require("keymaps")

View file

@ -0,0 +1,24 @@
{
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"blink.cmp": { "branch": "main", "commit": "18b352d12b35bca148427b607098df14b75a218f" },
"catppuccin": { "branch": "main", "commit": "d72341852556e2dfe19f779cc682c16dd58548fc" },
"crates.nvim": { "branch": "main", "commit": "85356807f3a0e9a3f7015586f3a010170d338686" },
"fzf-lua": { "branch": "main", "commit": "e6afa1aa22893280720cde1cdd0b0b188d5815af" },
"lazy.nvim": { "branch": "main", "commit": "e5e9bf48211a13d9ee6c1077c88327c49c1ab4a0" },
"lualine.nvim": { "branch": "master", "commit": "f4f791f67e70d378a754d02da068231d2352e5bc" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
"mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
"nvim-autopairs": { "branch": "master", "commit": "68f0e5c3dab23261a945272032ee6700af86227a" },
"nvim-dap": { "branch": "master", "commit": "52302f02fea3a490e55475de52fa4deb8af2eb11" },
"nvim-dap-python": { "branch": "master", "commit": "34282820bb713b9a5fdb120ae8dd85c2b3f49b51" },
"nvim-dap-ui": { "branch": "master", "commit": "bc81f8d3440aede116f821114547a476b082b319" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "df66808cd78b5a97576bbaeee95ed5ca385a9750" },
"nvim-highlight-colors": { "branch": "main", "commit": "a770df5fbd98abbb0fc1a95d9a3f2bb1e51e3e2c" },
"nvim-lspconfig": { "branch": "master", "commit": "1110787f1b464888c59a044c48c5119d14078044" },
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
"nvim-treesitter": { "branch": "master", "commit": "36bbf518420918e965d11dad3d3f194803c47731" },
"nvim-web-devicons": { "branch": "master", "commit": "1020869742ecb191f260818234517f4a1515cfe8" },
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
"rustaceanvim": { "branch": "master", "commit": "f03035fa03ccb36cd26d0792c946fbacba1d1a39" },
"yazi.nvim": { "branch": "main", "commit": "98db02660a0f853f0bbf051c14f613aff44e5fd8" }
}

View file

@ -0,0 +1,31 @@
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
-- Make sure to setup `mapleader` and `maplocalleader` before
-- loading lazy.nvim so that mappings are correct.
-- This is also a good place to setup other settings (vim.opt)
vim.g.mapleader = " "
vim.g.maplocalleader = "\\"
-- Setup lazy.nvim
require("lazy").setup({
spec = {
{ import = "plugins" },
},
-- automatically check for plugin updates
checker = { enabled = true, notify = false },
})

View file

@ -0,0 +1,35 @@
local format_and_save = function()
vim.lsp.buf.format()
vim.cmd.update()
end
vim.keymap.set("n", "<C-o>", require("fzf-lua").live_grep_native, {})
vim.keymap.set("n", "<C-l>", require("fzf-lua").buffers, {})
vim.keymap.set("n", "<C-k>", require("fzf-lua").lsp_definitions, {})
vim.keymap.set("n", "\"m", require("fzf-lua").manpages, {})
vim.keymap.set("n", "z.", require("fzf-lua").spell_suggest, {})
vim.keymap.set("n", ".", require("fzf-lua").lsp_code_actions, {
noremap = true, silent = true,
})
vim.keymap.set("n", ",", function() vim.diagnostic.open_float() end, {})
vim.keymap.set("n", "\"r", function() vim.lsp.buf.rename() end, {})
vim.keymap.set("n", ";", require("fzf-lua").diagnostics_workspace, {})
vim.keymap.set({ "n", "i", "v" }, "<C-s>", format_and_save)
vim.keymap.set({ "n", "v" }, "<CR>", "<cmd>Yazi<CR>", { noremap = true, silent = true, })
vim.keymap.set("t", "<ESC>e", "<C-\\><C-n>", { noremap = true })
vim.keymap.set("n", "<F5>", function() require("dap").continue() end)
vim.keymap.set("n", "<F10>", function() require("dap").step_over() end)
vim.keymap.set("n", "<F11>", function() require("dap").step_into() end)
vim.keymap.set("n", "<F12>", function() require("dap").step_out() end)
vim.keymap.set("n", "\"db", function() require("dap").toggle_breakpoint() end)
vim.keymap.set("n", "\"dl", function() require("dap").run_last() end)
vim.keymap.set({ "n", "v" }, "\"dh", function()
require("dap.ui.widgets").hover()
end)
vim.keymap.set("n", "<Space>cv", require("crates").show_versions_popup, {})
vim.keymap.set("n", "<Space>cf", require("crates").show_features_popup, {})
vim.keymap.set("n", "<Space>cd", require("crates").show_dependencies_popup, {})

View file

@ -0,0 +1,20 @@
vim.opt.clipboard = "unnamedplus"
vim.opt.mouse = 'a'
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.opt.number = true
vim.opt.relativenumber = false
vim.opt.cursorline = true
vim.opt.spelllang = "en_gb"
vim.opt.spell = true
vim.lsp.inlay_hint.enable()
vim.g.loaded_netrwPlugin = 0
vim.opt.termguicolors = true

View file

@ -0,0 +1,39 @@
return {
"saghen/blink.cmp",
version = '*',
opts = {
keymap = {
["<cr>"] = { "accept", "fallback" },
["<S-Up>"] = { "scroll_documentation_up", "fallback" },
["<S-Down>"] = { "scroll_documentation_down", "fallback" },
},
appearance = {
nerd_font_variant = "normal"
},
completion = {
ghost_text = {
enabled = true,
},
list = {
selection = {
preselect = false,
auto_insert = false,
},
},
documentation = {
auto_show = true,
auto_show_delay_ms = 1000,
},
menu = {
draw = {
treesitter = {
"lsp"
},
},
},
},
signature = {
enabled = true,
}
},
}

View file

@ -0,0 +1,6 @@
return {
"numToStr/Comment.nvim",
opts = {
-- add any options here
}
}

View file

@ -0,0 +1,8 @@
return {
"saecki/crates.nvim",
event = { "BufRead Cargo.toml" },
tag = "stable",
config = function()
require("crates").setup()
end,
}

View file

@ -0,0 +1,26 @@
return {
"ibhagwan/fzf-lua",
dependencies = { "nvim-tree/nvim-web-devicons" },
opts = {
"skim",
fzf_opts = {
["--wrap"] = true,
}
},
config = function()
require("fzf-lua").setup({
diagnostics = {
multiline = true,
fzf_opts = {
["--wrap"] = true,
},
},
winopts = {
preview = {
layout = "vertical",
}
}
})
end
}

View file

@ -0,0 +1,14 @@
return {
"nvim-lualine/lualine.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
require("lualine").setup({
options = {
theme = "auto"
-- theme = "horizon"
-- theme = "OceanicNext"
-- theme = "ayu_dark"
}
})
end,
}

View file

@ -0,0 +1,15 @@
return {
"williamboman/mason-lspconfig.nvim",
config = function()
require("mason").setup()
require("mason-lspconfig").setup({
ensure_installed = {
"lua_ls",
"clangd",
"ruff",
"pyright",
"cssls",
},
})
end,
}

View file

@ -0,0 +1,6 @@
return {
"williamboman/mason.nvim",
config = function()
require("mason").setup()
end,
}

View file

@ -0,0 +1,8 @@
return {
"windwp/nvim-autopairs",
event = "InsertEnter",
config = true
-- use opts = {} for passing setup options
-- this is equivalent to setup({}) function
}

View file

@ -0,0 +1,6 @@
return {
"mfussenegger/nvim-dap-python",
config = function()
require("dap-python").setup("python")
end
}

View file

@ -0,0 +1,21 @@
return {
"rcarriga/nvim-dap-ui",
dependencies = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio" },
config = function()
require("dapui").setup()
local dap, dapui = require("dap"), require("dapui")
dap.listeners.before.attach.dapui_config = function()
dapui.open()
end
dap.listeners.before.launch.dapui_config = function()
dapui.open()
end
dap.listeners.before.event_terminated.dapui_config = function()
dapui.close()
end
dap.listeners.before.event_exited.dapui_config = function()
dapui.close()
end
end
}

View file

@ -0,0 +1,10 @@
return {
"theHamsta/nvim-dap-virtual-text",
config = function()
require("nvim-dap-virtual-text").setup({
all_references = true,
only_first_definition = false,
highlight_new_as_changed = true,
})
end
}

View file

@ -0,0 +1,51 @@
return {
"mfussenegger/nvim-dap",
config = function()
local dap = require("dap")
dap.adapters.gdb = {
type = "executable",
command = "gdb",
args = { "--interpreter=dap", "--eval-command", "set print pretty on" }
}
local gdb = {
{
name = "Launch",
type = "gdb",
request = "launch",
program = function()
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
end,
cwd = "${workspaceFolder}",
stopAtBeginningOfMainSubprogram = false,
},
{
name = "Select and attach to process",
type = "gdb",
request = "attach",
program = function()
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
end,
pid = function()
local name = vim.fn.input('Executable name (filter): ')
return require("dap.utils").pick_process({ filter = name })
end,
cwd = '${workspaceFolder}'
},
{
name = 'Attach to gdbserver :1234',
type = 'gdb',
request = 'attach',
target = 'localhost:1234',
program = function()
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
end,
cwd = '${workspaceFolder}'
},
}
dap.configurations.c = gdb
dap.configurations.asm = gdb
dap.configurations.cpp = gdb
end
}

View file

@ -0,0 +1,6 @@
return {
"brenoprata10/nvim-highlight-colors",
config = function()
require("nvim-highlight-colors").setup({})
end
}

View file

@ -0,0 +1,40 @@
return {
"neovim/nvim-lspconfig",
dependencies = { "saghen/blink.cmp" },
opts = {
servers = {
lua_ls = {}
}
},
config = function()
local capabilities = require("blink.cmp").get_lsp_capabilities()
local lspconfig = require("lspconfig")
lspconfig["lua_ls"].setup({ capabilities = capabilities })
lspconfig["clangd"].setup({ capabilities = capabilities })
lspconfig["pyright"].setup({
settings = {
pyright = {
disableOrganizeImpors = true,
},
python = {
analysis = {
ignore = { "*" }
}
}
},
capabilities = capabilities
})
lspconfig["ruff"].setup({
init_options = {
settings = {
logLevel = "trace",
},
},
capabilities = capabilities,
})
lspconfig["cssls"].setup({ capabilities = capabilities })
end
}

View file

@ -0,0 +1,11 @@
return {
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
config = function()
require("nvim-treesitter.configs").setup({
auto_install = true,
highlight = { enabled = true },
indent = { enabled = true },
})
end,
}

View file

@ -0,0 +1,12 @@
return {
"mrcjkb/rustaceanvim",
version = "^5",
lazy = false,
config = function()
vim.g.rustaceanvim = {
tools = {
enable_clippy = false,
},
}
end
}

View file

@ -0,0 +1,93 @@
return {
"catppuccin/nvim",
name = "catppuccin",
priority = 1000,
config = function()
require("catppuccin").setup({
flavour = "macchiato",
transparent_background = true,
})
vim.cmd.colorscheme("catppuccin")
end
}
-- return {
-- "folke/tokyonight.nvim",
-- lazy = false,
-- priority = 1000,
-- config = function()
-- vim.cmd.colorscheme("tokyonight-storm")
-- end,
-- opts = {},
-- }
-- return {
-- "ellisonleao/gruvbox.nvim",
-- priority = 1000,
-- config = function()
-- require("gruvbox").setup({
-- contrast = "hard",
-- transparent_mode = true,
-- })
-- vim.cmd.colorscheme("gruvbox")
-- end,
-- }
-- return {
-- "akinsho/horizon.nvim",
-- version = "*",
-- config = function()
-- vim.cmd.colorscheme("horizon")
-- vim.o.background = "dark"
-- end
-- }
-- return {
-- 'f4z3r/gruvbox-material.nvim',
-- name = 'gruvbox-material',
-- lazy = false,
-- priority = 1000,
-- opts = {
-- contrast = "hard",
-- enable_bold = 1,
-- ui_contrast = "high"
-- },
-- }
-- return {
-- "Shatur/neovim-ayu",
-- config = function()
-- require("ayu").setup({
-- mirage = false,
-- terminal = true,
-- })
-- vim.cmd.colorscheme("ayu-dark")
-- end
-- }
-- return {
-- 'ray-x/aurora',
-- init = function()
-- vim.g.aurora_italic = 0
-- vim.g.aurora_transparent = 1
-- vim.g.aurora_bold = 1
-- end,
-- config = function()
-- vim.cmd.colorscheme "aurora"
-- end
-- }
-- return {
-- "sainnhe/everforest",
-- config = function()
-- vim.g.everforest_transparent_background = 2
-- vim.g.everforest_float_style = "dim"
-- vim.g.everforest_diagnostic_text_highlight = 1
-- vim.g.everforest_diagnostic_line_highlight = 1
-- vim.g.everforest_diagnostic_virtual_text = "highlighted"
-- vim.g.everforest_dim_inactive_windows = 1
-- vim.g.everforest_ui_contrast = "high"
-- vim.g.everforest_better_performans = 1
-- vim.cmd.colorscheme("everforest")
-- end
-- }

View file

@ -0,0 +1,3 @@
return {
"mikavilpas/yazi.nvim"
}

View file

@ -0,0 +1,23 @@
Ahmet
Kaan
Gümüş
github
linkedin
tahinli
ahmetkaangumus
Erciyes
com
blockchain
WebSocket
Radioxide
radioxide
tcp
udp
NAT
IPv4
ReLU
JWT
Postgres
codeberg
org
png

Binary file not shown.

4
.config/rofi/config.rasi Normal file
View file

@ -0,0 +1,4 @@
configuration {
font: "fira 18";
}
@theme "/usr/share/rofi/themes/gruvbox-dark-hard.rasi"

163
.config/waybar/config Normal file
View file

@ -0,0 +1,163 @@
{
"layer": "top",
"position": "top",
"height": 24,
"spacing": 16,
"modules-left": ["hyprland/workspaces", "mpris"],
"modules-center": ["clock"],
"modules-right": ["privacy", "cpu", "memory", "wireplumber", "tray", "battery"],
"cava": {
"framerate": 30,
"autosens": 1,
"sensitivity": 100,
"bars": 14,
"lower_cutoff_freq": 50,
"higher_cutoff_freq": 10000,
"method": "pulse",
"source": "auto",
"stereo": true,
"reverse": false,
"bar_delimiter": 0,
"monstercat": false,
"waves": false,
"noise_reduction": 0.77,
"input_delay": 2,
"format-icons" : ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█" ],
"actions": {
"on-click-right": "mode"
}
},
"wlr/taskbar": {
"format": "{icon}",
"icon-size": 14,
"icon-theme": "Numix-Circle",
"tooltip-format": "{title}",
"on-click": "activate",
"on-click-middle": "close",
"ignore-list": [
"Alacritty"
],
"app_ids-mapping": {
"firefoxdeveloperedition": "firefox-developer-edition"
},
"rewrite": {
"Firefox Web Browser": "Firefox",
"Foot Server": "Terminal"
}
},
"pulseaudio/slider": {
"min": 0,
"max": 100,
"orientation": "horizontal"
},
"privacy": {
"icon-spacing": 4,
"icon-size": 18,
"transition-duration": 250,
"modules": [
{
"type": "screenshare",
"tooltip": true,
"tooltip-icon-size": 24
},
{
"type": "audio-out",
"tooltip": true,
"tooltip-icon-size": 24
},
{
"type": "audio-in",
"tooltip": true,
"tooltip-icon-size": 24
}
]
},
"mpris": {
"interval": 1,
"format": " {player_icon} {dynamic}",
"format-paused": "{status_icon} <i>{dynamic}</i>",
"player-icons": {
"default": "▶",
"mpv": "🎵"
},
"status-icons": {
"paused": "⏸"
},
// "ignored-players": ["firefox"]
},
"wireplumber": {
"format": "{icon} {volume}% ",
"on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
"format-icons": ["", "", ""],
"on-click-right": "pavucontrol",
"format-muted": "\uf00d {volume}%"
},
"hyprland/workspaces": {
"format": "{icon}",
"active-only": true
},
"hyprland/window": {
"format": "{title}"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "\uf06e",
"deactivated": "\uf070"
}
},
"network": {
"interface": "enp4s0f4u2u1c2",
"format": "{ifname}",
"format-wifi": "{essid} ({signalStrength}%) ",
"format-ethernet": "{ifname} ",
"format-disconnected": "", //An empty format will hide the module.
"format-disconnected": "",
"tooltip-format": "{ifname}",
"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
"tooltip-format-ethernet": "{ifname} ",
"tooltip-format-disconnected": "Disconnected",
"max-length": 50
},
"cpu": {
"interval": 1,
"format": "{usage}%"
},
"memory": {
"interval": 1,
"format": "{used:0.1f}"
},
"clock": {
"interval" : 1,
"format": "{:%H:%M:%S | %A, %B %d, %Y }",
"format-alt": "{:%H:%M:%S}",
"tooltip-format": "<tt><small>{calendar}</small></tt>",
"calendar": {
"format": {
"months": "<span color='#ffead3'><b>{}</b></span>",
"today": "<span color='#ff6699'><b>{}</b></span>"
}
}
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-icons": {
"default": ["\uf026", "\uf027", "\uf028"]
},
"on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
"on-click-right": "pavucontrol",
"format-muted": "\uf00d {volume}%"
},
"tray": {
"icon-size": 20,
"spacing": 10
}
}

37
.config/waybar/style.css Normal file
View file

@ -0,0 +1,37 @@
#waybar {
color: #FFFFFF;
background-color: #000000;
opacity: 0.7;
border-radius: 10px;
padding:100px;
}
#idle_inhibitor.activated {
background-color: #285577;
}
*{
font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
font-size: 14px;
}
#pulseaudio-slider slider {
min-height: 0px;
min-width: 0px;
opacity: 0;
background-image: none;
border: none;
box-shadow: none;
}
#pulseaudio-slider trough {
min-height: 10px;
min-width: 80px;
border-radius: 5px;
background-color: black;
}
#pulseaudio-slider highlight {
min-width: 10px;
border-radius: 5px;
background-color: green;
}

18
.wezterm.lua Normal file
View file

@ -0,0 +1,18 @@
local wezterm = require "wezterm"
local config = wezterm.config_builder()
config.enable_scroll_bar = true
config.enable_wayland = true
config.enable_tab_bar = true
config.use_fancy_tab_bar = true
config.hide_tab_bar_if_only_one_tab = true
config.default_cursor_style = "BlinkingUnderline"
config.cursor_blink_rate = 100
config.cursor_thickness = 2.5
config.cursor_blink_ease_in = "Constant"
config.cursor_blink_ease_out = "Constant"
config.warn_about_missing_glyphs = false
return config

252
.zshrc Normal file
View file

@ -0,0 +1,252 @@
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH
# Path to your Oh My Zsh installation.
export ZSH="$HOME/.oh-my-zsh"
export PYTHON_AUTO_VRUN=true
export PYTHON_VENV_NAME=".venv"
# Set name of the theme to load --- if set to "random", it will
# load a random theme each time Oh My Zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
#ZSH_THEME="darkblood"
#ZSH_THEME="fino-time"
#ZSH_THEME="mikeh"
#ZSH_THEME="rkj-repos"
#ZSH_THEME="amuse"
ZSH_THEME="clean"
# Set list of themes to pick from when loading at random
# Setting this variable when ZSH_THEME=random will cause zsh to load
# a theme from this variable instead of looking in $ZSH/themes/
# If set to an empty array, this variable will have no effect.
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion.
# Case-sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment one of the following lines to change the auto-update behavior
# zstyle ':omz:update' mode disabled # disable automatic updates
# zstyle ':omz:update' mode auto # update automatically without asking
# zstyle ':omz:update' mode reminder # just remind me to update when it's time
# Uncomment the following line to change how often to auto-update (in days).
# zstyle ':omz:update' frequency 13
# Uncomment the following line if pasting URLs and other text is messed up.
# DISABLE_MAGIC_FUNCTIONS="true"
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# You can also set it to another string to have that shown instead of the default red dots.
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# You can set one of the optional three formats:
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# or set a custom format using the strftime function format specifications,
# see 'man strftime' for details.
# HIST_STAMPS="mm/dd/yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
# DUDE DONT FORGET TO INSTALL via SYSTEM PACKAGE OR AS A PLUGIN
# zsh-syntax-highlighting
# zsh-autosuggestions
plugins=(
git
rust
python
)
source $ZSH/oh-my-zsh.sh
export PATH="$HOME/.cargo/bin:$PATH"
# User configuration
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# Set personal aliases, overriding those provided by Oh My Zsh libs,
# plugins, and themes. Aliases can be placed here, though Oh My Zsh
# users are encouraged to define aliases within a top-level file in
# the $ZSH_CUSTOM folder, with .zsh extension. Examples:
# - $ZSH_CUSTOM/aliases.zsh
# - $ZSH_CUSTOM/macos.zsh
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
export PATH=$HOME/.local/bin:$PATH
# alias sudo=sudo-rs
alias ls=eza
alias cat=bat
# =============================================================================
#
# Utility functions for zoxide.
#
# pwd based on the value of _ZO_RESOLVE_SYMLINKS.
function __zoxide_pwd() {
\builtin pwd -L
}
# cd + custom logic based on the value of _ZO_ECHO.
function __zoxide_cd() {
# shellcheck disable=SC2164
\builtin cd -- "$@"
}
# =============================================================================
#
# Hook configuration for zoxide.
#
# Hook to add new entries to the database.
function __zoxide_hook() {
# shellcheck disable=SC2312
\command zoxide add -- "$(__zoxide_pwd)"
}
# Initialize hook.
# shellcheck disable=SC2154
if [[ ${precmd_functions[(Ie)__zoxide_hook]:-} -eq 0 ]] && [[ ${chpwd_functions[(Ie)__zoxide_hook]:-} -eq 0 ]]; then
chpwd_functions+=(__zoxide_hook)
fi
# =============================================================================
#
# When using zoxide with --no-cmd, alias these internal functions as desired.
#
# Jump to a directory using only keywords.
function __zoxide_z() {
# shellcheck disable=SC2199
if [[ "$#" -eq 0 ]]; then
__zoxide_cd ~
elif [[ "$#" -eq 1 ]] && { [[ -d "$1" ]] || [[ "$1" = '-' ]] || [[ "$1" =~ ^[-+][0-9]$ ]]; }; then
__zoxide_cd "$1"
else
\builtin local result
# shellcheck disable=SC2312
result="$(\command zoxide query --exclude "$(__zoxide_pwd)" -- "$@")" && __zoxide_cd "${result}"
fi
}
# Jump to a directory using interactive search.
function __zoxide_zi() {
\builtin local result
result="$(\command zoxide query --interactive -- "$@")" && __zoxide_cd "${result}"
}
# =============================================================================
#
# Commands for zoxide. Disable these using --no-cmd.
#
function z() {
__zoxide_z "$@"
}
function zi() {
__zoxide_zi "$@"
}
# Completions.
if [[ -o zle ]]; then
__zoxide_result=''
function __zoxide_z_complete() {
# Only show completions when the cursor is at the end of the line.
# shellcheck disable=SC2154
[[ "${#words[@]}" -eq "${CURRENT}" ]] || return 0
if [[ "${#words[@]}" -eq 2 ]]; then
# Show completions for local directories.
_files -/
elif [[ "${words[-1]}" == '' ]]; then
# Show completions for Space-Tab.
# shellcheck disable=SC2086
__zoxide_result="$(\command zoxide query --exclude "$(__zoxide_pwd || \builtin true)" --interactive -- ${words[2,-1]})" || __zoxide_result=''
# Bind '\e[0n' to helper function.
\builtin bindkey '\e[0n' '__zoxide_z_complete_helper'
# Send '\e[0n' to console input.
\builtin printf '\e[5n'
fi
# Report that the completion was successful, so that we don't fall back
# to another completion function.
return 0
}
function __zoxide_z_complete_helper() {
if [[ -n "${__zoxide_result}" ]]; then
# shellcheck disable=SC2034,SC2296
BUFFER="z ${(q-)__zoxide_result}"
\builtin zle reset-prompt
\builtin zle accept-line
else
\builtin zle reset-prompt
fi
}
\builtin zle -N __zoxide_z_complete_helper
[[ "${+functions[compdef]}" -ne 0 ]] && \compdef __zoxide_z_complete z
fi
# =============================================================================
#
# To initialize zoxide, add this to your configuration (usually ~/.zshrc):
#
eval "$(zoxide init zsh)"
source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh