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