diff options
| author | tslil clingman <> | 2022-04-06 16:20:11 -0400 |
|---|---|---|
| committer | tslil clingman <> | 2022-04-06 16:20:11 -0400 |
| commit | 4af79f764d31692ce5146f5c9a00355c3b35f654 (patch) | |
| tree | 28d657b7f648c376deecb7bcf6ca4dba2dc7779c | |
| parent | c5224d827b34b9f63b5028d8ab4730cdf0b182b6 (diff) | |
| parent | 0b4aa5db57f3572feb97cadc61db3f69665989c8 (diff) | |
Merge branch 'master' of git.sr.ht:~tslil/dotfiles
| -rw-r--r-- | .mkshrc | 61 | ||||
| -rw-r--r-- | .tmux.conf | 6 | ||||
| -rw-r--r-- | foot.ini | 28 | ||||
| -rw-r--r-- | kakrc | 31 | ||||
| -rw-r--r-- | kiss.profile | 65 | ||||
| -rw-r--r-- | sway/config | 198 | ||||
| -rwxr-xr-x | sway/inactive-windows-transparency.py | 69 | ||||
| -rwxr-xr-x | sway/sway | 6 | ||||
| -rwxr-xr-x | sway/sway_autolock | 12 | ||||
| -rwxr-xr-x | sway/sway_outputs | 9 | ||||
| -rwxr-xr-x | sway/sway_stats | 12 | ||||
| -rwxr-xr-x | sway/sway_workspace | 4 |
12 files changed, 466 insertions, 35 deletions
@@ -1,39 +1,31 @@ -export EDITOR=zile +export EDITOR=kak export HISTFILE=$HOME/.histfile export HISTSIZE=8192 -export LANGUAGE="en_GB.UTF-8" -export PATH=$HOME/bin:$HOME/.local/bin:$PATH -export SUDO_EDITOR=zile -export TERMINAL=st -export VISUAL=emacs -export TEXMFHOME=$HOME/.local/share/texlive +#export TEXMFHOME=$HOME/.local/share/texlive -export BROWSER=firefox-esr export XDG_DESKTOP_DIR=$HOME -export XDG_DOCUMENTS_DIR=$HOME/store -export XDG_DOWLOAD_DIR=$HOME/store -export XDG_MUSIC_DIR=$HOME/store/music -export XDG_PICTURES_DIR=$HOME/picutures -export XDG_PUBLICSHARE_DIR=$HOME/public -export XDG_TEMPLATES_DIR=$HOME/store/templates -export XDG_VIDEOS_DIR=$HOME/store/videos - -export LESS="-S -R" -export LESSCHARSET=utf-8 -export LESSHISTFILE="-" - -export CATHISTFILE="-" - -LS_COLORS='rs=0:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:'; -export LS_COLORS +export XDG_DOCUMENTS_DIR=$HOME/store/ +export XDG_DOWLOAD_DIR=$HOME/store/downloads/ +export XDG_MUSIC_DIR=$HOME/store/music/ +export XDG_PICTURES_DIR=$HOME/store/picutures/ +export XDG_PUBLICSHARE_DIR=$HOME/store/public +export XDG_TEMPLATES_DIR=$HOME/store/templates/ +export XDG_VIDEOS_DIR=$HOME/store/videos/ PS1='${ local e=$?; local r=""; (( $e )) && r="<$e>"; - local p=$(echo ${PWD:-?} | sed "s#.*/\(.*\)/\(.*\)#\1/\2#"); # s#$HOME#~# #${PWD##*/} + local p=$(echo ${PWD:-?} | sed "s#$HOME#~#;s#.*/\(.*\)/\(.*\)#\1/\2#"); #${PWD##*/} local d=$(date +"%H.%M"); local v=$(vcs); local u=#; (( $USER_ID )) && u=\$; - echo -n "[$(hostname):$p]($d)$r$v$u "; + echo -n "[$p]($d)$r$v$u "; + # Display PWD + case ${TERM} in + foot*|st*|xterm*|rxvt*|Eterm|aterm|kterm|gnome*|alacritty) + printf "\033]0;%s:%s\007" "${USER}" "${PWD/#$HOME/\~}";; + screen*) + printf "\033_%s:%s\033\\" "${USER}" "${PWD/#$HOME/\~}";; + esac return $e }' PS4='[$EPOCHREALTIME]' @@ -42,7 +34,6 @@ alias rm='rm -i' alias ls='ls --group-directories-first -vhF --color=always' alias hh='cd $HOME' alias bk='cd $OLDPWD' -alias t=tmux #alias t="date +%H\ %M\ %S | dc -e '6k???86400/r1440/+r24/+p'" alias ..='cd ..' @@ -54,7 +45,11 @@ alias ......='cd ../../../../..' alias lower="tr '[:upper:]' '[:lower:]'" alias upper="tr '[:lower:]' '[:upper:]'" alias rot13="tr abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM" -alias weather="wget -O - wttr.in/Baltimore?m | less" +alias weather="curl -s wttr.in/Baltimore?m | less" + +alias vpn_up='doas wg-quick up us-va1' +alias vpn_down='doas wg-quick down us-va1' +alias vpn_check='curl -s https://www.ivpn.net | grep "span class=\"label\"" | cut -d\> -f2' mvf() { mv $*; cd $_ ;} c() { echo 'scale=13;' $* | bc -l; } @@ -63,13 +58,13 @@ hd() { hexdump -e '"%08.8_ax " 8/1 "%02X " " - " 8/1 "%02X "' -e '" |" "%_p"' mkpw() { cat /dev/urandom | tr -dc "[:print:]" | fold -w `[[ "$2" == "" ]] && echo 16 || echo $2` | head -n `[[ "$1" == "" ]] && echo 1 || echo "$1"` ;} stty -ixon -umask 077 set -o emacs set -o utf8-mode -eval $(keychain --eval --systemd -q) +source $HOME/.ssh-agent +export GPG_TTY=$(tty) -if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" == "1" ] ; then - startx -- -keeptty -fi; +#if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" == "1" ] ; then +# startx -- -keeptty +#fi; @@ -1,6 +1,8 @@ set -g default-command "${SHELL}" -set -g default-terminal "screen-256color" +set -g default-terminal "tmux-256color" +set -ga terminal-overrides ",foot:Tc" +set -sg escape-time 25 set -g set-titles on set -g set-titles-string "#T" @@ -12,7 +14,7 @@ setw -g window-status-format "#[fg=black]#[bg=#DAEFEF] #I #W " setw -g window-status-current-format "#[fg=black]#[bg=#8888CC] * #[bg=#EAEA9E] #W " set -g status-left "" -set -g status-right "#[fg=black][ %y.%m.%d %Hh%M ]" +set -g status-right "#[fg=black][#(battery)] [%y.%m.%d %Hh%M]" unbind C-t unbind C-b diff --git a/foot.ini b/foot.ini new file mode 100644 index 0000000..75dfb91 --- /dev/null +++ b/foot.ini @@ -0,0 +1,28 @@ +font=Iosevka:size=12 +dpi-aware=auto + +# Dracula + +[cursor] +color=282a36 f8f8f2 + +[colors] +alpha=1.0 +foreground=f8f8f2 +background=282a36 +regular0=000000 # black +regular1=ff5555 # red +regular2=50fa7b # green +regular3=f1fa8c # yellow +regular4=bd93f9 # blue +regular5=ff79c6 # magenta +regular6=8be9fd # cyan +regular7=bfbfbf # white +bright0=4d4d4d # bright black +bright1=ff6e67 # bright red +bright2=5af78e # bright green +bright3=f4f99d # bright yellow +bright4=caa9fa # bright blue +bright5=ff92d0 # bright magenta +bright6=9aedfe # bright cyan +bright7=e6e6e6 # bright white @@ -0,0 +1,31 @@ +#colorscheme gruvbox-dark +colorscheme dracula + +set-option global startup_info_version 9999999999 +set-option global ui_options terminal_assistant=dilbert +#set-option -add global autoinfo normal + +set-option global indentwidth 4 +set-option global tabstop 4 + +add-highlighter global/ show-matching + +map global normal <a-v> "k <a-j> ge" + +hook global WinCreate .* %{ + add-highlighter buffer/line-numbers number-lines -hlcursor + add-highlighter buffer/eighty-columns column 80 default,rgb:301040 + add-highlighter buffer/whitespace regex '\h+$' 0:default,red + add-highlighter buffer/brackets show-matching + add-highlighter buffer/todo regex \b(TODO|FIXME|XXX|NOTE)\b 0:default+rb + + smarttab + #indentguide-enable + #indentguide-refresh-continuous + #mark-show-enable +} + +source "%val{config}/plugins/plug.kak/rc/plug.kak" +plug "andreyorst/plug.kak" noload + +plug "andreyorst/smarttab.kak" diff --git a/kiss.profile b/kiss.profile new file mode 100644 index 0000000..a24d660 --- /dev/null +++ b/kiss.profile @@ -0,0 +1,65 @@ +# ----------------------------------------------------------------------------- +# Language +export LANG=en_US.UTF-8 +export LC_ALL=en_US.UTF-8 +# export TZ="EST+5EDT,M3.2.0/2,M11.1.0/2" + +# Kiss environment variables +export KISS_PATH="" +export KISS_HOOK="" +export KISS_COMPRESS="zst" + +for repo in community disks games overrides sound wayland; do + KISS_PATH="$KISS_PATH:$HOME/repositories/my-kiss/$repo" +done + +KISS_PATH="$KISS_PATH:$HOME/repositories/tex/extra" +KISS_PATH="$KISS_PATH:$HOME/repositories/tex/texlive" +KISS_HOOK="$HOME/repositories/tex/kiss-tex-hook" + +KISS_PATH="$KISS_PATH:$HOME/repositories/official/core" +KISS_PATH="$KISS_PATH:$HOME/repositories/official/extra" +KISS_PATH="$KISS_PATH:$HOME/repositories/official/wayland" + +KISS_PATH="$KISS_PATH:$HOME/repositories/community/community" +KISS_PATH="$KISS_PATH:$HOME/repositories/featyre/community" +KISS_PATH="$KISS_PATH:$HOME/repositories/ioraff/dbus/" +KISS_PATH="$KISS_PATH:$HOME/repositories/kiss-bloat/community" +KISS_PATH="$KISS_PATH:$HOME/repositories/noocsharp" + +export CFLAGS="-O3 -pipe -march=native" +export CXXFLAGS="$CFLAGS" +export MAKEFLAGS="-j2" +export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw" +export CMAKE_BUILD_PARALLEL_LEVEL=2 +export PATH="/usr/lib/ccache/bin:$PATH" + +export KISS_SU=ssu + +# ----------------------------------------------------------------------------- +# Wayland stuff +export SDL_VIDEODRIVER=wayland +export XDG_RUNTIME_DIR="/run/user/$(id -u)" +export MESA_LOADER_DRIVER_OVERRIDE=crocus + +# ----------------------------------------------------------------------------- +# Misc +PATH="$HOME/.cargo/bin/:$HOME/.local/bin/:$PATH" +# umask 077 + +# ----------------------------------------------------------------------------- +# SSH +if [ ! -f "$HOME/.ssh-agent" ]; then + ssh-agent | grep -v echo > $HOME/.ssh-agent + source $HOME/.ssh-agent +else + source "$HOME/.ssh-agent" + if [ -n "$(ps | grep $SSH_AGENT_PID)" ]; then + ssh-agent | grep -v echo > $HOME/.ssh-agent + source $HOME/.ssh-agent + fi +fi + +# ----------------------------------------------------------------------------- +# Greet +pfetch diff --git a/sway/config b/sway/config new file mode 100644 index 0000000..255f97a --- /dev/null +++ b/sway/config @@ -0,0 +1,198 @@ +# Read `man 5 sway` for a complete reference. + +### Keyboard layout + +input "1:1:AT_Translated_Set_2_keyboard" { + xkb_model pc105aw-sl + xkb_layout "us(cmk_ed_dh)" + xkb_options "caps:ctrl_modifier" +} + +### Variables +set $mod Mod4 + +set $left n +set $down e +set $up i +set $right o + +set $term foot + +# Your preferred application launcher +# Note: pass the final command to swaymsg so that the resulting window can be opened +# on the original workspace that the command was run on. +set $menu bemenu-run | xargs swaymsg exec -- + +### Output configuration +# +# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) +# output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill +# + +### Visual stuff + +hide_edge_borders --i3 none +default_border none # pixel 1 + +client.focused #000000 #af4c00 #ffffff #2e9ef4 #AF4C00 + +### Key bindings +# +# Basics: +# + # Start a terminal + bindsym $mod+t exec $term + + # Kill focused window + bindsym $mod+Shift+k kill + + # Start your launcher + bindsym $mod+Space exec $menu + + # Time + bindsym $mod+Return exec sway_stats + + # Autolock + bindsym $mod+Shift+h exec sway_autolock + + # Drag floating windows by holding down $mod and left mouse button. + # Resize them with right mouse button + $mod. + # Despite the name, also works for non-floating windows. + # Change normal to inverse to use left mouse button for resizing and right + # mouse button for dragging. + floating_modifier $mod normal + + # Reload the configuration file + bindsym $mod+Control+Shift+c reload + + # Exit sway (logs you out of your Wayland session) + #bindsym $mod+Shift+Control+q exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit' + bindsym $mod+Shift+Control+q exec swaymsg exit +# +# Moving around: +# + # Move your focus around + bindsym $mod+$left focus left + bindsym $mod+$down focus down + bindsym $mod+$up focus up + bindsym $mod+$right focus right + # Or use $mod+[up|down|left|right] + bindsym $mod+Left focus left + bindsym $mod+Down focus down + bindsym $mod+Up focus up + bindsym $mod+Right focus right + + # Move the focused window with the same, but add Shift + bindsym $mod+Shift+$left move left + bindsym $mod+Shift+$down move down + bindsym $mod+Shift+$up move up + bindsym $mod+Shift+$right move right + # Ditto, with arrow keys + bindsym $mod+Shift+Left move left + bindsym $mod+Shift+Down move down + bindsym $mod+Shift+Up move up + bindsym $mod+Shift+Right move right +# +# Workspaces: +# + + bindsym $mod+tab workspace back_and_forth + # Switch to workspace + bindsym $mod+l exec sway_workspace 1 L + bindsym $mod+u exec sway_workspace 2 U + bindsym $mod+y exec sway_workspace 3 Y + bindsym $mod+semicolon exec sway_workspace 4 ";" + bindsym $mod+q exec sway_workspace 5 Q + bindsym $mod+w exec sway_workspace 6 W + bindsym $mod+f exec sway_workspace 7 F + bindsym $mod+p exec sway_workspace 8 P + bindsym $mod+b exec sway_workspace 9 B + # Move focused container to workspace + bindsym $mod+Shift+l move container to workspace number 1 + bindsym $mod+Shift+u move container to workspace number 2 + bindsym $mod+Shift+y move container to workspace number 3 + bindsym $mod+Shift+semicolon move container to workspace number 4 + bindsym $mod+Shift+q move container to workspace number 5 + bindsym $mod+Shift+w move container to workspace number 6 + bindsym $mod+Shift+f move container to workspace number 7 + bindsym $mod+Shift+p move container to workspace number 8 + bindsym $mod+Shift+b move container to workspace number 9 + # Note: workspaces can have any name you want, not just numbers. + # We just use 1-10 as the default. +# +# Layout stuff: +# + # You can "split" the current object of your focus with + # $mod+b or $mod+v, for horizontal and vertical splits + # respectively. + bindsym $mod+h splith + bindsym $mod+v splitv + + # Switch the current container between different layout styles + workspace_layout tabbed + bindsym $mod+a layout stacking + bindsym $mod+r layout tabbed + bindsym $mod+s layout toggle split + + # Make the current focus fullscreen + bindsym $mod+g fullscreen + + # Toggle the current focus between tiling and floating mode + bindsym $mod+d floating toggle + + # Swap focus between the tiling area and the floating area + bindsym $mod+Shift+d focus mode_toggle + + # Move focus to the parent container + bindsym $mod+comma focus parent +# +# Scratchpad: +# + # Sway has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. + + # Move the currently focused window to the scratchpad + bindsym $mod+Shift+minus move scratchpad + + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + bindsym $mod+minus scratchpad show +# +# Resizing containers: +# +mode "resize" { + # left will shrink the containers width + # right will grow the containers width + # up will shrink the containers height + # down will grow the containers height + bindsym $left resize shrink width 10px + bindsym $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px + + # Ditto, with arrow keys + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + # Return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+Shift+r mode "resize" + +# Status Bar: +# +# Read `man 5 sway-bar` for more information about this section. + +include /etc/sway/config.d/* + +exec inactive-windows-transparency.py --opacity 0.8 +exec wlsunset -l 39 -L -76 +exec fnott +exec pipewire +exec pipewire-pulse + +exec sway_outputs +exec foot diff --git a/sway/inactive-windows-transparency.py b/sway/inactive-windows-transparency.py new file mode 100755 index 0000000..b81134d --- /dev/null +++ b/sway/inactive-windows-transparency.py @@ -0,0 +1,69 @@ +#!/usr/bin/python + +# This script requires i3ipc-python package (install it from a system package manager +# or pip). +# It makes inactive windows transparent. Use `transparency_val` variable to control +# transparency strength in range of 0…1 or use the command line argument -o. + +import argparse +import i3ipc +import signal +import sys +from functools import partial + +def on_window_focus(inactive_opacity, ipc, event): + global prev_focused + global prev_workspace + + focused_workspace = ipc.get_tree().find_focused() + + if focused_workspace == None: + return + + focused = event.container + workspace = focused_workspace.workspace().num + + if focused.id != prev_focused.id: # https://github.com/swaywm/sway/issues/2859 + focused.command("opacity 1") + if workspace == prev_workspace: + prev_focused.command("opacity " + inactive_opacity) + prev_focused = focused + prev_workspace = workspace + + +def remove_opacity(ipc): + for workspace in ipc.get_tree().workspaces(): + for w in workspace: + w.command("opacity 1") + ipc.main_quit() + sys.exit(0) + + +if __name__ == "__main__": + transparency_val = "0.80" + + parser = argparse.ArgumentParser( + description="This script allows you to set the transparency of unfocused windows in sway." + ) + parser.add_argument( + "--opacity", + "-o", + type=str, + default=transparency_val, + help="set opacity value in range 0...1", + ) + args = parser.parse_args() + + ipc = i3ipc.Connection() + prev_focused = None + prev_workspace = ipc.get_tree().find_focused().workspace().num + + for window in ipc.get_tree(): + if window.focused: + prev_focused = window + else: + window.command("opacity " + args.opacity) + for sig in [signal.SIGINT, signal.SIGTERM]: + signal.signal(sig, lambda signal, frame: remove_opacity(ipc)) + ipc.on("window::focus", partial(on_window_focus, args.opacity)) + ipc.main()
\ No newline at end of file diff --git a/sway/sway b/sway/sway new file mode 100755 index 0000000..325c7be --- /dev/null +++ b/sway/sway @@ -0,0 +1,6 @@ +#!/bin/sh + +killall dbus-daemon &> /dev/null +export $(dbus-launch) + +/usr/bin/sway diff --git a/sway/sway_autolock b/sway/sway_autolock new file mode 100755 index 0000000..9168249 --- /dev/null +++ b/sway/sway_autolock @@ -0,0 +1,12 @@ +#!/bin/sh + +pid="$(pgrep swayidle)" +if [ -z "$pid" ]; then + swayidle -w timeout 300 'swaylock -f -c 000000' \ + timeout 300 'swaymsg "output * dpms off"' \ + resume 'swaymsg "output * dpms on"' & + notify-send --app-name "Autolock" "Enabled" +else + kill -9 "$pid" + notify-send --app-name "Autolock" "DISABLED" +fi diff --git a/sway/sway_outputs b/sway/sway_outputs new file mode 100755 index 0000000..e8c8505 --- /dev/null +++ b/sway/sway_outputs @@ -0,0 +1,9 @@ +#!/bin/sh + +at_home=$(swaymsg -t get_outputs | grep 'TH7AA0012451') + +if [ -n "$at_home" ]; then + swaymsg output VGA-1 enable scale 1.5 + swaymsg output LVDS-1 disable + swaymsg workspace number 1 +fi; diff --git a/sway/sway_stats b/sway/sway_stats new file mode 100755 index 0000000..96b0923 --- /dev/null +++ b/sway/sway_stats @@ -0,0 +1,12 @@ +#!/bin/sh + +raw_freq=$(cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq) +cpu_freq="$(( $raw_freq / 1000 )) MHz" + +name="$(date '+%Hh%M %A %y.%m.%d')" +summary="$(battery) @ $cpu_freq" +body=$(free -h | awk '/Mem:/ { ram=$3 } + /Swap:/ { swap=$3 } + END { printf("Used Ram/Swap: %s/%s",ram,swap) }') + +notify-send -t 10000 --app-name="$name" "$summary" "$body" diff --git a/sway/sway_workspace b/sway/sway_workspace new file mode 100755 index 0000000..bd72115 --- /dev/null +++ b/sway/sway_workspace @@ -0,0 +1,4 @@ +#!/bin/sh + +notify-send -t 1000 --app-name "$2" "workspace" +swaymsg workspace number "$1" "$2" |
