/dotfiles

Primary LanguageCSSGNU General Public License v3.0GPL-3.0

How to dotfiles

My dotfiles are manage by stow.

To install stow in an Arch based distributions:

sudo pacman -S stow

And, for example, to use stow to add my rofi configurations, you need to be at the root of this repository folder:

cd dotfiles
stow rofi

It only makes a symlink between the dotfiles target folder and the appropriate path, based on the folder structure, so this repository can also be used with only copy and paste of the folders in the right path.

Themes

In this repository, inside the themes folder, I have some widgets and icon themes that I use.

Right now I 'm using a combination of adw-gtk3 for GTK3 and libadwaita for GTK-4, they were modified with a program called Gradience.

Warning: I made some CSS and config changes to make it look better with my setup, like remove GTK CSD buttons, so my config will change some gtk files.

First, install adw-gtk3:

yay -S adw-gtk3

Because stow uses relative symlinks to add the configuration files, flatpak programs don't have the filesystem permission to find the original/target files, so they can't read them, we also can't modify the theme file with flatpak Gradience out of the box for the same reason, so to add the theme config to the system, we have 4 options:

  1. Stow: If you don't care about theme support for flatpak programs and you don't want to edit the theme with flatpak Gradience, you can use stow theme-hipgnose-black.

  2. Manual Copy: You need to copy the contents of theme-hipgnose-black to the appropriate paths at ~/.config.

  3. Apply theme with Gradience: You can import the config file from Gradience, the file is inside dotfiles/gradience/.var/app/com.github.GradienceTeam.Gradience/config/presets/user/, after that, you can use Gradience to modify and apply the theme to the system.

  4. Manual symlink with absolute path:

    This is the way I do and recommend.

    Warning: In the folowing commands I'm assuming your dotfiles folder is named as dotfiles, without a . in the beginning, and it's in the root of your home folder, a.k.a ~.

    Add flatpak global file access permission to the theme's dotfile folder:

    flatpak override --filesystem=~/dotfiles/theme-hipgnose-black:ro --user

    Now, make absolute symlinks of the theme's files to both GTK .config:

    GTK3:

    ln -s ~/dotfiles/theme-hipgnose-black/.config/gtk-3.0/gtk.css ~/dotfiles/theme-hipgnose-black/.config/gtk-3.0/settings.ini ~/.config/gtk-3.0

    GTK4:

    ln -s ~/dotfiles/theme-hipgnose-black/.config/gtk-4.0/gtk.css ~/dotfiles/theme-hipgnose-black/.config/gtk-4.0/settings.ini ~/.config/gtk-4.0

    And logout from the system after that, for some reason only after a logout the program really receive the permission but I don't know why and it was a pain to understand why the permission wasn't working.

    Gradience (Optional)

    If you want to modify the theme, you need to add file permission to Gradience flatpak program to the respective dotfile folder, so it can read the theme file:

    flatpak override com.github.GradienceTeam.Gradience --filesystem=~/dotfiles/gradience --user

    Now you can stow the config to add the theme file to the Gradience user preset:

    stow gradience

Programs

yay

Pacman wrapper and AUR helper written in go.

sudo pacman -S yay

For colored output, uncomment the Color line in /etc/pacman.conf

Awesome

Highly configurable framework window manager.

yay -S awesome-git

Autorandr

Auto-detect connected display hardware and load appropiate X11 setup using xrandr.

yay -S autorandr

To make autorandr manage notebook lid close, there is a systemd unit autorandr-lid-listener.service inside autorandr dotfile folder, to make it work:

sudo cp autorandr-lid-listener.service /etc/systemd/system/
sudo systemctl enable --now autorandr-lid-listener.service

Alacritty

Alacritty is the fastest GPU-Accelerated terminal emulator in existence.

yay -S alacritty

Terminal

zsh

zsh is a very advanced and programmable command interpreter (shell) for UNIX.

yay -S zsh

Make zsh the default shell:

chsh -s $(which zsh)

fzf

fzf Command-line fuzzy finder:

yay -S fzf

Antigen

Antigen is a small set of functions that help you easily manage your shell (zsh) plugins.

yay -S antigen-git

npm & node

First install nvm from AUR:

yay -S nvm

Source nvm script in .bashrc:

echo 'source /usr/share/nvm/init-nvm.sh' >> ~/.bashrc
exec $SHELL

Install latest node and npm:

nvm install node

rofi

A window switcher, application launcher and dmenu replacement.

sudo pacman -S rofi

flameshot

Powerful yet simple to use screenshot software.

yay -S flameshot

xscreensaver

Screen saver and locker for the X Window System.

yay -S xscreensaver

vscode

Visual Studio Code. Editor for building and debugging modern web and cloud applications.

yay -S visual-studio-code-bin

Install vscode extensions

~/dotfiles/install-code-extensions.sh

List extensions with install command

code --list-extensions | xargs -L1 echo code --install-extension

Fira Code

Monospaced font with programming ligatures.

yay -S otf-fira-code

Issues

Electron apps crashing randomly - DRI3 issues

To solve I had to write

Section "Device"
    Identifier "Intel Graphics"
    Driver "intel"
    Option "DRI" "2"
EndSection

in /etc/X11/xorg.conf.d/20-intel.conf

https://unix.stackexchange.com/questions/524205/help-chromium-display-frozen-but-the-app-keeps-working https://wiki.archlinux.org/index.php/Intel_graphics#DRI3_issues

Meet/Hangouts/sites without sound and microphone on Firefox

To solve it, I executed install_pulse

https://support.mozilla.org/en-US/kb/fix-common-audio-and-video-issues#w_you-may-need-to-install-the-required-pulseaudio-software

Add Git Credentials to Keyring/Libsecret

Install the libsecret package. (Already installed in Manjaro)

git config --global credential.helper /usr/lib/git-core/git-credential-libsecret