wip
This commit is contained in:
commit
2bae9747c9
10
README.md
Normal file
10
README.md
Normal file
@ -0,0 +1,10 @@
|
||||
# Workspace
|
||||
|
||||
My scripts and configuration.
|
||||
|
||||
Built with multi-user and multi-machine setup in mind (assuming you are in charge).
|
||||
|
||||
- arch-root/ - administrative pc stuff related to hardware, packages, login management, group flow, roaming, etc.
|
||||
- arch-user/ - all the pc session stuff including window management that reflect my preferences as a user. Tiling wm, colemak, minimalism, vi bindings everywhere.
|
||||
- deb-vps/
|
||||
- android/
|
75
arch-root/install.sh
Normal file
75
arch-root/install.sh
Normal file
@ -0,0 +1,75 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
PACKAGES=(
|
||||
|
||||
# system
|
||||
base apparmor lvm2 greetd sudo # system
|
||||
openssh networkmanager man-db restic htop # admin utils
|
||||
|
||||
# cli programs
|
||||
vifm vim # navigation & editors
|
||||
dash shellcheck # shell scripting
|
||||
hugo miniserve neomutt # www
|
||||
gnupg pass pass-otp # crypt
|
||||
git zip # others
|
||||
|
||||
# desktop env
|
||||
sway swaybg xorg-xwayland # basic
|
||||
foot bemenu-wayland i3blocks mako # terminals, ui
|
||||
xorg-xev wl-clipboard slurp grim # interaction
|
||||
ttf-roboto ttf-roboto-mono # fonts
|
||||
|
||||
# gui apps
|
||||
imv mpv gimp # media
|
||||
firefox sqlitebrowser qt5-wayland
|
||||
|
||||
# extensions
|
||||
firefox-tridactyl vim-ale vim-fugitive
|
||||
|
||||
)
|
||||
|
||||
file_has_line() {
|
||||
grep -qxF "$2" "$1" || echo "$2" >> "$1"
|
||||
}
|
||||
|
||||
[ "$(id -u)" != "0" ] && echo "ERROR: root required" >&2 && exit 1
|
||||
|
||||
pacman -Syu
|
||||
pacman -S --needed "${PACKAGES[@]}"
|
||||
pacman -S --needed brightnessctl sof-firmware intel-media-driver intel-ucode
|
||||
|
||||
file_has_line "/etc/profile" "umask 002"
|
||||
|
||||
while read -r entity; do
|
||||
# group <name> <id>
|
||||
# user <name> <id> [<secondary groups>...]
|
||||
read -ra entity_parts <<< "$entity"
|
||||
etype="${entity_parts[0]}"
|
||||
ename="${entity_parts[1]}"
|
||||
eid="${entity_parts[2]}"
|
||||
[ "$etype" != "user" ] && [ "$etype" != "group" ] && echo "ERROR: bad entity type" >&2 && exit 1
|
||||
|
||||
# every user has their own primary group with id matching uid,
|
||||
# so for each entry we need a usergroup
|
||||
if [ -z "$(getent group "$eid")" ]; then
|
||||
echo "Creating group \"$ename\", id=$eid"
|
||||
groupadd --gid "$eid" "$ename"
|
||||
fi
|
||||
if [ "$etype" = "user" ]; then
|
||||
if ! id "$eid" >/dev/null 2>&1; then
|
||||
echo "Creating user \"$ename\", id=$eid"
|
||||
useradd --gid "$eid" --uid "$eid" -m "$ename"
|
||||
fi
|
||||
usermod -aG "$(IFS=,; echo "${entity_parts[*]:3}")" "$ename"
|
||||
else # group
|
||||
if [[ "$ename" == share-* ]]; then
|
||||
echo "Creating shared dir $ename"
|
||||
mkdir -p "/home/$ename"
|
||||
chgrp "$ename" -R "/home/$ename"
|
||||
chmod u=rwX,g=rwX,o= -R "/home/$ename"
|
||||
find "/home/$ename" -type d -print0 | xargs -0 chmod g+s
|
||||
|
||||
fi
|
||||
fi
|
||||
done </root/users.conf
|
15
arch-user/config/bash/bashrc
Normal file
15
arch-user/config/bash/bashrc
Normal file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
alias ls='ls --color=auto'
|
||||
alias grep='grep --color=auto'
|
||||
|
||||
unset SSH_AGENT_PID
|
||||
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
|
||||
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
|
||||
fi
|
||||
export GPG_TTY=$(tty)
|
||||
gpg-connect-agent updatestartuptty /bye >/dev/null
|
||||
|
||||
PS1='\u@\h:\w> '
|
2
arch-user/config/bemenu/config.sh
Normal file
2
arch-user/config/bemenu/config.sh
Normal file
@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
export BEMENU_OPTS="--ignorecase --width-factor 0.5 --fn \"Roboto Mono 14\" --list 500 --border 1 --scrollbar autohide --bdr #9988ff --nb #0d1117d9 --ab #0d1117d9"
|
255
arch-user/config/foot/foot.ini
Normal file
255
arch-user/config/foot/foot.ini
Normal file
@ -0,0 +1,255 @@
|
||||
# -*- conf -*-
|
||||
|
||||
# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
|
||||
# term=foot (or xterm-256color if built with -Dterminfo=disabled)
|
||||
# login-shell=no
|
||||
|
||||
# app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode
|
||||
# title=foot
|
||||
# locked-title=no
|
||||
font=Roboto Mono:size=12
|
||||
# font-bold=<bold variant of regular font>
|
||||
# font-italic=<italic variant of regular font>
|
||||
# font-bold-italic=<bold+italic variant of regular font>
|
||||
# font-size-adjustment=0.5
|
||||
# line-height=<font metrics>
|
||||
# letter-spacing=0
|
||||
# horizontal-letter-offset=0
|
||||
# vertical-letter-offset=0
|
||||
# underline-offset=<font metrics>
|
||||
# underline-thickness=<font underline thickness>
|
||||
# strikeout-thickness=<font strikeout thickness>
|
||||
# box-drawings-uses-font-glyphs=no
|
||||
# dpi-aware=no
|
||||
|
||||
# initial-window-size-pixels=700x500 # Or,
|
||||
# initial-window-size-chars=<COLSxROWS>
|
||||
# initial-window-mode=windowed
|
||||
# pad=0x0 # optionally append 'center'
|
||||
# resize-by-cells=yes
|
||||
# resize-keep-grid=yes
|
||||
# resize-delay-ms=100
|
||||
|
||||
# bold-text-in-bright=no
|
||||
# word-delimiters=,│`|:"'()[]{}<>
|
||||
# selection-target=primary
|
||||
# workers=<number of logical CPUs>
|
||||
# utmp-helper=/usr/lib/utempter/utempter # When utmp backend is ‘libutempter’ (Linux)
|
||||
# utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ‘ulog’ (FreeBSD)
|
||||
|
||||
[environment]
|
||||
# name=value
|
||||
|
||||
[bell]
|
||||
# urgent=no
|
||||
# notify=no
|
||||
# visual=no
|
||||
# command=
|
||||
# command-focused=no
|
||||
|
||||
[desktop-notifications]
|
||||
# command=notify-send --wait --app-name ${app-id} --icon ${app-id} --category ${category} --urgency ${urgency} --expire-time ${expire-time} --hint STRING:image-path:${icon} --hint BOOLEAN:suppress-sound:${muted} --hint STRING:sound-name:${sound-name} --replace-id ${replace-id} ${action-argument} --print-id -- ${title} ${body}
|
||||
# command-action-argument=--action ${action-name}=${action-label}
|
||||
# close=""
|
||||
# inhibit-when-focused=yes
|
||||
|
||||
|
||||
[scrollback]
|
||||
# lines=1000
|
||||
# multiplier=3.0
|
||||
# indicator-position=relative
|
||||
# indicator-format=""
|
||||
|
||||
[url]
|
||||
# launch=xdg-open ${url}
|
||||
# label-letters=sadfjklewcmpgh
|
||||
# osc8-underline=url-mode
|
||||
# protocols=http, https, ftp, ftps, file, gemini, gopher
|
||||
# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
|
||||
|
||||
[cursor]
|
||||
# style=block
|
||||
# color=<inverse foreground/background>
|
||||
# blink=no
|
||||
# blink-rate=500
|
||||
# beam-thickness=1.5
|
||||
# underline-thickness=<font underline thickness>
|
||||
|
||||
[mouse]
|
||||
# hide-when-typing=no
|
||||
# alternate-scroll-mode=yes
|
||||
|
||||
[touch]
|
||||
# long-press-delay=400
|
||||
|
||||
[colors]
|
||||
# alpha=1.0
|
||||
background=0d1117
|
||||
# foreground=ffffff
|
||||
# flash=7f7f00
|
||||
# flash-alpha=0.5
|
||||
|
||||
## Normal/regular colors (color palette 0-7)
|
||||
# regular0=242424 # black
|
||||
# regular1=f62b5a # red
|
||||
# regular2=47b413 # green
|
||||
# regular3=e3c401 # yellow
|
||||
# regular4=24acd4 # blue
|
||||
# regular5=f2affd # magenta
|
||||
# regular6=13c299 # cyan
|
||||
# regular7=e6e6e6 # white
|
||||
|
||||
## Bright colors (color palette 8-15)
|
||||
# bright0=616161 # bright black
|
||||
# bright1=ff4d51 # bright red
|
||||
# bright2=35d450 # bright green
|
||||
# bright3=e9e836 # bright yellow
|
||||
# bright4=5dc5f8 # bright blue
|
||||
# bright5=feabf2 # bright magenta
|
||||
# bright6=24dfc4 # bright cyan
|
||||
# bright7=ffffff # bright white
|
||||
|
||||
## dimmed colors (see foot.ini(5) man page)
|
||||
# dim0=<not set>
|
||||
# ...
|
||||
# dim7=<not-set>
|
||||
|
||||
## The remaining 256-color palette
|
||||
# 16 = <256-color palette #16>
|
||||
# ...
|
||||
# 255 = <256-color palette #255>
|
||||
|
||||
## Sixel colors
|
||||
# sixel0 = 000000
|
||||
# sixel1 = 3333cc
|
||||
# sixel2 = cc2121
|
||||
# sixel3 = 33cc33
|
||||
# sixel4 = cc33cc
|
||||
# sixel5 = 33cccc
|
||||
# sixel6 = cccc33
|
||||
# sixel7 = 878787
|
||||
# sixel8 = 424242
|
||||
# sixel9 = 545499
|
||||
# sixel10 = 994242
|
||||
# sixel11 = 549954
|
||||
# sixel12 = 995499
|
||||
# sixel13 = 549999
|
||||
# sixel14 = 999954
|
||||
# sixel15 = cccccc
|
||||
|
||||
## Misc colors
|
||||
# selection-foreground=<inverse foreground/background>
|
||||
# selection-background=<inverse foreground/background>
|
||||
# jump-labels=<regular0> <regular3> # black-on-yellow
|
||||
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
|
||||
# search-box-no-match=<regular0> <regular1> # black-on-red
|
||||
# search-box-match=<regular0> <regular3> # black-on-yellow
|
||||
# urls=<regular3>
|
||||
|
||||
[csd]
|
||||
# preferred=server
|
||||
# size=26
|
||||
# font=<primary font>
|
||||
# color=<foreground color>
|
||||
# hide-when-maximized=no
|
||||
# double-click-to-maximize=yes
|
||||
# border-width=0
|
||||
# border-color=<csd.color>
|
||||
# button-width=26
|
||||
# button-color=<background color>
|
||||
# button-minimize-color=<regular4>
|
||||
# button-maximize-color=<regular2>
|
||||
# button-close-color=<regular1>
|
||||
|
||||
[key-bindings]
|
||||
# scrollback-up-page=Shift+Page_Up
|
||||
# scrollback-up-half-page=none
|
||||
# scrollback-up-line=none
|
||||
# scrollback-down-page=Shift+Page_Down
|
||||
# scrollback-down-half-page=none
|
||||
# scrollback-down-line=none
|
||||
# scrollback-home=none
|
||||
# scrollback-end=none
|
||||
# clipboard-copy=Control+Shift+c XF86Copy
|
||||
# clipboard-paste=Control+Shift+v XF86Paste
|
||||
# primary-paste=Shift+Insert
|
||||
# search-start=Control+Shift+r
|
||||
# font-increase=Control+plus Control+equal Control+KP_Add
|
||||
# font-decrease=Control+minus Control+KP_Subtract
|
||||
# font-reset=Control+0 Control+KP_0
|
||||
# spawn-terminal=Control+Shift+n
|
||||
# minimize=none
|
||||
# maximize=none
|
||||
# fullscreen=none
|
||||
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
||||
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
||||
# pipe-selected=[xargs -r firefox] none
|
||||
# pipe-command-output=[wl-copy] none # Copy last command's output to the clipboard
|
||||
# show-urls-launch=Control+Shift+o
|
||||
# show-urls-copy=none
|
||||
# show-urls-persistent=none
|
||||
# prompt-prev=Control+Shift+z
|
||||
# prompt-next=Control+Shift+x
|
||||
# unicode-input=Control+Shift+u
|
||||
# noop=none
|
||||
|
||||
[search-bindings]
|
||||
# cancel=Control+g Control+c Escape
|
||||
# commit=Return
|
||||
# find-prev=Control+r
|
||||
# find-next=Control+s
|
||||
# cursor-left=Left Control+b
|
||||
# cursor-left-word=Control+Left Mod1+b
|
||||
# cursor-right=Right Control+f
|
||||
# cursor-right-word=Control+Right Mod1+f
|
||||
# cursor-home=Home Control+a
|
||||
# cursor-end=End Control+e
|
||||
# delete-prev=BackSpace
|
||||
# delete-prev-word=Mod1+BackSpace Control+BackSpace
|
||||
# delete-next=Delete
|
||||
# delete-next-word=Mod1+d Control+Delete
|
||||
# extend-char=Shift+Right
|
||||
# extend-to-word-boundary=Control+w Control+Shift+Right
|
||||
# extend-to-next-whitespace=Control+Shift+w
|
||||
# extend-line-down=Shift+Down
|
||||
# extend-backward-char=Shift+Left
|
||||
# extend-backward-to-word-boundary=Control+Shift+Left
|
||||
# extend-backward-to-next-whitespace=none
|
||||
# extend-line-up=Shift+Up
|
||||
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
|
||||
# primary-paste=Shift+Insert
|
||||
# unicode-input=none
|
||||
# quit=none
|
||||
# scrollback-up-page=Shift+Page_Up
|
||||
# scrollback-up-half-page=none
|
||||
# scrollback-up-line=none
|
||||
# scrollback-down-page=Shift+Page_Down
|
||||
# scrollback-down-half-page=none
|
||||
# scrollback-down-line=none
|
||||
# scrollback-home=none
|
||||
# scrollback-end=none
|
||||
|
||||
[url-bindings]
|
||||
# cancel=Control+g Control+c Control+d Escape
|
||||
# toggle-url-visible=t
|
||||
|
||||
[text-bindings]
|
||||
# \x03=Mod4+c # Map Super+c -> Ctrl+c
|
||||
|
||||
[mouse-bindings]
|
||||
# scrollback-up-mouse=BTN_WHEEL_BACK
|
||||
# scrollback-down-mouse=BTN_WHEEL_FORWARD
|
||||
# font-increase=Control+BTN_WHEEL_BACK
|
||||
# font-decrease=Control+BTN_WHEEL_FORWARD
|
||||
# selection-override-modifiers=Shift
|
||||
# primary-paste=BTN_MIDDLE
|
||||
# select-begin=BTN_LEFT
|
||||
# select-begin-block=Control+BTN_LEFT
|
||||
# select-extend=BTN_RIGHT
|
||||
# select-extend-character-wise=Control+BTN_RIGHT
|
||||
# select-word=BTN_LEFT-2
|
||||
# select-word-whitespace=Control+BTN_LEFT-2
|
||||
# select-quote = BTN_LEFT-3
|
||||
# select-row=BTN_LEFT-4
|
||||
|
||||
# vim: ft=dosini
|
7
arch-user/config/git/config
Normal file
7
arch-user/config/git/config
Normal file
@ -0,0 +1,7 @@
|
||||
[user]
|
||||
email = yuri@yrz.am
|
||||
name = Yuri Zamyatin
|
||||
[init]
|
||||
defaultBranch = main
|
||||
[pull]
|
||||
rebase = false
|
12
arch-user/config/i3blocks/battery
Executable file
12
arch-user/config/i3blocks/battery
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -- /sys/class/power_supply/*/capacity;
|
||||
read cap < "$1"
|
||||
read st < "/sys/class/power_supply/ACAD/online" || true
|
||||
|
||||
if [ "$st" = "1" ]; then
|
||||
echo "⚡$cap▴"
|
||||
else
|
||||
echo "⚡$cap▾"
|
||||
[ "$cap" -lt "15" ] && exit 33
|
||||
fi
|
10
arch-user/config/i3blocks/config
Normal file
10
arch-user/config/i3blocks/config
Normal file
@ -0,0 +1,10 @@
|
||||
separator_block_width=15
|
||||
|
||||
[batterybar]
|
||||
command=~/.config/i3blocks/battery
|
||||
interval=10
|
||||
|
||||
[time]
|
||||
command=date +"%Y-%m-%dT%H:%M:%SZ"
|
||||
interval=1
|
||||
|
4
arch-user/config/profile
Normal file
4
arch-user/config/profile
Normal file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
export SESSION_START_COMMAND=sway
|
||||
export PATH=$PATH:~/scripts
|
98
arch-user/config/sway/config.tmpl
Normal file
98
arch-user/config/sway/config.tmpl
Normal file
@ -0,0 +1,98 @@
|
||||
# vim: filetype=swayconfig
|
||||
|
||||
set $mod Mod4
|
||||
set $left n
|
||||
set $down e
|
||||
set $up i
|
||||
set $right o
|
||||
|
||||
################ inputs ####################
|
||||
input "type:keyboard" {
|
||||
xkb_layout us(colemak_yz),us(basic),ru
|
||||
}
|
||||
bindsym $mod+0 input "type:keyboard" xkb_switch_layout next
|
||||
input "type:touchpad" {
|
||||
dwt enabled
|
||||
tap enabled
|
||||
natural_scroll enabled
|
||||
middle_emulation enabled
|
||||
}
|
||||
############################################
|
||||
|
||||
############### workspaces #################
|
||||
bindsym --to-code $mod+x workspace x
|
||||
bindsym --to-code $mod+c workspace c
|
||||
bindsym --to-code $mod+d workspace d
|
||||
bindsym --to-code $mod+v workspace v
|
||||
bindsym --to-code $mod+z workspace z
|
||||
bindsym --to-code $mod+k workspace k
|
||||
bindsym --to-code $mod+h workspace h
|
||||
bindsym --to-code $mod+Control+x move container to workspace x
|
||||
bindsym --to-code $mod+Control+c move container to workspace c
|
||||
bindsym --to-code $mod+Control+d move container to workspace d
|
||||
bindsym --to-code $mod+Control+v move container to workspace v
|
||||
bindsym --to-code $mod+Control+z move container to workspace z
|
||||
bindsym --to-code $mod+Control+k move container to workspace k
|
||||
bindsym --to-code $mod+Control+h move container to workspace h
|
||||
bindgesture swipe:right workspace prev
|
||||
bindgesture swipe:left workspace next
|
||||
############################################
|
||||
|
||||
############### containers #################
|
||||
bindsym --to-code $mod+$left focus left
|
||||
bindsym --to-code $mod+$down focus down
|
||||
bindsym --to-code $mod+$up focus up
|
||||
bindsym --to-code $mod+$right focus right
|
||||
bindsym --to-code $mod+Control+$left move left
|
||||
bindsym --to-code $mod+Control+$down move down
|
||||
bindsym --to-code $mod+Control+$up move up
|
||||
bindsym --to-code $mod+Control+$right move right
|
||||
bindsym --to-code $mod+r mode "resize"
|
||||
mode "resize" {
|
||||
bindsym $left resize shrink width 5ppt
|
||||
bindsym $down resize grow height 5ppt
|
||||
bindsym $up resize shrink height 5ppt
|
||||
bindsym $right resize grow width 5ppt
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym --to-code $mod+f fullscreen
|
||||
|
||||
floating_modifier $mod normal
|
||||
bindsym --to-code $mod+b splith
|
||||
bindsym --to-code $mod+m splitv
|
||||
bindsym --to-code $mod+s layout stacking
|
||||
bindsym --to-code $mod+w layout tabbed
|
||||
bindsym --to-code $mod+9 layout toggle split
|
||||
bindsym --to-code $mod+a focus parent
|
||||
bindsym --to-code $mod+Shift+minus move scratchpad
|
||||
bindsym --to-code $mod+minus scratchpad show
|
||||
############################################
|
||||
|
||||
################ styles ####################
|
||||
default_border pixel 1
|
||||
output * bg #$THEME_COLOR_BG solid_color
|
||||
client.focused #$THEME_COLOR_BG_ACCENT_LIGHT #$THEME_COLOR_BG_ACCENT_LIGHT #$THEME_COLOR_BG_ACCENT_LIGHT
|
||||
############################################
|
||||
|
||||
################## bar #####################
|
||||
bar {
|
||||
position top
|
||||
font "Roboto Mono 12"
|
||||
status_command i3blocks
|
||||
colors {
|
||||
statusline #$THEME_COLOR_FG
|
||||
background #$THEME_COLOR_BG
|
||||
focused_workspace #$THEME_COLOR_BG_ACCENT_LIGHT #$THEME_COLOR_BG_ACCENT_LIGHT #$THEME_COLOR_FG
|
||||
inactive_workspace #$THEME_COLOR_BG_ACCENT_DARK #$THEME_COLOR_BG_ACCENT_DARK #$THEME_COLOR_FG
|
||||
}
|
||||
}
|
||||
###########################################
|
||||
|
||||
################ scripts ##################
|
||||
bindsym --to-code $mod+Escape kill
|
||||
bindsym --to-code $mod+Control+r reload
|
||||
bindsym --to-code $mod+Return exec foot
|
||||
bindsym --to-code $mod+Space exec run.sh
|
||||
###########################################
|
||||
|
||||
exec foot -s
|
10
arch-user/config/theme.sh
Normal file
10
arch-user/config/theme.sh
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
export THEME_COLOR_FG=ffffff # main text
|
||||
export THEME_COLOR_FG_DARK=b8bcc1 # secondary text
|
||||
export THEME_COLOR_FG_ACCENT=9988ff # highlighted text, scrollbars (low-mid transp)
|
||||
export THEME_COLOR_BG=0d1117 # base bg
|
||||
export THEME_COLOR_BG_ACCENT_LIGHT=510079 # highlighted alt bg, borders
|
||||
export THEME_COLOR_BG_ACCENT_DARK=020030 # alt bg
|
||||
export THEME_OPACITY_LOW=0.2
|
||||
export THEME_OPACITY_MID=0.55
|
||||
export THEME_OPACITY_HIGH=0.85
|
23
arch-user/config/vim/vimrc
Normal file
23
arch-user/config/vim/vimrc
Normal file
@ -0,0 +1,23 @@
|
||||
" Don't try to be vi compatible
|
||||
set nocompatible
|
||||
|
||||
" Show matching brackets when text indicator is over them
|
||||
set showmatch
|
||||
|
||||
" Turn on syntax highlighting
|
||||
syntax on
|
||||
|
||||
" Highlight search results
|
||||
set hlsearch
|
||||
|
||||
" Search while typing
|
||||
set incsearch
|
||||
|
||||
" Show line numbers
|
||||
set number
|
||||
|
||||
" Show file stats
|
||||
set ruler
|
||||
|
||||
" W - Save file as superuser
|
||||
command! W execute 'w !sudo tee % > /dev/null' <bar> edit!
|
31
arch-user/config/xkb/symbols/us
Normal file
31
arch-user/config/xkb/symbols/us
Normal file
@ -0,0 +1,31 @@
|
||||
xkb_symbols "colemak_yz" {
|
||||
|
||||
include "us(colemak_dh)"
|
||||
|
||||
# functional
|
||||
key.type = "ONE_LEVEL";
|
||||
replace key <CAPS> { [ BackSpace ] };
|
||||
replace key <RALT> { [ Escape ] };
|
||||
|
||||
# modifiers
|
||||
key.type = "ONE_LEVEL";
|
||||
replace key <RTSH> { [ Control_L ] };
|
||||
modifier_map Control { <RTSH> };
|
||||
replace key <LCTL> { [ Super_L ] };
|
||||
modifier_map Mod4 { <LCTL> };
|
||||
replace key <LALT> { [ ISO_Level3_Shift ] };
|
||||
modifier_map Mod3 { <LALT> };
|
||||
replace key <RCTL> { [ Alt_L ] };
|
||||
modifier_map Mod1 { <RCTL> };
|
||||
|
||||
# layer3
|
||||
# TODO: migrate to type=ALPHANUMERIC
|
||||
# This would fix caps lock which i dont use anyway
|
||||
key.type = "FOUR_LEVEL";
|
||||
# navigation
|
||||
key <AC07> { [ n, N, Left, eacute] };
|
||||
key <AC08> { [ e, E, Down, eacute ] };
|
||||
key <AC09> { [ i, I, Up, iacute ] };
|
||||
key <AC10> { [ o, O, Right, oacute ] };
|
||||
|
||||
};
|
40
arch-user/install.sh
Normal file
40
arch-user/install.sh
Normal file
@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
cd "$(dirname "$0")"
|
||||
umask 002
|
||||
|
||||
########## scripts #############
|
||||
cp -rf scripts/* ~/scripts
|
||||
################################
|
||||
|
||||
########### config #############
|
||||
source config/theme.sh
|
||||
VARS=$(printenv | \
|
||||
grep -E 'THEME_.*' | \
|
||||
sed -e 's/[= ].*//g' | sed -e 's/^/\$/' | tr '\n' ' '
|
||||
)
|
||||
cp_subst() {
|
||||
mkdir -p "$(dirname "$2")"
|
||||
envsubst "$VARS" < "$1" > "$2"
|
||||
}
|
||||
|
||||
# simple
|
||||
cp -rf config/foot ~/.config
|
||||
cp -rf config/i3blocks ~/.config
|
||||
cp -rf config/git ~/.config
|
||||
cp -rf config/vim ~/.config
|
||||
cp -rf config/xkb ~/.config
|
||||
|
||||
# non-xdg
|
||||
cp -rf config/bash/bashrc ~/.bashrc
|
||||
|
||||
# templated
|
||||
cp_subst config/sway/config.tmpl ~/.config/sway/config
|
||||
|
||||
# dynamic
|
||||
cp -rf config/profile ~/.profile
|
||||
cat config/bemenu/config.sh >> ~/.profile
|
||||
cat config/theme.sh >> ~/.profile
|
||||
################################
|
||||
|
||||
swaymsg reload
|
12
arch-user/scripts/current-font-glyphs.sh
Executable file
12
arch-user/scripts/current-font-glyphs.sh
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
for range in $(fc-match --format='%{charset}\n' "$1"); do
|
||||
for n in $(seq "0x${range%-*}" "0x${range#*-}"); do
|
||||
printf "%04x\n" "$n"
|
||||
done
|
||||
done | while read -r n_hex; do
|
||||
count=$((count + 1))
|
||||
printf "%-5s\U$n_hex\t" "$n_hex"
|
||||
[ $((count % 10)) = 0 ] && printf "\n"
|
||||
done
|
||||
printf "\n"
|
||||
|
18
arch-user/scripts/gpg-reencrypt-to-sym.sh
Executable file
18
arch-user/scripts/gpg-reencrypt-to-sym.sh
Executable file
@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
if [ -z "$1" ] || [ -z "$2" ]; then
|
||||
echo "bad args" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DEST=$(realpath "$2")
|
||||
cd "$1"
|
||||
mkdir -p DEST
|
||||
|
||||
for rel in $(find . -type f -name *.gpg); do
|
||||
DESTFILE=$(echo $DEST/$rel | sed 's/\.[^.]*$//')
|
||||
[ -f "$DESTFILE" ] && continue
|
||||
mkdir -p "$(dirname "$DESTFILE")"
|
||||
gpg --output "$DESTFILE" --decrypt "$rel"
|
||||
done
|
65
arch-user/scripts/run.sh
Executable file
65
arch-user/scripts/run.sh
Executable file
@ -0,0 +1,65 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ "$USER" = "yrzam" ]; then
|
||||
WEB="\
|
||||
web projects
|
||||
web life\
|
||||
"
|
||||
else
|
||||
WEB=web
|
||||
fi
|
||||
|
||||
LIST="\
|
||||
term
|
||||
$WEB
|
||||
vifm
|
||||
vim
|
||||
gimp
|
||||
htop
|
||||
man
|
||||
sway reload
|
||||
logout
|
||||
poweroff
|
||||
reboot\
|
||||
"
|
||||
|
||||
out=$(bemenu --prompt "" << EOF
|
||||
$LIST
|
||||
EOF
|
||||
)
|
||||
|
||||
conf() {
|
||||
echo yes | bemenu --prompt "sure?"
|
||||
}
|
||||
|
||||
case "$out " in
|
||||
" ");;
|
||||
"web "*)
|
||||
profile="${out##* }"
|
||||
if [ "$profile" != "web" ]; then
|
||||
exec firefox -P "$profile"
|
||||
else
|
||||
exec firefox
|
||||
fi;;
|
||||
"man ")
|
||||
page="$(man -k . | bemenu --prompt "man" | awk '{print $1}')"
|
||||
[ -n "$page" ] && exec footclient man "$page";;
|
||||
"logout ")
|
||||
conf && swaymsg exit;;
|
||||
"poweroff "|"reboot ")
|
||||
conf && exec systemctl "$out";;
|
||||
"sway reload ")
|
||||
exec $out;;
|
||||
# term session
|
||||
"term ")
|
||||
exec footclient -D ~/;;
|
||||
# term exec pure
|
||||
"man "*|"htop ")
|
||||
exec footclient -D ~/ "$out";;
|
||||
# term exec in shell
|
||||
"vifm "*|"vim "*)
|
||||
exec footclient -D ~/ "$SHELL" -c "$out";;
|
||||
#term exec in shell and wait
|
||||
*)
|
||||
exec footclient -D ~/ "$SHELL" -c "$out; read -n1";;
|
||||
esac
|
2
arch-user/scripts/uninstall_orphans.sh
Executable file
2
arch-user/scripts/uninstall_orphans.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
pacman -Qdttq | sudo pacman -Rns -
|
17
deb-vps-docker/install.sh
Normal file
17
deb-vps-docker/install.sh
Normal file
@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# packages
|
||||
echo \
|
||||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
|
||||
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
|
||||
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
sudo apt install gnupg docker-ce
|
||||
|
||||
# keys
|
||||
curl https://yrz.am/gpg | gpg --import
|
||||
|
||||
# files
|
||||
mkdir -p ~/app
|
||||
touch ~/app/docker-compose.yaml
|
Loading…
Reference in New Issue
Block a user