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
This commit is contained in:
David JULIEN 2021-10-22 22:34:19 +02:00
parent 268c870d04
commit ca53077a59
No known key found for this signature in database
GPG Key ID: 4B388E8BD9D47382
8 changed files with 159 additions and 37 deletions

39
.config/X11/xcolors_dark Normal file
View File

@ -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

39
.config/X11/xcolors_light Normal file
View File

@ -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

View File

@ -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 &

View File

@ -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

View File

@ -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

View File

@ -34,6 +34,12 @@ super + F9
super + shift + o
dmenuopen
super + c
switch-colors
super + shift + c
switch-colors -s
# Others
super + Return
$TERMINAL

50
.local/bin/switch-colors Executable file
View File

@ -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

View File

@ -0,0 +1,2 @@
"blackhole" dark
"pulsar" light