Compare commits

...

23 Commits

Author SHA1 Message Date
3101834051 Update generated emacs config 2026-03-07 18:36:36 -05:00
8ddcf1de22 Various emacs config uddates 2026-03-07 18:33:12 -05:00
15e62ed479 Markdown emacs setup 2026-03-07 18:30:35 -05:00
a8315e32f1 UI amelioration 2026-03-07 18:11:50 -05:00
9cb17ede39 New recording app 2026-03-07 18:08:45 -05:00
cd60b775f5 Nicer windows spacing for hyprland 2026-03-07 18:02:01 -05:00
da85946d6a zsh pipx path 2026-03-07 17:59:01 -05:00
24fcd48036 btop config update 2026-03-07 17:58:17 -05:00
ddbc923314 Fixed multi blocker end time. WIP on broken elgantt 2026-02-11 16:46:03 -05:00
dfef1e6dfa Working blocker 2026-02-09 17:22:28 -05:00
6939353f9c Committing before i loose it again! 2026-02-09 14:57:11 -05:00
28abca7572 WIP range for task instead of scheduled + ranges
This is to fix the double entry in the agenda.
One for the scheduled + one for the range.
We want only the range. But right now the code duplicate
Ranges and PROPERTIES drawer.
2026-02-05 10:22:28 -05:00
6d8a621b07 Big dump commit 2026-01-29 17:34:47 -05:00
0573abe905 Added a readme 2025-09-20 17:13:31 -04:00
abaa3e2271 Added some small text 2025-09-20 17:05:50 -04:00
230cb70257 Old stuff. someday maybe useful. 2025-09-20 14:50:33 -04:00
6091576170 rclone setup for ftp server 2025-09-20 14:49:22 -04:00
0c1a801a17 waybar config 2025-09-20 14:47:46 -04:00
468cbe649b wireplumber wip for stt audio sink 2025-09-20 14:46:13 -04:00
bf035507f6 wofi config 2025-09-20 14:45:19 -04:00
c214976757 yazi config 2025-09-20 14:45:02 -04:00
03cadb8ea5 zsh config 2025-09-20 14:44:48 -04:00
93f110a501 ansible wip 2025-09-20 14:44:26 -04:00
41 changed files with 4973 additions and 765 deletions

26
README.org Normal file
View File

@@ -0,0 +1,26 @@
:PROPERTIES:
:ID: 75f35b3b-f46f-42b6-ac4b-3988f15c46e1
:END:
#+title: Gortium Dotfiles
#+subtitle: My attempt at having my computer do what I want, the way I want it.
* Welcome
I use stow to deploy all this to where it need to go (mostly ~/.confg).
* Apps
** nvim
** emacs (Doom)
** btop
** hyprland
** kitty
** rclone
** starship
** tmux
** waybar
** Wireplumber
** wofi
** yazi
** zsh
* Archives
** I3
** Terminator

177
ansible.yml Normal file
View 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
View 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
View 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 doesnt 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 windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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

View File

@@ -1,18 +1,18 @@
#? Config file for btop v. 1.4.4 #? Config file for btop v.1.4.6
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. #* 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" #* 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" 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. #* If the theme set background should be shown, set to False if you want terminal background transparency.
theme_background = False theme_background = false
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. #* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
truecolor = True truecolor = true
#* Set to true to force tty mode regardless if a real tty has been detected or not. #* 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. #* 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 force_tty = false
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. #* 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. #* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
@@ -22,10 +22,13 @@ presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:defaul
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. #* 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. #* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
vim_keys = True vim_keys = true
#* Rounded corners on boxes, is ignored if TTY mode is ON. #* Rounded corners on boxes, is ignored if TTY mode is ON.
rounded_corners = True rounded_corners = true
#* Use terminal synchronized output sequences to reduce flickering on supported terminals.
terminal_sync = true
#* Default symbols to use for graph creation, "braille", "block" or "tty". #* Default symbols to use for graph creation, "braille", "block" or "tty".
#* "braille" offers the highest resolution but might not be included in all fonts. #* "braille" offers the highest resolution but might not be included in all fonts.
@@ -60,37 +63,40 @@ update_ms = 2000
proc_sorting = "cpu lazy" proc_sorting = "cpu lazy"
#* Reverse sorting order, True or False. #* Reverse sorting order, True or False.
proc_reversed = False proc_reversed = false
#* Show processes as a tree. #* Show processes as a tree.
proc_tree = True proc_tree = true
#* Use the cpu graph colors in the process list. #* Use the cpu graph colors in the process list.
proc_colors = True proc_colors = true
#* Use a darkening gradient in the process list. #* Use a darkening gradient in the process list.
proc_gradient = True proc_gradient = true
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power. #* 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 proc_per_core = true
#* Show process memory as bytes instead of percent. #* Show process memory as bytes instead of percent.
proc_mem_bytes = True proc_mem_bytes = true
#* Show cpu graph for each process. #* Show cpu graph for each process.
proc_cpu_graphs = True proc_cpu_graphs = true
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) #* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
proc_info_smaps = False proc_info_smaps = false
#* Show proc box on left side of screen instead of right. #* Show proc box on left side of screen instead of right.
proc_left = False proc_left = false
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). #* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
proc_filter_kernel = False proc_filter_kernel = false
#* In tree-view, always accumulate child process resources in the parent process. #* In tree-view, always accumulate child process resources in the parent process.
proc_aggregate = True proc_aggregate = true
#* Should cpu and memory usage display be preserved for dead processes when paused.
keep_dead_proc_usage = false
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. #* 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. #* Select from a list of detected attributes from the options menu.
@@ -104,25 +110,28 @@ cpu_graph_lower = "Auto"
show_gpu_info = "Auto" show_gpu_info = "Auto"
#* Toggles if the lower CPU graph should be inverted. #* Toggles if the lower CPU graph should be inverted.
cpu_invert_lower = True cpu_invert_lower = true
#* Set to True to completely disable the lower CPU graph. #* Set to True to completely disable the lower CPU graph.
cpu_single_graph = False cpu_single_graph = false
#* Show cpu box at bottom of screen instead of top. #* Show cpu box at bottom of screen instead of top.
cpu_bottom = False cpu_bottom = false
#* Shows the system uptime in the CPU box. #* Shows the system uptime in the CPU box.
show_uptime = True show_uptime = true
#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
show_cpu_watts = true
#* Show cpu temperature. #* Show cpu temperature.
check_temp = True check_temp = true
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. #* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
cpu_sensor = "Auto" cpu_sensor = "Auto"
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found. #* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
show_coretemp = True show_coretemp = true
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. #* 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. #* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
@@ -134,17 +143,20 @@ cpu_core_map = ""
temp_scale = "celsius" temp_scale = "celsius"
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. #* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
base_10_sizes = False base_10_sizes = false
#* Show CPU frequency. #* Show CPU frequency.
show_cpu_freq = True show_cpu_freq = true
#* How to calculate CPU frequency, available values: "first", "range", "lowest", "highest" and "average".
freq_mode = "first"
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable. #* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime #* Special formatting: /host = hostname | /user = username | /uptime = system uptime
clock_format = "%X" 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. #* 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 background_update = true
#* Custom cpu model name, empty string to disable. #* Custom cpu model name, empty string to disable.
custom_cpu_name = "" custom_cpu_name = ""
@@ -154,43 +166,43 @@ custom_cpu_name = ""
disks_filter = "" disks_filter = ""
#* Show graphs instead of meters for memory values. #* Show graphs instead of meters for memory values.
mem_graphs = True mem_graphs = true
#* Show mem box below net box instead of above. #* Show mem box below net box instead of above.
mem_below_net = True mem_below_net = true
#* Count ZFS ARC in cached and available memory. #* Count ZFS ARC in cached and available memory.
zfs_arc_cached = True zfs_arc_cached = true
#* If swap memory should be shown in memory box. #* If swap memory should be shown in memory box.
show_swap = True show_swap = true
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. #* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
swap_disk = True swap_disk = true
#* If mem box should be split to also show disks info. #* If mem box should be split to also show disks info.
show_disks = True show_disks = true
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. #* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
only_physical = True only_physical = true
#* Read disks list from /etc/fstab. This also disables only_physical. #* Read disks list from /etc/fstab. This also disables only_physical.
use_fstab = True use_fstab = true
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) #* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
zfs_hide_datasets = False zfs_hide_datasets = false
#* Set to true to show available disk space for privileged users. #* Set to true to show available disk space for privileged users.
disk_free_priv = False disk_free_priv = false
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. #* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
show_io_stat = True show_io_stat = true
#* Toggles io mode for disks, showing big graphs for disk read/write speeds. #* Toggles io mode for disks, showing big graphs for disk read/write speeds.
io_mode = False io_mode = false
#* Set to True to show combined read/write io graphs in io mode. #* Set to True to show combined read/write io graphs in io mode.
io_graph_combined = False 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 " ". #* 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". #* Example: "/mnt/media:100 /:20 /boot:1".
@@ -202,10 +214,10 @@ net_download = 100
net_upload = 100 net_upload = 100
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. #* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
net_auto = True net_auto = true
#* Sync the auto scaling for download and upload to whichever currently has the highest scale. #* Sync the auto scaling for download and upload to whichever currently has the highest scale.
net_sync = True net_sync = true
#* Starts with the Network Interface specified here. #* Starts with the Network Interface specified here.
net_iface = "" net_iface = ""
@@ -214,26 +226,32 @@ net_iface = ""
base_10_bitrate = "Auto" base_10_bitrate = "Auto"
#* Show battery stats in top right if battery is present. #* Show battery stats in top right if battery is present.
show_battery = True show_battery = true
#* Which battery to use if multiple are present. "Auto" for auto detection. #* Which battery to use if multiple are present. "Auto" for auto detection.
selected_battery = "Auto" selected_battery = "Auto"
#* Show power stats of battery next to charge indicator. #* Show power stats of battery next to charge indicator.
show_battery_watts = True show_battery_watts = true
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". #* Set loglevel for "~/.local/state/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. #* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
log_level = "WARNING" log_level = "WARNING"
#* Automatically save current settings to config file on exit.
save_config_on_exit = true
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. #* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
nvml_measure_pcie_speeds = True nvml_measure_pcie_speeds = true
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards. #* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
rsmi_measure_pcie_speeds = True rsmi_measure_pcie_speeds = true
#* Horizontally mirror the GPU graph. #* Horizontally mirror the GPU graph.
gpu_mirror_graph = True gpu_mirror_graph = true
#* Set which GPU vendors to show. Available values are "nvidia amd intel"
shown_gpus = "nvidia amd intel"
#* Custom gpu0 model name, empty string to disable. #* Custom gpu0 model name, empty string to disable.
custom_gpu_name0 = "" custom_gpu_name0 = ""

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -53,7 +53,8 @@
zen ; distraction-free coding or writing zen ; distraction-free coding or writing
:editor :editor
(evil +everywhere); come to the dark side, we have cookies (evil +everywhere
+numbers); come to the dark side, we have cookies
file-templates ; auto-snippets for empty files file-templates ; auto-snippets for empty files
fold ; (nigh) universal code folding fold ; (nigh) universal code folding
(format +onsave) ; automated prettiness (format +onsave) ; automated prettiness
@@ -70,7 +71,8 @@
(dired +dirvish + icons) ; making dired pretty [functional] (dired +dirvish + icons) ; making dired pretty [functional]
electric ; smarter, keyword-based electric-indent electric ; smarter, keyword-based electric-indent
eww ; the internet is gross eww ; the internet is gross
;;ibuffer ; interactive buffer management
(ibuffer +icons) ; interactive buffer management
undo ; persistent, smarter undo for your inevitable mistakes undo ; persistent, smarter undo for your inevitable mistakes
vc ; version-control and Emacs, sitting in a tree vc ; version-control and Emacs, sitting in a tree
@@ -109,7 +111,7 @@
:os :os
(:if (featurep :system 'macos) macos) ; improve compatibility with macOS (:if (featurep :system 'macos) macos) ; improve compatibility with macOS
;;tty ; improve the terminal Emacs experience tty ; improve the terminal Emacs experience
:lang :lang
;;agda ; types of types of types of types... ;;agda ; types of types of types of types...
@@ -148,7 +150,9 @@
;;lean ; for folks with too much to prove ;;lean ; for folks with too much to prove
ledger ; be audit you can be ledger ; be audit you can be
lua ; one-based indices? one-based indices lua ; one-based indices? one-based indices
markdown ; writing docs for people to ignore (markdown ; writing docs for people to ignore
+grip
+tree-sitter)
;;nim ; python + lisp at the speed of c ;;nim ; python + lisp at the speed of c
(nix ; I hereby declare "nix geht mehr!" (nix ; I hereby declare "nix geht mehr!"
+lsp +lsp
@@ -179,7 +183,9 @@
(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() (rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
;;scala ; java, but good ;;scala ; java, but good
;;(scheme +guile) ; a fully conniving family of lisps ;;(scheme +guile) ; a fully conniving family of lisps
sh ; she sells {ba,z,fi}sh shells on the C xor (sh ; she sells {ba,z,fi}sh shells on the C xor
+lsp
+powershell)
;;sml ;;sml
;;solidity ; do you need a blockchain? No. ;;solidity ; do you need a blockchain? No.
;;swift ; who asked for emoji variables? ;;swift ; who asked for emoji variables?

View File

@@ -52,6 +52,9 @@
;; Open-With behavior ;; Open-With behavior
(package! openwith) (package! openwith)
;; Org-Superstart-mode
;; (package! org-superstar)
;; Drag-stuff with alt-jk ;; Drag-stuff with alt-jk
(package! drag-stuff) (package! drag-stuff)
@@ -100,27 +103,43 @@
(package! peg) (package! peg)
(package! citeproc) (package! citeproc)
;; For lifeOS
(package! json-rpc)
;; (package! emigo :recipe ;; (package! emigo :recipe
;; (:host github ;; (:host github
;; :repo "MatthewZMD/emigo" :files (:defaults "*.py" "*.el") ;; :repo "MatthewZMD/emigo" :files (:defaults "*.py" "*.el")
;; ) ;; )
;; ) ;; )
;; (package! image-roll :recipe ;;
;; (:host github (package! image-roll :recipe
;; :repo "dalanicolai/image-roll.el")) (:host github
:repo "dalanicolai/image-roll.el"
:protocol ssh))
;; (package! org-edna) (package! org-edna)
;; elgant dependencies bellow:
(package! org-ql)
(package! ts)
(package! s)
(package! dash)
(package! elgantt
:recipe (:host github :repo "legalnonsense/elgantt"))
(package! age) (package! age)
(package! ultra-scroll
:recipe (:host github :repo "jdtsmith/ultra-scroll" :protocol ssh))
(package! passage (package! passage
:recipe (:host github :repo "anticomputer/passage.el" :protocol ssh)) :recipe (:host github :repo "anticomputer/passage.el" :protocol ssh))
(package! krl-mode ;; Server is down, deactivated for now
:recipe (:host nil ;; (package! krl-mode
:repo "ssh://code.lazyworkhorse.net:2222/gortium/krl-mode.git" ;; :recipe (:host nil
:files ("*.el"))) ;; :repo "ssh://code.lazyworkhorse.net:2222/gortium/krl-mode.git"
;; :files ("*.el")))
(package! auto-highlight-symbol) (package! auto-highlight-symbol)
@@ -128,6 +147,8 @@
(package! all-the-icons) (package! all-the-icons)
(package! magit-gptcommit)
;; To install a package directly from a remote git repo, you must specify a ;; To install a package directly from a remote git repo, you must specify a
;; ``:recipe' accepts here: ;; ``:recipe' accepts here:
;; https://github.com/radian-software/straight.el#the-recipe-format ;; https://github.com/radian-software/straight.el#the-recipe-format

View File

@@ -14,6 +14,12 @@ source = ~/.cache/wal/colors-hyprland.conf
### MONITORS ### ### MONITORS ###
################ ################
$LAPTOP=eDP-1
$EXTERNAL_L1=DP-4
$EXTERNAL_R1=DP-5
$EXTERNAL_L2=DP-6
$EXTERNAL_R2=DP-7
# See https://wiki.hyprland.org/Configuring/Monitors/ # See https://wiki.hyprland.org/Configuring/Monitors/
# Useful command: # Useful command:
# hyprctl monitors all # hyprctl monitors all
@@ -21,7 +27,7 @@ source = ~/.cache/wal/colors-hyprland.conf
# monitor=eDP-1,highres,auto,2 #3200x1800,0x0,2 # monitor=eDP-1,highres,auto,2 #3200x1800,0x0,2
# monitor=HDMI-A-2,2560x1600,auto,1 #1600x0,1 #x-370,1,transform,1 # monitor=HDMI-A-2,2560x1600,auto,1 #1600x0,1 #x-370,1,transform,1
## Ingenuity setup ## Ingenuity setup
monitor=eDP-1,1920x1080,0x0,1 monitor=$LAPTOP, 1920x1080, 0x0, 1
monitor=DP-3, 1920x1080, 1920x0, 1 # HDMI screen monitor=DP-3, 1920x1080, 1920x0, 1 # HDMI screen
# Horizontal setup # Horizontal setup
#monitor=DP-4,1920x1080,-960x-1080,1 # Left screen #monitor=DP-4,1920x1080,-960x-1080,1 # Left screen
@@ -29,10 +35,10 @@ monitor=DP-3,1920x1080,1920x0,1 # HDMI screen
#monitor=DP-5,1920x1080,960x-1080,1 # Right screen #monitor=DP-5,1920x1080,960x-1080,1 # Right screen
#monitor=DP-7,1920x1080,960x-1080,1 # Right screen #monitor=DP-7,1920x1080,960x-1080,1 # Right screen
# Vertical setup # Vertical setup
monitor=DP-4,1920x1080,0x-1080,1,transform,0 # Left screen monitor=$EXTERNAL_L1, 1920x1080, 0x-1080, 1, transform, 0 # Left screen
monitor=DP-6,1920x1080,0x-1080,1,transform,0 # Left screen monitor=$EXTERNAL_L2, 1920x1080,0x-1080,1,transform,0 # Left screen
monitor=DP-5,1920x1080,1920x-1480,1,transform,1 # Right screen monitor=$EXTERNAL_R1, 1920x1080, 1920x-1480, 1, transform, 1 # Right screen
monitor=DP-7,1920x1080,1920x-1480,1,transform,1 # Right screen monitor=$EXTERNAL_R2, 1920x1080,1920x-1480,1,transform,1 # Right screen
################### ###################
### MY PROGRAMS ### ### MY PROGRAMS ###
@@ -42,7 +48,7 @@ monitor=DP-7,1920x1080,1920x-1480,1,transform,1 # Right screen
# Set programs that you use # Set programs that you use
$terminal = kitty $terminal = kitty
$fileManager = emacsclient -c -a emacs --eval '(dirvish "$HOME")' $editor = emacsclient -c -a emacs
$menu = wofi --show drun $menu = wofi --show drun
$zen = zen-browser $zen = zen-browser
$music = kitty ncspot $music = kitty ncspot
@@ -61,6 +67,11 @@ exec = hyprshade auto
exec-once = udiskie exec-once = udiskie
exec-once = waybar exec-once = waybar
exec-once = swww-daemon exec-once = swww-daemon
exec-once = swww img ~/.config/wallpapers/green_yellow_forest.jpg --outputs $LAPTOP
exec-once = swww img ~/.config/wallpapers/green_yellow_forest.jpg --outputs $EXTERNAL_L1
exec-once = swww img ~/.config/wallpapers/green_yellow_forest.jpg --outputs $EXTERNAL_L2
exec-once = swww img ~/.config/wallpapers/buck_head.jpg --outputs $EXTERNAL_R1
exec-once = swww img ~/.config/wallpapers/buck_head.jpg --outputs $EXTERNAL_R2
exec-once = swaync exec-once = swaync
exec-once = hypridle exec-once = hypridle
exec-once = hyprlock exec-once = hyprlock
@@ -90,8 +101,8 @@ env = WLR_RENDERER_ALLOW_SOFTWARE,1
# https://wiki.hyprland.org/Configuring/Variables/#general # https://wiki.hyprland.org/Configuring/Variables/#general
general { general {
gaps_in = 4.5 gaps_in = 7.5
gaps_out = 9 gaps_out = 15
border_size = 2 border_size = 2
@@ -115,16 +126,6 @@ decoration {
# Change transparency of focused and unfocused windows # Change transparency of focused and unfocused windows
active_opacity = 0.9 active_opacity = 0.9
inactive_opacity = 0.75 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 # https://wiki.hyprland.org/Configuring/Variables/#animations
@@ -135,19 +136,24 @@ animations {
bezier = myBezier, 0.05, 0.9, 0.1, 1.05 bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 2, myBezier animation = windows, 1, 1.6, myBezier
animation = windowsOut, 1, 2, default, popin 80% animation = windowsOut, 1, 1.6, default, popin 80%
animation = border, 1, 2, default animation = border, 1, 1.6, default
animation = borderangle, 1, 2, default animation = borderangle, 1, 1.6, default
animation = fade, 1, 2, default animation = fade, 1, 1.6, default
animation = workspaces, 1, 2, default animation = workspaces, 1, 1.6, default
animation = specialWorkspace, 1, 2, myBezier, slidefadevert -10% animation = specialWorkspace, 1, 1.6, myBezier, slidefadevert -10%
} }
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle { dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
# This prevents the layout from collapsing if you close one window
preserve_split = true # You probably want this preserve_split = true # You probably want this
# 0 -> follow mouse, 1 -> always left/top, 2 -> always right/bottom
force_split = 2
} }
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
@@ -207,9 +213,9 @@ $mainMod = SUPER # Sets "Windows" key as main modifier
bind = $mainMod, T, exec, $terminal bind = $mainMod, T, exec, $terminal
bind = $mainMod, D, killactive, bind = $mainMod, D, killactive,
bind = $mainMod SHIFT, Q, exit, bind = $mainMod SHIFT, Q, exit,
bind = $mainMod, U, exec, ~/ExoKortex/2-Areas/IT/config/scripts/make_all.sh bind = $mainMod, U, exec, ~/ExoKortex/2-Areas/IT/dotfiles/scripts/make_all.sh
bind = $mainMod, M, exec, $monitoring bind = $mainMod, M, exec, $monitoring
bind = $mainMod, W, exec, $fileManager bind = $mainMod, E, exec, $editor
bind = $mainMod, V, togglefloating, bind = $mainMod, V, togglefloating,
bind = $mainMod, R, exec, $menu bind = $mainMod, R, exec, $menu
bind = $mainMod, Z, exec, $zen bind = $mainMod, Z, exec, $zen
@@ -218,10 +224,10 @@ bind = $mainMod, P, togglesplit, # dwindle
bind = $mainMod, N, movecurrentworkspacetomonitor, -1 bind = $mainMod, N, movecurrentworkspacetomonitor, -1
bind = $mainMod SHIFT, N, movecurrentworkspacetomonitor, +1 bind = $mainMod SHIFT, N, movecurrentworkspacetomonitor, +1
bind = $mainMod, X, swapwindow bind = $mainMod, X, swapwindow
bind = $mainMod, B, exec, nerd-dictation begin bind = $mainMod, B, exec, python /home/tpouplier/ExoKortex/1-Projects/Perso/recordntrans/record_transcribe.py
bind = $mainMod, G, exec, nerd-dictation end # bind = $mainMod, G, exec, nerd-dictation end
bind = $mainMod, A, exec, $music bind = $mainMod, A, exec, $music
#
# Full screen # Full screen
bind = SUPER, F, fullscreen bind = SUPER, F, fullscreen
@@ -286,8 +292,8 @@ bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10 bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Example special workspace (scratchpad) # Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic bind = $mainMod, S, togglespecialworkspace, tools
bind = $mainMod SHIFT, S, movetoworkspace, special:magic bind = $mainMod SHIFT, S, movetoworkspace, special:tools
# Scroll through existing workspaces with mainMod + scroll # Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_down, workspace, e+1
@@ -312,8 +318,12 @@ bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous bindl = , XF86AudioPrev, exec, playerctl previous
# Emacs-everywhere # Emacs-everywhere
bind = $mainMod, E, exec, emacsclient --eval '(thanos/type)' bind = $mainMod, W, exec, emacsclient --eval '(thanos/type)'
windowrulev2 = float,title:^(emacs-float)$ windowrule {
name = float-emacs
match:title = ^emacs-float$
float = true
}
# Play/Pause # Play/Pause
# bind = $mainMod, P, exec, playerctl play-pause # bind = $mainMod, P, exec, playerctl play-pause
@@ -344,13 +354,26 @@ windowrulev2 = float,title:^(emacs-float)$
# windowrule = float, ^(kitty)$ # windowrule = float, ^(kitty)$
# Example windowrule v2 # Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # windowrule = float,class:^(kitty)$,title:^(kitty)$
# Ignore maximize requests from apps. You'll probably like this. # Ignore maximize requests from apps. You'll probably like this.
windowrulev2 = suppressevent maximize, class:.* windowrule {
name = suppress-maximize-events
match:class = .*
suppress_event = maximize
}
# Fix some dragging issues with XWayland # Fix some dragging issues with XWayland
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 windowrule {
name = nofocus-xwayland-float
match:class = ^$
match:title = ^$
match:xwayland = true
match:float = true
match:fullscreen = false
match:pin = false
no_focus = true
}
workspace = 1, name:short-1, monitor:DP-4 # Left screen workspace = 1, name:short-1, monitor:DP-4 # Left screen
workspace = 2, name:short-2, monitor:DP-4 # Left screen workspace = 2, name:short-2, monitor:DP-4 # Left screen
@@ -358,4 +381,42 @@ workspace = 3, name:long-1, monitor:DP-5 # Right screen
workspace = 4, name:long-2, 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 = 5, name:smoll, monitor:eDP-1 # Laptop screen
#workspace = 4, name:windows, monitor:DP-4, on-created-empty:VBoxManage startvm "Windows 11" #workspace = 4, name:windows, monitor:DP-4, on-created-empty:VBoxManage startvm "Windows 11"
#workspace = special:scratchpad, on-created-empty:kitty workspace = special:tools, layout:dwindle, gapsin:0
# Top Left: btop
windowrule {
name = dashboard-btop
match:class = ^(btop)$
tile = true
workspace = special:tools
}
# Top Right: ncspot
windowrule {
name = dashboard-ncspot
match:class = ^(ncspot)$
tile = true
workspace = special:tools
}
# Bottom Left: ncpamixer
windowrule {
name = dashboard-ncpamixer
match:class = ^(ncpamixer)$
tile = true
workspace = special:tools
}
# Bottom Right: bluetuith
windowrule {
name = dashboard-bluetuith
match:class = ^(bluetuith)$
tile = true
workspace = special:tools
}
# Bind to launch the suite (Run this once)
bind = $mainMod, grave, exec, kitty --class btop btop
bind = $mainMod, grave, exec, kitty --class ncspot ncspot
bind = $mainMod, grave, exec, kitty --class ncpamixer ncpamixer
bind = $mainMod, grave, exec, kitty --class bluetuith bluetuith

BIN
miryoku-kle-cover.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

View 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

View 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
View File

@@ -0,0 +1,8 @@
#!/bin/bash
cd ~/ExoKortex/2-Areas/IT/dotfiles/
make all
if [ $? -eq 0 ]; then
notify-send "Dotfiles" "Configuration reloaded successfully!"
else
notify-send "Dotfiles" "Failed to reload configuration!"
fi

View 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."

10
secrets/mistral.age Normal file
View File

@@ -0,0 +1,10 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IEdoTUQ4QSBKU2FK
SkJzTFhnVFJvY2Z2cHNwdkcySlEyM251bFNFajBqd25zeEljWTBFCjJnQnN3VGVU
WmxFa24zN3lTWDQ3aXRUemNKTTNUcWhTREFxdjYvUEVPUGsKLT4gOHUuYXpSLWdy
ZWFzZSBcbU9pIjZ5IHVRTUc0LiBkeytLRiUkWSAodzgvPjxbCnhkUDFQTVl3OG04
bm9iTGJrQU1VMHVpRG40aWdGaXV5RVlkL3k3dytjbmVERSs1WWJGYwotLS0gZTFv
ZVhUNG01eFhBZUFOa2txbXo3VGJHUlJqd2lsMWJrZEJnOFFJMkg0bwod0MqLq/Gg
IscU4tieNTcpvdveTROZbzsDXmfpYuw7VMphifpW7HAori6WgTSuPuR64ger+Ckn
9DBFrTWBvOWlsg==
-----END AGE ENCRYPTED FILE-----

8
secrets/tdnde-mail.age Normal file
View File

@@ -0,0 +1,8 @@
age-encryption.org/v1
-> ssh-ed25519 GhMD8A N3YTw5zlKBrt8wFNUKsp5whWTA6gHxk/dnK0qfpVjWs
3Wl+FdDp7DUa41RM3WtfYD652FO+JrKHI0IbR8JP008
-> Zz)frY-grease [#m
U4f90YQTuVBGpDosn311ZOxkvuIrVxRqtkLpdvspDpvJSBuGfjL6ocqutGnVAS+9
9cd5Bqzpf82+z+IIIark
--- CCIsIOQ2lRmT3vKpYBeFU2PrFesiH5CPljUTzYARRVE
<EFBFBD>ED<EFBFBD>d<EFBFBD>V<EFBFBD>+<2B>'<27>+<2B><>>5anͨc<CDA8><63>ح<EFBFBD>Ųb<C5B2>4<1B>5<EFBFBD>${<7B>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

@@ -0,0 +1,34 @@
{
// load modules
"include": "~/.config/waybar/modules.json",
// general settings
"position": "top",
"margin-top": 15,
"margin-bottom": 0,
"layer": "top",
"margin-left": 15,
"margin-right": 15,
"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
View 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

View 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;

View 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": "kitty ncpamixer"
},
// 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
},
}

View 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;
}

View File

@@ -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

View File

@@ -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
View 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
View 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;
}

View File

@@ -0,0 +1,3 @@
[[mgr.prepend_keymap]]
on = "M"
run = "plugin mount"

View File

@@ -0,0 +1,3 @@
[[manager.prepend_keymap]]
on = "M"
run = "plugin mount"

View File

@@ -0,0 +1,7 @@
[[plugin.deps]]
use = "yazi-rs/plugins:mount"
rev = "cb6165b"
hash = "dd97eede8e20e59cd2604e8006e470e2"
[flavor]
deps = []

160
yazi/.config/yazi/yazi.toml Normal file
View File

@@ -0,0 +1,160 @@
# 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
[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

View 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
View File

@@ -0,0 +1 @@
\.config/yazi/plugins

130
zsh/.zshrc Normal file
View File

@@ -0,0 +1,130 @@
# NO FUCKING BEEP
unsetopt BEEP
# Dark GTK for pwvucontrol
export GTK_THEME=Adwaita:dark
# Always 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)"
# Created by `pipx` on 2026-03-03 16:51:31
export PATH="$PATH:/home/tpouplier/.local/bin"