updating main to remove massive history
This commit is contained in:
commit
0960956064
121
.bashrc
Normal file
121
.bashrc
Normal file
@ -0,0 +1,121 @@
|
||||
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
||||
# for examples
|
||||
|
||||
# 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 lsa='ls -lah'
|
||||
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
|
||||
|
||||
alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
|
||||
alias logout='/bin/kill -9 -1'
|
||||
21
.config/Code/User/settings.json
Normal file
21
.config/Code/User/settings.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"explorer.confirmDelete": false,
|
||||
"window.zoomLevel": 0,
|
||||
"workbench.colorTheme": "Night Owl",
|
||||
"bracket-pair-colorizer-2.forceUniqueOpeningColor": true,
|
||||
"editor.fontLigatures": true,
|
||||
"editor.fontFamily": "'Fira Code'",
|
||||
"editor.fontWeight": "400",
|
||||
"[html]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
},
|
||||
"[json]": {
|
||||
"editor.defaultFormatter": "HookyQR.beautify"
|
||||
},
|
||||
"git.enableSmartCommit": true,
|
||||
"git.confirmSync": false,
|
||||
"git.autofetch": true,
|
||||
"python.pythonPath": "/usr/bin/python3",
|
||||
"python.linting.pylintEnabled": true,
|
||||
"python.linting.enabled": true
|
||||
}
|
||||
590
.config/alacritty/alacritty.yml
Normal file
590
.config/alacritty/alacritty.yml
Normal file
@ -0,0 +1,590 @@
|
||||
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
||||
|
||||
# Any items in the `env` entry below will be added as
|
||||
# environment variables. Some entries may override variables
|
||||
# set by alacritty itself.
|
||||
env:
|
||||
# TERM variable
|
||||
#
|
||||
# This value is used to set the `$TERM` environment variable for
|
||||
# each instance of Alacritty. If it is not present, alacritty will
|
||||
# check the local terminfo database and use `alacritty` if it is
|
||||
# available, otherwise `xterm-256color` is used.
|
||||
TERM: xterm-256color
|
||||
|
||||
window:
|
||||
# Window dimensions (changes require restart)
|
||||
#
|
||||
# Specified in number of columns/lines, not pixels.
|
||||
# If both are `0`, this setting is ignored.
|
||||
#dimensions:
|
||||
# columns: 0
|
||||
# lines: 0
|
||||
|
||||
# Window position (changes require restart)
|
||||
#
|
||||
# Specified in number of pixels.
|
||||
# If the position is not set, the window manager will handle the placement.
|
||||
#position:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Window padding (changes require restart)
|
||||
#
|
||||
# Blank space added around the window in pixels. This padding is scaled
|
||||
# by DPI and the specified value is always added at both opposing sides.
|
||||
padding:
|
||||
x: 6
|
||||
y: 6
|
||||
|
||||
# Spread additional padding evenly around the terminal content.
|
||||
#dynamic_padding: false
|
||||
|
||||
# Window decorations
|
||||
#
|
||||
# Values for `decorations`:
|
||||
# - full: Borders and title bar
|
||||
# - none: Neither borders nor title bar
|
||||
#
|
||||
# Values for `decorations` (macOS only):
|
||||
# - transparent: Title bar, transparent background and title bar buttons
|
||||
# - buttonless: Title bar, transparent background, but no title bar buttons
|
||||
#decorations: full
|
||||
|
||||
# Startup Mode (changes require restart)
|
||||
#
|
||||
# Values for `startup_mode`:
|
||||
# - Windowed
|
||||
# - Maximized
|
||||
# - Fullscreen
|
||||
#
|
||||
# Values for `startup_mode` (macOS only):
|
||||
# - SimpleFullscreen
|
||||
#startup_mode: Windowed
|
||||
|
||||
# Window title
|
||||
title: Alacritty
|
||||
|
||||
# Window class (Linux/BSD only):
|
||||
class:
|
||||
# Application instance name
|
||||
instance: Alacritty
|
||||
# General application class
|
||||
general: Alacritty
|
||||
|
||||
# GTK theme variant (Linux/BSD only)
|
||||
#
|
||||
# Override the variant of the GTK theme. Commonly supported values are `dark` and `light`.
|
||||
# Set this to `None` to use the default theme variant.
|
||||
#gtk_theme_variant: None
|
||||
|
||||
scrolling:
|
||||
# Maximum number of lines in the scrollback buffer.
|
||||
# Specifying '0' will disable scrolling.
|
||||
history: 5000
|
||||
|
||||
# Number of lines the viewport will move for every line scrolled when
|
||||
# scrollback is enabled (history > 0).
|
||||
#multiplier: 3
|
||||
|
||||
# Scroll to the bottom when new text is written to the terminal.
|
||||
#auto_scroll: false
|
||||
|
||||
# Spaces per Tab (changes require restart)
|
||||
#
|
||||
# This setting defines the width of a tab in cells.
|
||||
#
|
||||
# Some applications, like Emacs, rely on knowing about the width of a tab.
|
||||
# To prevent unexpected behavior in these applications, it's also required to
|
||||
# change the `it` value in terminfo when altering this setting.
|
||||
#tabspaces: 8
|
||||
|
||||
# Font configuration
|
||||
font:
|
||||
# Normal (roman) font face
|
||||
normal:
|
||||
# Font family
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) Menlo
|
||||
# - (Linux/BSD) monospace
|
||||
# - (Windows) Consolas
|
||||
# family: SauceCodePro Nerd Font
|
||||
# family: CodeNewRoman Nerd Font
|
||||
# family: RobotoMono Nerd Font
|
||||
# family: Hack
|
||||
# family: JetBrains Mono
|
||||
# family: UbuntuMono Nerd Font
|
||||
# family: Monofur Nerd Font
|
||||
# family: TerminessTTF Nerd Font
|
||||
# family: SauceCodePro Nerd Font
|
||||
family: Fira Code
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Regular
|
||||
|
||||
# Bold font face
|
||||
bold:
|
||||
# Font family
|
||||
#
|
||||
# If the bold family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
# family: SauceCodePro Nerd Font
|
||||
# family: CodeNewRoman Nerd Font
|
||||
# family: RobotoMono Nerd Font
|
||||
# family: Hack
|
||||
# family: JetBrains Mono
|
||||
# family: UbuntuMono Nerd Font
|
||||
# family: Monofur Nerd Font
|
||||
# family: TerminessTTF Nerd Font
|
||||
# family: SauceCodePro Nerd Font
|
||||
family: Fira Code
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Bold
|
||||
|
||||
# Italic font face
|
||||
italic:
|
||||
# Font family
|
||||
#
|
||||
# If the italic family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
# family: SauceCodePro Nerd Font Mono
|
||||
# family: CodeNewRoman Nerd Font
|
||||
# family: RobotoMono Nerd Font
|
||||
# family: Hack
|
||||
# family: JetBrains Mono
|
||||
# family: UbuntuMono Nerd Font
|
||||
# family: Monofuritalic Nerd Font Mono
|
||||
# family: TerminessTTF Nerd Font
|
||||
# family: SauceCodePro Nerd Font
|
||||
family: Fira Code
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Italic
|
||||
|
||||
# Bold italic font face
|
||||
bold_italic:
|
||||
# Font family
|
||||
#
|
||||
# If the bold italic family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
# family: SauceCodePro Nerd Font Mono
|
||||
# family: CodeNewRoman Nerd Font
|
||||
# family: RobotoMono Nerd Font
|
||||
# family: Hack
|
||||
# family: JetBrains Mono
|
||||
# family: UbuntuMono Nerd Font
|
||||
# family: Monofuritalic Nerd Font Mono
|
||||
# family: TerminessTTF Nerd Font
|
||||
# family: SauceCodePro Nerd Font
|
||||
family: Fira Code
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Bold Italic
|
||||
|
||||
# Point size
|
||||
size: 11.0
|
||||
|
||||
# Offset is the extra space around each character. `offset.y` can be thought of
|
||||
# as modifying the line spacing, and `offset.x` as modifying the letter spacing.
|
||||
offset:
|
||||
x: 0
|
||||
y: 0
|
||||
|
||||
# Glyph offset determines the locations of the glyphs within their cells with
|
||||
# the default being at the bottom. Increasing `x` moves the glyph to the right,
|
||||
# increasing `y` moves the glyph upwards.
|
||||
#glyph_offset:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Thin stroke font rendering (macOS only)
|
||||
#
|
||||
# Thin strokes are suitable for retina displays, but for non-retina screens
|
||||
# it is recommended to set `use_thin_strokes` to `false`
|
||||
#
|
||||
# macOS >= 10.14.x:
|
||||
#
|
||||
# If the font quality on non-retina display looks bad then set
|
||||
# `use_thin_strokes` to `true` and enable font smoothing by running the
|
||||
# following command:
|
||||
# `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
|
||||
#
|
||||
# This is a global setting and will require a log out or restart to take
|
||||
# effect.
|
||||
#use_thin_strokes: true
|
||||
|
||||
# If `true`, bold text is drawn using the bright color variants.
|
||||
draw_bold_text_with_bright_colors: true
|
||||
|
||||
# Colors (Tomorrow Night Bright)
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: '0x282c34'
|
||||
foreground: '0xbbc2cf'
|
||||
|
||||
# Bright and dim foreground colors
|
||||
#
|
||||
# The dimmed foreground color is calculated automatically if it is not present.
|
||||
# If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
|
||||
# is `false`, the normal foreground color will be used.
|
||||
#dim_foreground: '0x9a9a9a'
|
||||
#bright_foreground: '0xffffff'
|
||||
|
||||
# Cursor colors
|
||||
#
|
||||
# Colors which should be used to draw the terminal cursor. If these are unset,
|
||||
# the cursor color will be the inverse of the cell color.
|
||||
#cursor:
|
||||
# text: '0x000000'
|
||||
# cursor: '0xffffff'
|
||||
|
||||
# Selection colors
|
||||
#
|
||||
# Colors which should be used to draw the selection area. If selection
|
||||
# background is unset, selection color will be the inverse of the cell colors.
|
||||
# If only text is unset the cell text color will remain the same.
|
||||
selection:
|
||||
text: '0xbbc2cf'
|
||||
background: '0x282c34'
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: '0x1c1f24'
|
||||
red: '0xff6c6b'
|
||||
green: '0x98be65'
|
||||
yellow: '0xda8548'
|
||||
blue: '0x51afef'
|
||||
magenta: '0xc678dd'
|
||||
cyan: '0x5699af'
|
||||
white: '0x202328'
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: '0x5b6268'
|
||||
red: '0xda8548'
|
||||
green: '0x4db5bd'
|
||||
yellow: '0xecbe7b'
|
||||
blue: '0x3071db' # This is 2257a0 in Doom Emacs but I lightened it.
|
||||
magenta: '0xa9a1e1'
|
||||
cyan: '0x46d9ff'
|
||||
white: '0xdfdfdf'
|
||||
|
||||
# Dim colors
|
||||
#
|
||||
# If the dim colors are not set, they will be calculated automatically based
|
||||
# on the `normal` colors.
|
||||
#dim:
|
||||
# black: '0x000000'
|
||||
# red: '0x8c3336'
|
||||
# green: '0x7a8530'
|
||||
# yellow: '0x97822e'
|
||||
# blue: '0x506d8f'
|
||||
# magenta: '0x80638e'
|
||||
# cyan: '0x497e7a'
|
||||
# white: '0x9a9a9a'
|
||||
|
||||
# Indexed Colors
|
||||
#
|
||||
# The indexed colors include all colors from 16 to 256.
|
||||
# When these are not set, they're filled with sensible defaults.
|
||||
#
|
||||
# Example:
|
||||
# `- { index: 16, color: '0xff00ff' }`
|
||||
#
|
||||
#indexed_colors: []
|
||||
|
||||
# Visual Bell
|
||||
#
|
||||
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
|
||||
# rung, the terminal background will be set to white and transition back to the
|
||||
# default background color. You can control the rate of this transition by
|
||||
# setting the `duration` property (represented in milliseconds). You can also
|
||||
# configure the transition function by setting the `animation` property.
|
||||
#
|
||||
# Values for `animation`:
|
||||
# - Ease
|
||||
# - EaseOut
|
||||
# - EaseOutSine
|
||||
# - EaseOutQuad
|
||||
# - EaseOutCubic
|
||||
# - EaseOutQuart
|
||||
# - EaseOutQuint
|
||||
# - EaseOutExpo
|
||||
# - EaseOutCirc
|
||||
# - Linear
|
||||
#
|
||||
# Specifying a `duration` of `0` will disable the visual bell.
|
||||
#visual_bell:
|
||||
# animation: EaseOutExpo
|
||||
# duration: 0
|
||||
# color: '0xffffff'
|
||||
|
||||
# Background opacity
|
||||
#
|
||||
# Window opacity as a floating point number from `0.0` to `1.0`.
|
||||
# The value `0.0` is completely transparent and `1.0` is opaque.
|
||||
background_opacity: 0.75
|
||||
# background_opacity: 0.95
|
||||
|
||||
#selection:
|
||||
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
|
||||
|
||||
# When set to `true`, selected text will be copied to the primary clipboard.
|
||||
#save_to_clipboard: false
|
||||
|
||||
# Allow terminal applications to change Alacritty's window title.
|
||||
#dynamic_title: true
|
||||
|
||||
#cursor:
|
||||
# Cursor style
|
||||
#
|
||||
# Values for `style`:
|
||||
# - ▇ Block
|
||||
# - _ Underline
|
||||
# - | Beam
|
||||
#style: Block
|
||||
|
||||
# If this is `true`, the cursor will be rendered as a hollow box when the
|
||||
# window is not focused.
|
||||
#unfocused_hollow: true
|
||||
|
||||
# Live config reload (changes require restart)
|
||||
#live_config_reload: true
|
||||
|
||||
# Shell
|
||||
#
|
||||
# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
|
||||
# Entries in `shell.args` are passed unmodified as arguments to the shell.
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) /bin/bash --login
|
||||
# - (Linux/BSD) user login shell
|
||||
# - (Windows) powershell
|
||||
#shell:
|
||||
# program: /bin/bash
|
||||
# args:
|
||||
# - --login
|
||||
shell:
|
||||
program: /usr/bin/fish
|
||||
args:
|
||||
- --login
|
||||
|
||||
# Startup directory
|
||||
#
|
||||
# Directory the shell is started in. If this is unset, or `None`, the working
|
||||
# directory of the parent process will be used.
|
||||
#working_directory: None
|
||||
|
||||
# WinPTY backend (Windows only)
|
||||
#
|
||||
# Alacritty defaults to using the newer ConPTY backend if it is available,
|
||||
# since it resolves a lot of bugs and is quite a bit faster. If it is not
|
||||
# available, the the WinPTY backend will be used instead.
|
||||
#
|
||||
# Setting this option to `true` makes Alacritty use the legacy WinPTY backend,
|
||||
# even if the ConPTY backend is available.
|
||||
#winpty_backend: false
|
||||
|
||||
# Send ESC (\x1b) before characters when alt is pressed.
|
||||
#alt_send_esc: true
|
||||
|
||||
#debug:
|
||||
# Display the time it takes to redraw each frame.
|
||||
#render_timer: false
|
||||
|
||||
# Keep the log file after quitting Alacritty.
|
||||
#persistent_logging: false
|
||||
|
||||
# Log level
|
||||
#
|
||||
# Values for `log_level`:
|
||||
# - None
|
||||
# - Error
|
||||
# - Warn
|
||||
# - Info
|
||||
# - Debug
|
||||
# - Trace
|
||||
#log_level: Warn
|
||||
|
||||
# Print all received window events.
|
||||
#print_events: false
|
||||
|
||||
# Record all characters and escape sequences as test data.
|
||||
#ref_test: false
|
||||
|
||||
#mouse:
|
||||
# Click settings
|
||||
#
|
||||
# The `double_click` and `triple_click` settings control the time
|
||||
# alacritty should wait for accepting multiple clicks as one double
|
||||
# or triple click.
|
||||
#double_click: { threshold: 300 }
|
||||
#triple_click: { threshold: 300 }
|
||||
|
||||
# If this is `true`, the cursor is temporarily hidden when typing.
|
||||
#hide_when_typing: false
|
||||
|
||||
#url:
|
||||
# URL launcher
|
||||
#
|
||||
# This program is executed when clicking on a text which is recognized as a URL.
|
||||
# The URL is always added to the command as the last parameter.
|
||||
#
|
||||
# When set to `None`, URL launching will be disabled completely.
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) open
|
||||
# - (Linux/BSD) xdg-open
|
||||
# - (Windows) explorer
|
||||
#launcher:
|
||||
# program: xdg-open
|
||||
# args: []
|
||||
|
||||
# URL modifiers
|
||||
#
|
||||
# These are the modifiers that need to be held down for opening URLs when clicking
|
||||
# on them. The available modifiers are documented in the key binding section.
|
||||
#modifiers: None
|
||||
|
||||
# Mouse bindings
|
||||
#
|
||||
# Mouse bindings are specified as a list of objects, much like the key
|
||||
# bindings further below.
|
||||
#
|
||||
# Each mouse binding will specify a:
|
||||
#
|
||||
# - `mouse`:
|
||||
#
|
||||
# - Middle
|
||||
# - Left
|
||||
# - Right
|
||||
# - Numeric identifier such as `5`
|
||||
#
|
||||
# - `action` (see key bindings)
|
||||
#
|
||||
# And optionally:
|
||||
#
|
||||
# - `mods` (see key bindings)
|
||||
#mouse_bindings:
|
||||
# - { mouse: Middle, action: PasteSelection }
|
||||
|
||||
# Key bindings
|
||||
#
|
||||
# Key bindings are specified as a list of objects. For example, this is the
|
||||
# default paste binding:
|
||||
#
|
||||
# `- { key: V, mods: Control|Shift, action: Paste }`
|
||||
#
|
||||
# Each key binding will specify a:
|
||||
#
|
||||
# - `key`: Identifier of the key pressed
|
||||
#
|
||||
# - A-Z
|
||||
# - F1-F24
|
||||
# - Key0-Key9
|
||||
#
|
||||
# A full list with available key codes can be found here:
|
||||
# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
|
||||
#
|
||||
# Instead of using the name of the keys, the `key` field also supports using
|
||||
# the scancode of the desired key. Scancodes have to be specified as a
|
||||
# decimal number. This command will allow you to display the hex scancodes
|
||||
# for certain keys:
|
||||
#
|
||||
# `showkey --scancodes`.
|
||||
#
|
||||
# Then exactly one of:
|
||||
#
|
||||
# - `chars`: Send a byte sequence to the running application
|
||||
#
|
||||
# The `chars` field writes the specified string to the terminal. This makes
|
||||
# it possible to pass escape sequences. To find escape codes for bindings
|
||||
# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
|
||||
# of tmux. Note that applications use terminfo to map escape sequences back
|
||||
# to keys. It is therefore required to update the terminfo when changing an
|
||||
# escape sequence.
|
||||
#
|
||||
# - `action`: Execute a predefined action
|
||||
#
|
||||
# - Copy
|
||||
# - Paste
|
||||
# - PasteSelection
|
||||
# - IncreaseFontSize
|
||||
# - DecreaseFontSize
|
||||
# - ResetFontSize
|
||||
# - ScrollPageUp
|
||||
# - ScrollPageDown
|
||||
# - ScrollLineUp
|
||||
# - ScrollLineDown
|
||||
# - ScrollToTop
|
||||
# - ScrollToBottom
|
||||
# - ClearHistory
|
||||
# - Hide
|
||||
# - Minimize
|
||||
# - Quit
|
||||
# - ToggleFullscreen
|
||||
# - SpawnNewInstance
|
||||
# - ClearLogNotice
|
||||
# - ReceiveChar
|
||||
# - None
|
||||
#
|
||||
# (macOS only):
|
||||
# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space
|
||||
#
|
||||
# - `command`: Fork and execute a specified command plus arguments
|
||||
#
|
||||
# The `command` field must be a map containing a `program` string and an
|
||||
# `args` array of command line parameter strings. For example:
|
||||
# `{ program: "alacritty", args: ["-e", "vttest"] }`
|
||||
#
|
||||
# And optionally:
|
||||
#
|
||||
# - `mods`: Key modifiers to filter binding actions
|
||||
#
|
||||
# - Command
|
||||
# - Control
|
||||
# - Option
|
||||
# - Super
|
||||
# - Shift
|
||||
# - Alt
|
||||
#
|
||||
# Multiple `mods` can be combined using `|` like this:
|
||||
# `mods: Control|Shift`.
|
||||
# Whitespace and capitalization are relevant and must match the example.
|
||||
#
|
||||
# - `mode`: Indicate a binding for only specific terminal reported modes
|
||||
#
|
||||
# This is mainly used to send applications the correct escape sequences
|
||||
# when in different modes.
|
||||
#
|
||||
# - AppCursor
|
||||
# - AppKeypad
|
||||
# - Alt
|
||||
#
|
||||
# A `~` operator can be used before a mode to apply the binding whenever
|
||||
# the mode is *not* active, e.g. `~Alt`.
|
||||
#
|
||||
# Bindings are always filled by default, but will be replaced when a new
|
||||
# binding with the same triggers is defined. To unset a default binding, it can
|
||||
# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
|
||||
# a no-op if you do not wish to receive input characters for that binding.
|
||||
key_bindings:
|
||||
# (Windows, Linux, and BSD only)
|
||||
- { key: V, mods: Control|Shift, action: Paste }
|
||||
- { key: C, mods: Control|Shift, action: Copy }
|
||||
- { key: Insert, mods: Shift, action: PasteSelection }
|
||||
- { key: Numpad0, mods: Control, action: ResetFontSize }
|
||||
- { key: NumpadEquals, mods: Control, action: IncreaseFontSize }
|
||||
- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
|
||||
|
||||
- { key: Paste, action: Paste }
|
||||
- { key: Copy, action: Copy }
|
||||
- { key: L, mods: Control, action: ClearLogNotice }
|
||||
- { key: L, mods: Control, chars: "\x0c" }
|
||||
- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt }
|
||||
- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt }
|
||||
- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt }
|
||||
- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt }
|
||||
29
.config/code_extensions
Normal file
29
.config/code_extensions
Normal file
@ -0,0 +1,29 @@
|
||||
code --install-extension ahmadawais.shades-of-purple
|
||||
code --install-extension austin.code-gnu-global
|
||||
code --install-extension christian-kohler.path-intellisense
|
||||
code --install-extension CoenraadS.bracket-pair-colorizer-2
|
||||
code --install-extension DotJoshJohnson.xml
|
||||
code --install-extension dracula-theme.theme-dracula
|
||||
code --install-extension formulahendry.auto-close-tag
|
||||
code --install-extension formulahendry.auto-rename-tag
|
||||
code --install-extension formulahendry.code-runner
|
||||
code --install-extension Fudge.auto-using
|
||||
code --install-extension HookyQR.beautify
|
||||
code --install-extension humao.rest-client
|
||||
code --install-extension justusadam.language-haskell
|
||||
code --install-extension marcochavezf.darcula-operator-mono-vscode
|
||||
code --install-extension mitaki28.vscode-clang
|
||||
code --install-extension ms-azuretools.vscode-azureappservice
|
||||
code --install-extension ms-dotnettools.csharp
|
||||
code --install-extension ms-python.python
|
||||
code --install-extension ms-vscode-remote.remote-wsl
|
||||
code --install-extension ms-vscode.azure-account
|
||||
code --install-extension ms-vscode.cmake-tools
|
||||
code --install-extension ms-vscode.cpptools
|
||||
code --install-extension quicktype.quicktype
|
||||
code --install-extension sdras.night-owl
|
||||
code --install-extension teabyii.ayu
|
||||
code --install-extension tomoki1207.pdf
|
||||
code --install-extension twxs.cmake
|
||||
code --install-extension wayou.vscode-todo-highlight
|
||||
code --install-extension wesbos.theme-cobalt2
|
||||
148
.config/fish/config.fish
Normal file
148
.config/fish/config.fish
Normal file
@ -0,0 +1,148 @@
|
||||
|
||||
# Solomon Laings config.fish
|
||||
set fish_greeting
|
||||
set TERM "xterm-256color"
|
||||
set EDITOR "nano"
|
||||
set VISUAL "code"
|
||||
|
||||
# my bashrc stuff
|
||||
alias ..='cd ..'
|
||||
alias lsa='ls -lah --color=auto'
|
||||
alias ll='ls -alF --color=auto'
|
||||
alias la='ls -A --color=auto'
|
||||
alias l='ls -CF --color=auto'
|
||||
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'
|
||||
alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
|
||||
alias logout='/usr/bin/kill -9 -1'
|
||||
alias ss='cd /home/solomon/.scripts/'
|
||||
alias sound-settings='pavucontrol'
|
||||
|
||||
## fish misc functions start ##
|
||||
|
||||
function ip-addr
|
||||
curl api.ipify.org
|
||||
end
|
||||
|
||||
function move-last-download
|
||||
mv ~/Downloads/(ls -t -A ~/Downloads/ | head -1) .
|
||||
end
|
||||
|
||||
function search
|
||||
open https://duckduckgo.com/"$argv"
|
||||
end
|
||||
|
||||
function batt
|
||||
acpi | egrep 'Bat(.)+remaining'
|
||||
end
|
||||
|
||||
function sms
|
||||
kdeconnect-sms &disown
|
||||
end
|
||||
## fish misc functions end ##
|
||||
|
||||
# fish does not support !! and !$ so functions are needed
|
||||
## !! and !$ operators start ##
|
||||
function __history_previous_command
|
||||
switch (commandline -t)
|
||||
case "!"
|
||||
commandline -t $history[1]; commandline -f repaint
|
||||
case "*"
|
||||
commandline -i !
|
||||
end
|
||||
end
|
||||
|
||||
function __history_previous_command_arguments
|
||||
switch (commandline -t)
|
||||
case "!"
|
||||
commandline -t ""
|
||||
commandline -f history-token-search-backward
|
||||
case "*"
|
||||
commandline -i '$'
|
||||
end
|
||||
end
|
||||
|
||||
bind ! __history_previous_command
|
||||
bind '$' __history_previous_command_arguments
|
||||
## !! and !$ operators end ##
|
||||
|
||||
## fish prompt start ##
|
||||
# name: sashimi
|
||||
function fish_prompt
|
||||
set -l last_status $status
|
||||
set -l cyan (set_color -o cyan)
|
||||
set -l yellow (set_color -o yellow)
|
||||
set -g red (set_color -o red)
|
||||
set -g blue (set_color -o blue)
|
||||
set -l green (set_color -o green)
|
||||
set -g normal (set_color normal)
|
||||
|
||||
set -l ahead (_git_ahead)
|
||||
set -g whitespace ' '
|
||||
|
||||
if test $last_status = 0
|
||||
set initial_indicator "$green◆"
|
||||
set status_indicator "$normal❯$cyan❯$green❯"
|
||||
else
|
||||
set initial_indicator "$red✖ $last_status"
|
||||
set status_indicator "$red❯$red❯$red❯"
|
||||
end
|
||||
set -l cwd $cyan(pwd)
|
||||
|
||||
if [ (_git_branch_name) ]
|
||||
|
||||
if test (_git_branch_name) = 'master'
|
||||
set -l git_branch (_git_branch_name)
|
||||
set git_info "$normal git:($red$git_branch$normal)"
|
||||
else
|
||||
set -l git_branch (_git_branch_name)
|
||||
set git_info "$normal git:($blue$git_branch$normal)"
|
||||
end
|
||||
|
||||
if [ (_is_git_dirty) ]
|
||||
set -l dirty "$yellow ✗"
|
||||
set git_info "$git_info$dirty"
|
||||
end
|
||||
end
|
||||
|
||||
# Notify if a command took more than 5 minutes
|
||||
if [ "$CMD_DURATION" -gt 300000 ]
|
||||
echo The last command took (math "$CMD_DURATION/1000") seconds.
|
||||
end
|
||||
|
||||
echo -n -s $initial_indicator $whitespace $cwd $git_info $whitespace $ahead $status_indicator $whitespace
|
||||
end
|
||||
|
||||
function _git_ahead
|
||||
set -l commits (command git rev-list --left-right '@{upstream}...HEAD' ^/dev/null)
|
||||
if [ $status != 0 ]
|
||||
return
|
||||
end
|
||||
set -l behind (count (for arg in $commits; echo $arg; end | grep '^<'))
|
||||
set -l ahead (count (for arg in $commits; echo $arg; end | grep -v '^<'))
|
||||
switch "$ahead $behind"
|
||||
case '' # no upstream
|
||||
case '0 0' # equal to upstream
|
||||
return
|
||||
case '* 0' # ahead of upstream
|
||||
echo "$blue↑$normal_c$ahead$whitespace"
|
||||
case '0 *' # behind upstream
|
||||
echo "$red↓$normal_c$behind$whitespace"
|
||||
case '*' # diverged from upstream
|
||||
echo "$blue↑$normal$ahead $red↓$normal_c$behind$whitespace"
|
||||
end
|
||||
end
|
||||
|
||||
function _git_branch_name
|
||||
echo (command git symbolic-ref HEAD ^/dev/null | sed -e 's|^refs/heads/||')
|
||||
end
|
||||
|
||||
function _is_git_dirty
|
||||
echo (command git status -s --ignore-submodules=dirty ^/dev/null)
|
||||
end
|
||||
## fish prompt end ##
|
||||
|
||||
33
.config/fish/fish_variables
Normal file
33
.config/fish/fish_variables
Normal file
@ -0,0 +1,33 @@
|
||||
# This file contains fish universal variable definitions.
|
||||
# VERSION: 3.0
|
||||
SETUVAR __fish_initialized:3100
|
||||
SETUVAR fish_color_autosuggestion:555\x1ebrblack
|
||||
SETUVAR fish_color_cancel:\x2dr
|
||||
SETUVAR fish_color_command:005fd7
|
||||
SETUVAR fish_color_comment:990000
|
||||
SETUVAR fish_color_cwd:green
|
||||
SETUVAR fish_color_cwd_root:red
|
||||
SETUVAR fish_color_end:009900
|
||||
SETUVAR fish_color_error:ff0000
|
||||
SETUVAR fish_color_escape:00a6b2
|
||||
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||
SETUVAR fish_color_host:normal
|
||||
SETUVAR fish_color_host_remote:yellow
|
||||
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
|
||||
SETUVAR fish_color_normal:normal
|
||||
SETUVAR fish_color_operator:00a6b2
|
||||
SETUVAR fish_color_param:00afff
|
||||
SETUVAR fish_color_quote:999900
|
||||
SETUVAR fish_color_redirection:00afff
|
||||
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
|
||||
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
||||
SETUVAR fish_color_status:red
|
||||
SETUVAR fish_color_user:brgreen
|
||||
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||
SETUVAR fish_greeting:\x1d
|
||||
SETUVAR fish_key_bindings:fish_default_key_bindings
|
||||
SETUVAR fish_pager_color_completion:\x1d
|
||||
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
|
||||
SETUVAR fish_user_paths:/home/solomon/\x2escripts/
|
||||
122
.config/rofi/config.rasi
Normal file
122
.config/rofi/config.rasi
Normal file
@ -0,0 +1,122 @@
|
||||
/*Dracula theme based on the Purple official rofi theme*/
|
||||
|
||||
* {
|
||||
font: "Jetbrains Mono 12";
|
||||
foreground: #f8f8f2;
|
||||
background-color: #282a36;
|
||||
active-background: #6272a4;
|
||||
urgent-background: #ff5555;
|
||||
selected-background: @active-background;
|
||||
selected-urgent-background: @urgent-background;
|
||||
selected-active-background: @active-background;
|
||||
separatorcolor: @active-background;
|
||||
bordercolor: @active-background;
|
||||
}
|
||||
|
||||
#window {
|
||||
background-color: @background;
|
||||
border: 1;
|
||||
border-radius: 6;
|
||||
border-color: @bordercolor;
|
||||
padding: 5;
|
||||
}
|
||||
#mainbox {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#message {
|
||||
border: 1px dash 0px 0px ;
|
||||
border-color: @separatorcolor;
|
||||
padding: 1px ;
|
||||
}
|
||||
#textbox {
|
||||
text-color: @foreground;
|
||||
}
|
||||
#listview {
|
||||
fixed-height: 0;
|
||||
border: 2px dash 0px 0px ;
|
||||
border-color: @bordercolor;
|
||||
spacing: 2px ;
|
||||
scrollbar: false;
|
||||
padding: 2px 0px 0px ;
|
||||
}
|
||||
#element {
|
||||
border: 0;
|
||||
padding: 1px ;
|
||||
}
|
||||
#element.normal.normal {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#element.normal.urgent {
|
||||
background-color: @urgent-background;
|
||||
text-color: @urgent-foreground;
|
||||
}
|
||||
#element.normal.active {
|
||||
background-color: @active-background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#element.selected.normal {
|
||||
background-color: @selected-background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#element.selected.urgent {
|
||||
background-color: @selected-urgent-background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#element.selected.active {
|
||||
background-color: @selected-active-background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#element.alternate.normal {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#element.alternate.urgent {
|
||||
background-color: @urgent-background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#element.alternate.active {
|
||||
background-color: @active-background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#scrollbar {
|
||||
width: 2px ;
|
||||
border: 0;
|
||||
handle-width: 8px ;
|
||||
padding: 0;
|
||||
}
|
||||
#sidebar {
|
||||
border: 2px dash 0px 0px ;
|
||||
border-color: @separatorcolor;
|
||||
}
|
||||
#button.selected {
|
||||
background-color: @selected-background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#inputbar {
|
||||
spacing: 0;
|
||||
text-color: @foreground;
|
||||
padding: 1px ;
|
||||
}
|
||||
#case-indicator {
|
||||
spacing: 0;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#entry {
|
||||
spacing: 0;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#prompt {
|
||||
spacing: 0;
|
||||
text-color: @foreground;
|
||||
}
|
||||
#inputbar {
|
||||
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
|
||||
}
|
||||
#textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: ":";
|
||||
margin: 0px 0.3em 0em 0em ;
|
||||
text-color: @foreground;
|
||||
}
|
||||
48
.config/xmobar/trayer-padding-icon.sh
Executable file
48
.config/xmobar/trayer-padding-icon.sh
Executable file
@ -0,0 +1,48 @@
|
||||
#!/bin/sh
|
||||
# Copied from https://github.com/jaor/xmobar/issues/239#issuecomment-233206552
|
||||
# Detects the width of running trayer-srg window (xprop name 'panel')
|
||||
# and creates an XPM icon of that width, 1px height, and transparent.
|
||||
# Outputs an <icon>-tag for use in xmobar to display the generated
|
||||
# XPM icon.
|
||||
#
|
||||
# Run script from xmobar:
|
||||
# `Run Com "/where/ever/trayer-padding-icon.sh" [] "trayerpad" 10`
|
||||
# and use `%trayerpad%` in your template.
|
||||
|
||||
|
||||
# Function to create a transparent Wx1 px XPM icon
|
||||
create_xpm_icon () {
|
||||
timestamp=$(date)
|
||||
pixels=$(for i in `seq $1`; do echo -n "."; done)
|
||||
|
||||
cat << EOF > "$2"
|
||||
/* XPM *
|
||||
static char * trayer_pad_xpm[] = {
|
||||
/* This XPM icon is used for padding in xmobar to */
|
||||
/* leave room for trayer-srg. It is dynamically */
|
||||
/* updated by by trayer-padding-icon.sh which is run */
|
||||
/* by xmobar. */
|
||||
/* Created: ${timestamp} */
|
||||
/* <w/cols> <h/rows> <colors> <chars per pixel> */
|
||||
"$1 1 1 1",
|
||||
/* Colors (none: transparent) */
|
||||
". c none",
|
||||
/* Pixels */
|
||||
"$pixels"
|
||||
};
|
||||
EOF
|
||||
}
|
||||
|
||||
# Width of the trayer window
|
||||
width=$(xprop -name panel | grep 'program specified minimum size' | cut -d ' ' -f 5)
|
||||
|
||||
# Icon file name
|
||||
iconfile="/tmp/trayer-padding-${width}px.xpm"
|
||||
|
||||
# If the desired icon does not exist create it
|
||||
if [ ! -f $iconfile ]; then
|
||||
create_xpm_icon $width $iconfile
|
||||
fi
|
||||
|
||||
# Output the icon tag for xmobar
|
||||
echo "<icon=${iconfile}/>"
|
||||
126
.config/xmobar/xmobarrc.hs
Normal file
126
.config/xmobar/xmobarrc.hs
Normal file
@ -0,0 +1,126 @@
|
||||
Config {
|
||||
|
||||
-- appearance
|
||||
font = "xft:Fira Code:size=11:bold:antialias=true:hinting=true"
|
||||
, bgColor = "#14071F"
|
||||
, fgColor = "#646464"
|
||||
, position = Top
|
||||
, border = BottomB
|
||||
, borderColor = "#14071F"
|
||||
, iconRoot = "/home/solomon/.xmonad/xpm/" -- default: "."
|
||||
|
||||
-- layout
|
||||
, sepChar = "%" -- delineator between plugin names and straight text
|
||||
, alignSep = "}{" -- separator between left-right alignment
|
||||
, template = " <action=`xdotool key super+o`><icon=haskell_20.xpm/></action> %UnsafeStdinReader% <fc=#805a9b>|</fc> <fc=#f3617a>%cpu%</fc> <fc=#805a9b>|</fc> <fc=#b262cd>%memory%</fc> <fc=#805a9b>|</fc> <fc=#706bc2>%dynnetwork%</fc> } \
|
||||
\{ <fc=#ee9a00>%date%</fc> <fc=#805a9b>|</fc> <fc=#b55322>%YPAD%</fc> <fc=#805a9b>|</fc> <fc=#6e1a11>%battery%</fc> %trayerpad%"
|
||||
}
|
||||
|
||||
-- general behavior
|
||||
, lowerOnStart = True -- send to bottom of window stack on start
|
||||
, hideOnStart = False -- start with window unmapped (hidden)
|
||||
, allDesktops = True -- show on all desktops
|
||||
, overrideRedirect = True -- set the Override Redirect flag (Xlib)
|
||||
, pickBroadest = False -- choose widest display (multi-monitor)
|
||||
, persistent = True -- enable/disable hiding (True = disabled)
|
||||
|
||||
-- plugins
|
||||
-- Numbers can be automaticallJy colored according to their value. xmobar
|
||||
-- decides color based on a three-tier/two-cutoff system, controlled by
|
||||
-- command options:
|
||||
-- --Low sets the low cutoff
|
||||
-- --High sets the high cutoff
|
||||
--
|
||||
-- --low sets the color below --Low cutoff
|
||||
-- --normal sets the color between --Low and --High cutoffs
|
||||
-- --High sets the color above --High cutoff
|
||||
--
|
||||
-- The --template option controls how the plugin is displayed. Text
|
||||
-- color can be set by enclosing in <fc></fc> tags. For more details
|
||||
-- see http://projects.haskell.org/xmobar/#system-monitor-plugins.
|
||||
, commands =
|
||||
-- weather monitor
|
||||
[ Run Weather "YPAD" ["--template" , "<station>: <tempC>°C"
|
||||
, "--Low" , "10"
|
||||
, "--High" , "25"
|
||||
, "--normal" , "#95C05D"
|
||||
, "--high" , "red"
|
||||
, "--low" , "lightblue"
|
||||
] 36000
|
||||
|
||||
-- network activity monitor
|
||||
-- , Run Network "enp33s0" [ "--template" , "eth: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
-- , "--Low" , "100000" -- units: B/s
|
||||
-- , "--High" , "500000" -- units: B/s
|
||||
-- , "--low" , "#95C05D"
|
||||
-- , "--normal" , "#ee9a00"
|
||||
-- , "--high" , "#882410"
|
||||
-- ] 10
|
||||
-- , Run Network "wlp36s0" [ "--template" , "wlan: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
-- , "--Low" , "100000" -- units: B/s
|
||||
-- , "--High" , "500000" -- units: B/s
|
||||
-- , "--low" , "#95C05D"
|
||||
-- , "--normal" , "#ee9a00"
|
||||
-- , "--high" , "#882410"
|
||||
-- ] 10
|
||||
|
||||
-- network activity monitor (dynamic interface resolution)
|
||||
, Run DynNetwork [ "--template" , "<dev>: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
, "--Low" , "100000" -- units: B/s
|
||||
, "--High" , "500000" -- units: B/s
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- cpu activity monitor
|
||||
, Run Cpu [ "--template" , "cpu: <total>%"
|
||||
, "--Low" , "30" -- units: %
|
||||
, "--High" , "60" -- units: %
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- memory usage monitor
|
||||
-- , Run Memory [ "--template" ,"mem: <usedratio>% (<used>Mb)"
|
||||
, Run Memory [ "--template" ,"mem: <usedratio>%"
|
||||
, "--Low" , "20" -- units: %
|
||||
, "--High" , "90" -- units: %
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- time and date indicator
|
||||
-- (%F = y-m-d date, %a = day of week, %T = h:m:s time)
|
||||
, Run Date "%a %d %b %H:%M" "date" 10
|
||||
|
||||
-- keyboard layout indicator
|
||||
-- , Run Kbd [ ("us(dvorak)" , "DV")
|
||||
-- , ("us" , "US")
|
||||
-- ]
|
||||
|
||||
-- Battery information. This is likely to require some customization
|
||||
-- based upon your specific hardware. Or, for a desktop you may want
|
||||
-- to just remove this section entirely.
|
||||
, Run BatteryP ["BAT0"]
|
||||
[ "--template", "<acstatus>: <left>%, <timeleft>"
|
||||
, "-L", "10", "-H", "80"
|
||||
, "-l", "red", "-h", "green"
|
||||
, "--", "-O", "Charging", "-o", "Battery"
|
||||
] 10
|
||||
|
||||
-- Runs a standard shell command 'uname -r' to get kernel version
|
||||
-- , Run Com "uname" ["-r"] "" 3600
|
||||
|
||||
-- Script that dynamically adjusts xmobar padding depending on number of trayer icons.
|
||||
, Run Com "/home/solomon/.config/xmobar/trayer-padding-icon.sh" [] "trayerpad" 20
|
||||
|
||||
-- Prints out the left side items such as workspaces, layout, etc.
|
||||
, Run UnsafeStdinReader
|
||||
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
110
.config/xmobar/xmobarrc.save
Normal file
110
.config/xmobar/xmobarrc.save
Normal file
@ -0,0 +1,110 @@
|
||||
loConfig {
|
||||
|
||||
-- appearance
|
||||
font = "xft:Fira Code:size=14:bold:antialias=true:hinting=true"
|
||||
, bgColor = "#14071F"
|
||||
, fgColor = "#646464"
|
||||
, position = Top
|
||||
, border = BottomB
|
||||
, borderColor = "#646464"
|
||||
, iconRoot = "/home/solomon/.xmonad/xpm/" -- default: "."
|
||||
|
||||
-- layout
|
||||
, sepChar = "%" -- delineator between plugin names and straight text
|
||||
, alignSep = "}{" -- separator between left-right alignment
|
||||
, template = " <action=`xdotool key super+p`><icon=haskell_20.xpm/></action> <fc=#f3617a>%cpu%</fc> <fc=#805a9b>|</fc> <fc=#b262cd>%memory%</fc> <fc=#805a9b>|</fc> <fc=#706bc2>%dynnetwork%</fc> }\
|
||||
\{ <fc=#ee9a00>%date%</fc> <fc=#805a9b>|</fc> <fc=#b55322>%YPAD%</fc> <fc=#805a9b>|</fc> <fc=#882410>%kbd%</fc> <fc=#805a9b>|</fc> <fc=#6e1a11>%uname%</fc> %trayerpad%"
|
||||
}
|
||||
|
||||
-- general behavior
|
||||
, lowerOnStart = True -- send to bottom of window stack on start
|
||||
, hideOnStart = False -- start with window unmapped (hidden)
|
||||
, allDesktops = True -- show on all desktops
|
||||
, overrideRedirect = True -- set the Override Redirect flag (Xlib)
|
||||
, pickBroadest = False -- choose widest display (multi-monitor)
|
||||
, persistent = True -- enable/disable hiding (True = disabled)
|
||||
|
||||
-- plugins
|
||||
-- Numbers can be automatically colored according to their value. xmobar
|
||||
-- decides color based on a three-tier/two-cutoff system, controlled by
|
||||
-- command options:
|
||||
-- --Low sets the low cutoff
|
||||
-- --High sets the high cutoff
|
||||
--
|
||||
-- --low sets the color below --Low cutoff
|
||||
-- --normal sets the color between --Low and --High cutoffs
|
||||
-- --High sets the color above --High cutoff
|
||||
--
|
||||
-- The --template option controls how the plugin is displayed. Text
|
||||
-- color can be set by enclosing in <fc></fc> tags. For more details
|
||||
-- see http://projects.haskell.org/xmobar/#system-monitor-plugins.
|
||||
, commands =
|
||||
-- weather monitor
|
||||
[ Run Weather "YPAD" ["--template" , "<station>: <tempC>°C"
|
||||
, "--Low" , "10"
|
||||
, "--High" , "25"
|
||||
, "--normal" , "#95C05D"
|
||||
, "--high" , "red"
|
||||
, "--low" , "lightblue"
|
||||
] 36000
|
||||
|
||||
-- -- network activity monitor
|
||||
-- , Run Network "enp33s0" [ "--template" , "eth: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
-- , "--Low" , "100000" -- units: B/s
|
||||
-- , "--High" , "500000" -- units: B/s
|
||||
-- , "--low" , "#95C05D"
|
||||
-- , "--normal" , "#ee9a00"
|
||||
-- , "--high" , "#882410"
|
||||
-- ] 10
|
||||
-- , Run Network "wlp36s0" [ "--template" , "wlan: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
-- , "--Low" , "100000" -- units: B/s
|
||||
-- , "--High" , "500000" -- units: B/s
|
||||
-- , "--low" , "#95C05D"
|
||||
-- , "--normal" , "#ee9a00"
|
||||
-- , "--high" , "#882410"
|
||||
-- ] 10
|
||||
|
||||
-- network activity monitor (dynamic interface resolution)
|
||||
, Run DynNetwork [ "--template" , "<dev>: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
, "--Low" , "100000" -- units: B/s
|
||||
, "--High" , "500000" -- units: B/s
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- cpu activity monitor
|
||||
, Run Cpu [ "--template" , "cpu: <total>%"
|
||||
, "--Low" , "30" -- units: %
|
||||
, "--High" , "60" -- units: %
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- memory usage monitor
|
||||
, Run Memory [ "--template" ,"mem: <usedratio>% (<used>Mb)"
|
||||
, "--Low" , "20" -- units: %
|
||||
, "--High" , "90" -- units: %
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- time and date indicator
|
||||
-- (%F = y-m-d date, %a = day of week, %T = h:m:s time)
|
||||
, Run Date "%a %d %b %Y %H:%M:%S" "date" 10
|
||||
|
||||
-- keyboard layout indicator
|
||||
, Run Kbd [ ("us(dvorak)" , "DV")
|
||||
, ("us" , "US")
|
||||
]
|
||||
|
||||
-- Runs a standard shell command 'uname -r' to get kernel version
|
||||
, Run Com "uname" ["-r"] "" 3600
|
||||
|
||||
-- Script that dynamically adjusts xmobar padding depending on number of trayer icons.
|
||||
, Run Com "/home/solomon/.config/xmobar/trayer-padding-icon.sh" [] "trayerpad" 20
|
||||
|
||||
]
|
||||
}
|
||||
124
.config/xmobar/xmobarrc.save.1
Normal file
124
.config/xmobar/xmobarrc.save.1
Normal file
@ -0,0 +1,124 @@
|
||||
Config {
|
||||
|
||||
-- appearance
|
||||
font = "xft:Fira Code:size=14:bold:antialias=true:hinting=true"
|
||||
, bgColor = "#14071F"
|
||||
, fgColor = "#646464"
|
||||
, position = Top
|
||||
, border = BottomB
|
||||
, borderColor = "#646464"
|
||||
, iconRoot = "/home/solomon/.xmonad/xpm/" -- default: "."
|
||||
|
||||
-- layout
|
||||
, sepChar = "%" -- delineator between plugin names and straight text
|
||||
, alignSep = "}{" -- separator between left-right alignment
|
||||
, template = " <action=`xdotool key super+p`><icon=haskell_20.xpm/></action> <fc=#f3617a>%cpu%</fc> <fc=#805a9b>|</fc> <fc=#b262cd>%memory%</fc> <fc=#805a9b>|</fc> <fc=#706bc2>%dynnetwork%</fc> <fc=#805a9b>|</fc> %UnsafeStdinReader% }\
|
||||
\{ <fc=#ee9a00>%date%</fc> <fc=#805a9b>|</fc> <fc=#b55322>%YPAD%</fc> <fc=#805a9b>|</fc> <fc=#882410>%kbd%</fc> <fc=#805a9b>|</fc> <fc=#6e1a11>%uname%</fc> %trayerpad%"
|
||||
}
|
||||
|
||||
-- general behavior
|
||||
, lowerOnStart = True -- send to bottom of window stack on start
|
||||
, hideOnStart = False -- start with window unmapped (hidden)
|
||||
, allDesktops = True -- show on all desktops
|
||||
, overrideRedirect = True -- set the Override Redirect flag (Xlib)
|
||||
, pickBroadest = False -- choose widest display (multi-monitor)
|
||||
, persistent = True -- enable/disable hiding (True = disabled)
|
||||
|
||||
-- plugins
|
||||
-- Numbers can be automatically colored according to their value. xmobar
|
||||
-- decides color based on a three-tier/two-cutoff system, controlled by
|
||||
-- command options:
|
||||
-- --Low sets the low cutoff
|
||||
-- --High sets the high cutoff
|
||||
--
|
||||
-- --low sets the color below --Low cutoff
|
||||
-- --normal sets the color between --Low and --High cutoffs
|
||||
-- --High sets the color above --High cutoff
|
||||
--
|
||||
-- The --template option controls how the plugin is displayed. Text
|
||||
-- color can be set by enclosing in <fc></fc> tags. For more details
|
||||
-- see http://projects.haskell.org/xmobar/#system-monitor-plugins.
|
||||
, commands =
|
||||
-- weather monitor
|
||||
[ Run Weather "YPAD" ["--template" , "<station>: <tempC>°C"
|
||||
, "--Low" , "10"
|
||||
, "--High" , "25"
|
||||
, "--normal" , "#95C05D"
|
||||
, "--high" , "red"
|
||||
, "--low" , "lightblue"
|
||||
] 36000
|
||||
|
||||
-- -- network activity monitor
|
||||
-- , Run Network "enp33s0" [ "--template" , "eth: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
-- , "--Low" , "100000" -- units: B/s
|
||||
-- , "--High" , "500000" -- units: B/s
|
||||
-- , "--low" , "#95C05D"
|
||||
-- , "--normal" , "#ee9a00"
|
||||
-- , "--high" , "#882410"
|
||||
-- ] 10
|
||||
-- , Run Network "wlp36s0" [ "--template" , "wlan: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
-- , "--Low" , "100000" -- units: B/s
|
||||
-- , "--High" , "500000" -- units: B/s
|
||||
-- , "--low" , "#95C05D"
|
||||
-- , "--normal" , "#ee9a00"
|
||||
-- , "--high" , "#882410"
|
||||
-- ] 10
|
||||
|
||||
Run BatteryP ["BAT0"]
|
||||
["-t", "<acstatus><watts> (<left>%)",
|
||||
"-L", "10", "-H", "80", "-p", "3",
|
||||
"--", "-O", "<fc=green>On</fc> - ", "-i", "",
|
||||
"-L", "-15", "-H", "-5",
|
||||
"-l", "red", "-m", "blue", "-h", "green"
|
||||
"-a", "notify-send -u critical 'Battery running out!!'",
|
||||
"-A", "3"]
|
||||
600
|
||||
|
||||
-- network activity monitor (dynamic interface resolution)
|
||||
, Run DynNetwork [ "--template" , "<dev>: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
, "--Low" , "100000" -- units: B/s
|
||||
, "--High" , "500000" -- units: B/s
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- cpu activity monitor
|
||||
, Run Cpu [ "--template" , "cpu: <total>%"
|
||||
, "--Low" , "30" -- units: %
|
||||
, "--High" , "60" -- units: %
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- memory usage monitor
|
||||
, Run Memory [ "--template" ,"mem: <usedratio>% (<used>Mb)"
|
||||
, "--Low" , "20" -- units: %
|
||||
, "--High" , "90" -- units: %
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- time and date indicator
|
||||
-- (%F = y-m-d date, %a = day of week, %T = h:m:s time)
|
||||
, Run Date "%a %d %b %Y %H:%M:%S" "date" 10
|
||||
|
||||
-- keyboard layout indicator
|
||||
, Run Kbd [ ("us(dvorak)" , "DV")
|
||||
, ("us" , "US")
|
||||
]
|
||||
|
||||
-- Runs a standard shell command 'uname -r' to get kernel version
|
||||
, Run Com "uname" ["-r"] "" 3600
|
||||
|
||||
-- Script that dynamically adjusts xmobar padding depending on number of trayer icons.
|
||||
, Run Com "/home/solomon/.config/xmobar/trayer-padding-icon.sh" [] "trayerpad" 20
|
||||
|
||||
-- Prints out the left side items such as workspaces, layout, etc.
|
||||
-- The workspaces are 'clickable' in my configs.
|
||||
--, Run UnsafeStdinReader
|
||||
|
||||
]
|
||||
}
|
||||
38
.config/xmobar/xmobarrc.template
Normal file
38
.config/xmobar/xmobarrc.template
Normal file
@ -0,0 +1,38 @@
|
||||
Config { font = "-misc-fixed-*-*-*-*-10-*-*-*-*-*-*-*"
|
||||
, additionalFonts = []
|
||||
, borderColor = "black"
|
||||
, border = TopB
|
||||
, bgColor = "black"
|
||||
, fgColor = "grey"
|
||||
, alpha = 255
|
||||
, position = Top
|
||||
, textOffset = -1
|
||||
, iconOffset = -1
|
||||
, lowerOnStart = True
|
||||
, pickBroadest = False
|
||||
, persistent = False
|
||||
, hideOnStart = False
|
||||
, iconRoot = "."
|
||||
, allDesktops = True
|
||||
, overrideRedirect = True
|
||||
, commands = [ Run Weather "EGPF" ["-t","<station>: <tempC>C",
|
||||
"-L","18","-H","25",
|
||||
"--normal","green",
|
||||
"--high","red",
|
||||
"--low","lightblue"] 36000
|
||||
, Run Network "eth0" ["-L","0","-H","32",
|
||||
"--normal","green","--high","red"] 10
|
||||
, Run Network "eth1" ["-L","0","-H","32",
|
||||
"--normal","green","--high","red"] 10
|
||||
, Run Cpu ["-L","3","-H","50",
|
||||
"--normal","green","--high","red"] 10
|
||||
, Run Memory ["-t","Mem: <usedratio>%"] 10
|
||||
, Run Swap [] 10
|
||||
, Run Com "uname" ["-s","-r"] "" 36000
|
||||
, Run Date "%a %b %_d %Y %H:%M:%S" "date" 10
|
||||
]
|
||||
, sepChar = "%"
|
||||
, alignSep = "}{"
|
||||
, template = "%cpu% | %memory% * %swap% | %eth0% - %eth1% }\
|
||||
\{ <fc=#ee9a00>%date%</fc>| %EGPF% | %uname%"
|
||||
}
|
||||
119
.config/xmobar/xmobarrc0
Executable file
119
.config/xmobar/xmobarrc0
Executable file
@ -0,0 +1,119 @@
|
||||
Config {
|
||||
|
||||
-- appearance
|
||||
font = "xft:Fira Code:size=14:bold:antialias=true:hinting=true"
|
||||
, bgColor = "#14071F"
|
||||
, fgColor = "#646464"
|
||||
, position = Top
|
||||
, border = BottomB
|
||||
, borderColor = "#646464"
|
||||
, iconRoot = "/home/solomon/.xmonad/xpm/" -- default: "."
|
||||
|
||||
-- layout
|
||||
, sepChar = "%" -- delineator between plugin names and straight text
|
||||
, alignSep = "}{" -- separator between left-right alignment
|
||||
, template = " <action=`xdotool key super+p`><icon=haskell_20.xpm/></action> <fc=#f3617a>%cpu%</fc> <fc=#805a9b>|</fc> <fc=#b262cd>%memory%</fc> <fc=#805a9b>|</fc> <fc=#706bc2>%dynnetwork%</fc> }\
|
||||
\{ <fc=#ee9a00>%date%</fc> <fc=#805a9b>|</fc> <fc=#b55322>%YPAD%</fc> <fc=#805a9b>|</fc> <fc=#882410>%kbd%</fc> <fc=#805a9b>|</fc> <fc=#6e1a11>%uname%</fc> %trayerpad%"
|
||||
}
|
||||
-- , template = " <action=`xdotool key super+p`><icon=haskell_20.xpm/></action> <fc=#f3617a>%cpu%</fc> <fc=#805a9b>|</fc> <fc=#b262cd>%memory%</fc> <fc=#805a9b>|</fc> <fc=#706bc2>%dynnetwork%</fc> <fc=#805a9b>|</fc> %UnsafeStdinReader% }\
|
||||
-- \{ <fc=#ee9a00>%date%</fc> <fc=#805a9b>|</fc> <fc=#b55322>%YPAD%</fc> <fc=#805a9b>|</fc> <fc=#882410>%kbd%</fc> <fc=#805a9b>|</fc> <fc=#6e1a11>%uname%</fc> %trayerpad%"
|
||||
-- }
|
||||
|
||||
-- general behavior
|
||||
, lowerOnStart = True -- send to bottom of window stack on start
|
||||
, hideOnStart = False -- start with window unmapped (hidden)
|
||||
, allDesktops = True -- show on all desktops
|
||||
, overrideRedirect = True -- set the Override Redirect flag (Xlib)
|
||||
, pickBroadest = False -- choose widest display (multi-monitor)
|
||||
, persistent = True -- enable/disable hiding (True = disabled)
|
||||
|
||||
-- plugins
|
||||
-- Numbers can be automatically colored according to their value. xmobar
|
||||
-- decides color based on a three-tier/two-cutoff system, controlled by
|
||||
-- command options:
|
||||
-- --Low sets the low cutoff
|
||||
-- --High sets the high cutoff
|
||||
--
|
||||
-- --low sets the color below --Low cutoff
|
||||
-- --normal sets the color between --Low and --High cutoffs
|
||||
-- --High sets the color above --High cutoff
|
||||
--
|
||||
-- The --template option controls how the plugin is displayed. Text
|
||||
-- color can be set by enclosing in <fc></fc> tags. For more details
|
||||
-- see http://projects.haskell.org/xmobar/#system-monitor-plugins.
|
||||
, commands =
|
||||
-- weather monitor
|
||||
[ Run Weather "YPAD" ["--template" , "<station>: <tempC>°C"
|
||||
, "--Low" , "10"
|
||||
, "--High" , "25"
|
||||
, "--normal" , "#95C05D"
|
||||
, "--high" , "red"
|
||||
, "--low" , "lightblue"
|
||||
] 36000
|
||||
|
||||
-- -- network activity monitor
|
||||
-- , Run Network "enp33s0" [ "--template" , "eth: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
-- , "--Low" , "100000" -- units: B/s
|
||||
-- , "--High" , "500000" -- units: B/s
|
||||
-- , "--low" , "#95C05D"
|
||||
-- , "--normal" , "#ee9a00"
|
||||
-- , "--high" , "#882410"
|
||||
-- ] 10
|
||||
-- , Run Network "wlp36s0" [ "--template" , "wlan: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
-- , "--Low" , "100000" -- units: B/s
|
||||
-- , "--High" , "500000" -- units: B/s
|
||||
-- , "--low" , "#95C05D"
|
||||
-- , "--normal" , "#ee9a00"
|
||||
-- , "--high" , "#882410"
|
||||
-- ] 10
|
||||
|
||||
-- network activity monitor (dynamic interface resolution)
|
||||
, Run DynNetwork [ "--template" , "<dev>: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
, "--Low" , "100000" -- units: B/s
|
||||
, "--High" , "500000" -- units: B/s
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- cpu activity monitor
|
||||
, Run Cpu [ "--template" , "cpu: <total>%"
|
||||
, "--Low" , "30" -- units: %
|
||||
, "--High" , "60" -- units: %
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- memory usage monitor
|
||||
, Run Memory [ "--template" ,"mem: <usedratio>% (<used>Mb)"
|
||||
, "--Low" , "20" -- units: %
|
||||
, "--High" , "90" -- units: %
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- time and date indicator
|
||||
-- (%F = y-m-d date, %a = day of week, %T = h:m:s time)
|
||||
, Run Date "%a %d %b %Y %H:%M:%S" "date" 10
|
||||
|
||||
-- keyboard layout indicator
|
||||
, Run Kbd [ ("us(dvorak)" , "DV")
|
||||
, ("us" , "US")
|
||||
]
|
||||
|
||||
-- Runs a standard shell command 'uname -r' to get kernel version
|
||||
, Run Com "uname" ["-r"] "" 3600
|
||||
|
||||
-- Script that dynamically adjusts xmobar padding depending on number of trayer icons.
|
||||
, Run Com "/home/solomon/.config/xmobar/trayer-padding-icon.sh" [] "trayerpad" 20
|
||||
|
||||
-- Prints out the left side items such as workspaces, layout, etc.
|
||||
-- The workspaces are 'clickable' in my configs.
|
||||
--, Run UnsafeStdinReader
|
||||
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
119
.config/xmobar/xmobarrc1
Executable file
119
.config/xmobar/xmobarrc1
Executable file
@ -0,0 +1,119 @@
|
||||
Config {
|
||||
|
||||
-- appearance
|
||||
font = "xft:Fira Code:size=14:bold:antialias=true:hinting=true"
|
||||
, bgColor = "#14071F"
|
||||
, fgColor = "#646464"
|
||||
, position = Top
|
||||
, border = BottomB
|
||||
, borderColor = "#646464"
|
||||
, iconRoot = "/home/solomon/.xmonad/xpm/" -- default: "."
|
||||
|
||||
-- layout
|
||||
, sepChar = "%" -- delineator between plugin names and straight text
|
||||
, alignSep = "}{" -- separator between left-right alignment
|
||||
, template = " <action=`xdotool key super+p`><icon=haskell_20.xpm/></action> <fc=#f3617a>%cpu%</fc> <fc=#805a9b>|</fc> <fc=#b262cd>%memory%</fc> <fc=#805a9b>|</fc> <fc=#706bc2>%dynnetwork%</fc> }\
|
||||
\{ <fc=#ee9a00>%date%</fc> <fc=#805a9b>|</fc> <fc=#b55322>%YPAD%</fc> <fc=#805a9b>|</fc> <fc=#882410>%kbd%</fc> <fc=#805a9b>|</fc> <fc=#6e1a11>%uname%</fc> %trayerpad%"
|
||||
}
|
||||
-- , template = " <action=`xdotool key super+p`><icon=haskell_20.xpm/></action> <fc=#f3617a>%cpu%</fc> <fc=#805a9b>|</fc> <fc=#b262cd>%memory%</fc> <fc=#805a9b>|</fc> <fc=#706bc2>%dynnetwork%</fc> <fc=#805a9b>|</fc> %UnsafeStdinReader% }\
|
||||
-- \{ <fc=#ee9a00>%date%</fc> <fc=#805a9b>|</fc> <fc=#b55322>%YPAD%</fc> <fc=#805a9b>|</fc> <fc=#882410>%kbd%</fc> <fc=#805a9b>|</fc> <fc=#6e1a11>%uname%</fc> %trayerpad%"
|
||||
-- }
|
||||
|
||||
-- general behavior
|
||||
, lowerOnStart = True -- send to bottom of window stack on start
|
||||
, hideOnStart = False -- start with window unmapped (hidden)
|
||||
, allDesktops = True -- show on all desktops
|
||||
, overrideRedirect = True -- set the Override Redirect flag (Xlib)
|
||||
, pickBroadest = False -- choose widest display (multi-monitor)
|
||||
, persistent = True -- enable/disable hiding (True = disabled)
|
||||
|
||||
-- plugins
|
||||
-- Numbers can be automatically colored according to their value. xmobar
|
||||
-- decides color based on a three-tier/two-cutoff system, controlled by
|
||||
-- command options:
|
||||
-- --Low sets the low cutoff
|
||||
-- --High sets the high cutoff
|
||||
--
|
||||
-- --low sets the color below --Low cutoff
|
||||
-- --normal sets the color between --Low and --High cutoffs
|
||||
-- --High sets the color above --High cutoff
|
||||
--
|
||||
-- The --template option controls how the plugin is displayed. Text
|
||||
-- color can be set by enclosing in <fc></fc> tags. For more details
|
||||
-- see http://projects.haskell.org/xmobar/#system-monitor-plugins.
|
||||
, commands =
|
||||
-- weather monitor
|
||||
[ Run Weather "YPAD" ["--template" , "<station>: <tempC>°C"
|
||||
, "--Low" , "10"
|
||||
, "--High" , "25"
|
||||
, "--normal" , "#95C05D"
|
||||
, "--high" , "red"
|
||||
, "--low" , "lightblue"
|
||||
] 36000
|
||||
|
||||
-- -- network activity monitor
|
||||
-- , Run Network "enp33s0" [ "--template" , "eth: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
-- , "--Low" , "100000" -- units: B/s
|
||||
-- , "--High" , "500000" -- units: B/s
|
||||
-- , "--low" , "#95C05D"
|
||||
-- , "--normal" , "#ee9a00"
|
||||
-- , "--high" , "#882410"
|
||||
-- ] 10
|
||||
-- , Run Network "wlp36s0" [ "--template" , "wlan: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
-- , "--Low" , "100000" -- units: B/s
|
||||
-- , "--High" , "500000" -- units: B/s
|
||||
-- , "--low" , "#95C05D"
|
||||
-- , "--normal" , "#ee9a00"
|
||||
-- , "--high" , "#882410"
|
||||
-- ] 10
|
||||
|
||||
-- network activity monitor (dynamic interface resolution)
|
||||
, Run DynNetwork [ "--template" , "<dev>: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
, "--Low" , "100000" -- units: B/s
|
||||
, "--High" , "500000" -- units: B/s
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- cpu activity monitor
|
||||
, Run Cpu [ "--template" , "cpu: <total>%"
|
||||
, "--Low" , "30" -- units: %
|
||||
, "--High" , "60" -- units: %
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- memory usage monitor
|
||||
, Run Memory [ "--template" ,"mem: <usedratio>% (<used>Mb)"
|
||||
, "--Low" , "20" -- units: %
|
||||
, "--High" , "90" -- units: %
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- time and date indicator
|
||||
-- (%F = y-m-d date, %a = day of week, %T = h:m:s time)
|
||||
, Run Date "%a %d %b %Y %H:%M:%S" "date" 10
|
||||
|
||||
-- keyboard layout indicator
|
||||
, Run Kbd [ ("us(dvorak)" , "DV")
|
||||
, ("us" , "US")
|
||||
]
|
||||
|
||||
-- Runs a standard shell command 'uname -r' to get kernel version
|
||||
, Run Com "uname" ["-r"] "" 3600
|
||||
|
||||
-- Script that dynamically adjusts xmobar padding depending on number of trayer icons.
|
||||
, Run Com "/home/solomon/.config/xmobar/trayer-padding-icon.sh" [] "trayerpad" 20
|
||||
|
||||
-- Prints out the left side items such as workspaces, layout, etc.
|
||||
-- The workspaces are 'clickable' in my configs.
|
||||
--, Run UnsafeStdinReader
|
||||
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
119
.config/xmobar/xmobarrc2
Executable file
119
.config/xmobar/xmobarrc2
Executable file
@ -0,0 +1,119 @@
|
||||
Config {
|
||||
|
||||
-- appearance
|
||||
font = "xft:Fira Code:size=14:bold:antialias=true:hinting=true"
|
||||
, bgColor = "#14071F"
|
||||
, fgColor = "#646464"
|
||||
, position = Top
|
||||
, border = BottomB
|
||||
, borderColor = "#646464"
|
||||
, iconRoot = "/home/solomon/.xmonad/xpm/" -- default: "."
|
||||
|
||||
-- layout
|
||||
, sepChar = "%" -- delineator between plugin names and straight text
|
||||
, alignSep = "}{" -- separator between left-right alignment
|
||||
, template = " <action=`xdotool key super+p`><icon=haskell_20.xpm/></action> <fc=#f3617a>%cpu%</fc> <fc=#805a9b>|</fc> <fc=#b262cd>%memory%</fc> <fc=#805a9b>|</fc> <fc=#706bc2>%dynnetwork%</fc> }\
|
||||
\{ <fc=#ee9a00>%date%</fc> <fc=#805a9b>|</fc> <fc=#b55322>%YPAD%</fc> <fc=#805a9b>|</fc> <fc=#882410>%kbd%</fc> <fc=#805a9b>|</fc> <fc=#6e1a11>%uname%</fc> %trayerpad%"
|
||||
}
|
||||
-- , template = " <action=`xdotool key super+p`><icon=haskell_20.xpm/></action> <fc=#f3617a>%cpu%</fc> <fc=#805a9b>|</fc> <fc=#b262cd>%memory%</fc> <fc=#805a9b>|</fc> <fc=#706bc2>%dynnetwork%</fc> <fc=#805a9b>|</fc> %UnsafeStdinReader% }\
|
||||
-- \{ <fc=#ee9a00>%date%</fc> <fc=#805a9b>|</fc> <fc=#b55322>%YPAD%</fc> <fc=#805a9b>|</fc> <fc=#882410>%kbd%</fc> <fc=#805a9b>|</fc> <fc=#6e1a11>%uname%</fc> %trayerpad%"
|
||||
-- }
|
||||
|
||||
-- general behavior
|
||||
, lowerOnStart = True -- send to bottom of window stack on start
|
||||
, hideOnStart = False -- start with window unmapped (hidden)
|
||||
, allDesktops = True -- show on all desktops
|
||||
, overrideRedirect = True -- set the Override Redirect flag (Xlib)
|
||||
, pickBroadest = False -- choose widest display (multi-monitor)
|
||||
, persistent = True -- enable/disable hiding (True = disabled)
|
||||
|
||||
-- plugins
|
||||
-- Numbers can be automatically colored according to their value. xmobar
|
||||
-- decides color based on a three-tier/two-cutoff system, controlled by
|
||||
-- command options:
|
||||
-- --Low sets the low cutoff
|
||||
-- --High sets the high cutoff
|
||||
--
|
||||
-- --low sets the color below --Low cutoff
|
||||
-- --normal sets the color between --Low and --High cutoffs
|
||||
-- --High sets the color above --High cutoff
|
||||
--
|
||||
-- The --template option controls how the plugin is displayed. Text
|
||||
-- color can be set by enclosing in <fc></fc> tags. For more details
|
||||
-- see http://projects.haskell.org/xmobar/#system-monitor-plugins.
|
||||
, commands =
|
||||
-- weather monitor
|
||||
[ Run Weather "YPAD" ["--template" , "<station>: <tempC>°C"
|
||||
, "--Low" , "10"
|
||||
, "--High" , "25"
|
||||
, "--normal" , "#95C05D"
|
||||
, "--high" , "red"
|
||||
, "--low" , "lightblue"
|
||||
] 36000
|
||||
|
||||
-- -- network activity monitor
|
||||
-- , Run Network "enp33s0" [ "--template" , "eth: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
-- , "--Low" , "100000" -- units: B/s
|
||||
-- , "--High" , "500000" -- units: B/s
|
||||
-- , "--low" , "#95C05D"
|
||||
-- , "--normal" , "#ee9a00"
|
||||
-- , "--high" , "#882410"
|
||||
-- ] 10
|
||||
-- , Run Network "wlp36s0" [ "--template" , "wlan: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
-- , "--Low" , "100000" -- units: B/s
|
||||
-- , "--High" , "500000" -- units: B/s
|
||||
-- , "--low" , "#95C05D"
|
||||
-- , "--normal" , "#ee9a00"
|
||||
-- , "--high" , "#882410"
|
||||
-- ] 10
|
||||
|
||||
-- network activity monitor (dynamic interface resolution)
|
||||
, Run DynNetwork [ "--template" , "<dev>: <icon=net_up_20.xpm/><tx>kB/s <icon=net_down_20.xpm/><rx>kB/s"
|
||||
, "--Low" , "100000" -- units: B/s
|
||||
, "--High" , "500000" -- units: B/s
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- cpu activity monitor
|
||||
, Run Cpu [ "--template" , "cpu: <total>%"
|
||||
, "--Low" , "30" -- units: %
|
||||
, "--High" , "60" -- units: %
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- memory usage monitor
|
||||
, Run Memory [ "--template" ,"mem: <usedratio>% (<used>Mb)"
|
||||
, "--Low" , "20" -- units: %
|
||||
, "--High" , "90" -- units: %
|
||||
, "--low" , "#95C05D"
|
||||
, "--normal" , "#ee9a00"
|
||||
, "--high" , "#882410"
|
||||
] 10
|
||||
|
||||
-- time and date indicator
|
||||
-- (%F = y-m-d date, %a = day of week, %T = h:m:s time)
|
||||
, Run Date "%a %d %b %Y %H:%M:%S" "date" 10
|
||||
|
||||
-- keyboard layout indicator
|
||||
, Run Kbd [ ("us(dvorak)" , "DV")
|
||||
, ("us" , "US")
|
||||
]
|
||||
|
||||
-- Runs a standard shell command 'uname -r' to get kernel version
|
||||
, Run Com "uname" ["-r"] "" 3600
|
||||
|
||||
-- Script that dynamically adjusts xmobar padding depending on number of trayer icons.
|
||||
, Run Com "/home/solomon/.config/xmobar/trayer-padding-icon.sh" [] "trayerpad" 20
|
||||
|
||||
-- Prints out the left side items such as workspaces, layout, etc.
|
||||
-- The workspaces are 'clickable' in my configs.
|
||||
--, Run UnsafeStdinReader
|
||||
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.cfg
|
||||
368
.newsboat/urls
Normal file
368
.newsboat/urls
Normal file
@ -0,0 +1,368 @@
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCVls1GmFKf6WlTraIb_IaJg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCYVU6rModlGxvJbszCclGGw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UClFSU9_bUb4Rc6OYfTt5SPw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCL_f53ZEJxp8TtlOkHwMV9Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCioZY1p0bZ4Xt-yodw8_cBQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC2-i3KuYoODXsM99Z3-Gm0A
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCs7nPQIEba0T3tGOWWsZpJQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCcXhhVwCT6_WqjkEniejRJQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCXuqSBlHAE6Xw-yeJA0Tunw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCjr2bPAyPV7t35MvcgT3W8Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCUNoAjAgVHEHc6jrUr4XuWQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCNvsIonJdJ5E4EXMa65VYpA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCCvcd0FYi58LwyTQP9LITpA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC2W-gFz7UfNVdx0N1bgTB4A
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC-lHJZR3Gqxm24_Vd_AJ5Yw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCymoZh5mmZIKSqTtadRf3ow
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCNUu9E0ZZbf53NVkPjTk7sw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCkFMkIX1Tb2s8CIgfzmUfLA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCgclKg8oaVlkuCurCxo2hOw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCjDQKxiTVpXutZc2Ra9wCAg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCD6VugMZKRhSyzWEWA9W2fg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCSCoziKHqjqbox3Fv3Pb4BA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCMTk_R_Y49jvq-HQXDmKI0Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCBFIHC0C2roQllCR9bnFX4g
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCtZO3K2p8mqFwiKWb9k7fXA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCfMJ2MchTSW2kWaT0kK94Yw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCg4XK-l40KZD7fLi12pJ1YA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCdcemy56JtVTrsFIOoqvV8g
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJy232tY_LUd1NuBgsSNUEA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCpIafFPGutTAKOBHMtGen7g
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCdBK94H6oZT2Q7l0-b0xmMg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC0e3QhIYukixgh5VVpKHH9Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCsP7Bpw36J666Fct5M8u-ZA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCHnyfMqiRRG1u-2MsSQLbXA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCu6mSoMNzHQiBIOCkHUa2Aw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC6107grRI4m0o2-emgoDnAA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC4USoIAL9qcsx5nCZV_QRnA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9_p50tH3WmMslWRWKnM7dQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCPZUQqtVDmcjm4NY5FkzqLA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCafxR2HWJRmMfSdyZXvZMTw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCi7l9chXMljpUft67vw78qw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCgmI-uiLLAg--vDe7FFdekA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC7SeFWZYFmsm1tqWxfuOTPQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC3KEoMzNz8eYnwBC34RaKCQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCYwVxWpjeKFWwu8TML-Te9A
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCimiUgDLbi6P17BdaCZpVbg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCyQ-DUV6lZgoL8wiPusYiUg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCEtB-nx5ngoNJWEzYa-yXBg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCcMDMoNu66_1Hwi5-MeiQgw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCNtQ6jbQgkV4kII043lU06w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCyWDmyZRjrGHeKF-ofFsT5Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCPcFg7aBbaVzXoIKSNqwaww
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCKOvOaJv4GK-oDqx-sj7VVg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCEIwxahdLz7bap-VDs9h35A
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC2C_jShtL725hvbm1arSV9w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC4PIiYewI1YGyiZvgNlJNrA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCpFuaxD-0PKLolFR3gWhrMw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCUmLRMERmJrmUtgnbFfknAg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCm9K6rby98W8JigLoZOh6FQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCMu5gPmKp5av0QCAajKTMhw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCl2mFZoRqjw_ELax4Yisf6w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCSl5Uxu2LyaoAoMMGp6oTJA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCtqxG9IrHFU_ID1khGvx9sA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCmEu9Y8nodUV0jvsR9NYLJA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCOw4v1j3QnzH7X4krQAS7fg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCekQr9znsk2vWxBo3YiLq2w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCZ-oWkpMnHjTJpeOOlD80OA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCwkm_Wcyh0pc7UUmZZfL-6w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCSE6yilNScIz1SLTNQvrXMw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCGed7ONu3481RxIT7jQ6ngA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCkitABalXafr-NqceQdDXtg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCtfg1tENiu3SgGMZVduFmTg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC91V6D3nkhP89wUb9f_h17g
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJdKr0Bgd_5saZYqLCa9mng
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9-y-6csu5WGm29I7JiwpnA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCBNG0osIBAprVcZZ3ic84vw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9PIn6-XuRKZ5HmYeu46AIw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCm9MKnZdmwCAPXvmysjT33g
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC-j3S3cIXZSzzCkJhJW9_eg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCy0tKL1T7wFoYcxCe0xjN6Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC4_bwov47DseacR1-ttTdOg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCOxaitvZzdNuGK7jlMsWzlw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC0Ize0RLIbGdH5x4wI45G-A
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCtzpB_RJqbpgJcWXhEo-1iQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCQD3awTLw9i8Xzh85FKsuJA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCiRiQGCHGjDLT9FQXFW0I3A
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCFhXFikryT4aFcLkLw2LBLA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCEgoThiTZG6wbTVA6B1Ksaw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCoziFm3M4sHDq1kkx0UwtRw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCXgxNzAgZ1GExhTW4X1mUrg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCecrxw9xtxME6o5_mz4TtOA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCmQXOAse-VnzuXHebX5I77g
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCm6r_b2K5jn1JGkwDcwJXrQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCyyBmfMEmwzv291E-QHdEyg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCV3iHQsE2h3CH-LehgPRkMg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCVGVbOl6F5rGF4wSYS6Y5yQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCsDmESjqNPukDmVnuneLrqw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9bTzW3hPRF1cV0tBlskT6w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCny_vGt2N7_QJ5qBOAHxlcw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC0fDG3byEcMtbOqPMymDNbw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCm6r_b2K5jn1JGkwDcwJXrQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCNnKprAG-MWLsk-GsbsC2BA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCV9_KinVpV-snHe3C3n1hvA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCoHhuummRZaIVX7bD4t2czg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJRSYkPQeuf6_6oLsBTf0Tw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCDAjO0-hd_RS8ZYJ4W-Iq5Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCGSGPehp0RWfca-kENgBJ9Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCaGev0JRG7Dp5c_R4ROADLw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCny_vGt2N7_QJ5qBOAHxlcw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9bTzW3hPRF1cV0tBlskT6w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCt7fwAhXDy3oNFTAzF2o8Pw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC2V1ul4ul85kac0Y81wXTqQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC_sp6oZDuNfTWzZDfwZyJOg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCOxaitvZzdNuGK7jlMsWzlw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC5rT7F0PGNuD54rJ9kzgWzw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9RM-iSvTu1uPJb8X5yp3EQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCIMn9OGAE5eeQJhCeO-JvJQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCI1ggmx7c1PUlTkfsv0fU-w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJbPGzawDH1njbqV-D5HqKw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCfnJvKB2Nr55ZvHj20O5JZA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCtuFxawHK5fDrA8yFy8Vo1Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJ0-OtVpF0wOKEqT2Z1HEtA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJHvN0zYgO2ZLjePERRLjKQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCveB47lgzZJ1WOf4XYVJNBw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCm6QkJHb53JbFeqG8X7S-sg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCxZSqd46lCmULpciul-LT6w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCLUrVTVTA3PnUFpYvpfMcpg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCRbOPaGDB_xOQkVM8Rnn62Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCiDJtJKMICpb9B1qf7qjEOA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCp68_FLety0O-n9QU6phsgw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCDv0JHqrlqgl0S2TNpNrmdw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC4zJAMaYN592qQhMR2OfX_Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCsDmESjqNPukDmVnuneLrqw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC6uASnNXIjWzt6zxrWZdLNg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCIUATMnLtNo51kKuv95R1UQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCNIuvl7V8zACPpTmmNIqP2A
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC1_uAIS3r8Vu6JjXWvastJg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCYandFV7VSfXwZU15XUHHKQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCivA7_KLKWo43tFcCkFvydw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCUgRtDziJirGWqdIveI30SA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCR4s1DE9J4DHzZYXMltSMAg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCDWIvJwLJsE4LG1Atne2blQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCNjHgaLpdy1IMNK57pYiKiQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCEOXxzW2vU0P-0THehuIIeg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCqSHAXN5sqtyE93A-w-8Ddw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCaXEr4t_QBZBk3qlIlc2HRg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC_w9QzR9_fFJcCSYwtDeKLA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCb3orki_DopRkkP3xwMgW2Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC5nc_ZtjKW1htCVZVRxlQAQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC67gfx2Fg7K2NSHqoENVgwA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCSKFuxhXiJjF49nwQGZuROQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCA-p1wZ5Tuz9J1_AI_A2NqA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCtHaxi4GTYDpJgMSGy7AeSw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCoziFm3M4sHDq1kkx0UwtRw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCtzpB_RJqbpgJcWXhEo-1iQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCsc44rMgJqxU_7bhM9GGFhg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC0Ize0RLIbGdH5x4wI45G-A
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC4_bwov47DseacR1-ttTdOg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCOsATJw-IZgqGT8MFrHjKGg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCT31um1Ic8KweVWEMBC1K7A
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCuolJRKmlevmTqz-tUV0LCQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCaoxFlhy4oGz3EvkTGhWvkA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9RM-iSvTu1uPJb8X5yp3EQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCsXVk37bltHxD1rDPwtNM8Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC0aanx5rpr7D1M7KCFYzrLQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCR4s1DE9J4DHzZYXMltSMAg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCgITW_70LNZFkNna7VsXbuQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCmQXOAse-VnzuXHebX5I77g
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCGwu0nbY2wSkW8N-cghnLpA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCV9_KinVpV-snHe3C3n1hvA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCUgRtDziJirGWqdIveI30SA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCtGoikgbxP4F3rgI9PldI9g
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCAPrhJwVweWZA8GEPoClSdw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC2V1ul4ul85kac0Y81wXTqQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC-i3WnEFcTntkZc-Pv9gArw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCOxaitvZzdNuGK7jlMsWzlw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCF1fG3gT44nGTPU2sVLoFWg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC5rT7F0PGNuD54rJ9kzgWzw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC7sD7-uGMPmRDrT8mUHlWBA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCUueEx_ceEQrjlR9ctPNKyg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJRSYkPQeuf6_6oLsBTf0Tw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCYGDiVemmhY_Q1M-hKp4fvw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCYeF244yNGuFefuFKqxIAXw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCQD3awTLw9i8Xzh85FKsuJA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCMOgdURr7d8pOVlc-alkfRg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCErSSa3CaP_GJxmFpdjG9Jw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCZzU0PyZlnfcmJglvmnH12w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCLv6LhnosAyBGwEZeytrKyg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCLJcVCVvcD802r80B9oaM3A
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCFV5pMEsfMP8duOumA8klmA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC7ucvC0OrD2BQUmEec5NJeg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCr-cm90DwFJC0W3f9jBs5jA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UChrYe70o7NmDioL02PRVWVg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCm6QkJHb53JbFeqG8X7S-sg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCa6TeYZ2DlueFRne5DyAnyg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCgNg3vwj3xt7QOrcIDaHdFg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCtwKon9qMt5YLVgQt1tvJKg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC8XjmAEDVZSCQjI150cb4QA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCNjHgaLpdy1IMNK57pYiKiQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCTg4jls4URruaHauposrhMg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCSdma21fnJzgmPodhC9SJ3g
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCV5vCi3jPJdURZwAOO_FNfQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCmtQGojT9O2LVzVIVKDGEjw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCLs1ozoolo_-mKZqq6GuEIQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCS1qGIA0306vV8aisea4BLQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCuo9VyowIT-ljA5G2ZuC6Yw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC0-QuVLhCc4hmJaiLSCMwcw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCO7fujFV_MuxTM0TuZrnE6Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCo_IB5145EVNcf8hw1Kku7w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCeovElJP0n0i8ADaPsRSd8g
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC7ucvC0OrD2BQUmEec5NJeg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCrmTTabqjlMBq-vL8j7EQkA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCOojfmX4Wq3Ww-XP_IkvviQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCivA7_KLKWo43tFcCkFvydw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCKd49wwdEdIoM-7Fumhwmog
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCpLB7kBu9O5dbBKhaIOmqcQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCtuFxawHK5fDrA8yFy8Vo1Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCIMn9OGAE5eeQJhCeO-JvJQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCbK8u9UIIuLPku9abSlIbgw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC3v6sjWuPxtW36jQ-if4OuA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCDv0JHqrlqgl0S2TNpNrmdw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCXKH52cGX4rtK_X-q1GH02Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCRbOPaGDB_xOQkVM8Rnn62Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCXgxNzAgZ1GExhTW4X1mUrg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCsXVk37bltHxD1rDPwtNM8Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJvhxlROfb5lqj-G5UF3l_w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCjFqcJQXGZ6T6sxyFB-5i6A
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCKzJFdi57J53Vr_BkTfN3uQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCyp1gCHZJU_fGWFf2rtMkCg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC5rT7F0PGNuD54rJ9kzgWzw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC1_uAIS3r8Vu6JjXWvastJg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCr-cm90DwFJC0W3f9jBs5jA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC5nc_ZtjKW1htCVZVRxlQAQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCIUATMnLtNo51kKuv95R1UQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCF1fG3gT44nGTPU2sVLoFWg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCfnJvKB2Nr55ZvHj20O5JZA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCTjPBE9BNsmv44wgxWEy2zw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCBvo9EONLsFRjLRd9WDtCiw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCGtqkLvM_jCEWKwT9ksGDVg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCS0N5baNlQWJCUrhCEo8WlA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCG36u-k09zdIPQh5EEdVgTA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCT31um1Ic8KweVWEMBC1K7A
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCsvn_Po0SmunchJYOWpOxMg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC0aanx5rpr7D1M7KCFYzrLQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCm6QkJHb53JbFeqG8X7S-sg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC-XXmB9IHCUdteHjgmmsaeg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCA-p1wZ5Tuz9J1_AI_A2NqA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCp68_FLety0O-n9QU6phsgw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCFV5pMEsfMP8duOumA8klmA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UChrYe70o7NmDioL02PRVWVg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCtccbWvR1RQb976Jo6Mt7Yw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCsc44rMgJqxU_7bhM9GGFhg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC6FwRO2_a4nrqWJNN32M-Dg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCh-PyMficPzVAihCJkFJVAA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCrrSA2uXHnFom2HQgNmUivw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCsvn_Po0SmunchJYOWpOxMg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCeP4Yv3s4RvS0-6d9OInRMw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCr6LvLhGBnB7z0Tj4-nY34A
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCY1kMZp36IQSyNx_9h4mpCg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UClvX7kIblTWcwfRGMZSgRIw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCLuHOqDilyLQT4NPXQuVN4Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCQeYs5oIyB0wIxyjOXg1XFg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCYGDiVemmhY_Q1M-hKp4fvw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCo0Ek8Te0osbhI0WnhF3QzA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC4zJAMaYN592qQhMR2OfX_Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCoxcjq-8xIDTYp3uz647V5A
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCt7fwAhXDy3oNFTAzF2o8Pw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9RM-iSvTu1uPJb8X5yp3EQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC3tNpTOHsTnkmbwztCs30sA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCg45A-ph7Eu8jQgfrwDkHLg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC67gfx2Fg7K2NSHqoENVgwA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCR0tBVaZPaSqmdqkw7oYmcw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCYzwyzV2WNMgrL6RKSF8nrg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCm6GSA5OROHcIBNkXkH53zQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCRYv1Y9SQaI3dp57syZUdIw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9pO2YNforRbdwKOh09djKA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9NeBnf-9pzDC3C86MeOJvA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC_ufxdQbKBrrMOiZ4LzrUyA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC1_uAIS3r8Vu6JjXWvastJg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCIUATMnLtNo51kKuv95R1UQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCLUrVTVTA3PnUFpYvpfMcpg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCNIuvl7V8zACPpTmmNIqP2A
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCn1XB-jvmd9fXMzhiA6IR0w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCNBOw3pfI3E26f1vsozUA-A
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCI1ggmx7c1PUlTkfsv0fU-w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC_E4px0RST-qFwXLJWBav8Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCOojfmX4Wq3Ww-XP_IkvviQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCFKDEp9si4RmHFWJW1vYsMA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJbPGzawDH1njbqV-D5HqKw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCDWIvJwLJsE4LG1Atne2blQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCRbOPaGDB_xOQkVM8Rnn62Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCny_vGt2N7_QJ5qBOAHxlcw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCFhXFikryT4aFcLkLw2LBLA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCNnKprAG-MWLsk-GsbsC2BA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC9bTzW3hPRF1cV0tBlskT6w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCYandFV7VSfXwZU15XUHHKQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCoHhuummRZaIVX7bD4t2czg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCtM5z2gkrGRuWd0JQMx76qA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCahfy_XV7nFYceg6GIthwMQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCivA7_KLKWo43tFcCkFvydw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCfnJvKB2Nr55ZvHj20O5JZA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCecrxw9xtxME6o5_mz4TtOA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCm6r_b2K5jn1JGkwDcwJXrQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCIMn9OGAE5eeQJhCeO-JvJQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC0fDG3byEcMtbOqPMymDNbw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCV1G6JkQtB2nobFm3MGNsBQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCXgxNzAgZ1GExhTW4X1mUrg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCbK8u9UIIuLPku9abSlIbgw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCmtQGojT9O2LVzVIVKDGEjw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC1_uAIS3r8Vu6JjXWvastJg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCIUATMnLtNo51kKuv95R1UQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJspWFXSL1guQPdFqh4lFjQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCg45A-ph7Eu8jQgfrwDkHLg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCgkzrMGEbZemPI4hkz0Z9Bw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCMLgHbpJ8qYqj3CkdbvC0Ww
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCO8DQrSp5yEP937qNqTooOw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCdz4CF1VWEMCm8r4DFLSWig
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCLUrVTVTA3PnUFpYvpfMcpg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCiDJtJKMICpb9B1qf7qjEOA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC0-QuVLhCc4hmJaiLSCMwcw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC2V1ul4ul85kac0Y81wXTqQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC5rT7F0PGNuD54rJ9kzgWzw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC7kQhIHX4SSSIT9gSVq6QzQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC6uASnNXIjWzt6zxrWZdLNg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC_sp6oZDuNfTWzZDfwZyJOg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCIfAlCwj-ZPZq5fqjpYDX3w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCBvo9EONLsFRjLRd9WDtCiw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCG36u-k09zdIPQh5EEdVgTA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCz0l5LJhNQkktxKWcGUtWxg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCSKFuxhXiJjF49nwQGZuROQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCaGev0JRG7Dp5c_R4ROADLw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCAgoEUwn-LQy0fTyUxMngag
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCBk4FLs_it6Sck7L0XptYjQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC0aanx5rpr7D1M7KCFYzrLQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCuo9VyowIT-ljA5G2ZuC6Yw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCYZtp0YIxYOipX15v_h_jnA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCxseO_JzIiiJENauW2RmcJQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCS1qGIA0306vV8aisea4BLQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCmQXOAse-VnzuXHebX5I77g
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC2DjFE7Xf11URZqWBigcVOQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCDAjO0-hd_RS8ZYJ4W-Iq5Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCMLgHbpJ8qYqj3CkdbvC0Ww
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCG1h-Wqjtwz7uUANw6gazRw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCRbOPaGDB_xOQkVM8Rnn62Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC8AvcEE8l8mHs-rZTXoynVQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCLUrVTVTA3PnUFpYvpfMcpg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCD84uEcRgneWDYpmBd8BbsQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCI1ggmx7c1PUlTkfsv0fU-w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCJHvN0zYgO2ZLjePERRLjKQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCY1kMZp36IQSyNx_9h4mpCg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC_E4px0RST-qFwXLJWBav8Q
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCQeYs5oIyB0wIxyjOXg1XFg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCO79NsDE5FpMowUH1YcBFcA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCYandFV7VSfXwZU15XUHHKQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCoUqzYqTYp9SE9RTkUYusZA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCn1XB-jvmd9fXMzhiA6IR0w
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCoHhuummRZaIVX7bD4t2czg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC7sD7-uGMPmRDrT8mUHlWBA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCPsDdWokYPtOQ7OXXcdUTRw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCKg2LxItoBGzOGbTpYuD6mw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCivA7_KLKWo43tFcCkFvydw
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCYzwyzV2WNMgrL6RKSF8nrg
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC67gfx2Fg7K2NSHqoENVgwA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCFKDEp9si4RmHFWJW1vYsMA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCIUATMnLtNo51kKuv95R1UQ
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCMuPLU5S9vVC5tZAiPVt4HA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCrmTTabqjlMBq-vL8j7EQkA
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCtccbWvR1RQb976Jo6Mt7Yw
|
||||
2
.screenlayout/normal.sh
Executable file
2
.screenlayout/normal.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
xrandr --output DVI-D-0 --mode 1680x1050 --pos 4240x195 --rotate normal --output HDMI-0 --mode 1680x1050 --pos 0x195 --rotate normal --output DP-0 --off --output DP-1 --off --output DP-2 --off --output DP-3 --mode 1280x1024 --pos 4240x1245 --rotate normal --output DP-4 --primary --mode 2560x1440 --pos 1680x0 --rotate normal --output DP-5 --off --output DVI-I-1-0 --off --output DVI-I-1-1 --off --output HDMI-1-0 --off
|
||||
15
.scripts/prompt
Executable file
15
.scripts/prompt
Executable file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
# A dmenu binary prompt script.
|
||||
# Gives a dmenu prompt labelled with $1 to perform command $2.
|
||||
# For example:
|
||||
# `./prompt "Do you want to shutdown?" "shutdown now"`
|
||||
|
||||
# Taken shamelessly from Luke Smith
|
||||
|
||||
choice=$(echo -e "No\nYes" | dmenu -i -p "$1")
|
||||
|
||||
if [ $choice = "Yes" ]
|
||||
then
|
||||
$2
|
||||
fi
|
||||
478
.xmonad/xmonad.hs
Normal file
478
.xmonad/xmonad.hs
Normal file
@ -0,0 +1,478 @@
|
||||
--
|
||||
-- Xmonad config for Solomon Laing
|
||||
--
|
||||
|
||||
-- Base
|
||||
import XMonad
|
||||
import System.IO (hPutStrLn)
|
||||
import System.Exit (ExitCode(ExitSuccess), exitWith )
|
||||
import qualified XMonad.StackSet as W
|
||||
|
||||
-- Actions
|
||||
import XMonad.Actions.CycleWS (moveTo, shiftTo, WSType(..), nextScreen, prevScreen)
|
||||
import XMonad.Actions.GridSelect
|
||||
import XMonad.Actions.MouseResize
|
||||
import XMonad.Actions.Promote
|
||||
import XMonad.Actions.RotSlaves (rotSlavesDown, rotAllDown)
|
||||
import qualified XMonad.Actions.TreeSelect as TS
|
||||
import XMonad.Actions.WindowGo (runOrRaise)
|
||||
import XMonad.Actions.WithAll (sinkAll, killAll)
|
||||
import qualified XMonad.Actions.Search as S
|
||||
|
||||
-- Data
|
||||
import Data.Monoid
|
||||
import Data.Tree
|
||||
import qualified Data.Map as M
|
||||
|
||||
-- Hooks
|
||||
import XMonad.Hooks.DynamicLog (dynamicLogWithPP, wrap, xmobarPP, xmobarColor, statusBar, shorten, PP(..))
|
||||
import XMonad.Hooks.FadeInactive
|
||||
import XMonad.Hooks.ManageDocks (docks, avoidStruts, docksEventHook, manageDocks, ToggleStruts(..))
|
||||
import XMonad.Hooks.ManageHelpers (isFullscreen, doFullFloat)
|
||||
import XMonad.Hooks.ServerMode
|
||||
import XMonad.Hooks.WorkspaceHistory
|
||||
|
||||
-- Layouts
|
||||
import XMonad.Layout.GridVariants (Grid(Grid))
|
||||
import XMonad.Layout.SimplestFloat
|
||||
import XMonad.Layout.Spiral
|
||||
import XMonad.Layout.ResizableTile
|
||||
import XMonad.Layout.Tabbed
|
||||
import XMonad.Layout.ThreeColumns
|
||||
|
||||
-- Layouts modifiers
|
||||
import XMonad.Layout.Fullscreen
|
||||
import XMonad.Layout.LayoutModifier
|
||||
import XMonad.Layout.LimitWindows (limitWindows)
|
||||
import XMonad.Layout.Magnifier
|
||||
import XMonad.Layout.MultiToggle (mkToggle, single, EOT(EOT), (??))
|
||||
import XMonad.Layout.MultiToggle.Instances (StdTransformers(NBFULL, MIRROR, NOBORDERS))
|
||||
import XMonad.Layout.NoBorders
|
||||
import XMonad.Layout.Renamed (renamed, Rename(Replace))
|
||||
import XMonad.Layout.ShowWName
|
||||
import XMonad.Layout.Spacing
|
||||
import XMonad.Layout.WindowArranger (windowArrange, WindowArrangerMsg(..))
|
||||
import qualified XMonad.Layout.ToggleLayouts as T (toggleLayouts, ToggleLayout(Toggle))
|
||||
import qualified XMonad.Layout.MultiToggle as MT (Toggle(..))
|
||||
|
||||
-- Utilities
|
||||
import XMonad.Util.Run (runProcessWithInput, safeSpawn, spawnPipe)
|
||||
import XMonad.Util.SpawnOnce
|
||||
|
||||
-- The preferred terminal program, which is used in a binding below and by
|
||||
-- certain contrib modules.
|
||||
myTerminal :: String
|
||||
myTerminal = "alacritty"
|
||||
|
||||
myFileManager :: String
|
||||
myFileManager = "dolphin"
|
||||
|
||||
-- The font to be used
|
||||
myFont :: String
|
||||
myFont = "xft:Fira Code:bold:size=9:antialias=true:hinting=true"
|
||||
|
||||
-- Whether focus follows the mouse pointer.
|
||||
myFocusFollowsMouse :: Bool
|
||||
myFocusFollowsMouse = True
|
||||
|
||||
-- Whether clicking on a window to focus also passes the click to the window
|
||||
myClickJustFocuses :: Bool
|
||||
myClickJustFocuses = False
|
||||
|
||||
-- Width of the window border in pixels.
|
||||
myBorderWidth :: Dimension
|
||||
myBorderWidth = 1
|
||||
|
||||
-- Border colors for unfocused and focused windows, respectively.
|
||||
myNormalBorderColor :: String
|
||||
myNormalBorderColor = "#dddddd"
|
||||
|
||||
myFocusedBorderColor :: String
|
||||
myFocusedBorderColor = "#551155"
|
||||
|
||||
-- modMask lets you specify which modkey you want to use. The default
|
||||
-- is mod1Mask ("left alt"). You may also consider using mod3Mask
|
||||
-- ("right alt"), which does not conflict with emacs keybindings. The
|
||||
-- "windows key" is usually mod4Mask.
|
||||
myModMask :: KeyMask
|
||||
myModMask = mod4Mask
|
||||
|
||||
-- The default number of workspaces (virtual screens) and their names.
|
||||
-- By default we use numeric strings, but any string may be used as a
|
||||
-- workspace name. The number of workspaces is determined by the length
|
||||
-- of this list.
|
||||
--
|
||||
-- A tagging example:
|
||||
--
|
||||
-- > workspaces = ["web", "irc", "code" ] ++ map show [4..9]
|
||||
xmobarEscape :: String -> String
|
||||
xmobarEscape = concatMap doubleLts
|
||||
where
|
||||
doubleLts '<' = "<<"
|
||||
doubleLts x = [x]
|
||||
|
||||
myWorkspaces :: [String]
|
||||
|
||||
-- myWorkspaces = ["dev", "`www`", "sys", "doc", "vbox", "chat", "mus", "vid", "gfx"]
|
||||
|
||||
myWorkspaces = clickable . (map xmobarEscape)
|
||||
-- $ ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
|
||||
$ ["web", "game", "dev", "doc", "mus", "vid", "sys", "chat", "virt"]
|
||||
where
|
||||
clickable l = [ "<action=xdotool key super+" ++ show (n) ++ ">"++ws++"</action>" |
|
||||
(i,ws) <- zip [1..9] l,
|
||||
let n = i ]
|
||||
|
||||
windowCount :: X (Maybe String)
|
||||
windowCount = gets $ Just . show . length . W.integrate' . W.stack . W.workspace . W.current . windowset
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- Key bindings. Add, modify or remove key bindings here.
|
||||
myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
|
||||
|
||||
-- launch a terminal
|
||||
[ ((modm .|. shiftMask, xK_Return), spawn $ XMonad.terminal conf)
|
||||
|
||||
-- launch rofi
|
||||
, ((modm, xK_a ), spawn "rofi -show run")
|
||||
|
||||
-- launch dmenu
|
||||
, ((modm, xK_o ), spawn "dmenu_run")
|
||||
|
||||
-- prompt computer shutdown
|
||||
, ((modm .|. shiftMask, xK_s ), spawn "/home/solomon/.scripts/prompt \"Are you sure you want to Shutdown?\" \"shutdown -h now\"")
|
||||
|
||||
-- prompt computer reboot
|
||||
, ((modm .|. shiftMask, xK_r ), spawn "/home/solomon/.scripts/prompt \"Are you sure you want to Restart?\" \"reboot\"")
|
||||
|
||||
-- launch rofi ssh
|
||||
, ((modm .|. shiftMask, xK_a ), spawn "rofi -show ssh")
|
||||
|
||||
-- launch my file manager
|
||||
, ((modm, xK_l ), spawn myFileManager)
|
||||
|
||||
-- close focused window
|
||||
, ((modm .|. shiftMask, xK_j ), kill)
|
||||
|
||||
-- Rotate through the available layout algorithms
|
||||
, ((modm, xK_space ), sendMessage NextLayout)
|
||||
|
||||
-- Reset the layouts on the current workspace to default
|
||||
, ((modm .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf)
|
||||
|
||||
-- Resize viewed windows to the correct size
|
||||
, ((modm, xK_b ), refresh)
|
||||
|
||||
-- Move focus to the next window
|
||||
, ((modm, xK_Tab ), windows W.focusDown)
|
||||
|
||||
-- Move focus to the next window
|
||||
, ((modm, xK_h ), windows W.focusDown)
|
||||
|
||||
-- Move focus to the previous window
|
||||
, ((modm, xK_t ), windows W.focusUp )
|
||||
|
||||
-- Move focus to the master window
|
||||
, ((modm, xK_m ), windows W.focusMaster )
|
||||
|
||||
-- Swap the focused window and the master window
|
||||
, ((modm, xK_Return), windows W.swapMaster)
|
||||
|
||||
-- Swap the focused window with the next window
|
||||
, ((modm .|. shiftMask, xK_d ), windows W.swapDown )
|
||||
|
||||
-- Swap the focused window with the previous window
|
||||
, ((modm .|. shiftMask, xK_t ), windows W.swapUp )
|
||||
|
||||
-- Shrink the master area
|
||||
, ((modm, xK_d ), sendMessage Shrink)
|
||||
|
||||
-- Expand the master area
|
||||
, ((modm, xK_n ), sendMessage Expand)
|
||||
|
||||
-- Push window back into tiling
|
||||
, ((modm, xK_y ), withFocused $ windows . W.sink)
|
||||
|
||||
-- Increment the number of windows in the master area
|
||||
, ((modm , xK_w ), sendMessage (IncMasterN 1))
|
||||
|
||||
-- Deincrement the number of windows in the master area
|
||||
, ((modm , xK_v), sendMessage (IncMasterN (-1)))
|
||||
|
||||
-- Toggle the status bar gap
|
||||
-- Use this binding with avoidStruts from Hooks.ManageDocks.
|
||||
-- See also the statusBar function from Hooks.DynamicLog.
|
||||
--
|
||||
, ((modm , xK_b ), sendMessage ToggleStruts)
|
||||
|
||||
-- Quit xmonad
|
||||
, ((modm .|. shiftMask, xK_apostrophe ), io (exitWith ExitSuccess))
|
||||
|
||||
-- Restart xmonad
|
||||
, ((modm , xK_apostrophe ), spawn "xmonad --recompile; xmonad --restart")
|
||||
|
||||
-- Run xmessage with a summary of the default keybindings (useful for beginners)
|
||||
, ((modm .|. shiftMask, xK_z ), spawn ("echo \"" ++ help ++ "\" | xmessage -file -"))
|
||||
]
|
||||
++
|
||||
|
||||
--
|
||||
-- mod-[1..9], Switch to workspace N
|
||||
-- mod-shift-[1..9], Move client to workspace N
|
||||
--
|
||||
[((m .|. modm, k), windows $ f i)
|
||||
| (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
|
||||
, (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
|
||||
++
|
||||
|
||||
--
|
||||
-- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3
|
||||
-- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3
|
||||
--
|
||||
[((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f))
|
||||
| (key, sc) <- zip [xK_comma, xK_period, xK_p] [0..]
|
||||
, (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
|
||||
|
||||
-- Mouse bindings: default actions bound to mouse events
|
||||
myMouseBindings (XConfig {XMonad.modMask = modm}) = M.fromList $
|
||||
|
||||
-- mod-button1, Set the window to floating mode and move by dragging
|
||||
[ ((modm, button1), (\w -> focus w >> mouseMoveWindow w
|
||||
>> windows W.shiftMaster))
|
||||
|
||||
-- mod-button2, Raise the window to the top of the stack
|
||||
, ((modm, button2), (\w -> focus w >> windows W.shiftMaster))
|
||||
|
||||
-- mod-button3, Set the window to floating mode and resize by dragging
|
||||
, ((modm, button3), (\w -> focus w >> mouseResizeWindow w
|
||||
>> windows W.shiftMaster))
|
||||
|
||||
-- you may also bind events to the mouse scroll wheel (button4 and button5)
|
||||
]
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- Layouts:
|
||||
|
||||
mySpacing :: Integer -> l a -> XMonad.Layout.LayoutModifier.ModifiedLayout Spacing l a
|
||||
mySpacing i = spacingRaw False (Border i i i i) True (Border i i i i) True
|
||||
|
||||
-- Defining a bunch of layouts, many that I don't use.
|
||||
tall = renamed [Replace "tall"]
|
||||
$ limitWindows 12
|
||||
$ mySpacing 8
|
||||
$ ResizableTall 1 (3/100) (1/2) []
|
||||
magnify = renamed [Replace "magnify"]
|
||||
$ magnifier
|
||||
$ limitWindows 12
|
||||
$ mySpacing 8
|
||||
$ ResizableTall 1 (3/100) (1/2) []
|
||||
monocle = renamed [Replace "monocle"]
|
||||
$ limitWindows 20 Full
|
||||
floats = renamed [Replace "floats"]
|
||||
$ limitWindows 20 simplestFloat
|
||||
grid = renamed [Replace "grid"]
|
||||
$ limitWindows 12
|
||||
$ mySpacing 8
|
||||
$ mkToggle (single MIRROR)
|
||||
$ Grid (16/10)
|
||||
spirals = renamed [Replace "spirals"]
|
||||
$ mySpacing 8
|
||||
$ spiral (6/7)
|
||||
tabs = renamed [Replace "tabs"]
|
||||
-- I cannot add spacing to this layout because it will
|
||||
-- add spacing between window and tabs which looks bad.
|
||||
$ tabbed shrinkText myTabConfig
|
||||
where
|
||||
myTabConfig = def { fontName = "xft:Fira Code:regular:pixelsize=11"
|
||||
, activeColor = "#282c34"
|
||||
, inactiveColor = "#3e445e"
|
||||
, activeBorderColor = "#282c34"
|
||||
, inactiveBorderColor = "#282c34"
|
||||
, activeTextColor = "#ffffff"
|
||||
, inactiveTextColor = "#d0d0d0"
|
||||
}
|
||||
|
||||
-- The layout hook
|
||||
myLayout = avoidStruts $ mouseResize $ windowArrange $ T.toggleLayouts floats $
|
||||
mkToggle (NBFULL ?? NOBORDERS ?? EOT) myDefaultLayout
|
||||
where
|
||||
-- I've commented out the layouts I don't use.
|
||||
myDefaultLayout =
|
||||
grid
|
||||
||| noBorders monocle
|
||||
||| spirals
|
||||
||| tall
|
||||
||| noBorders tabs
|
||||
||| floats
|
||||
||| magnify
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- Window rules:
|
||||
|
||||
-- Execute arbitrary actions and WindowSet manipulations when managing
|
||||
-- a new window. You can use this to, for example, always float a
|
||||
-- particular program, or have a client always appear on a particular
|
||||
-- workspace.
|
||||
--
|
||||
-- To find the property name associated with a program, use
|
||||
-- > xprop | grep WM_CLASS
|
||||
-- and click on the client you're interested in.
|
||||
--
|
||||
-- To match on the WM_NAME, you can use 'title' in the same way that
|
||||
-- 'className' and 'resource' are used below.
|
||||
myManageHook = composeAll
|
||||
[ className =? "Gimp" --> doFloat
|
||||
, className =? "guake" --> doIgnore
|
||||
, className =? "barrier" --> doFloat
|
||||
, className =? "net-runelite-client-RuneLite" --> doFloat
|
||||
, className =? "net-runelite-launcher-Launcher" --> doIgnore
|
||||
, resource =? "desktop_window" --> doIgnore
|
||||
, resource =? "kdesktop" --> doIgnore ]
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- Event handling
|
||||
|
||||
-- * EwmhDesktops users should change this to ewmhDesktopsEventHook
|
||||
--
|
||||
-- Defines a custom handler function for X Events. The function should
|
||||
-- return (All True) if the default handler is to be run afterwards. To
|
||||
-- combine event hooks use mappend or mconcat from Data.Monoid.
|
||||
myEventHook = mempty
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- Status bars and logging
|
||||
|
||||
-- Perform an arbitrary action on each internal state change or X event.
|
||||
-- See the 'XMonad.Hooks.DynamicLog' extension for examples.
|
||||
myLogHook :: X ()
|
||||
myLogHook = fadeInactiveLogHook fadeAmount
|
||||
where fadeAmount = 1.0
|
||||
|
||||
------------------------------------------------------------------------
|
||||
-- Startup hook
|
||||
|
||||
-- Perform an arbitrary action each time xmonad starts or is restarted
|
||||
-- with mod-q. Used by, e.g., XMonad.Layout.PerWorkspace to initialize
|
||||
-- per-workspace layout choices.
|
||||
--
|
||||
-- By default, do nothing.
|
||||
myStartupHook = do
|
||||
spawnOnce "/usr/lib/x86_64-linux-gnu/libexec/org_kde_powerdevil &"
|
||||
spawnOnce "/home/solomon/.screenlayout/normal.sh"
|
||||
spawnOnce "compton &"
|
||||
spawnOnce "nitrogen --restore &"
|
||||
spawnOnce "dunst &"
|
||||
spawnOnce "xsetroot -cursor_name left_ptr"
|
||||
spawnOnce "numlockx"
|
||||
spawnOnce "trayer --edge top --align right --widthtype request --padding 6 --SetDockType true --SetPartialStrut true --expand true --monitor 1 --transparent true --alpha 0 --tint 0x14071F --height 20 &"
|
||||
spawnOnce "volumeicon &"
|
||||
spawnOnce "nm-applet &"
|
||||
spawnOnce "blueman-applet &"
|
||||
spawnOnce "kdeconnect-indicator &"
|
||||
spawnOnce "ibus-daemon &"
|
||||
spawnOnce "guake &"
|
||||
spawnOnce "barrier &"
|
||||
spawnOnce "nextcloud &"
|
||||
spawnOnce "slack &"
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
-- Now run xmonad with all the defaults we set up.
|
||||
-- Run xmonad with the settings you specify. No need to modify this.
|
||||
main :: IO ()
|
||||
main = do
|
||||
xmproc <- spawnPipe "xmobar -x 0 /home/solomon/.config/xmobar/xmobarrc.hs"
|
||||
-- xmproc <- spawnPipe "xmobar -x 0 /home/solomon/.config/xmobar/xmobarrc0"
|
||||
-- xmproc <- spawnPipe "xmobar -x 1 /home/solomon/.config/xmobar/xmobarrc1"
|
||||
-- xmproc <- spawnPipe "xmobar -x 2 /home/solomon/.config/xmobar/xmobarrc2"
|
||||
-- xmonad =<< statusBar myBar myPP toggleStrutsKey defaults
|
||||
xmonad $ docks def
|
||||
-- defaults = def
|
||||
{
|
||||
-- simple stuff
|
||||
terminal = myTerminal,
|
||||
focusFollowsMouse = myFocusFollowsMouse,
|
||||
clickJustFocuses = myClickJustFocuses,
|
||||
borderWidth = myBorderWidth,
|
||||
modMask = myModMask,
|
||||
workspaces = myWorkspaces,
|
||||
normalBorderColor = myNormalBorderColor,
|
||||
focusedBorderColor = myFocusedBorderColor,
|
||||
|
||||
-- key bindings
|
||||
keys = myKeys,
|
||||
mouseBindings = myMouseBindings,
|
||||
|
||||
-- hooks, layouts
|
||||
layoutHook = myLayout,
|
||||
manageHook = ( isFullscreen --> doFullFloat ) <+> myManageHook <+> manageDocks,
|
||||
handleEventHook = myEventHook <+> fullscreenEventHook,
|
||||
-- logHook = myLogHook,
|
||||
logHook = myLogHook <+> dynamicLogWithPP xmobarPP
|
||||
{ ppOutput = \x -> hPutStrLn xmproc x
|
||||
, ppCurrent = xmobarColor "#a8de45" "" . wrap "[" "]" -- Current workspace in xmobar
|
||||
, ppVisible = xmobarColor "#98be65" "" -- Visible but not current workspace
|
||||
, ppHidden = xmobarColor "#82AAFF" "" . wrap "*" "" -- Hidden workspaces in xmobar
|
||||
, ppHiddenNoWindows = xmobarColor "#c792ea" "" -- Hidden workspaces (no windows)
|
||||
-- , ppTitle = xmobarColor "#b3afc2" "" . shorten 20 -- Title of active window in xmobar
|
||||
, ppSep = "<fc=#805a9b> | </fc>" -- Separators in xmobar
|
||||
, ppUrgent = xmobarColor "#C45500" "" . wrap "!" "!" -- Urgent workspace
|
||||
-- , ppExtras = [windowCount] -- # of windows current workspace
|
||||
-- , ppOrder = \(ws:l:t:ex) -> [ws,l]++ex++[t]
|
||||
, ppOrder = \(ws:l:t:ex) -> [ws,l]
|
||||
},
|
||||
startupHook = myStartupHook
|
||||
}
|
||||
|
||||
-- | Finally, a copy of the default bindings in simple textual tabular format.
|
||||
help :: String
|
||||
help = unlines ["The default modifier key is 'alt'. Default keybindings:",
|
||||
"",
|
||||
"-- launching and killing programs",
|
||||
"mod-Shift-Enter Launch terminal",
|
||||
"mod-a Launch run menu",
|
||||
"mod-Shift-a Launch ssh menu",
|
||||
"mod-o Launch dmenu",
|
||||
"mod-l Launch file manager",
|
||||
"mod-Shift-j Close/kill the focused window",
|
||||
"mod-Space Rotate through the available layout algorithms",
|
||||
"mod-Shift-Space Reset the layouts on the current workSpace to default",
|
||||
"mod-n Resize/refresh viewed windows to the correct size",
|
||||
"",
|
||||
"-- move focus up or down the window stack",
|
||||
"mod-Tab Move focus to the next window",
|
||||
"mod-Shift-Tab Move focus to the previous window",
|
||||
"mod-h Move focus to the next window",
|
||||
"mod-t Move focus to the previous window",
|
||||
"mod-m Move focus to the master window",
|
||||
"",
|
||||
"-- modifying the window order",
|
||||
"mod-Return Swap the focused window and the master window",
|
||||
"mod-Shift-h Swap the focused window with the next window",
|
||||
"mod-Shift-t Swap the focused window with the previous window",
|
||||
"",
|
||||
"-- resizing the master/slave ratio",
|
||||
"mod-d Shri sk the master area",
|
||||
"mod-n Expand the master area",
|
||||
"",
|
||||
"-- floating layer support",
|
||||
"mod-y Push window back into tiling; unfloat and re-tile it",
|
||||
"",
|
||||
"-- increase or decrease number of windows in the master area",
|
||||
"mod-w (mod-,) Increment the number of windows in the master area",
|
||||
"mod-vL (mod-.) Deincrement the number of windows in the master area",
|
||||
"",
|
||||
"-- quit, or restart",
|
||||
"mod-Shift-' Quit xmonad",
|
||||
"mod-' Restart xmonad",
|
||||
"mod-[1..9] Switch to workSpace N",
|
||||
"",
|
||||
"-- Workspaces & screens",
|
||||
"mod-Shift-[1..9] Move client to workspace N",
|
||||
"mod-{',','.','p'} Switch to physical/Xinerama screens 1, 2, or 3",
|
||||
"mod-Shift-{',','.','p'} Move client to screen 1, 2, or 3",
|
||||
"",
|
||||
"-- Mouse bindings: default actions bound to mouse events",
|
||||
"mod-button1 Set the window to floating mode and move by dragging",
|
||||
"mod-button2 Raise the window to the top of the stack",
|
||||
"mod-button3 Set the window to floating mode and resize by dragging"]
|
||||
25
.xmonad/xpm/calendar-clock-icon_20.xpm
Normal file
25
.xmonad/xpm/calendar-clock-icon_20.xpm
Normal file
@ -0,0 +1,25 @@
|
||||
/* XPM */
|
||||
static char * calendar_clock_icon_20_xpm[] = {
|
||||
"20 20 2 1",
|
||||
" c None",
|
||||
". c #EFF0F1",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ........ ",
|
||||
" .. .. ",
|
||||
" .. . .. ",
|
||||
" .. . .. ",
|
||||
" . . . ",
|
||||
" . . . ",
|
||||
" . . . ",
|
||||
" . ...... . ",
|
||||
" . . ",
|
||||
" . . ",
|
||||
" .. .. ",
|
||||
" .. .. ",
|
||||
" .. .. ",
|
||||
" ........ ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
||||
25
.xmonad/xpm/cpu_20.xpm
Normal file
25
.xmonad/xpm/cpu_20.xpm
Normal file
@ -0,0 +1,25 @@
|
||||
/* XPM */
|
||||
static char * cpu_20_xpm[] = {
|
||||
"20 20 2 1",
|
||||
" c None",
|
||||
". c #EFF0F1",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ................ ",
|
||||
" .. .. ",
|
||||
" .. .. ",
|
||||
" .. .. ",
|
||||
" .. .. ",
|
||||
" .. .. ",
|
||||
" .. .. ",
|
||||
" .. .. ",
|
||||
" ................ ",
|
||||
" .............. ",
|
||||
" .. ",
|
||||
" ........ ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
||||
25
.xmonad/xpm/harddisk-icon_20.xpm
Normal file
25
.xmonad/xpm/harddisk-icon_20.xpm
Normal file
@ -0,0 +1,25 @@
|
||||
/* XPM */
|
||||
static char * harddisk_icon_20_xpm[] = {
|
||||
"20 20 2 1",
|
||||
" c None",
|
||||
". c #EFF0F1",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ............ ",
|
||||
" .. .. ",
|
||||
" . . ",
|
||||
" . . ",
|
||||
" . . ",
|
||||
" .. .. ",
|
||||
" .. .. ",
|
||||
" . . ",
|
||||
" . . ",
|
||||
" . . ",
|
||||
" .. .. ",
|
||||
" ............ ",
|
||||
" . ... . ",
|
||||
" ............ ",
|
||||
" ............ ",
|
||||
" ",
|
||||
" "};
|
||||
25
.xmonad/xpm/haskell_20.xpm
Normal file
25
.xmonad/xpm/haskell_20.xpm
Normal file
@ -0,0 +1,25 @@
|
||||
/* XPM */
|
||||
static char * haskell_20_xpm[] = {
|
||||
"20 20 2 1",
|
||||
" c None",
|
||||
". c #FFFFFF",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
".... .... ",
|
||||
" .... ... ",
|
||||
" ... .... ",
|
||||
" .... .... ",
|
||||
" .... ... ........",
|
||||
" ... .... .......",
|
||||
" .... .... ",
|
||||
" .... .... ",
|
||||
" ... ...... .....",
|
||||
" .... ....... ....",
|
||||
" .... .... ... ",
|
||||
" ... .... .... ",
|
||||
" .... ... .... ",
|
||||
".... .... ... ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
||||
25
.xmonad/xpm/memory-icon_20.xpm
Normal file
25
.xmonad/xpm/memory-icon_20.xpm
Normal file
@ -0,0 +1,25 @@
|
||||
/* XPM */
|
||||
static char * memory_icon_20_xpm[] = {
|
||||
"20 20 2 1",
|
||||
" c None",
|
||||
". c #EFF0F1",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ........... ",
|
||||
" . . ",
|
||||
" . . . ",
|
||||
" . . . . . ",
|
||||
" . .. . .. . ",
|
||||
" . .. . .. . ",
|
||||
" . .. . .. . ",
|
||||
" . . ",
|
||||
" . . ",
|
||||
" .. . ",
|
||||
" . . ",
|
||||
" . . ",
|
||||
" . . ",
|
||||
" ............ ",
|
||||
" ............ ",
|
||||
" ",
|
||||
" "};
|
||||
25
.xmonad/xpm/net_down_20.xpm
Normal file
25
.xmonad/xpm/net_down_20.xpm
Normal file
@ -0,0 +1,25 @@
|
||||
/* XPM */
|
||||
static char * net_down_20_xpm[] = {
|
||||
"20 20 2 1",
|
||||
" c None",
|
||||
". c #EFF0F1",
|
||||
" ",
|
||||
" ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" .. . . ",
|
||||
" . . .. ",
|
||||
" .. . . ",
|
||||
" . ... ",
|
||||
" .... ",
|
||||
" ... ",
|
||||
" .. ",
|
||||
" . ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
||||
25
.xmonad/xpm/net_up_20.xpm
Normal file
25
.xmonad/xpm/net_up_20.xpm
Normal file
@ -0,0 +1,25 @@
|
||||
/* XPM */
|
||||
static char * net_up_20_xpm[] = {
|
||||
"20 20 2 1",
|
||||
" c None",
|
||||
". c #EFF0F1",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" . ",
|
||||
" .. ",
|
||||
" ... ",
|
||||
" .... ",
|
||||
" . ... ",
|
||||
" .. . . ",
|
||||
" . . .. ",
|
||||
" .. . . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" . ",
|
||||
" ",
|
||||
" "};
|
||||
3
README.md
Normal file
3
README.md
Normal file
@ -0,0 +1,3 @@
|
||||
My Dotfiles, managed using the following tutorial:
|
||||
|
||||
https://www.atlassian.com/git/tutorials/dotfiles
|
||||
14
ansible/hosts
Normal file
14
ansible/hosts
Normal file
@ -0,0 +1,14 @@
|
||||
#File name: hosts
|
||||
#Description: Inventory file for your application. Defines machine type abcnode to deploy specific artifacts
|
||||
# Defines machine type def node to upload metadata.
|
||||
|
||||
[abc-node]
|
||||
#server1 ansible_host = <target machine for DU deployment>
|
||||
ansible_user = <Ansibleuser> ansible_connection = ssh
|
||||
server1 ansible_host = <your host name> ansible_user = <your unix user>
|
||||
ansible_connection = ssh
|
||||
|
||||
[def-node]
|
||||
#server2 ansible_host = <target machine for artifact upload>
|
||||
ansible_user = <Ansible user> ansible_connection = ssh
|
||||
server2 ansible_host = <host> ansible_user = <user> ansible_connection = ssh
|
||||
16
ansible/kube-cluster/1_initial.yml
Normal file
16
ansible/kube-cluster/1_initial.yml
Normal file
@ -0,0 +1,16 @@
|
||||
- hosts: all
|
||||
become : yes
|
||||
tasks:
|
||||
- name: create the 'ubuntu' user
|
||||
user: name=ubuntu append=yes state=present createhome=yes shell=/bin/bash
|
||||
|
||||
- name: allow 'ubuntu' to have passwordless sudo
|
||||
lineinfile:
|
||||
dest: /etc/sudoers
|
||||
line: 'ubuntu ALL=(ALL) NOPASSWD: ALL'
|
||||
validate: 'visudo -cf %s'
|
||||
|
||||
- name: set up authorised keys for the 'ubuntu' user
|
||||
authorized_key: user=ubuntu key="{{item}}"
|
||||
with_file:
|
||||
- ~/.ssh/id_rsa.pub
|
||||
38
ansible/kube-cluster/2_kube_dependencies.yml
Normal file
38
ansible/kube-cluster/2_kube_dependencies.yml
Normal file
@ -0,0 +1,38 @@
|
||||
- hosts: all
|
||||
become: yes
|
||||
tasks:
|
||||
- name: install APT Transport HTTPS
|
||||
apt:
|
||||
name: apt-transport-https
|
||||
state: present
|
||||
|
||||
- name: add Kubernetes apt-key
|
||||
apt_key:
|
||||
url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
|
||||
state: present
|
||||
|
||||
- name: add Kubernetes' APT repository
|
||||
apt_repository:
|
||||
repo: deb http://apt.kubernetes.io/ kubernetes-xenial main
|
||||
state: present
|
||||
filename: 'kubernetes'
|
||||
|
||||
- name: install kubelet
|
||||
apt:
|
||||
name: kubelet=1.18.0-00
|
||||
state: present
|
||||
update_cache: true
|
||||
|
||||
- name: install kubeadm
|
||||
apt:
|
||||
name: kubeadm=1.18.0-00
|
||||
state: present
|
||||
|
||||
- hosts: master
|
||||
become: yes
|
||||
tasks:
|
||||
- name: install kubectl
|
||||
apt:
|
||||
name: kubectl=1.18.0-00
|
||||
state: present
|
||||
force: yes
|
||||
44
ansible/kube-cluster/2_kube_dependencies.yml.bak
Normal file
44
ansible/kube-cluster/2_kube_dependencies.yml.bak
Normal file
@ -0,0 +1,44 @@
|
||||
- hosts: all
|
||||
become: yes
|
||||
tasks:
|
||||
- name: install Docker
|
||||
apt:
|
||||
name: docker.io
|
||||
state: present
|
||||
update_cache: true
|
||||
|
||||
- name: install APT Transport HTTPS
|
||||
apt:
|
||||
name: apt-transport-https
|
||||
state: present
|
||||
|
||||
- name: add Kubernetes apt-key
|
||||
apt_key:
|
||||
url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
|
||||
state: present
|
||||
|
||||
- name: add Kubernetes' APT repository
|
||||
apt_repository:
|
||||
repo: deb http://apt.kubernetes.io/ kubernetes-xenial main
|
||||
state: present
|
||||
filename: 'kubernetes'
|
||||
|
||||
- name: install kubelet
|
||||
apt:
|
||||
name: kubelet=1.18.0-00
|
||||
state: present
|
||||
update_cache: true
|
||||
|
||||
- name: install kubeadm
|
||||
apt:
|
||||
name: kubeadm=1.18.0-00
|
||||
state: present
|
||||
|
||||
- hosts: master
|
||||
become: yes
|
||||
tasks:
|
||||
- name: install kubectl
|
||||
apt:
|
||||
name: kubectl=1.18.0-00
|
||||
state: present
|
||||
force: yes
|
||||
42
ansible/kube-cluster/3_master.yml
Normal file
42
ansible/kube-cluster/3_master.yml
Normal file
@ -0,0 +1,42 @@
|
||||
- hosts: master
|
||||
become: yes
|
||||
tasks:
|
||||
- name: initialise the cluster
|
||||
shell: kubeadm init --pod-network-cidr=10.244.0.0/16 >> cluster_initialized.txt
|
||||
args:
|
||||
chdir: $HOME
|
||||
creates: cluster_initialized.txt
|
||||
become: yes
|
||||
become_user: root
|
||||
|
||||
- name: create .kube directory
|
||||
become: yes
|
||||
become_user: ubuntu
|
||||
file:
|
||||
path: $HOME/.kube
|
||||
state: directory
|
||||
mode: 0755
|
||||
|
||||
- name: copy admin.conf to user's kube config
|
||||
copy:
|
||||
src: /etc/kubernetes/admin.conf
|
||||
dest: /home/ubuntu/.kube/config
|
||||
remote_src: yes
|
||||
owner: ubuntu
|
||||
|
||||
- name: copy Pod network config
|
||||
copy:
|
||||
src: ./kube-flannel.yml
|
||||
dest: /home/ubuntu/
|
||||
owner: ubuntu
|
||||
group: ubuntu
|
||||
mode: '0644'
|
||||
|
||||
- name: install Pod network
|
||||
become: yes
|
||||
become_user: ubuntu
|
||||
shell: kubectl apply -f kube-flannel.yml >> pod_network_setup.txt
|
||||
args:
|
||||
chdir: $HOME
|
||||
creates: pot_network_setup.txt
|
||||
|
||||
21
ansible/kube-cluster/4_workers.yml
Normal file
21
ansible/kube-cluster/4_workers.yml
Normal file
@ -0,0 +1,21 @@
|
||||
- hosts: master
|
||||
become: yes
|
||||
gather_facts: false
|
||||
tasks:
|
||||
- name: get join command
|
||||
shell: kubeadm token create --print-join-command
|
||||
register: join_command_raw
|
||||
|
||||
- name: set join command
|
||||
set_fact:
|
||||
join_command: "{{ join_command_raw.stdout_lines[0] }}"
|
||||
|
||||
- hosts: workers
|
||||
become: yes
|
||||
tasks:
|
||||
- name: join cluster
|
||||
shell: "{{ hostvars['master'].join_command }} >> node_joined.txt"
|
||||
args:
|
||||
chdir: $HOME
|
||||
creates: node_joined.txt
|
||||
|
||||
1
ansible/kube-cluster/ansible-playbook
Normal file
1
ansible/kube-cluster/ansible-playbook
Normal file
@ -0,0 +1 @@
|
||||
WirrealpaSSH0429 -i hosts /root/kube-cluster/initial.yml
|
||||
10
ansible/kube-cluster/cluster-update-reboot.yml
Normal file
10
ansible/kube-cluster/cluster-update-reboot.yml
Normal file
@ -0,0 +1,10 @@
|
||||
- hosts: all
|
||||
become: yes
|
||||
tasks:
|
||||
|
||||
- name: Update and upgrade apt package
|
||||
become: true
|
||||
apt:
|
||||
upgrade: yes
|
||||
update_cache: yes
|
||||
cache_valid_time: 86400 #One day
|
||||
603
ansible/kube-cluster/kube-flannel.yml
Normal file
603
ansible/kube-cluster/kube-flannel.yml
Normal file
@ -0,0 +1,603 @@
|
||||
---
|
||||
apiVersion: policy/v1beta1
|
||||
kind: PodSecurityPolicy
|
||||
metadata:
|
||||
name: psp.flannel.unprivileged
|
||||
annotations:
|
||||
seccomp.security.alpha.kubernetes.io/allowedProfileNames: docker/default
|
||||
seccomp.security.alpha.kubernetes.io/defaultProfileName: docker/default
|
||||
apparmor.security.beta.kubernetes.io/allowedProfileNames: runtime/default
|
||||
apparmor.security.beta.kubernetes.io/defaultProfileName: runtime/default
|
||||
spec:
|
||||
privileged: false
|
||||
volumes:
|
||||
- configMap
|
||||
- secret
|
||||
- emptyDir
|
||||
- hostPath
|
||||
allowedHostPaths:
|
||||
- pathPrefix: "/etc/cni/net.d"
|
||||
- pathPrefix: "/etc/kube-flannel"
|
||||
- pathPrefix: "/run/flannel"
|
||||
readOnlyRootFilesystem: false
|
||||
# Users and groups
|
||||
runAsUser:
|
||||
rule: RunAsAny
|
||||
supplementalGroups:
|
||||
rule: RunAsAny
|
||||
fsGroup:
|
||||
rule: RunAsAny
|
||||
# Privilege Escalation
|
||||
allowPrivilegeEscalation: false
|
||||
defaultAllowPrivilegeEscalation: false
|
||||
# Capabilities
|
||||
allowedCapabilities: ['NET_ADMIN']
|
||||
defaultAddCapabilities: []
|
||||
requiredDropCapabilities: []
|
||||
# Host namespaces
|
||||
hostPID: false
|
||||
hostIPC: false
|
||||
hostNetwork: true
|
||||
hostPorts:
|
||||
- min: 0
|
||||
max: 65535
|
||||
# SELinux
|
||||
seLinux:
|
||||
# SELinux is unused in CaaSP
|
||||
rule: 'RunAsAny'
|
||||
---
|
||||
kind: ClusterRole
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
metadata:
|
||||
name: flannel
|
||||
rules:
|
||||
- apiGroups: ['extensions']
|
||||
resources: ['podsecuritypolicies']
|
||||
verbs: ['use']
|
||||
resourceNames: ['psp.flannel.unprivileged']
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes/status
|
||||
verbs:
|
||||
- patch
|
||||
---
|
||||
kind: ClusterRoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
metadata:
|
||||
name: flannel
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: flannel
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: flannel
|
||||
namespace: kube-system
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: flannel
|
||||
namespace: kube-system
|
||||
---
|
||||
kind: ConfigMap
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: kube-flannel-cfg
|
||||
namespace: kube-system
|
||||
labels:
|
||||
tier: node
|
||||
app: flannel
|
||||
data:
|
||||
cni-conf.json: |
|
||||
{
|
||||
"name": "cbr0",
|
||||
"cniVersion": "0.3.1",
|
||||
"plugins": [
|
||||
{
|
||||
"type": "flannel",
|
||||
"delegate": {
|
||||
"hairpinMode": true,
|
||||
"isDefaultGateway": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "portmap",
|
||||
"capabilities": {
|
||||
"portMappings": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
net-conf.json: |
|
||||
{
|
||||
"Network": "10.244.0.0/16",
|
||||
"Backend": {
|
||||
"Type": "vxlan"
|
||||
}
|
||||
}
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: kube-flannel-ds-amd64
|
||||
namespace: kube-system
|
||||
labels:
|
||||
tier: node
|
||||
app: flannel
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: flannel
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
tier: node
|
||||
app: flannel
|
||||
spec:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/os
|
||||
operator: In
|
||||
values:
|
||||
- linux
|
||||
- key: kubernetes.io/arch
|
||||
operator: In
|
||||
values:
|
||||
- amd64
|
||||
hostNetwork: true
|
||||
tolerations:
|
||||
- operator: Exists
|
||||
effect: NoSchedule
|
||||
serviceAccountName: flannel
|
||||
initContainers:
|
||||
- name: install-cni
|
||||
image: quay.io/coreos/flannel:v0.12.0-amd64
|
||||
command:
|
||||
- cp
|
||||
args:
|
||||
- -f
|
||||
- /etc/kube-flannel/cni-conf.json
|
||||
- /etc/cni/net.d/10-flannel.conflist
|
||||
volumeMounts:
|
||||
- name: cni
|
||||
mountPath: /etc/cni/net.d
|
||||
- name: flannel-cfg
|
||||
mountPath: /etc/kube-flannel/
|
||||
containers:
|
||||
- name: kube-flannel
|
||||
image: quay.io/coreos/flannel:v0.12.0-amd64
|
||||
command:
|
||||
- /opt/bin/flanneld
|
||||
args:
|
||||
- --ip-masq
|
||||
- --kube-subnet-mgr
|
||||
resources:
|
||||
requests:
|
||||
cpu: "100m"
|
||||
memory: "50Mi"
|
||||
limits:
|
||||
cpu: "100m"
|
||||
memory: "50Mi"
|
||||
securityContext:
|
||||
privileged: false
|
||||
capabilities:
|
||||
add: ["NET_ADMIN"]
|
||||
env:
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
volumeMounts:
|
||||
- name: run
|
||||
mountPath: /run/flannel
|
||||
- name: flannel-cfg
|
||||
mountPath: /etc/kube-flannel/
|
||||
volumes:
|
||||
- name: run
|
||||
hostPath:
|
||||
path: /run/flannel
|
||||
- name: cni
|
||||
hostPath:
|
||||
path: /etc/cni/net.d
|
||||
- name: flannel-cfg
|
||||
configMap:
|
||||
name: kube-flannel-cfg
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: kube-flannel-ds-arm64
|
||||
namespace: kube-system
|
||||
labels:
|
||||
tier: node
|
||||
app: flannel
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: flannel
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
tier: node
|
||||
app: flannel
|
||||
spec:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/os
|
||||
operator: In
|
||||
values:
|
||||
- linux
|
||||
- key: kubernetes.io/arch
|
||||
operator: In
|
||||
values:
|
||||
- arm64
|
||||
hostNetwork: true
|
||||
tolerations:
|
||||
- operator: Exists
|
||||
effect: NoSchedule
|
||||
serviceAccountName: flannel
|
||||
initContainers:
|
||||
- name: install-cni
|
||||
image: quay.io/coreos/flannel:v0.12.0-arm64
|
||||
command:
|
||||
- cp
|
||||
args:
|
||||
- -f
|
||||
- /etc/kube-flannel/cni-conf.json
|
||||
- /etc/cni/net.d/10-flannel.conflist
|
||||
volumeMounts:
|
||||
- name: cni
|
||||
mountPath: /etc/cni/net.d
|
||||
- name: flannel-cfg
|
||||
mountPath: /etc/kube-flannel/
|
||||
containers:
|
||||
- name: kube-flannel
|
||||
image: quay.io/coreos/flannel:v0.12.0-arm64
|
||||
command:
|
||||
- /opt/bin/flanneld
|
||||
args:
|
||||
- --ip-masq
|
||||
- --kube-subnet-mgr
|
||||
resources:
|
||||
requests:
|
||||
cpu: "100m"
|
||||
memory: "50Mi"
|
||||
limits:
|
||||
cpu: "100m"
|
||||
memory: "50Mi"
|
||||
securityContext:
|
||||
privileged: false
|
||||
capabilities:
|
||||
add: ["NET_ADMIN"]
|
||||
env:
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
volumeMounts:
|
||||
- name: run
|
||||
mountPath: /run/flannel
|
||||
- name: flannel-cfg
|
||||
mountPath: /etc/kube-flannel/
|
||||
volumes:
|
||||
- name: run
|
||||
hostPath:
|
||||
path: /run/flannel
|
||||
- name: cni
|
||||
hostPath:
|
||||
path: /etc/cni/net.d
|
||||
- name: flannel-cfg
|
||||
configMap:
|
||||
name: kube-flannel-cfg
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: kube-flannel-ds-arm
|
||||
namespace: kube-system
|
||||
labels:
|
||||
tier: node
|
||||
app: flannel
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: flannel
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
tier: node
|
||||
app: flannel
|
||||
spec:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/os
|
||||
operator: In
|
||||
values:
|
||||
- linux
|
||||
- key: kubernetes.io/arch
|
||||
operator: In
|
||||
values:
|
||||
- arm
|
||||
hostNetwork: true
|
||||
tolerations:
|
||||
- operator: Exists
|
||||
effect: NoSchedule
|
||||
serviceAccountName: flannel
|
||||
initContainers:
|
||||
- name: install-cni
|
||||
image: quay.io/coreos/flannel:v0.12.0-arm
|
||||
command:
|
||||
- cp
|
||||
args:
|
||||
- -f
|
||||
- /etc/kube-flannel/cni-conf.json
|
||||
- /etc/cni/net.d/10-flannel.conflist
|
||||
volumeMounts:
|
||||
- name: cni
|
||||
mountPath: /etc/cni/net.d
|
||||
- name: flannel-cfg
|
||||
mountPath: /etc/kube-flannel/
|
||||
containers:
|
||||
- name: kube-flannel
|
||||
image: quay.io/coreos/flannel:v0.12.0-arm
|
||||
command:
|
||||
- /opt/bin/flanneld
|
||||
args:
|
||||
- --ip-masq
|
||||
- --kube-subnet-mgr
|
||||
resources:
|
||||
requests:
|
||||
cpu: "100m"
|
||||
memory: "50Mi"
|
||||
limits:
|
||||
cpu: "100m"
|
||||
memory: "50Mi"
|
||||
securityContext:
|
||||
privileged: false
|
||||
capabilities:
|
||||
add: ["NET_ADMIN"]
|
||||
env:
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
volumeMounts:
|
||||
- name: run
|
||||
mountPath: /run/flannel
|
||||
- name: flannel-cfg
|
||||
mountPath: /etc/kube-flannel/
|
||||
volumes:
|
||||
- name: run
|
||||
hostPath:
|
||||
path: /run/flannel
|
||||
- name: cni
|
||||
hostPath:
|
||||
path: /etc/cni/net.d
|
||||
- name: flannel-cfg
|
||||
configMap:
|
||||
name: kube-flannel-cfg
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: kube-flannel-ds-ppc64le
|
||||
namespace: kube-system
|
||||
labels:
|
||||
tier: node
|
||||
app: flannel
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: flannel
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
tier: node
|
||||
app: flannel
|
||||
spec:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/os
|
||||
operator: In
|
||||
values:
|
||||
- linux
|
||||
- key: kubernetes.io/arch
|
||||
operator: In
|
||||
values:
|
||||
- ppc64le
|
||||
hostNetwork: true
|
||||
tolerations:
|
||||
- operator: Exists
|
||||
effect: NoSchedule
|
||||
serviceAccountName: flannel
|
||||
initContainers:
|
||||
- name: install-cni
|
||||
image: quay.io/coreos/flannel:v0.12.0-ppc64le
|
||||
command:
|
||||
- cp
|
||||
args:
|
||||
- -f
|
||||
- /etc/kube-flannel/cni-conf.json
|
||||
- /etc/cni/net.d/10-flannel.conflist
|
||||
volumeMounts:
|
||||
- name: cni
|
||||
mountPath: /etc/cni/net.d
|
||||
- name: flannel-cfg
|
||||
mountPath: /etc/kube-flannel/
|
||||
containers:
|
||||
- name: kube-flannel
|
||||
image: quay.io/coreos/flannel:v0.12.0-ppc64le
|
||||
command:
|
||||
- /opt/bin/flanneld
|
||||
args:
|
||||
- --ip-masq
|
||||
- --kube-subnet-mgr
|
||||
resources:
|
||||
requests:
|
||||
cpu: "100m"
|
||||
memory: "50Mi"
|
||||
limits:
|
||||
cpu: "100m"
|
||||
memory: "50Mi"
|
||||
securityContext:
|
||||
privileged: false
|
||||
capabilities:
|
||||
add: ["NET_ADMIN"]
|
||||
env:
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
volumeMounts:
|
||||
- name: run
|
||||
mountPath: /run/flannel
|
||||
- name: flannel-cfg
|
||||
mountPath: /etc/kube-flannel/
|
||||
volumes:
|
||||
- name: run
|
||||
hostPath:
|
||||
path: /run/flannel
|
||||
- name: cni
|
||||
hostPath:
|
||||
path: /etc/cni/net.d
|
||||
- name: flannel-cfg
|
||||
configMap:
|
||||
name: kube-flannel-cfg
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: kube-flannel-ds-s390x
|
||||
namespace: kube-system
|
||||
labels:
|
||||
tier: node
|
||||
app: flannel
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: flannel
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
tier: node
|
||||
app: flannel
|
||||
spec:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/os
|
||||
operator: In
|
||||
values:
|
||||
- linux
|
||||
- key: kubernetes.io/arch
|
||||
operator: In
|
||||
values:
|
||||
- s390x
|
||||
hostNetwork: true
|
||||
tolerations:
|
||||
- operator: Exists
|
||||
effect: NoSchedule
|
||||
serviceAccountName: flannel
|
||||
initContainers:
|
||||
- name: install-cni
|
||||
image: quay.io/coreos/flannel:v0.12.0-s390x
|
||||
command:
|
||||
- cp
|
||||
args:
|
||||
- -f
|
||||
- /etc/kube-flannel/cni-conf.json
|
||||
- /etc/cni/net.d/10-flannel.conflist
|
||||
volumeMounts:
|
||||
- name: cni
|
||||
mountPath: /etc/cni/net.d
|
||||
- name: flannel-cfg
|
||||
mountPath: /etc/kube-flannel/
|
||||
containers:
|
||||
- name: kube-flannel
|
||||
image: quay.io/coreos/flannel:v0.12.0-s390x
|
||||
command:
|
||||
- /opt/bin/flanneld
|
||||
args:
|
||||
- --ip-masq
|
||||
- --kube-subnet-mgr
|
||||
resources:
|
||||
requests:
|
||||
cpu: "100m"
|
||||
memory: "50Mi"
|
||||
limits:
|
||||
cpu: "100m"
|
||||
memory: "50Mi"
|
||||
securityContext:
|
||||
privileged: false
|
||||
capabilities:
|
||||
add: ["NET_ADMIN"]
|
||||
env:
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
volumeMounts:
|
||||
- name: run
|
||||
mountPath: /run/flannel
|
||||
- name: flannel-cfg
|
||||
mountPath: /etc/kube-flannel/
|
||||
volumes:
|
||||
- name: run
|
||||
hostPath:
|
||||
path: /run/flannel
|
||||
- name: cni
|
||||
hostPath:
|
||||
path: /etc/cni/net.d
|
||||
- name: flannel-cfg
|
||||
configMap:
|
||||
name: kube-flannel-cfg
|
||||
|
||||
7
ansible/kube-cluster/notes.txt
Normal file
7
ansible/kube-cluster/notes.txt
Normal file
@ -0,0 +1,7 @@
|
||||
got up to workers
|
||||
seems that docker is not starting and the worker nodes cannot join the cluster because they have no properly functioning container runtime
|
||||
can't see any other problems.
|
||||
|
||||
|
||||
following this : https://www.digitalocean.com/community/tutorials/how-to-create-a-kubernetes-cluster-using-kubeadm-on-ubuntu-18-04
|
||||
interesting notes : https://elatov.github.io/2020/04/adding-a-node-to-a-kubernetes-cluster-with-kubeadm/
|
||||
12
ansible/kube-cluster/odroid-hosts
Normal file
12
ansible/kube-cluster/odroid-hosts
Normal file
@ -0,0 +1,12 @@
|
||||
[masters]
|
||||
master ansible_host=192.168.2.180 ansible_user=root ansible_ssh_pass=odroid
|
||||
|
||||
[workers]
|
||||
worker1 ansible_host=192.168.2.181 ansible_user=root ansible_ssh_pass=odroid
|
||||
worker2 ansible_host=192.168.2.182 ansible_user=root ansible_ssh_pass=odroid
|
||||
worker3 ansible_host=192.168.2.183 ansible_user=root ansible_ssh_pass=odroid
|
||||
worker4 ansible_host=192.168.2.184 ansible_user=root ansible_ssh_pass=odroid
|
||||
worker5 ansible_host=192.168.2.185 ansible_user=root ansible_ssh_pass=odroid
|
||||
|
||||
[all:vars]
|
||||
ansible_python_interpreter=/usr/bin/python3
|
||||
8
ansible/kube-cluster/vm-hosts
Normal file
8
ansible/kube-cluster/vm-hosts
Normal file
@ -0,0 +1,8 @@
|
||||
[masters]
|
||||
master ansible_host=192.168.2.180 ansible_user=root ansible_ssh_pass=odroid
|
||||
|
||||
[workers]
|
||||
worker6 ansible_host=192.168.2.186 ansible_user=solomon ansible_ssh_pass=Solomon123 ansible_sudo_pass=Solomon123
|
||||
|
||||
[all:vars]
|
||||
ansible_python_interpreter=/usr/bin/python3
|
||||
29
code_extensions
Normal file
29
code_extensions
Normal file
@ -0,0 +1,29 @@
|
||||
code --install-extension ahmadawais.shades-of-purple
|
||||
code --install-extension austin.code-gnu-global
|
||||
code --install-extension christian-kohler.path-intellisense
|
||||
code --install-extension CoenraadS.bracket-pair-colorizer-2
|
||||
code --install-extension DotJoshJohnson.xml
|
||||
code --install-extension dracula-theme.theme-dracula
|
||||
code --install-extension formulahendry.auto-close-tag
|
||||
code --install-extension formulahendry.auto-rename-tag
|
||||
code --install-extension formulahendry.code-runner
|
||||
code --install-extension Fudge.auto-using
|
||||
code --install-extension HookyQR.beautify
|
||||
code --install-extension humao.rest-client
|
||||
code --install-extension justusadam.language-haskell
|
||||
code --install-extension marcochavezf.darcula-operator-mono-vscode
|
||||
code --install-extension mitaki28.vscode-clang
|
||||
code --install-extension ms-azuretools.vscode-azureappservice
|
||||
code --install-extension ms-dotnettools.csharp
|
||||
code --install-extension ms-python.python
|
||||
code --install-extension ms-vscode-remote.remote-wsl
|
||||
code --install-extension ms-vscode.azure-account
|
||||
code --install-extension ms-vscode.cmake-tools
|
||||
code --install-extension ms-vscode.cpptools
|
||||
code --install-extension quicktype.quicktype
|
||||
code --install-extension sdras.night-owl
|
||||
code --install-extension teabyii.ayu
|
||||
code --install-extension tomoki1207.pdf
|
||||
code --install-extension twxs.cmake
|
||||
code --install-extension wayou.vscode-todo-highlight
|
||||
code --install-extension wesbos.theme-cobalt2
|
||||
8
iommu.sh
Executable file
8
iommu.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
shopt -s nullglob
|
||||
for g in /sys/kernel/iommu_groups/*; do
|
||||
echo "IOMMU Group ${g##*/}:"
|
||||
for d in $g/devices/*; do
|
||||
echo -e "\t$(lspci -nns ${d##*/})"
|
||||
done;
|
||||
done;
|
||||
22
misc/youtube_subscription_parser.py
Executable file
22
misc/youtube_subscription_parser.py
Executable file
@ -0,0 +1,22 @@
|
||||
import json
|
||||
import os
|
||||
import hashlib
|
||||
|
||||
subscriptions = {}
|
||||
channels = []
|
||||
|
||||
# read subscirptions from google takeout file
|
||||
with open('./subscriptions.json') as f:
|
||||
doc = json.load(f)
|
||||
subscriptions[u'all'] = doc
|
||||
|
||||
# create a list of channels using id
|
||||
for subscription in subscriptions.values():
|
||||
for snippet in subscription:
|
||||
channels.append('https://www.youtube.com/feeds/videos.xml?channel_id=' + snippet['snippet']['resourceId']['channelId'] + '\n')
|
||||
|
||||
# write subscription urls to file
|
||||
with open('urls', 'a') as f:
|
||||
for channel in channels:
|
||||
f.writelines(channel)
|
||||
|
||||
115
qemu.sh
Normal file
115
qemu.sh
Normal file
@ -0,0 +1,115 @@
|
||||
#!/bin/bash
|
||||
|
||||
## Check if the script was executed as root
|
||||
[[ "$EUID" -ne 0 ]] && echo "Please run as root" && exit 1
|
||||
|
||||
## Load the config file
|
||||
source "/etc/libvirt/hooks/kvm.conf"
|
||||
|
||||
## Check libvirtd is running
|
||||
[[ $(systemctl status libvirtd | grep running) ]] || systemctl start libvirtd && sleep 1 && LIBVIRTD=STOPPED
|
||||
|
||||
function bind_vfio {
|
||||
## Unload nvidia
|
||||
modprobe -r nvidia_drm
|
||||
modprobe -r nvidia_uvm
|
||||
modprobe -r nvidia_modeset
|
||||
|
||||
## Load vfio
|
||||
modprobe vfio
|
||||
modprobe vfio_iommu_type1
|
||||
modprobe vfio_pci
|
||||
|
||||
## Unbind gpu from nvidia and bind to vfio
|
||||
virsh nodedev-detach $VIRSH_GPU_VIDEO
|
||||
virsh nodedev-detach $VIRSH_GPU_AUDIO
|
||||
## Unbind ssd from nvme and bind to vfio
|
||||
virsh nodedev-detach $VIRSH_SSD
|
||||
}
|
||||
|
||||
function unbind_vfio {
|
||||
## Unbind gpu from vfio and bind to nvidia
|
||||
virsh nodedev-reattach $VIRSH_GPU_VIDEO
|
||||
virsh nodedev-reattach $VIRSH_GPU_AUDIO
|
||||
## Unbind ssd from vfio and bind to nvme
|
||||
virsh nodedev-reattach $VIRSH_SSD
|
||||
|
||||
## Unload vfio
|
||||
modprobe -r vfio_pci
|
||||
modprobe -r vfio_iommu_type1
|
||||
modprobe -r vfio
|
||||
|
||||
## Load nvidia
|
||||
modprobe nvidia_modeset
|
||||
modprobe nvidia_uvm
|
||||
modprobe nvidia_drm
|
||||
}
|
||||
|
||||
function allocate_hugepages {
|
||||
HUGEPAGES="$(($MEMORY/$(($(grep Hugepagesize /proc/meminfo | awk '{print $2}')/1024))))"
|
||||
echo "Allocating hugepages..."
|
||||
echo $HUGEPAGES > /proc/sys/vm/nr_hugepages
|
||||
ALLOC_PAGES=$(cat /proc/sys/vm/nr_hugepages)
|
||||
|
||||
TRIES=0
|
||||
while (( $ALLOC_PAGES != $HUGEPAGES && $TRIES < 1000 ))
|
||||
do
|
||||
echo 1 > /proc/sys/vm/compact_memory ## defrag ram
|
||||
echo $HUGEPAGES > /proc/sys/vm/nr_hugepages
|
||||
ALLOC_PAGES=$(cat /proc/sys/vm/nr_hugepages)
|
||||
echo "Succesfully allocated $ALLOC_PAGES / $HUGEPAGES"
|
||||
let TRIES+=1
|
||||
done
|
||||
|
||||
if [ "$ALLOC_PAGES" -ne "HUGEPAGES" ]
|
||||
then
|
||||
echo "Not able to allocate all hugepages. Reverting..."
|
||||
echo 0 > /proc/sys/vm/nr_hugepages
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function deallocate_hugepages {
|
||||
echo 0 > /proc/sys/vm/nr_hugepages
|
||||
}
|
||||
|
||||
function cpu_mode_performance {
|
||||
## Enable CPU governor performance mode
|
||||
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
|
||||
for file in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo "performance" > $file; done
|
||||
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
|
||||
}
|
||||
|
||||
function cpu_mode_ondemand {
|
||||
## Enable CPU governor on-demand mode
|
||||
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
|
||||
for file in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo "ondemand" > $file; done
|
||||
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
|
||||
}
|
||||
|
||||
## Kill the display manager
|
||||
#systemctl stop display-manager.service
|
||||
|
||||
## Kill the console
|
||||
#echo 0 > /sys/class/vtconsole/vtcon0/bind
|
||||
#echo 0 > /sys/class/vtconsole/vtcon1/bind
|
||||
#echo efi-framebuffer.0 > /sys/bus/platform/drivers/efi-framebuffer/unbind
|
||||
|
||||
bind_vfio
|
||||
#allocate_hugepages
|
||||
#cpu_mode_performance
|
||||
|
||||
## QEMU KVM
|
||||
#TODO context https://github.com/bryansteiner/gpu-passthrough-tutorial#return9
|
||||
|
||||
#cpu_mode_ondemand
|
||||
#deallocate_hugepages
|
||||
unbind_vfio
|
||||
|
||||
## Start the display manager
|
||||
#systemctl start display-manager.service
|
||||
|
||||
## Start the console
|
||||
#echo 1 > /sys/class/vtconsole/vtcon0/bind
|
||||
#echo 1 > /sys/class/vtconsole/vtcon1/bind
|
||||
#echo efi-framebuffer.0 > /sys/bus/platform/drivers/efi-framebuffer/bind
|
||||
Loading…
Reference in New Issue
Block a user