summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/bash/bashrc37
-rw-r--r--config/dunst/dunstrc27
-rw-r--r--config/git/gitconfig22
-rw-r--r--config/lf/lfrc51
-rw-r--r--config/mimeapps.list43
-rw-r--r--config/mpv/input.conf9
-rw-r--r--config/nvim/init.lua98
-rw-r--r--config/nvim/lua/plugins.lua24
-rw-r--r--config/picom/picom.conf19
l---------config/qutebrowser/bookmarks/bookmarks.txt1
-rwxr-xr-xconfig/qutebrowser/bookmarks/urls2
-rwxr-xr-xconfig/qutebrowser/config.py10
l---------config/qutebrowser/current_theme.py1
-rwxr-xr-x[-rw-r--r--]config/qutebrowser/startpage/index.html6
-rw-r--r--config/qutebrowser/themes/ayu_light.py16
-rw-r--r--config/qutebrowser/themes/gruvbox.py (renamed from config/qutebrowser/gruvbox.py)0
-rw-r--r--config/qutebrowser/themes/nord.py16
-rw-r--r--config/shell/aliasrc90
-rw-r--r--config/shell/profile25
-rwxr-xr-xconfig/sxiv/exec/key-handler79
-rw-r--r--config/vim/vimrc52
-rw-r--r--config/wallpapers/ship.jpgbin0 -> 4100424 bytes
-rw-r--r--config/x11/themes/catppuccin28
-rw-r--r--config/x11/themes/light-nord28
-rw-r--r--config/x11/themes/material28
-rw-r--r--config/x11/themes/nord25
-rw-r--r--config/x11/themes/one-dark27
-rw-r--r--config/x11/themes/one-light27
-rw-r--r--config/x11/themes/solarized-dark27
-rw-r--r--config/x11/themes/solarized-light27
-rw-r--r--config/x11/xinitrc16
l---------config/x11/xresources1
-rwxr-xr-xconfig/zathura/zathurarc115
-rwxr-xr-xconfig/zsh/zshrc29
34 files changed, 772 insertions, 234 deletions
diff --git a/config/bash/bashrc b/config/bash/bashrc
index ca2435d..9f12e54 100644
--- a/config/bash/bashrc
+++ b/config/bash/bashrc
@@ -1,18 +1,43 @@
-# Minimal bash config for servers
+# Minimal bashrc meant for servers
set -o vi
-stty -ixon # Disable ctrl-s and ctrl-q for freezing prompt
-shopt -s autocd # automatically cd into typed directory
+# `set show-mode-in-prompt on` is not set,
+# indicating vi mode in bash is too slow
-alias vi=vim
-alias vi=nvim
+# Ctrl-l is disabled in vi mode, bind it manually
+bind -m vi-command '"\C-l": clear-screen'
+bind -m vi-insert '"\C-l": clear-screen'
-PS1='\e[01;31m$(code=${?##0};echo ${code:+[${code}]" "})\e[00m\u@\H \w % '
+stty -ixon # Disable ctrl-s and ctrl-q for freezing prompt
+shopt -s autocd # Automatically cd into typed directory
+
+PS1='\[\e[01;31m\]$(code=$?; [ "$code" -ne 0 ] && echo "[${code}] ")\[\e[00m\]\[\e[01;34m\]\u\[\e[00m\]@\H \w % '
+
+# Source bash completion
+for bc in /etc/bash_completion /usr/share/bash-completion/bash_completion; do
+ [ -f "$bc" ] && . "$bc"
+done
if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc" ];then
source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc"
+else
+ # Fallback aliases where aliasrc isn't present (e.g., on servers)
+ alias \
+ claer="clear -x" \
+ clear="clear -x" \
+ clera="clear -x" \
+ lf="lfcd" \
+ vi="nvim" \
+ vi="vim"
+
fi
if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/functionrc" ];then
source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/functionrc"
+else
+ lfcd () {
+ cd "$(command lf -print-last-dir "$@")"
+ }
fi
+
+bind '"\C-o": "\C-ulfcd\n"'
diff --git a/config/dunst/dunstrc b/config/dunst/dunstrc
new file mode 100644
index 0000000..81dba80
--- /dev/null
+++ b/config/dunst/dunstrc
@@ -0,0 +1,27 @@
+[global]
+font = "Liberation Mono 12"
+frame_width = 1
+gap_size = 8
+gaps = true
+offset = 12
+origin = bottom-right
+padding = 12
+separator_color = "auto"
+
+[urgency_low]
+frame_color = "#434C5E" # Polar Night (dim)
+foreground = "#D8DEE9" # Frost white (soft text)
+background = "#2E3440" # Polar Night (dark bg)
+timeout = 5
+
+[urgency_normal]
+frame_color = "#81A1C1" # Frost Blue (accent)
+foreground = "#E5E9F0" # Arctic White (text)
+background = "#3B4252" # Polar Night (slightly lighter bg)
+timeout = 10
+
+[urgency_critical]
+frame_color = "#BF616A" # Aurora Red (error)
+foreground = "#ECEFF4" # Bright Frost (text)
+background = "#3B4252"
+timeout = 0
diff --git a/config/git/gitconfig b/config/git/gitconfig
index 976d768..bf61c21 100644
--- a/config/git/gitconfig
+++ b/config/git/gitconfig
@@ -1,9 +1,29 @@
[init]
defaultBranch = master
+
[pager]
branch = false
+
[alias]
- pushall = !git remote | xargs -L1 git push --all
+ a = add
+ br = branch
+ ci = commit
+ co = checkout
+ df = diff
+ ds = diff --staged
+ st = status
+ pushall = "!for r in $(git remote); do git push --all \"$r\"; done"
+
[user]
email = suleyman@farajli.net
name = Suleyman Farajli
+ # signingkey = <to be set manually>
+
+[commit]
+ gpgSign = true
+
+[tag]
+ gpgSign = true
+
+[gpg]
+ format = openpgp
diff --git a/config/lf/lfrc b/config/lf/lfrc
index 1b50065..40b6272 100644
--- a/config/lf/lfrc
+++ b/config/lf/lfrc
@@ -1,51 +1,48 @@
-# Suleyman's gruvbox themed lf config at "https://git.farajli.net/slcf.git"
-
-# Due to the facts that ueberzug is no longer maintained and adds extra \
-# complexity it is not included in the config
+# Due to the fact that ueberzug is no longer maintained and
+# adds extra complexity, it is not included in the configuration."
# Options
set incsearch
-set scrolloff 4 #smooth scrolling
+set scrolloff 4 # Smooth scrolling
-# Key-maps
+# Bindings
map <enter> shell
map m push $mkdir<space>
map t push $touch<space>
map D trash
map <c-f> $lf -remote "send $id select \"$(fzf --reverse)\""
-map x $$f # execute current file (must be executable)
+map x $$f # Execute current file (must be executable)
map zb :{{ set sortby natural; set info size; set preview; set ratios 5:2; }}
map zz :{{ set preview; set ratios 1:2:3; }}
-# Directory change
-map <c-h> cd ~
+# Directory change keybinds (some overwrite default ones)
+# <c-h> and <c-k> might fail on some terminal emulators
+map <c-h> cd ~/
map <c-p> cd ~/proj
map <c-t> cd ~/tproj
-map <c-c> cd ~/.config
-map <c-r> cd /tmp
-map <c-u> cd /usr/local/bin
-map <c-m> cd ~/music
-map <c-b> cd ~/books
-
-# Colors
-set cursoractivefmt "\033[0;1;7m" #white
-# set cursoractivefmt "\033[32;1;7m" #yellowish green
-# set cursoractivefmt "\033[33;1;7m" #orange
-# set cursoractivefmt "\033[36;1;7m" #green
+map <c-k> cd /tmp
+map <c-w> cd ~/work
+# Theme
+set cursoractivefmt "\033[0;1;7m"
set cursorparentfmt "\033[0;1;7m"
set tagfmt "\033[32;1;7m"
set rulerfmt "\033[32;1;7m"
set promptfmt "\033[48;1;234m %w/%f"
-#FIXME: Doesn't overwrite some files
cmd trash ${{
- mkdir -p ~/.trash
- if [ -z "$fs" ]; then
- mv "$f" ~/.trash
- else
- IFS="$(printf '\n\t')"; mv $fs ~/.trash
- fi
+ set -f
+ mkdir -p ~/.trash
+ for entry in $fx; do
+ trash_path=~/.trash/$(basename -- "${entry}")
+ if [ -e "${trash_path}" ]; then
+ printf '%s exists\n' "${trash_path}" >&2
+ trash_path="${trash_path}_$(date +%s)_$RANDOM"
+ printf 'moving to %s\n' "${trash_path}" >&2
+ fi
+
+ mv -- "${entry}" "${trash_path}"
+ done
}}
diff --git a/config/mimeapps.list b/config/mimeapps.list
index cab0678..976b369 100644
--- a/config/mimeapps.list
+++ b/config/mimeapps.list
@@ -1,17 +1,36 @@
[Default Applications]
application/pdf=org.pwmt.zathura.desktop
-[Default Applications]
-image/jpeg=sxiv.desktop
-image/png=sxiv.desktop
-image/jpg=sxiv.desktop
-
-[Default Applications]
-text/plain=nvim.desktop
+image/jpeg=nsxiv.desktop;sxiv.desktop;
+image/png=nsxiv.desktop;sxiv.desktop;
+image/gif=nsxiv.desktop;sxiv.desktop;
+image/svg+xml=nsxiv.desktop;sxiv.desktop;
+image/jxl=nsxiv.desktop;sxiv.desktop;
+image/webp=nsxiv.desktop;sxiv.desktop;
+image/tiff=nsxiv.desktop;sxiv.desktop;
+image/heif=nsxiv.desktop;sxiv.desktop;
+image/heic=nsxiv.desktop;sxiv.desktop;
+image/avif=nsxiv.desktop;sxiv.desktop;
+image/x-icon=nsxiv.desktop;sxiv.desktop;
+image/bmp=nsxiv.desktop;sxiv.desktop;
+image/x-portable-anymap=nsxiv.desktop;sxiv.desktop;
+image/x-portable-bitmap=nsxiv.desktop;sxiv.desktop;
+image/x-portable-pixmap=nsxiv.desktop;sxiv.desktop;
+image/x-tga=nsxiv.desktop;sxiv.desktop;
+image/qoi=nsxiv.desktop;sxiv.desktop;
+image/ff=nsxiv.desktop;sxiv.desktop;
-[Default Applications]
-text/html=org.qutebrowser.qutebrowser.desktop
+text/plain=nvim.desktop;vim.desktop;
-[Default Application]
-x-scheme-handler/http=org.qutebrowser.qutebrowser.desktop
-x-scheme-handler/https=org.qutebrowser.qutebrowser.desktop
+video/mp4=mpv.desktop;
+video/webm=mpv.desktop;
+video/x-matroska=mpv.desktop;
+video/x-msvideo=mpv.desktop;
+video/ogg=mpv.desktop;
+video/mpeg=mpv.desktop;
+video/3gpp=mpv.desktop;
+video/quicktime=mpv.desktop;
+video/x-flv=mpv.desktop;
+video/x-ms-wmv=mpv.desktop;
+video/x-ms-asf=mpv.desktop;
+video/x-ms-dvr=mpv.desktop;
diff --git a/config/mpv/input.conf b/config/mpv/input.conf
index 192a14c..8c32fe8 100644
--- a/config/mpv/input.conf
+++ b/config/mpv/input.conf
@@ -1,7 +1,8 @@
-l seek 5
-h seek -5
, seek -60
. seek 60
+h seek -5
+l seek 5
+
S cycle sub
-L ab-loop
-J cycle-values loop-file "inf" "no"
+Ctrl+l ab-loop
+L cycle-values loop-file "inf" "no"
diff --git a/config/nvim/init.lua b/config/nvim/init.lua
index df90607..9e0d4be 100644
--- a/config/nvim/init.lua
+++ b/config/nvim/init.lua
@@ -1,15 +1,20 @@
-require("plugins")
-
-vim.cmd("let mapleader = ' '")
-vim.cmd("set relativenumber")
-vim.cmd("set number")
-vim.cmd("colorscheme duskfox")
-vim.cmd("set nowrap")
-vim.cmd("set clipboard=unnamedplus") -- Use system clipboard
-vim.cmd("set background=dark")
-vim.cmd("set shm+=I") -- Disable intro message
-vim.cmd("autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o") -- Disable auto-comment
--- vim.cmd("set list") -- Show spaces tabs etc.
+local ok, err = pcall(require, "plugins")
+if ok then
+ -- Plugin settings
+ vim.keymap.set('n', '<leader>e', '<cmd>Neotree toggle right<CR>', { noremap = true, silent = true })
+ vim.cmd.colorscheme("duskfox")
+else
+ vim.notify("Error loading plugins: " .. err, vim.log.levels.WARN)
+end
+
+vim.g.mapleader = ' '
+vim.opt.background = "dark"
+vim.opt.clipboard = "unnamedplus" -- Use system clipboard
+-- vim.opt.list = true -- Show spaces, tabs, etc.
+vim.opt.number = true
+vim.opt.relativenumber = true
+vim.opt.shortmess:append("I") -- Disable intro message
+vim.opt.wrap = false
vim.opt.fillchars = {
vert = "|",
@@ -22,16 +27,59 @@ vim.opt.fillchars = {
foldclose = ">",
}
-vim.keymap.set('n', '<leader><leader>', ':w!<CR>')
-vim.keymap.set('n', '<leader>q', ':wq!<CR>')
-vim.keymap.set('n', '<C-t>', ':tabnew<CR>')
-vim.keymap.set('n', 'J', ':tabn<CR>')
-vim.keymap.set('n', 'K', ':tabp<CR>')
-vim.keymap.set('n', '<C-n>', ':vsplit<CR>')
-vim.keymap.set('n', 'H', ':wincmd h<CR>')
-vim.keymap.set('n', 'L', ':wincmd l<CR>')
-vim.keymap.set('n', '<leader>e', ':Neotree toggle right<CR>')
-vim.keymap.set('n', '<leader>o', '<C-W>w')
-vim.keymap.set('i', '<C-h>', '<Left>')
-vim.keymap.set('i', '<C-l>', '<Right>')
-vim.keymap.set('i', '<C-space>', '<ESC>')
+-- Remove trailing whitespace on all lines before saving, excluding markdown files
+vim.api.nvim_create_autocmd("BufWritePre", {
+ pattern = "*",
+ callback = function()
+ if vim.bo.filetype == "markdown" then
+ return
+ end
+ vim.cmd([[%s/\s\+$//e]])
+ end,
+})
+
+-- Disable auto-comment
+vim.api.nvim_create_autocmd("FileType", {
+ pattern = "*",
+ callback = function()
+ vim.opt_local.formatoptions:remove({ "c", "r", "o" })
+ end,
+})
+
+-- Enable spellcheck for certain file types
+vim.api.nvim_create_autocmd("FileType", {
+ pattern = {
+ "gitcommit", "markdown", "text", "rst",
+ "asciidoc", "org", "norg", "latex", "tex", "mail", "pandoc"
+ },
+ callback = function()
+ vim.opt_local.spell = true
+ end,
+})
+
+-- NOTE: On some terminal emulators, the keybinds
+-- <C-j> and <C-k> don't work either in normal or insert mode.
+
+-- Tabs
+vim.keymap.set('n', '<C-t>', '<cmd>tabnew<CR>' , { noremap = true, silent = true })
+vim.keymap.set('n', 'J' , '<cmd>tabn<CR>' , { noremap = true, silent = true })
+vim.keymap.set('n', 'K' , '<cmd>tabp<CR>' , { noremap = true, silent = true })
+
+-- Windows
+vim.keymap.set('n', '<C-Down>' , '<cmd>split<CR>' , { noremap = true, silent = true })
+vim.keymap.set('n', '<C-Right>', '<cmd>vsplit<CR>', { noremap = true, silent = true })
+vim.keymap.set('n', '<C-h>' , '<C-w>h' , { noremap = true })
+vim.keymap.set('n', '<C-j>' , '<C-w>j' , { noremap = true })
+vim.keymap.set('n', '<C-k>' , '<C-w>k' , { noremap = true })
+vim.keymap.set('n', '<C-l>' , '<C-w>l' , { noremap = true })
+
+-- Imitate normal mode in insert mode
+vim.keymap.set('i', '<C-h>' , '<Left>' , { noremap = true })
+vim.keymap.set('i', '<C-l>' , '<Right>', { noremap = true })
+vim.keymap.set('i', '<C-j>' , '<Down>' , { noremap = true })
+vim.keymap.set('i', '<C-k>' , '<Up>' , { noremap = true })
+vim.keymap.set('i', '<C-space>', '<ESC>' , { noremap = true })
+
+-- Other
+vim.keymap.set('n', '<leader><leader>', '<cmd>w!<CR>' , { noremap = true, silent = true })
+vim.keymap.set('n', '<leader>q' , '<cmd>wq!<CR>', { noremap = true, silent = true })
diff --git a/config/nvim/lua/plugins.lua b/config/nvim/lua/plugins.lua
index 911a4d7..7b00b1c 100644
--- a/config/nvim/lua/plugins.lua
+++ b/config/nvim/lua/plugins.lua
@@ -33,18 +33,18 @@ require("lazy").setup({
})
require("Comment").setup{
- padding = true, -- Add a space b/w comment and the line
- sticky = true, -- Whether the cursor should stay at its position
- ignore = nil, -- Lines to be ignored while (un)comment
+ padding = true, -- Add a space b/w comment and the line
+ sticky = true, -- Whether the cursor should stay at its position
+ ignore = nil, -- Lines to be ignored while (un)comment
-- LHS of toggle mappings in NORMAL mode
toggler = {
- line = 'cc', --Line-comment toggle keymap
- block = 'cb', -- Block-comment toggle keymap
+ line = 'cc', --Line-comment toggle keymap
+ block = 'cb', -- Block-comment toggle keymap
},
-- LHS of operator-pending mappings in NORMAL and VISUAL mode
opleader = {
- line = 'cc', --Line-comment keymap
- block = 'cb', --Block-comment keymap
+ line = 'cc', --Line-comment keymap
+ block = 'cb', --Block-comment keymap
},
}
@@ -72,25 +72,21 @@ require("neo-tree").setup({
}
}
},
- --Indent Markers
default_component_configs = {
indent = {
+ --Indent Markers
with_markers = true,
indent_marker = "│",
last_indent_marker = "└",
indent_size = 2,
- },
- },
- --Expanders
- default_component_configs = {
- indent = {
+ -- Expanders
with_expanders = false, --Not active
expander_collapsed = ">",
expander_expanded = "",
expander_highlight = "NeoTreeExpander",
+
},
},
-
})
require("nvim-autopairs").setup({
diff --git a/config/picom/picom.conf b/config/picom/picom.conf
index 58188aa..a5583a0 100644
--- a/config/picom/picom.conf
+++ b/config/picom/picom.conf
@@ -1,16 +1,13 @@
-# Minimal picom config
-
backend = "glx";
shadow = false;
fading = false;
-
vsync = true;
- wintypes:
- {
- tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
- dock = { shadow = false; clip-shadow-above = true; }
- dnd = { shadow = false; }
- popup_menu = { opacity = 0.8; }
- dropdown_menu = { opacity = 0.8; }
- };
+wintypes:
+{
+ tooltip = { shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
+ dock = { shadow = false; clip-shadow-above = true; };
+ dnd = { shadow = false; };
+ popup_menu = { opacity = 0.8; };
+ dropdown_menu = { opacity = 0.8; };
+};
diff --git a/config/qutebrowser/bookmarks/bookmarks.txt b/config/qutebrowser/bookmarks/bookmarks.txt
new file mode 120000
index 0000000..526f096
--- /dev/null
+++ b/config/qutebrowser/bookmarks/bookmarks.txt
@@ -0,0 +1 @@
+../../sites/bookmarks.txt \ No newline at end of file
diff --git a/config/qutebrowser/bookmarks/urls b/config/qutebrowser/bookmarks/urls
deleted file mode 100755
index 0711a66..0000000
--- a/config/qutebrowser/bookmarks/urls
+++ /dev/null
@@ -1,2 +0,0 @@
-yewtu.be
-onion.tube
diff --git a/config/qutebrowser/config.py b/config/qutebrowser/config.py
index faaf7f2..da80685 100755
--- a/config/qutebrowser/config.py
+++ b/config/qutebrowser/config.py
@@ -1,4 +1,12 @@
-from gruvbox import *
+from current_theme import *
+
+c.tabs.show = 'multiple'
+
+c.statusbar.show = 'in-mode'
+
+c.url.searchengines = { 'DEFAULT': 'https://google.com/search?hl=en&q={}' }
+
+c.url.start_pages = '~/.config/qutebrowser/startpage/index.html'
# Text color of the completion widget. May be a single color to use for
# all columns or a list of three colors, one for each column.
diff --git a/config/qutebrowser/current_theme.py b/config/qutebrowser/current_theme.py
new file mode 120000
index 0000000..f9e5462
--- /dev/null
+++ b/config/qutebrowser/current_theme.py
@@ -0,0 +1 @@
+themes/nord.py \ No newline at end of file
diff --git a/config/qutebrowser/startpage/index.html b/config/qutebrowser/startpage/index.html
index b848797..16eec12 100644..100755
--- a/config/qutebrowser/startpage/index.html
+++ b/config/qutebrowser/startpage/index.html
@@ -3,14 +3,14 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- <link rel='stylesheet' type='text/css' href="style.css">
<title>startpage</title>
<style>
body {
- height: 97.5vh;
+ height: 100vh;
display: flex;
align-items: center;
- font: 12px monospace;
+ font-family: 'Roboto Mono', monospace;
+ font-size: 11px;
justify-content: center;
background: #212121;
color: #fff;
diff --git a/config/qutebrowser/themes/ayu_light.py b/config/qutebrowser/themes/ayu_light.py
new file mode 100644
index 0000000..afb20e9
--- /dev/null
+++ b/config/qutebrowser/themes/ayu_light.py
@@ -0,0 +1,16 @@
+base00 = "#fafafa"
+base01 = "#f0f0f0"
+base02 = "#dedede"
+base03 = "#b3b1ad"
+base04 = "#9e9e9e"
+base05 = "#5c6773"
+base06 = "#6c7680"
+base07 = "#14191f"
+base08 = "#ff3333"
+base09 = "#f6973f"
+base0A = "#f2ae49"
+base0B = "#86b300"
+base0C = "#4cbf99"
+base0D = "#36a3d9"
+base0E = "#a37acc"
+base0F = "#d33f3f"
diff --git a/config/qutebrowser/gruvbox.py b/config/qutebrowser/themes/gruvbox.py
index d06e346..d06e346 100644
--- a/config/qutebrowser/gruvbox.py
+++ b/config/qutebrowser/themes/gruvbox.py
diff --git a/config/qutebrowser/themes/nord.py b/config/qutebrowser/themes/nord.py
new file mode 100644
index 0000000..3e4f13d
--- /dev/null
+++ b/config/qutebrowser/themes/nord.py
@@ -0,0 +1,16 @@
+base00 = "#2e3440"
+base01 = "#3b4252"
+base02 = "#434c5e"
+base03 = "#4c566a"
+base04 = "#d8dee9"
+base05 = "#e5e9f0"
+base06 = "#eceff4"
+base07 = "#8fbcbb"
+base08 = "#bf616a"
+base09 = "#d08770"
+base0A = "#ebcb8b"
+base0B = "#a3be8c"
+base0C = "#88c0d0"
+base0D = "#81a1c1"
+base0E = "#b48ead"
+base0F = "#5e81ac"
diff --git a/config/shell/aliasrc b/config/shell/aliasrc
index a95f6f1..2de3313 100644
--- a/config/shell/aliasrc
+++ b/config/shell/aliasrc
@@ -1,57 +1,67 @@
#!/bin/sh
-[ -f $XINITRC ] && alias startx="startx $XINITRC"
+[ -f "${XINITRC}" ] && alias startx='startx ${XINITRC}'
[ -x "$(command -v vim)" ] && alias vi="vim"
[ -x "$(command -v nvim)" ] && alias vi="nvim"
[ -x "$(command -v neomutt)" ] && alias mutt="neomutt"
-alias ls="ls --color=auto --group-directories-first -p"
-alias ip="ip -color=auto"
-alias diff="diff --color=auto"
-alias grep="grep --color=auto"
-alias ping="ping -c 2"
-alias clear="clear -x"
-alias open="xdg-open"
-alias lf="lfcd"
-alias py="python3"
-alias makeb="make -C ../"
-alias fren="trans fr:en"
-alias enfr="trans en:fr"
-alias clip="xclip -selection clipboard"
-alias push="git remote show | xargs -I remote git push remote master" # push master branch of all remotes
+if [ -x "$(command -v nsxiv)" ] && ! [ -x "$(command -v sxiv)" ]; then
+ alias sxiv="nsxiv"
+fi
+
+# TODO: Deal with the flags that are not supported on BSD
+# Older versions of ip doesn't support -color flg, so don't use it
+alias \
+ clear="clear -x" \
+ clip="xclip -selection clipboard" \
+ diff="diff --color=auto" \
+ enfr="trans en:fr" \
+ fren="trans fr:en" \
+ g="git" \
+ grep="grep --color=auto" \
+ lf="lfcd" \
+ ls="ls --color=auto --group-directories-first -p" \
+ makeb="make -C ../" \
+ open="xdg-open" \
+ ping="ping -c 2" \
+ py="python3" \
+ push="git remote show | xargs -I remote git push remote master" # push master branch of all remotes
# Occasionally mistyped commands
-alias suod="sudo"
-alias maek="make"
-alias meak="make"
-alias sl="ls --color=auto --group-directories-first -p"
-alias claer="clear -x"
-alias clera="clear -x"
-alias gti="git"
+alias \
+ claer="clear -x" \
+ clera="clear -x" \
+ gti="git" \
+ maek="make" \
+ meak="make" \
+ suod="sudo" \
+ sl="ls --color=auto --group-directories-first -p"
# Directory change aliases
-alias gp="cd ~/proj"
-alias gt="cd ~/tproj"
-alias gc="cd ~/.config"
-alias gu="cd /usr/local/bin"
+alias \
+ gk="cd /tmp" \
+ gp="cd ~/proj" \
+ gt="cd ~/tproj" \
+ gw="cd ~/work"
# Init system aliases
if [ -x "$(command -v systemctl)" ]; then
- alias systemctl="sudo systemctl"
- alias net="sudo systemctl start NetworkManager"
- alias is="systemctl stop NetworkManager"
- alias blue="sudo systemctl start bluetooth"
- alias red="sudo systemctl stop bluetooth"
-
+ alias \
+ blue="sudo systemctl start bluetooth" \
+ net="sudo systemctl start NetworkManager" \
+ netstop="systemctl stop NetworkManager" \
+ red="sudo systemctl stop bluetooth" \
+ systemctl="sudo systemctl"
elif [ -x "$(command -v rc-service)" ]; then
- alias rc-service="sudo rc-service"
- alias net="sudo rc-service NetworkManager start"
- alias is="sudo rc-service NetworkManager stop"
- alias blue="sudo rc-service bluetooth start"
- alias red="sudo rc-service bluetooth stop"
-
+ alias \
+ blue="sudo rc-service bluetooth start" \
+ net="sudo rc-service NetworkManager start" \
+ netstop="sudo rc-service NetworkManager stop" \
+ rc-service="sudo rc-service" \
+ red="sudo rc-service bluetooth stop"
fi
# Arch linux specific aliases
-alias pacman="sudo pacman --color=always"
-alias arch-wiki="cd /usr/share/doc/arch-wiki/html/en/"
+alias \
+ pacman="sudo pacman --color=always" \
+ arch-wiki="cd /usr/share/doc/arch-wiki/html/en/"
diff --git a/config/shell/profile b/config/shell/profile
index 0504af9..ef518c4 100644
--- a/config/shell/profile
+++ b/config/shell/profile
@@ -1,21 +1,26 @@
# Directories and Files
-export XDG_BIN_DIR="$HOME/.local/bin"
-export XDG_CACHE_HOME="$HOME/.cache"
-export XDG_CONFIG_HOME="$HOME/.config"
-export XDG_DATA_HOME="$HOME/.local/share"
-export XDG_STATE_HOME="$HOME/.local/state"
-export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc"
-export ZSHRC="$XDG_CONFIG_HOME/zsh/zshrc"
+export XDG_BIN_DIR="${HOME}/.local/bin"
+export XDG_CACHE_HOME="${HOME}/.cache"
+export XDG_CONFIG_HOME="${HOME}/.config"
+export XDG_DATA_HOME="${HOME}/.local/share"
+export XDG_STATE_HOME="${HOME}/.local/state"
+
+export BASHRC="${HOME}/.bashrc"
+export ZSHRC="${HOME}/.zshrc"
+export XINITRC="${XDG_CONFIG_HOME}/x11/xinitrc"
mkdir -p "${XDG_BIN_DIR}"
-PATH="${XDG_BIN_DIR}":$PATH
+export PATH="${XDG_BIN_DIR}:${PATH}"
# Environment variables
[ -x "$(command -v vim)" ] && export EDITOR="vim"
[ -x "$(command -v nvim)" ] && export EDITOR="nvim"
[ -x "$(command -v alacritty)" ] && export TERMINAL="alacritty"
[ -x "$(command -v st)" ] && export TERMINAL="st"
-[ -x "$(command -v qutebrowser)" ] && export BROWSER="qutebrowser"
[ -x "$(command -v firefox)" ] && export BROWSER="firefox"
+[ -x "$(command -v qutebrowser)" ] && export BROWSER="qutebrowser"
+
+export MAKEFLAGS="-j8" # Reduce compile times
-export MAKEFLAGS="-j8" # Reduce compile times
+# Source bashrc for tty
+[ -n "${BASH_VERSION}" ] && [ -f "${BASHRC}" ] && . "${BASHRC}"
diff --git a/config/sxiv/exec/key-handler b/config/sxiv/exec/key-handler
index 50202fc..e90cbb1 100755
--- a/config/sxiv/exec/key-handler
+++ b/config/sxiv/exec/key-handler
@@ -1,76 +1,91 @@
#!/bin/sh
# For theme to be applied ~/.Xresource file must be present
-picdir="${HOME}/pics"
+set -f
while read -r file; do
case "$1" in
"m")
+ # FIXME: Providing directory selections to dmenu limits choices;
+ # e.g., if `/home/user/pics` is given, `/` can't be selected.
+
if [ -z "${destdir}" ]; then
- destdir="$(echo "${picdir}" \
- | dmenu -p "Move directory: " \
+ destdir="$(printf '' \
+ | dmenu -c -bw 2 -p "Copy directory: " \
| sed "s|~|${HOME}|g")"
fi
+ # Skip non-directories to prevent overwriting files during loop processing
if [ ! -d "${destdir}" ]; then
- nsend -s "Not a directory"
+ nsend -s "Failed to move" "Not a directory: ${destdir}"
exit 1
fi
- if mv "${file}" "${destdir}"; then
- nsend -s "${file} moved to ${destdir}" &
+ if output=$(mv -- "${file}" "${destdir}" 2>&1); then
+ nsend -s "Moved" "${file} to ${destdir}" &
else
- nsend -s "Failed to move ${file} to ${destdir}"
+ nsend -s "Failed to Move" "$output" &
fi
;;
"c")
-
- if [ -z "${destdir}" ];then
- destdir="$(echo "${picdir}" \
- | dmenu -p "Copy directory: " \
+ if [ -z "${destdir}" ]; then
+ destdir="$(printf '' \
+ | dmenu -c -bw 2 -p "Copy directory: " \
| sed "s|~|${HOME}|g")"
fi
if [ ! -d "${destdir}" ]; then
- nsend -s "Not a directory" &
+ nsend -s "Failed to copy" "Not a directory: ${destdir}"
exit 1
fi
- if cp "${file}" "${destdir}"; then
- nsend -s "${file} copied to ${destdir}" &
+ if output=$(cp -- "${file}" "${destdir}" 2>&1); then
+ nsend -s "Copied" "${file} to ${destdir}" &
else
- nsend -s "Failed to copy ${file} to ${destdir}" &
+ nsend -s "Failed to copy" "$output" &
fi
;;
- "w")
- swall -d "$file" && nsend -s "Wallpaper ${file}" \
- || nsend -s "Couldn't set wallpaper"
- ;;
"d")
- mkdir -p ~/.trash
+ mkdir -p "${HOME}/.trash"
+ trash_path="$HOME/.trash/$(basename -- "${file}")"
+ if [ -e "${trash_path}" ]; then
+ rand=$(od -An -N2 -tu2 /dev/urandom | tr -d ' ')
+ trash_path="${trash_path}_$(date +%Y%m%d%H%M%S)_${rand}"
+ fi
- if mv "$file" ~/.trash; then
- nsend -s "$file is moved to ~/.trash" &
+ if output=$(mv -- "${file}" "${trash_path}" 2>&1); then
+ nsend -s "Deleted" "${file} to ${trash_path}" &
else
- nsend -s "Failed to move ${file} to ~/.trash" &
+ nsend -s "Failed to delete" "$output" &
fi
+
;;
- "r") convert -rotate 90 "$file" "$file" ;;
- "R") convert -rotate -90 "$file" "$file" ;;
- "f") convert -flop "$file" "$file" ;;
"y")
if printf "%s" "${file}" | xclip -selection clipboard; then
- nsend -s "Copied to clipboard" &
+ nsend -s "Relative path copied to clipboard." &
else
- nsend -s "Failed to copy to clipboard" &
+ nsend -s "Failed to copy relative path to clipboard." &
fi
;;
"Y")
- if readlink -f "$file" | tr -d '\n' | xclip -selection clipboard; then
- nsend -s "Copied to clipboard" &
+ if readlink -f "${file}" | tr -d '\n' | xclip -selection clipboard; then
+ nsend -s "Full path copied to clipboard." &
+ else
+ nsend -s "Failed to copy full path to clipboard." &
+ fi
+ ;;
+ "w")
+
+ if output=$(swall -d "${file}" 2>&1); then
+ nsend -s "Set as wallpaper" "${file}" &
else
- nsend -s "Failed to copy to clipboard" &
+ nsend -s "Failed to set as wallpaper" "$output" &
fi
;;
- esac
+ # No need for nsend since whether the photo has rotated or not is obvious
+ # FIXME: convert is depricated use magick instead
+ "r") convert -rotate 90 "${file}" "${file}" ;;
+ "R") convert -rotate -90 "${file}" "${file}" ;;
+ "f") convert -flop "${file}" "${file}" ;;
+ esac
done
diff --git a/config/vim/vimrc b/config/vim/vimrc
index 7c66eef..1cbd86c 100644
--- a/config/vim/vimrc
+++ b/config/vim/vimrc
@@ -1,15 +1,16 @@
-" Suleyman's minimal vim config for servers
-" at https://git.farajli.net/slcf
-
let mapleader = " "
+set background=dark
+set clipboard=unnamedplus " Use system clipboard
+" set list " Show spaces, tabs, etc.
set number
-set scrolloff=5 " Smooth scroll
-set clipboard=unnamedplus " Use system clipboard
-set shortmess+=I " Deactivate intro text
-set fillchars=eob:\ " Remove "~" for empty lines (`eob:\` must end with a trailing space)
-:set nowrap " Disable wrapping
-autocmd BufwritePost * %s/\s\+$//e " Remove useless trailing spaces when saving
-autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o " Disable autocomments
+set relativenumber
+set shortmess+=I " Deactivate intro text
+set nowrap " Disable wrapping
+set fillchars=eob:\ " Remove "~" for empty lines (`eob:\` must end with a trailing space)
+
+autocmd BufwritePost * %s/\s\+$//e " Remove trailing spaces when saving
+" Disable autocomments
+autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
" Different cursor shapes for insert and normal modes
let &t_SI = "\e[6 q"
@@ -18,19 +19,26 @@ set ttimeout
set ttimeoutlen=1
set ttyfast
-" Normal mode maps
-map <leader><leader> :w!<CR>
-map <leader>q :wqa!<CR>
-map <C-t> :tabnew<CR>
-map <C-w> :tabclose!<CR>
-map J :tabn <CR>
-map K :tabp <CR>
+" Tabs
+nnoremap <silent> <C-t> :tabnew<CR>
+nnoremap <silent> J :tabn<CR>
+nnoremap <silent> K :tabp<CR>
-" Insert mode maps
+" Windows
+nnoremap <silent> <C-Down> :split<CR>
+nnoremap <silent> <C-Right> :vsplit<CR>
+nnoremap <C-h> <C-w>h
+nnoremap <C-j> <C-w>j
+nnoremap <C-k> <C-w>k
+nnoremap <C-l> <C-w>l
+
+" Imitate normal mode in insert mode
inoremap <C-h> <Left>
+inoremap <C-j> <Down>
+inoremap <C-k> <Up>
inoremap <C-l> <Right>
-inoremap <C-j> <C-o>gj
-inoremap <C-k> <C-o>gk
-inoremap <C-o> <C-o>o
+inoremap <C-Space> <Esc>
-set background=dark
+" Other
+nnoremap <silent> <leader><leader> :w!<CR>
+nnoremap <silent> <leader>q :wq!<CR>
diff --git a/config/wallpapers/ship.jpg b/config/wallpapers/ship.jpg
new file mode 100644
index 0000000..7d5f820
--- /dev/null
+++ b/config/wallpapers/ship.jpg
Binary files differ
diff --git a/config/x11/themes/catppuccin b/config/x11/themes/catppuccin
new file mode 100644
index 0000000..addc742
--- /dev/null
+++ b/config/x11/themes/catppuccin
@@ -0,0 +1,28 @@
+! Catppuccin Macchiato Palette (soft pastel/dark)
+
+*color0: #1e1e2e ! background dark purple-gray
+*color1: #f38ba8 ! pink (red)
+*color2: #a6e3a1 ! green
+*color3: #f9e2af ! yellow
+*color4: #89b4fa ! blue
+*color5: #f5c2e7 ! magenta
+*color6: #94e2d5 ! cyan
+*color7: #cdd6f4 ! light text
+
+*color8: #585b70 ! dark gray (bright black)
+*color9: #f38ba8 ! bright pink (red)
+*color10: #a6e3a1 ! bright green
+*color11: #f9e2af ! bright yellow
+*color12: #89b4fa ! bright blue
+*color13: #f5c2e7 ! bright magenta
+*color14: #94e2d5 ! bright cyan
+*color15: #f7faff ! bright white
+
+XTerm.vt100.background: #1e1e2e
+XTerm.vt100.foreground: #cdd6f4
+
+Sxiv.background: #1e1e2e
+Sxiv.foreground: #cdd6f4
+
+Nsxiv.window.background: #1e1e2e
+Nsxiv.window.foreground: #cdd6f4
diff --git a/config/x11/themes/light-nord b/config/x11/themes/light-nord
new file mode 100644
index 0000000..085b5d8
--- /dev/null
+++ b/config/x11/themes/light-nord
@@ -0,0 +1,28 @@
+! Light Nord Theme
+
+*color0: #d8dee9 ! nord4 - light background base
+*color1: #bf616a ! nord11 - red
+*color2: #a3be8c ! nord14 - green
+*color3: #ebcb8b ! nord13 - yellow
+*color4: #81a1c1 ! nord10 - blue
+*color5: #b48ead ! nord15 - magenta
+*color6: #88c0d0 ! nord8 - cyan
+*color7: #434c5e ! nord1 - dark gray (text)
+*color8: #e5e9f0 ! nord6 - bright background (lighter)
+*color9: #bf616a ! nord11 - bright red
+*color10: #a3be8c ! nord14 - bright green
+*color11: #ebcb8b ! nord13 - bright yellow
+*color12: #81a1c1 ! nord10 - bright blue
+*color13: #b48ead ! nord15 - bright magenta
+*color14: #8fbcbb ! nord7 - bright cyan
+*color15: #2e3440 ! nord0 - dark text for contrast
+
+! Background and foreground for terminal and apps
+XTerm.vt100.background: #d8dee9 ! light background
+XTerm.vt100.foreground: #434c5e ! dark text
+
+Sxiv.background: #d8dee9
+Sxiv.foreground: #434c5e
+
+Nsxiv.window.background: #d8dee9
+Nsxiv.window.foreground: #434c5e
diff --git a/config/x11/themes/material b/config/x11/themes/material
new file mode 100644
index 0000000..a159177
--- /dev/null
+++ b/config/x11/themes/material
@@ -0,0 +1,28 @@
+! Material Theme (default/dark variant)
+
+*color0: #263238 ! background dark blue-gray
+*color1: #e06c75 ! red (error)
+*color2: #98c379 ! green (success)
+*color3: #e5c07b ! yellow (warning)
+*color4: #61afef ! blue (info)
+*color5: #c678dd ! magenta (purple)
+*color6: #56b6c2 ! cyan
+*color7: #abb2bf ! light gray (foreground)
+
+*color8: #5c6370 ! dark gray (bright black)
+*color9: #e06c75 ! bright red
+*color10: #98c379 ! bright green
+*color11: #e5c07b ! bright yellow
+*color12: #61afef ! bright blue
+*color13: #c678dd ! bright magenta
+*color14: #56b6c2 ! bright cyan
+*color15: #ffffff ! white
+
+XTerm.vt100.background: #263238
+XTerm.vt100.foreground: #abb2bf
+
+Sxiv.background: #263238
+Sxiv.foreground: #abb2bf
+
+Nsxiv.window.background: #263238
+Nsxiv.window.foreground: #abb2bf
diff --git a/config/x11/themes/nord b/config/x11/themes/nord
new file mode 100644
index 0000000..b3b1fb9
--- /dev/null
+++ b/config/x11/themes/nord
@@ -0,0 +1,25 @@
+! nord theme colors
+*color0: #2e3440
+*color1: #bf616a
+*color2: #a3be8c
+*color3: #ebcb8b
+*color4: #81a1c1
+*color5: #b48ead
+*color6: #88c0d0
+*color7: #e5e9f0
+*color8: #4c566a
+*color9: #bf616a
+*color10: #a3be8c
+*color11: #ebcb8b
+*color12: #81a1c1
+*color13: #b48ead
+*color14: #8fbcbb
+*color15: #eceff4
+
+Sxiv.background: #2e3440
+Sxiv.foreground: #d8dee9
+Nsxiv.window.background: #2e3440
+Nsxiv.window.foreground: #d8dee9
+
+XTerm.vt100.background: #2e3440
+XTerm.vt100.foreground: #d8dee9
diff --git a/config/x11/themes/one-dark b/config/x11/themes/one-dark
new file mode 100644
index 0000000..99e2564
--- /dev/null
+++ b/config/x11/themes/one-dark
@@ -0,0 +1,27 @@
+! One Dark Theme (dark)
+
+*color0: #282c34 ! background
+*color1: #e06c75 ! red
+*color2: #98c379 ! green
+*color3: #e5c07b ! yellow
+*color4: #61afef ! blue
+*color5: #c678dd ! magenta
+*color6: #56b6c2 ! cyan
+*color7: #abb2bf ! light gray (foreground)
+*color8: #5c6370 ! dark gray
+*color9: #e06c75 ! bright red
+*color10: #98c379 ! bright green
+*color11: #e5c07b ! bright yellow
+*color12: #61afef ! bright blue
+*color13: #c678dd ! bright magenta
+*color14: #56b6c2 ! bright cyan
+*color15: #ffffff ! white
+
+XTerm.vt100.background: #282c34
+XTerm.vt100.foreground: #abb2bf
+
+Sxiv.background: #282c34
+Sxiv.foreground: #abb2bf
+
+Nsxiv.window.background: #282c34
+Nsxiv.window.foreground: #abb2bf
diff --git a/config/x11/themes/one-light b/config/x11/themes/one-light
new file mode 100644
index 0000000..dea790d
--- /dev/null
+++ b/config/x11/themes/one-light
@@ -0,0 +1,27 @@
+! One Light Theme (light)
+
+*color0: #fafafa ! background
+*color1: #e45649 ! red
+*color2: #50a14f ! green
+*color3: #c18401 ! yellow
+*color4: #0184bc ! blue
+*color5: #a626a4 ! magenta
+*color6: #0997b3 ! cyan
+*color7: #383a42 ! dark gray (foreground)
+*color8: #a0a1a7 ! light gray
+*color9: #e45649 ! bright red
+*color10: #50a14f ! bright green
+*color11: #c18401 ! bright yellow
+*color12: #0184bc ! bright blue
+*color13: #a626a4 ! bright magenta
+*color14: #0997b3 ! bright cyan
+*color15: #fafafa ! white
+
+XTerm.vt100.background: #fafafa
+XTerm.vt100.foreground: #383a42
+
+Sxiv.background: #fafafa
+Sxiv.foreground: #383a42
+
+Nsxiv.window.background: #fafafa
+Nsxiv.window.foreground: #383a42
diff --git a/config/x11/themes/solarized-dark b/config/x11/themes/solarized-dark
new file mode 100644
index 0000000..a76850a
--- /dev/null
+++ b/config/x11/themes/solarized-dark
@@ -0,0 +1,27 @@
+! Solarized Dark
+
+*color0: #073642
+*color1: #dc322f
+*color2: #859900
+*color3: #b58900
+*color4: #268bd2
+*color5: #d33682
+*color6: #2aa198
+*color7: #eee8d5
+*color8: #002b36
+*color9: #cb4b16
+*color10: #586e75
+*color11: #657b83
+*color12: #839496
+*color13: #6c71c4
+*color14: #93a1a1
+*color15: #fdf6e3
+
+XTerm.vt100.background: #002b36
+XTerm.vt100.foreground: #839496
+
+Sxiv.background: #002b36
+Sxiv.foreground: #839496
+
+Nsxiv.window.background: #002b36
+Nsxiv.window.foreground: #839496
diff --git a/config/x11/themes/solarized-light b/config/x11/themes/solarized-light
new file mode 100644
index 0000000..8a89223
--- /dev/null
+++ b/config/x11/themes/solarized-light
@@ -0,0 +1,27 @@
+! Solarized Light
+
+*color0: #eee8d5
+*color1: #dc322f
+*color2: #859900
+*color3: #b58900
+*color4: #268bd2
+*color5: #d33682
+*color6: #2aa198
+*color7: #073642
+*color8: #fdf6e3
+*color9: #cb4b16
+*color10: #586e75
+*color11: #657b83
+*color12: #839496
+*color13: #6c71c4
+*color14: #93a1a1
+*color15: #002b36
+
+XTerm.vt100.background: #fdf6e3
+XTerm.vt100.foreground: #586e75
+
+Sxiv.background: #fdf6e3
+Sxiv.foreground: #586e75
+
+Nsxiv.window.background: #fdf6e3
+Nsxiv.window.foreground: #586e75
diff --git a/config/x11/xinitrc b/config/x11/xinitrc
index 3cf201f..f874be6 100644
--- a/config/x11/xinitrc
+++ b/config/x11/xinitrc
@@ -1,15 +1,13 @@
#!/bin/sh
-userresources="$HOME/config/x11/Xresources"
+userresources="$HOME/.config/x11/xresources"
# merge in defaults and keymaps
-
if [ -f "$userresources" ]; then
xrdb -merge "$userresources"
fi
# start some nice programs
-
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
[ -x "$f" ] && . "$f"
@@ -19,11 +17,13 @@ fi
dunst &
picom &
-setxkbmap -option "caps:ctrl_modifier" # change caps_lock to ctrl
+setxkbmap -option "caps:ctrl_modifier" # Map Caps Lock to Ctrl
+setxkbmap us # Set US keyboard layout
slstatus &
-swall # set wallpaper
-xgamma -gamma 0.8 # change gamma
-xset r rate 300 50 # increase cursor speed
-xset s off && xset -dpms # disable screen blackening
+swall # Set a wallpaper
+unclutter & # Hide mouse cursor if inactive
+xgamma -gamma 0.8 # Change gamma
+xset r rate 300 50 # Increase cursor speed
+xset s off && xset -dpms # Disable screen blackening
exec dwm
diff --git a/config/x11/xresources b/config/x11/xresources
new file mode 120000
index 0000000..2ed52bc
--- /dev/null
+++ b/config/x11/xresources
@@ -0,0 +1 @@
+themes/one-dark \ No newline at end of file
diff --git a/config/zathura/zathurarc b/config/zathura/zathurarc
index 0e3d717..2598c2f 100755
--- a/config/zathura/zathurarc
+++ b/config/zathura/zathurarc
@@ -1,3 +1,118 @@
+# NORD (Dark)
+# set background "#2e3440"
+# set foreground "#d8dee9"
+# set highlight "#88c0d0"
+# set selection "#434c5e"
+# set statusbar-bg "#3b4252"
+# set statusbar-fg "#d8dee9"
+# set inputbar-bg "#3b4252"
+# set inputbar-fg "#d8dee9"
+# set error-fg "#bf616a"
+# set recolor-lightcolor "#2e3440"
+# set recolor-darkcolor "#d8dee9"
+# set default-bg "#2e3440"
+
+# CATPPUCCIN (Mocha)
+# set background "#1e1e2e"
+# set foreground "#cdd6f4"
+# set highlight "#89b4fa"
+# set selection "#585b70"
+# set statusbar-bg "#313244"
+# set statusbar-fg "#cdd6f4"
+# set inputbar-bg "#313244"
+# set inputbar-fg "#cdd6f4"
+# set error-fg "#f38ba8"
+# set recolor-lightcolor "#1e1e2e"
+# set recolor-darkcolor "#cdd6f4"
+# set default-bg "#1e1e2e"
+
+# LIGHT-NORD
+# set background "#eceff4"
+# set foreground "#2e3440"
+# set highlight "#5e81ac"
+# set selection "#d8dee9"
+# set statusbar-bg "#e5e9f0"
+# set statusbar-fg "#2e3440"
+# set inputbar-bg "#e5e9f0"
+# set inputbar-fg "#2e3440"
+# set error-fg "#bf616a"
+# set recolor-lightcolor "#eceff4"
+# set recolor-darkcolor "#2e3440"
+# set default-bg "#eceff4"
+
+# MATERIAL (Dark)
+# set background "#263238"
+# set foreground "#eeffff"
+# set highlight "#82aaff"
+# set selection "#37474f"
+# set statusbar-bg "#2e3c43"
+# set statusbar-fg "#eeffff"
+# set inputbar-bg "#2e3c43"
+# set inputbar-fg "#eeffff"
+# set error-fg "#f07178"
+# set recolor-lightcolor "#263238"
+# set recolor-darkcolor "#eeffff"
+# set default-bg "#263238"
+
+# ONE DARK
+set background "#282c34"
+set foreground "#abb2bf"
+set highlight "#61afef"
+set selection "#3e4451"
+set statusbar-bg "#21252b"
+set statusbar-fg "#abb2bf"
+set inputbar-bg "#21252b"
+set inputbar-fg "#abb2bf"
+set error-fg "#e06c75"
+set recolor-lightcolor "#282c34"
+set recolor-darkcolor "#abb2bf"
+set default-bg "#282c34"
+
+# ONE LIGHT
+# set background "#fafafa"
+# set foreground "#383a42"
+# set highlight "#0184bc"
+# set selection "#d0d0d0"
+# set statusbar-bg "#e5e5e5"
+# set statusbar-fg "#383a42"
+# set inputbar-bg "#e5e5e5"
+# set inputbar-fg "#383a42"
+# set error-fg "#e45649"
+# set recolor-lightcolor "#fafafa"
+# set recolor-darkcolor "#383a42"
+# set default-bg "#fafafa"
+
+# SOLARIZED DARK
+# set background "#002b36"
+# set foreground "#839496"
+# set highlight "#268bd2"
+# set selection "#073642"
+# set statusbar-bg "#073642"
+# set statusbar-fg "#839496"
+# set inputbar-bg "#073642"
+# set inputbar-fg "#839496"
+# set error-fg "#dc322f"
+# set recolor-lightcolor "#002b36"
+# set recolor-darkcolor "#839496"
+# set default-bg "#002b36"
+
+# SOLARIZED LIGHT
+# set background "#fdf6e3"
+# set foreground "#657b83"
+# set highlight "#268bd2"
+# set selection "#eee8d5"
+# set statusbar-bg "#eee8d5"
+# set statusbar-fg "#657b83"
+# set inputbar-bg "#eee8d5"
+# set inputbar-fg "#657b83"
+# set error-fg "#dc322f"
+# set recolor-lightcolor "#fdf6e3"
+# set recolor-darkcolor "#002b36"
+# set default-bg "#fdf6e3"
+
+set recolor-keephue
+set font "Liberation Mono 9"
+map t toggle_statusbar
map i recolor
map J zoom in
map K zoom out
diff --git a/config/zsh/zshrc b/config/zsh/zshrc
index 4afbbc1..5805115 100755
--- a/config/zsh/zshrc
+++ b/config/zsh/zshrc
@@ -1,5 +1,3 @@
-# Suleyman's zsh interactive shell config at "https://git.farajli.net/slcf"
-
PROMPT="%B%F{red}%(?..%? )%B%F{blue}%n%b%f@%m %B%~ %% %b"
# Git integration
@@ -20,11 +18,11 @@ autoload -U compinit
zstyle ':completion:*' menu select
zmodload zsh/complist
compinit
-_comp_options+=(globdots) # Include hidden files.
+_comp_options+=(globdots) # Include hidden files.
# vi mode
-bindkey -v # Vi mode.
-export KEYTIMEOUT=1 # Set escape delay to 0.01 sec.
+bindkey -v # Vi mode.
+export KEYTIMEOUT=0 # Set escape delay to 0.01 sec.
# Use vim keys in tab complete menu:
bindkey -M menuselect 'h' vi-backward-char
@@ -33,7 +31,6 @@ bindkey -M menuselect 'l' vi-forward-char
bindkey -M menuselect 'j' vi-down-line-or-history
bindkey -v '^?' backward-delete-char
-
# Change cursor shape for different vi modes.
function zle-keymap-select () {
case "${KEYMAP}" in
@@ -50,23 +47,23 @@ zle-line-init() {
echo -ne "\e[5 q"
}
zle -N zle-line-init
-echo -ne '\e[5 q' # Use beam shape cursor on startup.
-preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt.
-
+echo -ne '\e[5 q' # Use beam shape cursor on startup.
+preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt.
# Options
-setopt autocd # Automatically cd into typed directory.
-stty stop undef # Disable ctrl-s to freeze terminal.
-setopt interactive_comments
-unsetopt nomatch
-setopt INC_APPEND_HISTORY # Add commands to history when they are run.
-setopt HIST_FIND_NO_DUPS # Don't show duplicate commands when backward searching.
+setopt autocd # Automatically cd into typed directory.
+stty stop undef # Disable ctrl-s to freeze terminal.
+setopt interactive_comments # Write comments in interactive shell
+unsetopt nomatch # Allow unmatched globs without error (leave pattern as-is)
+setopt INC_APPEND_HISTORY # Add commands to history when they are run.
+setopt HIST_FIND_NO_DUPS # Don't show duplicate commands when backward searching.
# Custom keybinds
bindkey '^R' history-incremental-search-backward
+bindkey -s '^f' '^uls\n'
bindkey -s '^o' '^ulfcd\n'
-bindkey -s '^f' '^ucd "$(dirname "$(fzf --reverse)")"\n'
bindkey -s '^v' '^u!!\n'
+bindkey ^@ vi-cmd-mode
if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc" ];then
source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc"