Initial public commit

pull/1/head
Ensar Sarajčić 2021-01-07 09:09:41 +01:00
commit 41cb931c5f
387 changed files with 27631 additions and 0 deletions

317
Makefile 100644
View File

@ -0,0 +1,317 @@
UNAME := $(shell sh -c 'uname 2>/dev/null || echo Unknown')
ifeq ($(OS),Windows_NT)
UNAME := Windows
endif
FILE_SUFFIX := linux
SYMLINK := ln -s
CURRENT_DIR := $(shell pwd)
ifeq ($(DOTFILES_CI), 1)
DOTFILES_DIR := $(CURRENT_DIR)
EXTRA_CI_MESSAGE := (CI)
else
DOTFILES_DIR := $(HOME)/.dotfiles
EXTRA_CI_MESSAGE :=
endif
SCRIPTS_DIR := $(DOTFILES_DIR)/bin
SYMLINKS_DIR := $(DOTFILES_DIR)/symlinks
BACKUP_DIR := $(HOME)/dotfiles_backup
SSH_KEYS_HOME := $(HOME)/.ssh
SSH_CONFIG_FILE := $(SSH_KEYS_HOME)/config
PERSONAL_SSH_KEYS_HOME := $(SSH_KEYS_HOME)/Personal
SCRIPTS_CACHE_DIR := $(HOME)/.script_cache
PROJECTS_ROOT := $(HOME)/Projects
DOCUMENTS_ROOT := $(HOME)/Documents
PICTURES_ROOT := $(HOME)/Pictures
SCREENSHOTS_ROOT := $(PICTURES_ROOT)/Screenshots
PERSONAL_PROJECTS_ROOT := $(PROJECTS_ROOT)/Personal
PRACTICE_PROJECTS_ROOT := $(PERSONAL_PROJECTS_ROOT)/Mixed\ Technology/Practice
COPY_TOOL := pbcopy
ifeq ($(UNAME), Linux)
FILE_SUFFIX := linux
COPY_TOOL := xclip -selection clipboard
link: link_all_linux
bootstrap: bootstrap_linux
endif
ifeq ($(UNAME), Windows)
FILE_SUFFIX :=
COPY_TOOL :=
bootstrap: bootstrap_windows
endif
ifeq ($(UNAME), Darwin)
FILE_SUFFIX := mac
COPY_TOOL := pbcopy
link: link_all_mac
bootstrap: bootstrap_mac
endif
ifeq ($(UNAME), Unknown)
check_os: fail_with_unknown_host
endif
ifneq ($(DOTFILES_DIR), $(CURRENT_DIR))
check_os: fail_with_bad_dotfiles_location
endif
# Creates a new symlink in home dir and backs up existing file
# Expects file to be located in symlinks directory
# Takes 2 parameters:
# - Symlink file name (as defined in symlinks directory)
# - Name of file in home directory
define link
@echo "Moving $2 from $(HOME) to $(BACKUP_DIR)"
@mv $(HOME)/$2 $(BACKUP_DIR)/ || true
@echo "Creating symlink to $2 in $(HOME)"
@$(SYMLINK) $(SYMLINKS_DIR)/$1 $(HOME)/$2
endef
# Writes new ssh config entry
# Takes 3 parameters:
# - Host (ex. github.com)
# - Host prefix (to prevent conflicts between different keys for same host)
# - Path to private key
define write_git_ssh_config_entry
@echo "" >> $(SSH_CONFIG_FILE)
@echo "Host $2$1" >> $(SSH_CONFIG_FILE)
@echo " AddKeysToAgent yes" >> $(SSH_CONFIG_FILE)
@echo " UseKeychain yes" >> $(SSH_CONFIG_FILE)
@echo " HostName $1" >> $(SSH_CONFIG_FILE)
@echo " User git" >> $(SSH_CONFIG_FILE)
@echo " IdentityFile $3" >> $(SSH_CONFIG_FILE)
endef
.PHONY: bootstrap
bootstrap: check_os
@echo "Bootstrapped everything!"
.PHONY: bootstrap_windows
bootstrap_windows: check_os
@windows\bootstrap_windows.bat
@echo "Bootstrapped windows!"
.PHONY: bootstrap_linux
bootstrap_linux: check_os link bootstrap_common
@echo "Bootstrapped linux components!"
.PHONY: bootstrap_mac
bootstrap_mac: check_os link bootstrap_common oh_my_zsh homebrew install_brew_basics setup_mac_screenshots
@echo "Bootstrapped mac components!"
.PHONY: bootstrap_common
bootstrap_common: check_os link_all_common set_default_theme prepare_projects_dir prepare_screenshots_dir prepare_scripts_cache_dir install_vim install_asdf
@echo "Bootstrapped common components!"
.PHONY: link
link: check_os clean_backup prepare_backup_dir
@echo "Linked everything!"
.PHONY: link_all_common
link_all_common: check_os link_bin link_tmux link_screen link_git link_ctags link_vim link_apps_config link_tool_versions link_profile link_bash link_zsh
@echo "Linked common files!"
.PHONY: link_all_mac
link_all_mac: check_os link_all_common
@echo "Linked mac files!"
.PHONY: link_all_linux
link_all_linux: check_os link_all_common link_xconfig link_i3config
@echo "Linked linux files!"
.PHONY: link_tmux
link_tmux: check_os
@echo "Linking tmux files..."
$(call link,tmux.conf,.tmux.conf)
.PHONY: link_screen
link_screen: check_os
@echo "Linking screen files..."
$(call link,screenrc,.screenrc)
.PHONY: link_git
link_git: check_os
@echo "Linking git files..."
$(call link,gitignore,.gitignore)
$(call link,gitconfig,.gitconfig)
$(call link,gitconfig.optimum,.gitconfig.optimum)
.PHONY: link_ctags
link_ctags: check_os
@echo "Linking ctags files..."
$(call link,ctags,.ctags)
.PHONY: link_vim
link_vim: check_os
@echo "Linking vim files..."
$(call link,vim,.vim)
$(call link,ideavimrc,.ideavimrc)
.PHONY: link_apps_config
link_apps_config: check_os
@echo "Linking apps config files..."
$(call link,config,.config)
.PHONY: link_tool_versions
link_tool_versions: check_os
@echo "Linking tool-versions file for asdf"
$(call link,tool-versions,.tool-versions)
$(call link,config/asdf/.default-gems,.default-gems)
.PHONY: link_profile
link_profile: check_os
@echo "Linking profile... (Don't forget to reboot or relogin due to .profile changes)"
$(call link,profile.$(FILE_SUFFIX),.profile)
.PHONY: link_bash
link_bash: check_os
@echo "Linking bash files..."
$(call link,bashrc,.bashrc)
.PHONY: link_zsh
link_zsh: check_os
@echo "Linking zsh files..."
$(call link,zshrc.$(FILE_SUFFIX),.zshrc)
.PHONY: link_bin
link_bin: check_os
@echo "Linking bin script files..."
$(call link,bin,bin)
.PHONY: link_xconfig
link_xconfig: check_os
@echo "Linking X config files..."
$(call link,xinitrc,.xinitrc)
$(call link,zprofile,.zprofile)
.PHONY: link_i3config
link_i3config: check_os link_xconfig link_apps_config
@echo "Linking i3 config files..."
.PHONY: set_default_theme
set_default_theme: check_os
@echo 'gruvbox-dark' > $(DOTFILES_DIR)/themes/current-theme
# TODO Parametrize projects dir creation and automate gitconfig setup
.PHONY: prepare_projects_dir
prepare_projects_dir: check_os
@echo "Creating projects directories"
@mkdir -p $(PERSONAL_PROJECTS_ROOT)
@mkdir -p $(PROJECTS_ROOT)/Optimum
@mkdir -p $(DOCUMENTS_ROOT)/Personal
@mkdir -p $(DOCUMENTS_ROOT)/Optimum
@mkdir -p $(PRACTICE_PROJECTS_ROOT)
.PHONY: prepare_scripts_cache_dir
prepare_scripts_cache_dir: check_os
@echo "Creating scripts cache directory"
@mkdir -p $(SCRIPTS_CACHE_DIR)
.PHONY: clone_personal_vimwiki
clone_personal_vimwiki: check_os
@echo "Cloning personal vimwiki"
@git clone git@github.com:esensar/vimwiki.wiki.git ~/vimwiki
.PHONY: prepare_ssh_dir
prepare_ssh_dir: check_os
@echo "Creating ssh directories"
@mkdir -p $(HOME)/.ssh/Personal
.PHONY: create_personal_ssh_github_key
create_personal_ssh_github_key: check_os prepare_ssh_dir
@echo "Creating personal GitHub key"
@read -p "Enter your email: " email; \
ssh-keygen -f $(PERSONAL_SSH_KEYS_HOME)/id_rsa_github -t rsa -b 4096 -C $$email
@echo "Personal GitHub key created!"
@echo "Copy public key by running:"
@echo ""
@echo "cat $(PERSONAL_SSH_KEYS_HOME)/id_rsa_github | $(COPY_TOOL)"
@echo ""
@echo "Open: https://github.com/settings/ssh/new"
@echo "and paste copied public key"
$(call write_git_ssh_config_entry,github.com,,$(PERSONAL_SSH_KEYS_HOME)/id_rsa_github)
.PHONY: prepare_screenshots_dir
prepare_screenshots_dir: check_os
@echo "Creating screenshots directories"
@mkdir -p $(SCREENSHOTS_ROOT)
.PHONY: setup_mac_screenshots
setup_mac_screenshots: check_os prepare_screenshots_dir
@echo "Configuring mac screenshots default location ($(SCREENSHOTS_ROOT))"
@defaults write com.apple.screencapture location $(SCREENSHOTS_ROOT)
.PHONY: install_brew_basics
install_brew_basics: homebrew check_os
@echo "Installig basic brew packages..."
@brew bundle --file $(DOTFILES_DIR)/installed_packages/core/Brewfile
.PHONY: install_asdf
install_asdf: check_os
@echo "Installing ASDF VM..."
@git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.8.0
@echo "Installed ASDF Version 0.8.0"
@echo "To install latest version:"
@echo ""
@echo "cd ~/.asdf"
@echo "git fetch"
@echo "git checkout \"$$\(git describe --abbrev=0 --tags\)\""
@echo ""
@echo "Consider installing configured ASDF tools:"
@echo ""
@echo ""
@echo "Run in home directory:"
@echo "asdf install"
@echo ""
@echo ""
@echo "Consider installing ASDF plugins:"
@echo "=================================="
@echo "DIRENV:"
@echo "----------------------------------"
@echo "asdf plugin-add direnv"
@echo "asdf install direnv latest"
@echo ""
@echo "Check out installed version using: "
@echo "asdf list direnv"
@echo ""
@echo "Configure it as global using: "
@echo "asdf global direnv $$version"
@echo ""
@echo "When using in projects, put the following in .envrc: "
@echo "use asdf"
@echo "=================================="
@echo ""
.PHONY: install_vim
install_vim: check_os link_vim
@echo "Installing vim packages..."
@echo "\n\n\n" | vim +PlugInstall +qall
.PHONY: oh_my_zsh
oh_my_zsh: check_os
@echo "Installing oh-my-zsh..."
@sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
.PHONY: homebrew
homebrew: check_os
@echo "Installing homebrew..."
@/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
.PHONY: prepare_backup_dir
prepare_backup_dir: check_os
@echo "Creating $(BACKUP_DIR)"
@mkdir $(BACKUP_DIR)
.PHONY: clean_backup
clean_backup: check_os
@echo "Deleting $(BACKUP_DIR)"
@rm -r $(BACKUP_DIR) || true
.PHONY: check_os
check_os:
@echo "Running on $(UNAME)$(EXTRA_CI_MESSAGE)"
.PHONY: fail_with_unknown_host
fail_with_unknown_host:
$(error Unkown host system!)
.PHONY: fail_with_bad_dotfiles_location
fail_with_bad_dotfiles_location:
$(error Bad dotfiles location! Ensure dotfiles directory is found in $(DOTFILES_DIR)!)

57
README.md 100644
View File

@ -0,0 +1,57 @@
# .dotfiles
## Quick setup
Clone in `~/.dotfiles` and run make:
```
make bootstrap
```
## Contents
1. *installed_packages* directory used in Linux and Mac installations to create groups of installed packages, which can easily be cloned using **clone-installation** script. List is generated using **migrate-installation** script and it can be compared with any other using **compare-installation**.
2. *themes* directory used mostly for **Arch Linux** installations to generate custom themes from small files containing color definitions
3. *symlinks* directory containing many configuration files which are symlinked during installation process in their correct places to be used later
- **Git** related files - global *gitconfig* and *gitignore*
- **Shell** config files - bash/zsh/fish for linux/mac
- **Vim/Nvim** config files
- **Arch** config files - many configuration files controlling most of the setup
- **config** directory, containing custom configurations for many apps (most of Linux apps and some of Mac OS apps)
- **bin** director containing many useful scripts, many of them requiring **Arch Linux** and its setup
## Installation manual
### Linux (Arch)
1. Install Arch based distribution of choice (Arch - https://wiki.archlinux.org/index.php/Installation_guide)
2. Install git
3. Clone this repo into $HOME
4. Run `make bootstrap`
5. (Optional) Run clone-installation and select installation to clone
### Linux (Other)
1. Install Linux distribution of choice
2. Install git
3. Clone this repo into $HOME
4. Run make `make bootstrap`
5. Everything should be fine. Many custom scripts may not work, since they rely on either **pacman** or some of the basic packages installed using **clone-installation** script, which is also using **pacman**
### Mac OS
1. Clone this repo into $HOME
2. Run make `make bootstrap`
3. If you need more homebrew packages, check *installed_packages* directory and choose your list. Install it by moving into specific packages set directory and running `brew bundle` (or `clone-installation` if you have sourced new ~/.profile)
### Windows
1. Clone this repo into user home
2. Run `make bootstrap` or run `windows/install_windows.bat` directly with double click or through cmd
3. This will only link vim and git configurations
## Post installation steps
After installation optionally check out `installed_packages` directory for packages to install using `clone-installation`.
This repository also provides a simple way to generate main personal ssh key to be used with GitHub:
```
make create_personal_ssh_github_key
```
It is recommended to also clone `vimwiki` and use it:
```
make clone_personal_viwiki
```

1
installed_packages/.gitignore vendored 100644
View File

@ -0,0 +1 @@
**/Brewfile.lock.json

View File

@ -0,0 +1,3 @@
## Installed packages
This directory contains lists of installed packages to make installation of new system easier. Each directory contains packages for `pacman`, `apt` and `brew`, together with `gem`, `pip` and `npm` global requirements.

View File

@ -0,0 +1,21 @@
android-studio
dotnet-sdk-2.0
dropbox
exercism-cli
gpmdp
i3-gaps
i3lock-color
leiningen
libinput-gestures
libxfont
msbuild-stable
otf-fira-code
pencil
polybar
rider
rofi-dmenu
siji-git
slack-desktop
ttf-ms-fonts
ttf-unifont
xinit-xsession

View File

@ -0,0 +1,212 @@
acpi
alsa-utils
autoconf
automake
bash
bash-bats
binutils
bison
bumblebee
bzip2
chromium
clang
clojure
cmake
compton
coreutils
cryptsetup
cscope
ctags
device-mapper
dhcpcd
dialog
diffutils
dunst
e2fsprogs
elixir
fakeroot
feh
file
filesystem
findutils
flex
gawk
gcc
gcc-libs
gettext
git
gksu
glibc
gnome-keyring
grep
grub
gvim
gzip
hexchat
htop
httpie
hub
i3blocks
i3status
imagemagick
inetutils
inkscape
intel-ucode
intellij-idea-community-edition
iproute2
iputils
iw
jdk8-openjdk
jfsutils
jre8-openjdk
keychain
kotlin
less
libreoffice-fresh
libtool
licenses
lightdm
lightdm-gtk-greeter
lightdm-gtk-greeter-settings
linux
logrotate
lvm2
m4
maim
make
man-db
man-pages
mdadm
mesa-demos
mopidy
mpv
nano
ncmpcpp
neovim
netctl
network-manager-applet
networkmanager
newsboat
nodejs
npm
nvidia
octave
openssh
otf-font-awesome
pacman
pandoc
patch
pciutils
pcmciautils
perl
pkg-config
powerline
powerline-fonts
procps-ng
psmisc
pyenv
python-pip
python2-pip
ranger
reiserfsprogs
rofi
ruby
s-nail
screenfetch
sed
semver
shadow
sudo
sway
sysfsutils
sysstat
systemd-sysvcompat
tar
termite
texinfo
texlive-bibtexextra
texlive-core
texlive-fontsextra
texlive-formatsextra
texlive-games
texlive-humanities
texlive-latexextra
texlive-music
texlive-pictures
texlive-pstricks
texlive-publishers
texlive-science
tmux
tree
ttf-bitstream-vera
ttf-dejavu
ttf-font-awesome
ttf-freefont
ttf-liberation
udevil
unrar
usbutils
util-linux
vi
vimpager
w3m
weechat
weston
which
wlc
wpa_supplicant
xautolock
xbindkeys
xclip
xdg-user-dirs
xf86-video-intel
xf86-video-vesa
xfsprogs
xorg-docs
xorg-fonts-100dpi
xorg-fonts-75dpi
xorg-iceauth
xorg-luit
xorg-server-devel
xorg-server-xdmx
xorg-server-xephyr
xorg-server-xnest
xorg-server-xvfb
xorg-server-xwayland
xorg-sessreg
xorg-smproxy
xorg-x11perf
xorg-xauth
xorg-xbacklight
xorg-xcmsdb
xorg-xcursorgen
xorg-xdpyinfo
xorg-xdriinfo
xorg-xev
xorg-xgamma
xorg-xhost
xorg-xinit
xorg-xinput
xorg-xkbevd
xorg-xkbutils
xorg-xkill
xorg-xlsatoms
xorg-xlsclients
xorg-xmodmap
xorg-xpr
xorg-xprop
xorg-xrandr
xorg-xrdb
xorg-xrefresh
xorg-xset
xorg-xsetroot
xorg-xvinfo
xorg-xwd
xorg-xwininfo
xorg-xwud
xterm
youtube-dl
youtube-viewer
zeal
zim
zsh

View File

@ -0,0 +1,17 @@
bigdecimal (1.3.3, 1.3.2, default: 1.3.0)
did_you_mean (1.1.2, 1.1.0)
io-console (default: 0.4.6)
json (2.1.0, default: 2.0.4)
minitest (5.10.3, 5.10.1)
msgpack (1.2.0, 1.1.0)
multi_json (1.12.2)
mustache (1.0.5)
neovim (0.6.2, 0.5.1)
net-telnet (0.1.1)
openssl (2.1.0, 2.0.6, default: 2.0.5)
power_assert (1.1.1, 0.4.1)
psych (3.0.1, default: 2.2.2)
rake (12.3.0, 12.0.0)
rdoc (6.0.0, default: 5.0.0)
test-unit (3.2.7, 3.2.6, 3.2.3)
xmlrpc (0.3.0, 0.2.1)

View File

@ -0,0 +1,5 @@
/usr/lib
├── @angular/cli@1.6.0
├── npm@5.6.0
└── typescript@2.6.2

View File

@ -0,0 +1,49 @@
appdirs (1.4.3)
backports-abc (0.5)
beautifulsoup4 (4.6.0)
cachetools (2.0.1)
chardet (3.0.4)
decorator (4.1.2)
funcsigs (1.0.2)
future (0.16.0)
futures (3.1.1)
gmusicapi (10.1.2)
gpsoauth (0.4.1)
greenlet (0.4.12)
httplib2 (0.10.3)
idna (2.6)
MechanicalSoup (0.8.0)
mock (2.0.0)
Mopidy (2.1.0)
Mopidy-GMusic (2.0.0)
msgpack-python (0.4.8)
mutagen (1.38)
neovim (0.1.13)
netsnmp-python (1.0a1)
oauth2client (4.1.2)
packaging (16.8)
pbr (3.1.1)
pip (9.0.1)
proboscis (1.2.6.0)
protobuf (3.4.0)
psutil (5.4.1)
pyasn1 (0.3.7)
pyasn1-modules (0.1.5)
pycairo (1.15.4)
pycryptodomex (3.4.7)
pygobject (3.26.1)
Pykka (1.2.0)
pyparsing (2.2.0)
python-dateutil (2.6.1)
pyxdg (0.25)
requests (2.18.4)
rsa (3.4.2)
setuptools (38.2.4)
singledispatch (3.4.0.3)
six (1.11.0)
team (1.0)
tornado (4.5.2)
trollius (2.1)
urllib3 (1.22)
validictory (1.1.1)
zim (0.67)

View File

@ -0,0 +1,46 @@
appdirs (1.4.3)
beautifulsoup4 (4.6.0)
cachetools (2.0.1)
chardet (3.0.4)
decorator (4.1.2)
future (0.16.0)
gmusicapi (10.1.2)
gpsoauth (0.4.1)
greenlet (0.4.12)
httpie (0.9.9)
httplib2 (0.10.3)
idna (2.6)
lightdm-gtk-greeter-settings (1.2.2)
lxml (4.1.1)
MechanicalSoup (0.9.0.post4)
mock (2.0.0)
Mopidy (2.1.0)
Mopidy-GMusic (2.0.0)
msgpack-python (0.4.8)
mutagen (1.39)
neovim (0.1.13)
oauth2client (4.1.2)
packaging (16.8)
pbr (3.1.1)
pip (9.0.1)
powerline-status (2.6)
proboscis (1.2.6.0)
protobuf (3.5.0.post1)
pyasn1 (0.4.2)
pyasn1-modules (0.2.1)
pycryptodomex (3.4.7)
Pygments (2.2.0)
pygobject (3.26.1)
Pykka (1.2.1)
pyparsing (2.2.0)
python-dateutil (2.6.1)
ranger (1.8.1)
requests (2.18.4)
rsa (3.4.2)
setuptools (38.2.4)
six (1.11.0)
team (1.0)
tornado (4.5.2)
urllib3 (1.22)
validictory (1.1.2)
youtube-dl (2017.12.14)

View File

@ -0,0 +1,15 @@
dotnet-sdk-2.0
exercism-cli
i3-gaps
i3lock-color
leiningen
libinput-gestures
libxfont
msbuild-stable
otf-fira-code
polybar
rofi-dmenu
siji-git
ttf-ms-fonts
ttf-unifont
xinit-xsession

View File

@ -0,0 +1,173 @@
bash
bash-bats
binutils
chromium
clang
clojure
cmake
compton
coreutils
cryptsetup
cscope
ctags
device-mapper
dhcpcd
dialog
diffutils
dunst
e2fsprogs
elixir
fakeroot
feh
file
filesystem
findutils
flex
gawk
gcc
gcc-libs
gettext
git
glibc
grep
grub
gzip
htop
hub
imagemagick
inetutils
intel-ucode
iproute2
iputils
iw
jdk8-openjdk
jfsutils
jre8-openjdk
keychain
kotlin
less
libtool
licenses
lightdm
lightdm-gtk-greeter
lightdm-gtk-greeter-settings
linux
logrotate
lvm2
m4
maim
make
man-db
man-pages
mdadm
mesa-demos
mopidy
mpv
nano
ncmpcpp
neovim
netctl
network-manager-applet
networkmanager
newsboat
nodejs
npm
nvidia
openssh
otf-font-awesome
pacman
patch
pciutils
pcmciautils
perl
pkg-config
powerline
powerline-fonts
procps-ng
psmisc
python-pip
python2-pip
ranger
reiserfsprogs
rofi
ruby
s-nail
screenfetch
sed
semver
shadow
sudo
sway
sysfsutils
sysstat
systemd-sysvcompat
tar
termite
tmux
tree
ttf-bitstream-vera
ttf-dejavu
ttf-font-awesome
ttf-freefont
ttf-liberation
udevil
unrar
usbutils
util-linux
vi
w3m
weechat
which
wlc
wpa_supplicant
xautolock
xbindkeys
xclip
xdg-user-dirs
xf86-video-intel
xf86-video-vesa
xfsprogs
xorg-docs
xorg-fonts-100dpi
xorg-fonts-75dpi
xorg-iceauth
xorg-luit
xorg-server-devel
xorg-server-xdmx
xorg-server-xephyr
xorg-server-xnest
xorg-server-xvfb
xorg-server-xwayland
xorg-sessreg
xorg-smproxy
xorg-x11perf
xorg-xauth
xorg-xbacklight
xorg-xcmsdb
xorg-xcursorgen
xorg-xdpyinfo
xorg-xdriinfo
xorg-xev
xorg-xgamma
xorg-xhost
xorg-xinit
xorg-xinput
xorg-xkbevd
xorg-xkbutils
xorg-xkill
xorg-xlsatoms
xorg-xlsclients
xorg-xmodmap
xorg-xpr
xorg-xprop
xorg-xrandr
xorg-xrdb
xorg-xrefresh
xorg-xset
xorg-xsetroot
xorg-xvinfo
xorg-xwd
xorg-xwininfo
xorg-xwud
xterm
zsh

View File

@ -0,0 +1,17 @@
bigdecimal (1.3.3, 1.3.2, default: 1.3.0)
did_you_mean (1.1.2, 1.1.0)
io-console (default: 0.4.6)
json (2.1.0, default: 2.0.4)
minitest (5.10.3, 5.10.1)
msgpack (1.2.0, 1.1.0)
multi_json (1.12.2)
mustache (1.0.5)
neovim (0.6.2, 0.5.1)
net-telnet (0.1.1)
openssl (2.1.0, 2.0.6, default: 2.0.5)
power_assert (1.1.1, 0.4.1)
psych (3.0.1, default: 2.2.2)
rake (12.3.0, 12.0.0)
rdoc (6.0.0, default: 5.0.0)
test-unit (3.2.7, 3.2.6, 3.2.3)
xmlrpc (0.3.0, 0.2.1)

View File

@ -0,0 +1,5 @@
/usr/lib
├── @angular/cli@1.6.0
├── npm@5.6.0
└── typescript@2.6.2

View File

@ -0,0 +1,49 @@
appdirs (1.4.3)
backports-abc (0.5)
beautifulsoup4 (4.6.0)
cachetools (2.0.1)
chardet (3.0.4)
decorator (4.1.2)
funcsigs (1.0.2)
future (0.16.0)
futures (3.1.1)
gmusicapi (10.1.2)
gpsoauth (0.4.1)
greenlet (0.4.12)
httplib2 (0.10.3)
idna (2.6)
MechanicalSoup (0.8.0)
mock (2.0.0)
Mopidy (2.1.0)
Mopidy-GMusic (2.0.0)
msgpack-python (0.4.8)
mutagen (1.38)
neovim (0.1.13)
netsnmp-python (1.0a1)
oauth2client (4.1.2)
packaging (16.8)
pbr (3.1.1)
pip (9.0.1)
proboscis (1.2.6.0)
protobuf (3.4.0)
psutil (5.4.1)
pyasn1 (0.3.7)
pyasn1-modules (0.1.5)
pycairo (1.15.4)
pycryptodomex (3.4.7)
pygobject (3.26.1)
Pykka (1.2.0)
pyparsing (2.2.0)
python-dateutil (2.6.1)
pyxdg (0.25)
requests (2.18.4)
rsa (3.4.2)
setuptools (38.2.4)
singledispatch (3.4.0.3)
six (1.11.0)
team (1.0)
tornado (4.5.2)
trollius (2.1)
urllib3 (1.22)
validictory (1.1.1)
zim (0.67)

View File

@ -0,0 +1,46 @@
appdirs (1.4.3)
beautifulsoup4 (4.6.0)
cachetools (2.0.1)
chardet (3.0.4)
decorator (4.1.2)
future (0.16.0)
gmusicapi (10.1.2)
gpsoauth (0.4.1)
greenlet (0.4.12)
httpie (0.9.9)
httplib2 (0.10.3)
idna (2.6)
lightdm-gtk-greeter-settings (1.2.2)
lxml (4.1.1)
MechanicalSoup (0.9.0.post4)
mock (2.0.0)
Mopidy (2.1.0)
Mopidy-GMusic (2.0.0)
msgpack-python (0.4.8)
mutagen (1.39)
neovim (0.1.13)
oauth2client (4.1.2)
packaging (16.8)
pbr (3.1.1)
pip (9.0.1)
powerline-status (2.6)
proboscis (1.2.6.0)
protobuf (3.5.0.post1)
pyasn1 (0.4.2)
pyasn1-modules (0.2.1)
pycryptodomex (3.4.7)
Pygments (2.2.0)
pygobject (3.26.1)
Pykka (1.2.1)
pyparsing (2.2.0)
python-dateutil (2.6.1)
ranger (1.8.1)
requests (2.18.4)
rsa (3.4.2)
setuptools (38.2.4)
six (1.11.0)
team (1.0)
tornado (4.5.2)
urllib3 (1.22)
validictory (1.1.2)
youtube-dl (2017.12.14)

View File

@ -0,0 +1,11 @@
i3-gaps
i3lock-color
libinput-gestures
libxfont
otf-fira-code
polybar
rofi-dmenu
siji-git
ttf-ms-fonts
ttf-unifont
xinit-xsession

View File

@ -0,0 +1,164 @@
bash
bash-bats
binutils
chromium
clang
cmake
compton
coreutils
cryptsetup
device-mapper
dhcpcd
dialog
diffutils
dunst
e2fsprogs
fakeroot
feh
file
filesystem
findutils
flex
gawk
gcc
gcc-libs
gettext
git
glibc
grep
grub
gzip
htop
imagemagick
inetutils
intel-ucode
iproute2
iputils
iw
jfsutils
keychain
less
libtool
licenses
lightdm
lightdm-gtk-greeter
lightdm-gtk-greeter-settings
linux
logrotate
lvm2
m4
maim
make
man-db
man-pages
mdadm
mesa-demos
mopidy
mpv
nano
ncmpcpp
neovim
netctl
network-manager-applet
networkmanager
newsboat
npm
nvidia
openssh
otf-font-awesome
pacman
patch
pciutils
pcmciautils
pkg-config
powerline
powerline-fonts
procps-ng
psmisc
pyenv
python-pip
python2-pip
ranger
reiserfsprogs
rofi
ruby
s-nail
screenfetch
sed
semver
shadow
sudo
sway
sysfsutils
sysstat
systemd-sysvcompat
tar
termite
tmux
tree
ttf-bitstream-vera
ttf-dejavu
ttf-font-awesome
ttf-freefont
ttf-liberation
udevil
unrar
usbutils
util-linux
vi
w3m
weechat
which
wlc
wpa_supplicant
xautolock
xbindkeys
xclip
xdg-user-dirs
xf86-video-intel
xf86-video-vesa
xfsprogs
xorg-docs
xorg-fonts-100dpi
xorg-fonts-75dpi
xorg-iceauth
xorg-luit
xorg-server-devel
xorg-server-xdmx
xorg-server-xephyr
xorg-server-xnest
xorg-server-xvfb
xorg-server-xwayland
xorg-sessreg
xorg-smproxy
xorg-x11perf
xorg-xauth
xorg-xbacklight
xorg-xcmsdb
xorg-xcursorgen
xorg-xdpyinfo
xorg-xdriinfo
xorg-xev
xorg-xgamma
xorg-xhost
xorg-xinit
xorg-xinput
xorg-xkbevd
xorg-xkbutils
xorg-xkill
xorg-xlsatoms
xorg-xlsclients
xorg-xmodmap
xorg-xpr
xorg-xprop
xorg-xrandr
xorg-xrdb
xorg-xrefresh
xorg-xset
xorg-xsetroot
xorg-xvinfo
xorg-xwd
xorg-xwininfo
xorg-xwud
xterm
zsh

View File

@ -0,0 +1,17 @@
bigdecimal (1.3.3, 1.3.2, default: 1.3.0)
did_you_mean (1.1.2, 1.1.0)
io-console (default: 0.4.6)
json (2.1.0, default: 2.0.4)
minitest (5.10.3, 5.10.1)
msgpack (1.2.0, 1.1.0)
multi_json (1.12.2)
mustache (1.0.5)
neovim (0.6.2, 0.5.1)
net-telnet (0.1.1)
openssl (2.1.0, 2.0.6, default: 2.0.5)
power_assert (1.1.1, 0.4.1)
psych (3.0.1, default: 2.2.2)
rake (12.3.0, 12.0.0)
rdoc (6.0.0, default: 5.0.0)
test-unit (3.2.7, 3.2.6, 3.2.3)
xmlrpc (0.3.0, 0.2.1)

View File

@ -0,0 +1,49 @@
appdirs (1.4.3)
backports-abc (0.5)
beautifulsoup4 (4.6.0)
cachetools (2.0.1)
chardet (3.0.4)
decorator (4.1.2)
funcsigs (1.0.2)
future (0.16.0)
futures (3.1.1)
gmusicapi (10.1.2)
gpsoauth (0.4.1)
greenlet (0.4.12)
httplib2 (0.10.3)
idna (2.6)
MechanicalSoup (0.8.0)
mock (2.0.0)
Mopidy (2.1.0)
Mopidy-GMusic (2.0.0)
msgpack-python (0.4.8)
mutagen (1.38)
neovim (0.1.13)
netsnmp-python (1.0a1)
oauth2client (4.1.2)
packaging (16.8)
pbr (3.1.1)
pip (9.0.1)
proboscis (1.2.6.0)
protobuf (3.4.0)
psutil (5.4.1)
pyasn1 (0.3.7)
pyasn1-modules (0.1.5)
pycairo (1.15.4)
pycryptodomex (3.4.7)
pygobject (3.26.1)
Pykka (1.2.0)
pyparsing (2.2.0)
python-dateutil (2.6.1)
pyxdg (0.25)
requests (2.18.4)
rsa (3.4.2)
setuptools (38.2.4)
singledispatch (3.4.0.3)
six (1.11.0)
team (1.0)
tornado (4.5.2)
trollius (2.1)
urllib3 (1.22)
validictory (1.1.1)
zim (0.67)

View File

@ -0,0 +1,46 @@
appdirs (1.4.3)
beautifulsoup4 (4.6.0)
cachetools (2.0.1)
chardet (3.0.4)
decorator (4.1.2)
future (0.16.0)
gmusicapi (10.1.2)
gpsoauth (0.4.1)
greenlet (0.4.12)
httpie (0.9.9)
httplib2 (0.10.3)
idna (2.6)
lightdm-gtk-greeter-settings (1.2.2)
lxml (4.1.1)
MechanicalSoup (0.9.0.post4)
mock (2.0.0)
Mopidy (2.1.0)
Mopidy-GMusic (2.0.0)
msgpack-python (0.4.8)
mutagen (1.39)
neovim (0.1.13)
oauth2client (4.1.2)
packaging (16.8)
pbr (3.1.1)
pip (9.0.1)
powerline-status (2.6)
proboscis (1.2.6.0)
protobuf (3.5.0.post1)
pyasn1 (0.4.2)
pyasn1-modules (0.2.1)
pycryptodomex (3.4.7)
Pygments (2.2.0)
pygobject (3.26.1)
Pykka (1.2.1)
pyparsing (2.2.0)
python-dateutil (2.6.1)
ranger (1.8.1)
requests (2.18.4)
rsa (3.4.2)
setuptools (38.2.4)
six (1.11.0)
team (1.0)
tornado (4.5.2)
urllib3 (1.22)
validictory (1.1.2)
youtube-dl (2017.12.14)

View File

@ -0,0 +1,7 @@
bitwarden-bin
libspotify
nerd-fonts-source-code-pro
python-pyspotify
slack-desktop
spotify
todoist-electron

View File

@ -0,0 +1,56 @@
alacritty
alsa-utils
autoconf
automake
base
bat
binutils
bison
breeze
breeze-gtk
dmenu
dunst
efibootmgr
fakeroot
firefox
fish
flex
gcc
git
gnome-themes-extra
grub
gtk-chtheme
intel-ucode
kdeconnect
libtool
linux
linux-firmware
m4
make
man-db
man-pages
mesa
ncmpcpp
neovim
newsboat
ntfs-3g
openssh
os-prober
patch
pkgconf
pulseaudio
pulseaudio-alsa
python-pip
python2
python2-pip
ranger
sudo
sway
swayidle
swaylock
texinfo
vim
waybar
which
wofi
xorg-xwayland

View File

@ -0,0 +1,40 @@
tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/cask-fonts"
tap "homebrew/core"
tap "homebrew/services"
brew "bash"
brew "bat"
brew "bats"
brew "autoconf"
brew "gdbm"
brew "gettext"
brew "hub"
brew "icu4c"
brew "jemalloc"
brew "less"
brew "libtermkey"
brew "libuv"
brew "libvterm"
brew "llvm"
brew "luajit"
brew "msgpack"
brew "neovim"
brew "node"
brew "openssl"
brew "pkg-config"
brew "python"
brew "readline"
brew "ruby-build"
brew "sqlite"
brew "unibilium"
brew "xz"
brew "zsh"
brew "zsh-completions"
cask "alacritty"
cask "bitwarden"
cask "firefox"
cask "font-sauce-code-pro-nerd-font"
cask "slack"
cask "spotify"
cask "vimr"

View File

@ -0,0 +1,3 @@
# Core package list
This package list contains core packages, either required by scripts and configurations or just nice to have and used daily.

View File

@ -0,0 +1,11 @@
Package Version
---------- ---------
futures 3.3.0
greenlet 0.4.17
msgpack 1.0.2
pip 19.2.3
pynvim 0.4.2
pyspotify 2.1.3
setuptools 41.2.0
six 1.15.0
trollius 2.2.post1

View File

@ -0,0 +1,10 @@
Package Version
-------------- -------
greenlet 0.4.17
Mopidy-MPD 3.1.0
Mopidy-Spotify 4.1.0
msgpack 1.0.2
pip 20.2.3
pynvim 0.4.2
pyspotify 2.1.3
setuptools 49.2.1

View File

@ -0,0 +1,16 @@
android-studio
dropbox
exercism-cli
gpmdp
i3-gaps
otf-fira-code
otf-font-awesome
powerline-fonts-git
python-ansicolor
python-typing
python-vint
rofi-dmenu
slack-desktop
ttf-fira-code
ttf-font-awesome
ttf-ms-fonts

View File

@ -0,0 +1,181 @@
acpi
alsa-utils
autoconf
automake
bash
bash-bats
binutils
bison
bumblebee
bzip2
chromium
clang
clojure
cmake
coreutils
cryptsetup
ctags
device-mapper
dhcpcd
dialog
diffutils
dunst
e2fsprogs
elixir
fakeroot
feh
file
filesystem
findutils
flex
gawk
gcc
gcc-libs
gettext
git
gksu
glibc
grep
grub
gvim
gzip
hexchat
htop
httpie
i3blocks
i3lock
i3status
imagemagick
inetutils
intel-ucode
intellij-idea-community-edition
iproute2
iputils
iw
jdk8-openjdk
jfsutils
jre8-openjdk
keychain
less
libtool
licenses
linux
logrotate
lvm2
m4
maim
make
man-db
man-pages
mdadm
mesa-demos
mopidy
nano
ncmpcpp
neovim
netctl
nvidia
openssh
pacman
pandoc
patch
pciutils
pcmciautils
perl
pkg-config
powerline
procps-ng
psmisc
python-pip
python2-pip
ranger
reiserfsprogs
rofi
ruby
s-nail
screenfetch
sed
shadow
sudo
sysfsutils
sysstat
systemd-sysvcompat
tar
termite
texinfo
texlive-bibtexextra
texlive-core
texlive-fontsextra
texlive-formatsextra
texlive-games
texlive-humanities
texlive-latexextra
texlive-music
texlive-pictures
texlive-pstricks
texlive-publishers
texlive-science
tmux
tree
ttf-bitstream-vera
ttf-dejavu
ttf-freefont
usbutils
util-linux
vi
vimpager
w3m
which
wpa_supplicant
xautolock
xbindkeys
xclip
xf86-video-intel
xf86-video-vesa
xfsprogs
xorg-docs
xorg-fonts-100dpi
xorg-fonts-75dpi
xorg-iceauth
xorg-luit
xorg-server-devel
xorg-server-xdmx
xorg-server-xephyr
xorg-server-xnest
xorg-server-xvfb
xorg-server-xwayland
xorg-sessreg
xorg-smproxy
xorg-x11perf
xorg-xauth
xorg-xbacklight
xorg-xcmsdb
xorg-xcursorgen
xorg-xdpyinfo
xorg-xdriinfo
xorg-xev
xorg-xgamma
xorg-xhost
xorg-xinit
xorg-xinput
xorg-xkbevd
xorg-xkbutils
xorg-xkill
xorg-xlsatoms
xorg-xlsclients
xorg-xmodmap
xorg-xpr
xorg-xprop
xorg-xrandr
xorg-xrdb
xorg-xrefresh
xorg-xset
xorg-xsetroot
xorg-xvinfo
xorg-xwd
xorg-xwininfo
xorg-xwud
xterm
zeal
zim
zsh

View File

@ -0,0 +1,13 @@
bigdecimal (default: 1.3.0)
did_you_mean (1.1.0)
io-console (default: 0.4.6)
json (default: 2.0.4)
minitest (5.10.1)
net-telnet (0.1.1)
openssl (default: 2.0.5)
power_assert (0.4.1)
psych (default: 2.2.2)
rake (12.0.0)
rdoc (default: 5.0.0)
test-unit (3.2.3)
xmlrpc (0.2.1)

View File

@ -0,0 +1,40 @@
appdirs (1.4.3)
backports-abc (0.5)
beautifulsoup4 (4.6.0)
cachetools (2.0.1)
chardet (3.0.4)
decorator (4.1.2)
funcsigs (1.0.2)
future (0.16.0)
gmusicapi (10.1.2)
gpsoauth (0.4.1)
httplib2 (0.10.3)
idna (2.6)
MechanicalSoup (0.8.0)
mock (2.0.0)
Mopidy (2.1.0)
Mopidy-GMusic (2.0.0)
mutagen (1.38)
oauth2client (4.1.2)
packaging (16.8)
pbr (3.1.1)
pip (9.0.1)
proboscis (1.2.6.0)
protobuf (3.4.0)
pyasn1 (0.3.7)
pyasn1-modules (0.1.5)
pycairo (1.13.3)
pycryptodomex (3.4.7)
pygobject (3.24.1)
Pykka (1.2.0)
pyparsing (2.2.0)
python-dateutil (2.6.1)
requests (2.18.4)
rsa (3.4.2)
setuptools (36.5.0)
singledispatch (3.4.0.3)
six (1.11.0)
tornado (4.5.2)
urllib3 (1.22)
validictory (1.1.1)
zim (0.67)

View File

@ -0,0 +1,45 @@
ansicolor (0.2.4)
appdirs (1.4.3)
beautifulsoup4 (4.6.0)
cachetools (2.0.1)
chardet (3.0.4)
decorator (4.1.2)
future (0.16.0)
gmusicapi (10.1.2)
gpsoauth (0.4.1)
httpie (0.9.9)
httplib2 (0.10.3)
idna (2.6)
Jinja2 (2.9.6)
MarkupSafe (1.0)
MechanicalSoup (0.8.0)
mock (2.0.0)
Mopidy (2.1.0)
Mopidy-GMusic (2.0.0)
mutagen (1.38)
oauth2client (4.1.2)
packaging (16.8)
pbr (3.1.1)
pip (9.0.1)
powerline-status (2.6)
proboscis (1.2.6.0)
protobuf (3.4.0)
pyasn1 (0.3.7)
pyasn1-modules (0.1.5)
pycryptodomex (3.4.7)
Pygments (2.2.0)
Pykka (1.2.1)
pyparsing (2.2.0)
pyPEG2 (2.15.2)
python-dateutil (2.6.1)
PyYAML (3.12)
ranger (1.8.1)
requests (2.18.4)
rsa (3.4.2)
setuptools (36.5.0)
six (1.11.0)
tornado (4.5.2)
typing (3.6.2)
urllib3 (1.22)
validictory (1.1.1)
vim-vint (0.3.14)

View File

@ -0,0 +1,7 @@
bitwarden-bin
libspotify
nerd-fonts-source-code-pro
python-pyspotify
slack-desktop
spotify
todoist-electron

View File

@ -0,0 +1,65 @@
alacritty
alsa-utils
autoconf
automake
base
bat
binutils
bison
breeze
breeze-gtk
dmenu
efibootmgr
fakeroot
firefox
fish
flex
gcc
git
gnome-themes-extra
grim
grub
gtk-chtheme
htop
intel-ucode
intellij-idea-community-edition
jq
kdeconnect
libtool
linux
linux-firmware
m4
make
mako
man-db
man-pages
mesa
ncmpcpp
neovim
newsboat
ntfs-3g
openssh
os-prober
patch
pkgconf
pulseaudio
pulseaudio-alsa
python-pip
python2
python2-pip
ranger
ripgrep
slurp
sudo
sway
swayidle
swaylock
texinfo
vim
waybar
which
wl-clipboard
wofi
xorg-xwayland
zathura
zsh

View File

@ -0,0 +1,126 @@
tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/cask-fonts"
tap "homebrew/core"
tap "homebrew/services"
brew "adwaita-icon-theme"
brew "asciidoctor"
brew "atk"
brew "autoconf"
brew "bash"
brew "bat"
brew "c-ares"
brew "cairo"
brew "checkstyle"
brew "chunkwm"
brew "cmake"
brew "coreutils"
brew "ctags"
brew "djvulibre"
brew "docker"
brew "elixir"
brew "emacs-plus"
brew "erlang"
brew "evince"
brew "fontconfig"
brew "freetype"
brew "fribidi"
brew "fzf"
brew "gcc"
brew "gdbm"
brew "gdk-pixbuf"
brew "gettext"
brew "ghostscript"
brew "glib"
brew "gmp"
brew "gnutls"
brew "gradle"
brew "graphite2"
brew "gsettings-desktop-schemas"
brew "gtk+3"
brew "hadoop"
brew "harfbuzz"
brew "heroku"
brew "heroku-node"
brew "hicolor-icon-theme"
brew "httpie"
brew "hub"
brew "icu4c"
brew "imagemagick@6"
brew "isl"
brew "jemalloc"
brew "jpeg"
brew "jq"
brew "less"
brew "libcroco"
brew "libepoxy"
brew "libev"
brew "libevent"
brew "libffi"
brew "libgcrypt"
brew "libgpg-error"
brew "libmpc"
brew "libpng"
brew "librsvg"
brew "libsecret"
brew "libspectre"
brew "libtasn1"
brew "libtermkey"
brew "libtiff"
brew "libtool"
brew "libunistring"
brew "libuv"
brew "libvterm"
brew "libwebsockets"
brew "libxml2"
brew "little-cms2"
brew "llvm"
brew "lua"
brew "lua@5.1"
brew "luajit"
brew "maven"
brew "mosquitto"
brew "mpfr"
brew "msgpack"
brew "neovim"
brew "nettle"
brew "node"
brew "oniguruma"
brew "openjpeg"
brew "openssl"
brew "p11-kit"
brew "pandoc"
brew "pango"
brew "pcre"
brew "pixman"
brew "pkg-config"
brew "poppler"
brew "postgresql"
brew "python"
brew "r"
brew "ranger"
brew "readline"
brew "rebar"
brew "ruby-build"
brew "screenfetch"
brew "shared-mime-info"
brew "sqlite"
brew "the_silver_searcher"
brew "tree"
brew "unibilium"
brew "unrar"
brew "wxmac"
brew "xz"
brew "zsh"
brew "zsh-completions"
cask "alacritty"
cask "android-studio"
cask "bitwarden"
cask "charles"
cask "firefox"
cask "font-sauce-code-pro-nerd-font"
cask "intellij-idea-ce"
cask "java"
cask "slack"
cask "spotify"
cask "vimr"

View File

@ -0,0 +1,3 @@
# Extended package list
This package list contains core packages, either required by scripts and configurations with additional packages that are likely to be used.

View File

@ -0,0 +1,89 @@
abbrev (default: 0.1.0)
base64 (default: 0.1.0)
benchmark (default: 0.1.1)
bigdecimal (default: 3.0.0)
bundler (default: 2.2.3)
cgi (default: 0.2.0)
csv (default: 3.1.9)
date (default: 3.1.0)
dbm (default: 1.1.0)
debug (default: 0.1.0)
delegate (default: 0.2.0)
did_you_mean (default: 1.5.0)
digest (default: 3.0.0)
drb (default: 2.0.4)
english (default: 0.7.1)
erb (default: 2.2.0)
etc (default: 1.2.0)
fcntl (default: 1.0.0)
fiddle (default: 1.0.6)
fileutils (default: 1.5.0)
find (default: 0.1.0)
forwardable (default: 1.3.2)
gdbm (default: 2.1.0)
getoptlong (default: 0.1.1)
io-console (default: 0.5.6)
io-nonblock (default: 0.1.0)
io-wait (default: 0.1.0)
ipaddr (default: 1.2.2)
irb (default: 1.3.0)
json (default: 2.5.1)
logger (default: 1.4.3)
matrix (default: 0.3.1)
minitest (5.14.2)
msgpack (1.3.3)
multi_json (1.15.0)
mutex_m (default: 0.1.1)
neovim (0.8.1)
net-ftp (default: 0.1.1)
net-http (default: 0.1.1)
net-imap (default: 0.1.1)
net-pop (default: 0.1.1)
net-protocol (default: 0.1.0)
net-smtp (default: 0.2.1)
nkf (default: 0.1.0)
observer (default: 0.1.1)
open-uri (default: 0.1.0)
open3 (default: 0.1.1)
openssl (default: 2.2.0)
optparse (default: 0.1.0)
ostruct (default: 0.3.1)
pathname (default: 0.1.0)
power_assert (1.2.0)
pp (default: 0.1.0)
prettyprint (default: 0.1.0)
prime (default: 0.1.2)
pstore (default: 0.1.1)
psych (default: 3.3.0)
racc (default: 1.5.1)
rake (13.0.3)
rbs (1.0.0)
rdoc (default: 6.3.0)
readline (default: 0.0.2)
readline-ext (default: 0.1.1)
reline (default: 0.2.0)
resolv (default: 0.2.0)
resolv-replace (default: 0.1.0)
rexml (3.2.4)
rinda (default: 0.1.0)
rss (0.2.9)
securerandom (default: 0.1.0)
set (default: 1.0.1)
shellwords (default: 0.1.0)
singleton (default: 0.1.1)
stringio (default: 3.0.0)
strscan (default: 3.0.0)
syslog (default: 0.1.0)
tempfile (default: 0.1.1)
test-unit (3.3.7)
time (default: 0.1.0)
timeout (default: 0.1.1)
tmpdir (default: 0.1.1)
tracer (default: 0.1.1)
tsort (default: 0.1.0)
typeprof (0.11.0)
un (default: 0.1.0)
uri (default: 0.10.1)
weakref (default: 0.1.1)
yaml (default: 0.1.1)
zlib (default: 1.1.0)

View File

@ -0,0 +1,3 @@
/home/ensar/.asdf/installs/nodejs/15.5.0/.npm/lib
└── neovim@4.9.0

View File

@ -0,0 +1,11 @@
Package Version
---------- ---------
futures 3.3.0
greenlet 0.4.17
msgpack 1.0.2
pip 19.2.3
pynvim 0.4.2
pyspotify 2.1.3
setuptools 41.2.0
six 1.15.0
trollius 2.2.post1

View File

@ -0,0 +1,10 @@
Package Version
-------------- -------
greenlet 0.4.17
Mopidy-MPD 3.1.0
Mopidy-Spotify 4.1.0
msgpack 1.0.2
pip 20.2.3
pynvim 0.4.2
pyspotify 2.1.3
setuptools 49.2.1

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,28 @@
com.getpostman.Postman
com.google.AndroidStudio
com.jetbrains.IntelliJ-IDEA-Community
com.jetbrains.PyCharm-Community
com.obsproject.Studio
com.spotify.Client
com.valvesoftware.Steam
org.freedesktop.Platform
org.freedesktop.Platform.Compat.i386
org.freedesktop.Platform.GL.default
org.freedesktop.Platform.GL.default
org.freedesktop.Platform.GL.nvidia-455-28
org.freedesktop.Platform.GL32.default
org.freedesktop.Platform.GL32.nvidia-440-100
org.freedesktop.Platform.GL32.nvidia-440-82
org.freedesktop.Platform.GL32.nvidia-450-66
org.freedesktop.Platform.GL32.nvidia-455-28
org.freedesktop.Platform.openh264
org.freedesktop.Sdk
org.gimp.GIMP
org.gimp.GIMP.Manual
org.gnome.Platform
org.godotengine.Godot
org.gtk.Gtk3theme.Pop-dark
org.kde.Platform
org.kde.PlatformTheme.QGnomePlatform
org.kde.PlatformTheme.QtSNI
org.kde.WaylandDecoration.QGnomePlatform-decoration

View File

@ -0,0 +1,3 @@
/usr/local/lib
└── expo-cli@3.28.0

View File

@ -0,0 +1,4 @@
Package Version
---------- -------
pip 19.2.3
setuptools 41.2.0

View File

@ -0,0 +1,4 @@
Package Version
---------- -------
pip 20.2.3
setuptools 49.2.1

View File

@ -0,0 +1 @@
gpmdp

View File

@ -0,0 +1,303 @@
accountsservice
acpi
acpid
alsa-firmware
alsa-utils
android-tools
android-udev
audacious
autoconf
automake
avahi
b43-fwcutter
bash
binutils
bison
blueman
btrfs-progs
bzip2
cantarell-fonts
catfish
chromium
coreutils
cpupower
crda
cronie
cryptsetup
cups
cups-pdf
cups-pk-helper
deluge
device-mapper
dhclient
dhcpcd
diffutils
dmidecode
dmraid
dnsmasq
dosfstools
e2fsprogs
ecryptfs-utils
efibootmgr
engrampa
engrampa-thunar-plugin
exfat-utils
exo
f2fs-tools
fakeroot
ff-theme-util
ffmpeg
ffmpegthumbnailer
file
filesystem
findutils
flex
freetype2
galculator-gtk2
garcon
gawk
gcc-libs-multilib
gcc-multilib
gconf
gettext
ghostscript
gimp
git
gksu
glibc
gnome-icon-theme
gnome-keyring
gnome-themes-standard
gparted
grep
grub
gsfonts
gst-libav
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gtk-theme-breath
gtk-xfce-engine
gufw
gvfs
gvfs-afc
gvfs-gphoto2
gvfs-mtp
gvfs-nfs
gvfs-smb
gzip
haveged
hexchat
hplip
htop
inetutils
intel-ucode
inxi
iproute2
iptables
iputils
ipw2100-fw
ipw2200-fw
jdk8-openjdk
jfsutils
jre8-openjdk
jre8-openjdk-headless
less
lib32-flex
lib32-libva-vdpau-driver
lib32-mesa-demos
lib32-mesa-vdpau
libdvdcss
libgsf
libopenraw
libreoffice-still
libtool
libva-mesa-driver
libva-vdpau-driver
licenses
light-locker
lightdm
lightdm-gtk-greeter
lightdm-gtk-greeter-settings
linux-firmware
linux49
logrotate
lsb-release
lvm2
m4
make
man-db
man-pages
manjaro-alsa
manjaro-browser-settings
manjaro-documentation-en
manjaro-firmware
manjaro-hello
manjaro-hotfixes
manjaro-pulse
manjaro-release
manjaro-settings-manager
manjaro-settings-manager-notifier
manjaro-system
manjaro-wallpapers-17.0
manjaro-xfce-settings
mdadm
memtest86+
menulibre
mesa-demos
mesa-vdpau
mhwd
mhwd-db
mkinitcpio-openswap
mlocate
mobile-broadband-provider-info
modemmanager
mousepad
mtpfs
mugshot
nano
network-manager-applet
networkmanager
networkmanager-dispatcher-ntpd
networkmanager-openconnect
networkmanager-openvpn
networkmanager-pptp
networkmanager-vpnc
nfs-utils
nss-mdns
ntfs-3g
ntp
numlockx
openresolv
openssh
orage
os-prober
p7zip
pacman
pamac
patch
patchutils
pavucontrol
pciutils
pcmciautils
perl
perl-file-mimeinfo
pidgin
pkg-config
poppler-data
poppler-glib
powerline-fonts
powertop
procps-ng
psmisc
pulseaudio-bluetooth
pulseaudio-ctl
pulseaudio-zeroconf
pyqt5-common
python-pillow
python-pip
python-pyqt5
python-reportlab
qpdfview
reiserfsprogs
rsync
s-nail
samba
sed
shadow
splix
steam-manjaro
steam-native
subversion
sudo
sysfsutils
systemd-sysvcompat
tar
terminus-font
texinfo
thunar
thunar-archive-plugin
thunar-media-tags-plugin
thunar-volman
tlp
ttf-bitstream-vera
ttf-droid
ttf-inconsolata
ttf-indic-otf
ttf-liberation
tumbler
udiskie
udisks2
unace
unrar
usb_modeswitch
usbutils
util-linux
vi
vibrancy-colors
viewnior
vim
vlc-nightly
wget
which
wpa_supplicant
xclip
xcursor-simpleandsoft
xcursor-vanilla-dmz-aa
xdg-su
xdg-user-dirs
xdg-utils
xf86-input-elographics
xf86-input-evdev
xf86-input-keyboard
xf86-input-libinput
xf86-input-mouse
xf86-input-void
xf86-video-nouveau
xfburn
xfce4-appfinder
xfce4-battery-plugin
xfce4-clipman-plugin
xfce4-cpufreq-plugin
xfce4-cpugraph-plugin
xfce4-dict
xfce4-diskperf-plugin
xfce4-fsguard-plugin
xfce4-genmon-plugin
xfce4-mailwatch-plugin
xfce4-mount-plugin
xfce4-mpc-plugin
xfce4-netload-plugin
xfce4-notes-plugin
xfce4-notifyd
xfce4-panel
xfce4-power-manager
xfce4-pulseaudio-plugin
xfce4-screenshooter
xfce4-sensors-plugin
xfce4-session
xfce4-settings
xfce4-smartbookmark-plugin
xfce4-systemload-plugin
xfce4-taskmanager
xfce4-terminal
xfce4-time-out-plugin
xfce4-timer-plugin
xfce4-verve-plugin
xfce4-wavelan-plugin
xfce4-weather-plugin
xfce4-whiskermenu-plugin
xfce4-xkb-plugin
xfconf
xfdesktop
xfsprogs
xfwm4
xfwm4-themes
xorg-server
xorg-twm
xorg-xinit
xorg-xkill
yelp
zd1211-firmware
zsh

View File

@ -0,0 +1,31 @@
appdirs (1.4.3)
catfish (1.4.2)
docopt (0.6.2)
gufw (17.10.0)
keyutils (0.5)
lightdm-gtk-greeter-settings (1.2.2)
louis (3.3.0)
menulibre (2.1.3)
mugshot (0.3.2)
npyscreen (4.10.5)
olefile (0.44)
packaging (16.8)
pacman-mirrors (4.6)
pexpect (4.3.0)
Pillow (4.3.0)
pip (9.0.1)
psutil (5.4.1)
ptyprocess (0.5.2)
pycairo (1.15.4)
pygobject (3.26.1)
pyparsing (2.2.0)
python-distutils-extra (2.39)
python-libtorrent (1.1.5)
python-sane (2.8.3)
pyxdg (0.25)
PyYAML (3.12)
reportlab (3.4.0)
setuptools (38.2.3)
six (1.11.0)
team (1.0)
udiskie (1.7.2)

View File

@ -0,0 +1,3 @@
## Symlinks
This directory contains all symlinkable files. All files that will be linked to $HOME or any other directory should be stored here. Not all files will always be linked (depends on platform and on selected options).

129
symlinks/bashrc 100644
View File

@ -0,0 +1,129 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
cd ~
# Switch to ZSH shell
if test -t 1; then
exec zsh
fi
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
source "$HOME/.cargo/env"

View File

@ -0,0 +1,4 @@
#!/bin/bash
id=`$HOME/bin/i3-id-list`
sway-msg [id="$id"] focus > /dev/null

View File

@ -0,0 +1,32 @@
#!/bin/bash
# Quick install flag
quick=
while getopts q name
do
case $name in
q) quick=1;;
?) echo "Usage: aurfetch [-q] packagename\n"
exit 2;;
esac
done
# Move away from options
shift $(($OPTIND - 1))
if [ -z "$1" ]; then
echo "Missing package name!"
else
LOC=$PWD
PKG_NAME=$1
git clone https://aur.archlinux.org/$PKG_NAME.git $AUR_INSTALL_HOME/$PKG_NAME
cd $AUR_INSTALL_HOME/$PKG_NAME
if [ -z "$quick" ]; then
vim PKGBUILD
fi
makepkg -si
cd $LOC
fi

View File

@ -0,0 +1,27 @@
#!/bin/python3
import sys, json, urllib.parse, http.client, getopt
args = sys.argv[1:]
try:
optlist, args = getopt.getopt(args, 'd')
except getopt.GetoptError as err:
print(err)
sys.exit(2)
searchby = "name";
for o in optlist:
if o == "-d":
descsearch = "name-desc";
argstring = ' '.join(args)
search_string = urllib.parse.quote_plus(argstring)
conn = http.client.HTTPSConnection("aur.archlinux.org")
conn.request("GET", "/rpc/?v=5&type=search&by=" + searchby + "&arg=" + search_string)
response = conn.getresponse().read().decode("utf-8")
results = json.loads(response)['results']
for result in results:
print(result['Name'])

View File

@ -0,0 +1,90 @@
#!/bin/bash
# Copyright (C) 2012 Stefan Breunig <stefan+measure-net-speed@mathphys.fsk.uni-heidelberg.de>
# Copyright (C) 2014 kaueraal
# Copyright (C) 2015 Thiago Perrotta <perrotta dot thiago at poli dot ufrj dot br>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Use the provided interface, otherwise the device used for the default route.
if [[ -n $BLOCK_INSTANCE ]]; then
INTERFACE=$BLOCK_INSTANCE
else
INTERFACE=$(ip route | awk '/^default/ { print $5 ; exit }')
fi
# Issue #36 compliant.
if ! [ -e "/sys/class/net/${INTERFACE}/operstate" ] || ! [ "`cat /sys/class/net/${INTERFACE}/operstate`" = "up" ]
then
echo "$INTERFACE down"
echo "$INTERFACE down"
echo "#FF0000"
exit 0
fi
# path to store the old results in
path="/dev/shm/$(basename $0)-${INTERFACE}"
# grabbing data for each adapter.
read rx < "/sys/class/net/${INTERFACE}/statistics/rx_bytes"
read tx < "/sys/class/net/${INTERFACE}/statistics/tx_bytes"
# get time
time=$(date +%s)
# write current data if file does not exist. Do not exit, this will cause
# problems if this file is sourced instead of executed as another process.
if ! [[ -f "${path}" ]]; then
echo "${time} ${rx} ${tx}" > "${path}"
chmod 0666 "${path}"
fi
# read previous state and update data storage
read old < "${path}"
echo "${time} ${rx} ${tx}" > "${path}"
# parse old data and calc time passed
old=(${old//;/ })
time_diff=$(( $time - ${old[0]} ))
# sanity check: has a positive amount of time passed
[[ "${time_diff}" -gt 0 ]] || exit
# calc bytes transferred, and their rate in byte/s
rx_diff=$(( $rx - ${old[1]} ))
tx_diff=$(( $tx - ${old[2]} ))
rx_rate=$(( $rx_diff / $time_diff ))
tx_rate=$(( $tx_diff / $time_diff ))
# shift by 10 bytes to get KiB/s. If the value is larger than
# 1024^2 = 1048576, then display MiB/s instead
# incoming
echo -n "IN "
rx_kib=$(( $rx_rate >> 10 ))
if [[ "$rx_rate" -gt 1048576 ]]; then
printf '%sM' "`echo "scale=1; $rx_kib / 1024" | bc`"
else
echo -n "${rx_kib}K"
fi
echo -n " "
# outgoing
echo -n "OUT "
tx_kib=$(( $tx_rate >> 10 ))
if [[ "$tx_rate" -gt 1048576 ]]; then
printf '%sM' "`echo "scale=1; $tx_kib / 1024" | bc`"
else
echo -n "${tx_kib}K"
fi

View File

@ -0,0 +1,74 @@
#!/usr/bin/perl
#
# Copyright 2014 Pierre Mavro <deimos@deimos.fr>
# Copyright 2014 Vivien Didelot <vivien@didelot.org>
#
# Licensed under the terms of the GNU GPL v3, or any later version.
#
# This script is meant to use with i3blocks. It parses the output of the "acpi"
# command (often provided by a package of the same name) to read the status of
# the battery, and eventually its remaining time (to full charge or discharge).
#
# The color will gradually change for a percentage below 85%, and the urgency
# (exit code 33) is set if there is less that 5% remaining.
use strict;
use warnings;
use utf8;
my $acpi;
my $status;
my $percent;
my $full_text;
my $short_text;
my $bat_number = $ENV{BLOCK_INSTANCE} || 0;
# read the first line of the "acpi" command output
open (ACPI, "acpi -b | grep 'Battery $bat_number' |") or die;
$acpi = <ACPI>;
close(ACPI);
# fail on unexpected output
if ($acpi !~ /: (\w+), (\d+)%/) {
die "$acpi\n";
}
$status = $1;
$percent = $2;
$full_text = "$percent%";
if ($status eq 'Discharging') {
$full_text .= ' DIS';
} elsif ($status eq 'Charging') {
$full_text .= ' CHR';
}
$short_text = $full_text;
if ($acpi =~ /(\d\d:\d\d):/) {
$full_text .= " ($1)";
}
# print text
print "$full_text\n";
print "$short_text\n";
# consider color and urgent flag only on discharge
if ($status eq 'Discharging') {
if ($percent < 20) {
print "#FF0000\n";
} elsif ($percent < 40) {
print "#FFAE00\n";
} elsif ($percent < 60) {
print "#FFF600\n";
} elsif ($percent < 85) {
print "#A8FF00\n";
}
if ($percent < 5) {
exit(33);
}
}
exit(0);

View File

@ -0,0 +1,55 @@
#!/usr/bin/perl
#
# Copyright 2014 Pierre Mavro <deimos@deimos.fr>
# Copyright 2014 Vivien Didelot <vivien@didelot.org>
# Copyright 2014 Andreas Guldstrand <andreas.guldstrand@gmail.com>
#
# Licensed under the terms of the GNU GPL v3, or any later version.
use strict;
use warnings;
use utf8;
use Getopt::Long;
# default values
my $t_warn = 50;
my $t_crit = 80;
my $cpu_usage = -1;
sub help {
print "Usage: cpu_usage [-w <warning>] [-c <critical>]\n";
print "-w <percent>: warning threshold to become yellow\n";
print "-c <percent>: critical threshold to become red\n";
exit 0;
}
GetOptions("help|h" => \&help,
"w=i" => \$t_warn,
"c=i" => \$t_crit);
# Get CPU usage
$ENV{LC_ALL}="en_US"; # if mpstat is not run under en_US locale, things may break, so make sure it is
open (MPSTAT, 'mpstat 1 1 |') or die;
while (<MPSTAT>) {
if (/^.*\s+(\d+\.\d+)\s+$/) {
$cpu_usage = 100 - $1; # 100% - %idle
last;
}
}
close(MPSTAT);
$cpu_usage eq -1 and die 'Can\'t find CPU information';
# Print short_text, full_text
printf "%.2f%%\n", $cpu_usage;
printf "%.2f%%\n", $cpu_usage;
# Print color, if needed
if ($cpu_usage >= $t_crit) {
print "#FF0000\n";
exit 33;
} elsif ($cpu_usage >= $t_warn) {
print "#FFFC00\n";
}
exit 0;

View File

@ -0,0 +1,41 @@
#!/bin/sh
# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
DIR="${BLOCK_INSTANCE:-$HOME}"
ALERT_LOW="${1:-10}" # color will turn red under this value (default: 10%)
df -h -P -l "$DIR" | awk -v alert_low=$ALERT_LOW '
/\/.*/ {
# full text
print $4
# short text
print $4
use=$5
# no need to continue parsing
exit 0
}
END {
gsub(/%$/,"",use)
if (100 - use < alert_low) {
# color
print "#FF0000"
}
}
'

View File

@ -0,0 +1,74 @@
#!/usr/bin/python
import json
from os.path import expanduser
import sys
import argparse
home = expanduser("~")
parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter, description="Parses and print Google Play Music Desktop Player song info")
def parseJson():
try:
with open(home + '/.config/Google Play Music Desktop Player/json_store/playback.json') as f:
data = f.read()
except:
with open(home + '/GPMDP_STORE/playback.json') as f:
data = f.read()
return json.loads(data)
def getSong(data):
return data['song']['title']
def getAlbum(data):
return data['song']['album']
def getArtist(data):
return data['song']['artist']
def convert_time(ms):
x = ms / 1000
x % 60
m, s = divmod(x, 60)
return "%d:%02d" % (m, s)
def getProgress(data):
cur = data['time']['current']
total = data['time']['total']
return convert_time(cur) + "/" + convert_time(total)
def parseLayout(layout):
displaystr = ""
for i in layout:
if i == 't':
displaystr += getSong(data)
elif i == 'a':
displaystr += getAlbum(data)
elif i == 'A':
displaystr += getArtist(data)
elif i == 'p':
displaystr += getProgress(data)
elif i == '-':
displaystr += " - "
return displaystr
def run(data, layout):
displaystr = ""
if data['playing']:
displaystr = parseLayout(layout)
else:
sys.stdout.write(" ")
if sys.version[0] == '2':
print(displaystr.encode('utf-8'))
else:
print(displaystr)
parser.add_argument("--layout",
action="store",
dest="layout",
help="t = Song Title\na = Song Album\nA = Artist Name\np = Track time progess\n- = Spacer\nExample: t-a-A-p",
)
args = parser.parse_args()
data = parseJson()
try:
run(data, args.layout)
except:
run(data, "t-a-A-p")

View File

@ -0,0 +1,61 @@
#!/bin/bash
# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
# Copyright (C) 2014 Alexander Keller <github@nycroth.com>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#------------------------------------------------------------------------
# Use the provided interface, otherwise the device used for the default route.
if [[ -n $BLOCK_INSTANCE ]]; then
IF=$BLOCK_INSTANCE
else
IF=$(ip route | awk '/^default/ { print $5 ; exit }')
fi
#------------------------------------------------------------------------
# As per #36 -- It is transparent: e.g. if the machine has no battery or wireless
# connection (think desktop), the corresponding block should not be displayed.
[[ ! -d /sys/class/net/${IF} ]] && exit
#------------------------------------------------------------------------
if [[ "$(cat /sys/class/net/$IF/operstate)" = 'down' ]]; then
echo down # full text
echo down # short text
echo \#FF0000 # color
exit
fi
case $1 in
-4)
AF=inet ;;
-6)
AF=inet6 ;;
*)
AF=inet6? ;;
esac
# if no interface is found, use the first device with a global scope
IPADDR=$(ip addr show $IF | perl -n -e "/$AF ([^\/]+).* scope global/ && print \$1 and exit")
case $BLOCK_BUTTON in
3) echo -n "$IPADDR" | xclip -q -se c ;;
esac
#------------------------------------------------------------------------
echo "$IPADDR" # full text
echo "$IPADDR" # short text

View File

@ -0,0 +1,70 @@
#!/usr/bin/perl
#
# Copyright 2014 Marcelo Cerri <mhcerri at gmail dot com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
use strict;
use warnings;
use utf8;
use Getopt::Long;
use File::Basename;
# Default values
my $indicator = $ENV{BLOCK_INSTANCE} || "CAPS";
my $color_on = "#00FF00";
my $color_off = "#222222";
sub help {
my $program = basename($0);
printf "Usage: %s [-c <color on>] [-C <color off>]\n", $program;
printf " -c <color on>: hex color to use when indicator is on\n";
printf " -C <color off>: hex color to use when indicator is off\n";
printf "\n";
printf "Note: environment variable \$BLOCK_INSTANCE should be one of:\n";
printf " CAPS, NUM (default is CAPS).\n";
exit 0;
}
Getopt::Long::config qw(no_ignore_case);
GetOptions("help|h" => \&help,
"c=s" => \$color_on,
"C=s" => \$color_off) or exit 1;
# Key mapping
my %indicators = (
CAPS => 0x00000001,
NUM => 0x00000002,
);
# Retrieve key flags
my $mask = 0;
open(XSET, "xset -q |") or die;
while (<XSET>) {
if (/LED mask:\s*([0-9]+)/) {
$mask = $1;
last;
}
}
close(XSET);
# Output
printf "%s\n", $indicator;
printf "%s\n", $indicator;
if (($indicators{$indicator} || 0) & $mask) {
printf "%s\n", $color_on;
} else {
printf "%s\n", $color_off;
}
exit 0

View File

@ -0,0 +1,34 @@
#!/bin/sh
# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
load="$(cut -d ' ' -f1 /proc/loadavg)"
cpus="$(nproc)"
# full text
echo "$load"
# short text
echo "$load"
# color if load is too high
awk -v cpus=$cpus -v cpuload=$load '
BEGIN {
if (cpus <= cpuload) {
print "#FF0000";
exit 33;
}
}
'

View File

@ -0,0 +1,7 @@
#!/bin/bash
case $BLOCK_BUTTON in
1) ~/.config/other-scripts/switch-input.sh
esac
setxkbmap -query | grep -i "layout" | awk '{print $2}'

View File

@ -0,0 +1,76 @@
#!/usr/bin/perl
# Copyright (C) 2014 Tony Crisci <tony@dubstepdish.com>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Requires playerctl binary to be in your path (except cmus)
# See: https://github.com/acrisci/playerctl
# Set instance=NAME in the i3blocks configuration to specify a music player
# (playerctl will attempt to connect to org.mpris.MediaPlayer2.[NAME] on your
# DBus session).
use Env qw(BLOCK_INSTANCE);
my @metadata = ();
my $player_arg = "";
if ($BLOCK_INSTANCE) {
$player_arg = "--player='$BLOCK_INSTANCE'";
}
if ($ENV{'BLOCK_BUTTON'} == 1) {
system("playerctl $player_arg previous");
} elsif ($ENV{'BLOCK_BUTTON'} == 2) {
system("playerctl $player_arg play-pause");
} elsif ($ENV{'BLOCK_BUTTON'} == 3) {
system("playerctl $player_arg next");
}
if ($player_arg eq '' or $player_arg =~ /cmus$/) {
# try cmus first
my @cmus = split /^/, qx(cmus-remote -Q);
if ($? == 0) {
foreach my $line (@cmus) {
my @data = split /\s/, $line;
if (shift @data eq 'tag') {
my $key = shift @data;
my $value = join ' ', @data;
@metadata[0] = $value if $key eq 'artist';
@metadata[1] = $value if $key eq 'title';
}
}
if (@metadata) {
# metadata found so we are done
print(join ' - ', @metadata);
exit 0;
}
}
# if cmus was given, we are done
exit 0 unless $player_arg eq '';
}
my $artist = qx(playerctl $player_arg metadata artist);
# exit status will be nonzero when playerctl cannot find your player
exit(0) if $?;
push(@metadata, $artist) if $artist;
my $title = qx(playerctl $player_arg metadata title);
exit(0) if $?;
push(@metadata, $title) if $title;
print(join(" - ", @metadata)) if @metadata;

View File

@ -0,0 +1,49 @@
#!/bin/sh
# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
TYPE="${BLOCK_INSTANCE:-mem}"
awk -v type=$TYPE '
/^MemTotal:/ {
mem_total=$2
}
/^MemFree:/ {
mem_free=$2
}
/^Buffers:/ {
mem_free+=$2
}
/^Cached:/ {
mem_free+=$2
}
/^SwapTotal:/ {
swap_total=$2
}
/^SwapFree:/ {
swap_free=$2
}
END {
# full text
if (type == "swap")
printf("%.1fG\n", (swap_total-swap_free)/1024/1024)
else
printf("%.1fG\n", mem_free/1024/1024)
# TODO: short text
# TODO: color (if less than X%)
}
' /proc/meminfo

View File

@ -0,0 +1,149 @@
#!/usr/bin/perl
# Made by Pierre Mavro/Deimosfr <deimos@deimos.fr>
# Licensed under the terms of the GNU GPL v3, or any later version.
# Version: 0.2
# Usage:
# 1. The configuration name of OpenVPN should be familiar for you (home,work...)
# 2. The device name in your configuration file should be fully named (tun0,tap1...not only tun or tap)
# 3. When you launch one or multiple OpenVPN connexion, be sure the PID file is written in the correct folder (ex: --writepid /run/openvpn/home.pid)
use strict;
use warnings;
use utf8;
use Getopt::Long;
my $openvpn_enabled='/dev/shm/openvpn_i3blocks_enabled';
my $openvpn_disabled='/dev/shm/openvpn_i3blocks_disabled';
# Print output
sub print_output {
my $ref_pid_files = shift;
my @pid_files = @$ref_pid_files;
my $change=0;
# Total pid files
my $total_pid = @pid_files;
if ($total_pid == 0) {
print "VPN: down\n"x2;
# Delete OpenVPN i3blocks temp files
if (-f $openvpn_enabled) {
unlink $openvpn_enabled or die "Can't delete $openvpn_enabled\n";
# Colorize if VPN has just went down
print '#FF0000\n';
}
unless (-f $openvpn_disabled) {
open(my $shm, '>', $openvpn_disabled) or die "Can't write $openvpn_disabled\n";
}
exit(0);
}
# Check if interface device is present
my $vpn_found=0;
my $pid;
my $cmd_line;
my @config_name;
my @config_path;
my $interface;
my $current_config_path;
my $current_config_name;
foreach (@pid_files) {
# Get current PID
$pid=0;
open(PID, '<', $_);
while(<PID>) {
chomp $_;
$pid = $_;
}
close(PID);
# Check if PID has been found
if ($pid ==0) {
print "Can't get PID $_: $!\n";
}
# Check if PID is still alive
$cmd_line='/proc/'.$pid.'/cmdline';
if (-f $cmd_line) {
# Get config name
open(CMD_LINE, '<', $cmd_line);
while(<CMD_LINE>) {
chomp $_;
if ($_ =~ /--config\s*(.*\.conf)/) {
# Get interface from config file
$current_config_path = $1;
# Remove unwanted escape chars
$current_config_path =~ s/\x{00}//g;
$interface = 'null';
# Get configuration name
if ($current_config_path =~ /(\w+).conf/) {
$current_config_name=$1;
} else {
$current_config_name='unknow';
}
# Get OpenVPN interface device name
open(CONFIG, '<', $current_config_path) or die "Can't read config file '$current_config_path': $!\n";
while(<CONFIG>) {
chomp $_;
if ($_ =~ /dev\s+(\w+)/) {
$interface=$1;
last;
}
}
close(CONFIG);
# check if interface exist
unless ($interface eq 'null') {
if (-d "/sys/class/net/$interface") {
push @config_name, $current_config_name;
$vpn_found=1;
# Write enabled file
unless (-f $openvpn_enabled) {
open(my $shm, '>', $openvpn_enabled) or die "Can't write $openvpn_enabled\n";
$change=1;
}
}
}
}
}
close(CMD_LINE);
}
}
# Check if PID found
my $names;
my $short_status;
if ($vpn_found == 1) {
$names = join('/', @config_name);
$short_status='up';
} else {
$short_status='down';
$names = $short_status;
}
print "VPN: $names\n";
print "VPN: $short_status\n";
# Print color if there were changes
print "#00FF00\n" if ($change == 1);
exit(0);
}
sub check_opts {
# Vars
my @pid_file=glob '/run/openvpn/*.pid';
# Set options
GetOptions( "help|h" => \&help,
"p=s" => \@pid_file);
print_output(\@pid_file);
}
sub help {
print "Usage: openvpn [-d pid folder files]\n";
print "-d : pid folder files (default /run/openvpn/*.pid)\n";
print "Note: devices in configuration file should be named with their number (ex: tun0, tap1)\n";
exit(1);
}
&check_opts;

View File

@ -0,0 +1,69 @@
#!/usr/bin/perl
# Copyright 2014 Pierre Mavro <deimos@deimos.fr>
# Copyright 2014 Vivien Didelot <vivien@didelot.org>
# Copyright 2014 Andreas Guldstrand <andreas.guldstrand@gmail.com>
# Copyright 2014 Benjamin Chretien <chretien at lirmm dot fr>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
use strict;
use warnings;
use utf8;
use Getopt::Long;
binmode(STDOUT, ":utf8");
# default values
my $t_warn = 70;
my $t_crit = 90;
my $chip = "";
my $temperature = -9999;
sub help {
print "Usage: temperature [-w <warning>] [-c <critical>] [--chip <chip>]\n";
print "-w <percent>: warning threshold to become yellow\n";
print "-c <percent>: critical threshold to become red\n";
print "--chip <chip>: sensor chip\n";
exit 0;
}
GetOptions("help|h" => \&help,
"w=i" => \$t_warn,
"c=i" => \$t_crit,
"chip=s" => \$chip);
# Get chip temperature
open (SENSORS, "sensors -u $chip |") or die;
while (<SENSORS>) {
if (/^\s+temp1_input:\s+[\+]*([\-]*\d+\.\d)/) {
$temperature = $1;
last;
}
}
close(SENSORS);
$temperature eq -9999 and die 'Cannot find temperature';
# Print short_text, full_text
print "$temperature°C\n" x2;
# Print color, if needed
if ($temperature >= $t_crit) {
print "#FF0000\n";
exit 33;
} elsif ($temperature >= $t_warn) {
print "#FFFC00\n";
}
exit 0;

View File

@ -0,0 +1,70 @@
#!/bin/bash
# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
# Copyright (C) 2014 Alexander Keller <github@nycroth.com>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#------------------------------------------------------------------------
# The second parameter overrides the mixer selection
# For PulseAudio users, use "pulse"
# For Jack/Jack2 users, use "jackplug"
# For ALSA users, you may use "default" for your primary card
# or you may use hw:# where # is the number of the card desired
MIXER="default"
[ -n "$(lsmod | grep pulse)" ] && MIXER="pulse"
[ -n "$(lsmod | grep jack)" ] && MIXER="jackplug"
MIXER="${2:-$MIXER}"
# The instance option sets the control to report and configure
# This defaults to the first control of your selected mixer
# For a list of the available, use `amixer -D $Your_Mixer scontrols`
SCONTROL="${BLOCK_INSTANCE:-$(amixer -D $MIXER scontrols |
sed -n "s/Simple mixer control '\([A-Za-z ]*\)',0/\1/p" |
head -n1
)}"
# The first parameter sets the step to change the volume by (and units to display)
# This may be in in % or dB (eg. 5% or 3dB)
STEP="${1:-5%}"
#------------------------------------------------------------------------
capability() { # Return "Capture" if the device is a capture device
amixer -D $MIXER get $SCONTROL |
sed -n "s/ Capabilities:.*cvolume.*/Capture/p"
}
volume() {
amixer -D $MIXER get $SCONTROL $(capability)
}
format() {
perl_filter='if (/.*\[(\d+%)\] (\[(-?\d+.\d+dB)\] )?\[(on|off)\]/)'
perl_filter+='{CORE::say $4 eq "off" ? "MUTE" : "'
# If dB was selected, print that instead
perl_filter+=$([[ $STEP = *dB ]] && echo '$3' || echo '$1')
perl_filter+='"; exit}'
perl -ne "$perl_filter"
}
#------------------------------------------------------------------------
case $BLOCK_BUTTON in
3) amixer -q -D $MIXER sset $SCONTROL $(capability) toggle ;; # right click, mute/unmute
4) amixer -q -D $MIXER sset $SCONTROL $(capability) ${STEP}+ unmute ;; # scroll up, increase
5) amixer -q -D $MIXER sset $SCONTROL $(capability) ${STEP}- unmute ;; # scroll down, decrease
esac
volume | format

View File

@ -0,0 +1,46 @@
#!/bin/bash
# Copyright (C) 2014 Alexander Keller <github@nycroth.com>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#------------------------------------------------------------------------
INTERFACE="${BLOCK_INSTANCE:-wlan0}"
#------------------------------------------------------------------------
# As per #36 -- It is transparent: e.g. if the machine has no battery or wireless
# connection (think desktop), the corresponding block should not be displayed.
[[ ! -d /sys/class/net/${INTERFACE}/wireless ]] ||
[[ "$(cat /sys/class/net/$INTERFACE/operstate)" = 'down' ]] && exit
#------------------------------------------------------------------------
QUALITY=$(grep $INTERFACE /proc/net/wireless | awk '{ print int($3 * 100 / 70) }')
#------------------------------------------------------------------------
echo $QUALITY% # full text
echo $QUALITY% # short text
# color
if [[ $QUALITY -ge 80 ]]; then
echo "#00FF00"
elif [[ $QUALITY -lt 80 ]]; then
echo "#FFF600"
elif [[ $QUALITY -lt 60 ]]; then
echo "#FFAE00"
elif [[ $QUALITY -lt 40 ]]; then
echo "#FF0000"
fi

View File

@ -0,0 +1,42 @@
#!/bin/bash
INSTALLATIONS_DIRECTORY=~/.dotfiles/installed_packages
function get_installations()
{
ls -l --time-style="long-iso" $INSTALLATIONS_DIRECTORY | grep -v ${HOSTNAME} | awk 'NR>1 {print $8}'
}
# Get selected installation to clone
if [ -z "$1" ]
then
if type wofi > /dev/null 2>&1
then
INSTALLATION=$( (echo empty; get_installations) | wofi -dmenu -only-match -p "Select host to clone installation from:")
else
PS3='Please select installation to clone: '
select opt in $(get_installations)
do
INSTALLATION=$opt
break
done
fi
else
INSTALLATION=$1
fi
SELECTED_INSTALL_DIR=$INSTALLATIONS_DIRECTORY/$INSTALLATION
if [ x"empty" = x"${INSTALLATION}" ]
then
echo "No operation."
elif [ -n "${INSTALLATION}" ]
then
# Go with the cloning process
if type alacritty > /dev/null 2>&1
then
alacritty --title "download" -e "clone-installation-from-directory $SELECTED_INSTALL_DIR"
else
clone-installation-from-directory $SELECTED_INSTALL_DIR
fi
fi

View File

@ -0,0 +1,56 @@
#!/bin/bash
SELECTED_INSTALL_DIR=$1
if type pacman > /dev/null 2>&1
then
# Install arch packages
echo "Installing Arch packages..."
sudo xargs -a $SELECTED_INSTALL_DIR/Arch pacman -S --noconfirm --needed
echo "Installing packages from AUR using aurfetch..."
while read p; do
aurfetch -q $p
done <$SELECTED_INSTALL_DIR/AUR
fi
if type apt > /dev/null 2>&1
then
echo "Installing apt packages..."
sudo xargs -a $SELECTED_INSTALL_DIR/apt apt install
fi
if type brew > /dev/null 2>&1
then
echo "Installing brew packages..."
brew bundle --file $SELECTED_INSTALL_DIR/Brewfile
fi
if type flatpak > /dev/null 2>&1
then
echo "Installing flatpak packages..."
xargs -a $SELECTED_INSTALL_DIR/flatpak flatpak install
fi
if type gem > /dev/null 2>&1
then
echo "Installing gems..."
while read gem; do
gem install $gem
done <$( cat $SELECTED_INSTALL_DIR/gem | awk '{print $1}')
fi
if type pip2 > /dev/null 2>&1
then
echo "Installing python2 packages..."
pip2 install -r $SELECTED_INSTALL_DIR/pip2
fi
if type pip3 > /dev/null 2>&1
then
echo "Installing python3 packages..."
pip3 install -r $SELECTED_INSTALL_DIR/pip3
fi
echo "Please install npm packages manually... List of these is located in $SELECTED_INSTALL_DIR/npm"
echo "DONE!"

View File

@ -0,0 +1,48 @@
#!/bin/bash
INSTALLATIONS_DIRECTORY=~/.dotfiles/installed_packages
function get_installations()
{
ls -l --time-style="long-iso" $INSTALLATIONS_DIRECTORY | grep -v ${HOSTNAME} | awk 'NR>1 {print $8}'
}
function concat_installation_files()
{
DIR_TO_CHECK=$1
OUTPUT_FILE=$2
echo "# GENERATED BY A SCRIPT!" > $OUTPUT_FILE
for file in $DIR_TO_CHECK/*; do
echo "# START OF $(basename $file)" >> $OUTPUT_FILE
cat $file >> $OUTPUT_FILE
echo "# END OF $(basename $file)" >> $OUTPUT_FILE
done
}
if [ -z "$1" ]
then
if type wofi > /dev/null 2>&1
then
INSTALLATION=$( (echo empty; get_installations) | wofi -dmenu -only-match -p "Select host to compare installation with:")
else
PS3='Please select installation to compare: '
select opt in $(get_installations)
do
INSTALLATION=$opt
break
done
fi
INSTALLATION=$1
fi
if [ x"empty" = x"${INSTALLATION}" ]
then
echo "No operation."
elif [ -n "${INSTALLATION}" ]
then
concat_installation_files $INSTALLATIONS_DIRECTORY/$HOSTNAME /tmp/current_host_packages.txt
concat_installation_files $INSTALLATIONS_DIRECTORY/$INSTALLATION /tmp/other_host_packages.txt
vimdiff /tmp/current_host_packages.txt /tmp/other_host_packages.txt
fi

View File

@ -0,0 +1,23 @@
#!/bin/sh
FILE=$1
OUTPUT=$2
filename=$(basename -- "$FILE")
extension="${filename##*.}"
filename="${filename%.*}"
if [ ! -f "$FILE" ]; then
echo "$FILE is not a file"
exit 1
fi
if [ "$extension" != "jar" ]; then
echo "$FILE is not a jar"
exit 1
fi
if [ -z "$OUTPUT" ]; then
OUTPUT=$filename
fi
cat ~/bin/java-helpers/java-stub.sh $FILE > $OUTPUT && chmod +x $OUTPUT

View File

@ -0,0 +1,10 @@
#!/bin/bash
if [ -f ctags.ignore.gitignored ]; then
echo "Ignoring directories listed in ctags.ignore.gitignored file"
ctags -f tags.gitignored --exclude=@ctags.ignore.gitignored -R .
else
echo "ctags.ignore.gitignored file not found. If you wish to ignore some directories, list them in that file."
ctags -f tags.gitignored -R .
fi

View File

@ -0,0 +1,8 @@
#!/bin/sh
PACKAGE_MANAGER=$(get-package-manager-name)
if [ "$PACKAGE_MANAGER" = "pacman" ]; then
echo "sudo pacman -S"
elif [ "$PACKAGE_MANAGER" = "apt" ]; then
echo "sudo apt install"
fi

View File

@ -0,0 +1,13 @@
#!/bin/sh
PACKAGE_MANAGER="Unknown"
if type apt > /dev/null 2>&1
then
PACKAGE_MANAGER="apt"
fi
if type pacman > /dev/null 2>&1
then
PACKAGE_MANAGER="pacman"
fi
echo $PACKAGE_MANAGER

View File

@ -0,0 +1,64 @@
#!/bin/python2
import json
import subprocess
"""
Execute the given command and return the
output as a list of lines
"""
def command_output(cmd):
output = []
if (cmd):
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, \
stderr=subprocess.STDOUT)
for line in p.stdout.readlines():
output.append(line.rstrip())
return output
def output_to_dict(output_list):
output_string = ""
for line in output_list:
output_string += line
return json.loads(output_string)
def find_windows(tree_dict, window_list):
if (tree_dict.has_key("nodes") and len(tree_dict["nodes"]) > 0):
for node in tree_dict["nodes"]:
find_windows(node, window_list)
else:
if (tree_dict["layout"] != "dockarea" and not tree_dict["name"].startswith("i3bar for output") and not tree_dict["window"] == None):
window_list.append(tree_dict)
return window_list
def main():
output = command_output("i3-msg -t get_tree")
tree = output_to_dict(output)
window_list = find_windows(tree, [])
next_index = -1
for i in range(len(window_list)):
if (window_list[i]["focused"] == True):
next_index = i+1
break
# next_index = len(window_list)
# for i in range(len(window_list)-1, -1, -1):
# if (window_list[i]["focused"] == True):
# next_index = i-1
# break
next_id = 0;
if next_index == -1 or next_index == len(window_list):
next_id = window_list[0]["window"]
else:
next_id = window_list[next_index]["window"]
print next_id
main()

118
symlinks/bin/imgur 100755
View File

@ -0,0 +1,118 @@
#!/bin/bash
# Imgur script by Bart Nagel <bart@tremby.net>
# Improvements by Tino Sino <robottinosino@gmail.com>
# Version 6 or more
# I release this into the public domain. Do with it what you will.
# The latest version can be found at https://github.com/tremby/imgur.sh
# API Key provided by Bart;
# replace with your own or specify yours as IMGUR_CLIENT_ID envionment variable
# to avoid limits
default_client_id=c9a6efb3d7932fd
client_id="${IMGUR_CLIENT_ID:=$default_client_id}"
# Function to output usage instructions
function usage {
echo "Usage: $(basename $0) [<filename|URL> [...]]" >&2
echo
echo "Upload images to imgur and output their new URLs to stdout. Each one's" >&2
echo "delete page is output to stderr between the view URLs." >&2
echo
echo "A filename can be - to read from stdin. If no filename is given, stdin is read." >&2
echo
echo "If xsel, xclip, or pbcopy is available, the URLs are put on the X selection for" >&2
echo "easy pasting." >&2
}
# Function to upload a path
# First argument should be a content spec understood by curl's -F option
function upload {
curl -s -H "Authorization: Client-ID $client_id" -H "Expect: " -F "image=$1" https://api.imgur.com/3/image.xml
# The "Expect: " header is to get around a problem when using this through
# the Squid proxy. Not sure if it's a Squid bug or what.
}
# Check arguments
if [ "$1" == "-h" -o "$1" == "--help" ]; then
usage
exit 0
elif [ $# -eq 0 ]; then
echo "No file specified; reading from stdin" >&2
exec "$0" -
fi
# Check curl is available
type curl &>/dev/null || {
echo "Couldn't find curl, which is required." >&2
exit 17
}
clip=""
errors=false
# Loop through arguments
while [ $# -gt 0 ]; do
file="$1"
shift
# Upload the image
if [[ "$file" =~ ^https?:// ]]; then
# URL -> imgur
response=$(upload "$file") 2>/dev/null
else
# File -> imgur
# Check file exists
if [ "$file" != "-" -a ! -f "$file" ]; then
echo "File '$file' doesn't exist; skipping" >&2
errors=true
continue
fi
response=$(upload "@$file") 2>/dev/null
fi
if [ $? -ne 0 ]; then
echo "Upload failed" >&2
errors=true
continue
elif echo "$response" | grep -q 'success="0"'; then
echo "Error message from imgur:" >&2
msg="${response##*<error>}"
echo "${msg%%</error>*}" >&2
errors=true
continue
fi
# Parse the response and output our stuff
url="${response##*<link>}"
url="${url%%</link>*}"
delete_hash="${response##*<deletehash>}"
delete_hash="${delete_hash%%</deletehash>*}"
echo $url | sed 's/^http:/https:/'
echo "Delete page: https://imgur.com/delete/$delete_hash" >&2
# Append the URL to a string so we can put them all on the clipboard later
clip+="$url"
if [ $# -gt 0 ]; then
clip+=$'\n'
fi
done
# Put the URLs on the clipboard if we can
if type pbcopy &>/dev/null; then
echo -n "$clip" | pbcopy
elif [ $DISPLAY ]; then
if type xsel &>/dev/null; then
echo -n "$clip" | xsel
elif type xclip &>/dev/null; then
echo -n "$clip" | xclip
else
echo "Haven't copied to the clipboard: no xsel or xclip" >&2
fi
else
echo "Haven't copied to the clipboard: no \$DISPLAY or pbcopy" >&2
fi
if $errors; then
exit 1
fi

View File

@ -0,0 +1,10 @@
#!/bin/sh
MYSELF=`which "$0" 2>/dev/null`
[ $? -gt 0 -a -f "$0" ] && MYSELF="./$0"
java=java
if test -n "$JAVA_HOME"; then
java="$JAVA_HOME/bin/java"
fi
java_args=-Xmx1g
exec "$java" $java_args -jar $MYSELF "$@"
exit 1

View File

@ -0,0 +1,3 @@
#!/bin/sh
pacman -Si $(cat $1) | awk -F'[:<=>]' '/^Depends/ {print $2}' | xargs -n1 | sort -u

View File

@ -0,0 +1,8 @@
#!/bin/sh
brew update
brew upgrade
brew upgrade --cask
if [ $? -eq 0 ]; then
echo $( date +%s ) > $MY_CONFIG_CACHE_DIR/brew-upgrade-date
fi

View File

@ -0,0 +1,59 @@
#!/bin/sh
if [ -z "$1" ]
then
INSTALLATION_NAME=$HOSTNAME
else
INSTALLATION_NAME=$1
fi
PACKAGES_DIRECTORY=$HOME/.dotfiles/installed_packages/$INSTALLATION_NAME
if [ ! -d "$PACKAGES_DIRECTORY" ]; then
mkdir $PACKAGES_DIRECTORY
fi
CURDIR=$PWD
if type pacman > /dev/null 2>&1
then
pacman -Qqe | grep -vx "$(pacman -Qqm)" > $PACKAGES_DIRECTORY/Arch
pacman -Qqm > $PACKAGES_DIRECTORY/AUR
fi
if type apt > /dev/null 2>&1
then
sudo dpkg-query -f '${binary:Package}\n' -W > $PACKAGES_DIRECTORY/apt
fi
if type flatpak > /dev/null 2>&1
then
flatpak list | cut -f2 > $PACKAGES_DIRECTORY/flatpak
fi
if type pip2 > /dev/null 2>&1
then
pip2 list > $PACKAGES_DIRECTORY/pip2
fi
if type pip3 > /dev/null 2>&1
then
pip3 list > $PACKAGES_DIRECTORY/pip3
fi
if type gem > /dev/null 2>&1
then
gem list > $PACKAGES_DIRECTORY/gem
fi
if type npm > /dev/null 2>&1
then
npm ls -g --depth=0 "$@" 1>$PACKAGES_DIRECTORY/npm 2>/dev/null
fi
if type brew > /dev/null 2>&1
then
cd $PACKAGES_DIRECTORY
brew bundle dump
cd $CURDIR
fi

View File

@ -0,0 +1,64 @@
#!/usr/bin/env ruby
# frozen_string_literal: true
# newsboat-yt-feed.rb
# Author: William Woodruff
# ------------------------
# Adds a YouTube channel to newsboat.
# Works with both old (/user/) and new (/channel/)-style YouTube channels.
# ------------------------
# This code is licensed by William Woodruff under the MIT License.
# http://opensource.org/licenses/MIT
require "uri"
DEPS = [
"newsboat",
].freeze
NEWSBOAT_URL_FILES = [
# is this is right precedence?
File.expand_path("~/.config/newsboat/urls"),
].freeze
YOUTUBE_FEED_URLS = {
chan: "https://www.youtube.com/feeds/videos.xml?channel_id=%<id>s",
user: "https://www.youtube.com/feeds/videos.xml?user=%<id>s",
}.freeze
def which?(cmd)
ENV["PATH"].split(File::PATH_SEPARATOR).any? do |path|
File.executable?(File.join(path, cmd))
end
end
def add_feed!(feed_url)
url_file = NEWSBOAT_URL_FILES.find { |f| File.exist? f }
File.open(url_file, "a") { |io| io.puts "#{feed_url} \"YouTube\"" }
end
abort "Usage: #{$PROGRAM_NAME} <channel url>" if ARGV.empty?
DEPS.each { |d| abort "Fatal: Missing '#{d}'." unless which? d }
chan_url = URI(ARGV.shift)
if chan_url.host.nil? || /youtube/i !~ chan_url.host || chan_url.path.empty?
abort "Fatal: Not a valid channel URL."
end
type, id = chan_url.path.split("/")[1..2]
case type
when "channel"
feed_url = YOUTUBE_FEED_URLS[:chan] % { id: id }
when "user"
feed_url = YOUTUBE_FEED_URLS[:user] % { id: id }
else
abort "Fatal: Ambiguous channel URL (or not a channel URL)."
end
add_feed!(feed_url)
puts "Added #{feed_url} to newsboat."

View File

@ -0,0 +1,9 @@
#!/bin/bash
if [ ! -f $MY_CONFIG_CACHE_DIR/brew-upgrade-date ]; then
echo $( date +%s ) > $MY_CONFIG_CACHE_DIR/brew-upgrade-date
fi
LAST_BREW_UPGRADE=$( cat $MY_CONFIG_CACHE_DIR/brew-upgrade-date )
print-system-upgrade-date $LAST_BREW_UPGRADE mac-update

View File

@ -0,0 +1,19 @@
#!/bin/bash
if [ $MACHINE_TYPE == "mac" ]; then
print-last-brew-update
else
if type pacman &> /dev/null
then
LAST_SYSTEM_UPGRADE=$( cat /var/log/pacman.log | grep "starting full system upgrade" | awk 'END{ print substr($1, 2) " " substr($2, 1, length($2)-1) }' )
LAST_SYSTEM_UPGRADE_DATE=$( date -d "$LAST_SYSTEM_UPGRADE" +%s )
fi
if type apt &> /dev/null
then
LAST_SYSTEM_UPGRADE=$( stat /var/cache/apt/pkgcache.bin | grep Modify | sed 's/Modify: //' )
LAST_SYSTEM_UPGRADE_DATE=$( date -d "$LAST_SYSTEM_UPGRADE" +%s )
fi
print-system-upgrade-date $LAST_SYSTEM_UPGRADE_DATE update-all-packages
fi

View File

@ -0,0 +1,28 @@
#!/bin/sh
UPG_DATE=$1
CURR_DATE=$( date +%s )
DIFF=$(( CURR_DATE - UPG_DATE ))
COLOR=""
SUFFIX=""
if [ $DIFF -lt $(( 60*60*24 )) ]; then
COLOR=4
elif [ $DIFF -lt $(( 60*60*24*4 )) ]; then
COLOR=2
elif [ $DIFF -lt $(( 60*60*24*7 )) ]; then
COLOR=3
SUFFIX="\nConsider running a full system upgrade ($2)"
else
COLOR=1
SUFFIX="\nPlease run a full system upgrade ($2)"
fi
if [ "$MACHINE_TYPE" = "mac" ]; then
LAST_SYSTEM_UPGRADE=$( date -r "$UPG_DATE" +"%Y-%m-%d %H:%M:%S" )
else
LAST_SYSTEM_UPGRADE=$( date -d "@$UPG_DATE" +"%Y-%m-%d %H:%M:%S" )
fi
tput setaf $COLOR; echo "Last system upgrade run on: "$LAST_SYSTEM_UPGRADE$SUFFIX

View File

@ -0,0 +1,18 @@
#!/bin/sh
THEME=$1
CURRENT_THEME=`grep "colors:" $HOME/.config/alacritty/alacritty.yml | cut -d '*' -f2`
echo "Current theme: $CURRENT_THEME"
if [ -z $THEME ]; then
echo "Missing theme argument! Toggling between default dark and light (gruvbox_dark, gruvbox_light)"
if [ "$CURRENT_THEME" = gruvbox_dark ]; then
THEME=gruvbox_light
else
THEME=gruvbox_dark
fi
fi
sed -i "s/colors: \*\(.*\)/colors: *$THEME/" $HOME/.config/alacritty/alacritty.yml
echo "Theme switched to: $THEME"

View File

@ -0,0 +1,18 @@
#!/bin/bash
SETTINGS_DIRECTORY=$HOME/bin/settings
function get_settings()
{
ls -l --time-style="long-iso" $SETTINGS_DIRECTORY | grep -v "~" | awk 'NR>1 {print $8}'
}
SETTING=$( (echo empty; get_settings) | wofi -dmenu -only-match -p "Select settings script:")
if [ x"empty" = x"${SETTING}" ]
then
echo "No operation."
elif [ -n "${SETTING}" ]
then
${SETTINGS_DIRECTORY}/${SETTING}
fi

View File

@ -0,0 +1,26 @@
#!/bin/sh
function query_packages()
{
QUERY_STRING=$1
pacman -Ssq $QUERY_STRING
}
function ask_for_package()
{
PKG_LIST=query_packages
PKG=$( $PKG_LIST | wofi -dmenu -p "Select package or search:" )
echo $PKG
FND_PKG=$( $PKG_LIST | tr -s " " "\n" | grep ${PKG} )
echo $FND_PKG
if [ -z "$PKG" ]; then
echo "Done"
elif [[ "$PKG" == "$FND_PKG" ]]; then
# List contains the selected pkg
alacritty --title "download" -e "sudo pacman -S $PKG"
else
ask_for_package
fi
}
ask_for_package

View File

@ -0,0 +1,10 @@
#!/bin/sh
$MY_THEMES_DIR/select-theme "$(<$MY_THEMES_DIR/current-theme)"
# Assemble configurations
$MY_CONFIG_DIR/termite/assemble-termite-config
$MY_CONFIG_DIR/dunst/assemble-dunst-config
# Application specific reloadings
killall -USR1 termite
xrdb ~/.config/X11/Xresources

View File

@ -0,0 +1,18 @@
#!/bin/bash
function get_themes()
{
ls -l --time-style="long-iso" $MY_THEMES_DIR | egrep '^d' | awk '{print $8}'
}
THEME=$( (echo empty; get_themes) | rofi -dmenu -only-match -p "Select theme:")
if [ x"empty" = x"${THEME}" ]
then
echo "No operation."
elif [ -n "${THEME}" ]
then
echo $THEME > $MY_THEMES_DIR/current-theme
~/bin/settings/reload-configurations
i3-msg restart
fi

View File

@ -0,0 +1,3 @@
#!/bin/sh
termite --name "download" -e "update-all-packages"

View File

@ -0,0 +1,51 @@
#!/bin/bash
SUCCESS="Successful connection"
FAILURE="Failed connection"
function check_result() {
ADDRARG=$1
shift
RESULTARG=$*
echo "Checking result ($RESULTARG) of connection (to $ADDRARG)" >> $MY_CONFIG_CACHE_DIR/adb_wifi_setup_logs
if [ "$RESULTARG" == "connected to $ADDRARG" ] || [ "$RESULTARG" == "already connected to $ADDRARG" ]; then
echo "Success, printing: $SUCCESS" >> $MY_CONFIG_CACHE_DIR/adb_wifi_setup_logs
echo $SUCCESS
else
echo "failure, printing: $FAILURE" >> $MY_CONFIG_CACHE_DIR/adb_wifi_setup_logs
echo $FAILURE
fi
}
echo "\nStarting session on $(date)" >> $MY_CONFIG_CACHE_DIR/adb_wifi_setup_logs
LAST_ADB_IP_FILE=$MY_CONFIG_CACHE_DIR/last_adb_ip_connected
PORT=5555
if [ -f $LAST_ADB_IP_FILE ]; then
LAST_IP=$(cat $LAST_ADB_IP_FILE)
echo "Last ip connected was: $LAST_IP" >> $MY_CONFIG_CACHE_DIR/adb_wifi_setup_logs
RESULT=$(adb connect $LAST_IP)
echo "Result was $RESULT" >> $MY_CONFIG_CACHE_DIR/adb_wifi_setup_logs
if [ "$(check_result $LAST_IP $RESULT)" == "$SUCCESS" ]; then
echo $RESULT
exit 0
else
echo "Failed to connect to cached ip ($LAST_IP). Tryting to connect to usb connected device..."
fi
else
echo "No cached ip found, trying to connect to usb connected device..."
fi
adb usb
sleep 1
ADDRLINE=$(adb shell ifconfig wlan0 | grep "inet addr" | awk '{print $2}' | cut -d/ -f1)
adb tcpip $PORT
sleep 1
ADDR=${ADDRLINE//addr:/}
RESULT=$(adb connect $ADDR:$PORT)
if [ "$(check_result $ADDR:$PORT $RESULT)" == "$SUCCESS" ]; then
echo $ADDR:$PORT > $LAST_ADB_IP_FILE
fi
echo $RESULT

View File

@ -0,0 +1,67 @@
#!/bin/bash
if type pacman > /dev/null 2>&1
then
# Clear out orphans
sudo pacman -Rns $(pacman -Qtdq)
# Update arch packages
sudo pacman -Syu
# Update AUR packages
LOC=$PWD
cd $AUR_INSTALL_HOME
for folder in *; do
cd $folder;
echo "Working in $PWD.";
if [ -z "$(ls -a | grep -w .git)" ]; then
echo "$folder is not a git directory!";
else
if [ "$(git pull)" == "Already up to date." ]; then
echo "Package $folder is up to date.";
else
makepkg -si
fi
fi
cd ..;
done
cd $LOC
fi
if type apt > /dev/null 2>&1
then
# Clear out orphans
sudo apt autoremove
# Update apt packages
sudo apt update
sudo apt full-upgrade
# Clear out orphans
sudo apt autoremove
fi
if type flatpak > /dev/null 2>&1
then
# Clear out unused flatpak apps
flatpak uninstall --unused
# Update flatpak packages
flatpak update
# Clear out unused flatpak apps once again
flatpak uninstall --unused
fi
# Update rubygems
gem update --system
gem update
vim +PlugUpdate +qall
if type pacman > /dev/null 2>&1
then
# Clear out orphans once again
sudo pacman -Rns $(pacman -Qtdq)
fi

63
symlinks/config/.gitignore vendored 100644
View File

@ -0,0 +1,63 @@
autostart
asciinema
chromium/*
chromium/**
blender
ranger/**
ranger/*
Slack/**
Slack/*
hexchat/**
hexchat/*
Google Play Music Desktop Player/*
Google Play Music Desktop Player/**
dconf/*
dconf/**
libreoffice/*
libreoffice/**
StardewValley/*
StardewValley/**
configstore/*
configstore/**
xbuild/**
xbuild/*
stetic/**
stetic/*
direnv/allow/**
direnv/allow/*
spotify
i3/i3barcolors
i3/i3colors
termite/config
termite/termitetheme
dunst/dunstrc
dunst/dunstcolors
other-scripts/fehbg
Xconfigfiles/xcolorsconfig
Xconfigfiles/roficolorsconfig
Todoist/**
Todoist/*
Todoist
flutter/
ibus
pulse
discord
QtProject.conf
QtProject/
session/
kdeveloprc
mimeapps.list
yelp/
sublime-text-3
totem
kdeconnect
systemd
gsconnect
hub
menus
monitors.xml
stetic
xbuild
Bitwarden

View File

@ -0,0 +1,10 @@
{
"quick-add": "Super+Alt+a",
"show-hide": "Super+Alt+T",
"refresh": "Super+Alt+r",
"beta": false,
"quit": "Alt+F4",
"tray-icon": "icon.png",
"minimize-to-tray": true,
"close-to-tray": true
}

View File

@ -0,0 +1,6 @@
[set]
autoFindAdb=true
clipboardSharing=true
crashReportPreference=0
disableMouseWheel=false
savePath=/home/ensar/Desktop

Some files were not shown because too many files have changed in this diff Show More