From 1dbbc28346381980c8b68ee82146c442a81073f4 Mon Sep 17 00:00:00 2001 From: rayanramoul Date: Sun, 21 Jul 2024 01:14:39 +0200 Subject: [PATCH] feat: use lazy.vim and clean up unecessary files --- ansible/install_miniconda.yml | 32 - ansible/install_neovim.yml | 55 -- ansible/install_os_packages.yml | 107 --- ansible/inventory.ini | 2 - ansible/move_local_scripts.yml | 27 - ansible/scripts/debian_install.sh | 6 - ansible/setup_dotfiles.yml | 56 -- ansible/setup_terminal.yml | 29 - assets/bar.png:Zone.Identifier | 4 - assets/neovim_preview.png:Zone.Identifier | 3 - assets/terminal_preview.png:Zone.Identifier | 3 - assets/tmux_preview.png:Zone.Identifier | 3 - docker/arch.Dockerfile | 9 - docker/aws.Dockerfile | 10 - docker/build_test_docker.sh | 37 - docker/macos.Dockerfile | 5 - docker/ubuntu.Dockerfile | 10 - dotfiles/.bash_profile | 18 +- dotfiles/.config/conky.conf | 75 -- dotfiles/.config/dunst/dunstrc | 422 ---------- .../.config/dunst/images/notification.png | Bin 18432 -> 0 bytes dotfiles/.config/dunst/reload | 13 - dotfiles/.config/eww/bar/eww.scss | 31 - dotfiles/.config/eww/bar/eww.yuck | 31 - dotfiles/.config/eww/dashboard/eww.scss | 212 ----- dotfiles/.config/eww/dashboard/eww.yuck | 132 ---- dotfiles/.config/eww/dashboard/img/music | Bin 37619 -> 0 bytes dotfiles/.config/eww/scripts/audio | 86 --- dotfiles/.config/eww/scripts/backlight | 22 - dotfiles/.config/eww/scripts/battery | 55 -- dotfiles/.config/eww/scripts/launch_bar | 5 - dotfiles/.config/eww/scripts/launch_dashboard | 14 - dotfiles/.config/eww/scripts/music | 87 --- dotfiles/.config/eww/scripts/network | 45 -- dotfiles/.config/eww/scripts/powermenu | 3 - dotfiles/.config/eww/scripts/sys_info | 161 ---- dotfiles/.config/eww/scripts/sys_info (old) | 161 ---- dotfiles/.config/eww/scripts/workspaces.py | 36 - dotfiles/.config/foot/foot.ini | 186 ----- dotfiles/.config/helix/config.toml | 32 - dotfiles/.config/helix/themes/mytheme.toml | 141 ---- dotfiles/.config/hypr/hyprland.conf | 52 +- dotfiles/.config/hyprland.conf | 98 --- dotfiles/.config/i3/config | 456 ----------- dotfiles/.config/i3/i3status.conf | 83 -- dotfiles/.config/i3/lock.sh | 13 - dotfiles/.config/i3/polyscript.sh | 13 - dotfiles/.config/i3blocks/arch-update.py | 150 ---- dotfiles/.config/i3blocks/disk | 29 - dotfiles/.config/i3blocks/disk-io | 93 --- dotfiles/.config/i3blocks/gpu-load | 87 --- dotfiles/.config/i3blocks/i3blocks.conf | 107 --- dotfiles/.config/i3blocks/key-layout | 23 - dotfiles/.config/i3blocks/memory | 55 -- dotfiles/.config/i3blocks/monitor-manager | 728 ------------------ dotfiles/.config/i3blocks/volume | 40 - dotfiles/.config/nvim/.gitignore | 13 +- dotfiles/.config/nvim/.neoconf.json | 15 + dotfiles/.config/nvim/.stylua.toml | 6 - dotfiles/.config/nvim/LICENSE | 201 +++++ dotfiles/.config/nvim/README.md | 615 +-------------- .../.config/nvim/after/plugin/conform.lua | 23 - .../.config/nvim/after/plugin/copilot.lua | 55 -- .../.config/nvim/after/plugin/harpoon.lua | 14 - .../nvim/after/plugin/highlightundo.lua | 19 - dotfiles/.config/nvim/after/plugin/lsp.lua | 216 ------ .../.config/nvim/after/plugin/lsplines.lua | 5 - .../.config/nvim/after/plugin/lualine.lua | 67 -- .../.config/nvim/after/plugin/luasnip.lua | 4 - .../.config/nvim/after/plugin/nvimtree.lua | 17 - .../.config/nvim/after/plugin/rusttools.lua | 13 - dotfiles/.config/nvim/after/plugin/tabs.lua | 43 -- .../.config/nvim/after/plugin/telescope.lua | 16 - .../.config/nvim/after/plugin/undotree.lua | 1 - dotfiles/.config/nvim/ftplugin/python.lua | 28 - dotfiles/.config/nvim/init.lua | 30 +- dotfiles/.config/nvim/lazy-lock.json | 65 -- dotfiles/.config/nvim/lazyvim.json | 40 + .../.config/nvim/lua/cmp_copilot/init.lua | 53 -- dotfiles/.config/nvim/lua/config/autocmds.lua | 3 + dotfiles/.config/nvim/lua/config/keymaps.lua | 47 ++ dotfiles/.config/nvim/lua/config/lazy.lua | 51 ++ dotfiles/.config/nvim/lua/config/options.lua | 19 + .../.config/nvim/lua/plugins/applemusic.lua | 19 + .../.config/nvim/lua/plugins/colorscheme.lua | 14 + dotfiles/.config/nvim/lua/plugins/copilot.lua | 1 - dotfiles/.config/nvim/lua/plugins/dap.lua | 3 + .../.config/nvim/lua/plugins/dappython.lua | 9 + .../.config/nvim/lua/plugins/hardtime.lua | 5 + dotfiles/.config/nvim/lua/plugins/harpoon.lua | 42 + .../.config/nvim/lua/plugins/lazydocker.lua | 11 + dotfiles/.config/nvim/lua/plugins/lazygit.lua | 19 + .../.config/nvim/lua/plugins/telescope.lua | 23 +- dotfiles/.config/nvim/lua/plugins/tmux.lua | 18 + dotfiles/.config/nvim/lua/ray/ascii.lua | 19 - dotfiles/.config/nvim/lua/ray/init.lua | 25 - dotfiles/.config/nvim/lua/ray/lazy.lua | 266 ------- dotfiles/.config/nvim/lua/ray/remap.lua | 146 ---- dotfiles/.config/nvim/lua/ray/set.lua | 64 -- dotfiles/.config/nvim/stylua.toml | 3 + dotfiles/.config/pip/pip.conf | 3 - dotfiles/.config/polybar/config | 313 -------- dotfiles/.config/rofi/config.rasi | 2 +- .../.config/sketchybar/plugins/battery.sh | 28 - dotfiles/.config/sketchybar/plugins/clock.sh | 8 - .../.config/sketchybar/plugins/front_app.sh | 10 - dotfiles/.config/sketchybar/plugins/space.sh | 53 -- dotfiles/.config/sketchybar/plugins/volume.sh | 20 - dotfiles/.config/sketchybar/sketchybarrc | 167 ---- dotfiles/.config/starship.toml | 3 - dotfiles/.config/waybar/config | 173 +++-- dotfiles/.config/zed/.tmpBHreIt | 381 --------- dotfiles/.config/zed/settings.json | 12 - dotfiles/.tmux.conf | 14 +- dotfiles/.tmux/plugins/tmux.nvim | 1 + dotfiles/.zshrc | 22 +- install.sh | 116 +-- install_minimal.sh | 54 -- 118 files changed, 766 insertions(+), 7373 deletions(-) delete mode 100644 ansible/install_miniconda.yml delete mode 100644 ansible/install_neovim.yml delete mode 100644 ansible/install_os_packages.yml delete mode 100644 ansible/inventory.ini delete mode 100644 ansible/move_local_scripts.yml delete mode 100644 ansible/scripts/debian_install.sh delete mode 100644 ansible/setup_dotfiles.yml delete mode 100644 ansible/setup_terminal.yml delete mode 100644 assets/bar.png:Zone.Identifier delete mode 100644 assets/neovim_preview.png:Zone.Identifier delete mode 100644 assets/terminal_preview.png:Zone.Identifier delete mode 100644 assets/tmux_preview.png:Zone.Identifier delete mode 100644 docker/arch.Dockerfile delete mode 100644 docker/aws.Dockerfile delete mode 100755 docker/build_test_docker.sh delete mode 100644 docker/macos.Dockerfile delete mode 100644 docker/ubuntu.Dockerfile delete mode 100644 dotfiles/.config/conky.conf delete mode 100755 dotfiles/.config/dunst/dunstrc delete mode 100755 dotfiles/.config/dunst/images/notification.png delete mode 100755 dotfiles/.config/dunst/reload delete mode 100755 dotfiles/.config/eww/bar/eww.scss delete mode 100755 dotfiles/.config/eww/bar/eww.yuck delete mode 100755 dotfiles/.config/eww/dashboard/eww.scss delete mode 100755 dotfiles/.config/eww/dashboard/eww.yuck delete mode 100755 dotfiles/.config/eww/dashboard/img/music delete mode 100644 dotfiles/.config/eww/scripts/audio delete mode 100644 dotfiles/.config/eww/scripts/backlight delete mode 100644 dotfiles/.config/eww/scripts/battery delete mode 100755 dotfiles/.config/eww/scripts/launch_bar delete mode 100755 dotfiles/.config/eww/scripts/launch_dashboard delete mode 100755 dotfiles/.config/eww/scripts/music delete mode 100644 dotfiles/.config/eww/scripts/network delete mode 100644 dotfiles/.config/eww/scripts/powermenu delete mode 100755 dotfiles/.config/eww/scripts/sys_info delete mode 100755 dotfiles/.config/eww/scripts/sys_info (old) delete mode 100755 dotfiles/.config/eww/scripts/workspaces.py delete mode 100755 dotfiles/.config/foot/foot.ini delete mode 100644 dotfiles/.config/helix/config.toml delete mode 100644 dotfiles/.config/helix/themes/mytheme.toml delete mode 100644 dotfiles/.config/hyprland.conf delete mode 100644 dotfiles/.config/i3/config delete mode 100644 dotfiles/.config/i3/i3status.conf delete mode 100755 dotfiles/.config/i3/lock.sh delete mode 100755 dotfiles/.config/i3/polyscript.sh delete mode 100755 dotfiles/.config/i3blocks/arch-update.py delete mode 100755 dotfiles/.config/i3blocks/disk delete mode 100755 dotfiles/.config/i3blocks/disk-io delete mode 100755 dotfiles/.config/i3blocks/gpu-load delete mode 100755 dotfiles/.config/i3blocks/i3blocks.conf delete mode 100755 dotfiles/.config/i3blocks/key-layout delete mode 100755 dotfiles/.config/i3blocks/memory delete mode 100755 dotfiles/.config/i3blocks/monitor-manager delete mode 100755 dotfiles/.config/i3blocks/volume create mode 100644 dotfiles/.config/nvim/.neoconf.json delete mode 100644 dotfiles/.config/nvim/.stylua.toml create mode 100644 dotfiles/.config/nvim/LICENSE delete mode 100644 dotfiles/.config/nvim/after/plugin/conform.lua delete mode 100644 dotfiles/.config/nvim/after/plugin/copilot.lua delete mode 100644 dotfiles/.config/nvim/after/plugin/harpoon.lua delete mode 100644 dotfiles/.config/nvim/after/plugin/highlightundo.lua delete mode 100644 dotfiles/.config/nvim/after/plugin/lsp.lua delete mode 100644 dotfiles/.config/nvim/after/plugin/lsplines.lua delete mode 100644 dotfiles/.config/nvim/after/plugin/lualine.lua delete mode 100644 dotfiles/.config/nvim/after/plugin/luasnip.lua delete mode 100644 dotfiles/.config/nvim/after/plugin/nvimtree.lua delete mode 100644 dotfiles/.config/nvim/after/plugin/rusttools.lua delete mode 100644 dotfiles/.config/nvim/after/plugin/tabs.lua delete mode 100644 dotfiles/.config/nvim/after/plugin/telescope.lua delete mode 100644 dotfiles/.config/nvim/after/plugin/undotree.lua delete mode 100644 dotfiles/.config/nvim/ftplugin/python.lua delete mode 100644 dotfiles/.config/nvim/lazy-lock.json create mode 100644 dotfiles/.config/nvim/lazyvim.json delete mode 100644 dotfiles/.config/nvim/lua/cmp_copilot/init.lua create mode 100644 dotfiles/.config/nvim/lua/config/autocmds.lua create mode 100644 dotfiles/.config/nvim/lua/config/keymaps.lua create mode 100644 dotfiles/.config/nvim/lua/config/lazy.lua create mode 100644 dotfiles/.config/nvim/lua/config/options.lua create mode 100644 dotfiles/.config/nvim/lua/plugins/applemusic.lua create mode 100644 dotfiles/.config/nvim/lua/plugins/colorscheme.lua delete mode 100644 dotfiles/.config/nvim/lua/plugins/copilot.lua create mode 100644 dotfiles/.config/nvim/lua/plugins/dap.lua create mode 100644 dotfiles/.config/nvim/lua/plugins/dappython.lua create mode 100644 dotfiles/.config/nvim/lua/plugins/hardtime.lua create mode 100644 dotfiles/.config/nvim/lua/plugins/harpoon.lua create mode 100644 dotfiles/.config/nvim/lua/plugins/lazydocker.lua create mode 100644 dotfiles/.config/nvim/lua/plugins/lazygit.lua create mode 100644 dotfiles/.config/nvim/lua/plugins/tmux.lua delete mode 100644 dotfiles/.config/nvim/lua/ray/ascii.lua delete mode 100644 dotfiles/.config/nvim/lua/ray/init.lua delete mode 100644 dotfiles/.config/nvim/lua/ray/lazy.lua delete mode 100644 dotfiles/.config/nvim/lua/ray/remap.lua delete mode 100644 dotfiles/.config/nvim/lua/ray/set.lua create mode 100644 dotfiles/.config/nvim/stylua.toml delete mode 100644 dotfiles/.config/pip/pip.conf delete mode 100644 dotfiles/.config/polybar/config delete mode 100755 dotfiles/.config/sketchybar/plugins/battery.sh delete mode 100755 dotfiles/.config/sketchybar/plugins/clock.sh delete mode 100755 dotfiles/.config/sketchybar/plugins/front_app.sh delete mode 100755 dotfiles/.config/sketchybar/plugins/space.sh delete mode 100755 dotfiles/.config/sketchybar/plugins/volume.sh delete mode 100755 dotfiles/.config/sketchybar/sketchybarrc delete mode 100755 dotfiles/.config/starship.toml delete mode 100644 dotfiles/.config/zed/.tmpBHreIt delete mode 100644 dotfiles/.config/zed/settings.json create mode 160000 dotfiles/.tmux/plugins/tmux.nvim mode change 100755 => 100644 install.sh delete mode 100644 install_minimal.sh diff --git a/ansible/install_miniconda.yml b/ansible/install_miniconda.yml deleted file mode 100644 index 22a2873..0000000 --- a/ansible/install_miniconda.yml +++ /dev/null @@ -1,32 +0,0 @@ ---- -- name: Download Miniconda installer on x86_64 Linux - get_url: - url: https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh - dest: $HOME/Miniconda3-latest-Linux-x86_64.sh - when: ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian' or ansible_distribution == 'Archlinux' or ansible_distribution == 'ManjaroLinux' or ansible_distribution == 'Fedora' or ansible_distribution == 'CentOS' or ansible_distribution == 'RedHat' or ansible_distribution == 'Amazon' - become: no -- name: Install Miniconda on x86_64 Linux - command: bash $HOME/Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda3 creates=$HOME/miniconda3 - when: ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian' or ansible_distribution == 'Archlinux' or ansible_distribution == 'ManjaroLinux' or ansible_distribution == 'Fedora' or ansible_distribution == 'CentOS' or ansible_distribution == 'RedHat' or ansible_distribution == 'Amazon' - register: miniconda_installation - become: no -- name: Download Miniconda installer on x86_64 Mac - get_url: - url: https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh - when: ansible_distribution == 'MacOSX' and ansible_architecture == 'x86_64' - become: no -- name: Download Miniconda installer on Apple Silicon Mac - get_url: - url: https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh - when: ansible_distribution == 'MacOSX' and ansible_architecture == 'arm64' - become: no - -- name: Install Miniconda - command: bash Miniconda3-latest-MacOSX-x86_64.sh -b -p $HOME/miniconda3 creates=$HOME/miniconda3 - when: ansible_distribution == 'MacOSX' and ansible_architecture == 'x86_64' - become: no -- name: Install Miniconda - command: bash Miniconda3-latest-MacOSX-arm64.sh -b -p $HOME/miniconda3 creates=$HOME/miniconda3 - when: ansible_distribution == 'MacOSX' and ansible_architecture == 'arm64' - become: no - diff --git a/ansible/install_neovim.yml b/ansible/install_neovim.yml deleted file mode 100644 index 569af20..0000000 --- a/ansible/install_neovim.yml +++ /dev/null @@ -1,55 +0,0 @@ ---- -- name: Download Neovim on Ubuntu - ansible.builtin.get_url: - url: "https://github.com/neovim/neovim/releases/latest/download/nvim.appimage" - dest: "/usr/local/bin/nvim" - mode: '0755' - when: ansible_os_family == 'Debian' - become: yes -- name: Install Neovim on Ubuntu - shell: "chmod u+x /usr/local/bin/nvim" - when: ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian' - become: yes - -- name: Install EPEL repository on CentOS 8 - yum: - name: https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm - state: present - become: yes - when: ansible_distribution == 'CentOS' or ansible_distribution == 'RedHat' - -- name: Install neovim and python3-neovim on CentOS 8 - yum: - name: - - neovim - - python3-neovim - state: present - become: yes - when: ansible_distribution == 'CentOS' or ansible_distribution == 'RedHat' - -- name: Download Neovim on Fedora - dnf: - name: neovim - state: present - become: yes - when: ansible_distribution == 'Fedora' - -- name: Download Neovim on macOS - ansible.builtin.get_url: - url: "https://github.com/neovim/neovim/releases/latest/download/nvim-macos.tar.gz" - dest: "/usr/local/bin/" - mode: '0755' - become: yes - when: ansible_os_family == 'Darwin' - -- name: Install Neovim on macOS - shell: "tar -xzf /usr/local/bin/nvim-macos.tar.gz -C /usr/local/bin/" - when: ansible_distribution == 'MacOSX' or ansible_distribution == 'Darwin' - become: yes - -- name: Download and install Neovim on Arch Linux - pacman: - name: neovim - state: present - become: yes - when: ansible_distribution == 'Archlinux' or ansible_distribution == 'ManjaroLinux' diff --git a/ansible/install_os_packages.yml b/ansible/install_os_packages.yml deleted file mode 100644 index b9bdd5f..0000000 --- a/ansible/install_os_packages.yml +++ /dev/null @@ -1,107 +0,0 @@ ---- -- name: Execute Install Missing Dependencies - shell: bash scripts/debian_install.sh - when: ansible_pkg_mgr == 'apt' - become: yes - -- name: Install OS-specific packages on Debian-based systems (Ubuntu) - apt: - name: - - 'zsh' - - 'alacritty' - - 'tmux' - - 'fzf' - - 'bat' - - 'exa' - - 'fd-find' - - 'ripgrep' - - 'bpytop' - - 'stow' - - 'feh' - - 'rofi' - state: present - when: ansible_pkg_mgr == 'apt' - become: yes - -- name: Install OS-specific packages on Red Hat-based systems (Amazon Linux) - yum: - name: - - 'zsh' - - 'tmux' - - 'alacritty' - - 'fzf' - - 'lazygit' - - 'bat' - - 'exa' - - 'fd-find' - - 'ripgrep' - - 'ansible' - - 'lsd' - - 'fastfetch' - - 'bpytop' - - 'stow' - - 'feh' - - 'rofi' - state: present - when: ansible_pkg_mgr == 'yum' - become: yes - -- name: Install OS-specific packages on Arch Linux - pacman: - name: - - 'neovim' - - 'alacritty' - - 'zsh' - - 'fzf' - - 'tmux' - - 'bpytop' - - 'lsd' - - 'fastfetch' - - 'ansible' - - 'bat' - - 'exa' - - 'fd' - - 'ripgrep' - - 'lazygit' - - 'stow' - - 'feh' - - 'rofi' - state: present - when: ansible_pkg_mgr == 'pacman' - become: yes - -# tasks file for ansible.archyay -- name: Clone yay - git: - repo: https://aur.archlinux.org/yay-bin.git - dest: "$HOME/yay" - update: true - -- name: Build and install yay - command: - chdir: "$HOME/yay" - cmd: "makepkg -sfi --noconfirm" - creates: /usr/bin/yay - -- name: Install OS-specific packages on macOS using Homebrew - homebrew: - name: - - 'neovim' - - 'zsh' - - 'fzf' - - 'alacritty' - - 'tmux' - - 'bpytop' - - 'lsd' - - 'fastfetch' - - 'ansible' - - 'bat' - - 'exa' - - 'fd' - - 'ripgrep' - - 'lazygit' - - 'stow' - state: present - when: ansible_pkg_mgr == 'homebrew' - become: yes - diff --git a/ansible/inventory.ini b/ansible/inventory.ini deleted file mode 100644 index 49d4fe2..0000000 --- a/ansible/inventory.ini +++ /dev/null @@ -1,2 +0,0 @@ -localhost ansible_connection=local - diff --git a/ansible/move_local_scripts.yml b/ansible/move_local_scripts.yml deleted file mode 100644 index e530501..0000000 --- a/ansible/move_local_scripts.yml +++ /dev/null @@ -1,27 +0,0 @@ ---- -- name: Move tmux-sessionizer.sh to /usr/local/bin - hosts: localhost - become: yes - - tasks: - - name: Copy tmux-sessionizer.sh to /usr/local/bin - copy: - src: "{{ playbook_dir }}/../dotfiles/scripts/tmux-sessionizer.sh" - dest: "/usr/local/bin/tmux-sessionizer" - mode: 0755 - - post_tasks: - - name: Print completion message - debug: - msg: "tmux-sessionizer.sh moved to /usr/local/bin/tmux-sessionizer successfully!" - - - name: Copy executionier.sh to /usr/local/bin - copy: - src: "{{ playbook_dir }}/../dotfiles/scripts/executionier.sh" - dest: "/usr/local/bin/executionier" - mode: 0755 - - - name: Print completion message - debug: - msg: "executionier.sh moved to /usr/local/bin/executionier successfully!" - diff --git a/ansible/scripts/debian_install.sh b/ansible/scripts/debian_install.sh deleted file mode 100644 index 5732b16..0000000 --- a/ansible/scripts/debian_install.sh +++ /dev/null @@ -1,6 +0,0 @@ -LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*') -curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz" -tar xf lazygit.tar.gz lazygit -sudo install lazygit /usr/local/bin - -snap install lsd diff --git a/ansible/setup_dotfiles.yml b/ansible/setup_dotfiles.yml deleted file mode 100644 index 15b4751..0000000 --- a/ansible/setup_dotfiles.yml +++ /dev/null @@ -1,56 +0,0 @@ ---- -- name: Print current working directory - command: "pwd" - args: - chdir: "{{ playbook_dir | dirname }}" - register: pwd_output - -- name: Debug pwd output - debug: - var: pwd_output.stdout_lines - -- name: Link dotfiles with stow (adopt existing files) - command: "stow -t $HOME --adopt -R dotfiles" - args: - chdir: "{{ playbook_dir | dirname }}" - become: no - -- name: Clone zsh-autosuggestions plugin - git: - repo: https://github.com/zsh-users/zsh-autosuggestions.git - dest: ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions - become: no - when: not ansible_check_mode -- name: Clone zsh-syntax-highlighting plugin - git: - repo: https://github.com/zsh-users/zsh-syntax-highlighting.git - dest: ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting - when: not ansible_check_mode - become: no -- name: Clone fzf-zsh-plugin plugin - git: - repo: https://github.com/Aloxaf/fzf-tab.git - dest: ~/.oh-my-zsh/custom/plugins/fzf-tab - when: not ansible_check_mode - become: no -- name: Clone powerlevel10k theme - git: - repo: https://github.com/romkatv/powerlevel10k.git - dest: ~/.oh-my-zsh/custom/themes/powerlevel10k - when: not ansible_check_mode - become: no -- name: Clone fzf-zsh-plugin plugin - git: - repo: https://github.com/unixorn/fzf-zsh-plugin.git - dest: ~/.oh-my-zsh/custom/plugins/fzf-zsh-plugin - when: not ansible_check_mode - become: no -- name: Clone tmux-plugins/tpm repository - git: - repo: https://github.com/tmux-plugins/tpm.git - dest: ~/.tmux/plugins/tpm - when: not ansible_check_mode # Only clone if not in check mode -- name: Clone fzf-tab plugin - git: - repo: https://github.com/Aloxaf/fzf-tab.git - dest: ~/.oh-my-zsh/custom/plugins/fzf-tab diff --git a/ansible/setup_terminal.yml b/ansible/setup_terminal.yml deleted file mode 100644 index 5978f3c..0000000 --- a/ansible/setup_terminal.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -- name: Setup Terminal Environment - hosts: localhost - become: yes - gather_facts: yes - tasks: - - name: Display numbered menu - pause: - prompt: | - Choose the tasks to execute (comma-separated): - 1. Install OS-specific packages - 2. Install Miniconda - 3. Install Neovim - 4. Restore Dotfiles - register: user_selection - - - name: Map user choices to task names - set_fact: - selected_tasks: - "1": "install_os_packages.yml" - "2": "install_miniconda.yml" - "3": "install_neovim.yml" - "4": "setup_dotfiles.yml" - - - name: Execute selected tasks - include_tasks: "{{ selected_tasks[item] }}" - loop: "{{ user_selection.user_input.split(',') | map('int') | map('trim') }}" - when: user_selection.user_input.split(',') | intersect(selected_tasks.keys() | map('int') | map('trim')) | length > 0 - diff --git a/assets/bar.png:Zone.Identifier b/assets/bar.png:Zone.Identifier deleted file mode 100644 index 5aade9c..0000000 --- a/assets/bar.png:Zone.Identifier +++ /dev/null @@ -1,4 +0,0 @@ -[ZoneTransfer] -ZoneId=3 -ReferrerUrl=https://raw.githubusercontent.com/ -HostUrl=https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/palette/macchiato.png diff --git a/assets/neovim_preview.png:Zone.Identifier b/assets/neovim_preview.png:Zone.Identifier deleted file mode 100644 index 60f0f97..0000000 --- a/assets/neovim_preview.png:Zone.Identifier +++ /dev/null @@ -1,3 +0,0 @@ -[ZoneTransfer] -LastWriterPackageFamilyName=Microsoft.Windows.Photos_8wekyb3d8bbwe -ZoneId=3 diff --git a/assets/terminal_preview.png:Zone.Identifier b/assets/terminal_preview.png:Zone.Identifier deleted file mode 100644 index 60f0f97..0000000 --- a/assets/terminal_preview.png:Zone.Identifier +++ /dev/null @@ -1,3 +0,0 @@ -[ZoneTransfer] -LastWriterPackageFamilyName=Microsoft.Windows.Photos_8wekyb3d8bbwe -ZoneId=3 diff --git a/assets/tmux_preview.png:Zone.Identifier b/assets/tmux_preview.png:Zone.Identifier deleted file mode 100644 index 60f0f97..0000000 --- a/assets/tmux_preview.png:Zone.Identifier +++ /dev/null @@ -1,3 +0,0 @@ -[ZoneTransfer] -LastWriterPackageFamilyName=Microsoft.Windows.Photos_8wekyb3d8bbwe -ZoneId=3 diff --git a/docker/arch.Dockerfile b/docker/arch.Dockerfile deleted file mode 100644 index 1ae3db8..0000000 --- a/docker/arch.Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -# Use the base Arch Linux image -FROM archlinux:latest - -# Install necessary tools -RUN pacman -Syu --noconfirm && pacman -S --noconfirm git - - -CMD ["bash"] - diff --git a/docker/aws.Dockerfile b/docker/aws.Dockerfile deleted file mode 100644 index 891e008..0000000 --- a/docker/aws.Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -# Use the latest Amazon Linux image as the base -FROM amazonlinux:latest - -# Install necessary tools -RUN yum update -y && yum install -y git - - -# Set the working directory to where your dotfiles are -CMD ["bash"] - diff --git a/docker/build_test_docker.sh b/docker/build_test_docker.sh deleted file mode 100755 index d2b3d9d..0000000 --- a/docker/build_test_docker.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash - -# Check if an argument is provided -if [ $# -eq 0 ]; then - echo "No arguments provided. Please specify 'arch', 'ubuntu', 'macos', or 'aws'." - exit 1 -fi - -# Set the base directory where your Dockerfiles are located -BASE_DIR="." - -# Function to build and run Docker image -build_and_run() { - docker build --no-cache -f "$BASE_DIR/$1.Dockerfile" -t "dotfiles-$1" . - docker run -it "dotfiles-$1" -} - -# Case statement to handle different OS options -case $1 in - arch) - build_and_run "arch" - ;; - ubuntu) - build_and_run "ubuntu" - ;; - macos) - build_and_run "macos" - ;; - aws) - build_and_run "aws" - ;; - *) - echo "Invalid argument. Please specify 'arch', 'ubuntu', 'macos', or 'aws'." - exit 1 - ;; -esac - diff --git a/docker/macos.Dockerfile b/docker/macos.Dockerfile deleted file mode 100644 index 189f1f8..0000000 --- a/docker/macos.Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -# Use an Ubuntu image as the base -FROM sickcodes/docker-osx:latest - -CMD ["bash"] - diff --git a/docker/ubuntu.Dockerfile b/docker/ubuntu.Dockerfile deleted file mode 100644 index b34cc6f..0000000 --- a/docker/ubuntu.Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -# Use the latest Ubuntu image as the base -FROM ubuntu:20.04 - -# Install necessary tools -#RUN apt-get update -y #&& apt-get install -y git zsh tmux neovim -RUN apt-get update -y -RUN apt-get install -y wget git sudo -# Create a directory to clone the repository -CMD ["bash"] - diff --git a/dotfiles/.bash_profile b/dotfiles/.bash_profile index 3cc3a3d..5545f00 100644 --- a/dotfiles/.bash_profile +++ b/dotfiles/.bash_profile @@ -1,15 +1,5 @@ -# >>> conda initialize >>> -# !! Contents within this block are managed by 'conda init' !! -__conda_setup="$('/Users/r.ramoul/mambaforge/bin/conda' 'shell.bash' 'hook' 2> /dev/null)" -if [ $? -eq 0 ]; then - eval "$__conda_setup" -else - if [ -f "/Users/r.ramoul/mambaforge/etc/profile.d/conda.sh" ]; then - . "/Users/r.ramoul/mambaforge/etc/profile.d/conda.sh" - else - export PATH="/Users/r.ramoul/mambaforge/bin:$PATH" - fi -fi -unset __conda_setup -# <<< conda initialize <<< +# +# ~/.bash_profile +# +[[ -f ~/.bashrc ]] && . ~/.bashrc diff --git a/dotfiles/.config/conky.conf b/dotfiles/.config/conky.conf deleted file mode 100644 index a8cc05f..0000000 --- a/dotfiles/.config/conky.conf +++ /dev/null @@ -1,75 +0,0 @@ --- Conky, a system monitor https://github.com/brndnmtthws/conky --- --- This configuration file is Lua code. You can write code in here, and it will --- execute when Conky loads. You can use it to generate your own advanced --- configurations. --- --- Try this (remove the `--`): --- --- print("Loading Conky config") --- --- For more on Lua, see: --- https://www.lua.org/pil/contents.html - -conky.config = { - alignment = 'top_left', - background = true, - border_width = 1, - cpu_avg_samples = 2, - default_color = 'white', - default_outline_color = 'white', - default_shade_color = 'white', - double_buffer = true, - draw_borders = false, - draw_graph_borders = true, - draw_outline = false, - draw_shades = false, - extra_newline = false, - font = 'DejaVu Sans Mono:size=12', - gap_x = 60, - gap_y = 60, - minimum_height = 5, - minimum_width = 5, - net_avg_samples = 2, - no_buffers = true, - out_to_console = false, - out_to_ncurses = false, - out_to_stderr = false, - out_to_x = true, - own_window = true, - own_window_class = 'Conky', - own_window_type = 'override', - own_window_transparent = true, - own_window_argb_value = 255, - own_window_argb_visual = true, - show_graph_range = false, - show_graph_scale = false, - stippled_borders = 0, - update_interval = 1.0, - uppercase = false, - use_spacer = 'none', - use_xft = true, -} - -conky.text = [[ -${color grey}Info:$color ${scroll 32 Conky $conky_version - $sysname $nodename $kernel $machine} -$hr -${color grey}Uptime:$color $uptime -${color grey}Frequency (in MHz):$color $freq -${color grey}Frequency (in GHz):$color $freq_g -${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4} -${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4} -${color grey}CPU Usage:$color $cpu% ${cpubar 4} -${color grey}Processes:$color $processes ${color grey}Running:$color $running_processes -$hr -${color grey}File systems: - / $color${fs_used /}/${fs_size /} ${fs_bar 6 /} -${color grey}Networking: -Up:$color ${upspeed} ${color grey} - Down:$color ${downspeed} -$hr -${color grey}Name PID CPU% MEM% -${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1} -${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2} -${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3} -${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4} -]] diff --git a/dotfiles/.config/dunst/dunstrc b/dotfiles/.config/dunst/dunstrc deleted file mode 100755 index daead69..0000000 --- a/dotfiles/.config/dunst/dunstrc +++ /dev/null @@ -1,422 +0,0 @@ -[global] - ### Display ### - - # Which monitor should the notifications be displayed on. - monitor = 0 - - # Display notification on focused monitor. Possible modes are: - # mouse: follow mouse pointer - # keyboard: follow window with keyboard focus - # none: don't follow anything - # - # "keyboard" needs a window manager that exports the - # _NET_ACTIVE_WINDOW property. - # This should be the case for almost all modern window managers. - # - # If this option is set to mouse or keyboard, the monitor option - # will be ignored. - follow = mouse - - # The geometry of the window: - # [{width}]x{height}[+/-{x}+/-{y}] - # The geometry of the message window. - # The height is measured in number of notifications everything else - # in pixels. If the width is omitted but the height is given - # ("-geometry x2"), the message window expands over the whole screen - # (dmenu-like). If width is 0, the window expands to the longest - # message displayed. A positive x is measured from the left, a - # negative from the right side of the screen. Y is measured from - # the top and down respectively. - # The width can be negative. In this case the actual width is the - # screen width minus the width defined in within the geometry option. - #geometry = "300x60+15+46" - width = 300 - height = 60 - origin = top-left - offset = 10x10 - - notification_limit = 9 - - # Show how many messages are currently hidden (because of geometry). - indicate_hidden = yes - - # Shrink window if it's smaller than the width. Will be ignored if - # width is 0. - shrink = no - - # The transparency of the window. Range: [0; 100]. - # This option will only work if a compositing window manager is - # present (e.g. xcompmgr, compiz, etc.). - transparency = 0 - - # The height of the entire notification. If the height is smaller - # than the font height and padding combined, it will be raised - # to the font height and padding. - notification_height = 0 - - # Draw a line of "separator_height" pixel height between two - # notifications. - # Set to 0 to disable. - separator_height = 2 - - # Padding between text and separator. - padding = 8 - - # Horizontal padding. - horizontal_padding = 8 - - # Defines width in pixels of frame around the notification window. - # Set to 0 to disable. - frame_width = 3 - - # Defines color of the frame around the notification window. - frame_color = "#000000" - - # Define a color for the separator. - # possible values are: - # * auto: dunst tries to find a color fitting to the background; - # * foreground: use the same color as the foreground; - # * frame: use the same color as the frame; - # * anything else will be interpreted as a X color. - separator_color = frame - - # Sort messages by urgency. - sort = yes - - # Don't remove messages, if the user is idle (no mouse or keyboard input) - # for longer than idle_threshold seconds. - # Set to 0 to disable. - # A client can set the 'transient' hint to bypass this. See the rules - # section for how to disable this if necessary - idle_threshold = 120 - - ### Text ### - - font = JetBrains Mono Nerd Font 11 - - # The spacing between lines. If the height is smaller than the - # font height, it will get raised to the font height. - line_height = 0 - - # Possible values are: - # full: Allow a small subset of html markup in notifications: - # bold - # italic - # strikethrough - # underline - # - # For a complete reference see - # . - # - # strip: This setting is provided for compatibility with some broken - # clients that send markup even though it's not enabled on the - # server. Dunst will try to strip the markup but the parsing is - # simplistic so using this option outside of matching rules for - # specific applications *IS GREATLY DISCOURAGED*. - # - # no: Disable markup parsing, incoming notifications will be treated as - # plain text. Dunst will not advertise that it has the body-markup - # capability if this is set as a global setting. - # - # It's important to note that markup inside the format option will be parsed - # regardless of what this is set to. - markup = full - - # The format of the message. Possible variables are: - # %a appname - # %s summary - # %b body - # %i iconname (including its path) - # %I iconname (without its path) - # %p progress value if set ([ 0%] to [100%]) or nothing - # %n progress value if set without any extra characters - # %% Literal % - # Markup is allowed - format = "%s\n%b" - - # Alignment of message text. - # Possible values are "left", "center" and "right". - alignment = left - - # Show age of message if message is older than show_age_threshold - # seconds. - # Set to -1 to disable. - show_age_threshold = 60 - - # Split notifications into multiple lines if they don't fit into - # geometry. - word_wrap = yes - - # When word_wrap is set to no, specify where to make an ellipsis in long lines. - # Possible values are "start", "middle" and "end". - ellipsize = middle - - # Ignore newlines '\n' in notifications. - ignore_newline = no - - # Stack together notifications with the same content - stack_duplicates = true - - # Hide the count of stacked notifications with the same content - hide_duplicate_count = false - - # Display indicators for URLs (U) and actions (A). - show_indicators = yes - - ### Icons ### - - # Align icons left/right/off - icon_position = left - - # Scale larger icons down to this size, set to 0 to disable - max_icon_size = 32 - - # Paths to default icons. - icon_path = /usr/share/icons/candy-icons/apps/scalable:/usr/share/icons/candy-icons/devices/scalable/ - - ### History ### - - # Should a notification popped up from history be sticky or timeout - # as if it would normally do. - sticky_history = yes - - # Maximum amount of notifications kept in history - history_length = 20 - - ### Misc/Advanced ### - - # dmenu path. - dmenu = /usr/bin/dmenu -p dunst: - - # Browser for opening urls in context menu. - browser = /usr/bin/firefox -new-tab - - # Always run rule-defined scripts, even if the notification is suppressed - always_run_script = true - - # Define the title of the windows spawned by dunst - title = Dunst - - # Define the class of the windows spawned by dunst - class = Dunst - - # Print a notification on startup. - # This is mainly for error detection, since dbus (re-)starts dunst - # automatically after a crash. - startup_notification = false - - # Manage dunst's desire for talking - # Can be one of the following values: - # crit: Critical features. Dunst aborts - # warn: Only non-fatal warnings - # mesg: Important Messages - # info: all unimportant stuff - # debug: all less than unimportant stuff - verbosity = mesg - - # Define the corner radius of the notification window - # in pixel size. If the radius is 0, you have no rounded - # corners. - # The radius will be automatically lowered if it exceeds half of the - # notification height to avoid clipping text and/or icons. - corner_radius = 8 - - ### Legacy - - # Use the Xinerama extension instead of RandR for multi-monitor support. - # This setting is provided for compatibility with older nVidia drivers that - # do not support RandR and using it on systems that support RandR is highly - # discouraged. - # - # By enabling this setting dunst will not be able to detect when a monitor - # is connected or disconnected which might break follow mode if the screen - # layout changes. - force_xinerama = false - - ### mouse - - # Defines action of mouse event - # Possible values are: - # * none: Don't do anything. - # * do_action: If the notification has exactly one action, or one is marked as default, - # invoke it. If there are multiple and no default, open the context menu. - # * close_current: Close current notification. - # * close_all: Close all notifications. - mouse_left_click = do_action - mouse_middle_click = close_all - mouse_right_click = close_current - -# Experimental features that may or may not work correctly. Do not expect them -# to have a consistent behaviour across releases. -[experimental] - # Calculate the dpi to use on a per-monitor basis. - # If this setting is enabled the Xft.dpi value will be ignored and instead - # dunst will attempt to calculate an appropriate dpi value for each monitor - # using the resolution and physical size. This might be useful in setups - # where there are multiple screens with very different dpi values. - per_monitor_dpi = false - -[shortcuts] - - # Shortcuts are specified as [modifier+][modifier+]...key - # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", - # "mod3" and "mod4" (windows-key). - # Xev might be helpful to find names for keys. - - # Close notification. - close = ctrl+space - - # Close all notifications. - close_all = ctrl+shift+space - - # Redisplay last message(s). - # On the US keyboard layout "grave" is normally above TAB and left - # of "1". Make sure this key actually exists on your keyboard layout, - # e.g. check output of 'xmodmap -pke' - history = ctrl+grave - - # Context menu. - context = ctrl+shift+grave - -[urgency_low] - # IMPORTANT: colors have to be defined in quotation marks. - # Otherwise the "#" and following would be interpreted as a comment. - foreground = "#dadada" - background = "#131313" - frame_color = "#2c2c2c" - timeout = 10 - # Icon for notifications with low urgency, uncomment to enable - icon = ~/.config/dunst/images/notification.png - -[urgency_normal] - background = "#131313" - foreground = "#dadada" - frame_color = "#2c2c2c" - timeout = 10 - # Icon for notifications with normal urgency, uncomment to enable - icon = ~/.config/dunst/images/notification.png - -[urgency_critical] - background = "#131313" - foreground = "#f5cb42" - frame_color = "#2c2c2c" - timeout = 0 - # Icon for notifications with critical urgency, uncomment to enable - icon = ~/.config/dunst/images/notification.png - -# Every section that isn't one of the above is interpreted as a rules to -# override settings for certain messages. -# -# Messages can be matched by -# appname (discouraged, see desktop_entry) -# body -# category -# desktop_entry -# icon -# match_transient -# msg_urgency -# stack_tag -# summary -# -# and you can override the -# background -# foreground -# format -# frame_color -# fullscreen -# new_icon -# set_stack_tag -# set_transient -# timeout -# urgency -# -# Shell-like globbing will get expanded. -# -# Instead of the appname filter, it's recommended to use the desktop_entry filter. -# GLib based applications export their desktop-entry name. In comparison to the appname, -# the desktop-entry won't get localized. -# -# SCRIPTING -# You can specify a script that gets run when the rule matches by -# setting the "script" option. -# The script will be called as follows: -# script appname summary body icon urgency -# where urgency can be "LOW", "NORMAL" or "CRITICAL". -# -# NOTE: if you don't want a notification to be displayed, set the format -# to "". -# NOTE: It might be helpful to run dunst -print in a terminal in order -# to find fitting options for rules. - -# Disable the transient hint so that idle_threshold cannot be bypassed from the -# client -#[transient_disable] -# match_transient = yes -# set_transient = no -# -# Make the handling of transient notifications more strict by making them not -# be placed in history. -#[transient_history_ignore] -# match_transient = yes -# history_ignore = yes - -# fullscreen values -# show: show the notifications, regardless if there is a fullscreen window opened -# delay: displays the new notification, if there is no fullscreen window active -# If the notification is already drawn, it won't get undrawn. -# pushback: same as delay, but when switching into fullscreen, the notification will get -# withdrawn from screen again and will get delayed like a new notification -#[fullscreen_delay_everything] -# fullscreen = delay -#[fullscreen_show_critical] -# msg_urgency = critical -# fullscreen = show - -#[espeak] -# summary = "*" -# script = dunst_espeak.sh - -#[script-test] -# summary = "*script*" -# script = dunst_test.sh - -#[ignore] -# # This notification will not be displayed -# summary = "foobar" -# format = "" - -#[history-ignore] -# # This notification will not be saved in history -# summary = "foobar" -# history_ignore = yes - -#[skip-display] -# # This notification will not be displayed, but will be included in the history -# summary = "foobar" -# skip_display = yes - -#[signed_on] -# appname = Pidgin -# summary = "*signed on*" -# urgency = low -# -#[signed_off] -# appname = Pidgin -# summary = *signed off* -# urgency = low -# -#[says] -# appname = Pidgin -# summary = *says* -# urgency = critical -# -#[twitter] -# appname = Pidgin -# summary = *twitter.com* -# urgency = normal -# -#[stack-volumes] -# appname = "some_volume_notifiers" -# set_stack_tag = "volume" -# -# vim: ft=cfg diff --git a/dotfiles/.config/dunst/images/notification.png b/dotfiles/.config/dunst/images/notification.png deleted file mode 100755 index 4f3a210cb513adf5787193d124ec2841f34f28e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18432 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 GqW>>Nxq(*z diff --git a/dotfiles/.config/dunst/reload b/dotfiles/.config/dunst/reload deleted file mode 100755 index 9e8ee07..0000000 --- a/dotfiles/.config/dunst/reload +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -pkill dunst -dunst -config ~/.config/dunst/dunstrc & - -notify-send -u critical "Test message: critical test 1" -notify-send -u normal "Test message: normal test 2" -notify-send -u low "Test message: low test 3" -notify-send -u critical "Test message: critical test 4" -notify-send -u normal "Test message: normal test 5" -notify-send -u low "Test message: low test 6" -notify-send -u critical "Test message: critical test 7" -notify-send -u normal "Test message: normal test 8" -notify-send -u low "Test message: low test 9" diff --git a/dotfiles/.config/eww/bar/eww.scss b/dotfiles/.config/eww/bar/eww.scss deleted file mode 100755 index 09a92b4..0000000 --- a/dotfiles/.config/eww/bar/eww.scss +++ /dev/null @@ -1,31 +0,0 @@ -*{ - all:unset; - font-family: 'JetBrains Mono Nerd Font'; - color: #dddddd; - font-size:17px; -} - -.bar { - background-color: transparent; -} - -.main-container { - padding:6px 12px; - background-color: #010101; - border-radius: 12px; - margin: 3px 3px 0 3px; -} - -.workspaces { - margin-left: -6px; - padding-left:0px; -} - - -.time { - background: transparent; -} - -.systray{ - padding-right:8px; -} diff --git a/dotfiles/.config/eww/bar/eww.yuck b/dotfiles/.config/eww/bar/eww.yuck deleted file mode 100755 index 62609cd..0000000 --- a/dotfiles/.config/eww/bar/eww.yuck +++ /dev/null @@ -1,31 +0,0 @@ -(defpoll time :interval "20s" `date +" %a %d %b %R"`) - -(deflisten workspaces :initial "(box (label :text \"    \" ))" - `python ../scripts/workspaces.py`) - -(deflisten volume `bash ../scripts/audio --get-volicon`) -(deflisten network `bash ../scripts/network --icon`) -(deflisten battery `bash ../scripts/battery --icon`) - - - -(defwindow bar - :monitor 0 - :windowtype "dock" - :geometry (geometry :width "100%" :anchor "top center") - :exclusive true - (box :class "main-container" :space-evenly "true" - (box :halign "start" - (label :text "${time}") - ) - - (box :class "workspaces" :haling "center" - (literal :content "${workspaces}")) - - (box :halign "end" - (button :class "systray" - :onclick "bash ../scripts/launch_dashboard" - :onmiddleclick "bash ../scripts/audio --toggle-vol" - (label :text "${network} ${battery} ${volume}"))) - ) -) diff --git a/dotfiles/.config/eww/dashboard/eww.scss b/dotfiles/.config/eww/dashboard/eww.scss deleted file mode 100755 index a62ae8f..0000000 --- a/dotfiles/.config/eww/dashboard/eww.scss +++ /dev/null @@ -1,212 +0,0 @@ -/** Global *******************************************/ -*{ - all: unset; - font-family: 'JetBrains Mono Nerd Font'; - color: #7c94bf; -} - - -/** Background ***************************************/ -.background { - background-color: #040404; - border-radius: 12px; - padding: 10px; -} - - -/** Generic window ***********************************/ -.genwin { - background-color: #131313; - border-radius: 16px; - padding:5px; -} - - -/* Network ********************************************/ -.btn_net{ -} - -.network { - font-size: 20px; - /*color: #f7e1d3;*/ -} - - -/* Bluetooth ******************************************/ -.btn_bluet { - font-size: 20px -} - -/* Battery **********************************************/ -.battery { - padding-top: 30px; - font-size:20px; -} - -.baticon { - font-size: 26px; -} - -/* Microphone *****************************************/ -.btn_mic { - font-size: 32px; -} - - -/** System Sliders ********************************************/ -.slidersbox { - padding: 4px; -} - -.iconbright { - font-size : 24px; - font-weight : normal; - /*color: #eed49f;*/ -} - -.bright_bar scale trough { - all: unset; - background-color: #303446; - border-radius: 16px; - min-height: 20px; - min-width: 240px; - margin-right: 10px; -} - -.bright_bar scale trough highlight { - all: unset; - border-radius: 16px; - /*background-color: #eed49f;*/ - background-color: #7c94bf; -} - -.iconvolume { - font-size : 28px; - font-weight : normal; - margin-left: 4px; -} - -.volume_bar scale trough { - all: unset; - background-color: #303446; - border-radius: 16px; - min-height: 20px; - min-width: 240px; - margin-right: 10px; -} - -.volume_bar scale trough highlight { - all: unset; - border-radius: 16px; - background-color: #7c94bf; -} - -.iconmic { - font-size : 28px; - font-weight : normal; - margin-left: 4px; -} - -.mic_bar scale trough { - all: unset; - background-color: #303446; - border-radius: 16px; - min-height: 20px; - min-width: 240px; - margin-right: 10px; -} - -.mic_bar scale trough highlight { - all: unset; - border-radius: 16px; - background-color: #7c94bf; -} - - -/** Music ***************************************/ -.album_art { - background-size: 180px; - min-height: 180px; - min-width: 180px; - margin: 4px; - border-radius: 14px; -} - -.song { - color: #8FBCBB; - font-size : 20px; - font-weight : bold; - margin : 30px 0px 0px 0px; -} - -.artist { - color: #Eed49f; - font-size : 16px; - font-weight : normal; - margin : 0px 0px 15px 0px; -} - -.btn_prev, .btn_play, .btn_next { -} -.btn_prev { - font-size : 32px; - font-weight : normal; -} -.btn_play { - font-size : 35px; - font-weight : bold; - margin-left: -12px; -} -.btn_next { - font-size : 32px; - font-weight : normal; -} - - -/** Calendar *******************************************/ - -.cal { - padding: 5px 5px 0px 5px; - border: transparent; - font-size: 17px -} - -calendar { - color: #777777; -} - -calendar:selected { - color: #eeeeee; -} - -calendar.header { - color: #a1bdce; - font-weight: bold; -} - -calendar.button { - color: #afbea2; -} - -calendar.highlight { - color: #a1bdce; - font-weight: bold; -} - -calendar:indeterminate { - color: #242424; -} - - - - -/** Power buttons ***************************************/ -.btn_poweroff { - font-size : 25px; - padding: 8px 0; - margin: 0px 4px 0px -5px; -} - - - -/** EOF *************************************************/ diff --git a/dotfiles/.config/eww/dashboard/eww.yuck b/dotfiles/.config/eww/dashboard/eww.yuck deleted file mode 100755 index e5ab253..0000000 --- a/dotfiles/.config/eww/dashboard/eww.yuck +++ /dev/null @@ -1,132 +0,0 @@ -;; ** Variables *********************************************************************** - -;; System vars -(deflisten BLIGHT `bash ../scripts/backlight --get`) -(deflisten BATTERY `bash ../scripts/battery --perc`) -(deflisten BATTERYICON `bash ../scripts/battery --icon`) -(deflisten VOLUME `bash ../scripts/audio --get-vol`) -(deflisten VOLUMEICON `bash ../scripts/audio --get-volicon`) -(deflisten MIC `bash ../scripts/audio --get-mic`) -(deflisten MICICON `bash ../scripts/audio --get-micicon`) -(deflisten NET `bash ../scripts/network`) - - -;; Music vars -(deflisten SONG `bash ../scripts/music --song`) -(deflisten ARTIST `bash ../scripts/music --artist`) -(deflisten STATUS `bash ../scripts/music --status`) -(deflisten COVER `bash ../scripts/music --cover`) - - -;; Calendar vars -(defpoll day :interval "20h" "date '+%d'") -(defpoll year :interval "20h" "date '+%Y'") - - - -;; ** Elements ************************************************************************** - -;; system sliders -(defwidget sys_sliders [] - (box :class "genwin" :vexpand "false" :hexpand "false" :width 325 - (box :class "slidersbox" :orientation "v" :spacing 10 :halign "center" :valign "center" :space-evenly "false" :vexpand "false" :hexpand "false" - (box :class "volume_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" - (button :width 30 :onclick "bash ../scripts/audio --toggle-vol" - (label :class "iconvolume" :text VOLUMEICON)) - (scale :min 0 :max 100 :value VOLUME :active "true" :onchange "bash ../scripts/audio --set-vol {}")) - (box :class "mic_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" - (button :width 30 :onclick "bash ../scripts/audio --toggle-mic" - (label :class "iconmic" :text MICICON)) - (scale :min 0 :max 100 :value MIC :active "true" :onchange "bash ../scripts/audio --set-mic {}")) - (box :class "bright_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" - (button :width 30 :onclick "" - (label :width 30 :class "iconbright" :text "")) - (scale :min 0 :max 255 :value BLIGHT :active "true" :onchange "bash ../scripts/backlight --set {}"))))) - - - -;; battery -(defwidget battery [] - (box :class "genwin" :vexpand "false" :hexpand "false" :width 65 - (box :class "battery" :orientation "v" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" - (label :class "baticon" :text BATTERYICON) - (label :text BATTERY)))) - - -;; network -(defwidget network [] - (box :class "genwin" :vexpand "false" :hexpand "true" :orientation "h" :width 200 - (button :class "btn_net" :onclick "bash ../scripts/network --toggle" :onmiddleclick "" - (label :class "network" :text NET)))) - - -;; bluetooth -(defwidget bluetooth [] - (box :class "genwin" :vexpand "false" :hexpand "false" :width 60 - (button :class "btn_bluet" :onclick "" - (label :text "")))) - - -;; Power Button -(defwidget powerbutton [] - (box :class "genwin" :vexpand "false" :hexpand "false" :width 60 - (button :class "btn_poweroff" :onclick "bash ../scripts/powermenu" ""))) - - - - - - -;; ** Widgets ************************************************************************** - -;;system -(defwidget system [] - (box :space-evenly "false" :orientation "v" :spacing 10 :width 400 - (box :class "row" :orientation "h" :space-evenly "false" :spacing 10 :height 60 - (network) - (bluetooth) - (powerbutton)) - (box :class "row" :orientation "h" :space-evenly "false" :spacing 10 :height 60 - (battery) - (sys_sliders)) - )) - - -;; Music -(defwidget music [] - (box :class "genwin" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false" - - (box :class "genwin" :orientation "h" :space-evenly "true" :vexpand "false" :hexpand "false" - (box :class "album_art" :vexpand "false" :hexpand "false" :style "background-image: url('${COVER}');") - (box :orientation "v" :width 80 - (label :halign "center" :class "song" :wrap "true" :limit-width 20 :text SONG) - (label :halign "center" :class "artist" :wrap "true" :limit-width 15 :text ARTIST))) - - (box :orientation "h" :spacing 20 :halign "center" :space-evenly "true" :vexpand "false" :hexpand "false" - (button :class "btn_prev" :onclick "bash ../scripts/music --prev" "玲 ") - (button :class "btn_play" :onclick "bash ../scripts/music --toggle" STATUS) - (button :class "btn_next" :onclick "bash ../scripts/music --next" "怜")))) - - -;; Calendar -(defwidget cal [] - (box :class "genwin" :orientation "v" - (calendar :class "cal" :day day :year year))) - - - - - - - -;; ******** DASHBOARD ******************************************************************** -(defwidget dashboard [] - (box :class "background" :space-evenly "false" :orientation "v" :spacing 15 :width 400 - (system) - (music) - (cal))) - -;; ** Windows ************************************************************************* - -(defwindow dashboard :stacking "fg" :focusable "false" :monitor 0 :geometry (geometry :anchor "top right" :x 5 :y 5) - (dashboard)) \ No newline at end of file diff --git a/dotfiles/.config/eww/dashboard/img/music b/dotfiles/.config/eww/dashboard/img/music deleted file mode 100755 index bd8029e984c2177317b31f9e1004c8a61b0e8a1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37619 zcmeFac|6qZ_c;7E4H;CnEM-lWlD(L+O{tW<6pENqBx{kKF>NYBi)>l$6s;(-Gt-?= zvXqJnGg*^;-)Da3ZRx)6@8|x0o|p6(4ZAPM z9<`i3ewhE%=p_usUuBnz;lsS|&8E9DIQBo_n6uhB#Bw8y$g<-5HFlf?uG0J%XU88q z{5D|rx3otHPn2%O$vRe-G{ig4RS3~Wrk@Ig*#a7Bkkj>JFzD&cVlL*2DBW^wQub~$9t1(#j_m@konc&zwqIdmwQ4Z{(_ zCTV^BpIgZxHp~9Lvjic99D+&NUTLxZpBr%?4gZ|UeG+y#$^Cpa?jIY4V5nREITQOE z#9tKtO~v1`_*-3m8=ZMO|JyG9-?fVbb@JnKszz9a&+E26pP#LoY$G_&2E`_8AhAR@$FY@ z8@j(Wb4Uae&B~8N*S}c%%MX+9U}z%tG)1xWvbOg8@5yen4bwyJ1AgBgZpM?Ip7&KD zw}YE)XIYc{%UKdw$ZN}2)~}d;Q<3b^Dw^z3Bk%sK%w!*C)=Fd|F9x4$&szzev@+_3 z@L!(vBTv5nlQWOI9du!*q8Udw&lhqm{cE}cI@D{sZLqs}%#iRK7q2&>#4V*4UpMM&h3*n(MDIMt$q-gBju0N#4_W z;kj=72!&T|uIhcK>MHVmK;4j2Q|B+#3o&b%S*5P~cHxwR9RD1(WSiceat&ey0}ik2{M&$H z!qrth*6}axaQQh|ZILo5h>!x$$lvxVCVXAh^G)mZ3H@*keczC~sqL^xgfVeF3oCVx zQ|!fGETcML-v(OI9Pkmrx8#suh0@_D>Dup&*xkH9_FI<@{Y7>W8zS@7bed@w<&}AD z(O~#_@w;8}cM-gXI>o29&$W3Ufu&C6tR~-5WOrQP{q%{k$j{w*;iEXZfP#^~2tFraU8jTzF5N78AJVE*GKlif?-)>#p!vr4;b6Ou(D z&4a9HLYC(+#BdR#XQDt7?>mXVNRpBqvZ}{0ssJOgeb4TuSXjpX*2TjJbFMf$7ht2PKn$hz%^?Qg?eft#{COBC5GICwN@mlDECcu#zK z_5cfO2L#985QHs%<>TqP*;l`CEvX-|lqc`L#kS`(&0*%xe{N-6#{#UlXTq z(Tl=hW(TN!s`X7>yAe@;+f6(V+Qhc1()X7(S#AXEY($*l@1JG7LUzLRokxY2rq|8O zN59ZY*^1Dy#1Bocrq^1IrsW_BSg$Mj8`K)ZFa|ELlOG zj=!StNq-p7^{DX*&`-A4q)-Yt6hTkCy$I*LBy6D|yARp1C>!v0HeP~pYv0yvU*ypb z1pw2(OLugfBjk@Zm8MI8>{_<7_+Lb5%MfRit!Vq$ovibucD2fLnBMO7F4qaRN!ukF zxwMTTkYns^QBy8Q$eHVhe+XeXkeKC5HiEhx3u?1HN6W_-rVa84dz=SytT?ufe{n=g z3W$-s(4%NYJ~JeL%{H7IvhBXBd_DXSf7IYxRrZk!K{)^ zFgi~%K{m8=LNN3?FWXo%0!x(gW~n9Rj977j1klfYW&Cx#yA{Q{)4M z$za1Q1LCo9ypmg72D3Q*89H60^phvZ*O~U?Z>!`wx1rE zNheAYh%Nwd<5a9$Ht?$2f7_ZxlIqV}wuD)8vC-IM-L~85i429H&v_fjYhc`(tzVBN z0fI?49hWp2Smzu<*v`UAcxm?3>plpE;F4g_e_%AinSr6cch1b>WLt)CUB$x!DeT-2 zWK)m_F%Pe0*Z{kJE?EQ-pQcaCzFQ38{R+QF>K2h?fHMAog@3zC6$Og> zBL8D74wxSIL3KfXf5>|DS^4=plKk(i(U|r5sZX@WU~dDEn;!NwrUIXL8)K=%`C~;}_70q5AYS4!{5TbZ>GF`o=3^whICU>AeB(KndRM8x~oB z(RyCXrCXXQKJF{O@ky9LkYKjKxabM^T$zRbs0DUsAs=bq|ux5r zR>QkAx2PC~t)BP8iL7oyRi?BW3bSFTxlrv=GrHJ(h&WcNDUVD$xPv0Idx6>56jmk9?2t1B!SHSTo5LLC#UC9=oa=6$t8c9xAlYS(xf-I<;0fIJyrq?X6?Qkc zF%GOj$O+h&qy3DB8oJ#di;~7B?TS^v5&?`^5UOPvR5r+i&~3c$BnW>TMGqeSk4x4v zG|_X%=%MDc`H_3UXvl04b@qbaKX7sL@qi53d7!yBS$$5;Z8Dv5dqFrPvH)+Q>yG7n zK-c#0-`D%mRSb+0x@B zJ@#v*=~8q{ibwkyQrL}!rtr~5SDBk-GLhcX5j7mu^i9Z%GWBl(9i7fxhzD9$Vx zO%SHu3(b3d0FFkU;(FL?fu92r6^x=8-LJ>po#z#j7i8&1N_YVeptf5`^a9Mqj$QiRgFBEAWq5Hi|Q|J2~OOt`|nT3$g z0H8Fea4wJs-Lm0DVU<^I9;7LVfr%gy?bs6Lt(zm@-ZeVYmx26pK72u{!aRH-b)rm@F>qn=*z*LwdZIoYz72$6+o7*0ziv{Gv~@B&+Jk#aq4{R}lqrV0-dHZ5WEdoJ{hlg5bC0Optgv2+%_$;Nt$NP}U98$wF)TD6Z zF983!PukvqkTFVq+j$@qeLtB5tGL@QtzrVJ;59Pe0#_^J5*{wB@<9&ik61hg;qSmA z9&WbL=CFvGhB+)kOEtPa*P%bT!#L5(GK~l117udh{w^cbXqERsaEI;D@auL)g z5Up9&);{(GYjLLI#9`RHms3lXBgBsS-$oQmaD*`V7DK_TMT1=fuA?$K#tG2%ct~iP zwL7;2#-gEa2kmWt^Y-2X7`yqAzcv9>tY~#S!ywqh$4~5^2V?fU9Ku+;a)BPiAkgIL zOA%4}KrvbQo1o=HJNl>`Vta9srdI#9%cSEzL~GR&prv5Ng7ow&r2x>I(R&y8lDZF> z75J~a$fhEbt3~G75<;B@zKpF9m0WZ}V8}sbrS2lWs{eJ3_W%da{|*PJ|3YquyaKgE zTt7YZ;P<773J=&8|0rYt@i;m!#pD&hDRpeO@&?el4aZd1gHS306Fs*7uV3>c8S|1W zkp-el#2u^VtfQ}k;q z(7P=BGd?b`>q2r|selVH4S8NfILr>_?gvLbv^-1`j;sj&YFJJ=FjhtoXI ziO~Q_bX2A#ta8AhUJ<-G2(s7SuSw|FS^4no>0`1&dw{5BLc8JaifROK7|EF~oFX3s zqaI%fEV%*Bdw;yQBq1dXJ{f)(N3Q|MuK~_5KFyZ|0EqmjG6%rp07lnghu^}P%?gyt zO1ix#8diz^ki+>a?3G0k+oTBJ-f6_K0cc$Om-YcX%3xBI`QFygn@#FQfMlbjT_(`= z!L76-;4$DR@#990Hpo7KcpAQKEi+L@`JSR2z60Qi132Q$k``{0EI`&Qa8v%$V1w>& z?%NSU5QI-L_xkpt=Ja3Ax{HUf-z@*l^2Olu|6whcaNI71APcnszcv21#{bhn{WkL8 zM1C9j-+ukKU;iD-{g1T8?@(_3&fx#G(R3RwdA5*GoaOaNo-pH*{pmdp~h89pP&zSn8 zw{o;^sF1XJ7u9~{)bw}TG(<>|cbS45oJ+VH{y1Vv1R;1sv^u)lQ_O5}Kk) zeFq#!{xPKK3yjS5r}0W{G+wwrJ#$vrQwsQTO?ewTP&5~A$56cCpi4YN&S#lR#J^(X zjWQ3-&fYjto8S1}ou8GuTu^g*$8rl~6SgNy56*{|!e5&KhIlw6Q(4h-+dWK|R!2H> z_GxC&7eo8mIrna6*uBR#Um8urcz|_yHN70)v7xcPhAsJ2m1KZkp zW?F5gzM9d~suDz`*@^xn_}Pvo?n5>WHLO>#;4yXYz8m@aGb`dL77;1y=-gUi7S+ zf;p`=^;O7~`E82Eugh#oNmbnX`Qkpzot$=@x}VE`+%Vh0RgcF(^z_M1&iB*u8Mp)# zVk!(x4ojr=oe8hl#WI*(Btn+XRf zG+Q@tC7I-U`DOW<))}~iskV|jGPRi_WYgX_Pd*^AvD`K`l*DkI*O-x)%_C8FfL@(B zIcKWPbkd#p(~88jo~F@mwWc`RX>f!@ijVFp@-M{@Er)B0I6)W`KPI9#1U+yJ{yZ{r z3aBP>P{Iw%Y`>f^*L{Q$`Ny_91b)Pcu~Cne`dxMW(H+?GPC;BedNa%s(lYf8(oZXJ zW!Gqe{J&Hm`PA6e$|>8SjI+xjlU@Ft-uC*x|bxu|0&~N6vpX zQ(|?7Svx>c3ub&8HjK=sPwhkQsMp{vb*^9}^b8!D(2^7L8xe5#O6~*Pavl4OAX&nD zd2InL;`9XNK9eH7rlj=&N66KOUpJJ%y?4+B0k~=Z1H}C34+|LreHde^JM&~Bc(B!{ zbRDB-v}+>WXG-_alX5^bv(rMCs5DsC1_z*3!rfG5OxzV5x0Sg>OEamB2NIIY$AeB) z>-kST2P&Ni5={gF?y3d;? zrfJ*Ii+3}zLGr+gr^=c*@_E2_WoO41z*uNITqW(`aF8%NKo=D(o>r?3Znd}L?lB%1 zG>x1PJo4#q70BT2v9n&7zh&66%mGG|sl+=31+uRX(^bEz*Oc~w`Tp?QuMYaKi|9*D z1+qO#RWyO{OFp=yxHV>H2GE>bz3eE-A@)1h{>9tATX5ZW>&l09SoX~js&D4__6Sn$ zKp`maNdrYJCr$TEmFD-Wlq6BPU~jJVrjl8%@FDkgBAV0c0Tc3B!wZW!0bYPf=>;{^ zm>sxWVOgc<{A?)!lnapMzPG-Ekjvmx*>~YYY8pB`ZvygQK2yw|w8#Np>`D+I{Q5gF zJXZTb;_hYGqZjwWu$5{?gaOf)oSq!?IY8HUNYhUEd_T#M85%17HRK3f@g2FDH&F)* zLz#{U7$mf)04{V-t^>iKbfeZJjcIOdk>?N$JYsOUnn4+hneqX79tktxpP9}vPHz-p z%ZmP)(y&bit9XZ5_IDzPQB`#}C;He$J2Ew!pwGXL49sFeUJ* zWH`4EJj*MlK3c$F%p7%^BWeD4P`)l}$u3hlQ0I;&iWZ}j(=6ot@48B#8=2mWys}!# z0iuFDw-uTVz4fGx*9!7RS!_u$Xx?B^3SE_80<*c%7j*)ny3E5$EZ=yoP*Wn1EXZdC z3E`~p$EoN9G*Nn^FrsF=QS|ubA&26@3k(MgWeQ=X?%hDu8JDI^a>GAXgKmq{cU3B>@uW-jNJH zNhaVgxX0iaJ?FB%G@`Ub>ysr?#v19dT+_8+^^@PsKkG)bnuzNDb~0 zP5zGKJ_&Mqa!v6IB|eZoM@S5#n(XKTrU6o1$~NoS)_F9Y=0GgbWZN*P^zaFX)-BlJ zxgp&#a+s3;tEyJ+8Im+Dv;ltyD4(@dfk;Kmqn5W09|zmb1;$xu9h=@JX;c@Sz$!sq zM)$HAhW|s)t%`8V49g0no+V;JAtV!NsgXyGw>+Sf(VpnT0~{n7i})6PNfvXDsOS>d zdi^}?V+>!bzeo)G+eJKe@q+#BOH|fZwH^c~WDLlB_6_Wy>kmQJjSbf45{nx02b<>K z>E?{Vo&lPl>1uGBhE4igzcBuzlBH2)O+}rL0G924#%y2W!TKi)%6=n-lKk_ShNy$&k%&43(zjJRI|ee=x2}CY zhGpjm_rkx@r{VGI70i)Hpn&Dar1NwlS?RH4$j5 z(e`l$2wN(8?K>nKKZ3-4topc{6*$hiBL}kkeekJo9qrwpr?Z*k_zzH;G!q%=)>#>W zhOwD2JYSBT3y315%rAw;#1|nhl2$bYt)OK=Vb7c}qkE|PkkTmX_@6B14cT4L1k&mK z%h9vWLN>@V31-+m^GQX+_FY4hfi=cPVDebN>VXMh(K)en_@Kap$U@Gt97oK3#@GIRzSJdTkT>t zYABWpVH-1GT2V_4q*2JmzzFp}@RKTkQw#fd-L?IwF2$UWbV17lM1Z7F03ZZPt4x&J zjap8yZ-keI>sy+cZ6)9!tfwIyq$uX6MMDxt3Z(Dm3u8Xe4c?0<4!{Dv@R7rY11x6f zvvLSGyk`KN}l(E%CI((EEGzG zRMUJpmP9hpAnP6D$Hm&Y_JZ2!4#B>8&nqtCva=11|G$9}xQ1zplZD}f@SY@;|7cy4 z=1M?1x%48b@I8%5Ed{^3J{`*bs3&3AdtQ}QWH=P&b1j<8td4iBmq=*AvkLHeZQIZn zg-E&=8d!k&t-KxUXAR^(T;{SDgT0Dcl9ihQ{%`2<@jJ;-t2BRbgD85?`~>@c;(cL? z1EOCMQh-2O4e+_NEOISFuuKvSi4%uLGF>P6SLy?l3ngXWG(a>Zb{Snlg{}h@aJJb2K$a_khu_3j9`+ccBTw;ca-BCIE4e$oVZm9G!da%w{xbs1LhGPk~J& zJQfb?|8tiJu(90R9r30@cMca9WXRu|WL#-&4RRI6?%q+ct<7(3`rF1zrZF82X|~ zSppy6c{Al{9E1W<@=9ot5s_DJA5vDtaKCb-Um%jgJ73~?3vAV`u#Y>?`j^%FbD%t= z8T&yH`E@c%;(r-bXzh#Edj0E?d+cCICXFXx_C6lvdCC*O!zD+cY7^jbC+Q1R?re-I zM9~_HZ$~CD)E3kin=lyX#Tj3_?#SK;m8xYnDgttInM(yP+gP3nFN^dowFT zpnBubySYFXpkD}KEkKg+Kp`GN`lt;GsIioAXYqI;H1`+-BuB{qxeDP=j6};E$sl}= z{X1F&0M+!Ygva>`36S}ZlHTA6OVCxx2S`|`MY(A|sw*G?Y-Z1acq-@Wx95j|DTi*T zqFM4`0i<+}_Q?=-2?kh$x((2a&MaU3DCWj}Nk2=inC_kU8b;G!BRG8Dk>hQGBdApLx)6ha89jdc(n)hV9g zbOcj%e9xP3_*s5~TpUpS*{fn45z zi1&4C{CPkGPV|5XSonoEx&?rF!LX|9q7?59A#5NUkvOTk98*5gAM)m_Lw}XvT7#E& z5pL=Rn6p^OMyyoPV>C|ntZY4y$6pnh-*y5v>rX;uof#;u*+!EpR9f$WARd2m`z=_K z%A^zs3x0sp{t;W42na+is*XA+_-5SKcr5!Z;LEM6^{PM#Iq-FI!jJDihw$NlUhS~A z!#K25$r!LOK8Mzu-iJ^3TXRsj4Zt56l%IOo3)uJK;*$|57v~6xc=#<2RQzA?20lK- zE1=gLH(=b2XNNZ~7V*gvQc?kY`=8!WWx7;&`Wwyve{+-6qELz~)&l$%;NN=s+Z-)j zsQR^60cHiU>)${a5em9F@b%J1uM~om;2yUK(ki_*Epb4S z66)ypKu1W-O8Mv-^yBVwO_ns$rH6c-v~-?*cU^3DlK^+@E<4_Wa{#A^t- znZt-;*G%aqmAUCZ3>cSN){<|@HXA%UqP@290819j&QOUgCm6lh2d4_|qHk+>LkA*n zC67d*?-i|yjP%~%Tef^Vg$HGy4GomF6%0*IO6FN2BD^(K?3;jtR{I;C!CiM&IOI8n zE%l`dL@sjuvGC-}YnjW#RZIpp+~ta8_)^^~?5CSTYQ+h9EFQ=vQ|T-P*f#fGB3h4; z0Jyr;e1M8dAwA+WmbtuXy2gjpK3B_#TN|NrV?%}<_X(<68^xHmT6yl^`Isl%`;q($ z|Ct_#mwBtnJ>~0|GA(^1m*|Uyy*wwVuZ}fzYcA6XkcKt{g*IH{MvyYvvpVJ|!0ho5 z(ghdc>f4*_9>!V|v6jiyoLSf06}gVCd+8tB@V1}00ybacYikffwO}n( zsTo%$Mbj**6MNBI>aufw{-@xE|K}u^X$Zj_KGoBo8cW1cg-^FJ|2(d?HgBO`@tUOt zvUw%#CzkzJ^Pj`)P3v+4{hMZK4`1irHi9C8J>q|`u7qR@9=V+k`5q!SY%H-|=sZHM z!r7=X`qJCVneT1bk3)9if32gXH)8TM`)nutz6-C?p82+&XDJ2U09lYHsa-E1_t6Li z!bFY!8o;Q5(`aDYG`XL-2akOYiH+wnj{UFD#Bgfo7IfrO7@5bYF+tO5O$@Zh!t41S z3(GGM901wQ(RaaS0Oj`AT4-OoBD5w!XBi*&k4+xYR*cg_8BD%yQjH}MkmfMCt$qkf zdaPXAp)QD9XsO9soj!frv!B`U$X+bSBG>6GEIM|f&j<24)G;(A7YIZSjEjpUu#&$4 zuXn8$c(#lz1)0T+P!srSzM&R*BYfJp_v?9r7&)}8nwi-t+;9)u3EI?Y?YC6T26Cng zi&NgY8WAlq4VU?JrQ8@K7t3XMrKOg1j6JZ<^$*JMz7^XExyH_|egbIW?Hz6<(mvpm zU&$-qE#zmgxqX*?VKtCTy{8+k@&45lDR zgogG$$hKG(lbYKDY8#W}mbX;!y*{A#Y02U^-zykSr6_2Sk426A9entevYs41@+VDA#A86n`AnxwmMA#^nqj>DwlzANyAo8QGWm}ci;9YN z_4(C)GJM0}RcKYA+Icc0| zHWxIZG3kX`AKG?khRX=GA82v=%8i{<(CEts6rNINf6$tDsZ??^DxI_8MtfkOJPfqq zgCZzn`aWorfLrlztvY^{`I8S@cD6;?NHm+UR~1;%~;^mXmv{`HbTbZX8sg&;3U-F1B(A_$x#Q*;O1LK<=>@d z!{Y*F0ay$0#NSD<>;PBT{;v8XtOXhL(Ha^wm*F4mr}U7Qp4wfZ-}lZHNtvDge=4W`|$?f>4g0_`XPHqoO2I%q_Y5%L&_UC-KWJH$YAlb#qEK%EMCeD@-HnopyF{2e8HRV28tvCRYVEk>Rig-?>hsI3_8^rfRPkI`#|K2 z0ih<}K;zB(8t~@81?nTRwi@cMf#N&m;N3Fwg%|)q1`bogS`&$(=d^%GWo-rZ=-edg z6bQd3h2x??Jrazh=JygT=$u7OAk=}Pf|_g;j`j&8S`WiZ(TLbU&~ zQ08R}T@eqC1Ql_p;r*LnE>d7G{qX4#<{^HF`~R~|AoV>qkUgd69Kn=KTEj{W3&?=V z(JItMWS?yx0(P~XIEFrJ_|?vA3v2KOj*!p>n`#TJHwybd8$(hHLA}nhmLw5&klRf0 zLq|;UUD0`a@P*fLT;Rinwu!xRMIT5VH48;UZ2{Q9n&8cWIgbl;E}mgtdFi0KlFSQh zKo7iQf3?u~)fxi|visq=lVP5hV!Gr)9ajH%)kfs29R}Jl?ST@GJwox<;ibgjBrwar z+TM37yoLg<=5P9|QPm^h?xXcitH4;<0@BT0y3J}ha9jV2iEN@pCmd>03ywfM6?g02)qmNFjJ|O zjk2ca$RRbgCFihz9fm-hmi<-0V(%q*lmz zeLeRBNjRcDOmkL2?uW!XRpDcEQ0P_cO2h)u2JQa30l3xd$A zPT};7x1g^%Kaw{PK_p=e*>|!GR-JAlWtTk@y-B?c81tB`@PR#u0DgO1_83#LBERImm*Fz94wj=JFzv+;jais0oL?}8o9=6 zMcKTK7pYf(+@}O(y-hHpSZHsnJsxNrdZcd;5kivul@O3DRiyLbpHPic5ntL-yWX?F z2x};~N_eftke6L*!3R}V(IALue-g4i=N)*jb}AmVMHG3@d_QFyFo8u zm%1X~42w0Dvz1Ask1QWbGGcrFyQKI;Q<|P&v*dOzi51!eiPg6x~8zIAaknej@}q-A$YVx8TWw*%tSbb zIPLis8vSJ*1q3q$LT7(oTGiu$y##)POEmI35ZVJ;>OhBFf;iaTQWXl>Y1Un+VQG!?|q=R$*?HSnP2q+ly6 zhU`oo^!_TbTI!u9t87OffCqjJBgy@7s7(ah+ts?2>Go+PFp;ne(0_fPZzr@+`QCYe&w$R%YW&;t4Z1g^xGUjEztFAg2Poc;L`vTb zPD_^~L~Z7&t34(`5MXUN{n1l{bXo#KhuV8(Ud<8#MdS*eAB zmmByhr3d*yaHSe5)1;M?KtY%$Mq|_=88x22-uP|9*~s6X(``K+=G){|_(hj-fsgr; zug0%qbU<&;_lsxJ&@)Tj0gV}P(nH$w@ z)!?9zc5WCPpPWiw@%$Es7$p(DooEQ1WI;=6q;*kKCJ}sua;kXN*;(XIL)<+$*4~S( zgV!{QgOqY%ijr8p=6>DMvFw4#3quK^g0I;H%i2~9`8sQP4>hoFK)eG*;mw{a=j3A~ z5Bj5j!nQUH$d;Mt9&uHg0d)moPdS!knvzT%?VI(9b(?JaHaVc$nm06{dSi0MYv;Dv zu7TAUbCp5eJmp9Xk+afdJ5iZDl8VKXv`taxq(SW>%OttfdN_ z%@pUv z{PwILjGAP2+8J-o+=qkra}+V!)=N{VN7+=_$)cz-Umo}fCNY*_P&)J4zOZ}Z>3z=S zycCwH7x>pB(9#n#v`u`+J;VwxA1bSyLRDyErl+rx8iVL`8GBh~iF;T&?I)r%bO3W7 zy!HLI7b0Z&)srogZ$~E#Of{Iny#$G1yjxykwOI@kzX@Job$Uikp8ducu z@~Uvw)FzJs55AGa^e4y0B3eITe?si=^SBcq<}ubJTvqD`dbPOEQERlf``g@{5G-l0 zI`=;0A$x488ofpPn^#5|^wOKl0|*OpD2J?|ShB~-r=DUbNzg}u!?`DKzhT%mB*qe9xu7$hxG z2R|bGY5e)BrE35MxMXl!+or7;ob5aCtYUNXdu*$QLgW>uPLKoDPPC&3p1`euXuv0e zX_~B~R|d^f9oT&*NNhLKbKppt6V~+S3T&F`Ap94Bfv?1dVfk`*+azH_9R)Fxf7x@6 zkl{DhQPh2`8Ny5&!w>Az6M@Tiy3Ac#J-V5}X^zl*5=>8Yo~tvbk;ZJ~6`F{N_+Xd5 z3Ow+6_xRX-yQ>vdZ9|onQ&)s7!VA)O{5;2%9eD^B&z`5+Ei&q>CRteVgO|KTI*|%H3w}Lg3@h&@gvN3OWOFhj= zYj)Lqi*My*Li_;oR^PdGBWB3Cc2$L<(v#3hw*pfW z@)O{2Z{0fHe2H2TJo`O4zkbzRpPxIP_QDjvtb!4>AaSyD#Us-& z+Th%tctcmem!hn!GW2UB-rM|c z2Q<3Y6{5Tk;1R(H!+OHzYMvOf`(-=9(%VE6Dc;6-un8lnr=L5z_gygADFHXD5>6iF zZjv5}jc5EDm<)y77svO4LwjSTu;mh!$w$$dEmGO7!U|W^Wtm$tui;8{#bSEBc^zey z7th3v=F}pFwx?3w3rvd5J%Kg)^fU;4-0z$=+ClUIhEyB3^$yUQu{B0Zt#JD!J;tm? zHVh>clA7(0SX+SAJYd=wtSR7oWY+(5g=j5(6z$wVsnJ@`Hu)lP<@a_hFNBZqcIe|U zM&t4dJ8nvxX2EQlfD6QjC;49N@{t;}A95~t@9+FrV?dmMP2W}7UkxaGmB$#+S;@B^ z!lCuJx3L|p{UVerGp~lN4`(fwthZ!PU$izv)VfXFs@Y8xAx~~`@E>WHYBM^{i)n)Z zsl2xG!VA_k<_eu{!OJE_UNqz!u>|VCU0KO4GLxHf=}yV(k*%xAlED6$fN}{X(PKh- z+)IsTt8jtlE?y?H<$cSmTpc7a0jN-6$giOZFC`-I>0nPF088DqohXl?tfeG1Im$bp;RVBW+0L>ilBZuJGPB>8 zKV3Eo#63z?T~Agp|9$sF&|ty-Ns%c9+OSNo;XHg*fGBF|jj|Id zmLD5#M;zv@oNLSNp3qkqdt!+h;pRr(>3v!A6xXEVUR>I6xPDsN;|K(R)J%Dy)8x6d_|KcjTVX)wW!Hy4SqquEiBTFh-wx6qvf-ZG z1KvpgQ5;TH#^`q?<%}qsCqxsNm;%Qq$%iQQ%y;lQgsudDIg$w^j8fIwr$I9bHAdLC zz>Qm!&~0*uiPcRp!M0w@ue$G+mvGu7UAph&dBSxVurAN|Js-EPPYdC!h6?mSu!#g>4M`|(CHI%mG|#N+2_FBtoLqow z5B8YYG+texa8eS3%`hh*bRxG^KDEZL&1>{eB~MoJILK*VUqM6|x0Uw6;B^zvrFR{8 zTzQxEjQFI-nnuYs!Ce}6eKFDO?8wG1dtBcc(*^uqdA)D4$mS;h3D943PZ@R=$nO{r zC~a?&wsy;Qs5buTYC~>XW*g688+ZCkeza90LZ-m{JFFN^KKy1D!i2SR5QO=>fJQW7 z7_2(3Nqr(mJUp*B+F78oi+R6$;A4Ei$F*c$*g(2JJ|1pt^;_f;wLiChmNvT^f~1rk zG555`_`EIYD=zo{+#iCODrR0cqS#-uyRDUy{SfzVqXZIru;#1+hnKF>RFuHl1~u{_ zSS=Nu^E2Dnr$~YhB{?b1`wc!XS-2XGwOTND z#4LCB8;r)AgcRECrjW02rv++fPWy^=5U^6P6ib|;@i`{Fym*ka-E&5*p8j1p_%r2a z;%A#{K>sy92Tg-GCV!HW<2z58faz?y?VK-0?$>Uu;=_2+TKdjYlUawi&c)6S-3=F) zf(AuKVCds!(tb{{KZ)1SiK%hi@R<7n$dy@F>CZ6Z`i2;eqLNgyX39&afmkQIhyx}-RZ%b|x${w2_v>k?*( z)K_OnvnS6Uar$9E4s6lc%zSQFZkh!xqmn@!O0_@j)5XYkuBh>zGddxF=>w?0HU}hH zDrD_04AASpscG4K!oIp=WbCNZ)InigmnUcYcuxZB>pprrdrPyrC2DL5F6uKl<|j<< zK|P*0_K|>Zqlwa2W?6vicpW9Puwa*;2!XeYQHfJ_Bb9lZPgrGCEw7uj1Zq0+Elax%h&^h099c3*U#&eA5r_Vrzz6xji*0u+*G=Q9B3PCVmq1^ZkIXu+7@nP&VoSv z%srqN#@~o{x2-wcE}{rcbmD+W`y}e_P_^ra7zHspj|ysJn>=&`eJG9jGs4W9sZh3Vx|jXM!M~=&g=no_rn?10*cNbb<<(;n#n%8 zx9-wz3^BrKf(;?(aNI%%U{|@!H=KO=mMtlP_p{=o4T&FM*S+qMt?cj2=_ZGIg$rtR z+>^p`pIhiOB*ocA*81v~Uwk_H6k10MC`uq!`El|;S2xPK8`lZXnU?lMld-IA&%LUE?v>Voa~hQ5`~W)1vYcdEX!V*$LRlDQ9M9b$$;XYC za^HR1C}pKI_k-P_71b7}E>O8KKGpX$+gplixo%-GqHw&?z6NZ{%jkzxf7r?XXPSA*rXXhcKT&&L1@&zQz+9 zL;ZQ^2aB+wn%J#?vAM1ngIb^8bX6)jB)Z+Xe%k+1a!2y=;w|i(K>$zsj=W%4V(i`~ zTmmAW)ZUy_?GM=8-mVSb;FD!`@uCR1>IF5FfpqN{lkFJ0#@ zFe^!5RuaY#$ugBCGKsUX(qR zU@5gZ*F!PQp@s(kq|aV(tBo!O_7j|{1Hp6eL5xP_E7HVB5VV1T3lJ9SrMTRgYYk{q znE7$o-QZ2ai&<`qAEA%qkWvl*)f^IL4+)r%ehp6_3J+?F7Z#;f0uI+TsKcq8T6h+! zQ>x`32qv0iJ(90?cqaIMpA*`&9UW?R3oPSSr8q58bxV;T&G~0@iYlnFqFoQ+aTR zx2VIZY+i{dgc?+?vWNq_(N5~x>?ov4*4!ndY5a=vE|&8J24@lT*{dnaGRB)G8xHY7nZB9VnOMLj#cIX2zRRQ5N>0C zlKt`$t)(p_^|QF+*~h#Otbvk6_21im_V4#uTJ{Vq+tC|su$;TnlBpz4JZ#P@!A-^@ z%p_gLYPMfw+zi9&87+8a#T8?dJf>ldKs!qMj^zB&Hh$=)u(PO!fbXK#3Jh2{!V28{isc~0g!O+ zt_K@#QN9pzH^^*Sw%|tL?Eo*PP&$Dd&_2ATBkBEbJHt$JuiB-(>`y-(_UrI6-bP50i<7wpMen4HET-#ZM6uKWA2g73uQf7Po z;dr0Zw)!PKU>}7O$q(Fz&96C%by=vXVNY$pV`bz352v@=&Yru!0c~u8B3zdPcy#wQ z1Y#qMkipIHpHfDFAjGkE<3$XI&1i0IUbhJ1fTj+A^}grSDn6t*r=9Ji3DE%KH_0Ua z^!s@0)PA%YX@2B_HU8r)xtSN4EP89L%Q`(^ECHdg=obAk^*^r64?;Kh2SYcy+v)BO zRARb(Y1+BKQQ13sL`jHG!<-p_N+=e*AOoYL{em_5^Kiw0k3G{$rRZZk~@z*`0%|L=m#Rqifk?4MBZLCK(^ zUkY0dVtK9{5!mn9eGFD8@2CG=sw*N-U2`^?<`PzBrNunOc4e_o}PhaUU#IHqSHTDt;%a zlU-vumz6WucOu&9WV%z?&ymO>6!Qf0QG+2-#QUhyqp(!vI>;T};-hSVMmKxNXIi@! zjV2-)ifvZLOj~ve>!5e2;E&*(+nkQeT6P<8>RQ9>7N=>pxBvKiBiA$3Fh@~f*u9zkGdf_y9Hgi?#Ufz?VWi~Y^id9?sa9GgQz}r#2w}Se zW)BRc2b^6o6=p-#J?me;2-heFOgVCsr+UD>1UUy2VG8jTgiraT|0HL5JCJiJRJ)ZS zAg1=C%&Z1vck6t!Tyr3L%!$1Bd!UrYbUu2Zwq)ba!K^a>EOSs}R~kf3^p1z2S_J`Y zR9EpnzC=u?xpZYYOBVtHcLsJD;XpXA@J3ikO;<#Uk^)Nue{3xO8-tNKw_~fdn`ZQo zn`I%3KoDDPGH?70FvcwZ#aQEC?x{k6MCDAecjqMn#_`ma+(?=^&&q6}MA=|21x05u zpraV&EVTvy8s-AZXENHeaCS=pMh(|bFOr(%p|O zvRLz?U@W&n9Rlvbi?P9?@gje;hXc^Vj%ZKH`DK;fSZb(Flnh5!(-tJ!-?3=2d5Y;0 z;I4rV4yzG@)BR~fLC5kbvJG`xsYC9pJCe|H{Fp6v%o#K-mV!hdK2kBhxqx+21{1fZ z?Y!@{TsZ_D!?O6=?|P{Zy}VyrTkT7mRKvCBaVH}EYG5dHeqSwh>z)%I4L2{SeoAX+ zWBq?&oq_77`l4iQ8gV_SwAJP^%NyTX)X#*}W^Ce7wto261dLPA-AG@K7Wgf7qaxTK z-aqid%o>zPl{P?+b<&yBA4s9cx_J==<^if@Q zP`gHzWvOda$cY6xe67Xhm%dpNDT=PJNYK|YB6$zCKm#-ND6deC0&^ZF>ysjKa+Jr278QY z`a}W>qtRhXvm9^y`Z;$Uba05UyhrtucX*M@Dw4(UD(e_!K6Ef>;yCTES1Eo&By~FA zHXU!CZoFam?*z=yVLvhAQb3aFy~rZ}m%YnG4AO@}fGq8P*?3*pUK{Fw;zy4HaR^xo zH)WuNt`jztvQsE2eGrh(^7E>^IQi`(BootPsk4Pg#?U5 zMJwGeUmFIq%Z2N@Dc*{!MG^t89|}!t9~ODsW!)x-W&1>&j?H9%`;$(oCl2{o@&icQ zQ3cd@f~MwWMWhUt7E2i z1UvK}ngO)lYLem)%%t8zwxi9DC|L)LdXBag?e5Gbh%wxe_y0;<&9k}`kbUv!^JBMM zkjpZ^Xto?ASJ&6ejMyslb*d}{Bg5-w`w=nhz8S(yvT~@fOBL~Mr!Blc_4i%dlCk!( z*tpvI`hN`(x6<=qb~ZC+jrv3+-vB;oKm1?|OGd}{+fXkbWOO9rid8R42rhiE8ps;4 zn!mj8OM4xt&gjy*C2GK`2VnMaxxKG#rxp^S27;*LXPEDsA)^Uxd(wdib^G;H^e?kc z%V6We^R#_iYZ2F!6O;^|2CiO!VnAg*hM~RE@3Wm;hh3?GGYzcssLDNpn6<)${xh|& zMf$3S$Sl-nEV_6-S2=Jmoe($` zFmLVYVAmNd-u90mHjc59Ea`|Vwug}u{3eLsc_wE(dh3_?f@g$v*cz;)Or^6Qzd8YP zLZ?q_11vU6&7IAwJGn`(xZ3%N2|a~SFHZ~Vj`VU;OaELf zgbzcz4;)Dh&Ir$xY1ibgPE#Sb@llkH%86^`r zzl};Yn6B@-bIRKp*_}0SpO^@6EHWY4lOzjM2mP{CI)5TX@Aiy{86Ju+XU-Z6A|$na ztAuF4?Z1$A6gz^7+|}q&)iF`0sJ$L+lJ%1h*8~ykD`o?Ej*o{|@+CXWZlIapYZ;`A z>am$(+s>XN`zvr_vz!;tT4(<`EeLe!^4`QS8uwyv6NOIaN2rK;X+$M#L0)pOLG~qm z^4MmttBxyT`UK5x5pnhTn|MKjW92`qiFzan<(Uqq$(|s$CXCZsRq$4pUde6TLYW-k z4>e33uUB4Sl39RGZeTm%2A~#2%8f|Yq%j-*wl|2{E>9oZb-s1ekm`wn@Hf%T(;bBV zUcQ3=T0Jg!69Q#Uvyd!#QxtfuVw=((E59@7_^3M|Wmd@A2- z*NUbTRALoC8$RjSjXSukZ;rxru79v8OF>m z1g)W@*6Q7i9mgMI5{DTIQjP8FXsmq!hjpc9l^vD+8%?#l9w#ZcJxgDWas<|Lgp2gJ zkIO5AJ8GQjEvj!nUAQu&_L11OBCCgKW4VH=*74+|!IEw>v#zWp<(;?PjYJVAEf1MP zKaWvHNKp&>Bc<$+xJW|Im0LK>^?>_(i^H3oD=eu?o z+CtEf#X)zLe`Pn)0BRJ4Z|#8xi(%%a*uGyE4NBn)#i#~o3J^Z<1ITXx`2i%FBYrUQ rn-KjG+CMb%N3s!0!~efV(gYILt|Q0YdWp|5@Uz3#aci*+`PBaay}gR@ diff --git a/dotfiles/.config/eww/scripts/audio b/dotfiles/.config/eww/scripts/audio deleted file mode 100644 index 44ef023..0000000 --- a/dotfiles/.config/eww/scripts/audio +++ /dev/null @@ -1,86 +0,0 @@ -#!/bin/bash - -## Get Volume -get_vol() { - while true; do - pactl list sinks | grep '^[[:space:]]Volume:' | \ - head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,' - sleep 1 - done -} - -## Set Volume -set_vol() { - pactl set-sink-volume @DEFAULT_SINK@ $1% -} - -## Toggle Volume -toggle_vol() { - pactl set-sink-mute @DEFAULT_SINK@ toggle -} - -## Get Volume Icon -#TODO: different icons according to volume level, maybe -get_volicon() { - while true; do - MUTE="$(pactl get-sink-mute @DEFAULT_SINK@)" - if [[ "$MUTE" == "Mute: no" ]]; then - echo "墳" - else - echo "婢" - fi - sleep 1 - done -} - -## Get Mic Icon -get_micicon() { - while true; do - MUTE="$(pactl get-source-mute @DEFAULT_SOURCE@)" - if [[ "$MUTE" == "Mute: no" ]]; then - echo "" - else - echo "" - fi - sleep 2 - done -} - -## Toggle Mic -toggle_mic() { - pactl set-source-mute @DEFAULT_SOURCE@ toggle -} - -## Get Mic -get_mic() { - while true; do - pactl get-source-volume @DEFAULT_SOURCE@ | grep -e '%' | sed 's/ //g' | cut -d "/" -f 2 | sed 's/%//' - sleep 1 - done -} - -## Set Mic -set_mic() { - pactl set-source-volume @DEFAULT_SOURCE@ $1% -} - - - - -if [[ "$1" == "--set-vol" ]]; then - set_vol "$2" -elif [[ "$1" == "--get-vol" ]]; then - get_vol -elif [[ "$1" == "--toggle-vol" ]]; then - toggle_vol -elif [[ "$1" == "--get-volicon" ]]; then - get_volicon -elif [[ "$1" == "--get-micicon" ]]; then - get_micicon -elif [[ "$1" == "--toggle-mic" ]]; then - toggle_mic -elif [[ "$1" == "--get-mic" ]]; then - get_mic -elif [[ "$1" == "--set-mic" ]]; then - set_mic "$2" -fi diff --git a/dotfiles/.config/eww/scripts/backlight b/dotfiles/.config/eww/scripts/backlight deleted file mode 100644 index a81e528..0000000 --- a/dotfiles/.config/eww/scripts/backlight +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -## Get Brightness -get_blight() { - while true; do - echo "$(brightnessctl get)" - sleep 1 - done -} - -## Set Brightness -set_blight() { - brightnessctl set $1 -} - - - -if [[ "$1" == "--get" ]]; then - get_blight -elif [[ "$1" == "--set" ]]; then - set_blight "$2" -fi diff --git a/dotfiles/.config/eww/scripts/battery b/dotfiles/.config/eww/scripts/battery deleted file mode 100644 index a79f98d..0000000 --- a/dotfiles/.config/eww/scripts/battery +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash - - -## Get Battery -get_percentage() { - while true; do - BAT=$(ls /sys/class/power_supply | grep BAT | head -n 1) - echo "$(cat /sys/class/power_supply/${BAT}/capacity)%" - sleep 3 - done -} - -## Get Battery Icon -get_icon() { - while true; do - BAT=$(ls /sys/class/power_supply | grep BAT | head -n 1) - BATSTATUS="$(cat /sys/class/power_supply/${BAT}/status)" - BATVAL="$(cat /sys/class/power_supply/${BAT}/capacity)" - - if [[ "$BATSTATUS" == "Discharging" ]];then - if [ "$BATVAL" -gt 90 ];then - echo "" - elif [ "$BATVAL" -gt 80 ];then - echo "" - elif [ "$BATVAL" -gt 70 ];then - echo "" - elif [ "$BATVAL" -gt 60 ];then - echo "" - elif [ "$BATVAL" -gt 50 ];then - echo "" - elif [ "$BATVAL" -gt 40 ];then - echo "" - elif [ "$BATVAL" -gt 30 ];then - echo "" - elif [ "$BATVAL" -gt 20 ];then - echo "" - elif [ "$BATVAL" -gt 10 ];then - echo "" - elif [ "$BATVAL" -gt 0 ];then - echo "" - fi - else - echo "" - fi - sleep 3 - done -} - - -if [[ "$1" == "--perc" ]]; then - get_percentage -elif [[ "$1" == "--icon" ]]; then - get_icon -fi - diff --git a/dotfiles/.config/eww/scripts/launch_bar b/dotfiles/.config/eww/scripts/launch_bar deleted file mode 100755 index 75ec62f..0000000 --- a/dotfiles/.config/eww/scripts/launch_bar +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -CFG="$HOME/.config/eww/bar" - -eww --config "$CFG" open bar --screen 0 diff --git a/dotfiles/.config/eww/scripts/launch_dashboard b/dotfiles/.config/eww/scripts/launch_dashboard deleted file mode 100755 index 8cddb8d..0000000 --- a/dotfiles/.config/eww/scripts/launch_dashboard +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -## Files and cmd -FILE="$HOME/.cache/eww_launch.dashboard" -CFG="$HOME/.config/eww/dashboard" - - -if [[ ! -f "$FILE" ]]; then - touch "$FILE" - eww --config "$CFG" open dashboard - else - eww --config "$CFG" close dashboard - rm "$FILE" - fi diff --git a/dotfiles/.config/eww/scripts/music b/dotfiles/.config/eww/scripts/music deleted file mode 100755 index 6634874..0000000 --- a/dotfiles/.config/eww/scripts/music +++ /dev/null @@ -1,87 +0,0 @@ -#!/bin/bash - -## Get data -STATUS="$(playerctl status)" - -## Get status -get_status() { - while true; do - if [ "$(playerctl status)" = "Playing" ]; then - echo "" - else - echo "喇" - fi - sleep 1 - done -} - -## Get song -get_song() { - while true; do - song="$(playerctl metadata xesam:title)" - if [[ -z "$song" ]]; then - echo "Offline" - else - echo "$song" - fi - sleep 1 - done -} - -## Get artist -get_artist() { - while true; do - artist="$(playerctl metadata xesam:artist)" - if [[ -z "$artist" ]]; then - echo "" - else - echo "$artist" - fi - sleep 1 - done -} - - -## Get cover -get_cover() { - while true; do - if [ "$STATUS" = "Playing" ] || [ "$STATUS" == "Paused" ];then - echo "$(playerctl metadata mpris:artUrl)" - else - echo "img/music" - fi - sleep 1 - done -} - -## Toggle status -toggle() { - playerctl play-pause -} - -## Next -next() { - playerctl next -} - -## Previous -previous() { - playerctl previous -} - -## Execute accordingly -if [[ "$1" == "--song" ]]; then - get_song -elif [[ "$1" == "--artist" ]]; then - get_artist -elif [[ "$1" == "--status" ]]; then - get_status -elif [[ "$1" == "--cover" ]]; then - get_cover -elif [[ "$1" == "--toggle" ]]; then - toggle -elif [[ "$1" == "--next" ]]; then - next -elif [[ "$1" == "--prev" ]]; then - previous -fi diff --git a/dotfiles/.config/eww/scripts/network b/dotfiles/.config/eww/scripts/network deleted file mode 100644 index 48817f6..0000000 --- a/dotfiles/.config/eww/scripts/network +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -## Toggle state -toggle() { - if [ -z "$(nmcli connection show --active)" ];then - nmcli radio wifi on - else - nmcli radio wifi off - fi -} - -## Get Icon -get_icon() { - while true; do - if [ -z "$(nmcli connection show --active)" ];then - echo "睊" - else - echo "直" - fi - sleep 5 - done -} - -## Get Status -get_status() { - while true; do - if [ -z "$(nmcli connection show --active)" ];then - echo "睊 Offline" - else - echo "直 $(nmcli -t -f NAME connection show --active)" - fi - sleep 5 - done -} - - - -if [ "$1" = "--toggle" ]; then - toggle -elif [ "$1" = "--icon" ]; then - get_icon -else #default - get_status -fi - \ No newline at end of file diff --git a/dotfiles/.config/eww/scripts/powermenu b/dotfiles/.config/eww/scripts/powermenu deleted file mode 100644 index e396d0a..0000000 --- a/dotfiles/.config/eww/scripts/powermenu +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -bash $HOME/.config/rofi/powermenu.sh diff --git a/dotfiles/.config/eww/scripts/sys_info b/dotfiles/.config/eww/scripts/sys_info deleted file mode 100755 index 8fd8bba..0000000 --- a/dotfiles/.config/eww/scripts/sys_info +++ /dev/null @@ -1,161 +0,0 @@ -#!/bin/bash - - -## Get Brightness -get_blight() { - echo "$(brightnessctl get)" -} - -## Set Brightness -set_blight() { - brightnessctl set $1 -} -## Get Battery -get_battery() { - BAT=$(ls /sys/class/power_supply | grep BAT | head -n 1) - echo "$(cat /sys/class/power_supply/${BAT}/capacity)%" -} - -## Get Battery Icon -get_baticon() { - BAT=$(ls /sys/class/power_supply | grep BAT | head -n 1) - BATSTATUS="$(cat /sys/class/power_supply/${BAT}/status)" - BATVAL="$(cat /sys/class/power_supply/${BAT}/capacity)" - - if [[ "$BATSTATUS" == "Discharging" ]];then - if [ "$BATVAL" -gt 90 ];then - echo "" - elif [ "$BATVAL" -gt 80 ];then - echo "" - elif [ "$BATVAL" -gt 70 ];then - echo "" - elif [ "$BATVAL" -gt 60 ];then - echo "" - elif [ "$BATVAL" -gt 50 ];then - echo "" - elif [ "$BATVAL" -gt 40 ];then - echo "" - elif [ "$BATVAL" -gt 30 ];then - echo "" - elif [ "$BATVAL" -gt 20 ];then - echo "" - elif [ "$BATVAL" -gt 10 ];then - echo "" - elif [ "$BATVAL" -gt 0 ];then - echo "" - fi - else - echo "" - fi -} - -## Get Volume -get_vol() { - pactl list sinks | grep '^[[:space:]]Volume:' | \ - head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,' -} - -## Set Volume -set_vol() { - pactl set-sink-volume @DEFAULT_SINK@ $1% -} - -## Toggle Volume -toggle_vol() { - pactl set-sink-mute @DEFAULT_SINK@ toggle -} - -## Get Volume Icon -get_volicon() { - MUTE="$(pactl get-sink-mute @DEFAULT_SINK@)" - if [[ "$MUTE" == "Mute: no" ]]; then - echo "墳" - else - echo "婢" - fi -} - -## Get Mic Icon -get_micicon() { - MUTE="$(pactl get-source-mute @DEFAULT_SOURCE@)" - if [[ "$MUTE" == "Mute: no" ]]; then - echo "" - else - echo "" - fi -} - -## Toggle Mic -toggle_mic() { - pactl set-source-mute @DEFAULT_SOURCE@ toggle -} - -## Get Mic -get_mic() { - pactl get-source-volume @DEFAULT_SOURCE@ | grep -e '%' | sed 's/ //g' | cut -d "/" -f 2 | sed 's/%//' -} - -## Set Mic -set_mic() { - pactl set-source-volume @DEFAULT_SOURCE@ $1% -} - -## Get Net -get_net() { - if [ -z "$(nmcli connection show --active)" ];then - echo "睊 Offline" - else - echo "直 $(nmcli -t -f NAME connection show --active)" - fi -} - -## Toggle Net -toggle_net() { - if [ -z "$(nmcli connection show --active)" ];then - nmcli radio wifi on - else - nmcli radio wifi off - fi -} - - -## System Tray -sys_tray() { - network=$(get_net) - echo ${network::1} "" $(get_baticon) $(get_volicon) -} - - -## MAIN -if [[ "$1" == "--get-blight" ]]; then - get_blight -elif [[ "$1" == "--set-blight" ]]; then - set_blight "$2" -elif [[ "$1" == "--bat" ]]; then - get_battery -elif [[ "$1" == "--baticon" ]]; then - get_baticon -elif [[ "$1" == "--set-vol" ]]; then - set_vol "$2" -elif [[ "$1" == "--get-vol" ]]; then - get_vol -elif [[ "$1" == "--toggle-vol" ]]; then - toggle_vol -elif [[ "$1" == "--get-volicon" ]]; then - get_volicon -elif [[ "$1" == "--get-micicon" ]]; then - get_micicon -elif [[ "$1" == "--toggle-mic" ]]; then - toggle_mic -elif [[ "$1" == "--get-mic" ]]; then - get_mic -elif [[ "$1" == "--set-mic" ]]; then - set_mic "$2" -elif [[ "$1" == "--get-net" ]]; then - get_net -elif [[ "$1" == "--toggle-net" ]]; then - toggle_net -elif [[ "$1" == "--sys-tray" ]]; then - sys_tray -fi - diff --git a/dotfiles/.config/eww/scripts/sys_info (old) b/dotfiles/.config/eww/scripts/sys_info (old) deleted file mode 100755 index 8fd8bba..0000000 --- a/dotfiles/.config/eww/scripts/sys_info (old) +++ /dev/null @@ -1,161 +0,0 @@ -#!/bin/bash - - -## Get Brightness -get_blight() { - echo "$(brightnessctl get)" -} - -## Set Brightness -set_blight() { - brightnessctl set $1 -} -## Get Battery -get_battery() { - BAT=$(ls /sys/class/power_supply | grep BAT | head -n 1) - echo "$(cat /sys/class/power_supply/${BAT}/capacity)%" -} - -## Get Battery Icon -get_baticon() { - BAT=$(ls /sys/class/power_supply | grep BAT | head -n 1) - BATSTATUS="$(cat /sys/class/power_supply/${BAT}/status)" - BATVAL="$(cat /sys/class/power_supply/${BAT}/capacity)" - - if [[ "$BATSTATUS" == "Discharging" ]];then - if [ "$BATVAL" -gt 90 ];then - echo "" - elif [ "$BATVAL" -gt 80 ];then - echo "" - elif [ "$BATVAL" -gt 70 ];then - echo "" - elif [ "$BATVAL" -gt 60 ];then - echo "" - elif [ "$BATVAL" -gt 50 ];then - echo "" - elif [ "$BATVAL" -gt 40 ];then - echo "" - elif [ "$BATVAL" -gt 30 ];then - echo "" - elif [ "$BATVAL" -gt 20 ];then - echo "" - elif [ "$BATVAL" -gt 10 ];then - echo "" - elif [ "$BATVAL" -gt 0 ];then - echo "" - fi - else - echo "" - fi -} - -## Get Volume -get_vol() { - pactl list sinks | grep '^[[:space:]]Volume:' | \ - head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,' -} - -## Set Volume -set_vol() { - pactl set-sink-volume @DEFAULT_SINK@ $1% -} - -## Toggle Volume -toggle_vol() { - pactl set-sink-mute @DEFAULT_SINK@ toggle -} - -## Get Volume Icon -get_volicon() { - MUTE="$(pactl get-sink-mute @DEFAULT_SINK@)" - if [[ "$MUTE" == "Mute: no" ]]; then - echo "墳" - else - echo "婢" - fi -} - -## Get Mic Icon -get_micicon() { - MUTE="$(pactl get-source-mute @DEFAULT_SOURCE@)" - if [[ "$MUTE" == "Mute: no" ]]; then - echo "" - else - echo "" - fi -} - -## Toggle Mic -toggle_mic() { - pactl set-source-mute @DEFAULT_SOURCE@ toggle -} - -## Get Mic -get_mic() { - pactl get-source-volume @DEFAULT_SOURCE@ | grep -e '%' | sed 's/ //g' | cut -d "/" -f 2 | sed 's/%//' -} - -## Set Mic -set_mic() { - pactl set-source-volume @DEFAULT_SOURCE@ $1% -} - -## Get Net -get_net() { - if [ -z "$(nmcli connection show --active)" ];then - echo "睊 Offline" - else - echo "直 $(nmcli -t -f NAME connection show --active)" - fi -} - -## Toggle Net -toggle_net() { - if [ -z "$(nmcli connection show --active)" ];then - nmcli radio wifi on - else - nmcli radio wifi off - fi -} - - -## System Tray -sys_tray() { - network=$(get_net) - echo ${network::1} "" $(get_baticon) $(get_volicon) -} - - -## MAIN -if [[ "$1" == "--get-blight" ]]; then - get_blight -elif [[ "$1" == "--set-blight" ]]; then - set_blight "$2" -elif [[ "$1" == "--bat" ]]; then - get_battery -elif [[ "$1" == "--baticon" ]]; then - get_baticon -elif [[ "$1" == "--set-vol" ]]; then - set_vol "$2" -elif [[ "$1" == "--get-vol" ]]; then - get_vol -elif [[ "$1" == "--toggle-vol" ]]; then - toggle_vol -elif [[ "$1" == "--get-volicon" ]]; then - get_volicon -elif [[ "$1" == "--get-micicon" ]]; then - get_micicon -elif [[ "$1" == "--toggle-mic" ]]; then - toggle_mic -elif [[ "$1" == "--get-mic" ]]; then - get_mic -elif [[ "$1" == "--set-mic" ]]; then - set_mic "$2" -elif [[ "$1" == "--get-net" ]]; then - get_net -elif [[ "$1" == "--toggle-net" ]]; then - toggle_net -elif [[ "$1" == "--sys-tray" ]]; then - sys_tray -fi - diff --git a/dotfiles/.config/eww/scripts/workspaces.py b/dotfiles/.config/eww/scripts/workspaces.py deleted file mode 100755 index 4fec42a..0000000 --- a/dotfiles/.config/eww/scripts/workspaces.py +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/python - -import subprocess -import os -import socket - -icons = ["","","","","","","","","",""] - -def update_workspace(active_workspace): - icons_index = [0,1,2,3,4] - - icons_index[active_workspace - 1] = icons_index[active_workspace - 1] + 5 - prompt = f"(box (label :text \"{icons[icons_index[0]]} {icons[icons_index[1]]} {icons[icons_index[2]]} {icons[icons_index[3]]} {icons[icons_index[4]]}\" ))" - - subprocess.run(f"echo '{prompt}'", - shell=True) - -sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) - -server_address = f'/tmp/hypr/{os.environ["HYPRLAND_INSTANCE_SIGNATURE"]}/.socket2.sock' - -sock.connect(server_address) - -while True: - new_event = sock.recv(4096).decode("utf-8") - - for item in new_event.split("\n"): - - if "workspace>>" == item[0:11]: - workspaces_num = item[-1] - - if int(workspaces_num) > 5: - workspaces_num = 1 - subprocess.run("hyprctl dispatch workspace 1", shell=True) - - update_workspace(int(workspaces_num)) diff --git a/dotfiles/.config/foot/foot.ini b/dotfiles/.config/foot/foot.ini deleted file mode 100755 index bccac7c..0000000 --- a/dotfiles/.config/foot/foot.ini +++ /dev/null @@ -1,186 +0,0 @@ -# -*- conf -*- - -# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd) -# term=foot (or xterm-256color if built with -Dterminfo=disabled) -# login-shell=no - -# app-id=foot -# title=foot -# locked-title=no - -font=Jetbrains Mono Nerd Font:size=6 -# font-bold= -# font-italic= -# font-bold-italic= -# line-height= -# letter-spacing=0 -# horizontal-letter-offset=0 -# vertical-letter-offset=0 -# underline-offset= -# box-drawings-uses-font-glyphs=no -# dpi-aware=auto - -# initial-window-size-pixels=700x500 # Or, -# initial-window-size-chars= -# initial-window-mode=windowed -# pad=2x2 # optionally append 'center' -# resize-delay-ms=100 - -notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body} - -# bold-text-in-bright=no -# word-delimiters=,│`|:"'()[]{}<> -# selection-target=primary -# workers= - -[bell] -# urgent=no -# notify=no -# command= -# command-focused=no - -[scrollback] -# lines=1000 -# multiplier=3.0 -# indicator-position=relative -# indicator-format= - -[url] -# launch=xdg-open ${url} -# label-letters=sadfjklewcmpgh -# osc8-underline=url-mode -# protocols=http, https, ftp, ftps, file, gemini, gopher -# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[] - -[cursor] -style=beam -# color= -blink=yes -# beam-thickness=1.5 -# underline-thickness= - -[mouse] -# hide-when-typing=no -# alternate-scroll-mode=yes - -[colors] -alpha=1.0 - -foreground = d8dee9 -background = 0c0c0c - -regular0 = 3b4252 -regular1 = bf616a -regular2 = a3be8c -regular3 = ebcb8b -regular4 = 81a1c1 -regular5 = b48ead -regular6 = 88c0d0 -regular7 = e5e9f0 - -bright0 = 4c566a -bright1 = bf616a -bright2 = a3be8c -bright3 = ebcb8b -bright4 = 81a1c1 -bright5 = b48ead -bright6 = 8fbcbb -bright7 = eceff4 - -dim0 = 373e4d -dim1 = 94545d -dim2 = 809575 -dim3 = b29e75 -dim4 = 68809a -dim5 = 8c738c -dim6 = 6d96a5 -dim7 = aeb3bb - - -## Misc colors -# selection-foreground= -# selection-background= -# jump-labels= -# urls= -# scrollback-indicator= - -[csd] -# hide-when-maximized=yes -# preferred=server -size=0 -# font= -# color= -# hide-when-typing=no -# border-width=0 -# border-color= -# button-width=26 -# button-color= -# button-minimize-color= -# button-maximize-color= -# button-close-color= - -[key-bindings] -# scrollback-up-page=Shift+Page_Up -# scrollback-up-half-page=none -# scrollback-up-line=none -# scrollback-down-page=Shift+Page_Down -# scrollback-down-half-page=none -# scrollback-down-line=none -# clipboard-copy=Control+Shift+c XF86Copy -# clipboard-paste=Control+Shift+v XF86Paste -# primary-paste=Shift+Insert -# search-start=Control+Shift+r -# font-increase=Control+plus Control+equal Control+KP_Add -# font-decrease=Control+minus Control+KP_Subtract -# font-reset=Control+0 Control+KP_0 -# spawn-terminal=Control+Shift+n -# minimize=none -# maximize=none -# fullscreen=none -# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none -# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none -# pipe-selected=[xargs -r firefox] none -# show-urls-launch=Control+Shift+u -# show-urls-copy=none -# show-urls-persistent=none -# noop=none - -[search-bindings] -# cancel=Control+g Control+c Escape -# commit=Return -# find-prev=Control+r -# find-next=Control+s -# cursor-left=Left Control+b -# cursor-left-word=Control+Left Mod1+b -# cursor-right=Right Control+f -# cursor-right-word=Control+Right Mod1+f -# cursor-home=Home Control+a -# cursor-end=End Control+e -# delete-prev=BackSpace -# delete-prev-word=Mod1+BackSpace Control+BackSpace -# delete-next=Delete -# delete-next-word=Mod1+d Control+Delete -# extend-to-word-boundary=Control+w -# extend-to-next-whitespace=Control+Shift+w -# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste -# primary-paste=Shift+Insert - -[url-bindings] -# cancel=Control+g Control+c Control+d Escape -# toggle-url-visible=t - -[text-bindings] -# \x03=Mod4+c # Map Super+c -> Ctrl+c - -[mouse-bindings] -# selection-override-modifiers=Shift -# primary-paste=BTN_MIDDLE -# select-begin=BTN_LEFT -# select-begin-block=Control+BTN_LEFT -# select-extend=BTN_RIGHT -# select-extend-character-wise=Control+BTN_RIGHT -# select-word=BTN_LEFT-2 -# select-word-whitespace=Control+BTN_LEFT-2 -# select-row=BTN_LEFT-3 - -# vim: ft=dosini diff --git a/dotfiles/.config/helix/config.toml b/dotfiles/.config/helix/config.toml deleted file mode 100644 index fedb3fa..0000000 --- a/dotfiles/.config/helix/config.toml +++ /dev/null @@ -1,32 +0,0 @@ -theme = "mytheme" - -[editor] -scroll-lines = 1 -color-modes = true -bufferline = "multiple" - - -[editor.cursor-shape] -insert = "bar" -normal = "block" -select = "underline" - - -[editor.file-picker] -hidden = false - - -[editor.statusline] -left = ["mode", "spinner"] -center = ["file-name"] -right = ["diagnostics", "selections", "position", "file-type"] -separator = "│" - - - -[keys.normal] -C-s = ":w" -C-q = ":q" -A-left = ":bp" -A-right = ":bn" -A-q = ":bc" \ No newline at end of file diff --git a/dotfiles/.config/helix/themes/mytheme.toml b/dotfiles/.config/helix/themes/mytheme.toml deleted file mode 100644 index eded57e..0000000 --- a/dotfiles/.config/helix/themes/mytheme.toml +++ /dev/null @@ -1,141 +0,0 @@ - -# Syntax highlighting -# ------------------- -"type" = "yellow" -"type.enum.variant" = "peach" - -"constructor" = "sapphire" - -"constant" = "peach" -"constant.character" = "teal" -"constant.character.escape" = "pink" - -"string" = "green" -"string.regexp" = "peach" -"string.special" = "pink" - -"comment" = { fg = "overlay1", modifiers = ["italic"] } - -"variable" = "text" -"variable.parameter" = { fg = "maroon", modifiers = ["italic"] } -"variable.builtin" = "red" -"variable.other.member" = "teal" - -"label" = "sapphire" # used for lifetimes - -"punctuation" = "overlay2" - -"keyword" = "mauve" -"keyword.control.conditional" = { fg = "mauve", modifiers = ["italic"] } - -"operator" = "sky" - -"function" = "blue" -"function.builtin" = "peach" -"function.macro" = "teal" - -"tag" = "mauve" - -"namespace" = { fg = "blue", modifiers = ["italic"] } - -"special" = "blue" # fuzzy highlight - -"markup.heading.marker" = { fg = "peach", modifiers = ["bold"] } -"markup.heading.1" = "lavender" -"markup.heading.2" = "mauve" -"markup.heading.3" = "green" -"markup.heading.4" = "yellow" -"markup.heading.5" = "pink" -"markup.heading.6" = "teal" -"markup.list" = "mauve" -"markup.bold" = { modifiers = ["bold"] } -"markup.italic" = { modifiers = ["italic"] } -"markup.link.url" = { fg = "peach", modifiers = ["underlined"] } -"markup.link.text" = "blue" -"markup.raw" = "flamingo" - -"diff.plus" = "green" -"diff.minus" = "red" -"diff.delta" = "yellow" - -# User Interface -# -------------- -"ui.background" = { fg = "text", bg = "transparent" } - -"ui.linenr" = { fg = "surface1" } -"ui.linenr.selected" = { fg = "lavender" } - -"ui.statusline" = { fg = "overlay1", bg = "surface0" } -"ui.statusline.inactive" = { fg = "overlay1", bg = "mantle" } -"ui.statusline.normal" = { fg = "surface0", bg = "lavender", modifiers = ["bold"] } -"ui.statusline.insert" = { fg = "surface0", bg = "green", modifiers = ["bold"] } -"ui.statusline.select" = { fg = "surface0", bg = "flamingo", modifiers = ["bold"] } - -"ui.bufferline.active" = { fg = "text", bg = "base", modifiers = ["bold"] } -"ui.bufferline" = { fg = "overlay1", bg = "mantle" } - -"ui.popup" = { fg = "text", bg = "surface0" } -"ui.window" = { fg = "crust" } -"ui.help" = { fg = "overlay2", bg = "surface0" } - -"ui.text" = "text" -"ui.text.focus" = { fg = "text", bg = "surface0", modifiers = ["bold"] } - -"ui.virtual" = "overlay0" -"ui.virtual.ruler" = { bg = "surface0" } -"ui.virtual.indent-guide" = "surface0" - -"ui.selection" = { bg = "surface1" } - -"ui.cursor" = { fg = "base", bg = "secondary_cursor" } -"ui.cursor.primary" = { fg = "base", bg = "rosewater" } -"ui.cursor.match" = { fg = "peach", modifiers = ["bold"] } - -"ui.cursorline.primary" = { bg = "cursorline" } - -"ui.highlight" = { bg = "surface1" } - -"ui.menu" = { fg = "overlay2", bg = "surface0" } -"ui.menu.selected" = { fg = "text", bg = "surface1", modifiers = ["bold"] } - -diagnostic = { modifiers = ["underlined"] } - -error = "red" -warning = "yellow" -info = "sky" -hint = "teal" - -[palette] -# catppuccin palette colors -rosewater = "#f5e0dc" -flamingo = "#f2cdcd" -pink = "#f5c2e7" -mauve = "#cba6f7" -red = "#f38ba8" -maroon = "#eba0ac" -peach = "#fab387" -yellow = "#f9e2af" -green = "#a6e3a1" -teal = "#94e2d5" -sky = "#89dceb" -sapphire = "#74c7ec" -blue = "#89b4fa" -lavender = "#b4befe" - -text = "#cdd6f4" -subtext1 = "#bac2de" -subtext0 = "#a6adc8" -overlay2 = "#9399b2" -overlay1 = "#7f849c" -overlay0 = "#6c7086" -surface2 = "#585b70" -surface1 = "#45475a" -surface0 = "#313244" - -base = "#1e1e2e" -mantle = "#181825" -crust = "#11111b" - -# derived colors by blending existing palette colors -cursorline = "#2a2b3c" -secondary_cursor = "#b5a6a8" \ No newline at end of file diff --git a/dotfiles/.config/hypr/hyprland.conf b/dotfiles/.config/hypr/hyprland.conf index 085cec1..c7ea374 100644 --- a/dotfiles/.config/hypr/hyprland.conf +++ b/dotfiles/.config/hypr/hyprland.conf @@ -22,7 +22,8 @@ monitor=HDMI-1,1920x1080,3440x0,1 # Set programs that you use $terminal = alacritty $fileManager = dolphin -$menu = rofi -show drun -show-icons -theme "Arc-Dark" -font "hack 20" -show combi +# $menu = rofi -show drun -show-icons -theme "Arc-Dark" -font "hack 20" -show combi +$menu = ulauncher # Some default env vars. env = XCURSOR_SIZE,32 @@ -39,7 +40,7 @@ input { follow_mouse = 1 touchpad { - natural_scroll = false + natural_scroll = true } sensitivity = 0 # -1.0 - 1.0, 0 means no modification. @@ -100,10 +101,10 @@ dwindle { preserve_split = true # you probably want this } -master { - # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more - new_is_master = true -} +# master { +# # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more +# new_is_master = true +# } gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more @@ -215,14 +216,39 @@ windowrulev2 = workspace 6, class:(Gimp|gimp|Inkscape) # Workspaces associations workspace = 1, monitor:DP-1 -workspace = 2, monitor:DP-1 -workspace = 3, monitor:HDMI-1 -workspace = 4, monitor:HDMI-1 +workspace = 2, monitor:HDMI-A-1 +workspace = 3, monitor:DP-1 +workspace = 4, monitor:HDMI-A-1 workspace = 5, monitor:DP-1 -workspace = 6, monitor:DP-1 -workspace = 7, monitor:DP-1 -workspace = 8, monitor:HDMI-1 -workspace = 9, monitor:HDMI-1 +workspace = 6, monitor:HDMI-A-1 +workspace = 7, monitor:HDMI-A-1 +workspace = 8, monitor:HDMI-A-1 +workspace = 9, monitor:HDMI-A-1 exec-once=bash ~/.config/hypr/start.sh +exec-once=ulauncher --hide-window +########## monitor layout ########## + +# monitor=DP-1,3440x1440@60,0x0,1 +# monitor=HDMI-A-1,1920x1080@60,0x0,1 + + + +########## window rules ########## + +#windowrule=float,rofi +# workspace 1 output DP-1 +# workspace 2 output HDMI-A-1 +# workspace 3 output DP-1 +# workspace 4 output HDMI-A-1 +# workspace 5 output DP-1 +# workspace 6 output HDMI-A-1 +# workspace 7 output HDMI-A-1 +# workspace 8 output HDMI-A-1 +# workspace 9 output HDMI-A-1 +# + +# for flame shot +env = XDG_CURRENT_DESKTOP,sway +env = bitdepth,10 diff --git a/dotfiles/.config/hyprland.conf b/dotfiles/.config/hyprland.conf deleted file mode 100644 index f6c9a63..0000000 --- a/dotfiles/.config/hyprland.conf +++ /dev/null @@ -1,98 +0,0 @@ -source=~/.config/hypr/keybinds.conf - - -########## on startup ########## - -exec-once=gsettings set org.gnome.desktop.interface cursor-theme Qogir-cursors -exec-once=gsettings set org.gnome.desktop.interface gtk-theme Kripton -exec-once=gsettings set org.gnome.desktop.wm.preferences theme Kripton - -exec-once=swaybg -i $HOME/.config/background -exec-once=dunst -exec-once=bash $HOME/.config/eww/scripts/launch_bar -exec-once=bash $HOME/.config/eww/scripts/launch_dashboard -exec-once=swayidle -w timeout 300 'swaylock' before-sleep 'swaylock -f' - - - - -######### system config ########## - -input { - kb_layout= it - kb_variant= - kb_model= - kb_options= - kb_rules= - - follow_mouse=1 - numlock_by_default=1 - - touchpad { - natural_scroll=yes - } -} - -gestures { - workspace_swipe = true - #workspace_swipe_fingers = 3 - #workspace_swipe_distance = 300 - workspace_swipe_invert = true - workspace_swipe_min_speed_to_force = 10 - workspace_swipe_cancel_ratio = 0.85 -} - - -general { - sensitivity=1.2 - - gaps_in=2 - gaps_out=3 - border_size=3 - col.active_border=0xff7c94bf - col.inactive_border=0x00ffffff -} - -dwindle { - pseudotile=0 # enable pseudotiling on dwindle - force_split=2 # always on the right/bottom -} - -misc { - no_vfr=1 -} - - - - -########## window decorations and styling ########## - -decoration { - rounding=6 - multisample_edges=1 # enable antialiasing for rounded corners - - active_opacity=1 - inactive_opacity=1 -} - -animations { - enabled=1 - - animation=windows,1,2,default - animation=border,1,10,default - animation=fade,0,5,default - animation=workspaces,1,4,default -} - - - - -########## monitor layout ########## - -monitor=eDP-1,2240x1400@60,0x0,1 - - - -########## window rules ########## - -#windowrule=float,rofi diff --git a/dotfiles/.config/i3/config b/dotfiles/.config/i3/config deleted file mode 100644 index 08c20da..0000000 --- a/dotfiles/.config/i3/config +++ /dev/null @@ -1,456 +0,0 @@ -# This file has been auto-generated by i3-config-wizard(1). -# It will not be overwritten, so edit it as you like. -# -# Should you change your keyboard layout some time, delete -# this file and re-run i3-config-wizard(1). -# - -# i3 config file (v4) -# -# Please see https://i3wm.org/docs/userguide.html for a complete reference! -# Set the modifier to use for the win key (Mod1 == Alt) -set $mod Mod1 - -# Font for window titles. Will also be used by the bar unless a different font -# is used in the bar {} block below. -font pango:FiraCode Nerd Font 14 - -# This font is widely installed, provides lots of unicode glyphs, right-to-left -# text rendering and scalability on retina/hidpi displays (thanks to pango). -#font pango:DejaVu Sans Mono 8 - -# Start XDG autostart .desktop files using dex. See also -# https://wiki.archlinux.org/index.php/XDG_Autostart -exec --no-startup-id dex --autostart --environment i3 - -# The combination of xss-lock, nm-applet and pactl is a popular choice, so -# they are included here as an example. Modify as you see fit. - -# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the -# screen before suspend. Use loginctl lock-session to lock your screen. -exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork - -# NetworkManager is the most popular way to manage wireless networks on Linux, -# and nm-applet is a desktop environment-independent system tray GUI for it. -exec --no-startup-id nm-applet - - -exec --no-startup-id setxkbmap en - -# Use pactl to adjust volume in PulseAudio. -set $refresh_i3status killall -SIGUSR1 i3status -bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status -bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status -bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status -bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status - -# Use Mouse+$mod to drag floating windows to their wanted position -floating_modifier $mod - -# move tiling windows via drag & drop by left-clicking into the title bar, -# or left-clicking anywhere into the window while holding the floating modifier. -tiling_drag modifier titlebar - -# start a terminal -bindsym $mod+Return exec alacritty - -# kill focused window -bindsym $mod+Shift+q kill - -# start dmenu (a program launcher) -# bindsym $mod+d exec --no-startup-id dmenu_run -exec --no-startup-id feh --bg-fill /home/$USER/Pictures/Wallpaper.jpg -exec_always xset -dpms -exec_always compton -f -bindsym $mod+space exec --no-startup-id rofi -show run -# -theme onedark -lines 5 -opacity "60" - -# automatically execute ~/screens.sh when i3 starts -exec --no-startup-id ~/screens.sh - - -# A more modern dmenu replacement is rofi: -# bindcode $mod+40 exec "rofi -modi drun,run -show drun" -# There also is i3-dmenu-desktop which only displays applications shipping a -# .desktop file. It is a wrapper around dmenu, so you need that installed. -# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop - -# change focus -bindsym $mod+h focus left -bindsym $mod+j focus down -bindsym $mod+k focus up -bindsym $mod+l focus right - -# alternatively, you can use the cursor keys: -bindsym $mod+Left focus left -bindsym $mod+Down focus down -bindsym $mod+Up focus up -bindsym $mod+Right focus right - -# move focused window -bindsym $mod+Shift+h move left -bindsym $mod+Shift+j move down -bindsym $mod+Shift+k move up -bindsym $mod+Shift+l move right - -# alternatively, you can use the cursor keys: -bindsym $mod+Shift+Left move left -bindsym $mod+Shift+Down move down -bindsym $mod+Shift+Up move up -bindsym $mod+Shift+Right move right - -# split in horizontal orientation -# bindsym $mod+h split h - -# split in vertical orientation -bindsym $mod+v split v - -# enter fullscreen mode for the focused container -bindsym $mod+f fullscreen toggle - -# change container layout (stacked, tabbed, toggle split) -bindsym $mod+s layout stacking -bindsym $mod+w layout tabbed -bindsym $mod+e layout toggle split - -# toggle tiling / floating -bindsym $mod+Shift+space floating toggle - -# change focus between tiling / floating windows -# bindsym $mod+space focus mode_toggle - -# focus the parent container -bindsym $mod+a focus parent - -# focus the child container -#bindsym $mod+d focus child - -# Personnal configs : - -assign [class="Navigator"] $ws2 -assign [class="firefox"] $ws2 -assign [class="firefoxdeveloperedition"] $ws2 -assign [class="firefox-esr"] $ws2 -assign [class="firefox-nightly"] $ws2 -assign [class="Brave-browser"] $ws2 -assign [class="Brave-browser-nightly"] $ws2 -assign [class="Chromium"] $ws2 -assign [class="Chromium-browser"] $ws2 -assign [class="Google-chrome"] $ws2 -assign [class="Google-chrome-stable"] $ws2 -assign [class="Google-chrome-beta"] $ws2 -assign [class="Google-chrome-unstable"] $ws2 -assign [class="Vivaldi-stable"] $ws2 - -assign [class="Alacritty"] $ws1 -assign [class="Tilix"] $ws1 -assign [class="Code"] $ws3 -assign [class="code"] $ws3 -assign [class="discord"] $ws4 -assign [class="Spotify"] $ws4 -assign [class="Steam"] $ws5 -assign [class="Steam-native"] $ws5 -assign [class="Steam-native-runtime"] $ws5 -assign [class="Steam-runtime"] $ws5 -assign [class="Steam Guard - Computer Authorization Required"] $ws5 -assign [class="Steam - News"] $ws5 -assign [class="Steam - Friends"] $ws5 -assign [class="Steam - Library"] $ws5 -assign [class="steam"] $ws5 -assign [class="lutris"] $ws5 -assign [class="Lutris"] $ws5 -assign [class="minecraft-launcher"] $ws5 -assign [class="Gimp"] $ws6 -assign [class="gimp"] $ws6 -assign [class="Inkscape"] $ws6 - -# Define names for default workspaces for which we configure key bindings later> -# We use variables to avoid repeating the names in multiple places. -# https://fontawesome.com/v5/cheatsheet?ref=itsfoss.com -set $ws1 "1:  Terminal" -set $ws2 "2:  Firefox" -set $ws3 "3:  Code" -set $ws4 "4:  Music/Discord" -set $ws5 "5:  Gaming" -set $ws6 "6" -set $ws7 "7" -set $ws8 "8" -set $ws9 "9" -set $ws10 "10" - -workspace 2 output HDMI-0 -workspace 1 output DP-1 -workspace 3 output DP-1 -workspace 4 output DP-1 -workspace 5 output DP-1 -workspace 6 output HDMI-0 -workspace 7 output HDMI-0 -workspace 8 output HDMI-0 -workspace 9 output HDMI-0 - -# switch to workspace -bindsym $mod+1 workspace number $ws1 -bindsym $mod+2 workspace number $ws2 -bindsym $mod+3 workspace number $ws3 -bindsym $mod+4 workspace number $ws4 -bindsym $mod+5 workspace number $ws5 -bindsym $mod+6 workspace number $ws6 -bindsym $mod+7 workspace number $ws7 -bindsym $mod+8 workspace number $ws8 -bindsym $mod+9 workspace number $ws9 -bindsym $mod+0 workspace number $ws10 - - - -# move focused container to workspace -bindsym $mod+Shift+1 move container to workspace number $ws1 -bindsym $mod+Shift+2 move container to workspace number $ws2 -bindsym $mod+Shift+3 move container to workspace number $ws3 -bindsym $mod+Shift+4 move container to workspace number $ws4 -bindsym $mod+Shift+5 move container to workspace number $ws5 -bindsym $mod+Shift+6 move container to workspace number $ws6 -bindsym $mod+Shift+7 move container to workspace number $ws7 -bindsym $mod+Shift+8 move container to workspace number $ws8 -bindsym $mod+Shift+9 move container to workspace number $ws9 -bindsym $mod+Shift+0 move container to workspace number $ws10 - -# reload the configuration file -bindsym $mod+Shift+c reload -# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) -bindsym $mod+Shift+r restart -# exit i3 (logs you out of your X session) -bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" - -# resize window (you can also use the mouse for that) -mode "resize" { - # These bindings trigger as soon as you enter the resize mode - - # Pressing left will shrink the window’s width. - # Pressing right will grow the window’s width. - # Pressing up will shrink the window’s height. - # Pressing down will grow the window’s height. - bindsym j resize shrink width 10 px or 10 ppt - bindsym k resize grow height 10 px or 10 ppt - bindsym l resize shrink height 10 px or 10 ppt - bindsym semicolon resize grow width 10 px or 10 ppt - - # same bindings, but for the arrow keys - bindsym Left resize shrink width 10 px or 10 ppt - bindsym Down resize grow height 10 px or 10 ppt - bindsym Up resize shrink height 10 px or 10 ppt - bindsym Right resize grow width 10 px or 10 ppt - - # back to normal: Enter or Escape or $mod+r - bindsym Return mode "default" - bindsym Escape mode "default" - bindsym $mod+r mode "default" -} - -bindsym $mod+r mode "resize" - - -set $rosewater #f5e0dc -set $flamingo #f2cdcd -set $pink #f5c2e7 -set $mauve #cba6f7 -set $red #f38ba8 -set $maroon #eba0ac -set $peach #fab387 -set $yellow #f9e2af -set $green #a6e3a1 -set $teal #94e2d5 -set $sky #89dceb -set $sapphire #74c7ec -set $blue #89b4fa -set $lavender #b4befe -set $text #cdd6f4 -set $subtext1 #bac2de -set $subtext0 #a6adc8 -set $overlay2 #9399b2 -set $overlay1 #7f849c -set $overlay0 #6c7086 -set $surface2 #585b70 -set $surface1 #45475a -set $surface0 #313244 -set $base #1e1e2e -set $mantle #181825 -set $crust #11111b - -# target title bg text indicator border -client.focused $lavender $base $text $rosewater $lavender -client.focused_inactive $overlay0 $base $text $rosewater $overlay0 -client.unfocused $overlay0 $base $text $rosewater $overlay0 -client.urgent $peach $base $peach $overlay0 $peach -client.placeholder $overlay0 $base $text $overlay0 $overlay0 -client.background $base - - - -# LOCK -bindsym $mod+Shift+X exec sh /home/$USER/.config/i3/lock.sh - - - - -hide_edge_borders both -exec_always --no-startup-id $HOME/.config/i3/polyscript.sh - -# bar { -# # position top -# # tray_output primary -# # status_command i3status --config /home/$USER/.config/i3/i3status.conf -# # #status_command i3blocks -c /home/$USER/.config/i3blocks/i3blocks.conf -# # font pango: FiraCode Nerd Font 11 -# # colors { -# # background $base -# # statusline $text -# # focused_statusline $text -# # focused_separator $base -# # focused_workspace $base $base $green -# # active_workspace $base $base $blue -# # inactive_workspace $base $base $surface1 -# # urgent_workspace $base $base $surface1 -# # binding_mode $base $base $surface1 -# # } -# # i3bar_command i3bar --transparency -# # separator_symbol ":|:" -# # tray_output none -# } - - -workspace_auto_back_and_forth true -focus_follows_mouse false - -exec_always xrandr --output HDMI-0 --mode 3440x1440 -exec --no-startup-id nm-applet --sm-disable -# exec_always picom -f -exec_always conky - - -# default gaps -gaps inner 15 -gaps outer 5 - -# gaps -set $mode_gaps Gaps: (o)uter, (i)nner, (h)orizontal, (v)ertical, (t)op, (r)ight, (b)ottom, (l)eft -set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global) -set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global) -set $mode_gaps_horiz Horizontal Gaps: +|-|0 (local), Shift + +|-|0 (global) -set $mode_gaps_verti Vertical Gaps: +|-|0 (local), Shift + +|-|0 (global) -set $mode_gaps_top Top Gaps: +|-|0 (local), Shift + +|-|0 (global) -set $mode_gaps_right Right Gaps: +|-|0 (local), Shift + +|-|0 (global) -set $mode_gaps_bottom Bottom Gaps: +|-|0 (local), Shift + +|-|0 (global) -set $mode_gaps_left Left Gaps: +|-|0 (local), Shift + +|-|0 (global) -bindsym $mod+Shift+g mode "$mode_gaps" - -mode "$mode_gaps" { - bindsym o mode "$mode_gaps_outer" - bindsym i mode "$mode_gaps_inner" - bindsym h mode "$mode_gaps_horiz" - bindsym v mode "$mode_gaps_verti" - bindsym t mode "$mode_gaps_top" - bindsym r mode "$mode_gaps_right" - bindsym b mode "$mode_gaps_bottom" - bindsym l mode "$mode_gaps_left" - bindsym Return mode "$mode_gaps" - bindsym Escape mode "default" -} - -mode "$mode_gaps_outer" { - bindsym plus gaps outer current plus 5 - bindsym minus gaps outer current minus 5 - bindsym 0 gaps outer current set 0 - - bindsym Shift+plus gaps outer all plus 5 - bindsym Shift+minus gaps outer all minus 5 - bindsym Shift+0 gaps outer all set 0 - - bindsym Return mode "$mode_gaps" - bindsym Escape mode "default" -} -mode "$mode_gaps_inner" { - bindsym plus gaps inner current plus 5 - bindsym minus gaps inner current minus 5 - bindsym 0 gaps inner current set 0 - - bindsym Shift+plus gaps inner all plus 5 - bindsym Shift+minus gaps inner all minus 5 - bindsym Shift+0 gaps inner all set 0 - - bindsym Return mode "$mode_gaps" - bindsym Escape mode "default" -} -mode "$mode_gaps_horiz" { - bindsym plus gaps horizontal current plus 5 - bindsym minus gaps horizontal current minus 5 - bindsym 0 gaps horizontal current set 0 - - bindsym Shift+plus gaps horizontal all plus 5 - bindsym Shift+minus gaps horizontal all minus 5 - bindsym Shift+0 gaps horizontal all set 0 - - bindsym Return mode "$mode_gaps" - bindsym Escape mode "default" -} -mode "$mode_gaps_verti" { - bindsym plus gaps vertical current plus 5 - bindsym minus gaps vertical current minus 5 - bindsym 0 gaps vertical current set 0 - - bindsym Shift+plus gaps vertical all plus 5 - bindsym Shift+minus gaps vertical all minus 5 - bindsym Shift+0 gaps vertical all set 0 - - bindsym Return mode "$mode_gaps" - bindsym Escape mode "default" -} -mode "$mode_gaps_top" { - bindsym plus gaps top current plus 5 - bindsym minus gaps top current minus 5 - bindsym 0 gaps top current set 0 - - bindsym Shift+plus gaps top all plus 5 - bindsym Shift+minus gaps top all minus 5 - bindsym Shift+0 gaps top all set 0 - - bindsym Return mode "$mode_gaps" - bindsym Escape mode "default" -} -mode "$mode_gaps_right" { - bindsym plus gaps right current plus 5 - bindsym minus gaps right current minus 5 - bindsym 0 gaps right current set 0 - - bindsym Shift+plus gaps right all plus 5 - bindsym Shift+minus gaps right all minus 5 - bindsym Shift+0 gaps right all set 0 - - bindsym Return mode "$mode_gaps" - bindsym Escape mode "default" -} -mode "$mode_gaps_bottom" { - bindsym plus gaps bottom current plus 5 - bindsym minus gaps bottom current minus 5 - bindsym 0 gaps bottom current set 0 - - bindsym Shift+plus gaps bottom all plus 5 - bindsym Shift+minus gaps bottom all minus 5 - bindsym Shift+0 gaps bottom all set 0 - - bindsym Return mode "$mode_gaps" - bindsym Escape mode "default" -} -mode "$mode_gaps_left" { - bindsym plus gaps left current plus 5 - bindsym minus gaps left current minus 5 - bindsym 0 gaps left current set 0 - - bindsym Shift+plus gaps left all plus 5 - bindsym Shift+minus gaps left all minus 5 - bindsym Shift+0 gaps left all set 0 - - bindsym Return mode "$mode_gaps" - bindsym Escape mode "default" -} - - diff --git a/dotfiles/.config/i3/i3status.conf b/dotfiles/.config/i3/i3status.conf deleted file mode 100644 index c355901..0000000 --- a/dotfiles/.config/i3/i3status.conf +++ /dev/null @@ -1,83 +0,0 @@ -# github.com/rafi i3status config - -# i3status configuration file -# see "man i3status" for documentation. - -# It is important that this file is edited as UTF-8. -# The following line should contain a sharp s: -# ß -# If the above line is not correctly displayed, fix your editor first! - -general { - colors = true - color_good = "#BBBBBB" - color_bad = "#CC1616" - color_degraded = "#55858E" - interval = 2 -} -# order += "bar" -order += "volume master" -#order += "load" -order += "cpu_usage" -order += "disk /" -order += "disk /media/media" -#order += "ethernet eth0" -order += "tztime local" -#order += "ipv6" -#order += "run_watch DHCP" -#order += "run_watch VPN" -#order += "wireless wlan0" - -volume master { -# format = " ♪: %volume " - device = "default" - mixer = "Master" - mixer_idx = 0 - # termsyn font - format = "Volume=%volume " -# configure background color to red - -} - -cpu_usage { - format = "CPU Usage %usage " -} - -cpu_temperature 0 { - format = "CPU0 Temp %degrees°" - path = "/sys/devices/platform/coretemp.0/temp2_input" - max_threshold = 95 -} - -cpu_temperature 1 { - format = "CPU1 Temp %degrees°" - path = "/sys/devices/platform/coretemp.0/temp3_input" - max_threshold = 95 -} - -cpu_temperature 2 { - format = "CPU2 Temp %degrees°" - path = "/sys/devices/platform/coretemp.0/temp4_input" - max_threshold = 95 -} - -cpu_temperature 3 { - format = "CPU3 Temp %degrees° " - path = "/sys/devices/platform/coretemp.0/temp5_input" - max_threshold = 95 -} - -disk "/" { - format = "Disk %avail:/ " -} - -disk "/media/media" { - format = "Disk %avail:m " -} - - - -tztime local { - format = "%h-%d %H:%M" -} - diff --git a/dotfiles/.config/i3/lock.sh b/dotfiles/.config/i3/lock.sh deleted file mode 100755 index 382022f..0000000 --- a/dotfiles/.config/i3/lock.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -# original: http://pastebin.com/ZpYghBkQ -# credit: https://www.reddit.com/r/unixporn/comments/3358vu/i3lock_unixpornworthy_lock_screen/cqk4uua -# note: I removed the code that puts the lock icon over the screen. - -scrot /tmp/screen.png -convert /tmp/screen.png -scale 10% -scale 1000% /tmp/screen.png - -# dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Stop -# i3lock -I 10 -d -e -u -n -i /tmp/screen.png - -# -d turns the screen off -i3lock -d -e -u -n -i /tmp/screen.png \ No newline at end of file diff --git a/dotfiles/.config/i3/polyscript.sh b/dotfiles/.config/i3/polyscript.sh deleted file mode 100755 index da6d67b..0000000 --- a/dotfiles/.config/i3/polyscript.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -# Terminate already running bar instances -killall -q polybar -# If all your bars have ipc enabled, you can also use -# polybar-msg cmd quit - -# Launch bar1 and bar2 -echo "---" | tee -a /tmp/polybar1.log /tmp/polybar2.log -polybar example & -# polybar example & - -echo "Bars launched..." diff --git a/dotfiles/.config/i3blocks/arch-update.py b/dotfiles/.config/i3blocks/arch-update.py deleted file mode 100755 index e3c597b..0000000 --- a/dotfiles/.config/i3blocks/arch-update.py +++ /dev/null @@ -1,150 +0,0 @@ -#!/usr/bin/env python3 -import subprocess -from subprocess import check_output -import argparse -import os -import re - - -def create_argparse(): - def _default(name, default='', arg_type=str): - val = default - if name in os.environ: - val = os.environ[name] - return arg_type(val) - - strbool = lambda s: s.lower() in ['t', 'true', '1'] - strlist = lambda s: s.split() - - parser = argparse.ArgumentParser(description='Check for pacman updates') - parser.add_argument( - '-b', - '--base_color', - default = _default('BASE_COLOR', 'green'), - help='base color of the output(default=green)' - ) - parser.add_argument( - '-u', - '--updates_available_color', - default = _default('UPDATE_COLOR', 'yellow'), - help='color of the output, when updates are available(default=yellow)' - ) - parser.add_argument( - '-a', - '--aur', - action = 'store_const', - const = True, - default = _default('AUR', 'False', strbool), - help='Include AUR packages. Attn: Yaourt must be installed' - ) - parser.add_argument( - '-y', - '--aur_yay', - action = 'store_const', - const = True, - default = _default('AUR_YAY', 'False', strbool), - help='Include AUR packages. Attn: Yay must be installed' - ) - parser.add_argument( - '-q', - '--quiet', - action = 'store_const', - const = True, - default = _default('QUIET', 'False', strbool), - help = 'Do not produce output when system is up to date' - ) - parser.add_argument( - '-w', - '--watch', - nargs='*', - default = _default('WATCH', arg_type=strlist), - help='Explicitly watch for specified packages. ' - 'Listed elements are treated as regular expressions for matching.' - ) - return parser.parse_args() - - -def get_updates(): - output = '' - try: - output = check_output(['checkupdates']).decode('utf-8') - except subprocess.CalledProcessError as exc: - # checkupdates exits with 2 and no output if no updates are available. - # we ignore this case and go on - if not (exc.returncode == 2 and not exc.output): - raise exc - if not output: - return [] - - updates = [line.split(' ')[0] - for line in output.split('\n') - if line] - - return updates - - -def get_aur_yaourt_updates(): - output = '' - try: - output = check_output(['yaourt', '-Qua']).decode('utf-8') - except subprocess.CalledProcessError as exc: - # yaourt exits with 1 and no output if no updates are available. - # we ignore this case and go on - if not (exc.returncode == 1 and not exc.output): - raise exc - if not output: - return [] - - aur_updates = [line.split(' ')[0] - for line in output.split('\n') - if line.startswith('aur/')] - - return aur_updates - -def get_aur_yay_updates(): - output = check_output(['yay', '-Qua']).decode('utf-8') - if not output: - return [] - - aur_updates = [line.split(' ')[0] for line in output.split('\n') if line] - - return aur_updates - - -def matching_updates(updates, watch_list): - matches = set() - for u in updates: - for w in watch_list: - if re.match(w, u): - matches.add(u) - - return matches - - -label = os.environ.get("LABEL","") -message = "{0}{2}" -args = create_argparse() - -updates = get_updates() -if args.aur: - updates += get_aur_yaourt_updates() -elif args.aur_yay: - updates += get_aur_yay_updates() - -update_count = len(updates) -if update_count > 0: - if update_count == 1: - info = str(update_count) + ' update available' - short_info = str(update_count) + ' update' - else: - info = str(update_count) + ' updates available' - short_info = str(update_count) + ' updates' - - matches = matching_updates(updates, args.watch) - if matches: - info += ' [{0}]'.format(', '.join(matches)) - short_info += '*' - print(message.format(label, args.updates_available_color, info)) - print(message.format(label, args.updates_available_color, short_info)) -elif not args.quiet: - print(message.format(label, args.base_color, 'system up to date')) \ No newline at end of file diff --git a/dotfiles/.config/i3blocks/disk b/dotfiles/.config/i3blocks/disk deleted file mode 100755 index 0ef1e45..0000000 --- a/dotfiles/.config/i3blocks/disk +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env sh -DIR="${DIR:-$BLOCK_INSTANCE}" -DIR="${DIR:-$HOME}" -ALERT_LOW="${ALERT_LOW:-$1}" -ALERT_LOW="${ALERT_LOW:-10}" # color will turn red under this value (default: 10%) - -LOCAL_FLAG="-l" -if [ "$1" = "-n" ] || [ "$2" = "-n" ]; then - LOCAL_FLAG="" -fi - -df -h -P $LOCAL_FLAG "$DIR" | awk -v label="$LABEL" -v alert_low=$ALERT_LOW ' -/\/.*/ { - # full text - print label $4 - # short text - print label $4 - use=$5 - # no need to continue parsing - exit 0 -} -END { - gsub(/%$/,"",use) - if (100 - use < alert_low) { - # color - print "#FF0000" - } -} -' \ No newline at end of file diff --git a/dotfiles/.config/i3blocks/disk-io b/dotfiles/.config/i3blocks/disk-io deleted file mode 100755 index cda43df..0000000 --- a/dotfiles/.config/i3blocks/disk-io +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (C) 2016 James Murphy -# Licensed under the terms of the GNU GPL v2 only. -# -# i3blocks blocklet script to monitor disk io - -label="${LABEL:-""}" -dt="${DT:-5}" -MB_only="${MB_ONLY:-0}" -kB_only="${KB_ONLY:-0}" -width="${WIDTH:-4}" -MB_precision="${MB_PRECISION:-1}" -kB_precision="${KB_PRECISION:-0}" -regex="${REGEX:-$BLOCK_INSTANCE}" -regex="${regex:-/^(s|h)d[a-zA-Z]+/}" -threshold="${THRESHOLD:-0}" -warn_color="${WARN_COLOR:-#FF0000}" -sep="${SEPARATOR:-/}" -unit_suffix="${SUFFIX:-B/s}" -align="${ALIGN--}" - -function list_devices { - echo "Devices iostat reports that match our regex:" - iostat | awk '$1~/^(s|h)d[a-zA-Z]+/{print $1}' -} - -while getopts L:t:w:p:P:R:s:ST:C:lLMmKkh opt; do - case "$opt" in - L) label="$OPTARG" ;; - t) dt="$OPTARG" ;; - w) width="$OPTARG" ;; - p) kB_precision="$OPTARG" ;; - P) MB_precision="$OPTARG" ;; - R) regex="$OPTARG" ;; - s) sep="$OPTARG" ;; - S) unit_suffix="" ;; - T) threshold="$OPTARG" ;; - C) warn_color="$OPTARG" ;; - l) list_devices; exit 0 ;; - M|m) MB_only=1 ;; - K|k) kB_only=1 ;; - h) printf \ -"Usage: disk-io [-t time] [-w width] [-p kB_precision] [-P MB_precision] [-R regex] [-s separator] [-S] [-T threshold [-C warn_color]] [-k|-M] [-l] [-h] -Options: --L\tLabel to put in front of the text. Default: $label --t\tTime interval in seconds between measurements. Default: $dt --w\tThe width of printed floats. Default: $width --p\tThe precision of kB/s floats. Default: $kB_precision --P\tThe precision of MB/s floats. Default: $MB_precision --R\tRegex that devices must match. Default: $regex --s\tSeparator to put between rates. Default: $sep --S\tShort units, omit B/s in kB/s and MB/s. --T\tRate in kB/s to exceed to trigger a warning. Default: not enabled --C\tColor to change the blocklet to warn the user. Default: $warn_color --l\tList devices that iostat reports --M\tDo not switch between MB/s and kB/s, use only MB/s --k\tDo not switch between MB/s and kB/s, use only kB/s --h\tShow this help text -" && exit 0;; - esac -done - -iostat -dyz "$dt" | awk -v sep="$sep" " - BEGIN { - rx = wx = 0; - } - { - if(\$0 == \"\") { - if ($threshold > 0 && (rx >= $threshold || wx >= $threshold)) { - printf \"\"; - } - printf \"$label\"; - if(!$kB_only && ($MB_only || rx >= 1024 || wx >= 1024)) { - printf \"%$align$width.${MB_precision}f%s%$width.${MB_precision}f M$unit_suffix\", rx/1024, sep, wx/1024; - } - else { - printf \"%$align$width.${kB_precision}f%s%$width.${kB_precision}f k$unit_suffix\", rx, sep, wx; - } - if ($threshold > 0 && (rx >= $threshold || wx >= $threshold)) { - printf \"\"; - } - printf \"\n\"; - fflush(stdout); - } - else if(\$1~/^Device:?/) { - rx = wx = 0; - } - else if(\$1~$regex) { - rx += \$3; - wx += \$4; - } - }" \ No newline at end of file diff --git a/dotfiles/.config/i3blocks/gpu-load b/dotfiles/.config/i3blocks/gpu-load deleted file mode 100755 index 94e3ddd..0000000 --- a/dotfiles/.config/i3blocks/gpu-load +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env perl - -# 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 . - -use strict; -use warnings; -use utf8; -use Getopt::Long; - -# default values -my $t_warn = $ENV{T_WARN} || 70; -my $t_crit = $ENV{T_CRIT} || 90; -my $gpu_brand = $ENV{GPU_BRAND} || "NVIDIA"; -my $gpu_usage = -1; -my $gpu_mem = -1; -my $gpu_video = -1; -my $gpu_pcie = -1; - -my $full_text = ""; - -sub help { - print "Usage: gpu-load [-w ] [-c ]\n"; - print "-w : warning threshold to become amber\n"; - print "-c : critical threshold to become red\n"; - exit 0; -} - -GetOptions("help|h" => \&help, - "w=i" => \$t_warn, - "c=i" => \$t_crit); - -# Get GPU usage from nvidia-settings -if ($gpu_brand eq "NVIDIA") { - open (NVS, 'nvidia-settings -q GPUUtilization -t |') or die; - while () { - if (/^[a-zA-Z]*=(\d+), [a-zA-Z]*=(\d+), [a-zA-Z]*=(\d+), [a-zA-Z]*=(\d+)$/) { - $gpu_usage = $1; - $gpu_mem = $2; - $gpu_video = $3; - $gpu_pcie = $4; - last; - } - } - close(NVS); - $full_text = sprintf "%.0f%% %.0f%% %.0f%% %.0f%%\n", $gpu_usage, $gpu_mem, $gpu_video, $gpu_pcie; -} - -# For AMD, get from radeontop -elsif ($gpu_brand eq "AMD") { - open (AMD, 'radeontop -d - -l 1 |') or die; - while () { - if (/^.*[gpu] (\d+)\.\d+%.*.*[vram] (\d+)\.\d+%.*$/) { - $gpu_usage = $1; - $gpu_mem = $2; - last; - } - } - close(AMD); - $full_text = sprintf "%.0f%% %.0f%%\n", $gpu_usage, $gpu_mem; -} - -$gpu_usage eq -1 and die 'Can\'t find GPU information'; - -# Print full_text, short_text -print $full_text; -printf "%.0f%%\n", $gpu_usage; - -# Print color, if needed -if ($gpu_usage >= $t_crit || $gpu_mem >= $t_crit || $gpu_video >= $t_crit || $gpu_pcie >= $t_crit) { - print "#FF0000\n"; - exit 33; -} elsif ($gpu_usage >= $t_warn || $gpu_mem >= $t_warn || $gpu_video >= $t_warn || $gpu_pcie >= $t_warn) { - print "#FFBF00\n"; -} - -exit 0; \ No newline at end of file diff --git a/dotfiles/.config/i3blocks/i3blocks.conf b/dotfiles/.config/i3blocks/i3blocks.conf deleted file mode 100755 index f8cc537..0000000 --- a/dotfiles/.config/i3blocks/i3blocks.conf +++ /dev/null @@ -1,107 +0,0 @@ -# i3blocks configuration file -# -# The i3blocks man page describes the usage of the binary, -# and its website describes the configuration: -# -# https://vivien.github.io/i3blocks - - -# Global properties -separator=true -separator_block_width=15 - -# [documentation] -# full_text=Documentation -# website=https://vivien.github.io/i3blocks -# command=xdg-open "$website" -# color=#f12711 - -# [greetings] -# color=#f5af19 -# command=echo "NOT Hello, $USER!" -# interval=once - -[gpu-load] -command=/home/$USER/.config/i3blocks/gpu-load -label=GPU -interval=10 -#min_width=GPU 100% 100% 100% 100% -#GPU_BRAND=NVIDIA // or AMD -#T_WARN=70 -#T_CRIT=90 - -[disk] -command=/home/$USER/.config/i3blocks/disk -LABEL= -#DIR=$HOME -#ALERT_LOW=10 -interval=30 - -[memory] -command=/home/$USER/.config/i3blocks/memory -label= -interval=30 - -[arch-update] -command=/home/$USER/.config/i3blocks/arch-update -interval=3600 -markup=pango -LABEL= - -[volume] -command=/home/$USER/.config/i3blocks/volume -LABEL=♪ -#LABEL=VOL -interval=1 -signal=10 -#STEP=5% -MIXER=default -#SCONTROL=[determined automatically] -#NATURAL_MAPPING=0 - -[disk-io] -command=/home/$USER/.config/i3blocks/disk-io -#command=$SCRIPT_DIR/disk-io -w 3 -M -P 0 -interval=persist -markup=pango -LABEL= -#instance=/^sda/ -#DT=5 -#MB_ONLY=0 #0 or 1 -#KB_ONLY=0 #0 or 1 -#WIDTH=4 -#MB_PRECISION=1 -#KB_PRECISION=0 -#REGEX=/^(s|h)d[a-zA-Z]+/ -#THRESHOLD=0 -#WARN_COLOR="#FF0000" -#SEPARATOR=/ -#PREFIX= -#SUFFIX="B/s" - -[key_layout] -command=/home/$USER/.config/i3blocks/key-layout -label=Layout -interval=30 - -[monitors] -command=/home/$USER/.config/i3blocks/monitor-manager -interval=once -#SHOW_ON_OFF=1 -#SHOW_NAMES=1 -#SHOW_PRIMARY=1 -#SHOW_MODE=1 -#SHOW_BLANKED=1 -#SHOW_DUPLICATE=1 -#SHOW_ROTATION=1 -#SHOW_REFLECTION=1 -#SHOW_BRIGHTNESS=1 -#SHOW_BRIGHTNESS_VALUE=0 -#SHOW_UP_DOWN=1 -#FONT_FAMILY=DejaVu Sans Mono -#FONT_SIZE=11 -#CLOSE_TO_BOUNDARY_BUFFER=20 - -[time] -command=date '+%Y-%m-%d %H:%M:%S' -interval=1 \ No newline at end of file diff --git a/dotfiles/.config/i3blocks/key-layout b/dotfiles/.config/i3blocks/key-layout deleted file mode 100755 index 1e7e26c..0000000 --- a/dotfiles/.config/i3blocks/key-layout +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -# Copyright 2016 Patrick Haun -# Edited: Denis Kadyshev -# -# 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 . - -setxkbmap -query | awk ' - BEGIN{layout="";variant=""} - /^layout/{layout=$2} - /^variant/{variant=" ("$2")"} - END{printf("%s%s",layout,variant)}' \ No newline at end of file diff --git a/dotfiles/.config/i3blocks/memory b/dotfiles/.config/i3blocks/memory deleted file mode 100755 index 035bb5e..0000000 --- a/dotfiles/.config/i3blocks/memory +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env sh -TYPE="${BLOCK_INSTANCE:-mem}" -PERCENT="${PERCENT:-true}" - -awk -v type=$TYPE -v percent=$PERCENT ' -/^MemTotal:/ { - mem_total=$2 -} -/^MemFree:/ { - mem_free=$2 -} -/^Buffers:/ { - mem_free+=$2 -} -/^Cached:/ { - mem_free+=$2 -} -/^SwapTotal:/ { - swap_total=$2 -} -/^SwapFree:/ { - swap_free=$2 -} -END { - if (type == "swap") { - free=swap_free/1024/1024 - used=(swap_total-swap_free)/1024/1024 - total=swap_total/1024/1024 - } else { - free=mem_free/1024/1024 - used=(mem_total-mem_free)/1024/1024 - total=mem_total/1024/1024 - } - pct=0 - if (total > 0) { - pct=used/total*100 - } - # full text - if (percent == "true" ) { - printf("%.1fG/%.1fG (%.f%%)\n", used, total, pct) - } else { - printf("%.1fG/%.1fG\n", used, total) - } - # short text - printf("%.f%%\n", pct) - # color - if (pct > 90) { - print("#FF0000") - } else if (pct > 80) { - print("#FFAE00") - } else if (pct > 70) { - print("#FFF600") - } -} -' /proc/meminfo \ No newline at end of file diff --git a/dotfiles/.config/i3blocks/monitor-manager b/dotfiles/.config/i3blocks/monitor-manager deleted file mode 100755 index f66d684..0000000 --- a/dotfiles/.config/i3blocks/monitor-manager +++ /dev/null @@ -1,728 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (c) 2016 James Murphy -# Licensed under the GPL version 2 only -# -# monitor_manager is an i3blocks blocklet script to quickly manage your -# connected output devices - - -from tkinter import * -from tkinter import messagebox -from shutil import which -import tkinter.font as font -from subprocess import call, check_output, CalledProcessError -import re -import os - -DESKTOP_SYMBOL = "\uf108" - -UP_ARROW = "\uf062" -DOWN_ARROW = "\uf063" -UNBLANKED_SYMBOL = "\uf06e" -BLANKED_SYMBOL = "\uf070" -NOT_CLONED_SYMBOL = "\uf096" -PRIMARY_SYMBOL = "\uf005" -SECONDARY_SYMBOL = "\uf006" -CLONED_SYMBOL = "\uf24d" -ROTATION_NORMAL = "\uf151" -ROTATION_LEFT = "\uf191" -ROTATION_RIGHT = "\uf152" -ROTATION_INVERTED = "\uf150" -REFLECTION_NORMAL = "\uf176" -REFLECTION_X = "\uf07e" -REFLECTION_Y = "\uf07d" -REFLECTION_XY = "\uf047" -TOGGLE_ON = "\uf205" -TOGGLE_OFF = "\uf204" -APPLY_SYMBOL = "\uf00c" -CANCEL_SYMBOL = "\uf00d" -ARANDR_SYMBOL = "\uf085" -REFRESH_SYMBOL = "\uf021" - -strbool = lambda s: s.lower() in ['t', 'true', '1'] -def _default(name, default='', arg_type=strbool): - val = default - if name in os.environ: - val = os.environ[name] - return arg_type(val) - - -SHOW_ON_OFF = _default("SHOW_ON_OFF","1") -SHOW_NAMES = _default("SHOW_NAMES", "1") -SHOW_PRIMARY = _default("SHOW_PRIMARY", "1") -SHOW_MODE = _default("SHOW_MODE", "1") -SHOW_BLANKED = _default("SHOW_BLANKED", "1") -SHOW_DUPLICATE = _default("SHOW_DUPLICATE", "1") -SHOW_ROTATION = _default("SHOW_ROTATION", "1") -SHOW_REFLECTION = _default("SHOW_REFLECTION", "1") -SHOW_BRIGHTNESS = _default("SHOW_BRIGHTNESS", "1") -SHOW_BRIGHTNESS_VALUE = _default("SHOW_BRIGHTNESS_VALUE", "0") -SHOW_UP_DOWN = _default("SHOW_UP_DOWN", "1") - -FONTAWESOME_FONT_FAMILY = "FontAwesome" -FONTAWESOME_FONT_SIZE = 11 -FONTAWESOME_FONT = (FONTAWESOME_FONT_FAMILY, FONTAWESOME_FONT_SIZE) -DEFAULT_FONT_FAMILY = _default("FONT_FAMILY","DejaVu Sans Mono", str) -DEFAULT_FONT_SIZE = _default("FONT_SIZE", 11, int) -DEFAULT_FONT = (DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE) - -BRIGHTNESS_SLIDER_HANDLE_LENGTH = 20 -BRIGHTNESS_SLIDER_WIDTH = 15 -BRIGHTNESS_SLIDER_LENGTH = 50 - -WINDOW_CLOSE_TO_BOUNDARY_BUFFER = _default("CLOSE_TO_BOUNDARY_BUFFER", 20, int) - -class Output: - def __init__(self, name=None, w=None, h=None, x=None, y=None, rate=None, - active=False, primary=False, sameAs=None, blanked=False, rotation="normal", - reflection="normal", brightness=1.0): - self.name = name - self.w = w - self.h = h - self.x = x - self.y = y - self.rate = rate - self.active = active - self.primary = primary - self.sameAs = sameAs - self.blanked = blanked - self.modes = [] - self.currentModeIndex = None - self.preferredModeIndex = None - self.row = None - self.rotation = rotation - self.reflection = reflection - self.brightness = brightness - - def setPreferredMode(self): - if self.preferredModeIndex != None: - self.setMode(self.preferredModeIndex) - elif self.modes != None: - self.setMode(0) - - def setMode(self, index): - self.w, self.h, self.rate = self.modes[index] - self.currentModeIndex = index - - def realOutputs(): - outputs = [] - xrandrText = check_output(["xrandr","--verbose"],universal_newlines=True) - outputBlocks = re.split(r'\n(?=\S)', xrandrText, re.MULTILINE) - infoPattern = re.compile( - r'^(\S+)' # output name - ' connected ' # must be connected - '(primary )?' # check if primary output - '((\d+)x(\d+)\+(\d+)\+(\d+) )?' # width x height + xoffset + yoffset - '(\(\S+\) )?' # mode code (0x4a) - '(normal|left|inverted|right)? ?' # rotation - '(X axis|Y axis|X and Y axis)?') # reflection - brightnessPattern = re.compile(r'^\tBrightness: ([\d.]+)', re.MULTILINE) - modePattern = re.compile(r'^ (\d+)x(\d+)[^\n]*?\n +h:[^\n]*?\n +v:[^\n]*?([\d.]+)Hz$', re.MULTILINE) - for outputBlock in outputBlocks: - output = Output() - infoMatch = infoPattern.match(outputBlock) - if infoMatch: - output.name = infoMatch.group(1) - if infoMatch.group(2): - output.primary = True - if infoMatch.group(3): - output.active = True - output.w, output.h, output.x, output.y = map(int,infoMatch.group(4, 5, 6, 7)) - if infoMatch.group(9): - output.rotation = infoMatch.group(9) - if output.rotation in ["left", "right"]: - output.w, output.h = output.h, output.w - if infoMatch.group(10): - if infoMatch.group(10) == "X axis": - output.reflection = "x" - elif infoMatch.group(10) == "Y axis": - output.reflection = "y" - elif infoMatch.group(10) == "X and Y axis": - output.reflection = "xy" - else: - output.reflection = "normal" - else: - output.reflection = "normal" - brightnessMatch = brightnessPattern.search(outputBlock) - if brightnessMatch: - try: - brightness = float(brightnessMatch.group(1)) - output.brightness = brightness - if abs(brightness) < 1e-09: - output.blanked = True - except ValueError: - pass - modeMatches = modePattern.finditer(outputBlock) - for i, modeMatch in enumerate(modeMatches): - if "*current" in modeMatch.group(0): - output.currentModeIndex = i - output.rate = modeMatch.group(3) - if "+preferred" in modeMatch.group(0): - output.preferredModeIndex = i - output.modes.append(modeMatch.group(1,2,3)) - outputs.append(output) - outputs.sort(key=lambda m: m.x if m.x != None else -1) - prev = None - for output in outputs: - if prev != None and output.active and prev.active and output.x == prev.x: - output.sameAs = prev.name - else: - prev = output - - return outputs - - def modestr(mode): - return "{}x{}@{}".format(*mode) - - def status(self): - if self.active: - if self.sameAs == None or self.sameAs == self.name: - if self.w and self.h and self.rate: - return "{}x{}@{}".format(self.w, self.h, self.rate) - else: - return "auto" - else: - return "duplicate {}".format(self.sameAs) - else: - return "Inactive" - - - def __str__(self): - return "{} {}x{}+{}+{} active:{}, primary:{}\nmodes:{}\ncurrentIndex:{} preferredIndex:{}".format( - self.name, self.w, self.h, self.x, self.y, self.active, self.primary, self.modes, self.currentModeIndex, self.preferredModeIndex) - -class MonitorManager(): - def __init__(self, root): - self.root = root - self.root.withdraw() - self.root.resizable(0,0) - self.root.wm_title("Monitor Manager") - self.frame = None - self.outputs = [] - self.hardRefreshList() - style = {'relief':FLAT, 'padx':1, 'pady':1, 'anchor':'w', 'font':FONTAWESOME_FONT} - - self.infoLabel = Label(self.root, text="", **style) - self.infoLabel.config(font=DEFAULT_FONT) - - self.bottomRow = [] - - self.applyButton = Button(self.root, text=APPLY_SYMBOL, **style) - self.bottomRow.append(self.applyButton) - - self.refreshButton = Button(self.root, text=REFRESH_SYMBOL, **style) - self.bottomRow.append(self.refreshButton) - - if which("arandr"): - self.arandrButton = Button(self.root, text=ARANDR_SYMBOL, **style) - self.bottomRow.append(self.arandrButton) - else: - self.arandrButton = None - - self.cancelButton = Button(self.root, text=CANCEL_SYMBOL, **style) - self.bottomRow.append(self.cancelButton) - - self.infoLabel.grid(row=1,column=0, columnspan=len(self.bottomRow)) - self.gridRow(2, self.bottomRow) - - self.moveToMouse() - self.root.deiconify() - - def registerBindings(self): - self.root.bind("", self.handleApply) - self.root.bind("", self.handleCancel) - - self.applyButton.bind("", self.handleApply) - self.setInfo(self.applyButton, "Apply changes") - - self.refreshButton.bind("", self.hardRefreshList) - self.setInfo(self.refreshButton, "Refresh list") - - if self.arandrButton: - self.arandrButton.bind("", self.handleArandr) - self.setInfo(self.arandrButton, "Launch aRandR") - - self.cancelButton.bind("", self.handleCancel) - self.setInfo(self.cancelButton, "Cancel") - - for toggleButton in self.toggleButtons: - toggleButton.bind("", self.toggleActive) - toggleButton.bind("", self.handleUp) - toggleButton.bind("", self.handleDown) - self.setInfo(toggleButton, "Turn output on/off") - - for primaryButton in self.primaryButtons: - primaryButton.bind("", self.setPrimary) - self.setInfo(primaryButton, "Set primary output") - - for blankedButton in self.blankedButtons: - blankedButton.bind("", self.toggleBlanked) - self.setInfo(blankedButton, "Show/hide output") - - for duplicateButton in self.duplicateButtons: - duplicateButton.bind("", self.toggleDuplicate) - self.setInfo(duplicateButton, "Duplicate another output") - - for rotateButton in self.rotateButtons: - rotateButton.bind("", self.cycleRotation) - self.setInfo(rotateButton, "Rotate output") - - for reflectButton in self.reflectButtons: - reflectButton.bind("", self.cycleReflection) - self.setInfo(reflectButton, "Reflect output") - - for brightnessSlider in self.brightnessSliders: - brightnessSlider.bind("", self.updateBrightness) - self.setInfo(brightnessSlider, "Adjust brightness") - - for upButton in self.upButtons: - upButton.bind("", self.handleUp) - upButton.bind("", self.handleUp) - upButton.bind("", self.handleDown) - self.setInfo(upButton, "Move up") - - for downButton in self.downButtons: - downButton.bind("", self.handleDown) - downButton.bind("", self.handleUp) - downButton.bind("", self.handleDown) - self.setInfo(downButton, "Move down") - - def gridRow(self, row, widgets): - column = 0 - for w in widgets: - w.grid(row=row, column=column) - column += 1 - - def moveToMouse(self): - root = self.root - root.update_idletasks() - width = root.winfo_reqwidth() - height = root.winfo_reqheight() - x = root.winfo_pointerx() - width//2 - y = root.winfo_pointery() - height//2 - screen_width = root.winfo_screenwidth() - screen_height = root.winfo_screenheight() - if x+width > screen_width - WINDOW_CLOSE_TO_BOUNDARY_BUFFER: - x = screen_width - WINDOW_CLOSE_TO_BOUNDARY_BUFFER - width - elif x < WINDOW_CLOSE_TO_BOUNDARY_BUFFER: - x = WINDOW_CLOSE_TO_BOUNDARY_BUFFER - if y+height > screen_height - WINDOW_CLOSE_TO_BOUNDARY_BUFFER: - y = screen_height - WINDOW_CLOSE_TO_BOUNDARY_BUFFER - height - elif y < WINDOW_CLOSE_TO_BOUNDARY_BUFFER: - y = WINDOW_CLOSE_TO_BOUNDARY_BUFFER - - root.geometry('+{}+{}'.format(x, y)) - - def setInfo(self, widget, info): - widget.bind("", lambda e: self.infoLabel.config(text=info, fg="black")) - widget.bind("", lambda e: self.infoLabel.config(text="")) - - def handleApply(self, e=None): - self.root.after_idle(self.doHandleApply) - - def doHandleApply(self): - if not self.getUserConfirmationIfDangerousConfiguration(): - return - command = ["xrandr"] - if not self.existsPrimary(): - command += ["--noprimary"] - partition = self.sameAsPartition() - prevFirstActive = None - for p in partition: - firstActive = None - for output in p: - command += ["--output", output.name] - if output.active: - if firstActive == None: - firstActive = output - else: - command += ["--same-as", firstActive.name] - if output.primary: - command += ["--primary"] - if prevFirstActive != None: - command += ["--right-of", prevFirstActive.name] - if output.w != None and output.h != None and output.rate != None: - command += ["--mode", "{}x{}".format(output.w,output.h)] - command += ["--rate", output.rate ] - else: - command += ["--auto"] - command += ["--brightness", str(output.brightness)] - command += ["--rotate", output.rotation] - command += ["--reflect", output.reflection] - else: - command += ["--off"] - if firstActive: - prevFirstActive = firstActive - self.root.after_idle(lambda: self.executeXrandrCommand(command)) - - def executeXrandrCommand(self, command): - try: - check_output(command, universal_newlines=True) - except CalledProcessError as err: - self.infoLabel.config(text="xrandr returned nonzero exit status {}".format(err.returncode), fg="red") - - def getUserConfirmationIfDangerousConfiguration(self): - result = "yes" - if all(map(lambda o: o.blanked or not o.active, self.outputs)): - result = messagebox.askquestion("All blanked or off", - "All ouputs are set to be turned off or blanked, continue?", - icon="warning") - return result == "yes" - - def sameAsPartition(self): - partition = [] - for output in self.outputs: - place = None - for p in partition: - if place != None: - break; - for o in p: - if place == None and (output.sameAs == o.name or o.sameAs == output.name): - place = p - break; - if place: - place.append(output) - else: - partition.append([output]) - return partition - - - def handleCancel(self, e=None): - self.root.destroy() - - def handleArandr(self, e=None): - call(["i3-msg", "-q", "exec", "arandr"]) - self.root.destroy() - - def handleUp(self, e): - row = e.widget.output.row - if row > 0: - self.swapOutputRows(row-1, row) - self.softRefreshList() - - def handleDown(self, e): - row = e.widget.output.row - n = len(self.outputs) - if row + 1 < n: - self.swapOutputRows(row, row+1) - self.softRefreshList() - - def swapOutputRows(self, row1, row2): - outputs = self.outputs - outputs[row1],outputs[row2] = outputs[row2],outputs[row1] - outputs[row1].row = row1 - outputs[row2].row = row2 - for widget in self.frame.grid_slaves(row=row2): - widget.output = outputs[row2] - for widget in self.frame.grid_slaves(row=row1): - widget.output = outputs[row1] - - def setPrimary(self, e): - output = e.widget.output - output.primary = not output.primary - for otherOutput in self.outputs: - if otherOutput != output: - otherOutput.primary = False - self.softRefreshList() - - def existsPrimary(self): - for output in self.outputs: - if output.primary: - return True - return False - - def toggleActive(self, e): - output = e.widget.output - output.active = not output.active - if output.active: - output.setPreferredMode() - else: - for otherOutput in self.outputs: - if otherOutput.sameAs == output.name: - otherOutput.sameAs = None - self.softRefreshList() - - def toggleBlanked(self, e): - output = e.widget.output - if output.blanked: - output.blanked = False - output.brightness = 1.0 - else: - output.blanked = True - output.brightness = 0.0 - self.softRefreshList() - - def updateBrightness(self, e): - output = e.widget.output - output.brightness = .01 * e.widget.get() - output.blanked = False - if abs(output.brightness) < 1e-09: - output.blanked = True - self.softRefreshList() - - def cycleRotation(self, e): - output = e.widget.output - if output.rotation == "normal": - output.rotation = "right" - elif output.rotation == "right": - output.rotation = "inverted" - elif output.rotation == "inverted": - output.rotation = "left" - else: - output.rotation = "normal" - self.softRefreshList() - - def rotationSymbol(self, rotation): - return { - "normal": ROTATION_NORMAL, - "left": ROTATION_LEFT, - "right": ROTATION_RIGHT, - "inverted": ROTATION_INVERTED, - }[rotation] - - def cycleReflection(self, e): - output = e.widget.output - if output.reflection == "normal": - output.reflection = "x" - elif output.reflection == "x": - output.reflection = "y" - elif output.reflection == "y": - output.reflection = "xy" - else: - output.reflection = "normal" - self.softRefreshList() - - def reflectionSymbol(self, reflection): - return { - "normal": REFLECTION_NORMAL, - "x": REFLECTION_X, - "y": REFLECTION_Y, - "xy": REFLECTION_XY, - }[reflection] - - def toggleDuplicate(self, e): - duplicateButton = e.widget - optionMenu = duplicateButton.statusOptionMenu - output = optionMenu.output - if output.sameAs != None: - output.sameAs = None - self.setMenuToOutput(optionMenu, output) - else: - self.setMenuToDuplicate(optionMenu) - self.softRefreshList() - - def getDuplicableOutputsFor(self, output): - return [o for o in self.outputs if o != output and o.sameAs == None] - - def softRefreshList(self, e=None): - for widget in set().union(self.nameLabels, self.primaryButtons, - self.statusOptionMenus, self.blankedButtons, - self.duplicateButtons, self.rotateButtons, self.reflectButtons, - self.brightnessSliders, self.upButtons, self.downButtons): - widget.config(fg="gray" if not widget.output.active else "black") - - for widget in self.toggleButtons: - widget.config(text=TOGGLE_ON if widget.output.active else TOGGLE_OFF) - - for widget in self.nameLabels: - widget.config(text=widget.output.name) - - for widget in self.primaryButtons: - widget.config(text=PRIMARY_SYMBOL if widget.output.primary else SECONDARY_SYMBOL) - if not widget.output.primary: - widget.config(fg="gray") - - for widget in self.statusOptionMenus: - widget.config(text=widget.output.status()) - if widget.output.sameAs != None: - self.setMenuToDuplicate(widget) - self.setInfo(widget, "Select output to duplicate") - else: - self.setMenuToOutput(widget, widget.output) - self.setInfo(widget, "Select output mode") - - for widget in self.blankedButtons: - widget.config(text=BLANKED_SYMBOL if widget.output.blanked else UNBLANKED_SYMBOL) - - for widget in self.duplicateButtons: - widget.config(text=CLONED_SYMBOL if widget.output.sameAs else NOT_CLONED_SYMBOL) - - for widget in self.rotateButtons: - widget.config(text=self.rotationSymbol(widget.output.rotation)) - - for widget in self.reflectButtons: - widget.config(text=self.reflectionSymbol(widget.output.reflection)) - - for widget in self.brightnessSliders: - widget.set(int(100*widget.output.brightness)) - - def hardRefreshList(self, e=None): - self.outputs = Output.realOutputs() - self.root.after_idle(self.populateGrid) - - def populateGrid(self): - oldFrame = self.frame - self.frame = Frame(self.root) - self.frame.grid(row=0, column=0, columnspan=len(self.bottomRow)) - self.toggleButtons = [] - self.nameLabels = [] - self.primaryButtons = [] - self.statusOptionMenus = [] - self.blankedButtons = [] - self.duplicateButtons = [] - self.rotateButtons = [] - self.reflectButtons = [] - self.brightnessSliders = [] - self.upButtons = [] - self.downButtons = [] - for row, output in enumerate(self.outputs): - self.makeLabelRow(output, row) - self.registerBindings() - if oldFrame: - oldFrame.destroy() - - def makeLabelRow(self, output, row): - output.row = row - style = {'relief':FLAT, 'padx':1, 'pady':1, 'anchor':'w'} - widgets = [] - - toggleButton = Button(self.frame, font=FONTAWESOME_FONT, **style) - toggleButton.output = output - self.toggleButtons.append(toggleButton) - if SHOW_ON_OFF: - widgets.append(toggleButton) - - nameLabel = Label(self.frame, font=DEFAULT_FONT) - nameLabel.output = output - self.nameLabels.append(nameLabel) - if SHOW_NAMES: - widgets.append(nameLabel) - - primaryButton = Button(self.frame, font=FONTAWESOME_FONT, **style) - primaryButton.output = output - self.primaryButtons.append(primaryButton) - if not output.primary: - primaryButton.config(fg="gray") - if SHOW_PRIMARY: - widgets.append(primaryButton) - - var = StringVar(self.frame) - statusOptionMenu = OptionMenu(self.frame, var, None) - statusOptionMenu.output = output - statusOptionMenu.var = var - statusOptionMenu.config(relief=FLAT) - self.statusOptionMenus.append(statusOptionMenu) - if SHOW_MODE or SHOW_DUPLICATE: - widgets.append(statusOptionMenu) - - blankedButton = Button(self.frame, font=FONTAWESOME_FONT, **style) - blankedButton.output = output - self.blankedButtons.append(blankedButton) - if SHOW_BLANKED: - widgets.append(blankedButton) - - duplicateButton = Button(self.frame, font=FONTAWESOME_FONT, **style) - duplicateButton.statusOptionMenu = statusOptionMenu - duplicateButton.output = output - self.duplicateButtons.append(duplicateButton) - if SHOW_DUPLICATE: - widgets.append(duplicateButton) - - rotateButton = Button(self.frame, font=FONTAWESOME_FONT, **style) - rotateButton.output = output - self.rotateButtons.append(rotateButton) - if SHOW_ROTATION: - widgets.append(rotateButton) - - reflectButton = Button(self.frame, font=FONTAWESOME_FONT, **style) - reflectButton.output = output - self.reflectButtons.append(reflectButton) - if SHOW_REFLECTION: - widgets.append(reflectButton) - - brightnessSlider = Scale(self.frame, orient="horizontal", from_=0, to=100, - length=BRIGHTNESS_SLIDER_LENGTH, showvalue=SHOW_BRIGHTNESS_VALUE, - sliderlength=BRIGHTNESS_SLIDER_HANDLE_LENGTH, - width=BRIGHTNESS_SLIDER_WIDTH, font=FONTAWESOME_FONT) - brightnessSlider.output = output - self.brightnessSliders.append(brightnessSlider) - if SHOW_BRIGHTNESS: - widgets.append(brightnessSlider) - - upButton = Button(self.frame, text=UP_ARROW, font=FONTAWESOME_FONT, **style) - upButton.output = output - self.upButtons.append(upButton) - if SHOW_UP_DOWN: - widgets.append(upButton) - - downButton = Button(self.frame, text=DOWN_ARROW, font=FONTAWESOME_FONT, **style) - downButton.output = output - self.downButtons.append(downButton) - if SHOW_UP_DOWN: - widgets.append(downButton) - - for widget in widgets: - widget.output = output - self.gridRow(row, widgets) - self.softRefreshList() - - def setMenuToOutput(self, optionMenu, output): - menu = optionMenu["menu"] - var = optionMenu.var - modes = output.modes - menu.delete(0, END) - for i, mode in enumerate(modes): - label = Output.modestr(mode) - menu.add_command(label=label, command=setLabelAndOutputModeFunc(var,label,output,i)) - if output.currentModeIndex != None: - var.set(Output.modestr(modes[output.currentModeIndex])) - elif output.preferredModeIndex != None: - var.set(Output.modestr(modes[output.preferredModeIndex])) - elif len(modes) > 0: - var.set(Output.modestr(modes[0])) - - def setMenuToDuplicate(self, optionMenu): - menu = optionMenu["menu"] - var = optionMenu.var - output = optionMenu.output - menu.delete(0, END) - duplicables = self.getDuplicableOutputsFor(output) - defaultIndex = 0 - for i,otherOutput in enumerate(duplicables): - label = otherOutput.name - menu.add_command(label=label, command=setLabelAndSameAsFunc(var,label,output)) - if label == output.sameAs: - defaultIndex = i - if len(duplicables) > 0: - var.set(menu.entrycget(defaultIndex, "label")) - output.sameAs = menu.entrycget(defaultIndex, "label") - else: - var.set("None") - - def handleFocusOut(self, event): - self.root.destroy() - -def setLabelAndOutputModeFunc(var, label, output, i): - def func(): - var.set(label) - output.setMode(i) - return func - -def setLabelAndSameAsFunc(var, sameAs, output): - def func(): - var.set(sameAs) - output.sameAs = sameAs - return func - -if os.environ.get('BLOCK_BUTTON') == "1": - if os.fork() != 0: - root = Tk() - if DEFAULT_FONT_FAMILY and DEFAULT_FONT_SIZE: - font.nametofont("TkDefaultFont").config(family=DEFAULT_FONT_FAMILY, size=DEFAULT_FONT_SIZE) - manager = MonitorManager(root) - root.mainloop() - else: - print(DESKTOP_SYMBOL) -else: - print(DESKTOP_SYMBOL) \ No newline at end of file diff --git a/dotfiles/.config/i3blocks/volume b/dotfiles/.config/i3blocks/volume deleted file mode 100755 index 42bdeae..0000000 --- a/dotfiles/.config/i3blocks/volume +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env bash -if [[ -z "$MIXER" ]] ; then - MIXER="default" - if command -v pulseaudio >/dev/null 2>&1 && pulseaudio --check ; then - # pulseaudio is running, but not all installations use "pulse" - if amixer -D pulse info >/dev/null 2>&1 ; then - MIXER="pulse" - fi - fi - [ -n "$(lsmod | grep jack)" ] && MIXER="jackplug" - MIXER="${2:-$MIXER}" -fi -if [[ -z "$SCONTROL" ]] ; then - SCONTROL="${BLOCK_INSTANCE:-$(amixer -D $MIXER scontrols | - sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | - head -n1 - )}" -fi - -# The first parameter sets the step to change the volume by (and units to display) -# This may be in in % or dB (eg. 5% or 3dB) -if [[ -z "$STEP" ]] ; then - STEP="${1:-5%}" -fi - -NATURAL_MAPPING=${NATURAL_MAPPING:-0} -if [[ "$NATURAL_MAPPING" != "0" ]] ; then - AMIXER_PARAMS="-M" -fi - -#------------------------------------------------------------------------ - -capability() { # Return "Capture" if the device is a capture device - amixer $AMIXER_PARAMS -D $MIXER get $SCONTROL | - sed -n "s/ Capabilities:.*cvolume.*/Capture/p" -} - -volume() { - amixer $AMIXER_PARAMS -D $MIXER get $SCONTROL $(capability) -} \ No newline at end of file diff --git a/dotfiles/.config/nvim/.gitignore b/dotfiles/.config/nvim/.gitignore index ea93eda..cc5457a 100644 --- a/dotfiles/.config/nvim/.gitignore +++ b/dotfiles/.config/nvim/.gitignore @@ -1,5 +1,8 @@ -tags -test.sh -.luarc.json -nvim -lazy-lock.json +tt.* +.tests +doc/tags +debug +.repro +foo.* +*.log +data diff --git a/dotfiles/.config/nvim/.neoconf.json b/dotfiles/.config/nvim/.neoconf.json new file mode 100644 index 0000000..7c48087 --- /dev/null +++ b/dotfiles/.config/nvim/.neoconf.json @@ -0,0 +1,15 @@ +{ + "neodev": { + "library": { + "enabled": true, + "plugins": true + } + }, + "neoconf": { + "plugins": { + "lua_ls": { + "enabled": true + } + } + } +} diff --git a/dotfiles/.config/nvim/.stylua.toml b/dotfiles/.config/nvim/.stylua.toml deleted file mode 100644 index 139e939..0000000 --- a/dotfiles/.config/nvim/.stylua.toml +++ /dev/null @@ -1,6 +0,0 @@ -column_width = 160 -line_endings = "Unix" -indent_type = "Spaces" -indent_width = 2 -quote_style = "AutoPreferSingle" -call_parentheses = "None" diff --git a/dotfiles/.config/nvim/LICENSE b/dotfiles/.config/nvim/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/dotfiles/.config/nvim/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/dotfiles/.config/nvim/README.md b/dotfiles/.config/nvim/README.md index 5ef534b..185280b 100644 --- a/dotfiles/.config/nvim/README.md +++ b/dotfiles/.config/nvim/README.md @@ -1,613 +1,4 @@ -
-

RayTerm

- RayTerm - +# 💤 LazyVim -
- - -# Getting Started : -Welcome to the NeoVim configuration guide. This document provides a comprehensive overview of setting up and using my NeoVim configuration, including keybindings, plugins, and additional tools like tmux. -Initial Setup - -To get started with this NeoVim configuration, clone the repository into your NeoVim configuration directory: - -# Initial Setup -```bash -git clone https://github.com/rayanramoul/nvim-configs ~/.config/nvim -``` - -and then run all the .sh scripts in that directory! - -### Ensure all LSPs are setup : -:MasonInstallAll - -### Setup Copilot : -Copilot is already setup in the editor you just have to run the first time : -``` -:Copilot setup -``` -and -``` -:Copilot enable -``` - -### Debug LSP : -Launch the command : -``` -:lua print(vim.inspect(vim.lsp.get_active_clients())) -:LspInfo -``` -### Conda envionements : -They're managed through https://github.com/kmontocam/nvim-conda -Commands - -- ```:CondaActivate``` - lists conda environments in menu and activates selected -- ```:CondaActivate ``` - activates the given conda environment -- ```:CondaDeactivate``` - deactivates the active conda environment - - -### Neovim Keybinds : -Reference for Tutorial : https://ofirgall.github.io/learn-nvim/chapters/00-why-should-i-learn.html -| Keybinding | Description | -| ------------- | ------------- | -| :!command (for example run binary or do python) | Execute shell commands | - -Explore Project : -| Keybinding | Description | -| ------------- | ------------- | -| Ctrl p | Telescope lookup a file | -| Space pf | Telescope lookup a GIT file | -| Space pv | Go back to file explorer | -| Space + ps | Content File search | -| Ctrl + f | Tmux Jump Between projects | -| d | Delete | -| a (in file explorer) | Create new File | -| A (in file explorer) | Create new Directory | -| r (in file explorer) | Rename | -| q (in file explorer) | Close | -| m (in file explorer) | Move | - - -In File -| Keybinding | Description | -| ------------- | ------------- | -| y y p | Duplicate line | -| u | Undo | -| Ctrl r | Redo | -| x | Delete character under cursor | -| r | Replace character under cursor | -| _ | JUMP BEGINNING LINE | -| $ | JUMP END LINE | -| p | New LINE | -| r | Replace character under cursor | -| A | Move in insert mode to beginning of the line | -| a | Move in insert mode AFTER the cursor | -| a | Move in insert mode AFTER the cursor | -| d | Delete and put in buffer | -| dd | Delete a line | -| f + Character | Jump-on Forward where the caracter appears in the line | -| t + Character | Jump-to Forward where the caracter appears in the line | -| g d | Jump to DEFINITION | -| Ctrl O | Jump BACK FROM DEFINITION | -| Ctrl d | Half page JUMP FORWARD | -| Ctrl u | Half page JUMP BACKWARD | -| Space u | Open Undo tree | -| Space gs | Open Fugitive Git manipulation | -| {/} | Jump between Paragraphs | -| vi" | Select everything inside " | -| vi( | Select everything inside ( | -| Visual mode : g c | COMMENT | - -TERMINAL : -| Keybinding | Description | -| ------------- | ------------- | -| Ctrl t | Open/Close Terminal | - - -LSP : -| Keybinding | Description | -| ------------- | ------------- | -| Ctrl y | Accept an LSP suggestion | -| Ctrl n | Next LSP suggestion | -| Ctrl p | Previous LSP suggestion | - -MULTI PAGE : -Every multi page command start usually with Ctrl w -| Keybinding | Description | -| ------------- | ------------- | -| Ctrl w h/j/k/l | Move in directions between the windows | -| Ctrl w s | Create Horizontal split | -| Ctrl w v | Create Vertical split | -| Ctrl w o | Close all splits except current | -| Ctrl w c | Close current split | - -HARPOON : -| Keybinding | Description | -| ------------- | ------------- | -| Ctrl a | APPEND file to harpoon | -| Ctrl x | REMOVE file to harpoon | -| Ctrl e | TOGGLE MENU | -| Space 1 | Nav 1 | -| Space 2 | Nav 2 | -| Space 3 | Nav 3 | -| Space 4 | Nav 4 | - -DAP DEBUGGING : -| Keybinding | Description | -| ------------- | ------------- | -| Space d b | TOGGLE BREAKPOINT | -| Space d l | RUN LAST | -| Space d c | CONTINUE | -| Space d u i | DAP UI TOGGLE | -| Space 5 | RUN CURRENT FILE | - -TMUX : -| Keybinding | Description | -| ------------- | ------------- | -| Ctrl b h/j/k/l | Move between Panes | -| Shift Alt h/l | Move between Windows | - -GIT : -| Keybinding | Description | -| ------------- | ------------- | -| Space g g | Activate LazyGit | - - -Indentation : -Here's a step-by-step example: - -- Move to the first line you want to indent. -- Press v to start visual mode. -- Select the lines with the arrow keys. -- Press > to indent right or < to indent left. -- Press Esc to exit visual mode. - -| Keybinding | Description | -| ------------- | ------------- | -| Ctrl-b " | Split pane horizontally | -| Ctrl-b % | Split pane vertically | -| Ctrl-b arrow key | Navigate between panes (use arrow keys for direction) | -| Ctrl-b c | Create a new window | -| Ctrl-b w | List windows to select | -| Ctrl-b n | Move to the next window | -| Ctrl-b p | Move to the previous window | -| Ctrl-b & | Kill the current window | -| Ctrl-b x | Kill the current pane | -| Ctrl-b [ | Enter scroll mode (navigate using arrow keys, exit with q) | -| Ctrl-b ] | Paste from the tmux buffer | -| Ctrl-b z | Toggle pane zoom | -| Ctrl-b d | Detach from the current session | -| Ctrl-b t | Show a large clock in the current pane | -| Ctrl-b , | Rename the current window | -| Ctrl-b $ | Rename the current session | -| Ctrl-b o | Rotate panes | -| Ctrl-b ; | Toggle between the current and previous pane | -| Ctrl-b q | Show pane numbers (press number to switch to that pane) | -| Ctrl-b { | Move the current pane left | -| Ctrl-b } | Move the current pane right | -| Ctrl-b L | Move to the previously selected pane | -| Ctrl-b M | Toggle mouse mode on/off | -| Ctrl-b : | Enter command mode | - -# TODO -- Add bpytop -- Add lsd insted of ls -- Add fast neofetch at the start of zsh call -- Add ANSIBLE ssh restoration -- Add bat instead of cat - -# NeoVim Plugin Overview - -This section provides an overview of the plugins used in this NeoVim configuration, along with their purpose and functionality. - -### Core Functionality -- **[lazy.nvim](https://github.com/folke/lazy.nvim)**: A plugin to facilitate lazy loading of other plugins, improving startup time. - -### Navigation & File Management - -- **[nvim-telescope/telescope.nvim](https://github.com/nvim-telescope/telescope.nvim)**: A highly extendable fuzzy finder over lists. -- **[nvim-tree/nvim-tree.lua](https://github.com/kyazdani42/nvim-tree.lua)**: A file explorer tree for navigating and managing your filesystem. -- **[theprimeagen/harpoon](https://github.com/ThePrimeagen/harpoon)**: Bookmark manager for quick navigation between frequently used files. -- **[numToStr/Navigator.nvim](https://github.com/numToStr/Navigator.nvim)**: Seamlessly navigate between splits and windows. - -### User Interface Enhancements - -- **[rose-pine/neovim](https://github.com/rose-pine/neovim)**: The Rose Pine theme for a comfortable and aesthetic coding environment. -- **[akinsho/bufferline.nvim](https://github.com/akinsho/bufferline.nvim)**: An elegant and powerful buffer line (tab line) plugin. -- **[nvim-lualine/lualine.nvim](https://github.com/nvim-lualine/lualine.nvim)**: A fast and easy-to-configure status line plugin. -- **[folke/which-key.nvim](https://github.com/folke/which-key.nvim)**: Displays a popup with possible keybindings following your currently entered incomplete command. -- **[gelguy/wilder.nvim](https://github.com/gelguy/wilder.nvim)**: Enhances command-line completion, search, and more. -- **[folke/tokyonight.nvim](https://github.com/folke/tokyonight.nvim)**: A clean, dark Neovim theme that celebrates the lights of downtown Tokyo at night. - -### Syntax & Language Support - -- **[nvim-treesitter/nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter)**: Treesitter configurations and abstraction layer for Neovim. -- **[nvim-treesitter/nvim-treesitter-context](https://github.com/romgrk/nvim-treesitter-context)**: Shows the context of the current function/class you're in. - -### Development & Debugging - -- **[mfussenegger/nvim-dap](https://github.com/mfussenegger/nvim-dap)**: A Debug Adapter Protocol client implementation for stepping through code and breakpoints. -- **[rcarriga/nvim-dap-ui](https://github.com/rcarriga/nvim-dap-ui)**: A UI for nvim-dap. -- **[mfussenegger/nvim-dap-python](https://github.com/mfussenegger/nvim-dap-python)**: Python specific configurations for nvim-dap. -- **[simrat39/rust-tools.nvim](https://github.com/simrat39/rust-tools.nvim)**: Extra functionality for Rust programming. -- **[mfussenegger/nvim-lint](https://github.com/mfussenegger/nvim-lint)**: An asynchronous linter plugin. - -### Language Server Protocol (LSP) & Autocompletion - -- **[neovim/nvim-lspconfig](https://github.com/neovim/nvim-lspconfig)**: Quickstart configurations for the Nvim LSP client. -- **[williamboman/mason.nvim](https://github.com/williamboman/mason.nvim)**: Portable package manager for Neovim that installs language servers, linters, and formatters. -- **[hrsh7th/nvim-cmp](https://github.com/hrsh7th/nvim-cmp)**: Autocompletion plugin that integrates with various sources. -- **[hrsh7th/cmp-nvim-lsp](https://github.com/hrsh7th/cmp-nvim-lsp)**: Nvim-cmp source for neovim's built-in language server client. -- **[L3MON4D3/LuaSnip](https://github.com/L3MON4D3/LuaSnip)**: A snippet engine for Neovim written in Lua. -- **[hrsh7th/cmp-path](https://github.com/hrsh7th/cmp-path)**: Path autocompletion for nvim-cmp. - -### Utility & Miscellaneous - -- **[terrortylor/nvim-comment](https://github.com/terrortylor/nvim-comment)**: Easily comment out lines or sections of code. -- **[akinsho/toggleterm.nvim](https://github.com/akinsho/toggleterm.nvim)**: A Neovim plugin to persist and toggle multiple terminals. -- **[mbbill/undotree](https://github.com/mbbill/undotree)**: Visualize the undo tree to navigate through changes. -- **[github/copilot.vim](https://github.com/github/copilot.vim)**: GitHub Copilot plugin for autocompleting code. -- **[tpope/vim-fugitive](https://github.com/tpope/vim-fugitive)**: A Git wrapper so powerful, it should be illegal. -- **[averms/black-nvim](https://github.com/averms/black-nvim)**: Integration with the Black Python code formatter. -- **[rmagatti/auto-session](https://github.com/rmagatti/auto-session)**: A small automated session manager for Neovim. -- **[kmontocam/nvim-conda](https://github.com/kmontocam/nvim-conda)**: Manage Conda environments within Neovim. -- **[nvimdev/guard.nvim](#)**: *(This seems to be a custom or lesser-known plugin; a link or description would be helpful.)* - - -# The vim Language -## Buffers, Splits/Windows and Tabs - -- Buffers - buffer is an open file, which can be edited from multiple splits -- Splits/Windows - splits aka windows are the panes which you can move through -- Tabs - tab is a set of splits, like a tab in a terminal, people don't use it very often. - -Binds - -- :e - will open a new file (buffer) -- :b - will switch to an already opened file (buffer) -- :vsplit - will open a vertical split -- :split - will open a horizontal split -- use :help tab-page to read more about tabs (they're not very necessary) - -Keybinds - -Often you'll see a keybind described as something like that: ggyG - which copies the entire buffer. -All the signs in the keybind are meant to be pressed as you type them. -To execute this bind you'll need to press: - -- gg - move to the top of the file -- y - start a copy -- shift+g - end the copy from the cursor to the end of the file - -In vim you don't hold the keys in order to complete a key sequence as you type them, and you can configure the timeoutlen to make vim wait more/less between keystrokes. -Keybinds naming - -You don't need to memorize keybinds as the letter stands for its action. - -- y - yank -- p - paste - -Each time where I introduce an action in this guide, I'll mark the letter I use to remember the bind. -Special Keys - -- - is : which starts a cmd -- - is enter -- - is Escape -- - is Ctrl+x -- - is alt+x -- - is alt+shift+x -- - is alt+x -- - is alt+shift+x -- - is the leader key -## Leader - -vim maps most of the keyboard by default, acts as a prefix for custom user binds. -Leader is remappable, the default mapping is , most vim users change it to -Help - -There's a help page for everything, start using it as soon as possible, it's like man just better and for vim. -Modes - -There are a lot of modes in vim, I'll cover the important ones. -To exit from each mode back to normal press Escape. I recommend remapping it to capslock, you're going to press it a lot and it will be much easier to use the pinky without moving your hands. - -- Normal - This is where you will be usually, you can move, copy in this mode, and much more -- Insert (i) - Insert text to the buffer, you want to be in this mode only when you're actually inserting text, you don't want to move in this mode -- Visual (v) - Select and copy/replace text -- Visual Line (V) - Select and copy/replace text by lines -- Command (:,/) - Inserting a command - -Movements and Operators - -vim is built on actions that are mostly built on 2 types, an operator and a movement. -Basic binds - - i - enter Insert mode - a - enter insert mode After the cursor - I - enter Insert mode at the beginning of the line - A - enter insert mode at the end of the line (same as a but for the entire line) - o - insert new line below - O - insert new line above - u - Undo, check out undotree - Ctrl-r - Redo - zz - Recenter the screen, there are more binds for screen actions but this is the most important one - -Multiply Movement - -You can multiply every movement by entering a number before the movement. -For example: 3j will jump 3 lines down -Words - - w - jump Word forward - b - jump word Backwards - e - jump forward to the End of the word - ge - jump to the End of the previous word - -Capital will change the behavior from word to WORD, read :help word and :help WORD to understand the differences -Generics - - 0 - go to the beginning of the line - $ - go to the end of the line - - go Up half a page - - go Down half a page - % - jump to the pair of the bracket/quote/ifdef your cursor on - - jump to the previous position you jumped from (you can do it multiple times) - - jump to the next position you jumped to (you can do it multiple times) - -Pair Movments - -The standard way to jump forward to something is ] and backward is [. - -Some examples - - ]m / [m - Jump to Method - ]] / [[ - Jump to section - } / { - Jump to paragraph - ]c / [c - Jump to diff (Change) - -I suggest to install vim-unimpaired which adds more pair movements. -Searching -Search across the file - -These are not movements! - - / - to start a forward search - ? - to start a backward search - n - go to the Next occurrence - N - go to the previous occurrence - * - forward search the current word under cursor - # - backward search the current word under cursor - -I recommend to remap n and N to nzz and Nzz, zz centers the screen by the line you are on, these binds will go to the next/prev occurrence and center the screen. - -map('n', 'n', 'nzz') -- Auto recenter after n -map('n', 'N', 'Nzz') -- Auto recenter after N - -If you enabled opt.ignorecase you can add \C at the end of your search to re-enable case. -Quick search - -These are movements! You will need to enter a char after the quick search key. - - f - jump to the next char, I remember it as Find - F - jump to the previous char, I remember it as Find - t - jump Till the next char (1 char before the occurrence) - T - jump Till the prev char (1 char after the occurrence) - -These movements are very useful to manipulate text in the same line. This is the reason I enable opt.wrap in vim. - -I highly recommend installing clever-f.vim it will help you get used to these awesome movements fast. -Operators - -The main ones - - y - Yank (copy) - d - Delete - c - Change, delete the text and enters insert mode - < - remove indentation (left) - > - add indentation (right) - = - auto indent - gc - Comment/Uncomment, done with Comment.nvim - -Capital (shift) will apply the operation starting from the cursor to the end of the line, e.g: D deletes the line from the cursor to the end of the line. -Repeating the operator key will apply the operation for the entire line, e.g: yy yanks the entire current line. -Action - -Action is an operator + movement -For example: - - y3k - yank 2 lines above the cursor, including the current line. - ct, - change the text until ,, very useful to change function arguments and more. - -This is why you must have relativenumber on, it will make your life much easier. -"Special" actions - - Hit the operator twice to activate it on the current line. yy will yank the entire line you are on. - Shift+operator to activate the operator from the cursor the end of the line. C will change the line from the cursor to the end. - -One char actions - -Actions without movement - - x - delete the char you are on. - X - delete 1 char before the cursor. - r - Replace 1 char - -How should I remember all those binds? - -Think of a key sequence as an English sentence. - -For example: when I'm using y3j/y3 I'll think of it as yank 3 down, in my mind I "speak" with the editor rather than remembering which keys to press. - - -# tmux shortcuts & cheatsheet - -start new: - - tmux - -start new with session name: - - tmux new -s myname - -attach: - - tmux a # (or at, or attach) - -attach to named: - - tmux a -t myname - -list sessions: - - tmux ls - -kill session: - - tmux kill-session -t myname - -Kill all the tmux sessions: - - tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill - -In tmux, hit the prefix `ctrl+b` (my modified prefix is ctrl+a) and then: - -## List all shortcuts -to see all the shortcuts keys in tmux simply use the `bind-key ?` in my case that would be `CTRL-B ?` - -## Sessions - - :new new session - s list sessions - $ name session - -## Windows (tabs) - - c create window - w list windows - n next window - p previous window - f find window - , name window - & kill window - -## Panes (splits) - - % vertical split - " horizontal split - - o swap panes - q show pane numbers - x kill pane - + break pane into window (e.g. to select text by mouse to copy) - - restore pane from window - ⍽ space - toggle between layouts - q (Show pane numbers, when the numbers show up type the key to goto that pane) - { (Move the current pane left) - } (Move the current pane right) - z toggle pane zoom - -## Sync Panes - -You can do this by switching to the appropriate window, typing your Tmux prefix (commonly Ctrl-B or Ctrl-A) and then a colon to bring up a Tmux command line, and typing: - -``` -:setw synchronize-panes -``` - -You can optionally add on or off to specify which state you want; otherwise the option is simply toggled. This option is specific to one window, so it won’t change the way your other sessions or windows operate. When you’re done, toggle it off again by repeating the command. [tip source](http://blog.sanctum.geek.nz/sync-tmux-panes/) - - -## Resizing Panes - -You can also resize panes if you don’t like the layout defaults. I personally rarely need to do this, though it’s handy to know how. Here is the basic syntax to resize panes: - - PREFIX : resize-pane -D (Resizes the current pane down) - PREFIX : resize-pane -U (Resizes the current pane upward) - PREFIX : resize-pane -L (Resizes the current pane left) - PREFIX : resize-pane -R (Resizes the current pane right) - PREFIX : resize-pane -D 20 (Resizes the current pane down by 20 cells) - PREFIX : resize-pane -U 20 (Resizes the current pane upward by 20 cells) - PREFIX : resize-pane -L 20 (Resizes the current pane left by 20 cells) - PREFIX : resize-pane -R 20 (Resizes the current pane right by 20 cells) - PREFIX : resize-pane -t 2 -L 20 (Resizes the pane with the id of 2 left by 20 cells) - -## Copy mode: - -Pressing PREFIX [ places us in Copy mode. We can then use our movement keys to move our cursor around the screen. By default, the arrow keys work. we set our configuration file to use Vim keys for moving between windows and resizing panes so we wouldn’t have to take our hands off the home row. tmux has a vi mode for working with the buffer as well. To enable it, add this line to .tmux.conf: - - setw -g mode-keys vi - -With this option set, we can use h, j, k, and l to move around our buffer. - -To get out of Copy mode, we just press the ENTER key. Moving around one character at a time isn’t very efficient. Since we enabled vi mode, we can also use some other visible shortcuts to move around the buffer. - -For example, we can use "w" to jump to the next word and "b" to jump back one word. And we can use "f", followed by any character, to jump to that character on the same line, and "F" to jump backwards on the line. - - Function vi emacs - Back to indentation ^ M-m - Clear selection Escape C-g - Copy selection Enter M-w - Cursor down j Down - Cursor left h Left - Cursor right l Right - Cursor to bottom line L - Cursor to middle line M M-r - Cursor to top line H M-R - Cursor up k Up - Delete entire line d C-u - Delete to end of line D C-k - End of line $ C-e - Goto line : g - Half page down C-d M-Down - Half page up C-u M-Up - Next page C-f Page down - Next word w M-f - Paste buffer p C-y - Previous page C-b Page up - Previous word b M-b - Quit mode q Escape - Scroll down C-Down or J C-Down - Scroll up C-Up or K C-Up - Search again n n - Search backward ? C-r - Search forward / C-s - Start of line 0 C-a - Start selection Space C-Space - Transpose chars C-t - -## Misc - - d detach - t big clock - ? list shortcuts - : prompt - -## Configurations Options: - - # Mouse support - set to on if you want to use the mouse - * setw -g mode-mouse off - * set -g mouse-select-pane off - * set -g mouse-resize-pane off - * set -g mouse-select-window off - - # Set the default terminal mode to 256color mode - set -g default-terminal "screen-256color" - - # enable activity alerts - setw -g monitor-activity on - set -g visual-activity on - - # Center the window list - set -g status-justify centre - - # Maximize and restore a pane - unbind Up bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp - unbind Down - bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp - -# Customize Alacritty : -https://ostechnix.com/alacritty-terminal-emulator/ - -# Compare fonts for code : -https://www.codingfont.com/ +A starter template for [LazyVim](https://github.com/LazyVim/LazyVim). +Refer to the [documentation](https://lazyvim.github.io/installation) to get started. diff --git a/dotfiles/.config/nvim/after/plugin/conform.lua b/dotfiles/.config/nvim/after/plugin/conform.lua deleted file mode 100644 index 656afa0..0000000 --- a/dotfiles/.config/nvim/after/plugin/conform.lua +++ /dev/null @@ -1,23 +0,0 @@ -require('conform').setup({ - notify_on_error = false, - format_on_save = function(bufnr) - -- Disable "format_on_save lsp_fallback" for languages that don't - -- have a well standardized coding style. You can add additional - -- languages here or re-enable it for the disabled ones. - local disable_filetypes = { c = true, cpp = true } - return { - timeout_ms = 500, - lsp_fallback = not disable_filetypes[vim.bo[bufnr].filetype], - } - end, - formatters_by_ft = { - lua = { 'stylua' }, - -- Conform can also run multiple formatters sequentially - python = { "isort", "black" }, - -- - -- You can use a sub-list to tell conform to run *until* a formatter - -- is found. - -- javascript = { { "prettierd", "prettier" } }, - }, -} -) \ No newline at end of file diff --git a/dotfiles/.config/nvim/after/plugin/copilot.lua b/dotfiles/.config/nvim/after/plugin/copilot.lua deleted file mode 100644 index e4a441c..0000000 --- a/dotfiles/.config/nvim/after/plugin/copilot.lua +++ /dev/null @@ -1,55 +0,0 @@ --- Enable GitHub Copilot for additional filetypes -vim.g.copilot_filetypes = { - xml = true, - html = true, - css = true, - javascript = true, - typescript = true, - javascriptreact = true, - typescriptreact = true, - python = true, - lua = true, - go = true, - rust = true, - ruby = true, - php = true, - java = true, - c = true, - cpp = true, - dart = true, - kotlin = true, - scala = true, - swift = true, - csharp = true, - fsharp = true, - vb = true, - haskell = true, - ocaml = true, - elixir = true, - clojure = true, - erlang = true, - sql = true, - yaml = true, - json = true, - markdown = true, - tex = true, - vim = true, - sh = true, - fish = true, - zsh = true, - bash = true, - shell = true, - dockerfile = true, - makefile = true, - cmake = true, - plaintext = true, - gitcommit = true, - gitconfig = true, - gitrebase = true, - gitignore = true, - git = true, - nix = true, - -- Add more filetypes as needed -} - --- vim.g.copilot_no_tab_map = true diff --git a/dotfiles/.config/nvim/after/plugin/harpoon.lua b/dotfiles/.config/nvim/after/plugin/harpoon.lua deleted file mode 100644 index 562b384..0000000 --- a/dotfiles/.config/nvim/after/plugin/harpoon.lua +++ /dev/null @@ -1,14 +0,0 @@ -local mark = require("harpoon.mark") -local ui = require("harpoon.ui") - -vim.keymap.set("n", "", mark.add_file) -vim.keymap.set("n", "", mark.rm_file) -vim.keymap.set("n", "", ui.toggle_quick_menu) - -vim.keymap.set("n", "1", function() ui.nav_file(1) end) -vim.keymap.set("n", "2", function() ui.nav_file(2) end) -vim.keymap.set("n", "3", function() ui.nav_file(3) end) -vim.keymap.set("n", "4", function() ui.nav_file(4) end) - -vim.keymap.set("n", "", function() ui.nav_next() end) -vim.keymap.set("n", "", function() ui.nav_prev() end) diff --git a/dotfiles/.config/nvim/after/plugin/highlightundo.lua b/dotfiles/.config/nvim/after/plugin/highlightundo.lua deleted file mode 100644 index 3053959..0000000 --- a/dotfiles/.config/nvim/after/plugin/highlightundo.lua +++ /dev/null @@ -1,19 +0,0 @@ -require('highlight-undo').setup({ - duration = 300, - undo = { - hlgroup = 'HighlightUndo', - mode = 'n', - lhs = 'u', - map = 'undo', - opts = {} - }, - redo = { - hlgroup = 'HighlightUndo', - mode = 'n', - lhs = '', - map = 'redo', - opts = {} - }, - highlight_for_count = true, -}) - diff --git a/dotfiles/.config/nvim/after/plugin/lsp.lua b/dotfiles/.config/nvim/after/plugin/lsp.lua deleted file mode 100644 index b4b03c1..0000000 --- a/dotfiles/.config/nvim/after/plugin/lsp.lua +++ /dev/null @@ -1,216 +0,0 @@ -local lsp = require("lsp-zero") - -lsp.preset("recommended") -lsp.configure('gdscript', { - force_setup = true, -- because the LSP is global. Read more on lsp-zero docs about this. - single_file_support = true, - -- cmd = {'ncat', '127.0.0.1', '6008'}, -- the important trick for Windows! - -- root_dir = require('lspconfig.util').root_pattern('project.godot', '.git'), - filetypes = { 'gd', 'gdscript', 'gdscript3' } -}) - - - --- Fix Undefined global 'vim' --- lsp.nvim_workspace() --- lsp.setup_servers({'lua_ls', 'rust_analyzer', 'tsserver', "anakinls" }) -require('lspconfig').eslint.setup({ - --- ... - on_attach = function(client, bufnr) - vim.api.nvim_create_autocmd("BufWritePre", { - buffer = bufnr, - command = "EslintFixAll", - }) - end, -}) -require('lspconfig').lua_ls.setup({}) -require('lspconfig').tsserver.setup({}) -require('lspconfig').html.setup({}) -require('lspconfig').dockerls.setup({}) -require('lspconfig').cssls.setup({ - capabilities = capabilities, -}) - -local lsp = require('lsp-zero').preset({}) - -lsp.on_attach(function(client, bufnr) - lsp.default_keymaps({ buffer = bufnr }) -end) - - - -local rust_tools = require('rust-tools') - -rust_tools.setup({ - server = { - on_attach = function(_, bufnr) - vim.keymap.set('n', 'ca', rust_tools.hover_actions.hover_actions, { buffer = bufnr }) - end - } -}) --- require('lspconfig').anakin_language_server.setup{} -require('lspconfig').pyright.setup { - settings = { - pyright = { autoImportCompletion = true, }, - } -} -require('lspconfig').ruff_lsp.setup { - init_options = { - settings = { - -- Any extra CLI arguments for `ruff` go here. - args = {}, - } - } -} - - --- YAML SCHEMES -require('lspconfig').yamlls.setup { - settings = { - yaml = { - schemas = { - ["https://json.schemastore.org/github-workflow.json"] = "/.github/workflows/*", - ["https://gitlab.com/gitlab-org/gitlab/-/raw/master/app/assets/javascripts/editor/schema/ci.json"] = ".gitlab-ci.yml" - }, - }, - } -} -local cmp = require('cmp') - - -local cmp_select = { behavior = cmp.SelectBehavior.Select } -local cmp_mappings = lsp.defaults.cmp_mappings({ - [''] = cmp.mapping.select_prev_item(cmp_select), - -- [''] = cmp.mapping.select_prev_item(cmp_select), - -- [''] = cmp.mapping.select_next_item(cmp_select), - -- [''] = cmp.mapping.select_next_item(cmp_select), - -- [''] = cmp.mapping.select_next_item(cmp_select), - [''] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif require('luasnip').expand_or_jumpable() then - vim.fn.feedkeys(vim.api.nvim_replace_termcodes('luasnip-expand-or-jump', true, true, true), '') - elseif vim.b._copilot_suggestion ~= nil then - vim.fn.feedkeys(vim.api.nvim_replace_termcodes(vim.fn['copilot#Accept'](), true, true, true), '') - else - fallback() - end - end, { - 'i', - 's', - }), - -- [''] = cmp.mapping.confirm({ select = true }), - [''] = cmp.mapping.confirm({ select = true }), - [""] = cmp.mapping.complete(), -}) - --- `/` cmdline setup. -cmp.setup.cmdline('/', { - mapping = cmp.mapping.preset.cmdline(), - sources = { - { name = 'buffer' }, - { name = 'path' } - } -}) - --- `:` cmdline setup. -cmp.setup.cmdline(':', { - mapping = cmp.mapping.preset.cmdline(), - sources = cmp.config.sources({ - { name = 'path' } - }, { - { - name = 'cmdline', - option = { - ignore_cmds = { 'Man', '!' } - } - } - }) -}) - --- THEMING CMP -local lspkind = require('lspkind') -cmp.setup({ - mapping = cmp_mappings, - window = { - documentation = cmp.config.window.bordered(), - completion = { - winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,Search:None", - col_offset = -3, - side_padding = 0, - border = 'rounded', - scrollbar = '║', - }, - }, - formatting = { - fields = { "kind", "abbr", "menu" }, - format = function(entry, vim_item) - local kind = require("lspkind").cmp_format({ mode = "symbol_text", maxwidth = 50 })(entry, vim_item) - local strings = vim.split(kind.kind, "%s", { trimempty = true }) - kind.kind = " " .. (strings[1] or "") .. " " - kind.menu = " (" .. (strings[2] or "") .. ")" - - return kind - end, - }, - sources = { - { name = "nvim_lsp" }, - { name = "buffer" }, - { name = "path" }, - { name = "luasnip" }, - { name = "nvim_lua" }, - } -}) - --- AUTO COMPLETION --- cmp_mappings[''] = nil --- cmp_mappings[''] = nil - --- lsp.setup_nvim_cmp({ --- mapping = cmp_mappings --- }) - -lsp.set_preferences({ - suggest_lsp_servers = false, - sign_icons = { - error = 'E', - warn = 'W', - hint = 'H', - info = 'I' - } -}) - - -local function quickfix() - vim.lsp.buf.code_action({ - filter = function(a) return a.isPreferred end, - apply = true - }) -end - - -lsp.on_attach(function(client, bufnr) - local opts = { buffer = bufnr, remap = false } - - vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts) - -- vim.keymap.set("n", "gr", "Telescope lsp_definitions", opts) - -- vim.keymap.set("n", "gr", function() vim.lsp.buf.references() end, opts) - -- feed lsp.buf.references() to telescope - vim.keymap.set("n", "gr", "Telescope lsp_references", opts) - vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts) - vim.keymap.set("n", "vws", function() vim.lsp.buf.workspace_symbol() end, opts) - vim.keymap.set("n", "vd", function() vim.diagnostic.open_float() end, opts) - vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, opts) - vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, opts) - vim.keymap.set("n", "vca", function() vim.lsp.buf.code_action() end, opts) - vim.keymap.set("n", "vrr", function() vim.lsp.buf.references() end, opts) - vim.keymap.set("n", "rn", function() vim.lsp.buf.rename() end, opts) - -- vim.keymap.set("i", "", function() vim.lsp.buf.signature_help() end, opts) - vim.keymap.set('n', 'qf', quickfix, opts) -end) - -lsp.setup() - -vim.diagnostic.config({ - virtual_text = true -}) diff --git a/dotfiles/.config/nvim/after/plugin/lsplines.lua b/dotfiles/.config/nvim/after/plugin/lsplines.lua deleted file mode 100644 index 9cfe3d0..0000000 --- a/dotfiles/.config/nvim/after/plugin/lsplines.lua +++ /dev/null @@ -1,5 +0,0 @@ --- Disable virtual_text since it's redundant due to lsp_lines. --- vim.diagnostic.config({ --- virtual_text = false, --- }) --- require("lsp_lines").setup() diff --git a/dotfiles/.config/nvim/after/plugin/lualine.lua b/dotfiles/.config/nvim/after/plugin/lualine.lua deleted file mode 100644 index 85fd859..0000000 --- a/dotfiles/.config/nvim/after/plugin/lualine.lua +++ /dev/null @@ -1,67 +0,0 @@ - -local virtual_env = function() - -- only show virtual env for Python - if vim.bo.filetype ~= 'python' then - return "" - end - - local conda_env = os.getenv('CONDA_DEFAULT_ENV') - local venv_path = os.getenv('VIRTUAL_ENV') - - if venv_path == nil then - if conda_env == nil then - return "" - else - return string.format(" %s (conda)", conda_env) - end - else - local venv_name = vim.fn.fnamemodify(venv_path, ':t') - return string.format(" %s (venv)", venv_name) - end -end - -require('lualine').setup { - options = { - icons_enabled = true, - theme = 'auto', - component_separators = { left = '', right = ''}, - section_separators = { left = '', right = ''}, - disabled_filetypes = { - statusline = {}, - winbar = {}, - }, - ignore_focus = {}, - always_divide_middle = true, - globalstatus = false, - refresh = { - statusline = 1000, - tabline = 1000, - winbar = 1000, - } - }, - sections = { - lualine_a = {'mode'}, - lualine_b = {'branch', 'diff', - { - virtual_env, - color = { fg = 'black', bg = "#F1CA81" } - }, 'diagnostics'}, - lualine_c = {'filename'}, - lualine_x = {'encoding', 'fileformat', 'filetype'}, - lualine_y = {'progress'}, - lualine_z = {'location'} - }, - inactive_sections = { - lualine_a = {}, - lualine_b = {}, - lualine_c = {'filename'}, - lualine_x = {'location'}, - lualine_y = {}, - lualine_z = {} - }, - tabline = {}, - winbar = {}, - inactive_winbar = {}, - extensions = {} -} ---require('lualine').setup() diff --git a/dotfiles/.config/nvim/after/plugin/luasnip.lua b/dotfiles/.config/nvim/after/plugin/luasnip.lua deleted file mode 100644 index 926dbd3..0000000 --- a/dotfiles/.config/nvim/after/plugin/luasnip.lua +++ /dev/null @@ -1,4 +0,0 @@ -require('luasnip').config.setup({ - history = true -}) -require("luasnip.loaders.from_vscode").lazy_load() diff --git a/dotfiles/.config/nvim/after/plugin/nvimtree.lua b/dotfiles/.config/nvim/after/plugin/nvimtree.lua deleted file mode 100644 index a60b47b..0000000 --- a/dotfiles/.config/nvim/after/plugin/nvimtree.lua +++ /dev/null @@ -1,17 +0,0 @@ -require("nvim-tree").setup({ -actions = { - open_file = { - quit_on_open = true, - }, - }, - sort_by = "case_sensitive", - view = { - width = 30, - }, - renderer = { - group_empty = true, - }, - filters = { - dotfiles = false, - }, -}) diff --git a/dotfiles/.config/nvim/after/plugin/rusttools.lua b/dotfiles/.config/nvim/after/plugin/rusttools.lua deleted file mode 100644 index 8174410..0000000 --- a/dotfiles/.config/nvim/after/plugin/rusttools.lua +++ /dev/null @@ -1,13 +0,0 @@ ---local rt = require("rust-tools") ---[=====[ -rt.setup({ - server = { - on_attach = function(_, bufnr) - -- Hover actions - vim.keymap.set("n", "", rt.hover_actions.hover_actions, { buffer = bufnr }) - -- Code action groups - vim.keymap.set("n", "a", rt.code_action_group.code_action_group, { buffer = bufnr }) - end, - }, -}) ---]=====] diff --git a/dotfiles/.config/nvim/after/plugin/tabs.lua b/dotfiles/.config/nvim/after/plugin/tabs.lua deleted file mode 100644 index 9f9c276..0000000 --- a/dotfiles/.config/nvim/after/plugin/tabs.lua +++ /dev/null @@ -1,43 +0,0 @@ -local bufferline = require("bufferline") -bufferline.setup { - options = { - numbers = function(opts) - local marks = require('harpoon').get_mark_config().marks - local bufname = vim.fn.bufname(opts.id) - - for i, mark in ipairs(marks) do - if bufname == mark.filename then - return i - end - end - - return -1 - end, - custom_filter = function(buf_number) - local marks = require('harpoon').get_mark_config().marks - for _, mark in ipairs(marks) do - if vim.fn.bufname(buf_number) == mark.filename then - return true - end - end - return false - end, - sort_by = function(buffer_a, buffer_b) - local a = 1 - local b = 1 - - local marks = require('harpoon').get_mark_config().marks - for _, mark in ipairs(marks) do - if vim.fn.bufname(buffer_a.id) == mark.filename then - a = 0 - break - elseif vim.fn.bufname(buffer_b.id) == mark.filename then - b = 0 - break - end - end - return a < b - end, - }, -} - diff --git a/dotfiles/.config/nvim/after/plugin/telescope.lua b/dotfiles/.config/nvim/after/plugin/telescope.lua deleted file mode 100644 index 1b5323e..0000000 --- a/dotfiles/.config/nvim/after/plugin/telescope.lua +++ /dev/null @@ -1,16 +0,0 @@ -local telescope = require('telescope') - -telescope.setup { - pickers = { - find_files = { - hidden = true - } - } -} - -local builtin = require("telescope.builtin") -vim.keymap.set("n", "", "lua require'telescope.builtin'.find_files({ find_command = {'rg', '--files', '--hidden', '-g', '!.git' }})", {}) -vim.keymap.set("n", "pf", builtin.git_files, {}) -vim.keymap.set("n", "ps", function() -builtin.grep_string({ search = vim.fn.input("Grep > ") }) -end) diff --git a/dotfiles/.config/nvim/after/plugin/undotree.lua b/dotfiles/.config/nvim/after/plugin/undotree.lua deleted file mode 100644 index d68899f..0000000 --- a/dotfiles/.config/nvim/after/plugin/undotree.lua +++ /dev/null @@ -1 +0,0 @@ -vim.keymap.set("n", "u", vim.cmd.UndotreeToggle) \ No newline at end of file diff --git a/dotfiles/.config/nvim/ftplugin/python.lua b/dotfiles/.config/nvim/ftplugin/python.lua deleted file mode 100644 index 1d6fd4b..0000000 --- a/dotfiles/.config/nvim/ftplugin/python.lua +++ /dev/null @@ -1,28 +0,0 @@ -local function run_curr_python_file() - print("Running current python file...") - -- Get file name in the current buffer - local file_name = vim.api.nvim_buf_get_name(0) - - -- Get terminal codes for running python file - local py_cmd = vim.api.nvim_replace_termcodes("python \"" .. file_name .. "\"", true, false, true) - - -- Get terminal codes for key-press sequence to launch toggleterm in LunarVim - -- (one may have to use for Ctrl + backslash) - local lnrvim_togterm_cmd = vim.api.nvim_replace_termcodes("", true, false, true) - - -- Press keys to launch toggleterm in LunarVim - vim.api.nvim_feedkeys(lnrvim_togterm_cmd, "m", true) - - -- Press keys to run python command on current file - vim.api.nvim_feedkeys(py_cmd, "t", false) -end --- --- vim.keymap.set('n', '5', '', { --- desc = "Run .py file via toggle term", --- callback = run_curr_python_file --- }) - -vim.keymap.set('n', '5', ':w:!python %', { - desc = "Run .py file via toggle term", - -- callback = run_curr_python_file -}) diff --git a/dotfiles/.config/nvim/init.lua b/dotfiles/.config/nvim/init.lua index 9f797be..2514f9e 100644 --- a/dotfiles/.config/nvim/init.lua +++ b/dotfiles/.config/nvim/init.lua @@ -1,28 +1,2 @@ -require("ray") -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(require("ray.lazy", opts)) --- vim.cmd([[colorscheme rose-pine]]) --- vim.cmd([[colorscheme tokyonight-night]]) -vim.cmd([[colorscheme tokyodark]]) --- vim.cmd([[colorscheme catppuccin-mocha]]) -vim.api.nvim_set_hl(0, "Normal", { bg = "none" }) -vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" }) --- change nvim background color to black '#1a1b26' -vim.cmd([[hi Normal guibg=#121212]]) - -if vim.g.neovide then - -- set to FiraCode Nerd Font - vim.o.guifont = "FiraCode Nerd Font:h16" - vim.g.neovide_transparency = 0.9 -end +-- bootstrap lazy.nvim, LazyVim and your plugins +require("config.lazy") diff --git a/dotfiles/.config/nvim/lazy-lock.json b/dotfiles/.config/nvim/lazy-lock.json deleted file mode 100644 index ee6f1aa..0000000 --- a/dotfiles/.config/nvim/lazy-lock.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" }, - "auto-session": { "branch": "main", "commit": "af2219b9fa99c1d7ac409bd9eac094c459d3f52d" }, - "bufferline.nvim": { "branch": "main", "commit": "99337f63f0a3c3ab9519f3d1da7618ca4f91cffe" }, - "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, - "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, - "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, - "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, - "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, - "conform.nvim": { "branch": "master", "commit": "797d1f622a23d4a21bb58218bdf5999a9beac4ef" }, - "copilot.vim": { "branch": "release", "commit": "88d08cf54f623341adde4b18362bffc95174dcd5" }, - "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, - "dressing.nvim": { "branch": "master", "commit": "e3714c8049b2243e792492c4149e4cc395c68eb9" }, - "fidget.nvim": { "branch": "main", "commit": "ef99df04a1c53a453602421bc0f756997edc8289" }, - "friendly-snippets": { "branch": "main", "commit": "700c4a25caacbb4648c9a27972c2fe203948e0c2" }, - "git-blame.nvim": { "branch": "master", "commit": "408d5487d908dfe5d48e5645d8b27ddcc16b11e0" }, - "git-conflict.nvim": { "branch": "main", "commit": "bfd9fe6fba9a161fc199771d85996236a0d0faad" }, - "gitsigns.nvim": { "branch": "main", "commit": "47c8e3e571376b24de62408fd0c9d12f0a9fc0a3" }, - "harpoon": { "branch": "master", "commit": "ccae1b9bec717ae284906b0bf83d720e59d12b91" }, - "highlight-undo.nvim": { "branch": "main", "commit": "1ea1c79372d7d93c88fd97543880927b7635e3d2" }, - "hlargs.nvim": { "branch": "main", "commit": "30fe1b3de2b7614f061be4fc9c71984a2b87e50a" }, - "indent-blankline.nvim": { "branch": "master", "commit": "d98f537c3492e87b6dc6c2e3f66ac517528f406f" }, - "lazy.nvim": { "branch": "main", "commit": "eb4957442e3182f051b0ae11da32e06d22c190e3" }, - "lazygit.nvim": { "branch": "main", "commit": "ad3e1ea592f9d13e86e0d4e850224d9d78069508" }, - "leap.nvim": { "branch": "main", "commit": "24935d06c7e06bf8929feb24a3525cd128fc0cc4" }, - "lsp-zero.nvim": { "branch": "v3.x", "commit": "16de3b18c5f7b6230d89b8e64ce9a4801b6f8d08" }, - "lsp_lines.nvim": { "branch": "main", "commit": "3b57922d2d79762e6baedaf9d66d8ba71f822816" }, - "lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" }, - "lspsaga.nvim": { "branch": "main", "commit": "6f920cfabddb9b7de5a3a4d0b7cd4f0774ae23e2" }, - "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, - "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "37a336b653f8594df75c827ed589f1c91d91ff6c" }, - "mason-tool-installer.nvim": { "branch": "main", "commit": "c5e07b8ff54187716334d585db34282e46fa2932" }, - "mason.nvim": { "branch": "main", "commit": "0950b15060067f752fde13a779a994f59516ce3d" }, - "neodev.nvim": { "branch": "main", "commit": "02893eeb9d6e8503817bd52385e111cba9a90500" }, - "noice.nvim": { "branch": "main", "commit": "f65b6b7ab87796f93ea8f8a92d5a64dc53d912d1" }, - "nui.nvim": { "branch": "main", "commit": "322978c734866996274467de084a95e4f9b5e0b1" }, - "nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" }, - "nvim-cmp": { "branch": "main", "commit": "a110e12d0b58eefcf5b771f533fc2cf3050680ac" }, - "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, - "nvim-conda": { "branch": "main", "commit": "7e63124d98f48a3bb255eaa71d1602db610b9047" }, - "nvim-lint": { "branch": "master", "commit": "941fa1220a61797a51f3af9ec6b7d74c8c7367ce" }, - "nvim-lspconfig": { "branch": "master", "commit": "37f362ef42d1a604d332e8d3d7d47593852b4313" }, - "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, - "nvim-puppeteer": { "branch": "main", "commit": "b51baeae3b9bff483eea4cd3c47cc4c0cf85aecd" }, - "nvim-toc": { "branch": "main", "commit": "afc27debc800129c50c5b870846ce1a5c9ce4479" }, - "nvim-tree.lua": { "branch": "master", "commit": "2086e564c4d23fea714e8a6d63b881e551af2f41" }, - "nvim-treesitter": { "branch": "master", "commit": "8dd40c7609c04d7bad7eb21d71f78c3fa4dc1c2c" }, - "nvim-web-devicons": { "branch": "master", "commit": "c0cfc1738361b5da1cd0a962dd6f774cc444f856" }, - "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, - "project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" }, - "refactoring.nvim": { "branch": "master", "commit": "d2786877c91aa409c824f27b4ce8a9f560dda60a" }, - "rose-pine": { "branch": "main", "commit": "8c4660cfe697621bcc61d37b3651ffed94fe7fed" }, - "rust-tools.nvim": { "branch": "master", "commit": "676187908a1ce35ffcd727c654ed68d851299d3e" }, - "telescope.nvim": { "branch": "master", "commit": "54930e1abfc94409e1bb9266e752ef8379008592" }, - "tmux.nvim": { "branch": "main", "commit": "3787752613777b96111ba02e24cbcfdcc6ebd57a" }, - "todo-comments.nvim": { "branch": "main", "commit": "51e10f838e84b4756c16311d0b1ef0972c6482d2" }, - "tokyodark": { "branch": "master", "commit": "14bc1b3e596878a10647af7c82de7736300f3322" }, - "tokyonight.nvim": { "branch": "main", "commit": "81c867c5f638597a82c82094dcb90ed42444dabc" }, - "undotree": { "branch": "master", "commit": "56c684a805fe948936cda0d1b19505b84ad7e065" }, - "vim-fugitive": { "branch": "master", "commit": "64d6cafb9dcbacce18c26d7daf617ebb96b273f3" }, - "vim-tmux-navigator": { "branch": "master", "commit": "5b3c701686fb4e6629c100ed32e827edf8dad01e" }, - "wilder.nvim": { "branch": "master", "commit": "679f348dc90d80ff9ba0e7c470c40a4d038dcecf" } -} \ No newline at end of file diff --git a/dotfiles/.config/nvim/lazyvim.json b/dotfiles/.config/nvim/lazyvim.json new file mode 100644 index 0000000..efe400c --- /dev/null +++ b/dotfiles/.config/nvim/lazyvim.json @@ -0,0 +1,40 @@ +{ + "extras": [ + "lazyvim.plugins.extras.coding.copilot", + "lazyvim.plugins.extras.coding.copilot-chat", + "lazyvim.plugins.extras.coding.mini-comment", + "lazyvim.plugins.extras.coding.mini-surround", + "lazyvim.plugins.extras.coding.yanky", + "lazyvim.plugins.extras.dap.core", + "lazyvim.plugins.extras.editor.harpoon2", + "lazyvim.plugins.extras.editor.illuminate", + "lazyvim.plugins.extras.editor.mini-diff", + "lazyvim.plugins.extras.editor.mini-files", + "lazyvim.plugins.extras.editor.navic", + "lazyvim.plugins.extras.editor.overseer", + "lazyvim.plugins.extras.editor.refactoring", + "lazyvim.plugins.extras.formatting.black", + "lazyvim.plugins.extras.lang.cmake", + "lazyvim.plugins.extras.lang.docker", + "lazyvim.plugins.extras.lang.git", + "lazyvim.plugins.extras.lang.json", + "lazyvim.plugins.extras.lang.markdown", + "lazyvim.plugins.extras.lang.python", + "lazyvim.plugins.extras.lang.rust", + "lazyvim.plugins.extras.lang.sql", + "lazyvim.plugins.extras.lang.toml", + "lazyvim.plugins.extras.lang.yaml", + "lazyvim.plugins.extras.test.core", + "lazyvim.plugins.extras.ui.mini-animate", + "lazyvim.plugins.extras.ui.mini-indentscope", + "lazyvim.plugins.extras.ui.treesitter-context", + "lazyvim.plugins.extras.util.dot", + "lazyvim.plugins.extras.util.mini-hipatterns", + "lazyvim.plugins.extras.util.project", + "lazyvim.plugins.extras.util.startuptime" + ], + "news": { + "NEWS.md": "6520" + }, + "version": 6 +} \ No newline at end of file diff --git a/dotfiles/.config/nvim/lua/cmp_copilot/init.lua b/dotfiles/.config/nvim/lua/cmp_copilot/init.lua deleted file mode 100644 index d5fdc51..0000000 --- a/dotfiles/.config/nvim/lua/cmp_copilot/init.lua +++ /dev/null @@ -1,53 +0,0 @@ -local source = {} - -source.new = function() - return setmetatable({ - timer = vim.loop.new_timer() - }, { __index = source }) -end - -source.get_keyword_pattern = function() - return '.' -end - -source.complete = function(self, params, callback) - vim.fn['copilot#Complete'](function(result) - callback({ - isIncomplete = true, - items = vim.tbl_map(function(item) - local prefix = string.sub(params.context.cursor_before_line, item.range.start.character + 1, item.position.character) - return { - label = prefix .. item.displayText, - textEdit = { - range = item.range, - newText = item.text, - }, - documentation = { - kind = 'markdown', - value = table.concat({ - '```' .. vim.api.nvim_buf_get_option(0, 'filetype'), - self:deindent(item.text), - '```' - }, '\n'), - } - } - end, (result or {}).completions or {}) - }) - end, function() - callback({ - isIncomplete = true, - items = {}, - }) - end) -end - -source.deindent = function(_, text) - local indent = string.match(text, '^%s*') - if not indent then - return text - end - return string.gsub(string.gsub(text, '^' .. indent, ''), '\n' .. indent, '\n') -end - -return source - diff --git a/dotfiles/.config/nvim/lua/config/autocmds.lua b/dotfiles/.config/nvim/lua/config/autocmds.lua new file mode 100644 index 0000000..27e9e06 --- /dev/null +++ b/dotfiles/.config/nvim/lua/config/autocmds.lua @@ -0,0 +1,3 @@ +-- Autocmds are automatically loaded on the VeryLazy event +-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua +-- Add any additional autocmds here diff --git a/dotfiles/.config/nvim/lua/config/keymaps.lua b/dotfiles/.config/nvim/lua/config/keymaps.lua new file mode 100644 index 0000000..d42c01d --- /dev/null +++ b/dotfiles/.config/nvim/lua/config/keymaps.lua @@ -0,0 +1,47 @@ +-- Keymaps are automatically loaded on the VeryLazy event +-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua +-- Add any additional keymaps hereby +vim.keymap.set("n", "pv", ":NvimTreeOpen") +vim.keymap.set("n", "J", "mzJ`z") + +-- Allow half page jumpings to keep the cursor in the middle +vim.keymap.set("n", "", "zz") +vim.keymap.set("n", "", "zz") + +-- Allows search terms to keep cursor in the middle +vim.keymap.set("n", "n", "nzzzv") +vim.keymap.set("n", "N", "Nzzzv") + +-- greatest remap ever +-- Allow to copy paste and dont have the buffer reinitialized after pasting +vim.keymap.set("x", "p", [["_dP]]) + +-- next greatest remap ever : asbjornHaland +-- interactions with the system copy buffers +vim.keymap.set({ "n", "v" }, "y", [["+y]]) +vim.keymap.set("n", "Y", [["+Y]]) + +vim.keymap.set({ "n", "v" }, "q", [["_d]]) + +-- This is going to get me cancelled +vim.keymap.set("i", "", "") + +-- next greatest remap ever : asbjornHaland +-- interactions with the system copy buffers +vim.keymap.set({ "n", "v" }, "y", [["+y]]) +vim.keymap.set("n", "Y", [["+Y]]) + +vim.keymap.set({ "n", "v" }, "q", [["_d]]) + +-- This is going to get me cancelled +vim.keymap.set("i", "", "") + +-- Add visual keymap so that when in visual mode, selected text get searched globally +vim.keymap.set("v", "*", ":call VisualSelection('f')", { noremap = true, silent = true }) +vim.keymap.set("n", ";", ":", { noremap = true, silent = true }) + +vim.keymap.set("n", "", "TmuxNavigateLeft") +vim.keymap.set("n", "", "TmuxNavigateDown") +vim.keymap.set("n", "", "TmuxNavigateUp") +vim.keymap.set("n", "", "TmuxNavigateRight") +vim.keymap.set("n", "", "TmuxNavigatePrevious") diff --git a/dotfiles/.config/nvim/lua/config/lazy.lua b/dotfiles/.config/nvim/lua/config/lazy.lua new file mode 100644 index 0000000..6108175 --- /dev/null +++ b/dotfiles/.config/nvim/lua/config/lazy.lua @@ -0,0 +1,51 @@ +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end +end +vim.opt.rtp:prepend(lazypath) + +require("lazy").setup({ + spec = { + -- add LazyVim and import its plugins + { "LazyVim/LazyVim", import = "lazyvim.plugins" }, + -- import/override with your plugins + { import = "plugins" }, + }, + defaults = { + -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup. + -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default. + lazy = false, + -- It's recommended to leave version=false for now, since a lot the plugin that support versioning, + -- have outdated releases, which may break your Neovim install. + version = false, -- always use the latest git commit + -- version = "*", -- try installing the latest stable version for plugins that support semver + }, + install = { colorscheme = { "rose-pine" } }, + color = { scheme = "rose-pine" }, + checker = { enabled = true }, -- automatically check for plugin updates + performance = { + rtp = { + -- disable some rtp plugins + disabled_plugins = { + "gzip", + -- "matchit", + -- "matchparen", + -- "netrwPlugin", + "tarPlugin", + "tohtml", + "tutor", + "zipPlugin", + }, + }, + }, +}) diff --git a/dotfiles/.config/nvim/lua/config/options.lua b/dotfiles/.config/nvim/lua/config/options.lua new file mode 100644 index 0000000..ac400f0 --- /dev/null +++ b/dotfiles/.config/nvim/lua/config/options.lua @@ -0,0 +1,19 @@ +-- Options are automatically loaded before lazy.nvim startup +-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua +-- Add any additional options here +-- +-- -- Set clipboard to unnamed +vim.api.nvim_set_option("clipboard", "unnamed") + +-- Set colorcolumn +vim.api.nvim_set_option("colorcolumn", "120") + +-- Set clipboard to be shared between vim and system +vim.api.nvim_set_option("clipboard", "unnamedplus") + +-- Jump to last edit position on opening file +vim.cmd([[ + + au BufReadPost * if expand('%:p') !~# '\m/\.git/' && line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif + +]]) diff --git a/dotfiles/.config/nvim/lua/plugins/applemusic.lua b/dotfiles/.config/nvim/lua/plugins/applemusic.lua new file mode 100644 index 0000000..9ca3949 --- /dev/null +++ b/dotfiles/.config/nvim/lua/plugins/applemusic.lua @@ -0,0 +1,19 @@ +return { + "p5quared/apple-music.nvim", + dependencies = { "nvim-telescope/telescope.nvim" }, + config = true, + keys = { + -- { "amp", function() require("apple-music").toggle_play() end, desc = "Toggle [P]layback" }, + -- { "ams", function() require("apple-music").toggle_shuffle() end, desc = "Toggle [S]huffle" }, + -- { "fp", function() require("apple-music").select_playlist_telescope() end, desc = "[F]ind [P]laylists" }, + -- { "fa", function() require("apple-music").select_album_telescope() end, desc = "[F]ind [A]lbum" }, + { + "afs", + function() + require("apple-music").select_track_telescope() + end, + desc = "[F]ind [S]ong", + }, + -- { "amx", function() require("apple-music").cleanup_all() end, desc = "Cleanup Temp Playlists" }, + }, +} diff --git a/dotfiles/.config/nvim/lua/plugins/colorscheme.lua b/dotfiles/.config/nvim/lua/plugins/colorscheme.lua new file mode 100644 index 0000000..d6341fb --- /dev/null +++ b/dotfiles/.config/nvim/lua/plugins/colorscheme.lua @@ -0,0 +1,14 @@ +return { + -- add gruvbox + -- { "rose-pine/neovim" }, + { "projekt0n/github-nvim-theme" }, + + -- Configure LazyVim to load gruvbox + { + "LazyVim/LazyVim", + opts = { + -- colorscheme = "rose-pine", + colorscheme = "github_dark_default", + }, + }, +} diff --git a/dotfiles/.config/nvim/lua/plugins/copilot.lua b/dotfiles/.config/nvim/lua/plugins/copilot.lua deleted file mode 100644 index 8b13789..0000000 --- a/dotfiles/.config/nvim/lua/plugins/copilot.lua +++ /dev/null @@ -1 +0,0 @@ - diff --git a/dotfiles/.config/nvim/lua/plugins/dap.lua b/dotfiles/.config/nvim/lua/plugins/dap.lua new file mode 100644 index 0000000..8ea3987 --- /dev/null +++ b/dotfiles/.config/nvim/lua/plugins/dap.lua @@ -0,0 +1,3 @@ +return { + "mfussener/nvim-dap", +} diff --git a/dotfiles/.config/nvim/lua/plugins/dappython.lua b/dotfiles/.config/nvim/lua/plugins/dappython.lua new file mode 100644 index 0000000..509bd11 --- /dev/null +++ b/dotfiles/.config/nvim/lua/plugins/dappython.lua @@ -0,0 +1,9 @@ +return { + "mfussenegger/nvim-dap-python", + ft = "python", + dependencies = { "mfussener/nvim-dap" }, + config = function(_, opts) -- luacheck: ignore 212 + local path = "~/.local/share/nvim/mason/packages/debugpy/venv/bin/python" + require("dap-python").setup(path) + end, +} diff --git a/dotfiles/.config/nvim/lua/plugins/hardtime.lua b/dotfiles/.config/nvim/lua/plugins/hardtime.lua new file mode 100644 index 0000000..142c1cd --- /dev/null +++ b/dotfiles/.config/nvim/lua/plugins/hardtime.lua @@ -0,0 +1,5 @@ +return { + "m4xshen/hardtime.nvim", + dependencies = { "MunifTanjim/nui.nvim", "nvim-lua/plenary.nvim" }, + opts = {}, +} diff --git a/dotfiles/.config/nvim/lua/plugins/harpoon.lua b/dotfiles/.config/nvim/lua/plugins/harpoon.lua new file mode 100644 index 0000000..a795c6b --- /dev/null +++ b/dotfiles/.config/nvim/lua/plugins/harpoon.lua @@ -0,0 +1,42 @@ +return { + "ThePrimeagen/harpoon", + branch = "harpoon2", + opts = { + menu = { + width = vim.api.nvim_win_get_width(0) - 4, + }, + settings = { + save_on_toggle = true, + }, + }, + keys = function() + local keys = { + { + "", + function() + require("harpoon"):list():add() + end, + desc = "Harpoon File", + }, + { + "", + function() + local harpoon = require("harpoon") + harpoon.ui:toggle_quick_menu(harpoon:list()) + end, + desc = "Harpoon Quick Menu", + }, + } + + for i = 1, 5 do + table.insert(keys, { + "" .. i, + function() + require("harpoon"):list():select(i) + end, + desc = "Harpoon to File " .. i, + }) + end + return keys + end, +} diff --git a/dotfiles/.config/nvim/lua/plugins/lazydocker.lua b/dotfiles/.config/nvim/lua/plugins/lazydocker.lua new file mode 100644 index 0000000..862e329 --- /dev/null +++ b/dotfiles/.config/nvim/lua/plugins/lazydocker.lua @@ -0,0 +1,11 @@ +return { + "mgierada/lazydocker.nvim", + dependencies = { "akinsho/toggleterm.nvim" }, + config = function() + require("lazydocker").setup({}) + end, + event = "BufRead", -- or any other event you might want to use. + keys = { + { "dd", "Lazydocker", desc = "LazyDocker" }, + }, +} diff --git a/dotfiles/.config/nvim/lua/plugins/lazygit.lua b/dotfiles/.config/nvim/lua/plugins/lazygit.lua new file mode 100644 index 0000000..f8f1cb6 --- /dev/null +++ b/dotfiles/.config/nvim/lua/plugins/lazygit.lua @@ -0,0 +1,19 @@ +return { + "kdheepak/lazygit.nvim", + cmd = { + "LazyGit", + "LazyGitConfig", + "LazyGitCurrentFile", + "LazyGitFilter", + "LazyGitFilterCurrentFile", + }, + -- optional for floating window border decoration + dependencies = { + "nvim-lua/plenary.nvim", + }, + -- setting the keybinding for LazyGit with 'keys' is recommended in + -- order to load the plugin when the command is run for the first time + keys = { + { "gg", "LazyGit", desc = "LazyGit" }, + }, +} diff --git a/dotfiles/.config/nvim/lua/plugins/telescope.lua b/dotfiles/.config/nvim/lua/plugins/telescope.lua index b6ff0b6..a2688b4 100644 --- a/dotfiles/.config/nvim/lua/plugins/telescope.lua +++ b/dotfiles/.config/nvim/lua/plugins/telescope.lua @@ -1,5 +1,24 @@ return { "nvim-telescope/telescope.nvim", - tag = "0.1.3", - dependencies = { "nvim-lua/plenary.nvim" }, + keys = { + -- disable the keymap to grep files + -- { "/", false }, + -- change a keymap + -- { "ff", "Telescope find_files", desc = "Find Files" }, + -- add a keymap to browse plugin files + { + "", + function() + require("telescope.builtin").find_files({ find_command = { "rg", "--files", "--hidden", "-g", "!.git" } }) + end, + desc = "Find Plugin File", + }, + { + "ps", + function() + require("telescope.builtin").grep_string({ search = vim.fn.input("Grep > ") }) + end, + desc = "Grep String", + }, + }, } diff --git a/dotfiles/.config/nvim/lua/plugins/tmux.lua b/dotfiles/.config/nvim/lua/plugins/tmux.lua new file mode 100644 index 0000000..7daf0a5 --- /dev/null +++ b/dotfiles/.config/nvim/lua/plugins/tmux.lua @@ -0,0 +1,18 @@ +return { + "christoomey/vim-tmux-navigator", + cmd = { + "TmuxNavigateLeft", + "TmuxNavigateDown", + "TmuxNavigateUp", + "TmuxNavigateRight", + "TmuxNavigatePrevious", + }, + keys = { + { "", "TmuxNavigateLeft" }, + { "", "TmuxNavigateDown" }, + { "", "TmuxNavigateUp" }, + { "", "TmuxNavigateRight" }, + { "", "TmuxNavigatePrevious" }, + }, + lazy = false, +} diff --git a/dotfiles/.config/nvim/lua/ray/ascii.lua b/dotfiles/.config/nvim/lua/ray/ascii.lua deleted file mode 100644 index afa2edb..0000000 --- a/dotfiles/.config/nvim/lua/ray/ascii.lua +++ /dev/null @@ -1,19 +0,0 @@ --- return { --- ' ███╗ ██╗ ███████╗ ██████╗ ██╗ ██╗ ██╗ ███╗ ███╗', --- ' ████╗ ██║ ██╔════╝██╔═══██╗ ██║ ██║ ██║ ████╗ ████║', --- ' ██╔██╗ ██║ █████╗ ██║ ██║ ██║ ██║ ██║ ██╔████╔██║', --- ' ██║╚██╗██║ ██╔══╝ ██║ ██║ ╚██╗ ██╔╝ ██║ ██║╚██╔╝██║', --- ' ██║ ╚████║ ███████╗╚██████╔╝ ╚████╔╝ ██║ ██║ ╚═╝ ██║', --- ' ╚═╝ ╚═══╝ ╚══════╝ ╚═════╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝', --- } --- -return { -'██████╗ █████╗ ██╗ ██╗████████╗███████╗██████╗ ███╗ ███╗', -'██╔══██╗██╔══██╗╚██╗ ██╔╝╚══██╔══╝██╔════╝██╔══██╗████╗ ████║', -'██████╔╝███████║ ╚████╔╝ ██║ █████╗ ██████╔╝██╔████╔██║', -'██╔══██╗██╔══██║ ╚██╔╝ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║', -'██║ ██║██║ ██║ ██║ ██║ ███████╗██║ ██║██║ ╚═╝ ██║', -'╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝', -} - - diff --git a/dotfiles/.config/nvim/lua/ray/init.lua b/dotfiles/.config/nvim/lua/ray/init.lua deleted file mode 100644 index f1a0b1a..0000000 --- a/dotfiles/.config/nvim/lua/ray/init.lua +++ /dev/null @@ -1,25 +0,0 @@ -require("ray.remap") -require("ray.set") --- print("Hello Ray") - - -local virtual_env = function() - -- only show virtual env for Python - if vim.bo.filetype ~= 'python' then - return "" - end - - local conda_env = os.getenv('CONDA_DEFAULT_ENV') - local venv_path = os.getenv('VIRTUAL_ENV') - - if venv_path == nil then - if conda_env == nil then - return "" - else - return string.format(" %s (conda)", conda_env) - end - else - local venv_name = vim.fn.fnamemodify(venv_path, ':t') - return string.format(" %s (venv)", venv_name) - end -end diff --git a/dotfiles/.config/nvim/lua/ray/lazy.lua b/dotfiles/.config/nvim/lua/ray/lazy.lua deleted file mode 100644 index d54869d..0000000 --- a/dotfiles/.config/nvim/lua/ray/lazy.lua +++ /dev/null @@ -1,266 +0,0 @@ -return { - { 'nvim-telescope/telescope.nvim', tag = '0.1.3', dependencies = { 'nvim-lua/plenary.nvim' } }, { 'rose-pine/neovim', name = 'rose-pine' }, { - "nvim-treesitter/nvim-treesitter", - build = ":TSUpdate", - config = function() - local configs = require("nvim-treesitter.configs") - - configs.setup({ - ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "elixir", "heex", "javascript", "html", "rust", "typescript", "python" }, - sync_install = false, - highlight = { enable = true }, - indent = { enable = true }, - }) - end -}, - { - "lukas-reineke/indent-blankline.nvim", - main = "ibl", - opts = { - scope = { show_start = false, show_end = false }, - indent = { tab_char = "▎" } - } - }, - { - "norcalli/nvim-colorizer.lua", - config = function() - require('colorizer').setup({ '*' }) - end, - - }, - -- lazy.nvim - -- { "catppuccin/nvim", name = "catppuccin", priority = 1000 }, - { "tiagovla/tokyodark.nvim", name = "tokyodark", priority = 1000 }, - { 'rose-pine/neovim', name = 'rose-pine' }, - { - "folke/tokyonight.nvim", - lazy = false, - priority = 1000, - opts = {}, - }, - { 'nvim-tree/nvim-tree.lua' }, - { 'akinsho/bufferline.nvim', version = "*", dependencies = 'nvim-tree/nvim-web-devicons' }, - { 'ThePrimeagen/harpoon' }, - { - "ThePrimeagen/refactoring.nvim", - dependencies = { - "nvim-lua/plenary.nvim", - "nvim-treesitter/nvim-treesitter", - }, - config = function() - require("refactoring").setup() - end, - }, - { 'mbbill/undotree' }, - { 'github/copilot.vim' }, - { 'stevearc/conform.nvim' }, - -- Fugitive is a Git wrapper so awesome, it should be illegal - { - 'tpope/vim-fugitive', {} - }, - { 'mfussenegger/nvim-lint' }, - { 'f-person/git-blame.nvim', {} }, - { 'williamboman/mason-lspconfig.nvim' }, - { 'VonHeikemen/lsp-zero.nvim', branch = 'v3.x' }, - { - 'neovim/nvim-lspconfig', - dependencies = { - -- Automatically install LSPs and related tools to stdpath for Neovim - { 'williamboman/mason.nvim', config = true }, -- NOTE: Must be loaded before dependants - { 'williamboman/mason-lspconfig.nvim', opt = { automatic_installation = true, } }, - 'WhoIsSethDaniel/mason-tool-installer.nvim', - - -- Useful status updates for LSP. - -- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})` - { 'j-hui/fidget.nvim', opts = {} }, - - -- `neodev` configures Lua LSP for your Neovim config, runtime and plugins - -- used for completion, annotations and signatures of Neovim apis - { 'folke/neodev.nvim', opts = {} }, - }, - }, - { 'hrsh7th/cmp-nvim-lsp' }, - { - 'hrsh7th/nvim-cmp', - dependencies = { - "friendly-snippets", - "hrsh7th/cmp-buffer", - "hrsh7th/cmp-path", - "saadparwaiz1/cmp_luasnip", - "hrsh7th/cmp-nvim-lua", - "hrsh7th/cmp-nvim-lsp", - "hrsh7th/cmp-cmdline", - }, - }, - { 'simrat39/rust-tools.nvim', ft = "rust", dependencies = { 'neovim/nvim-lspconfig' } }, - { 'hrsh7th/cmp-path' }, - { 'rmagatti/auto-session' }, - { 'nvim-lualine/lualine.nvim' }, - { 'kmontocam/nvim-conda' }, - { - 'gelguy/wilder.nvim', - config = function() - modes = { ':', '/', '?' } - end - }, - { - 'lewis6991/gitsigns.nvim', - opts = { - signs = { - add = { text = '+' }, - change = { text = '~' }, - delete = { text = '_' }, - topdelete = { text = '‾' }, - changedelete = { text = '~' }, - }, - }, - }, - { 'hrsh7th/cmp-cmdline', {} }, - { - 'christoomey/vim-tmux-navigator', - cmd = { - "TmuxNavigateLeft", - "TmuxNavigateDown", - "TmuxNavigateUp", - "TmuxNavigateRight", - "TmuxNavigatePrevious", - }, - keys = { - { "", "TmuxNavigateLeft" }, - { "", "TmuxNavigateDown" }, - { "", "TmuxNavigateUp" }, - { "", "TmuxNavigateRight" }, - { "", "TmuxNavigatePrevious" }, - }, - lazy = false - }, - { - "aserowy/tmux.nvim", - config = function() return require("tmux").setup() end - }, - { - "ahmedkhalf/project.nvim", - config = function() - require("project_nvim").setup { - - sync_root_with_cwd = true, - respect_buf_cwd = true, - update_focused_file = { - enable = true, - update_root = true - }, - } - end - }, - { - 'nvimdev/lspsaga.nvim', - config = function() - require('lspsaga').setup({}) - end, - dependencies = { - 'nvim-treesitter/nvim-treesitter', -- optional - 'nvim-tree/nvim-web-devicons', -- optional - }, - }, - { - 'windwp/nvim-autopairs', - event = "InsertEnter", - opts = {} -- this is equalent to setup({}) function - }, - { - 'ggandor/leap.nvim', - config = function() - require('leap').create_default_mappings() - end, - }, - { 'onsails/lspkind.nvim' }, - { - "iamcco/markdown-preview.nvim", - cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" }, - ft = { "markdown" }, - build = function() vim.fn["mkdp#util#install"]() end, - }, - { - "chrisgrieser/nvim-puppeteer", - lazy = false, -- plugin lazy-loads itself. Can also load on filetypes. - }, - { - 'stevearc/dressing.nvim', - opts = {}, - }, - { - 'tzachar/highlight-undo.nvim', - opts = { - }, - }, - { 'sindrets/diffview.nvim' }, - { 'ErichDonGubler/lsp_lines.nvim' }, - { - "folke/todo-comments.nvim", - dependencies = { "nvim-lua/plenary.nvim" }, - opts = { - -- your configuration comes here - -- or leave it empty to use the default settings - -- refer to the configuration section below - } - }, - { 'm-demare/hlargs.nvim', {} }, - { 'richardbizik/nvim-toc' }, -- TOC: Table of Content generator - { - "lewis6991/gitsigns.nvim", - config = function() - require("gitsigns").setup({ - signs = { - add = { text = '+' }, - change = { text = '~' }, - delete = { text = '_' }, - topdelete = { text = '‾' }, - changedelete = { text = '~' }, - }, - }) - end, - }, - { 'akinsho/git-conflict.nvim', version = "*", config = true }, - { - "L3MON4D3/LuaSnip", - -- follow latest release. - version = "v2.*", -- Replace by the latest released major (first number of latest release) - -- install jsregexp (optional!). - build = "make install_jsregexp" - }, - { "rafamadriz/friendly-snippets", }, - { - "kdheepak/lazygit.nvim", - cmd = { - "LazyGit", - "LazyGitConfig", - "LazyGitCurrentFile", - "LazyGitFilter", - "LazyGitFilterCurrentFile", - }, - -- optional for floating window border decoration - dependencies = { - "nvim-lua/plenary.nvim", - }, - -- setting the keybinding for LazyGit with 'keys' is recommended in - -- order to load the plugin when the command is run for the first time - keys = { - { "gg", "LazyGit", desc = "LazyGit" } - } - }, - { - "folke/noice.nvim", - event = "VeryLazy", - opts = { - -- add any options here - }, - dependencies = { - -- if you lazy-load any plugin below, make sure to add proper `module="..."` entries - "MunifTanjim/nui.nvim", - -- OPTIONAL: - -- `nvim-notify` is only needed, if you want to use the notification view. - -- If not available, we use `mini` as the fallback - "rcarriga/nvim-notify", - } - } -} diff --git a/dotfiles/.config/nvim/lua/ray/remap.lua b/dotfiles/.config/nvim/lua/ray/remap.lua deleted file mode 100644 index 288b218..0000000 --- a/dotfiles/.config/nvim/lua/ray/remap.lua +++ /dev/null @@ -1,146 +0,0 @@ -vim.g.mapleader = " " - -vim.keymap.set("n", "pv", ":NvimTreeOpen") --- this is for move commands, when highlighting we can move the corresponding lines -vim.keymap.set("v", "J", ":m '>+1gv=gv") -vim.keymap.set("v", "K", ":m '<-2gv=gv") - - - -vim.keymap.set("n", "J", "mzJ`z") - --- Allow half page jumpings to keep the cursor in the middle -vim.keymap.set("n", "", "zz") -vim.keymap.set("n", "", "zz") - --- Allows search terms to keep cursor in the middle -vim.keymap.set("n", "n", "nzzzv") -vim.keymap.set("n", "N", "Nzzzv") - --- greatest remap ever --- Allow to copy paste and dont have the buffer reinitialized after pasting -vim.keymap.set("x", "p", [["_dP]]) - --- next greatest remap ever : asbjornHaland --- interactions with the system copy buffers -vim.keymap.set({ "n", "v" }, "y", [["+y]]) -vim.keymap.set("n", "Y", [["+Y]]) - -vim.keymap.set({ "n", "v" }, "q", [["_d]]) - --- This is going to get me cancelled -vim.keymap.set("i", "", "") - -vim.keymap.set("n", "Q", "") --- allo to jump between projects -vim.keymap.set("n", "", "silent !tmux neww tmux-sessionizer") -vim.keymap.set("n", "f", vim.lsp.buf.format) - --- Quick Fix Navigation -vim.keymap.set("n", "", "cnextzz") -vim.keymap.set("n", "", "cprevzz") -vim.keymap.set("n", "k", "lnextzz") -vim.keymap.set("n", "j", "lprevzz") - --- Replace the work you are on -vim.keymap.set("n", "s", [[:%s/\<\>//gI]]) - --- Execute main project file -vim.keymap.set("n", "x", "silent !tmux split-window -v executioner") --- Execute tests of actual project -vim.keymap.set("n", "t", "silent !tmux split-window -v executioner -t") --- Disable arrows movement -vim.keymap.set('', '', '') -vim.keymap.set('', '', '') -vim.keymap.set('', '', '') -vim.keymap.set('', '', '') - -vim.keymap.set("n", "", "TmuxNavigateLeft") -vim.keymap.set("n", "", "TmuxNavigateDown") -vim.keymap.set("n", "", "TmuxNavigateUp") -vim.keymap.set("n", "", "TmuxNavigateRight") -vim.keymap.set("n", "", "TmuxNavigatePrevious") - - -vim.keymap.set("n", "gu", "diffget //2") -vim.keymap.set("n", "gh", "diffget //3") - --- Remap ; to : -vim.keymap.set("n", ";", ":") - - - --- Remap -vim.keymap.set("n", "", "w") - - --- Fugitive -vim.keymap.set("n", "gs", vim.cmd.Git); -vim.keymap.set("n", "p", function() - vim.cmd.Git('push') -end, opts) - --- rebase always -vim.keymap.set("n", "P", function() - vim.cmd.Git({ 'pull', '--rebase' }) -end, opts) - --- add current project -vim.keymap.set("n", "gA", function() - vim.cmd.Git('add %') -end, opts) - --- add all -vim.keymap.set("n", "ga", function() - vim.cmd.Git('add .') -end, opts) - --- commit -vim.keymap.set("n", "gc", function() - vim.cmd.Git('commit') -end, opts) - --- NOTE: It allows me to easily set the branch i am pushing and any tracking --- needed if i did not set the branch up correctly -vim.keymap.set("n", "t", ":Git push -u origin ", opts); - --- Refactoring keybinds -vim.keymap.set("x", "re", ":Refactor extract ") -vim.keymap.set("x", "rf", ":Refactor extract_to_file ") - -vim.keymap.set("x", "rv", ":Refactor extract_var ") - -vim.keymap.set({ "n", "x" }, "ri", ":Refactor inline_var") - -vim.keymap.set("n", "rI", ":Refactor inline_func") - -vim.keymap.set("n", "rb", ":Refactor extract_block") -vim.keymap.set("n", "rbf", ":Refactor extract_block_to_file") - -vim.keymap.set('n', '/', function() - -- You can pass additional configuration to Telescope to change the theme, layout, etc. - require('telescope.builtin').current_buffer_fuzzy_find(require('telescope.themes').get_dropdown { - winblend = 10, - previewer = false, - }) -end, { desc = '[/] Fuzzily search in current buffer' }) - --- Add git conflict commands to the keymap --- GitConflictChooseOurs — Select the current changes. --- GitConflictChooseTheirs — Select the incoming changes. --- GitConflictChooseBoth — Select both changes. --- GitConflictNextConflict — Move to the next conflict. --- GitConflictPrevConflict — Move to the previous conflict. -vim.keymap.set("n", "gco", ":GitConflictChooseOurs") -vim.keymap.set("n", "gct", ":GitConflictChooseTheirs") -vim.keymap.set("n", "gcb", ":GitConflictChooseBoth") -vim.keymap.set("n", "gcn", ":GitConflictNextConflict") -vim.keymap.set("n", "gcp", ":GitConflictPrevConflict") - - --- Add visual keymap so that when in visual mode, selected text get searched globally -vim.keymap.set("v", "*", ":call VisualSelection('f')", { noremap = true, silent = true }) - - --- Add keymap to go back to previous buffer with backspace -vim.keymap.set("n", "", "") diff --git a/dotfiles/.config/nvim/lua/ray/set.lua b/dotfiles/.config/nvim/lua/ray/set.lua deleted file mode 100644 index 0b32602..0000000 --- a/dotfiles/.config/nvim/lua/ray/set.lua +++ /dev/null @@ -1,64 +0,0 @@ -vim.opt.nu = true -vim.opt.relativenumber = true - -vim.opt.tabstop = 4 -vim.opt.softtabstop = 4 -vim.opt.shiftwidth = 4 -vim.opt.expandtab = true - -vim.opt.smartindent = true - -vim.opt.wrap = false - -vim.opt.swapfile = false -vim.opt.backup = false -vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir" -vim.opt.undofile = true - -vim.opt.hlsearch = false -vim.opt.incsearch = true - -vim.opt.termguicolors = true --- disable netrw at the very start of your init.lua -vim.g.loaded_netrw = 1 -vim.g.loaded_netrwPlugin = 1 - --- set termguicolors to enable highlight groups -vim.opt.termguicolors = true - - -vim.opt.scrolloff = 8 -vim.opt.signcolumn = "yes" -vim.opt.isfname:append("@-@") - -vim.opt.updatetime = 50 - - -local ag = vim.api.nvim_create_augroup -local au = vim.api.nvim_create_autocmd - ----Highlight yanked text --- -au('TextYankPost', { - group = ag('yank_highlight', {}), - pattern = '*', - callback = function() - vim.highlight.on_yank { higroup = 'IncSearch', timeout = 300 } - end, -}) - --- Set clipboard to unnamed -vim.api.nvim_set_option("clipboard", "unnamed") - --- Set colorcolumn -vim.api.nvim_set_option("colorcolumn", "120") - --- Set clipboard to be shared between vim and system -vim.api.nvim_set_option("clipboard", "unnamedplus") - --- Jump to last edit position on opening file -vim.cmd([[ - - au BufReadPost * if expand('%:p') !~# '\m/\.git/' && line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif - -]]) diff --git a/dotfiles/.config/nvim/stylua.toml b/dotfiles/.config/nvim/stylua.toml new file mode 100644 index 0000000..5d6c50d --- /dev/null +++ b/dotfiles/.config/nvim/stylua.toml @@ -0,0 +1,3 @@ +indent_type = "Spaces" +indent_width = 2 +column_width = 120 \ No newline at end of file diff --git a/dotfiles/.config/pip/pip.conf b/dotfiles/.config/pip/pip.conf deleted file mode 100644 index 6fd54d1..0000000 --- a/dotfiles/.config/pip/pip.conf +++ /dev/null @@ -1,3 +0,0 @@ -[global] -extra-index-url = https://pip.repos.neuron.amazonaws.com - diff --git a/dotfiles/.config/polybar/config b/dotfiles/.config/polybar/config deleted file mode 100644 index d43fd6b..0000000 --- a/dotfiles/.config/polybar/config +++ /dev/null @@ -1,313 +0,0 @@ -[colors] -;background = ${xrdb:color0:#222} -background = #191724 -bar-back = #191724 -background-alt = #ebbcba -;foreground = ${xrdb:color7:#222} -foreground = #e0def4 -foreground-alt = #26233a -primary = #c4a7e7 -secondary = #eb6f92 -alert = #eb6f92 - -[bar/example] -width = 100% -height = 27 -offset-x = 10 -offset-y = 10 -;radius = 8 -radius = 0 -fixed-center = true - -background = ${colors.background} -foreground = ${colors.foreground} - -line-size = 3 -line-color = #f00 - -border-size = 0 -border-color = #00000000 - -padding-left = 0 -padding-right = 2 - -module-margin-left = 1 -module-margin-right = 1 - -font-0 = JetBrains Mono:weight=200:pixelsize=9.5;1 -font-1 = Symbols Nerd Font:fontformat=truetype:size=10:antialias=true;2 -font-2 = feather:pixelsize=10:antialias=true;2 - -modules-left = i3 -modules-center = title -modules-right = eth memory clocktext gputemp gputemp2 clocktext cpu temperature clocktext date tray - -[module/i3] -type = internal/i3 -format = -index-sort = true -wrapping-scroll = false - -; Only show workspaces on the same output as the bar -;pin-workspaces = true - -label-mode-padding = 2 -label-mode-foreground = #000 -label-mode-background = ${colors.primary} - -; focused = Active workspace on focused monitor -label-focused-background = ${colors.background-alt} -label-focused-underline= ${colors.primary} -label-focused-padding = 2 - -; unfocused = Inactive workspace on any monitor -label-unfocused-padding = 2 - -; visible = Active workspace on unfocused monitor -label-visible-background = ${colors.background-alt} -label-visible-underline = ${colors.primary} -label-visible-padding = 1 - -; urgent = Workspace with urgency hint set -label-urgent-background = ${colors.alert} -label-urgent-padding = 2 - -[module/cpu] -type = internal/cpu -interval = 2 -format-prefix = " " -format-prefix-foreground = #c4a7e7 -format-prefix-background = ${colors.bar-back} -;format-underline = #f90000 -label = %percentage%% -label-background = ${colors.bar-back} -label-foreground = #c4a7e7 - -[module/memory] -type = internal/memory -interval = 2 -format-prefix = " " -format-prefix-foreground = #9ccfd8 -format-prefix-background = ${colors.bar-back} -label =%gb_used% -label-background = ${colors.bar-back} -label-foreground = #9ccfd8 - -[module/wlan] -type = internal/network -interface = wlo1 -interval = 1.0 - -format-connected-prefix = " " -format-connected-prefix-foreground = #f6c177 -label-connected = %downspeed% -label-connected-foreground = #f6c177 - -format-disconnected = -;format-disconnected = -;format-disconnected-underline = ${self.format-connected-underline} -;label-disconnected = %ifname% disconnected -;label-disconnected-foreground = ${colors.foreground-alt} - -ramp-signal-0 =  -ramp-signal-1 =  -ramp-signal-2 =  -ramp-signal-3 =  -ramp-signal-4 =  -ramp-signal-foreground = ${colors.foreground-alt} - -[module/eth] -type = internal/network -interface = enp42s0 -interval = 1.0 - -;format-connected-underline = #55aa55 -format-connected-prefix = " " -format-connected-prefix-foreground = #f6c177 -format-connected-prefix-background = ${colors.bar-back} -label-connected = %downspeed% -label-connected-foreground = #f6c177 -label-connected-background = ${colors.bar-back} - -format-disconnected = -;format-disconnected = -;format-disconnected-underline = ${self.format-connected-underline} -;label-disconnected = %ifname% disconnected -;label-disconnected-foreground = ${colors.foreground-alt} - -[module/date] -type = internal/date -interval = 5 - -date = -;date-alt = " %Y-%m-%d" - -time = %l:%M -;time-alt = %H:%M:%S -label-background = ${colors.bar-back} -label-foreground = #908caa - -format-prefix = " " -format-prefix-foreground = #908caa -format-prefix-background = ${colors.bar-back} -;format-underline = #0a6cf5 - -label =%time% - -[module/pulseaudio] -type = internal/pulseaudio - -format-volume = -label-volume = VOL %percentage%% -label-volume-foreground = ${root.foreground} - -label-muted = 🔇 muted -label-muted-foreground = #666 - -bar-volume-width = 10 -bar-volume-foreground-0 = #55aa55 -bar-volume-foreground-1 = #55aa55 -bar-volume-foreground-2 = #55aa55 -bar-volume-foreground-3 = #55aa55 -bar-volume-foreground-4 = #55aa55 -bar-volume-foreground-5 = #f5a70a -bar-volume-foreground-6 = #ff5555 -bar-volume-gradient = false -bar-volume-indicator = | -bar-volume-indicator-font = 2 -bar-volume-fill = ─ -bar-volume-fill-font = 2 -bar-volume-empty = ─ -bar-volume-empty-font = 2 -bar-volume-empty-foreground = ${colors.foreground-alt} - -[module/alsa] -type = internal/alsa - -format-volume = -label-volume = VOL -label-volume-foreground = ${root.foreground} - -format-muted-prefix = " " -format-muted-foreground = ${colors.foreground-alt} -label-muted = sound muted - -bar-volume-width = 10 -bar-volume-foreground-0 = #55aa55 -bar-volume-foreground-1 = #55aa55 -bar-volume-foreground-2 = #55aa55 -bar-volume-foreground-3 = #55aa55 -bar-volume-foreground-4 = #55aa55 -bar-volume-foreground-5 = #f5a70a -bar-volume-foreground-6 = #ff5555 -bar-volume-gradient = false -bar-volume-indicator = | -bar-volume-indicator-font = 2 -bar-volume-fill = ─ -bar-volume-fill-font = 2 -bar-volume-empty = ─ -bar-volume-empty-font = 2 -bar-volume-empty-foreground = ${colors.foreground-alt} - -[module/battery] -type = internal/battery -battery = BAT0 -adapter = ADP1 -full-at = 98 - -format-charging = -format-charging-underline = #ffb52a - -format-discharging = -format-discharging-underline = ${self.format-charging-underline} - -format-full-prefix = " " -format-full-prefix-foreground = ${colors.foreground-alt} -format-full-underline = ${self.format-charging-underline} - -ramp-capacity-0 =  -ramp-capacity-1 =  -ramp-capacity-2 =  -ramp-capacity-foreground = ${colors.foreground-alt} - -animation-charging-0 =  -animation-charging-1 =  -animation-charging-2 =  -animation-charging-foreground = ${colors.foreground-alt} -animation-charging-framerate = 750 - -animation-discharging-0 =  -animation-discharging-1 =  -animation-discharging-2 =  -animation-discharging-foreground = ${colors.foreground-alt} -animation-discharging-framerate = 750 - -[module/temperature] -type = internal/temperature -thermal-zone = 0 -warn-temperature = 90 -interval = 2 -hwmon-path = /sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon1/temp1_input -format =