Skip to content

dimanu-py/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚙️ Dotfiles ⚙️

Here you can find all my window manager configs as well as different programms I use with Arch.

Most of the programs are compatible with other Linux distributions.


  1. How to manage configuration files
    1. Install GNU Stow
    2. Use these configs
  2. Basic system utilities
    1. Wallpaper
    2. Fonts
    3. Audio
    4. Monitors
    5. Storage
    6. Network
    7. Systray
    8. Menu
    9. Notifications
  3. More advanced system utilities
    1. Terminal
    2. Git
    3. i3 Window Manager
    4. AUR Helper
    5. Media Transfer Protocol
    6. File Manager
    7. Trash
    8. Multimedia
    9. Bluetooth
  4. Xprofile

How to manage these configuration files

To manage all the config files I use stow. I will explain how to manage the files when you have all the file structure like in this repository.

You can find a complete guide in Dream of Autonomy YT Channel and Stow documentation. The links to both resources can be found bellow.

Original video GNU Stow Docs

Installing GNU Stow

Note

GNU Stow is a symlink farm manager which takes distinct packages of software and/or data located in separated directories on the file system and makes them appear to be installed in the sample place through symlinks

Install stow package

sudo pacman -S stow

Use these configs

Important

The most important thing when working with stow is to have a folder in your home directory that is organised in the same way as the folders you want to track.

First thing you'll need to do is clone this repository in your home directory.

cd
git clone git@github.com:dimanu-py/dotfiles.git

With the current folder structure, you can select which packages you want to use. For example, if you only want to apply my fish and i3 configurations, you would run:

stow fish
stow i3

Note

These commands will create a symlink with the same structure of the package in your .config folder.

Basic system utilities

This section will cover all software packages that I've install. Well, maybe not all of them, but the most importants ones.

If you only want to install them and use them directly with stow, run the following:

cd dotfiles
stow packages
cd
sudo pacman -S --needed - < pkglist.txt

Wallpaper

To set and modify the wallpaper I use feh and nitrogen

To install these packages run:

sudo pacman -S feh

To set the wallpaper execute

feh --bg-scale path/to/wallpaper

Personally, I normally download this GitHub repository for my wallpapers.

Fonts

For installing fonts I usually go to Nerd Fonts and download the ones I like. My favourite ones however are already downloaded and saved in this repo under the fonts package.

To list all available fonts you can run

fc-list

Audio

For audio I use pipewire. I recommend installing a graphical program such as pavucontrol if you prefer to do this kind of things with a GUI instead of shortcuts or terminal commands.

sudo pacman -S pipewire pavucontrol

To manage volumen control easily latter on with shortcuts I recommend installing pamixer too.

Important

My window manager configs have keybindings with pamixer, if you don't install it you would need to change it.

Monitors

In my case, the monitor setup is a bit special because I use a docking station with Display Manager drivers. Under the monitor package you can have more detailed information on how to setup everything and why the need of it. In summary:

You don't need to follow these instructions if it's not your case. What I mainly use to set the monitors is xrandr

Storage

To be able to use external hard drives or USBs you would need to install udiskie. If you want to read write NTFS formatted drives you would need ntfs-3g too.

sudo pacman -S udiskie ntfs-3g

Network

You can configure your network connection with nmcli. With this utility you can search for your wifi with

ncmli device wifi list

and connect running

nmcli device wifi connect network-name password network-password

However, I prefer to use a graphical tool such as Network Manager

sudo pacman -S network-manager-applet

Systray

When you install the packages for network and storage you'll be able to launch the programs and see icons to click and configure drives and network.

udisikie -t &
nm-applet &

If you want, you can install tray icons for volume and battery:

sudo pacman -S volumeicon cbatticon

Then run them with

volumeicon &
cbatticon &

Menu

To execute programs easily I install rofi

sudo pacman -S rofi

You can downloads all the themes by running

git clone https://github.com/davatorium/rofi-themes
cd rofi-themes
./install.sh

However, I have by default the onedrak theme download in my configs so it gets applied automatically when I sincronizee my configs.

Notifications

To have desktop notifications I use libnotify and notification-daemon

sudo pacman -S libnotify notification-daemon

For tilling window managers you need to create a service to get notifications:

sudo nano /usr/share/dbus-1/services/org.freedesktop.Notifications.service

Paste these lines

[D-BUS Service]
Name=org.freedesktop.Notifications
Exec=/usr/lib/notification-daemon-1.0/notification-daemon

Test it like so:

notify-send "Hello World"

More advanced system utilities

Terminal

For my terminal emulator I use wezterm and my bash profile is fish

sudo pacman -S wezterm fish

All the configurations can be reviewed in their corresponding packages, wezterm and fish

Git

I have a specific package to store my personal preferences when using git and a bunch of aliases when I use the terminal. All the explanation can be found in the README file inside gitconfig package.

i3 Window Manager

My favourite window manager is i3. To install it and its configuration files run:

sudo pacman -S i3
stow i3

You would want to install i3blocks, i3status and i3lock to have more control over your desktop enviroment.

sudo pacman -S i3blocks i3status i3lock

My configuration files for i3 are in the i3 package. They are separated in 7 files:

  • appearance.conf: To configure anything related to the appearance of the window manager. Things like wallpaper, fonts, gaps, etc.
  • autostart: To execute programs on startup
  • bar: To configure the bar at the bottom of the screen. An alternative I use is polybar which configuration files can be found in the polybar package. Both bars are configured in a similar way, but I like more polybar.
  • binding_modes.conf: To configure the binding modes of the window manager.
  • floating_windows: To configure specific windows that should be open as a floating window.
  • keybindings.conf: To configure the keybindings of the window manager.
  • workspaces.conf: To configure the workspaces of the window manager.
  • config: The main configuration file. It only includes all the other files.
  • config.bak: A backup of the default config file.

Under the scripts folder you can find a script to lock your screen with i3lock and another script to logout, switch user, reboot, etc. Inside them you can find where you should copy this files in order to make them work. Remember to give execution permissions with

chmod +x path/to/script

AUR Helper

To install additional software from the Arch User Repository (AUR) you can use an AUR helper. I use yay.

First, install base-devel and git:

sudo pacman -S base-devel git

Now, clone the repository and install it with makepkg:

cd /opt/
sudo git clone https://aur.archlinux.org/yay-git.git
sudo chown -R username:username yay-git/
cd yay-git
makepkg -si

Now you can install software using yay. For example, to install neovim from the AUR, you would run:

yay -S neovim-nightly

Media Transfer Protocol

If you want to connect your phone to your computer using a USB port, you'll need MTP implementation and some CLI to use it, like this one:

sudo pacman -S libmtp
yay -S simple-mtpfs

To list connected devices:

simple-mtpfs -l

To mount the first device in the previous list:

simple-mtpfs --device 1 /mount/point

File Manager

For a graphical file manager my favourite is pcmanfm but you can install thunar if you prefer.

sudo pacman -S pcmanfm thunar

For a terminal based file manager I recommend ranger. Although it's very vim-like, you can use it if you know how to move in vim.

sudo pacman -S ranger

Trash

We need a trash system to avoid losing files by accident. For a CLI trash system you can use gvfs and glib2.

sudo pacman -S glib2 gvfs

To trash a file you can use:

gio trash path/to/file

To empty the trash you can use:

gio trash --empty

With pcmanfm you can open the trash clicking on the left panel, but on the command line you can use:

ls ~/.local/share/Trash/files

To empty the trash you can use:

gio trash --empty

Multimedia

Note

If you want to look for different tools you can visit this page. For specific screenshot tools I search on this other page and watch some YT videos.

To make screenshots I use flameshot.

To install it you can use pacman:

sudo pacman -S flameshot

For image previews, one of the best that I could find is geeqie.

sudo pacman -S geeqie

To play videos and music I use vlc.

sudo pacman -S vlc

Bluetooth

To connect to bluetooth devices I use bluez and blueman.

sudo pacman -S bluez blueman

To enable and start the bluetooth service run:

sudo systemctl enable bluetooth.service
sudo systemctl start bluetooth.service

With this you can run the blueman gui to pair devices and more.

Xprofile

Most of the applications for systray are not launch automatically. If we want to lunch some program before the window manager starts, we need to add the command to a xprofile file.

First, we need to install xinit:

sudo pacman -S xorg-xinit

Now you can use ~/.xprofile to run programs before your window manager starts:

touch ~/.xprofile

For example, if you place this in ~.xprofile:

xrandr --output eDP-1 --primary --mode 1920x1080 --pos 0x1080 --output HDMI-1 --mode 1920x1080 --pos 0x0 &
nm-applet &
udiskie -t &
volumeicon &
cbatticon &

Every time you login you will have all systray utilities and monitors set.

Note

Mine xprofile is all commented because I want to manage this programs inside the window manager.