change color scheme

This commit is contained in:
2024-12-08 15:49:58 +00:00
parent c1a80f66bb
commit cf6d4c58b0
15 changed files with 353 additions and 29 deletions

View File

@@ -4,27 +4,70 @@ local wezterm = require("wezterm")
-- This will hold the configuration.
local config = wezterm.config_builder()
function scheme_for_appearance(appearance)
function on_dark_mode(overrides)
overrides.colors = {
tab_bar = {
background = "#232136",
active_tab = {
bg_color = "#ea9a97",
fg_color = "#232136",
},
inactive_tab = {
bg_color = "#6e6a86",
fg_color = "#e0def4",
},
new_tab = {
bg_color = "#2a273f",
fg_color = "#e0def4",
},
},
}
end
function on_light_mode(overrides)
overrides.colors = {
tab_bar = {
background = "#faf4ed",
active_tab = {
bg_color = "#d7827e",
fg_color = "#e0def4",
},
inactive_tab = {
bg_color = "#9893a5",
fg_color = "#f2e9e1",
},
new_tab = {
bg_color = "#fffaf3",
fg_color = "#575279",
},
},
}
end
function scheme_for_appearance(appearance, overrides)
if appearance:find("Dark") then
return "Catppuccin Mocha"
on_dark_mode(overrides)
return "rose-pine-moon"
else
return "Catppuccin Latte"
on_light_mode(overrides)
return "rose-pine-dawn"
end
end
wezterm.on("window-config-reloaded", function(window, pane)
local overrides = window:get_config_overrides() or {}
local appearance = window:get_appearance()
local scheme = scheme_for_appearance(appearance)
local scheme = scheme_for_appearance(appearance, overrides)
if overrides.color_scheme ~= scheme then
overrides.color_scheme = scheme
window:set_config_overrides(overrides)
end
end)
config.font = wezterm.font("CommitMono")
config.font = wezterm.font("Fira Code")
config.font_size = 14
config.enable_tab_bar = false
config.use_fancy_tab_bar = false
config.tab_bar_at_bottom = true
@@ -34,5 +77,6 @@ config.window_padding = {
top = 0,
bottom = 0,
}
config.window_decorations = "RESIZE"
return config

View File

@@ -9,7 +9,16 @@ after-login-command = []
# You can use it to add commands that run after AeroSpace startup.
# 'after-startup-command' is run after 'after-login-command'
# Available commands : https://nikitabobko.github.io/AeroSpace/commands
after-startup-command = []
after-startup-command = [
# Run Sketchybar together with AeroSpace
# sketchbar has a built-in detection of already running process,
# so it won't be run twice on AeroSpace restart
'exec-and-forget sketchybar'
]
on-focus-changed = [
'exec-and-forget sketchybar --trigger aerospace_on_focus_changed'
]
# Start AeroSpace at login
start-at-login = false
@@ -43,12 +52,12 @@ key-mapping.preset = 'qwerty'
# Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'.
# See: https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors
[gaps]
inner.horizontal = 0
inner.vertical = 0
outer.left = 0
outer.bottom = 0
outer.top = 0
outer.right = 0
inner.horizontal = 8
inner.vertical = 8
outer.left = 8
outer.bottom = 8
outer.top = 48
outer.right = 8
# 'main' binding mode declaration
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
@@ -166,3 +175,4 @@ alt-shift-h = ['join-with left', 'mode main']
alt-shift-j = ['join-with down', 'mode main']
alt-shift-k = ['join-with up', 'mode main']
alt-shift-l = ['join-with right', 'mode main']

8
borders/bordersrc Executable file
View File

@@ -0,0 +1,8 @@
options=(
style=round
width=6.0
hidpi=off
active_color=0xffc4a7e7
)
borders "${options[@]}"

View File

@@ -1,42 +1,61 @@
#!/bin/bash
set -eu
for arg in "$@"; do declare $arg=1; done
if [ ! -v macos ]; then linux=1; fi
for arg in "$@"; do declare $arg='1'; done
if [ ! -n "$macos" ];
then linux=1;
else
linux="";
fi
# install wezterm config
ln -s "$HOME/dotfiles/.wezterm.lua" "$HOME/.wezterm.lua"
ln -s "$HOME/dotfiles/.wezterm.lua" "$HOME/.wezterm.lua" || :
# install neovim config
if [ ! -d "$HOME/.config/nvim" ]; then
ln -s "$HOME/dotfiles/nvim" "$HOME/.config/nvim"
ln -s "$HOME/dotfiles/nvim" "$HOME/.config/nvim" || :
fi
# install starship config
ln -s "$HOME/dotfiles/starship.toml" "$HOME/.config/starship.toml"
ln -s "$HOME/dotfiles/starship.toml" "$HOME/.config/starship.toml" || :
if [ ! -v linux ]; then
echo $macos
if [ ! -n "$linux" ]; then
# install aerospace config
ln -s "$HOME/dotfiles/aerospace.toml" "$HOME/.aerospace.toml"
ln -s "$HOME/dotfiles/aerospace.toml" "$HOME/.aerospace.toml" || :
if [ ! -d "$HOME/.config/sketchybar" ]; then
ln -s "$HOME/dotfiles/sketchybar" "$HOME/.config/sketchybar" || :
fi
if [ ! -d "$HOME/.config/borders" ]; then
ln -s "$HOME/dotfiles/borders" "$HOME/.config/borders" || :
fi
if [ ! -d "$HOME/.config/neovide" ]; then
ln -s "$HOME/dotfiles/neovide" "$HOME/.config/neovide" || :
fi
else
# install sway
if [ ! -d "$HOME/.config/sway" ]; then
ln -s "$HOME/dotfiles/sway" "$HOME/.config/sway"
ln -s "$HOME/dotfiles/sway" "$HOME/.config/sway" || :
fi
# install waybar
if [ ! -d "$HOME/.config/waybar" ]; then
ln -s "$HOME/dotfiles/waybar" "$HOME/.config/waybar"
ln -s "$HOME/dotfiles/waybar" "$HOME/.config/waybar" || :
fi
# install rofi
if [ ! -d "$HOME/.config/rofi" ]; then
ln -s "$HOME/dotfiles/rofi" "$HOME/.config/rofi"
ln -s "$HOME/dotfiles/rofi" "$HOME/.config/rofi" || :
fi
# install rofi
if [ ! -d "$HOME/.config/dunst" ]; then
ln -s "$HOME/dotfiles/dunst" "$HOME/.config/dunst"
ln -s "$HOME/dotfiles/dunst" "$HOME/.config/dunst" || :
fi
fi

2
neovide/config.toml Normal file
View File

@@ -0,0 +1,2 @@
frame = "transparent"
title-hidden = true

View File

@@ -15,6 +15,8 @@ function init_lazy_nvim()
end
function define_keymaps()
vim.api.nvim_set_keymap("n", "J", "10j", { noremap = true, silent = true })
-- space+f to open telescope browser in normal mode
vim.api.nvim_set_keymap("n", "<space>f", ":NvimTreeToggle<CR>", { noremap = true })
@@ -103,12 +105,12 @@ function setup_plugins()
require("auto-dark-mode").setup({
set_dark_mode = function()
vim.opt.background = "dark"
vim.cmd("colorscheme catppuccin-mocha")
vim.cmd("colorscheme rose-pine-moon")
end,
set_light_mode = function()
vim.opt.background = "light"
vim.cmd("colorscheme catppuccin-latte")
vim.cmd("colorscheme rose-pine-dawn")
end,
})
@@ -122,7 +124,7 @@ function setup_plugins()
})
require("nvim-tree").setup({
disable_netrw = true,
disable_netrw = false,
hijack_netrw = true,
respect_buf_cwd = true,
sync_root_with_cwd = true,
@@ -461,8 +463,9 @@ function config_vim()
vim.opt.listchars = {}
vim.opt.termguicolors = true
vim.o.guifont = "CommitMono Nerd Font:h14"
vim.o.guifont = "FiraCode Nerd Font:h14"
vim.g.neovide_floating_shadow = false
vim.g.neovide_position_animation_length = 0
vim.g.neovide_cursor_animation_length = 0.00
vim.g.neovide_cursor_trail_size = 0
@@ -525,6 +528,7 @@ end
PLUGINS = {
{ "catppuccin/nvim", name = "catppuccin", priority = 1000 },
{ "rose-pine/neovim", name = "rose-pine" },
{ "shortcuts/no-neck-pain.nvim" },
{ "nvim-tree/nvim-web-devicons" },
{ "nvim-tree/nvim-tree.lua" },
@@ -590,6 +594,12 @@ PLUGINS = {
config = true,
},
{ "windwp/nvim-ts-autotag" },
{
"numToStr/Comment.nvim",
opts = {
-- add any options here
},
},
}
init_lazy_nvim()

View File

@@ -1,4 +1,5 @@
{
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"LuaSnip": { "branch": "master", "commit": "50fcf17db7c75af80e6b6109acfbfb4504768780" },
"auto-dark-mode.nvim": { "branch": "master", "commit": "2b8c938da9a7c9432120266b92936b2c22e8cfb8" },
"catppuccin": { "branch": "main", "commit": "cc8e290d4c0d572171243087f8541e49be2c8764" },
@@ -9,7 +10,7 @@
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"formatter.nvim": { "branch": "master", "commit": "ad246d34ce7a32f752071ed81b09b94e6b127fad" },
"gitsigns.nvim": { "branch": "main", "commit": "4a143f13e122ab91abdc88f89eefbe70a4858a56" },
"lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
"lazy.nvim": { "branch": "main", "commit": "4c6479e98ad643cd584e9e7c4095c463e0d810eb" },
"lazygit.nvim": { "branch": "main", "commit": "ad3e1ea592f9d13e86e0d4e850224d9d78069508" },
"lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" },
"lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" },
@@ -24,8 +25,9 @@
"nvim-ts-autotag": { "branch": "main", "commit": "06fe07d7523ba8c755fac7c913fceba43b1720ee" },
"nvim-web-devicons": { "branch": "master", "commit": "c0cfc1738361b5da1cd0a962dd6f774cc444f856" },
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
"rose-pine": { "branch": "main", "commit": "07a887a7bef4aacea8c7caebaf8cbf808cdc7a8e" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "master", "commit": "6312868392331c9c0f22725041f1ec2bef57c751" },
"typst-preview.nvim": { "branch": "master", "commit": "36a82aaff8931f96015ee7365afe2e253ab3b1ea" },
"vim-floaterm": { "branch": "master", "commit": "4e28c8dd0271e10a5f55142fb6fe9b1599ee6160" }
}
}

58
sketchybar/plugins/aerospace.sh Executable file
View File

@@ -0,0 +1,58 @@
#!/usr/bin/env bash
# make sure it's executable with:
# chmod +x ~/.config/sketchybar/plugins/aerospace.sh
# if [ "$1" = "$FOCUSED_WORKSPACE" ]; then
# sketchybar --set $NAME background.drawing=on
# else
# sketchybar --set $NAME background.drawing=off
# fi
#
get_app_icon () {
local app_name="$1"
if [ "$app_name" = "WezTerm" ]; then
echo "󰆍"
elif [ "$app_name" = "neovide" ]; then
echo ""
elif [ "$app_name" = "Firefox" ]; then
echo "󰈹"
elif [ "$app_name" = "Discord" ]; then
echo "󰙯"
elif [ "$app_name" = "Music" ]; then
echo "󰝚"
elif [ "$app_name" = "WebStorm" ]; then
echo "󰈮"
elif [ "$app_name" = "IntelliJ IDEA" ]; then
echo "󰈮"
else
echo "name:$app_name"
fi
}
sketchybar --remove /app\\./
focused_window=$(aerospace list-windows --focused --format "%{window-id}" || "")
IFS=$'\n'
for item in $(aerospace list-windows --workspace focused --format "%{window-id}:%{app-name}"); do
window_id=${item%:*}
app_name=${item#*:}
label=$(get_app_icon "$app_name")
if [ "${label:0:5}" = "name:" ]; then
sketchybar --add item app.$window_id.$app_name left \
--set app.$window_id.$app_name \
label=${label:5}
else
sketchybar --add item app.$window_id.$app_name left \
--set app.$window_id.$app_name \
icon=$label
fi
if [ "$window_id" = "$focused_window" ]; then
sketchybar --set app.$window_id.$app_name icon.color=0xffea9a97
fi
done
unset IFS

28
sketchybar/plugins/battery.sh Executable file
View File

@@ -0,0 +1,28 @@
#!/bin/sh
PERCENTAGE="$(pmset -g batt | grep -Eo "\d+%" | cut -d% -f1)"
CHARGING="$(pmset -g batt | grep 'AC Power')"
if [ "$PERCENTAGE" = "" ]; then
exit 0
fi
case "${PERCENTAGE}" in
9[0-9]|100) ICON=""
;;
[6-8][0-9]) ICON=""
;;
[3-5][0-9]) ICON=""
;;
[1-2][0-9]) ICON=""
;;
*) ICON=""
esac
if [[ "$CHARGING" != "" ]]; then
ICON="󱐥"
fi
# The item invoking this script (name $NAME) will get its icon and label
# updated with the current battery status
sketchybar --set "$NAME" icon="$ICON" label="${PERCENTAGE}%"

8
sketchybar/plugins/clock.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
# The $NAME variable is passed from sketchybar and holds the name of
# the item invoking this script:
# https://felixkratz.github.io/SketchyBar/config/events#events-and-scripting
sketchybar --set "$NAME" label="$(date '+%d/%m %H:%M')"

10
sketchybar/plugins/front_app.sh Executable file
View File

@@ -0,0 +1,10 @@
#!/bin/sh
# Some events send additional information specific to the event in the $INFO
# variable. E.g. the front_app_switched event sends the name of the newly
# focused application in the $INFO variable:
# https://felixkratz.github.io/SketchyBar/config/events#events-and-scripting
if [ "$SENDER" = "front_app_switched" ]; then
sketchybar --set "$NAME" label="$INFO"
fi

7
sketchybar/plugins/space.sh Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/sh
# The $SELECTED variable is available for space components and indicates if
# the space invoking this script (with name: $NAME) is currently selected:
# https://felixkratz.github.io/SketchyBar/config/components#space----associate-mission-control-spaces-with-an-item
sketchybar --set "$NAME" background.drawing="$SELECTED"

12
sketchybar/plugins/theme.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/sh
query=$(defaults read -g AppleInterfaceStyle | xargs)
if [ "$query" = "Dark" ]; then
sketchybar --bar color=0xff232136 \
--set '/.*/' icon.color=0xffe0def4 label.color=0xffe0def4
else
sketchybar --bar color=0xfffaf4ed \
--set '/.*/' icon.color=0xff575279 label.color=0xff575279
fi

20
sketchybar/plugins/volume.sh Executable file
View File

@@ -0,0 +1,20 @@
#!/bin/sh
# The volume_change event supplies a $INFO variable in which the current volume
# percentage is passed to the script.
if [ "$SENDER" = "volume_change" ]; then
VOLUME="$INFO"
case "$VOLUME" in
[6-9][0-9]|100) ICON="󰕾"
;;
[3-5][0-9]) ICON="󰖀"
;;
[1-9]|[1-2][0-9]) ICON="󰕿"
;;
*) ICON="󰖁"
esac
sketchybar --set "$NAME" icon="$ICON" label="$VOLUME%"
fi

86
sketchybar/sketchybarrc Executable file
View File

@@ -0,0 +1,86 @@
# This is a demo config to showcase some of the most important commands.
# It is meant to be changed and configured, as it is intentionally kept sparse.
# For a (much) more advanced configuration example see my dotfiles:
# https://github.com/FelixKratz/dotfiles
PLUGIN_DIR="$CONFIG_DIR/plugins"
##### Bar Appearance #####
# Configuring the general appearance of the bar.
# These are only some of the options available. For all options see:
# https://felixkratz.github.io/SketchyBar/config/bar
# If you are looking for other colors, see the color picker:
# https://felixkratz.github.io/SketchyBar/config/tricks#color-picker
sketchybar --bar position=top height=40 blur_radius=30 color=0xfffaf4ed
##### Changing Defaults #####
# We now change some default values, which are applied to all further items.
# For a full list of all available item properties see:
# https://felixkratz.github.io/SketchyBar/config/items
default=(
padding_left=5
padding_right=5
icon.font="FiraCode Nerd Font:Bold:17.0"
label.font="FiraCode Nerd Font:Bold:12.0"
icon.color=0xff575279
label.color=0xff575279
icon.padding_left=4
icon.padding_right=4
label.padding_left=4
label.padding_right=4
)
sketchybar --default "${default[@]}"
##### Adding Mission Control Space Indicators #####
# Let's add some mission control spaces:
# https://felixkratz.github.io/SketchyBar/config/components#space----associate-mission-control-spaces-with-an-item
# to indicate active and available mission control spaces.
##### Adding Left Items #####
# We add some regular items to the left side of the bar, where
# only the properties deviating from the current defaults need to be set
# sketchybar --add item chevron left \
# --set chevron icon= label.drawing=off \
# --add item front_app left \
# --set front_app icon.drawing=off script="$PLUGIN_DIR/front_app.sh" \
# --subscribe front_app front_app_switched
##### Adding Right Items #####
# In the same way as the left items we can add items to the right side.
# Additional position (e.g. center) are available, see:
# https://felixkratz.github.io/SketchyBar/config/items#adding-items-to-sketchybar
# Some items refresh on a fixed cycle, e.g. the clock runs its script once
# every 10s. Other items respond to events they subscribe to, e.g. the
# volume.sh script is only executed once an actual change in system audio
# volume is registered. More info about the event system can be found here:
# https://felixkratz.github.io/SketchyBar/config/events
sketchybar --add event aerospace_on_focus_changed \
--add event theme_change AppleInterfaceThemeChangedNotification
sketchybar --add item clock right \
--set clock update_freq=10 icon=󰥔 script="$PLUGIN_DIR/clock.sh" \
--add item volume right \
--set volume script="$PLUGIN_DIR/volume.sh" \
--subscribe volume volume_change \
--add item battery right \
--set battery update_freq=120 script="$PLUGIN_DIR/battery.sh" \
--subscribe battery system_woke power_source_change \
--add item theme right \
--set theme script="$PLUGIN_DIR/theme.sh"\
--subscribe theme theme_change
sketchybar --add item apple left \
--set apple icon=󰀵 label.drawing=off \
--add item front_app left \
--set front_app icon.drawing=off script="$PLUGIN_DIR/front_app.sh" \
--subscribe front_app front_app_switched
##### Force all scripts to run the first time (never do this in a script) #####
sketchybar --update