Skip to content

eugeneandrienko/dotfiles

Repository files navigation

About this repository

This repository contains different configuration files, which I have been writing since 2005.

Contents:

  • cmd/ — shell-related configuration files.
  • utils/ — configuration files for different utilities, like vim or tmux.
  • noauto/ — different system configuration files, not for automatic installation. Described below.
  • deploy.sh — main deployment script.

noauto/ contents:

  • hosts/etc/hosts file. This is not a valid hosts file! You should review it and add useful entries to your /etc/hosts by hands!
  • 50trackball.conf — X configuration for Logitech trackball
  • 50-udiskie.rules — Rules for udiskie. Should be placed in /etc/polkit-1/rules.d/. Owner should be polkitd, and access right should be 644.
  • 97-udisks2.rules — Rules for udiskie [2]. Should be placed in /etc/udev/rules.d/.
  • userChrome.css — Disable tabs and tabbar in Firefox. Should be placed in ~/.mozilla/firefox/your-profile-folder/chrome/.
  • user.js — Setting for chrome to improve security and remove annoyances. Should be placed in ~/.mozilla/firefox/your-profile-folder/.

Dependencies:

You should have next programs in system before configuration deployment:

System programs:

  • aspell (with aspell-en and aspell-ru dictionaries)
  • bc
  • cal
  • cron
  • curl
  • make (or gmake executable should be available in FreeBSD)
  • python3
  • perl
  • rsync
  • sqlite3
  • stow
  • syncthing
  • sudo
  • tmux (>= 3.2)
  • xsltproc
  • udisks
  • zsh

Mail and IM:

  • abook
  • fdm
  • lynx
  • maildrop
  • msmtp
  • mutt
  • rss2email
  • urlview

Editing:

  • ctags
  • diff-highlight (can be installed with `pip3 install diff-highlight`)
  • emacs
  • idea
  • lacheck
  • latex (texlive)
  • vim

Utilities:

  • ansiweather
  • dunst
  • git
  • gpg
  • jq
  • mc
  • numlockx
  • pass
  • pass-otp
  • rtorrent
  • shred
  • wget
  • xclip
  • yt-dlp
  • udiskie

Multimedia:

  • feh
  • gimp
  • imagemagick
  • lame
  • mplayer
  • rawtherapee
  • sxiv or nsxiv

GUI:

  • firefox
  • i3
  • i3status
  • josm
  • qmapshack
  • telegram

Fonts:

  • Terminus
  • Noto Mono

Before deployment:

If you need sensitive data (passwords, API keys, etc) in the new machine — use store_sensitive_data.sh script to save it in archive on the old machine and move to the new machine.

On the new machine you should do the next, to import sensitive data:

File synchronization:

To work with file synchronization via cloudsync you need to have sync SSH-key with empty passphrase. This key should be added to remote server to rsync account into ~/.ssh/authorized_keys.

Passwords:

For using Mutt with GMail mailboxes you should specify mail server passwords in ~/.netrc.

Import GPG keys:

Use this commands:

gpg --import pub.key
gpg --import priv.key

After that call gpg --edit-key <key-id> and set trust level to 5 via command trust. Quit gpg console with quit command.

Weather forecasts:

Add your OpenWeatherMap API key to ~/.openweathermap file.

Deployment:

  1. Clone this repository to some suitable directory. You mustn’t clone it to your ~ directory!
  2. Run deploy.sh script, which do the next:
    1. Make soft links from our catalog to the user $HOME catalog via stow.
    2. Create necessary empty directories.
    3. Create mail directories.
    4. Set right access rights to some configuration files.
    5. Store in ~ special file with OS and hardware type of machine where this repository is cloned to. It is necessary to properly handle some functions, which should exists on one machine and shouldn’t on another.

After deployment:

Vim plugins installation

Do the next to install Vim plugins:

  • First, install Vundle plugin: git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim.
  • Second, in Vim execute :BundleInstall.

/etc/hosts:

You should update your /etc/hosts with data from noauto/hosts.