From b03369ba79f36d43edab09590a4b2874738c95c1 Mon Sep 17 00:00:00 2001 From: David JULIEN Date: Fri, 22 Oct 2021 22:40:18 +0200 Subject: [PATCH 1/3] feat: introducing astronomy.nvim new colorscheme! added as a submodule, which will be pulled right where it needs to sit updated the config to follow the changes add colorscheme.lua to configurate !!!BROKEN: this file uses script that are not yet committed --- .config/nvim/lua/colorscheme.lua | 13 +++++++++++++ .config/nvim/lua/lsp/init.lua | 16 ++++++++-------- .config/nvim/lua/maps.lua | 3 +++ .config/nvim/lua/plugins.lua | 2 +- .config/nvim/lua/statusline.lua | 6 +++--- .gitmodules | 3 +++ .local/src/astronomy.nvim | 1 + 7 files changed, 32 insertions(+), 12 deletions(-) create mode 100644 .config/nvim/lua/colorscheme.lua create mode 160000 .local/src/astronomy.nvim diff --git a/.config/nvim/lua/colorscheme.lua b/.config/nvim/lua/colorscheme.lua new file mode 100644 index 0000000..83dfddd --- /dev/null +++ b/.config/nvim/lua/colorscheme.lua @@ -0,0 +1,13 @@ +-- Author : swytch +-- Created : Friday Oct. 22, 2021 22:07:41 CET +-- License : GPLv3 +-- Description : colorscheme config file + + +local utils = require("utils") +local file = os.getenv("XDG_STATE_HOME") .. "/nvim_colorscheme" +local colorscheme = utils.lines_from(file)[0] + +require("astronomy").setup { + variant = colorscheme, +} diff --git a/.config/nvim/lua/lsp/init.lua b/.config/nvim/lua/lsp/init.lua index 8d12035..6632694 100644 --- a/.config/nvim/lua/lsp/init.lua +++ b/.config/nvim/lua/lsp/init.lua @@ -8,33 +8,33 @@ local M = {} vim.fn.sign_define( "DiagnosticSignError", { - texthl = "DiagnosticError", + texthl = "DiagnosticVirtualTextError", text = globals.sign_error, - numhl = "DiagnosticError" + numhl = "DiagnosticSignError" } ) vim.fn.sign_define( "DiagnosticSignWarn", { - texthl = "DiagnosticWarn", + texthl = "DiagnosticVirtualTextWarn", text = globals.sign_warning, - numhl = "DiagnosticWarn" + numhl = "DiagnosticSignWarn" } ) vim.fn.sign_define( "DiagnosticSignHint", { - texthl = "DiagnosticHint", + texthl = "DiagnosticVirtualTextHint", text = globals.sign_hint, - numhl = "DiagnosticHint" + numhl = "DiagnosticSignHint" } ) vim.fn.sign_define( "DiagnosticSignInfo", { - texthl = "DiagnosticInfo", + texthl = "DiagnosticVirtualTextInfo", text = globals.sign_info, - numhl = "DiagnosticInfo" + numhl = "DiagnosticSignInfo" } ) diff --git a/.config/nvim/lua/maps.lua b/.config/nvim/lua/maps.lua index 60f45a5..ee37983 100644 --- a/.config/nvim/lua/maps.lua +++ b/.config/nvim/lua/maps.lua @@ -23,3 +23,6 @@ utils.map("n", "lf", "lua vim.lsp.buf.formatting()") utils.map("n", "tf", "Telescope find_files") utils.map("n", "tb", "Telescope file_browser") utils.map("n", "tl", "Telescope live_grep") + +-- colorscheme +utils.map("n", "", "lua require(\"astronomy\").toggle_variant()") diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua index e4b9fb3..6ee4b19 100644 --- a/.config/nvim/lua/plugins.lua +++ b/.config/nvim/lua/plugins.lua @@ -20,7 +20,7 @@ return require("packer").startup(function() -- colorscheme use { - "~/.local/src/astronomy", + "~/.local/src/astronomy.nvim", config = function() require("colorscheme") end } diff --git a/.config/nvim/lua/statusline.lua b/.config/nvim/lua/statusline.lua index 2b8bafc..647b19c 100644 --- a/.config/nvim/lua/statusline.lua +++ b/.config/nvim/lua/statusline.lua @@ -148,17 +148,17 @@ local function statusline_focused() process_diagnostics( globals.sign_error .. " ", diagnostics.errors, - "%#DiagnosticError#" + "%#DiagnosticVirtualTextError#" ), process_diagnostics( globals.sign_warning .. " ", diagnostics.warnings, - "%#DiagnosticWarn#" + "%#DiagnosticVirtualTextWarn#" ), process_diagnostics( globals.sign_info .. " ", diagnostics.info, - "%#DiagnosticInfo#" + "%#DiagnosticVirtualTextInfo#" ) } ) diff --git a/.gitmodules b/.gitmodules index 5091431..70837f4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,3 +13,6 @@ [submodule ".local/src/slock"] path = .local/src/slock url = git@github.com:swy7ch/slock.git +[submodule ".local/src/astronomy.nvim"] + path = .local/src/astronomy.nvim + url = git@github.com:swy7ch/astronomy.nvim diff --git a/.local/src/astronomy.nvim b/.local/src/astronomy.nvim new file mode 160000 index 0000000..c329ff4 --- /dev/null +++ b/.local/src/astronomy.nvim @@ -0,0 +1 @@ +Subproject commit c329ff44d3aef42e8347563bf7ae119b5a2a2d70 From 268c870d041fa12aebebda32809ec0bc82e0b5c7 Mon Sep 17 00:00:00 2001 From: David JULIEN Date: Sat, 23 Oct 2021 02:54:42 +0200 Subject: [PATCH 2/3] feat: add $XDG_STATE_HOME directory adapt sb-battery and setbg scripts --- .local/bin/setbg | 7 ++++--- .local/bin/statusbar/sb-battery | 7 ++++--- .zshenv | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.local/bin/setbg b/.local/bin/setbg index cd91326..b40f800 100755 --- a/.local/bin/setbg +++ b/.local/bin/setbg @@ -13,8 +13,9 @@ # if $1 is a jpg file, set it as a wallpaper # if $1 is a directory, choose a randomized image in it, set it as wallpaper -[ -f "$1" ] && cp $1 "$XDG_CONFIG_HOME/wall.jpg" && dunstify -u "low" "Wallpaper changed" +wall="$XDG_STATE_HOME/wall.jpg" +[ -f "$1" ] && cp $1 "$wall" && dunstify -u "low" "Wallpaper changed" -[ -d "$1" ] && cp "$(find "$1"/*.jpg -type f | shuf -n 1)" "$XDG_CONFIG_HOME/wall.jpg" && dunstify -u "low" "Random wallpaper chosen" +[ -d "$1" ] && cp "$(find "$1"/*.jpg -type f | shuf -n 1)" "$" && dunstify -u "low" "Random wallpaper chosen" -xwallpaper --zoom "$XDG_CONFIG_HOME/wall.jpg" +xwallpaper --zoom "$wall" diff --git a/.local/bin/statusbar/sb-battery b/.local/bin/statusbar/sb-battery index cd07a56..82a5f32 100755 --- a/.local/bin/statusbar/sb-battery +++ b/.local/bin/statusbar/sb-battery @@ -15,16 +15,17 @@ # In any case, show the remaining battery percentage # Also sends a notification if battery running low +time="$XDG_STATE_HOME/batteryupdate" notify() { \ now=$(date +%s) - if [ -e $XDG_CONFIG_HOME/batteryupdate ]; then - old=$(cat $XDG_CONFIG_HOME/batteryupdate) + if [ -e $time ]; then + old=$(cat $time) delta=$(expr $now - $old) else delta=$now fi [ 300 -gt $delta ] && return; - echo $now > $XDG_CONFIG_HOME/batteryupdate + echo $now > $time case "$capacity" in 2[0-9]) notify-send -u "normal" "Battery is running low ($capacity%)" "Please plug your computer to a power source" ;; *) notify-send -u "critical" "Battery is dangerously low ($capacity%)" "Please plug your computer to a power source - NOW!" ;; diff --git a/.zshenv b/.zshenv index ab9145e..ba8353c 100644 --- a/.zshenv +++ b/.zshenv @@ -4,6 +4,7 @@ export XDG_CACHE_HOME="$HOME/.cache" export XDG_CONFIG_HOME="$HOME/.config" export XDG_DATA_HOME="$HOME/.local/share" +export XDG_STATE_HOME="$HOME/.local/state" export ZDOTDIR="$HOME/.config/zsh" From ca53077a593103ce03b178e1a2f1987ecb9a5444 Mon Sep 17 00:00:00 2001 From: David JULIEN Date: Fri, 22 Oct 2021 22:34:19 +0200 Subject: [PATCH 3/3] feat: change colorscheme, system-wide nvim: create the relevant utils switch-colors: change xcolors + nvim colorscheme -> $XDG_STATE_HOME/{xcolors,nvim_colorscheme} -> $XDG_DATA_HOME/colorschemes for correspondance sxhkd: keybindings --- .config/X11/xcolors_dark | 39 +++++++++++++++++++++++++++++ .config/X11/xcolors_light | 39 +++++++++++++++++++++++++++++ .config/X11/xprofile | 2 ++ .config/X11/xresources | 40 +++--------------------------- .config/nvim/lua/utils.lua | 18 ++++++++++++++ .config/sxhkd/sxhkdrc | 6 +++++ .local/bin/switch-colors | 50 ++++++++++++++++++++++++++++++++++++++ .local/share/colorschemes | 2 ++ 8 files changed, 159 insertions(+), 37 deletions(-) create mode 100644 .config/X11/xcolors_dark create mode 100644 .config/X11/xcolors_light create mode 100755 .local/bin/switch-colors create mode 100644 .local/share/colorschemes diff --git a/.config/X11/xcolors_dark b/.config/X11/xcolors_dark new file mode 100644 index 0000000..4ef9146 --- /dev/null +++ b/.config/X11/xcolors_dark @@ -0,0 +1,39 @@ +/* name dark light */ +/* black 0 8 */ +/* red 1 9 */ +/* green 2 10 */ +/* yellow 3 11 */ +/* blue 4 12 */ +/* purple 5 13 */ +/* cyan 6 14 */ +/* white 7 15 */ + +/* theme */ +*.color0: #131616 +*.color1: #b73935 +*.color2: #427d61 +*.color3: #f7a583 +*.color4: #458588 +*.color5: #b16286 +*.color6: #7cafa3 +*.color7: #d5c4a1 +*.color8: #373737 +*.color9: #ea6962 +*.color10: #89b594 +*.color11: #ffeca3 +*.color12: #7daea3 +*.color13: #d3869b +*.color14: #ace5d7 +*.color15: #fbf1c7 +*.background: #131616 +*.selbackground: #373737 +*.foreground: #fbf1c7 +*.normforeground: #a89984 +*.selforeground: #ebdbb2 +*.cursorColor: #ebdbb2 + +/* dmenu colors */ +dmenu.background: #131616 +dmenu.foreground: #fbf1c7 +dmenu.selbackground: #427d61 +dmenu.selforeground: #fbf1c7 diff --git a/.config/X11/xcolors_light b/.config/X11/xcolors_light new file mode 100644 index 0000000..4efad90 --- /dev/null +++ b/.config/X11/xcolors_light @@ -0,0 +1,39 @@ +/* name dark light */ +/* black 0 8 */ +/* red 1 9 */ +/* green 2 10 */ +/* yellow 3 11 */ +/* blue 4 12 */ +/* purple 5 13 */ +/* cyan 6 14 */ +/* white 7 15 */ + +/* theme */ +*.color0: #1d2021 +*.color1: #9d0006 +*.color2: #427d61 +*.color3: #d65d0e +*.color4: #076678 +*.color5: #8f3f71 +*.color6: #4a8785 +*.color7: #a89984 +*.color8: #373737 +*.color9: #b73935 +*.color10: #689d6a +*.color11: #d79921 +*.color12: #458588 +*.color13: #b16286 +*.color14: #7cafa3 +*.color15: #fbf1c7 +*.background: #fbf1c7 +*.selbackground: #ebdbb2 +*.foreground: #665c64 +*.normforeground: #665c64 +*.selforeground: #1d2021 +*.cursorColor: #1d2021 + +/* dmenu colors */ +dmenu.background: #fbf1c7 +dmenu.foreground: #665c64 +dmenu.selbackground: #427d61 +dmenu.selforeground: #fbf1c7 diff --git a/.config/X11/xprofile b/.config/X11/xprofile index c1a3f83..aa17a11 100644 --- a/.config/X11/xprofile +++ b/.config/X11/xprofile @@ -14,6 +14,8 @@ sbacklight set 3 & setbg & dwmblocks & xrdb "$XDG_CONFIG_HOME/X11/xresources" +xrdb -merge "$XDG_STATE_HOME/xcolors" +xautolock -locker slock -time 5 -corners 000- & xinput set-prop 'Synaptics TM3072-003' 'libinput Tapping Enabled' 1 & xinput set-prop 'Synaptics TM3072-003' 'libinput Natural Scrolling Enabled' 1 & diff --git a/.config/X11/xresources b/.config/X11/xresources index 46c4727..63e2d76 100644 --- a/.config/X11/xresources +++ b/.config/X11/xresources @@ -2,46 +2,12 @@ *.font: Iosevka Fixed Slab:size=12 *.symbols: Symbols Nerd Font:size=11 -/* name dark light */ -/* black 0 8 */ -/* red 1 9 */ -/* green 2 10 */ -/* yellow 3 11 */ -/* blue 4 12 */ -/* purple 5 13 */ -/* cyan 6 14 */ -/* white 7 15 */ - -/* theme */ -*.color0: #1d2021 -*.color1: #b73935 -*.color2: #5d9179 -*.color3: #f7a583 -*.color4: #458588 -*.color5: #b16286 -*.color6: #7cafa3 -*.color7: #d5c4a1 -*.color8: #373737 -*.color9: #ea6962 -*.color10: #89b482 -*.color11: #ffeca3 -*.color12: #7daea3 -*.color13: #d3869b -*.color14: #ace5d7 -*.color15: #fbf1c7 -*.background: #1d2021 -*.selbackground: #373737 -*.foreground: #fbf1c7 -*.normforeground: #a89984 -*.selforeground: #ebdbb2 -*.cursorColor: #ebdbb2 +/* dwm config */ +dwm.borderpx: 2 +dwm.gappx: 15 /* st config */ st.font: Iosevka Fixed Slab:size=14 st.symbols: Symbols Nerd Font:size=14 st.termname: st-256color st.borderpx: 5 - -/* dwm config */ -dwm.borderpx: 2 -dwm.gappx: 15 diff --git a/.config/nvim/lua/utils.lua b/.config/nvim/lua/utils.lua index 7fbb87a..e0f2e86 100644 --- a/.config/nvim/lua/utils.lua +++ b/.config/nvim/lua/utils.lua @@ -28,6 +28,24 @@ function M.map(mode, keys, action, options) vim.api.nvim_set_keymap(mode, keys, action, options) end +-- see if a file exists +function M.file_exists(file) + local f = io.open(file, "rb") + if f then f:close() end + return f ~= nil +end + +-- get all lines from a file +-- @return table (empty if the file does not exist) +function M.lines_from(file) + if not M.file_exists(file) then return {} end + local lines = {} + for line in io.lines(file) do + lines[#lines] = line + end + return lines +end + -- Make it accessible everywhere _G.utils = M -- Export the module diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc index b5dfba8..b83d6b6 100644 --- a/.config/sxhkd/sxhkdrc +++ b/.config/sxhkd/sxhkdrc @@ -34,6 +34,12 @@ super + F9 super + shift + o dmenuopen +super + c + switch-colors + +super + shift + c + switch-colors -s + # Others super + Return $TERMINAL diff --git a/.local/bin/switch-colors b/.local/bin/switch-colors new file mode 100755 index 0000000..98e122d --- /dev/null +++ b/.local/bin/switch-colors @@ -0,0 +1,50 @@ +#!/usr/bin/env sh + +###################################################################### +# @author : swytch +# @file : switch-colors +# @license : GPLv3 +# @created : Fridat Oct. 22, 2022 23:52:53 CEST +# +# @description : switch colorscheme system-wide +###################################################################### + + +trim() { rev | cut -d'_' -f1 | rev; } + +switch_scheme() { + current="$(ls -l $XDG_CONFIG_HOME/X11/xcolors | trim)" + [ "dark" = "$current" ] && new="light" || new="dark" + select_nvim_scheme + set_scheme "$new" "$nvim_scheme" +} + +set_scheme() { + [ "" = "$new" ] && exit 1 + xcolors="$XDG_STATE_HOME/xcolors" + [ -f "$xcolors" ] && rm "$xcolors" + ln -s "$XDG_CONFIG_HOME/X11/xcolors_$new" "$xcolors" + xrdb -merge "$xcolors" && dunstify -u "low" "$new colorscheme set" + echo "$nvim_scheme" > "$XDG_STATE_HOME/nvim_colorscheme" + xrdb -merge "$xcolors" && dunstify -u "low" "neovim" "$nvim_scheme colorscheme set" +} + +select_scheme() { + new="$(ls "$XDG_CONFIG_HOME/X11" | grep -i "xcolors_" | trim | dmenu -i -l 5 -p "colorscheme:")" +} + +select_nvim_scheme() { + nvim_scheme="$(grep -i "$new" "$XDG_DATA_HOME/colorschemes" | cut -d'"' -f2 )" +} + +if [ "-s" = "$1" -o "select" = "$1" ]; then + select_scheme && select_nvim_scheme && set_scheme "$new" "$nvim_scheme" +else + if [ ! "" = "$1" ]; then + dunstify -u "normal" "Wrong parameter. Nothing performed" && exit 1 + else + switch_scheme + fi +fi + +exit 0 diff --git a/.local/share/colorschemes b/.local/share/colorschemes new file mode 100644 index 0000000..24df18f --- /dev/null +++ b/.local/share/colorschemes @@ -0,0 +1,2 @@ +"blackhole" dark +"pulsar" light