From ba851f8dbef15147c1f90156bc549b54a94a47e5 Mon Sep 17 00:00:00 2001 From: FollieHiyuki Date: Wed, 17 Nov 2021 22:39:12 +0700 Subject: [PATCH] roles: add tmux + git; nvim: more mappings for telescope-symbols.nvim --- dotfiles.yml | 2 + group_vars/all.yml | 1 + roles/git/tasks/main.yml | 11 +++++ roles/git/templates/config.j2 | 45 ++++++++++++++++++++ roles/nvim/files/lua/mappings.lua | 12 +++++- roles/nvim/files/lua/modules/tools.lua | 9 ++++ roles/nvim/files/lua/modules/ui.lua | 5 ++- roles/nvim/files/lua/plugins.lua | 3 +- roles/tmux/tasks/main.yml | 18 ++++++++ roles/tmux/templates/tmux.j2 | 57 ++++++++++++++++++++++++++ 10 files changed, 159 insertions(+), 4 deletions(-) create mode 100644 roles/git/tasks/main.yml create mode 100644 roles/git/templates/config.j2 create mode 100644 roles/tmux/tasks/main.yml create mode 100644 roles/tmux/templates/tmux.j2 diff --git a/dotfiles.yml b/dotfiles.yml index f0cf55b..163e9e2 100644 --- a/dotfiles.yml +++ b/dotfiles.yml @@ -14,4 +14,6 @@ - amfora - bash - foot + - git - nvim + - tmux diff --git a/group_vars/all.yml b/group_vars/all.yml index 08556a7..13522ee 100644 --- a/group_vars/all.yml +++ b/group_vars/all.yml @@ -1,6 +1,7 @@ --- user_name: FollieHiyuki user_email: folliekazetani@protonmail.com +gpg_signature: 813CF484F4993419 default_browser: qutebrowser term_font: Iosevka Nerd Font cjk_font: Sarasa Mono J diff --git a/roles/git/tasks/main.yml b/roles/git/tasks/main.yml new file mode 100644 index 0000000..143973b --- /dev/null +++ b/roles/git/tasks/main.yml @@ -0,0 +1,11 @@ +--- +- name: Create config directory + file: + path: ~/.config/git + state: directory + +- name: Copy config + template: + src: config.j2 + dest: ~/.config/git/config + force: yes diff --git a/roles/git/templates/config.j2 b/roles/git/templates/config.j2 new file mode 100644 index 0000000..aa88f3c --- /dev/null +++ b/roles/git/templates/config.j2 @@ -0,0 +1,45 @@ +[http] + sslverify = true +[commit] + gpgsign = true +[user] + name = {{ user_name }} + email = {{ user_email }} + signingkey = {{ gpg_signature }} +[core] + editor = nvim + whitespace = trailing-space +[filter "lfs"] + clean = git-lfs clean -- %f + smudge = git-lfs smudge -- %f + process = git-lfs filter-process + required = true +[rebase] + autosquash = true +[pull] + rebase = true +[fetch] + prune = true +[init] + defaultBranch = main +[push] + followTags = true +[help] + autocorrect = 1 +[submodule] + recurse = true +[alias] + l = log --graph --pretty=format:'%C(italic)%t%Creset %C(bold)<%an>%Creset -> %C(bold)%d%Creset %C(blue)%s%Creset - %C(italic)(%cr)%Creset' + s = status -sbu + sbu = submodule update --remote --merge + unstage = reset HEAD +[url "https://github.com/"] + insteadOf = gh: +[url "https://gitlab.com/"] + insteadOf = gl: +[url "https://git.disroot.org/"] + insteadOf = dr: +[url "https://codeberg.org/"] + insteadOf = cb: +[url "https://git.sr.ht/~"] + insteadOf = sr: diff --git a/roles/nvim/files/lua/mappings.lua b/roles/nvim/files/lua/mappings.lua index 2de43a1..395a6ba 100644 --- a/roles/nvim/files/lua/mappings.lua +++ b/roles/nvim/files/lua/mappings.lua @@ -147,7 +147,17 @@ local normal_leader_mappings = { g = {':Telescope live_grep', 'Live grep'}, h = {':Telescope help_tags', 'Help tags'}, i = {':Telescope highlights', 'Highlight groups'}, - j = {':Telescope symbols', 'Pick emojis'}, + j = { + name = 'Symbols', + g = 'Gitmoji', + h = {':Telescope symbols', 'All symbols'}, + j = 'Emoji', + k = 'Kaomoji', + l = 'Julia', + m = 'Math symbols', + n = 'Nerd-fonts symbols', + t = 'Latex symbols' + }, k = {':Telescope keymaps', 'Normal keymaps'}, m = {':Telescope marks', 'Bookmarks'}, n = {':Telescope man_pages', 'Man pages'}, diff --git a/roles/nvim/files/lua/modules/tools.lua b/roles/nvim/files/lua/modules/tools.lua index 24e1782..50c6747 100644 --- a/roles/nvim/files/lua/modules/tools.lua +++ b/roles/nvim/files/lua/modules/tools.lua @@ -51,6 +51,15 @@ function M.telescope_conf() -- wrap lines inside preview pane vim.api.nvim_command('autocmd User TelescopePreviewerLoaded setlocal wrap') + + -- Mappings for telescope-symbols.nvim + vim.api.nvim_set_keymap('n', 'fjg', ':lua require("telescope.builtin").symbols{sources = {"gitmoji"}, prompt_title = "Gitmoji"}', {noremap = true, silent = true}) + vim.api.nvim_set_keymap('n', 'fjj', ':lua require("telescope.builtin").symbols{sources = {"emoji"}, prompt_title = "Emoji"}', {noremap = true, silent = true}) + vim.api.nvim_set_keymap('n', 'fjk', ':lua require("telescope.builtin").symbols{sources = {"kaomoji"}, prompt_title = "Kaomoji"}', {noremap = true, silent = true}) + vim.api.nvim_set_keymap('n', 'fjl', ':lua require("telescope.builtin").symbols{sources = {"julia"}, prompt_title = "Julia symbols"}', {noremap = true, silent = true}) + vim.api.nvim_set_keymap('n', 'fjm', ':lua require("telescope.builtin").symbols{sources = {"math"}, prompt_title = "Math symbols"}', {noremap = true, silent = true}) + vim.api.nvim_set_keymap('n', 'fjn', ':lua require("telescope.builtin").symbols{sources = {"nerd"}, prompt_title = "Nerd-fonts symbols"}', {noremap = true, silent = true}) + vim.api.nvim_set_keymap('n', 'fjt', ':lua require("telescope.builtin").symbols{sources = {"latex"}, prompt_title = "Latex symbols"}', {noremap = true, silent = true}) end function M.octo_conf() diff --git a/roles/nvim/files/lua/modules/ui.lua b/roles/nvim/files/lua/modules/ui.lua index 49c01ce..1bd6b3a 100644 --- a/roles/nvim/files/lua/modules/ui.lua +++ b/roles/nvim/files/lua/modules/ui.lua @@ -499,7 +499,7 @@ function M.gitsigns_conf() ['v gr'] = ':lua require"gitsigns".reset_hunk({vim.fn.line("."), vim.fn.line("v")})', ['n gR'] = ':lua require"gitsigns".reset_buffer()', ['n gp'] = ':lua require"gitsigns".preview_hunk()', - ['n gb'] = ':lua require"gitsigns".blame_line(true)', + ['n gb'] = ':lua require"gitsigns".blame_line{full = true}', ['n gS'] = ':lua require"gitsigns".stage_buffer()', ['n gU'] = ':lua require"gitsigns".reset_buffer_index()', @@ -516,7 +516,8 @@ function M.gitsigns_conf() current_line_blame_opts = { delay = 1000, virt_text = true, - virt_text_pos = 'right_align' + virt_text_pos = 'right_align', + ignore_whitespace = false }, current_line_blame_formatter_opts = { relative_time = false diff --git a/roles/nvim/files/lua/plugins.lua b/roles/nvim/files/lua/plugins.lua index db50287..1ca267e 100644 --- a/roles/nvim/files/lua/plugins.lua +++ b/roles/nvim/files/lua/plugins.lua @@ -321,6 +321,7 @@ local tools = require('modules.tools') local tools_plugins = function(use) use { -- TODO: check out fzf-lua 'nvim-telescope/telescope.nvim', + keys = 'fj', cmd = 'Telescope', wants = { 'popup.nvim', @@ -439,7 +440,7 @@ local tools_plugins = function(use) config = tools.winshift_conf } use { - 'FollieHiyuki/window-picker.nvim', + 'ten3roberts/window-picker.nvim', cmd = {'WindowPick', 'WindowSwap', 'WindowSwapStay'}, config = tools.winpicker_conf } diff --git a/roles/tmux/tasks/main.yml b/roles/tmux/tasks/main.yml new file mode 100644 index 0000000..52aebce --- /dev/null +++ b/roles/tmux/tasks/main.yml @@ -0,0 +1,18 @@ +--- +- name: Create config directory + file: + path: ~/.config/tmux + state: directory + +- name: Copy config + template: + src: tmux.j2 + dest: ~/.config/tmux/tmux.conf + force: yes + +- name: Clone tpm + git: + depth: 1 + update: yes + repo: https://github.com/tmux-plugins/tpm.git + dest: ~/.config/tmux/plugins/tpm diff --git a/roles/tmux/templates/tmux.j2 b/roles/tmux/templates/tmux.j2 new file mode 100644 index 0000000..237cec9 --- /dev/null +++ b/roles/tmux/templates/tmux.j2 @@ -0,0 +1,57 @@ +# delay between prefix and command +set -s escape-time 0 + +# start with 1 instead of 0 +set -g base-index 1 +set -g pane-base-index 1 + +# increase scrollback buffer size +set -g history-limit 50000 + +# tmux messages are displayed for 4 seconds +set -g display-time 4000 + +# refresh 'status-left' and 'status-right' more often +set -g status-interval 5 + +# upgrade $TERM for 24-bit colors +set -g default-terminal "screen-256color" +set-option -ga terminal-overrides ",screen-256color:Tc" + +# no vim keys -_- +set -g status-keys emacs + +# focus events enabled for terminals that support them +set -g focus-events on + +# enable mouse +set -g mouse on + +# super useful when using "grouped sessions" and multi-monitor setup +setw -g aggressive-resize on + +# ______________ _____ +# ___ __ \__ /___ ________ ___(_)______________ +# __ /_/ /_ /_ / / /_ __ `/_ /__ __ \_ ___/ +# _ ____/_ / / /_/ /_ /_/ /_ / _ / / /(__ ) +# /_/ /_/ \__,_/ _\__, / /_/ /_/ /_//____/ +# /____/ +# +# Custom plugins' settings +set -g @prefix_highlight_show_copy_mode 'on' +set -g @prefix_highlight_show_sync_mode 'on' +set -g @prefix_highlight_prefix_prompt 'Wait' +set -g @prefix_highlight_copy_prompt 'Copy' +set -g @prefix_highlight_sync_prompt 'Sync' +set -g @tmux_nordone_theme '{{ theme }}' + +# Load plugins +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'https://git.disroot.org/FollieHiyuki/tmux-nordone' +set -g @plugin 'tmux-plugins/tmux-prefix-highlight' +set -g @plugin 'tmux-plugins/tmux-pain-control' +set -g @plugin 'tmux-plugins/tmux-copycat' +set -g @plugin 'tmux-plugins/tmux-yank' +set -g @plugin 'sainnhe/tmux-fzf' + +run '~/.config/tmux/plugins/tpm/tpm'