Compare commits

...

24 Commits
main ... sway

Author SHA1 Message Date
spinach 0ac6962c5f shrinking waybar mods to icons to save screen space 8 months ago
spinach 89d863c084 fixing swaybg and brave getting merked on reboot 9 months ago
spinach d7810071cd tracking down outputs 9 months ago
spinach 52a14f41b5 fixing filetype detection and purging i3 remenants 9 months ago
spinach dadec004c4 purging a lot of the deps and cleaning up sway config 9 months ago
spinach c7fede1af8 Merge branch 'sway' of git.keegandeppe.com:kdeppe/dotfiles into sway 9 months ago
spinach 6753b3839f fixing multimonitor lock 9 months ago
spinach 24ce088e84 fixed waybar reload 9 months ago
spinach cbb17f7735 adding sway base changes 9 months ago
spinach 807defef35 merging laptop changes 9 months ago
spinach c4ae87f72b Merge branch 'sway' of git.keegandeppe.com:kdeppe/dotfiles into sway 9 months ago
spinach a3300335e9 gonna pull new 9 months ago
spinach b82f97e060 bringing submodules up to date 10 months ago
spinach 03aa3a8d5a seperating conf for thinkpad/desktop 10 months ago
spinach e17b45eebb trimmed a lot of fat from sway config, working on styling bar 12 months ago
spinach 280f657a1a working on waybar 12 months ago
spinach f3c2d05b24 works after timeout but broken when manually locking 12 months ago
spinach c5a18cfe35 working swaylock, idle next 12 months ago
spinach e9732fe697 half working sway lock cleaning old stuff 12 months ago
spinach 811307c06c half working sway lock cleaning old stuff 12 months ago
spinach 3d6ba185af working to get background set 12 months ago
spinach 2c9dc4af30 base installs and config 12 months ago
spinach 2fd168ab97 starting sway migration 12 months ago
spinach 8e36e9fd41 starting sway migration 12 months ago

@ -0,0 +1,14 @@
sway
swayidle
swaylock-effects
swaybg
waybar
feh
imagemagick
rofi
rofi-calc
mpv
mpd
mpc
playerctl
zscroll-git

@ -1,7 +1,7 @@
#!/bin/bash
# checks if instance of arg 1 exists, will show it if it does
exists=$(i3-msg "[instance=$1] scratchpad show" 2>&1 | grep ERROR)
exists=$(swaymsg "[instance=$1] scratchpad show" 2>&1 | grep -i error)
if [ -n "$exists" ] ; then
# creating it then showing
if [ -z "$1" ] ; then
@ -16,5 +16,5 @@ if [ -n "$exists" ] ; then
${@:2} 2>&1 1>/dev/null &
sleep 1
# lets application load then shows it on scratchpad
i3-msg "[instance=$1] scratchpad show" 1>/dev/null
swaymsg "[instance=$1] scratchpad show" 1>/dev/null
fi

@ -0,0 +1,27 @@
#!/usr/bin/env bash
#
#
# Dependancies:
# imagemagick
# swaylock
# grim
#
# inspired by: https://gist.github.com/singulared/7c6d53c1b84fbb7cf22d07c5c7d3e945
LOCK=~/.config/sway/lock.png
# go over each output and ss/blur then add to img
for OUTPUT in $(swaymsg -t get_outputs | gojq '.[].name' | tr -d '"')
do
echo "OUT: $OUTPUT" >> "$HOME/outputs"
IMAGE="${OUTPUT}_img.jpg"
grim -t jpeg -o $OUTPUT $IMAGE
convert $IMAGE -blur 5x3 - | composite -gravity center $LOCK - $IMAGE
LOCKARGS="${LOCKARGS} --image ${OUTPUT}:${IMAGE}"
IMAGES="${IMAGES} ${IMAGE}"
done
echo "done" >> "$HOME/outputs"
swaylock $LOCKARGS --daemonize
rm $IMAGES

@ -1,24 +1,25 @@
#!/bin/bash
# Built for sway with optional dependancy on swaybg for ease of setting
wallpapers_dir=~/.local/share/wallpapers
finder="rofi-dmenu Wallpaper"
cur_wallpaper="$HOME/.wallpaper"
cd "$wallpapers_dir"
# selection mode
if [ "$1" == "-s" ] ; then
cd "$wallpapers_dir"
# fzf selector
if [ "$1" == '-s' ] ; then
# follows links and omits the env file
selection=$(find -L -type f -printf '%P\n' | $finder)
if [ -n "$selection" ] ; then
# didnt exit
feh --bg-scale "$selection"
# didnt exit, overwrite wallpaper
ln -sf "$wallpapers_dir/$selection" "$cur_wallpaper"
fi
fi
# feh slideshow selector
if [ "$1" == '-p' ] ; then
# follows links and omits the env file
# find -L -type f -printf '%P\n' | feh -A "echo '%f';"
echo "BROKEN">&2
exit 1
# check that available wallpaper exists
if [ ! -f "$cur_wallpaper" ] ; then
echo "No wallpaper found" && exit 1
fi
swaymsg output "*" bg "$cur_wallpaper" fill '#000000'

@ -1 +1 @@
Subproject commit aa50bff9b5cf24bcda810c1d77b03a5c804ea400
Subproject commit 853ade4fba8af8520c9e2072de492d83999ba742

@ -1 +0,0 @@
/home/keegan/.dotfiles/gui/wallpapers/pine_tree.jpg

@ -1,13 +1,4 @@
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
# This file serves as the base config I desire across machines
set $mod Mod4
# Font for window titles. Will also be used by the bar unless a different font
@ -19,67 +10,57 @@ default_border none
gaps inner 10
smart_gaps on
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8
# Start XDG autostart .desktop files using dex. See also
# https://wiki.archlinux.org/index.php/XDG_Autostart
workspace 1 output DP-2
workspace 2 output DP-0
exec --no-startup-id dex --autostart --environment i3
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit.
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock-blur --nofork
# background
exec_always wallpaper.sh
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
#exec --no-startup-id nm-applet
# waybar
bar {
swaybar_command waybar
}
# loading layout
assign [class="st-256color"] 1
assign [class="Brave-browser"] 2
exec --no-startup-id st -e tmux
# launching default apps
exec st -e tmux
exec --no-startup-id brave
# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
# open term
bindsym $mod+Return exec st
# setup idling
exec swayidle -w \
timeout 600 'swaylock -f --screenshots --effect-blur 10x3 --clock --indicator' \
timeout 900 'swaymsg "output * dpms off"' \
resume 'swaymsg "output * dpms on"' \
timeout 10 'if pgrep -x swaylock; then swaymsg "output * dpms off"; fi' \
resume 'swaymsg "output * dpms on"'
# lock 'swaylock -f --screenshots --effect-blur 10x3 --clock'
# lock the screen
bindsym $mod+q exec swaylock
bindsym $mod+q exec "swaylock -f --screenshots --effect-blur 10x3 --clock --indicator"
# bindsym $mod+q exec sleep 1 && killall -SIGUSR1 swayidle
# kill focused window
bindsym $mod+Shift+q kill
# start dmenu (a program launcher)
bindsym $mod+d exec --no-startup-id rofi-launcher
# start rofi (a program launcher)
bindsym $mod+d exec rofi-launcher
# setting up a vimscratch pad to use vimwiki
for_window [instance="todo"] move window to scratchpad
for_window [instance="cal"] move window to scratchpad
exec --no-startup-id st -n todo -e vim ~/vimwiki/todo/index.md
exec --no-startup-id st -n cal -e calcurse
bindsym $mod+s [instance="todo"] scratchpad show
bindsym $mod+c [instance="cal"] scratchpad show
# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
# There also is i3-dmenu-desktop which only displays applications shipping a
# .desktop file. It is a wrapper around dmenu, so you need that installed.
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
for_window [instance="spotify"] move window to scratchpad
for_window [instance="wiki"] move window to scratchpad
for_window [instance="scratch"] move window to scratchpad
# bindings
bindsym $mod+s exec i3-scratchpad.sh todo st -n todo -e nvim ~/vimwiki/todo/index.md
bindsym $mod+c exec i3-scratchpad.sh cal st -n cal -e calcurse
bindsym $mod+m exec i3-scratchpad.sh spotify spotify
bindsym $mod+w exec i3-scratchpad.sh wiki st -n wiki -e nvim ~/vimwiki/index.md
# change focus
bindsym $mod+h focus left
@ -87,23 +68,11 @@ bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+semicolon move right
# alternatively, you can use the cursor 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
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
# split in horizontal orientation
#bindsym $mod+h split h
@ -116,7 +85,6 @@ bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
# bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
@ -201,16 +169,3 @@ mode "resize" {
}
bindsym $mod+r mode "resize"
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
# bar {
#status_command
# }
#exec --no-startup-id picom-launch.sh
# background
output "*" bg ~/.config/i3/wallpaper.jpg fill
# poly bar
exec_always --no-startup-id polybar-launch.sh desktop-bar

@ -0,0 +1,7 @@
include base
output DP-2 enable scale 1 mode 3840x2160 position 2560,0
output DP-3 enable scale 1 mode 2560x1440 position 0,380
workspace 1 output DP-2
workspace 2 output DP-3

@ -0,0 +1,3 @@
include base
output LVDS-1 enable scale 1 mode 1366x768

@ -0,0 +1,49 @@
{
"layer": "top",
"modules-left": ["sway/workspaces", "sway/window", "pulseaudio/slider"],
"modules-center": ["custom/weather"],
"modules-right": ["cpu", "memory", "network", "custom/bg", "custom/date"],
"sway/workspaces": {
"all-outputs": true
},
"sway/window": {
"all-outputs": true,
"max-length": 20
},
"pulseaudio/slider": {
"min": 0,
"max": 100
},
"custom/spotify-scroll": {
},
"custom/weather": {
"exec": "weather -pd",
"on-click": "i3-scratchpad.sh scratch st -n scratch -e weather -f",
"on-click-right": "weather -r",
"on-click-midde": "i3-scratchpad.sh scratch st -n scratch -e weather -pf"
},
"cpu": {
"format": "CPU: {usage}%"
},
"memory": {
"format": "RAM: {percentage}%",
"tooltip-format": "RAM: {used}/{total} GiB"
},
"network": {
"interval": 2,
"format-ethernet": "ETH: {bandwidthTotalBytes}",
"format-wifi": "WLAN: {ssid}",
"tooltip-format": "DOWN: {bandwidthDownBits} UP: {bandwidthUpBits} IP: {ipaddr}"
},
"custom/bg": {
"exec": "echo -e '\uf1c5'",
"interval": "once",
"on-click": "wallpaper.sh -s"
},
"custom/date": {
"exec": "date +'%A, %b %d %l:%M %P'",
"interval": 10
}
}

@ -0,0 +1,139 @@
* {
border: none;
border-radius: 0;
font-family: Hack Nerd Font, Roboto, Helvetica, Arial, sans-serif;
min-height: 0;
}
window.DP-3 * {
font-size: 13pt;
}
window.DP-2 * {
font-size: 17pt;
}
window#waybar {
background-color: transparent;
background-color: transparent;
color: #ddd;
}
window#waybar.empty {
color: rgba(0,0,0,0);
}
#workspaces button {
padding: 0 5px;
color: #ddd;
background-color: rgba(29, 31, 21, 0.8);
}
#workspaces button:hover {
background: rgba(0, 0, 0, 0.2);
box-shadow: inset 0 3px #ffffff;
}
#workspaces button.focused {
background-color: #64727D;
box-shadow: inset 0 3px #ffffff;
}
#workspaces button.urgent {
background-color: #eb4d4b;
}
#mode {
background-color: #64727D;
border-top: 3px solid #ffffff;
}
#backlight,
#battery.bat1,
#battery.bat2,
#clock,
#cpu,
#custom-mail,
#custom-poweroff,
#custom-weather,
#disk,
#idle_inhibitor,
#memory,
#mode,
#network.vpn,
#network.wifi,
#network.ethernet,
#network.disconnected,
#custom-date,
#sway-window,
#sway-workspaces,
#pulseaudio,
#custom-weather,
#taskbar,
#temperature,
#tray {
padding: 0 5px;
margin: 2px;
color: #ddd;
border-radius: 7px;
background-color: rgba(29, 31, 21, 0.6);
}
#custom-bg {
padding: 0 10px 0px 5px;
margin: 2px;
color: #ddd;
border-radius: 7px;
background-color: rgba(29, 31, 21, 0.6);
}
#pulseaudio-slider slider {
min-height: 0px;
min-width: 0px;
opacity: 0;
background-image: none;
border: none;
box-shadow: none;
}
#pulseaudio-slider trough {
min-height: 10px;
min-width: 80px;
border-radius: 5px;
background-color: black;
}
#pulseaudio-slider highlight {
min-width: 5px;
border-radius: 5px;
background-color: green;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}
#battery.bat2.critical:not(.charging) {
background-color: #f53c3c;
color: #ffffff;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#temperature.critical {
background-color: #eb4d4b;
}
#taskbar button:hover {
background: rgba(0, 0, 0, 0.2);
box-shadow: inset 0 3px #ffffff;
}
#taskbar button.active {
background-color: #64727D;
box-shadow: inset 0 3px #ffffff;
}

@ -0,0 +1,59 @@
{
"layer": "top",
"modules-left": ["sway/workspaces", "sway/window", "pulseaudio/slider"],
"modules-center": ["custom/weather"],
"modules-right": ["cpu", "memory", "network", "battery", "custom/bg", "custom/date"],
"sway/workspaces": {
"all-outputs": true
},
"sway/window": {
"all-outputs": true,
"max-length": 20
},
"pulseaudio/slider": {
"min": 0,
"max": 100
},
"custom/spotify-scroll": {
},
"custom/weather": {
"exec": "weather -pd",
"on-click": "i3-scratchpad.sh scratch st -n scratch -e weather -f",
"on-click-right": "weather -r",
"on-click-midde": "i3-scratchpad.sh scratch st -n scratch -e weather -pf"
},
"cpu": {
"format": "CPU: {usage}%"
},
"memory": {
"format": "RAM: {percentage}%",
"tooltip-format": "RAM: {used}/{total} GiB"
},
"network": {
"interval": 2,
"format-icons": ["󰤟 ", "󰤢 ", "󰤥 ", "󰤨 "],
"format-disconnected": "󰌙 ",
"format-ethernet": "󰌘 ",
"format-wifi": "{icon}",
"tooltip-format-wifi": "{essid} {ipaddr}  {bandwidthDownBits}  {bandwidthUpBits}",
"tooltip-format-ethernet": "{ipaddr} CAP: {bandwidthTotalBits}  {bandwidthDownBits}  {bandwidthUpBits}"
},
"battery": {
"format": "{icon} {capacity}%",
"format-charging": "󰂄 {capacity}%",
"format-icons": [ "󰂎", "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"],
"format-tooltip": "{timeTo}",
"format-time": "{H}:{M}",
},
"custom/bg": {
"exec": "echo -e '\uf1c5'",
"interval": "once",
"on-click": "wallpaper.sh -s"
},
"custom/date": {
"exec": "date +'%a, %b %d %l:%M %P'",
"interval": 10
}
}

@ -0,0 +1,136 @@
* {
border: none;
border-radius: 0;
font-family: Hack Nerd Font, Roboto, Helvetica, Arial, sans-serif;
min-height: 0;
}
window.LVDS-1 * {
font-size: 10pt;
}
window#waybar {
background-color: transparent;
background-color: transparent;
color: #ddd;
}
window#waybar.empty {
color: rgba(0,0,0,0);
}
#workspaces button {
padding: 0 3px;
color: #ddd;
background-color: rgba(29, 31, 21, 0.8);
}
#workspaces button:hover {
background: rgba(0, 0, 0, 0.2);
box-shadow: inset 0 3px #ffffff;
}
#workspaces button.focused {
background-color: #64727D;
box-shadow: inset 0 4px 2px -2px #ffffff;
}
#workspaces button.urgent {
background-color: #eb4d4b;
}
#mode {
background-color: #64727D;
border-top: 3px solid #ffffff;
}
#backlight,
#battery,
#battery.bat1,
#battery.bat2,
#clock,
#cpu,
#custom-mail,
#custom-poweroff,
#custom-weather,
#disk,
#idle_inhibitor,
#memory,
#mode,
#network.vpn,
#network.wifi,
#network.ethernet,
#network.disconnected,
#custom-date,
#sway-window,
#sway-workspaces,
#pulseaudio,
#custom-weather,
#taskbar,
#temperature,
#tray {
padding: 0 5px;
margin: 2px;
color: #ddd;
border-radius: 7px;
background-color: rgba(29, 31, 21, 0.6);
}
#custom-bg {
padding: 0 10px 0px 5px;
margin: 2px;
color: #ddd;
border-radius: 7px;
background-color: rgba(29, 31, 21, 0.6);
}
#pulseaudio-slider slider {
min-height: 0px;
min-width: 0px;
opacity: 0;
background-image: none;
border: none;
box-shadow: none;
}
#pulseaudio-slider trough {
min-height: 10px;
min-width: 80px;
border-radius: 5px;
background-color: black;
}
#pulseaudio-slider highlight {
min-width: 5px;
border-radius: 5px;
background-color: green;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}
#battery.bat2.critical:not(.charging) {
background-color: #f53c3c;
color: #ffffff;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#temperature.critical {
background-color: #eb4d4b;
}
#taskbar button:hover {
background: rgba(0, 0, 0, 0.2);
box-shadow: inset 0 3px #ffffff;
}
#taskbar button.active {
background-color: #64727D;
box-shadow: inset 0 3px #ffffff;
}

@ -0,0 +1,2 @@
- shell:
- [bin/arch_package_installer.sh arch/sway, Installing Sway dependancies]

@ -1,3 +1,3 @@
- link:
~/.config/sway: gui/sway-desktop
~/.config/sway/wallpaper.jpg: gui/wallpapers/pine_tree.jpg
~/.config/sway/config: gui/sway/desktop
~/.config/sway/base: gui/sway/base

@ -0,0 +1,3 @@
- link:
~/.config/sway/config: gui/sway/thinkpad
~/.config/sway/base: gui/sway/base

@ -0,0 +1,3 @@
- link:
~/.config/waybar/config: gui/waybar/desktop
~/.config/waybar/style.css: gui/waybar/desktop-style.css

@ -0,0 +1,3 @@
- link:
~/.config/waybar/config: gui/waybar/thinkpad
~/.config/waybar/style.css: gui/waybar/thinkpad-style.css

@ -1,5 +1,5 @@
arch.base
arch.i3
arch.sway
arch.nvim
neovim
zsh
@ -8,8 +8,6 @@ oh-my-zsh
fzf
tmux.sparse
tmuxp
polybar
picom
rofi
lf
scripts

@ -3,7 +3,8 @@ profile/arch
# desktop specific
st.desktop
i3.desktop
sway.desktop
waybar.desktop
calcurse
seafile
passwords

@ -1,6 +1,13 @@
# base profile
profile/arch
# thinkpad specific
st.thinkpad
i3.thinkpad
sway.thinkpad
waybar.thinkpad
# utilities
calcurse
seafile
passwords

@ -1,5 +1,4 @@
profile/arch
st.work
i3.work
timetracker
seafile

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -1 +1 @@
Subproject commit b9a2d846efff427fd13b7e95d83a5761666329ac
Subproject commit 0cc19ac2ede35fd8accff590fa71df580dc7e109

@ -1 +1 @@
Subproject commit d21d5c9510170d74a7f959309da720b6df72ca01
Subproject commit 3dd42f5aa2d7fc6f508f2b21408730a8678c0a19

@ -1 +1 @@
Subproject commit 9a9abc5d13d94aa404c02d19b7184143d020ecb7
Subproject commit bf0b2721df35ec195798cc493d356e6a70aac8f2

@ -9,6 +9,8 @@ set -g display-panes-time 5000
# setup automatic renaming
set -g automatic-rename on
# count from 1 for easier pane switching
setw -g pane-base-index 1
#set -g default-shell $SHELL
# keybinds

@ -14,6 +14,9 @@ set -g automatic-rename on
# escape sequence delay
set -g escape-time 10
# start from 1 for pane numbering
setw -g pane-base-index 1
#set -g default-shell $SHELL
# keybinds

Loading…
Cancel
Save