From a98ae6bd5a1c7e2d278c5df2b927c0a5427141d0 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Tue, 31 Oct 2023 14:31:32 +0100 Subject: turn aliases into scripts This allows for better integration, and makes it possible to call these from other programs, such as window managers, ... --- bin/guiscripts/clipo | 4 ++++ bin/guiscripts/clipp | 4 ++++ config/essentials/zsh/aliases.sh | 9 ++------- 3 files changed, 10 insertions(+), 7 deletions(-) create mode 100755 bin/guiscripts/clipo create mode 100755 bin/guiscripts/clipp diff --git a/bin/guiscripts/clipo b/bin/guiscripts/clipo new file mode 100755 index 0000000..e3ae714 --- /dev/null +++ b/bin/guiscripts/clipo @@ -0,0 +1,4 @@ +#!/bin/sh +[ "$WAYLAND_DISPLAY" ] && + wl-paste -n || + xclip -o -selection clipboard -r diff --git a/bin/guiscripts/clipp b/bin/guiscripts/clipp new file mode 100755 index 0000000..538f69b --- /dev/null +++ b/bin/guiscripts/clipp @@ -0,0 +1,4 @@ +#!/bin/sh +[ "$WAYLAND_DISPLAY" ] && + wl-copy -n || + xclip -selection clipboard -r diff --git a/config/essentials/zsh/aliases.sh b/config/essentials/zsh/aliases.sh index e9c7e2f..575502c 100644 --- a/config/essentials/zsh/aliases.sh +++ b/config/essentials/zsh/aliases.sh @@ -17,18 +17,13 @@ then alias calc='bc <<<' - if [ "$WAYLAND_DISPLAY" ] - then - alias -g clipp='wl-copy -n' - alias -g clipo='wl-paste -n' - else + if [ -z "$WAYLAND_DISPLAY" ] + then if which devour > /dev/null 2>&1 then alias mpv='devour mpv' alias zathura='devour zathura' fi - alias -g clipp='xclip -selection clipboard -r' - alias -g clipo='xclip -o -selection clipboard -r' fi alias clipic='clipo > /tmp/pic.png' -- cgit v1.2.3 From d99323430cf89e6566899483419f99453140c665 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Tue, 31 Oct 2023 14:34:37 +0100 Subject: make help more generic --- bin/extra/supd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/extra/supd b/bin/extra/supd index 48638bd..e8eacd4 100755 --- a/bin/extra/supd +++ b/bin/extra/supd @@ -7,7 +7,7 @@ then >&2 cat <<-EOF usage: supd Update dirs in current dir - ls ~/projects | supd Update dirs read from stdin + ... | supd Update dirs read from stdin supd -h Show help EOF exit -- cgit v1.2.3 From e79d30ae56260aadeab037f9c52c5c329153bf08 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Tue, 31 Oct 2023 17:26:41 +0100 Subject: added sound on gurk notifications --- config/wayland/mako/config | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config/wayland/mako/config b/config/wayland/mako/config index 2df4b1d..4380506 100644 --- a/config/wayland/mako/config +++ b/config/wayland/mako/config @@ -23,3 +23,7 @@ default-timeout=0 [category=mpd] default-timeout=2000 group-by=category + +[app-name=gurk] +# 45887 = 70% +on-notify=exec paplay --volume=45887 ~/.local/share/sounds/ring1.ogg -- cgit v1.2.3 From af6487bdb195c61574fa353e3bdd5bfe54b2073b Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Tue, 31 Oct 2023 17:31:52 +0100 Subject: cleanup --- bin/menuscripts/memoji | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/bin/menuscripts/memoji b/bin/menuscripts/memoji index 9c45950..b957981 100755 --- a/bin/menuscripts/memoji +++ b/bin/menuscripts/memoji @@ -5,30 +5,19 @@ # If this file includes emojis below "__DATA__" it is generated. # This file was generated: 2022-04-21 12:38:03+00:00 -if [ "$WAYLAND_DISPLAY" ] -then - alias copycmd="wl-copy" -else - alias copycmd="xclip -sel c" -fi set -e case "$1" in - "list") - data=$(sed '0,/^__DATA__$/d' "$0") - printf "%s" "$data" - ;; + "list") printf "%s" "$(sed '0,/^__DATA__$/d' "$0")" ;; "copy") input=$(tee | cut -f 1 -d ' ') if [ "$input" ] then notify-send "dmemoji" "$input copied!" - printf "%s" "$input" | copycmd + printf "%s" "$input" | clipp fi ;; - "") - sh "$0" list | commander -p "Emoji:" -l -x | sh "$0" copy - ;; + "") sh "$0" list | commander -p "Emoji:" -l -x | sh "$0" copy ;; esac exit -- cgit v1.2.3 From c7e869a7a13d43ef98821c2aa63310b3578146e7 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Tue, 31 Oct 2023 17:32:07 +0100 Subject: reset duckduckgo to searchengine --- config/extra/tridactyl/tridactylrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/extra/tridactyl/tridactylrc b/config/extra/tridactyl/tridactylrc index d9cab9e..977578b 100644 --- a/config/extra/tridactyl/tridactylrc +++ b/config/extra/tridactyl/tridactylrc @@ -1,5 +1,5 @@ set newtab http://localhost:28669 -set searchengine qwant +set searchengine duckduckgo " Searchurls set searchurls.1x https://www.1377x.to/search/%s/1 -- cgit v1.2.3 From c3e98662e367049d32a9a27805c620c178be603d Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Tue, 31 Oct 2023 17:32:29 +0100 Subject: added plantuml support with plugin --- config/essentials/nvim/after/plugin/plantuml.lua | 10 ++++++++++ config/essentials/nvim/lua/user/packer.lua | 21 ++++++++++++++------- 2 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 config/essentials/nvim/after/plugin/plantuml.lua diff --git a/config/essentials/nvim/after/plugin/plantuml.lua b/config/essentials/nvim/after/plugin/plantuml.lua new file mode 100644 index 0000000..da14862 --- /dev/null +++ b/config/essentials/nvim/after/plugin/plantuml.lua @@ -0,0 +1,10 @@ +require('plantuml').setup +{ + renderer = { + type = 'text', + options = { + split_cmd = 'split', -- Allowed values: `split`, `vsplit`. + } + }, + render_on_write = true, -- Set to false to disable auto-rendering. +} diff --git a/config/essentials/nvim/lua/user/packer.lua b/config/essentials/nvim/lua/user/packer.lua index 36f9ec0..ed2bbf1 100644 --- a/config/essentials/nvim/lua/user/packer.lua +++ b/config/essentials/nvim/lua/user/packer.lua @@ -45,13 +45,20 @@ return require('packer').startup(function(use) use('christoomey/vim-tmux-navigator') - -- utils - use('godlygeek/tabular') - use('renerocksai/calendar-vim') - use('ojroques/vim-oscyank', {branch = "main"}) - use("potamides/pantran.nvim") - use('alx741/vinfo') - -- use('github/copilot.vim') + -- utils + use('godlygeek/tabular') + use('renerocksai/calendar-vim') + use('ojroques/vim-oscyank', {branch = "main"}) + use("potamides/pantran.nvim") + use('alx741/vinfo') + use('sheerun/vim-polyglot') + -- use('github/copilot.vim') + -- + use { + 'https://gitlab.com/itaranto/plantuml.nvim', + tag = '*', + config = function() require('plantuml').setup() end + } -- objects use('michaeljsmith/vim-indent-object') -- cgit v1.2.3 From cfb3aed2b81be807d385845cf0807d99dc0d1ac4 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Tue, 31 Oct 2023 17:35:38 +0100 Subject: use width and height parameters instead of list --- bin/menuscripts/memoji | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/menuscripts/memoji b/bin/menuscripts/memoji index b957981..45a74f1 100755 --- a/bin/menuscripts/memoji +++ b/bin/menuscripts/memoji @@ -17,7 +17,7 @@ case "$1" in printf "%s" "$input" | clipp fi ;; - "") sh "$0" list | commander -p "Emoji:" -l -x | sh "$0" copy ;; + "") sh "$0" list | commander -p "Emoji:" -x -w 44 -y 10 -c | sh "$0" copy ;; esac exit -- cgit v1.2.3 From 442fdac531a6b042a396eafc096811e46bc063ca Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Tue, 31 Oct 2023 17:38:44 +0100 Subject: check if git dir before doing anything --- bin/extra/supd | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/extra/supd b/bin/extra/supd index e8eacd4..61ea144 100755 --- a/bin/extra/supd +++ b/bin/extra/supd @@ -17,9 +17,10 @@ fi for dir in $dirs do - printf '%s:' "$dir" | >&2 sed "s#$HOME#~#" ( cd "$dir" || return + git rev-parse > /dev/null 2>&1 || return + printf '%s:' "$dir" | >&2 sed "s#$HOME#~#" git "${1:-fetch}" > /dev/null 2>&1 && printf ' o' || printf ' x' -- cgit v1.2.3 From ed0bc4340570c8ecf5da244b69027c97750ee726 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Wed, 1 Nov 2023 14:07:03 +0100 Subject: cleanup --- config/essentials/zsh/functions.zsh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/config/essentials/zsh/functions.zsh b/config/essentials/zsh/functions.zsh index 9783794..c64c474 100644 --- a/config/essentials/zsh/functions.zsh +++ b/config/essentials/zsh/functions.zsh @@ -270,13 +270,15 @@ fpass() { muttmail() { - log "email set: " - ls $HOME/.config/mutt/configs | + local config + config="$HOME/.config/mutt" + + find "$config"/configs -type f -printf '%f\n' | fzf | tee /dev/stderr | - xargs -I {} ln -sf "$HOME/.config/mutt/configs/{}" $HOME/.config/mutt/muttrc - log 'Press [Enter to login]' - read && mutt + xargs -I {} ln -sf "$config/configs/{}" "$config"/muttrc + log 'Press [Enter] to login.' + head -n 1 && mutt } resize() -- cgit v1.2.3 From 411cc94a9724d9fe96c3410f2e153ebcc8a0fc5a Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Wed, 1 Nov 2023 14:07:31 +0100 Subject: changed 'nextdeadline' to a function --- config/essentials/zsh/aliases.sh | 1 - config/essentials/zsh/functions.zsh | 12 ++++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/config/essentials/zsh/aliases.sh b/config/essentials/zsh/aliases.sh index 575502c..1ca0cf7 100644 --- a/config/essentials/zsh/aliases.sh +++ b/config/essentials/zsh/aliases.sh @@ -183,7 +183,6 @@ alias tpid='tail -f /dev/null --pid' alias pwdcp='pwd | clipp' alias gw="grep -ri" alias srcsupd='echo ~/src/{installdrier,dotfiles,password-store} | supd' -alias nextdeadline='sed -n "/$(grep '\''^#'\'' ~/docs/filios/deadlines | sort -t '\''/'\'' -k 3 -k 2 -k 1 -n | head -n 1 | sed '\''s@/@.@g'\'')/,/^#\|^$/p" ~/docs/filios/deadlines | head -n -1' alias vbm='vboxmanage' alias vbls='vbm list vms' diff --git a/config/essentials/zsh/functions.zsh b/config/essentials/zsh/functions.zsh index c64c474..41d57d1 100644 --- a/config/essentials/zsh/functions.zsh +++ b/config/essentials/zsh/functions.zsh @@ -294,3 +294,15 @@ edit_in_dir() { [ -f "$file" ] || return 1 $EDITOR "$file" } + +nextddl() +{ + local date + deadlines="$HOME/docs/filios/deadlines" + date="$(grep '^#' "$deadlines" | + sort -t '/' -k 3 -k 2 -k 1 -n | + sed -n "${1:-1}p" | + sed 's@/@.@g')" + sed -n "/$date/,/^#\|^$/p" "$deadlines" | + head -n -1 +} -- cgit v1.2.3 From 638a635034bb653949dd44d26d17f074c9c17764 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Wed, 1 Nov 2023 14:16:26 +0100 Subject: exit on no mail --- config/essentials/zsh/functions.zsh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/config/essentials/zsh/functions.zsh b/config/essentials/zsh/functions.zsh index 41d57d1..dccede1 100644 --- a/config/essentials/zsh/functions.zsh +++ b/config/essentials/zsh/functions.zsh @@ -271,12 +271,13 @@ fpass() { muttmail() { local config + local mail config="$HOME/.config/mutt" - find "$config"/configs -type f -printf '%f\n' | - fzf | - tee /dev/stderr | - xargs -I {} ln -sf "$config/configs/{}" "$config"/muttrc + mail="$(find "$config"/configs -type f -printf '%f\n' | fzf)" + [ "$mail" ] || return 1 + logn "$mail" + ln -sf "$config/configs/$mail" "$config"/muttrc log 'Press [Enter] to login.' head -n 1 && mutt } -- cgit v1.2.3 From cb92f16cd26cbf111b8c5271ac8b5146a3ced00d Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Wed, 1 Nov 2023 18:33:18 +0100 Subject: added 'html' lsp support in php files --- config/essentials/nvim/after/plugin/luasnip.lua | 324 ++++++++++++------------ config/essentials/nvim/lua/user/cmp/html.lua | 5 +- 2 files changed, 165 insertions(+), 164 deletions(-) diff --git a/config/essentials/nvim/after/plugin/luasnip.lua b/config/essentials/nvim/after/plugin/luasnip.lua index 319a68c..5cf54d5 100644 --- a/config/essentials/nvim/after/plugin/luasnip.lua +++ b/config/essentials/nvim/after/plugin/luasnip.lua @@ -29,33 +29,33 @@ vim.keymap.set({"i", "s"}, "", "luasnip-expand-or-jump", { noremap = vim.keymap.set({"i", "s"}, "", "luasnip-jump-prev", { noremap = true }) vim.keymap.set({"i", "s"}, "", "luasnip-next-choice", { noremap = true }) vim.keymap.set("n", "s", function() - ls.cleanup() - vim.cmd("source ~/.config/nvim/after/plugin/luasnip.lua") - print("snippets reloaded.") + ls.cleanup() + vim.cmd("source ~/.config/nvim/after/plugin/luasnip.lua") + print("snippets reloaded.") end, { noremap = true }) ls.add_snippets("lua", { - -- print - s("pt", fmt("print({}){}", { i(1, "\"Hello World!\"") , i(0) })), - -- local function - parse("lf", "local $1 = function($2)\n\t$3\nend$0", {}), - -- require - s("lrq", fmt("local {} = require('{}')", { i(1), rep(1) })), - parse("rq", "require('$1')$0", {}), - parse("rqs", "require('$1').setup {\n\t$2\n}$0", {}), - parse("use", "use('$1')$0", {}), - -- function - s("fn", fmt( - [[ - function {}({}) - {} - end{} - ]], - { i(1), i(2), i(3), i(0) })), - parse("sn", "s(\"$1\", fmt(\n[[\n$2\n]],\n{ $3 })),$0", {}), + -- print + s("pt", fmt("print({}){}", { i(1, "\"Hello World!\"") , i(0) })), + -- local function + parse("lf", "local $1 = function($2)\n\t$3\nend$0", {}), + -- require + s("lrq", fmt("local {} = require('{}')", { i(1), rep(1) })), + parse("rq", "require('$1')$0", {}), + parse("rqs", "require('$1').setup {\n\t$2\n}$0", {}), + parse("use", "use('$1')$0", {}), + -- function + parse("fn", + [[ + function $1($2) + end$0 + ]], {}), + parse("sn", "s(\"$1\", fmt(\n[[\n$2\n]],\n{ $3 })),$0", {}), }) -ls.add_snippets("html", { +local languages = {'php', 'html'} +for language = 1,#languages do +ls.add_snippets(languages[language], { s("", fmt( [[ @@ -64,166 +64,166 @@ ls.add_snippets("html", { - {}{} + {}

{}

{} ]], - {i(1, "title"), i(2), i(3, "Header"), i(0)})), - s("sty", fmt( + {i(1, "title"), rep(2), i(0)})), + parse("sty", [[ - {} - ]], - { i(1), i(0) })), + $0 + ]], {}), }) +end ls.add_snippets("java", { - -- function - s("fn", fmt( - [[ - {}{} {}({}) - {{ - {} - }} - ]], - { - c(1, {t "public ", t "private ", t ""}), - i(2, "type"), - i(3, "f"), - i(4), i(0) - })), - -- setter function - s("psv", fmt( - [[ - public class Main - {{ - public static void main (String[] args) - {{ - {} - }} - }} - ]], - { i(0) })), - -- constructor - s("class", fmt( - [[ - {}class {} - {{ - {} - }}{} - ]], - { c(1, {t "public ", t "private ", t ""}), i(2), i(3), i(0)})), - -- StringBuilder - s("sb", fmt( - [[ - public void print() - {{ - StringBuilder sb = new StringBuilder(30); - sb.append({}); - sb.append(", ").append({});{} - System.out.print(sb.toString()); - }}{} - ]], - { i(1), i(2), i(3), i(0)})), - -- print - parse("pt", "System.out.println($1);$0", {}), - parse("pti", "System.out.println(\"$1: \" + $1);$0", {}), - -- quickies - s("pr", t "private "), - s("ob", fmt( - [[ - {} {} = new {}({}); - {} - ]], - { i(1), i(2), rep(1), i(3), i(0) })), - parse("abs", "Math.abs($1);$0", {}), + -- function + s("fn", fmt( + [[ + {}{} {}({}) + {{ + {} + }} + ]], + { + c(1, {t "public ", t "private ", t ""}), + i(2, "type"), + i(3, "f"), + i(4), i(0) + })), + -- setter function + s("psv", fmt( + [[ + public class Main + {{ + public static void main (String[] args) + {{ + {} + }} + }} + ]], + { i(0) })), + -- constructor + s("class", fmt( + [[ + {}class {} + {{ + {} + }}{} + ]], + { c(1, {t "public ", t "private ", t ""}), i(2), i(3), i(0)})), + -- StringBuilder + s("sb", fmt( + [[ + public void print() + {{ + StringBuilder sb = new StringBuilder(30); + sb.append({}); + sb.append(", ").append({});{} + System.out.print(sb.toString()); + }}{} + ]], + { i(1), i(2), i(3), i(0)})), + -- print + parse("pt", "System.out.println($1);$0", {}), + parse("pti", "System.out.println(\"$1: \" + $1);$0", {}), + -- quickies + s("pr", t "private "), + s("ob", fmt( + [[ + {} {} = new {}({}); + {} + ]], + { i(1), i(2), rep(1), i(3), i(0) })), + parse("abs", "Math.abs($1);$0", {}), }) ls.add_snippets("sh", { - s("TD", t "THISDIR=\"$(dirname \"$(readlink -f \"$0\")\")\""), - parse("pf", ">&2 printf '$1\\n'$0", {}), - parse("fn", "$1 ()\n{\n\t$2\n}$0", {}), - -- Functions - parse("rchar", - [[ - read_char () - { - old_stty_cfg=$(stty -g) - stty raw -echo - dd ibs=1 count=1 2> /dev/null - stty \$old_stty_cfg - } - ]], {}), - parse("fdie", - [[ - die () { >&2 printf '%s\n' "\$@"; exit 1; } - ]], {}), - parse("flogn", - [[ - logn () { >&2 printf '%s\n' "\$@"; } - ]], {}), - parse("flog", - [[ - log () { >&2 printf '%s' "\$@"; } - ]], {}), - s("inp", fmt( - [[ - test -z "${{{}:=$1}}" && - {}="$(cat /dev/stdin)" - echo "{}: ${}" 1>&2{} - ]], - { i(1), rep(1), rep(1), rep(1), i(0) })), + s("TD", t "THISDIR=\"$(dirname \"$(readlink -f \"$0\")\")\""), + parse("pf", ">&2 printf '$1\\n'$0", {}), + parse("fn", "$1 ()\n{\n\t$2\n}$0", {}), + -- Functions + parse("rchar", + [[ + read_char () + { + old_stty_cfg=$(stty -g) + stty raw -echo + dd ibs=1 count=1 2> /dev/null + stty \$old_stty_cfg + } + ]], {}), + parse("fdie", + [[ + die () { >&2 printf '%s\n' "\$@"; exit 1; } + ]], {}), + parse("flogn", + [[ + logn () { >&2 printf '%s\n' "\$@"; } + ]], {}), + parse("flog", + [[ + log () { >&2 printf '%s' "\$@"; } + ]], {}), + s("inp", fmt( + [[ + test -z "${{{}:=$1}}" && + {}="$(cat /dev/stdin)" + echo "{}: ${}" 1>&2{} + ]], + { i(1), rep(1), rep(1), rep(1), i(0) })), }) ls.add_snippets("javascript", { - -- print - s("pt", fmt("console.log({});{}", { i(1, "\"Hello World!\"") , i(0) })), - s("rq", fmt("const {} = require('{}');", { i(1), rep(1) })), - s("dbconn", fmt( - [[ - let conn = null; - try {{ - conn = await dbConnect();{} - conn.end() - }} catch(err) {{ - console.error('Error:', err); - }} - ]], - { i(0) })), - s("apr", fmt( - [[ - app.get('{}', (req, res) => {{ - {} - }});{} - ]], - { i(1), i(2, "res.send(\"Hello world!\")"), i(0) })), - s("cerr", t "console.error('Error:', err);"), - s("gel", fmt( - [[ - let {} = document.getElementById('{}');{} - ]], - { i(1), rep(1), i(0) })), + -- print + s("pt", fmt("console.log({});{}", { i(1, "\"Hello World!\"") , i(0) })), + s("rq", fmt("const {} = require('{}');", { i(1), rep(1) })), + s("dbconn", fmt( + [[ + let conn = null; + try {{ + conn = await dbConnect();{} + conn.end() + }} catch(err) {{ + console.error('Error:', err); + }} + ]], + { i(0) })), + s("apr", fmt( + [[ + app.get('{}', (req, res) => {{ + {} + }});{} + ]], + { i(1), i(2, "res.send(\"Hello world!\")"), i(0) })), + s("cerr", t "console.error('Error:', err);"), + s("gel", fmt( + [[ + let {} = document.getElementById('{}');{} + ]], + { i(1), rep(1), i(0) })), }) ls.add_snippets("cs", { - parse("cw", "Console.WriteLine($1);$0"), + parse("cw", "Console.WriteLine($1);$0"), }) ls.add_snippets("telekasten", { - --link - parse("ln", "[[$0]]", {}), - s("cln", fmt( - [[ - [{}]({}){} - ]], - { - i(1), - f(function () - return vim.fn.getreg('+') - end), - i(0) - } - )), + --link + parse("ln", "[[$0]]", {}), + s("cln", fmt( + [[ + [{}]({}){} + ]], + { + i(1), + f(function () + return vim.fn.getreg('+') + end), + i(0) + } + )), }) diff --git a/config/essentials/nvim/lua/user/cmp/html.lua b/config/essentials/nvim/lua/user/cmp/html.lua index 69ed29d..d3c99df 100644 --- a/config/essentials/nvim/lua/user/cmp/html.lua +++ b/config/essentials/nvim/lua/user/cmp/html.lua @@ -2,6 +2,7 @@ local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities.textDocument.completion.completionItem.snippetSupport = true -require'lspconfig'.html.setup { - capabilities = capabilities, +require 'lspconfig'.html.setup { + capabilities = capabilities, + filetypes = { "html", "php" }, } -- cgit v1.2.3 From 60a8a2470106fe683df1366f29ceb53d02f9d582 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Wed, 1 Nov 2023 22:31:28 +0100 Subject: fixed wrong index --- config/essentials/nvim/after/plugin/luasnip.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/essentials/nvim/after/plugin/luasnip.lua b/config/essentials/nvim/after/plugin/luasnip.lua index 5cf54d5..9119264 100644 --- a/config/essentials/nvim/after/plugin/luasnip.lua +++ b/config/essentials/nvim/after/plugin/luasnip.lua @@ -71,7 +71,7 @@ ls.add_snippets(languages[language], { ]], - {i(1, "title"), rep(2), i(0)})), + {i(1, "title"), rep(1), i(0)})), parse("sty", [[ $0 -- cgit v1.2.3 From 17be849d66dbc03520c9b5dbc8d6bcadb4e85bb3 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Wed, 1 Nov 2023 22:36:27 +0100 Subject: removed nextddl --- config/essentials/zsh/functions.zsh | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/config/essentials/zsh/functions.zsh b/config/essentials/zsh/functions.zsh index dccede1..f498f9e 100644 --- a/config/essentials/zsh/functions.zsh +++ b/config/essentials/zsh/functions.zsh @@ -295,15 +295,3 @@ edit_in_dir() { [ -f "$file" ] || return 1 $EDITOR "$file" } - -nextddl() -{ - local date - deadlines="$HOME/docs/filios/deadlines" - date="$(grep '^#' "$deadlines" | - sort -t '/' -k 3 -k 2 -k 1 -n | - sed -n "${1:-1}p" | - sed 's@/@.@g')" - sed -n "/$date/,/^#\|^$/p" "$deadlines" | - head -n -1 -} -- cgit v1.2.3 From b7c4d89004f6c493fc0acdbf8b26cae1857b4eb1 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Wed, 1 Nov 2023 22:45:27 +0100 Subject: fix typo --- bin/extra/supd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/extra/supd b/bin/extra/supd index 61ea144..9adfcf6 100755 --- a/bin/extra/supd +++ b/bin/extra/supd @@ -27,7 +27,7 @@ do # Show remote state printf '%s %s\n' "$(git status --short 2> /dev/null | awk 'NR==1 {print $1}')" "$(git branch -v 2>/dev/null | - awk -F '[][]' '/^\*/ {print $2}')" | - sed 's/ahead/↑ /;s/behind/↓ /;s/[^↓↑]*/ /g' + awk -F '[][]' '/^\*/ {print $2}' | + sed 's/ahead/↑ /;s/behind/↓ /;s/[^↓↑]*/ /g')" ) done -- cgit v1.2.3 From e00713823b3dbd52f7ea15b5d7f7371d78142e16 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Wed, 1 Nov 2023 22:45:41 +0100 Subject: exit if command failed --- bin/extra/supd | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/bin/extra/supd b/bin/extra/supd index 9adfcf6..dba4910 100755 --- a/bin/extra/supd +++ b/bin/extra/supd @@ -19,11 +19,16 @@ for dir in $dirs do ( cd "$dir" || return + # is git dir git rev-parse > /dev/null 2>&1 || return printf '%s:' "$dir" | >&2 sed "s#$HOME#~#" - git "${1:-fetch}" > /dev/null 2>&1 && - printf ' o' || + if git "${1:-fetch}" > /dev/null 2>&1 + then + printf ' o' + else printf ' x' + return + fi # Show remote state printf '%s %s\n' "$(git status --short 2> /dev/null | awk 'NR==1 {print $1}')" "$(git branch -v 2>/dev/null | -- cgit v1.2.3 From 5265e4a51c9b76537f6c7766e5edbb1f20e56da4 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Wed, 1 Nov 2023 22:47:04 +0100 Subject: put status in braces --- bin/extra/supd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/extra/supd b/bin/extra/supd index dba4910..2e1f968 100755 --- a/bin/extra/supd +++ b/bin/extra/supd @@ -30,8 +30,8 @@ do return fi # Show remote state - printf '%s %s\n' "$(git status --short 2> /dev/null | - awk 'NR==1 {print $1}')" "$(git branch -v 2>/dev/null | + printf ' %s %s\n' "$(git status --short 2> /dev/null | + awk 'NR==1 {print "(" $1 ")"}')" "$(git branch -v 2>/dev/null | awk -F '[][]' '/^\*/ {print $2}' | sed 's/ahead/↑ /;s/behind/↓ /;s/[^↓↑]*/ /g')" ) -- cgit v1.2.3 From 7ff4c5b211129724c451831cefadd55cb55293dd Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Wed, 1 Nov 2023 22:48:08 +0100 Subject: changed markup --- bin/extra/supd | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bin/extra/supd b/bin/extra/supd index 2e1f968..019dd51 100755 --- a/bin/extra/supd +++ b/bin/extra/supd @@ -21,16 +21,16 @@ do cd "$dir" || return # is git dir git rev-parse > /dev/null 2>&1 || return - printf '%s:' "$dir" | >&2 sed "s#$HOME#~#" + printf '%s: ' "$dir" | >&2 sed "s#$HOME#~#" if git "${1:-fetch}" > /dev/null 2>&1 then - printf ' o' + printf 'o' else - printf ' x' + printf 'x' return fi # Show remote state - printf ' %s %s\n' "$(git status --short 2> /dev/null | + printf ' %s%s\n' "$(git status --short 2> /dev/null | awk 'NR==1 {print "(" $1 ")"}')" "$(git branch -v 2>/dev/null | awk -F '[][]' '/^\*/ {print $2}' | sed 's/ahead/↑ /;s/behind/↓ /;s/[^↓↑]*/ /g')" -- cgit v1.2.3 From b9f5c4e8dcdd209933aa202444a40c1b0d9e542f Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Wed, 1 Nov 2023 22:49:22 +0100 Subject: fixed markup --- bin/extra/supd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/extra/supd b/bin/extra/supd index 019dd51..c7e4e8c 100755 --- a/bin/extra/supd +++ b/bin/extra/supd @@ -26,7 +26,7 @@ do then printf 'o' else - printf 'x' + printf 'x\n' return fi # Show remote state -- cgit v1.2.3 From faf6d4b320451f154a3538fc38c9a3157fd0f351 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Thu, 2 Nov 2023 11:42:04 +0100 Subject: added systemctl aliases --- config/essentials/zsh/aliases.sh | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/config/essentials/zsh/aliases.sh b/config/essentials/zsh/aliases.sh index 1ca0cf7..3250021 100644 --- a/config/essentials/zsh/aliases.sh +++ b/config/essentials/zsh/aliases.sh @@ -169,9 +169,7 @@ alias ch='chown ${USER}:${USER} -R' alias kll='killall' alias pi='ping 9.9.9.9 -c4' alias sba='source env/bin/activate || source bin/activate' -alias smc='systemctl' -alias dsmc='doas systemctl' -alias smcu='smc --user' + alias zsr='source ${ZDOTDIR:-~}/.zshrc && rehash' alias rh='rehash' alias wf='doas wipefs -a' @@ -184,6 +182,35 @@ alias pwdcp='pwd | clipp' alias gw="grep -ri" alias srcsupd='echo ~/src/{installdrier,dotfiles,password-store} | supd' +# systemctl aliases +alias smc='systemctl' +alias smcs='systemctl status' +alias smcst='systemctl start' +alias smcS='systemctl stop' +alias smcr='systemctl restart' +alias smcrl='systemctl reload' +alias smcd='systemctl daemon-reload' +alias smce='systemctl edit' +#user +alias smcu='systemctl --user' +alias smcus='systemctl status --user' +alias smcust='systemctl start --user' +alias smcuS='systemctl stop --user' +alias smcur='systemctl restart --user' +alias smcurl='systemctl reload --user' +alias smcud='systemctl daemon-reload --user' +alias smcue='systemctl edit --user' +#doas +alias dsmc='doas systemctl' +alias dsmcs='doas systemctl status' +alias dsmcst='doas systemctl start' +alias dsmcS='doas systemctl stop' +alias dsmcr='doas systemctl restart' +alias dsmcrl='doas systemctl reload' +alias dsmcd='doas systemctl daemon-reload' +alias dsmce='doas systemctl edit' + +# virtualbox aliases alias vbm='vboxmanage' alias vbls='vbm list vms' alias vblsr='vbm list runningvms' -- cgit v1.2.3 From 8a4d4db609f2ab37ae7e54b4210535c09eeb0e6c Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 13:39:12 +0100 Subject: cleanup --- config/essentials/nvim/lua/user/packer.lua | 49 ++++++++++++------------------ 1 file changed, 20 insertions(+), 29 deletions(-) diff --git a/config/essentials/nvim/lua/user/packer.lua b/config/essentials/nvim/lua/user/packer.lua index ed2bbf1..8091d85 100644 --- a/config/essentials/nvim/lua/user/packer.lua +++ b/config/essentials/nvim/lua/user/packer.lua @@ -4,11 +4,11 @@ return require('packer').startup(function(use) -- files use { 'nvim-telescope/telescope.nvim', tag = '0.1.2', - requires = { {'nvim-lua/plenary.nvim'} } + requires = { { 'nvim-lua/plenary.nvim' } } } - use {'nvim-telescope/telescope-fzf-native.nvim', run = 'make' } - use {'nvim-telescope/telescope-ui-select.nvim' } - use {'nvim-telescope/telescope-media-files.nvim'} + use { 'nvim-telescope/telescope-fzf-native.nvim', run = 'make' } + use { 'nvim-telescope/telescope-ui-select.nvim' } + use { 'nvim-telescope/telescope-media-files.nvim' } use('nvim-telescope/telescope-symbols.nvim') use('theprimeagen/harpoon') @@ -18,20 +18,11 @@ return require('packer').startup(function(use) use { 'uZer/pywal16.nvim', as = 'pywal16' } use('norcalli/nvim-colorizer.lua') - use('nvim-treesitter/nvim-treesitter', {run = ':TSUpdate'}) + use('nvim-treesitter/nvim-treesitter', { run = ':TSUpdate' }) use('nvim-treesitter/playground') use('theRealCarneiro/hyprland-vim-syntax') use('mbbill/undotree') - use { - "nvim-neo-tree/neo-tree.nvim", - branch = "v3.x", - requires = { - "nvim-lua/plenary.nvim", - "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended - "MunifTanjim/nui.nvim", - } - } use('tpope/vim-capslock') use('tpope/vim-commentary') @@ -45,20 +36,20 @@ return require('packer').startup(function(use) use('christoomey/vim-tmux-navigator') - -- utils - use('godlygeek/tabular') - use('renerocksai/calendar-vim') - use('ojroques/vim-oscyank', {branch = "main"}) - use("potamides/pantran.nvim") - use('alx741/vinfo') - use('sheerun/vim-polyglot') - -- use('github/copilot.vim') - -- - use { - 'https://gitlab.com/itaranto/plantuml.nvim', - tag = '*', - config = function() require('plantuml').setup() end - } + -- utils + use('godlygeek/tabular') + use('renerocksai/calendar-vim') + use('ojroques/vim-oscyank', { branch = "main" }) + use("potamides/pantran.nvim") + use('alx741/vinfo') + use('sheerun/vim-polyglot') + -- use('github/copilot.vim') + -- + use { + 'https://gitlab.com/itaranto/plantuml.nvim', + tag = '*', + config = function() require('plantuml').setup() end + } -- objects use('michaeljsmith/vim-indent-object') @@ -76,7 +67,7 @@ return require('packer').startup(function(use) -- debugging use('mfussenegger/nvim-dap') - use { "rcarriga/nvim-dap-ui", requires = {"mfussenegger/nvim-dap"} } + use { "rcarriga/nvim-dap-ui", requires = { "mfussenegger/nvim-dap" } } -- java use('mfussenegger/nvim-jdtls') -- cgit v1.2.3 From 470eece95798fa687086aa18d33c1892e205117b Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 14:58:43 +0100 Subject: removed fzf native --- config/essentials/nvim/after/plugin/telescope.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/config/essentials/nvim/after/plugin/telescope.lua b/config/essentials/nvim/after/plugin/telescope.lua index 06c5a03..7a2ef34 100644 --- a/config/essentials/nvim/after/plugin/telescope.lua +++ b/config/essentials/nvim/after/plugin/telescope.lua @@ -1,4 +1,3 @@ -require('telescope').load_extension('fzf') require('telescope').load_extension('media_files') require('telescope').setup({ -- cgit v1.2.3 From 78a876bdb838ae43f21525bd0f24441706bdd5b7 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 15:00:36 +0100 Subject: migrated from packer to lazy --- config/essentials/nvim/after/plugin/colorizer.lua | 6 -- .../nvim/after/plugin/colorizer.lua.disabled | 6 ++ config/essentials/nvim/after/plugin/treesitter.lua | 11 --- config/essentials/nvim/lua/user/init.lua | 3 +- config/essentials/nvim/lua/user/lazy.lua | 98 ++++++++++++++++++++++ config/essentials/nvim/lua/user/remap.lua | 4 +- config/essentials/nvim/lua/user/treesitter.lua | 44 ++++++++++ 7 files changed, 152 insertions(+), 20 deletions(-) delete mode 100644 config/essentials/nvim/after/plugin/colorizer.lua create mode 100644 config/essentials/nvim/after/plugin/colorizer.lua.disabled delete mode 100644 config/essentials/nvim/after/plugin/treesitter.lua create mode 100644 config/essentials/nvim/lua/user/lazy.lua create mode 100644 config/essentials/nvim/lua/user/treesitter.lua diff --git a/config/essentials/nvim/after/plugin/colorizer.lua b/config/essentials/nvim/after/plugin/colorizer.lua deleted file mode 100644 index 6ca374f..0000000 --- a/config/essentials/nvim/after/plugin/colorizer.lua +++ /dev/null @@ -1,6 +0,0 @@ -require 'colorizer'.setup { - '*'; - html = { - mode = 'foreground'; - } -} diff --git a/config/essentials/nvim/after/plugin/colorizer.lua.disabled b/config/essentials/nvim/after/plugin/colorizer.lua.disabled new file mode 100644 index 0000000..6ca374f --- /dev/null +++ b/config/essentials/nvim/after/plugin/colorizer.lua.disabled @@ -0,0 +1,6 @@ +require 'colorizer'.setup { + '*'; + html = { + mode = 'foreground'; + } +} diff --git a/config/essentials/nvim/after/plugin/treesitter.lua b/config/essentials/nvim/after/plugin/treesitter.lua deleted file mode 100644 index e18368e..0000000 --- a/config/essentials/nvim/after/plugin/treesitter.lua +++ /dev/null @@ -1,11 +0,0 @@ -require'nvim-treesitter.configs'.setup { - ensure_installed = { "c", "lua", "vim", "diff"}, - - sync_install = false, - auto_install = true, - - highlight = { - enable = true, - additional_vim_regex_highlighting = false, - } -} diff --git a/config/essentials/nvim/lua/user/init.lua b/config/essentials/nvim/lua/user/init.lua index 2f29b87..f195e4f 100644 --- a/config/essentials/nvim/lua/user/init.lua +++ b/config/essentials/nvim/lua/user/init.lua @@ -1,5 +1,6 @@ -require("user.packer") +require("user.lazy") require("user.remap") +require("user.treesitter") require("user.set") require("user.cmp") require("user.zk") diff --git a/config/essentials/nvim/lua/user/lazy.lua b/config/essentials/nvim/lua/user/lazy.lua new file mode 100644 index 0000000..5c3148c --- /dev/null +++ b/config/essentials/nvim/lua/user/lazy.lua @@ -0,0 +1,98 @@ +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not vim.loop.fs_stat(lazypath) then + vim.fn.system({ + "git", + "clone", + "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", -- latest stable release + lazypath, + }) +end +vim.opt.rtp:prepend(lazypath) + +require("lazy").setup({ + -- Example using a list of specs with the default options + "folke/which-key.nvim", + + -- telescope + { + 'nvim-telescope/telescope.nvim', + tag = '0.1.4', + dependencies = { 'nvim-lua/plenary.nvim' } + }, + "nvim-telescope/telescope-ui-select.nvim", + "nvim-telescope/telescope-media-files.nvim", + + "nvim-telescope/telescope-symbols.nvim", + "theprimeagen/harpoon", + + -- colors + "shaunsingh/nord.nvim", + { 'uZer/pywal16.nvim', name = 'pywal16' }, + "norcalli/nvim-colorizer.lua", + + { 'nvim-treesitter/nvim-treesitter', build = ':TSUpdate' }, + "nvim-treesitter/playground", + + -- syntax + "sheerun/vim-polyglot", + "theRealCarneiro/hyprland-vim-syntax", + + "mbbill/undotree", + + "tpope/vim-capslock", + "tpope/vim-commentary", + -- "tpope/vim-endwise", + "tpope/vim-fugitive", + "lewis6991/gitsigns.nvim", + "tpope/vim-repeat", + "tpope/vim-surround", + "tpope/vim-vinegar", + "m4xshen/autoclose.nvim", + + "christoomey/vim-tmux-navigator", + + -- utils + "godlygeek/tabular", + "renerocksai/calendar-vim", + "ojroques/vim-oscyank", + "potamides/pantran.nvim", + "alx741/vinfo", + + -- "github/copilot.vim", + -- + { + 'https://gitlab.com/itaranto/plantuml.nvim', + config = function() require('plantuml').setup() end + }, + + -- objects + "michaeljsmith/vim-indent-object", + + -- completion + "neovim/nvim-lspconfig", + "hrsh7th/nvim-cmp", + "hrsh7th/cmp-nvim-lua", + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-path", + "hrsh7th/cmp-cmdline", + "hrsh7th/cmp-nvim-lsp-signature-help", + "alvan/vim-closetag", + + -- debugging + "mfussenegger/nvim-dap", + { "rcarriga/nvim-dap-ui", dependencies = { "mfussenegger/nvim-dap" } }, + + -- java + "mfussenegger/nvim-jdtls", + + -- snippets + "L3MON4D3/LuaSnip", + "saadparwaiz1/cmp_luasnip", + + -- notes + "renerocksai/telekasten.nvim", + +}) diff --git a/config/essentials/nvim/lua/user/remap.lua b/config/essentials/nvim/lua/user/remap.lua index fadca21..8a8ad5c 100644 --- a/config/essentials/nvim/lua/user/remap.lua +++ b/config/essentials/nvim/lua/user/remap.lua @@ -73,8 +73,8 @@ vim.keymap.set("n", "s", function () print("sourced.") end, { noremap = true }) --- Packer -vim.keymap.set("n", "P", "PackerSync", { noremap = true }) +-- Lazy +vim.keymap.set("n", "P", "Lazy", { noremap = true }) -- spelling vim.keymap.set("n", "s", "setlocal spell!", { noremap = true }) diff --git a/config/essentials/nvim/lua/user/treesitter.lua b/config/essentials/nvim/lua/user/treesitter.lua new file mode 100644 index 0000000..5b1fc5e --- /dev/null +++ b/config/essentials/nvim/lua/user/treesitter.lua @@ -0,0 +1,44 @@ +require'nvim-treesitter.configs'.setup { + -- A list of parser names, or "all" (the five listed parsers should always be installed) + ensure_installed = { "c", "lua", "vim", "vimdoc", "query" }, + + -- Install parsers synchronously (only applied to `ensure_installed`) + sync_install = false, + + -- Automatically install missing parsers when entering buffer + -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally + auto_install = true, + + -- List of parsers to ignore installing (or "all") + ignore_install = { "javascript" }, + + ---- If you need to change the installation directory of the parsers (see -> Advanced Setup) + -- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")! + indent = { + enable = on + }, + + highlight = { + enable = true, + + -- NOTE: these are the names of the parsers and not the filetype. (for example if you want to + -- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is + -- the name of the parser) + -- list of language that will be disabled + disable = { "c", "rust" }, + -- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files + disable = function(lang, buf) + local max_filesize = 100 * 1024 -- 100 KB + local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) + if ok and stats and stats.size > max_filesize then + return true + end + end, + + -- Setting this to true will run `:h syntax` and tree-sitter at the same time. + -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). + -- Using this option may slow down your editor, and you may see some duplicate highlights. + -- Instead of true it can also be a list of languages + additional_vim_regex_highlighting = false, + }, +} -- cgit v1.2.3 From 7e681c9311c858b9c2e0cc87005a4aa2596cf788 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 15:01:11 +0100 Subject: added formatting keybind for tables --- config/essentials/nvim/lua/user/remap.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/config/essentials/nvim/lua/user/remap.lua b/config/essentials/nvim/lua/user/remap.lua index 8a8ad5c..0c3d9a6 100644 --- a/config/essentials/nvim/lua/user/remap.lua +++ b/config/essentials/nvim/lua/user/remap.lua @@ -54,9 +54,14 @@ end, { noremap = true }) -- utils vim.keymap.set("i", "r", "r!echo -n $RANDOMkJA", { noremap = true }) + +-- FORMATTING -- ordered list vim.keymap.set("n", "n", "I0. gvg", { noremap = true }) vim.keymap.set("v", "u", "'<,'>s/^[0-9]\\+\\. //", { noremap = true }) +-- table +vim.keymap.set("v", "t", "!column -t -s '|' -o '|'", { noremap = true }) + -- scripts vim.keymap.set("n", "x", "!chmod +x %", { noremap = true, silent = true}) -- replace -- cgit v1.2.3 From c0f0bc7ee9a2e48961dffa2c8d65adf85fd05172 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 15:01:33 +0100 Subject: removed confirmation --- config/essentials/zsh/functions.zsh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/config/essentials/zsh/functions.zsh b/config/essentials/zsh/functions.zsh index f498f9e..4145813 100644 --- a/config/essentials/zsh/functions.zsh +++ b/config/essentials/zsh/functions.zsh @@ -273,13 +273,10 @@ muttmail() local config local mail config="$HOME/.config/mutt" - mail="$(find "$config"/configs -type f -printf '%f\n' | fzf)" [ "$mail" ] || return 1 - logn "$mail" ln -sf "$config/configs/$mail" "$config"/muttrc - log 'Press [Enter] to login.' - head -n 1 && mutt + mutt } resize() -- cgit v1.2.3 From dec1dcab6fe895b63041380d6fce18436ce593bb Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 15:01:54 +0100 Subject: specify bash --- bin/extra/cht.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/extra/cht.sh b/bin/extra/cht.sh index 681fc69..f373e55 100755 --- a/bin/extra/cht.sh +++ b/bin/extra/cht.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # shellcheck disable=SC1117,SC2001 # # [X] open section -- cgit v1.2.3 From 73d868443e1bd2f1e4d5c1d0c2fe1c3c3edd45b1 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 15:02:09 +0100 Subject: use monospace font --- config/extra/kitty/kitty.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/extra/kitty/kitty.conf b/config/extra/kitty/kitty.conf index 9d9168b..2cf6565 100644 --- a/config/extra/kitty/kitty.conf +++ b/config/extra/kitty/kitty.conf @@ -6,7 +6,7 @@ #: individual font faces and even specify special fonts for particular #: characters. -font_family DejaVuSansMono +font_family monospace bold_font auto italic_font auto bold_italic_font auto -- cgit v1.2.3 From db297fade552c6252581d4f8788e5056352f835d Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 15:02:26 +0100 Subject: only forward one port --- bin/extra/aivpn | 6 ------ 1 file changed, 6 deletions(-) diff --git a/bin/extra/aivpn b/bin/extra/aivpn index fd72ffb..3c87ce8 100755 --- a/bin/extra/aivpn +++ b/bin/extra/aivpn @@ -33,9 +33,3 @@ ssh vm "rasdial \"vpn.student.ehb.be\"" ssh -f -N \ -L 2222:10.2.160.41:22 \ vm - -ssh -t \ - -L 8188:localhost:8188 \ - vm \ - ssh -N -L 8188:localhost:8188 luca@10.2.160.41 -logn "[8188], [2222]" -- cgit v1.2.3 From e6fd1468a95ca7d2b976257776e3655f1572da95 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 17:32:52 +0100 Subject: reduced font size --- config/wayland/waybar/styles/base16.css | 4 +--- config/wayland/waybar/styles/colors/colors.css | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/config/wayland/waybar/styles/base16.css b/config/wayland/waybar/styles/base16.css index c9e3170..639b590 100644 --- a/config/wayland/waybar/styles/base16.css +++ b/config/wayland/waybar/styles/base16.css @@ -17,7 +17,7 @@ border-radius: 0; font-family: monospace; font-weight: bold; - font-size: 14px; + font-size: 12px; min-height: 24px; } @@ -90,8 +90,6 @@ window#waybar.PCSX2 #window { #workspaces button.active, #tags button.focused { background-color: @color6; - border-bottom: 6px solid @color4; - } #workspaces button:hover, #tags button:hover { diff --git a/config/wayland/waybar/styles/colors/colors.css b/config/wayland/waybar/styles/colors/colors.css index 2a2c2fa..801cf92 120000 --- a/config/wayland/waybar/styles/colors/colors.css +++ b/config/wayland/waybar/styles/colors/colors.css @@ -1 +1 @@ -/home/aluc/.cache/wal/colors-waybar.css \ No newline at end of file +colors-nord \ No newline at end of file -- cgit v1.2.3 From 22925780cd9ea447d297ddd432fcd70010ed5baf Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 17:37:13 +0100 Subject: settle for nord theme --- config/wayland/waybar/configs/hyprland.jsonc | 2 +- config/wayland/waybar/style.css | 2 +- config/wayland/waybar/styles/nord.css | 4 +--- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/config/wayland/waybar/configs/hyprland.jsonc b/config/wayland/waybar/configs/hyprland.jsonc index cd24d14..9d60915 100644 --- a/config/wayland/waybar/configs/hyprland.jsonc +++ b/config/wayland/waybar/configs/hyprland.jsonc @@ -23,7 +23,7 @@ "interval": 10, }, "hyprland/window": { - "format": "{}", + "format": " {}", "separate-outputs": true, }, "pulseaudio": { diff --git a/config/wayland/waybar/style.css b/config/wayland/waybar/style.css index b5a6cf9..76f49ff 120000 --- a/config/wayland/waybar/style.css +++ b/config/wayland/waybar/style.css @@ -1 +1 @@ -styles/base16.css \ No newline at end of file +styles/nord.css \ No newline at end of file diff --git a/config/wayland/waybar/styles/nord.css b/config/wayland/waybar/styles/nord.css index efd0e81..ec2ad2b 100644 --- a/config/wayland/waybar/styles/nord.css +++ b/config/wayland/waybar/styles/nord.css @@ -40,7 +40,6 @@ window#waybar.PCSX2 #window { margin-left: 8px; padding-left: 16px; padding-right: 16px; - border-radius: 26px; } #workspaces, #mpd, #battery, @@ -48,6 +47,7 @@ window#waybar.PCSX2 #window { margin-top: 4px; margin-bottom: 2px; transition: none; + border-radius: 6px; } #battery { @@ -57,7 +57,6 @@ window#waybar.PCSX2 #window { #workspaces { margin-left: 12px; - border-radius: 26px; background: #2e3440; } @@ -122,7 +121,6 @@ window#waybar.PCSX2 #window { margin-right: 12px; padding-left: 16px; padding-right: 16px; - border-radius: 26px; color: #d8dee9; background: #2e3440; } -- cgit v1.2.3 From 0b45ce4ef43d67c3aa1fc09ae22f0dd69d7b269f Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 17:41:51 +0100 Subject: changed color --- config/wayland/waybar/styles/nord.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/wayland/waybar/styles/nord.css b/config/wayland/waybar/styles/nord.css index ec2ad2b..3b7b7f6 100644 --- a/config/wayland/waybar/styles/nord.css +++ b/config/wayland/waybar/styles/nord.css @@ -68,7 +68,8 @@ window#waybar.PCSX2 #window { } #workspaces button.active { - color: #5e81ac; + color: #a3be8c; + text-shadow: 0px 0px 1px #a3be8c; } #workspaces button:hover { -- cgit v1.2.3 From ba5d1c1cb72117ad93222a99fca6708f5d9e4440 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 17:42:13 +0100 Subject: make keybinds more universal --- config/wayland/hypr/binds.conf | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/config/wayland/hypr/binds.conf b/config/wayland/hypr/binds.conf index 19c1c8d..0416a2a 100644 --- a/config/wayland/hypr/binds.conf +++ b/config/wayland/hypr/binds.conf @@ -11,19 +11,19 @@ bind = $mainMod, F, togglefloating, bind = $mainMod SHIFT, P, pseudo bind = $mainMod, S, togglesplit -bind = $mainMod, E, focusmonitor, +1 -bind = $mainMod, W, focusmonitor, -1 +bind = $mainMod, COMMA, focusmonitor, +1 +bind = $mainMod, PERIOD, focusmonitor, -1 binde = $mainMod, H, movefocus, l binde = $mainMod, J, movefocus, d binde = $mainMod, K, movefocus, u binde = $mainMod, L, movefocus, r binde = $mainMod, SPACE, swapnext -bind = $mainMod SHIFT, E, movewindow, mon:+1 -bind = $mainMod SHIFT, W, movewindow, mon:-1 -bind = $mainMod CTRL, E, movewindow, mon:+1 -bind = $mainMod CTRL, E, focusmonitor, -1 -bind = $mainMod CTRL, W, movewindow, mon:-1 -bind = $mainMod CTRL, W, focusmonitor, +1 +bind = $mainMod SHIFT, PERIOD, movewindow, mon:+1 +bind = $mainMod SHIFT, COMMA, movewindow, mon:-1 +bind = $mainMod CTRL, PERIOD, movewindow, mon:+1 +bind = $mainMod CTRL, PERIOD, focusmonitor, -1 +bind = $mainMod CTRL, COMMA, movewindow, mon:-1 +bind = $mainMod CTRL, COMMA, focusmonitor, +1 binde = $mainMod SHIFT, H, resizeactive, -60 0 binde = $mainMod SHIFT, J, resizeactive, 0 60 -- cgit v1.2.3 From bcfcca89fbe9c195988b46b554472cf871540856 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 17:42:26 +0100 Subject: added clone from clipboard alias --- config/essentials/zsh/aliases.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/config/essentials/zsh/aliases.sh b/config/essentials/zsh/aliases.sh index 3250021..0da835a 100644 --- a/config/essentials/zsh/aliases.sh +++ b/config/essentials/zsh/aliases.sh @@ -339,6 +339,7 @@ alias gcasm='git commit --all --signoff --message' alias gcb='git checkout -b' alias gcf='git config --list' alias gcl='git clone' +alias gclc='git clone "$(clipo)"' alias gclr='git clone --recurse-submodules' alias gc1='git clone --depth 1' alias gclean='git clean --interactive -d' -- cgit v1.2.3 From d9a8d6f268a3c0bbf9e24da0737d4af9abbadec0 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 17:42:50 +0100 Subject: still parse status info if the command failed --- bin/extra/supd | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/bin/extra/supd b/bin/extra/supd index c7e4e8c..9a5ce0c 100755 --- a/bin/extra/supd +++ b/bin/extra/supd @@ -20,19 +20,19 @@ do ( cd "$dir" || return # is git dir - git rev-parse > /dev/null 2>&1 || return - printf '%s: ' "$dir" | >&2 sed "s#$HOME#~#" - if git "${1:-fetch}" > /dev/null 2>&1 + if ! git rev-parse > /dev/null 2>&1 then - printf 'o' - else printf 'x\n' - return + exit fi + printf '%s: ' "$dir" | >&2 sed "s#$HOME#~#" + git "${1:-fetch}" > /dev/null 2>&1 && + printf 'o' || + printf 'x' # Show remote state printf ' %s%s\n' "$(git status --short 2> /dev/null | awk 'NR==1 {print "(" $1 ")"}')" "$(git branch -v 2>/dev/null | awk -F '[][]' '/^\*/ {print $2}' | - sed 's/ahead/↑ /;s/behind/↓ /;s/[^↓↑]*/ /g')" + sed 's/ahead/↑ /;s/behind/↓ /;s/[^↓↑]*//g')" ) done -- cgit v1.2.3 From 8422757706462fd4abe65187902d5590942f0cc9 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 17:43:13 +0100 Subject: added cliptype --- bin/guiscripts/cliptype | 2 ++ 1 file changed, 2 insertions(+) create mode 100755 bin/guiscripts/cliptype diff --git a/bin/guiscripts/cliptype b/bin/guiscripts/cliptype new file mode 100755 index 0000000..e6ac093 --- /dev/null +++ b/bin/guiscripts/cliptype @@ -0,0 +1,2 @@ +#!/bin/sh +clipo | ydotool type -f - -- cgit v1.2.3 From 53cb3d537303c75ac5d3de577075928b687d240a Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 17:58:22 +0100 Subject: added clipswap --- bin/guiscripts/clipswap | 4 ++++ 1 file changed, 4 insertions(+) create mode 100755 bin/guiscripts/clipswap diff --git a/bin/guiscripts/clipswap b/bin/guiscripts/clipswap new file mode 100755 index 0000000..1cae135 --- /dev/null +++ b/bin/guiscripts/clipswap @@ -0,0 +1,4 @@ +#!/bin/sh +paste="$(clipo)" +clipo -p | clipp +printf '%s' "$paste" | clipp -p -- cgit v1.2.3 From c508a980ae4a6bffc5e968e2570118ae265fe46b Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 18:01:32 +0100 Subject: added keybind --- config/wayland/hypr/binds.conf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/config/wayland/hypr/binds.conf b/config/wayland/hypr/binds.conf index 0416a2a..226fd24 100644 --- a/config/wayland/hypr/binds.conf +++ b/config/wayland/hypr/binds.conf @@ -69,12 +69,13 @@ bind = $mainMod, mouse_up, workspace, e-1 bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow +bind = $mainMod, B, exec, $BROWSER +bind = $mainMod, E, exec, emacs + bind = $mainMod, A, submap, apps submap = apps bind = $mainMod, D, exec, discord bind = , D, exec, discord -bind = $mainMod, B, exec, $BROWSER -bind = , B, exec, $BROWSER bind = $mainMod, G, exec, gml bind = , G, exec, gml source = ./reset-submap.conf -- cgit v1.2.3 From d6cda512a3d6450b88fcd99b5d95addc768bc05c Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 18:07:08 +0100 Subject: made ask use tgpt --- bin/common/ask | 38 +++----------------------------------- 1 file changed, 3 insertions(+), 35 deletions(-) diff --git a/bin/common/ask b/bin/common/ask index 9fb04ce..95530f5 100755 --- a/bin/common/ask +++ b/bin/common/ask @@ -1,36 +1,4 @@ #!/bin/sh - -# requirements -which pass jq > /dev/null || - exit 1 - -# input -test -z "${inp:=$@}" && - inp="$(cat /dev/stdin)" - -# \n\t -> ' ' && "->' -prompt="$(echo "$inp" | tr "\n\t\"" " '")" -test -z "$prompt" && exit 1 - -API_KEY="$(pass tokens/openai-api)" -model="text-davinci-003" -tokens="1024" -temperature=0 - -data=$(echo \ -'{ - "prompt": "'"$prompt"'", - "model": "'"$model"'", - "max_tokens": '$tokens', - "temperature": '$temperature' -}') - -output=$(curl -s -X POST \ - -H 'Content-Type: application/json' \ - -H "Authorization: Bearer $API_KEY" \ - -d "$data" \ - https://api.openai.com/v1/completions \ - | jq -r '.choices[0].text') - -# remove newline -echo "${output:1}" +which tgpt >/dev/null || exit 1 +[ "${inp:=$@}" ] || inp="$(cat /dev/stdin)" +tgpt "$inp" -- cgit v1.2.3 From 7d39603f3dab52c5e2212c6c12bc4b951a4de94e Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 3 Nov 2023 18:36:45 +0100 Subject: added primary clipboard support --- bin/guiscripts/clipo | 8 +++++--- bin/guiscripts/clipp | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/bin/guiscripts/clipo b/bin/guiscripts/clipo index e3ae714..39994f9 100755 --- a/bin/guiscripts/clipo +++ b/bin/guiscripts/clipo @@ -1,4 +1,6 @@ #!/bin/sh -[ "$WAYLAND_DISPLAY" ] && - wl-paste -n || - xclip -o -selection clipboard -r +[ "$1" = "-p" ] && arg='primary' +if [ "$WAYLAND_DISPLAY" ] +then wl-paste -n ${1} +else xclip -o -selection "${arg:-clipboard}" -r +fi diff --git a/bin/guiscripts/clipp b/bin/guiscripts/clipp index 538f69b..c9e4f51 100755 --- a/bin/guiscripts/clipp +++ b/bin/guiscripts/clipp @@ -1,4 +1,6 @@ #!/bin/sh -[ "$WAYLAND_DISPLAY" ] && - wl-copy -n || - xclip -selection clipboard -r +[ "$1" = "-p" ] && arg='primary' +if [ "$WAYLAND_DISPLAY" ] +then wl-copy -n $1 +else xclip -selection "${arg:-clipboard}" -r +fi -- cgit v1.2.3 From afcc4905b9cd529f29c951c4cead54c6438e4706 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Sun, 5 Nov 2023 00:44:43 +0100 Subject: use emacsclient --- config/wayland/hypr/binds.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/wayland/hypr/binds.conf b/config/wayland/hypr/binds.conf index 226fd24..251ce69 100644 --- a/config/wayland/hypr/binds.conf +++ b/config/wayland/hypr/binds.conf @@ -70,7 +70,7 @@ bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow bind = $mainMod, B, exec, $BROWSER -bind = $mainMod, E, exec, emacs +bind = $mainMod, E, exec, emacsclient -c -a 'emacs' bind = $mainMod, A, submap, apps submap = apps -- cgit v1.2.3 From 541ab2e483efe77d08ae5d04119a834f24b6d150 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Sun, 5 Nov 2023 02:23:45 +0100 Subject: added emacs configuration --- config/extra/emacs/config.org | 622 ++++++++++++++++++++++++++ config/extra/emacs/early-init.el | 1 + config/extra/emacs/init.el | 17 + config/extra/emacs/themes/nord-theme.el | 727 +++++++++++++++++++++++++++++++ config/extra/emacs/themes/tlast-theme.el | 306 +++++++++++++ 5 files changed, 1673 insertions(+) create mode 100644 config/extra/emacs/config.org create mode 100644 config/extra/emacs/early-init.el create mode 100644 config/extra/emacs/init.el create mode 100644 config/extra/emacs/themes/nord-theme.el create mode 100644 config/extra/emacs/themes/tlast-theme.el diff --git a/config/extra/emacs/config.org b/config/extra/emacs/config.org new file mode 100644 index 0000000..60c0812 --- /dev/null +++ b/config/extra/emacs/config.org @@ -0,0 +1,622 @@ +#+TITLE: Emacs Configuration +#+AUTHOR: TlasT +#+STARTUP: showeverything +#+OPTIONS: toc:3 + +* TABLE OF CONTENTS :toc: +- [[#startup-configuration][Startup Configuration]] + - [[#elpaca-package-manager][Elpaca (Package Manager)]] + - [[#evil-mode][Evil Mode]] + - [[#keybindings][Keybindings]] +- [[#helper-functions][Helper functions]] + - [[#buffer-move][buffer-move]] + - [[#reload-emacs][Reload Emacs]] +- [[#graphical-configuration][Graphical configuration]] + - [[#disable-menubar-toolbars-and-scrollbars][Disable Menubar, Toolbars and Scrollbars]] + - [[#display-line-numbers-and-truncated-lines][Display Line Numbers and Truncated Lines]] + - [[#fonts][Fonts]] + - [[#setting-the-font-face][Setting the Font Face]] + - [[#theme][Theme]] +- [[#org-mode][ORG Mode]] + - [[#enabling-table-of-contents][Enabling Table of Contents]] + - [[#enabling-org-bullets][Enabling Org Bullets]] + - [[#source-code-block-tag-expansion][Source Code Block Tag Expansion]] +- [[#shell][Shell]] + - [[#default-shell][Default shell]] + - [[#eshell][Eshell]] +- [[#packages][Packages]] + - [[#sudo-edit][Sudo edit]] + - [[#which-key][Which-Key]] + - [[#all-the-icons][All The Icons]] + - [[#rainbow-mode][Rainbow Mode]] + - [[#ivy-counsel][IVY (Counsel)]] + - [[#projectile][Projectile]] + - [[#dashboard][Dashboard]] + - [[#flycheck][Flycheck]] + - [[#company][COMPANY]] + +* Startup Configuration +** Elpaca (Package Manager) +#+begin_src emacs-lisp +(defvar elpaca-installer-version 0.6) +(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory)) +(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory)) +(defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory)) +(defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git" + :ref nil + :files (:defaults (:exclude "extensions")) + :build (:not elpaca--activate-package))) +(let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory)) + (build (expand-file-name "elpaca/" elpaca-builds-directory)) + (order (cdr elpaca-order)) + (default-directory repo)) + (add-to-list 'load-path (if (file-exists-p build) build repo)) + (unless (file-exists-p repo) + (make-directory repo t) + (when (< emacs-major-version 28) (require 'subr-x)) + (condition-case-unless-debug err + (if-let ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*")) + ((zerop (call-process "git" nil buffer t "clone" + (plist-get order :repo) repo))) + ((zerop (call-process "git" nil buffer t "checkout" + (or (plist-get order :ref) "--")))) + (emacs (concat invocation-directory invocation-name)) + ((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch" + "--eval" "(byte-recompile-directory \".\" 0 'force)"))) + ((require 'elpaca)) + ((elpaca-generate-autoloads "elpaca" repo))) + (kill-buffer buffer) + (error "%s" (with-current-buffer buffer (buffer-string)))) +((error) (warn "%s" err) (delete-directory repo 'recursive)))) + (unless (require 'elpaca-autoloads nil t) + (require 'elpaca) + (elpaca-generate-autoloads "elpaca" repo) + (load "./elpaca-autoloads"))) +(add-hook 'after-init-hook #'elpaca-process-queues) +(elpaca `(,@elpaca-order)) + +;; Install use-package support +(elpaca elpaca-use-package + ;; Enable :elpaca use-package keyword. + (elpaca-use-package-mode) + ;; Assume :elpaca t unless otherwise specified. + (setq elpaca-use-package-by-default t)) + +;; Block until current queue processed. +(elpaca-wait) + +;;When installing a package which modifies a form used at the top-level +;;(e.g. a package which adds a use-package key word), +;;use `elpaca-wait' to block until that package has been installed/configured. +;;For example: +;;(use-package general :demand t) +;;(elpaca-wait) + +;;Turns off elpaca-use-package-mode current declartion +;;Note this will cause the declaration to be interpreted immediately (not deferred). +;;Useful for configuring built-in emacs features. +;;(use-package emacs :elpaca nil :config (setq ring-bell-function #'ignore)) + +;; Don't install anything. Defer execution of BODY +;;(elpaca nil (message "deferred")) +#+end_src + +** Evil Mode + +#+begin_src emacs-lisp +;; Expands to: (elpaca evil (use-package evil :demand t)) +(use-package evil + :init ;; tweak evil's configuration before loading it + (setq evil-want-integration t) ;; This is optional since it's already set to t by default. + (setq evil-want-keybinding nil) + (setq evil-vsplit-window-right t) + (setq evil-split-window-below t) + (evil-mode)) + (use-package evil-collection + :after evil + :config + (setq evil-collection-mode-list '(dashboard dired ibuffer)) + (evil-collection-init)) + (use-package evil-tutor) +#+end_src + +** Keybindings +#+begin_src emacs-lisp +(use-package general + :config + (general-evil-setup) + + ;; set up 'SPC' as the global leader key + (general-create-definer user/leader-keys + :states '(normal insert visual emacs) + :keymaps 'override + :prefix "SPC" ;; set leader + :global-prefix "M-SPC") ;; access leader in insert mode + + (user/leader-keys + "SPC" '(counsel-M-x :wk "Counsel M-x") + "." '(find-file :wk "Find file") + "f c" '((lambda () (interactive) (find-file "~/.config/emacs/config.org")) :wk "Edit emacs config") + "f r" '(counsel-recentf :wk "Find recent files") + "f w" '(evil-write :wk "Write current buffer") + "f q" '(evil-quit :wk "Write current buffer") + "TAB TAB" '(comment-line :wk "Comment lines")) + + (user/leader-keys + "b" '(:ignore t :wk "buffer") + "b b" '(switch-to-buffer :wk "Switch buffer") + "b i" '(ibuffer :wk "Ibuffer") + "b k" '(kill-this-buffer :wk "Kill this buffer") + "b n" '(next-buffer :wk "Next buffer") + "b p" '(previous-buffer :wk "Previous buffer") + "b r" '(revert-buffer :wk "Reload buffer")) + + (user/leader-keys + "e" '(:ignore t :wk "Eshell/Evaluate") + "e b" '(eval-buffer :wk "Evaluate elisp in buffer") + "e d" '(eval-defun :wk "Evaluate defun containing or after point") + "e e" '(eval-expression :wk "Evaluate and elisp expression") + "e h" '(counsel-esh-history :which-key "Eshell history") + "e l" '(eval-last-sexp :wk "Evaluate elisp expression before point") + "e r" '(eval-region :wk "Evaluate elisp in region") + "e s" '(eshell :which-key "Eshell")) + + (user/leader-keys + "h" '(:ignore t :wk "Help") + "h f" '(describe-function :wk "Describe function") + "h v" '(describe-variable :wk "Describe variable") + ;;"h r r" '((lambda () (interactive) (load-file "~/.config/emacs/init.el")) :wk "Reload emacs config")) + "h r r" '(reload-init-file :wk "Reload emacs config")) + + (user/leader-keys + "t" '(:ignore t :wk "Toggle") + "t l" '(display-line-numbers-mode :wk "Toggle line numbers") + "t t" '(visual-line-mode :wk "Toggle truncated lines") + "t v" '(shell :wk "open shell")) + + (user/leader-keys + "w" '(:ignore t :wk "Windows") + ;; Window splits + "w c" '(evil-window-delete :wk "Close window") + "w n" '(evil-window-new :wk "New window") + "w s" '(evil-window-split :wk "Horizontal split window") + "w v" '(evil-window-vsplit :wk "Vertical split window") + ;; Window motions + "w h" '(evil-window-left :wk "Window left") + "w j" '(evil-window-down :wk "Window down") + "w k" '(evil-window-up :wk "Window up") + "w l" '(evil-window-right :wk "Window right") + "w w" '(evil-window-next :wk "Goto next window") + ;; Move Windows + "w H" '(buf-move-left :wk "Buffer move left") + "w J" '(buf-move-down :wk "Buffer move down") + "w K" '(buf-move-up :wk "Buffer move up") + "w L" '(buf-move-right :wk "Buffer move right")) + +;; org mode + (user/leader-keys + "m" '(:ignore t :wk "Org") + "m a" '(org-agenda :wk "Org agenda") + "m e" '(org-export-dispatch :wk "Org export dispatch") + "m i" '(org-toggle-item :wk "Org toggle item") + "m t" '(org-todo :wk "Org todo") + "m B" '(org-babel-tangle :wk "Org babel tangle") + "m T" '(org-todo-list :wk "Org todo list")) + (user/leader-keys + "m b" '(:ignore t :wk "Tables") + "m b -" '(org-table-insert-hline :wk "Insert hline in table")) + (user/leader-keys + "m d" '(:ignore t :wk "Date/deadline") + "m d t" '(org-time-stamp :wk "Org time stamp")) + (user/leader-keys + "p" '(projectile-command-map :wk "Projectile")) + + +) + +#+end_src + +Zooming in and out +#+begin_src emacs-lisp +(global-set-key (kbd "C-=") 'text-scale-increase) +(global-set-key (kbd "C--") 'text-scale-decrease) +(global-set-key (kbd "") 'text-scale-increase) +(global-set-key (kbd "") 'text-scale-decrease) +#+end_src + + +* Helper functions +** buffer-move +Creating some functions to allow us to easily move windows (splits) around. The following block of code was taken from buffer-move.el found on the EmacsWiki: +https://www.emacswiki.org/emacs/buffer-move.el + +#+begin_src emacs-lisp +(require 'windmove) + +;;;###autoload +(defun buf-move-up () + "Swap the current buffer and the buffer above the split. +If there is no split, ie now window above the current one, an +error is signaled." +;; "Switches between the current buffer, and the buffer above the +;; split, if possible." + (interactive) + (let* ((other-win (windmove-find-other-window 'up)) + (buf-this-buf (window-buffer (selected-window)))) + (if (null other-win) + (error "No window above this one") + ;; swap top with this one + (set-window-buffer (selected-window) (window-buffer other-win)) + ;; move this one to top + (set-window-buffer other-win buf-this-buf) + (select-window other-win)))) + +;;;###autoload +(defun buf-move-down () +"Swap the current buffer and the buffer under the split. +If there is no split, ie now window under the current one, an +error is signaled." + (interactive) + (let* ((other-win (windmove-find-other-window 'down)) + (buf-this-buf (window-buffer (selected-window)))) + (if (or (null other-win) + (string-match "^ \\*Minibuf" (buffer-name (window-buffer other-win)))) + (error "No window under this one") + ;; swap top with this one + (set-window-buffer (selected-window) (window-buffer other-win)) + ;; move this one to top + (set-window-buffer other-win buf-this-buf) + (select-window other-win)))) + +;;;###autoload +(defun buf-move-left () +"Swap the current buffer and the buffer on the left of the split. +If there is no split, ie now window on the left of the current +one, an error is signaled." + (interactive) + (let* ((other-win (windmove-find-other-window 'left)) + (buf-this-buf (window-buffer (selected-window)))) + (if (null other-win) + (error "No left split") + ;; swap top with this one + (set-window-buffer (selected-window) (window-buffer other-win)) + ;; move this one to top + (set-window-buffer other-win buf-this-buf) + (select-window other-win)))) + +;;;###autoload +(defun buf-move-right () +"Swap the current buffer and the buffer on the right of the split. +If there is no split, ie now window on the right of the current +one, an error is signaled." + (interactive) + (let* ((other-win (windmove-find-other-window 'right)) + (buf-this-buf (window-buffer (selected-window)))) + (if (null other-win) + (error "No right split") + ;; swap top with this one + (set-window-buffer (selected-window) (window-buffer other-win)) + ;; move this one to top + (set-window-buffer other-win buf-this-buf) + (select-window other-win)))) +#+end_src + +** Reload Emacs +This is just an example of how to create a simple function in Emacs. Use this function to reload Emacs after adding changes to the config. Yes, I am loading the user-init-file twice in this function, which is a hack because for some reason, just loading the user-init-file once does not work properly. + +#+begin_src emacs-lisp +(defun reload-init-file () + (interactive) + (load-file user-init-file) + (load-file user-init-file)) +#+end_src + + +* Graphical configuration +** Disable Menubar, Toolbars and Scrollbars +#+begin_src emacs-lisp +(menu-bar-mode -1) +(tool-bar-mode -1) +(scroll-bar-mode -1) +#+end_src + +** Display Line Numbers and Truncated Lines +#+begin_src emacs-lisp +(global-display-line-numbers-mode 1) +(global-visual-line-mode t) +#+end_src + +** Fonts +Defining the various fonts that Emacs will use. + +** Setting the Font Face +#+begin_src emacs-lisp + (set-face-attribute 'default nil + :font "JetBrains Mono" + :height 105 + :weight 'medium) + (set-face-attribute 'variable-pitch nil + :font "Ubuntu" + :height 115 + :weight 'medium) + (set-face-attribute 'fixed-pitch nil + :font "JetBrains Mono" + :height 105 + :weight 'medium) + ;; Makes commented text and keywords italics. + ;; This is working in emacsclient but not emacs. + ;; Your font must have an italic face available. + (set-face-attribute 'font-lock-comment-face nil + :slant 'italic) + (set-face-attribute 'font-lock-keyword-face nil + :slant 'italic) + + ;; This sets the default font on all graphical frames created after restarting Emacs. + ;; Does the same thing as 'set-face-attribute default' above, but emacsclient fonts + ;; are not right unless I also add this method of setting the default font. + (add-to-list 'default-frame-alist '(font . "JetBrains Mono-11")) + + ;; Uncomment the following line if line spacing needs adjusting. + (setq-default line-spacing 0.12) + +#+end_src + +** Theme + +How to make thet theme work even in daemon mode: (https://stackoverflow.com/questions/18904529/after-emacs-deamon-i-can-not-see-new-theme-in-emacsclient-frame-it-works-fr) +#+begin_src emacs-lisp + (add-to-list 'custom-theme-load-path "~/.config/emacs/themes/") + (defvar my:theme 'nord) +(defvar my:theme-window-loaded nil) +(defvar my:theme-terminal-loaded nil) + +(if (daemonp) + (add-hook 'after-make-frame-functions(lambda (frame) + (select-frame frame) + (if (window-system frame) + (unless my:theme-window-loaded + (if my:theme-terminal-loaded + (enable-theme my:theme) + (load-theme my:theme t)) + (setq my:theme-window-loaded t)) + (unless my:theme-terminal-loaded + (if my:theme-window-loaded + (enable-theme my:theme) + (load-theme my:theme t)) + (setq my:theme-terminal-loaded t))))) + + (progn + (load-theme my:theme t) + (if (display-graphic-p) + (setq my:theme-window-loaded t) + (setq my:theme-terminal-loaded t)))) + +#+end_src + + +* ORG Mode +** Enabling Table of Contents +#+begin_src emacs-lisp + (use-package toc-org + :commands toc-org-enable + :init (add-hook 'org-mode-hook 'toc-org-enable)) +#+end_src + +** Enabling Org Bullets +Org-bullets gives us attractive bullets rather than asterisks. + +#+begin_src emacs-lisp + (add-hook 'org-mode-hook 'org-indent-mode) + (use-package org-bullets) + (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))) +#+end_src + +** Source Code Block Tag Expansion +Org-tempo is not a separate package but a module within org that can be enabled. Org-tempo allows for ' to complete or to complete the common part. + +#+begin_src emacs-lisp + (use-package company + :defer 2 + :diminish + :custom + (company-begin-commands '(self-insert-command)) + (company-idle-delay .1) + (company-minimum-prefix-length 2) + (company-show-numbers t) + (company-tooltip-align-annotations 't) + (global-company-mode t)) + + (use-package company-box + :after company + :diminish + :hook (company-mode . company-box-mode)) +#+end_src + diff --git a/config/extra/emacs/early-init.el b/config/extra/emacs/early-init.el new file mode 100644 index 0000000..512068a --- /dev/null +++ b/config/extra/emacs/early-init.el @@ -0,0 +1 @@ +(setq package-enable-at-startup nil) diff --git a/config/extra/emacs/init.el b/config/extra/emacs/init.el new file mode 100644 index 0000000..19a2beb --- /dev/null +++ b/config/extra/emacs/init.el @@ -0,0 +1,17 @@ +(org-babel-load-file + (expand-file-name + "config.org" + user-emacs-directory)) +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(custom-safe-themes + '("4c7228157ba3a48c288ad8ef83c490b94cb29ef01236205e360c2c4db200bb18" default))) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) diff --git a/config/extra/emacs/themes/nord-theme.el b/config/extra/emacs/themes/nord-theme.el new file mode 100644 index 0000000..2e2d84d --- /dev/null +++ b/config/extra/emacs/themes/nord-theme.el @@ -0,0 +1,727 @@ +;;; nord-theme.el --- An arctic, north-bluish clean and elegant theme + +;; Copyright (c) 2016-present Sven Greb (https://www.svengreb.de) + +;; Title: Nord Theme +;; Project: nord-emacs +;; Version: 0.5.0 +;; URL: https://github.com/nordtheme/emacs +;; Author: Sven Greb +;; Package-Requires: ((emacs "24")) +;; License: MIT + +;;; Commentary: + +;; Nord is a 16 colorspace theme build to run in GUI- and terminal +;; mode with support for many third-party syntax- and UI packages. + +;;; References: +;; Awesome Emacs +;; https://github.com/emacs-tw/awesome-emacs +;; GNU ELPA +;; https://elpa.gnu.org +;; GNU Emacs +;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Custom-Themes.html +;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Custom-Themes.html +;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Faces.html +;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Standard-Faces.html +;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Face-Customization.html +;; https://www.gnu.org/software/emacs/manual/html_node/elisp/Face-Attributes.html +;; https://www.gnu.org/software/emacs/manual/html_node/elisp/Faces-for-Font-Lock.html +;; https://www.gnu.org/software/emacs/manual/html_node/elisp/Display-Feature-Testing.html +;; marmalade repo +;; https://marmalade-repo.org +;; MELPA +;; https://melpa.org +;; https://stable.melpa.org + +;;; Code: + +(unless (>= emacs-major-version 24) + (error "Nord theme requires Emacs 24 or later!")) + +(deftheme nord "An arctic, north-bluish clean and elegant theme") + +(defgroup nord nil + "Nord theme customizations. + The theme has to be reloaded after changing anything in this group." + :group 'faces) + +(defcustom nord-comment-brightness 10 + "Allows to define a custom comment color brightness with percentage adjustments from 0% - 20%. + As of version 0.4.0, this variable is obsolete/deprecated and has no effect anymore and will be removed in version 1.0.0! + The comment color brightness has been increased by 10% by default. + Please see https://github.com/nordtheme/emacs/issues/73 for more details." + :type 'integer + :group 'nord) + +(make-obsolete-variable + 'nord-comment-brightness + "The custom color brightness feature has been deprecated and will be removed in version 1.0.0! + The comment color brightness has been increased by 10% by default. + Please see https://github.com/nordtheme/emacs/issues/73 for more details." + "0.4.0") + +(defcustom nord-region-highlight nil + "Allows to set a region highlight style based on the Nord components. + Valid styles are + - 'snowstorm' - Uses 'nord0' as foreground- and 'nord4' as background color + - 'frost' - Uses 'nord0' as foreground- and 'nord8' as background color" + :type 'string + :group 'nord) + +(defcustom nord-uniform-mode-lines nil + "Enables uniform activate- and inactive mode lines using 'nord3' as background." + :type 'boolean + :group 'nord) + +(setq nord-theme--brightened-comments '("#4c566a" "#4e586d" "#505b70" "#525d73" "#556076" "#576279" "#59647c" "#5b677f" "#5d6982" "#5f6c85" "#616e88" "#63718b" "#66738e" "#687591" "#6a7894" "#6d7a96" "#6f7d98" "#72809a" "#75829c" "#78859e" "#7b88a1")) + +(defun nord-theme--brightened-comment-color (percent) + "Returns the brightened comment color for the given percent. + The value must be greater or equal to 0 and less or equal to 20, otherwise the default 'nord3' color is used. + As of version 0.4.0, this function is obsolete/deprecated and has no effect anymore and will be removed in version 1.0.0! + The comment color brightness has been increased by 10% by default. + Please see https://github.com/nordtheme/emacs/issues/73 for more details." + (nth 10 nord-theme--brightened-comments)) + +(make-obsolete + 'nord-theme--brightened-comment-color + "The custom color brightness feature has been deprecated and will be removed in version 1.0.0!\ + The comment color brightness has been increased by 10% by default.\ + Please see https://github.com/nordtheme/emacs/issues/73 for more details." + "0.4.0") + +(defun nord-display-truecolor-or-graphic-p () + "Returns whether the display can display nord colors" + (or (= (display-color-cells) 16777216) (display-graphic-p))) + +;;;; Color Constants +(let ((class '((class color) (min-colors 89))) + (nord0 (if (nord-display-truecolor-or-graphic-p) "#2E3440" nil)) + (nord1 (if (nord-display-truecolor-or-graphic-p) "#3B4252" "black")) + (nord2 (if (nord-display-truecolor-or-graphic-p) "#434C5E" "#434C5E")) + (nord3 (if (nord-display-truecolor-or-graphic-p) "#4C566A" "brightblack")) + (nord4 (if (nord-display-truecolor-or-graphic-p) "#D8DEE9" "#D8DEE9")) + (nord5 (if (nord-display-truecolor-or-graphic-p) "#E5E9F0" "white")) + (nord6 (if (nord-display-truecolor-or-graphic-p) "#ECEFF4" "brightwhite")) + (nord7 (if (nord-display-truecolor-or-graphic-p) "#8FBCBB" "cyan")) + (nord8 (if (nord-display-truecolor-or-graphic-p) "#88C0D0" "brightcyan")) + (nord9 (if (nord-display-truecolor-or-graphic-p) "#81A1C1" "blue")) + (nord10 (if (nord-display-truecolor-or-graphic-p) "#5E81AC" "brightblue")) + (nord11 (if (nord-display-truecolor-or-graphic-p) "#BF616A" "red")) + (nord12 (if (nord-display-truecolor-or-graphic-p) "#D08770" "brightyellow")) + (nord13 (if (nord-display-truecolor-or-graphic-p) "#EBCB8B" "yellow")) + (nord14 (if (nord-display-truecolor-or-graphic-p) "#A3BE8C" "green")) + (nord15 (if (nord-display-truecolor-or-graphic-p) "#B48EAD" "magenta")) + (nord-annotation (if (nord-display-truecolor-or-graphic-p) "#D08770" "brightyellow")) + (nord-attribute (if (nord-display-truecolor-or-graphic-p) "#8FBCBB" "cyan")) + (nord-class (if (nord-display-truecolor-or-graphic-p) "#8FBCBB" "cyan")) + (nord-comment (if (nord-display-truecolor-or-graphic-p) (nord-theme--brightened-comment-color nord-comment-brightness) "brightblack")) + (nord-escape (if (nord-display-truecolor-or-graphic-p) "#D08770" "brightyellow")) + (nord-method (if (nord-display-truecolor-or-graphic-p) "#88C0D0" "brightcyan")) + (nord-keyword (if (nord-display-truecolor-or-graphic-p) "#81A1C1" "blue")) + (nord-numeric (if (nord-display-truecolor-or-graphic-p) "#B48EAD" "magenta")) + (nord-operator (if (nord-display-truecolor-or-graphic-p) "#81A1C1" "blue")) + (nord-preprocessor (if (nord-display-truecolor-or-graphic-p) "#5E81AC" "brightblue")) + (nord-punctuation (if (nord-display-truecolor-or-graphic-p) "#D8DEE9" "#D8DEE9")) + (nord-regexp (if (nord-display-truecolor-or-graphic-p) "#EBCB8B" "yellow")) + (nord-string (if (nord-display-truecolor-or-graphic-p) "#A3BE8C" "green")) + (nord-tag (if (nord-display-truecolor-or-graphic-p) "#81A1C1" "blue")) + (nord-variable (if (nord-display-truecolor-or-graphic-p) "#D8DEE9" "#D8DEE9")) + (nord-region-highlight-foreground (if (or + (string= nord-region-highlight "frost") + (string= nord-region-highlight "snowstorm")) "#2E3440" nil)) + (nord-region-highlight-background (if + (string= nord-region-highlight "frost") "#88C0D0" + (if (string= nord-region-highlight "snowstorm") "#D8DEE9" "#434C5E"))) + (nord-uniform-mode-lines-background (if nord-uniform-mode-lines "#4C566A" "#3B4252"))) + +;;;; +------------+ +;;;; + Core Faces + +;;;; +------------+ + (custom-theme-set-faces + 'nord + ;; +--- Base ---+ + `(bold ((,class (:weight bold)))) + `(bold-italic ((,class (:weight bold :slant italic)))) + `(default ((,class (:foreground ,nord4 :background ,nord0)))) + `(error ((,class (:foreground ,nord11 :weight bold)))) + `(escape-glyph ((,class (:foreground ,nord12)))) + `(font-lock-builtin-face ((,class (:foreground ,nord9)))) + `(font-lock-comment-face ((,class (:foreground ,nord-comment)))) + `(font-lock-comment-delimiter-face ((,class (:foreground ,nord-comment)))) + `(font-lock-constant-face ((,class (:foreground ,nord9)))) + `(font-lock-doc-face ((,class (:foreground ,nord-comment)))) + `(font-lock-function-name-face ((,class (:foreground ,nord8)))) + `(font-lock-keyword-face ((,class (:foreground ,nord9)))) + `(font-lock-negation-char-face ((,class (:foreground ,nord9)))) + `(font-lock-preprocessor-face ((,class (:foreground ,nord10 :weight bold)))) + `(font-lock-reference-face ((,class (:foreground ,nord9)))) + `(font-lock-regexp-grouping-backslash ((,class (:foreground ,nord13)))) + `(font-lock-regexp-grouping-construct ((,class (:foreground ,nord13)))) + `(font-lock-string-face ((,class (:foreground ,nord14)))) + `(font-lock-type-face ((,class (:foreground ,nord7)))) + `(font-lock-variable-name-face ((,class (:foreground ,nord4)))) + `(font-lock-warning-face ((,class (:foreground ,nord13)))) + `(italic ((,class (:slant italic)))) + `(shadow ((,class (:foreground ,nord3)))) + `(underline ((,class (:underline t)))) + `(warning ((,class (:foreground ,nord13 :weight bold)))) + + ;; +--- Syntax ---+ + ;; > C + `(c-annotation-face ((,class (:foreground ,nord-annotation)))) + + ;; > diff + `(diff-added ((,class (:foreground ,nord14)))) + `(diff-changed ((,class (:foreground ,nord13)))) + `(diff-context ((,class (:inherit default)))) + `(diff-file-header ((,class (:foreground ,nord8)))) + `(diff-function ((,class (:foreground ,nord7)))) + `(diff-header ((,class (:foreground ,nord9 :weight bold)))) + `(diff-hunk-header ((,class (:foreground ,nord9 :background ,nord0)))) + `(diff-indicator-added ((,class (:foreground ,nord14)))) + `(diff-indicator-changed ((,class (:foreground ,nord13)))) + `(diff-indicator-removed ((,class (:foreground ,nord11)))) + `(diff-nonexistent ((,class (:foreground ,nord11)))) + `(diff-refine-added ((,class (:foreground ,nord14)))) + `(diff-refine-changed ((,class (:foreground ,nord13)))) + `(diff-refine-removed ((,class (:foreground ,nord11)))) + `(diff-removed ((,class (:foreground ,nord11)))) + + ;; +--- UI ---+ + `(border ((,class (:foreground ,nord4)))) + `(buffer-menu-buffer ((,class (:foreground ,nord4 :weight bold)))) + `(button ((,class (:background ,nord0 :foreground ,nord8 :box (:line-width 2 :color ,nord4 :style sunken-button))))) + `(completions-annotations ((,class (:foreground ,nord9)))) + `(completions-common-part ((,class (:foreground ,nord8 :weight bold)))) + `(completions-first-difference ((,class (:foreground ,nord11)))) + `(custom-button ((,class (:background ,nord0 :foreground ,nord8 :box (:line-width 2 :color ,nord4 :style sunken-button))))) + `(custom-button-mouse ((,class (:background ,nord4 :foreground ,nord0 :box (:line-width 2 :color ,nord4 :style sunken-button))))) + `(custom-button-pressed ((,class (:background ,nord6 :foreground ,nord0 :box (:line-width 2 :color ,nord4 :style sunken-button))))) + `(custom-button-pressed-unraised ((,class (:background ,nord4 :foreground ,nord0 :box (:line-width 2 :color ,nord4 :style sunken-button))))) + `(custom-button-unraised ((,class (:background ,nord0 :foreground ,nord8 :box (:line-width 2 :color ,nord4 :style sunken-button))))) + `(custom-changed ((,class (:foreground ,nord13)))) + `(custom-comment ((,class (:foreground ,nord-comment)))) + `(custom-comment-tag ((,class (:foreground ,nord7)))) + `(custom-documentation ((,class (:foreground ,nord4)))) + `(custom-group-tag ((,class (:foreground ,nord8 :weight bold)))) + `(custom-group-tag-1 ((,class (:foreground ,nord8 :weight bold)))) + `(custom-invalid ((,class (:foreground ,nord11)))) + `(custom-modified ((,class (:foreground ,nord13)))) + `(custom-rogue ((,class (:foreground ,nord12 :background ,nord2)))) + `(custom-saved ((,class (:foreground ,nord14)))) + `(custom-set ((,class (:foreground ,nord8)))) + `(custom-state ((,class (:foreground ,nord14)))) + `(custom-themed ((,class (:foreground ,nord8 :background ,nord2)))) + `(cursor ((,class (:background ,nord4)))) + `(fringe ((,class (:foreground ,nord4 :background ,nord0)))) + `(file-name-shadow ((,class (:inherit shadow)))) + `(header-line ((,class (:foreground ,nord4 :background ,nord2)))) + `(help-argument-name ((,class (:foreground ,nord8)))) + `(highlight ((,class (:foreground ,nord8 :background ,nord2)))) + `(hl-line ((,class (:background ,nord1)))) + `(info-menu-star ((,class (:foreground ,nord9)))) + `(isearch ((,class (:foreground ,nord0 :background ,nord8)))) + `(isearch-fail ((,class (:foreground ,nord11)))) + `(link ((,class (:underline t)))) + `(link-visited ((,class (:underline t)))) + `(linum ((,class (:foreground ,nord3 :background ,nord0)))) + `(linum-relative-current-face ((,class (:foreground ,nord3 :background ,nord0)))) + `(match ((,class (:inherit isearch)))) + `(message-cited-text ((,class (:foreground ,nord4)))) + `(message-header-cc ((,class (:foreground ,nord9)))) + `(message-header-name ((,class (:foreground ,nord7)))) + `(message-header-newsgroup ((,class (:foreground ,nord14)))) + `(message-header-other ((,class (:foreground ,nord4)))) + `(message-header-subject ((,class (:foreground ,nord8)))) + `(message-header-to ((,class (:foreground ,nord9)))) + `(message-header-xheader ((,class (:foreground ,nord13)))) + `(message-mml ((,class (:foreground ,nord10)))) + `(message-separator ((,class (:inherit shadow)))) + `(minibuffer-prompt ((,class (:foreground ,nord8 :weight bold)))) + `(mm-command-output ((,class (:foreground ,nord8)))) + `(mode-line ((,class (:foreground ,nord8 :background ,nord3)))) + `(mode-line-buffer-id ((,class (:weight bold)))) + `(mode-line-highlight ((,class (:inherit highlight)))) + `(mode-line-inactive ((,class (:foreground ,nord4 :background ,nord-uniform-mode-lines-background)))) + `(next-error ((,class (:inherit error)))) + `(nobreak-space ((,class (:foreground ,nord3)))) + `(outline-1 ((,class (:foreground ,nord8 :weight bold)))) + `(outline-2 ((,class (:inherit outline-1)))) + `(outline-3 ((,class (:inherit outline-1)))) + `(outline-4 ((,class (:inherit outline-1)))) + `(outline-5 ((,class (:inherit outline-1)))) + `(outline-6 ((,class (:inherit outline-1)))) + `(outline-7 ((,class (:inherit outline-1)))) + `(outline-8 ((,class (:inherit outline-1)))) + `(package-description ((,class (:foreground ,nord4)))) + `(package-help-section-name ((,class (:foreground ,nord8 :weight bold)))) + `(package-name ((,class (:foreground ,nord8)))) + `(package-status-available ((,class (:foreground ,nord7)))) + `(package-status-avail-obso ((,class (:foreground ,nord7 :slant italic)))) + `(package-status-built-in ((,class (:foreground ,nord9)))) + `(package-status-dependency ((,class (:foreground ,nord8 :slant italic)))) + `(package-status-disabled ((,class (:foreground ,nord3)))) + `(package-status-external ((,class (:foreground ,nord12 :slant italic)))) + `(package-status-held ((,class (:foreground ,nord4 :weight bold)))) + `(package-status-new ((,class (:foreground ,nord14)))) + `(package-status-incompat ((,class (:foreground ,nord11)))) + `(package-status-installed ((,class (:foreground ,nord7 :weight bold)))) + `(package-status-unsigned ((,class (:underline ,nord13)))) + `(query-replace ((,class (:foreground ,nord8 :background ,nord2)))) + `(region ((,class (:foreground ,nord-region-highlight-foreground :background ,nord-region-highlight-background)))) + `(scroll-bar ((,class (:background ,nord3)))) + `(secondary-selection ((,class (:background ,nord2)))) + + ;; `show-paren-match-face` and `show-paren-mismatch-face` are deprecated since Emacs version 22.1 and were + ;; removed in Emacs 25. + ;; https://github.com/nordtheme/emacs/issues/75 + ;; http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=c430f7e23fc2c22f251ace4254e37dea1452dfc3 + ;; https://github.com/emacs-mirror/emacs/commit/c430f7e23fc2c22f251ace4254e37dea1452dfc3 + `(show-paren-match-face ((,class (:foreground ,nord0 :background ,nord8)))) + `(show-paren-mismatch-face ((,class (:background ,nord11)))) + + `(show-paren-match ((,class (:foreground ,nord0 :background ,nord8)))) + `(show-paren-mismatch ((,class (:background ,nord11)))) + `(success ((,class (:foreground ,nord14)))) + `(term ((,class (:foreground ,nord4 :background ,nord0)))) + `(term-color-black ((,class (:foreground ,nord1 :background ,nord1)))) + `(term-color-white ((,class (:foreground ,nord5 :background ,nord5)))) + `(term-color-cyan ((,class (:foreground ,nord7 :background ,nord7)))) + `(term-color-blue ((,class (:foreground ,nord8 :background ,nord8)))) + `(term-color-red ((,class (:foreground ,nord11 :background ,nord11)))) + `(term-color-yellow ((,class (:foreground ,nord13 :background ,nord13)))) + `(term-color-green ((,class (:foreground ,nord14 :background ,nord14)))) + `(term-color-magenta ((,class (:foreground ,nord15 :background ,nord15)))) + `(tool-bar ((,class (:foreground ,nord4 :background ,nord3)))) + `(tooltip ((,class (:foreground ,nord0 :background ,nord4)))) + `(trailing-whitespace ((,class (:foreground ,nord3)))) + `(tty-menu-disabled-face ((,class (:foreground ,nord1)))) + `(tty-menu-enabled-face ((,class (:background ,nord2 foreground ,nord4)))) + `(tty-menu-selected-face ((,class (:foreground ,nord8 :underline t)))) + `(undo-tree-visualizer-current-face ((,class (:foreground ,nord8)))) + `(undo-tree-visualizer-default-face ((,class (:foreground ,nord4)))) + `(undo-tree-visualizer-unmodified-face ((,class (:foreground ,nord4)))) + `(undo-tree-visualizer-register-face ((,class (:foreground ,nord9)))) + `(vc-conflict-state ((,class (:foreground ,nord12)))) + `(vc-edited-state ((,class (:foreground ,nord13)))) + `(vc-locally-added-state ((,class (:underline ,nord14)))) + `(vc-locked-state ((,class (:foreground ,nord10)))) + `(vc-missing-state ((,class (:foreground ,nord11)))) + `(vc-needs-update-state ((,class (:foreground ,nord12)))) + `(vc-removed-state ((,class (:foreground ,nord11)))) + `(vc-state-base ((,class (:foreground ,nord4)))) + `(vc-up-to-date-state ((,class (:foreground ,nord8)))) + `(vertical-border ((,class (:foreground ,nord2)))) + `(which-func ((,class (:foreground ,nord8)))) + `(whitespace-big-indent ((,class (:foreground ,nord3 :background ,nord0)))) + `(whitespace-empty ((,class (:foreground ,nord3 :background ,nord0)))) + `(whitespace-hspace ((,class (:foreground ,nord3 :background ,nord0)))) + `(whitespace-indentation ((,class (:foreground ,nord3 :background ,nord0)))) + `(whitespace-line ((,class (:background ,nord0)))) + `(whitespace-newline ((,class (:foreground ,nord3 :background ,nord0)))) + `(whitespace-space ((,class (:foreground ,nord3 :background ,nord0)))) + `(whitespace-space-after-tab ((,class (:foreground ,nord3 :background ,nord0)))) + `(whitespace-space-before-tab ((,class (:foreground ,nord3 :background ,nord0)))) + `(whitespace-tab ((,class (:foreground ,nord3 :background ,nord0)))) + `(whitespace-trailing ((,class (:inherit trailing-whitespace)))) + `(widget-button-pressed ((,class (:foreground ,nord9 :background ,nord1)))) + `(widget-documentation ((,class (:foreground ,nord4)))) + `(widget-field ((,class (:background ,nord2 :foreground ,nord4)))) + `(widget-single-line-field ((,class (:background ,nord2 :foreground ,nord4)))) + `(window-divider ((,class (:background ,nord3)))) + `(window-divider-first-pixel ((,class (:background ,nord3)))) + `(window-divider-last-pixel ((,class (:background ,nord3)))) + + ;;;; +-----------------+ + ;;;; + Package Support + + ;;;; +-----------------+ + ;; +--- Syntax ---+ + ;; > Auctex + `(font-latex-bold-face ((,class (:inherit bold)))) + `(font-latex-italic-face ((,class (:inherit italic)))) + `(font-latex-math-face ((,class (:foreground ,nord8)))) + `(font-latex-sectioning-0-face ((,class (:foreground ,nord8 :weight bold)))) + `(font-latex-sectioning-1-face ((,class (:inherit font-latex-sectioning-0-face)))) + `(font-latex-sectioning-2-face ((,class (:inherit font-latex-sectioning-0-face)))) + `(font-latex-sectioning-3-face ((,class (:inherit font-latex-sectioning-0-face)))) + `(font-latex-sectioning-4-face ((,class (:inherit font-latex-sectioning-0-face)))) + `(font-latex-sectioning-5-face ((,class (:inherit font-latex-sectioning-0-face)))) + `(font-latex-script-char-face ((,class (:inherit font-lock-warning-face)))) + `(font-latex-string-face ((,class (:inherit font-lock-string-face)))) + `(font-latex-warning-face ((,class (:inherit font-lock-warning-face)))) + + ;; > Elixir + `(elixir-attribute-face ((,class (:foreground ,nord-annotation)))) + `(elixir-atom-face ((,class (:foreground ,nord4 :weight bold)))) + + ;; > Enhanced Ruby + `(enh-ruby-heredoc-delimiter-face ((,class (:foreground ,nord14)))) + `(enh-ruby-op-face ((,class (:foreground ,nord9)))) + `(enh-ruby-regexp-delimiter-face ((,class (:foreground ,nord13)))) + `(enh-ruby-regexp-face ((,class (:foreground ,nord13)))) + `(enh-ruby-string-delimiter-face ((,class (:foreground ,nord14)))) + `(erm-syn-errline ((,class (:foreground ,nord11 :underline t)))) + `(erm-syn-warnline ((,class (:foreground ,nord13 :underline t)))) + + ;; > Java Development Environment for Emacs + `(jdee-db-active-breakpoint-face ((,class (:background ,nord2 :weight bold)))) + `(jdee-bug-breakpoint-cursor ((,class (:background ,nord2)))) + `(jdee-db-requested-breakpoint-face ((,class (:foreground ,nord13 :background ,nord2 :weight bold)))) + `(jdee-db-spec-breakpoint-face ((,class (:foreground ,nord14 :background ,nord2 :weight bold)))) + `(jdee-font-lock-api-face ((,class (:foreground ,nord4)))) + `(jdee-font-lock-code-face ((,class (:slant italic)))) + `(jdee-font-lock-constant-face ((,class (:foreground ,nord-keyword)))) + `(jdee-font-lock-constructor-face ((,class (:foreground ,nord-method)))) + `(jdee-font-lock-doc-tag-face ((,class (:foreground ,nord7)))) + `(jdee-font-lock-link-face ((,class (:underline t)))) + `(jdee-font-lock-modifier-face ((,class (:foreground ,nord-keyword)))) + `(jdee-font-lock-number-face ((,class (:foreground ,nord-numeric)))) + `(jdee-font-lock-operator-fac ((,class (:foreground ,nord-operator)))) + `(jdee-font-lock-package-face ((,class (:foreground ,nord-class)))) + `(jdee-font-lock-pre-face ((,class (:foreground ,nord-comment :slant italic)))) + `(jdee-font-lock-private-face ((,class (:foreground ,nord-keyword)))) + `(jdee-font-lock-public-face ((,class (:foreground ,nord-keyword)))) + `(jdee-font-lock-variable-face ((,class (:foreground ,nord-variable)))) + + ;; > JavaScript 2 + `(js2-function-call ((,class (:foreground ,nord8)))) + `(js2-private-function-call ((,class (:foreground ,nord8)))) + `(js2-jsdoc-html-tag-delimiter ((,class (:foreground ,nord6)))) + `(js2-jsdoc-html-tag-name ((,class (:foreground ,nord9)))) + `(js2-external-variable ((,class (:foreground ,nord4)))) + `(js2-function-param ((,class (:foreground ,nord4)))) + `(js2-jsdoc-value ((,class (:foreground ,nord-comment)))) + `(js2-jsdoc-tag ((,class (:foreground ,nord7)))) + `(js2-jsdoc-type ((,class (:foreground ,nord7)))) + `(js2-private-member ((,class (:foreground ,nord4)))) + `(js2-object-property ((,class (:foreground ,nord4)))) + `(js2-error ((,class (:foreground ,nord11)))) + `(js2-warning ((,class (:foreground ,nord13)))) + `(js2-instance-member ((,class (:foreground ,nord4)))) + + ;; > JavaScript 3 + `(js3-error-face ((,class (:foreground ,nord11)))) + `(js3-external-variable-face ((,class (:foreground ,nord4)))) + `(js3-function-param-face ((,class (:foreground ,nord4)))) + `(js3-instance-member-face ((,class (:foreground ,nord4)))) + `(js3-jsdoc-html-tag-delimiter-face ((,class (:foreground ,nord6)))) + `(js3-jsdoc-html-tag-name-face ((,class (:foreground ,nord9)))) + `(js3-jsdoc-tag-face ((,class (:foreground ,nord9)))) + `(js3-jsdoc-type-face ((,class (:foreground ,nord7)))) + `(js3-jsdoc-value-face ((,class (:foreground ,nord4)))) + `(js3-magic-paren-face ((,class (:inherit show-paren-match-face)))) + `(js3-private-function-call-face ((,class (:foreground ,nord8)))) + `(js3-private-member-face ((,class (:foreground ,nord4)))) + `(js3-warning-face ((,class (:foreground ,nord13)))) + + ;; > Markdown + `(markdown-blockquote-face ((,class (:foreground ,nord-comment)))) + `(markdown-bold-face ((,class (:inherit bold)))) + `(markdown-header-face-1 ((,class (:foreground ,nord8)))) + `(markdown-header-face-2 ((,class (:foreground ,nord8)))) + `(markdown-header-face-3 ((,class (:foreground ,nord8)))) + `(markdown-header-face-4 ((,class (:foreground ,nord8)))) + `(markdown-header-face-5 ((,class (:foreground ,nord8)))) + `(markdown-header-face-6 ((,class (:foreground ,nord8)))) + `(markdown-inline-code-face ((,class (:foreground ,nord7)))) + `(markdown-italic-face ((,class (:inherit italic)))) + `(markdown-link-face ((,class (:foreground ,nord8)))) + `(markdown-markup-face ((,class (:foreground ,nord9)))) + `(markdown-reference-face ((,class (:inherit markdown-link-face)))) + `(markdown-url-face ((,class (:foreground ,nord4 :underline t)))) + + ;; > Rainbow Delimeters + `(rainbow-delimiters-depth-1-face ((,class :foreground ,nord7))) + `(rainbow-delimiters-depth-2-face ((,class :foreground ,nord8))) + `(rainbow-delimiters-depth-3-face ((,class :foreground ,nord9))) + `(rainbow-delimiters-depth-4-face ((,class :foreground ,nord10))) + `(rainbow-delimiters-depth-5-face ((,class :foreground ,nord12))) + `(rainbow-delimiters-depth-6-face ((,class :foreground ,nord13))) + `(rainbow-delimiters-depth-7-face ((,class :foreground ,nord14))) + `(rainbow-delimiters-depth-8-face ((,class :foreground ,nord15))) + `(rainbow-delimiters-unmatched-face ((,class :foreground ,nord11))) + + ;; > Web Mode + `(web-mode-attr-tag-custom-face ((,class (:foreground ,nord-attribute)))) + `(web-mode-builtin-face ((,class (:foreground ,nord-keyword)))) + `(web-mode-comment-face ((,class (:foreground ,nord-comment)))) + `(web-mode-comment-keyword-face ((,class (:foreground ,nord-comment)))) + `(web-mode-constant-face ((,class (:foreground ,nord-variable)))) + `(web-mode-css-at-rule-face ((,class (:foreground ,nord-annotation)))) + `(web-mode-css-function-face ((,class (:foreground ,nord-method)))) + `(web-mode-css-property-name-face ((,class (:foreground ,nord-keyword)))) + `(web-mode-css-pseudo-class-face ((,class (:foreground ,nord-class)))) + `(web-mode-css-selector-face ((,class (:foreground ,nord-keyword)))) + `(web-mode-css-string-face ((,class (:foreground ,nord-string)))) + `(web-mode-doctype-face ((,class (:foreground ,nord-preprocessor)))) + `(web-mode-function-call-face ((,class (:foreground ,nord-method)))) + `(web-mode-function-name-face ((,class (:foreground ,nord-method)))) + `(web-mode-html-attr-name-face ((,class (:foreground ,nord-attribute)))) + `(web-mode-html-attr-equal-face ((,class (:foreground ,nord-punctuation)))) + `(web-mode-html-attr-value-face ((,class (:foreground ,nord-string)))) + `(web-mode-html-entity-face ((,class (:foreground ,nord-keyword)))) + `(web-mode-html-tag-bracket-face ((,class (:foreground ,nord-punctuation)))) + `(web-mode-html-tag-custom-face ((,class (:foreground ,nord-tag)))) + `(web-mode-html-tag-face ((,class (:foreground ,nord-tag)))) + `(web-mode-html-tag-namespaced-face ((,class (:foreground ,nord-keyword)))) + `(web-mode-json-key-face ((,class (:foreground ,nord-class)))) + `(web-mode-json-string-face ((,class (:foreground ,nord-string)))) + `(web-mode-keyword-face ((,class (:foreground ,nord-keyword)))) + `(web-mode-preprocessor-face ((,class (:foreground ,nord-preprocessor)))) + `(web-mode-string-face ((,class (:foreground ,nord-string)))) + `(web-mode-symbol-face ((,class (:foreground ,nord-variable)))) + `(web-mode-type-face ((,class (:foreground ,nord-class)))) + `(web-mode-warning-face ((,class (:inherit ,font-lock-warning-face)))) + `(web-mode-variable-name-face ((,class (:foreground ,nord-variable)))) + + ;; +--- UI ---+ + ;; > Anzu + `(anzu-mode-line ((,class (:foreground, nord8)))) + `(anzu-mode-line-no-match ((,class (:foreground, nord11)))) + + ;; > Avy + `(avy-lead-face ((,class (:background ,nord11 :foreground ,nord5)))) + `(avy-lead-face-0 ((,class (:background ,nord10 :foreground ,nord5)))) + `(avy-lead-face-1 ((,class (:background ,nord3 :foreground ,nord5)))) + `(avy-lead-face-2 ((,class (:background ,nord15 :foreground ,nord5)))) + + ;; > Company + `(company-echo-common ((,class (:foreground ,nord0 :background ,nord4)))) + `(company-preview ((,class (:foreground ,nord4 :background ,nord10)))) + `(company-preview-common ((,class (:foreground ,nord0 :background ,nord8)))) + `(company-preview-search ((,class (:foreground ,nord0 :background ,nord8)))) + `(company-scrollbar-bg ((,class (:foreground ,nord1 :background ,nord1)))) + `(company-scrollbar-fg ((,class (:foreground ,nord2 :background ,nord2)))) + `(company-template-field ((,class (:foreground ,nord0 :background ,nord7)))) + `(company-tooltip ((,class (:foreground ,nord4 :background ,nord2)))) + `(company-tooltip-annotation ((,class (:foreground ,nord12)))) + `(company-tooltip-annotation-selection ((,class (:foreground ,nord12 :weight bold)))) + `(company-tooltip-common ((,class (:foreground ,nord8)))) + `(company-tooltip-common-selection ((,class (:foreground ,nord8 :background ,nord3)))) + `(company-tooltip-mouse ((,class (:inherit highlight)))) + `(company-tooltip-selection ((,class (:background ,nord3 :weight bold)))) + + ;; > diff-hl + `(diff-hl-change ((,class (:background ,nord13)))) + `(diff-hl-insert ((,class (:background ,nord14)))) + `(diff-hl-delete ((,class (:background ,nord11)))) + + ;; > Evil + `(evil-ex-info ((,class (:foreground ,nord8)))) + `(evil-ex-substitute-replacement ((,class (:foreground ,nord9)))) + `(evil-ex-substitute-matches ((,class (:inherit isearch)))) + + ;; > Flycheck + `(flycheck-error ((,class (:underline (:style wave :color ,nord11))))) + `(flycheck-fringe-error ((,class (:foreground ,nord11 :weight bold)))) + `(flycheck-fringe-info ((,class (:foreground ,nord8 :weight bold)))) + `(flycheck-fringe-warning ((,class (:foreground ,nord13 :weight bold)))) + `(flycheck-info ((,class (:underline (:style wave :color ,nord8))))) + `(flycheck-warning ((,class (:underline (:style wave :color ,nord13))))) + + ;; > Git Gutter + `(git-gutter:modified ((,class (:foreground ,nord13)))) + `(git-gutter:added ((,class (:foreground ,nord14)))) + `(git-gutter:deleted ((,class (:foreground ,nord11)))) + + ;; > Git Gutter Plus + `(git-gutter+-modified ((,class (:foreground ,nord13)))) + `(git-gutter+-added ((,class (:foreground ,nord14)))) + `(git-gutter+-deleted ((,class (:foreground ,nord11)))) + + ;; > Helm + `(helm-bookmark-addressbook ((,class (:foreground ,nord7)))) + `(helm-bookmark-directory ((,class (:foreground ,nord9)))) + `(helm-bookmark-file ((,class (:foreground ,nord8)))) + `(helm-bookmark-gnus ((,class (:foreground ,nord10)))) + `(helm-bookmark-info ((,class (:foreground ,nord14)))) + `(helm-bookmark-man ((,class (:foreground ,nord4)))) + `(helm-bookmark-w3m ((,class (:foreground ,nord9)))) + `(helm-buffer-directory ((,class (:foreground ,nord9)))) + `(helm-buffer-file ((,class (:foreground ,nord8)))) + `(helm-buffer-not-saved ((,class (:foreground ,nord13)))) + `(helm-buffer-process ((,class (:foreground ,nord10)))) + `(helm-candidate-number ((,class (:foreground ,nord4 :weight bold)))) + `(helm-candidate-number-suspended ((,class (:foreground ,nord4)))) + `(helm-ff-directory ((,class (:foreground ,nord9 :weight bold)))) + `(helm-ff-dirs ((,class (:foreground ,nord9)))) + `(helm-ff-dotted-director ((,class (:foreground ,nord9 :underline t)))) + `(helm-ff-dotted-symlink-director ((,class (:foreground ,nord7 :weight bold)))) + `(helm-ff-executable ((,class (:foreground ,nord8)))) + `(helm-ff-file ((,class (:foreground ,nord4)))) + `(helm-ff-invalid-symlink ((,class (:foreground ,nord11 :weight bold)))) + `(helm-ff-prefix ((,class (:foreground ,nord0 :background ,nord9)))) + `(helm-ff-symlink ((,class (:foreground ,nord7)))) + `(helm-grep-cmd-line ((,class (:foreground ,nord4 :background ,nord0)))) + `(helm-grep-file ((,class (:foreground ,nord8)))) + `(helm-grep-finish ((,class (:foreground ,nord5)))) + `(helm-grep-lineno ((,class (:foreground ,nord4)))) + `(helm-grep-match ((,class (:inherit isearch)))) + `(helm-grep-running ((,class (:foreground ,nord8)))) + `(helm-header ((,class (:foreground ,nord9 :background ,nord2)))) + `(helm-header-line-left-margin ((,class (:foreground ,nord9 :background ,nord2)))) + `(helm-history-deleted ((,class (:foreground ,nord11)))) + `(helm-history-remote ((,class (:foreground ,nord4)))) + `(helm-lisp-completion-info ((,class (:foreground ,nord4 :weight bold)))) + `(helm-lisp-show-completion ((,class (:inherit isearch)))) + `(helm-locate-finish ((,class (:foreground ,nord14)))) + `(helm-match ((,class (:foreground ,nord8)))) + `(helm-match-item ((,class (:inherit isearch)))) + `(helm-moccur-buffer ((,class (:foreground ,nord8)))) + `(helm-resume-need-update ((,class (:foreground ,nord0 :background ,nord13)))) + `(helm-selection ((,class (:inherit highlight)))) + `(helm-selection-line ((,class (:background ,nord2)))) + `(helm-source-header ((,class (:height 1.44 :foreground ,nord8 :background ,nord2)))) + `(helm-swoop-line-number-face ((,class (:foreground ,nord4 :background ,nord0)))) + `(helm-swoop-target-word-face ((,class (:foreground ,nord0 :background ,nord7)))) + `(helm-swoop-target-line-face ((,class (:background ,nord13 :foreground ,nord3)))) + `(helm-swoop-target-line-block-face ((,class (:background ,nord13 :foreground ,nord3)))) + `(helm-separator ((,class (:background ,nord2)))) + `(helm-visible-mark ((,class (:background ,nord2)))) + + ;; > Magit + `(magit-branch ((,class (:foreground ,nord7 :weight bold)))) + `(magit-diff-context-highlight ((,class (:background ,nord2)))) + `(magit-diff-file-header ((,class (:foreground ,nord8 :box (:color ,nord8))))) + `(magit-diffstat-added ((,class (:foreground ,nord14)))) + `(magit-diffstat-removed ((,class (:foreground ,nord11)))) + `(magit-hash ((,class (:foreground ,nord8)))) + `(magit-hunk-heading ((,class (:foreground ,nord9)))) + `(magit-hunk-heading-highlight ((,class (:foreground ,nord9 :background ,nord2)))) + `(magit-item-highlight ((,class (:foreground ,nord8 :background ,nord2)))) + `(magit-log-author ((,class (:foreground ,nord7)))) + `(magit-process-ng ((,class (:foreground ,nord13 :weight bold)))) + `(magit-process-ok ((,class (:foreground ,nord14 :weight bold)))) + `(magit-section-heading ((,class (:foreground ,nord7 :weight bold)))) + `(magit-section-highlight ((,class (:background ,nord2)))) + + ;; > MU4E + `(mu4e-header-marks-face ((,class (:foreground ,nord9)))) + `(mu4e-title-face ((,class (:foreground ,nord8)))) + `(mu4e-header-key-face ((,class (:foreground ,nord8)))) + `(mu4e-highlight-face ((,class (:highlight)))) + `(mu4e-flagged-face ((,class (:foreground ,nord13)))) + `(mu4e-unread-face ((,class (:foreground ,nord13 :weight bold)))) + `(mu4e-link-face ((,class (:underline t)))) + + ;; > Powerline + `(powerline-active1 ((,class (:foreground ,nord4 :background ,nord1)))) + `(powerline-active2 ((,class (:foreground ,nord4 :background ,nord3)))) + `(powerline-inactive1 ((,class (:background ,nord2)))) + `(powerline-inactive2 ((,class (:background ,nord2)))) + + ;; > Powerline Evil + `(powerline-evil-base-face ((,class (:foreground ,nord4)))) + `(powerline-evil-normal-face ((,class (:background ,nord8)))) + `(powerline-evil-insert-face ((,class (:foreground ,nord0 :background ,nord4)))) + `(powerline-evil-visual-face ((,class (:foreground ,nord0 :background ,nord7)))) + `(powerline-evil-replace-face ((,class (:foreground ,nord0 :background ,nord9)))) + + ;; > NeoTree + `(neo-banner-face ((,class (:foreground ,nord10)))) + `(neo-dir-link-face ((,class (:foreground ,nord9)))) + `(neo-expand-btn-face ((,class (:foreground ,nord6 :bold t)))) + `(neo-file-link-face ((,class (:foreground ,nord4)))) + `(neo-root-dir-face ((,class (:foreground ,nord7 :weight bold)))) + `(neo-vc-added-face ((,class (:foreground ,nord14)))) + `(neo-vc-conflict-face ((,class (:foreground ,nord11)))) + `(neo-vc-default-face ((,class (:foreground ,nord4)))) + `(neo-vc-edited-face ((,class (:foreground ,nord13)))) + `(neo-vc-ignored-face ((,class (:foreground ,nord3)))) + `(neo-vc-missing-face ((,class (:foreground ,nord12)))) + `(neo-vc-needs-merge-face ((,class (:background ,nord12 :foreground ,nord4)))) + `(neo-vc-needs-update-face ((,class (:background ,nord10 :foreground ,nord4)))) + `(neo-vc-removed-face ((,class (:foreground ,nord11 :strike-through nil)))) + `(neo-vc-up-to-date-face ((,class (:foreground ,nord4)))) + `(neo-vc-user-face ((,class (:foreground ,nord4)))) + + ;; > Cider + `(cider-result-overlay-face ((t (:background unspecified)))) + + ;; > Org + `(org-level-1 ((,class (:foreground ,nord7 :weight extra-bold)))) + `(org-level-2 ((,class (:foreground ,nord8 :weight bold)))) + `(org-level-3 ((,class (:foreground ,nord9 :weight semi-bold)))) + `(org-level-4 ((,class (:foreground ,nord10 :weight normal)))) + `(org-level-5 ((,class (:inherit org-level-4)))) + `(org-level-6 ((,class (:inherit org-level-4)))) + `(org-level-7 ((,class (:inherit org-level-4)))) + `(org-level-8 ((,class (:inherit org-level-4)))) + `(org-agenda-structure ((,class (:foreground ,nord9)))) + `(org-agenda-date ((,class (:foreground ,nord8 :underline nil)))) + `(org-agenda-done ((,class (:foreground ,nord14)))) + `(org-agenda-dimmed-todo-face ((,class (:background ,nord13)))) + `(org-block ((,class (:foreground ,nord4)))) + `(org-block-background ((,class (:background ,nord0)))) + `(org-block-begin-line ((,class (:foreground ,nord7)))) + `(org-block-end-line ((,class (:foreground ,nord7)))) + `(org-checkbox ((,class (:foreground ,nord9)))) + `(org-checkbox-statistics-done ((,class (:foreground ,nord14)))) + `(org-checkbox-statistics-todo ((,class (:foreground ,nord13)))) + `(org-code ((,class (:foreground ,nord7)))) + `(org-column ((,class (:background ,nord2)))) + `(org-column-title ((,class (:inherit org-column :weight bold :underline t)))) + `(org-date ((,class (:foreground ,nord8)))) + `(org-document-info ((,class (:foreground ,nord4)))) + `(org-document-info-keyword ((,class (:foreground ,nord3 :weight bold)))) + `(org-document-title ((,class (:foreground ,nord8 :weight bold)))) + `(org-done ((,class (:foreground ,nord14 :weight bold)))) + `(org-ellipsis ((,class (:foreground ,nord3)))) + `(org-footnote ((,class (:foreground ,nord8)))) + `(org-formula ((,class (:foreground ,nord9)))) + `(org-hide ((,class (:foreground ,nord0 :background ,nord0)))) + `(org-link ((,class (:underline t)))) + `(org-scheduled ((,class (:foreground ,nord14)))) + `(org-scheduled-previously ((,class (:foreground ,nord13)))) + `(org-scheduled-today ((,class (:foreground ,nord8)))) + `(org-special-keyword ((,class (:foreground ,nord9)))) + `(org-table ((,class (:foreground ,nord9)))) + `(org-todo ((,class (:foreground ,nord13 :weight bold)))) + `(org-upcoming-deadline ((,class (:foreground ,nord12)))) + `(org-warning ((,class (:foreground ,nord13 :weight bold)))) + `(font-latex-bold-face ((,class (:inherit bold)))) + `(font-latex-italic-face ((,class (:slant italic)))) + `(font-latex-string-face ((,class (:foreground ,nord14)))) + `(font-latex-match-reference-keywords ((,class (:foreground ,nord9)))) + `(font-latex-match-variable-keywords ((,class (:foreground ,nord4)))) + `(ido-only-match ((,class (:foreground ,nord8)))) + `(org-sexp-date ((,class (:foreground ,nord7)))) + `(ido-first-match ((,class (:foreground ,nord8 :weight bold)))) + `(ido-subdir ((,class (:foreground ,nord9)))) + `(org-quote ((,class (:inherit org-block :slant italic)))) + `(org-verse ((,class (:inherit org-block :slant italic)))) + `(org-agenda-date-weekend ((,class (:foreground ,nord9)))) + `(org-agenda-date-today ((,class (:foreground ,nord8 :weight bold)))) + `(org-agenda-done ((,class (:foreground ,nord14)))) + `(org-verbatim ((,class (:foreground ,nord7)))) + + ;; > ivy-mode + `(ivy-current-match ((,class (:inherit region)))) + `(ivy-minibuffer-match-face-1 ((,class (:inherit default)))) + `(ivy-minibuffer-match-face-2 ((,class (:background ,nord7 :foreground ,nord0)))) + `(ivy-minibuffer-match-face-3 ((,class (:background ,nord8 :foreground ,nord0)))) + `(ivy-minibuffer-match-face-4 ((,class (:background ,nord9 :foreground ,nord0)))) + `(ivy-remote ((,class (:foreground ,nord14)))) + `(ivy-posframe ((,class (:background ,nord1)))) + `(ivy-posframe-border ((,class (:background ,nord1)))) + `(ivy-remote ((,class (:foreground ,nord14)))) + + ;; > perspective + `(persp-selected-face ((,class (:foreground ,nord8 :weight bold)))))) + +;;;###autoload +(when (and (boundp 'custom-theme-load-path) load-file-name) + (add-to-list 'custom-theme-load-path + (file-name-as-directory (file-name-directory load-file-name)))) + +(provide-theme 'nord) + +;; Local Variables: +;; no-byte-compile: t +;; indent-tabs-mode: nil +;; End: + +;;; nord-theme.el ends here diff --git a/config/extra/emacs/themes/tlast-theme.el b/config/extra/emacs/themes/tlast-theme.el new file mode 100644 index 0000000..a6ed15f --- /dev/null +++ b/config/extra/emacs/themes/tlast-theme.el @@ -0,0 +1,306 @@ +;;; tlast-theme.el --- Theme + +;; Copyright (C) 2023 , tlast + +;; Author: tlast +;; Version: 0.1 +;; Package-Requires: ((emacs "24.1")) +;; Created with ThemeCreator, https://github.com/mswift42/themecreator. + +;; This program is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;; This file is not part of Emacs. + +;;; Commentary: +;;; tlast theme created by tlast in 2023 + +;;; Code: + +(deftheme tlast) +(let ((class '((class color) (min-colors 89))) + (fg1 "#62a0ea") + (fg2 "#5a93d7") + (fg3 "#5286c5") + (fg4 "#4a7ab2") + (fg6 "#88b7ef") + (bg1 "#3d3846") + (bg2 "#4d4855") + (bg3 "#5c5864") + (bg4 "#6c6872") + (builtin "#26a269") + (keyword "#3584e4") + (const "#ffffff") + (comment "#77767b") + (func "#99c1f1") + (str "#57e389") + (type "#f6d32d") + (var "#ff7800") + (selection "#dc8add") + (warning "#ff0000") + (warning2 "#ff8800") + (unspec (when (>= emacs-major-version 29) 'unspecified))) + (custom-theme-set-faces + 'tlast + `(default ((,class (:background ,bg1 :foreground ,fg1)))) + `(font-lock-builtin-face ((,class (:foreground ,builtin)))) + `(font-lock-comment-face ((,class (:foreground ,comment)))) + `(font-lock-negation-char-face ((,class (:foreground ,const)))) + `(font-lock-reference-face ((,class (:foreground ,const)))) + `(font-lock-constant-face ((,class (:foreground ,const)))) + `(font-lock-doc-face ((,class (:foreground ,comment)))) + `(font-lock-function-name-face ((,class (:foreground ,func )))) + `(font-lock-keyword-face ((,class (:bold ,class :foreground ,keyword)))) + `(font-lock-string-face ((,class (:foreground ,str)))) + `(font-lock-type-face ((,class (:foreground ,type )))) + `(font-lock-variable-name-face ((,class (:foreground ,var)))) + `(font-lock-warning-face ((,class (:foreground ,warning :background ,bg2)))) + `(term-color-black ((,class (:foreground ,fg2 :background ,unspec)))) + ;; `(region ((,class (:background ,fg1 :foreground ,bg1)))) + `(region ((,class (:background ,selection)))) + `(highlight ((,class (:foreground ,fg3 :background ,bg3)))) + `(hl-line ((,class (:background ,bg2)))) + `(fringe ((,class (:background ,bg2 :foreground ,fg4)))) + `(cursor ((,class (:background ,fg4)))) + `(isearch ((,class (:bold t :foreground ,warning :background ,bg3)))) + `(mode-line ((,class (:box (:line-width 1 :color nil) :bold t :foreground ,fg4 :background ,bg2)))) + `(mode-line-inactive ((,class (:box (:line-width 1 :color nil :style pressed-button) :foreground ,var :background ,bg1 :weight normal)))) + `(mode-line-buffer-id ((,class (:bold t :foreground ,func :background ,unspec)))) + `(mode-line-highlight ((,class (:foreground ,keyword :box nil :weight bold)))) + `(mode-line-emphasis ((,class (:foreground ,fg1)))) + `(vertical-border ((,class (:foreground ,fg3)))) + `(minibuffer-prompt ((,class (:bold t :foreground ,keyword)))) + `(default-italic ((,class (:italic t)))) + `(link ((,class (:foreground ,const :underline t)))) + `(org-code ((,class (:foreground ,fg2)))) + `(org-hide ((,class (:foreground ,fg4)))) + `(org-level-1 ((,class (:bold t :foreground ,fg2 :height 1.1)))) + `(org-level-2 ((,class (:bold nil :foreground ,fg3)))) + `(org-level-3 ((,class (:bold t :foreground ,fg4)))) + `(org-level-4 ((,class (:bold nil :foreground ,bg4)))) + `(org-date ((,class (:underline t :foreground ,var) ))) + `(org-footnote ((,class (:underline t :foreground ,fg4)))) + `(org-link ((,class (:underline t :foreground ,type )))) + `(org-special-keyword ((,class (:foreground ,func)))) + `(org-block ((,class (:foreground ,fg3)))) + `(org-quote ((,class (:inherit org-block :slant italic)))) + `(org-verse ((,class (:inherit org-block :slant italic)))) + `(org-todo ((,class (:box (:line-width 1 :color ,fg3) :foreground ,keyword :bold t)))) + `(org-done ((,class (:box (:line-width 1 :color ,bg3) :bold t :foreground ,bg4)))) + `(org-warning ((,class (:underline t :foreground ,warning)))) + `(org-agenda-structure ((,class (:weight bold :foreground ,fg3 :box (:color ,fg4) :background ,bg3)))) + `(org-agenda-date ((,class (:foreground ,var :height 1.1 )))) + `(org-agenda-date-weekend ((,class (:weight normal :foreground ,fg4)))) + `(org-agenda-date-today ((,class (:weight bold :foreground ,keyword :height 1.4)))) + `(org-agenda-done ((,class (:foreground ,bg4)))) + `(org-scheduled ((,class (:foreground ,type)))) + `(org-scheduled-today ((,class (:foreground ,func :weight bold :height 1.2)))) + `(org-ellipsis ((,class (:foreground ,builtin)))) + `(org-verbatim ((,class (:foreground ,fg4)))) + `(org-document-info-keyword ((,class (:foreground ,func)))) + `(font-latex-bold-face ((,class (:foreground ,type)))) + `(font-latex-italic-face ((,class (:foreground ,var :italic t)))) + `(font-latex-string-face ((,class (:foreground ,str)))) + `(font-latex-match-reference-keywords ((,class (:foreground ,const)))) + `(font-latex-match-variable-keywords ((,class (:foreground ,var)))) + `(ido-only-match ((,class (:foreground ,warning)))) + `(org-sexp-date ((,class (:foreground ,fg4)))) + `(ido-first-match ((,class (:foreground ,keyword :bold t)))) + `(ivy-current-match ((,class (:foreground ,fg3 :inherit highlight :underline t)))) + `(gnus-header-content ((,class (:foreground ,keyword)))) + `(gnus-header-from ((,class (:foreground ,var)))) + `(gnus-header-name ((,class (:foreground ,type)))) + `(gnus-header-subject ((,class (:foreground ,func :bold t)))) + `(mu4e-view-url-number-face ((,class (:foreground ,type)))) + `(mu4e-cited-1-face ((,class (:foreground ,fg2)))) + `(mu4e-cited-7-face ((,class (:foreground ,fg3)))) + `(mu4e-header-marks-face ((,class (:foreground ,type)))) + `(ffap ((,class (:foreground ,fg4)))) + `(js2-private-function-call ((,class (:foreground ,const)))) + `(js2-jsdoc-html-tag-delimiter ((,class (:foreground ,str)))) + `(js2-jsdoc-html-tag-name ((,class (:foreground ,var)))) + `(js2-external-variable ((,class (:foreground ,type )))) + `(js2-function-param ((,class (:foreground ,const)))) + `(js2-jsdoc-value ((,class (:foreground ,str)))) + `(js2-private-member ((,class (:foreground ,fg3)))) + `(js3-warning-face ((,class (:underline ,keyword)))) + `(js3-error-face ((,class (:underline ,warning)))) + `(js3-external-variable-face ((,class (:foreground ,var)))) + `(js3-function-param-face ((,class (:foreground ,fg2)))) + `(js3-jsdoc-tag-face ((,class (:foreground ,keyword)))) + `(js3-instance-member-face ((,class (:foreground ,const)))) + `(warning ((,class (:foreground ,warning)))) + `(ac-completion-face ((,class (:underline t :foreground ,keyword)))) + `(info-quoted-name ((,class (:foreground ,builtin)))) + `(info-string ((,class (:foreground ,str)))) + `(icompletep-determined ((,class :foreground ,builtin))) + `(undo-tree-visualizer-current-face ((,class :foreground ,builtin))) + `(undo-tree-visualizer-default-face ((,class :foreground ,fg2))) + `(undo-tree-visualizer-unmodified-face ((,class :foreground ,var))) + `(undo-tree-visualizer-register-face ((,class :foreground ,type))) + `(slime-repl-inputed-output-face ((,class (:foreground ,type)))) + `(trailing-whitespace ((,class :foreground ,unspec :background ,warning))) + `(rainbow-delimiters-depth-1-face ((,class :foreground ,fg1))) + `(rainbow-delimiters-depth-2-face ((,class :foreground ,type))) + `(rainbow-delimiters-depth-3-face ((,class :foreground ,var))) + `(rainbow-delimiters-depth-4-face ((,class :foreground ,const))) + `(rainbow-delimiters-depth-5-face ((,class :foreground ,keyword))) + `(rainbow-delimiters-depth-6-face ((,class :foreground ,fg1))) + `(rainbow-delimiters-depth-7-face ((,class :foreground ,type))) + `(rainbow-delimiters-depth-8-face ((,class :foreground ,var))) + `(magit-item-highlight ((,class :background ,bg3))) + `(magit-section-heading ((,class (:foreground ,keyword :weight bold)))) + `(magit-hunk-heading ((,class (:background ,bg3)))) + `(magit-section-highlight ((,class (:background ,bg2)))) + `(magit-hunk-heading-highlight ((,class (:background ,bg3)))) + `(magit-diff-context-highlight ((,class (:background ,bg3 :foreground ,fg3)))) + `(magit-diffstat-added ((,class (:foreground ,type)))) + `(magit-diffstat-removed ((,class (:foreground ,var)))) + `(magit-process-ok ((,class (:foreground ,func :weight bold)))) + `(magit-process-ng ((,class (:foreground ,warning :weight bold)))) + `(magit-branch ((,class (:foreground ,const :weight bold)))) + `(magit-log-author ((,class (:foreground ,fg3)))) + `(magit-hash ((,class (:foreground ,fg2)))) + `(magit-diff-file-header ((,class (:foreground ,fg2 :background ,bg3)))) + `(lazy-highlight ((,class (:foreground ,fg2 :background ,bg3)))) + `(term ((,class (:foreground ,fg1 :background ,bg1)))) + `(term-color-black ((,class (:foreground ,bg3 :background ,bg3)))) + `(term-color-blue ((,class (:foreground ,func :background ,func)))) + `(term-color-red ((,class (:foreground ,keyword :background ,bg3)))) + `(term-color-green ((,class (:foreground ,type :background ,bg3)))) + `(term-color-yellow ((,class (:foreground ,var :background ,var)))) + `(term-color-magenta ((,class (:foreground ,builtin :background ,builtin)))) + `(term-color-cyan ((,class (:foreground ,str :background ,str)))) + `(term-color-white ((,class (:foreground ,fg2 :background ,fg2)))) + `(rainbow-delimiters-unmatched-face ((,class :foreground ,warning))) + `(helm-header ((,class (:foreground ,fg2 :background ,bg1 :underline nil :box nil)))) + `(helm-source-header ((,class (:foreground ,keyword :background ,bg1 :underline nil :weight bold)))) + `(helm-selection ((,class (:background ,bg2 :underline nil)))) + `(helm-selection-line ((,class (:background ,bg2)))) + `(helm-visible-mark ((,class (:foreground ,bg1 :background ,bg3)))) + `(helm-candidate-number ((,class (:foreground ,bg1 :background ,fg1)))) + `(helm-separator ((,class (:foreground ,type :background ,bg1)))) + `(helm-time-zone-current ((,class (:foreground ,builtin :background ,bg1)))) + `(helm-time-zone-home ((,class (:foreground ,type :background ,bg1)))) + `(helm-buffer-not-saved ((,class (:foreground ,type :background ,bg1)))) + `(helm-buffer-process ((,class (:foreground ,builtin :background ,bg1)))) + `(helm-buffer-saved-out ((,class (:foreground ,fg1 :background ,bg1)))) + `(helm-buffer-size ((,class (:foreground ,fg1 :background ,bg1)))) + `(helm-ff-directory ((,class (:foreground ,func :background ,bg1 :weight bold)))) + `(helm-ff-file ((,class (:foreground ,fg1 :background ,bg1 :weight normal)))) + `(helm-ff-executable ((,class (:foreground ,var :background ,bg1 :weight normal)))) + `(helm-ff-invalid-symlink ((,class (:foreground ,warning2 :background ,bg1 :weight bold)))) + `(helm-ff-symlink ((,class (:foreground ,keyword :background ,bg1 :weight bold)))) + `(helm-ff-prefix ((,class (:foreground ,bg1 :background ,keyword :weight normal)))) + `(helm-grep-cmd-line ((,class (:foreground ,fg1 :background ,bg1)))) + `(helm-grep-file ((,class (:foreground ,fg1 :background ,bg1)))) + `(helm-grep-finish ((,class (:foreground ,fg2 :background ,bg1)))) + `(helm-grep-lineno ((,class (:foreground ,fg1 :background ,bg1)))) + `(helm-grep-match ((,class (:foreground ,unspec :background ,unspec :inherit helm-match)))) + `(helm-grep-running ((,class (:foreground ,func :background ,bg1)))) + `(helm-moccur-buffer ((,class (:foreground ,func :background ,bg1)))) + `(helm-source-go-package-godoc-description ((,class (:foreground ,str)))) + `(helm-bookmark-w3m ((,class (:foreground ,type)))) + `(company-echo-common ((,class (:foreground ,bg1 :background ,fg1)))) + `(company-preview ((,class (:background ,bg1 :foreground ,var)))) + `(company-preview-common ((,class (:foreground ,bg2 :foreground ,fg3)))) + `(company-preview-search ((,class (:foreground ,type :background ,bg1)))) + `(company-scrollbar-bg ((,class (:background ,bg3)))) + `(company-scrollbar-fg ((,class (:foreground ,keyword)))) + `(company-tooltip ((,class (:foreground ,fg2 :background ,bg2 :bold t)))) + `(company-tooltop-annotation ((,class (:foreground ,const)))) + `(company-tooltip-common ((,class ( :foreground ,fg3)))) + `(company-tooltip-common-selection ((,class (:foreground ,str)))) + `(company-tooltip-mouse ((,class (:inherit highlight)))) + `(company-tooltip-selection ((,class (:background ,bg3 :foreground ,fg3)))) + `(company-template-field ((,class (:inherit region)))) + `(web-mode-builtin-face ((,class (:inherit ,font-lock-builtin-face)))) + `(web-mode-comment-face ((,class (:inherit ,font-lock-comment-face)))) + `(web-mode-constant-face ((,class (:inherit ,font-lock-constant-face)))) + `(web-mode-keyword-face ((,class (:foreground ,keyword)))) + `(web-mode-doctype-face ((,class (:inherit ,font-lock-comment-face)))) + `(web-mode-function-name-face ((,class (:inherit ,font-lock-function-name-face)))) + `(web-mode-string-face ((,class (:foreground ,str)))) + `(web-mode-type-face ((,class (:inherit ,font-lock-type-face)))) + `(web-mode-html-attr-name-face ((,class (:foreground ,func)))) + `(web-mode-html-attr-value-face ((,class (:foreground ,keyword)))) + `(web-mode-warning-face ((,class (:inherit ,font-lock-warning-face)))) + `(web-mode-html-tag-face ((,class (:foreground ,builtin)))) + `(jde-java-font-lock-package-face ((t (:foreground ,var)))) + `(jde-java-font-lock-public-face ((t (:foreground ,keyword)))) + `(jde-java-font-lock-private-face ((t (:foreground ,keyword)))) + `(jde-java-font-lock-constant-face ((t (:foreground ,const)))) + `(jde-java-font-lock-modifier-face ((t (:foreground ,fg2)))) + `(jde-jave-font-lock-protected-face ((t (:foreground ,keyword)))) + `(jde-java-font-lock-number-face ((t (:foreground ,var)))) + `(yas-field-highlight-face ((t (:background ,selection))))) + ;; Legacy + (if (< emacs-major-version 22) + (custom-theme-set-faces + 'tlast + `(show-paren-match-face ((,class (:background ,warning))))) ;; obsoleted in 22.1, removed 2016 + (custom-theme-set-faces + 'tlast + `(show-paren-match ((,class (:foreground ,bg1 :background ,str)))) + `(show-paren-mismatch ((,class (:foreground ,bg1 :background ,warning)))))) + ;; emacs >= 26.1 + (when (>= emacs-major-version 26) + (custom-theme-set-faces + 'tlast + `(line-number ((t (:inherit fringe)))) + `(line-number-current-line ((t (:inherit fringe :foreground ,fg6 :weight bold)))))) + + ;; emacs >= 27.1 + (when (>= emacs-major-version 27) + (custom-theme-set-faces + 'tlast + `(tab-line ((,class (:background ,bg2 :foreground ,fg4)))) + `(tab-line-tab ((,class (:inherit tab-line)))) + `(tab-line-tab-inactive ((,class (:background ,bg2 :foreground ,fg4)))) + `(tab-line-tab-current ((,class (:background ,bg1 :foreground ,fg1)))) + `(tab-line-highlight ((,class (:background ,bg1 :foreground ,fg2)))))) + (when (>= emacs-major-version 28) + (custom-theme-set-faces + 'tlast + `(line-number ((t (:inherit fringe)))) + `(line-number-current-line ((t (:inherit fringe :foreground ,fg6 :weight bold)))))) +;; emacs >= 27.1 +(when (>= emacs-major-version 27) + (custom-theme-set-faces + 'tlast + `(tab-line ((,class (:background ,bg2 :foreground ,fg4)))) + `(tab-line-tab ((,class (:inherit tab-line)))) + `(tab-line-tab-inactive ((,class (:background ,bg2 :foreground ,fg4)))) + `(tab-line-tab-current ((,class (:background ,bg1 :foreground ,fg1)))) + `(tab-line-highlight ((,class (:background ,bg1 :foreground ,fg2)))))) + (when (>= emacs-major-version 28) + (custom-theme-set-faces + 'tlast + `(tab-line-tab-modified ((,class (:foreground ,warning2 :weight bold)))))) + (when (boundp 'font-lock-regexp-face) + (custom-theme-set-faces + 'tlast + `(font-lock-regexp-face ((,class (:inherit font-lock-string-face :underline t))))))) + +;;;###autoload +(when load-file-name + (add-to-list 'custom-theme-load-path + (file-name-as-directory (file-name-directory load-file-name)))) + +(provide-theme 'tlast) + +;; Local Variables: +;; no-byte-compile: t +;; End: + +;;; tlast-theme.el ends here -- cgit v1.2.3 From 0646a214a6f7627ff8df4a847c74c548da8755f9 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Sun, 5 Nov 2023 02:24:49 +0100 Subject: updated gitignore --- .gitignore | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitignore b/.gitignore index 11392b4..adf0262 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,8 @@ config/hyprland/waybar/colors.css config/old/vim/plugged/ config/old/vim/viminfo* config/theme/gtk-3.0/bookmarks +config/extra/emacs/auto-save-list/ +config/extra/emacs/config.el +config/extra/emacs/elpaca/ +config/extra/emacs/projectile-bookmarks.eld +config/extra/emacs/recentf -- cgit v1.2.3 From c9d1aa51bc0aa81cf4aa11808884c2625601367d Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Sun, 5 Nov 2023 19:53:58 +0100 Subject: updated emacs config --- config/extra/emacs/config.org | 689 ++++++++++++++++++++++++++++-------------- config/extra/emacs/init.el | 11 +- 2 files changed, 479 insertions(+), 221 deletions(-) diff --git a/config/extra/emacs/config.org b/config/extra/emacs/config.org index 60c0812..50d6af6 100644 --- a/config/extra/emacs/config.org +++ b/config/extra/emacs/config.org @@ -4,38 +4,48 @@ #+OPTIONS: toc:3 * TABLE OF CONTENTS :toc: -- [[#startup-configuration][Startup Configuration]] +- [[#startup][Startup]] - [[#elpaca-package-manager][Elpaca (Package Manager)]] - [[#evil-mode][Evil Mode]] - [[#keybindings][Keybindings]] - [[#helper-functions][Helper functions]] - [[#buffer-move][buffer-move]] - [[#reload-emacs][Reload Emacs]] -- [[#graphical-configuration][Graphical configuration]] - - [[#disable-menubar-toolbars-and-scrollbars][Disable Menubar, Toolbars and Scrollbars]] +- [[#graphical-tweaks][Graphical tweaks]] + - [[#disable-ui-elements][Disable UI elements]] - [[#display-line-numbers-and-truncated-lines][Display Line Numbers and Truncated Lines]] + - [[#blinking-cursor][blinking cursor]] - [[#fonts][Fonts]] - [[#setting-the-font-face][Setting the Font Face]] - [[#theme][Theme]] + - [[#transparency][Transparency]] + - [[#highlight-todo][Highlight TODO]] +- [[#misc-options][Misc. options]] - [[#org-mode][ORG Mode]] - [[#enabling-table-of-contents][Enabling Table of Contents]] - [[#enabling-org-bullets][Enabling Org Bullets]] - - [[#source-code-block-tag-expansion][Source Code Block Tag Expansion]] +- [[#big-ass-header][Big ass header]] - [[#shell][Shell]] - [[#default-shell][Default shell]] - [[#eshell][Eshell]] +- [[#language-support][Language Support]] - [[#packages][Packages]] + - [[#dashboard][Dashboard]] + - [[#diminish][Diminish]] + - [[#dired][Dired]] + - [[#git][Git]] + - [[#ivy-counsel][Ivy (Counsel)]] + - [[#language-support-1][Language Support]] + - [[#modeline][Modeline]] + - [[#perspective][Perspective]] + - [[#projectile][Projectile]] + - [[#rainbow-mode][Rainbow Mode]] + - [[#rainbow-delimiters][Rainbow Delimiters]] - [[#sudo-edit][Sudo edit]] + - [[#tldr][TLDR]] - [[#which-key][Which-Key]] - - [[#all-the-icons][All The Icons]] - - [[#rainbow-mode][Rainbow Mode]] - - [[#ivy-counsel][IVY (Counsel)]] - - [[#projectile][Projectile]] - - [[#dashboard][Dashboard]] - - [[#flycheck][Flycheck]] - - [[#company][COMPANY]] -* Startup Configuration +* Startup ** Elpaca (Package Manager) #+begin_src emacs-lisp (defvar elpaca-installer-version 0.6) @@ -104,8 +114,8 @@ ** Evil Mode #+begin_src emacs-lisp -;; Expands to: (elpaca evil (use-package evil :demand t)) -(use-package evil + ;; Expands to: (elpaca evil (use-package evil :demand t)) + (use-package evil :init ;; tweak evil's configuration before loading it (setq evil-want-integration t) ;; This is optional since it's already set to t by default. (setq evil-want-keybinding nil) @@ -118,101 +128,221 @@ (setq evil-collection-mode-list '(dashboard dired ibuffer)) (evil-collection-init)) (use-package evil-tutor) + ;; Using RETURN to follow links in Org/Evil + ;; Unmap keys in 'evil-maps if not done, (setq org-return-follows-link t) will not work + (with-eval-after-load 'evil-maps + (define-key evil-motion-state-map (kbd "SPC") nil) + (define-key evil-motion-state-map (kbd "RET") nil) + (define-key evil-motion-state-map (kbd "TAB") nil)) + ;; Setting RETURN key in org-mode to follow links + (setq org-return-follows-link t) + #+end_src ** Keybindings #+begin_src emacs-lisp -(use-package general - :config - (general-evil-setup) - - ;; set up 'SPC' as the global leader key - (general-create-definer user/leader-keys - :states '(normal insert visual emacs) - :keymaps 'override - :prefix "SPC" ;; set leader - :global-prefix "M-SPC") ;; access leader in insert mode - - (user/leader-keys - "SPC" '(counsel-M-x :wk "Counsel M-x") - "." '(find-file :wk "Find file") - "f c" '((lambda () (interactive) (find-file "~/.config/emacs/config.org")) :wk "Edit emacs config") - "f r" '(counsel-recentf :wk "Find recent files") - "f w" '(evil-write :wk "Write current buffer") - "f q" '(evil-quit :wk "Write current buffer") - "TAB TAB" '(comment-line :wk "Comment lines")) - - (user/leader-keys - "b" '(:ignore t :wk "buffer") - "b b" '(switch-to-buffer :wk "Switch buffer") - "b i" '(ibuffer :wk "Ibuffer") - "b k" '(kill-this-buffer :wk "Kill this buffer") - "b n" '(next-buffer :wk "Next buffer") - "b p" '(previous-buffer :wk "Previous buffer") - "b r" '(revert-buffer :wk "Reload buffer")) - - (user/leader-keys - "e" '(:ignore t :wk "Eshell/Evaluate") - "e b" '(eval-buffer :wk "Evaluate elisp in buffer") - "e d" '(eval-defun :wk "Evaluate defun containing or after point") - "e e" '(eval-expression :wk "Evaluate and elisp expression") - "e h" '(counsel-esh-history :which-key "Eshell history") - "e l" '(eval-last-sexp :wk "Evaluate elisp expression before point") - "e r" '(eval-region :wk "Evaluate elisp in region") - "e s" '(eshell :which-key "Eshell")) - - (user/leader-keys - "h" '(:ignore t :wk "Help") - "h f" '(describe-function :wk "Describe function") - "h v" '(describe-variable :wk "Describe variable") - ;;"h r r" '((lambda () (interactive) (load-file "~/.config/emacs/init.el")) :wk "Reload emacs config")) - "h r r" '(reload-init-file :wk "Reload emacs config")) - - (user/leader-keys - "t" '(:ignore t :wk "Toggle") - "t l" '(display-line-numbers-mode :wk "Toggle line numbers") - "t t" '(visual-line-mode :wk "Toggle truncated lines") - "t v" '(shell :wk "open shell")) - - (user/leader-keys - "w" '(:ignore t :wk "Windows") - ;; Window splits - "w c" '(evil-window-delete :wk "Close window") - "w n" '(evil-window-new :wk "New window") - "w s" '(evil-window-split :wk "Horizontal split window") - "w v" '(evil-window-vsplit :wk "Vertical split window") - ;; Window motions - "w h" '(evil-window-left :wk "Window left") - "w j" '(evil-window-down :wk "Window down") - "w k" '(evil-window-up :wk "Window up") - "w l" '(evil-window-right :wk "Window right") - "w w" '(evil-window-next :wk "Goto next window") - ;; Move Windows - "w H" '(buf-move-left :wk "Buffer move left") - "w J" '(buf-move-down :wk "Buffer move down") - "w K" '(buf-move-up :wk "Buffer move up") - "w L" '(buf-move-right :wk "Buffer move right")) - -;; org mode - (user/leader-keys - "m" '(:ignore t :wk "Org") - "m a" '(org-agenda :wk "Org agenda") - "m e" '(org-export-dispatch :wk "Org export dispatch") - "m i" '(org-toggle-item :wk "Org toggle item") - "m t" '(org-todo :wk "Org todo") - "m B" '(org-babel-tangle :wk "Org babel tangle") - "m T" '(org-todo-list :wk "Org todo list")) - (user/leader-keys - "m b" '(:ignore t :wk "Tables") - "m b -" '(org-table-insert-hline :wk "Insert hline in table")) - (user/leader-keys - "m d" '(:ignore t :wk "Date/deadline") - "m d t" '(org-time-stamp :wk "Org time stamp")) - (user/leader-keys - "p" '(projectile-command-map :wk "Projectile")) + (use-package general + :config + (general-evil-setup) + ;; set up 'SPC' as the global leader key + (general-create-definer user/leader-keys + :states '(normal insert visual emacs) + :keymaps 'override + :prefix "SPC" ;; set leader + :global-prefix "M-SPC") ;; access leader in insert mode -) + (user/leader-keys + "SPC" '(counsel-M-x :wk "Counsel M-x") + "." '(find-file :wk "Find file") + "=" '(perspective-map :wk "Perspective") ;; Lists all the perspective keybindings + "TAB TAB" '(comment-line :wk "Comment lines") + "u" '(universal-argument :wk "Univeral argument") + "s" '(universal-argument :wk "say I want to type somet") + "q" '(evil-quit :wk "quit emacs")) + + (user/leader-keys + "b" '(:ignore t :wk "Bookmarks/Buffers") + "b c" '(clone-indirect-buffer :wk "Create indirect buffer copy in a split") + "b C" '(clone-indirect-buffer-other-window :wk "Clone indirect buffer in new window") + "b d" '(bookmark-delete :wk "Delete bookmark") + "b i" '(ibuffer :wk "Ibuffer") + "b k" '(kill-this-buffer :wk "Kill this buffer") + "b K" '(kill-some-buffers :wk "Kill multiple buffers") + "b l" '(list-bookmarks :wk "List bookmarks") + "b m" '(bookmark-set :wk "Set bookmark") + "b n" '(next-buffer :wk "Next buffer") + "b p" '(previous-buffer :wk "Previous buffer") + "b r" '(revert-buffer :wk "Reload buffer") + "b R" '(rename-buffer :wk "Rename buffer") + "b s" '(basic-save-buffer :wk "Save buffer") + "b S" '(save-some-buffers :wk "Save multiple buffers") + "b w" '(bookmark-save :wk "Save current bookmarks to bookmark file")) + + (user/leader-keys + "d" '(:ignore t :wk "Dired") + "d d" '(dired :wk "Open dired") + "d j" '(dired-jump :wk "Dired jump to current") + "d p" '(peep-dired :wk "Peep-dired")) + + (user/leader-keys + "e" '(:ignore t :wk "Eshell/Evaluate/EWW") + "e b" '(eval-buffer :wk "Evaluate elisp in buffer") + "e d" '(eval-defun :wk "Evaluate defun containing or after point") + "e e" '(eval-expression :wk "Evaluate and elisp expression") + "e h" '(counsel-esh-history :which-key "Eshell history") + "e l" '(eval-last-sexp :wk "Evaluate elisp expression before point") + "e r" '(eval-region :wk "Evaluate elisp in region") + "e R" '(eww-reload :which-key "Reload current page in EWW") + "e s" '(eshell :which-key "Eshell") + "e w" '(eww :which-key "EWW emacs web wowser")) + + (user/leader-keys + "f" '(:ignore t :wk "Files") + "f c" '((lambda () (interactive) + (find-file (expand-file-name "config.org" user-emacs-directory))) + :wk "Open emacs config") + "f d" '(find-grep-dired :wk "Search for string in files in DIR") + "f e" '((lambda () (interactive) + (dired user-emacs-directory)) + :wk "Open user-emacs-directory in dired") + "f i" '((lambda () (interactive) + (find-file (expand-file-name "init.el" user-emacs-directory))) + :wk "Open emacs init.el") + "f g" '(counsel-grep-or-swiper :wk "Search for string current file") + "f j" '(counsel-file-jump :wk "Jump to a file below current directory") + "f l" '(counsel-locate :wk "Locate a file") + "f r" '(counsel-recentf :wk "Find recent files") + "f w" '(evil-write :wk "Write current buffer")) + + (user/leader-keys + "g" '(:ignore t :wk "Git") + "g /" '(magit-displatch :wk "Magit dispatch") + "g ." '(magit-file-displatch :wk "Magit file dispatch") + "g b" '(magit-branch-checkout :wk "Switch branch") + "g c" '(:ignore t :wk "Create") + "g c b" '(magit-branch-and-checkout :wk "Create branch and checkout") + "g c c" '(magit-commit-create :wk "Create commit") + "g c f" '(magit-commit-fixup :wk "Create fixup commit") + "g C" '(magit-clone :wk "Clone repo") + "g f" '(:ignore t :wk "Find") + "g f c" '(magit-show-commit :wk "Show commit") + "g f f" '(magit-find-file :wk "Magit find file") + "g f g" '(magit-find-git-config-file :wk "Find gitconfig file") + "g F" '(magit-fetch :wk "Git fetch") + "g g" '(magit-status :wk "Magit status") + "g i" '(magit-init :wk "Initialize git repo") + "g l" '(magit-log-buffer-file :wk "Magit buffer log") + "g r" '(vc-revert :wk "Git revert file") + "g s" '(magit-stage-file :wk "Git stage file") + "g t" '(git-timemachine :wk "Git time machine") + "g u" '(magit-stage-file :wk "Git unstage file")) + + (user/leader-keys + "h" '(:ignore t :wk "Help") + "h a" '(counsel-apropos :wk "Apropos") + "h b" '(describe-bindings :wk "Describe bindings") + "h c" '(describe-char :wk "Describe character under cursor") + "h d" '(:ignore t :wk "Emacs documentation") + "h d a" '(about-emacs :wk "About Emacs") + "h d d" '(view-emacs-debugging :wk "View Emacs debugging") + "h d f" '(view-emacs-FAQ :wk "View Emacs FAQ") + "h d m" '(info-emacs-manual :wk "The Emacs manual") + "h d n" '(view-emacs-news :wk "View Emacs news") + "h d o" '(describe-distribution :wk "How to obtain Emacs") + "h d p" '(view-emacs-problems :wk "View Emacs problems") + "h d t" '(view-emacs-todo :wk "View Emacs todo") + "h d w" '(describe-no-warranty :wk "Describe no warranty") + "h e" '(view-echo-area-messages :wk "View echo area messages") + "h f" '(describe-function :wk "Describe function") + "h F" '(describe-face :wk "Describe face") + "h g" '(describe-gnu-project :wk "Describe GNU Project") + "h i" '(info :wk "Info") + "h I" '(describe-input-method :wk "Describe input method") + "h k" '(describe-key :wk "Describe key") + "h l" '(view-lossage :wk "Display recent keystrokes and the commands run") + "h L" '(describe-language-environment :wk "Describe language environment") + "h m" '(describe-mode :wk "Describe mode") + "h r" '(:ignore t :wk "Reload") + "h r r" '((lambda () (interactive) + (load-file (expand-file-name "init.el" user-emacs-directory)) + (ignore (elpaca-process-queues))) + :wk "Reload emacs config") + "h t" '(load-theme :wk "Load theme") + "h v" '(describe-variable :wk "Describe variable") + "h w" '(where-is :wk "Prints keybinding for command if set") + "h x" '(describe-command :wk "Display full documentation for command")) + + (user/leader-keys + "l" '(:ignore t :wk "load") + "l t" '(load-theme :wk "load theme")) + + ;; org mode + (user/leader-keys + "m" '(:ignore t :wk "Org") + "m a" '(org-agenda :wk "Org agenda") + "m e" '(org-export-dispatch :wk "Org export dispatch") + "m i" '(org-toggle-item :wk "Org toggle item") + "m t" '(org-todo :wk "Org todo") + "m B" '(org-babel-tangle :wk "Org babel tangle") + "m T" '(org-todo-list :wk "Org todo list")) + (user/leader-keys + "m b" '(:ignore t :wk "Tables") + "m b -" '(org-table-insert-hline :wk "Insert hline in table")) + (user/leader-keys + "m d" '(:ignore t :wk "Date/deadline") + "m d t" '(org-time-stamp :wk "Org time stamp")) + + (user/leader-keys + "o" '(:ignore t :wk "Open") + "o d" '(dashboard-open :wk "Dashboard") + ;; "o e" '(elfeed :wk "Elfeed RSS") + "o f" '(make-frame :wk "Open buffer in new frame") + "o F" '(select-frame-by-name :wk "Select frame by name") + "o s" '(shell :wk "open shell")) + + (user/leader-keys + "p" '(projectile-command-map :wk "Projectile")) + + ;; FIXME: fix the error here + ;; (user/leader-keys + ;; "s" '(:ignore t :wk "Search") + ;; "s d" '(dictionary-search :wk "Search dictionary") + ;; "s m" '(man :wk "Man pages") + ;; "s t" '(tldr :wk "Lookup TLDR docs for a command") + ;; "s w" '(woman :wk "Similar to man but doesn't require man") + ;; ) + + (user/leader-keys + "t" '(:ignore t :wk "Toggle") + "t l" '(display-line-numbers-mode :wk "Toggle line numbers") + "t t" '(visual-line-mode :wk "Toggle truncated lines") + "t" '(:ignore t :wk "Toggle") + "t e" '(eshell-toggle :wk "Toggle eshell") + ;; "t f" '(flycheck-mode :wk "Toggle flycheck") + "t o" '(org-mode :wk "Toggle org mode") + "t r" '(rainbow-mode :wk "Toggle rainbow mode") + "t t" '(visual-line-mode :wk "Toggle truncated lines")) + + (user/leader-keys + "w" '(:ignore t :wk "Windows") + ;; Window splits + "w c" '(evil-window-delete :wk "Close window") + "w n" '(evil-window-new :wk "New window") + "w s" '(evil-window-split :wk "Horizontal split window") + "w v" '(evil-window-vsplit :wk "Vertical split window") + ;; Window motions + "w h" '(evil-window-left :wk "Window left") + "w j" '(evil-window-down :wk "Window down") + "w k" '(evil-window-up :wk "Window up") + "w l" '(evil-window-right :wk "Window right") + "w w" '(evil-window-next :wk "Goto next window") + ;; Move Windows + "w H" '(buf-move-left :wk "Buffer move left") + "w J" '(buf-move-down :wk "Buffer move down") + "w K" '(buf-move-up :wk "Buffer move up") + "w L" '(buf-move-right :wk "Buffer move right")) + ) #+end_src @@ -312,8 +442,8 @@ This is just an example of how to create a simple function in Emacs. Use this f #+end_src -* Graphical configuration -** Disable Menubar, Toolbars and Scrollbars +* Graphical tweaks +** Disable UI elements #+begin_src emacs-lisp (menu-bar-mode -1) (tool-bar-mode -1) @@ -325,6 +455,10 @@ This is just an example of how to create a simple function in Emacs. Use this f (global-display-line-numbers-mode 1) (global-visual-line-mode t) #+end_src +** blinking cursor +#+begin_src emacs-lisp + (setq blink-cursor-mode nil) +#+end_src ** Fonts Defining the various fonts that Emacs will use. @@ -364,36 +498,72 @@ Defining the various fonts that Emacs will use. ** Theme How to make thet theme work even in daemon mode: (https://stackoverflow.com/questions/18904529/after-emacs-deamon-i-can-not-see-new-theme-in-emacsclient-frame-it-works-fr) +#+begin_src emacs-lisp :noeval + (add-to-list 'custom-theme-load-path (expand-file-name "themes/" user-emacs-directory)) + (use-package doom-themes + :config + (setq doom-themes-enable-bold t + doom-themes-enable-italic t) + (load-theme 'doom-nord t) + (doom-themes-org-config)) +#+end_src + +** Transparency + #+begin_src emacs-lisp - (add-to-list 'custom-theme-load-path "~/.config/emacs/themes/") - (defvar my:theme 'nord) -(defvar my:theme-window-loaded nil) -(defvar my:theme-terminal-loaded nil) + (add-to-list 'default-frame-alist '(alpha-background . 96)) +#+end_src -(if (daemonp) - (add-hook 'after-make-frame-functions(lambda (frame) - (select-frame frame) - (if (window-system frame) - (unless my:theme-window-loaded - (if my:theme-terminal-loaded - (enable-theme my:theme) - (load-theme my:theme t)) - (setq my:theme-window-loaded t)) - (unless my:theme-terminal-loaded - (if my:theme-window-loaded - (enable-theme my:theme) - (load-theme my:theme t)) - (setq my:theme-terminal-loaded t))))) +** Highlight TODO +Adding highlights to TODO and related words. - (progn - (load-theme my:theme t) - (if (display-graphic-p) - (setq my:theme-window-loaded t) - (setq my:theme-terminal-loaded t)))) +#+begin_src emacs-lisp +(use-package hl-todo + :hook ((org-mode . hl-todo-mode) + (prog-mode . hl-todo-mode)) + :config + (setq hl-todo-highlight-punctuation ":" + hl-todo-keyword-faces + `(("TODO" warning bold) + ("FIXME" error bold) + ("HACK" font-lock-constant-face bold) + ("REVIEW" font-lock-keyword-face bold) + ("NOTE" success bold) + ("DEPRECATED" font-lock-doc-face bold)))) #+end_src +* Misc. options + +#+begin_src emacs-lisp + + ;; move backup files to trash instead of same directory + (setq backup-directory-alist '((".*" . "~/.local/share/Trash/files"))) + + ;; escape minibuffer with one [escape] + (global-set-key [escape] 'keyboard-escape-quit) + + + ;; Automatically show changes if the file has changed + (global-auto-revert-mode t) + + ;; You can select text and delete it by typing. + (delete-selection-mode 1) + + ;; Turns on automatic parens pairing + (electric-pair-mode 1) + ;; The following prevents <> from auto-pairing when electric-pair-mode is on. + ;; Otherwise, org-tempo is broken when you try to to complete or to complete the common part. +** Sudo edit +[[https://github.com/nflath/sudo-edit][sudo-edit]] gives us the ability to open files with sudo privileges or switch over to editing with sudo privileges if we initially opened the file without such privileges. #+begin_src emacs-lisp - (use-package company - :defer 2 - :diminish - :custom - (company-begin-commands '(self-insert-command)) - (company-idle-delay .1) - (company-minimum-prefix-length 2) - (company-show-numbers t) - (company-tooltip-align-annotations 't) - (global-company-mode t)) - - (use-package company-box - :after company - :diminish - :hook (company-mode . company-box-mode)) +(use-package sudo-edit + :config + (user/leader-keys + "fu" '(sudo-edit-find-file :wk "Sudo find file") + "fU" '(sudo-edit :wk "Sudo edit file"))) +#+end_src + +** TLDR + +#+begin_src emacs-lisp +(use-package tldr) + +#+end_src + +** Which-Key +#+begin_src emacs-lisp + (use-package which-key + :init + (which-key-mode 1) + :config + (setq which-key-side-window-location 'bottom + which-key-sort-order #'which-key-key-order-alpha + which-key-sort-uppercase-first nil + which-key-add-column-padding 1 + which-key-max-display-columns nil + which-key-min-display-lines 6 + which-key-side-window-slot -10 + which-key-side-window-max-height 0.25 + which-key-idle-delay 0.8 + which-key-max-description-length 25 + which-key-allow-imprecise-window-fit nil + which-key-separator " → " )) #+end_src diff --git a/config/extra/emacs/init.el b/config/extra/emacs/init.el index 19a2beb..537edcf 100644 --- a/config/extra/emacs/init.el +++ b/config/extra/emacs/init.el @@ -8,10 +8,17 @@ ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(custom-safe-themes - '("4c7228157ba3a48c288ad8ef83c490b94cb29ef01236205e360c2c4db200bb18" default))) + '("88f7ee5594021c60a4a6a1c275614103de8c1435d6d08cc58882f920e0cec65e" "4c7228157ba3a48c288ad8ef83c490b94cb29ef01236205e360c2c4db200bb18" default)) + '(package-selected-packages '(doom-modeline))) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. - ) + '(org-level-1 ((t (:inherit outline-1 :height 1.25)))) + '(org-level-2 ((t (:inherit outline-2 :height 1.15)))) + '(org-level-3 ((t (:inherit outline-3 :height 1.1)))) + '(org-level-4 ((t (:inherit outline-4 :height 1.0)))) + '(org-level-5 ((t (:inherit outline-5 :height 1.0)))) + '(org-level-6 ((t (:inherit outline-5 :height 1.0)))) + '(org-level-7 ((t (:inherit outline-5 :height 1.0))))) -- cgit v1.2.3 From 694813e05187b5ccf144425c4bad6f5ab4f92234 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Mon, 6 Nov 2023 08:21:05 +0100 Subject: ERASE THIS --- config/X/x11/xinitrc | 1 + config/common/mpv/input.conf | 3 +++ config/essentials/zsh/aliases.sh | 3 ++- config/wayland/dwl/startup.sh | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/config/X/x11/xinitrc b/config/X/x11/xinitrc index 4eb34ed..beb33f2 100755 --- a/config/X/x11/xinitrc +++ b/config/X/x11/xinitrc @@ -27,6 +27,7 @@ xmodmap -e "keycode 135 = Super_L" xautolock -time 5 -locker slock & gammastep -m randr & slstatus & +emacs --daemon & eval "$(keychain --dir "$XDG_CONFIG_HOME/keychain" --eval --quiet --agents gpg,ssh)" unclutter --timeout 3 --jitter 50 -b exec startdwm diff --git a/config/common/mpv/input.conf b/config/common/mpv/input.conf index 295dd4d..dd2674f 100644 --- a/config/common/mpv/input.conf +++ b/config/common/mpv/input.conf @@ -204,3 +204,6 @@ Alt+c cycle sub-visibility # Toggle subtitles v cycle audio # switch audio track V cycle audio # switch audio track ctrl+l cycle-values loop-file "inf" "no" # toggle infinite looping + +# Keep open after exit +P cycle keep-open up diff --git a/config/essentials/zsh/aliases.sh b/config/essentials/zsh/aliases.sh index 0da835a..10e6c23 100644 --- a/config/essentials/zsh/aliases.sh +++ b/config/essentials/zsh/aliases.sh @@ -265,6 +265,7 @@ alias czo='cd ~/zot/' alias cdpw='cd ${PASSWORD_STORE_DIR:-~/.password-store}' alias cdng='cd /etc/nginx' alias cdrs='cd /srv/' +alias cdv='cd ~/vids' alias god='cd "$(find . -mindepth 1 -maxdepth 1 -type d | fzf)"' # fzf aliases @@ -272,7 +273,6 @@ alias ppj='cd ~/proj/personal/"$(find ~/proj/personal -mindepth 1 -maxdepth 1 -t alias ppjs='cd ~/proj/personal/scripts/"$(find ~/proj/personal/scripts -mindepth 1 -maxdepth 1 -type d -printf "%f\n" | fzf)"' alias scr='edit_in_dir ~/proj/personal/scripts/' alias fil='edit_in_dir ~/docs/filios/' -alias cfg='edit_in_dir ~/src/dotfiles' alias fzps='ps aux | tail +2 | fzf | tee /dev/stderr | awk '\''{print $2}'\'' | clipp' alias asf='alias | fzf' alias fzh="tac $HISTFILE | fzf | tee /dev/stderr | clipp" @@ -300,6 +300,7 @@ alias dbsmu='rsync -aPz db:/media/basilisk/music/ /media/kilimanjaro/music' # oh-my-zsh git aliases alias config='GIT_WORK_TREE=~/src/dotfiles/ GIT_DIR=~/src/dotfiles/.git' +alias cfg='$EDITOR ~/src/dotfiles/"$(config git ls-files | fzf || exit)"' alias gmod='git status --short | sed '\''/^\s*M/!d;s/^\s*M\s*//'\'' | fzf | xargs $EDITOR' alias g='git' alias ga='git add' diff --git a/config/wayland/dwl/startup.sh b/config/wayland/dwl/startup.sh index d743f19..8817ad2 100755 --- a/config/wayland/dwl/startup.sh +++ b/config/wayland/dwl/startup.sh @@ -10,6 +10,7 @@ swaybg -i ~/pics/wallpaper & wl-paste --watch cliphist store & swayidle 300 locker & keyadd id_rsa & +emacs --daemon & pkill -f "tail -f $HOME/.config/wob/pipe" WOBCONFIG="$HOME"/.config/wob -- cgit v1.2.3 From af9608a3a98f0ab4217da80b8d478810505801bc Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Mon, 6 Nov 2023 09:29:16 +0100 Subject: specify bash --- bin/extra/cht.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/extra/cht.sh b/bin/extra/cht.sh index 681fc69..f373e55 100755 --- a/bin/extra/cht.sh +++ b/bin/extra/cht.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # shellcheck disable=SC1117,SC2001 # # [X] open section -- cgit v1.2.3 From e92fe2d61d3e01cbe2351166b8bf809362a5f72d Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Mon, 6 Nov 2023 10:19:34 +0100 Subject: change back to packer and simplify treesitter config --- config/essentials/nvim/lua/user/init.lua | 2 +- config/essentials/nvim/lua/user/treesitter.lua | 31 ++------------------------ 2 files changed, 3 insertions(+), 30 deletions(-) diff --git a/config/essentials/nvim/lua/user/init.lua b/config/essentials/nvim/lua/user/init.lua index f195e4f..972cb67 100644 --- a/config/essentials/nvim/lua/user/init.lua +++ b/config/essentials/nvim/lua/user/init.lua @@ -1,4 +1,4 @@ -require("user.lazy") +require("user.packer") require("user.remap") require("user.treesitter") require("user.set") diff --git a/config/essentials/nvim/lua/user/treesitter.lua b/config/essentials/nvim/lua/user/treesitter.lua index 5b1fc5e..2355215 100644 --- a/config/essentials/nvim/lua/user/treesitter.lua +++ b/config/essentials/nvim/lua/user/treesitter.lua @@ -9,36 +9,9 @@ require'nvim-treesitter.configs'.setup { -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally auto_install = true, - -- List of parsers to ignore installing (or "all") - ignore_install = { "javascript" }, + indent = { enable = on }, - ---- If you need to change the installation directory of the parsers (see -> Advanced Setup) - -- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")! - indent = { - enable = on - }, + highlight = { enable = true, }, - highlight = { - enable = true, - - -- NOTE: these are the names of the parsers and not the filetype. (for example if you want to - -- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is - -- the name of the parser) - -- list of language that will be disabled - disable = { "c", "rust" }, - -- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files - disable = function(lang, buf) - local max_filesize = 100 * 1024 -- 100 KB - local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) - if ok and stats and stats.size > max_filesize then - return true - end - end, - - -- Setting this to true will run `:h syntax` and tree-sitter at the same time. - -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). - -- Using this option may slow down your editor, and you may see some duplicate highlights. - -- Instead of true it can also be a list of languages additional_vim_regex_highlighting = false, - }, } -- cgit v1.2.3 From a931277d0c6f37ca8d1f0e33df25987a10f8665d Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Mon, 6 Nov 2023 10:22:35 +0100 Subject: cleaned up org config --- config/extra/emacs/config.org | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/config/extra/emacs/config.org b/config/extra/emacs/config.org index 50d6af6..2725fa1 100644 --- a/config/extra/emacs/config.org +++ b/config/extra/emacs/config.org @@ -565,21 +565,6 @@ Adding highlights to TODO and related words. #+end_src * ORG Mode -** Enabling Table of Contents -#+begin_src emacs-lisp - (use-package toc-org - :commands toc-org-enable - :init (add-hook 'org-mode-hook 'toc-org-enable)) -#+end_src - -** Enabling Org Bullets -Org-bullets gives us attractive bullets rather than asterisks. - -#+begin_src emacs-lisp - (add-hook 'org-mode-hook 'org-indent-mode) - (use-package org-bullets) - (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))) -#+end_src ** Org Level Headers #+begin_src emacs-lisp @@ -593,6 +578,10 @@ Org-bullets gives us attractive bullets rather than asterisks. '(org-level-7 ((t (:inherit outline-5 :height 1.00))))) #+end_src +** org-tempo +#+begin_src emacs-lisp +(require 'org-tempo) +#+end_src | Typing the below + TAB | Expands to ... | |------------------------+-----------------------------------------| | Date: Mon, 6 Nov 2023 19:08:48 +0100 Subject: removed emacs config --- .gitignore | 5 - config/extra/emacs/config.org | 856 ------------------------------- config/extra/emacs/early-init.el | 1 - config/extra/emacs/init.el | 24 - config/extra/emacs/themes/nord-theme.el | 727 -------------------------- config/extra/emacs/themes/tlast-theme.el | 306 ----------- 6 files changed, 1919 deletions(-) delete mode 100644 config/extra/emacs/config.org delete mode 100644 config/extra/emacs/early-init.el delete mode 100644 config/extra/emacs/init.el delete mode 100644 config/extra/emacs/themes/nord-theme.el delete mode 100644 config/extra/emacs/themes/tlast-theme.el diff --git a/.gitignore b/.gitignore index adf0262..11392b4 100644 --- a/.gitignore +++ b/.gitignore @@ -21,8 +21,3 @@ config/hyprland/waybar/colors.css config/old/vim/plugged/ config/old/vim/viminfo* config/theme/gtk-3.0/bookmarks -config/extra/emacs/auto-save-list/ -config/extra/emacs/config.el -config/extra/emacs/elpaca/ -config/extra/emacs/projectile-bookmarks.eld -config/extra/emacs/recentf diff --git a/config/extra/emacs/config.org b/config/extra/emacs/config.org deleted file mode 100644 index 2725fa1..0000000 --- a/config/extra/emacs/config.org +++ /dev/null @@ -1,856 +0,0 @@ -#+TITLE: Emacs Configuration -#+AUTHOR: TlasT -#+STARTUP: showeverything -#+OPTIONS: toc:3 - -* TABLE OF CONTENTS :toc: -- [[#startup][Startup]] - - [[#elpaca-package-manager][Elpaca (Package Manager)]] - - [[#evil-mode][Evil Mode]] - - [[#keybindings][Keybindings]] -- [[#helper-functions][Helper functions]] - - [[#buffer-move][buffer-move]] - - [[#reload-emacs][Reload Emacs]] -- [[#graphical-tweaks][Graphical tweaks]] - - [[#disable-ui-elements][Disable UI elements]] - - [[#display-line-numbers-and-truncated-lines][Display Line Numbers and Truncated Lines]] - - [[#blinking-cursor][blinking cursor]] - - [[#fonts][Fonts]] - - [[#setting-the-font-face][Setting the Font Face]] - - [[#theme][Theme]] - - [[#transparency][Transparency]] - - [[#highlight-todo][Highlight TODO]] -- [[#misc-options][Misc. options]] -- [[#org-mode][ORG Mode]] - - [[#enabling-table-of-contents][Enabling Table of Contents]] - - [[#enabling-org-bullets][Enabling Org Bullets]] -- [[#big-ass-header][Big ass header]] -- [[#shell][Shell]] - - [[#default-shell][Default shell]] - - [[#eshell][Eshell]] -- [[#language-support][Language Support]] -- [[#packages][Packages]] - - [[#dashboard][Dashboard]] - - [[#diminish][Diminish]] - - [[#dired][Dired]] - - [[#git][Git]] - - [[#ivy-counsel][Ivy (Counsel)]] - - [[#language-support-1][Language Support]] - - [[#modeline][Modeline]] - - [[#perspective][Perspective]] - - [[#projectile][Projectile]] - - [[#rainbow-mode][Rainbow Mode]] - - [[#rainbow-delimiters][Rainbow Delimiters]] - - [[#sudo-edit][Sudo edit]] - - [[#tldr][TLDR]] - - [[#which-key][Which-Key]] - -* Startup -** Elpaca (Package Manager) -#+begin_src emacs-lisp -(defvar elpaca-installer-version 0.6) -(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory)) -(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory)) -(defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory)) -(defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git" - :ref nil - :files (:defaults (:exclude "extensions")) - :build (:not elpaca--activate-package))) -(let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory)) - (build (expand-file-name "elpaca/" elpaca-builds-directory)) - (order (cdr elpaca-order)) - (default-directory repo)) - (add-to-list 'load-path (if (file-exists-p build) build repo)) - (unless (file-exists-p repo) - (make-directory repo t) - (when (< emacs-major-version 28) (require 'subr-x)) - (condition-case-unless-debug err - (if-let ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*")) - ((zerop (call-process "git" nil buffer t "clone" - (plist-get order :repo) repo))) - ((zerop (call-process "git" nil buffer t "checkout" - (or (plist-get order :ref) "--")))) - (emacs (concat invocation-directory invocation-name)) - ((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch" - "--eval" "(byte-recompile-directory \".\" 0 'force)"))) - ((require 'elpaca)) - ((elpaca-generate-autoloads "elpaca" repo))) - (kill-buffer buffer) - (error "%s" (with-current-buffer buffer (buffer-string)))) -((error) (warn "%s" err) (delete-directory repo 'recursive)))) - (unless (require 'elpaca-autoloads nil t) - (require 'elpaca) - (elpaca-generate-autoloads "elpaca" repo) - (load "./elpaca-autoloads"))) -(add-hook 'after-init-hook #'elpaca-process-queues) -(elpaca `(,@elpaca-order)) - -;; Install use-package support -(elpaca elpaca-use-package - ;; Enable :elpaca use-package keyword. - (elpaca-use-package-mode) - ;; Assume :elpaca t unless otherwise specified. - (setq elpaca-use-package-by-default t)) - -;; Block until current queue processed. -(elpaca-wait) - -;;When installing a package which modifies a form used at the top-level -;;(e.g. a package which adds a use-package key word), -;;use `elpaca-wait' to block until that package has been installed/configured. -;;For example: -;;(use-package general :demand t) -;;(elpaca-wait) - -;;Turns off elpaca-use-package-mode current declartion -;;Note this will cause the declaration to be interpreted immediately (not deferred). -;;Useful for configuring built-in emacs features. -;;(use-package emacs :elpaca nil :config (setq ring-bell-function #'ignore)) - -;; Don't install anything. Defer execution of BODY -;;(elpaca nil (message "deferred")) -#+end_src - -** Evil Mode - -#+begin_src emacs-lisp - ;; Expands to: (elpaca evil (use-package evil :demand t)) - (use-package evil - :init ;; tweak evil's configuration before loading it - (setq evil-want-integration t) ;; This is optional since it's already set to t by default. - (setq evil-want-keybinding nil) - (setq evil-vsplit-window-right t) - (setq evil-split-window-below t) - (evil-mode)) - (use-package evil-collection - :after evil - :config - (setq evil-collection-mode-list '(dashboard dired ibuffer)) - (evil-collection-init)) - (use-package evil-tutor) - ;; Using RETURN to follow links in Org/Evil - ;; Unmap keys in 'evil-maps if not done, (setq org-return-follows-link t) will not work - (with-eval-after-load 'evil-maps - (define-key evil-motion-state-map (kbd "SPC") nil) - (define-key evil-motion-state-map (kbd "RET") nil) - (define-key evil-motion-state-map (kbd "TAB") nil)) - ;; Setting RETURN key in org-mode to follow links - (setq org-return-follows-link t) - -#+end_src - -** Keybindings -#+begin_src emacs-lisp - (use-package general - :config - (general-evil-setup) - - ;; set up 'SPC' as the global leader key - (general-create-definer user/leader-keys - :states '(normal insert visual emacs) - :keymaps 'override - :prefix "SPC" ;; set leader - :global-prefix "M-SPC") ;; access leader in insert mode - - (user/leader-keys - "SPC" '(counsel-M-x :wk "Counsel M-x") - "." '(find-file :wk "Find file") - "=" '(perspective-map :wk "Perspective") ;; Lists all the perspective keybindings - "TAB TAB" '(comment-line :wk "Comment lines") - "u" '(universal-argument :wk "Univeral argument") - "s" '(universal-argument :wk "say I want to type somet") - "q" '(evil-quit :wk "quit emacs")) - - (user/leader-keys - "b" '(:ignore t :wk "Bookmarks/Buffers") - "b c" '(clone-indirect-buffer :wk "Create indirect buffer copy in a split") - "b C" '(clone-indirect-buffer-other-window :wk "Clone indirect buffer in new window") - "b d" '(bookmark-delete :wk "Delete bookmark") - "b i" '(ibuffer :wk "Ibuffer") - "b k" '(kill-this-buffer :wk "Kill this buffer") - "b K" '(kill-some-buffers :wk "Kill multiple buffers") - "b l" '(list-bookmarks :wk "List bookmarks") - "b m" '(bookmark-set :wk "Set bookmark") - "b n" '(next-buffer :wk "Next buffer") - "b p" '(previous-buffer :wk "Previous buffer") - "b r" '(revert-buffer :wk "Reload buffer") - "b R" '(rename-buffer :wk "Rename buffer") - "b s" '(basic-save-buffer :wk "Save buffer") - "b S" '(save-some-buffers :wk "Save multiple buffers") - "b w" '(bookmark-save :wk "Save current bookmarks to bookmark file")) - - (user/leader-keys - "d" '(:ignore t :wk "Dired") - "d d" '(dired :wk "Open dired") - "d j" '(dired-jump :wk "Dired jump to current") - "d p" '(peep-dired :wk "Peep-dired")) - - (user/leader-keys - "e" '(:ignore t :wk "Eshell/Evaluate/EWW") - "e b" '(eval-buffer :wk "Evaluate elisp in buffer") - "e d" '(eval-defun :wk "Evaluate defun containing or after point") - "e e" '(eval-expression :wk "Evaluate and elisp expression") - "e h" '(counsel-esh-history :which-key "Eshell history") - "e l" '(eval-last-sexp :wk "Evaluate elisp expression before point") - "e r" '(eval-region :wk "Evaluate elisp in region") - "e R" '(eww-reload :which-key "Reload current page in EWW") - "e s" '(eshell :which-key "Eshell") - "e w" '(eww :which-key "EWW emacs web wowser")) - - (user/leader-keys - "f" '(:ignore t :wk "Files") - "f c" '((lambda () (interactive) - (find-file (expand-file-name "config.org" user-emacs-directory))) - :wk "Open emacs config") - "f d" '(find-grep-dired :wk "Search for string in files in DIR") - "f e" '((lambda () (interactive) - (dired user-emacs-directory)) - :wk "Open user-emacs-directory in dired") - "f i" '((lambda () (interactive) - (find-file (expand-file-name "init.el" user-emacs-directory))) - :wk "Open emacs init.el") - "f g" '(counsel-grep-or-swiper :wk "Search for string current file") - "f j" '(counsel-file-jump :wk "Jump to a file below current directory") - "f l" '(counsel-locate :wk "Locate a file") - "f r" '(counsel-recentf :wk "Find recent files") - "f w" '(evil-write :wk "Write current buffer")) - - (user/leader-keys - "g" '(:ignore t :wk "Git") - "g /" '(magit-displatch :wk "Magit dispatch") - "g ." '(magit-file-displatch :wk "Magit file dispatch") - "g b" '(magit-branch-checkout :wk "Switch branch") - "g c" '(:ignore t :wk "Create") - "g c b" '(magit-branch-and-checkout :wk "Create branch and checkout") - "g c c" '(magit-commit-create :wk "Create commit") - "g c f" '(magit-commit-fixup :wk "Create fixup commit") - "g C" '(magit-clone :wk "Clone repo") - "g f" '(:ignore t :wk "Find") - "g f c" '(magit-show-commit :wk "Show commit") - "g f f" '(magit-find-file :wk "Magit find file") - "g f g" '(magit-find-git-config-file :wk "Find gitconfig file") - "g F" '(magit-fetch :wk "Git fetch") - "g g" '(magit-status :wk "Magit status") - "g i" '(magit-init :wk "Initialize git repo") - "g l" '(magit-log-buffer-file :wk "Magit buffer log") - "g r" '(vc-revert :wk "Git revert file") - "g s" '(magit-stage-file :wk "Git stage file") - "g t" '(git-timemachine :wk "Git time machine") - "g u" '(magit-stage-file :wk "Git unstage file")) - - (user/leader-keys - "h" '(:ignore t :wk "Help") - "h a" '(counsel-apropos :wk "Apropos") - "h b" '(describe-bindings :wk "Describe bindings") - "h c" '(describe-char :wk "Describe character under cursor") - "h d" '(:ignore t :wk "Emacs documentation") - "h d a" '(about-emacs :wk "About Emacs") - "h d d" '(view-emacs-debugging :wk "View Emacs debugging") - "h d f" '(view-emacs-FAQ :wk "View Emacs FAQ") - "h d m" '(info-emacs-manual :wk "The Emacs manual") - "h d n" '(view-emacs-news :wk "View Emacs news") - "h d o" '(describe-distribution :wk "How to obtain Emacs") - "h d p" '(view-emacs-problems :wk "View Emacs problems") - "h d t" '(view-emacs-todo :wk "View Emacs todo") - "h d w" '(describe-no-warranty :wk "Describe no warranty") - "h e" '(view-echo-area-messages :wk "View echo area messages") - "h f" '(describe-function :wk "Describe function") - "h F" '(describe-face :wk "Describe face") - "h g" '(describe-gnu-project :wk "Describe GNU Project") - "h i" '(info :wk "Info") - "h I" '(describe-input-method :wk "Describe input method") - "h k" '(describe-key :wk "Describe key") - "h l" '(view-lossage :wk "Display recent keystrokes and the commands run") - "h L" '(describe-language-environment :wk "Describe language environment") - "h m" '(describe-mode :wk "Describe mode") - "h r" '(:ignore t :wk "Reload") - "h r r" '((lambda () (interactive) - (load-file (expand-file-name "init.el" user-emacs-directory)) - (ignore (elpaca-process-queues))) - :wk "Reload emacs config") - "h t" '(load-theme :wk "Load theme") - "h v" '(describe-variable :wk "Describe variable") - "h w" '(where-is :wk "Prints keybinding for command if set") - "h x" '(describe-command :wk "Display full documentation for command")) - - (user/leader-keys - "l" '(:ignore t :wk "load") - "l t" '(load-theme :wk "load theme")) - - ;; org mode - (user/leader-keys - "m" '(:ignore t :wk "Org") - "m a" '(org-agenda :wk "Org agenda") - "m e" '(org-export-dispatch :wk "Org export dispatch") - "m i" '(org-toggle-item :wk "Org toggle item") - "m t" '(org-todo :wk "Org todo") - "m B" '(org-babel-tangle :wk "Org babel tangle") - "m T" '(org-todo-list :wk "Org todo list")) - (user/leader-keys - "m b" '(:ignore t :wk "Tables") - "m b -" '(org-table-insert-hline :wk "Insert hline in table")) - (user/leader-keys - "m d" '(:ignore t :wk "Date/deadline") - "m d t" '(org-time-stamp :wk "Org time stamp")) - - (user/leader-keys - "o" '(:ignore t :wk "Open") - "o d" '(dashboard-open :wk "Dashboard") - ;; "o e" '(elfeed :wk "Elfeed RSS") - "o f" '(make-frame :wk "Open buffer in new frame") - "o F" '(select-frame-by-name :wk "Select frame by name") - "o s" '(shell :wk "open shell")) - - (user/leader-keys - "p" '(projectile-command-map :wk "Projectile")) - - ;; FIXME: fix the error here - ;; (user/leader-keys - ;; "s" '(:ignore t :wk "Search") - ;; "s d" '(dictionary-search :wk "Search dictionary") - ;; "s m" '(man :wk "Man pages") - ;; "s t" '(tldr :wk "Lookup TLDR docs for a command") - ;; "s w" '(woman :wk "Similar to man but doesn't require man") - ;; ) - - (user/leader-keys - "t" '(:ignore t :wk "Toggle") - "t l" '(display-line-numbers-mode :wk "Toggle line numbers") - "t t" '(visual-line-mode :wk "Toggle truncated lines") - "t" '(:ignore t :wk "Toggle") - "t e" '(eshell-toggle :wk "Toggle eshell") - ;; "t f" '(flycheck-mode :wk "Toggle flycheck") - "t o" '(org-mode :wk "Toggle org mode") - "t r" '(rainbow-mode :wk "Toggle rainbow mode") - "t t" '(visual-line-mode :wk "Toggle truncated lines")) - - (user/leader-keys - "w" '(:ignore t :wk "Windows") - ;; Window splits - "w c" '(evil-window-delete :wk "Close window") - "w n" '(evil-window-new :wk "New window") - "w s" '(evil-window-split :wk "Horizontal split window") - "w v" '(evil-window-vsplit :wk "Vertical split window") - ;; Window motions - "w h" '(evil-window-left :wk "Window left") - "w j" '(evil-window-down :wk "Window down") - "w k" '(evil-window-up :wk "Window up") - "w l" '(evil-window-right :wk "Window right") - "w w" '(evil-window-next :wk "Goto next window") - ;; Move Windows - "w H" '(buf-move-left :wk "Buffer move left") - "w J" '(buf-move-down :wk "Buffer move down") - "w K" '(buf-move-up :wk "Buffer move up") - "w L" '(buf-move-right :wk "Buffer move right")) - ) - -#+end_src - -Zooming in and out -#+begin_src emacs-lisp -(global-set-key (kbd "C-=") 'text-scale-increase) -(global-set-key (kbd "C--") 'text-scale-decrease) -(global-set-key (kbd "") 'text-scale-increase) -(global-set-key (kbd "") 'text-scale-decrease) -#+end_src - - -* Helper functions -** buffer-move -Creating some functions to allow us to easily move windows (splits) around. The following block of code was taken from buffer-move.el found on the EmacsWiki: -https://www.emacswiki.org/emacs/buffer-move.el - -#+begin_src emacs-lisp -(require 'windmove) - -;;;###autoload -(defun buf-move-up () - "Swap the current buffer and the buffer above the split. -If there is no split, ie now window above the current one, an -error is signaled." -;; "Switches between the current buffer, and the buffer above the -;; split, if possible." - (interactive) - (let* ((other-win (windmove-find-other-window 'up)) - (buf-this-buf (window-buffer (selected-window)))) - (if (null other-win) - (error "No window above this one") - ;; swap top with this one - (set-window-buffer (selected-window) (window-buffer other-win)) - ;; move this one to top - (set-window-buffer other-win buf-this-buf) - (select-window other-win)))) - -;;;###autoload -(defun buf-move-down () -"Swap the current buffer and the buffer under the split. -If there is no split, ie now window under the current one, an -error is signaled." - (interactive) - (let* ((other-win (windmove-find-other-window 'down)) - (buf-this-buf (window-buffer (selected-window)))) - (if (or (null other-win) - (string-match "^ \\*Minibuf" (buffer-name (window-buffer other-win)))) - (error "No window under this one") - ;; swap top with this one - (set-window-buffer (selected-window) (window-buffer other-win)) - ;; move this one to top - (set-window-buffer other-win buf-this-buf) - (select-window other-win)))) - -;;;###autoload -(defun buf-move-left () -"Swap the current buffer and the buffer on the left of the split. -If there is no split, ie now window on the left of the current -one, an error is signaled." - (interactive) - (let* ((other-win (windmove-find-other-window 'left)) - (buf-this-buf (window-buffer (selected-window)))) - (if (null other-win) - (error "No left split") - ;; swap top with this one - (set-window-buffer (selected-window) (window-buffer other-win)) - ;; move this one to top - (set-window-buffer other-win buf-this-buf) - (select-window other-win)))) - -;;;###autoload -(defun buf-move-right () -"Swap the current buffer and the buffer on the right of the split. -If there is no split, ie now window on the right of the current -one, an error is signaled." - (interactive) - (let* ((other-win (windmove-find-other-window 'right)) - (buf-this-buf (window-buffer (selected-window)))) - (if (null other-win) - (error "No right split") - ;; swap top with this one - (set-window-buffer (selected-window) (window-buffer other-win)) - ;; move this one to top - (set-window-buffer other-win buf-this-buf) - (select-window other-win)))) -#+end_src - -** Reload Emacs -This is just an example of how to create a simple function in Emacs. Use this function to reload Emacs after adding changes to the config. Yes, I am loading the user-init-file twice in this function, which is a hack because for some reason, just loading the user-init-file once does not work properly. - -#+begin_src emacs-lisp -(defun reload-init-file () - (interactive) - (load-file user-init-file) - (load-file user-init-file)) -#+end_src - - -* Graphical tweaks -** Disable UI elements -#+begin_src emacs-lisp -(menu-bar-mode -1) -(tool-bar-mode -1) -(scroll-bar-mode -1) -#+end_src - -** Display Line Numbers and Truncated Lines -#+begin_src emacs-lisp -(global-display-line-numbers-mode 1) -(global-visual-line-mode t) -#+end_src -** blinking cursor -#+begin_src emacs-lisp - (setq blink-cursor-mode nil) -#+end_src - -** Fonts -Defining the various fonts that Emacs will use. - -** Setting the Font Face -#+begin_src emacs-lisp - (set-face-attribute 'default nil - :font "JetBrains Mono" - :height 105 - :weight 'medium) - (set-face-attribute 'variable-pitch nil - :font "Ubuntu" - :height 115 - :weight 'medium) - (set-face-attribute 'fixed-pitch nil - :font "JetBrains Mono" - :height 105 - :weight 'medium) - ;; Makes commented text and keywords italics. - ;; This is working in emacsclient but not emacs. - ;; Your font must have an italic face available. - (set-face-attribute 'font-lock-comment-face nil - :slant 'italic) - (set-face-attribute 'font-lock-keyword-face nil - :slant 'italic) - - ;; This sets the default font on all graphical frames created after restarting Emacs. - ;; Does the same thing as 'set-face-attribute default' above, but emacsclient fonts - ;; are not right unless I also add this method of setting the default font. - (add-to-list 'default-frame-alist '(font . "JetBrains Mono-11")) - - ;; Uncomment the following line if line spacing needs adjusting. - (setq-default line-spacing 0.12) - -#+end_src - -** Theme - -How to make thet theme work even in daemon mode: (https://stackoverflow.com/questions/18904529/after-emacs-deamon-i-can-not-see-new-theme-in-emacsclient-frame-it-works-fr) -#+begin_src emacs-lisp :noeval - (add-to-list 'custom-theme-load-path (expand-file-name "themes/" user-emacs-directory)) - (use-package doom-themes - :config - (setq doom-themes-enable-bold t - doom-themes-enable-italic t) - (load-theme 'doom-nord t) - (doom-themes-org-config)) -#+end_src - -** Transparency - -#+begin_src emacs-lisp - (add-to-list 'default-frame-alist '(alpha-background . 96)) -#+end_src - -** Highlight TODO -Adding highlights to TODO and related words. - -#+begin_src emacs-lisp -(use-package hl-todo - :hook ((org-mode . hl-todo-mode) - (prog-mode . hl-todo-mode)) - :config - (setq hl-todo-highlight-punctuation ":" - hl-todo-keyword-faces - `(("TODO" warning bold) - ("FIXME" error bold) - ("HACK" font-lock-constant-face bold) - ("REVIEW" font-lock-keyword-face bold) - ("NOTE" success bold) - ("DEPRECATED" font-lock-doc-face bold)))) - -#+end_src - - -* Misc. options - -#+begin_src emacs-lisp - - ;; move backup files to trash instead of same directory - (setq backup-directory-alist '((".*" . "~/.local/share/Trash/files"))) - - ;; escape minibuffer with one [escape] - (global-set-key [escape] 'keyboard-escape-quit) - - - ;; Automatically show changes if the file has changed - (global-auto-revert-mode t) - - ;; You can select text and delete it by typing. - (delete-selection-mode 1) - - ;; Turns on automatic parens pairing - (electric-pair-mode 1) - ;; The following prevents <> from auto-pairing when electric-pair-mode is on. - ;; Otherwise, org-tempo is broken when you try to (https://www.svengreb.de) - -;; Title: Nord Theme -;; Project: nord-emacs -;; Version: 0.5.0 -;; URL: https://github.com/nordtheme/emacs -;; Author: Sven Greb -;; Package-Requires: ((emacs "24")) -;; License: MIT - -;;; Commentary: - -;; Nord is a 16 colorspace theme build to run in GUI- and terminal -;; mode with support for many third-party syntax- and UI packages. - -;;; References: -;; Awesome Emacs -;; https://github.com/emacs-tw/awesome-emacs -;; GNU ELPA -;; https://elpa.gnu.org -;; GNU Emacs -;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Custom-Themes.html -;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Custom-Themes.html -;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Faces.html -;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Standard-Faces.html -;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Face-Customization.html -;; https://www.gnu.org/software/emacs/manual/html_node/elisp/Face-Attributes.html -;; https://www.gnu.org/software/emacs/manual/html_node/elisp/Faces-for-Font-Lock.html -;; https://www.gnu.org/software/emacs/manual/html_node/elisp/Display-Feature-Testing.html -;; marmalade repo -;; https://marmalade-repo.org -;; MELPA -;; https://melpa.org -;; https://stable.melpa.org - -;;; Code: - -(unless (>= emacs-major-version 24) - (error "Nord theme requires Emacs 24 or later!")) - -(deftheme nord "An arctic, north-bluish clean and elegant theme") - -(defgroup nord nil - "Nord theme customizations. - The theme has to be reloaded after changing anything in this group." - :group 'faces) - -(defcustom nord-comment-brightness 10 - "Allows to define a custom comment color brightness with percentage adjustments from 0% - 20%. - As of version 0.4.0, this variable is obsolete/deprecated and has no effect anymore and will be removed in version 1.0.0! - The comment color brightness has been increased by 10% by default. - Please see https://github.com/nordtheme/emacs/issues/73 for more details." - :type 'integer - :group 'nord) - -(make-obsolete-variable - 'nord-comment-brightness - "The custom color brightness feature has been deprecated and will be removed in version 1.0.0! - The comment color brightness has been increased by 10% by default. - Please see https://github.com/nordtheme/emacs/issues/73 for more details." - "0.4.0") - -(defcustom nord-region-highlight nil - "Allows to set a region highlight style based on the Nord components. - Valid styles are - - 'snowstorm' - Uses 'nord0' as foreground- and 'nord4' as background color - - 'frost' - Uses 'nord0' as foreground- and 'nord8' as background color" - :type 'string - :group 'nord) - -(defcustom nord-uniform-mode-lines nil - "Enables uniform activate- and inactive mode lines using 'nord3' as background." - :type 'boolean - :group 'nord) - -(setq nord-theme--brightened-comments '("#4c566a" "#4e586d" "#505b70" "#525d73" "#556076" "#576279" "#59647c" "#5b677f" "#5d6982" "#5f6c85" "#616e88" "#63718b" "#66738e" "#687591" "#6a7894" "#6d7a96" "#6f7d98" "#72809a" "#75829c" "#78859e" "#7b88a1")) - -(defun nord-theme--brightened-comment-color (percent) - "Returns the brightened comment color for the given percent. - The value must be greater or equal to 0 and less or equal to 20, otherwise the default 'nord3' color is used. - As of version 0.4.0, this function is obsolete/deprecated and has no effect anymore and will be removed in version 1.0.0! - The comment color brightness has been increased by 10% by default. - Please see https://github.com/nordtheme/emacs/issues/73 for more details." - (nth 10 nord-theme--brightened-comments)) - -(make-obsolete - 'nord-theme--brightened-comment-color - "The custom color brightness feature has been deprecated and will be removed in version 1.0.0!\ - The comment color brightness has been increased by 10% by default.\ - Please see https://github.com/nordtheme/emacs/issues/73 for more details." - "0.4.0") - -(defun nord-display-truecolor-or-graphic-p () - "Returns whether the display can display nord colors" - (or (= (display-color-cells) 16777216) (display-graphic-p))) - -;;;; Color Constants -(let ((class '((class color) (min-colors 89))) - (nord0 (if (nord-display-truecolor-or-graphic-p) "#2E3440" nil)) - (nord1 (if (nord-display-truecolor-or-graphic-p) "#3B4252" "black")) - (nord2 (if (nord-display-truecolor-or-graphic-p) "#434C5E" "#434C5E")) - (nord3 (if (nord-display-truecolor-or-graphic-p) "#4C566A" "brightblack")) - (nord4 (if (nord-display-truecolor-or-graphic-p) "#D8DEE9" "#D8DEE9")) - (nord5 (if (nord-display-truecolor-or-graphic-p) "#E5E9F0" "white")) - (nord6 (if (nord-display-truecolor-or-graphic-p) "#ECEFF4" "brightwhite")) - (nord7 (if (nord-display-truecolor-or-graphic-p) "#8FBCBB" "cyan")) - (nord8 (if (nord-display-truecolor-or-graphic-p) "#88C0D0" "brightcyan")) - (nord9 (if (nord-display-truecolor-or-graphic-p) "#81A1C1" "blue")) - (nord10 (if (nord-display-truecolor-or-graphic-p) "#5E81AC" "brightblue")) - (nord11 (if (nord-display-truecolor-or-graphic-p) "#BF616A" "red")) - (nord12 (if (nord-display-truecolor-or-graphic-p) "#D08770" "brightyellow")) - (nord13 (if (nord-display-truecolor-or-graphic-p) "#EBCB8B" "yellow")) - (nord14 (if (nord-display-truecolor-or-graphic-p) "#A3BE8C" "green")) - (nord15 (if (nord-display-truecolor-or-graphic-p) "#B48EAD" "magenta")) - (nord-annotation (if (nord-display-truecolor-or-graphic-p) "#D08770" "brightyellow")) - (nord-attribute (if (nord-display-truecolor-or-graphic-p) "#8FBCBB" "cyan")) - (nord-class (if (nord-display-truecolor-or-graphic-p) "#8FBCBB" "cyan")) - (nord-comment (if (nord-display-truecolor-or-graphic-p) (nord-theme--brightened-comment-color nord-comment-brightness) "brightblack")) - (nord-escape (if (nord-display-truecolor-or-graphic-p) "#D08770" "brightyellow")) - (nord-method (if (nord-display-truecolor-or-graphic-p) "#88C0D0" "brightcyan")) - (nord-keyword (if (nord-display-truecolor-or-graphic-p) "#81A1C1" "blue")) - (nord-numeric (if (nord-display-truecolor-or-graphic-p) "#B48EAD" "magenta")) - (nord-operator (if (nord-display-truecolor-or-graphic-p) "#81A1C1" "blue")) - (nord-preprocessor (if (nord-display-truecolor-or-graphic-p) "#5E81AC" "brightblue")) - (nord-punctuation (if (nord-display-truecolor-or-graphic-p) "#D8DEE9" "#D8DEE9")) - (nord-regexp (if (nord-display-truecolor-or-graphic-p) "#EBCB8B" "yellow")) - (nord-string (if (nord-display-truecolor-or-graphic-p) "#A3BE8C" "green")) - (nord-tag (if (nord-display-truecolor-or-graphic-p) "#81A1C1" "blue")) - (nord-variable (if (nord-display-truecolor-or-graphic-p) "#D8DEE9" "#D8DEE9")) - (nord-region-highlight-foreground (if (or - (string= nord-region-highlight "frost") - (string= nord-region-highlight "snowstorm")) "#2E3440" nil)) - (nord-region-highlight-background (if - (string= nord-region-highlight "frost") "#88C0D0" - (if (string= nord-region-highlight "snowstorm") "#D8DEE9" "#434C5E"))) - (nord-uniform-mode-lines-background (if nord-uniform-mode-lines "#4C566A" "#3B4252"))) - -;;;; +------------+ -;;;; + Core Faces + -;;;; +------------+ - (custom-theme-set-faces - 'nord - ;; +--- Base ---+ - `(bold ((,class (:weight bold)))) - `(bold-italic ((,class (:weight bold :slant italic)))) - `(default ((,class (:foreground ,nord4 :background ,nord0)))) - `(error ((,class (:foreground ,nord11 :weight bold)))) - `(escape-glyph ((,class (:foreground ,nord12)))) - `(font-lock-builtin-face ((,class (:foreground ,nord9)))) - `(font-lock-comment-face ((,class (:foreground ,nord-comment)))) - `(font-lock-comment-delimiter-face ((,class (:foreground ,nord-comment)))) - `(font-lock-constant-face ((,class (:foreground ,nord9)))) - `(font-lock-doc-face ((,class (:foreground ,nord-comment)))) - `(font-lock-function-name-face ((,class (:foreground ,nord8)))) - `(font-lock-keyword-face ((,class (:foreground ,nord9)))) - `(font-lock-negation-char-face ((,class (:foreground ,nord9)))) - `(font-lock-preprocessor-face ((,class (:foreground ,nord10 :weight bold)))) - `(font-lock-reference-face ((,class (:foreground ,nord9)))) - `(font-lock-regexp-grouping-backslash ((,class (:foreground ,nord13)))) - `(font-lock-regexp-grouping-construct ((,class (:foreground ,nord13)))) - `(font-lock-string-face ((,class (:foreground ,nord14)))) - `(font-lock-type-face ((,class (:foreground ,nord7)))) - `(font-lock-variable-name-face ((,class (:foreground ,nord4)))) - `(font-lock-warning-face ((,class (:foreground ,nord13)))) - `(italic ((,class (:slant italic)))) - `(shadow ((,class (:foreground ,nord3)))) - `(underline ((,class (:underline t)))) - `(warning ((,class (:foreground ,nord13 :weight bold)))) - - ;; +--- Syntax ---+ - ;; > C - `(c-annotation-face ((,class (:foreground ,nord-annotation)))) - - ;; > diff - `(diff-added ((,class (:foreground ,nord14)))) - `(diff-changed ((,class (:foreground ,nord13)))) - `(diff-context ((,class (:inherit default)))) - `(diff-file-header ((,class (:foreground ,nord8)))) - `(diff-function ((,class (:foreground ,nord7)))) - `(diff-header ((,class (:foreground ,nord9 :weight bold)))) - `(diff-hunk-header ((,class (:foreground ,nord9 :background ,nord0)))) - `(diff-indicator-added ((,class (:foreground ,nord14)))) - `(diff-indicator-changed ((,class (:foreground ,nord13)))) - `(diff-indicator-removed ((,class (:foreground ,nord11)))) - `(diff-nonexistent ((,class (:foreground ,nord11)))) - `(diff-refine-added ((,class (:foreground ,nord14)))) - `(diff-refine-changed ((,class (:foreground ,nord13)))) - `(diff-refine-removed ((,class (:foreground ,nord11)))) - `(diff-removed ((,class (:foreground ,nord11)))) - - ;; +--- UI ---+ - `(border ((,class (:foreground ,nord4)))) - `(buffer-menu-buffer ((,class (:foreground ,nord4 :weight bold)))) - `(button ((,class (:background ,nord0 :foreground ,nord8 :box (:line-width 2 :color ,nord4 :style sunken-button))))) - `(completions-annotations ((,class (:foreground ,nord9)))) - `(completions-common-part ((,class (:foreground ,nord8 :weight bold)))) - `(completions-first-difference ((,class (:foreground ,nord11)))) - `(custom-button ((,class (:background ,nord0 :foreground ,nord8 :box (:line-width 2 :color ,nord4 :style sunken-button))))) - `(custom-button-mouse ((,class (:background ,nord4 :foreground ,nord0 :box (:line-width 2 :color ,nord4 :style sunken-button))))) - `(custom-button-pressed ((,class (:background ,nord6 :foreground ,nord0 :box (:line-width 2 :color ,nord4 :style sunken-button))))) - `(custom-button-pressed-unraised ((,class (:background ,nord4 :foreground ,nord0 :box (:line-width 2 :color ,nord4 :style sunken-button))))) - `(custom-button-unraised ((,class (:background ,nord0 :foreground ,nord8 :box (:line-width 2 :color ,nord4 :style sunken-button))))) - `(custom-changed ((,class (:foreground ,nord13)))) - `(custom-comment ((,class (:foreground ,nord-comment)))) - `(custom-comment-tag ((,class (:foreground ,nord7)))) - `(custom-documentation ((,class (:foreground ,nord4)))) - `(custom-group-tag ((,class (:foreground ,nord8 :weight bold)))) - `(custom-group-tag-1 ((,class (:foreground ,nord8 :weight bold)))) - `(custom-invalid ((,class (:foreground ,nord11)))) - `(custom-modified ((,class (:foreground ,nord13)))) - `(custom-rogue ((,class (:foreground ,nord12 :background ,nord2)))) - `(custom-saved ((,class (:foreground ,nord14)))) - `(custom-set ((,class (:foreground ,nord8)))) - `(custom-state ((,class (:foreground ,nord14)))) - `(custom-themed ((,class (:foreground ,nord8 :background ,nord2)))) - `(cursor ((,class (:background ,nord4)))) - `(fringe ((,class (:foreground ,nord4 :background ,nord0)))) - `(file-name-shadow ((,class (:inherit shadow)))) - `(header-line ((,class (:foreground ,nord4 :background ,nord2)))) - `(help-argument-name ((,class (:foreground ,nord8)))) - `(highlight ((,class (:foreground ,nord8 :background ,nord2)))) - `(hl-line ((,class (:background ,nord1)))) - `(info-menu-star ((,class (:foreground ,nord9)))) - `(isearch ((,class (:foreground ,nord0 :background ,nord8)))) - `(isearch-fail ((,class (:foreground ,nord11)))) - `(link ((,class (:underline t)))) - `(link-visited ((,class (:underline t)))) - `(linum ((,class (:foreground ,nord3 :background ,nord0)))) - `(linum-relative-current-face ((,class (:foreground ,nord3 :background ,nord0)))) - `(match ((,class (:inherit isearch)))) - `(message-cited-text ((,class (:foreground ,nord4)))) - `(message-header-cc ((,class (:foreground ,nord9)))) - `(message-header-name ((,class (:foreground ,nord7)))) - `(message-header-newsgroup ((,class (:foreground ,nord14)))) - `(message-header-other ((,class (:foreground ,nord4)))) - `(message-header-subject ((,class (:foreground ,nord8)))) - `(message-header-to ((,class (:foreground ,nord9)))) - `(message-header-xheader ((,class (:foreground ,nord13)))) - `(message-mml ((,class (:foreground ,nord10)))) - `(message-separator ((,class (:inherit shadow)))) - `(minibuffer-prompt ((,class (:foreground ,nord8 :weight bold)))) - `(mm-command-output ((,class (:foreground ,nord8)))) - `(mode-line ((,class (:foreground ,nord8 :background ,nord3)))) - `(mode-line-buffer-id ((,class (:weight bold)))) - `(mode-line-highlight ((,class (:inherit highlight)))) - `(mode-line-inactive ((,class (:foreground ,nord4 :background ,nord-uniform-mode-lines-background)))) - `(next-error ((,class (:inherit error)))) - `(nobreak-space ((,class (:foreground ,nord3)))) - `(outline-1 ((,class (:foreground ,nord8 :weight bold)))) - `(outline-2 ((,class (:inherit outline-1)))) - `(outline-3 ((,class (:inherit outline-1)))) - `(outline-4 ((,class (:inherit outline-1)))) - `(outline-5 ((,class (:inherit outline-1)))) - `(outline-6 ((,class (:inherit outline-1)))) - `(outline-7 ((,class (:inherit outline-1)))) - `(outline-8 ((,class (:inherit outline-1)))) - `(package-description ((,class (:foreground ,nord4)))) - `(package-help-section-name ((,class (:foreground ,nord8 :weight bold)))) - `(package-name ((,class (:foreground ,nord8)))) - `(package-status-available ((,class (:foreground ,nord7)))) - `(package-status-avail-obso ((,class (:foreground ,nord7 :slant italic)))) - `(package-status-built-in ((,class (:foreground ,nord9)))) - `(package-status-dependency ((,class (:foreground ,nord8 :slant italic)))) - `(package-status-disabled ((,class (:foreground ,nord3)))) - `(package-status-external ((,class (:foreground ,nord12 :slant italic)))) - `(package-status-held ((,class (:foreground ,nord4 :weight bold)))) - `(package-status-new ((,class (:foreground ,nord14)))) - `(package-status-incompat ((,class (:foreground ,nord11)))) - `(package-status-installed ((,class (:foreground ,nord7 :weight bold)))) - `(package-status-unsigned ((,class (:underline ,nord13)))) - `(query-replace ((,class (:foreground ,nord8 :background ,nord2)))) - `(region ((,class (:foreground ,nord-region-highlight-foreground :background ,nord-region-highlight-background)))) - `(scroll-bar ((,class (:background ,nord3)))) - `(secondary-selection ((,class (:background ,nord2)))) - - ;; `show-paren-match-face` and `show-paren-mismatch-face` are deprecated since Emacs version 22.1 and were - ;; removed in Emacs 25. - ;; https://github.com/nordtheme/emacs/issues/75 - ;; http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=c430f7e23fc2c22f251ace4254e37dea1452dfc3 - ;; https://github.com/emacs-mirror/emacs/commit/c430f7e23fc2c22f251ace4254e37dea1452dfc3 - `(show-paren-match-face ((,class (:foreground ,nord0 :background ,nord8)))) - `(show-paren-mismatch-face ((,class (:background ,nord11)))) - - `(show-paren-match ((,class (:foreground ,nord0 :background ,nord8)))) - `(show-paren-mismatch ((,class (:background ,nord11)))) - `(success ((,class (:foreground ,nord14)))) - `(term ((,class (:foreground ,nord4 :background ,nord0)))) - `(term-color-black ((,class (:foreground ,nord1 :background ,nord1)))) - `(term-color-white ((,class (:foreground ,nord5 :background ,nord5)))) - `(term-color-cyan ((,class (:foreground ,nord7 :background ,nord7)))) - `(term-color-blue ((,class (:foreground ,nord8 :background ,nord8)))) - `(term-color-red ((,class (:foreground ,nord11 :background ,nord11)))) - `(term-color-yellow ((,class (:foreground ,nord13 :background ,nord13)))) - `(term-color-green ((,class (:foreground ,nord14 :background ,nord14)))) - `(term-color-magenta ((,class (:foreground ,nord15 :background ,nord15)))) - `(tool-bar ((,class (:foreground ,nord4 :background ,nord3)))) - `(tooltip ((,class (:foreground ,nord0 :background ,nord4)))) - `(trailing-whitespace ((,class (:foreground ,nord3)))) - `(tty-menu-disabled-face ((,class (:foreground ,nord1)))) - `(tty-menu-enabled-face ((,class (:background ,nord2 foreground ,nord4)))) - `(tty-menu-selected-face ((,class (:foreground ,nord8 :underline t)))) - `(undo-tree-visualizer-current-face ((,class (:foreground ,nord8)))) - `(undo-tree-visualizer-default-face ((,class (:foreground ,nord4)))) - `(undo-tree-visualizer-unmodified-face ((,class (:foreground ,nord4)))) - `(undo-tree-visualizer-register-face ((,class (:foreground ,nord9)))) - `(vc-conflict-state ((,class (:foreground ,nord12)))) - `(vc-edited-state ((,class (:foreground ,nord13)))) - `(vc-locally-added-state ((,class (:underline ,nord14)))) - `(vc-locked-state ((,class (:foreground ,nord10)))) - `(vc-missing-state ((,class (:foreground ,nord11)))) - `(vc-needs-update-state ((,class (:foreground ,nord12)))) - `(vc-removed-state ((,class (:foreground ,nord11)))) - `(vc-state-base ((,class (:foreground ,nord4)))) - `(vc-up-to-date-state ((,class (:foreground ,nord8)))) - `(vertical-border ((,class (:foreground ,nord2)))) - `(which-func ((,class (:foreground ,nord8)))) - `(whitespace-big-indent ((,class (:foreground ,nord3 :background ,nord0)))) - `(whitespace-empty ((,class (:foreground ,nord3 :background ,nord0)))) - `(whitespace-hspace ((,class (:foreground ,nord3 :background ,nord0)))) - `(whitespace-indentation ((,class (:foreground ,nord3 :background ,nord0)))) - `(whitespace-line ((,class (:background ,nord0)))) - `(whitespace-newline ((,class (:foreground ,nord3 :background ,nord0)))) - `(whitespace-space ((,class (:foreground ,nord3 :background ,nord0)))) - `(whitespace-space-after-tab ((,class (:foreground ,nord3 :background ,nord0)))) - `(whitespace-space-before-tab ((,class (:foreground ,nord3 :background ,nord0)))) - `(whitespace-tab ((,class (:foreground ,nord3 :background ,nord0)))) - `(whitespace-trailing ((,class (:inherit trailing-whitespace)))) - `(widget-button-pressed ((,class (:foreground ,nord9 :background ,nord1)))) - `(widget-documentation ((,class (:foreground ,nord4)))) - `(widget-field ((,class (:background ,nord2 :foreground ,nord4)))) - `(widget-single-line-field ((,class (:background ,nord2 :foreground ,nord4)))) - `(window-divider ((,class (:background ,nord3)))) - `(window-divider-first-pixel ((,class (:background ,nord3)))) - `(window-divider-last-pixel ((,class (:background ,nord3)))) - - ;;;; +-----------------+ - ;;;; + Package Support + - ;;;; +-----------------+ - ;; +--- Syntax ---+ - ;; > Auctex - `(font-latex-bold-face ((,class (:inherit bold)))) - `(font-latex-italic-face ((,class (:inherit italic)))) - `(font-latex-math-face ((,class (:foreground ,nord8)))) - `(font-latex-sectioning-0-face ((,class (:foreground ,nord8 :weight bold)))) - `(font-latex-sectioning-1-face ((,class (:inherit font-latex-sectioning-0-face)))) - `(font-latex-sectioning-2-face ((,class (:inherit font-latex-sectioning-0-face)))) - `(font-latex-sectioning-3-face ((,class (:inherit font-latex-sectioning-0-face)))) - `(font-latex-sectioning-4-face ((,class (:inherit font-latex-sectioning-0-face)))) - `(font-latex-sectioning-5-face ((,class (:inherit font-latex-sectioning-0-face)))) - `(font-latex-script-char-face ((,class (:inherit font-lock-warning-face)))) - `(font-latex-string-face ((,class (:inherit font-lock-string-face)))) - `(font-latex-warning-face ((,class (:inherit font-lock-warning-face)))) - - ;; > Elixir - `(elixir-attribute-face ((,class (:foreground ,nord-annotation)))) - `(elixir-atom-face ((,class (:foreground ,nord4 :weight bold)))) - - ;; > Enhanced Ruby - `(enh-ruby-heredoc-delimiter-face ((,class (:foreground ,nord14)))) - `(enh-ruby-op-face ((,class (:foreground ,nord9)))) - `(enh-ruby-regexp-delimiter-face ((,class (:foreground ,nord13)))) - `(enh-ruby-regexp-face ((,class (:foreground ,nord13)))) - `(enh-ruby-string-delimiter-face ((,class (:foreground ,nord14)))) - `(erm-syn-errline ((,class (:foreground ,nord11 :underline t)))) - `(erm-syn-warnline ((,class (:foreground ,nord13 :underline t)))) - - ;; > Java Development Environment for Emacs - `(jdee-db-active-breakpoint-face ((,class (:background ,nord2 :weight bold)))) - `(jdee-bug-breakpoint-cursor ((,class (:background ,nord2)))) - `(jdee-db-requested-breakpoint-face ((,class (:foreground ,nord13 :background ,nord2 :weight bold)))) - `(jdee-db-spec-breakpoint-face ((,class (:foreground ,nord14 :background ,nord2 :weight bold)))) - `(jdee-font-lock-api-face ((,class (:foreground ,nord4)))) - `(jdee-font-lock-code-face ((,class (:slant italic)))) - `(jdee-font-lock-constant-face ((,class (:foreground ,nord-keyword)))) - `(jdee-font-lock-constructor-face ((,class (:foreground ,nord-method)))) - `(jdee-font-lock-doc-tag-face ((,class (:foreground ,nord7)))) - `(jdee-font-lock-link-face ((,class (:underline t)))) - `(jdee-font-lock-modifier-face ((,class (:foreground ,nord-keyword)))) - `(jdee-font-lock-number-face ((,class (:foreground ,nord-numeric)))) - `(jdee-font-lock-operator-fac ((,class (:foreground ,nord-operator)))) - `(jdee-font-lock-package-face ((,class (:foreground ,nord-class)))) - `(jdee-font-lock-pre-face ((,class (:foreground ,nord-comment :slant italic)))) - `(jdee-font-lock-private-face ((,class (:foreground ,nord-keyword)))) - `(jdee-font-lock-public-face ((,class (:foreground ,nord-keyword)))) - `(jdee-font-lock-variable-face ((,class (:foreground ,nord-variable)))) - - ;; > JavaScript 2 - `(js2-function-call ((,class (:foreground ,nord8)))) - `(js2-private-function-call ((,class (:foreground ,nord8)))) - `(js2-jsdoc-html-tag-delimiter ((,class (:foreground ,nord6)))) - `(js2-jsdoc-html-tag-name ((,class (:foreground ,nord9)))) - `(js2-external-variable ((,class (:foreground ,nord4)))) - `(js2-function-param ((,class (:foreground ,nord4)))) - `(js2-jsdoc-value ((,class (:foreground ,nord-comment)))) - `(js2-jsdoc-tag ((,class (:foreground ,nord7)))) - `(js2-jsdoc-type ((,class (:foreground ,nord7)))) - `(js2-private-member ((,class (:foreground ,nord4)))) - `(js2-object-property ((,class (:foreground ,nord4)))) - `(js2-error ((,class (:foreground ,nord11)))) - `(js2-warning ((,class (:foreground ,nord13)))) - `(js2-instance-member ((,class (:foreground ,nord4)))) - - ;; > JavaScript 3 - `(js3-error-face ((,class (:foreground ,nord11)))) - `(js3-external-variable-face ((,class (:foreground ,nord4)))) - `(js3-function-param-face ((,class (:foreground ,nord4)))) - `(js3-instance-member-face ((,class (:foreground ,nord4)))) - `(js3-jsdoc-html-tag-delimiter-face ((,class (:foreground ,nord6)))) - `(js3-jsdoc-html-tag-name-face ((,class (:foreground ,nord9)))) - `(js3-jsdoc-tag-face ((,class (:foreground ,nord9)))) - `(js3-jsdoc-type-face ((,class (:foreground ,nord7)))) - `(js3-jsdoc-value-face ((,class (:foreground ,nord4)))) - `(js3-magic-paren-face ((,class (:inherit show-paren-match-face)))) - `(js3-private-function-call-face ((,class (:foreground ,nord8)))) - `(js3-private-member-face ((,class (:foreground ,nord4)))) - `(js3-warning-face ((,class (:foreground ,nord13)))) - - ;; > Markdown - `(markdown-blockquote-face ((,class (:foreground ,nord-comment)))) - `(markdown-bold-face ((,class (:inherit bold)))) - `(markdown-header-face-1 ((,class (:foreground ,nord8)))) - `(markdown-header-face-2 ((,class (:foreground ,nord8)))) - `(markdown-header-face-3 ((,class (:foreground ,nord8)))) - `(markdown-header-face-4 ((,class (:foreground ,nord8)))) - `(markdown-header-face-5 ((,class (:foreground ,nord8)))) - `(markdown-header-face-6 ((,class (:foreground ,nord8)))) - `(markdown-inline-code-face ((,class (:foreground ,nord7)))) - `(markdown-italic-face ((,class (:inherit italic)))) - `(markdown-link-face ((,class (:foreground ,nord8)))) - `(markdown-markup-face ((,class (:foreground ,nord9)))) - `(markdown-reference-face ((,class (:inherit markdown-link-face)))) - `(markdown-url-face ((,class (:foreground ,nord4 :underline t)))) - - ;; > Rainbow Delimeters - `(rainbow-delimiters-depth-1-face ((,class :foreground ,nord7))) - `(rainbow-delimiters-depth-2-face ((,class :foreground ,nord8))) - `(rainbow-delimiters-depth-3-face ((,class :foreground ,nord9))) - `(rainbow-delimiters-depth-4-face ((,class :foreground ,nord10))) - `(rainbow-delimiters-depth-5-face ((,class :foreground ,nord12))) - `(rainbow-delimiters-depth-6-face ((,class :foreground ,nord13))) - `(rainbow-delimiters-depth-7-face ((,class :foreground ,nord14))) - `(rainbow-delimiters-depth-8-face ((,class :foreground ,nord15))) - `(rainbow-delimiters-unmatched-face ((,class :foreground ,nord11))) - - ;; > Web Mode - `(web-mode-attr-tag-custom-face ((,class (:foreground ,nord-attribute)))) - `(web-mode-builtin-face ((,class (:foreground ,nord-keyword)))) - `(web-mode-comment-face ((,class (:foreground ,nord-comment)))) - `(web-mode-comment-keyword-face ((,class (:foreground ,nord-comment)))) - `(web-mode-constant-face ((,class (:foreground ,nord-variable)))) - `(web-mode-css-at-rule-face ((,class (:foreground ,nord-annotation)))) - `(web-mode-css-function-face ((,class (:foreground ,nord-method)))) - `(web-mode-css-property-name-face ((,class (:foreground ,nord-keyword)))) - `(web-mode-css-pseudo-class-face ((,class (:foreground ,nord-class)))) - `(web-mode-css-selector-face ((,class (:foreground ,nord-keyword)))) - `(web-mode-css-string-face ((,class (:foreground ,nord-string)))) - `(web-mode-doctype-face ((,class (:foreground ,nord-preprocessor)))) - `(web-mode-function-call-face ((,class (:foreground ,nord-method)))) - `(web-mode-function-name-face ((,class (:foreground ,nord-method)))) - `(web-mode-html-attr-name-face ((,class (:foreground ,nord-attribute)))) - `(web-mode-html-attr-equal-face ((,class (:foreground ,nord-punctuation)))) - `(web-mode-html-attr-value-face ((,class (:foreground ,nord-string)))) - `(web-mode-html-entity-face ((,class (:foreground ,nord-keyword)))) - `(web-mode-html-tag-bracket-face ((,class (:foreground ,nord-punctuation)))) - `(web-mode-html-tag-custom-face ((,class (:foreground ,nord-tag)))) - `(web-mode-html-tag-face ((,class (:foreground ,nord-tag)))) - `(web-mode-html-tag-namespaced-face ((,class (:foreground ,nord-keyword)))) - `(web-mode-json-key-face ((,class (:foreground ,nord-class)))) - `(web-mode-json-string-face ((,class (:foreground ,nord-string)))) - `(web-mode-keyword-face ((,class (:foreground ,nord-keyword)))) - `(web-mode-preprocessor-face ((,class (:foreground ,nord-preprocessor)))) - `(web-mode-string-face ((,class (:foreground ,nord-string)))) - `(web-mode-symbol-face ((,class (:foreground ,nord-variable)))) - `(web-mode-type-face ((,class (:foreground ,nord-class)))) - `(web-mode-warning-face ((,class (:inherit ,font-lock-warning-face)))) - `(web-mode-variable-name-face ((,class (:foreground ,nord-variable)))) - - ;; +--- UI ---+ - ;; > Anzu - `(anzu-mode-line ((,class (:foreground, nord8)))) - `(anzu-mode-line-no-match ((,class (:foreground, nord11)))) - - ;; > Avy - `(avy-lead-face ((,class (:background ,nord11 :foreground ,nord5)))) - `(avy-lead-face-0 ((,class (:background ,nord10 :foreground ,nord5)))) - `(avy-lead-face-1 ((,class (:background ,nord3 :foreground ,nord5)))) - `(avy-lead-face-2 ((,class (:background ,nord15 :foreground ,nord5)))) - - ;; > Company - `(company-echo-common ((,class (:foreground ,nord0 :background ,nord4)))) - `(company-preview ((,class (:foreground ,nord4 :background ,nord10)))) - `(company-preview-common ((,class (:foreground ,nord0 :background ,nord8)))) - `(company-preview-search ((,class (:foreground ,nord0 :background ,nord8)))) - `(company-scrollbar-bg ((,class (:foreground ,nord1 :background ,nord1)))) - `(company-scrollbar-fg ((,class (:foreground ,nord2 :background ,nord2)))) - `(company-template-field ((,class (:foreground ,nord0 :background ,nord7)))) - `(company-tooltip ((,class (:foreground ,nord4 :background ,nord2)))) - `(company-tooltip-annotation ((,class (:foreground ,nord12)))) - `(company-tooltip-annotation-selection ((,class (:foreground ,nord12 :weight bold)))) - `(company-tooltip-common ((,class (:foreground ,nord8)))) - `(company-tooltip-common-selection ((,class (:foreground ,nord8 :background ,nord3)))) - `(company-tooltip-mouse ((,class (:inherit highlight)))) - `(company-tooltip-selection ((,class (:background ,nord3 :weight bold)))) - - ;; > diff-hl - `(diff-hl-change ((,class (:background ,nord13)))) - `(diff-hl-insert ((,class (:background ,nord14)))) - `(diff-hl-delete ((,class (:background ,nord11)))) - - ;; > Evil - `(evil-ex-info ((,class (:foreground ,nord8)))) - `(evil-ex-substitute-replacement ((,class (:foreground ,nord9)))) - `(evil-ex-substitute-matches ((,class (:inherit isearch)))) - - ;; > Flycheck - `(flycheck-error ((,class (:underline (:style wave :color ,nord11))))) - `(flycheck-fringe-error ((,class (:foreground ,nord11 :weight bold)))) - `(flycheck-fringe-info ((,class (:foreground ,nord8 :weight bold)))) - `(flycheck-fringe-warning ((,class (:foreground ,nord13 :weight bold)))) - `(flycheck-info ((,class (:underline (:style wave :color ,nord8))))) - `(flycheck-warning ((,class (:underline (:style wave :color ,nord13))))) - - ;; > Git Gutter - `(git-gutter:modified ((,class (:foreground ,nord13)))) - `(git-gutter:added ((,class (:foreground ,nord14)))) - `(git-gutter:deleted ((,class (:foreground ,nord11)))) - - ;; > Git Gutter Plus - `(git-gutter+-modified ((,class (:foreground ,nord13)))) - `(git-gutter+-added ((,class (:foreground ,nord14)))) - `(git-gutter+-deleted ((,class (:foreground ,nord11)))) - - ;; > Helm - `(helm-bookmark-addressbook ((,class (:foreground ,nord7)))) - `(helm-bookmark-directory ((,class (:foreground ,nord9)))) - `(helm-bookmark-file ((,class (:foreground ,nord8)))) - `(helm-bookmark-gnus ((,class (:foreground ,nord10)))) - `(helm-bookmark-info ((,class (:foreground ,nord14)))) - `(helm-bookmark-man ((,class (:foreground ,nord4)))) - `(helm-bookmark-w3m ((,class (:foreground ,nord9)))) - `(helm-buffer-directory ((,class (:foreground ,nord9)))) - `(helm-buffer-file ((,class (:foreground ,nord8)))) - `(helm-buffer-not-saved ((,class (:foreground ,nord13)))) - `(helm-buffer-process ((,class (:foreground ,nord10)))) - `(helm-candidate-number ((,class (:foreground ,nord4 :weight bold)))) - `(helm-candidate-number-suspended ((,class (:foreground ,nord4)))) - `(helm-ff-directory ((,class (:foreground ,nord9 :weight bold)))) - `(helm-ff-dirs ((,class (:foreground ,nord9)))) - `(helm-ff-dotted-director ((,class (:foreground ,nord9 :underline t)))) - `(helm-ff-dotted-symlink-director ((,class (:foreground ,nord7 :weight bold)))) - `(helm-ff-executable ((,class (:foreground ,nord8)))) - `(helm-ff-file ((,class (:foreground ,nord4)))) - `(helm-ff-invalid-symlink ((,class (:foreground ,nord11 :weight bold)))) - `(helm-ff-prefix ((,class (:foreground ,nord0 :background ,nord9)))) - `(helm-ff-symlink ((,class (:foreground ,nord7)))) - `(helm-grep-cmd-line ((,class (:foreground ,nord4 :background ,nord0)))) - `(helm-grep-file ((,class (:foreground ,nord8)))) - `(helm-grep-finish ((,class (:foreground ,nord5)))) - `(helm-grep-lineno ((,class (:foreground ,nord4)))) - `(helm-grep-match ((,class (:inherit isearch)))) - `(helm-grep-running ((,class (:foreground ,nord8)))) - `(helm-header ((,class (:foreground ,nord9 :background ,nord2)))) - `(helm-header-line-left-margin ((,class (:foreground ,nord9 :background ,nord2)))) - `(helm-history-deleted ((,class (:foreground ,nord11)))) - `(helm-history-remote ((,class (:foreground ,nord4)))) - `(helm-lisp-completion-info ((,class (:foreground ,nord4 :weight bold)))) - `(helm-lisp-show-completion ((,class (:inherit isearch)))) - `(helm-locate-finish ((,class (:foreground ,nord14)))) - `(helm-match ((,class (:foreground ,nord8)))) - `(helm-match-item ((,class (:inherit isearch)))) - `(helm-moccur-buffer ((,class (:foreground ,nord8)))) - `(helm-resume-need-update ((,class (:foreground ,nord0 :background ,nord13)))) - `(helm-selection ((,class (:inherit highlight)))) - `(helm-selection-line ((,class (:background ,nord2)))) - `(helm-source-header ((,class (:height 1.44 :foreground ,nord8 :background ,nord2)))) - `(helm-swoop-line-number-face ((,class (:foreground ,nord4 :background ,nord0)))) - `(helm-swoop-target-word-face ((,class (:foreground ,nord0 :background ,nord7)))) - `(helm-swoop-target-line-face ((,class (:background ,nord13 :foreground ,nord3)))) - `(helm-swoop-target-line-block-face ((,class (:background ,nord13 :foreground ,nord3)))) - `(helm-separator ((,class (:background ,nord2)))) - `(helm-visible-mark ((,class (:background ,nord2)))) - - ;; > Magit - `(magit-branch ((,class (:foreground ,nord7 :weight bold)))) - `(magit-diff-context-highlight ((,class (:background ,nord2)))) - `(magit-diff-file-header ((,class (:foreground ,nord8 :box (:color ,nord8))))) - `(magit-diffstat-added ((,class (:foreground ,nord14)))) - `(magit-diffstat-removed ((,class (:foreground ,nord11)))) - `(magit-hash ((,class (:foreground ,nord8)))) - `(magit-hunk-heading ((,class (:foreground ,nord9)))) - `(magit-hunk-heading-highlight ((,class (:foreground ,nord9 :background ,nord2)))) - `(magit-item-highlight ((,class (:foreground ,nord8 :background ,nord2)))) - `(magit-log-author ((,class (:foreground ,nord7)))) - `(magit-process-ng ((,class (:foreground ,nord13 :weight bold)))) - `(magit-process-ok ((,class (:foreground ,nord14 :weight bold)))) - `(magit-section-heading ((,class (:foreground ,nord7 :weight bold)))) - `(magit-section-highlight ((,class (:background ,nord2)))) - - ;; > MU4E - `(mu4e-header-marks-face ((,class (:foreground ,nord9)))) - `(mu4e-title-face ((,class (:foreground ,nord8)))) - `(mu4e-header-key-face ((,class (:foreground ,nord8)))) - `(mu4e-highlight-face ((,class (:highlight)))) - `(mu4e-flagged-face ((,class (:foreground ,nord13)))) - `(mu4e-unread-face ((,class (:foreground ,nord13 :weight bold)))) - `(mu4e-link-face ((,class (:underline t)))) - - ;; > Powerline - `(powerline-active1 ((,class (:foreground ,nord4 :background ,nord1)))) - `(powerline-active2 ((,class (:foreground ,nord4 :background ,nord3)))) - `(powerline-inactive1 ((,class (:background ,nord2)))) - `(powerline-inactive2 ((,class (:background ,nord2)))) - - ;; > Powerline Evil - `(powerline-evil-base-face ((,class (:foreground ,nord4)))) - `(powerline-evil-normal-face ((,class (:background ,nord8)))) - `(powerline-evil-insert-face ((,class (:foreground ,nord0 :background ,nord4)))) - `(powerline-evil-visual-face ((,class (:foreground ,nord0 :background ,nord7)))) - `(powerline-evil-replace-face ((,class (:foreground ,nord0 :background ,nord9)))) - - ;; > NeoTree - `(neo-banner-face ((,class (:foreground ,nord10)))) - `(neo-dir-link-face ((,class (:foreground ,nord9)))) - `(neo-expand-btn-face ((,class (:foreground ,nord6 :bold t)))) - `(neo-file-link-face ((,class (:foreground ,nord4)))) - `(neo-root-dir-face ((,class (:foreground ,nord7 :weight bold)))) - `(neo-vc-added-face ((,class (:foreground ,nord14)))) - `(neo-vc-conflict-face ((,class (:foreground ,nord11)))) - `(neo-vc-default-face ((,class (:foreground ,nord4)))) - `(neo-vc-edited-face ((,class (:foreground ,nord13)))) - `(neo-vc-ignored-face ((,class (:foreground ,nord3)))) - `(neo-vc-missing-face ((,class (:foreground ,nord12)))) - `(neo-vc-needs-merge-face ((,class (:background ,nord12 :foreground ,nord4)))) - `(neo-vc-needs-update-face ((,class (:background ,nord10 :foreground ,nord4)))) - `(neo-vc-removed-face ((,class (:foreground ,nord11 :strike-through nil)))) - `(neo-vc-up-to-date-face ((,class (:foreground ,nord4)))) - `(neo-vc-user-face ((,class (:foreground ,nord4)))) - - ;; > Cider - `(cider-result-overlay-face ((t (:background unspecified)))) - - ;; > Org - `(org-level-1 ((,class (:foreground ,nord7 :weight extra-bold)))) - `(org-level-2 ((,class (:foreground ,nord8 :weight bold)))) - `(org-level-3 ((,class (:foreground ,nord9 :weight semi-bold)))) - `(org-level-4 ((,class (:foreground ,nord10 :weight normal)))) - `(org-level-5 ((,class (:inherit org-level-4)))) - `(org-level-6 ((,class (:inherit org-level-4)))) - `(org-level-7 ((,class (:inherit org-level-4)))) - `(org-level-8 ((,class (:inherit org-level-4)))) - `(org-agenda-structure ((,class (:foreground ,nord9)))) - `(org-agenda-date ((,class (:foreground ,nord8 :underline nil)))) - `(org-agenda-done ((,class (:foreground ,nord14)))) - `(org-agenda-dimmed-todo-face ((,class (:background ,nord13)))) - `(org-block ((,class (:foreground ,nord4)))) - `(org-block-background ((,class (:background ,nord0)))) - `(org-block-begin-line ((,class (:foreground ,nord7)))) - `(org-block-end-line ((,class (:foreground ,nord7)))) - `(org-checkbox ((,class (:foreground ,nord9)))) - `(org-checkbox-statistics-done ((,class (:foreground ,nord14)))) - `(org-checkbox-statistics-todo ((,class (:foreground ,nord13)))) - `(org-code ((,class (:foreground ,nord7)))) - `(org-column ((,class (:background ,nord2)))) - `(org-column-title ((,class (:inherit org-column :weight bold :underline t)))) - `(org-date ((,class (:foreground ,nord8)))) - `(org-document-info ((,class (:foreground ,nord4)))) - `(org-document-info-keyword ((,class (:foreground ,nord3 :weight bold)))) - `(org-document-title ((,class (:foreground ,nord8 :weight bold)))) - `(org-done ((,class (:foreground ,nord14 :weight bold)))) - `(org-ellipsis ((,class (:foreground ,nord3)))) - `(org-footnote ((,class (:foreground ,nord8)))) - `(org-formula ((,class (:foreground ,nord9)))) - `(org-hide ((,class (:foreground ,nord0 :background ,nord0)))) - `(org-link ((,class (:underline t)))) - `(org-scheduled ((,class (:foreground ,nord14)))) - `(org-scheduled-previously ((,class (:foreground ,nord13)))) - `(org-scheduled-today ((,class (:foreground ,nord8)))) - `(org-special-keyword ((,class (:foreground ,nord9)))) - `(org-table ((,class (:foreground ,nord9)))) - `(org-todo ((,class (:foreground ,nord13 :weight bold)))) - `(org-upcoming-deadline ((,class (:foreground ,nord12)))) - `(org-warning ((,class (:foreground ,nord13 :weight bold)))) - `(font-latex-bold-face ((,class (:inherit bold)))) - `(font-latex-italic-face ((,class (:slant italic)))) - `(font-latex-string-face ((,class (:foreground ,nord14)))) - `(font-latex-match-reference-keywords ((,class (:foreground ,nord9)))) - `(font-latex-match-variable-keywords ((,class (:foreground ,nord4)))) - `(ido-only-match ((,class (:foreground ,nord8)))) - `(org-sexp-date ((,class (:foreground ,nord7)))) - `(ido-first-match ((,class (:foreground ,nord8 :weight bold)))) - `(ido-subdir ((,class (:foreground ,nord9)))) - `(org-quote ((,class (:inherit org-block :slant italic)))) - `(org-verse ((,class (:inherit org-block :slant italic)))) - `(org-agenda-date-weekend ((,class (:foreground ,nord9)))) - `(org-agenda-date-today ((,class (:foreground ,nord8 :weight bold)))) - `(org-agenda-done ((,class (:foreground ,nord14)))) - `(org-verbatim ((,class (:foreground ,nord7)))) - - ;; > ivy-mode - `(ivy-current-match ((,class (:inherit region)))) - `(ivy-minibuffer-match-face-1 ((,class (:inherit default)))) - `(ivy-minibuffer-match-face-2 ((,class (:background ,nord7 :foreground ,nord0)))) - `(ivy-minibuffer-match-face-3 ((,class (:background ,nord8 :foreground ,nord0)))) - `(ivy-minibuffer-match-face-4 ((,class (:background ,nord9 :foreground ,nord0)))) - `(ivy-remote ((,class (:foreground ,nord14)))) - `(ivy-posframe ((,class (:background ,nord1)))) - `(ivy-posframe-border ((,class (:background ,nord1)))) - `(ivy-remote ((,class (:foreground ,nord14)))) - - ;; > perspective - `(persp-selected-face ((,class (:foreground ,nord8 :weight bold)))))) - -;;;###autoload -(when (and (boundp 'custom-theme-load-path) load-file-name) - (add-to-list 'custom-theme-load-path - (file-name-as-directory (file-name-directory load-file-name)))) - -(provide-theme 'nord) - -;; Local Variables: -;; no-byte-compile: t -;; indent-tabs-mode: nil -;; End: - -;;; nord-theme.el ends here diff --git a/config/extra/emacs/themes/tlast-theme.el b/config/extra/emacs/themes/tlast-theme.el deleted file mode 100644 index a6ed15f..0000000 --- a/config/extra/emacs/themes/tlast-theme.el +++ /dev/null @@ -1,306 +0,0 @@ -;;; tlast-theme.el --- Theme - -;; Copyright (C) 2023 , tlast - -;; Author: tlast -;; Version: 0.1 -;; Package-Requires: ((emacs "24.1")) -;; Created with ThemeCreator, https://github.com/mswift42/themecreator. - -;; This program is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see . - -;; This file is not part of Emacs. - -;;; Commentary: -;;; tlast theme created by tlast in 2023 - -;;; Code: - -(deftheme tlast) -(let ((class '((class color) (min-colors 89))) - (fg1 "#62a0ea") - (fg2 "#5a93d7") - (fg3 "#5286c5") - (fg4 "#4a7ab2") - (fg6 "#88b7ef") - (bg1 "#3d3846") - (bg2 "#4d4855") - (bg3 "#5c5864") - (bg4 "#6c6872") - (builtin "#26a269") - (keyword "#3584e4") - (const "#ffffff") - (comment "#77767b") - (func "#99c1f1") - (str "#57e389") - (type "#f6d32d") - (var "#ff7800") - (selection "#dc8add") - (warning "#ff0000") - (warning2 "#ff8800") - (unspec (when (>= emacs-major-version 29) 'unspecified))) - (custom-theme-set-faces - 'tlast - `(default ((,class (:background ,bg1 :foreground ,fg1)))) - `(font-lock-builtin-face ((,class (:foreground ,builtin)))) - `(font-lock-comment-face ((,class (:foreground ,comment)))) - `(font-lock-negation-char-face ((,class (:foreground ,const)))) - `(font-lock-reference-face ((,class (:foreground ,const)))) - `(font-lock-constant-face ((,class (:foreground ,const)))) - `(font-lock-doc-face ((,class (:foreground ,comment)))) - `(font-lock-function-name-face ((,class (:foreground ,func )))) - `(font-lock-keyword-face ((,class (:bold ,class :foreground ,keyword)))) - `(font-lock-string-face ((,class (:foreground ,str)))) - `(font-lock-type-face ((,class (:foreground ,type )))) - `(font-lock-variable-name-face ((,class (:foreground ,var)))) - `(font-lock-warning-face ((,class (:foreground ,warning :background ,bg2)))) - `(term-color-black ((,class (:foreground ,fg2 :background ,unspec)))) - ;; `(region ((,class (:background ,fg1 :foreground ,bg1)))) - `(region ((,class (:background ,selection)))) - `(highlight ((,class (:foreground ,fg3 :background ,bg3)))) - `(hl-line ((,class (:background ,bg2)))) - `(fringe ((,class (:background ,bg2 :foreground ,fg4)))) - `(cursor ((,class (:background ,fg4)))) - `(isearch ((,class (:bold t :foreground ,warning :background ,bg3)))) - `(mode-line ((,class (:box (:line-width 1 :color nil) :bold t :foreground ,fg4 :background ,bg2)))) - `(mode-line-inactive ((,class (:box (:line-width 1 :color nil :style pressed-button) :foreground ,var :background ,bg1 :weight normal)))) - `(mode-line-buffer-id ((,class (:bold t :foreground ,func :background ,unspec)))) - `(mode-line-highlight ((,class (:foreground ,keyword :box nil :weight bold)))) - `(mode-line-emphasis ((,class (:foreground ,fg1)))) - `(vertical-border ((,class (:foreground ,fg3)))) - `(minibuffer-prompt ((,class (:bold t :foreground ,keyword)))) - `(default-italic ((,class (:italic t)))) - `(link ((,class (:foreground ,const :underline t)))) - `(org-code ((,class (:foreground ,fg2)))) - `(org-hide ((,class (:foreground ,fg4)))) - `(org-level-1 ((,class (:bold t :foreground ,fg2 :height 1.1)))) - `(org-level-2 ((,class (:bold nil :foreground ,fg3)))) - `(org-level-3 ((,class (:bold t :foreground ,fg4)))) - `(org-level-4 ((,class (:bold nil :foreground ,bg4)))) - `(org-date ((,class (:underline t :foreground ,var) ))) - `(org-footnote ((,class (:underline t :foreground ,fg4)))) - `(org-link ((,class (:underline t :foreground ,type )))) - `(org-special-keyword ((,class (:foreground ,func)))) - `(org-block ((,class (:foreground ,fg3)))) - `(org-quote ((,class (:inherit org-block :slant italic)))) - `(org-verse ((,class (:inherit org-block :slant italic)))) - `(org-todo ((,class (:box (:line-width 1 :color ,fg3) :foreground ,keyword :bold t)))) - `(org-done ((,class (:box (:line-width 1 :color ,bg3) :bold t :foreground ,bg4)))) - `(org-warning ((,class (:underline t :foreground ,warning)))) - `(org-agenda-structure ((,class (:weight bold :foreground ,fg3 :box (:color ,fg4) :background ,bg3)))) - `(org-agenda-date ((,class (:foreground ,var :height 1.1 )))) - `(org-agenda-date-weekend ((,class (:weight normal :foreground ,fg4)))) - `(org-agenda-date-today ((,class (:weight bold :foreground ,keyword :height 1.4)))) - `(org-agenda-done ((,class (:foreground ,bg4)))) - `(org-scheduled ((,class (:foreground ,type)))) - `(org-scheduled-today ((,class (:foreground ,func :weight bold :height 1.2)))) - `(org-ellipsis ((,class (:foreground ,builtin)))) - `(org-verbatim ((,class (:foreground ,fg4)))) - `(org-document-info-keyword ((,class (:foreground ,func)))) - `(font-latex-bold-face ((,class (:foreground ,type)))) - `(font-latex-italic-face ((,class (:foreground ,var :italic t)))) - `(font-latex-string-face ((,class (:foreground ,str)))) - `(font-latex-match-reference-keywords ((,class (:foreground ,const)))) - `(font-latex-match-variable-keywords ((,class (:foreground ,var)))) - `(ido-only-match ((,class (:foreground ,warning)))) - `(org-sexp-date ((,class (:foreground ,fg4)))) - `(ido-first-match ((,class (:foreground ,keyword :bold t)))) - `(ivy-current-match ((,class (:foreground ,fg3 :inherit highlight :underline t)))) - `(gnus-header-content ((,class (:foreground ,keyword)))) - `(gnus-header-from ((,class (:foreground ,var)))) - `(gnus-header-name ((,class (:foreground ,type)))) - `(gnus-header-subject ((,class (:foreground ,func :bold t)))) - `(mu4e-view-url-number-face ((,class (:foreground ,type)))) - `(mu4e-cited-1-face ((,class (:foreground ,fg2)))) - `(mu4e-cited-7-face ((,class (:foreground ,fg3)))) - `(mu4e-header-marks-face ((,class (:foreground ,type)))) - `(ffap ((,class (:foreground ,fg4)))) - `(js2-private-function-call ((,class (:foreground ,const)))) - `(js2-jsdoc-html-tag-delimiter ((,class (:foreground ,str)))) - `(js2-jsdoc-html-tag-name ((,class (:foreground ,var)))) - `(js2-external-variable ((,class (:foreground ,type )))) - `(js2-function-param ((,class (:foreground ,const)))) - `(js2-jsdoc-value ((,class (:foreground ,str)))) - `(js2-private-member ((,class (:foreground ,fg3)))) - `(js3-warning-face ((,class (:underline ,keyword)))) - `(js3-error-face ((,class (:underline ,warning)))) - `(js3-external-variable-face ((,class (:foreground ,var)))) - `(js3-function-param-face ((,class (:foreground ,fg2)))) - `(js3-jsdoc-tag-face ((,class (:foreground ,keyword)))) - `(js3-instance-member-face ((,class (:foreground ,const)))) - `(warning ((,class (:foreground ,warning)))) - `(ac-completion-face ((,class (:underline t :foreground ,keyword)))) - `(info-quoted-name ((,class (:foreground ,builtin)))) - `(info-string ((,class (:foreground ,str)))) - `(icompletep-determined ((,class :foreground ,builtin))) - `(undo-tree-visualizer-current-face ((,class :foreground ,builtin))) - `(undo-tree-visualizer-default-face ((,class :foreground ,fg2))) - `(undo-tree-visualizer-unmodified-face ((,class :foreground ,var))) - `(undo-tree-visualizer-register-face ((,class :foreground ,type))) - `(slime-repl-inputed-output-face ((,class (:foreground ,type)))) - `(trailing-whitespace ((,class :foreground ,unspec :background ,warning))) - `(rainbow-delimiters-depth-1-face ((,class :foreground ,fg1))) - `(rainbow-delimiters-depth-2-face ((,class :foreground ,type))) - `(rainbow-delimiters-depth-3-face ((,class :foreground ,var))) - `(rainbow-delimiters-depth-4-face ((,class :foreground ,const))) - `(rainbow-delimiters-depth-5-face ((,class :foreground ,keyword))) - `(rainbow-delimiters-depth-6-face ((,class :foreground ,fg1))) - `(rainbow-delimiters-depth-7-face ((,class :foreground ,type))) - `(rainbow-delimiters-depth-8-face ((,class :foreground ,var))) - `(magit-item-highlight ((,class :background ,bg3))) - `(magit-section-heading ((,class (:foreground ,keyword :weight bold)))) - `(magit-hunk-heading ((,class (:background ,bg3)))) - `(magit-section-highlight ((,class (:background ,bg2)))) - `(magit-hunk-heading-highlight ((,class (:background ,bg3)))) - `(magit-diff-context-highlight ((,class (:background ,bg3 :foreground ,fg3)))) - `(magit-diffstat-added ((,class (:foreground ,type)))) - `(magit-diffstat-removed ((,class (:foreground ,var)))) - `(magit-process-ok ((,class (:foreground ,func :weight bold)))) - `(magit-process-ng ((,class (:foreground ,warning :weight bold)))) - `(magit-branch ((,class (:foreground ,const :weight bold)))) - `(magit-log-author ((,class (:foreground ,fg3)))) - `(magit-hash ((,class (:foreground ,fg2)))) - `(magit-diff-file-header ((,class (:foreground ,fg2 :background ,bg3)))) - `(lazy-highlight ((,class (:foreground ,fg2 :background ,bg3)))) - `(term ((,class (:foreground ,fg1 :background ,bg1)))) - `(term-color-black ((,class (:foreground ,bg3 :background ,bg3)))) - `(term-color-blue ((,class (:foreground ,func :background ,func)))) - `(term-color-red ((,class (:foreground ,keyword :background ,bg3)))) - `(term-color-green ((,class (:foreground ,type :background ,bg3)))) - `(term-color-yellow ((,class (:foreground ,var :background ,var)))) - `(term-color-magenta ((,class (:foreground ,builtin :background ,builtin)))) - `(term-color-cyan ((,class (:foreground ,str :background ,str)))) - `(term-color-white ((,class (:foreground ,fg2 :background ,fg2)))) - `(rainbow-delimiters-unmatched-face ((,class :foreground ,warning))) - `(helm-header ((,class (:foreground ,fg2 :background ,bg1 :underline nil :box nil)))) - `(helm-source-header ((,class (:foreground ,keyword :background ,bg1 :underline nil :weight bold)))) - `(helm-selection ((,class (:background ,bg2 :underline nil)))) - `(helm-selection-line ((,class (:background ,bg2)))) - `(helm-visible-mark ((,class (:foreground ,bg1 :background ,bg3)))) - `(helm-candidate-number ((,class (:foreground ,bg1 :background ,fg1)))) - `(helm-separator ((,class (:foreground ,type :background ,bg1)))) - `(helm-time-zone-current ((,class (:foreground ,builtin :background ,bg1)))) - `(helm-time-zone-home ((,class (:foreground ,type :background ,bg1)))) - `(helm-buffer-not-saved ((,class (:foreground ,type :background ,bg1)))) - `(helm-buffer-process ((,class (:foreground ,builtin :background ,bg1)))) - `(helm-buffer-saved-out ((,class (:foreground ,fg1 :background ,bg1)))) - `(helm-buffer-size ((,class (:foreground ,fg1 :background ,bg1)))) - `(helm-ff-directory ((,class (:foreground ,func :background ,bg1 :weight bold)))) - `(helm-ff-file ((,class (:foreground ,fg1 :background ,bg1 :weight normal)))) - `(helm-ff-executable ((,class (:foreground ,var :background ,bg1 :weight normal)))) - `(helm-ff-invalid-symlink ((,class (:foreground ,warning2 :background ,bg1 :weight bold)))) - `(helm-ff-symlink ((,class (:foreground ,keyword :background ,bg1 :weight bold)))) - `(helm-ff-prefix ((,class (:foreground ,bg1 :background ,keyword :weight normal)))) - `(helm-grep-cmd-line ((,class (:foreground ,fg1 :background ,bg1)))) - `(helm-grep-file ((,class (:foreground ,fg1 :background ,bg1)))) - `(helm-grep-finish ((,class (:foreground ,fg2 :background ,bg1)))) - `(helm-grep-lineno ((,class (:foreground ,fg1 :background ,bg1)))) - `(helm-grep-match ((,class (:foreground ,unspec :background ,unspec :inherit helm-match)))) - `(helm-grep-running ((,class (:foreground ,func :background ,bg1)))) - `(helm-moccur-buffer ((,class (:foreground ,func :background ,bg1)))) - `(helm-source-go-package-godoc-description ((,class (:foreground ,str)))) - `(helm-bookmark-w3m ((,class (:foreground ,type)))) - `(company-echo-common ((,class (:foreground ,bg1 :background ,fg1)))) - `(company-preview ((,class (:background ,bg1 :foreground ,var)))) - `(company-preview-common ((,class (:foreground ,bg2 :foreground ,fg3)))) - `(company-preview-search ((,class (:foreground ,type :background ,bg1)))) - `(company-scrollbar-bg ((,class (:background ,bg3)))) - `(company-scrollbar-fg ((,class (:foreground ,keyword)))) - `(company-tooltip ((,class (:foreground ,fg2 :background ,bg2 :bold t)))) - `(company-tooltop-annotation ((,class (:foreground ,const)))) - `(company-tooltip-common ((,class ( :foreground ,fg3)))) - `(company-tooltip-common-selection ((,class (:foreground ,str)))) - `(company-tooltip-mouse ((,class (:inherit highlight)))) - `(company-tooltip-selection ((,class (:background ,bg3 :foreground ,fg3)))) - `(company-template-field ((,class (:inherit region)))) - `(web-mode-builtin-face ((,class (:inherit ,font-lock-builtin-face)))) - `(web-mode-comment-face ((,class (:inherit ,font-lock-comment-face)))) - `(web-mode-constant-face ((,class (:inherit ,font-lock-constant-face)))) - `(web-mode-keyword-face ((,class (:foreground ,keyword)))) - `(web-mode-doctype-face ((,class (:inherit ,font-lock-comment-face)))) - `(web-mode-function-name-face ((,class (:inherit ,font-lock-function-name-face)))) - `(web-mode-string-face ((,class (:foreground ,str)))) - `(web-mode-type-face ((,class (:inherit ,font-lock-type-face)))) - `(web-mode-html-attr-name-face ((,class (:foreground ,func)))) - `(web-mode-html-attr-value-face ((,class (:foreground ,keyword)))) - `(web-mode-warning-face ((,class (:inherit ,font-lock-warning-face)))) - `(web-mode-html-tag-face ((,class (:foreground ,builtin)))) - `(jde-java-font-lock-package-face ((t (:foreground ,var)))) - `(jde-java-font-lock-public-face ((t (:foreground ,keyword)))) - `(jde-java-font-lock-private-face ((t (:foreground ,keyword)))) - `(jde-java-font-lock-constant-face ((t (:foreground ,const)))) - `(jde-java-font-lock-modifier-face ((t (:foreground ,fg2)))) - `(jde-jave-font-lock-protected-face ((t (:foreground ,keyword)))) - `(jde-java-font-lock-number-face ((t (:foreground ,var)))) - `(yas-field-highlight-face ((t (:background ,selection))))) - ;; Legacy - (if (< emacs-major-version 22) - (custom-theme-set-faces - 'tlast - `(show-paren-match-face ((,class (:background ,warning))))) ;; obsoleted in 22.1, removed 2016 - (custom-theme-set-faces - 'tlast - `(show-paren-match ((,class (:foreground ,bg1 :background ,str)))) - `(show-paren-mismatch ((,class (:foreground ,bg1 :background ,warning)))))) - ;; emacs >= 26.1 - (when (>= emacs-major-version 26) - (custom-theme-set-faces - 'tlast - `(line-number ((t (:inherit fringe)))) - `(line-number-current-line ((t (:inherit fringe :foreground ,fg6 :weight bold)))))) - - ;; emacs >= 27.1 - (when (>= emacs-major-version 27) - (custom-theme-set-faces - 'tlast - `(tab-line ((,class (:background ,bg2 :foreground ,fg4)))) - `(tab-line-tab ((,class (:inherit tab-line)))) - `(tab-line-tab-inactive ((,class (:background ,bg2 :foreground ,fg4)))) - `(tab-line-tab-current ((,class (:background ,bg1 :foreground ,fg1)))) - `(tab-line-highlight ((,class (:background ,bg1 :foreground ,fg2)))))) - (when (>= emacs-major-version 28) - (custom-theme-set-faces - 'tlast - `(line-number ((t (:inherit fringe)))) - `(line-number-current-line ((t (:inherit fringe :foreground ,fg6 :weight bold)))))) -;; emacs >= 27.1 -(when (>= emacs-major-version 27) - (custom-theme-set-faces - 'tlast - `(tab-line ((,class (:background ,bg2 :foreground ,fg4)))) - `(tab-line-tab ((,class (:inherit tab-line)))) - `(tab-line-tab-inactive ((,class (:background ,bg2 :foreground ,fg4)))) - `(tab-line-tab-current ((,class (:background ,bg1 :foreground ,fg1)))) - `(tab-line-highlight ((,class (:background ,bg1 :foreground ,fg2)))))) - (when (>= emacs-major-version 28) - (custom-theme-set-faces - 'tlast - `(tab-line-tab-modified ((,class (:foreground ,warning2 :weight bold)))))) - (when (boundp 'font-lock-regexp-face) - (custom-theme-set-faces - 'tlast - `(font-lock-regexp-face ((,class (:inherit font-lock-string-face :underline t))))))) - -;;;###autoload -(when load-file-name - (add-to-list 'custom-theme-load-path - (file-name-as-directory (file-name-directory load-file-name)))) - -(provide-theme 'tlast) - -;; Local Variables: -;; no-byte-compile: t -;; End: - -;;; tlast-theme.el ends here -- cgit v1.2.3 From 3f3fa5e5c9df7f43507a117b7cdbc2ddabb9d555 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Tue, 7 Nov 2023 01:24:40 +0100 Subject: concatenate dir name --- bin/guiscripts/dmfm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/guiscripts/dmfm b/bin/guiscripts/dmfm index d1dd8b8..9485469 100755 --- a/bin/guiscripts/dmfm +++ b/bin/guiscripts/dmfm @@ -2,9 +2,10 @@ while true do + dir="$(printf '%s' "$PWD" | sed "s#^$HOME#\~#;s#\([^/]\)[^/]*/#\1/#g")" file=$(find . -maxdepth 1 -mindepth 1 -not -name '.*' -printf '%y\t%f\n' | sort -k 1 -k 2 | cut -f 2- | - commander -xcd -p "$PWD>") + commander -xc -p "$dir") [ "$file" ] || break [ ! -e "$file" ] && continue -- cgit v1.2.3 From 5ad22dddaf672552cba44932f8d33860456907df Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Tue, 7 Nov 2023 01:25:21 +0100 Subject: disabled polyglot temporarily --- config/essentials/nvim/lua/user/packer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/essentials/nvim/lua/user/packer.lua b/config/essentials/nvim/lua/user/packer.lua index 8091d85..edb763d 100644 --- a/config/essentials/nvim/lua/user/packer.lua +++ b/config/essentials/nvim/lua/user/packer.lua @@ -42,7 +42,7 @@ return require('packer').startup(function(use) use('ojroques/vim-oscyank', { branch = "main" }) use("potamides/pantran.nvim") use('alx741/vinfo') - use('sheerun/vim-polyglot') + -- use('sheerun/vim-polyglot') TODO: fix error conflicting with telekasten -- use('github/copilot.vim') -- use { -- cgit v1.2.3 From 1f6c2afa699a7c30be8b538c4fa9dc32c61b3dd4 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Tue, 7 Nov 2023 01:25:37 +0100 Subject: removed symlinks --- config/wayland/waybar/config.jsonc | 79 +++++++++++++++++++- config/wayland/waybar/style.css | 143 ++++++++++++++++++++++++++++++++++++- 2 files changed, 220 insertions(+), 2 deletions(-) mode change 120000 => 100644 config/wayland/waybar/config.jsonc mode change 120000 => 100644 config/wayland/waybar/style.css diff --git a/config/wayland/waybar/config.jsonc b/config/wayland/waybar/config.jsonc deleted file mode 120000 index 1d795fc..0000000 --- a/config/wayland/waybar/config.jsonc +++ /dev/null @@ -1 +0,0 @@ -configs/hyprland.jsonc \ No newline at end of file diff --git a/config/wayland/waybar/config.jsonc b/config/wayland/waybar/config.jsonc new file mode 100644 index 0000000..9d60915 --- /dev/null +++ b/config/wayland/waybar/config.jsonc @@ -0,0 +1,78 @@ +{ + "layer": "top", + "modules-left": ["battery", "hyprland/workspaces", "mpd", "hyprland/window"], + "modules-center": ["clock"], + "modules-right": ["custom/wireguard", "network", "pulseaudio", "temperature", "cpu", "custom/memory", "custom/bluetooth", "tray"], + "mpd": { + "format": "{artist} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S})", + "artist-len": 24, + "format-disconnected": "s", + "format-stopped": "", + "state-icons": { + "playing": "", + "paused": "", + }, + "tooltip-format": "{songPosition}/{queueLength} ({volume}%)", + "on-click": "mpc toggle", + "on-scroll-up": "mpc volume +5", + "on-scroll-down": "mpc volume -5", + }, + "battery": { + "format-charging": " {capacity}%", + "on-click": "mpower", + "interval": 10, + }, + "hyprland/window": { + "format": " {}", + "separate-outputs": true, + }, + "pulseaudio": { + "scroll-step": 1, + "format": "{icon} {volume:3}%", + "format-icons": { + "default": ["", "", ""] + }, + "on-click": "pavucontrol", + }, + "temperature": { + "interval": 3, + "format": "{icon} {temperatureC}°C", + "format-icons": { + "default":["", "", "", "", ""] + }, + }, + "custom/wireguard": { + "exec": "ip addr show dev wg0", + "format": "wg0", + "restart-interval": 3, + }, + "network": { + "format-wifi": " ", + "tooltip-format-wifi": "{ifname} {essid}", + "format-ethernet": "", + "tooltip-format-ethernet": "{ifname} {ipaddr}", + "format-disconnected": "", + }, + "cpu": { + "format": " {usage:2}%", + "interval": 3, + }, + "custom/memory": { + "exec": "free -h | awk '(NR==2){ print $3 }'", + "format": "{}", + "restart-interval": 3, + }, + "clock": { + "format": "{:%R}", + "format-alt": "{:(%T) %A %d %B}", + "interval": 1, + }, + "custom/bluetooth": { + "exec": "bluetoothctl info", + "format": "", + "interval": 3, + }, + "tray": { + "spacing": 5, + } +} diff --git a/config/wayland/waybar/style.css b/config/wayland/waybar/style.css deleted file mode 120000 index 76f49ff..0000000 --- a/config/wayland/waybar/style.css +++ /dev/null @@ -1 +0,0 @@ -styles/nord.css \ No newline at end of file diff --git a/config/wayland/waybar/style.css b/config/wayland/waybar/style.css new file mode 100644 index 0000000..3b7b7f6 --- /dev/null +++ b/config/wayland/waybar/style.css @@ -0,0 +1,142 @@ +/* + ******************************************** + *░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░* + *░░█▀█░█░░░█░█░█▀▀░░░█░█░█░░░▀█▀░█▀▄░█▀█░░* + *░░█▀▀░█░░░█░█░▀▀█░░░█░█░█░░░░█░░█▀▄░█▀█░░* + *░░▀░░░▀▀▀░▀▀▀░▀▀▀░░░▀▀▀░▀▀▀░░▀░░▀░▀░▀░▀░░* + *░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░* + ******************************************** + */ +/* https://github.com/jakehamilton/dotfiles */ +/* Amazing I love it :))) */ + +* { + border: none; + border-radius: 0; + font-family: JetBrains Mono; + font-weight: bold; + font-size: 14px; + min-height: 24px; +} + +window#waybar { + background: transparent; +} + +window#waybar.hidden { + opacity: 0.2; +} + +window#waybar.termite #window, +window#waybar.Firefox #window, +window#waybar.Navigator #window, +window#waybar.PCSX2 #window { + color: #2e3440; + background: #e6e6e6; +} + +#mpd, #battery, +#network, #pulseaudio, #temperature, #cpu, #custom-memory { + margin-left: 8px; + padding-left: 16px; + padding-right: 16px; +} + +#workspaces, #mpd, #battery, +#network, #pulseaudio, #temperature, #cpu, #custom-memory, #workspaces, #clock, #tray { + margin-top: 4px; + margin-bottom: 2px; + transition: none; + border-radius: 6px; +} + +#battery { + color: #b48ead; + background: #4c566a; +} + +#workspaces { + margin-left: 12px; + background: #2e3440; +} + +#workspaces button { + transition: none; + color: #d8dee9; + background: transparent; + font-size: 16px; +} + +#workspaces button.active { + color: #a3be8c; + text-shadow: 0px 0px 1px #a3be8c; +} + +#workspaces button:hover { + transition: none; + color: #d08770; +} + +#mpd { + color: #2e3440; + background: #88c0d0; +} + +#mpd.disconnected, +#mpd.stopped { + color: #d8dee9; + background: #2e3440; +} + +#window { + color: #88c0d0; +} + +#network { + color: #2e3440; + background: #5e81ac; +} + +#pulseaudio { + color: #2e3440; + background: #b48ead; +} + +#temperature { + color: #2e3440; + background: #d08770; +} + +#cpu { + color: #2e3440; + background: #ebcb8b; +} + +#custom-memory { + color: #2e3440; + background: #a3be8c; +} + +#clock { + margin-left: 8px; + margin-right: 12px; + padding-left: 16px; + padding-right: 16px; + color: #d8dee9; + background: #2e3440; +} + +#tray { + margin-right: 12px; + color: #d8dee9; + background: transparent; +} + +#tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: #bf616a; +} + +#tray > .passive { + -gtk-icon-effect: dim; +} -- cgit v1.2.3 From fed0fd249ef9d2c2a21bb5dfb98ce53b12040354 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Tue, 7 Nov 2023 22:38:02 +0100 Subject: added completion system configuration --- config/essentials/zsh/.zshrc | 52 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/config/essentials/zsh/.zshrc b/config/essentials/zsh/.zshrc index 76ff87f..45f98e4 100644 --- a/config/essentials/zsh/.zshrc +++ b/config/essentials/zsh/.zshrc @@ -15,13 +15,61 @@ autoload -U select-word-style autoload -z edit-command-line zle -N edit-command-line zstyle ':compinstall' filename '/home/aluc/.zshrc' + +### Completion +# cache +zstyle ':completion:*' use-cache on +zstyle ':completion:*' cache-path "$ZDOTDIR/zcompcache" + +# completers +zstyle ':completion:*' completer _extensions _complete _approximate + +# format +zstyle ':completion:*:*:*:*:corrections' format '%F{yellow}!- (%e) -!%f' +zstyle ':completion:*:*:*:*:descriptions' format '%F{blue}-- %D%d --%f' +zstyle ':completion:*:*:*:*:messages' format '%F{purple}-- %d --%f' +zstyle ':completion:*:*:*:*:warnings' format '%F{red}-- no matches found --%f' +zstyle ':completion:*:default' list-prompt '%S%M matches%s' +# show a 'ls -a' like outptut when listing files +zstyle ':completion:*' file-list all +zstyle ':completion:*:*:*:*:default' list-colors ${(s.:.)LS_COLORS} + +# Group completions by categories +zstyle ':completion:*' group-name '' +zstyle ':completion:*:*:-command-:*:*' group-order aliases builtins functions commands + +zstyle ':completion:*' squeeze-slashes true + +# Prefer completing for an option (think cd -) +zstyle ':completion:*' complete-options true + +# See ZSHCOMPWID "completion matching control" +zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' + +# keep prefix when completing +zstyle ':completion:*' keep-prefix true + +# ui zstyle ':completion:*' menu select -autoload -Uz compinit +# Move around using h j k l in completion menu +zmodload zsh/complist +bindkey -M menuselect 'h' vi-backward-char +bindkey -M menuselect 'k' vi-up-line-or-history +bindkey -M menuselect 'j' vi-down-line-or-history +bindkey -M menuselect 'l' vi-forward-char +bindkey -M menuselect '^xg' clear-screen +# interactive mode +bindkey -M menuselect '^xi' vi-insert +bindkey -M menuselect '^xh' accept-and-hold # Hold +bindkey -M menuselect '^xn' accept-and-infer-next-history # Next +bindkey -M menuselect '^xu' undo # Undo + +autoload -Uz compinit; compinit + autoload -Uz surround zle -N delete-surround surround zle -N add-surround surround zle -N change-surround surround -compinit # Source files . $ZDOTDIR/functions.zsh -- cgit v1.2.3 From 020cd46cb03e5d7f0bee8cedc6ce0b666aaebe3e Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 10 Nov 2023 00:45:19 +0100 Subject: removed approxiamte completer --- config/essentials/zsh/.zshrc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/config/essentials/zsh/.zshrc b/config/essentials/zsh/.zshrc index 45f98e4..74bab34 100644 --- a/config/essentials/zsh/.zshrc +++ b/config/essentials/zsh/.zshrc @@ -22,10 +22,9 @@ zstyle ':completion:*' use-cache on zstyle ':completion:*' cache-path "$ZDOTDIR/zcompcache" # completers -zstyle ':completion:*' completer _extensions _complete _approximate +zstyle ':completion:*' completer _extensions _complete # format -zstyle ':completion:*:*:*:*:corrections' format '%F{yellow}!- (%e) -!%f' zstyle ':completion:*:*:*:*:descriptions' format '%F{blue}-- %D%d --%f' zstyle ':completion:*:*:*:*:messages' format '%F{purple}-- %d --%f' zstyle ':completion:*:*:*:*:warnings' format '%F{red}-- no matches found --%f' -- cgit v1.2.3 From 6a3577ba1635dfb6f19b66db9b1b75b06b355699 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 10 Nov 2023 11:36:56 +0100 Subject: added emacs to srcsupd --- config/essentials/zsh/aliases.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/essentials/zsh/aliases.sh b/config/essentials/zsh/aliases.sh index 10e6c23..2596285 100644 --- a/config/essentials/zsh/aliases.sh +++ b/config/essentials/zsh/aliases.sh @@ -180,7 +180,7 @@ alias gdate='date +%y_%m_%d-%T' alias tpid='tail -f /dev/null --pid' alias pwdcp='pwd | clipp' alias gw="grep -ri" -alias srcsupd='echo ~/src/{installdrier,dotfiles,password-store} | supd' +alias srcsupd='echo ~/src/{installdrier,dotfiles,password-store} ~/.config/emacs | supd' # systemctl aliases alias smc='systemctl' -- cgit v1.2.3 From f1bb5ec20fcc323ec50eff2d726c5027e18589f6 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 10 Nov 2023 11:37:58 +0100 Subject: removed completion matching control --- config/essentials/zsh/.zshrc | 3 --- 1 file changed, 3 deletions(-) diff --git a/config/essentials/zsh/.zshrc b/config/essentials/zsh/.zshrc index 74bab34..db93ac9 100644 --- a/config/essentials/zsh/.zshrc +++ b/config/essentials/zsh/.zshrc @@ -42,9 +42,6 @@ zstyle ':completion:*' squeeze-slashes true # Prefer completing for an option (think cd -) zstyle ':completion:*' complete-options true -# See ZSHCOMPWID "completion matching control" -zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' - # keep prefix when completing zstyle ':completion:*' keep-prefix true -- cgit v1.2.3 From 09e3e0945dd31005f10d7cc18ccd5b38fdb58f97 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Fri, 10 Nov 2023 11:44:35 +0100 Subject: refactor --- bin/common/targit | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/bin/common/targit b/bin/common/targit index ae046ac..ca560b3 100755 --- a/bin/common/targit +++ b/bin/common/targit @@ -1,6 +1,5 @@ #!/bin/sh -pwd=$(pwd) root="$(git rev-parse --show-toplevel)" cd "$root" || exit 1 -file="$(basename "$root" | sed 's/^\.//').tar.gz" -tar czf "$pwd/$file" $(git ls-files) +file="${root##*/}".tar.gz +tar czf "$file" $(git ls-files) -- cgit v1.2.3 From b28306573004c1538eacc55328e672aa8d101230 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Sat, 11 Nov 2023 10:48:37 +0100 Subject: added choosing when no argument provided --- config/essentials/zsh/functions.zsh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/config/essentials/zsh/functions.zsh b/config/essentials/zsh/functions.zsh index 4145813..8d464e3 100644 --- a/config/essentials/zsh/functions.zsh +++ b/config/essentials/zsh/functions.zsh @@ -242,7 +242,14 @@ pacsize() mime-default () { + local mime + [ "${mime:=$1}" ] || + mime="$(find /usr/share/applications/ -iname '*.desktop' -printf '%f\n' | + sed 's/\.desktop$//' | + fzf)" + logn "Setting '$1' as default for its mimetypes" + [ "$mime" ] || exit 1 grep "MimeType=" /usr/share/applications/"$1".desktop | cut -d '=' -f 2- | tr ';' '\0' | xargs -0I{} xdg-mime default "$1".desktop "{}" -- cgit v1.2.3 From 482d9efce8c3cf7139e7bd1fbfcd28595e7827f7 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Sun, 12 Nov 2023 11:59:36 +0100 Subject: added systemctl enable alias --- config/essentials/zsh/aliases.sh | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/config/essentials/zsh/aliases.sh b/config/essentials/zsh/aliases.sh index 2596285..5de4803 100644 --- a/config/essentials/zsh/aliases.sh +++ b/config/essentials/zsh/aliases.sh @@ -191,15 +191,17 @@ alias smcr='systemctl restart' alias smcrl='systemctl reload' alias smcd='systemctl daemon-reload' alias smce='systemctl edit' +alias smcen='systemctl enable' #user alias smcu='systemctl --user' -alias smcus='systemctl status --user' -alias smcust='systemctl start --user' -alias smcuS='systemctl stop --user' -alias smcur='systemctl restart --user' -alias smcurl='systemctl reload --user' -alias smcud='systemctl daemon-reload --user' -alias smcue='systemctl edit --user' +alias smcus='systemctl --user status' +alias smcust='systemctl --user start' +alias smcuS='systemctl --user stop' +alias smcur='systemctl --user restart' +alias smcurl='systemctl --user reload' +alias smcud='systemctl --user daemon-reload' +alias smcue='systemctl --user edit' +alias smcuen='systemctl --user enable' #doas alias dsmc='doas systemctl' alias dsmcs='doas systemctl status' @@ -209,6 +211,7 @@ alias dsmcr='doas systemctl restart' alias dsmcrl='doas systemctl reload' alias dsmcd='doas systemctl daemon-reload' alias dsmce='doas systemctl edit' +alias dsmcen='doas systemctl enable' # virtualbox aliases alias vbm='vboxmanage' -- cgit v1.2.3 From 2f3909181e31fb443c4ad2048a1e886e877e4a5c Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Sun, 12 Nov 2023 12:30:38 +0100 Subject: put channels in a subfolder --- bin/common/ytclipo | 2 +- config/essentials/zsh/aliases.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/common/ytclipo b/bin/common/ytclipo index 5d86c3f..8997539 100755 --- a/bin/common/ytclipo +++ b/bin/common/ytclipo @@ -23,5 +23,5 @@ yt-dlp "$inp" \ -f "b" \ -S "res:1080" \ -P "$HOME/vids/youtube/" \ - -o "%(channel)s - %(title)s.%(ext)s" + -o "%(channel)s/%(title)s.%(ext)s" notify-send "ytclipo" "finished downloading." || : diff --git a/config/essentials/zsh/aliases.sh b/config/essentials/zsh/aliases.sh index 5de4803..a166513 100644 --- a/config/essentials/zsh/aliases.sh +++ b/config/essentials/zsh/aliases.sh @@ -282,7 +282,7 @@ alias fzh="tac $HISTFILE | fzf | tee /dev/stderr | clipp" alias ffwin='hyprctl clients -j | jq '\''.[].pid'\'' | fzf --preview "hyprctl clients -j | jq '\''.[] | select(.pid == {}) | {class, title, workspace, xwayland}'\''"' alias pff='find ${PASSWORD_STORE_DIR:=~/src/password-store/} -name "*.gpg" | sed -e "s@$PASSWORD_STORE_DIR/@@" -e '\''s/\.gpg$//'\'' | fzf | xargs pass show -c' alias fzps='fzf --print0 | xargs -0I{}' -alias ytdl='yt-dlp --restrict-filenames --embed-chapters -f "b" -S "res:1080" -P "$HOME/vids/youtube/" -o "%(channel)s - %(title)s.%(ext)s"' +alias ytdl='yt-dlp --restrict-filenames --embed-chapters -f "b" -S "res:1080" -P "$HOME/vids/youtube/" -o "%(channel)s/%(title)s.%(ext)s"' # docker aliases alias dcb='docker build' -- cgit v1.2.3 From cbfda49e578cf18e7f5e605ca5e073fe0a1c0c17 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Sun, 12 Nov 2023 17:19:14 +0100 Subject: added appned2mpv --- bin/extra/append2mpv | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 bin/extra/append2mpv diff --git a/bin/extra/append2mpv b/bin/extra/append2mpv new file mode 100755 index 0000000..28c3916 --- /dev/null +++ b/bin/extra/append2mpv @@ -0,0 +1,30 @@ +#!/bin/sh +IPC="/tmp/mpvsocket" + +die () { >&2 printf '%s\n' "$@"; exit 1; } +append_to_mpv() +{ + file="$(readlink -f "$1")" + if [ ! -r "$file" ] + then + >&2 printf '%s\n' "'$file' not found" + return + fi + + echo '{ "command": ["loadfile", "'"$file"'", "append"] }' | + socat - "$IPC" +} + +[ -S "$IPC" ] || die "$IPC is not a socket or doesn't exist" +which socat > /dev/null || exit 1 + + +if [ -t 0 ] +then + append_to_mpv "$1" +else + while read -r file + do + append_to_mpv "$file" + done +fi -- cgit v1.2.3 From 2fd5995ff81e0b1792b5eab3a723d7321dec78cb Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Sun, 12 Nov 2023 17:19:48 +0100 Subject: added sgimg --- bin/extra/sgimg | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100755 bin/extra/sgimg diff --git a/bin/extra/sgimg b/bin/extra/sgimg new file mode 100755 index 0000000..7c1823c --- /dev/null +++ b/bin/extra/sgimg @@ -0,0 +1,6 @@ +#!/bin/sh + +imv "$(find ~/.local/share/gurk/ -type f -printf "%A@\t%p\n" | + sort -n | + tail -n 1 | + cut -f 2-)" -- cgit v1.2.3 From 3f704ee3e28f1448bc344400c2c6082157e7ee42 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Sun, 12 Nov 2023 17:21:33 +0100 Subject: remove file list all on completion --- config/essentials/zsh/.zshrc | 1 - 1 file changed, 1 deletion(-) diff --git a/config/essentials/zsh/.zshrc b/config/essentials/zsh/.zshrc index db93ac9..1de3e91 100644 --- a/config/essentials/zsh/.zshrc +++ b/config/essentials/zsh/.zshrc @@ -30,7 +30,6 @@ zstyle ':completion:*:*:*:*:messages' format '%F{purple}-- %d --%f' zstyle ':completion:*:*:*:*:warnings' format '%F{red}-- no matches found --%f' zstyle ':completion:*:default' list-prompt '%S%M matches%s' # show a 'ls -a' like outptut when listing files -zstyle ':completion:*' file-list all zstyle ':completion:*:*:*:*:default' list-colors ${(s.:.)LS_COLORS} # Group completions by categories -- cgit v1.2.3 From d6d5aa0577e1cdf9ab924b8c3f0241e17831540e Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Sun, 12 Nov 2023 17:21:59 +0100 Subject: use an intermediate variable --- config/essentials/zsh/functions.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/essentials/zsh/functions.zsh b/config/essentials/zsh/functions.zsh index 8d464e3..da8bf12 100644 --- a/config/essentials/zsh/functions.zsh +++ b/config/essentials/zsh/functions.zsh @@ -248,11 +248,11 @@ mime-default () sed 's/\.desktop$//' | fzf)" - logn "Setting '$1' as default for its mimetypes" + logn "Setting '$mime' as default for its mimetypes" [ "$mime" ] || exit 1 - grep "MimeType=" /usr/share/applications/"$1".desktop | + grep "MimeType=" /usr/share/applications/"$mime".desktop | cut -d '=' -f 2- | tr ';' '\0' | - xargs -0I{} xdg-mime default "$1".desktop "{}" + xargs -0I{} xdg-mime default "$mime".desktop "{}" logn "Done." } -- cgit v1.2.3 From 846038a503ce1aba291f7cdd3f422ec9a4238afc Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Sun, 12 Nov 2023 17:22:25 +0100 Subject: only notification on lolaa --- config/wayland/mako/config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/wayland/mako/config b/config/wayland/mako/config index 4380506..06eed6e 100644 --- a/config/wayland/mako/config +++ b/config/wayland/mako/config @@ -24,6 +24,6 @@ default-timeout=0 default-timeout=2000 group-by=category -[app-name=gurk] +[summary=lolaa] # 45887 = 70% on-notify=exec paplay --volume=45887 ~/.local/share/sounds/ring1.ogg -- cgit v1.2.3 From b386965b95808a0ad78e6c1dedaefac4693aaad5 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Sun, 12 Nov 2023 17:22:50 +0100 Subject: added ideas vault --- config/essentials/nvim/lua/user/zk.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/config/essentials/nvim/lua/user/zk.lua b/config/essentials/nvim/lua/user/zk.lua index 98476ca..3641025 100644 --- a/config/essentials/nvim/lua/user/zk.lua +++ b/config/essentials/nvim/lua/user/zk.lua @@ -41,6 +41,11 @@ require("telekasten").setup({ media_previewer = "telescope-media-files", follow_url_fallback = nil, vaults = { + Ideas = { + home = home .. "/" .. "Ideas", + template_new_note = home .. "/" .. "templates/new_note.md", + new_note_filename = "title", + }, Driving = { home = home .. "/" .. "Driving", template_new_note = home .. "/" .. "templates/new_note.md", -- cgit v1.2.3 From 45123e1dcd004cb5c312ad329dbbb8537f42f7aa Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Mon, 13 Nov 2023 14:07:15 +0100 Subject: config.jsonc --- config/wayland/waybar/config.jsonc | 79 +------------------------------------- 1 file changed, 1 insertion(+), 78 deletions(-) mode change 100644 => 120000 config/wayland/waybar/config.jsonc diff --git a/config/wayland/waybar/config.jsonc b/config/wayland/waybar/config.jsonc deleted file mode 100644 index 9d60915..0000000 --- a/config/wayland/waybar/config.jsonc +++ /dev/null @@ -1,78 +0,0 @@ -{ - "layer": "top", - "modules-left": ["battery", "hyprland/workspaces", "mpd", "hyprland/window"], - "modules-center": ["clock"], - "modules-right": ["custom/wireguard", "network", "pulseaudio", "temperature", "cpu", "custom/memory", "custom/bluetooth", "tray"], - "mpd": { - "format": "{artist} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S})", - "artist-len": 24, - "format-disconnected": "s", - "format-stopped": "", - "state-icons": { - "playing": "", - "paused": "", - }, - "tooltip-format": "{songPosition}/{queueLength} ({volume}%)", - "on-click": "mpc toggle", - "on-scroll-up": "mpc volume +5", - "on-scroll-down": "mpc volume -5", - }, - "battery": { - "format-charging": " {capacity}%", - "on-click": "mpower", - "interval": 10, - }, - "hyprland/window": { - "format": " {}", - "separate-outputs": true, - }, - "pulseaudio": { - "scroll-step": 1, - "format": "{icon} {volume:3}%", - "format-icons": { - "default": ["", "", ""] - }, - "on-click": "pavucontrol", - }, - "temperature": { - "interval": 3, - "format": "{icon} {temperatureC}°C", - "format-icons": { - "default":["", "", "", "", ""] - }, - }, - "custom/wireguard": { - "exec": "ip addr show dev wg0", - "format": "wg0", - "restart-interval": 3, - }, - "network": { - "format-wifi": " ", - "tooltip-format-wifi": "{ifname} {essid}", - "format-ethernet": "", - "tooltip-format-ethernet": "{ifname} {ipaddr}", - "format-disconnected": "", - }, - "cpu": { - "format": " {usage:2}%", - "interval": 3, - }, - "custom/memory": { - "exec": "free -h | awk '(NR==2){ print $3 }'", - "format": "{}", - "restart-interval": 3, - }, - "clock": { - "format": "{:%R}", - "format-alt": "{:(%T) %A %d %B}", - "interval": 1, - }, - "custom/bluetooth": { - "exec": "bluetoothctl info", - "format": "", - "interval": 3, - }, - "tray": { - "spacing": 5, - } -} diff --git a/config/wayland/waybar/config.jsonc b/config/wayland/waybar/config.jsonc new file mode 120000 index 0000000..1d795fc --- /dev/null +++ b/config/wayland/waybar/config.jsonc @@ -0,0 +1 @@ +configs/hyprland.jsonc \ No newline at end of file -- cgit v1.2.3 From 5c6e9b64eef36b98f05b85673089c6d8ef6b140d Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Tue, 14 Nov 2023 12:47:39 +0100 Subject: won two characters of screen! --- config/essentials/zsh/.zshrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/essentials/zsh/.zshrc b/config/essentials/zsh/.zshrc index 1de3e91..c590d54 100644 --- a/config/essentials/zsh/.zshrc +++ b/config/essentials/zsh/.zshrc @@ -153,7 +153,7 @@ command_not_found_handler () { } # prompt -PS1=' %B%(#.%F{1}.%F{13})[%n%b%f@%B%F{6}%m]%b%f %3~ ' +PS1=' %B%(#.%F{1}.%F{13})%n%b%f@%B%F{6}%m%b%f %3~ ' RPROMPT='%F{blue}$(parse_git_remote)%f%F{red}$(parse_git_status)%f%F{green}$(parse_git_branch)%f%(?.. %?)' setopt prompt_subst -- cgit v1.2.3 From e47d5d440679e35c138a93b9543ebf6210d93570 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Wed, 15 Nov 2023 01:43:11 +0100 Subject: added gov alias --- config/essentials/zsh/aliases.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/config/essentials/zsh/aliases.sh b/config/essentials/zsh/aliases.sh index a166513..4c2533f 100644 --- a/config/essentials/zsh/aliases.sh +++ b/config/essentials/zsh/aliases.sh @@ -270,6 +270,7 @@ alias cdng='cd /etc/nginx' alias cdrs='cd /srv/' alias cdv='cd ~/vids' alias god='cd "$(find . -mindepth 1 -maxdepth 1 -type d | fzf)"' +alias gov='go ~/vids d' # fzf aliases alias ppj='cd ~/proj/personal/"$(find ~/proj/personal -mindepth 1 -maxdepth 1 -type d -printf "%f\n" | fzf)"' -- cgit v1.2.3 From 22b300743769a1f98771d4f63b49937aa32786f9 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Wed, 15 Nov 2023 01:43:43 +0100 Subject: added emacs aliases --- config/essentials/zsh/aliases.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/config/essentials/zsh/aliases.sh b/config/essentials/zsh/aliases.sh index 4c2533f..3d23cf4 100644 --- a/config/essentials/zsh/aliases.sh +++ b/config/essentials/zsh/aliases.sh @@ -285,6 +285,11 @@ alias pff='find ${PASSWORD_STORE_DIR:=~/src/password-store/} -name "*.gpg" | sed alias fzps='fzf --print0 | xargs -0I{}' alias ytdl='yt-dlp --restrict-filenames --embed-chapters -f "b" -S "res:1080" -P "$HOME/vids/youtube/" -o "%(channel)s/%(title)s.%(ext)s"' +# emacs aliases +alias emacsd='emacs --daemon' +alias emacsdbg='emacs --debug-init' +alias e='emacsclient -c -a "emacs"' + # docker aliases alias dcb='docker build' alias dcbt='docker build -t' -- cgit v1.2.3 From f09beaf5fd4d0d1912e25c7fadeaf2e7bc0d7137 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Wed, 15 Nov 2023 01:44:02 +0100 Subject: added to_webm function --- config/essentials/zsh/functions.zsh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/config/essentials/zsh/functions.zsh b/config/essentials/zsh/functions.zsh index da8bf12..8bf6c43 100644 --- a/config/essentials/zsh/functions.zsh +++ b/config/essentials/zsh/functions.zsh @@ -299,3 +299,8 @@ edit_in_dir() { [ -f "$file" ] || return 1 $EDITOR "$file" } + +to_webm() +{ + ffmpeg -y -i "$1" -vcodec libvpx -cpu-used -12 -deadline realtime "${1%.*}".webm +} -- cgit v1.2.3 From 6b06b850ff9e7d0e5972c6f9bd592043fe5867f8 Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Thu, 16 Nov 2023 21:47:26 +0100 Subject: open emacs on startup instead of tmux --- config/wayland/dwl/startup.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/wayland/dwl/startup.sh b/config/wayland/dwl/startup.sh index 8817ad2..0f482fa 100755 --- a/config/wayland/dwl/startup.sh +++ b/config/wayland/dwl/startup.sh @@ -21,4 +21,5 @@ then fi (tail -f "$WOBCONFIG"/pipe | wob) & -$TERMINAL -e tmux a || $TERMINAL tmux & +# $TERMINAL -e tmux a || $TERMINAL tmux & +emacsclient -c -a 'emacs' & -- cgit v1.2.3 From 1dcdf0cdb769296c33737d285ba9008cff0d60ba Mon Sep 17 00:00:00 2001 From: Raymaekers Luca Date: Thu, 16 Nov 2023 21:56:12 +0100 Subject: improved compatibility for different frontends Introduces the use of parameter expansion for converting the link, also convert to youtube.com, because this fixes the bug where you couldn't download playlists/channels. --- bin/common/ytclipo | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/bin/common/ytclipo b/bin/common/ytclipo index 8997539..959ee21 100755 --- a/bin/common/ytclipo +++ b/bin/common/ytclipo @@ -11,9 +11,13 @@ fi inp="$1" [ "${inp:=$(paste)}" ] || inp="$(cat /dev/stdin)" -# take last link from clipboard -# works when link is from yt-local -inp="https://youtu.be/$(echo "$inp" | sed 's/.*\(.\{11\}\)$/\1/')" +# remove util scheme +inp="${inp#*//}" +# convert to youtube.com/path url +# works for: +# - 'youtu.be/watch?v=xxxxxx' +# - 'https://piped.video/watch?v=xxxxx' +inp="https://youtube.com/${inp#*/}" >&2 printf "inp: %s\n" "$inp" notify-send "ytclipo" "downloading $inp" || : -- cgit v1.2.3