From 26e5b1ea422cc11c5f989ba7c7bba609a0402802 Mon Sep 17 00:00:00 2001 From: Sagi Dayan Date: Wed, 27 Mar 2024 14:09:11 +0200 Subject: [PATCH] Major update - move to symlinks for some dotfiles. Signed-off-by: Sagi Dayan --- files/dotfiles/alacritty.yml | 427 ------------------ files/dotfiles/alacritty/alacritty.toml | 45 ++ .../alacritty/catppuccin-macchiato.toml | 75 +++ .../dotfiles/alacritty/catppuccin-mocha.toml | 75 +++ files/dotfiles/nvim/lua/user/colors.lua | 4 +- files/dotfiles/nvim/lua/user/init.lua | 2 +- files/dotfiles/nvim/lua/user/init_plugins.lua | 41 ++ files/dotfiles/nvim/lua/user/keymaps.lua | 12 + files/dotfiles/nvim/lua/user/lualine.lua | 4 +- files/dotfiles/nvim/lua/user/packer.lua | 19 +- files/dotfiles/nvim/lua/user/vars.lua | 8 +- files/dotfiles/tmux/plugins/tmux | 1 + files/dotfiles/tmux/plugins/tmux-yank | 1 + files/dotfiles/tmux/plugins/tpm | 1 + .../dotfiles/tmux/plugins/vim-tmux-navigator | 1 + files/dotfiles/{ => tmux}/tmux.conf | 108 ++--- files/dotfiles/zshrc | 4 +- playbooks/workstation.yml | 3 +- roles/alacritty_user/tasks/main.yml | 21 +- roles/base/tasks/main.yml | 11 +- roles/environment/tasks/main.yml | 10 + roles/ncspot_user/tasks/main.yml | 17 - roles/tmux_user/tasks/main.yml | 19 +- roles/vim_user/tasks/main.yml | 29 +- 24 files changed, 364 insertions(+), 574 deletions(-) delete mode 100644 files/dotfiles/alacritty.yml create mode 100644 files/dotfiles/alacritty/alacritty.toml create mode 100644 files/dotfiles/alacritty/catppuccin-macchiato.toml create mode 100644 files/dotfiles/alacritty/catppuccin-mocha.toml create mode 160000 files/dotfiles/tmux/plugins/tmux create mode 160000 files/dotfiles/tmux/plugins/tmux-yank create mode 160000 files/dotfiles/tmux/plugins/tpm create mode 160000 files/dotfiles/tmux/plugins/vim-tmux-navigator rename files/dotfiles/{ => tmux}/tmux.conf (50%) create mode 100644 roles/environment/tasks/main.yml delete mode 100644 roles/ncspot_user/tasks/main.yml diff --git a/files/dotfiles/alacritty.yml b/files/dotfiles/alacritty.yml deleted file mode 100644 index 14d7bf7..0000000 --- a/files/dotfiles/alacritty.yml +++ /dev/null @@ -1,427 +0,0 @@ ---- -window: - opacity: 0.9 - # Blank space added around the window in pixels - padding: - x: 2 - y: 2 - - # Spread additional padding evenly around the terminal content - dynamic_padding: true - - # Disable border and title bar - decorations: none -env: - TERM: xterm-256color -font: - normal: - family: Hack Nerd Font - style: Regular - bold: - family: Hack Nerd Font - style: Bold - italic: - family: Hack Nerd Font - style: Italic - # Point size of the font - size: 10 - -mouse: - hide_when_typing: true - -selection: - # When set to `true`, selected text will be copied to the primary - # clipboard. - save_to_clipboard: true - -cursor: - style: - blinking: Always - # Thickness of the cursor (number from `0.0` to `1.0`) - thickness: 0.18 - # Vi mode cursor style - vi_mode_style: Block - # Blink Interval - blink_interval: 400 - - ########################################################### - # Themes # - ########################################################### -schemes: - nordfox: &nordfox - primary: - background: '0x2e3440' - foreground: '0xcdcecf' - # Normal colors - normal: - black: '0x3b4252' - red: '0xbf616a' - green: '0xa3be8c' - yellow: '0xebcb8b' - blue: '0x81a1c1' - magenta: '0xb48ead' - cyan: '0x88c0d0' - white: '0xe5e9f0' - # Bright colors - bright: - black: '0x465780' - red: '0xd06f79' - green: '0xb1d196' - yellow: '0xf0d399' - blue: '0x8cafd2' - magenta: '0xc895bf' - cyan: '0x93ccdc' - white: '0xe7ecf4' - indexed_colors: - - { index: 16, color: '0xc9826b' } - - { index: 17, color: '0xbf88bc' } - terafox: &terafox - primary: - background: '0x152528' - foreground: '0xe6eaea' - # Normal colors - normal: - black: '0x2f3239' - red: '0xe85c51' - green: '0x7aa4a1' - yellow: '0xfda47f' - blue: '0x5a93aa' - magenta: '0xad5c7c' - cyan: '0xa1cdd8' - white: '0xebebeb' - # Bright colors - bright: - black: '0x4e5157' - red: '0xeb746b' - green: '0x8eb2af' - yellow: '0xfdb292' - blue: '0x73a3b7' - magenta: '0xb97490' - cyan: '0xafd4de' - white: '0xeeeeee' - indexed_colors: - - { index: 16, color: '0xff8349' } - - { index: 17, color: '0xcb7985' } - nightfox: &nightfox - # Default colors - primary: - background: '0x192330' - foreground: '0xcdcecf' - # Normal colors - normal: - black: '0x393b44' - red: '0xc94f6d' - green: '0x81b29a' - yellow: '0xdbc074' - blue: '0x719cd6' - magenta: '0x9d79d6' - cyan: '0x63cdcf' - white: '0xdfdfe0' - # Bright colors - bright: - black: '0x575860' - red: '0xd16983' - green: '0x8ebaa4' - yellow: '0xe0c989' - blue: '0x86abdc' - magenta: '0xbaa1e2' - cyan: '0x7ad4d6' - white: '0xe4e4e5' - indexed_colors: - - { index: 16, color: '0xf4a261' } - - { index: 17, color: '0xd67ad2' } - melange: &melange - primary: - foreground: '#ECE1D7' - background: '#2A2520' - normal: - black: '#352F2A' - red: '#B65C60' - green: '#78997A' - yellow: '#EBC06D' - blue: '#9AACCE' - magenta: '#B380B0' - cyan: '#86A3A3' - white: '#A38D78' - bright: - black: '#4D453E' - red: '#F17C64' - green: '#99D59D' - yellow: '#EBC06D' - blue: '#9AACCE' - magenta: '#CE9BCB' - cyan: '#88B3B2' - white: '#C1A78E' -# For themes -> https://github.com/aarowill/base16-alacritty - # Base16 Monokai 256 - alacritty color config - # Wimer Hazenberg (http://www.monokai.nl) - monokai: &monokai - # Default colors - primary: - background: '0x2d2a2e' - foreground: '0xf8f8f2' - - # Colors the cursor will use if `custom_cursor_colors` is true - cursor: - text: '0x272822' - cursor: '0xf8f8f2' - - # Normal colors - normal: - black: '0x272822' - red: '0xf92672' - green: '0xa6e22e' - yellow: '0xf4bf75' - blue: '0x66d9ef' - magenta: '0xae81ff' - cyan: '0xa1efe4' - white: '0xf8f8f2' - - # Bright colors - bright: - black: '0x75715e' - red: '0xf92672' - green: '0xa6e22e' - yellow: '0xf4bf75' - blue: '0x66d9ef' - magenta: '0xae81ff' - cyan: '0xa1efe4' - white: '0xf9f8f5' - - indexed_colors: - - { index: 16, color: '0xfd971f' } - - { index: 17, color: '0xcc6633' } - - { index: 18, color: '0x383830' } - - { index: 19, color: '0x49483e' } - - { index: 20, color: '0xa59f85' } - - { index: 21, color: '0xf5f4f1' } - # Base16 Gruvbox dark, medium 256 - alacritty color config - # Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) - gruvbox: &gruvbox - # Default colors - primary: - background: '0x282828' - foreground: '0xd5c4a1' - - # Colors the cursor will use if `custom_cursor_colors` is true - cursor: - text: '0x282828' - cursor: '0xd5c4a1' - - # Normal colors - normal: - black: '0x282828' - red: '0xfb4934' - green: '0xb8bb26' - yellow: '0xfabd2f' - blue: '0x83a598' - magenta: '0xd3869b' - cyan: '0x8ec07c' - white: '0xd5c4a1' - - # Bright colors - bright: - black: '0x665c54' - red: '0xfb4934' - green: '0xb8bb26' - yellow: '0xfabd2f' - blue: '0x83a598' - magenta: '0xd3869b' - cyan: '0x8ec07c' - white: '0xfbf1c7' - - indexed_colors: - - { index: 16, color: '0xfe8019' } - - { index: 17, color: '0xd65d0e' } - - { index: 18, color: '0x3c3836' } - - { index: 19, color: '0x504945' } - - { index: 20, color: '0xbdae93' } - - { index: 21, color: '0xebdbb2' } - - # Base16 Tomorrow Night - alacritty color config - # Chris Kempson (http://chriskempson.com) - tomorrow-night: &tomorrow-night - # Default colors - primary: - background: '0x1d1f21' - foreground: '0xc5c8c6' - - # Colors the cursor will use if `custom_cursor_colors` is true - cursor: - text: '0x1d1f21' - cursor: '0xc5c8c6' - - # Normal colors - normal: - black: '0x1d1f21' - red: '0xcc6666' - green: '0xb5bd68' - yellow: '0xf0c674' - blue: '0x81a2be' - magenta: '0xb294bb' - cyan: '0x8abeb7' - white: '0xc5c8c6' - - # Bright colors - bright: - black: '0x969896' - red: '0xcc6666' - green: '0xb5bd68' - yellow: '0xf0c674' - blue: '0x81a2be' - magenta: '0xb294bb' - cyan: '0x8abeb7' - white: '0xffffff' - - indexed_colors: - - { index: 16, color: '0xde935f' } - - { index: 17, color: '0xa3685a' } - - { index: 18, color: '0x282a2e' } - - { index: 19, color: '0x373b41' } - - { index: 20, color: '0xb4b7b4' } - - { index: 21, color: '0xe0e0e0' } - # Base16 Dracula 256 - alacritty color config - # Mike Barkmin (http://github.com/mikebarkmin) based on Dracula Theme (http://github.com/dracula) - dracula: &drakula - # Default colors - primary: - background: '0x282936' - foreground: '0xe9e9f4' - - # Colors the cursor will use if `custom_cursor_colors` is true - cursor: - text: '0x282936' - cursor: '0xe9e9f4' - - # Normal colors - normal: - black: '0x282936' - red: '0xea51b2' - green: '0xebff87' - yellow: '0x00f769' - blue: '0x62d6e8' - magenta: '0xb45bcf' - cyan: '0xa1efe4' - white: '0xe9e9f4' - - # Bright colors - bright: - black: '0x626483' - red: '0xea51b2' - green: '0xebff87' - yellow: '0x00f769' - blue: '0x62d6e8' - magenta: '0xb45bcf' - cyan: '0xa1efe4' - white: '0xf7f7fb' - - indexed_colors: - - { index: 16, color: '0xb45bcf' } - - { index: 17, color: '0x00f769' } - - { index: 18, color: '0x3a3c4e' } - - { index: 19, color: '0x4d4f68' } - - { index: 20, color: '0x62d6e8' } - - { index: 21, color: '0xf1f2f8' } - # Base16 OneDark 256 - alacritty color config - # Lalit Magant (http://github.com/tilal6991) - onedark: &onedark - # Default colors - primary: - background: '0x282c34' - foreground: '0xabb2bf' - - # Colors the cursor will use if `custom_cursor_colors` is true - cursor: - text: '0x282c34' - cursor: '0xabb2bf' - - # Normal colors - normal: - black: '0x282c34' - red: '0xe06c75' - green: '0x98c379' - yellow: '0xe5c07b' - blue: '0x61afef' - magenta: '0xc678dd' - cyan: '0x56b6c2' - white: '0xabb2bf' - - # Bright colors - bright: - black: '0x545862' - red: '0xe06c75' - green: '0x98c379' - yellow: '0xe5c07b' - blue: '0x61afef' - magenta: '0xc678dd' - cyan: '0x56b6c2' - white: '0xc8ccd4' - - indexed_colors: - - { index: 16, color: '0xd19a66' } - - { index: 17, color: '0xbe5046' } - - { index: 18, color: '0x353b45' } - - { index: 19, color: '0x3e4451' } - - { index: 20, color: '0x565c64' } - - { index: 21, color: '0xb6bdca' } - # Copyright (c) 2017-present Arctic Ice Studio - # Copyright (c) 2017-present Sven Greb - - # Project: Nord Alacritty - # Version: 0.1.0 - # Repository: https://github.com/arcticicestudio/nord-alacritty - # License: MIT - # References: - # https://github.com/alacritty/alacritty - - nord: &nord - primary: - background: '#2e3440' - foreground: '#d8dee9' - dim_foreground: '#a5abb6' - cursor: - text: '#2e3440' - cursor: '#d8dee9' - vi_mode_cursor: - text: '#2e3440' - cursor: '#d8dee9' - selection: - text: CellForeground - background: '#4c566a' - search: - matches: - foreground: CellBackground - background: '#88c0d0' - bar: - background: '#434c5e' - foreground: '#d8dee9' - normal: - black: '#3b4252' - red: '#bf616a' - green: '#a3be8c' - yellow: '#ebcb8b' - blue: '#81a1c1' - magenta: '#b48ead' - cyan: '#88c0d0' - white: '#e5e9f0' - bright: - black: '#4c566a' - red: '#bf616a' - green: '#a3be8c' - yellow: '#ebcb8b' - blue: '#81a1c1' - magenta: '#b48ead' - cyan: '#8fbcbb' - white: '#eceff4' - dim: - black: '#373e4d' - red: '#94545d' - green: '#809575' - yellow: '#b29e75' - blue: '#68809a' - magenta: '#8c738c' - cyan: '#6d96a5' - white: '#aeb3bb' - -draw_bold_text_with_bright_colors: true -colors: *nightfox diff --git a/files/dotfiles/alacritty/alacritty.toml b/files/dotfiles/alacritty/alacritty.toml new file mode 100644 index 0000000..4675149 --- /dev/null +++ b/files/dotfiles/alacritty/alacritty.toml @@ -0,0 +1,45 @@ +import = [ + "~/.config/alacritty/catppuccin-mocha.toml" +] + +[window] +#opacity = 0.7 +dynamic_padding = true +decorations = "none" + + [window.padding] + x = 2 + y = 2 + +[env] +TERM = "xterm-256color" + +[font] +size = 10 + + [font.normal] + family = "Hack Nerd Font" + style = "Regular" + + [font.bold] + family = "Hack Nerd Font" + style = "Bold" + + [font.italic] + family = "Hack Nerd Font" + style = "Italic" + +[mouse] +hide_when_typing = true + +[selection] +save_to_clipboard = true + +[cursor] +thickness = 0.18 +vi_mode_style = "Block" +blink_interval = 400 + + [cursor.style] + blinking = "Always" + diff --git a/files/dotfiles/alacritty/catppuccin-macchiato.toml b/files/dotfiles/alacritty/catppuccin-macchiato.toml new file mode 100644 index 0000000..0e643eb --- /dev/null +++ b/files/dotfiles/alacritty/catppuccin-macchiato.toml @@ -0,0 +1,75 @@ +[colors.primary] +background = "#24273A" +foreground = "#CAD3F5" +dim_foreground = "#CAD3F5" +bright_foreground = "#CAD3F5" + +[colors.cursor] +text = "#24273A" +cursor = "#F4DBD6" + +[colors.vi_mode_cursor] +text = "#24273A" +cursor = "#B7BDF8" + +[colors.search.matches] +foreground = "#24273A" +background = "#A5ADCB" + +[colors.search.focused_match] +foreground = "#24273A" +background = "#A6DA95" + +[colors.footer_bar] +foreground = "#24273A" +background = "#A5ADCB" + +[colors.hints.start] +foreground = "#24273A" +background = "#EED49F" + +[colors.hints.end] +foreground = "#24273A" +background = "#A5ADCB" + +[colors.selection] +text = "#24273A" +background = "#F4DBD6" + +[colors.normal] +black = "#494D64" +red = "#ED8796" +green = "#A6DA95" +yellow = "#EED49F" +blue = "#8AADF4" +magenta = "#F5BDE6" +cyan = "#8BD5CA" +white = "#B8C0E0" + +[colors.bright] +black = "#5B6078" +red = "#ED8796" +green = "#A6DA95" +yellow = "#EED49F" +blue = "#8AADF4" +magenta = "#F5BDE6" +cyan = "#8BD5CA" +white = "#A5ADCB" + +[colors.dim] +black = "#494D64" +red = "#ED8796" +green = "#A6DA95" +yellow = "#EED49F" +blue = "#8AADF4" +magenta = "#F5BDE6" +cyan = "#8BD5CA" +white = "#B8C0E0" + +[[colors.indexed_colors]] +index = 16 +color = "#F5A97F" + +[[colors.indexed_colors]] +index = 17 +color = "#F4DBD6" diff --git a/files/dotfiles/alacritty/catppuccin-mocha.toml b/files/dotfiles/alacritty/catppuccin-mocha.toml new file mode 100644 index 0000000..1dfe857 --- /dev/null +++ b/files/dotfiles/alacritty/catppuccin-mocha.toml @@ -0,0 +1,75 @@ +[colors.primary] +background = "#1E1E2E" +foreground = "#CDD6F4" +dim_foreground = "#CDD6F4" +bright_foreground = "#CDD6F4" + +[colors.cursor] +text = "#1E1E2E" +cursor = "#F5E0DC" + +[colors.vi_mode_cursor] +text = "#1E1E2E" +cursor = "#B4BEFE" + +[colors.search.matches] +foreground = "#1E1E2E" +background = "#A6ADC8" + +[colors.search.focused_match] +foreground = "#1E1E2E" +background = "#A6E3A1" + +[colors.footer_bar] +foreground = "#1E1E2E" +background = "#A6ADC8" + +[colors.hints.start] +foreground = "#1E1E2E" +background = "#F9E2AF" + +[colors.hints.end] +foreground = "#1E1E2E" +background = "#A6ADC8" + +[colors.selection] +text = "#1E1E2E" +background = "#F5E0DC" + +[colors.normal] +black = "#45475A" +red = "#F38BA8" +green = "#A6E3A1" +yellow = "#F9E2AF" +blue = "#89B4FA" +magenta = "#F5C2E7" +cyan = "#94E2D5" +white = "#BAC2DE" + +[colors.bright] +black = "#585B70" +red = "#F38BA8" +green = "#A6E3A1" +yellow = "#F9E2AF" +blue = "#89B4FA" +magenta = "#F5C2E7" +cyan = "#94E2D5" +white = "#A6ADC8" + +[colors.dim] +black = "#45475A" +red = "#F38BA8" +green = "#A6E3A1" +yellow = "#F9E2AF" +blue = "#89B4FA" +magenta = "#F5C2E7" +cyan = "#94E2D5" +white = "#BAC2DE" + +[[colors.indexed_colors]] +index = 16 +color = "#FAB387" + +[[colors.indexed_colors]] +index = 17 +color = "#F5E0DC" diff --git a/files/dotfiles/nvim/lua/user/colors.lua b/files/dotfiles/nvim/lua/user/colors.lua index 9ee36c1..a023108 100644 --- a/files/dotfiles/nvim/lua/user/colors.lua +++ b/files/dotfiles/nvim/lua/user/colors.lua @@ -27,5 +27,7 @@ end if vars.transparent_bg then - vim.cmd("highlight Normal guibg=none") + vim.cmd("highlight Normal guibg=none ctermbg=NONE") + vim.cmd("highlight NormalNC guibg=none ctermbg=NONE") + vim.cmd("hi NvimTreeNormal guibg=NONE ctermbg=NONE") end diff --git a/files/dotfiles/nvim/lua/user/init.lua b/files/dotfiles/nvim/lua/user/init.lua index 75f4f76..4a6381a 100644 --- a/files/dotfiles/nvim/lua/user/init.lua +++ b/files/dotfiles/nvim/lua/user/init.lua @@ -3,8 +3,8 @@ vim.cmd(":PackerInstall") require("user.settings") -require("user.init_plugins") require("user.lsp") +require("user.init_plugins") require("user.cmp") require("user.treesitter") require("user.keymaps") diff --git a/files/dotfiles/nvim/lua/user/init_plugins.lua b/files/dotfiles/nvim/lua/user/init_plugins.lua index aeaf63a..89addd6 100644 --- a/files/dotfiles/nvim/lua/user/init_plugins.lua +++ b/files/dotfiles/nvim/lua/user/init_plugins.lua @@ -37,3 +37,44 @@ local autopairs_status_ok, autopairs = pcall(require, "nvim-autopairs") if autopairs_status_ok then autopairs.setup {} end + +-- Catppuccin colors +local catppuccin_status_ok, catppuccin = pcall(require, "catppuccin") +if catppuccin_status_ok then + catppuccin.setup { + } +end + +-- Debugger +local neodev_ok, neodev = pcall(require, "neodev") +local dapui_ok, dapui = pcall(require, "dapui") +local dap_virt_txt_ok, dap_virt_txt = pcall(require, "nvim-dap-virtual-text") +local mason_dap_ok, mason_dap = pcall(require, "mason-nvim-dap") +local dapgo_ok, dapgo = pcall(require, "dap-go") +if dapui_ok then + dapui.setup() +end +if neodev_ok then + neodev.setup({ + library = { plugins = { "nvim-dap-ui" }, types = true }, + }) +end +if dap_virt_txt_ok then + dap_virt_txt.setup() +end +if mason_dap_ok then + mason_dap.setup { + handlers = {}, -- sets up dap in the predefined manner + } +end +if dapgo_ok then + dapgo.setup() +end +-- end debugger +-- + +-- notifications +local notify_ok, notify = pcall(require, "notify") +if notify_ok then + vim.notify = notify +end diff --git a/files/dotfiles/nvim/lua/user/keymaps.lua b/files/dotfiles/nvim/lua/user/keymaps.lua index e50702a..6e7c639 100644 --- a/files/dotfiles/nvim/lua/user/keymaps.lua +++ b/files/dotfiles/nvim/lua/user/keymaps.lua @@ -12,6 +12,18 @@ nnoremap("", ":NvimTreeToggle") nnoremap("r", ":NvimTreeRefresh") nnoremap("n", ":NvimTreeFindFile") + +-- debugging +local dapui_ok, dapui = pcall(require, "dapui") +if dapui_ok then + nnoremap('dt', dapui.toggle) -- toggles debug view +end +local dap_ok, dap = pcall(require, "dap") +if dap_ok then + nnoremap('db', dap.toggle_breakpoint) + nnoremap('dc', dap.continue) +end + -- Telescope local telescope_status_ok, telescope = pcall(require, "telescope.builtin") if telescope_status_ok then diff --git a/files/dotfiles/nvim/lua/user/lualine.lua b/files/dotfiles/nvim/lua/user/lualine.lua index be6883a..04c39a4 100644 --- a/files/dotfiles/nvim/lua/user/lualine.lua +++ b/files/dotfiles/nvim/lua/user/lualine.lua @@ -8,6 +8,8 @@ end lualine.setup { options = { -- theme = vars.colorscheme, --https://github.com/nvim-lualine/lualine.nvim/blob/master/THEMES.md - theme = vars.themes[vars.colorscheme].lualine_theme + theme = vars.themes[vars.colorscheme].lualine_theme, + component_separators = " ", + section_separators = { left = "", right = "" }, } } diff --git a/files/dotfiles/nvim/lua/user/packer.lua b/files/dotfiles/nvim/lua/user/packer.lua index f59ca12..9aaf7a1 100644 --- a/files/dotfiles/nvim/lua/user/packer.lua +++ b/files/dotfiles/nvim/lua/user/packer.lua @@ -1,9 +1,12 @@ -local treesitter_extention_exists, _ = pcall(require, 'user.packer_extention_treesitter') +local is_workstation = os.getenv("DEVICE_ROLE") == 'WORKSTATION' return require("packer").startup(function(use) -- Packer can manage itself use 'wbthomason/packer.nvim' + -- vim-tmux + use 'christoomey/vim-tmux-navigator' + -- LSP config use { 'neovim/nvim-lspconfig', @@ -21,6 +24,12 @@ return require("packer").startup(function(use) 'saadparwaiz1/cmp_luasnip', } + -- Debugger + use { "rcarriga/nvim-dap-ui", requires = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio" } } + use 'theHamsta/nvim-dap-virtual-text' + use "jay-babu/mason-nvim-dap.nvim" + use 'leoluz/nvim-dap-go' + -- file tree use { 'nvim-tree/nvim-web-devicons', @@ -50,6 +59,9 @@ return require("packer").startup(function(use) -- tag = 'release' } + -- Notifications + use 'rcarriga/nvim-notify' + -- Auto Pairs (brackets) use { "windwp/nvim-autopairs", @@ -62,7 +74,7 @@ return require("packer").startup(function(use) requires = { { 'nvim-lua/plenary.nvim' } } } - if treesitter_extention_exists then + if is_workstation then use { 'nvim-treesitter/nvim-treesitter', run = ':TSUpdate' @@ -72,4 +84,7 @@ return require("packer").startup(function(use) -- Beacon use 'danilamihailov/beacon.nvim' + + -- Catppuccin + use { "catppuccin/nvim", as = "catppuccin" } end) diff --git a/files/dotfiles/nvim/lua/user/vars.lua b/files/dotfiles/nvim/lua/user/vars.lua index c8f06de..a6733c1 100644 --- a/files/dotfiles/nvim/lua/user/vars.lua +++ b/files/dotfiles/nvim/lua/user/vars.lua @@ -1,7 +1,7 @@ local M = {} -M.colorscheme = 'nightfox' -M.transparent_bg = true +M.colorscheme = 'catppuccin' +M.transparent_bg = false M.themes = { gruvbox = { @@ -15,6 +15,10 @@ M.themes = { nightfox = { colorscheme = 'nightfox', lualine_theme = 'nightfox' + }, + catppuccin = { + colorscheme = 'catppuccin-mocha', + lualine_theme = 'catppuccin' } } diff --git a/files/dotfiles/tmux/plugins/tmux b/files/dotfiles/tmux/plugins/tmux new file mode 160000 index 0000000..e2d3456 --- /dev/null +++ b/files/dotfiles/tmux/plugins/tmux @@ -0,0 +1 @@ +Subproject commit e2d345648cb7e56302ee82fec6cafbbd8db23129 diff --git a/files/dotfiles/tmux/plugins/tmux-yank b/files/dotfiles/tmux/plugins/tmux-yank new file mode 160000 index 0000000..acfd36e --- /dev/null +++ b/files/dotfiles/tmux/plugins/tmux-yank @@ -0,0 +1 @@ +Subproject commit acfd36e4fcba99f8310a7dfb432111c242fe7392 diff --git a/files/dotfiles/tmux/plugins/tpm b/files/dotfiles/tmux/plugins/tpm new file mode 160000 index 0000000..99469c4 --- /dev/null +++ b/files/dotfiles/tmux/plugins/tpm @@ -0,0 +1 @@ +Subproject commit 99469c4a9b1ccf77fade25842dc7bafbc8ce9946 diff --git a/files/dotfiles/tmux/plugins/vim-tmux-navigator b/files/dotfiles/tmux/plugins/vim-tmux-navigator new file mode 160000 index 0000000..38b1d04 --- /dev/null +++ b/files/dotfiles/tmux/plugins/vim-tmux-navigator @@ -0,0 +1 @@ +Subproject commit 38b1d0402c4600543281dc85b3f51884205674b6 diff --git a/files/dotfiles/tmux.conf b/files/dotfiles/tmux/tmux.conf similarity index 50% rename from files/dotfiles/tmux.conf rename to files/dotfiles/tmux/tmux.conf index 25fae2c..39c1bfa 100644 --- a/files/dotfiles/tmux.conf +++ b/files/dotfiles/tmux/tmux.conf @@ -9,13 +9,14 @@ set -s escape-time 0 # For gapless window numbers set-option -g renumber-windows on -# Use Alt+[hjkl] to switch panes - also (esc - h|j|k|l) -bind -n M-h select-pane -L -bind -n M-l select-pane -R -bind -n M-k select-pane -U -bind -n M-j select-pane -D +# Use Ctrl+[hjkl] to switch panes +bind h select-pane -L +bind j select-pane -D +bind k select-pane -U +bind l select-pane -R -# -h|l|Left|Right + +# -h|l|Left|Right - move windows bind-key h previous-window bind-key Left previous-window bind-key l next-window @@ -38,7 +39,7 @@ bind-key k send-keys Up bind-key j send-keys Down # Easy config reload -bind-key r source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded." +bind-key r source-file ~/.config/tmux/tmux.conf \; display-message "~/.config/tmux/.tmux.conf reloaded." # Lookup the cheat sheet -i bind-key i run-shell "tmux neww -n '🏳️ CHEATER\! 😎' ~/.shellconfig/cheat.sh" @@ -78,9 +79,9 @@ bind-key ! run-shell "tmux neww -n '🌡️ Weather Peek' '(echo \"Fetching Weat set -g @plugin 'tmux-plugins/tmux-yank' # Mouse select to clipboard set -g @yank_selection_mouse 'clipboard' # or 'primary' or 'secondary' - -# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) -run '~/.tmux/plugins/tpm/tpm' +set -g @plugin 'catppuccin/tmux' +# vim +set -g @plugin 'christoomey/vim-tmux-navigator' # Buffer line size (History) set -g history-limit 5000 @@ -89,76 +90,47 @@ set -g history-limit 5000 bind -n C-k clear-history # Default Colors -set -g default-terminal "xterm-256color" -set-option -ga terminal-overrides ",xterm-256color:Tc" +set-option -sa terminal-overrides ",xterm*:Tc" # Home/End support bind -n End send-key C-e bind -n Home send-key C-a -# Set active pane border background -#set-option -g pane-active-border-style bg=#8abeb7 +set -g @catppuccin_flavour 'macchiato' # latte, frappe, macchiato, mocha -############################ -# Tomorrow-Night Theme -########################### -## set status bar -set -g status-style bg=default -setw -g window-status-current-style bg="#282a2e" -setw -g window-status-current-style fg="#81a2be" +set -g @catppuccin_window_left_separator "" +set -g @catppuccin_window_right_separator " " +set -g @catppuccin_window_middle_separator " █" +set -g @catppuccin_window_number_position "right" -## highlight active window -#setw -g window-style 'bg=#282a2e' -#setw -g window-active-style 'bg=#1d1f21' -setw -g pane-active-border-style '' +set -g @catppuccin_window_default_fill "number" +set -g @catppuccin_window_default_text "#W" -## highlight activity in status bar -setw -g window-status-activity-style fg="#8abeb7" -setw -g window-status-activity-style bg="#1d1f21" +set -g @catppuccin_window_current_fill "number" +set -g @catppuccin_window_current_text "#W" -## pane border and colors -set -g pane-active-border-style bg=default -set -g pane-active-border-style fg="#373b41" -set -g pane-border-style bg=default -set -g pane-border-style fg="#373b41" +set -g @catppuccin_status_modules_right "directory user host session" +set -g @catppuccin_status_left_separator " " +set -g @catppuccin_status_right_separator "" +set -g @catppuccin_status_right_separator_inverse "no" +set -g @catppuccin_status_fill "icon" +set -g @catppuccin_status_connect_separator "no" -set -g clock-mode-colour "#81a2be" -set -g clock-mode-style 24 +set -g @catppuccin_host_icon "" -set -g message-style bg="#8abeb7" -set -g message-style fg="#000000" +set -g @catppuccin_directory_text "#{pane_current_path}" -set -g message-command-style bg="#8abeb7" -set -g message-command-style fg="#000000" -# message bar or "prompt" -set -g message-style bg="#2d2d2d" -set -g message-style fg="#cc99cc" -set -g mode-style bg="#1d1f21" -set -g mode-style fg="#de935f" +# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) +run '~/.config/tmux/plugins/tpm/tpm' -set -g status-left '#[fg=#f99157,bg=#2d2d2d]  #S #[fg=#f99157,bg=colour235] ' - -# right side of status bar holds "[host name] (date time)" -set -g status-right-length 100 -set -g status-right-style fg=black -set -g status-right-style bold -set -g status-right '#[fg=#6699cc,bg=#464646]  #[fg=#f99157,bg=#2d2d2d] %H:%M:%S #[fg=colour235]|#[fg=#6699cc,bg=#464646]  #[fg=#f99157,bg=#2d2d2d] %y/%m/%d #[fg=colour235]|#[fg=#6699cc,bg=#464646]  #[fg=#f99157,bg=#2d2d2d] @#H ' - -# make background window look like white tab -set-window-option -g window-status-style bg=default -set-window-option -g window-status-style fg=white -set-window-option -g window-status-style none -set-window-option -g window-status-format '#[fg=#6699cc,bg=#464646] #I #[fg=#999999,bg=#2d2d2d] #W #[default]' - -# make foreground window look like bold yellow foreground tab -set-window-option -g window-status-current-style none -set-window-option -g window-status-current-format '#[fg=#f99157]#[fg=#6699cc]#I #{?window_zoomed_flag,[🔎] ,}#[fg=#ffffff,bg=#6699cc] #W #[default]' - -# active terminal yellow border, non-active white -set -g pane-border-style bg=default -set -g pane-border-style fg="#999999" -set -g pane-active-border-style fg="#f99157" - -#set-hook -g after-resize-pane 'if "[ #{window_zoomed_flag} -eq 1 ]" "run \"tmux select-pane -P bg=red\"" "run \"tmux select-pane -P bg=black\""' +# set copy mode vim +set-window-option -g mode-keys vi +# keybindings +bind-key -T copy-mode-vi v send-keys -X begin-selection +bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle +bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel +# Enter/Exit compy mode +bind-key v copy-mode +bind-key -T copy-mode-vi Escape send-keys -X cancel diff --git a/files/dotfiles/zshrc b/files/dotfiles/zshrc index d8e9e38..0a8089d 100644 --- a/files/dotfiles/zshrc +++ b/files/dotfiles/zshrc @@ -117,4 +117,6 @@ fi # Ideal for server use: Start tmux if not in a session # [ -z $TMUX ] && ( tmux a || tmux ) # Ideal for desktop use: If tmux is not open already - create a new session and open project manager -# [ -z $TMUX ] && (tmux new-session ~/.shellconfig/workspaces/open_workspace.sh) +if [[ $DEVICE_ROLE == "WORKSTATION" ]]; then + [ -z $TMUX ] && (tmux new-session ~/.shellconfig/workspaces/open_workspace.sh) +fi diff --git a/playbooks/workstation.yml b/playbooks/workstation.yml index fde5e2a..58432bb 100644 --- a/playbooks/workstation.yml +++ b/playbooks/workstation.yml @@ -5,13 +5,14 @@ theme: gruvbox # The running user running_user: "{{ ansible_user_id }}" + env_device_role: WORKSTATION # for nvim - workstation should install extentions nvim_extention_treesitter: true roles: + - environment - base - fonts - tmux_user - vim_user - alacritty_user - - ncspot_user - flatpaks diff --git a/roles/alacritty_user/tasks/main.yml b/roles/alacritty_user/tasks/main.yml index 792fcdb..4e8aade 100644 --- a/roles/alacritty_user/tasks/main.yml +++ b/roles/alacritty_user/tasks/main.yml @@ -4,17 +4,10 @@ name: alacritty state: present -- name: Setting up alacritty config file - copy: - src: dotfiles/alacritty.yml - dest: ~/.alacritty.yml - mode: preserve - changed_when: false - -- name: "Setting Alacritty theme" - ansible.builtin.lineinfile: - path: "~/.alacritty.yml" - regexp: "^colors:" - line: "colors: *{{ theme }}" - changed_when: false - +- name: Linking up alacritty config folder + file: + src: "{{ playbook_dir }}/files/dotfiles/alacritty" + dest: ~/.config/alacritty + state: link + owner: "{{ ansible_user_id }}" + group: "{{ ansible_user_id }}" diff --git a/roles/base/tasks/main.yml b/roles/base/tasks/main.yml index f96bebc..3c8193e 100644 --- a/roles/base/tasks/main.yml +++ b/roles/base/tasks/main.yml @@ -43,12 +43,13 @@ name: "{{ running_user }}" shell: /bin/zsh -- name: Copy zsh config - copy: - src: dotfiles/zshrc +- name: Linking up zsh config (zshrc) + file: + src: "{{ playbook_dir }}/files/dotfiles/zshrc" dest: ~/.zshrc - force: yes - mode: preserve + state: link + owner: "{{ ansible_user_id }}" + group: "{{ ansible_user_id }}" - name: Add ranger devicons plugin repo git: diff --git a/roles/environment/tasks/main.yml b/roles/environment/tasks/main.yml new file mode 100644 index 0000000..659103f --- /dev/null +++ b/roles/environment/tasks/main.yml @@ -0,0 +1,10 @@ +- name: customize /etc/environment + become: true + ansible.builtin.lineinfile: + dest: "/etc/environment" + state: present + regexp: "^{{ item.key }}=" + line: "{{ item.key }}={{ item.value }}" + with_items: + - key: DEVICE_ROLE + value: "{{ env_device_role }}" diff --git a/roles/ncspot_user/tasks/main.yml b/roles/ncspot_user/tasks/main.yml deleted file mode 100644 index 94314ff..0000000 --- a/roles/ncspot_user/tasks/main.yml +++ /dev/null @@ -1,17 +0,0 @@ ---- -- name: Installing ncspot (Spotify) - ansible.builtin.include_role: - name: gh_release_bin - vars: - name: ncspot - repo: hrkfdn/ncspot - bin_path: "/ncspot" - filter: linux-x86_64.tar.gz - -- name: Setting up ncspot alias (spot) - ansible.builtin.lineinfile: - line: alias spot=ncspot - state: present - path: ~/.shellconfig/aliases.sh - insertafter: EOF - diff --git a/roles/tmux_user/tasks/main.yml b/roles/tmux_user/tasks/main.yml index 6319fcd..bf81177 100644 --- a/roles/tmux_user/tasks/main.yml +++ b/roles/tmux_user/tasks/main.yml @@ -4,15 +4,10 @@ name: tmux state: present -- name: Install tmux plugin manager - git: - repo: https://github.com/tmux-plugins/tpm - dest: ~/.tmux/plugins/tpm - update: yes - version: master - -- name: Copy tmux config file - copy: - src: dotfiles/tmux.conf - dest: ~/.tmux.conf - mode: preserve +- name: Linking up tmux config folder + file: + src: "{{ playbook_dir }}/files/dotfiles/tmux" + dest: ~/.config/tmux + state: link + owner: "{{ ansible_user_id }}" + group: "{{ ansible_user_id }}" diff --git a/roles/vim_user/tasks/main.yml b/roles/vim_user/tasks/main.yml index 68c69cd..2251f08 100644 --- a/roles/vim_user/tasks/main.yml +++ b/roles/vim_user/tasks/main.yml @@ -5,12 +5,6 @@ - neovim state: present -- name: Prepare vim config directory - file: - path: ~/.config/nvim/ - state: directory - mode: '0755' - - name: clone Packer repo (Install packer) ansible.builtin.git: repo: https://github.com/wbthomason/packer.nvim.git @@ -18,19 +12,10 @@ dest: ~/.local/share/nvim/site/pack/packer/start/packer.nvim update: no -- name: Copy nvim config directory - copy: - src: dotfiles/nvim/ - dest: ~/.config/nvim/ - -- name: Debug extentions - debug: - msg: "TreeSitter: {{ nvim_extention_treesitter }}" - -- name: setup nvim extention treesitter - shell: | - echo {{ empty_lua_module }} > {{ nvim_extention_treesitter_file }} - when: nvim_extention_treesitter -- name: remove nvim extention treesitter - shell: "rm -rf {{ nvim_extention_treesitter_file }}" - when: not nvim_extention_treesitter +- name: Linking up nvim config folder + file: + src: "{{ playbook_dir }}/files/dotfiles/nvim" + dest: ~/.config/nvim + state: link + owner: "{{ ansible_user_id }}" + group: "{{ ansible_user_id }}"