Skip to content

phuhl/.dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

dotfiles

Method

These dotfiles are organized as ansible roles. Each role is responsible for one aspect of the setup. This could be:

  • a program to install and configure (i.e. KDE)
  • a system setting to change (i.e. autologin)

There are two special roles, that deserve to be pointed out:

packages
Installs an AUR-helper (yay) and a lot of packages.
  • These packages can be defined via the file in the packages’ roles defaults-folder.
  • This role can be reused in other roles to install needed packages. (i.e. see role KDE).
dotfiles
Installs all dotfiles that are not installed by a dedicated role. Many programs are just installed and then configured by a dotfile. To spare me of creating a role for each program, the dotfiles role installs all these dotfiles in one go. The dotfiles in question are installed by sym-linking them from the ansible template into their desired folders. All dotfiles for this are found in the dotfiles’ roles templates-folder.

There’s a few special folders/files in the hierarchy.

bin/
Anything in `bin/` will get added to your `$PATH` and be made available everywhere.

When installing a program, you can symlink files into the .config/zsh folder to update the path, environment variables, etc. For this, ideally, you create a subdirectory for the application, the config is for. The following behavior is honored by the zsh config:

.config/zsh/**/*.zsh
Any files ending in `.zsh` get loaded into your environment.
.config/zsh/**/path.zsh
Any file named `path.zsh` is loaded first and is expected to setup `$PATH` or similar.
.config/zsh/**/completion.zsh
Any file named `completion.zsh` is loaded late and is expected to setup autocomplete.
.config/zsh/autostart.zsh
This file will be loaded last (if present) and can be used to start software on terminal start. I.e. the following snippet starts KDE if the user is on TTY1 and no display session is running:
if [ -z "$DISPLAY" ] && [ -n "$XDG_VTNR" ] && [ "$XDG_VTNR" -eq 1 ]; then
  exec startplasma-wayland
fi
    

Make sure to keep the if, if you don’t want the auto-start-command to run on every zsh session 😉.

What’s inside

Currently, Wayland with KDE and a lot of software. I just made the switch to Wayland and am not in the mood to build up a complete system basically from scratch 🙈

Screenshots of former setup

Some applications, notification: README.org.img/org_20181125_131724_ZI9o09.jpg

Notification Center opened: README.org.img/org_20181203_164608_WqFdmO.jpg

Emacs as an only window on a desktop in monocle view: README.org.img/org_20181203_164817_XTvKHh.jpg

Install

These dotfiles are installed using ansible. To install them, first install ansible (pacman -S ansible).

Run this:

git clone https://github.com/phuhl/.dotfiles.git ~/.dotfiles
cd ~/.dotfiles
cp vars.yml ansible/inventory/host_vars/localhost

# Edit variables in ansible/inventory/host_vars/localhost/vars.yml to your likings

pacman -S ansible
ansible-playbook setup.yml -i inventory -K
#reboot

Currently missing:

  • Missing installs:
    • notify-send.py
  • Installing root scripts (still needed?)
  • Improvement: If rofi is used by multiple setups, create own role (currently it is part of river)

X Desktop

  • bspwm-rounded-corners-git
    • For java on bspwm: export _JAVA_AWT_WM_NONREPARENTING=1
  • URXVT-Plugins
  • betterlockscreen
  • compton
  • deadd-notification-system
  • picom launch script
  • polybar
  • rofi

All systems

  • crontab
  • hosts
  • ssh-key
  • node, npm, volta?
    • npm: .npmrc has /home/philipp in it
    • volta: yay -S volta-bin (aur), needs to run volta setup
  • Firefox post install scripts via Pacman hooks?
  • Firefox add-ons?

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published