From 7879f15726d6fa2499a16457dec36c3a75b165e9 Mon Sep 17 00:00:00 2001 From: danielvici123 Date: Sun, 28 Sep 2025 11:43:01 +0200 Subject: [PATCH] All dotfiles now --- .oh-my-zsh | 1 + .wezterm.lua | 240 +++++++++++++++++++++++++++++++++++++++++++++++++++ .zshrc | 105 ++++++++++++++++++++++ 3 files changed, 346 insertions(+) create mode 160000 .oh-my-zsh create mode 100644 .wezterm.lua create mode 100644 .zshrc diff --git a/.oh-my-zsh b/.oh-my-zsh new file mode 160000 index 0000000..242e2fa --- /dev/null +++ b/.oh-my-zsh @@ -0,0 +1 @@ +Subproject commit 242e2faa51675494cbfa78a81f3ff47d81039863 diff --git a/.wezterm.lua b/.wezterm.lua new file mode 100644 index 0000000..e00cdf0 --- /dev/null +++ b/.wezterm.lua @@ -0,0 +1,240 @@ +-- ~/.config/wezterm/wezterm.lua +local wezterm = require 'wezterm' +local act = wezterm.action + +-- Create a config object +local config = wezterm.config_builder() + +-- local statusbar = wezterm.plugin.require 'https://github.com/Townk/statusbar.wezterm' + +-- ╭──────────────────────────────────────────────────────────╮ +-- │ Shell Configuration │ +-- ╰──────────────────────────────────────────────────────────╯ +config.default_prog = { '/bin/zsh' } + +-- ╭──────────────────────────────────────────────────────────╮ +-- │ Appearance │ +-- ╰──────────────────────────────────────────────────────────╯ +-- Font configuration +config.font = wezterm.font_with_fallback({ + { family = 'FiraCode Nerd Font', weight = 'Regular' }, + { family = 'JetBrains Mono', weight = 'Regular' }, + { family = 'Symbols Nerd Font Mono', scale = 0.85 }, +}) +config.font_size = 10.0 +config.harfbuzz_features = { "calt", "clig", "liga", "kern", "dlig" } +config.warn_about_missing_glyphs = false + +-- Base Color scheme +config.color_scheme = 'Dracula' -- Base scheme, specific colors below will override where needed + +-- Window Appearance +config.window_background_opacity = 0.7 +config.window_decorations = "INTEGRATED_BUTTONS|RESIZE" +config.window_padding = { + left = '1cell', + right = '1cell', + top = '0.5cell', + bottom = '0.5cell', +} + +-- Cursor appearance +config.default_cursor_style = "SteadyBlock" +config.cursor_blink_rate = 0 -- Steady cursor (no blinking) + +-- Inactive Pane Dimming +config.inactive_pane_hsb = { + saturation = 0.9, + brightness = 0.8, +} + +-- ╭──────────────────────────────────────────────────────────╮ +-- │ Tab Bar Styling │ +-- ╰──────────────────────────────────────────────────────────╯ +config.hide_tab_bar_if_only_one_tab = false +config.tab_bar_at_bottom = false +config.use_fancy_tab_bar = true -- Keep this false for custom styling below +config.show_tab_index_in_tab_bar = true +config.tab_max_width = 25 + +-- Detailed Color Overrides for UI Elements (including Tab Bar) +config.colors = { + -- Base Dracula colors (can be inherited from the scheme, but explicit is fine) + foreground = "#f8f8f2", -- WHITE + background = "#000000", -- SCHWARZ + cursor_bg = "#ec5353", + cursor_fg = "#282a36", + cursor_border = "#f8f8f2", + selection_bg = "#44475a", + selection_fg = "#f8f8f2", + -- ANSI Colors (ensure they match Dracula if needed) + ansi = { + '#000000', '#ff5555', '#50fa7b', '#f1fa8c', + '#bd93f9', '#ff79c6', '#8be9fd', '#bfbfbf', + }, + brights = { + '#4d4d4d', '#ff6e6e', '#69ff94', '#ffffa5', + '#d6acff', '#ff92df', '#a4ffff', '#ffffff', + }, + + -- Tab Bar Colors + tab_bar = { + background = "#000000", -- Slightly darker background for the bar itself + active_tab = { + bg_color = "#00a6e9", -- Blau + fg_color = "#282a36", -- Dark background for text + intensity = "Bold", -- Make active tab text bold + underline = "None", + italic = false, + strikethrough = false, + }, + inactive_tab = { + bg_color = "#44475a", -- Dracula selection color (muted) + fg_color = "#f8f8f2", -- Standard foreground + }, + inactive_tab_hover = { + bg_color = "#6272a4", -- Dracula comment color (brighter on hover) + fg_color = "#f8f8f2", + italic = true, -- Italicize on hover + }, + new_tab = { + bg_color = "#282a36", -- Standard background + fg_color = "#f8f8f2", -- Standard foreground + }, + new_tab_hover = { + bg_color = "#ff79c6", -- Dracula pink + fg_color = "#282a36", -- Dark text + }, + }, + + -- Optional: Subtle pane borders using Dracula comment color + split = "#6272a4", +} + +-- Window Frame / Title Bar Styling (Subtle adjustments) +config.window_frame = { + font = wezterm.font { family = 'FiraCode Nerd Font', weight = 'Bold' }, -- Use bold font for title/tabs + font_size = config.font_size, -- Match terminal font size + active_titlebar_bg = "#282a36", -- Keep consistent with background + inactive_titlebar_bg = "#21222c", -- Slightly darker when inactive + -- Border colors removed here, using 'split' color above for pane lines instead +} + +-- ╭──────────────────────────────────────────────────────────╮ +-- │ Scrollback & Performance │ +-- ╰──────────────────────────────────────────────────────────╯ +config.scrollback_lines = 10000 +config.enable_scroll_bar = true -- Keep the scrollbar visible +config.term = "wezterm" +config.front_end = "WebGpu" +config.webgpu_power_preference = "HighPerformance" +config.animation_fps = 60 +config.max_fps = 165 + +-- ╭──────────────────────────────────────────────────────────╮ +-- │ Keybindings │ +-- ╰──────────────────────────────────────────────────────────╯ +config.leader = { key = "Space", mods = "CTRL" } + +config.keys = { + -- { key = "m", mods = "LEADER", action = act.ShowMenu }, + + { key = "t", mods = "LEADER", action = act.SpawnTab("CurrentPaneDomain") }, + { key = "w", mods = "LEADER", action = act.CloseCurrentTab({ confirm = true }) }, + { key = "Tab", mods = "LEADER", action = act.ActivateTabRelative(1) }, + { key = "Tab", mods = "LEADER|SHIFT", action = act.ActivateTabRelative(-1) }, + + { key = "b", mods = "LEADER", action = act.SplitVertical({ domain = "CurrentPaneDomain" }) }, + { key = "h", mods = "LEADER", action = act.SplitHorizontal({ domain = "CurrentPaneDomain" }) }, + + { key = "h", mods = "LEADER", action = act.ActivatePaneDirection("Left") }, + { key = "j", mods = "LEADER", action = act.ActivatePaneDirection("Down") }, + { key = "k", mods = "LEADER", action = act.ActivatePaneDirection("Up") }, + { key = "l", mods = "LEADER", action = act.ActivatePaneDirection("Right") }, + + + { key = "+", mods = "LEADER|SHIFT", action = act.IncreaseFontSize }, + { key = "-", mods = "LEADER|SHIFT", action = act.DecreaseFontSize }, + + + { + key = ",", + mods = "LEADER", + action = act.SpawnCommandInNewTab { + args = { "xdg-open", wezterm.config_dir .. "/wezterm.lua" }, + } + }, +} + +-- ╭──────────────────────────────────────────────────────────╮ +-- │ Mouse Configuration (Disabled) │ +-- ╰──────────────────────────────────────────────────────────╯ +-- config.mouse_bindings = {} -- Explicitly empty or commented out + +-- ╭──────────────────────────────────────────────────────────╮ +-- │ Advanced Features & Event Handlers │ +-- ╰──────────────────────────────────────────────────────────╯ + +-- Automatically reload configuration notification (Optional, uncomment if desired) +-- wezterm.on("window-config-reloaded", function(window, pane) +-- window:toast_notification("WezTerm", "Konfiguration neu geladen!", nil, 3000) +-- end) + +-- Custom tab title formatting (Enhanced version) +wezterm.on("format-tab-title", function(tab, tabs, panes, config, hover, max_width) + local pane = tab.active_pane + local process_name = pane.foreground_process_name or "" + process_name = process_name:gsub(".*/", "") -- Extract basename + + -- Shorten common shell names or identify key processes + local display_name = process_name:upper() -- Default to uppercase name + if process_name == "zsh" then + display_name = "ZSH" + elseif process_name == "bash" then + display_name = "BASH" + elseif process_name == "fish" then + display_name = "FISH" + elseif process_name == "nvim" or process_name == "vim" then + display_name = "NVIM" -- Or VIM + elseif process_name == "htop" then + display_name = "HTOP" + elseif process_name == "ssh" then + display_name = "SSH" + -- Add more specific names if needed + end + + local index = "" + if config.show_tab_index_in_tab_bar then + index = tostring(tab.tab_index + 1) .. ":" + end + + -- Add indicator for active tab (using Nerd Font icons if available) + local prefix = " " -- Default space + if tab.is_active then + prefix = "󰓃 " -- Example: Active dot icon + else + prefix = "󰓃 " -- Example: Inactive dot icon (or just space " ") + end + + local title = prefix .. index .. " " .. display_name .. " " + + -- Truncate if necessary + local title_width = wezterm.nerdfonts.string_width(title) -- Use nerdfonts for accurate width + if max_width and title_width > max_width then + title = wezterm.truncate_right(title, max_width) + end + + return title +end) + + + +-- Remove the status bar related code entirely +-- config.status_update_interval = 1000 -- REMOVED +-- local function make_component(...) end -- REMOVED +-- local separator_fg = ... -- REMOVED +-- local separator_char = ... -- REMOVED +-- wezterm.on("update-status", function(window, pane) ... end) -- REMOVED + +-- Apply the configuration +return config diff --git a/.zshrc b/.zshrc new file mode 100644 index 0000000..db092e9 --- /dev/null +++ b/.zshrc @@ -0,0 +1,105 @@ +# 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" + +# 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="passion" + +# 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. +plugins=(git) + +source $ZSH/oh-my-zsh.sh + +# 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='nvim' +# fi + +# Compilation flags +# export ARCHFLAGS="-arch $(uname -m)" + +# 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" +fastfetch