Skip to content

bgaillard/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

163 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

Dotfiles managed with chezmoi.

WARNING: The full install requires at least 40 GB.

Init

Debian / Ubuntu

# Install base packages
#
# After 'adduser' logout and login again to apply sudo group
su -
apt install ansible curl git gh gpg python3-hvac python3-debian -y
adduser baptiste sudo

# TODO: Install Bitwarden CLI with Ansible
cd /tmp
wget https://github.com/bitwarden/clients/releases/download/cli-v2026.1.0/bw-oss-linux-2026.1.0.zip
unzip bw-oss-linux-2026.1.0.zip
chmod +x bw
mv bw ~/.local/bin

# Install required Ansible roles
ansible-galaxy collection install community.general
ansible-galaxy collection install prometheus.prometheus

# Install ~/.local/bin/chezmoi
#
# After installation, logout and login again to apply ~/.local/bin to PATH
sh -c "$(curl -fsLS get.chezmoi.io)" -- -b ~/.local/bin

# Initialize ~/.local/share/chezmoi
~/.local/bin/chezmoi init bgaillard

Red Hat

# Install base packages
#
# After 'adduser' logout and login again to apply sudo group
sudo yum install ansible-core git -y
sudo dnf install dnf5-plugins
sudo dnf config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo
sudo dnf install gh --repo gh-cli

# TODO: Install the Bitwarden CLI

# Install required Ansible roles
ansible-galaxy collection install community.general
ansible-galaxy collection install prometheus.prometheus

# Install ~/.local/bin/chezmoi
#
# After installation, logout and login again to apply ~/.local/bin to PATH
sh -c "$(curl -fsLS get.chezmoi.io)" -- -b ~/.local/bin

# Initialize ~/.local/share/chezmoi
~/.local/bin/chezmoi init bgaillard

Provision

# Get a Github token to prevent Rate Limit problems with 'mise'
#
# @see https://mise.jdx.dev/troubleshooting.html#_403-forbidden-when-installing-a-tool
# @see https://stackoverflow.com/questions/78890002/how-to-do-gh-auth-login-when-run-in-headless-mode#answer-78890003
BROWSER=false gh auth login
export MISE_GITHUB_TOKEN=$(gh auth token)

# Copy the provisioning configuration file and adapt it to your needs
cd ~/.local/share/chezmoi
cp p.yml ~/.config

# Start the provisioning
./p

Copy dotfiles

export PATH=$PATH:~/.local/bin

# Apply dotfiles to home directory
chezmoi diff
chezmoi apply

Testing

incus

# Launch a Debian trixie container
incus launch images:debian/trixie chezmoi-test

# Provision
incus exec chezmoi-test -- bash

    # Install base packages
    #
    # If you encounter networking issues check the bellow links
    #
    # @see https://linuxcontainers.org/incus/docs/main/howto/network_bridge_firewalld/#network-incus-docker
    # @see https://discuss.linuxcontainers.org/t/incus-container-unable-to-reach-outside-world/21256/11
    apt install ansible curl git gh gpg python3-hvac python3-debian -y
    ansible-galaxy collection install community.general
    ansible-galaxy collection install prometheus.prometheus

    # Create a standard user
    useradd -m -s /bin/bash baptiste
    adduser baptiste sudo
    passwd baptiste

    # Install and initialize chezmoi
    su baptiste
    sh -c "$(curl -fsLS get.chezmoi.io)" -- -b ~/.local/bin
    cd ~
     ~/.local/bin/chezmoi init bgaillard

    # Get a Github token to prevent Rate Limit problems with 'mise'
    BROWSER=false gh auth login
    export MISE_GITHUB_TOKEN=$(gh auth token)

    # Copy the provisioning configuration file and adapt it to your needs
    cd ~/.local/share/chezmoi
    cp p.yml ~/.config

    # Start the provisioning
    ./p

kDrive

FIXME: The install of kDrive should be done with Ansible, the update should be managed with the u alias command.

Update

Download kDrive from Télecharger l'application kDrive pour Linux into the Downloads.

Manually stop kDrive using the UI.

Execute the following commands to update kDrive:

rm ~/.local/bin/kDrive*
chmod +x ~/Downloads/kDrive-*.AppImage
mv ~/Downloads/kDrive-*.AppImage ~/.local/bin
ln -s ~/.local/bin/kDrive-3.7.10.1-amd64.AppImage ~/.local/bin/kDrive

Login from XFCE and login again.

XFCE Desktop file

Create a ~/.config/autostart/kDrive.desktop file with the following content:

[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=kDrive
Comment=Infonamiak kDrive
Exec=/home/baptiste/.local/bin/kDrive
OnlyShowIn=XFCE;
RunHook=0
StartupNotify=false
Terminal=false
Hidden=false

About

Carefully designed Linux dotfiles and provisioning configuration.

Topics

Resources

Stars

Watchers

Forks

Contributors