initial commit

This commit is contained in:
Belal Elsabbagh
2024-12-18 19:45:33 +02:00
commit 408a1d9f1f
19 changed files with 1523 additions and 0 deletions

120
alacritty/alacritty.toml Normal file
View File

@@ -0,0 +1,120 @@
[font]
size = 11.0
[font.bold]
family = "JetBrainsMono Nerd Font"
style = "Bold"
[font.bold_italic]
family = "JetBrainsMono Nerd Font"
style = "Bold Italic"
[font.italic]
family = "JetBrainsMono Nerd Font"
style = "Italic"
[font.normal]
family = "JetBrainsMono Nerd Font"
style = "Regular"
[font.offset]
x = 0
y = 0
[selection]
save_to_clipboard = true
semantic_escape_chars = ",│`|:\"' ()[]{}<>"
[window]
decorations = "none"
dynamic_title = true
startup_mode = "Maximized"
[window.dimensions]
columns = 80
lines = 24
[window.padding]
x = 2
y = 2
[env]
TERM = "xterm-256color"
# Dracula theme for Alacritty
# https://draculatheme.com/alacritty
#
# Color palette
# https://spec.draculatheme.com
#
# Instructions
# https://github.com/alacritty/alacritty/blob/master/extra/man/alacritty.5.scd
[colors.primary]
background = "#282a36"
foreground = "#f8f8f2"
bright_foreground = "#ffffff"
[colors.cursor]
text = "#282a36"
cursor = "#f8f8f2"
[colors.vi_mode_cursor]
text = "CellBackground"
cursor = "CellForeground"
[colors.selection]
text = "CellForeground"
background = "#44475a"
[colors.normal]
black = "#21222c"
red = "#ff5555"
green = "#50fa7b"
yellow = "#f1fa8c"
blue = "#bd93f9"
magenta = "#ff79c6"
cyan = "#8be9fd"
white = "#f8f8f2"
[colors.bright]
black = "#6272a4"
red = "#ff6e6e"
green = "#69ff94"
yellow = "#ffffa5"
blue = "#d6acff"
magenta = "#ff92df"
cyan = "#a4ffff"
white = "#ffffff"
[colors.search.matches]
foreground = "#44475a"
background = "#50fa7b"
[colors.search.focused_match]
foreground = "#44475a"
background = "#ffb86c"
[colors.footer_bar]
background = "#282a36"
foreground = "#f8f8f2"
[colors.hints.start]
foreground = "#282a36"
background = "#f1fa8c"
[colors.hints.end]
foreground = "#f1fa8c"
background = "#282a36"
[general]
live_config_reload = true

248
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/dracula.theme"
#* If the theme set background should be shown, set to False if you want terminal background transparency.
theme_background = True
#* 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 = "memory"
#* 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 = ""

5
hypr/hypridle.conf Executable file
View File

@@ -0,0 +1,5 @@
listener {
timeout = 300 # 5min
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
}

300
hypr/hyprland.conf Executable file
View File

@@ -0,0 +1,300 @@
# #######################################################################################
# AUTOGENERATED HYPR CONFIG.
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################
# This is an example Hyprland config file.
# Refer to the wiki for more information.
# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/
# Please note not all available settings / options are set here.
# For a full list, see the wiki
# You can split this configuration into multiple files
# Create your files separately and then link them to this file like this:
# source = ~/.config/hypr/myColors.conf
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland
env = XDG_SCREENSHOTS_DIR,$HOME/Pictures/Screenshots
env = LIBVA_DRIVER_NAME,nvidia
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_QPA_PLATFORM,wayland;xcb
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = QT_QPA_PLATFORMTHEME,qt5ct
env = XCURSOR_SIZE,24
################
### MONITORS ###
################
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,preferred,auto,1
###################
### MY PROGRAMS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
# Set programs that you use
$terminal = alacritty
$fileManager = thunar
$menu = hyprlauncher
$browser = zen-browser
#################
### AUTOSTART ###
#################
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
# exec-once = $terminal
# exec-once = nm-applet &
# exec-once = waybar & hyprpaper & firefox
exec-once = ssh-agent & waybar & hyprpaper & kdeconnect-indicator & hypridle
exec-once = systemctl --user start hyprpolkitagent
#############################
### ENVIRONMENT VARIABLES ###
#############################
# See https://wiki.hyprland.org/Configuring/Environment-variables/
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
#####################
### LOOK AND FEEL ###
#####################
# Refer to https://wiki.hyprland.org/Configuring/Variables/
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
gaps_in = 5
gaps_out = 20
border_size = 2
col.active_border = rgb(44475a) rgb(bd93f9) 90deg
col.inactive_border = rgba(44475aaa)
col.nogroup_border = rgba(282a36dd)
col.nogroup_border_active = rgb(bd93f9) rgb(44475a) 90deg
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
cursor {
no_hardware_cursors = true
}
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
rounding = 10
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
enabled = true
range = 4
render_power = 3
color = rgba(1E202966)
}
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
enabled = true
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
#bezier = myBezier, 0.33, 0.82, 0.9, -0.08
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
}
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
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
force_split = 2
}
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
new_status = master
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
animate_manual_resizes = true
animate_mouse_windowdragging = true
enable_swallow = true
render_ahead_of_time = false
disable_hyprland_logo = true
}
#############
### INPUT ###
#############
# https://wiki.hyprland.org/Configuring/Variables/#input
input {
kb_layout = us,eg
kb_variant =
kb_model =
kb_options = grp:alt_shift_toggle
kb_rules =
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = true
}
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
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
}
####################
### KEYBINDINGSS ###
####################
# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier
exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store
bind = $mainMod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Return, exec, $terminal
bind = $mainMod, Q, killactive,
bind = $mainMod ALT, Q, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, B, exec, $browser
bind = $mainMod, T, togglefloating,
bind = $mainMod, F, fullscreen,
bind = $mainMod, R, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Moving windows
bind = $mainMod SHIFT, left, swapwindow, l
bind = $mainMod SHIFT, right, swapwindow, r
bind = $mainMod SHIFT, up, swapwindow, u
bind = $mainMod SHIFT, down, swapwindow, d
# Window resizing X Y
bind = $mainMod CTRL, left, resizeactive, -60 0
bind = $mainMod CTRL, right, resizeactive, 60 0
bind = $mainMod CTRL, up, resizeactive, 0 -60
bind = $mainMod CTRL, down, resizeactive, 0 60
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
bind = , XF86MonBrightnessDown, exec, brightnessctl set 5%-
bind = , XF86MonBrightnessUp, exec, brightnessctl set 5%+
bindel = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bindel = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
# Requires playerctl
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
bindl = , XF86AudioNext, exec, playerctl next
bind = $mainMod SHIFT, H, exec, $terminal -e sh -c "nvim ~/.config/hypr/hyprland.conf"
bind = $mainMod SHIFT, W, exec, $terminal -e sh -c "nvim ~/.config/waybar/config"
bind = $mainMod SHIFT, S, exec, grimblast copysave area
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.

4
hypr/hyprpaper.conf Executable file
View File

@@ -0,0 +1,4 @@
$path = ~/Pictures/Wallpapers/dracula-mnt-6272a4.png
preload = $path
wallpaper = ,$path

3
lazygit/config.yml Normal file
View File

@@ -0,0 +1,3 @@
git:
log:
showGraph: always

1
nvim Submodule

Submodule nvim added at 84195b87b5

46
starship.toml Normal file
View File

@@ -0,0 +1,46 @@
format = """
$username\
$hostname\
$directory\
$git_branch\
$git_state\
$git_status\
$cmd_duration\
$line_break\
$python\
$character"""
[directory]
style = "blue"
[character]
success_symbol = "[>](purple)"
error_symbol = "[>](red)"
vimcmd_symbol = "[<](green)"
[git_branch]
format = "[$branch]($style)"
style = "bright-black"
[git_status]
format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218) ($ahead_behind$stashed)]($style)"
style = "cyan"
conflicted = ""
untracked = ""
modified = ""
staged = ""
renamed = ""
deleted = ""
stashed = "≡"
[git_state]
format = '\([$state( $progress_current/$progress_total)]($style)\) '
style = "bright-black"
[cmd_duration]
format = "[$duration]($style) "
style = "yellow"
[python]
format = "[$virtualenv]($style) "
style = "bright-black"

60
tmux/tmux.conf Normal file
View File

@@ -0,0 +1,60 @@
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
set -g mouse on
unbind C-b
set -g prefix C-Space
bind C-Space send-prefix
# Vim style pane selection
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Start windows and panes at 1, not 0
set -g base-index 1
set -g pane-base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on
# Use Alt-arrow keys without prefix key to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# Shift arrow to switch windows
bind -n S-Left previous-window
bind -n S-Right next-window
# Shift Alt vim keys to switch windows
bind -n M-H previous-window
bind -n M-L next-window
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'dracula/tmux'
set -g @plugin 'christoomey/vim-tmux-navigator'
set -g @plugin 'tmux-plugins/tmux-yank'
# available plugins: battery, cpu-usage, git, gpu-usage, ram-usage, tmux-ram-usage, network, network-bandwidth, network-ping, ssh-session, attached-clients, network-vpn, weather, time, mpc, spotify-tui, playerctl, kubernetes-context, synchronize-panes
set -g @dracula-plugins "ram-usage time"
set -g @dracula-left-icon-padding 1
set -g @dracula-show-left-icon "#S"
# set vi-mode
set-window-option -g mode-keys vi
# keybindings
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
bind '"' split-window -v -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
set -g allow-passthrough all
set -ga update-environment TERM
set -ga update-environment TERM_PROGRAM
run -b '~/.tmux/plugins/tpm/tpm'

12
waybar/colors.css Executable file
View File

@@ -0,0 +1,12 @@
@define-color background-darker rgba(30, 31, 41, 230);
@define-color background #282a36;
@define-color selection #44475a;
@define-color foreground #f8f8f2;
@define-color comment #6272a4;
@define-color cyan #8be9fd;
@define-color green #50fa7b;
@define-color orange #ffb86c;
@define-color pink #ff79c6;
@define-color purple #bd93f9;
@define-color red #ff5555;
@define-color yellow #f1fa8c;

109
waybar/config Executable file
View File

@@ -0,0 +1,109 @@
{
"layer": "top",
"position": "top",
"margin": "9 13 -10 18",
"height": 24,
"spacing": 4,
"output": "eDP-1",
"modules-left": [
"hyprland/workspaces",
"hyprland/language",
"tray"
],
"modules-center": [
"clock"
],
"modules-right": [
"network",
"backlight",
"pulseaudio",
"cpu",
"memory",
"battery",
],
"hyprland/workspaces": {
"disable-scroll": true,
},
"hyprland/window": {
"max-length": 128
},
"clock": {
"format": "{:%a, %d %b, %H:%M}",
"tooltip-format": "<tt><small>{calendar}</small></tt>"
},
"hyprland/language": {
"format-en": "US",
"format-eg": "AR",
"on-click": "hyprctl switchxkblayout at-translated-set-2-keyboard next"
},
"battery": {
"interval": 2,
"states": {
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon}",
"format-charging": "{capacity}% ",
"format-plugged": "{capacity}% ",
"format-alt": "{time} {icon}",
"format-icons": ["", "", "", "", "", "", "", "", "", ""],
},
"backlight": {
"device": "intel_backlight",
"reverse-scrolling": 1,
"format": "{percent}% {icon}",
"format-icons": [""],
"min-length": 7,
},
"tray": {
"icon-size": 16,
"spacing": 4
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"reverse-scrolling": 1,
"format": "{volume}% {icon}",
"format-bluetooth": "{volume}% {icon}",
"format-bluetooth-muted": " {icon}",
"format-muted": " {format_source}",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "pavucontrol",
"min-length": 7,
},
"cpu": {
"interval": 2,
"format": "{usage}% ",
"min-length": 7
},
"memory": {
"interval": 2,
"format": "{used:0.1f}G ",
"max-length": 10,
"min-length": 8
},
"network": {
"interface": "wlp0s20f3",
"format": "{ifname}",
"format-wifi": "{bandwidthTotalBits} ",
"format-ethernet": "{ipaddr}/{cidr} 󰊗",
"format-disconnected": "", //An empty format will hide the module.
"tooltip-format": "{ifname} via {gwaddr} 󰊗",
"tooltip-format-wifi": "{essid}",
"tooltip-format-ethernet": "{ifname} ",
"tooltip-format-disconnected": "Disconnected",
"max-length": 50,
"min-length": 12,
}
}

242
waybar/style.css Executable file
View File

@@ -0,0 +1,242 @@
@import url("./colors.css");
* {
border: none;
border-radius: 0;
font-family: FontAwesome, JetBrains Mono Nerd Font;
font-size: 10pt;
min-height: 16px;
}
window#waybar {
background: transparent;
color: @foreground;
padding: 2px;
}
window#waybar.hidden {
opacity: 0.2;
}
#workspaces button {
padding: 0 10px;
background: @background;
color: @foreground;
}
#workspaces button.urgent {
background-image: linear-gradient(0deg, @red, @background-darker);
}
#clock {
padding: 4px;
background: @background;
}
#workspaces {
margin-right: 8px;
border-radius: 10px;
transition: none;
background: #383c4a;
}
#workspaces button {
transition: none;
color: #7c818c;
background: transparent;
padding: 5px;
font-size: 18px;
}
#workspaces button.persistent {
color: #7c818c;
font-size: 12px;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
#workspaces button:hover {
transition: none;
box-shadow: inherit;
text-shadow: inherit;
border-radius: inherit;
color: #383c4a;
background-image: linear-gradient(0deg, @selection, @background-darker);
}
#workspaces button.active {
background-image: linear-gradient(0deg, @purple, @selection);
color: white;
border-radius: inherit;
}
#language {
padding: 0 8px;
border-radius: 10px;
transition: none;
border: 1px solid @purple;
color: @foreground;
background: @background;
}
#keyboard-state {
margin-right: 8px;
padding-right: 16px;
border-radius: 0px 10px 10px 0px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#custom-pacman {
padding-left: 16px;
padding-right: 8px;
border-radius: 10px 0px 0px 10px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#custom-mail {
margin-right: 8px;
padding-right: 16px;
border-radius: 0px 10px 10px 0px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#submap {
padding: 0 8px;
border-radius: 10px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#clock {
padding: 0 8px;
border-radius: 10px;
border: 1px solid @purple;
transition: none;
color: #ffffff;
background: @background;
}
#pulseaudio {
margin-right: 8px;
padding: 0 8px;
border: 1px solid @purple;
border-radius: 10px;
transition: none;
color: @foreground;
background: @background;
}
#pulseaudio.muted {
background-color: @red;
color: #2a5c45;
}
#memory {
margin-right: 8px;
padding: 0 8px;
border-radius: 10px;
border: 1px solid @purple;
transition: none;
color: @foreground;
background: @background;
}
#cpu {
margin-right: 8px;
padding: 0 8px;
border-radius: 10px;
border: 1px solid @purple;
transition: none;
color: @foreground;
background: @background;
}
#temperature {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: @foreground;
background: @background;
}
#temperature.critical {
background-color: #eb4d4b;
}
#backlight {
margin-right: 8px;
padding: 0 8px;
border-radius: 10px;
border: 1px solid @purple;
transition: none;
color: @foreground;
background: @background;
}
#network {
margin-right: 8px;
padding: 0 8px;
border-radius: 10px;
border: 1px solid @purple;
transition: none;
color: @foreground;
background: @background;
}
#battery {
margin-right: 8px;
padding: 0 8px;
border-radius: 10px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#battery.charging {
color: @background;
background-color: @green;
}
#battery.warning:not(.charging) {
background-color: #ffbe61;
color: black;
}
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: #ffffff;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#tray {
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
border: 1px solid @purple;
transition: none;
color: @foreground;
background: @background;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}

5
waybar/wittr.sh Executable file
View File

@@ -0,0 +1,5 @@
#!/usr/bin/sh
req=$(curl -s wttr.in/CITY?format="%t|%l+(%c%f)+%h,+%C")
bar=$(echo $req | awk -F "|" '{print $1}')
tooltip=$(echo $req | awk -F "|" '{print $2}')
echo "{\"text\":\"$bar\", \"tooltip\":\"$tooltip\"}"

View File

@@ -0,0 +1,318 @@
# Theme Configuration
[theme]
# Theme metadata
name = "Dracula Pro"
author = "Enhanced Dracula Theme"
version = "2.0.0"
description = "A sophisticated dark theme based on Dracula color scheme"
# Color palette definition
[theme.colors]
background = "#282a36"
current_line = "#44475a"
foreground = "#f8f8f2"
comment = "#6272a4"
purple = "#bd93f9"
green = "#50fa7b"
orange = "#ffb86c"
red = "#ff5555"
pink = "#ff79c6"
cyan = "#8be9fd"
yellow = "#f1fa8c"
# Animation settings
[theme.animation]
frames_per_second = 60
duration = 0.2
easing = "easeInOutCubic"
# Manager
[manager]
# Enhanced preview options
preview = { tab_size = 2, max_width = 100, max_height = 50, cache_size = 50, scroll_offset = 5 }
preview_ratios = [1, 4, 4]
preview_shown = true
preview_service = { image = "ueberzug", video = "ffmpegthumbnailer", pdf = "pdftoppm" }
# Sophisticated hover effects
hovered = { fg = "#f8f8f2", bg = "#44475a", italic = true }
# Enhanced markers with animations
marker_copied = { fg = "#282a36", bg = "#50fa7b" }
# Dynamic loading indicators
loading_indicator_frames = "⣾⣽⣻⢿⡿⣟⣯⣷"
loading_style = { fg = "#bd93f9", bold = true }
# Enhanced folder icons
folder_icons = { default = " ", open = " ", empty = " ", empty_open = " ", symlink = " ", symlink_open = " ", error = " " }
file_size_units = ["B", "KB", "MB", "GB", "TB", "PB", "EB"]
# Status
[status]
# Dynamic status bar
refresh_rate = 1000
separator_open = ""
separator_close = ""
# Progress bar styling
progress_bar_style = { fg = "#bd93f9", bg = "#44475a" }
# Enhanced modes
mode_normal = { fg = "#282a36", bg = "#bd93f9", bold = true }
# Input
[input]
# Advanced input styling
cursor_style = { fg = "#f8f8f2", bg = "#6272a4", blink = true, blink_interval = 500 }
# History features
history_size = 100
history_unique = true
# Completion styling
completion_style = { selected_bg = "#44475a", selected_fg = "#f8f8f2", selected_bold = true, selected_italic = true }
# Notify
[notify]
# Enhanced notification system
position = "top-right"
timeout = 5000
max_width = 400
max_height = 200
margin = 10
padding = 8
[notify.levels]
info = { fg = "#50fa7b", bg = "#282a36", icon = " ", timeout = 3000 }
warn = { fg = "#f1fa8c", bg = "#282a36", icon = " ", timeout = 5000 }
error = { fg = "#ff5555", bg = "#282a36", icon = " ", timeout = 7000 }
debug = { fg = "#6272a4", bg = "#282a36", icon = "󰃤 ", timeout = 2000 }
[notify.animation]
enabled = true
duration = 200
slide_in = "right"
fade_out = true
[notify.border]
fg = "#bd93f9"
bg = "#282a36"
style = "rounded"
[notify.overlay]
bg = "#282a36"
blend = 0.8
# File-specific styles
[filetype]
rules = [
# Development Environment
{ name = ".env*", fg = "#50fa7b", bold = true, prefix = "󰙪 " },
{ name = ".git*", fg = "#ff5555", italic = true, prefix = " " },
{ name = ".docker*", fg = "#8be9fd", bold = true, prefix = "󰡨 " },
# Configuration Files
{ name = "*.{json,yaml,yml,toml,xml}", fg = "#8be9fd", italic = true, prefix = "󰘦 " },
{ name = "*.{ini,conf,cfg}", fg = "#6272a4", italic = true, prefix = " " },
# Web Development
{ name = "*.{html,htm}", fg = "#ff79c6", italic = true, prefix = "󰌝 " },
{ name = "*.{css,scss,sass,less}", fg = "#bd93f9", italic = true, prefix = "󰌜 " },
{ name = "*.{jsx,tsx}", fg = "#8be9fd", italic = true, prefix = "󰜈 " },
{ name = "*.{js,ts}", fg = "#f1fa8c", italic = true, prefix = "󰌞 " },
{ name = "*.vue", fg = "#50fa7b", italic = true, prefix = "󰡄 " },
{ name = "*.svelte", fg = "#ff5555", italic = true, prefix = "󰓓 " },
# Backend Development
{ name = "*.{py,pyc}", fg = "#50fa7b", italic = true, prefix = "󰌠 " },
{ name = "*.{rb,erb}", fg = "#ff5555", italic = true, prefix = "󰴭 " },
{ name = "*.{php,phar}", fg = "#bd93f9", italic = true, prefix = "󰌟 " },
{ name = "*.{java,jar}", fg = "#ff5555", italic = true, prefix = "󰬷 " },
{ name = "*.go", fg = "#8be9fd", italic = true, prefix = "󰟓 " },
{ name = "*.rs", fg = "#ff7043", italic = true, prefix = "󱘗 " },
# System Programming
{ name = "*.{c,h}", fg = "#bd93f9", italic = true, prefix = "󰙱 " },
{ name = "*.{cpp,hpp}", fg = "#ff79c6", italic = true, prefix = "󰙲 " },
{ name = "*.{asm,s}", fg = "#ff5555", italic = true, prefix = "󰋖 " },
# Build Systems
{ name = "*Makefile", fg = "#ff79c6", bold = true, prefix = "󰛕 " },
{ name = "*CMakeLists.txt", fg = "#ff79c6", bold = true, prefix = "󰔷 " },
{ name = "*.gradle", fg = "#8be9fd", bold = true, prefix = "󰏗 " },
# Package Managers
{ name = "package.json", fg = "#ff5555", bold = true, prefix = "󰎙 " },
{ name = "package-lock.json", fg = "#ff5555", italic = true, prefix = "󰎙 " },
{ name = "composer.json", fg = "#ff79c6", bold = true, prefix = "󰎙 " },
{ name = "Cargo.toml", fg = "#ff7043", bold = true, prefix = "󱘗 " },
# Documentation
{ name = "*.{md,mdx}", fg = "#f1fa8c", italic = true, prefix = "󰍔 " },
{ name = "*.rst", fg = "#f1fa8c", italic = true, prefix = "󰈙 " },
{ name = "*.pdf", fg = "#ff5555", bold = true, prefix = "󰈙 " },
{ name = "LICENSE*", fg = "#50fa7b", bold = true, prefix = "󰿃 " },
{ name = "README*", fg = "#50fa7b", bold = true, prefix = " " },
# Media with size categories
{ name = "*.{jpg,jpeg,png,gif}", size = "< 1MB", fg = "#8be9fd", prefix = "󰋯 " },
{ name = "*.{jpg,jpeg,png,gif}", size = "< 10MB", fg = "#ffb86c", prefix = "󰋯 " },
{ name = "*.{jpg,jpeg,png,gif}", size = "> 10MB", fg = "#ff5555", prefix = "󰋯 " },
# Video files with duration indicator
{ name = "*.{mp4,mkv}", duration = "< 10:00", fg = "#bd93f9", prefix = "󰕧 " },
{ name = "*.{mp4,mkv}", duration = "< 1:00:00", fg = "#ffb86c", prefix = "󰕧 " },
{ name = "*.{mp4,mkv}", duration = "> 1:00:00", fg = "#ff5555", prefix = "󰕧 " },
# Archives with compression ratio
{ name = "*.{zip,gz,tar}", ratio = "< 0.5", fg = "#50fa7b", prefix = "󰀼 " },
{ name = "*.{zip,gz,tar}", ratio = "< 0.7", fg = "#f1fa8c", prefix = "󰀼 " },
{ name = "*.{zip,gz,tar}", ratio = "> 0.7", fg = "#ff5555", prefix = "󰀼 " },
# Special Directories
{ name = "node_modules", fg = "#6272a4", prefix = "󰎙 " },
{ name = ".git", fg = "#ff5555", prefix = " " },
{ name = ".github", fg = "#bd93f9", prefix = " " },
{ name = "dist", fg = "#6272a4", prefix = "󰏗 " },
{ name = "build", fg = "#6272a4", prefix = "󱁤 " },
# Additional file types
# Audio files
{ name = "*.{mp3,flac,m4a,wav,ogg}", fg = "#bd93f9", italic = true, prefix = "󰎈 " },
# Font files
{ name = "*.{ttf,otf,woff,woff2}", fg = "#ff79c6", italic = true, prefix = "󰛖 " },
# Database files
{ name = "*.{sql,sqlite,db}", fg = "#8be9fd", italic = true, prefix = "󰆼 " },
# Shell scripts
{ name = "*.{sh,bash,zsh,fish}", fg = "#50fa7b", italic = true, prefix = "󰆍 " },
# Virtual environments
{ name = "venv", fg = "#6272a4", prefix = "󰆧 " },
{ name = ".env", fg = "#50fa7b", prefix = "󰆧 " },
# Container files
{ name = "*.dockerfile", fg = "#8be9fd", bold = true, prefix = "󰡨 " },
{ name = "docker-compose*.{yml,yaml}", fg = "#8be9fd", bold = true, prefix = "󰡨 " },
# Security files
{ name = "*.{pem,crt,ca,key}", fg = "#ff5555", bold = true, prefix = "󰌋 " },
# Improved size-based rules for media
{ name = "*.{jpg,jpeg,png,gif}", size = "< 100KB", fg = "#8be9fd", prefix = "󰋯 " },
{ name = "*.{jpg,jpeg,png,gif}", size = "< 1MB", fg = "#bd93f9", prefix = "󰋯 " },
{ name = "*.{jpg,jpeg,png,gif}", size = "< 10MB", fg = "#ffb86c", prefix = "󰋯 " },
{ name = "*.{jpg,jpeg,png,gif}", size = "> 10MB", fg = "#ff5555", prefix = "󰋯 " },
# Default Fallbacks
{ name = "*", fg = "#f8f8f2" },
{ name = "*/", fg = "#bd93f9", bold = true, prefix = " " },
# Additional Development Files
{ name = "*.{proto}", fg = "#bd93f9", italic = true, prefix = "󰯍 " },
{ name = "*.{graphql,gql}", fg = "#ff79c6", italic = true, prefix = "󰡷 " },
{ name = "*.{tf,tfvars}", fg = "#8be9fd", italic = true, prefix = "󱁢 " },
# Container and Cloud
{ name = "*.{yaml,yml}", pattern = "^k8s|^kubernetes", fg = "#8be9fd", bold = true, prefix = "󱃾 " },
{ name = "*.{yaml,yml}", pattern = "^helm", fg = "#8be9fd", bold = true, prefix = "󰠿 " },
# Data Files
{ name = "*.{csv,tsv}", fg = "#50fa7b", italic = true, prefix = "󰈛 " },
{ name = "*.{parquet,avro}", fg = "#bd93f9", italic = true, prefix = "󰋖 " },
# Size-based rules for documents
{ name = "*.{pdf,epub,mobi}", size = "< 1MB", fg = "#8be9fd", prefix = "󰈙 " },
{ name = "*.{pdf,epub,mobi}", size = "< 10MB", fg = "#ffb86c", prefix = "󰈙 " },
{ name = "*.{pdf,epub,mobi}", size = "> 10MB", fg = "#ff5555", prefix = "󰈙 " },
# Additional Development Files
{ name = "*.{sol}", fg = "#bd93f9", italic = true, prefix = "󰡪 " }, # Solidity files
{ name = "*.{ex,exs}", fg = "#bd93f9", italic = true, prefix = "󰡁 " }, # Elixir files
{ name = "*.{kt,kts}", fg = "#ff79c6", italic = true, prefix = "󱈙 " }, # Kotlin files
{ name = "*.{swift}", fg = "#ff5555", italic = true, prefix = "󰛥 " }, # Swift files
# Config Files
{ name = "*.{nginx,nginx.conf}", fg = "#50fa7b", italic = true, prefix = "󰻭 " },
{ name = "*{webpack}*", fg = "#8be9fd", bold = true, prefix = "󰜫 " },
# ML/Data Science
{ name = "*.{ipynb}", fg = "#ff79c6", italic = true, prefix = "󰠏 " },
{ name = "*.{pkl,pickle}", fg = "#50fa7b", italic = true, prefix = "󰜎 " },
# 3D/Graphics
{ name = "*.{blend}", fg = "#ff79c6", italic = true, prefix = "󰂫 " },
{ name = "*.{fbx,obj,stl}", fg = "#8be9fd", italic = true, prefix = "󰆧 " },
# More granular size-based rules for media files
{ name = "*.{jpg,jpeg,png,gif}", size = "< 50KB", fg = "#8be9fd", prefix = "󰋯 " },
{ name = "*.{jpg,jpeg,png,gif}", size = "< 500KB", fg = "#bd93f9", prefix = "󰋯 " },
{ name = "*.{jpg,jpeg,png,gif}", size = "< 2MB", fg = "#ffb86c", prefix = "󰋯 " },
{ name = "*.{jpg,jpeg,png,gif}", size = "< 20MB", fg = "#ff7043", prefix = "󰋯 " },
{ name = "*.{jpg,jpeg,png,gif}", size = "> 20MB", fg = "#ff5555", prefix = "󰋯 " },
# Size categories for video files
{ name = "*.{mp4,mkv,avi,mov}", size = "< 100MB", fg = "#8be9fd", prefix = "󰕧 " },
{ name = "*.{mp4,mkv,avi,mov}", size = "< 1GB", fg = "#ffb86c", prefix = "󰕧 " },
{ name = "*.{mp4,mkv,avi,mov}", size = "> 1GB", fg = "#ff5555", prefix = "󰕧 " },
]
# Keybindings
[keys]
# Visual key hints
show_hints = true
hint_style = { fg = "#6272a4", bg = "#44475a", italic = true }
# Command palette
command_palette = { bg = "#282a36", fg = "#f8f8f2", selected_bg = "#44475a", selected_fg = "#f8f8f2", border = "#bd93f9" }
# Preview
[preview]
tab_size = 2
max_width = 120
max_height = 60
cache_dir = "/tmp/yazi"
[preview.image]
enabled = true
format = "rgb"
max_width = 1920
max_height = 1080
quality = 90
animate = true
cache = true
[preview.preview_service]
image = "ueberzug"
video = "ffmpegthumbnailer"
pdf = "pdftoppm"
epub = "epub-thumbnailer"
office = "libreoffice --headless --convert-to pdf"
markdown = "glow"
[preview.syntax]
theme = "Dracula"
background = "#282a36"
# Opener
[opener]
edit = [
{ exec = 'nvim "$@"', desc = "Edit with Neovim" },
{ exec = 'code "$@"', desc = "Edit with VS Code" }
]
open = [
{ exec = 'xdg-open "$@"', desc = "Open with system default" },
{ exec = 'firefox "$@"', desc = "Open in Firefox" }
]
reveal = [
{ exec = 'nautilus "$@"', desc = "Reveal in file manager" }
]
# Enhanced preview features
max_preview_size = 10485760 # 10MB limit for preview
scroll_offset = 5
scroll_smooth = true

5
yazi/package.toml Normal file
View File

@@ -0,0 +1,5 @@
[plugin]
deps = [{ use = "yazi-rs/plugins:git", rev = "7afba3a" }, { use = "yazi-rs/plugins:diff", rev = "7afba3a" }]
[flavor]
deps = []

4
yazi/theme.toml Normal file
View File

@@ -0,0 +1,4 @@
[flavor]
dark = "dracula"
use = "dracula"

2
yazi/yazi.toml Normal file
View File

@@ -0,0 +1,2 @@
[manager]
ratio = [2,3,3]

21
zed/keymap.json Normal file
View File

@@ -0,0 +1,21 @@
// Zed keymap
//
// For information on binding keys, see the Zed
// documentation: https://zed.dev/docs/key-bindings
//
// To see the default key bindings run `zed: open default keymap`
// from the command palette.
[
{
"context": "Workspace",
"bindings": {
"space space": "file_finder::Toggle"
}
},
{
"context": "Editor",
"bindings": {
// "j k": ["workspace::SendKeystrokes", "escape"]
}
}
]

18
zed/settings.json Normal file
View File

@@ -0,0 +1,18 @@
// Zed settings
//
// For information on how to configure Zed, see the Zed
// documentation: https://zed.dev/docs/configuring-zed
//
// To see all of Zed's default settings without changing your
// custom settings, run `zed: open default settings` from the
// command palette (cmd-shift-p / ctrl-shift-p)
{
"vim_mode": true,
"ui_font_size": 16,
"buffer_font_size": 14,
"theme": {
"mode": "system",
"light": "Dracula",
"dark": "One Dark"
}
}