Add first working version of ansible dotfiles
This commit is contained in:
parent
1fb39a07ea
commit
bc57be91c4
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
id_rsa
|
||||||
|
id_rsa.pub
|
||||||
|
known_hosts
|
4
README.md
Normal file
4
README.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Ansible must be installed.
|
||||||
|
|
||||||
|
Invoke with
|
||||||
|
`ansible-playbook -i hosts.ini dotfiles.yml -K`
|
3
ansible.cfg
Normal file
3
ansible.cfg
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[defaults]
|
||||||
|
retry_files_enabled = False
|
||||||
|
interpreter_python=/usr/bin/python3
|
10
dotfiles.yml
Normal file
10
dotfiles.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
# - fix symlinks for folders
|
||||||
|
- hosts: all
|
||||||
|
roles:
|
||||||
|
- bootstrap
|
||||||
|
- dotfiles
|
||||||
|
tasks:
|
||||||
|
- debug:
|
||||||
|
msg:
|
||||||
|
"System operating with {{ ansible_distribution }} {{ ansible_distribution_major_version }}"
|
27
roles/bootstrap/tasks/main.yml
Normal file
27
roles/bootstrap/tasks/main.yml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
- name: Install necessary packages
|
||||||
|
become: yes
|
||||||
|
become_method: su
|
||||||
|
become_user: root
|
||||||
|
apt:
|
||||||
|
name: "{{ packages_all }}"
|
||||||
|
state: present
|
||||||
|
cache_valid_time: 3600
|
||||||
|
- name: Install ubuntu specific packages
|
||||||
|
become: yes
|
||||||
|
become_method: su
|
||||||
|
become_user: root
|
||||||
|
when: ansible_distribution == "Ubuntu"
|
||||||
|
apt:
|
||||||
|
name: "{{ packages_ubuntu }}"
|
||||||
|
state: present
|
||||||
|
cache_valid_time: 3600
|
||||||
|
- name: Install debian specific packages
|
||||||
|
become: yes
|
||||||
|
become_method: su
|
||||||
|
become_user: root
|
||||||
|
when: ansible_distribution == "Debian"
|
||||||
|
apt:
|
||||||
|
name: "{{ packages_debian }}"
|
||||||
|
state: present
|
||||||
|
cache_valid_time: 3600
|
17
roles/bootstrap/vars/main.yaml
Normal file
17
roles/bootstrap/vars/main.yaml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
packages_all:
|
||||||
|
- ack
|
||||||
|
- build-essential
|
||||||
|
- fish
|
||||||
|
- htop
|
||||||
|
- ispell
|
||||||
|
- grimshot
|
||||||
|
- tmux
|
||||||
|
- sway
|
||||||
|
- swaylock
|
||||||
|
- waybar
|
||||||
|
- vim
|
||||||
|
packages_debian:
|
||||||
|
- vim
|
||||||
|
packages_ubuntu:
|
||||||
|
- vim
|
8
roles/dotfiles/files/config/fish/config.fish
Normal file
8
roles/dotfiles/files/config/fish/config.fish
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# variables
|
||||||
|
export EDITOR=vim
|
||||||
|
# Start X at login
|
||||||
|
if status --is-login
|
||||||
|
if test -z "$DISPLAY" -a $XDG_VTNR = 1
|
||||||
|
exec startx
|
||||||
|
end
|
||||||
|
end
|
35
roles/dotfiles/files/config/fish/fish_variables
Normal file
35
roles/dotfiles/files/config/fish/fish_variables
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# This file contains fish universal variable definitions.
|
||||||
|
# VERSION: 3.0
|
||||||
|
SETUVAR __fish_init_2_3_0:\x1d
|
||||||
|
SETUVAR __fish_initialized:3100
|
||||||
|
SETUVAR _fish_abbr_upd:sudo\x20apt\x20update
|
||||||
|
SETUVAR _fish_abbr_upg:sudo\x20apt\x20upgrade
|
||||||
|
SETUVAR fish_color_autosuggestion:555
|
||||||
|
SETUVAR fish_color_cancel:normal
|
||||||
|
SETUVAR fish_color_command:ff5faf
|
||||||
|
SETUVAR fish_color_comment:990000
|
||||||
|
SETUVAR fish_color_cwd:008000
|
||||||
|
SETUVAR fish_color_cwd_root:800000
|
||||||
|
SETUVAR fish_color_end:ffaf00
|
||||||
|
SETUVAR fish_color_error:ff0000
|
||||||
|
SETUVAR fish_color_escape:00a6b2
|
||||||
|
SETUVAR fish_color_history_current:normal
|
||||||
|
SETUVAR fish_color_host:normal
|
||||||
|
SETUVAR fish_color_host_remote:yellow
|
||||||
|
SETUVAR fish_color_match:normal
|
||||||
|
SETUVAR fish_color_normal:normal
|
||||||
|
SETUVAR fish_color_operator:00a6b2
|
||||||
|
SETUVAR fish_color_param:afd700
|
||||||
|
SETUVAR fish_color_quote:d7ff5f
|
||||||
|
SETUVAR fish_color_redirection:af00ff
|
||||||
|
SETUVAR fish_color_search_match:ffff00
|
||||||
|
SETUVAR fish_color_selection:c0c0c0
|
||||||
|
SETUVAR fish_color_status:red
|
||||||
|
SETUVAR fish_color_user:00ff00
|
||||||
|
SETUVAR fish_color_valid_path:normal
|
||||||
|
SETUVAR fish_greeting:Welcome\x20to\x20fish\x2c\x20the\x20friendly\x20interactive\x20shell
|
||||||
|
SETUVAR fish_key_bindings:fish_default_key_bindings
|
||||||
|
SETUVAR fish_pager_color_completion:normal
|
||||||
|
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
|
||||||
|
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||||
|
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
87
roles/dotfiles/files/config/fish/functions/fish_prompt.fish
Normal file
87
roles/dotfiles/files/config/fish/functions/fish_prompt.fish
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
function fish_prompt
|
||||||
|
set -l __last_command_exit_status $status
|
||||||
|
|
||||||
|
if not set -q -g __fish_robbyrussell_functions_defined
|
||||||
|
set -g __fish_robbyrussell_functions_defined
|
||||||
|
function _git_branch_name
|
||||||
|
set -l branch (git symbolic-ref --quiet HEAD 2>/dev/null)
|
||||||
|
if set -q branch[1]
|
||||||
|
echo (string replace -r '^refs/heads/' '' $branch)
|
||||||
|
else
|
||||||
|
echo (git rev-parse --short HEAD 2>/dev/null)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function _is_git_dirty
|
||||||
|
echo (git status -s --ignore-submodules=dirty 2>/dev/null)
|
||||||
|
end
|
||||||
|
|
||||||
|
function _is_git_repo
|
||||||
|
type -q git
|
||||||
|
or return 1
|
||||||
|
git rev-parse --git-dir >/dev/null 2>&1
|
||||||
|
end
|
||||||
|
|
||||||
|
function _hg_branch_name
|
||||||
|
echo (hg branch 2>/dev/null)
|
||||||
|
end
|
||||||
|
|
||||||
|
function _is_hg_dirty
|
||||||
|
echo (hg status -mard 2>/dev/null)
|
||||||
|
end
|
||||||
|
|
||||||
|
function _is_hg_repo
|
||||||
|
fish_print_hg_root >/dev/null
|
||||||
|
end
|
||||||
|
|
||||||
|
function _repo_branch_name
|
||||||
|
_$argv[1]_branch_name
|
||||||
|
end
|
||||||
|
|
||||||
|
function _is_repo_dirty
|
||||||
|
_is_$argv[1]_dirty
|
||||||
|
end
|
||||||
|
|
||||||
|
function _repo_type
|
||||||
|
if _is_hg_repo
|
||||||
|
echo 'hg'
|
||||||
|
return 0
|
||||||
|
else if _is_git_repo
|
||||||
|
echo 'git'
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l cyan (set_color -o cyan)
|
||||||
|
set -l yellow (set_color -o yellow)
|
||||||
|
set -l red (set_color -o red)
|
||||||
|
set -l green (set_color -o green)
|
||||||
|
set -l blue (set_color -o blue)
|
||||||
|
set -l normal (set_color normal)
|
||||||
|
|
||||||
|
set -l arrow_color "$green"
|
||||||
|
if test $__last_command_exit_status != 0
|
||||||
|
set arrow_color "$red"
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l arrow "$arrow_color➜ "
|
||||||
|
if test "$USER" = 'root'
|
||||||
|
set arrow "$arrow_color# "
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l cwd $cyan(basename (prompt_pwd))
|
||||||
|
|
||||||
|
if set -l repo_type (_repo_type)
|
||||||
|
set -l repo_branch $red(_repo_branch_name $repo_type)
|
||||||
|
set repo_info "$blue $repo_type:($repo_branch$blue)"
|
||||||
|
|
||||||
|
if [ (_is_repo_dirty $repo_type) ]
|
||||||
|
set -l dirty "$yellow ✗"
|
||||||
|
set repo_info "$repo_info$dirty"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
echo -n -s $arrow ' '$cwd $repo_info $normal ' '
|
||||||
|
end
|
3
roles/dotfiles/files/config/fish/functions/ll.fish
Normal file
3
roles/dotfiles/files/config/fish/functions/ll.fish
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
function ll --description 'List contents of directory using long format'
|
||||||
|
ls -lh $argv
|
||||||
|
end
|
108
roles/dotfiles/files/config/foot/foot.ini
Normal file
108
roles/dotfiles/files/config/foot/foot.ini
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
# -*- conf -*-
|
||||||
|
|
||||||
|
font=Roboto Mono Medium:size=8
|
||||||
|
bell=set-urgency
|
||||||
|
# initial-window-size-pixels=700x500 # Or,
|
||||||
|
# initial-window-size-chars=<COLSxROWS>
|
||||||
|
# initial-window-mode=windowed
|
||||||
|
# pad=2x2
|
||||||
|
# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
|
||||||
|
# term=foot
|
||||||
|
# login-shell=no
|
||||||
|
# workers=<number of logical CPUs>
|
||||||
|
|
||||||
|
[scrollback]
|
||||||
|
# lines=1000
|
||||||
|
# multiplier=3.0
|
||||||
|
# indicator-position=relative
|
||||||
|
# indicator-format=
|
||||||
|
|
||||||
|
[cursor]
|
||||||
|
# style=block
|
||||||
|
# color=111111 dcdccc
|
||||||
|
# blink=no
|
||||||
|
|
||||||
|
[mouse]
|
||||||
|
# hide-when-typing=no
|
||||||
|
# alternate-scroll-mode=yes
|
||||||
|
|
||||||
|
[colors]
|
||||||
|
# alpha=0.9
|
||||||
|
# foreground=dcdccc
|
||||||
|
# background=111111
|
||||||
|
regular0=222222 # black
|
||||||
|
regular1=f92672 # red
|
||||||
|
regular2=82b414 # green
|
||||||
|
regular3=fd971f # yellow
|
||||||
|
regular4=268bd2 # blue
|
||||||
|
regular5=8c54fe # magenta
|
||||||
|
regular6=56c2d6 # cyan
|
||||||
|
regular7=ccccc6 # white
|
||||||
|
bright0=505354 # bright black
|
||||||
|
bright1=ff5995 # bright red
|
||||||
|
bright2=b7eb46 # bright green
|
||||||
|
bright3=feed6c # bright yellow
|
||||||
|
bright4=62ade3 # bright blue
|
||||||
|
bright5=bfa0fe # bright magenta
|
||||||
|
bright6=94d8e5 # bright cyan
|
||||||
|
bright7=f8f8f2 # bright white
|
||||||
|
# selection-foreground=<inverse foreground/background>
|
||||||
|
# selection-background=<inverse foreground/background>
|
||||||
|
|
||||||
|
[csd]
|
||||||
|
# preferred=server
|
||||||
|
# size=26
|
||||||
|
# color=<foreground color>
|
||||||
|
# button-width=26
|
||||||
|
# button-minimize-color=ff0000ff
|
||||||
|
# button-maximize-color=ff00ff00
|
||||||
|
# button-close-color=ffff0000
|
||||||
|
|
||||||
|
[key-bindings]
|
||||||
|
# scrollback-up-page=Shift+Page_Up
|
||||||
|
# scrollback-up-half-page=none
|
||||||
|
# scrollback-up-line=none
|
||||||
|
# scrollback-down-page=Shift+Page_Down
|
||||||
|
# scrollback-down-half-page=none
|
||||||
|
# scrollback-down-line=none
|
||||||
|
# clipboard-copy=Control+Shift+C
|
||||||
|
# clipboard-paste=Control+Shift+V
|
||||||
|
# primary-paste=Shift+Insert
|
||||||
|
# search-start=Control+Shift+R
|
||||||
|
# font-increase=Control+plus Control+equal Control+KP_Add
|
||||||
|
# font-decrease=Control+minus Control+KP_Subtract
|
||||||
|
# font-reset=Control+0 Control+KP_0
|
||||||
|
# spawn-terminal=Control+Shift+N
|
||||||
|
# minimize=none
|
||||||
|
# maximize=none
|
||||||
|
# fullscreen=none
|
||||||
|
# pipe-visible=[sh -c "xurls | bemenu | xargs -r firefox"] none
|
||||||
|
# pipe-scrollback=[sh -c "xurls | bemenu | xargs -r firefox"] none
|
||||||
|
# pipe-selected=[xargs -r firefox] none
|
||||||
|
|
||||||
|
[search-bindings]
|
||||||
|
# cancel=Control+g Escape
|
||||||
|
# commit=Return
|
||||||
|
# find-prev=Control+r
|
||||||
|
# find-next=Control+s
|
||||||
|
# cursor-left=Left Control+b
|
||||||
|
# cursor-left-word=Control+Left Mod1+b
|
||||||
|
# cursor-right=Right Control+f
|
||||||
|
# cursor-right-word=Control+Right Mod1+f
|
||||||
|
# cursor-home=Home Control+a
|
||||||
|
# cursor-end=End Control+e
|
||||||
|
# delete-prev=BackSpace
|
||||||
|
# delete-prev-word=Mod1+BackSpace Control+BackSpace
|
||||||
|
# delete-next=Delete
|
||||||
|
# delete-next-word=Mod1+d Control+Delete
|
||||||
|
# extend-to-word-boundary=Control+w
|
||||||
|
# extend-to-next-whitespace=Control+Shift+W
|
||||||
|
|
||||||
|
[mouse-bindings]
|
||||||
|
# primary-paste=BTN_MIDDLE
|
||||||
|
# select-begin=BTN_LEFT
|
||||||
|
# select-begin-block=Control+BTN_LEFT
|
||||||
|
# select-extend=BTN_RIGHT
|
||||||
|
# select-word=BTN_LEFT-2
|
||||||
|
# select-word-whitespace=Control+BTN_LEFT-2
|
||||||
|
# select-row=BTN_LEFT-3
|
BIN
roles/dotfiles/files/config/sway/bg.png
Normal file
BIN
roles/dotfiles/files/config/sway/bg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.7 MiB |
188
roles/dotfiles/files/config/sway/config
Normal file
188
roles/dotfiles/files/config/sway/config
Normal file
@ -0,0 +1,188 @@
|
|||||||
|
# From /etc/sway/config
|
||||||
|
### Variables
|
||||||
|
#
|
||||||
|
# Logo key. Use Mod1 for Alt.
|
||||||
|
set $mod Mod4
|
||||||
|
# Home row direction keys, like vim
|
||||||
|
set $left h
|
||||||
|
set $down j
|
||||||
|
set $up k
|
||||||
|
set $right l
|
||||||
|
# Your preferred terminal emulator
|
||||||
|
set $term foot
|
||||||
|
# Your preferred application launcher
|
||||||
|
# Note: pass the final command to swaymsg so that the resulting window can be opened
|
||||||
|
# on the original workspace that the command was run on.
|
||||||
|
set $menu dmenu_path | dmenu | xargs swaymsg exec --
|
||||||
|
|
||||||
|
include /etc/sway/config-vars.d/*
|
||||||
|
|
||||||
|
### Output configuration
|
||||||
|
#
|
||||||
|
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
||||||
|
# output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
|
||||||
|
output * bg ~/.config/sway/bg.png fill
|
||||||
|
#
|
||||||
|
# Example configuration:
|
||||||
|
#
|
||||||
|
# output HDMI-A-1 resolution 1920x1080 position 1920,0
|
||||||
|
#
|
||||||
|
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
||||||
|
|
||||||
|
### Key bindings
|
||||||
|
#
|
||||||
|
# Basics:
|
||||||
|
#
|
||||||
|
# Start a terminal
|
||||||
|
bindsym $mod+Return exec $term
|
||||||
|
|
||||||
|
# Kill focused window
|
||||||
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
|
# Start your launcher
|
||||||
|
bindsym $mod+d exec $menu
|
||||||
|
|
||||||
|
# Drag floating windows by holding down $mod and left mouse button.
|
||||||
|
# Resize them with right mouse button + $mod.
|
||||||
|
# Despite the name, also works for non-floating windows.
|
||||||
|
# Change normal to inverse to use left mouse button for resizing and right
|
||||||
|
# mouse button for dragging.
|
||||||
|
floating_modifier $mod normal
|
||||||
|
|
||||||
|
# Reload the configuration file
|
||||||
|
bindsym $mod+Shift+r reload
|
||||||
|
|
||||||
|
# Exit sway (logs you out of your Wayland session)
|
||||||
|
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
|
||||||
|
#
|
||||||
|
# Moving around:
|
||||||
|
#
|
||||||
|
# Move your focus around
|
||||||
|
bindsym $mod+$left focus left
|
||||||
|
bindsym $mod+$down focus down
|
||||||
|
bindsym $mod+$up focus up
|
||||||
|
bindsym $mod+$right focus right
|
||||||
|
# Or use $mod+[up|down|left|right]
|
||||||
|
bindsym $mod+Left focus left
|
||||||
|
bindsym $mod+Down focus down
|
||||||
|
bindsym $mod+Up focus up
|
||||||
|
bindsym $mod+Right focus right
|
||||||
|
|
||||||
|
# Move the focused window with the same, but add Shift
|
||||||
|
bindsym $mod+Shift+$left move left
|
||||||
|
bindsym $mod+Shift+$down move down
|
||||||
|
bindsym $mod+Shift+$up move up
|
||||||
|
bindsym $mod+Shift+$right move right
|
||||||
|
# Ditto, with arrow keys
|
||||||
|
bindsym $mod+Shift+Left move left
|
||||||
|
bindsym $mod+Shift+Down move down
|
||||||
|
bindsym $mod+Shift+Up move up
|
||||||
|
bindsym $mod+Shift+Right move right
|
||||||
|
#
|
||||||
|
# Workspaces:
|
||||||
|
#
|
||||||
|
# Switch to workspace
|
||||||
|
bindsym $mod+1 workspace number 1
|
||||||
|
bindsym $mod+2 workspace number 2
|
||||||
|
bindsym $mod+3 workspace number 3
|
||||||
|
bindsym $mod+4 workspace number 4
|
||||||
|
bindsym $mod+5 workspace number 5
|
||||||
|
bindsym $mod+6 workspace number 6
|
||||||
|
bindsym $mod+7 workspace number 7
|
||||||
|
bindsym $mod+8 workspace number 8
|
||||||
|
bindsym $mod+9 workspace number 9
|
||||||
|
bindsym $mod+0 workspace number 10
|
||||||
|
# Move focused container to workspace
|
||||||
|
bindsym $mod+Shift+1 move container to workspace number 1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace number 2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace number 3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace number 4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace number 5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace number 6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace number 7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace number 8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace number 9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace number 10
|
||||||
|
# Note: workspaces can have any name you want, not just numbers.
|
||||||
|
# We just use 1-10 as the default.
|
||||||
|
#
|
||||||
|
# Layout stuff:
|
||||||
|
#
|
||||||
|
# You can "split" the current object of your focus with
|
||||||
|
# $mod+b or $mod+v, for horizontal and vertical splits
|
||||||
|
# respectively.
|
||||||
|
bindsym $mod+b splith
|
||||||
|
bindsym $mod+v splitv
|
||||||
|
|
||||||
|
# Switch the current container between different layout styles
|
||||||
|
bindsym $mod+s layout stacking
|
||||||
|
bindsym $mod+w layout tabbed
|
||||||
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
|
# Make the current focus fullscreen
|
||||||
|
bindsym $mod+f fullscreen
|
||||||
|
|
||||||
|
# Toggle the current focus between tiling and floating mode
|
||||||
|
bindsym $mod+Shift+space floating toggle
|
||||||
|
|
||||||
|
# Swap focus between the tiling area and the floating area
|
||||||
|
bindsym $mod+space focus mode_toggle
|
||||||
|
|
||||||
|
# Move focus to the parent container
|
||||||
|
bindsym $mod+a focus parent
|
||||||
|
#
|
||||||
|
# Scratchpad:
|
||||||
|
#
|
||||||
|
# Sway has a "scratchpad", which is a bag of holding for windows.
|
||||||
|
# You can send windows there and get them back later.
|
||||||
|
|
||||||
|
# Move the currently focused window to the scratchpad
|
||||||
|
bindsym $mod+Shift+minus move scratchpad
|
||||||
|
|
||||||
|
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||||
|
# If there are multiple scratchpad windows, this command cycles through them.
|
||||||
|
bindsym $mod+minus scratchpad show
|
||||||
|
#
|
||||||
|
# Resizing containers:
|
||||||
|
#
|
||||||
|
mode "resize" {
|
||||||
|
# left will shrink the containers width
|
||||||
|
# right will grow the containers width
|
||||||
|
# up will shrink the containers height
|
||||||
|
# down will grow the containers height
|
||||||
|
bindsym $left resize shrink width 10px
|
||||||
|
bindsym $down resize grow height 10px
|
||||||
|
bindsym $up resize shrink height 10px
|
||||||
|
bindsym $right resize grow width 10px
|
||||||
|
|
||||||
|
# Ditto, with arrow keys
|
||||||
|
bindsym Left resize shrink width 10px
|
||||||
|
bindsym Down resize grow height 10px
|
||||||
|
bindsym Up resize shrink height 10px
|
||||||
|
bindsym Right resize grow width 10px
|
||||||
|
|
||||||
|
# Return to default mode
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
}
|
||||||
|
bindsym $mod+r mode "resize"
|
||||||
|
|
||||||
|
include /etc/sway/config.d/*
|
||||||
|
|
||||||
|
# custom
|
||||||
|
input * {
|
||||||
|
xkb_layout "de"
|
||||||
|
}
|
||||||
|
bar {
|
||||||
|
swaybar_command waybar
|
||||||
|
}
|
||||||
|
# remove header
|
||||||
|
default_border pixel
|
||||||
|
# Keys
|
||||||
|
bindsym Mod1+l exec swaylock -c 222222
|
||||||
|
bindsym Mod1+s exec systemctl suspend
|
||||||
|
bindsym XF86AudioRaiseVolume exec "pactl set-sink-volume @DEFAULT_SINK@ +5%"
|
||||||
|
bindsym XF86AudioLowerVolume exec "pactl set-sink-volume @DEFAULT_SINK@ -5%"
|
||||||
|
bindsym XF86AudioMute exec "pactl set-sink-mute @DEFAULT_SINK@ toggle"
|
||||||
|
# Take a Screenshot with the region select (slurp)
|
||||||
|
bindsym Print exec grim -g "$(slurp)" ~/Pictures/shots/$(date +%Y-%m-%d_%H-%m-%S).png
|
163
roles/dotfiles/files/config/waybar/config
Normal file
163
roles/dotfiles/files/config/waybar/config
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
{
|
||||||
|
// "layer": "top", // Waybar at top layer
|
||||||
|
// "position": "bottom", // Waybar position (top|bottom|left|right)
|
||||||
|
"height": 24, // Waybar height (to be removed for auto height)
|
||||||
|
// "width": 1280, // Waybar width
|
||||||
|
// Choose the order of the modules
|
||||||
|
"modules-left": ["sway/workspaces", "sway/mode"],
|
||||||
|
//"modules-center": ["sway/window"],
|
||||||
|
"modules-right": ["cpu", "temperature","network", "pulseaudio", "battery", "battery#bat2", "custom/date", "custom/week", "custom/clock", "tray"],
|
||||||
|
// Modules configuration
|
||||||
|
"sway/workspaces": {
|
||||||
|
"disable-scroll": true,
|
||||||
|
"all-outputs": true,
|
||||||
|
"format": "{name}",
|
||||||
|
"persistent_workspaces": {
|
||||||
|
"1": [],
|
||||||
|
"2": [],
|
||||||
|
"3": [],
|
||||||
|
"4": [],
|
||||||
|
"5": [],
|
||||||
|
},
|
||||||
|
"format-icons": {
|
||||||
|
"1": "",
|
||||||
|
"2": "",
|
||||||
|
"3": "",
|
||||||
|
"4": "",
|
||||||
|
"urgent": "",
|
||||||
|
"focused": "",
|
||||||
|
"default": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sway/mode": {
|
||||||
|
"format": "<span style=\"italic\">{}</span>"
|
||||||
|
},
|
||||||
|
"mpd": {
|
||||||
|
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ ",
|
||||||
|
"format-disconnected": "Disconnected ",
|
||||||
|
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
|
||||||
|
"unknown-tag": "N/A",
|
||||||
|
"interval": 2,
|
||||||
|
"consume-icons": {
|
||||||
|
"on": " "
|
||||||
|
},
|
||||||
|
"random-icons": {
|
||||||
|
"off": "<span color=\"#f53c3c\"></span> ",
|
||||||
|
"on": " "
|
||||||
|
},
|
||||||
|
"repeat-icons": {
|
||||||
|
"on": " "
|
||||||
|
},
|
||||||
|
"single-icons": {
|
||||||
|
"on": "1 "
|
||||||
|
},
|
||||||
|
"state-icons": {
|
||||||
|
"paused": "",
|
||||||
|
"playing": ""
|
||||||
|
},
|
||||||
|
"tooltip-format": "MPD (connected)",
|
||||||
|
"tooltip-format-disconnected": "MPD (disconnected)"
|
||||||
|
},
|
||||||
|
"idle_inhibitor": {
|
||||||
|
"format": "{icon}",
|
||||||
|
"format-icons": {
|
||||||
|
"activated": "",
|
||||||
|
"deactivated": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tray": {
|
||||||
|
// "icon-size": 21,
|
||||||
|
"spacing": 10
|
||||||
|
},
|
||||||
|
// "clock": {
|
||||||
|
// "format": "{%Y-%m-%d %H:%M}"
|
||||||
|
// },
|
||||||
|
"cpu": {
|
||||||
|
"format": " {usage}%",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"memory": {
|
||||||
|
"format": " {}% "
|
||||||
|
},
|
||||||
|
"temperature": {
|
||||||
|
// "thermal-zone": 2,
|
||||||
|
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
|
||||||
|
"critical-threshold": 80,
|
||||||
|
// "format-critical": "{temperatureC}°C {icon}",
|
||||||
|
"format": " {temperatureC}°C",
|
||||||
|
"format-icons": ["", "", ""]
|
||||||
|
},
|
||||||
|
"backlight": {
|
||||||
|
// "device": "acpi_video1",
|
||||||
|
"format": "{percent}% {icon}",
|
||||||
|
"format-icons": ["", ""]
|
||||||
|
},
|
||||||
|
"battery": {
|
||||||
|
"states": {
|
||||||
|
"good": 95,
|
||||||
|
"warning": 30,
|
||||||
|
"critical": 15
|
||||||
|
},
|
||||||
|
"format": " {time} {capacity}%",
|
||||||
|
"format-charging": " {time} {capacity}%",
|
||||||
|
"format-plugged": " {time} {capacity}%",
|
||||||
|
"format-alt": "{time} {icon}",
|
||||||
|
// "format-good": "", // An empty format will hide the module
|
||||||
|
"format-full": " Full",
|
||||||
|
"format-icons": ["", "", "", "", ""]
|
||||||
|
},
|
||||||
|
"battery#bat2": {
|
||||||
|
"bat": "BAT2"
|
||||||
|
},
|
||||||
|
"network": {
|
||||||
|
// "interface": "wlp2*", // (Optional) To force the use of this interface
|
||||||
|
"format-wifi": " {essid} ({signalStrength}%)",
|
||||||
|
"format-ethernet": " {ipaddr}",
|
||||||
|
"format-linked": "{ifname} (No IP) ",
|
||||||
|
"format-disconnected": "Disconnected ⚠",
|
||||||
|
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||||
|
},
|
||||||
|
"pulseaudio": {
|
||||||
|
// "scroll-step": 1, // %, can be a float
|
||||||
|
"format": "{icon} {volume}%",
|
||||||
|
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||||
|
"format-bluetooth-muted": " {icon} {format_source}",
|
||||||
|
"format-muted": "mute ",
|
||||||
|
"format-source": "{volume}% ",
|
||||||
|
"format-source-muted": "",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": ["", "", ""]
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol"
|
||||||
|
},
|
||||||
|
"custom/media": {
|
||||||
|
"format": "{icon} {}",
|
||||||
|
"return-type": "json",
|
||||||
|
"max-length": 40,
|
||||||
|
"format-icons": {
|
||||||
|
"spotify": "",
|
||||||
|
"default": "🎜"
|
||||||
|
},
|
||||||
|
"escape": true,
|
||||||
|
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
|
||||||
|
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
|
||||||
|
},
|
||||||
|
"custom/date": {
|
||||||
|
"exec": "date +' %a %_d. %b'",
|
||||||
|
"interval": 60
|
||||||
|
},
|
||||||
|
"custom/week": {
|
||||||
|
"exec": "date +'CW %V'",
|
||||||
|
"interval": 60
|
||||||
|
},
|
||||||
|
"custom/clock": {
|
||||||
|
"exec": "date +' %H:%M'",
|
||||||
|
"interval": 10
|
||||||
|
}
|
||||||
|
}
|
149
roles/dotfiles/files/config/waybar/style.css
Normal file
149
roles/dotfiles/files/config/waybar/style.css
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
* {
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
/* `otf-font-awesome` is required to be installed for icons */
|
||||||
|
font-family: Roboto Mono;
|
||||||
|
font-size: 14px;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background-color: #3b4252;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar.hidden {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 0 5px;
|
||||||
|
background-color: transparent;
|
||||||
|
color: #ffffff;
|
||||||
|
border-bottom: 3px solid transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||||
|
#workspaces button:hover {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
box-shadow: inherit;
|
||||||
|
border-bottom: 3px solid #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused {
|
||||||
|
background-color: #64727D;
|
||||||
|
border-bottom: 3px solid #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
background-color: #eb4d4b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode {
|
||||||
|
background-color: #64727D;
|
||||||
|
border-bottom: 3px solid #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock,
|
||||||
|
#battery,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#temperature,
|
||||||
|
#backlight,
|
||||||
|
#network,
|
||||||
|
#pulseaudio,
|
||||||
|
#custom-media,
|
||||||
|
#tray,
|
||||||
|
#mode,
|
||||||
|
#idle_inhibitor,
|
||||||
|
#custom-date,
|
||||||
|
#custom-clock,
|
||||||
|
#custom-week,
|
||||||
|
#mpd {
|
||||||
|
padding: 0px 10px;
|
||||||
|
/*margin: 2px 0px;*/
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: #4c566a;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*#clock {
|
||||||
|
/ background-color: #64727D;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
/*#battery {
|
||||||
|
background-color: #ffffff;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.charging {
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: #26A65B;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
@keyframes blink {
|
||||||
|
to {
|
||||||
|
background-color: #ffffff;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.warning:not(.charging) {
|
||||||
|
background-color: #fd971f;
|
||||||
|
}
|
||||||
|
#battery.critical:not(.charging) {
|
||||||
|
background-color: #ff5995;
|
||||||
|
}
|
||||||
|
|
||||||
|
label:focus {
|
||||||
|
background-color: #000000;
|
||||||
|
}
|
||||||
|
#network.disconnected {
|
||||||
|
background-color: #f53c3c;
|
||||||
|
}
|
||||||
|
#custom-media {
|
||||||
|
background-color: #66cc99;
|
||||||
|
color: #2a5c45;
|
||||||
|
min-width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media.custom-spotify {
|
||||||
|
background-color: #66cc99;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media.custom-vlc {
|
||||||
|
background-color: #ffa000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature.critical {
|
||||||
|
background-color: #eb4d4b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
background-color: #2980b9;
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor {
|
||||||
|
background-color: #2d3436;
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor.activated {
|
||||||
|
background-color: #ecf0f1;
|
||||||
|
color: #2d3436;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd {
|
||||||
|
background-color: #66cc99;
|
||||||
|
color: #2a5c45;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.disconnected {
|
||||||
|
background-color: #f53c3c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.stopped {
|
||||||
|
background-color: #90b1b1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.paused {
|
||||||
|
background-color: #51a37a;
|
||||||
|
}
|
8
roles/dotfiles/files/home/ssh/config
Normal file
8
roles/dotfiles/files/home/ssh/config
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
Host base
|
||||||
|
HostName skaq5lpru2kvl6hu.myfritz.net
|
||||||
|
Port 2222
|
||||||
|
User johannes
|
||||||
|
Host ovh
|
||||||
|
HostName 51.89.23.55
|
||||||
|
Port 2222
|
||||||
|
User rothe
|
54
roles/dotfiles/files/home/vimrc
Normal file
54
roles/dotfiles/files/home/vimrc
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
set number
|
||||||
|
set colorcolumn=80
|
||||||
|
set background=dark
|
||||||
|
syntax on
|
||||||
|
colorscheme monokai
|
||||||
|
|
||||||
|
" python
|
||||||
|
au BufNewFile,BufRead *.py set tabstop=4 softtabstop=4 shiftwidth=4
|
||||||
|
\ textwidth=79 expandtab autoindent fileformat=unix
|
||||||
|
au BufNewFile,BufRead *.yaml set tabstop=2 softtabstop=2 shiftwidth=2
|
||||||
|
\ textwidth=79 expandtab autoindent fileformat=unix
|
||||||
|
au BufNewFile,BufRead *.launch set filetype=xml
|
||||||
|
|
||||||
|
" vim-plug
|
||||||
|
" :PlugInstall to install new one
|
||||||
|
call plug#begin('~/.vim/plugged')
|
||||||
|
Plug 'dense-analysis/ale'
|
||||||
|
Plug 'Valloric/YouCompleteMe'
|
||||||
|
" enhanced search
|
||||||
|
Plug 'junegunn/vim-slash'
|
||||||
|
Plug 'preservim/nerdtree'
|
||||||
|
Plug 'vim-airline/vim-airline'
|
||||||
|
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
|
||||||
|
Plug 'junegunn/fzf.vim'
|
||||||
|
Plug 'luochen1990/rainbow'
|
||||||
|
" Themes
|
||||||
|
Plug 'crusoexia/vim-monokai'
|
||||||
|
" Language specific
|
||||||
|
Plug 'vim-python/python-syntax'
|
||||||
|
call plug#end()
|
||||||
|
" Preconditions for plugins
|
||||||
|
" ale: apt install pylint flake8
|
||||||
|
|
||||||
|
" Ale
|
||||||
|
let g:ale_linters = {
|
||||||
|
\ 'python': ['flake8', 'pylint'],
|
||||||
|
\}
|
||||||
|
|
||||||
|
" NERDTREE
|
||||||
|
" open nerdtree when no file is specified on startup
|
||||||
|
autocmd StdinReadPre * let s:std_in=1
|
||||||
|
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
|
||||||
|
" toggle nerdtree keyboard shortcut
|
||||||
|
map <C-t> :NERDTreeToggle<CR>
|
||||||
|
|
||||||
|
" RAINBOW_PARENTHESES
|
||||||
|
au FileType c,cpp,py call rainbow#load()
|
||||||
|
|
||||||
|
" python syntax
|
||||||
|
let g:python_highlight_all = 1
|
||||||
|
let g:python_highlight_func_calls = 0
|
||||||
|
|
||||||
|
" enable rainbow brackets
|
||||||
|
let g:rainbow_active = 1
|
25
roles/dotfiles/tasks/main.yml
Normal file
25
roles/dotfiles/tasks/main.yml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
- name: List files from config dir
|
||||||
|
find:
|
||||||
|
paths: "{{ role_path }}/files/config"
|
||||||
|
file_type: any
|
||||||
|
register: config_files
|
||||||
|
- name: List files for home dir
|
||||||
|
find:
|
||||||
|
paths: "{{ role_path }}/files/home"
|
||||||
|
file_type: any
|
||||||
|
register: home_files
|
||||||
|
- name: Link home files
|
||||||
|
file:
|
||||||
|
src: "{{ item.path }}"
|
||||||
|
path: "~/.{{ item.path | basename }}"
|
||||||
|
state: link
|
||||||
|
force: True
|
||||||
|
loop: "{{ home_files.files }}"
|
||||||
|
- name: Link config files
|
||||||
|
file:
|
||||||
|
src: "{{ item.path }}"
|
||||||
|
path: "~/.config/{{ item.path | basename }}"
|
||||||
|
state: link
|
||||||
|
force: True
|
||||||
|
loop: "{{ config_files.files }}"
|
Loading…
x
Reference in New Issue
Block a user