From cf6d4c58b09e20560c06904fb3020c3ec6662965 Mon Sep 17 00:00:00 2001 From: Kenneth Date: Sun, 8 Dec 2024 15:49:58 +0000 Subject: [PATCH] change color scheme --- .wezterm.lua | 54 +++++++++++++++++++-- aerospace.toml | 24 ++++++--- borders/bordersrc | 8 +++ install.sh | 41 +++++++++++----- neovide/config.toml | 2 + nvim/init.lua | 18 +++++-- nvim/lazy-lock.json | 6 ++- sketchybar/plugins/aerospace.sh | 58 ++++++++++++++++++++++ sketchybar/plugins/battery.sh | 28 +++++++++++ sketchybar/plugins/clock.sh | 8 +++ sketchybar/plugins/front_app.sh | 10 ++++ sketchybar/plugins/space.sh | 7 +++ sketchybar/plugins/theme.sh | 12 +++++ sketchybar/plugins/volume.sh | 20 ++++++++ sketchybar/sketchybarrc | 86 +++++++++++++++++++++++++++++++++ 15 files changed, 353 insertions(+), 29 deletions(-) create mode 100755 borders/bordersrc create mode 100644 neovide/config.toml create mode 100755 sketchybar/plugins/aerospace.sh create mode 100755 sketchybar/plugins/battery.sh create mode 100755 sketchybar/plugins/clock.sh create mode 100755 sketchybar/plugins/front_app.sh create mode 100755 sketchybar/plugins/space.sh create mode 100755 sketchybar/plugins/theme.sh create mode 100755 sketchybar/plugins/volume.sh create mode 100755 sketchybar/sketchybarrc diff --git a/.wezterm.lua b/.wezterm.lua index d7a265a..32192e6 100644 --- a/.wezterm.lua +++ b/.wezterm.lua @@ -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 diff --git a/aerospace.toml b/aerospace.toml index 7527545..3545faf 100644 --- a/aerospace.toml +++ b/aerospace.toml @@ -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'] + diff --git a/borders/bordersrc b/borders/bordersrc new file mode 100755 index 0000000..908aa73 --- /dev/null +++ b/borders/bordersrc @@ -0,0 +1,8 @@ +options=( + style=round + width=6.0 + hidpi=off + active_color=0xffc4a7e7 +) + +borders "${options[@]}" diff --git a/install.sh b/install.sh index b7460c1..e551053 100755 --- a/install.sh +++ b/install.sh @@ -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 diff --git a/neovide/config.toml b/neovide/config.toml new file mode 100644 index 0000000..475b820 --- /dev/null +++ b/neovide/config.toml @@ -0,0 +1,2 @@ +frame = "transparent" +title-hidden = true diff --git a/nvim/init.lua b/nvim/init.lua index 0c4c5f7..d698aae 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -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", "f", ":NvimTreeToggle", { 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() diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json index 0d0acc3..67a094a 100644 --- a/nvim/lazy-lock.json +++ b/nvim/lazy-lock.json @@ -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" } -} +} \ No newline at end of file diff --git a/sketchybar/plugins/aerospace.sh b/sketchybar/plugins/aerospace.sh new file mode 100755 index 0000000..615e698 --- /dev/null +++ b/sketchybar/plugins/aerospace.sh @@ -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 + diff --git a/sketchybar/plugins/battery.sh b/sketchybar/plugins/battery.sh new file mode 100755 index 0000000..dd0a9c5 --- /dev/null +++ b/sketchybar/plugins/battery.sh @@ -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}%" diff --git a/sketchybar/plugins/clock.sh b/sketchybar/plugins/clock.sh new file mode 100755 index 0000000..6cc739b --- /dev/null +++ b/sketchybar/plugins/clock.sh @@ -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')" + diff --git a/sketchybar/plugins/front_app.sh b/sketchybar/plugins/front_app.sh new file mode 100755 index 0000000..fb6d0b3 --- /dev/null +++ b/sketchybar/plugins/front_app.sh @@ -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 diff --git a/sketchybar/plugins/space.sh b/sketchybar/plugins/space.sh new file mode 100755 index 0000000..b8602b5 --- /dev/null +++ b/sketchybar/plugins/space.sh @@ -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" diff --git a/sketchybar/plugins/theme.sh b/sketchybar/plugins/theme.sh new file mode 100755 index 0000000..a61b81c --- /dev/null +++ b/sketchybar/plugins/theme.sh @@ -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 + diff --git a/sketchybar/plugins/volume.sh b/sketchybar/plugins/volume.sh new file mode 100755 index 0000000..6e69a5d --- /dev/null +++ b/sketchybar/plugins/volume.sh @@ -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 diff --git a/sketchybar/sketchybarrc b/sketchybar/sketchybarrc new file mode 100755 index 0000000..aa03639 --- /dev/null +++ b/sketchybar/sketchybarrc @@ -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 +