Compare commits
21 Commits
f7d1121776
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 0573abe905 | |||
| abaa3e2271 | |||
| 230cb70257 | |||
| 6091576170 | |||
| 0c1a801a17 | |||
| 468cbe649b | |||
| bf035507f6 | |||
| c214976757 | |||
| 03cadb8ea5 | |||
| 93f110a501 | |||
| 1d7f1845f9 | |||
| ecb9cf58a0 | |||
| 27a38bb557 | |||
| ac2f3a8fb5 | |||
| 03b0ee9591 | |||
| df9edd76ab | |||
| d8f89d18d3 | |||
| 780e4605f2 | |||
| ab6d6a8492 | |||
| e1cdb55940 | |||
| 8c8621795d |
1
.gitignore
vendored
@@ -3,3 +3,4 @@
|
||||
.venv
|
||||
.vscode
|
||||
secrets.el
|
||||
custom.el
|
||||
|
||||
2
.stow-local-ignore
Normal file
@@ -0,0 +1,2 @@
|
||||
archive/
|
||||
scripts/
|
||||
37
Makefile
Normal file
@@ -0,0 +1,37 @@
|
||||
# Define list of directories you want to stow
|
||||
CONFIG_DIRS := btop doom hypr kitty nvim rclone starship tmux wallpapers waybar wireplumber wofi yazi zsh
|
||||
|
||||
all: stow_all
|
||||
wal -i ~/.config/wallpapers/green_yellow_forest.jpg -o ~/.config/waybar/launch.sh
|
||||
neofetch
|
||||
|
||||
# Main target to handle stowing for all directories except rclone
|
||||
stow_all: $(filter-out rclone, $(CONFIG_DIRS))
|
||||
@echo "Cleaning broken symlinks in ~/.config..."
|
||||
find ~/.config -xtype l -delete -print
|
||||
@echo "Removing symlink ~/.zshrc if it exists..."
|
||||
@if [ -L $$HOME/.zshrc ]; then rm $$HOME/.zshrc; fi
|
||||
@echo "Removing symlink ~/.tmux.conf if it exists..."
|
||||
@if [ -L $$HOME/.tmux.conf ]; then rm $$HOME/.tmux.conf; fi
|
||||
@echo "Stowing all configurations except rclone..."
|
||||
@$(foreach dir,$(filter-out rclone, $(CONFIG_DIRS)), $(MAKE) stow_$(dir);)
|
||||
|
||||
# Generic stow command for user-scoped directories
|
||||
stow_%:
|
||||
@echo "Stowing $*"
|
||||
stow -v -t $(HOME) $*
|
||||
|
||||
# Post-installation script for rclone (executed after stowing)
|
||||
post_install_rclone:
|
||||
@echo "Running post-installation script for rclone"
|
||||
@bash $(CURDIR)/scripts/rclone_post_install.sh
|
||||
|
||||
# Special target for rclone to run post-install after stowing
|
||||
stow_rclone:
|
||||
@echo "Cleaning broken symlinks in ~/.config/rclone/..."
|
||||
find ~/.config/rclone/ -xtype l -delete -print
|
||||
@echo "Removing symlink ~/.local/bin/rclone_mount_check.sh if it exists..."
|
||||
@if [ -L $$HOME/.local/bin/rclone_mount_check.sh ]; then rm $$HOME/.local/bin/rclone_mount_check.sh; fi
|
||||
@echo "Stowing rclone"
|
||||
stow -v -t $(HOME) rclone
|
||||
@$(MAKE) post_install_rclone
|
||||
23
README.org
Normal file
@@ -0,0 +1,23 @@
|
||||
:PROPERTIES:
|
||||
:ID: 75f35b3b-f46f-42b6-ac4b-3988f15c46e1
|
||||
:END:
|
||||
#+title: Gortium Dotfiles
|
||||
#+subtitle: My attempt at having my computer do what I want, not the contrary
|
||||
|
||||
* Welcome
|
||||
I use stow to deploy all this to where it need to go (mostly ~/.confg).
|
||||
|
||||
* Apps
|
||||
** emacs (Doom)
|
||||
** nvim
|
||||
** btop
|
||||
** hyprland
|
||||
** kitty
|
||||
** rclone
|
||||
** starship
|
||||
** tmux
|
||||
** waybar
|
||||
** Wireplumber
|
||||
** wofi
|
||||
** yazi
|
||||
** zsh
|
||||
177
ansible.yml
Normal file
@@ -0,0 +1,177 @@
|
||||
- name: Setup Arch Linux
|
||||
hosts: localhost
|
||||
become: yes
|
||||
|
||||
tasks:
|
||||
- name: Check internet connectivity
|
||||
shell: ping -c 1 archlinux.org
|
||||
register: internet_check
|
||||
ignore_errors: yes
|
||||
|
||||
- name: Prompt user if no internet connection
|
||||
pause:
|
||||
prompt: "No internet detected. Please connect to a network and press Enter to continue."
|
||||
when: internet_check.rc != 0
|
||||
|
||||
- name: Set the timezone to America/Montreal
|
||||
command: timedatectl set-timezone America/Montreal
|
||||
changed_when: false # Prevents Ansible from reporting this task as "changed" unnecessarily
|
||||
|
||||
- name: Enable NTP synchronization
|
||||
command: timedatectl set-ntp true
|
||||
changed_when: false
|
||||
|
||||
- name: Ensure systemd-timesyncd is running and enabled
|
||||
systemd:
|
||||
name: systemd-timesyncd
|
||||
state: started
|
||||
enabled: yes
|
||||
|
||||
- name: Sync hardware clock with system time
|
||||
command: hwclock --systohc
|
||||
changed_when: false
|
||||
|
||||
- name: Install base packages
|
||||
pacman:
|
||||
name:
|
||||
- base
|
||||
- base-devel
|
||||
- linux
|
||||
- linux-firmware
|
||||
- sof-firmware
|
||||
- efibootmgr
|
||||
- grub
|
||||
state: present
|
||||
|
||||
- name: Enable essential services
|
||||
systemd:
|
||||
name: "{{ item }}"
|
||||
enabled: yes
|
||||
loop:
|
||||
- NetworkManager
|
||||
- bluetooth.service
|
||||
|
||||
- name: Install yay (AUR helper)
|
||||
shell: |
|
||||
sudo pacman -S --needed git base-devel && \
|
||||
git clone https://aur.archlinux.org/yay-bin.git && \
|
||||
cd yay-bin && makepkg -si --noconfirm
|
||||
args:
|
||||
creates: /usr/bin/yay
|
||||
|
||||
- name: Install core utilities
|
||||
pacman:
|
||||
name:
|
||||
- networkmanager
|
||||
- openssh
|
||||
- git
|
||||
- wget
|
||||
- neofetch
|
||||
- ripgrep
|
||||
- eza
|
||||
- fd
|
||||
- stow
|
||||
- zoxide
|
||||
- bat
|
||||
state: present
|
||||
|
||||
- name: Install desktop environment packages
|
||||
pacman:
|
||||
name:
|
||||
- hyprland
|
||||
- hyprlock
|
||||
- hypridle
|
||||
- waybar
|
||||
- swaync
|
||||
- wofi
|
||||
- firefox
|
||||
- hyprshot
|
||||
- power-profiles-daemon
|
||||
- swww
|
||||
- nvidia-lts
|
||||
- brightnessctl
|
||||
- pavucontrol
|
||||
- pipewire
|
||||
- pipewire-alsa
|
||||
- pipewire-pulse
|
||||
- bluez
|
||||
- bluez-utils
|
||||
- udiskie
|
||||
- obsidian
|
||||
state: present
|
||||
|
||||
- name: Install TUI utilities
|
||||
pacman:
|
||||
name:
|
||||
- bluetuith
|
||||
- lazydocker
|
||||
- lazygit
|
||||
- lazysql
|
||||
- fzf
|
||||
- sshs
|
||||
- yazi
|
||||
- taskwarrior-tui
|
||||
state: present
|
||||
|
||||
- name: Install terminal applications
|
||||
pacman:
|
||||
name:
|
||||
- kitty
|
||||
- zsh
|
||||
- starship
|
||||
- tmux
|
||||
- tmux-plugin-manager
|
||||
- neovim
|
||||
state: present
|
||||
|
||||
- name: Set default shell to zsh
|
||||
command: chsh -s /usr/bin/zsh
|
||||
|
||||
- name: Install fonts
|
||||
pacman:
|
||||
name:
|
||||
- ttf-cascadia-code-nerd
|
||||
- ttf-font-awesome
|
||||
- ttf-jetbrains-mono-nerd
|
||||
- ttf-meslo-nerd
|
||||
state: present
|
||||
|
||||
- name: Install AI stack
|
||||
pacman:
|
||||
name:
|
||||
- ollama
|
||||
- aichat
|
||||
- pandoc-cli
|
||||
state: present
|
||||
|
||||
- name: Install TTS stack
|
||||
pacman:
|
||||
name:
|
||||
- piper-tts
|
||||
- paplay
|
||||
state: present
|
||||
|
||||
- name: Install theming tools
|
||||
pacman:
|
||||
name:
|
||||
- pywal16
|
||||
- pywalfox
|
||||
- nwg-look
|
||||
state: present
|
||||
|
||||
- name: Clone dotfiles repository
|
||||
git:
|
||||
repo: "https://github.com/yourusername/dotfiles.git"
|
||||
dest: "/home/{{ ansible_user }}/dotfiles"
|
||||
update: yes
|
||||
|
||||
- name: Stow dotfiles
|
||||
shell: |
|
||||
cd /home/{{ ansible_user }}/dotfiles && stow */
|
||||
args:
|
||||
executable: /bin/bash
|
||||
|
||||
- name: Apply pywal theme
|
||||
command: wal -i ~/.config/wallpapers/green_yellow_forest.jpg -o ~/.config/waybar/launch.sh
|
||||
args:
|
||||
executable: /bin/zsh
|
||||
113
archive/README.md
Normal file
@@ -0,0 +1,113 @@
|
||||
# config
|
||||
My dot config
|
||||
|
||||
## TODO
|
||||
### For window WSL
|
||||
git config --global core.autocrlf true
|
||||
### To start terminator from WSL
|
||||
DISPLAY=:0 terminator -u &
|
||||
### To use chmod (git clone) from WSL
|
||||
edit: /etc/wsl.conf
|
||||
|
||||
paste:
|
||||
|
||||
[automount]
|
||||
options = "metadata"
|
||||
###
|
||||
|
||||
## VIM
|
||||
|
||||
Is set to save automatically ;)
|
||||
|
||||
Usefull command:
|
||||
* i : insert mode
|
||||
* v : visual mode (selecting)
|
||||
* shift-v : same but by line
|
||||
* ctrl-v : block select
|
||||
* d : cut (visual mode)
|
||||
* y : copy (visual mode)
|
||||
* p : past (normal mode)
|
||||
* [esc] : exit modes
|
||||
* :q : exit
|
||||
* :w : save
|
||||
* NERDTree : open files manager
|
||||
* ? : NERDTREE help menu
|
||||
* I : show hidden files
|
||||
* ctrl-w ctrl-w : change split
|
||||
* ctrl-w [arrows] : change split in this direction
|
||||
* Bd : close file in buffer
|
||||
* [tab] : cycle through buffers
|
||||
* shift-[tab] : cycle through tabs
|
||||
* shift-t : new tab
|
||||
* shift-d : delete tab
|
||||
* :split : open file in a split screen
|
||||
* :hide : close a split
|
||||
* :A : switch between .cpp and .hpp
|
||||
* If ctrl-s and freeze, ctrl-q ;)
|
||||
|
||||
|
||||
### a.vim
|
||||
A few of quick commands to swtich between source files and header files quickly.
|
||||
|
||||
### ctlp
|
||||
Full path fuzzy __file__, __buffer__, __mru__, __tag__, __...__ finder for Vim.
|
||||
|
||||
### delimitMate
|
||||
This plug-in provides automatic closing of quotes, parenthesis, brackets, etc.
|
||||
|
||||
### neocomplete
|
||||
Neocomplete is the abbreviation of "neo-completion with cache". It provides
|
||||
keyword completion system by maintaining a cache of keywords in the current
|
||||
buffer. neocomplete can be customized easily and has many more features than
|
||||
Vim's built-in completion.
|
||||
|
||||
### nerdtree
|
||||
The NERDTree is a file system explorer for the Vim editor. Using this plugin,
|
||||
users can visually browse complex directory hierarchies, quickly open files for
|
||||
reading or editing, and perform basic file system operations.
|
||||
|
||||
### syntastic
|
||||
Syntastic is a syntax checking plugin for [Vim][vim] created by
|
||||
[Martin Grenfell][scrooloose]. It runs files through external syntax checkers
|
||||
and displays any resulting errors to the user. This can be done on demand, or
|
||||
automatically as files are saved. If syntax errors are detected, the user is
|
||||
notified and is happy because they didn't have to compile their code or execute
|
||||
their script to find them.
|
||||
|
||||
### vim-airline-theme
|
||||
Airline themes for vim
|
||||
|
||||
### vim-airline
|
||||
When the plugin is correctly loaded, Vim will draw a nice statusline at the
|
||||
bottom of each window. That line consists of several sections, each one displaying some piece of
|
||||
information.
|
||||
|
||||
### vim-fugitive
|
||||
A git wrapper
|
||||
|
||||
### vim-gitgutter
|
||||
A Vim plugin which shows a git diff in the 'gutter' (sign column). It shows which lines
|
||||
have been added, modified, or removed. You can also preview, stage, and undo individual hunks.
|
||||
The plugin also provides a hunk text object.
|
||||
|
||||
### vim-nerdtree-tab
|
||||
This plugin aims at making NERDTree feel like a true panel, independent of tabs.
|
||||
|
||||
### vim-tmux-navigator
|
||||
This plugin is a repackaging of [Mislav Marohnić's][] tmux-navigator
|
||||
configuration described in [this gist][]. When combined with a set of tmux
|
||||
key bindings, the plugin will allow you to navigate seamlessly between
|
||||
vim and tmux splits using a consistent set of hotkeys.
|
||||
|
||||
### Vundle
|
||||
[Vundle] is short for _Vim bundle_ and is a [Vim] plugin manager.
|
||||
[Vundle] allows you to...
|
||||
* keep track of and [configure] your plugins right in the `.vimrc`
|
||||
* [install] configured plugins (a.k.a. scripts/bundle)
|
||||
* [update] configured plugins
|
||||
* [search] by name all available [Vim scripts]
|
||||
* [clean] unused plugins up
|
||||
* run the above actions in a *single keypress* with [interactive mode]
|
||||
[Vundle] automatically...
|
||||
* manages the [runtime path] of your installed scripts
|
||||
* regenerates [help tags] after installing and updating
|
||||
192
archive/i3/config
Executable file
@@ -0,0 +1,192 @@
|
||||
# i3 config file (v4)
|
||||
#
|
||||
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
|
||||
#
|
||||
# This config file uses keycodes (bindsym) and was written for the QWERTY
|
||||
# layout.
|
||||
#
|
||||
# To get a config file with the same key positions, but for your current
|
||||
# layout, use the i3-config-wizard
|
||||
#
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font pango:monospace 8
|
||||
|
||||
# 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
|
||||
|
||||
# Before i3 v4.8, we used to recommend this one as the default:
|
||||
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
|
||||
# The font above is very space-efficient, that is, it looks good, sharp and
|
||||
# clear in small sizes. However, its unicode glyph coverage is limited, the old
|
||||
# X core fonts rendering does not support right-to-left and this being a bitmap
|
||||
# font, it doesn’t scale on retina/hidpi displays.
|
||||
|
||||
# use these keys for focus, movement, and resize directions when reaching for
|
||||
# the arrows is not convenient
|
||||
set $mod Mod4
|
||||
set $sup Shift+Mod4
|
||||
set $up l
|
||||
set $down k
|
||||
set $left j
|
||||
set $right semicolon
|
||||
|
||||
# use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec i3-sensible-terminal
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# start dmenu (a program launcher)
|
||||
bindsym $mod+d exec dmenu_run
|
||||
# There also is the (new) i3-dmenu-desktop which only displays applications
|
||||
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
|
||||
# installed.
|
||||
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
|
||||
|
||||
# change focus
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right 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+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right 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
|
||||
|
||||
# move the currently focused window to the scratchpad
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
|
||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||
# If there are multiple scratchpad windows, this command cycles through them.
|
||||
bindsym $mod+minus scratchpad show
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace 1:web
|
||||
bindsym $mod+2 workspace 2:slack
|
||||
bindsym $mod+3 workspace 3:terminal
|
||||
bindsym $mod+4 workspace 4
|
||||
bindsym $mod+5 workspace 5
|
||||
bindsym $mod+6 workspace 6
|
||||
bindsym $mod+7 workspace 7
|
||||
bindsym $mod+8 workspace 8
|
||||
bindsym $mod+9 workspace 9
|
||||
bindsym $mod+0 workspace 10
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace 1:web
|
||||
bindsym $mod+Shift+2 move container to workspace 2:slack
|
||||
bindsym $mod+Shift+3 move container to workspace 3:terminal
|
||||
bindsym $mod+Shift+4 move container to workspace 4
|
||||
bindsym $mod+Shift+5 move container to workspace 5
|
||||
bindsym $mod+Shift+6 move container to workspace 6
|
||||
bindsym $mod+Shift+7 move container to workspace 7
|
||||
bindsym $mod+Shift+8 move container to workspace 8
|
||||
bindsym $mod+Shift+9 move container to workspace 9
|
||||
bindsym $mod+Shift+0 move container to workspace 10
|
||||
|
||||
# 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 $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
|
||||
|
||||
# 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
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||
# finds out, if available)
|
||||
bar {
|
||||
status_command i3status
|
||||
}
|
||||
|
||||
# Start nm-applet (wifi and other options in the bar)
|
||||
exec --no-startup-id nm-applet
|
||||
|
||||
# Startup layout
|
||||
exec --no-startup-id "i3-msg 'workspace 1:web; append_layout ~/.i3/workspace-1.json; exec /usr/bin/google-chrome'"
|
||||
exec --no-startup-id "i3-msg 'workspace 2:slack; append_layout ~/.i3/workspace-2.json; exec /usr/bin/slack"
|
||||
exec --no-startup-id "i3-msg 'workspace 3:terminal; append_layout ~/.i3/workspace-3.json; exec /usr/bin/gnome-terminal'"
|
||||
|
||||
# Multiscreen
|
||||
exec i3 --force-xinerama -V >>~/.i3/i3log 2>&1
|
||||
|
||||
#######################################################################
|
||||
# automatically start i3-config-wizard to offer the user to create a
|
||||
# keysym-based config which used their favorite modifier (alt or windows)
|
||||
#
|
||||
# i3-config-wizard will not launch if there already is a config file
|
||||
# in ~/.i3/config.
|
||||
#
|
||||
# Please remove the following exec line:
|
||||
#######################################################################
|
||||
exec i3-config-wizard
|
||||
25
archive/i3/workspace-1.json
Executable file
@@ -0,0 +1,25 @@
|
||||
// vim:ts=4:sw=4:et
|
||||
{
|
||||
"border": "normal",
|
||||
"current_border_width": 2,
|
||||
"floating": "auto_off",
|
||||
"geometry": {
|
||||
"height": 729,
|
||||
"width": 1362,
|
||||
"x": 2,
|
||||
"y": 18
|
||||
},
|
||||
"name": "i3: Layout saving in i3 - Google Chrome",
|
||||
"percent": 1,
|
||||
"swallows": [
|
||||
{
|
||||
"class": "^google-chrome$",
|
||||
"instance": "^Google-chrome$",
|
||||
//"title": "^Google\\ Chrome$",
|
||||
//"transient_for": "^$",
|
||||
"window_role": "^browser$"
|
||||
}
|
||||
],
|
||||
"type": "con"
|
||||
}
|
||||
|
||||
25
archive/i3/workspace-2.json
Executable file
@@ -0,0 +1,25 @@
|
||||
// vim:ts=4:sw=4:et
|
||||
{
|
||||
"border": "normal",
|
||||
"current_border_width": 2,
|
||||
"floating": "auto_off",
|
||||
"geometry": {
|
||||
"height": 729,
|
||||
"width": 1362,
|
||||
"x": 2,
|
||||
"y": 18
|
||||
},
|
||||
"name": "Slack",
|
||||
"percent": 1,
|
||||
"swallows": [
|
||||
{
|
||||
"class": "^Slack$",
|
||||
"instance": "^slack$",
|
||||
//"title": "^Slack",
|
||||
//"transient_for": "^$",
|
||||
"window_role": "^browser\\-window$"
|
||||
}
|
||||
],
|
||||
"type": "con"
|
||||
}
|
||||
|
||||
24
archive/i3/workspace-3.json
Executable file
@@ -0,0 +1,24 @@
|
||||
// vim:ts=4:sw=4:et
|
||||
{
|
||||
"border": "normal",
|
||||
"current_border_width": 2,
|
||||
"floating": "auto_off",
|
||||
"geometry": {
|
||||
"height": 383,
|
||||
"width": 575,
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"name": "tpouplier@tpouplier-edge: ~",
|
||||
"percent": 1,
|
||||
"swallows": [
|
||||
{
|
||||
"class": "^gnome-terminal-server$",
|
||||
"instance": "^Gnome-terminal$",
|
||||
//"title": "^tpouplier\\@tpouplier\\-edge\\:\\ \\~$",
|
||||
//"transient_for": "^$"
|
||||
}
|
||||
],
|
||||
"type": "con"
|
||||
}
|
||||
|
||||
567
archive/new_setup.md
Normal file
@@ -0,0 +1,567 @@
|
||||
---
|
||||
id: new_setup
|
||||
aliases: []
|
||||
tags: []
|
||||
---
|
||||
|
||||
# New Computer Setup
|
||||
|
||||
- Switched from Ubuntu to Arch btw.
|
||||
- Tilling window manager
|
||||
- Kept my /home folder for comfiness... May need a big cleanup soon thought.
|
||||
- New dotfile management (stow)
|
||||
- Switch from VScode to... Nvim !! xD (+ kitty, zsh, starship, tmux)
|
||||
|
||||
## TODO
|
||||
|
||||
- [ ] Set a swaync config for notifications [cool config](https://github.com/ErikReider/SwayNotificationCenter/discussions/183)
|
||||
- [ ] Save firefox extantion and settings
|
||||
- [ ] Explore how to complete snippets with multiple cursor placement (low priority. see luasnip)
|
||||
- [ ] Look into nvim orgmode
|
||||
[Nvim Orgmode website](https://nvim-orgmode.github.io/)
|
||||
[Nvim Orgmode github](https://github.com/nvim-orgmode/orgmode)
|
||||
- This is where shit hit the fan and i found out the emacs is awesome.. xD
|
||||
|
||||
## Package installed
|
||||
|
||||
```zsh
|
||||
comm -23 <(pacman -Qqett | sort) <(pacman -Qqg | sort | uniq)
|
||||
```
|
||||
|
||||
### Base install
|
||||
|
||||
- base
|
||||
Base install
|
||||
|
||||
- base-devel
|
||||
Base install
|
||||
|
||||
- linux
|
||||
Base install, kernel
|
||||
|
||||
- linux-firmware
|
||||
Base install, firmware
|
||||
|
||||
- sof-firmware
|
||||
Firmware needed for audio
|
||||
|
||||
- efibootmgr
|
||||
EFI boot manager
|
||||
|
||||
- grub
|
||||
Bootloader
|
||||
|
||||
### Desktop
|
||||
|
||||
- networkmanager
|
||||
Network manager
|
||||
nmtui
|
||||
|
||||
- hyprland
|
||||
Tile window manager
|
||||
|
||||
- hyprlock
|
||||
Lock screen manager
|
||||
SUPER + SHIFT + l
|
||||
|
||||
- hypridle
|
||||
Trigger lockscreen, screen off, hibernation
|
||||
|
||||
- waybar
|
||||
Top bar in hyprland
|
||||
|
||||
- swaync
|
||||
Notifications
|
||||
|
||||
- wofi
|
||||
App launcher
|
||||
SUPER + R
|
||||
|
||||
- okular
|
||||
Open and edit pdf
|
||||
|
||||
- firefox
|
||||
Browser
|
||||
|
||||
- hyprshot
|
||||
Screenshot manager
|
||||
|
||||
- xdg-desktop-portal-hyprland
|
||||
For screen sharing in discord, team, etc.
|
||||
|
||||
<!-- - power-profiles-daemon -->
|
||||
<!-- Power profile selector (perf, eco..) -->
|
||||
<!-- [!WARNING] May be needed by waybar? not working right now -->
|
||||
|
||||
<!-- - auto-cpufreq -->
|
||||
<!-- Manage cpu freq for better batterie life -->
|
||||
|
||||
- tlp
|
||||
Better cpu freq manager
|
||||
```zsh
|
||||
sudo systemctl enable tlp.service
|
||||
sudo systemctl mask systemd-rfkill.service
|
||||
sudo systemctl mask systemd-rfkill.socket
|
||||
```
|
||||
|
||||
- qimgv
|
||||
GUI image viewer
|
||||
[!ERROR] Not the right package
|
||||
|
||||
- swww-git
|
||||
Setting wallpaper
|
||||
|
||||
- nvidia-lts
|
||||
Nvidia driver
|
||||
|
||||
- brightnessctl
|
||||
Allow brighness control of the screen
|
||||
|
||||
- pipewire
|
||||
|
||||
- wireplumber
|
||||
|
||||
- pipewire-audio
|
||||
|
||||
- pipewire-pulse
|
||||
|
||||
- pipewire-alsa
|
||||
|
||||
- pwvucontrol
|
||||
Audio GUI panel
|
||||
|
||||
- udiskie
|
||||
Auto usb mount
|
||||
|
||||
- openssh
|
||||
Needed for its ssh agent
|
||||
```zsh
|
||||
ssh-keygen -t ed25519 -C "your_email@example.com"
|
||||
eval "$(ssh-agent -s)"
|
||||
ssh-add ~/.ssh/id_ed25519
|
||||
systemctl --user enable ssh-agent.service
|
||||
systemctl --user start ssh-agent.service
|
||||
```
|
||||
|
||||
- obsidian
|
||||
Note taking app in plain text markdown
|
||||
|
||||
- poppler
|
||||
For yazi rendering of pdf (doom emacs dired too)
|
||||
|
||||
- imagemagick
|
||||
For pywal, doom emacs dired
|
||||
|
||||
- rg
|
||||
For file content searching
|
||||
|
||||
- jq
|
||||
For yazi json preview
|
||||
|
||||
- ueberzugpp
|
||||
For yazi image preview under hyprland
|
||||
|
||||
- ffmpeg
|
||||
For yazi rendering of video
|
||||
|
||||
- texlive-pictures
|
||||
|
||||
- texlive-binextra
|
||||
|
||||
- texlive-plaingeneric
|
||||
|
||||
- texlive-basic
|
||||
|
||||
- texlive-latexrecommended
|
||||
|
||||
- texlive-latex
|
||||
|
||||
- texlive-latexextra
|
||||
|
||||
- texlive-bin
|
||||
|
||||
- texlive-binextra
|
||||
All testlive above to have the pdflatex executable to allow emacs to export to latex, then.
|
||||
|
||||
- curlftpfs
|
||||
To mount ftp server
|
||||
```zsh
|
||||
modprobe fuse
|
||||
mkdir /mnt/ftp
|
||||
curlftpfs ftp.exemple.com /mnt/ftp/ -o user=username:password
|
||||
nvim /etc/fstab
|
||||
curlftpfs#USER:PASSWORD@ftp.example.com /mnt/exampleorg fuse auto,user,uid=1000,allow_other,_netdev 0 0
|
||||
```
|
||||
|
||||
- isync
|
||||
To have mbsync to sync email for mu and mu4e
|
||||
See ~/.config/isyncrc
|
||||
```zsh
|
||||
mbsync -a
|
||||
```
|
||||
|
||||
- mu
|
||||
```zsh
|
||||
mu init --maildir=~/Mail --my-address='tpouplier@exemple.com'
|
||||
mu index
|
||||
```
|
||||
|
||||
- hunspell
|
||||
Spell checking for emacs with multiple dictionaries
|
||||
Dict placed at ~/Library/Spelling/
|
||||
|
||||
- bluez
|
||||
Daemons for the bluetooth protocol stack
|
||||
```zsh
|
||||
systemctl start bluetooth.service
|
||||
systemctl enable bluetooth.service
|
||||
```
|
||||
|
||||
- bluez-utils
|
||||
Provide bluetoothctl
|
||||
|
||||
- unzip
|
||||
- tar
|
||||
- 7zip
|
||||
File compression
|
||||
|
||||
<!-- I use mu4e now -->
|
||||
<!-- - mutt -->
|
||||
<!-- email TUI client -->
|
||||
<!-- ```zsh -->
|
||||
<!-- mkdir -p ~/.mutt/cache/headers -->
|
||||
<!-- mkdir ~/.mutt/cache/bodies -->
|
||||
<!-- touch ~/.mutt/certificates -->
|
||||
<!-- touch ~/.mutt/muttrc -->
|
||||
<!-- ``` -->
|
||||
|
||||
- wlogout
|
||||
hyprland power menu
|
||||
|
||||
- xclip
|
||||
For emacs everywhere
|
||||
|
||||
- xdotool
|
||||
For emacs everywhere
|
||||
|
||||
- xprop
|
||||
For emacs everywhere
|
||||
|
||||
- xwininfo
|
||||
For emacs everywhere
|
||||
|
||||
- uv
|
||||
Serena dependency
|
||||
|
||||
### Devel
|
||||
|
||||
- Edit /etc/locale.gen
|
||||
- uncomment en_US.UTF-8
|
||||
- sudo locale-gen
|
||||
- Needed for those build bellow
|
||||
|
||||
- mono-msbuild-git
|
||||
|
||||
- mono-msbuild-sdkresolver-git
|
||||
|
||||
- mono-git
|
||||
|
||||
- python-debugpy
|
||||
python debuger
|
||||
|
||||
### TUI
|
||||
|
||||
- bluetuith
|
||||
Bluetooth tui
|
||||
|
||||
- lazydocker
|
||||
TUI docker manager
|
||||
|
||||
- lazygit
|
||||
TUI git manager
|
||||
|
||||
- lazysql
|
||||
TUI sql manager
|
||||
[!ERROR] Not able to connect yet
|
||||
|
||||
- fzf
|
||||
Fuzzy terminal finder
|
||||
|
||||
- sshs
|
||||
ssh TUI
|
||||
sshs
|
||||
|
||||
- yazi
|
||||
TUI folder manager
|
||||
```zsh
|
||||
# Install packages
|
||||
ya pack -u
|
||||
```
|
||||
|
||||
- taskwarrior-tui
|
||||
taskwarior tui
|
||||
[!WARNING] May uninstall, not using it very much
|
||||
|
||||
- ncspot
|
||||
spotify player in the terminal
|
||||
|
||||
### Terminal tool
|
||||
|
||||
- tldr
|
||||
better, simple man
|
||||
|
||||
- git
|
||||
code versioning
|
||||
```zsh
|
||||
git config --global user.name "FIRST_NAME LAST_NAME"
|
||||
git config --global user.email "EMAIL"
|
||||
git config --global pull.rebase false
|
||||
git config core.autocrlf input
|
||||
```
|
||||
|
||||
- neofetch
|
||||
Show system info
|
||||
|
||||
- ripgrep
|
||||
Better grep
|
||||
|
||||
- eza
|
||||
Better ls
|
||||
zsh'''
|
||||
eza .config --tree --level=2 --icons
|
||||
'''
|
||||
|
||||
- fd
|
||||
File searching (yayazi use it. doom emacs dired too)
|
||||
|
||||
- stow
|
||||
Dotfile manager
|
||||
cd dotfiles
|
||||
stow [package]
|
||||
[.stowrc]
|
||||
|
||||
- yay
|
||||
Pacman + AUR
|
||||
```zsh
|
||||
sudo pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay-bin.git && cd yay-bin && makepkg -si
|
||||
|
||||
```
|
||||
|
||||
- zoxide
|
||||
Better cd
|
||||
```zsh
|
||||
z
|
||||
```
|
||||
|
||||
- bat
|
||||
Better cat
|
||||
```zsh
|
||||
bat --color=always
|
||||
```
|
||||
|
||||
- atuin
|
||||
Command history sync server
|
||||
[!WARNING] To install and setup
|
||||
|
||||
- wget
|
||||
Download utility
|
||||
|
||||
- trash-cli
|
||||
Allow easy management of trashed files
|
||||
|
||||
- rm-improved
|
||||
better rm
|
||||
```zsh
|
||||
rip [TARGET]
|
||||
|
||||
- syncthing
|
||||
```zsh
|
||||
systemctl enable syncthing.service --user
|
||||
systemctl start syncthing.service --user
|
||||
```
|
||||
|
||||
### Fonts
|
||||
|
||||
- ttf-font-awesome
|
||||
Fonts
|
||||
|
||||
- ttf-jetbrains-mono-nerd
|
||||
Fonts
|
||||
|
||||
### Terminal stack
|
||||
|
||||
- kitty
|
||||
Terminal emulator
|
||||
[kitty/.config/kitty.conf]
|
||||
|
||||
- zsh
|
||||
Better bash (shell)
|
||||
[zsh/.zshrc]
|
||||
```zsh
|
||||
chsh -s /usr/bin/zsh
|
||||
```
|
||||
|
||||
- starship
|
||||
Custom prompt
|
||||
[starship/.config/starship.toml]
|
||||
|
||||
- tmux
|
||||
Terminal multiplexer, persistant sessions
|
||||
[tmux/.config/tmux/config]
|
||||
|
||||
- tmux-plugin-manager
|
||||
tmux plugin manager
|
||||
[!ERROR] Not working yet
|
||||
|
||||
- neovim
|
||||
Editor
|
||||
[nvim/.config/nvim/init.lua]
|
||||
|
||||
### AI Stack
|
||||
|
||||
- ollama
|
||||
LLM local server
|
||||
|
||||
- aichat
|
||||
All in one llm cli (session, role, RAG, agent, tools)
|
||||
|
||||
- pandoc-cli
|
||||
document type convertion
|
||||
|
||||
### TTS stack
|
||||
|
||||
- piper-tts
|
||||
Generate the tts audio
|
||||
|
||||
- paplay
|
||||
play the sound
|
||||
|
||||
## Rising
|
||||
|
||||
- pywal16
|
||||
Util that change the wallpaper, then generate color theme from the wallpaper for other app to use.
|
||||
```zsh
|
||||
wal -i ~/.config/wallpapers/green_yellow_forest.jpg -o ~/.config/waybar/launch.sh
|
||||
```
|
||||
|
||||
- pywalfox
|
||||
Util that link with the firefox extension to apply color them to it.
|
||||
|
||||
- nwg-look
|
||||
gtk theming
|
||||
[!WARNING] Not in use right now. may uninstall.
|
||||
|
||||
## Favorite keybinds
|
||||
|
||||
### Hyprland
|
||||
|
||||
- <SUPER-q> : New terminal
|
||||
- <SUPER-c> : Close Hypr window
|
||||
- <SUPER-L> : Lock screen
|
||||
- <SUPER-hjkl> : Move focus to window
|
||||
- <SUPER-(1-9)> : Change workspace
|
||||
- <SUPER-SHIFT-(1-9)> : Move window to workspace
|
||||
- <SUPER-s> : Bring the scratchpad workspace (overlay over any workspace, always accecible)
|
||||
- <SUPER-SHIFT-S>: Move window to scratchpad
|
||||
- <SUPER-P>: Change split mode
|
||||
|
||||
### tmux
|
||||
|
||||
- <CTRL-a> : tmux special key (b by default)
|
||||
- <CTRL-a, SHIFT-I> : inside vim, to install pluggins, source tmux.conf, open it in vim, then.. the keys
|
||||
- <CTRL-a, CTRL-w> : show open windows
|
||||
- <CTRL-a, CTRL-o> : open sessionx manager
|
||||
- <CTRL-a, %> : Split vertical
|
||||
- <CTRL-a, "> : Split horizontly
|
||||
- <CTRL-a, hjkl> : Switch focus
|
||||
- <CTRL-a, :> : Command line
|
||||
- <CTRL-a, c> : New window
|
||||
- <CTRL-a, ()> : Change session
|
||||
- <CTRL-a, 1-9> : Change window
|
||||
- <CTRL-a, :, new> : New session
|
||||
- <CTRL-a, :, rename-> : Rename window, session
|
||||
- <CTRL-a, CTRL-s, CTRL-r> : Save and restore session
|
||||
|
||||
### Nvim
|
||||
|
||||
- <CTRL, " "> : Trigger LSP suggestion
|
||||
- <*> : normal search the word under the cursor
|
||||
- <.> : replay last command
|
||||
- <" ", backspace> : Global which-key!!
|
||||
- <" ", s, k> : Search all nvim keybinds!!
|
||||
- <" ", s, g> : Search in all project file with grep
|
||||
- <" ", s, n> : search in nvim config
|
||||
- <SHIFT-a> : Append at the end of line
|
||||
- <ciw> : Change Inside Word (W to only stop at spaces)
|
||||
- <viw> : select whole Word (W to only stop at spaces)
|
||||
- <CTRL-w, v> : Open a new vertical split window
|
||||
- <CTRL-w, h> : Open a new horizontal split window
|
||||
- <j,j or k,k> : Exit insert mode
|
||||
- <y,y> : Yank the line
|
||||
- <p> : Paste
|
||||
- </> : Search
|
||||
- <n, N> : next, previous results
|
||||
- <CTRL, n-o> : select proposed choices
|
||||
- <CTRL, y> : accept selected choice
|
||||
- <t, j-k> : prev,next buffer
|
||||
- <t, h-l> : last,first buffer
|
||||
- <t,d> : delete buffer
|
||||
- <g,d> : go to definition <3
|
||||
- <CTRL, i-o> : jump through the ressent jump list (comme back from gd)
|
||||
- <SHIFT, v> : Select mode by line
|
||||
- <ALT, j-k> : Move a line (visal bloc work too)
|
||||
- <g,g> : Go to first line
|
||||
- <SHIFT, g> : Go to last line
|
||||
- < = > : format selected lines
|
||||
- <" ", " "> : search buffers
|
||||
|
||||
### Yazi
|
||||
|
||||
- <~> : Help menu
|
||||
- <z> : Cd to a directory via zoxide
|
||||
- <Z> : Cd to a directory or reveal a file via fzf
|
||||
- <" "> : Toggle selection of hovered file/directory
|
||||
- <o or enter> : Open file
|
||||
- <Tab> : show file info
|
||||
- <y> : Yank selected files
|
||||
- <x> : Cut selected files
|
||||
- <p> : Paste yanked files
|
||||
- <Y or X> : Cancel yank
|
||||
- <d> : Delete selected files
|
||||
- <a> : Create a file (end with / for folder)
|
||||
- <r> : Rename selected file(s)
|
||||
- <.> : Toggle the visibility of hidden files
|
||||
- </> : Find next file
|
||||
- <n> : Go to the next found
|
||||
- <N> : Go to the previous found
|
||||
- <s> : Search files by name using fd
|
||||
- <S> : Search files by content using ripgrep
|
||||
- <CTRL-s> : Cancel the ongoing search
|
||||
- <t> : Create a new tab with CWD
|
||||
- <1, 2, ..., 9> : Switch to the N-th tab
|
||||
- <[]> : Switch to the previous tab
|
||||
- <{}> : Switch tab order
|
||||
- <CTRL-c> : Close the current tab
|
||||
- <",", m> : Sort by modified time (M reverse)
|
||||
- <",", b> : Sort by birth time (B reverse)
|
||||
- <",", e> : Sort by file extension (E reverse)
|
||||
- <",", a> : Sort alphabetically (A reverse)
|
||||
- <",", n> : Sort naturally (N reverse)
|
||||
- <",", s> : Sort by size (S reverse)
|
||||
|
||||
### Misc
|
||||
|
||||
- <CTRL-r> : fzf powered command history
|
||||
|
||||
## dotfile inspiration
|
||||
|
||||
### Rising
|
||||
- [typecraft](https://github.com/typecraft-dev/dotfiles/tree/master)
|
||||
- [MrVivekRajan Hyprland themes](https://github.com/MrVivekRajan/Hypr-Dots)
|
||||
- [DevOps toolkit](https://github.com/omerxx/dotfiles)
|
||||
- [Bina](https://github.com/LierB/dotfiles/tree/master)
|
||||
- [elifouts](https://github.com/elifouts/Dotfiles)
|
||||
|
||||
### Dev
|
||||
- [KiLLeRRaT](https://github.com/KiLLeRRaT/.dotfiles/tree/master)
|
||||
- [DerrikCreates](https://github.com/DerrikCreates/dotfiles)
|
||||
53
archive/terminator/config
Normal file
@@ -0,0 +1,53 @@
|
||||
[global_config]
|
||||
window_state = fullscreen
|
||||
inactive_color_offset = 0.805555555556
|
||||
suppress_multiple_term_dialog = True
|
||||
always_split_with_profile = True
|
||||
[keybindings]
|
||||
[profiles]
|
||||
[[default]]
|
||||
background_darkness = 0.7
|
||||
background_type = transparent
|
||||
font = Ubuntu Mono 10
|
||||
foreground_color = "#00ffff"
|
||||
show_titlebar = False
|
||||
scrollbar_position = hidden
|
||||
scroll_on_output = True
|
||||
scrollback_infinite = True
|
||||
palette = "#073642:#dc322f:#613583:#b58900:#268bd2:#d33682:#2aa198:#eee8d5:#002b36:#f5c211:#586e75:#f57900:#edd400:#b435c8:#25cc5e:#fdf6e3"
|
||||
custom_command = glances
|
||||
use_system_font = False
|
||||
[layouts]
|
||||
[[default]]
|
||||
[[[child0]]]
|
||||
type = Window
|
||||
parent = ""
|
||||
order = 0
|
||||
position = 0:771
|
||||
maximised = False
|
||||
fullscreen = True
|
||||
size = 1456, 819
|
||||
title = tpouplier@PR-TPOUPL-LP-U:~
|
||||
last_active_term = 5fb46960-7a03-46fd-b5f9-1a0f9b57fac0
|
||||
last_active_window = True
|
||||
[[[child1]]]
|
||||
type = VPaned
|
||||
parent = child0
|
||||
order = 0
|
||||
position = 410
|
||||
ratio = 0.5036855036855037
|
||||
[[[terminal2]]]
|
||||
type = Terminal
|
||||
parent = child1
|
||||
order = 0
|
||||
profile = default
|
||||
uuid = 5fb46960-7a03-46fd-b5f9-1a0f9b57fac0
|
||||
command = glances
|
||||
[[[terminal3]]]
|
||||
type = Terminal
|
||||
parent = child1
|
||||
order = 1
|
||||
profile = default
|
||||
uuid = 2d160bbc-2214-4a61-85a0-33d0f9e5d279
|
||||
command = ""
|
||||
[plugins]
|
||||
158
archive/vim/vimrc
Normal file
@@ -0,0 +1,158 @@
|
||||
set nocompatible " be iMproved, required
|
||||
set laststatus=2
|
||||
set autowriteall " save when changing buffer
|
||||
set t_Co=256
|
||||
set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
|
||||
filetype off " required
|
||||
|
||||
" Buffer Remap
|
||||
nnoremap <Tab> :bnext<CR>
|
||||
" Tab remap
|
||||
nnoremap <S-t> :tabnew<CR>
|
||||
nnoremap <S-d> :tabclose<CR>
|
||||
nnoremap <S-Tab> :tabnext<CR>
|
||||
|
||||
" Command
|
||||
command Bd bp | sp | bn | bd "Close a buffer without closing the window
|
||||
|
||||
" Airline init
|
||||
autocmd VimEnter * AirlineTheme murmur
|
||||
let g:airline#extensions#tabline#enabled = 1
|
||||
let g:airline_powerline_fonts = 1
|
||||
if !exists('g:airline_symbols')
|
||||
let g:airline_symbols = {}
|
||||
endif
|
||||
let g:airline_symbols.space = "\ua0"
|
||||
" unicode symbols
|
||||
"let g:airline_left_sep = '»'
|
||||
"let g:airline_left_sep = '▶'
|
||||
"let g:airline_right_sep = '«'
|
||||
"let g:airline_right_sep = '◀'
|
||||
"let g:airline_symbols.linenr = '␊'
|
||||
"let g:airline_symbols.linenr = ''
|
||||
"let g:airline_symbols.linenr = '¶'
|
||||
"let g:airline_symbols.branch = '⎇'
|
||||
"let g:airline_symbols.paste = 'ρ'
|
||||
"let g:airline_symbols.paste = 'Þ'
|
||||
"let g:airline_symbols.paste = '∥'
|
||||
"let g:airline_symbols.whitespace = 'Ξ'
|
||||
" airline symbols
|
||||
"let g:airline_left_sep = ''
|
||||
"let g:airline_left_alt_sep = ''
|
||||
"let g:airline_right_sep = ''
|
||||
"let g:airline_right_alt_sep = ''
|
||||
"let g:airline_symbols.branch = ''
|
||||
"let g:airline_symbols.readonly = ''
|
||||
"let g:airline_symbols.linenr = ''
|
||||
|
||||
" neocomplete init
|
||||
let g:neocomplcache_enable_at_startup = 1
|
||||
|
||||
" NERDTree init
|
||||
autocmd VimEnter * NERDTree
|
||||
autocmd VimEnter * NERDTreeMirror
|
||||
autocmd VimEnter * wincmd p
|
||||
|
||||
" Syntax checking init
|
||||
set statusline+=%#warningmsg#
|
||||
set statusline+=%{SyntasticStatuslineFlag()}
|
||||
set statusline+=%*
|
||||
let g:syntastic_always_populate_loc_list = 1
|
||||
let g:syntastic_auto_loc_list = 1
|
||||
let g:syntastic_check_on_open = 1
|
||||
let g:syntastic_check_on_wq = 0
|
||||
let g:syntastic_error_symbol = '✘'
|
||||
let g:syntastic_warning_symbol = "▲"
|
||||
let g:syntastic_cpp_check_header = 1
|
||||
let g:syntastic_c_include_dirs = [ '../include', 'include' ]
|
||||
|
||||
" Delimiter init
|
||||
let delimitMate_expand_cr = 1
|
||||
augroup mydelimitMate
|
||||
au!
|
||||
au FileType markdown let b:delimitMate_nesting_quotes = ["`"]
|
||||
au FileType tex let b:delimitMate_quotes = ""
|
||||
au FileType tex let b:delimitMate_matchpairs = "(:),[:],{:},`:'"
|
||||
au FileType python let b:delimitMate_nesting_quotes = ['"', "'"]
|
||||
augroup END
|
||||
|
||||
" Gitgutter init
|
||||
autocmd VimEnter * GitGutterEnable
|
||||
autocmd VimEnter * GitGutterSignsEnable
|
||||
|
||||
" set the runtime path to include Vundle and initialize
|
||||
set rtp+=~/.vim/bundle/Vundle.vim
|
||||
call vundle#begin()
|
||||
" alternatively, pass a path where Vundle should install plugins
|
||||
"call vundle#begin('~/some/path/here')
|
||||
|
||||
|
||||
" let Vundle manage Vundle, required
|
||||
Plugin 'VundleVim/Vundle.vim'
|
||||
|
||||
" The following are examples of different formats supported.
|
||||
" Keep Plugin commands between vundle#begin/end.
|
||||
" plugin on GitHub repo
|
||||
"Plugin 'tpope/vim-fugitive'
|
||||
" plugin from http://vim-scripts.org/vim/scripts.html
|
||||
"Plugin 'L9'
|
||||
" Git plugin not hosted on GitHub
|
||||
"Plugin 'git://git.wincent.com/command-t.git'
|
||||
" git repos on your local machine (i.e. when working on your own plugin)
|
||||
"Plugin 'file:///home/gmarik/path/to/plugin'
|
||||
" The sparkup vim script is in a subdirectory of this repo called vim.
|
||||
" Pass the path to set the runtimepath properly.
|
||||
"Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
|
||||
" Install L9 and avoid a Naming conflict if you've already installed a
|
||||
" different version somewhere else.
|
||||
"Plugin 'ascenator/L9', {'name': 'newL9'}
|
||||
|
||||
|
||||
" **My plugin seletion**
|
||||
|
||||
" Completion stuff
|
||||
Plugin 'Shougo/neocomplete'
|
||||
|
||||
" File system stuff
|
||||
Plugin 'scrooloose/nerdtree'
|
||||
Plugin 'jistr/vim-nerdtree-tabs'
|
||||
Plugin 'kien/ctrlp.vim'
|
||||
|
||||
" Buttom bar stuff
|
||||
Plugin 'vim-airline/vim-airline-themes'
|
||||
Plugin 'vim-airline/vim-airline'
|
||||
|
||||
" Git stuff
|
||||
Plugin 'airblade/vim-gitgutter'
|
||||
Plugin 'tpope/vim-fugitive'
|
||||
|
||||
" Syntax stuff
|
||||
Plugin 'scrooloose/syntastic'
|
||||
|
||||
" Easy open .h
|
||||
Plugin 'vim-scripts/a.vim'
|
||||
|
||||
" Auto () [] {}
|
||||
Plugin 'Raimondi/delimitMate'
|
||||
|
||||
" ctrl-hjkl to move
|
||||
Plugin 'christoomey/vim-tmux-navigator'
|
||||
|
||||
" Buffer stuff
|
||||
"Plugin 'jeetsukumaran/vim-buffergator'
|
||||
|
||||
|
||||
" All of your Plugins must be added before the following line
|
||||
call vundle#end() " required
|
||||
filetype plugin indent on " required
|
||||
" To ignore plugin indent changes, instead use:
|
||||
"filetype plugin on
|
||||
"
|
||||
" Brief help
|
||||
" :PluginList - lists configured plugins
|
||||
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
|
||||
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
|
||||
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
|
||||
"
|
||||
" see :h vundle for more details or wiki for FAQ
|
||||
" Put your non-Plugin stuff after this line
|
||||
138
archive/zsh_oh-my-zsh/.zshrc
Executable file
@@ -0,0 +1,138 @@
|
||||
# If you come from bash you might have to change your $PATH.
|
||||
export PATH=$HOME/bin:/usr/local/bin:$PATH
|
||||
PYTHON_BIN_PATH="$(python3 -m site --user-base)/bin"
|
||||
PATH="$PATH:$PYTHON_BIN_PATH"
|
||||
# export PATH=$HOME/bin:/usr/local/bin:$PATH
|
||||
|
||||
# Path to your oh-my-zsh installation.
|
||||
export ZSH=~/.oh-my-zsh
|
||||
|
||||
# Set name of the theme to load. Optionally, if you set this to "random"
|
||||
# it'll load a random theme each time that oh-my-zsh is loaded.
|
||||
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
|
||||
ZSH_THEME="agnoster"
|
||||
|
||||
# Uncomment the following line to use case-sensitive completion.
|
||||
# CASE_SENSITIVE="true"
|
||||
|
||||
# Uncomment the following line to use hyphen-insensitive completion. Case
|
||||
# sensitive completion must be off. _ and - will be interchangeable.
|
||||
# HYPHEN_INSENSITIVE="true"
|
||||
|
||||
# Uncomment the following line to disable bi-weekly auto-update checks.
|
||||
# DISABLE_AUTO_UPDATE="true"
|
||||
|
||||
# Uncomment the following line to change how often to auto-update (in days).
|
||||
# export UPDATE_ZSH_DAYS=13
|
||||
|
||||
# Uncomment the following line to disable colors in ls.
|
||||
# DISABLE_LS_COLORS="true"
|
||||
|
||||
# Uncomment the following line to disable auto-setting terminal title.
|
||||
# DISABLE_AUTO_TITLE="true"
|
||||
|
||||
# Uncomment the following line to enable command auto-correction.
|
||||
# ENABLE_CORRECTION="true"
|
||||
|
||||
# Uncomment the following line to display red dots whilst waiting for completion.
|
||||
# COMPLETION_WAITING_DOTS="true"
|
||||
|
||||
# Uncomment the following line if you want to disable marking untracked files
|
||||
# under VCS as dirty. This makes repository status check for large repositories
|
||||
# much, much faster.
|
||||
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
||||
|
||||
# Uncomment the following line if you want to change the command execution time
|
||||
# stamp shown in the history command output.
|
||||
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
||||
# HIST_STAMPS="mm/dd/yyyy"
|
||||
|
||||
# Would you like to use another custom folder than $ZSH/custom?
|
||||
# ZSH_CUSTOM=/path/to/new-custom-folder
|
||||
|
||||
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
|
||||
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
|
||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||
# Add wisely, as too many plugins slow down shell startup.
|
||||
plugins=(git)
|
||||
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
# User configuration
|
||||
|
||||
# export MANPATH="/usr/local/man:$MANPATH"
|
||||
|
||||
# You may need to manually set your language environment
|
||||
# export LANG=en_US.UTF-8
|
||||
|
||||
# Preferred editor for local and remote sessions
|
||||
# if [[ -n $SSH_CONNECTION ]]; then
|
||||
# export EDITOR='vim'
|
||||
# else
|
||||
# export EDITOR='mvim'
|
||||
# fi
|
||||
|
||||
# Compilation flags
|
||||
# export ARCHFLAGS="-arch x86_64"
|
||||
|
||||
# ssh
|
||||
# export SSH_KEY_PATH="~/.ssh/rsa_id"
|
||||
|
||||
# Set personal aliases, overriding those provided by oh-my-zsh libs,
|
||||
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
|
||||
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
|
||||
# For a full list of active aliases, run `alias`.
|
||||
#
|
||||
# Example aliases
|
||||
# alias zshconfig="mate ~/.zshrc"
|
||||
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
||||
alias Install='sudo apt-get install'
|
||||
alias Update='sudo apt-get update'
|
||||
alias Upgrade='sudo apt-get upgrade'
|
||||
alias Autoremove='sudo apt-get autoremove'
|
||||
alias Glances='glances --process-short-name'
|
||||
ConnectTo() {
|
||||
|
||||
if [[ "$1" = "horse" ]]; then
|
||||
|
||||
ssh gortium@192.168.1.3
|
||||
|
||||
elif [[ "$1" = "cow" ]]; then
|
||||
|
||||
ssh admin@192.168.1.2
|
||||
|
||||
elif [[ "$1" = "chicken" ]]; then
|
||||
|
||||
ssh root@192.168.1.1
|
||||
|
||||
elif [[ "$1" = "goat" ]]; then
|
||||
|
||||
ssh gortium@192.168.1.4
|
||||
|
||||
else
|
||||
|
||||
echo 'Wrong host nickname.'
|
||||
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
# ROS exports
|
||||
#source /opt/ros/neotic/setup.zsh
|
||||
|
||||
#source ~/Short-Circuit/devel/setup.bash
|
||||
#source ~/sara_ws/devel/setup.bash
|
||||
#source ~/phase0_ws/devel/setup.sh
|
||||
#source ~/elmec_ws/devel/setup.zsh
|
||||
#source ~/Projects/ros_kortex/devel/setup.bash
|
||||
|
||||
#export ROSLAUNCH_SSH_UNKNOWN=1
|
||||
|
||||
#export ROS_MASTER_URI=http://192.168.1.100:11311
|
||||
#export ROS_MASTER_URI=http://SARA:11311
|
||||
#export ROS_MASTER_URI=http://10.0.0.1:11311
|
||||
#export ROS_MASTER_URI=http://localhost:11311
|
||||
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
||||
254
btop/.config/btop/btop.conf
Normal file
@@ -0,0 +1,254 @@
|
||||
#? Config file for btop v. 1.4.4
|
||||
|
||||
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
|
||||
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
|
||||
color_theme = "/usr/share/btop/themes/everforest-dark-medium.theme"
|
||||
|
||||
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
||||
theme_background = False
|
||||
|
||||
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
|
||||
truecolor = True
|
||||
|
||||
#* Set to true to force tty mode regardless if a real tty has been detected or not.
|
||||
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
|
||||
force_tty = False
|
||||
|
||||
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
|
||||
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
|
||||
#* Use whitespace " " as separator between different presets.
|
||||
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
|
||||
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
|
||||
|
||||
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
|
||||
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
|
||||
vim_keys = True
|
||||
|
||||
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
||||
rounded_corners = True
|
||||
|
||||
#* Default symbols to use for graph creation, "braille", "block" or "tty".
|
||||
#* "braille" offers the highest resolution but might not be included in all fonts.
|
||||
#* "block" has half the resolution of braille but uses more common characters.
|
||||
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
|
||||
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
|
||||
graph_symbol = "braille"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_cpu = "braille"
|
||||
|
||||
# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_gpu = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_mem = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_net = "braille"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_proc = "default"
|
||||
|
||||
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
|
||||
shown_boxes = "cpu mem net proc"
|
||||
|
||||
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
|
||||
update_ms = 2000
|
||||
|
||||
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
|
||||
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
|
||||
proc_sorting = "cpu lazy"
|
||||
|
||||
#* Reverse sorting order, True or False.
|
||||
proc_reversed = False
|
||||
|
||||
#* Show processes as a tree.
|
||||
proc_tree = True
|
||||
|
||||
#* Use the cpu graph colors in the process list.
|
||||
proc_colors = True
|
||||
|
||||
#* Use a darkening gradient in the process list.
|
||||
proc_gradient = True
|
||||
|
||||
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
||||
proc_per_core = True
|
||||
|
||||
#* Show process memory as bytes instead of percent.
|
||||
proc_mem_bytes = True
|
||||
|
||||
#* Show cpu graph for each process.
|
||||
proc_cpu_graphs = True
|
||||
|
||||
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
|
||||
proc_info_smaps = False
|
||||
|
||||
#* Show proc box on left side of screen instead of right.
|
||||
proc_left = False
|
||||
|
||||
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
||||
proc_filter_kernel = False
|
||||
|
||||
#* In tree-view, always accumulate child process resources in the parent process.
|
||||
proc_aggregate = True
|
||||
|
||||
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
|
||||
#* Select from a list of detected attributes from the options menu.
|
||||
cpu_graph_upper = "Auto"
|
||||
|
||||
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
|
||||
#* Select from a list of detected attributes from the options menu.
|
||||
cpu_graph_lower = "Auto"
|
||||
|
||||
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
|
||||
show_gpu_info = "Auto"
|
||||
|
||||
#* Toggles if the lower CPU graph should be inverted.
|
||||
cpu_invert_lower = True
|
||||
|
||||
#* Set to True to completely disable the lower CPU graph.
|
||||
cpu_single_graph = False
|
||||
|
||||
#* Show cpu box at bottom of screen instead of top.
|
||||
cpu_bottom = False
|
||||
|
||||
#* Shows the system uptime in the CPU box.
|
||||
show_uptime = True
|
||||
|
||||
#* Show cpu temperature.
|
||||
check_temp = True
|
||||
|
||||
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
|
||||
cpu_sensor = "Auto"
|
||||
|
||||
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
|
||||
show_coretemp = True
|
||||
|
||||
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
|
||||
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
|
||||
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
|
||||
#* Example: "4:0 5:1 6:3"
|
||||
cpu_core_map = ""
|
||||
|
||||
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
|
||||
temp_scale = "celsius"
|
||||
|
||||
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
|
||||
base_10_sizes = False
|
||||
|
||||
#* Show CPU frequency.
|
||||
show_cpu_freq = True
|
||||
|
||||
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
|
||||
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
|
||||
clock_format = "%X"
|
||||
|
||||
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
|
||||
background_update = True
|
||||
|
||||
#* Custom cpu model name, empty string to disable.
|
||||
custom_cpu_name = ""
|
||||
|
||||
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
|
||||
#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user"
|
||||
disks_filter = ""
|
||||
|
||||
#* Show graphs instead of meters for memory values.
|
||||
mem_graphs = True
|
||||
|
||||
#* Show mem box below net box instead of above.
|
||||
mem_below_net = True
|
||||
|
||||
#* Count ZFS ARC in cached and available memory.
|
||||
zfs_arc_cached = True
|
||||
|
||||
#* If swap memory should be shown in memory box.
|
||||
show_swap = True
|
||||
|
||||
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
||||
swap_disk = True
|
||||
|
||||
#* If mem box should be split to also show disks info.
|
||||
show_disks = True
|
||||
|
||||
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
|
||||
only_physical = True
|
||||
|
||||
#* Read disks list from /etc/fstab. This also disables only_physical.
|
||||
use_fstab = True
|
||||
|
||||
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
|
||||
zfs_hide_datasets = False
|
||||
|
||||
#* Set to true to show available disk space for privileged users.
|
||||
disk_free_priv = False
|
||||
|
||||
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
|
||||
show_io_stat = True
|
||||
|
||||
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
|
||||
io_mode = False
|
||||
|
||||
#* Set to True to show combined read/write io graphs in io mode.
|
||||
io_graph_combined = False
|
||||
|
||||
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
|
||||
#* Example: "/mnt/media:100 /:20 /boot:1".
|
||||
io_graph_speeds = ""
|
||||
|
||||
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
|
||||
net_download = 100
|
||||
|
||||
net_upload = 100
|
||||
|
||||
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
|
||||
net_auto = True
|
||||
|
||||
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
|
||||
net_sync = True
|
||||
|
||||
#* Starts with the Network Interface specified here.
|
||||
net_iface = ""
|
||||
|
||||
#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
|
||||
base_10_bitrate = "Auto"
|
||||
|
||||
#* Show battery stats in top right if battery is present.
|
||||
show_battery = True
|
||||
|
||||
#* Which battery to use if multiple are present. "Auto" for auto detection.
|
||||
selected_battery = "Auto"
|
||||
|
||||
#* Show power stats of battery next to charge indicator.
|
||||
show_battery_watts = True
|
||||
|
||||
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
|
||||
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
|
||||
log_level = "WARNING"
|
||||
|
||||
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
|
||||
nvml_measure_pcie_speeds = True
|
||||
|
||||
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
|
||||
rsmi_measure_pcie_speeds = True
|
||||
|
||||
#* Horizontally mirror the GPU graph.
|
||||
gpu_mirror_graph = True
|
||||
|
||||
#* Custom gpu0 model name, empty string to disable.
|
||||
custom_gpu_name0 = ""
|
||||
|
||||
#* Custom gpu1 model name, empty string to disable.
|
||||
custom_gpu_name1 = ""
|
||||
|
||||
#* Custom gpu2 model name, empty string to disable.
|
||||
custom_gpu_name2 = ""
|
||||
|
||||
#* Custom gpu3 model name, empty string to disable.
|
||||
custom_gpu_name3 = ""
|
||||
|
||||
#* Custom gpu4 model name, empty string to disable.
|
||||
custom_gpu_name4 = ""
|
||||
|
||||
#* Custom gpu5 model name, empty string to disable.
|
||||
custom_gpu_name5 = ""
|
||||
2
btop/.stow-local-ignore
Normal file
@@ -0,0 +1,2 @@
|
||||
\.config/btop/btop.log
|
||||
\.config/btop/themes
|
||||
2259
doom/.config/doom/README.org
Normal file
1491
doom/.config/doom/config.el
Normal file
205
doom/.config/doom/init.el
Normal file
@@ -0,0 +1,205 @@
|
||||
;;; init.el -*- lexical-binding: t; -*-
|
||||
|
||||
;; This file controls what Doom modules are enabled and what order they load
|
||||
;; in. Remember to run 'doom sync' after modifying it!
|
||||
|
||||
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
|
||||
;; documentation. There you'll find a link to Doom's Module Index where all
|
||||
;; of our modules are listed, including what flags they support.
|
||||
|
||||
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
|
||||
;; 'C-c c k' for non-vim users) to view its documentation. This works on
|
||||
;; flags as well (those symbols that start with a plus).
|
||||
;;
|
||||
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
|
||||
;; directory (for easy access to its source code).
|
||||
|
||||
(doom! :input
|
||||
;;bidi ; (tfel ot) thgir etirw uoy gnipleh
|
||||
;;chinese
|
||||
;;japanese
|
||||
;;layout ; auie,ctsrnm is the superior home row
|
||||
|
||||
:completion
|
||||
;;company ; the ultimate code completion backend
|
||||
(corfu +orderless) ; complete with cap(f), cape and a flying feather!
|
||||
;;helm ; the *other* search engine for love and life
|
||||
;;ido ; the other *other* search engine...
|
||||
;;ivy ; a search engine for love and life
|
||||
vertico ; the search engine of the future
|
||||
|
||||
:ui
|
||||
;;deft ; notational velocity for Emacs
|
||||
doom ; what makes DOOM look the way it does
|
||||
doom-dashboard ; a nifty splash screen for Emacs
|
||||
;;doom-quit ; DOOM quit-message prompts when you quit Emacs
|
||||
(emoji +unicode) ; 🙂
|
||||
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
||||
;;indent-guides ; highlighted indent columns
|
||||
;;ligatures ; ligatures and symbols to make your code pretty again
|
||||
;;minimap ; show a map of the code on the side
|
||||
modeline ; snazzy, Atom-inspired modeline, plus API
|
||||
;;nav-flash ; blink cursor line after big motions
|
||||
;;neotree ; a project drawer, like NERDTree for vim
|
||||
ophints ; highlight the region an operation acts on
|
||||
(popup +defaults) ; tame sudden yet inevitable temporary windows
|
||||
;;tabs ; a tab bar for Emacs
|
||||
;;treemacs ; a project drawer, like neotree but cooler
|
||||
;;unicode ; extended unicode support for various languages
|
||||
(vc-gutter +pretty) ; vcs diff in the fringe
|
||||
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
||||
;;window-select ; visually switch windows
|
||||
workspaces ; tab emulation, persistence & separate workspaces
|
||||
zen ; distraction-free coding or writing
|
||||
|
||||
:editor
|
||||
(evil +everywhere); come to the dark side, we have cookies
|
||||
file-templates ; auto-snippets for empty files
|
||||
fold ; (nigh) universal code folding
|
||||
(format +onsave) ; automated prettiness
|
||||
;;god ; run Emacs commands without modifier keys
|
||||
;;lispy ; vim for lisp, for people who don't like vim
|
||||
multiple-cursors ; editing in many places at once
|
||||
;;objed ; text object editing for the innocent
|
||||
;;parinfer ; turn lisp into python, sort of
|
||||
;;rotate-text ; cycle region at point between text candidates
|
||||
snippets ; my elves. They type so I don't have to
|
||||
;;word-wrap ; soft wrapping with language-aware indent
|
||||
|
||||
:emacs
|
||||
(dired +dirvish + icons) ; making dired pretty [functional]
|
||||
electric ; smarter, keyword-based electric-indent
|
||||
eww ; the internet is gross
|
||||
;;ibuffer ; interactive buffer management
|
||||
undo ; persistent, smarter undo for your inevitable mistakes
|
||||
vc ; version-control and Emacs, sitting in a tree
|
||||
|
||||
:term
|
||||
;;eshell ; the elisp shell that works everywhere
|
||||
;;shell ; simple shell REPL for Emacs
|
||||
;;term ; basic terminal emulator for Emacs
|
||||
vterm ; the best terminal emulation in Emacs
|
||||
|
||||
:checkers
|
||||
syntax ; tasing you for every semicolon you forget
|
||||
(spell +flyspell) ; tasing you for misspelling mispelling
|
||||
grammar ; tasing grammar mistake every you make
|
||||
|
||||
:tools
|
||||
;;ansible
|
||||
;;biblio ; Writes a PhD for you (citation needed)
|
||||
;;collab ; buffers with friends
|
||||
debugger ; FIXME stepping through code, to help you add bugs
|
||||
;;direnv
|
||||
docker
|
||||
;;editorconfig ; let someone else argue about tabs vs spaces
|
||||
;;ein ; tame Jupyter notebooks with emacs
|
||||
(eval +overlay) ; run code, run (also, repls)
|
||||
lookup ; navigate your code and its documentation
|
||||
(lsp +peek) ; M-x vscode
|
||||
magit ; a git porcelain for Emacs
|
||||
make ; run make tasks from Emacs
|
||||
;;pass ; password manager for nerds
|
||||
pdf ; pdf enhancements
|
||||
;;prodigy ; FIXME managing external services & code builders
|
||||
;;terraform ; infrastructure as code
|
||||
tmux ; an API for interacting with tmux
|
||||
tree-sitter ; syntax and parsing, sitting in a tree...
|
||||
;;upload ; map local to remote projects via ssh/ftp
|
||||
|
||||
:os
|
||||
(:if (featurep :system 'macos) macos) ; improve compatibility with macOS
|
||||
;;tty ; improve the terminal Emacs experience
|
||||
|
||||
:lang
|
||||
;;agda ; types of types of types of types...
|
||||
beancount ; mind the GAAP
|
||||
(cc +lsp) ; C > C++ == 1
|
||||
;;clojure ; java with a lisp
|
||||
;;common-lisp ; if you've seen one lisp, you've seen them all
|
||||
;;coq ; proofs-as-programs
|
||||
;;crystal ; ruby at the speed of c
|
||||
(csharp +lsp +tree-sitter) ; unity, .NET, and mono shenanigans
|
||||
;;data ; config/data formats
|
||||
;;(dart +flutter) ; paint ui and not much else
|
||||
;;dhall
|
||||
;;elixir ; erlang done right
|
||||
;;elm ; care for a cup of TEA?
|
||||
emacs-lisp ; drown in parentheses
|
||||
;;erlang ; an elegant language for a more civilized age
|
||||
;;ess ; emacs speaks statistics
|
||||
;;factor
|
||||
;;faust ; dsp, but you get to keep your soul
|
||||
;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER)
|
||||
;;fsharp ; ML stands for Microsoft's Language
|
||||
;;fstar ; (dependent) types and (monadic) effects and Z3
|
||||
;;gdscript ; the language you waited for
|
||||
;;(go +lsp) ; the hipster dialect
|
||||
;;(graphql +lsp) ; Give queries a REST
|
||||
(haskell +lsp) ; a language that's lazier than I am
|
||||
;;hy ; readability of scheme w/ speed of python
|
||||
;;idris ; a language you can depend on
|
||||
json ; At least it ain't XML
|
||||
(java +lsp) ; the poster child for carpal tunnel syndrome
|
||||
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
|
||||
;;julia ; a better, faster MATLAB
|
||||
;;kotlin ; a better, slicker Java(Script)
|
||||
latex ; writing papers in Emacs has never been so fun
|
||||
;;lean ; for folks with too much to prove
|
||||
ledger ; be audit you can be
|
||||
lua ; one-based indices? one-based indices
|
||||
markdown ; writing docs for people to ignore
|
||||
;;nim ; python + lisp at the speed of c
|
||||
(nix ; I hereby declare "nix geht mehr!"
|
||||
+lsp
|
||||
+tree-sitter)
|
||||
;;ocaml ; an objective camel
|
||||
(org ; organize your plain life in plain text
|
||||
+dragndrop
|
||||
+pretty
|
||||
+journal
|
||||
+present
|
||||
+roam2
|
||||
+pandoc
|
||||
+noter)
|
||||
;;php ; perl's insecure younger brother
|
||||
plantuml ; diagrams for confusing people more
|
||||
;;graphviz ; diagrams for confusing yourself even more
|
||||
;;purescript ; javascript, but functional
|
||||
(python
|
||||
+lsp
|
||||
+pyright
|
||||
+cython) ; beautiful is better than ugly
|
||||
;;qt ; the 'cutest' gui framework ever
|
||||
;;racket ; a DSL for DSLs
|
||||
;;raku ; the artist formerly known as perl6
|
||||
;;rest ; Emacs as a REST client
|
||||
;;rst ; ReST in peace
|
||||
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
||||
(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
||||
;;scala ; java, but good
|
||||
;;(scheme +guile) ; a fully conniving family of lisps
|
||||
sh ; she sells {ba,z,fi}sh shells on the C xor
|
||||
;;sml
|
||||
;;solidity ; do you need a blockchain? No.
|
||||
;;swift ; who asked for emoji variables?
|
||||
;;terra ; Earth and Moon in alignment for performance.
|
||||
;;web ; the tubes
|
||||
yaml ; JSON, but readable
|
||||
;;zig ; C, but simpler
|
||||
|
||||
:email
|
||||
(mu4e +org +gmail +mbsync)
|
||||
;;notmuch
|
||||
;;(wanderlust +gmail)
|
||||
|
||||
:app
|
||||
calendar
|
||||
;;emms ; Multimedia system
|
||||
everywhere ; *leave* Emacs!? You must be joking
|
||||
irc ; how neckbeards socialize
|
||||
;;(rss +org) ; emacs as an RSS reader
|
||||
|
||||
:config
|
||||
;;literate
|
||||
(default +bindings +smartparens))
|
||||
169
doom/.config/doom/packages.el
Normal file
@@ -0,0 +1,169 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; $DOOMDIR/packages.el
|
||||
|
||||
;; To install a package with Doom you must declare them here and run 'doom sync'
|
||||
;; on the command line, then restart Emacs for the changes to take effect -- or
|
||||
|
||||
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
|
||||
;; (package! some-package)
|
||||
|
||||
;; pywal for emacs
|
||||
(package! ewal)
|
||||
|
||||
;; Pywal theme for doom
|
||||
(package! ewal-doom-themes)
|
||||
|
||||
;; Pointer highlight
|
||||
(package! beacon)
|
||||
|
||||
;; Weather in the agenda
|
||||
;; (package! weather-metno) ;; Not working.. :(
|
||||
|
||||
;; Weather for the week in emacs
|
||||
(package! wttrin)
|
||||
|
||||
;; Execute TUI from emacs
|
||||
;; (package! eee
|
||||
;; :recipe (:host github :repo "eval-exec/eee.el"
|
||||
;; :files (:defaults "*.el" "*.sh")))
|
||||
|
||||
;; timezone calc
|
||||
(package! tzc)
|
||||
|
||||
;; Undo tree
|
||||
(package! vundo)
|
||||
|
||||
;; Undo highlight
|
||||
(package! undo-hl
|
||||
:recipe (:host github :repo "casouri/undo-hl"
|
||||
:files (:defaults "*.el" "*.sh")))
|
||||
|
||||
(package! org-modern)
|
||||
|
||||
;; Auto latex edit
|
||||
(package! org-fragtog)
|
||||
|
||||
;; latex preview
|
||||
(package! cdlatex)
|
||||
|
||||
;; Better auto-save
|
||||
(package! super-save)
|
||||
|
||||
;; Open-With behavior
|
||||
(package! openwith)
|
||||
|
||||
;; Drag-stuff with alt-jk
|
||||
(package! drag-stuff)
|
||||
|
||||
(package! request)
|
||||
;; Excalidraw for emacs
|
||||
;; (package! org-excalidraw :recipe
|
||||
;; (:host github
|
||||
;; :repo "wdavew/org-excalidraw"))
|
||||
|
||||
;; (package! org-ai)
|
||||
|
||||
;; Emacs AI
|
||||
;; (package! ellama)
|
||||
|
||||
;; Emacs RAG
|
||||
;; (package! elisa)
|
||||
|
||||
;; gptel for chat
|
||||
(package! gptel :recipe (:nonrecursive t))
|
||||
|
||||
;; aidermacs for coding
|
||||
;; (package! aidermacs)
|
||||
|
||||
(package! mcp)
|
||||
|
||||
(package! evil-escape)
|
||||
|
||||
(package! org-phscroll
|
||||
:recipe (:type git :host github :repo "misohena/phscroll" :protocol ssh))
|
||||
|
||||
(package! elpher)
|
||||
|
||||
;; Better odt exporter
|
||||
(package! ox-odt
|
||||
:recipe
|
||||
(
|
||||
:host github
|
||||
:repo "kjambunathan/org-mode-ox-odt"
|
||||
:files ("lisp/ox-odt.el"
|
||||
"lisp/ox-ods.el"
|
||||
"lisp/odt.el"
|
||||
"etc"
|
||||
"docs"
|
||||
"contrib/odt/LibreOffice")))
|
||||
(package! seq)
|
||||
(package! peg)
|
||||
(package! citeproc)
|
||||
|
||||
;; (package! emigo :recipe
|
||||
;; (:host github
|
||||
;; :repo "MatthewZMD/emigo" :files (:defaults "*.py" "*.el")
|
||||
;; )
|
||||
;; )
|
||||
;; (package! image-roll :recipe
|
||||
;; (:host github
|
||||
;; :repo "dalanicolai/image-roll.el"))
|
||||
|
||||
;; (package! org-edna)
|
||||
|
||||
|
||||
(package! age)
|
||||
|
||||
(package! passage
|
||||
:recipe (:host github :repo "anticomputer/passage.el" :protocol ssh))
|
||||
|
||||
(package! krl-mode
|
||||
:recipe (:host nil
|
||||
:repo "ssh://code.lazyworkhorse.net:2222/gortium/krl-mode.git"
|
||||
:files ("*.el")))
|
||||
|
||||
(package! auto-highlight-symbol)
|
||||
|
||||
(package! hledger-mode)
|
||||
|
||||
(package! all-the-icons)
|
||||
|
||||
;; To install a package directly from a remote git repo, you must specify a
|
||||
;; ``:recipe' accepts here:
|
||||
;; https://github.com/radian-software/straight.el#the-recipe-format
|
||||
;; (package! another-package
|
||||
;; :recipe (:host github :repo "username/repo"))
|
||||
|
||||
;; If the package you are trying to install does not contain a PACKAGENAME.el
|
||||
;; file, or is located in a subdirectory of the repo, you'll need to specify
|
||||
;; `:files' in the `:recipe':
|
||||
;; (package! this-package
|
||||
;; :recipe (:host github :repo "username/repo"
|
||||
;; :files ("some-file.el" "src/lisp/*.el")))
|
||||
|
||||
;; If you'd like to disable a package included with Doom, you can do so here
|
||||
;; with the `:disable' property:
|
||||
;; (package! builtin-package :disable t)
|
||||
|
||||
;; You can override the recipe of a built in package without having to specify
|
||||
;; all the properties for `:recipe'. These will inherit the rest of its recipe
|
||||
;; from Doom or MELPA/ELPA/Emacsmirror:
|
||||
;; (package! builtin-package :recipe (:nonrecursive t))
|
||||
;; (package! builtin-package-2 :recipe (:repo "myfork/package"))
|
||||
|
||||
;; Specify a `:branch' to install a package from a particular branch or tag.
|
||||
;; This is required for some packages whose default branch isn't 'master' (which
|
||||
;; our package manager can't deal with; see radian-software/straight.el#279)
|
||||
;; (package! builtin-package :recipe (:branch "develop"))
|
||||
|
||||
;; Use `:pin' to specify a particular commit to install.
|
||||
;; (package! builtin-package :pin "1a2b3c4d5e")
|
||||
|
||||
|
||||
;; Doom's packages are pinned to a specific commit and updated from release to
|
||||
;; release. The `unpin!' macro allows you to unpin single packages...
|
||||
;; (unpin! pinned-package)
|
||||
;; ...or multiple packages
|
||||
;; (unpin! pinned-package another-pinned-package)
|
||||
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
|
||||
;; (unpin! t)
|
||||
34
hypr/.config/hypr/hypridle.conf
Normal file
@@ -0,0 +1,34 @@
|
||||
general {
|
||||
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
|
||||
before_sleep_cmd = loginctl lock-session # lock before suspend.
|
||||
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 300 # 5min.
|
||||
on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor.
|
||||
on-resume = brightnessctl -r # monitor backlight restore.
|
||||
}
|
||||
|
||||
# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
|
||||
listener {
|
||||
timeout = 150 # 2.5min.
|
||||
on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight.
|
||||
on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 600 # 10min
|
||||
on-timeout = loginctl lock-session # lock screen when timeout has passed
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 630 # 10.5min
|
||||
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
|
||||
on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 1800 # 30min
|
||||
on-timeout = systemctl suspend # suspend pc
|
||||
}
|
||||
361
hypr/.config/hypr/hyprland.conf
Normal file
@@ -0,0 +1,361 @@
|
||||
# This is an example Hyprland config file.
|
||||
# Refer to the wiki for more information.
|
||||
# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/
|
||||
|
||||
# Please note not all available settings / options are set here.
|
||||
# For a full list, see the wiki
|
||||
|
||||
# You can split this configuration into multiple files
|
||||
# Create your files separately and then link them to this file like this:
|
||||
# source = ~/.config/hypr/myColors.conf
|
||||
source = ~/.cache/wal/colors-hyprland.conf
|
||||
|
||||
################
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
# Useful command:
|
||||
# hyprctl monitors all
|
||||
## Valkyrie setup
|
||||
# monitor=eDP-1,highres,auto,2 #3200x1800,0x0,2
|
||||
# monitor=HDMI-A-2,2560x1600,auto,1 #1600x0,1 #x-370,1,transform,1
|
||||
## Ingenuity setup
|
||||
monitor=eDP-1,1920x1080,0x0,1
|
||||
monitor=DP-3,1920x1080,1920x0,1 # HDMI screen
|
||||
# Horizontal setup
|
||||
#monitor=DP-4,1920x1080,-960x-1080,1 # Left screen
|
||||
#monitor=DP-6,1920x1080,-960x-1080,1 # Left screen
|
||||
#monitor=DP-5,1920x1080,960x-1080,1 # Right screen
|
||||
#monitor=DP-7,1920x1080,960x-1080,1 # Right screen
|
||||
# Vertical setup
|
||||
monitor=DP-4,1920x1080,0x-1080,1,transform,0 # Left screen
|
||||
monitor=DP-6,1920x1080,0x-1080,1,transform,0 # Left screen
|
||||
monitor=DP-5,1920x1080,1920x-1480,1,transform,1 # Right screen
|
||||
monitor=DP-7,1920x1080,1920x-1480,1,transform,1 # Right screen
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
|
||||
# Set programs that you use
|
||||
$terminal = kitty
|
||||
$fileManager = emacsclient -c -a emacs --eval '(dirvish "$HOME")'
|
||||
$menu = wofi --show drun
|
||||
$zen = zen-browser
|
||||
$music = kitty ncspot
|
||||
$monitoring = kitty btop
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
|
||||
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
# Or execute your favorite apps at launch like this:
|
||||
|
||||
# exec-once = $terminal
|
||||
# exec-once = nm-applet &
|
||||
exec = hyprshade auto
|
||||
exec-once = udiskie
|
||||
exec-once = waybar
|
||||
exec-once = swww-daemon
|
||||
exec-once = swaync
|
||||
exec-once = hypridle
|
||||
exec-once = hyprlock
|
||||
exec-once = /usr/bin/emacs --daemon
|
||||
exec-once = dbus-update-activation-environment --systemd HYPRLAND_INSTANCE_SIGNATURE
|
||||
|
||||
#############################
|
||||
### ENVIRONMENT VARIABLES ###
|
||||
#############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
env = LIBVA_DRIVER_NAME,nvidia
|
||||
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||
env = WLR_NO_HARDWARE_CURSOR,1
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = GBM_BACKEND,nvidia-drm
|
||||
env = WLR_RENDERER_ALLOW_SOFTWARE,1
|
||||
|
||||
#####################
|
||||
### LOOK AND FEEL ###
|
||||
#####################
|
||||
|
||||
# Refer to https://wiki.hyprland.org/Configuring/Variables/
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 4.5
|
||||
gaps_out = 9
|
||||
|
||||
border_size = 2
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||
col.active_border = $color1 $color1 $color2 45deg
|
||||
col.inactive_border = $background
|
||||
|
||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = false
|
||||
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 4
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 0.9
|
||||
inactive_opacity = 0.75
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur {
|
||||
enabled = false
|
||||
# enabled = true
|
||||
# size = 16
|
||||
# passes = 2
|
||||
# new_optimizations = true
|
||||
}
|
||||
layerrule = blur, waybar
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||
animations {
|
||||
enabled = true
|
||||
|
||||
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
|
||||
animation = windows, 1, 2, myBezier
|
||||
animation = windowsOut, 1, 2, default, popin 80%
|
||||
animation = border, 1, 2, default
|
||||
animation = borderangle, 1, 2, default
|
||||
animation = fade, 1, 2, default
|
||||
animation = workspaces, 1, 2, default
|
||||
animation = specialWorkspace, 1, 2, myBezier, slidefadevert -10%
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true # You probably want this
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
master {
|
||||
new_status = master
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||
misc {
|
||||
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
|
||||
}
|
||||
|
||||
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
input {
|
||||
kb_layout = us,ca #,halmak
|
||||
kb_options = grp:win_space_toggle, ctrl:nocaps
|
||||
# kb_variant =
|
||||
# kb_model =
|
||||
# kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
sensitivity = 0.5 # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad {
|
||||
natural_scroll = true
|
||||
disable_while_typing = true
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||
gestures {
|
||||
# workspace_swipe = false
|
||||
}
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
||||
device {
|
||||
name = epic-mouse-v1
|
||||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
###################
|
||||
### KEYBINDINGS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
bind = $mainMod, T, exec, $terminal
|
||||
bind = $mainMod, D, killactive,
|
||||
bind = $mainMod SHIFT, Q, exit,
|
||||
bind = $mainMod, U, exec, ~/ExoKortex/2-Areas/IT/config/scripts/make_all.sh
|
||||
bind = $mainMod, M, exec, $monitoring
|
||||
bind = $mainMod, W, exec, $fileManager
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = $mainMod, R, exec, $menu
|
||||
bind = $mainMod, Z, exec, $zen
|
||||
#bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, P, togglesplit, # dwindle
|
||||
bind = $mainMod, N, movecurrentworkspacetomonitor, -1
|
||||
bind = $mainMod SHIFT, N, movecurrentworkspacetomonitor, +1
|
||||
bind = $mainMod, X, swapwindow
|
||||
bind = $mainMod, B, exec, nerd-dictation begin
|
||||
bind = $mainMod, G, exec, nerd-dictation end
|
||||
bind = $mainMod, A, exec, $music
|
||||
#
|
||||
# Full screen
|
||||
bind = SUPER, F, fullscreen
|
||||
|
||||
# Screenshot
|
||||
bind = , PRINT, exec, hyprshot -m output
|
||||
bind = $mainMod, PRINT, exec, hyprshot -m window
|
||||
bind = shift, PRINT, exec, hyprshot -m region
|
||||
|
||||
# hyprlock
|
||||
bind = $mainMod, o, exec, hyprlock
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = $mainMod, h, movefocus, l
|
||||
bind = $mainMod, j, movefocus, d
|
||||
bind = $mainMod, k, movefocus, u
|
||||
bind = $mainMod, l, movefocus, r
|
||||
|
||||
# Forward and reverse cycle (to focus floating)
|
||||
bind = $mainMod, Tab, cyclenext
|
||||
bind = $mainMod SHIFT, Tab, cyclenext, prev
|
||||
|
||||
# Resize windows
|
||||
bind = $mainMod CTRL, l, resizeactive, 20 0
|
||||
bind = $mainMod CTRL, h, resizeactive, -20 0
|
||||
bind = $mainMod CTRL, k, resizeactive, 0 -20
|
||||
bind = $mainMod CTRL, j, resizeactive, 0 20
|
||||
|
||||
# Swap window position
|
||||
bind = $mainMod SHIFT, h, swapwindow, l
|
||||
bind = $mainMod SHIFT, j, swapwindow, d
|
||||
bind = $mainMod SHIFT, k, swapwindow, u
|
||||
bind = $mainMod SHIFT, l, swapwindow, r
|
||||
|
||||
# Move floating window
|
||||
bind = $mainMod SHIFT, l, moveactive, 100 0
|
||||
bind = $mainMod SHIFT, h, moveactive, -100 0
|
||||
bind = $mainMod SHIFT, k, moveactive, 0 -100
|
||||
bind = $mainMod SHIFT, j, moveactive, 0 100
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
bind = $mainMod, S, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
# Emacs-everywhere
|
||||
bind = $mainMod, E, exec, emacsclient --eval '(thanos/type)'
|
||||
windowrulev2 = float,title:^(emacs-float)$
|
||||
|
||||
# Play/Pause
|
||||
# bind = $mainMod, P, exec, playerctl play-pause
|
||||
|
||||
# Next Track
|
||||
# bind = $mainmod SHIFT, L, exec, playerctl next
|
||||
|
||||
# Previous Track
|
||||
# bind = $mainmod SHIFT, H, exec, playerctl previous
|
||||
|
||||
# Volume Up (player volume)
|
||||
# bind = $mainmod , U, exec, playerctl volume 0.05+
|
||||
|
||||
# Volume Down (player volume)
|
||||
# bind = $mainmod, D, exec, playerctl volume 0.05-
|
||||
|
||||
# Stop Playback
|
||||
# bind = $mainmod, S, exec, playerctl stop
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||
|
||||
# Example windowrule v1
|
||||
# windowrule = float, ^(kitty)$
|
||||
|
||||
# Example windowrule v2
|
||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||
|
||||
# Ignore maximize requests from apps. You'll probably like this.
|
||||
windowrulev2 = suppressevent maximize, class:.*
|
||||
|
||||
# Fix some dragging issues with XWayland
|
||||
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
|
||||
workspace = 1, name:short-1, monitor:DP-4 # Left screen
|
||||
workspace = 2, name:short-2, monitor:DP-4 # Left screen
|
||||
workspace = 3, name:long-1, monitor:DP-5 # Right screen
|
||||
workspace = 4, name:long-2, monitor:DP-5 # Right screen
|
||||
workspace = 5, name:smoll, monitor:eDP-1 # Laptop screen
|
||||
#workspace = 4, name:windows, monitor:DP-4, on-created-empty:VBoxManage startvm "Windows 11"
|
||||
#workspace = special:scratchpad, on-created-empty:kitty
|
||||
111
hypr/.config/hypr/hyprlock.conf
Normal file
@@ -0,0 +1,111 @@
|
||||
source = $HOME/.cache/wal/colors-hyprland.conf
|
||||
|
||||
general {
|
||||
ignore_empty_input = true
|
||||
}
|
||||
|
||||
background {
|
||||
monitor =
|
||||
path = $wallpaper
|
||||
# color = $color1
|
||||
|
||||
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
|
||||
blur_size = 4
|
||||
blur_passes = 3 # 0 disables blurring
|
||||
noise = 0.0117
|
||||
contrast = 1.3000 # Vibrant!!!
|
||||
brightness = 0.8000
|
||||
vibrancy = 0.2100
|
||||
vibrancy_darkness = 0.0
|
||||
}
|
||||
|
||||
# Hours
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<b><big> $(date +"%H") </big></b>"
|
||||
color = $color6
|
||||
font_size = 112
|
||||
font_family = Geist Mono 10
|
||||
shadow_passes = 3
|
||||
shadow_size = 4
|
||||
|
||||
position = 0, 220
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# Minutes
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<b><big> $(date +"%M") </big></b>"
|
||||
color = $color6
|
||||
font_size = 112
|
||||
font_family = Geist Mono 10
|
||||
shadow_passes = 3
|
||||
shadow_size = 4
|
||||
|
||||
position = 0, 80
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# Today
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:18000000] echo "<b><big> "$(date +'%A')" </big></b>"
|
||||
color = $color7
|
||||
font_size = 22
|
||||
font_family = JetBrainsMono Nerd Font 10
|
||||
|
||||
position = 0, 30
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# Week
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:18000000] echo "<b> "$(date +'%d %b')" </b>"
|
||||
color = $color7
|
||||
font_size = 18
|
||||
font_family = JetBrainsMono Nerd Font 10
|
||||
|
||||
position = 0, 6
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# Degrees
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:18000000] echo "<b>Feels like<big> $(curl -s 'wttr.in?format=%t' | tr -d '+') </big></b>"
|
||||
color = $color7
|
||||
font_size = 18
|
||||
font_family = Geist Mono 10
|
||||
|
||||
position = 0, 40
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 250, 50
|
||||
outline_thickness = 3
|
||||
|
||||
dots_size = 0.26 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.64 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
dots_rouding = -1
|
||||
|
||||
rounding = 22
|
||||
outer_color = $color0
|
||||
inner_color = $color0
|
||||
font_color = $color6
|
||||
fade_on_empty = true
|
||||
placeholder_text = <i>Password...</i> # Text rendered in the input box when it's empty.
|
||||
|
||||
position = 0, 120
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
2
hypr/.config/hypr/hyprpaper.conf
Normal file
@@ -0,0 +1,2 @@
|
||||
preload = ~/.config/wallpapers/tree_bark.jpg
|
||||
wallpaper = , ~/.config/wallpapers/tree_bark.jpg
|
||||
8
hypr/.config/hypr/hyprshade.toml
Normal file
@@ -0,0 +1,8 @@
|
||||
[[shades]]
|
||||
name = "vibrance"
|
||||
default = true # will be activated when no other shader is scheduled
|
||||
|
||||
[[shades]]
|
||||
name = "blue-light-filter"
|
||||
start_time = 19:00:00
|
||||
end_time = 06:00:00
|
||||
78
hypr/.config/hypr/mocha.conf
Normal file
@@ -0,0 +1,78 @@
|
||||
|
||||
$rosewater = rgb(f5e0dc)
|
||||
$rosewaterAlpha = f5e0dc
|
||||
|
||||
$flamingo = rgb(f2cdcd)
|
||||
$flamingoAlpha = f2cdcd
|
||||
|
||||
$pink = rgb(f5c2e7)
|
||||
$pinkAlpha = f5c2e7
|
||||
|
||||
$mauve = rgb(cba6f7)
|
||||
$mauveAlpha = cba6f7
|
||||
|
||||
$red = rgb(f38ba8)
|
||||
$redAlpha = f38ba8
|
||||
|
||||
$maroon = rgb(eba0ac)
|
||||
$maroonAlpha = eba0ac
|
||||
|
||||
$peach = rgb(fab387)
|
||||
$peachAlpha = fab387
|
||||
|
||||
$yellow = rgb(f9e2af)
|
||||
$yellowAlpha = f9e2af
|
||||
|
||||
$green = rgb(a6e3a1)
|
||||
$greenAlpha = a6e3a1
|
||||
|
||||
$teal = rgb(94e2d5)
|
||||
$tealAlpha = 94e2d5
|
||||
|
||||
$sky = rgb(89dceb)
|
||||
$skyAlpha = 89dceb
|
||||
|
||||
$sapphire = rgb(74c7ec)
|
||||
$sapphireAlpha = 74c7ec
|
||||
|
||||
$blue = rgb(89b4fa)
|
||||
$blueAlpha = 89b4fa
|
||||
|
||||
$lavender = rgb(b4befe)
|
||||
$lavenderAlpha = b4befe
|
||||
|
||||
$text = rgb(cdd6f4)
|
||||
$textAlpha = cdd6f4
|
||||
|
||||
$subtext1 = rgb(bac2de)
|
||||
$subtext1Alpha = bac2de
|
||||
|
||||
$subtext0 = rgb(a6adc8)
|
||||
$subtext0Alpha = a6adc8
|
||||
|
||||
$overlay2 = rgb(9399b2)
|
||||
$overlay2Alpha = 9399b2
|
||||
|
||||
$overlay1 = rgb(7f849c)
|
||||
$overlay1Alpha = 7f849c
|
||||
|
||||
$overlay0 = rgb(6c7086)
|
||||
$overlay0Alpha = 6c7086
|
||||
|
||||
$surface2 = rgb(585b70)
|
||||
$surface2Alpha = 585b70
|
||||
|
||||
$surface1 = rgb(45475a)
|
||||
$surface1Alpha = 45475a
|
||||
|
||||
$surface0 = rgb(313244)
|
||||
$surface0Alpha = 313244
|
||||
|
||||
$base = rgb(1e1e2e)
|
||||
$baseAlpha = 1e1e2e
|
||||
|
||||
$mantle = rgb(181825)
|
||||
$mantleAlpha = 181825
|
||||
|
||||
$crust = rgb(11111b)
|
||||
$crustAlpha = 11111b
|
||||
12
kitty/.config/kitty/kitty.conf
Normal file
@@ -0,0 +1,12 @@
|
||||
shell zsh
|
||||
|
||||
include ~/.cache/wal/colors-kitty.conf
|
||||
font_size 11
|
||||
# background_opacity 0.5
|
||||
|
||||
# BEGIN_KITTY_FONTS
|
||||
font_family family='JetBrainsMono Nerd Font' postscript_name=JetBrainsMonoNF-Regular
|
||||
bold_font auto
|
||||
italic_font auto
|
||||
bold_italic_font auto
|
||||
# END_KITTY_FONTS
|
||||
109
nvim/.config/nvim/init.lua
Normal file
@@ -0,0 +1,109 @@
|
||||
--[[
|
||||
|
||||
=====================================================================
|
||||
==================== READ THIS BEFORE CONTINUING ====================
|
||||
=====================================================================
|
||||
======== .-----. ========
|
||||
======== .----------------------. | === | ========
|
||||
======== |.-""""""""""""""""""-.| |-----| ========
|
||||
======== || || | === | ========
|
||||
======== || KICKSTART.NVIM || |-----| ========
|
||||
======== || || | === | ========
|
||||
======== || || |-----| ========
|
||||
======== ||:Tutor || |:::::| ========
|
||||
======== |'-..................-'| |____o| ========
|
||||
======== `"")----------------(""` ___________ ========
|
||||
======== /::::::::::| |::::::::::\ \ no mouse \ ========
|
||||
======== /:::========| |==hjkl==:::\ \ required \ ========
|
||||
======== '""""""""""""' '""""""""""""' '""""""""""' ========
|
||||
======== ========
|
||||
=====================================================================
|
||||
=====================================================================
|
||||
|
||||
What is Kickstart?
|
||||
|
||||
Kickstart.nvim is *not* a distribution.
|
||||
|
||||
Kickstart.nvim is a starting point for your own configuration.
|
||||
The goal is that you can read every line of code, top-to-bottom, understand
|
||||
what your configuration is doing, and modify it to suit your needs.
|
||||
|
||||
Once you've done that, you can start exploring, configuring and tinkering to
|
||||
make Neovim your own! That might mean leaving Kickstart just the way it is for a while
|
||||
or immediately breaking it into modular pieces. It's up to you!
|
||||
|
||||
If you don't know anything about Lua, I recommend taking some time to read through
|
||||
a guide. One possible example which will only take 10-15 minutes:
|
||||
- https://learnxinyminutes.com/docs/lua/
|
||||
|
||||
After understanding a bit more about Lua, you can use `:help lua-guide` as a
|
||||
reference for how Neovim integrates Lua.
|
||||
- :help lua-guide
|
||||
- (or HTML version): https://neovim.io/doc/user/lua-guide.html
|
||||
|
||||
Kickstart Guide:
|
||||
|
||||
TODO: The very first thing you should do is to run the command `:Tutor` in Neovim.
|
||||
|
||||
If you don't know what this means, type the following:
|
||||
- <escape key>
|
||||
- :
|
||||
- Tutor
|
||||
- <enter key>
|
||||
|
||||
(If you already know the Neovim basics, you can skip this step.)
|
||||
|
||||
Once you've completed that, you can continue working through **AND READING** the rest
|
||||
of the kickstart init.lua.
|
||||
|
||||
Next, run AND READ `:help`.
|
||||
This will open up a help window with some basic information
|
||||
about reading, navigating and searching the builtin help documentation.
|
||||
|
||||
This should be the first place you go to look when you're stuck or confused
|
||||
with something. It's one of my favorite Neovim features.
|
||||
|
||||
MOST IMPORTANTLY, we provide a keymap "<space>sh" to [s]earch the [h]elp documentation,
|
||||
which is very useful when you're not exactly sure of what you're looking for.
|
||||
|
||||
I have left several `:help X` comments throughout the init.lua
|
||||
These are hints about where to find more information about the relevant settings,
|
||||
plugins or Neovim features used in Kickstart.
|
||||
|
||||
NOTE: Look for lines like this
|
||||
|
||||
Throughout the file. These are for you, the reader, to help you understand what is happening.
|
||||
Feel free to delete them once you know what you're doing, but they should serve as a guide
|
||||
for when you are first encountering a few different constructs in your Neovim config.
|
||||
|
||||
If you experience any errors while trying to install kickstart, run `:checkhealth` for more info.
|
||||
|
||||
I hope you enjoy your Neovim journey,
|
||||
- TJ
|
||||
|
||||
P.S. You can delete this when you're done too. It's your config now! :)
|
||||
--]]
|
||||
|
||||
-- Set <space> as the leader key
|
||||
-- See `:help mapleader`
|
||||
-- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used)
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
-- Set to true if you have a Nerd Font installed and selected in the terminal
|
||||
vim.g.have_nerd_font = true
|
||||
|
||||
-- [[ Setting options ]]
|
||||
require 'options'
|
||||
|
||||
-- [[ Basic Keymaps ]]
|
||||
require 'keybinds'
|
||||
|
||||
-- [[ Install `lazy.nvim` plugin manager ]]
|
||||
require 'lazy-bootstrap'
|
||||
|
||||
-- [[ Configure and install plugins ]]
|
||||
require 'lazy-plugins'
|
||||
|
||||
-- The line beneath this is called `modeline`. See `:help modeline`
|
||||
-- vim: ts=2 sts=2 sw=2 et
|
||||
49
nvim/.config/nvim/lazy-lock.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
|
||||
"LuaSnip": { "branch": "master", "commit": "776a29c3e1ac61029ac3f57ac6b5937df2340162" },
|
||||
"auto-save.nvim": { "branch": "main", "commit": "979b6c82f60cfa80f4cf437d77446d0ded0addf0" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" },
|
||||
"cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||
"fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "d0f90ef51d4be86b824b012ec52ed715b5622e51" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" },
|
||||
"leetcode.nvim": { "branch": "master", "commit": "db7e1cd6b9191b34b4c1f2f96e4e3949cde9f951" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "c2682b0d9732bf52cbc34862056f143e71dc4a6d" },
|
||||
"mason-nvim-dap.nvim": { "branch": "main", "commit": "4c2cdc69d69fe00c15ae8648f7e954d99e5de3ea" },
|
||||
"mason-tool-installer.nvim": { "branch": "main", "commit": "93a9ff9b34c91c0cb0f7de8d5f7e4abce51d8903" },
|
||||
"mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" },
|
||||
"mini.nvim": { "branch": "main", "commit": "5a10dfb3ab49b3ee2425bc2c215b5067ccce1c79" },
|
||||
"move.nvim": { "branch": "main", "commit": "599b14047b82e92874b9a408e4df228b965c3a1d" },
|
||||
"nui.nvim": { "branch": "main", "commit": "7cd18e73cfbd70e1546931b7268b3eebaeff9391" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
|
||||
"nvim-dap": { "branch": "master", "commit": "ea82027c3447dc1a022be9a9884de276c05cd33a" },
|
||||
"nvim-dap-lldb": { "branch": "main", "commit": "9c795072554b3dbf738d0c9cb29d28d7f820b2b4" },
|
||||
"nvim-dap-python": { "branch": "master", "commit": "261ce649d05bc455a29f9636dc03f8cdaa7e0e2c" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "73a26abf4941aa27da59820fd6b028ebcdbcf932" },
|
||||
"nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "036885e8e5456d3907626b634693234f628afef6" },
|
||||
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
||||
"nvim-notify": { "branch": "master", "commit": "b5825cf9ee881dd8e43309c93374ed5b87b7a896" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||
"nvim-ufo": { "branch": "main", "commit": "3c7a3570e9c9dc198a2ad4491b0b0e51c4d4ba08" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" },
|
||||
"obsidian.nvim": { "branch": "main", "commit": "ae1f76a75c7ce36866e1d9342a8f6f5b9c2caf9b" },
|
||||
"orgmode": { "branch": "master", "commit": "32ef9e95f43a6e951fb931b438372546a4f0c524" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
|
||||
"promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" },
|
||||
"render-markdown": { "branch": "main", "commit": "dd620561843d5a62c917fffe77f2923c965d12c7" },
|
||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" },
|
||||
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
||||
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
|
||||
"tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" },
|
||||
"transparent.nvim": { "branch": "main", "commit": "d41ae9b56ac2706cb3db4b16afe5cd6903013937" },
|
||||
"vim-be-good": { "branch": "master", "commit": "0ae3de14eb8efc6effe7704b5e46495e91931cc5" },
|
||||
"vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" },
|
||||
"vimtex": { "branch": "master", "commit": "f20b11458e97250d690ce0dc8670759b838cace9" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
|
||||
}
|
||||
73
nvim/.config/nvim/lua/keybinds.lua
Normal file
@@ -0,0 +1,73 @@
|
||||
-- [[ Basic Keymaps ]]
|
||||
-- See `:help vim.keymap.set()`
|
||||
|
||||
-- Clear highlights on search when pressing <Esc> in normal mode
|
||||
-- See `:help hlsearch`
|
||||
vim.keymap.set("n", "<Esc>", "<cmd>nohlsearch<CR>")
|
||||
|
||||
-- Diagnostic keymaps
|
||||
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, { desc = "Go to previous [D]iagnostic message" })
|
||||
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, { desc = "Go to next [D]iagnostic message" })
|
||||
vim.keymap.set("n", "<leader>e", vim.diagnostic.open_float, { desc = "Show diagnostic [E]rror messages" })
|
||||
vim.keymap.set("n", "<leader>q", vim.diagnostic.setloclist, { desc = "Open diagnostic [Q]uickfix list" })
|
||||
|
||||
-- Exit terminal mode in the builtin terminal with a shortcut that is a bit easier
|
||||
-- for people to discover. Otherwise, you normally need to press <C-\><C-n>, which
|
||||
-- is not what someone will guess without a bit more experience.
|
||||
--
|
||||
-- NOTE: This won't work in all terminal emulators/tmux/etc. Try your own mapping
|
||||
-- or just use <C-\><C-n> to exit terminal mode
|
||||
vim.keymap.set("t", "<Esc><Esc>", "<C-\\><C-n>", { desc = "Exit terminal mode" })
|
||||
vim.keymap.set("i", "jk", "<Esc>", { desc = "Exit insert mode" })
|
||||
|
||||
-- TIP: Disable arrow keys in normal mode
|
||||
vim.keymap.set("n", "<left>", '<cmd>echo "Use h to move!!"<CR>')
|
||||
vim.keymap.set("n", "<right>", '<cmd>echo "Use l to move!!"<CR>')
|
||||
vim.keymap.set("n", "<up>", '<cmd>echo "Use k to move!!"<CR>')
|
||||
vim.keymap.set("n", "<down>", '<cmd>echo "Use j to move!!"<CR>')
|
||||
|
||||
-- latex keys
|
||||
vim.keymap.set("n", "<leader>ll", "<plug>(vimtex-compile)", { desc = "Compile LaTeX" })
|
||||
vim.keymap.set("n", "<leader>lv", "<plug>(vimtex-view)", { desc = "View PDF" })
|
||||
vim.keymap.set("n", "<leader>lc", "<plug>(vimtex-clean)", { desc = "Clean auxiliary files" })
|
||||
|
||||
-- QuickFix List
|
||||
vim.keymap.set("n", "<M-n>", "<cmd>cnext<CR>")
|
||||
vim.keymap.set("n", "<M-p>", "<cmd>cprev<CR>")
|
||||
vim.keymap.set("n", "<M-o>", "<cmd>copen<CR>")
|
||||
vim.keymap.set("n", "<M-c>", "<cmd>cclose<CR>")
|
||||
|
||||
-- buffers
|
||||
vim.api.nvim_set_keymap("n", "bh", ":bfirst<enter>", { noremap = false })
|
||||
vim.api.nvim_set_keymap("n", "bj", ":bnext<enter>", { noremap = false })
|
||||
vim.api.nvim_set_keymap("n", "bk", ":bprev<enter>", { noremap = false })
|
||||
vim.api.nvim_set_keymap("n", "bl", ":blast<enter>", { noremap = false })
|
||||
vim.api.nvim_set_keymap("n", "bd", ":bdelete<enter>", { noremap = false })
|
||||
|
||||
-- Todo search
|
||||
vim.keymap.set("n", "<leader>st", "<cmd>TodoQuickFix<CR>")
|
||||
|
||||
-- greatest remap ever
|
||||
vim.keymap.set("x", "<leader>p", [["_dP]])
|
||||
|
||||
-- Keybinds to make split navigation easier.
|
||||
-- Use CTRL+<hjkl> to switch between windows
|
||||
-- See `:help wincmd` for a list of all window commands
|
||||
vim.keymap.set("n", "<C-h>", "<C-w><C-h>", { desc = "Move focus to the left window" })
|
||||
vim.keymap.set("n", "<C-l>", "<C-w><C-l>", { desc = "Move focus to the right window" })
|
||||
vim.keymap.set("n", "<C-j>", "<C-w><C-j>", { desc = "Move focus to the lower window" })
|
||||
vim.keymap.set("n", "<C-k>", "<C-w><C-k>", { desc = "Move focus to the upper window" })
|
||||
|
||||
-- [[ Basic Autocommands ]]
|
||||
-- See `:help lua-guide-autocommands`
|
||||
|
||||
-- Highlight when yanking (copying) text
|
||||
-- Try it with `yap` in normal mode
|
||||
-- See `:help vim.highlight.on_yank()`
|
||||
vim.api.nvim_create_autocmd("TextYankPost", {
|
||||
desc = "Highlight when yanking (copying) text",
|
||||
group = vim.api.nvim_create_augroup("kickstart-highlight-yank", { clear = true }),
|
||||
callback = function()
|
||||
vim.highlight.on_yank()
|
||||
end,
|
||||
})
|
||||
37
nvim/.config/nvim/lua/kickstart/plugins/auto-save.lua
Normal file
@@ -0,0 +1,37 @@
|
||||
return {
|
||||
{
|
||||
"pocco81/auto-save.nvim",
|
||||
opts = {
|
||||
enabled = true, -- start auto-save when the plugin is loaded (i.e. when your package manager loads it)
|
||||
execution_message = {
|
||||
message = function() -- message to print on save
|
||||
return ("AutoSave: saved at " .. vim.fn.strftime("%H:%M:%S"))
|
||||
end,
|
||||
dim = 0.18, -- dim the color of `message`
|
||||
cleaning_interval = 1250, -- (milliseconds) automatically clean MsgArea after displaying `message`. See :h MsgArea
|
||||
},
|
||||
trigger_events = { "InsertLeave", "TextChanged" }, -- vim events that trigger auto-save. See :h events
|
||||
-- function that determines whether to save the current buffer or not
|
||||
-- return true: if buffer is ok to be saved
|
||||
-- return false: if it's not ok to be saved
|
||||
condition = function(buf)
|
||||
local fn = vim.fn
|
||||
local utils = require("auto-save.utils.data")
|
||||
|
||||
if fn.getbufvar(buf, "&modifiable") == 1 and utils.not_in(fn.getbufvar(buf, "&filetype"), {}) then
|
||||
return true -- met condition(s), can save
|
||||
end
|
||||
return false -- can't save
|
||||
end,
|
||||
write_all_buffers = false, -- write all buffers when the current one meets `condition`
|
||||
debounce_delay = 135, -- saves the file at most every `debounce_delay` milliseconds
|
||||
callbacks = { -- functions to be executed at different intervals
|
||||
enabling = nil, -- ran when enabling auto-save
|
||||
disabling = nil, -- ran when disabling auto-save
|
||||
before_asserting_save = nil, -- ran before checking `condition`
|
||||
before_saving = nil, -- ran before doing the actual save
|
||||
after_saving = nil, -- ran after doing the actual save
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
45
nvim/.config/nvim/lua/kickstart/plugins/conform.lua
Normal file
@@ -0,0 +1,45 @@
|
||||
return {
|
||||
{ -- Autoformat
|
||||
"stevearc/conform.nvim",
|
||||
event = { "BufWritePre" },
|
||||
cmd = { "ConformInfo" },
|
||||
keys = {
|
||||
{
|
||||
"<leader>f",
|
||||
function()
|
||||
require("conform").format({ async = true, lsp_format = "fallback" })
|
||||
end,
|
||||
mode = "",
|
||||
desc = "[F]ormat buffer",
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
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, cs = true }
|
||||
local lsp_format_opt
|
||||
if disable_filetypes[vim.bo[bufnr].filetype] then
|
||||
lsp_format_opt = "never"
|
||||
else
|
||||
lsp_format_opt = "fallback"
|
||||
end
|
||||
return {
|
||||
timeout_ms = 500,
|
||||
lsp_format = lsp_format_opt,
|
||||
}
|
||||
end,
|
||||
formatters_by_ft = {
|
||||
lua = { "stylua" },
|
||||
-- Conform can also run multiple formatters sequentially
|
||||
-- python = { "isort", "black" },
|
||||
--
|
||||
-- You can use 'stop_after_first' to run the first available formatter from the list
|
||||
-- javascript = { "prettierd", "prettier", stop_after_first = true },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
-- vim: ts=2 sts=2 sw=2 et
|
||||
84
nvim/.config/nvim/lua/kickstart/plugins/gitsigns.lua
Normal file
@@ -0,0 +1,84 @@
|
||||
-- Alternatively, use `config = function() ... end` for full control over the configuration.
|
||||
-- If you prefer to call `setup` explicitly, use:
|
||||
-- {
|
||||
-- 'lewis6991/gitsigns.nvim',
|
||||
-- config = function()
|
||||
-- require('gitsigns').setup({
|
||||
-- -- Your gitsigns configuration here
|
||||
-- })
|
||||
-- end,
|
||||
-- }
|
||||
--
|
||||
-- Here is a more advanced example where we pass configuration
|
||||
-- options to `gitsigns.nvim`. This is equivalent to the following Lua:
|
||||
-- require('gitsigns').setup({ ... })
|
||||
--
|
||||
-- See `:help gitsigns` to understand what the configuration keys do
|
||||
return {
|
||||
{ -- Adds git related signs to the gutter, as well as utilities for managing changes
|
||||
"lewis6991/gitsigns.nvim",
|
||||
opts = {
|
||||
signs = {
|
||||
add = { text = "+" },
|
||||
change = { text = "~" },
|
||||
delete = { text = "_" },
|
||||
topdelete = { text = "‾" },
|
||||
changedelete = { text = "~" },
|
||||
},
|
||||
on_attach = function(bufnr)
|
||||
local gitsigns = require 'gitsigns'
|
||||
|
||||
local function map(mode, l, r, opts)
|
||||
opts = opts or {}
|
||||
opts.buffer = bufnr
|
||||
vim.keymap.set(mode, l, r, opts)
|
||||
end
|
||||
|
||||
-- Navigation
|
||||
map('n', ']c', function()
|
||||
if vim.wo.diff then
|
||||
vim.cmd.normal { ']c', bang = true }
|
||||
else
|
||||
gitsigns.nav_hunk 'next'
|
||||
end
|
||||
end, { desc = 'Jump to next git [c]hange' })
|
||||
|
||||
map('n', '[c', function()
|
||||
if vim.wo.diff then
|
||||
vim.cmd.normal { '[c', bang = true }
|
||||
else
|
||||
gitsigns.nav_hunk 'prev'
|
||||
end
|
||||
end, { desc = 'Jump to previous git [c]hange' })
|
||||
|
||||
-- Actions
|
||||
-- visual mode
|
||||
map('v', '<leader>hs', function()
|
||||
gitsigns.stage_hunk { vim.fn.line '.', vim.fn.line 'v' }
|
||||
end, { desc = 'git [s]tage hunk' })
|
||||
map('v', '<leader>hr', function()
|
||||
gitsigns.reset_hunk { vim.fn.line '.', vim.fn.line 'v' }
|
||||
end, { desc = 'git [r]eset hunk' })
|
||||
-- normal mode
|
||||
map('n', '<leader>hs', gitsigns.stage_hunk, { desc = 'git [s]tage hunk' })
|
||||
map('n', '<leader>hr', gitsigns.reset_hunk, { desc = 'git [r]eset hunk' })
|
||||
map('n', '<leader>hS', gitsigns.stage_buffer, { desc = 'git [S]tage buffer' })
|
||||
map('n', '<leader>hu', gitsigns.stage_hunk, { desc = 'git [u]ndo stage hunk' })
|
||||
map('n', '<leader>hR', gitsigns.reset_buffer, { desc = 'git [R]eset buffer' })
|
||||
map('n', '<leader>hp', gitsigns.preview_hunk, { desc = 'git [p]review hunk' })
|
||||
map('n', '<leader>hb', gitsigns.blame_line, { desc = 'git [b]lame line' })
|
||||
map('n', '<leader>hd', gitsigns.diffthis, { desc = 'git [d]iff against index' })
|
||||
map('n', '<leader>hD', function()
|
||||
gitsigns.diffthis '@'
|
||||
end, { desc = 'git [D]iff against last commit' })
|
||||
-- Toggles
|
||||
map('n', '<leader>tb', gitsigns.toggle_current_line_blame,
|
||||
{ desc = '[T]oggle git show [b]lame line' })
|
||||
map('n', '<leader>tD', gitsigns.preview_hunk_inline,
|
||||
{ desc = '[T]oggle git show [D]eleted' })
|
||||
end,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
-- vim: ts=2 sts=2 sw=2 et
|
||||
330
nvim/.config/nvim/lua/kickstart/plugins/lspconfig.lua
Normal file
@@ -0,0 +1,330 @@
|
||||
-- LSP Plugins
|
||||
return {
|
||||
{
|
||||
-- `lazydev` configures Lua LSP for your Neovim config, runtime and plugins
|
||||
-- used for completion, annotations and signatures of Neovim apis
|
||||
"folke/lazydev.nvim",
|
||||
ft = "lua",
|
||||
opts = {
|
||||
library = {
|
||||
-- Load luvit types when the `vim.uv` word is found
|
||||
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
-- Main LSP Configuration
|
||||
"neovim/nvim-lspconfig",
|
||||
dependencies = {
|
||||
-- Automatically install LSPs and related tools to stdpath for Neovim
|
||||
-- Mason must be loaded before its dependents so we need to set it up here.
|
||||
-- NOTE: `opts = {}` is the same as calling `require('mason').setup({})`
|
||||
{ "williamboman/mason.nvim", opts = {} }, -- NOTE: Must be loaded before dependants
|
||||
"williamboman/mason-lspconfig.nvim",
|
||||
"WhoIsSethDaniel/mason-tool-installer.nvim",
|
||||
|
||||
-- Useful status updates for LSP.
|
||||
{ "j-hui/fidget.nvim", opts = {} },
|
||||
|
||||
-- Allows extra capabilities provided by nvim-cmp
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
},
|
||||
config = function()
|
||||
-- Brief aside: **What is LSP?**
|
||||
--
|
||||
-- LSP is an initialism you've probably heard, but might not understand what it is.
|
||||
--
|
||||
-- LSP stands for Language Server Protocol. It's a protocol that helps editors
|
||||
-- and language tooling communicate in a standardized fashion.
|
||||
--
|
||||
-- In general, you have a "server" which is some tool built to understand a particular
|
||||
-- language (such as `gopls`, `lua_ls`, `rust_analyzer`, etc.). These Language Servers
|
||||
-- (sometimes called LSP servers, but that's kind of like ATM Machine) are standalone
|
||||
-- processes that communicate with some "client" - in this case, Neovim!
|
||||
--
|
||||
-- LSP provides Neovim with features like:
|
||||
-- - Go to definition
|
||||
-- - Find references
|
||||
-- - Autocompletion
|
||||
-- - Symbol Search
|
||||
-- - and more!
|
||||
--
|
||||
-- Thus, Language Servers are external tools that must be installed separately from
|
||||
-- Neovim. This is where `mason` and related plugins come into play.
|
||||
--
|
||||
-- If you're wondering about lsp vs treesitter, you can check out the wonderfully
|
||||
-- and elegantly composed help section, `:help lsp-vs-treesitter`
|
||||
|
||||
-- This function gets run when an LSP attaches to a particular buffer.
|
||||
-- That is to say, every time a new file is opened that is associated with
|
||||
-- an lsp (for example, opening `main.rs` is associated with `rust_analyzer`) this
|
||||
-- function will be executed to configure the current buffer
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }),
|
||||
callback = function(event)
|
||||
-- NOTE: Remember that Lua is a real programming language, and as such it is possible
|
||||
-- to define small helper and utility functions so you don't have to repeat yourself.
|
||||
--
|
||||
-- In this case, we create a function that lets us more easily define mappings specific
|
||||
-- for LSP related items. It sets the mode, buffer and description for us each time.
|
||||
local map = function(keys, func, desc, mode)
|
||||
mode = mode or "n"
|
||||
vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = "LSP: " .. desc })
|
||||
end
|
||||
|
||||
-- Jump to the definition of the word under your cursor.
|
||||
-- This is where a variable was first declared, or where a function is defined, etc.
|
||||
-- To jump back, press <C-t>.
|
||||
map("gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition")
|
||||
|
||||
-- Find references for the word under your cursor.
|
||||
map("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
|
||||
|
||||
-- Jump to the implementation of the word under your cursor.
|
||||
-- Useful when your language has ways of declaring types without an actual implementation.
|
||||
map("gI", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
|
||||
|
||||
-- Jump to the type of the word under your cursor.
|
||||
-- Useful when you're not sure what type a variable is and you want to see
|
||||
-- the definition of its *type*, not where it was *defined*.
|
||||
map("<leader>D", require("telescope.builtin").lsp_type_definitions, "Type [D]efinition")
|
||||
|
||||
-- Fuzzy find all the symbols in your current document.
|
||||
-- Symbols are things like variables, functions, types, etc.
|
||||
map("<leader>ds", require("telescope.builtin").lsp_document_symbols, "[D]ocument [S]ymbols")
|
||||
|
||||
-- Fuzzy find all the symbols in your current workspace.
|
||||
-- Similar to document symbols, except searches over your entire project.
|
||||
map(
|
||||
"<leader>ws",
|
||||
require("telescope.builtin").lsp_dynamic_workspace_symbols,
|
||||
"[W]orkspace [S]ymbols"
|
||||
)
|
||||
|
||||
-- Rename the variable under your cursor.
|
||||
-- Most Language Servers support renaming across files, etc.
|
||||
map("<leader>rn", vim.lsp.buf.rename, "[R]e[n]ame")
|
||||
|
||||
-- Execute a code action, usually your cursor needs to be on top of an error
|
||||
-- or a suggestion from your LSP for this to activate.
|
||||
map("<leader>ca", vim.lsp.buf.code_action, "[C]ode [A]ction", { "n", "x" })
|
||||
|
||||
-- WARN: This is not Goto Definition, this is Goto Declaration.
|
||||
-- For example, in C this would take you to the header.
|
||||
map("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
|
||||
|
||||
-- This function resolves a difference between neovim nightly (version 0.11) and stable (version 0.10)
|
||||
---@param client vim.lsp.Client
|
||||
---@param method vim.lsp.protocol.Method
|
||||
---@param bufnr? integer some lsp support methods only in specific files
|
||||
---@return boolean
|
||||
local function client_supports_method(client, method, bufnr)
|
||||
if vim.fn.has("nvim-0.11") == 1 then
|
||||
return client:supports_method(method, bufnr)
|
||||
else
|
||||
return client.supports_method(method, { bufnr = bufnr })
|
||||
end
|
||||
end
|
||||
|
||||
-- The following two autocommands are used to highlight references of the
|
||||
-- word under your cursor when your cursor rests there for a little while.
|
||||
-- See `:help CursorHold` for information about when this is executed
|
||||
--
|
||||
-- When you move your cursor, the highlights will be cleared (the second autocommand).
|
||||
|
||||
local client = vim.lsp.get_client_by_id(event.data.client_id)
|
||||
if
|
||||
client
|
||||
and client_supports_method(
|
||||
client,
|
||||
vim.lsp.protocol.Methods.textDocument_documentHighlight,
|
||||
event.buf
|
||||
)
|
||||
then
|
||||
local highlight_augroup =
|
||||
vim.api.nvim_create_augroup("kickstart-lsp-highlight", { clear = false })
|
||||
vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
|
||||
buffer = event.buf,
|
||||
group = highlight_augroup,
|
||||
callback = vim.lsp.buf.document_highlight,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, {
|
||||
buffer = event.buf,
|
||||
group = highlight_augroup,
|
||||
callback = vim.lsp.buf.clear_references,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd("LspDetach", {
|
||||
group = vim.api.nvim_create_augroup("kickstart-lsp-detach", { clear = true }),
|
||||
callback = function(event2)
|
||||
vim.lsp.buf.clear_references()
|
||||
vim.api.nvim_clear_autocmds({ group = "kickstart-lsp-highlight", buffer = event2.buf })
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
-- Not working... deactivated for now until i debug it
|
||||
-- -- Function to preview the definition in a floating window
|
||||
-- function PreviewDefinition()
|
||||
-- local params = vim.lsp.util.make_position_params()
|
||||
-- vim.lsp.buf_request(0, 'textDocument/definition', params, function(_, result)
|
||||
-- -- Check if result is nil or empty
|
||||
-- if not result or vim.tbl_isempty(result) then
|
||||
-- print('No definition found.')
|
||||
-- return
|
||||
-- end
|
||||
--
|
||||
-- -- Check if the location is valid
|
||||
-- local location = result[1]
|
||||
-- if location and location.uri then
|
||||
-- vim.lsp.util.preview_location(location)
|
||||
-- else
|
||||
-- print('Invalid location data.')
|
||||
-- end
|
||||
-- end)
|
||||
-- end
|
||||
-- -- Keybind for the preview
|
||||
-- vim.api.nvim_set_keymap('n', 'gP', ':lua PreviewDefinition()<CR>', { noremap = true, silent = true })
|
||||
|
||||
-- The following code creates a keymap to toggle inlay hints in your
|
||||
-- code, if the language server you are using supports them
|
||||
--
|
||||
-- This may be unwanted, since they displace some of your code
|
||||
if
|
||||
client
|
||||
and client_supports_method(client, vim.lsp.protocol.Methods.textDocument_inlayHint, event.buf)
|
||||
then
|
||||
map("<leader>th", function()
|
||||
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = event.buf }))
|
||||
end, "[T]oggle Inlay [H]ints")
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
-- Diagnostic Config
|
||||
-- See :help vim.diagnostic.Opts
|
||||
vim.diagnostic.config({
|
||||
severity_sort = true,
|
||||
float = { border = "rounded", source = "if_many" },
|
||||
underline = { severity = vim.diagnostic.severity.ERROR },
|
||||
signs = vim.g.have_nerd_font and {
|
||||
text = {
|
||||
[vim.diagnostic.severity.ERROR] = " ",
|
||||
[vim.diagnostic.severity.WARN] = " ",
|
||||
[vim.diagnostic.severity.INFO] = " ",
|
||||
[vim.diagnostic.severity.HINT] = " ",
|
||||
},
|
||||
} or {},
|
||||
virtual_text = {
|
||||
source = "if_many",
|
||||
spacing = 2,
|
||||
format = function(diagnostic)
|
||||
local diagnostic_message = {
|
||||
[vim.diagnostic.severity.ERROR] = diagnostic.message,
|
||||
[vim.diagnostic.severity.WARN] = diagnostic.message,
|
||||
[vim.diagnostic.severity.INFO] = diagnostic.message,
|
||||
[vim.diagnostic.severity.HINT] = diagnostic.message,
|
||||
}
|
||||
return diagnostic_message[diagnostic.severity]
|
||||
end,
|
||||
},
|
||||
})
|
||||
|
||||
-- LSP servers and clients are able to communicate to each other what features they support.
|
||||
-- By default, Neovim doesn't support everything that is in the LSP specification.
|
||||
-- When you add nvim-cmp, luasnip, etc. Neovim now has *more* capabilities.
|
||||
-- So, we create new capabilities with nvim cmp, and then broadcast that to the servers.
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities = vim.tbl_deep_extend("force", capabilities, require("cmp_nvim_lsp").default_capabilities())
|
||||
|
||||
-- Enable the following language servers
|
||||
-- Feel free to add/remove any LSPs that you want here. They will automatically be installed.
|
||||
--
|
||||
-- Add any additional override configuration in the following tables. Available keys are:
|
||||
-- - cmd (table): Override the default command used to start the server
|
||||
-- - filetypes (table): Override the default list of associated filetypes for the server
|
||||
-- - capabilities (table): Override fields in capabilities. Can be used to disable certain LSP features.
|
||||
-- - settings (table): Override the default settings passed when initializing the server.
|
||||
-- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/
|
||||
local servers = {
|
||||
-- clangd = {},
|
||||
-- gopls = {},
|
||||
-- pyright = {},
|
||||
-- rust_analyzer = {},
|
||||
-- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs
|
||||
--
|
||||
-- Some languages (like typescript) have entire language plugins that can be useful:
|
||||
-- https://github.com/pmizio/typescript-tools.nvim
|
||||
--
|
||||
-- But for many setups, the LSP (`ts_ls`) will work just fine
|
||||
-- ts_ls = {},
|
||||
--
|
||||
omnisharp_mono = {
|
||||
-- Indentation style to One True Brace (OTBS)
|
||||
-- settings = {
|
||||
-- FormattingOptions = {
|
||||
-- NewLine = "\n",
|
||||
-- UseTabs = false,
|
||||
-- TabSize = 4,
|
||||
-- IndentationSize = 4,
|
||||
-- ["/"] = {
|
||||
-- ["braceNewLine"] = false, -- This enables OTBS (braces stay on the same line)
|
||||
-- },
|
||||
-- },
|
||||
-- },
|
||||
},
|
||||
lua_ls = {
|
||||
-- cmd = { ... },
|
||||
-- filetypes = { ... },
|
||||
-- capabilities = {},
|
||||
settings = {
|
||||
Lua = {
|
||||
completion = {
|
||||
callSnippet = "Replace",
|
||||
},
|
||||
-- You can toggle below to ignore Lua_LS's noisy `missing-fields` warnings
|
||||
-- diagnostics = { disable = { 'missing-fields' } },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
-- Ensure the servers and tools above are installed
|
||||
--
|
||||
-- To check the current status of installed tools and/or manually install
|
||||
-- other tools, you can run
|
||||
-- :Mason
|
||||
--
|
||||
-- You can press `g?` for help in this menu.
|
||||
--
|
||||
-- `mason` had to be setup earlier: to configure its options see the
|
||||
-- `dependencies` table for `nvim-lspconfig` above.
|
||||
--
|
||||
-- You can add other tools here that you want Mason to install
|
||||
-- for you, so that they are available from within Neovim.
|
||||
local ensure_installed = vim.tbl_keys(servers or {})
|
||||
vim.list_extend(ensure_installed, {
|
||||
"stylua", -- Used to format Lua code
|
||||
})
|
||||
require("mason-tool-installer").setup({ ensure_installed = ensure_installed })
|
||||
|
||||
require("mason-lspconfig").setup({
|
||||
ensure_installed = {}, -- explicitly set to an empty table (Kickstart populates installs via mason-tool-installer)
|
||||
automatic_installation = false,
|
||||
handlers = {
|
||||
function(server_name)
|
||||
local server = servers[server_name] or {}
|
||||
-- This handles overriding only values explicitly passed
|
||||
-- by the server configuration above. Useful when disabling
|
||||
-- certain features of an LSP (for example, turning off formatting for ts_ls)
|
||||
server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {})
|
||||
require("lspconfig")[server_name].setup(server)
|
||||
end,
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
-- vim: ts=2 sts=2 sw=2 et
|
||||
22
nvim/.config/nvim/lua/kickstart/plugins/mason-nvim-dap.lua
Normal file
@@ -0,0 +1,22 @@
|
||||
return { -- mason.nvim integration
|
||||
"jay-babu/mason-nvim-dap.nvim",
|
||||
dependencies = "mason.nvim",
|
||||
cmd = { "DapInstall", "DapUninstall" },
|
||||
opts = {
|
||||
-- Makes a best effort to setup the various debuggers with
|
||||
-- reasonable debug configurations
|
||||
automatic_installation = true,
|
||||
|
||||
-- You can provide additional configuration to the handlers,
|
||||
-- see mason-nvim-dap README for more information
|
||||
handlers = {},
|
||||
|
||||
-- You'll need to check that you have the required things installed
|
||||
-- online, please don't ask me how to install them :)
|
||||
ensure_installed = {
|
||||
-- Update this to ensure that you have the debuggers for the langs you want
|
||||
},
|
||||
},
|
||||
-- mason-nvim-dap is loaded when nvim-dap loads
|
||||
config = function() end,
|
||||
}
|
||||
111
nvim/.config/nvim/lua/kickstart/plugins/nvim-dap.lua
Normal file
@@ -0,0 +1,111 @@
|
||||
return {
|
||||
{
|
||||
"mfussenegger/nvim-dap",
|
||||
dependencies = {
|
||||
"nvim-neotest/nvim-nio",
|
||||
"rcarriga/nvim-dap-ui",
|
||||
"mfussenegger/nvim-dap-python",
|
||||
"theHamsta/nvim-dap-virtual-text",
|
||||
},
|
||||
config = function()
|
||||
local dap = require("dap")
|
||||
local dapui = require("dapui")
|
||||
local dap_python = require("dap-python")
|
||||
|
||||
require("dapui").setup()
|
||||
require("nvim-dap-virtual-text").setup({
|
||||
commented = true, -- Show virtual text alongside comment
|
||||
})
|
||||
|
||||
dap_python.setup("python3")
|
||||
table.insert(require('dap').configurations.python, {
|
||||
justMyCode = false,
|
||||
type = 'python';
|
||||
request = 'launch';
|
||||
name = 'file:args:allCode';
|
||||
program = '${file}';
|
||||
args = function()
|
||||
local args_string = vim.fn.input('Arguments: ')
|
||||
local utils = require("dap.utils")
|
||||
if utils.splitstr and vim.fn.has("nvim-0.10") == 1 then
|
||||
return utils.splitstr(args_string)
|
||||
end
|
||||
return vim.split(args_string, " +")
|
||||
end;
|
||||
-- console = opts.console;
|
||||
-- pythonPath = opts.pythonPath,
|
||||
})
|
||||
|
||||
vim.fn.sign_define("DapBreakpoint", {
|
||||
text = "",
|
||||
texthl = "DiagnosticSignError",
|
||||
linehl = "",
|
||||
numhl = "",
|
||||
})
|
||||
|
||||
vim.fn.sign_define("DapBreakpointRejected", {
|
||||
text = "", -- or "❌"
|
||||
texthl = "DiagnosticSignError",
|
||||
linehl = "",
|
||||
numhl = "",
|
||||
})
|
||||
|
||||
vim.fn.sign_define("DapStopped", {
|
||||
text = "", -- or "→"
|
||||
texthl = "DiagnosticSignWarn",
|
||||
linehl = "Visual",
|
||||
numhl = "DiagnosticSignWarn",
|
||||
})
|
||||
|
||||
-- Automatically open DAP UI
|
||||
dap.listeners.after.event_initialized["dapui_config"] = function()
|
||||
dapui.open()
|
||||
end
|
||||
-- Automatically close DAP UI when session terminates
|
||||
dap.listeners.after.event_terminated["dapui_config"] = function()
|
||||
dapui.close()
|
||||
end
|
||||
dap.listeners.after.event_exited["dapui_config"] = function()
|
||||
dapui.close()
|
||||
end
|
||||
|
||||
local opts = { noremap = true, silent = true }
|
||||
|
||||
-- Toggle breakpoint
|
||||
vim.keymap.set("n", "<leader>db", function()
|
||||
dap.toggle_breakpoint()
|
||||
end, opts)
|
||||
|
||||
-- Continue / Start
|
||||
vim.keymap.set("n", "<leader>dc", function()
|
||||
dap.continue()
|
||||
end, opts)
|
||||
|
||||
-- Step Over
|
||||
vim.keymap.set("n", "<leader>do", function()
|
||||
dap.step_over()
|
||||
end, opts)
|
||||
|
||||
-- Step Into
|
||||
vim.keymap.set("n", "<leader>di", function()
|
||||
dap.step_into()
|
||||
end, opts)
|
||||
|
||||
-- Step Out
|
||||
vim.keymap.set("n", "<leader>dO", function()
|
||||
dap.step_out()
|
||||
end, opts)
|
||||
|
||||
-- Keymap to terminate debugging
|
||||
vim.keymap.set("n", "<leader>dq", function()
|
||||
require("dap").terminate()
|
||||
end, opts)
|
||||
|
||||
-- Toggle DAP UI
|
||||
vim.keymap.set("n", "<leader>du", function()
|
||||
dapui.toggle()
|
||||
end, opts)
|
||||
end,
|
||||
},
|
||||
}
|
||||
-- vim: ts=2 sts=2 sw=2 et
|
||||
13
nvim/.config/nvim/lua/kickstart/plugins/orgmode.lua
Normal file
@@ -0,0 +1,13 @@
|
||||
return {
|
||||
{
|
||||
'nvim-orgmode/orgmode',
|
||||
event = 'VeryLazy',
|
||||
config = function()
|
||||
-- Setup orgmode
|
||||
require('orgmode').setup({
|
||||
org_agenda_files = '~/orgfiles/**/*',
|
||||
org_default_notes_file = '~/orgfiles/refile.org',
|
||||
})
|
||||
end,
|
||||
}
|
||||
}
|
||||
120
nvim/.config/nvim/lua/kickstart/plugins/telescope.lua
Normal file
@@ -0,0 +1,120 @@
|
||||
-- NOTE: Plugins can specify dependencies.
|
||||
--
|
||||
-- The dependencies are proper plugin specifications as well - anything
|
||||
-- you do for a plugin at the top level, you can do for a dependency.
|
||||
--
|
||||
-- Use the `dependencies` key to specify the dependencies of a particular plugin
|
||||
|
||||
return {
|
||||
{ -- Fuzzy Finder (files, lsp, etc)
|
||||
"nvim-telescope/telescope.nvim",
|
||||
event = "VimEnter",
|
||||
branch = "0.1.x",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
{ -- If encountering errors, see telescope-fzf-native README for installation instructions
|
||||
"nvim-telescope/telescope-fzf-native.nvim",
|
||||
|
||||
-- `build` is used to run some command when the plugin is installed/updated.
|
||||
-- This is only run then, not every time Neovim starts up.
|
||||
build = "make",
|
||||
|
||||
-- `cond` is a condition used to determine whether this plugin should be
|
||||
-- installed and loaded.
|
||||
cond = function()
|
||||
return vim.fn.executable("make") == 1
|
||||
end,
|
||||
},
|
||||
{ "nvim-telescope/telescope-ui-select.nvim" },
|
||||
|
||||
-- Useful for getting pretty icons, but requires a Nerd Font.
|
||||
{ "nvim-tree/nvim-web-devicons", enabled = vim.g.have_nerd_font },
|
||||
},
|
||||
config = function()
|
||||
-- Telescope is a fuzzy finder that comes with a lot of different things that
|
||||
-- it can fuzzy find! It's more than just a "file finder", it can search
|
||||
-- many different aspects of Neovim, your workspace, LSP, and more!
|
||||
--
|
||||
-- The easiest way to use Telescope, is to start by doing something like:
|
||||
-- :Telescope help_tags
|
||||
--
|
||||
-- After running this command, a window will open up and you're able to
|
||||
-- type in the prompt window. You'll see a list of `help_tags` options and
|
||||
-- a corresponding preview of the help.
|
||||
--
|
||||
-- Two important keymaps to use while in Telescope are:
|
||||
-- - Insert mode: <c-/>
|
||||
-- - Normal mode: ?
|
||||
--
|
||||
-- This opens a window that shows you all of the keymaps for the current
|
||||
-- Telescope picker. This is really useful to discover what Telescope can
|
||||
-- do as well as how to actually do it!
|
||||
|
||||
-- [[ Configure Telescope ]]
|
||||
-- See `:help telescope` and `:help telescope.setup()`
|
||||
require("telescope").setup({
|
||||
-- You can put your default mappings / updates / etc. in here
|
||||
-- All the info you're looking for is in `:help telescope.setup()`
|
||||
--
|
||||
-- defaults = {
|
||||
-- mappings = {
|
||||
-- i = { ['<c-enter>'] = 'to_fuzzy_refine' },
|
||||
-- },
|
||||
-- },
|
||||
-- pickers = {}
|
||||
pickers = {
|
||||
find_files = {
|
||||
hidden = true,
|
||||
follow = true,
|
||||
},
|
||||
},
|
||||
extensions = {
|
||||
["ui-select"] = {
|
||||
require("telescope.themes").get_dropdown(),
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- Enable Telescope extensions if they are installed
|
||||
pcall(require("telescope").load_extension, "fzf")
|
||||
pcall(require("telescope").load_extension, "ui-select")
|
||||
|
||||
-- See `:help telescope.builtin`
|
||||
local builtin = require("telescope.builtin")
|
||||
vim.keymap.set("n", "<leader>sh", builtin.help_tags, { desc = "[S]earch [H]elp" })
|
||||
vim.keymap.set("n", "<leader>sk", builtin.keymaps, { desc = "[S]earch [K]eymaps" })
|
||||
vim.keymap.set("n", "<leader>sf", builtin.find_files, { desc = "[S]earch [F]iles" })
|
||||
vim.keymap.set("n", "<leader>ss", builtin.builtin, { desc = "[S]earch [S]elect Telescope" })
|
||||
vim.keymap.set("n", "<leader>sw", builtin.grep_string, { desc = "[S]earch current [W]ord" })
|
||||
vim.keymap.set("n", "<leader>sg", builtin.live_grep, { desc = "[S]earch by [G]rep" })
|
||||
vim.keymap.set("n", "<leader>sd", builtin.diagnostics, { desc = "[S]earch [D]iagnostics" })
|
||||
vim.keymap.set("n", "<leader>sr", builtin.resume, { desc = "[S]earch [R]esume" })
|
||||
vim.keymap.set("n", "<leader>s.", builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' })
|
||||
vim.keymap.set("n", "<leader><leader>", builtin.buffers, { desc = "[ ] Find existing buffers" })
|
||||
|
||||
-- Slightly advanced example of overriding default behavior and theme
|
||||
vim.keymap.set("n", "<leader>/", function()
|
||||
-- You can pass additional configuration to Telescope to change the theme, layout, etc.
|
||||
builtin.current_buffer_fuzzy_find(require("telescope.themes").get_dropdown({
|
||||
winblend = 10,
|
||||
previewer = false,
|
||||
}))
|
||||
end, { desc = "[/] Fuzzily search in current buffer" })
|
||||
|
||||
-- It's also possible to pass additional configuration options.
|
||||
-- See `:help telescope.builtin.live_grep()` for information about particular keys
|
||||
vim.keymap.set("n", "<leader>s/", function()
|
||||
builtin.live_grep({
|
||||
grep_open_files = true,
|
||||
prompt_title = "Live Grep in Open Files",
|
||||
})
|
||||
end, { desc = "[S]earch [/] in Open Files" })
|
||||
|
||||
-- Shortcut for searching your Neovim configuration files
|
||||
vim.keymap.set("n", "<leader>sn", function()
|
||||
builtin.find_files({ cwd = vim.fn.stdpath("config") })
|
||||
end, { desc = "[S]earch [N]eovim files" })
|
||||
end,
|
||||
},
|
||||
}
|
||||
-- vim: ts=2 sts=2 sw=2 et
|
||||
71
nvim/.config/nvim/lua/kickstart/plugins/todo-comments.lua
Normal file
@@ -0,0 +1,71 @@
|
||||
return {
|
||||
{
|
||||
"folke/todo-comments.nvim",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
opts = {
|
||||
signs = true, -- show icons in the signs column
|
||||
sign_priority = 8, -- sign priority
|
||||
-- keywords recognized as todo comments
|
||||
keywords = {
|
||||
FIX = {
|
||||
icon = " ", -- icon used for the sign, and in search results
|
||||
color = "error", -- can be a hex color, or a named color (see below)
|
||||
alt = { "FIXME", "BUG", "FIXIT", "ISSUE" }, -- a set of other keywords that all map to this FIX keywords
|
||||
-- signs = false, -- configure signs for some keywords individually
|
||||
},
|
||||
TODO = { icon = " ", color = "info" },
|
||||
HACK = { icon = " ", color = "warning" },
|
||||
WARN = { icon = " ", color = "warning", alt = { "WARNING", "XXX" } },
|
||||
PERF = { icon = " ", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } },
|
||||
NOTE = { icon = " ", color = "hint", alt = { "INFO" } },
|
||||
TEST = { icon = "⏲ ", color = "test", alt = { "TESTING", "PASSED", "FAILED" } },
|
||||
Q = { icon = " ", color = "warning", alt = { "QUESTION", "WTF", "HMM?" } },
|
||||
},
|
||||
gui_style = {
|
||||
fg = "NONE", -- The gui style to use for the fg highlight group.
|
||||
bg = "BOLD", -- The gui style to use for the bg highlight group.
|
||||
},
|
||||
merge_keywords = true, -- when true, custom keywords will be merged with the defaults
|
||||
-- highlighting of the line containing the todo comment
|
||||
-- * before: highlights before the keyword (typically comment characters)
|
||||
-- * keyword: highlights of the keyword
|
||||
-- * after: highlights after the keyword (todo text)
|
||||
highlight = {
|
||||
multiline = true, -- enable multine todo comments
|
||||
multiline_pattern = "^.", -- lua pattern to match the next multiline from the start of the matched keyword
|
||||
multiline_context = 10, -- extra lines that will be re-evaluated when changing a line
|
||||
before = "", -- "fg" or "bg" or empty
|
||||
keyword = "wide", -- "fg", "bg", "wide", "wide_bg", "wide_fg" or empty. (wide and wide_bg is the same as bg, but will also highlight surrounding characters, wide_fg acts accordingly but with fg)
|
||||
after = "fg", -- "fg" or "bg" or empty
|
||||
pattern = [[.*<(KEYWORDS)\s*:]], -- pattern or table of patterns, used for highlighting (vim regex)
|
||||
comments_only = true, -- uses treesitter to match keywords in comments only
|
||||
max_line_len = 400, -- ignore lines longer than this
|
||||
exclude = {}, -- list of file types to exclude highlighting
|
||||
},
|
||||
-- list of named colors where we try to extract the guifg from the
|
||||
-- list of highlight groups or use the hex color if hl not found as a fallback
|
||||
colors = {
|
||||
error = { "DiagnosticError", "ErrorMsg", "#DC2626" },
|
||||
warning = { "DiagnosticWarn", "WarningMsg", "#FBBF24" },
|
||||
info = { "DiagnosticInfo", "#2563EB" },
|
||||
hint = { "DiagnosticHint", "#10B981" },
|
||||
default = { "Identifier", "#7C3AED" },
|
||||
test = { "Identifier", "#FF00FF" }
|
||||
},
|
||||
search = {
|
||||
command = "rg",
|
||||
args = {
|
||||
"--color=never",
|
||||
"--no-heading",
|
||||
"--with-filename",
|
||||
"--line-number",
|
||||
"--column",
|
||||
},
|
||||
-- regex that will be used to match keywords.
|
||||
-- don't replace the (KEYWORDS) placeholder
|
||||
pattern = [[\b(KEYWORDS):]], -- ripgrep regex
|
||||
-- pattern = [[\b(KEYWORDS)\b]], -- match without the extra colon. You'll likely get false positives
|
||||
},
|
||||
}
|
||||
},
|
||||
}
|
||||
74
nvim/.config/nvim/lua/kickstart/plugins/which-key.lua
Normal file
@@ -0,0 +1,74 @@
|
||||
-- NOTE: Plugins can also be configured to run Lua code when they are loaded.
|
||||
--
|
||||
-- This is often very useful to both group configuration, as well as handle
|
||||
-- lazy loading plugins that don't need to be loaded immediately at startup.
|
||||
--
|
||||
-- For example, in the following configuration, we use:
|
||||
-- event = 'VimEnter'
|
||||
--
|
||||
-- which loads which-key before all the UI elements are loaded. Events can be
|
||||
-- normal autocommands events (`:help autocmd-events`).
|
||||
--
|
||||
-- Then, because we use the `opts` key (recommended), the configuration runs
|
||||
-- after the plugin has been loaded as `require(MODULE).setup(opts)`.
|
||||
|
||||
return {
|
||||
{ -- Useful plugin to show you pending keybinds.
|
||||
"folke/which-key.nvim",
|
||||
event = "VimEnter", -- Sets the loading event to 'VimEnter'
|
||||
opts = {
|
||||
-- delay between pressing a key and opening which-key (milliseconds)
|
||||
-- this setting is independent of vim.opt.timeoutlen
|
||||
delay = 0,
|
||||
icons = {
|
||||
-- set icon mappings to true if you have a Nerd Font
|
||||
mappings = vim.g.have_nerd_font,
|
||||
-- If you are using a Nerd Font: set icons.keys to an empty table which will use the
|
||||
-- default whick-key.nvim defined Nerd Font icons, otherwise define a string table
|
||||
keys = vim.g.have_nerd_font and {} or {
|
||||
Up = "<Up> ",
|
||||
Down = "<Down> ",
|
||||
Left = "<Left> ",
|
||||
Right = "<Right> ",
|
||||
C = "<C-…> ",
|
||||
M = "<M-…> ",
|
||||
D = "<D-…> ",
|
||||
S = "<S-…> ",
|
||||
CR = "<CR> ",
|
||||
Esc = "<Esc> ",
|
||||
ScrollWheelDown = "<ScrollWheelDown> ",
|
||||
ScrollWheelUp = "<ScrollWheelUp> ",
|
||||
NL = "<NL> ",
|
||||
BS = "<BS> ",
|
||||
Space = "<Space> ",
|
||||
Tab = "<Tab> ",
|
||||
F1 = "<F1>",
|
||||
F2 = "<F2>",
|
||||
F3 = "<F3>",
|
||||
F4 = "<F4>",
|
||||
F5 = "<F5>",
|
||||
F6 = "<F6>",
|
||||
F7 = "<F7>",
|
||||
F8 = "<F8>",
|
||||
F9 = "<F9>",
|
||||
F10 = "<F10>",
|
||||
F11 = "<F11>",
|
||||
F12 = "<F12>",
|
||||
},
|
||||
},
|
||||
|
||||
-- Document existing key chains
|
||||
spec = {
|
||||
{ "<leader>c", group = "[C]ode", mode = { "n", "x" } },
|
||||
{ "<leader>d", group = "[D]ocument" },
|
||||
{ "<leader>r", group = "[R]ename" },
|
||||
{ "<leader>s", group = "[S]earch" },
|
||||
{ "<leader>w", group = "[W]orkspace" },
|
||||
{ "<leader>t", group = "[T]oggle" },
|
||||
{ "<leader>h", group = "Git [H]unk", mode = { "n", "v" } },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
-- vim: ts=2 sts=2 sw=2 et
|
||||
13
nvim/.config/nvim/lua/lazy-bootstrap.lua
Normal file
@@ -0,0 +1,13 @@
|
||||
-- [[ Install `lazy.nvim` plugin manager ]]
|
||||
-- See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info
|
||||
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
|
||||
error("Error cloning lazy.nvim:\n" .. out)
|
||||
end
|
||||
end ---@diagnostic disable-next-line: undefined-field
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
-- vim: ts=2 sts=2 sw=2 et
|
||||
471
nvim/.config/nvim/lua/lazy-plugins.lua
Normal file
@@ -0,0 +1,471 @@
|
||||
-- [[ Configure and install plugins ]]
|
||||
--
|
||||
-- To check the current status of your plugins, run
|
||||
-- :Lazy
|
||||
--
|
||||
-- You can press `?` in this menu for help. Use `:q` to close the window
|
||||
--
|
||||
-- To update plugins you can run
|
||||
-- :Lazy update
|
||||
--
|
||||
-- NOTE: Here is where you install your plugins.
|
||||
require("lazy").setup({
|
||||
-- NOTE: Plugins can be added with a link (or for a github repo: 'owner/repo' link).
|
||||
"tpope/vim-sleuth", -- Detect tabstop and shiftwidth automatically
|
||||
|
||||
-- NOTE: Plugins can also be added by using a table,
|
||||
-- with the first argument being the link and the following
|
||||
-- keys can be used to configure plugin behavior/loading/etc.
|
||||
--
|
||||
-- Use `opts = {}` to automatically pass options to a plugin's `setup()` function, forcing the plugin to be loaded.
|
||||
|
||||
-- modular approach: using `require 'path/name'` will
|
||||
-- include a plugin definition from file lua/path/name.lua
|
||||
|
||||
{
|
||||
'numToStr/Comment.nvim',
|
||||
opts = {
|
||||
-- add any options here
|
||||
}
|
||||
},
|
||||
-- { FIXME: Not working right now
|
||||
-- 'VidocqH/lsp-lens.nvim',
|
||||
-- config = function ()
|
||||
-- require("lsp-lens").setup({})
|
||||
-- end,
|
||||
-- },
|
||||
require("kickstart/plugins/orgmode"),
|
||||
"ThePrimeagen/vim-be-good",
|
||||
require("kickstart/plugins/nvim-dap"),
|
||||
{ -- nvim-dap-lldb
|
||||
"julianolf/nvim-dap-lldb",
|
||||
dependencies = { "mfussenegger/nvim-dap" },
|
||||
},
|
||||
{ -- vimtex
|
||||
"lervag/vimtex",
|
||||
lazy = false, -- we don't want to lazy load VimTeX
|
||||
-- tag = "v2.15", -- uncomment to pin to a specific release
|
||||
init = function()
|
||||
-- VimTeX configuration goes here, e.g.
|
||||
vim.g.vimtex_view_method = "zathura"
|
||||
vim.g.vimtex_compiler_method = "latexmk"
|
||||
end,
|
||||
},
|
||||
require("kickstart.plugins.mason-nvim-dap"),
|
||||
{ -- nvim-autopairs
|
||||
"windwp/nvim-autopairs",
|
||||
event = "InsertEnter",
|
||||
config = true,
|
||||
-- use opts = {} for passing setup options
|
||||
-- this is equivalent to setup({}) function
|
||||
},
|
||||
-- NOTE: Plugins can also be added by using a table,
|
||||
-- with the first argument being the link and the following
|
||||
-- keys can be used to configure plugin behavior/loading/etc.
|
||||
--
|
||||
-- Use `opts = {}` to force a plugin to be loaded.
|
||||
--
|
||||
|
||||
require("kickstart/plugins/gitsigns"),
|
||||
require("kickstart/plugins/auto-save"),
|
||||
|
||||
{ -- markdown.nvim
|
||||
"MeanderingProgrammer/markdown.nvim",
|
||||
main = "render-markdown",
|
||||
opts = {},
|
||||
name = "render-markdown",
|
||||
dependencie = { "nvim-treesitter/nvim-treesitter", "nvim-tree/nvim-web-devicons" },
|
||||
},
|
||||
{ -- Allow to move line, word, and bloc
|
||||
"fedepujol/move.nvim",
|
||||
config = function()
|
||||
require("move").setup({})
|
||||
local opts = { noremap = true, silent = true }
|
||||
-- Normal-mode commands
|
||||
vim.keymap.set("n", "<A-j>", ":MoveLine(1)<CR>", opts)
|
||||
vim.keymap.set("n", "<A-k>", ":MoveLine(-1)<CR>", opts)
|
||||
vim.keymap.set("n", "<A-l>", ":MoveWord(1)<CR>", opts)
|
||||
vim.keymap.set("n", "<A-h>", ":MoveWord(-1)<CR>", opts)
|
||||
vim.keymap.set("v", "<A-j>", ":MoveBlock(1)<CR>", opts)
|
||||
vim.keymap.set("v", "<A-k>", ":MoveBlock(-1)<CR>", opts)
|
||||
vim.keymap.set("v", "<A-l>", ":MoveHBlock(1)<CR>", opts)
|
||||
vim.keymap.set("v", "<A-h>", ":MoveHBlock(-1)<CR>", opts)
|
||||
end,
|
||||
},
|
||||
{ -- leetcode.nvim
|
||||
"kawre/leetcode.nvim",
|
||||
build = ":TSUpdate html",
|
||||
dependencies = {
|
||||
"nvim-telescope/telescope.nvim",
|
||||
"nvim-lua/plenary.nvim", -- required by telescope
|
||||
"MunifTanjim/nui.nvim",
|
||||
|
||||
-- optional
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
"rcarriga/nvim-notify",
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
},
|
||||
opts = {
|
||||
-- configuration goes here
|
||||
},
|
||||
},
|
||||
|
||||
require("kickstart.plugins.which-key"),
|
||||
|
||||
-- Awesome search
|
||||
require("kickstart.plugins.telescope"),
|
||||
|
||||
-- Highlight todo, notes, etc in comments
|
||||
require("kickstart/plugins/todo-comments"),
|
||||
|
||||
-- Transparent background
|
||||
{
|
||||
"xiyaowong/transparent.nvim",
|
||||
},
|
||||
-- FIXME: Deactivated for now because enable to set the tabulation standard
|
||||
-- NOTE: Maybe the new language support added to treesitter make this work now?
|
||||
-- require("kickstart.plugins.conform"),
|
||||
-- Folding
|
||||
{
|
||||
"kevinhwang91/nvim-ufo",
|
||||
event = "BufRead",
|
||||
dependencies = { "kevinhwang91/promise-async" },
|
||||
config = function()
|
||||
vim.o.foldcolumn = "1"
|
||||
vim.o.foldlevel = 99
|
||||
vim.o.foldlevelstart = 99
|
||||
vim.o.foldenable = true
|
||||
|
||||
require("ufo").setup()
|
||||
end,
|
||||
},
|
||||
-- LSP Plugins
|
||||
require("kickstart.plugins.lspconfig"),
|
||||
{ -- obsidian
|
||||
"epwalsh/obsidian.nvim",
|
||||
version = "*", -- recommended, use latest release instead of latest commit
|
||||
lazy = true,
|
||||
ft = "markdown",
|
||||
-- Replace the above line with this if you only want to load obsidian.nvim for markdown files in your vault:
|
||||
-- event = {
|
||||
-- -- If you want to use the home shortcut '~' here you need to call 'vim.fn.expand'.
|
||||
-- -- E.g. "BufReadPre " .. vim.fn.expand "~" .. "/my-vault/*.md"
|
||||
-- -- refer to `:h file-pattern` for more examples
|
||||
-- "BufReadPre path/to/my-vault/*.md",
|
||||
-- "BufNewFile path/to/my-vault/*.md",
|
||||
-- },
|
||||
dependencies = {
|
||||
-- Required.
|
||||
"nvim-lua/plenary.nvim",
|
||||
|
||||
-- see below for full list of optional dependencies 👇
|
||||
},
|
||||
opts = {
|
||||
ui = {enable = false},
|
||||
workspaces = (
|
||||
function()
|
||||
local ws = {}
|
||||
|
||||
if vim.fn.hostname() == "valkyrie" then
|
||||
table.insert(ws, {
|
||||
name = "personal",
|
||||
path = vim.fn.expand("~/Nextcloud/3. Resources/Notes"),
|
||||
})
|
||||
end
|
||||
|
||||
if vim.fn.hostname() == "Ingenuity-WSL" then
|
||||
table.insert(ws, {
|
||||
name = "work",
|
||||
path = vim.fn.expand("/mnt/c/Users/Thierry/3-Resources/Work_Notes"),
|
||||
})
|
||||
end
|
||||
|
||||
if vim.fn.hostname() == "ingenuity" then
|
||||
table.insert(ws, {
|
||||
name = "work",
|
||||
path = vim.fn.expand("~/3-Resources/Work_Notes"),
|
||||
})
|
||||
end
|
||||
|
||||
return ws
|
||||
end)(),
|
||||
},
|
||||
},
|
||||
{ -- Autocompletion
|
||||
"hrsh7th/nvim-cmp",
|
||||
event = "InsertEnter",
|
||||
dependencies = {
|
||||
-- Snippet Engine & its associated nvim-cmp source
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
build = (function()
|
||||
-- Build Step is needed for regex support in snippets.
|
||||
-- This step is not supported in many windows environments.
|
||||
-- Remove the below condition to re-enable on windows.
|
||||
if vim.fn.has("win32") == 1 or vim.fn.executable("make") == 0 then
|
||||
return
|
||||
end
|
||||
return "make install_jsregexp"
|
||||
end)(),
|
||||
dependencies = {
|
||||
-- `friendly-snippets` contains a variety of premade snippets.
|
||||
-- See the README about individual language/framework/plugin snippets:
|
||||
-- https://github.com/rafamadriz/friendly-snippets
|
||||
{
|
||||
'rafamadriz/friendly-snippets',
|
||||
config = function()
|
||||
require('luasnip.loaders.from_vscode').lazy_load()
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
"saadparwaiz1/cmp_luasnip", -- snippet completion
|
||||
|
||||
-- Adds other completion capabilities.
|
||||
-- nvim-cmp does not ship with all sources by default. They are split
|
||||
-- into multiple repos for maintenance purposes.
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
"hrsh7th/cmp-path",
|
||||
},
|
||||
config = function()
|
||||
-- See `:help cmp`
|
||||
local cmp = require("cmp")
|
||||
local luasnip = require("luasnip")
|
||||
luasnip.config.setup({})
|
||||
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
completion = { completeopt = "menu,menuone,noinsert" },
|
||||
|
||||
-- For an understanding of why these mappings were
|
||||
-- chosen, you will need to read `:help ins-completion`
|
||||
--
|
||||
-- No, but seriously. Please read `:help ins-completion`, it is really good!
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
-- Select the [n]ext item
|
||||
["<C-n>"] = cmp.mapping.select_next_item(),
|
||||
-- Select the [p]revious item
|
||||
["<C-p>"] = cmp.mapping.select_prev_item(),
|
||||
|
||||
-- Scroll the documentation window [b]ack / [f]orward
|
||||
["<C-b>"] = cmp.mapping.scroll_docs(-4),
|
||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||
|
||||
-- Accept ([y]es) the completion.
|
||||
-- This will auto-import if your LSP supports it.
|
||||
-- This will expand snippets if the LSP sent a snippet.
|
||||
["<C-y>"] = cmp.mapping.confirm({ select = true }),
|
||||
|
||||
-- If you prefer more traditional completion keymaps,
|
||||
-- you can uncomment the following lines
|
||||
--['<CR>'] = cmp.mapping.confirm { select = true },
|
||||
--['<Tab>'] = cmp.mapping.select_next_item(),
|
||||
--['<S-Tab>'] = cmp.mapping.select_prev_item(),
|
||||
|
||||
-- Manually trigger a completion from nvim-cmp.
|
||||
-- Generally you don't need this, because nvim-cmp will display
|
||||
-- completions whenever it has completion options available.
|
||||
["<C-Space>"] = cmp.mapping.complete({}),
|
||||
|
||||
-- Think of <c-l> as moving to the right of your snippet expansion.
|
||||
-- So if you have a snippet that's like:
|
||||
-- function $name($args)
|
||||
-- $body
|
||||
-- end
|
||||
--
|
||||
-- <c-l> will move you to the right of each of the expansion locations.
|
||||
-- <c-h> is similar, except moving you backwards.
|
||||
["<C-l>"] = cmp.mapping(function()
|
||||
if luasnip.expand_or_locally_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<C-h>"] = cmp.mapping(function()
|
||||
if luasnip.locally_jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
|
||||
-- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see:
|
||||
-- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps
|
||||
}),
|
||||
sources = {
|
||||
{
|
||||
name = "lazydev",
|
||||
-- set group index to 0 to skip loading LuaLS completions as lazydev recommends it
|
||||
group_index = 0,
|
||||
},
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "luasnip" },
|
||||
{ name = "path" },
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
{ -- You can easily change to a different colorscheme.
|
||||
-- Change the name of the colorscheme plugin below, and then
|
||||
-- change the command in the config to whatever the name of that colorscheme is.
|
||||
--
|
||||
-- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
|
||||
"folke/tokyonight.nvim",
|
||||
priority = 1000, -- Make sure to load this before all the other start plugins.
|
||||
init = function()
|
||||
-- Load the colorscheme here.
|
||||
-- Like many other themes, this one has different styles, and you could load
|
||||
-- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
|
||||
vim.cmd.colorscheme("retrobox")
|
||||
|
||||
-- You can configure highlights by doing something like:
|
||||
vim.cmd.hi("Comment gui=none")
|
||||
end,
|
||||
},
|
||||
|
||||
{ -- Collection of various small independent plugins/modules
|
||||
"echasnovski/mini.nvim",
|
||||
config = function()
|
||||
-- Better Around/Inside textobjects
|
||||
--
|
||||
-- Examples:
|
||||
-- - va) - [V]isually select [A]round [)]paren
|
||||
-- - yinq - [Y]ank [I]nside [N]ext [Q]uote
|
||||
-- - ci' - [C]hange [I]nside [']quote
|
||||
require("mini.ai").setup({ n_lines = 500 })
|
||||
|
||||
-- Add/delete/replace surroundings (brackets, quotes, etc.)
|
||||
--
|
||||
-- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
|
||||
-- - sd' - [S]urround [D]elete [']quotes
|
||||
-- - sr)' - [S]urround [R]eplace [)] [']
|
||||
require("mini.surround").setup()
|
||||
|
||||
-- Simple and easy statusline.
|
||||
-- You could remove this setup call if you don't like it,
|
||||
-- and try some other statusline plugin
|
||||
local statusline = require("mini.statusline")
|
||||
-- set use_icons to true if you have a Nerd Font
|
||||
statusline.setup({ use_icons = vim.g.have_nerd_font })
|
||||
|
||||
-- You can configure sections in the statusline by overriding their
|
||||
-- default behavior. For example, here we set the section for
|
||||
-- cursor location to LINE:COLUMN
|
||||
---@diagnostic disable-next-line: duplicate-set-field
|
||||
statusline.section_location = function()
|
||||
return "%2l:%-2v"
|
||||
end
|
||||
|
||||
-- ... and there is more!
|
||||
-- Check out: https://github.com/echasnovski/mini.nvim
|
||||
end,
|
||||
},
|
||||
{ -- Highlight, edit, and navigate code
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
build = ":TSUpdate",
|
||||
main = "nvim-treesitter.configs", -- Sets main module to use for opts
|
||||
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"bash",
|
||||
"c",
|
||||
"cpp",
|
||||
"csv",
|
||||
"gitignore",
|
||||
"git_config",
|
||||
"haskell",
|
||||
"hyprlang",
|
||||
"javadoc",
|
||||
"json",
|
||||
"lua",
|
||||
"make",
|
||||
"nginx",
|
||||
"requirements",
|
||||
"rust",
|
||||
"sql",
|
||||
"ssh_config",
|
||||
"tmux",
|
||||
"vhdl",
|
||||
"xml",
|
||||
"c_sharp",
|
||||
"python",
|
||||
"diff",
|
||||
"bash",
|
||||
"html",
|
||||
"lua",
|
||||
"luadoc",
|
||||
"markdown",
|
||||
"markdown_inline",
|
||||
"query",
|
||||
"vim",
|
||||
"vimdoc",
|
||||
},
|
||||
-- Autoinstall languages that are not installed
|
||||
auto_install = true,
|
||||
highlight = {
|
||||
enable = true,
|
||||
-- Some languages depend on vim's regex highlighting system (such as Ruby) for indent rules.
|
||||
-- If you are experiencing weird indenting issues, add the language to
|
||||
-- the list of additional_vim_regex_highlighting and disabled languages for indent.
|
||||
additional_vim_regex_highlighting = { "ruby" },
|
||||
},
|
||||
indent = { enable = true, disable = { "ruby" } },
|
||||
},
|
||||
-- There are additional nvim-treesitter modules that you can use to interact
|
||||
-- with nvim-treesitter. You should go explore a few and see what interests you:
|
||||
--
|
||||
-- - Incremental selection: Included, see `:help nvim-treesitter-incremental-selection-mod`
|
||||
-- - Show your current context: https://github.com/nvim-treesitter/nvim-treesitter-context
|
||||
-- - Treesitter + textobjects: https://github.com/nvim-treesitter/nvim-treesitter-textobjects
|
||||
},
|
||||
|
||||
-- The following comments only work if you have downloaded the kickstart repo, not just copy pasted the
|
||||
-- init.lua. If you want these files, they are in the repository, so you can just download them and
|
||||
-- place them in the correct locations.
|
||||
|
||||
-- NOTE: Next step on your Neovim journey: Add/Configure additional plugins for Kickstart
|
||||
--
|
||||
-- Here are some example plugins that I've included in the Kickstart repository.
|
||||
-- Uncomment any of the lines below to enable them (you will need to restart nvim).
|
||||
--
|
||||
-- require 'kickstart.plugins.debug',
|
||||
-- require 'kickstart.plugins.indent_line',
|
||||
-- require 'kickstart.plugins.lint',
|
||||
-- require 'kickstart.plugins.autopairs',
|
||||
-- require 'kickstart.plugins.neo-tree',
|
||||
-- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
|
||||
|
||||
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
|
||||
-- This is the easiest way to modularize your config.
|
||||
--
|
||||
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
|
||||
-- { import = 'custom.plugins' },
|
||||
--
|
||||
-- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
|
||||
-- Or use telescope!
|
||||
-- In normal mode type `<space>sh` then write `lazy.nvim-plugin`
|
||||
-- you can continue same window with `<space>sr` which resumes last telescope search
|
||||
}, {
|
||||
ui = {
|
||||
-- If you are using a Nerd Font: set icons to an empty table which will use the
|
||||
-- default lazy.nvim defined Nerd Font icons, otherwise define a unicode icons table
|
||||
icons = vim.g.have_nerd_font and {} or {
|
||||
cmd = "⌘",
|
||||
config = "🛠",
|
||||
event = "📅",
|
||||
ft = "📂",
|
||||
init = "⚙",
|
||||
keys = "🗝",
|
||||
plugin = "🔌",
|
||||
runtime = "💻",
|
||||
require = "🌙",
|
||||
source = "📄",
|
||||
start = "🚀",
|
||||
task = "📌",
|
||||
lazy = "💤 ",
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- vim: ts=2 sts=2 sw=2 et
|
||||
81
nvim/.config/nvim/lua/options.lua
Normal file
@@ -0,0 +1,81 @@
|
||||
-- [[ Setting options ]]
|
||||
-- See `:help vim.opt`
|
||||
-- NOTE: You can change these options as you wish!
|
||||
-- For more options, you can see `:help option-list`
|
||||
|
||||
vim.opt.expandtab = true -- Use spaces instead of tabs
|
||||
vim.opt.shiftwidth = 2 -- Indent/outdent by 2 spaces
|
||||
vim.opt.tabstop = 2 -- Tab key inserts 2 spaces
|
||||
vim.opt.softtabstop = 2 -- Backspace removes 2 spaces
|
||||
|
||||
-- Set fileformat to dos (CRLF) on Windows-based systems
|
||||
if vim.fn.has('win32') == 1 or vim.fn.has('win64') == 1 then
|
||||
vim.opt.fileformat = 'dos'
|
||||
end
|
||||
|
||||
-- Make line numbers default
|
||||
vim.opt.number = true
|
||||
-- You can also add relative line numbers, to help with jumping.
|
||||
-- Experiment for yourself to see if you like it!
|
||||
vim.opt.relativenumber = true
|
||||
|
||||
-- Enable mouse mode, can be useful for resizing splits for example!
|
||||
vim.opt.mouse = "a"
|
||||
|
||||
-- Don't show the mode, since it's already in the status line
|
||||
vim.opt.showmode = false
|
||||
|
||||
-- Sync clipboard between OS and Neovim.
|
||||
-- Schedule the setting after `UiEnter` because it can increase startup-time.
|
||||
-- Remove this option if you want your OS clipboard to remain independent.
|
||||
-- See `:help 'clipboard'`
|
||||
vim.schedule(function()
|
||||
vim.opt.clipboard = "unnamedplus"
|
||||
end)
|
||||
|
||||
-- Enable break indent
|
||||
vim.opt.breakindent = true
|
||||
|
||||
-- Save undo history
|
||||
vim.opt.undofile = true
|
||||
|
||||
-- Case-insensitive searching UNLESS \C or one or more capital letters in the search term
|
||||
vim.opt.ignorecase = true
|
||||
vim.opt.smartcase = true
|
||||
|
||||
-- Keep signcolumn on by default
|
||||
vim.opt.signcolumn = "yes"
|
||||
|
||||
-- Decrease update time
|
||||
vim.opt.updatetime = 250
|
||||
|
||||
-- Decrease mapped sequence wait time
|
||||
-- Displays which-key popup sooner
|
||||
vim.opt.timeoutlen = 300
|
||||
|
||||
-- Configure how new splits should be opened
|
||||
vim.opt.splitright = true
|
||||
vim.opt.splitbelow = true
|
||||
|
||||
-- Sets how neovim will display certain whitespace characters in the editor.
|
||||
-- See `:help 'list'`
|
||||
-- and `:help 'listchars'`
|
||||
vim.opt.list = true
|
||||
vim.opt.listchars = { tab = "» ", trail = "·", nbsp = "␣" }
|
||||
|
||||
-- Preview substitutions live, as you type!
|
||||
vim.opt.inccommand = "split"
|
||||
|
||||
-- Show which line your cursor is on
|
||||
vim.opt.cursorline = true
|
||||
|
||||
-- Minimal number of screen lines to keep above and below the cursor.
|
||||
vim.opt.scrolloff = 20
|
||||
|
||||
-- Setting this for obsidian.nvim
|
||||
vim.opt_local.conceallevel = 2
|
||||
|
||||
-- Setting transparency
|
||||
vim.g.transparent_enabled = true
|
||||
|
||||
-- vim: ts=2 sts=2 sw=2
|
||||
16
rclone/.config/systemd/user/rclone_ftp_mount.service
Normal file
@@ -0,0 +1,16 @@
|
||||
[Unit]
|
||||
Description=Mount Rclone FTP
|
||||
After=network-online.target network.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
# Use Environment to explicitly set $HOME
|
||||
Environment=HOME=%h
|
||||
ExecStartPre=%h/.local/bin/rclone_mount_check.sh
|
||||
ExecStart=/usr/bin/rclone mount tdnde_ftp: %h/mnt/tdnde_server --vfs-cache-mode full --vfs-cache-max-size 1G --ftp-concurrency 20 --timeout 60s --contimeout 30s --dir-cache-time 1h
|
||||
ExecStop=/bin/fusermount -u %h/mnt/tdnde_server
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
18
rclone/.local/bin/rclone_mount_check.sh
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Define the network name (SSID) of your work network
|
||||
WORK_SSID="BELL577" # Replace with your actual work network name
|
||||
|
||||
# Get the current SSID (Wi-Fi network name)
|
||||
# CURRENT_SSID=$(iwgetid -r) # If using iwgetid for Wi-Fi; you can also use nmcli for more flexibility
|
||||
|
||||
# Alternatively, use nmcli to get the SSID
|
||||
CURRENT_SSID=$(nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2)
|
||||
|
||||
# Check if the current SSID matches the work network
|
||||
if [ "$CURRENT_SSID" == "$WORK_SSID" ]; then
|
||||
exit 0
|
||||
else
|
||||
echo "Not on the correct network (SSID: $CURRENT_SSID), skipping mount."
|
||||
exit 1
|
||||
fi
|
||||
8
scripts/make_all.sh
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
cd ~/ExoKortex/2-Areas/IT/config
|
||||
make all
|
||||
if [ $? -eq 0 ]; then
|
||||
notify-send "Dotfiles" "Configuration reloaded successfully!"
|
||||
else
|
||||
notify-send "Dotfiles" "Failed to reload configuration!"
|
||||
fi
|
||||
39
scripts/rclone_post_install.sh
Normal file
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Define paths
|
||||
CHECK_SCRIPT="$HOME/.local/bin/rclone_mount_check.sh"
|
||||
SERVICE_FILE="$HOME/.config/systemd/user/rclone_ftp_mount.service"
|
||||
|
||||
# Ensure the check script is executable
|
||||
if [ -f "$CHECK_SCRIPT" ] && [ ! -x "$CHECK_SCRIPT" ]; then
|
||||
echo "Making the check script executable: $CHECK_SCRIPT"
|
||||
chmod +x "$CHECK_SCRIPT" || { echo "Failed to make the script executable"; exit 1; }
|
||||
else
|
||||
echo "Check script already executable or doesn't exist."
|
||||
fi
|
||||
|
||||
# Reload user systemd to recognize the new unit
|
||||
systemctl --user daemon-reload
|
||||
|
||||
# Enable the service if not already enabled
|
||||
if [ -f "$SERVICE_FILE" ]; then
|
||||
if ! systemctl --user is-enabled --quiet rclone_ftp_mount.service; then
|
||||
echo "Enabling the rclone service."
|
||||
systemctl --user enable rclone_ftp_mount.service || { echo "Failed to enable the service"; exit 1; }
|
||||
else
|
||||
echo "Service already enabled."
|
||||
fi
|
||||
else
|
||||
echo "Service file does not exist at $SERVICE_FILE."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Start the service if not already running
|
||||
if systemctl --user is-active --quiet rclone_ftp_mount.service; then
|
||||
echo "Rclone service is already running."
|
||||
else
|
||||
echo "Starting the rclone service."
|
||||
systemctl start rclone_ftp_mount.service || { echo "Failed to start the service"; exit 1; }
|
||||
fi
|
||||
|
||||
echo "Post-installation steps for rclone completed successfully."
|
||||
8
secrets/connecteam.age
Normal file
@@ -0,0 +1,8 @@
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IEdoTUQ4QSByeHZa
|
||||
eGZjcWJrbVhOQXBiRU4wdjFTMHVOZisxRzYvUTFKTnRuUTlWMWxjCnJGL1I3U0Nn
|
||||
TkJQelRmcGFuVjU3aVJmWkoxWEtnUUdZTVdDam9DdDhFbGsKLT4gMDstZ3JlYXNl
|
||||
CjQxVlY0c3J2RjZzCi0tLSBsNmJsWTU1bFVqc3h2TlNBOGF1RXFFcXVrUHVyd0p6
|
||||
L2Z6RGtIWElhN2RZCh6YumB0j025dfLQDqboPSVITEwJQLb8L1X5HDy7i1cHr/E0
|
||||
wv0yfp//2rRtp9X4ZFT8nG7BUPtigAma5bGJTEFKY633Iw==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
10
secrets/gemini.age
Normal file
@@ -0,0 +1,10 @@
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IEdoTUQ4QSBxdXpL
|
||||
VVg5RmNGNGxLcVByNjFpejlDejVtZTNQT0doVEdRL1U2VHhMT0hRCmJEaGdXTnFD
|
||||
Ykw0QkQvR0NyQW1QV2pUS1BaZWw1RkxLQ1I1elpqRDMzVlkKLT4gbXE9X3gtZ3Jl
|
||||
YXNlID84QFBWRSB4JiYnaWNJIE8/WUIKekQ0UkJnMGZKbFBzaVVCUHZ1aER4UU9r
|
||||
alc5RG5jcVEwcGh5K2hETmtsTFY2K3RVRmliVmY2VQotLS0gaW5ZdU1CZXhCcjRz
|
||||
TndZd0tCdy95by9kaGN1Zy85M2VZQ056eTFZdkdyTQqlnKkPs75J6J3b0pEIFMWt
|
||||
SIx4FXPo1OadOWy4MQZ7A7DzrE7tJjcVQ19/4i28Ui10KuPaDH1KdZAVet3xhuRR
|
||||
coqQfb8p3JQ=
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
8
secrets/irc.age
Normal file
@@ -0,0 +1,8 @@
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IEdoTUQ4QSBhWER0
|
||||
SG5jMVpSVWpDMUJKaENOeUd4cVNBeXR3R2RuZXl5cmFIaHU1aFc4Ckh0dmZHeVlp
|
||||
bzhsUUlVa3J4Y3ZZbEl2K3hmalJvSm5FS05FOEt5dGRTTTQKLT4gZi1ncmVhc2UK
|
||||
eFJJVDhNMXpMUXd3aWRNTjlSVCttWXlSRmd5a1hkZWVBYXcKLS0tIDZEeS82U1kz
|
||||
c0FDZXd3NUZsVjhsTjFVK1hsWGNlSVJLblJnWDBrR3V4bncKXzz/LdYlVqSVLRWU
|
||||
9ehBi6D1jCbK8y1W6AURWvOM2gqg/eDW1Rf10gqgUPg=
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
10
secrets/openrouter.age
Normal file
@@ -0,0 +1,10 @@
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IEdoTUQ4QSBHWncw
|
||||
MnQ0b1NqKzFRMVJpaDhIZ1hTVE1YMFJITVRNV3c2ZjJuSXdlVGxnCkpCYXhOd2Z1
|
||||
Q2M5VWw2MUVaeEFUdWlseWR0dVNyRWRuQitDSEZYcHlrN2MKLT4gKWQ5Skw7dC1n
|
||||
cmVhc2UgZlIyTSpPfCApIFQyIFdkR1hpclovCkx1UXE1S0VwU0M1MWhYSGxsdwot
|
||||
LS0gSnN0ZEwxMmlCU0hoVGlLN3lyVlhYZ3ZLSURYNkJDai9BN3hJL3pxSzhOMAoa
|
||||
0dYMeWqxwkq/mgK4rqcuNLG/uT2aHzOqtMNTJyv6n/SaLio/LXkW+xtGLAOxkCBO
|
||||
EEfs0G+mTrluJ/IO5NmzeMBhWC4/rfKG7rXeX3cfWNIx7K5FwOJkWh3zYQkKzFRP
|
||||
q/V9qw8s41r3
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
11
secrets/openwebui.age
Normal file
@@ -0,0 +1,11 @@
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IEdoTUQ4QSBVdmND
|
||||
MFlRWlh5TWgyZ2Z1bXRIT1RKYk9RTzB3RDVQN2VjZjVZek4rZm04CktncSt1eitI
|
||||
eXZQL1kwNy9ndzJFMVhMZFdDRGd5Ym5ZUHM0UEhGQURVd0UKLT4gQWoyUS1ncmVh
|
||||
c2UgOEJFIE53QHklKyA1dnEKbUNvczMxTUpuOGlNQWhjd0tpVnFyMDdyMkpyWGxz
|
||||
UjNLRlFLczBIUmk5dmlGM1ozVENZV0pVbE9oL1VtN0U0YgpONm5SUlhrSTNSamt3
|
||||
Y0c2MlBkbHNOT2hmeFh0RVVKL2RsbnFGVE15cS8zMWJicy93Y0JxaG9UcThXVQot
|
||||
LS0gUzBZMU1ENmo4RWdDRit4QW9HNVR6YjZBUjd4Nkhsb01hSGZiT2ltdXg2TQqk
|
||||
cltlcAYo7a7ZfsAI+4XxZAvIC4dv7XZyTKcfIetTap3aWRLYGEhajQQXUXJqTdYC
|
||||
7X1er9Kz7FO79mMZlzrNnhhEMg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
180
starship/.config/starship.toml
Normal file
@@ -0,0 +1,180 @@
|
||||
"$schema" = 'https://starship.rs/config-schema.json'
|
||||
|
||||
format = """
|
||||
[](color_orange)\
|
||||
$os\
|
||||
$username\
|
||||
[](bg:color_yellow fg:color_orange)\
|
||||
$directory\
|
||||
[](fg:color_yellow bg:color_aqua)\
|
||||
$git_branch\
|
||||
$git_status\
|
||||
[](fg:color_aqua bg:color_blue)\
|
||||
$c\
|
||||
$cpp\
|
||||
$rust\
|
||||
$golang\
|
||||
$nodejs\
|
||||
$php\
|
||||
$java\
|
||||
$kotlin\
|
||||
$haskell\
|
||||
$python\
|
||||
[](fg:color_blue bg:color_bg3)\
|
||||
$docker_context\
|
||||
$conda\
|
||||
$pixi\
|
||||
[](fg:color_bg3 bg:color_bg1)\
|
||||
$time\
|
||||
[ ](fg:color_bg1)\
|
||||
$line_break$character"""
|
||||
|
||||
palette = 'gruvbox_dark'
|
||||
|
||||
[palettes.gruvbox_dark]
|
||||
color_fg0 = '#fbf1c7'
|
||||
color_bg1 = '#3c3836'
|
||||
color_bg3 = '#665c54'
|
||||
color_blue = '#458588'
|
||||
color_aqua = '#689d6a'
|
||||
color_green = '#98971a'
|
||||
color_orange = '#d65d0e'
|
||||
color_purple = '#b16286'
|
||||
color_red = '#cc241d'
|
||||
color_yellow = '#d79921'
|
||||
|
||||
[os]
|
||||
disabled = false
|
||||
style = "bg:color_orange fg:color_fg0"
|
||||
|
||||
[os.symbols]
|
||||
Windows = ""
|
||||
Ubuntu = ""
|
||||
SUSE = ""
|
||||
Raspbian = ""
|
||||
Mint = ""
|
||||
Macos = ""
|
||||
Manjaro = ""
|
||||
Linux = ""
|
||||
Gentoo = ""
|
||||
Fedora = ""
|
||||
Alpine = ""
|
||||
Amazon = ""
|
||||
Android = ""
|
||||
Arch = ""
|
||||
Artix = ""
|
||||
EndeavourOS = ""
|
||||
CentOS = ""
|
||||
Debian = ""
|
||||
Redhat = ""
|
||||
RedHatEnterprise = ""
|
||||
Pop = ""
|
||||
|
||||
[username]
|
||||
show_always = true
|
||||
style_user = "bg:color_orange fg:color_fg0"
|
||||
style_root = "bg:color_orange fg:color_fg0"
|
||||
format = '[ $user ]($style)'
|
||||
|
||||
[directory]
|
||||
style = "fg:color_fg0 bg:color_yellow"
|
||||
format = "[ $path ]($style)"
|
||||
truncation_length = 3
|
||||
truncation_symbol = "…/"
|
||||
|
||||
[directory.substitutions]
|
||||
"Documents" = " "
|
||||
"Downloads" = " "
|
||||
"Music" = " "
|
||||
"Pictures" = " "
|
||||
"Developer" = " "
|
||||
|
||||
[git_branch]
|
||||
symbol = ""
|
||||
style = "bg:color_aqua"
|
||||
format = '[[ $symbol $branch ](fg:color_fg0 bg:color_aqua)]($style)'
|
||||
|
||||
[git_status]
|
||||
style = "bg:color_aqua"
|
||||
format = '[[($all_status$ahead_behind )](fg:color_fg0 bg:color_aqua)]($style)'
|
||||
|
||||
[nodejs]
|
||||
symbol = ""
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[c]
|
||||
symbol = " "
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[cpp]
|
||||
symbol = " "
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[rust]
|
||||
symbol = ""
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[golang]
|
||||
symbol = ""
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[php]
|
||||
symbol = ""
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[java]
|
||||
symbol = ""
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[kotlin]
|
||||
symbol = ""
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[haskell]
|
||||
symbol = ""
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[python]
|
||||
symbol = ""
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[docker_context]
|
||||
symbol = ""
|
||||
style = "bg:color_bg3"
|
||||
format = '[[ $symbol( $context) ](fg:#83a598 bg:color_bg3)]($style)'
|
||||
|
||||
[conda]
|
||||
style = "bg:color_bg3"
|
||||
format = '[[ $symbol( $environment) ](fg:#83a598 bg:color_bg3)]($style)'
|
||||
|
||||
[pixi]
|
||||
style = "bg:color_bg3"
|
||||
format = '[[ $symbol( $version)( $environment) ](fg:color_fg0 bg:color_bg3)]($style)'
|
||||
|
||||
[time]
|
||||
disabled = false
|
||||
time_format = "%R"
|
||||
style = "bg:color_bg1"
|
||||
format = '[[ $time ](fg:color_fg0 bg:color_bg1)]($style)'
|
||||
|
||||
[line_break]
|
||||
disabled = false
|
||||
|
||||
[character]
|
||||
disabled = false
|
||||
success_symbol = '[](bold fg:color_green)'
|
||||
error_symbol = '[](bold fg:color_red)'
|
||||
vimcmd_symbol = '[](bold fg:color_green)'
|
||||
vimcmd_replace_one_symbol = '[](bold fg:color_purple)'
|
||||
vimcmd_replace_symbol = '[](bold fg:color_purple)'
|
||||
vimcmd_visual_symbol = '[](bold fg:color_yellow)'
|
||||
119
tmux/.tmux.conf
Normal file
@@ -0,0 +1,119 @@
|
||||
# Configure Tmux
|
||||
set -g status-position top
|
||||
set -g status-style "bg=#{@thm_bg}"
|
||||
set -g status-justify "absolute-centre"
|
||||
set -g prefix ^A
|
||||
set -g base-index 1 # start indexing windows at 1 instead of 0
|
||||
set -g detach-on-destroy off # don't exit from tmux when closing a session
|
||||
set -g escape-time 0 # zero-out escape time delay
|
||||
set -g history-limit 1000000 # increase history size (from 2,000)
|
||||
set -g renumber-windows on # renumber all windows when any window is closed
|
||||
set -g set-clipboard on # use system clipboard
|
||||
setw -g mode-keys vi
|
||||
setw -g mouse on
|
||||
if-shell 'echo $TERM | grep -q "xterm-kitty"' \
|
||||
'set -g default-terminal "kitty"; set -g terminal-overrides "xterm-kitty:Tc"'
|
||||
if-shell 'grep -qi microsoft /proc/version' \
|
||||
'set -g default-terminal "screen-256color"; set-option -sa terminal-overrides ",xterm-256color:RGB"'
|
||||
|
||||
set -g @plugin 'catppuccin/tmux'
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
||||
set -g @plugin 'tmux-plugins/tmux-continuum'
|
||||
set -g @plugin 'tmux-plugins/tmux-online-status'
|
||||
set -g @plugin 'tmux-plugins/tmux-battery'
|
||||
#set -g @plugin 'sainnhe/tmux-fzf'
|
||||
#set -g @plugin 'wfxr/tmux-fzf-url'
|
||||
#set -g @plugin 'fcsonline/tmux-thumbs'
|
||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||
set -g @plugin 'omerxx/tmux-sessionx'
|
||||
#set -g @plugin 'omerxx/tmux-floax'
|
||||
|
||||
# Configure sessionx
|
||||
set -g @sessionx-bind 'o'
|
||||
#set -g @sessionx-bind-zo-new-window 'ctrl-y'
|
||||
#set -g @sessionx-auto-accept 'off'
|
||||
#set -g @sessionx-custom-paths '/Users/omerxx/dotfiles'
|
||||
#set -g @sessionx-bind 'o'
|
||||
#set -g @sessionx-x-path '~/dotfiles'
|
||||
set -g @sessionx-window-height '85%'
|
||||
set -g @sessionx-window-width '75%'
|
||||
set -g @sessionx-zoxide-mode 'on'
|
||||
#set -g @sessionx-custom-paths-subdirectories 'false'
|
||||
set -g @sessionx-filter-current 'false'
|
||||
|
||||
# Configure Continuum
|
||||
set -g @continuum-restore 'on'
|
||||
#set -g @continuum-boot 'on' # Break the ressurect in my setup by saving at boot
|
||||
|
||||
# Configure Resurrect
|
||||
set -g @resurrect-strategy-nvim 'session'
|
||||
set -g @resurrect-capture-pane-contents 'on'
|
||||
set -g @resurrect-processes 'ssh btop nvim lazygit yazi aichat spotify_player'
|
||||
|
||||
# Yazi image preview
|
||||
set -g allow-passthrough on
|
||||
set -ga update-environment TERM
|
||||
set -ga update-environment TERM_PROGRAM
|
||||
|
||||
# Configure Catppuccin
|
||||
set -g @catppuccin_flavor "macchiato"
|
||||
set -g @catppuccin_status_background "none"
|
||||
set -g @catppuccin_window_status_style "none"
|
||||
set -g @catppuccin_pane_status_enabled "off"
|
||||
set -g @catppuccin_pane_border_status "off"
|
||||
|
||||
## Configure Online
|
||||
set -g @online_icon "ok"
|
||||
set -g @offline_icon "nok"
|
||||
|
||||
## Keybinds
|
||||
bind h select-pane -L
|
||||
bind j select-pane -D
|
||||
bind k select-pane -U
|
||||
bind l select-pane -R
|
||||
|
||||
## status left look and feel
|
||||
set -g status-left-length 100
|
||||
set -g status-left ""
|
||||
set -ga status-left "#{?client_prefix,#{#[bg=#{@thm_red},fg=#{@thm_bg},bold] #S },#{#[bg=#{@thm_bg},fg=#{@thm_green}] #S }}"
|
||||
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]│"
|
||||
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_maroon}] #{pane_current_command} "
|
||||
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]│"
|
||||
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_blue}] #{=/-32/...:#{s|$USER|~|:#{b:pane_current_path}}} "
|
||||
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]#{?window_zoomed_flag,│,}"
|
||||
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_yellow}]#{?window_zoomed_flag, zoom ,}"
|
||||
|
||||
## status right look and feel
|
||||
set -g status-right-length 100
|
||||
set -g status-right ""
|
||||
set -ga status-right "#{?#{e|>=:10,#{battery_percentage}},#{#[bg=#{@thm_red},fg=#{@thm_bg}]},#{#[bg=#{@thm_bg},fg=#{@thm_pink}]}} #{battery_icon} #{battery_percentage} "
|
||||
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_overlay_0}, none]│"
|
||||
set -ga status-right "#[bg=#{@thm_bg}]#{?#{==:#{online_status},ok},#[fg=#{@thm_mauve}] on ,#[fg=#{@thm_red},bold]#[reverse] off }"
|
||||
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_overlay_0}, none]│"
|
||||
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_blue}] %Y-%m-%d %H:%M "
|
||||
|
||||
# pane border look and feel
|
||||
setw -g pane-border-status top
|
||||
setw -g pane-border-format ""
|
||||
setw -g pane-active-border-style "bg=#{@thm_bg},fg=#{@thm_overlay_0}"
|
||||
setw -g pane-border-style "bg=#{@thm_bg},fg=#{@thm_surface_0}"
|
||||
setw -g pane-border-lines single
|
||||
|
||||
# window look and feel
|
||||
set -wg automatic-rename on
|
||||
set -g automatic-rename-format "Window"
|
||||
|
||||
set -g window-status-format " #I#{?#{!=:#{window_name},Window},: #W,} "
|
||||
set -g window-status-style "bg=#{@thm_bg},fg=#{@thm_rosewater}"
|
||||
set -g window-status-last-style "bg=#{@thm_bg},fg=#{@thm_peach}"
|
||||
set -g window-status-activity-style "bg=#{@thm_red},fg=#{@thm_bg}"
|
||||
set -g window-status-bell-style "bg=#{@thm_red},fg=#{@thm_bg},bold"
|
||||
set -gF window-status-separator "#[bg=#{@thm_bg},fg=#{@thm_overlay_0}]│"
|
||||
|
||||
set -g window-status-current-format " #I#{?#{!=:#{window_name},Window},: #W,} "
|
||||
set -g window-status-current-style "bg=#{@thm_peach},fg=#{@thm_bg},bold"
|
||||
|
||||
run '/usr/share/tmux-plugin-manager/tpm'
|
||||
run '~/.tmux/plugins/catppuccin/tmux/catppuccin.tmux'
|
||||
BIN
wallpapers/.config/wallpapers/86.gif
Normal file
|
After Width: | Height: | Size: 346 KiB |
BIN
wallpapers/.config/wallpapers/Dark_japan.webp
Normal file
|
After Width: | Height: | Size: 564 KiB |
BIN
wallpapers/.config/wallpapers/bark_and_lava.jpg
Normal file
|
After Width: | Height: | Size: 995 KiB |
BIN
wallpapers/.config/wallpapers/falcon_milenium.webp
Normal file
|
After Width: | Height: | Size: 525 KiB |
BIN
wallpapers/.config/wallpapers/gray_japan_street.gif
Normal file
|
After Width: | Height: | Size: 2.8 MiB |
BIN
wallpapers/.config/wallpapers/green_yellow_forest.jpg
Normal file
|
After Width: | Height: | Size: 12 MiB |
BIN
wallpapers/.config/wallpapers/inside_japan_coffee.webp
Normal file
|
After Width: | Height: | Size: 214 KiB |
BIN
wallpapers/.config/wallpapers/light_japan.webp
Normal file
|
After Width: | Height: | Size: 233 KiB |
BIN
wallpapers/.config/wallpapers/mush.jpg
Normal file
|
After Width: | Height: | Size: 1008 KiB |
BIN
wallpapers/.config/wallpapers/night_orange_japan_street.gif
Normal file
|
After Width: | Height: | Size: 923 KiB |
BIN
wallpapers/.config/wallpapers/orange_japan.gif
Normal file
|
After Width: | Height: | Size: 478 KiB |
BIN
wallpapers/.config/wallpapers/penrose-triangle-forest.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
wallpapers/.config/wallpapers/penrose-triangle-sky.png
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
wallpapers/.config/wallpapers/rusty_hacker_den.gif
Normal file
|
After Width: | Height: | Size: 3.8 MiB |
BIN
wallpapers/.config/wallpapers/train_in_forest.jpg
Normal file
|
After Width: | Height: | Size: 2.8 MiB |
BIN
wallpapers/.config/wallpapers/tree_bark.jpg
Normal file
|
After Width: | Height: | Size: 3.2 MiB |
BIN
wallpapers/.config/wallpapers/walk-anime.gif
Normal file
|
After Width: | Height: | Size: 210 KiB |
BIN
wallpapers/.config/wallpapers/yellow_futur_city.gif
Normal file
|
After Width: | Height: | Size: 328 KiB |
34
waybar/.config/waybar/config.jsonc
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
// load modules
|
||||
"include": "~/.config/waybar/modules.json",
|
||||
|
||||
// general settings
|
||||
"position": "top",
|
||||
"margin-top": 8,
|
||||
"margin-bottom": 0,
|
||||
"layer": "top",
|
||||
"margin-left": 8,
|
||||
"margin-right": 8,
|
||||
"spacing": 10,
|
||||
"fixed-center": true,
|
||||
"exclusive": true,
|
||||
|
||||
// modules
|
||||
"modules-left": [
|
||||
"hyprland/workspaces",
|
||||
"wlr/taskbar"
|
||||
],
|
||||
|
||||
"modules-center": [
|
||||
"clock"
|
||||
],
|
||||
|
||||
"modules-right": [
|
||||
"group/hardware",
|
||||
"pulseaudio",
|
||||
"bluetooth",
|
||||
"network",
|
||||
"battery",
|
||||
"custom/exit"
|
||||
]
|
||||
}
|
||||
11
waybar/.config/waybar/launch.sh
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# terminate running instances
|
||||
killall -q waybar
|
||||
|
||||
# wait until processes have been shut down
|
||||
while pgrep -x waybar >/dev/null; do sleep 0.1; done
|
||||
|
||||
# launch main
|
||||
waybar -c ~/.config/waybar/config.jsonc & -s ~/.config/waybar/style.css
|
||||
|
||||
26
waybar/.config/waybar/mocha.css
Normal file
@@ -0,0 +1,26 @@
|
||||
@define-color rosewater #f5e0dc;
|
||||
@define-color flamingo #f2cdcd;
|
||||
@define-color pink #f5c2e7;
|
||||
@define-color mauve #cba6f7;
|
||||
@define-color red #f38ba8;
|
||||
@define-color maroon #eba0ac;
|
||||
@define-color peach #fab387;
|
||||
@define-color yellow #f9e2af;
|
||||
@define-color green #a6e3a1;
|
||||
@define-color teal #94e2d5;
|
||||
@define-color sky #89dceb;
|
||||
@define-color sapphire #74c7ec;
|
||||
@define-color blue #89b4fa;
|
||||
@define-color lavender #b4befe;
|
||||
@define-color text #cdd6f4;
|
||||
@define-color subtext1 #bac2de;
|
||||
@define-color subtext0 #a6adc8;
|
||||
@define-color overlay2 #9399b2;
|
||||
@define-color overlay1 #7f849c;
|
||||
@define-color overlay0 #6c7086;
|
||||
@define-color surface2 #585b70;
|
||||
@define-color surface1 #45475a;
|
||||
@define-color surface0 #313244;
|
||||
@define-color base #1e1e2e;
|
||||
@define-color mantle #181825;
|
||||
@define-color crust #11111b;
|
||||
161
waybar/.config/waybar/modules.json
Normal file
@@ -0,0 +1,161 @@
|
||||
{
|
||||
// workspaces
|
||||
"hyprland/workspaces" : {
|
||||
"on-click": "activate",
|
||||
"active-only": true,
|
||||
"all-outputs": true,
|
||||
"format": "{}",
|
||||
"format-icons": {
|
||||
"urgent": "",
|
||||
"active": "",
|
||||
"default": ""
|
||||
},
|
||||
"persistent-workspaces": {
|
||||
"*": 5
|
||||
},
|
||||
},
|
||||
|
||||
// taskbar
|
||||
"wlr/taskbar": {
|
||||
"format": "{icon}",
|
||||
"icon-size": 18,
|
||||
"tooltip-format": "{title}",
|
||||
"on-click": "activate",
|
||||
"on-click-middle": "close",
|
||||
},
|
||||
|
||||
// clock
|
||||
"clock": {
|
||||
"interval": 1,
|
||||
"format": "{:%A, %B %d - %H:%M}",
|
||||
//"format": "{:%I:%M %p}", // AM PM format
|
||||
"format-alt": "{:%H:%M}",
|
||||
"tooltip-format": "<big>{calendar}</big>",
|
||||
"calendar": {
|
||||
"mode": "month",
|
||||
"mode-mon-col": 3,
|
||||
"weeks-pos": "right",
|
||||
"on-scroll": 1,
|
||||
"format": {
|
||||
"months": "<span color='#ffffff'><b>{}</b></span>",
|
||||
"days": "<span color='#ffffff'><b>{}</b></span>",
|
||||
"weeks": "<span color='#ffffff'><b>W{}</b></span>",
|
||||
"weekdays": "<span color='#ffffff'><b>{}</b></span>",
|
||||
"today": "<span color='#ffffff'><b><u>{}</u></b></span>"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// hardware
|
||||
"group/hardware": {
|
||||
"orientation": "inherit",
|
||||
"drawer": {
|
||||
"transition-duration": 300,
|
||||
"children-class": "not-memory",
|
||||
"transition-left-to-right": false
|
||||
},
|
||||
"modules": [
|
||||
"custom/system",
|
||||
"cpu",
|
||||
"temperature",
|
||||
"disk",
|
||||
"memory"
|
||||
]
|
||||
},
|
||||
|
||||
// system
|
||||
"custom/system": {
|
||||
"format": "<span size='small'> </span>",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// CPU
|
||||
"cpu": {
|
||||
"format": " {usage}% ",
|
||||
"on-click": "kitty btop"
|
||||
},
|
||||
|
||||
// temperature
|
||||
"temperature": {
|
||||
"format": " {temperatureC}°C ",
|
||||
"on-click": "kitty btop"
|
||||
},
|
||||
|
||||
// harddisc space
|
||||
"disk": {
|
||||
"interval": 30,
|
||||
"format": " {percentage_used}% ",
|
||||
"path": "/",
|
||||
"on-click": "kitty btop"
|
||||
},
|
||||
|
||||
// memory
|
||||
"memory": {
|
||||
"format": " {}% ",
|
||||
"on-click": "kitty btop"
|
||||
},
|
||||
|
||||
// audio
|
||||
"pulseaudio": {
|
||||
"scroll-step": 1,
|
||||
"format": "{icon} {volume}%",
|
||||
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth-muted": " {icon} {format_source}",
|
||||
"format-muted": " {format_source}",
|
||||
"format-source": "{volume}% ",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"phone": "",
|
||||
"car": "",
|
||||
"default": ["", "", ""]
|
||||
},
|
||||
"on-click": "pwvucontrol"
|
||||
},
|
||||
|
||||
// bluetooth
|
||||
"bluetooth": {
|
||||
"format": " {status}",
|
||||
"format-disabled": " {status}",
|
||||
"format-off": " {status}",
|
||||
"interval": 30,
|
||||
"on-click": "kitty bluetuith",
|
||||
"format-no-controller": ""
|
||||
},
|
||||
|
||||
// network
|
||||
"network": {
|
||||
"format": "{ifname}",
|
||||
"format-wifi": " {signalStrength}%",
|
||||
"format-ethernet": " {ifname}",
|
||||
"format-disconnected": "disconnected",
|
||||
"tooltip-format": " {ifname} via {gwaddri}",
|
||||
"tooltip-format-wifi": " {ifname} @ {essid}\nIP: {ipaddr}\nStrength: {signalStrength}%\nFreq: {frequency}MHz\n {bandwidthUpBits} {bandwidthDownBits}",
|
||||
"tooltip-format-ethernet": " {ifname}\nIP: {ipaddr}\n {bandwidthUpBits} {bandwidthDownBits}",
|
||||
"tooltip-format-disconnected": "disconnected",
|
||||
"max-length": 50,
|
||||
"on-click": "kitty nmtui"
|
||||
//"on-click": "~/dotfiles/.settings/networkmanager.sh"
|
||||
},
|
||||
|
||||
// battery
|
||||
"battery": {
|
||||
"states": {
|
||||
"good": 95,
|
||||
"warning": 30,
|
||||
"critical": 10
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-charging": " {capacity}%",
|
||||
"format-plugged": " {capacity}%",
|
||||
"format-icons": ["", "", "", "", ""],
|
||||
"on-click": "kitty sudo auto-cpufreq --monitor"
|
||||
},
|
||||
|
||||
// power menu
|
||||
"custom/exit": {
|
||||
"format": "",
|
||||
"on-click": "wlogout -b 2",
|
||||
"tooltip": false
|
||||
},
|
||||
}
|
||||
261
waybar/.config/waybar/style.css
Normal file
@@ -0,0 +1,261 @@
|
||||
/* pywal colors */
|
||||
@import "../../.cache/wal/colors-waybar.css";
|
||||
@define-color ws @color4;
|
||||
@define-color tt @color1;
|
||||
@define-color clock @color3;
|
||||
@define-color set @color4;
|
||||
@define-color tb rgba(200,200,200,0.2);
|
||||
@define-color tbh @color5;
|
||||
@define-color text #FFFFFF;
|
||||
|
||||
/* general */
|
||||
* {
|
||||
font-family: "JetBrainsMono Nerd Font";
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: rgba(0,0,0,0.4); /* r, g, b, a(transparency) */
|
||||
transition-property: background-color;
|
||||
transition-duration: .5s;
|
||||
}
|
||||
|
||||
/* workspaces */
|
||||
#workspaces {
|
||||
margin: 4px 1px 4px 1px;
|
||||
padding: 0px 0px;
|
||||
border-radius: 5px;
|
||||
border: 0px;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-size: 16px;
|
||||
color: @text;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
margin: 0px 2px;
|
||||
padding: 0px 5px;
|
||||
color: @text;
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: @text;
|
||||
background: @ws;
|
||||
transition: all 0.3s ease-in-out;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
color: @text;
|
||||
background: @ws;
|
||||
opacity: 0.9;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* taskbar */
|
||||
#taskbar {
|
||||
background: @tb;
|
||||
margin: 4px 15px 4px 1px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
#taskbar button {
|
||||
margin: 0px 1px;
|
||||
border-radius: 5px;
|
||||
padding: 0px 5px;
|
||||
}
|
||||
|
||||
#taskbar button:hover {
|
||||
background: @tbh;
|
||||
opacity: 1;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* tooltip */
|
||||
tooltip {
|
||||
border-radius: 5px;
|
||||
background-color: @tt;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
border-radius: 5px;
|
||||
background-color: @tt;
|
||||
opacity: 0.8;
|
||||
padding: 0px;
|
||||
margin: -5px 0px;
|
||||
font-size: 12px;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
/* modules */
|
||||
.modules-left > widget:first-child > #workspaces {
|
||||
margin-left: 10;
|
||||
}
|
||||
|
||||
.modules-right > widget:last-child > #workspaces {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
/* clock */
|
||||
#clock {
|
||||
background-color: @clock;
|
||||
font-size: 16px;
|
||||
color: @text;
|
||||
border-radius: 5px;
|
||||
padding: 1px 10px 0px 10px;
|
||||
margin: 4px 1px;
|
||||
opacity: 0.9;
|
||||
border: none;
|
||||
}
|
||||
|
||||
/* hardware group */
|
||||
#cpu,#temperature,#disk,#memory {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
font-size: 16px;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
/* audio */
|
||||
#pulseaudio {
|
||||
background-color: @set;
|
||||
font-size: 16px;
|
||||
color: @text;
|
||||
border-radius: 5px;
|
||||
padding: 1px 10px 0px 10px;
|
||||
margin: 4px 1px 4px -15px;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
/* network */
|
||||
#network {
|
||||
background-color: @set;
|
||||
font-size: 16px;
|
||||
color: @text;
|
||||
border-radius: 5px;
|
||||
padding: 1px 10px 0px 10px;
|
||||
margin: 4px 1px;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
#network.ethernet {
|
||||
background-color: @set;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#network.wifi {
|
||||
background-color: @set;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
/* bluetooth */
|
||||
#bluetooth, #bluetooth.on, #bluetooth.connected, #bluetooth.off {
|
||||
background-color: @set;
|
||||
font-size: 16px;
|
||||
color: @text;
|
||||
border-radius: 5px;
|
||||
padding: 1px 10px 0px 10px;
|
||||
margin: 4px 1px;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
/* battery */
|
||||
#battery {
|
||||
background-color: @set;
|
||||
font-size: 16px;
|
||||
color: @text;
|
||||
border-radius: 5px;
|
||||
padding: 1px 10px 0px 10px;
|
||||
margin: 4px 1px;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
#battery.charging, #battery.plugged {
|
||||
color: @text;
|
||||
background-color: @set;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: @set;
|
||||
color: @text;
|
||||
}
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
background-color: #f53c3c;
|
||||
color: @text;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
/* tray */
|
||||
#tray {
|
||||
padding: 0px 15px 0px 0px;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#tray > .passive {
|
||||
-gtk-icon-effect: dim;
|
||||
}
|
||||
|
||||
#tray > .needs-attention {
|
||||
-gtk-icon-effect: highlight;
|
||||
}
|
||||
|
||||
/* custom modules */
|
||||
#custom-exit {
|
||||
margin: 0px 18px 0px 5px;
|
||||
padding: 0px;
|
||||
font-size: 20px;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#custom-system {
|
||||
margin-right: 15px;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
opacity: 0.8;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#custom-settings {
|
||||
margin-right: 0px;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
opacity: 0.8;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#custom-updates {
|
||||
background-color: @set;
|
||||
font-size: 16px;
|
||||
color: @text;
|
||||
border-radius: 5px;
|
||||
padding: 2px 10px 0px 10px;
|
||||
margin: 8px 15px 8px 0px;
|
||||
opacity:0.8;
|
||||
}
|
||||
|
||||
#custom-updates.green {
|
||||
background-color: @set;
|
||||
}
|
||||
|
||||
#custom-updates.yellow {
|
||||
background-color: #ff9a3c;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
#custom-updates.red {
|
||||
background-color: #dc2f2f;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=Whisper Combined Audio Setup
|
||||
After=pipewire.service wireplumber.service
|
||||
Requires=pipewire.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart=/bin/bash -c 'pw-cli create-node adapter "{ factory.name=support.null-audio-sink node.name=whisper-combined node.description=\\"Whisper Combined Audio\\" media.class=Audio/Sink audio.channels=2 audio.position=[FL,FR] }" && sleep 2 && pw-loopback -P @DEFAULT_SINK@ -C whisper-combined --latency=1024 & pw-loopback -P @DEFAULT_SOURCE@ -C whisper-combined --latency=1024 &'
|
||||
ExecStop=/bin/bash -c 'pkill -f "pw-loopback.*whisper-combined"'
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"wireplumber.components": [
|
||||
{
|
||||
"name": "whisper-combined-setup",
|
||||
"type": "virtual-item/item",
|
||||
"provides": "virtual-item"
|
||||
}
|
||||
],
|
||||
"wireplumber.settings": {
|
||||
"node.rules": [
|
||||
{
|
||||
"matches": [
|
||||
{
|
||||
"node.name": "whisper-combined"
|
||||
}
|
||||
],
|
||||
"actions": {
|
||||
"update-props": {
|
||||
"node.description": "Whisper Combined Audio",
|
||||
"media.class": "Audio/Sink"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"context.objects": [
|
||||
{
|
||||
"factory": "adapter",
|
||||
"args": {
|
||||
"factory.name": "support.null-audio-sink",
|
||||
"node.name": "whisper-combined",
|
||||
"node.description": "Whisper Combined Audio",
|
||||
"media.class": "Audio/Sink",
|
||||
"audio.channels": 2,
|
||||
"audio.position": "[ FL FR ]"
|
||||
}
|
||||
},
|
||||
{
|
||||
"factory": "adapter",
|
||||
"args": {
|
||||
"factory.name": "support.null-audio-sink",
|
||||
"node.name": "whisper-speaker-loopback",
|
||||
"node.description": "Speaker to Whisper Loopback",
|
||||
"media.class": "Stream/Output/Audio",
|
||||
"audio.channels": 2,
|
||||
"stream.capture.sink": "@DEFAULT_SINK@",
|
||||
"stream.playback.sink": "whisper-combined"
|
||||
}
|
||||
},
|
||||
{
|
||||
"factory": "adapter",
|
||||
"args": {
|
||||
"factory.name": "support.null-audio-sink",
|
||||
"node.name": "whisper-mic-loopback",
|
||||
"node.description": "Mic to Whisper Loopback",
|
||||
"media.class": "Stream/Output/Audio",
|
||||
"audio.channels": 2,
|
||||
"stream.capture.sink": "@DEFAULT_SOURCE@",
|
||||
"stream.playback.sink": "whisper-combined"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
4
wofi/.config/wofi/config
Normal file
@@ -0,0 +1,4 @@
|
||||
key_up=Ctrl-k
|
||||
key_down=Ctrl-j
|
||||
key_left=Ctrl-h
|
||||
key_right=Ctrl-l
|
||||
107
wofi/.config/wofi/style.css
Normal file
@@ -0,0 +1,107 @@
|
||||
@import ".cache/wal/colors-waybar.css";
|
||||
|
||||
@define-color txt @color7;
|
||||
@define-color bg @color0;
|
||||
@define-color bg2 @color4;
|
||||
@define-color bginput @color9;
|
||||
@define-color accent @color11;
|
||||
|
||||
* {
|
||||
font-family: 'JetBrains Mono Nerd Font', monospace;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
/* Window */
|
||||
window {
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: 1px solid @accent;
|
||||
border-radius: 5px;
|
||||
background-color: @bg;
|
||||
animation: slideIn 0.5s ease-in-out both;
|
||||
}
|
||||
|
||||
/* Slide In */
|
||||
@keyframes slideIn {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Inner Box */
|
||||
#inner-box {
|
||||
margin: 5px;
|
||||
padding: 10px;
|
||||
border: none;
|
||||
background-color: @bg;
|
||||
animation: fadeIn 0.5s ease-in-out both;
|
||||
|
||||
}
|
||||
|
||||
/* Fade In */
|
||||
@keyframes fadeIn {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Outer Box */
|
||||
#outer-box {
|
||||
margin: 5px;
|
||||
padding: 10px;
|
||||
border: none;
|
||||
background-color: @bg;
|
||||
}
|
||||
|
||||
/* Scroll */
|
||||
#scroll {
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
/* Input */
|
||||
#input {
|
||||
margin: 5px;
|
||||
padding: 10px;
|
||||
border: none;
|
||||
color: @accent;
|
||||
background-color: @bginput;
|
||||
animation: fadeIn 0.5s ease-in-out both;
|
||||
}
|
||||
|
||||
/* Text */
|
||||
#text {
|
||||
margin: 5px;
|
||||
padding: 10px;
|
||||
border: none;
|
||||
color: @txt;
|
||||
animation: fadeIn 0.5s ease-in-out both;
|
||||
}
|
||||
|
||||
/* Selected Entry */
|
||||
/*
|
||||
#entry:selected {
|
||||
background-color: @accent;
|
||||
border-radius: 5px;
|
||||
}
|
||||
*/
|
||||
|
||||
#entry:selected {
|
||||
background: @bg2;
|
||||
border-radius: 5px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
#entry:selected #text {
|
||||
color: @txt;
|
||||
}
|
||||
3
yazi/.config/yazi/keymap.toml
Normal file
@@ -0,0 +1,3 @@
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "M"
|
||||
run = "plugin mount"
|
||||
3
yazi/.config/yazi/keymap.toml-1749058747499918
Normal file
@@ -0,0 +1,3 @@
|
||||
[[manager.prepend_keymap]]
|
||||
on = "M"
|
||||
run = "plugin mount"
|
||||
7
yazi/.config/yazi/package.toml
Normal file
@@ -0,0 +1,7 @@
|
||||
[[plugin.deps]]
|
||||
use = "yazi-rs/plugins:mount"
|
||||
rev = "cb6165b"
|
||||
hash = "dd97eede8e20e59cd2604e8006e470e2"
|
||||
|
||||
[flavor]
|
||||
deps = []
|
||||
222
yazi/.config/yazi/yazi.toml
Normal file
@@ -0,0 +1,222 @@
|
||||
# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
|
||||
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
|
||||
"$schema" = "https://yazi-rs.github.io/schemas/yazi.json"
|
||||
|
||||
[mgr]
|
||||
ratio = [ 1, 4, 3 ]
|
||||
sort_by = "alphabetical"
|
||||
sort_sensitive = false
|
||||
sort_reverse = false
|
||||
sort_dir_first = true
|
||||
sort_translit = false
|
||||
linemode = "none"
|
||||
show_hidden = true
|
||||
show_symlink = true
|
||||
scrolloff = 5
|
||||
mouse_events = [ "click", "scroll" ]
|
||||
title_format = "Yazi: {cwd}"
|
||||
|
||||
[preview]
|
||||
wrap = "no"
|
||||
tab_size = 2
|
||||
max_width = 600
|
||||
max_height = 900
|
||||
cache_dir = ""
|
||||
image_delay = 30
|
||||
image_filter = "triangle"
|
||||
image_quality = 75
|
||||
sixel_fraction = 15
|
||||
ueberzug_scale = 1
|
||||
ueberzug_offset = [ 0, 0, 0, 0 ]
|
||||
|
||||
[opener]
|
||||
edit = [
|
||||
{ run = '$EDITOR "$@"', desc = "$EDITOR", block = true, for = "unix" },
|
||||
{ run = 'code %*', orphan = true, desc = "code", for = "windows" },
|
||||
{ run = 'code -w %*', block = true, desc = "code (block)", for = "windows" },
|
||||
]
|
||||
open = [
|
||||
{ run = 'xdg-open "$1"', desc = "Open", for = "linux" },
|
||||
{ run = 'open "$@"', desc = "Open", for = "macos" },
|
||||
{ run = 'start "" "%1"', orphan = true, desc = "Open", for = "windows" },
|
||||
{ run = 'termux-open "$1"', desc = "Open", for = "android" },
|
||||
]
|
||||
reveal = [
|
||||
{ run = 'xdg-open "$(dirname "$1")"', desc = "Reveal", for = "linux" },
|
||||
{ run = 'open -R "$1"', desc = "Reveal", for = "macos" },
|
||||
{ run = 'explorer /select,"%1"', orphan = true, desc = "Reveal", for = "windows" },
|
||||
{ run = 'termux-open "$(dirname "$1")"', desc = "Reveal", for = "android" },
|
||||
{ run = '''exiftool "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show EXIF", for = "unix" },
|
||||
]
|
||||
extract = [
|
||||
{ run = 'ya pub extract --list "$@"', desc = "Extract here", for = "unix" },
|
||||
{ run = 'ya pub extract --list %*', desc = "Extract here", for = "windows" },
|
||||
]
|
||||
play = [
|
||||
{ run = 'mpv --force-window "$@"', orphan = true, for = "unix" },
|
||||
{ run = 'mpv --force-window %*', orphan = true, for = "windows" },
|
||||
{ run = '''mediainfo "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show media info", for = "unix" },
|
||||
]
|
||||
|
||||
[open]
|
||||
rules = [
|
||||
# Folder
|
||||
{ name = "*/", use = [ "edit", "open", "reveal" ] },
|
||||
# Text
|
||||
{ mime = "text/*", use = [ "edit", "reveal" ] },
|
||||
# Image
|
||||
{ mime = "image/*", use = [ "open", "reveal" ] },
|
||||
# Media
|
||||
{ mime = "{audio,video}/*", use = [ "play", "reveal" ] },
|
||||
# Archive
|
||||
{ mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", use = [ "extract", "reveal" ] },
|
||||
# JSON
|
||||
{ mime = "application/{json,ndjson}", use = [ "edit", "reveal" ] },
|
||||
{ mime = "*/javascript", use = [ "edit", "reveal" ] },
|
||||
# Empty file
|
||||
{ mime = "inode/empty", use = [ "edit", "reveal" ] },
|
||||
# Fallback
|
||||
{ name = "*", use = [ "open", "reveal" ] },
|
||||
]
|
||||
|
||||
[tasks]
|
||||
micro_workers = 10
|
||||
macro_workers = 10
|
||||
bizarre_retry = 3
|
||||
image_alloc = 536870912 # 512MB
|
||||
image_bound = [ 0, 0 ]
|
||||
suppress_preload = false
|
||||
|
||||
[plugin]
|
||||
fetchers = [
|
||||
# Mimetype
|
||||
{ id = "mime", name = "*", run = "mime", prio = "high" },
|
||||
]
|
||||
z = "zoxide query {args}"
|
||||
spotters = [
|
||||
{ name = "*/", run = "folder" },
|
||||
# Code
|
||||
{ mime = "text/*", run = "code" },
|
||||
{ mime = "application/{mbox,javascript,wine-extension-ini}", run = "code" },
|
||||
# Image
|
||||
{ mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" },
|
||||
{ mime = "image/*", run = "image" },
|
||||
# Video
|
||||
{ mime = "video/*", run = "video" },
|
||||
# Fallback
|
||||
{ name = "*", run = "file" },
|
||||
]
|
||||
preloaders = [
|
||||
# Image
|
||||
{ mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" },
|
||||
{ mime = "image/*", run = "image" },
|
||||
# Video
|
||||
{ mime = "video/*", run = "video" },
|
||||
# PDF
|
||||
{ mime = "application/pdf", run = "pdf" },
|
||||
# Font
|
||||
{ mime = "font/*", run = "font" },
|
||||
{ mime = "application/ms-opentype", run = "font" },
|
||||
]
|
||||
previewers = [
|
||||
{ name = "*/", run = "folder", sync = true },
|
||||
# Code
|
||||
{ mime = "text/*", run = "code" },
|
||||
{ mime = "application/{mbox,javascript,wine-extension-ini}", run = "code" },
|
||||
# JSON
|
||||
{ mime = "application/{json,ndjson}", run = "json" },
|
||||
# Image
|
||||
{ mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" },
|
||||
{ mime = "image/*", run = "image" },
|
||||
# Video
|
||||
{ mime = "video/*", run = "video" },
|
||||
# PDF
|
||||
{ mime = "application/pdf", run = "pdf" },
|
||||
# Archive
|
||||
{ mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", run = "archive" },
|
||||
{ mime = "application/{debian*-package,redhat-package-manager,rpm,android.package-archive}", run = "archive" },
|
||||
{ name = "*.{AppImage,appimage}", run = "archive" },
|
||||
# Virtual Disk / Disk Image
|
||||
{ mime = "application/{iso9660-image,qemu-disk,ms-wim,apple-diskimage}", run = "archive" },
|
||||
{ mime = "application/virtualbox-{vhd,vhdx}", run = "archive" },
|
||||
{ name = "*.{img,fat,ext,ext2,ext3,ext4,squashfs,ntfs,hfs,hfsx}", run = "archive" },
|
||||
# Font
|
||||
{ mime = "font/*", run = "font" },
|
||||
{ mime = "application/ms-opentype", run = "font" },
|
||||
# Empty file
|
||||
{ mime = "inode/empty", run = "empty" },
|
||||
# Fallback
|
||||
{ name = "*", run = "file" },
|
||||
]
|
||||
|
||||
[input]
|
||||
cursor_blink = false
|
||||
|
||||
# cd
|
||||
cd_title = "Change directory:"
|
||||
cd_origin = "top-center"
|
||||
cd_offset = [ 0, 2, 50, 3 ]
|
||||
|
||||
# create
|
||||
create_title = [ "Create:", "Create (dir):" ]
|
||||
create_origin = "top-center"
|
||||
create_offset = [ 0, 2, 50, 3 ]
|
||||
|
||||
# rename
|
||||
rename_title = "Rename:"
|
||||
rename_origin = "hovered"
|
||||
rename_offset = [ 0, 1, 50, 3 ]
|
||||
|
||||
# filter
|
||||
filter_title = "Filter:"
|
||||
filter_origin = "top-center"
|
||||
filter_offset = [ 0, 2, 50, 3 ]
|
||||
|
||||
# find
|
||||
find_title = [ "Find next:", "Find previous:" ]
|
||||
find_origin = "top-center"
|
||||
find_offset = [ 0, 2, 50, 3 ]
|
||||
|
||||
# search
|
||||
search_title = "Search via {n}:"
|
||||
search_origin = "top-center"
|
||||
search_offset = [ 0, 2, 50, 3 ]
|
||||
|
||||
# shell
|
||||
shell_title = [ "Shell:", "Shell (block):" ]
|
||||
shell_origin = "top-center"
|
||||
shell_offset = [ 0, 2, 50, 3 ]
|
||||
|
||||
[confirm]
|
||||
# trash
|
||||
trash_title = "Trash {n} selected file{s}?"
|
||||
trash_origin = "center"
|
||||
trash_offset = [ 0, 0, 70, 20 ]
|
||||
|
||||
# delete
|
||||
delete_title = "Permanently delete {n} selected file{s}?"
|
||||
delete_origin = "center"
|
||||
delete_offset = [ 0, 0, 70, 20 ]
|
||||
|
||||
# overwrite
|
||||
overwrite_title = "Overwrite file?"
|
||||
overwrite_content = "Will overwrite the following file:"
|
||||
overwrite_origin = "center"
|
||||
overwrite_offset = [ 0, 0, 50, 15 ]
|
||||
|
||||
# quit
|
||||
quit_title = "Quit?"
|
||||
quit_content = "The following tasks are still running, are you sure you want to quit?"
|
||||
quit_origin = "center"
|
||||
quit_offset = [ 0, 0, 50, 15 ]
|
||||
|
||||
[pick]
|
||||
open_title = "Open with:"
|
||||
open_origin = "hovered"
|
||||
open_offset = [ 0, 1, 50, 7 ]
|
||||
|
||||
[which]
|
||||
sort_by = "none"
|
||||
sort_sensitive = false
|
||||
sort_reverse = false
|
||||
sort_translit = false
|
||||
222
yazi/.config/yazi/yazi.toml-1749058747498097
Normal file
@@ -0,0 +1,222 @@
|
||||
# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
|
||||
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
|
||||
"$schema" = "https://yazi-rs.github.io/schemas/yazi.json"
|
||||
|
||||
[manager]
|
||||
ratio = [ 1, 4, 3 ]
|
||||
sort_by = "alphabetical"
|
||||
sort_sensitive = false
|
||||
sort_reverse = false
|
||||
sort_dir_first = true
|
||||
sort_translit = false
|
||||
linemode = "none"
|
||||
show_hidden = true
|
||||
show_symlink = true
|
||||
scrolloff = 5
|
||||
mouse_events = [ "click", "scroll" ]
|
||||
title_format = "Yazi: {cwd}"
|
||||
|
||||
[preview]
|
||||
wrap = "no"
|
||||
tab_size = 2
|
||||
max_width = 600
|
||||
max_height = 900
|
||||
cache_dir = ""
|
||||
image_delay = 30
|
||||
image_filter = "triangle"
|
||||
image_quality = 75
|
||||
sixel_fraction = 15
|
||||
ueberzug_scale = 1
|
||||
ueberzug_offset = [ 0, 0, 0, 0 ]
|
||||
|
||||
[opener]
|
||||
edit = [
|
||||
{ run = '$EDITOR "$@"', desc = "$EDITOR", block = true, for = "unix" },
|
||||
{ run = 'code %*', orphan = true, desc = "code", for = "windows" },
|
||||
{ run = 'code -w %*', block = true, desc = "code (block)", for = "windows" },
|
||||
]
|
||||
open = [
|
||||
{ run = 'xdg-open "$1"', desc = "Open", for = "linux" },
|
||||
{ run = 'open "$@"', desc = "Open", for = "macos" },
|
||||
{ run = 'start "" "%1"', orphan = true, desc = "Open", for = "windows" },
|
||||
{ run = 'termux-open "$1"', desc = "Open", for = "android" },
|
||||
]
|
||||
reveal = [
|
||||
{ run = 'xdg-open "$(dirname "$1")"', desc = "Reveal", for = "linux" },
|
||||
{ run = 'open -R "$1"', desc = "Reveal", for = "macos" },
|
||||
{ run = 'explorer /select,"%1"', orphan = true, desc = "Reveal", for = "windows" },
|
||||
{ run = 'termux-open "$(dirname "$1")"', desc = "Reveal", for = "android" },
|
||||
{ run = '''exiftool "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show EXIF", for = "unix" },
|
||||
]
|
||||
extract = [
|
||||
{ run = 'ya pub extract --list "$@"', desc = "Extract here", for = "unix" },
|
||||
{ run = 'ya pub extract --list %*', desc = "Extract here", for = "windows" },
|
||||
]
|
||||
play = [
|
||||
{ run = 'mpv --force-window "$@"', orphan = true, for = "unix" },
|
||||
{ run = 'mpv --force-window %*', orphan = true, for = "windows" },
|
||||
{ run = '''mediainfo "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show media info", for = "unix" },
|
||||
]
|
||||
|
||||
[open]
|
||||
rules = [
|
||||
# Folder
|
||||
{ name = "*/", use = [ "edit", "open", "reveal" ] },
|
||||
# Text
|
||||
{ mime = "text/*", use = [ "edit", "reveal" ] },
|
||||
# Image
|
||||
{ mime = "image/*", use = [ "open", "reveal" ] },
|
||||
# Media
|
||||
{ mime = "{audio,video}/*", use = [ "play", "reveal" ] },
|
||||
# Archive
|
||||
{ mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", use = [ "extract", "reveal" ] },
|
||||
# JSON
|
||||
{ mime = "application/{json,ndjson}", use = [ "edit", "reveal" ] },
|
||||
{ mime = "*/javascript", use = [ "edit", "reveal" ] },
|
||||
# Empty file
|
||||
{ mime = "inode/empty", use = [ "edit", "reveal" ] },
|
||||
# Fallback
|
||||
{ name = "*", use = [ "open", "reveal" ] },
|
||||
]
|
||||
|
||||
[tasks]
|
||||
micro_workers = 10
|
||||
macro_workers = 10
|
||||
bizarre_retry = 3
|
||||
image_alloc = 536870912 # 512MB
|
||||
image_bound = [ 0, 0 ]
|
||||
suppress_preload = false
|
||||
|
||||
[plugin]
|
||||
fetchers = [
|
||||
# Mimetype
|
||||
{ id = "mime", name = "*", run = "mime", prio = "high" },
|
||||
]
|
||||
z = "zoxide query {args}"
|
||||
spotters = [
|
||||
{ name = "*/", run = "folder" },
|
||||
# Code
|
||||
{ mime = "text/*", run = "code" },
|
||||
{ mime = "application/{mbox,javascript,wine-extension-ini}", run = "code" },
|
||||
# Image
|
||||
{ mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" },
|
||||
{ mime = "image/*", run = "image" },
|
||||
# Video
|
||||
{ mime = "video/*", run = "video" },
|
||||
# Fallback
|
||||
{ name = "*", run = "file" },
|
||||
]
|
||||
preloaders = [
|
||||
# Image
|
||||
{ mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" },
|
||||
{ mime = "image/*", run = "image" },
|
||||
# Video
|
||||
{ mime = "video/*", run = "video" },
|
||||
# PDF
|
||||
{ mime = "application/pdf", run = "pdf" },
|
||||
# Font
|
||||
{ mime = "font/*", run = "font" },
|
||||
{ mime = "application/ms-opentype", run = "font" },
|
||||
]
|
||||
previewers = [
|
||||
{ name = "*/", run = "folder", sync = true },
|
||||
# Code
|
||||
{ mime = "text/*", run = "code" },
|
||||
{ mime = "application/{mbox,javascript,wine-extension-ini}", run = "code" },
|
||||
# JSON
|
||||
{ mime = "application/{json,ndjson}", run = "json" },
|
||||
# Image
|
||||
{ mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" },
|
||||
{ mime = "image/*", run = "image" },
|
||||
# Video
|
||||
{ mime = "video/*", run = "video" },
|
||||
# PDF
|
||||
{ mime = "application/pdf", run = "pdf" },
|
||||
# Archive
|
||||
{ mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", run = "archive" },
|
||||
{ mime = "application/{debian*-package,redhat-package-manager,rpm,android.package-archive}", run = "archive" },
|
||||
{ name = "*.{AppImage,appimage}", run = "archive" },
|
||||
# Virtual Disk / Disk Image
|
||||
{ mime = "application/{iso9660-image,qemu-disk,ms-wim,apple-diskimage}", run = "archive" },
|
||||
{ mime = "application/virtualbox-{vhd,vhdx}", run = "archive" },
|
||||
{ name = "*.{img,fat,ext,ext2,ext3,ext4,squashfs,ntfs,hfs,hfsx}", run = "archive" },
|
||||
# Font
|
||||
{ mime = "font/*", run = "font" },
|
||||
{ mime = "application/ms-opentype", run = "font" },
|
||||
# Empty file
|
||||
{ mime = "inode/empty", run = "empty" },
|
||||
# Fallback
|
||||
{ name = "*", run = "file" },
|
||||
]
|
||||
|
||||
[input]
|
||||
cursor_blink = false
|
||||
|
||||
# cd
|
||||
cd_title = "Change directory:"
|
||||
cd_origin = "top-center"
|
||||
cd_offset = [ 0, 2, 50, 3 ]
|
||||
|
||||
# create
|
||||
create_title = [ "Create:", "Create (dir):" ]
|
||||
create_origin = "top-center"
|
||||
create_offset = [ 0, 2, 50, 3 ]
|
||||
|
||||
# rename
|
||||
rename_title = "Rename:"
|
||||
rename_origin = "hovered"
|
||||
rename_offset = [ 0, 1, 50, 3 ]
|
||||
|
||||
# filter
|
||||
filter_title = "Filter:"
|
||||
filter_origin = "top-center"
|
||||
filter_offset = [ 0, 2, 50, 3 ]
|
||||
|
||||
# find
|
||||
find_title = [ "Find next:", "Find previous:" ]
|
||||
find_origin = "top-center"
|
||||
find_offset = [ 0, 2, 50, 3 ]
|
||||
|
||||
# search
|
||||
search_title = "Search via {n}:"
|
||||
search_origin = "top-center"
|
||||
search_offset = [ 0, 2, 50, 3 ]
|
||||
|
||||
# shell
|
||||
shell_title = [ "Shell:", "Shell (block):" ]
|
||||
shell_origin = "top-center"
|
||||
shell_offset = [ 0, 2, 50, 3 ]
|
||||
|
||||
[confirm]
|
||||
# trash
|
||||
trash_title = "Trash {n} selected file{s}?"
|
||||
trash_origin = "center"
|
||||
trash_offset = [ 0, 0, 70, 20 ]
|
||||
|
||||
# delete
|
||||
delete_title = "Permanently delete {n} selected file{s}?"
|
||||
delete_origin = "center"
|
||||
delete_offset = [ 0, 0, 70, 20 ]
|
||||
|
||||
# overwrite
|
||||
overwrite_title = "Overwrite file?"
|
||||
overwrite_content = "Will overwrite the following file:"
|
||||
overwrite_origin = "center"
|
||||
overwrite_offset = [ 0, 0, 50, 15 ]
|
||||
|
||||
# quit
|
||||
quit_title = "Quit?"
|
||||
quit_content = "The following tasks are still running, are you sure you want to quit?"
|
||||
quit_origin = "center"
|
||||
quit_offset = [ 0, 0, 50, 15 ]
|
||||
|
||||
[pick]
|
||||
open_title = "Open with:"
|
||||
open_origin = "hovered"
|
||||
open_offset = [ 0, 1, 50, 7 ]
|
||||
|
||||
[which]
|
||||
sort_by = "none"
|
||||
sort_sensitive = false
|
||||
sort_reverse = false
|
||||
sort_translit = false
|
||||
1
yazi/.stow-local-ignore
Normal file
@@ -0,0 +1 @@
|
||||
\.config/yazi/plugins
|
||||
123
zsh/.zshrc
Normal file
@@ -0,0 +1,123 @@
|
||||
# NO FUCKING BEEP
|
||||
unsetopt BEEP
|
||||
|
||||
# Run pywal only on WSL
|
||||
if grep -qE "(Microsoft|WSL)" /proc/version &> /dev/null && [ -z "$TMUX" ]; then
|
||||
cat ~/.cache/wal/sequences
|
||||
clear
|
||||
fi
|
||||
|
||||
# hledger
|
||||
export LEDGER_FILE=~/ExoKortex/2-Areas/Finances/finance_vault/tpouplier.hledger
|
||||
|
||||
# emacs client
|
||||
alias emacs="emacsclient -c -a emacs"
|
||||
|
||||
# Opencode
|
||||
alias oc="opencode"
|
||||
|
||||
# Yazi
|
||||
alias y="yazi"
|
||||
function yy() {
|
||||
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
|
||||
yazi "$@" --cwd-file="$tmp"
|
||||
if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
|
||||
cd -- "$cwd"
|
||||
fi
|
||||
rm -f -- "$tmp"
|
||||
}
|
||||
|
||||
# nvim
|
||||
export LANG=en_CA.UTF-8
|
||||
export LC_ALL=en_CA.UTF-8
|
||||
export EDITOR="nvim"
|
||||
|
||||
# Set up fzf key bindings and fuzzy completion
|
||||
source <(fzf --zsh)
|
||||
|
||||
# Capitalization fixing in tab completion
|
||||
autoload -Uz compinit && compinit
|
||||
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
|
||||
|
||||
# bat
|
||||
alias cat=bat
|
||||
|
||||
# aichat
|
||||
alias ai="aichat"
|
||||
alias aido="aichat -e"
|
||||
aitts() {
|
||||
paplay --raw --rate=22050 --format=s16le --channels=1 <(aichat "Answer only with speech. Your answer will be read outlound. No title, no bold or no special character. Only the short and direct answer. $*" | piper-tts --model en_US-amy-medium.onnx --output-raw)
|
||||
}
|
||||
# tmux
|
||||
alias t='tmux attach || tmux new'
|
||||
|
||||
# Docker
|
||||
alias dco="docker compose"
|
||||
alias dps="docker ps"
|
||||
alias dpa="docker ps -a"
|
||||
alias dl="docker ps -l -q"
|
||||
alias dx="docker exec -it"
|
||||
|
||||
# cd
|
||||
alias ..="cd .."
|
||||
alias ...="cd ../.."
|
||||
alias ....="cd ../../.."
|
||||
alias .....="cd ../../../.."
|
||||
alias ......="cd ../../../../.."
|
||||
|
||||
# Git
|
||||
alias gc="git commit -m"
|
||||
alias gca="git commit -a -m"
|
||||
alias gp="git push origin HEAD"
|
||||
alias gpu="git pull origin"
|
||||
alias gst="git status"
|
||||
alias glog="git log --graph --topo-order --pretty='%w(100,0,6)%C(yellow)%h%C(bold)%C(black)%d %C(cyan)%ar %C(green)%an%n%C(bold)%C(white)%s %N' --abbrev-commit"
|
||||
alias gdiff="git diff"
|
||||
alias gco="git checkout"
|
||||
alias gb='git branch'
|
||||
alias gba='git branch -a'
|
||||
alias gadd='git add'
|
||||
alias ga='git add -p'
|
||||
alias gcoall='git checkout -- .'
|
||||
alias gr='git remote'
|
||||
alias gre='git reset'
|
||||
alias gcl='git clone'
|
||||
|
||||
# lazygit
|
||||
alias lg="lazygit"
|
||||
|
||||
# NVIM
|
||||
alias v="nvim"
|
||||
|
||||
# Eza
|
||||
alias l="eza -l --icons --git -a"
|
||||
alias lt="eza --tree --level=2 --icons --git"
|
||||
alias ltree="eza --tree --level=2 --long --icons --git"
|
||||
|
||||
# navigation
|
||||
function cx() { cd "$@" && l; }
|
||||
function fcd() { cd "$(find . -type d -not -path '' | fzf)" && l; }
|
||||
#function f() { echo "$(find . -type f -not -path '*/.*' | fzf)" | pbcopy }
|
||||
function fv() { nvim "$(find . -type f -not -path '*/.*' | fzf)" }
|
||||
|
||||
# Command history
|
||||
HISTFILE=~/.zsh_history
|
||||
HISTSIZE=10000
|
||||
SAVEHIST=10000
|
||||
setopt appendhistory
|
||||
|
||||
# Starship
|
||||
eval "$(starship init zsh)"
|
||||
|
||||
# Zoxide
|
||||
eval "$(zoxide init zsh)"
|
||||
|
||||
# hyprshot
|
||||
export HYPRSHOT_DIR="Images"
|
||||
|
||||
# direnv
|
||||
# eval "$(direnv hook zsh)"
|
||||
|
||||
# Atuin
|
||||
#eval "$(atuin init zsh)"
|
||||
|
||||