My personal configuration files.
Find a file
Marty Oehme 6fd8fcf8ca Restructure bootstrap dir, fix install.sh
With bootstrap files no longer linked to config directory, we can have
an easier directory structure with less nesting for them. Install.sh
needs to use the new structure when calling its bootstrap scripts.
2019-12-30 11:04:54 +01:00
alacritty/.config/alacritty Switch to GNU stow 2019-12-29 23:12:13 +01:00
bootstrap Restructure bootstrap dir, fix install.sh 2019-12-30 11:04:54 +01:00
fontconfig/.config/fontconfig Switch to GNU stow 2019-12-29 23:12:13 +01:00
gopass/.config/gopass Switch to GNU stow 2019-12-29 23:12:13 +01:00
home Switch to GNU stow 2019-12-29 23:12:13 +01:00
i3/.config/i3 Switch to GNU stow 2019-12-29 23:12:13 +01:00
libinput-gestures/.config Switch to GNU stow 2019-12-29 23:12:13 +01:00
nvim/.config/nvim Switch to GNU stow 2019-12-29 23:12:13 +01:00
picom/.config/picom Switch to GNU stow 2019-12-29 23:12:13 +01:00
polybar/.config/polybar Switch to GNU stow 2019-12-29 23:12:13 +01:00
qutebrowser Switch to GNU stow 2019-12-29 23:12:13 +01:00
rofi/.config/rofi Switch to GNU stow 2019-12-29 23:12:13 +01:00
rofi-surfraw/.config/rofi-surfraw Switch to GNU stow 2019-12-29 23:12:13 +01:00
scripts/.local/bin Switch to GNU stow 2019-12-29 23:12:13 +01:00
shell/.config/shell Remove dot command from shell 2019-12-30 10:27:20 +01:00
sxhkd/.config/sxhkd Switch to GNU stow 2019-12-29 23:12:13 +01:00
tmux/.config/tmux Switch to GNU stow 2019-12-29 23:12:13 +01:00
vifm/.config/vifm Switch to GNU stow 2019-12-29 23:12:13 +01:00
xdg-user-dirs/.config Switch to GNU stow 2019-12-29 23:12:13 +01:00
xresources/.config/xresources Switch to GNU stow 2019-12-29 23:12:13 +01:00
install.sh Restructure bootstrap dir, fix install.sh 2019-12-30 11:04:54 +01:00
LICENSE Add LICENSE 2019-06-07 08:33:58 +00:00
README.md Switch to GNU stow 2019-12-29 23:12:13 +01:00

dotfiles Read-Me and Roadmap

What's in these dotfiles

  • vim configuration for simple programming tasks (especially go/typescript/python/bash) and prose
  • academic workflow tools, to allow quick citation, pdf compilation, and preview
  • simple, efficient polybar with package update notification, and spotify integration
  • tmux session management through tm and tl tools
  • quick terminal-wide color management through sd/sD/sl/sL commands, allowing two light and dark color-schemes
  • many vim color-schemes with quick light/dark switching (F8) and theme switch (<Space>+F8)
  • quick directory jumping using z, with fzf integration
  • fzf integrations for bibtex citation, vim buffer management, most recently used switching, shell command history, and more

Quick-Start

The dotfiles are based on a bare-repository residing in your home directory. To enable a faster usage of the dotfile git commands, a dot command is supplied which mirrors the usual git functionality, but solely applies it to your dotfiles.

To install you need git on your system; to effectively use the dotfiles you should be using zsh (chsh -s /bin/zsh to switch your current user to the shell).

Clone the bare repo, rename it and force a checkout with the following command - NOTE this WILL OVERWRITE YOUR EXISTING FILES, so have a look at what is contained beforehand.

git clone https://gitlab.com/marty-oehme/dotfiles.git df && cp -rf df/.git ~/.dotfiles && rm -rf df && cd ~ && git --git-dir=$HOME/.dotfiles/ checkout -f master

It will clone your dotfiles into the .dotfiles directory in your home directory and then force a checkout of the current master branch. Open a new terminal window and you should live in the dotfiles.

What's in these dotfiles

  • vim configuration for simple programming tasks (especially go/typescript/python/bash) and prose
  • academic workflow tools, to allow quick citation, pdf compilation, and preview
  • simple, efficient polybar with package update notification, and spotify integration
  • tmux session management through tm and tl tools
  • quick terminal-wide color management through sd/sD/sl/sL commands, allowing two light and dark color-schemes
  • many vim color-schemes with quick light/dark switching (F8) and theme switch (<Space>+F8)
  • quick directory jumping using z, with fzf integration
  • fzf integrations for bibtex citation, vim buffer management, most recently used switching, shell command history, and more

Notable Folders

  • generally, most configuration for applications follows the XDG specifications, keeping configuration in .config directory and supplementary files in .local/share directory
  • .config/shell contains all the general zsh/bash/sh configuration and environment variables usually contained in .zshrc/.zprofile/..; it is divided in login shell config (loginrc.d), general shell config (rc.d) and zsh specific (zsh.d)
  • .config/rofi contains additional scripts and a simple theming framework for rofi and should probably be migrated into the correct directories at some point
  • .local/bin contains most executable user scripts
  • .local/share/pandoc contains configuration for academic latex (pandoc, really) writing and is of interest if you want to use this functionality
  • .xinitrc is used for x initialization and program startup, customize to your needs
  • .gitlab-ci.yml is only used for simple CI code linting and static analysis on gitlab, can be deleted on individual deployments

NOTE:

THE BELOW README IS OUT OF DATE DO NOT FOLLOW ITS INSTALL INSTRUCTIONS

At some point I will get around to updating it

Quick-Start

There are two ways of using these dotfiles:

To fully provision a completely new arch linux setup

$ curl -Lks http://bit.do/marty-dot | sudo /bin/bash

Or, to only use these dotfiles two steps are necessary

  1. install git & zsh if not already installed on your machine (should often already be available)
  2. run chsh -s /bin/zsh to switch the shell to zsh
  3. go to home directory & run git clone https://gitlab.com/marty-oehme/dotfiles.git df && cp -rf df/.git ~/ && rm -rf df && cd ~ && git checkout -f master
  4. install tmux (or remove the corresponding tmux config entries) [this should not be necessary anymore since tmux scripts check for an installation]
  5. install a powerline compatible font (nerdfont patched fira code is what I use)

Checklist and Things to look at for dotfiles and Linux workflow

  • Bring this readme up to date with new dotfiles structure/installation/content

  • Überzug as terminal picture preview, here

  • irssi as irc client

  • vifm as ranger replacement - check the individual advantages, disadvantages

  • neomutt / mutt-wizard as terminal email-client

  • newboat as rss client

  • think about calcurse as calendar app (would have to import/export from gcal)

    • get some kind of todoist integration going, so we can use todoist from the cmdline
    • set up qutebrowser for quicklinks, bookmarklets, url-redirection
    • set up better clipboard integration across vim, tmux, x

Introduction & Idea

The basic ideas

My Set-Up -- just exchange alias config with alias dotfiles (is already done in the dotfiles)

Examples & Inspiration

holman dotfiles -- dotfiles from the dotfiles-are-meant-to-be-forked dude. Peruse and steal what looks good

LukeSmith dotfiles / LARBS setup, use it for my initial bootstrap

Github does dotfiles, a whole array of dotfile setups to choose from

awesome dotfiles -- way more info on dotfiles than you ever needed

VSCode & Vue focused dotfiles setup -- looks interesting, maybe steal some tidbits

Various tidbits and aliases

dotfiles from the author of above link

extensive qutebrowser setup

Roadmap

Perfectly setting up Arch

  • Fix ReadMe.txt being copied into home dir when cloning dotfiles.
  • Re-Map caps lock to ctrl
  • Automatically switch between US/DE keyboard layout for laptop/pc this should probably be done with loadkeys and keymap per pc in zshrc or a config derivative see esp https://wiki.archlinux.org/index.php/Linux_console/Keyboard_configuration#Creating_a_custom_keymap so we could load de-latin1/en-us, specified in the branch that is checked out. and then apply a custom keymap over it to apply universal customizations, like Capslock=Control and so on.
  • automatically install xcape to enable capslock remapping functionality

Overall Roadmap

  • Set up Copy and Paste in X -- using clipmenud&clipnotify. I can copy stuff to and from urxvt w alt+ctrl+c/v, w/o alt for the rest of the system. invoke clipmenu to show last clips.
  • [-] Install & Configure Compton Put on hold for now. What do I need it for? transparency? shadows? maybe removing screen-tearing. : Will perhaps re-investigate when i want to use e.g. windowsflash - to highlight the currently active i3 window
  • Setup i3
  • Window switching shortcuts
  • Set up leaving question w/o mouse
  • Closing/Opening of windows shortcuts
  • Multi-monitor setup (w/ barrier)
    • Set up initial load of windows to specific screens
    • Get Barrier running Barrier by default installs the deps for its GUI (qt5 etc) -- if no GUI is necessary run it with build args to not make GUI (available in aur) : try to get a nicely working setup in the gui in antergos and then copy this to this .file repo, no gui necessary
    • [-] Install & Configure rofi Happy with dmenu for now Could use https://github.com/enkore/j4-dmenu-desktop to get a faster menu, independent of i3.
    • Install & Configure polybar
    • theme ideas
    • community scripts
    • Set up ranger Set up video: https://www.youtube.com/watch?v=L6Vu7WPkoJo
    • set up fzf for ranger
    • set up movement,newtab,copy,move behavior
    • set up visual selection
    • set up tar-ing/untar-ing
    • Set up sxiv/feh
    • set up (n)vim set jk to get out of modes -> using xcape can accomplish mapping escape to capslock when released on its own. That way we can get out of insert mode with jk AND capslock, whichever we prefer.
  • Get Password Sync going (enpass?)
  • Investigate mondo - automatic re-theming (can cycle through multiple themes and reload your .files etc)
    • Use tmux for one main editing session. Use a single vim instance within this session. for music, quick exporations etc other urxvt instances are fine? can we use i3 to, when pressing mod+enter, not just open a new term but find out if tmux is running and either open new tmux pane or new term if it is not?
    • Look at ack to replace grep (https://beyondgrep.com/why-ack/) -> look at the talk for ideas of customization

Restoration & Atomicity

  • Make it possible to get an arch install up and running with the same settings with a couple commands either
  • Set up file system backup to restore from (borg backup)
    • Set up meta-packages & dotfiles to clone from
    • Set up ansible to automatically bootstrap Arch for both desktop & laptop

Dotfiles

  • Make the dotfiles status command automatically not show untracked files (i.e. most files in homedir) -- fix

ZSH, dotfile installation

  • ~

  • .zgenrc

  • .zshrc

  • .zgenrc.d/

  • .Xresources

  • .xres/

  • .config/

  • .tmux/

  • .zsh/

  • .zgen/

  • I would like my home folder to be a bit more manageable, ideally it would only contain

  • .zshrc

  • .bashrc

  • .xinitrc

  • .Xresources as files and:

  • .ssh/ -- ssh related configuration -> secret stuff which should not be kept in the repo (an ssh setup script e.g. should be kept in dotfiles if it does not contain keys etc.)

  • .config/ -- program configuration. If it changes how another program on the computer runs, it should go in configuration.

  • .dotfiles/ -- the version history etc of my dotfiles (i.e. handled by git)

    • Re-Organize zsh.d/ config files after organizational pattern in .zshrc (e.g. move k-alias script to internal script dependencies)
    • Modify larbs setup script to ask for dotfile installation,
    • Installation should ask which submodules of programs in csv to install: (should be distinguished somehow, perhaps with tags) as in 'Audio' packages, 'Music' packages, 'xorg' packages, 'Window Manager' packages (maybe use pkg groups?)
  • todo command alias to open up a preconfigured todo file OR a todoist cli (if i find a good one) https://github.com/sachaos/todoist looks good. Needs to be synched and works best with peco -- see readme. A working alias set might be useful here to set up commands for interaction Todo Alias opens ROADMAP.md for now.

    • readme command alias to open up the current project README.md or ask to create a new one if none is found in current dir / parent dirs
    • check for existence of xcape before trying to invoke its command in 5-capslock-to-ctrl
    • make :q quit the terminal (perhaps doing alias as exit), :wq save the session in tmux and quit out of it

URxvt

  • Enable Ctrl+Arrows to jump back/forward word-wise;
  • enable (easy) copy/paste - Ctrl+Shift+C/V? Copy paste works with Alt+Ctrl+C/V, text needs to be selected (only mouse for now) - does not work in tmux yet
  • Select text with Shift keys
  • enable some sort of command mode a-la vim?
  • Unify tab switching -- mod+num for workspaces, alt+num for tabs (in qutebrowser,urxvt,fm,...)
    • enable unified copy paste throughout whole system
    • enable vim quitting - q to exit session, wq to save as tmux session and quit

mpv

  • Enable Seeking with vim controls (hjkl)

qutebrowser

i3

  • Switch to hjkl
  • Make custom workspaces: 1 - browser, 2 - term, 9 - agenda, 0 - music
  • Superkey to Right Shift
  • Alias Capslock to shift - aliased to Ctrl now
  • make it work with laptop as 2nd monitor if I switch over to left window from i3, i want to land on the right window of my laptop as the next selection

Various important packages

  • i3 [i3blocks, i3gaps]
  • tmux
  • pulseaudio (&pavucontrol)
    • lightdm, lightdm-mini-greeter
    • nvidia, nvidia-utils etc
    • xorg-xinit, xorg-server, xorg-apps
    • mopidy, mopidy-spotify, mopidy-spotify-tunigo, ncmpcpp or iris
    • xcape - to enable capslock to act as control and escape at the same time