Moving to X11, better gaming exp. - dotfiles - These are my dotfiles. There are many like it, but these are mine.
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
(DIR) commit 406144df3d4c0ddd9f25bc8113c78525953d1299
(DIR) parent 1a92abacbd9178d67fa34a030a9ab80b4b596849
(HTM) Author: Jay Scott <me@jay.scot>
Date: Thu, 5 Oct 2023 20:59:49 +0100
Moving to X11, better gaming exp.
Diffstat:
M .gitignore | 18 +++++-------------
M README | 16 +++++++---------
A X11/Xresources | 98 +++++++++++++++++++++++++++++++
A X11/xinitrc | 13 +++++++++++++
A alacritty/alacritty.yml | 40 +++++++++++++++++++++++++++++++
D ashrc | 51 -------------------------------
A bashrc | 53 ++++++++++++++++++++++++++++++
R bin/old/dwmstatus.sh -> bin/dwmsta… | 0
A bin/game_select.sh | 18 ++++++++++++++++++
D bin/old/game_select.sh | 17 -----------------
R bin/sway-run.sh -> bin/old/sway-ru… | 0
M bootstrap.sh | 4 ++--
D castgetrc | 44 -------------------------------
D foot/foot.ini | 27 ---------------------------
D mpd/mpd.conf | 20 --------------------
D ncmpcpp/config | 31 -------------------------------
M newsraft/feeds | 6 +++---
M profile | 2 +-
D slrn/colors | 125 -------------------------------
D slrn/config | 45 -------------------------------
D slrn/score | 26 --------------------------
D slrn/slrnpull.conf | 50 -------------------------------
A suckless/dmenu/Makefile | 39 +++++++++++++++++++++++++++++++
A suckless/dmenu/config.h | 16 ++++++++++++++++
A suckless/dmenu/patches/01-dmenu-bo… | 36 +++++++++++++++++++++++++++++++
A suckless/dmenu/patches/02-dmenu-ce… | 120 +++++++++++++++++++++++++++++++
A suckless/dwm/Makefile | 35 +++++++++++++++++++++++++++++++
A suckless/dwm/config.h | 195 +++++++++++++++++++++++++++++++
A suckless/herbe/Makefile | 40 +++++++++++++++++++++++++++++++
A suckless/herbe/config.h | 19 +++++++++++++++++++
D sway/config | 89 -------------------------------
31 files changed, 740 insertions(+), 553 deletions(-)
---
(DIR) diff --git a/.gitignore b/.gitignore
@@ -14,24 +14,16 @@ ncmpcpp/error.log
# misc
*.swp
-bin/lf
-bin/senpai
bin/terraform
-bin/neonmodem
-bin/gitleaks
bin/golangci-lint
# vim
vim/bundle
-# slrn
-slrn/out.going
-slrn/data
-slrn/log
-slrn/news
-slrn/requests
-slrn/authinfo
-slrn/jnews*
-
# mutt contacts
mutt/aliases
+
+# suckless
+suckless/dwm/src
+suckless/dmenu/src
+suckless/herbe/src
(DIR) diff --git a/README b/README
@@ -1,23 +1,21 @@
|> dotfiles
-I am a long time supporter of the Unix philosophy which is reflected in
-the daily tooling I use. Since 2011, I mainly use the terminal for
-everything.
+Since 2011, I mainly use the terminal for everything.
Privacy is at the forefront of my mind as such some of my browser
settings maybe too restrictive for some. I also don't use social media
at all, the closest I come is using IRC.
- operating sys : alpine linux
- window manager : sway
- terminal : foot
- launcher : bemenu
+ operating sys : archlinux / alpine linux
+ window manager : dwm
+ terminal : alacritty
+ launcher : dmenu
email : mutt / isync
browser : qutebrowser
video : mpv
- music : mpd / ncmpcpp
+ music : mpv
password mgt : pass
vpn : mullvad
- news : newsboat
+ news : newsraft
(DIR) diff --git a/X11/Xresources b/X11/Xresources
@@ -0,0 +1,98 @@
+! vim:ft=xdefaults
+
+/* COLOURS */
+#define RED0 #cc0403
+#define RED1 #f2201f
+#define GREEN0 #19cb00
+#define GREEN1 #23fd00
+#define YELLOW0 #cecb00
+#define YELLOW1 #fffd00
+#define BLUE0 #0d73cc
+#define BLUE1 #1a8fff
+#define MAGENTA0 #cb1ed1
+#define MAGENTA1 #fd28ff
+#define CYAN0 #0dcdcd
+#define CYAN1 #14ffff
+#define BLACK #000000
+#define GREY1 #767676
+#define GREY2 #dddddd
+#define WHITE #ffffff
+
+#define FONT Hack:size=14
+
+/* XFT */
+Xft.dpi: 96
+Xft.hinting: true
+Xft.rgba: rgb
+Xft.antialias: true
+Xft.autohint: false
+Xft.hintstyle: hintslight
+Xft.lcdfilter: lcddefault
+
+*.foreground: WHITE
+*.background: BLACK
+
+/* NORMAL */
+*.color0: BLACK
+*.color1: RED0
+*.color2: GREEN0
+*.color3: YELLOW0
+*.color4: BLUE0
+*.color5: MAGENTA0
+*.color6: CYAN0
+*.color7: GREY2
+
+/* BRIGHT */
+*.color8: GREY1
+*.color9: RED1
+*.color10: GREEN1
+*.color11: YELLOW1
+*.color12: BLUE1
+*.color13: MAGENTA1
+*.color14: CYAN1
+*.color15: WHITE
+
+!
+! Generated with :
+! XRDB2Xreources.py
+!
+*.foreground: #e6d4a3
+*.background: #1e1e1e
+*.cursorColor: #bbbbbb
+!
+! Black
+*.color0: #161819
+*.color8: #7f7061
+!
+! Red
+*.color1: #f73028
+*.color9: #be0f17
+!
+! Green
+*.color2: #aab01e
+*.color10: #868715
+!
+! Yellow
+*.color3: #f7b125
+*.color11: #cc881a
+!
+! Blue
+*.color4: #719586
+*.color12: #377375
+!
+! Magenta
+*.color5: #c77089
+*.color13: #a04b73
+!
+! Cyan
+*.color6: #7db669
+*.color14: #578e57
+!
+! White
+*.color7: #faefbb
+*.color15: #e6d4a3
+!
+! Bold, Italic, Underline
+*.colorBD: #978771
+!*.colorIT:
+!*.colorUL:
(DIR) diff --git a/X11/xinitrc b/X11/xinitrc
@@ -0,0 +1,13 @@
+# x stuff
+setxkbmap gb
+xset s off -dpms
+xrdb -load ~/.config/X11/Xresources
+
+if [ -z "$XDG_RUNTIME_DIR" ]; then
+ mkdir -p /tmp/runtime/jay
+ chmod 700 /tmp/runtime/jay
+ export XDG_RUNTIME_DIR=/tmp/runtime/jay
+fi
+
+~/bin/dwmstatus.sh &
+exec dwm
(DIR) diff --git a/alacritty/alacritty.yml b/alacritty/alacritty.yml
@@ -0,0 +1,40 @@
+font:
+ normal:
+ family: Hack
+ style: Regular
+
+ size: 15
+
+env:
+ TERM: xterm-256color
+
+# Colors (Gruvbox dark)
+colors:
+ # Default colors
+ primary:
+ # hard contrast: background = '0x1d2021'
+ background: '0x282828'
+ # soft contrast: background = '0x32302f'
+ foreground: '0xebdbb2'
+
+ # Normal colors
+ normal:
+ black: '0x282828'
+ red: '0xcc241d'
+ green: '0x98971a'
+ yellow: '0xd79921'
+ blue: '0x458588'
+ magenta: '0xb16286'
+ cyan: '0x689d6a'
+ white: '0xa89984'
+
+ # Bright colors
+ bright:
+ black: '0x928374'
+ red: '0xfb4934'
+ green: '0xb8bb26'
+ yellow: '0xfabd2f'
+ blue: '0x83a598'
+ magenta: '0xd3869b'
+ cyan: '0x8ec07c'
+ white: '0xebdbb2'
(DIR) diff --git a/ashrc b/ashrc
@@ -1,51 +0,0 @@
-export XDG_CONFIG_HOME="$HOME/.config"
-export XDG_CACHE_HOME="$HOME/.cache"
-export XDG_DATA_HOME="$HOME/.local/share"
-export XDG_STATE_HOME="$HOME/.local/state"
-
-# cleanup ~/
-export PASSWORD_STORE_DIR="$XDG_CONFIG_HOME"/pass
-export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc
-export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority
-export CARGO_HOME="$XDG_DATA_HOME"/cargo
-alias wget='wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"'
-
-# common exports
-GPG_TTY=$(tty)
-export GPG_TTY
-export EDITOR="vim"
-export BROWSER="qutebrowser"
-export GOPATH="$XDG_DATA_HOME"/go
-export GOPROXY=direct
-export PATH=$PATH:$GOPATH/bin:$HOME/bin:$HOME/.local/bin
-export PS1="[\[$(tput sgr0)\]\[\033[38;5;7m\]\W\[$(tput sgr0)\]] \\$ \[$(tput sgr0)\]"
-
-export BEMENU_OPTS="-p '> ' --tb '#013220' --tf '#ffffff' --hf '#444444'"
-
-# terraform config
-export TF_CLOUD_ORGANIZATION="jay-scot"
-export TF_WORKSPACE="hetzner"
-
-# lynx
-export LYNX_CFG=$HOME/.config/lynx/config
-export LYNX_LSS=$HOME/.config/lynx/theme.lss
-
-# slrn
-export NNTPSERVER='snews://news.eternal-september.org:563'
-alias slrn='slrn -i ~/.config/slrn/config -f ~/.config/slrn/jnewsrc'
-alias slrnpull='slrnpull -d ~/.config/slrn/'
-
-# safety first kids!
-alias cp='cp -i'
-alias mv='mv -i'
-alias rm='rm -i'
-
-# random alias
-alias weather='curl wttr.in/?1QF'
-
-# git alias
-alias ga='git add -A'
-alias gs='git status -s'
-alias gl="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
-alias gd='git diff'
-alias gma='git commit -am'
(DIR) diff --git a/bashrc b/bashrc
@@ -0,0 +1,53 @@
+if [[ -r /usr/share/bash-completion/bash_completion ]]; then
+ . /usr/share/bash-completion/bash_completion
+fi
+
+export XDG_CONFIG_HOME="$HOME/.config"
+export XDG_CACHE_HOME="$HOME/.cache"
+export XDG_DATA_HOME="$HOME/.local/share"
+export XDG_STATE_HOME="$HOME/.local/state"
+
+# cleanup ~/
+export PASSWORD_STORE_DIR="$XDG_CONFIG_HOME"/pass
+export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc
+export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority
+export CARGO_HOME="$XDG_DATA_HOME"/cargo
+alias wget='wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"'
+
+# common exports
+GPG_TTY=$(tty)
+export GPG_TTY
+export EDITOR="vim"
+export BROWSER="qutebrowser"
+export GOPATH="$XDG_DATA_HOME"/go
+export GOPROXY=direct
+export PATH=$PATH:$GOPATH/bin:$HOME/bin:$HOME/.local/bin
+export PS1="[\[$(tput sgr0)\]\[\033[38;5;7m\]\W\[$(tput sgr0)\]] \\$ \[$(tput sgr0)\]"
+
+export BEMENU_OPTS="-p '> ' --tb '#013220' --tf '#ffffff' --hf '#444444'"
+
+# terraform config
+export TF_CLOUD_ORGANIZATION="jay-scot"
+export TF_WORKSPACE="hetzner"
+
+# lynx
+export LYNX_CFG=$HOME/.config/lynx/config
+export LYNX_LSS=$HOME/.config/lynx/theme.lss
+
+# safety first kids!
+alias cp='cp -i'
+alias mv='mv -i'
+alias rm='rm -i'
+
+# random alias
+alias weather='curl wttr.in/?1QF'
+alias ls='ls --color=auto'
+
+# git alias
+alias ga='git add -A'
+alias gs='git status -s'
+alias gl="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
+alias gd='git diff'
+alias gma='git commit -am'
+
+source ~/.secret
(DIR) diff --git a/bin/old/dwmstatus.sh b/bin/dwmstatus.sh
(DIR) diff --git a/bin/game_select.sh b/bin/game_select.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+games=$(printf "%s\n" "Gibbous" "AtomRPG" "Primordia" | dmenu -p "games »")
+
+[ -z "$games" ] && exit 0
+
+case "$games" in
+"Gibbous")
+ ~/media/games/gibbous/start.sh
+ ;;
+"AtomRPG")
+ ~/media/games/atomrpg/start.sh
+ ;;
+"Primordia")
+ ~/media/games/primordia/start.sh
+ /data/games/enterthegungeon/start.sh
+ ;;
+esac
(DIR) diff --git a/bin/old/game_select.sh b/bin/old/game_select.sh
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-games=$(printf "%s\n" "Kathy Rain" "Beneath A Steel Sky" "Enter The Gungeon" | dmenu -p "games »")
-
-[ -z "$games" ] && exit 0
-
-case "$games" in
-"Kathy Rain")
- /data/games/kathy_rain/start.sh
- ;;
-"Beneath A Steel Sky")
- /data/games/beneath_a_steel_sky/start.sh
- ;;
-"Enter The Gungeon")
- /data/games/enterthegungeon/start.sh
- ;;
-esac
(DIR) diff --git a/bin/sway-run.sh b/bin/old/sway-run.sh
(DIR) diff --git a/bootstrap.sh b/bootstrap.sh
@@ -2,9 +2,9 @@
DOTFILES=$(pwd)
-FILES='ashrc castgetrc profile vimrc'
+FILES='bashrc profile vimrc'
ROOT='bin'
-CONFIG='foot git isync lynx mpd mutt ncmpcpp newsraft qutebrowser senpai slrn sway'
+CONFIG='alacritty git isync lynx mutt newsraft qutebrowser senpai X11'
link() {
for f in $FILES; do ln -sfn "$DOTFILES/$f" "$HOME/.$f"; done
(DIR) diff --git a/castgetrc b/castgetrc
@@ -1,44 +0,0 @@
-[*]
-spool=/home/jay/media/podcasts
-filename=%(date)-%(title).mp3
-
-
-[2600]
-url=https://www.2600.com/oth-broadband.xml
-spool=/home/jay/media/podcasts/offthehook
-
-[cory-doctorows]
-url=http://feeds.feedburner.com/doctorow_podcast
-spool=/home/jay/media/podcasts/cory-doctorows
-
-[corecursive]
-url=https://link.chtbl.com/corecursive?id=corecursive&platform=rss
-spool=/home/jay/media/podcasts/corecursive
-
-[commandlineheroes]
-url=https://feeds.pacific-content.com/commandlineheroes
-spool=/home/jay/media/podcasts/commandlineheroes
-
-[hpr]
-url=http://hackerpublicradio.org/hpr_rss.php
-spool=/home/jay/media/podcasts/hacker-public-radio
-
-[ask-noah]
-url=https://feeds.fireside.fm/asknoah/rss
-spool=/home/jay/media/podcasts/ask-noah
-
-[2.5-admins]
-url=https://2.5admins.com/feed/podcast
-spool=/home/jay/media/podcasts/2.5-admins
-
-[going-linux]
-url=https://goinglinux.com/mp3podcast.xml
-spool=/home/jay/media/podcasts/going-linux
-
-[living-adventurously]
-url=https://feeds.transistor.fm/living-adventurously
-spool=/home/jay/media/podcasts/living-adventurously
-
-[selfhosted]
-url=https://feeds.fireside.fm/selfhosted/rss
-spool=/home/jay/media/podcasts/selfhosted
(DIR) diff --git a/foot/foot.ini b/foot/foot.ini
@@ -1,27 +0,0 @@
-font=Hack:size=14
-
-[url]
-launch=link_handler.sh ${url}
-
-[key-bindings]
-show-urls-launch=Control+Shift+p
-
-[colors]
-background=282828
-foreground=ebdbb2
-regular0=282828
-regular1=cc241d
-regular2=98971a
-regular3=d79921
-regular4=458588
-regular5=b16286
-regular6=689d6a
-regular7=a89984
-bright0=928374
-bright1=fb4934
-bright2=b8bb26
-bright3=fabd2f
-bright4=83a598
-bright5=d3869b
-bright6=8ec07c
-bright7=ebdbb2
(DIR) diff --git a/mpd/mpd.conf b/mpd/mpd.conf
@@ -1,20 +0,0 @@
-music_directory "/home/jay/media/music"
-playlist_directory "/home/jay/.config/mpd/playlists"
-db_file "/home/jay/.config/mpd/mpd.db"
-log_file "syslog"
-pid_file "/home/jay/.config/mpd/mpd.pid"
-state_file "/home/jay/.config/mpd/mpdstate"
-
-audio_output {
- type "pulse"
- name "pulse audio"
-}
-audio_output {
- type "fifo"
- name "my_fifo"
- path "/tmp/mpd.fifo"
- format "44100:16:2"
-}
-
-bind_to_address "127.0.0.1"
-port "6600"
(DIR) diff --git a/ncmpcpp/config b/ncmpcpp/config
@@ -1,31 +0,0 @@
-# visual stuff for 8
-visualizer_data_source = /tmp/mpd.fifo
-visualizer_output_name = my_fifo
-visualizer_in_stereo = no
-visualizer_type = spectrum
-visualizer_look = ∙▋
-visualizer_color = 7,5,8,3
-song_columns_list_format = "(50)[green]{a} (50)[white]{t|f}"
-
-playlist_display_mode = columns
-browser_display_mode = columns
-
-ncmpcpp_directory = ~/.config/ncmpcpp
-lyrics_directory = /tmp
-store_lyrics_in_song_dir = yes
-autocenter_mode = "yes"
-centered_cursor = "yes"
-cyclic_scrolling = "no"
-
-titles_visibility = "no"
-header_visibility = "no"
-statusbar_visibility = "no"
-progressbar_look = "❙❙❙"
-progressbar_color = "white"
-
-user_interface = "classic"
-
-startup_screen = playlist
-startup_slave_screen = visualizer
-startup_slave_screen_focus = no
-locked_screen_width_part = 35
(DIR) diff --git a/newsraft/feeds b/newsraft/feeds
@@ -12,11 +12,13 @@ https://old.reddit.com/r/ukbike/.rss "R UKBike"
https://old.reddit.com/r/nosurf/.rss "R NoSurf"
https://old.reddit.com/r/shortwave/.rss "R Shortwave"
-@ RADIO
+@ OUTDOORS
https://www.hfunderground.com/board/index.php?type=rss;action=.xml
+https://bushcraftuk.com/community/forums/-/index.rss
@ MEDIA
https://showrss.info/other/all.rss "TV Torrents"
+http://feed.rutracker.cc/atom/f/1992.atom "RU Tracker"
@ GAMING
https://www.gamingonlinux.com/article_rss.php "Gaming On Linux"
@@ -26,8 +28,6 @@ https://blog.qutebrowser.org/feeds/all.atom.xml "Qutebrowser"
https://newsboat.org/news.atom "Newsboat"
https://git.sr.ht/~taiite/senpai/log/master/rss.xml "Senpai"
https://github.com/mlj/castget/commits.atom "Castget"
-https://status.hetzner.com/en.atom "Hetzner"
-https://gitlab.alpinelinux.org/alpine/aports/-/issues.atom "aports issues"
@ PEOPLE
https://codemadness.org/atom.xml "CodeMadness"
(DIR) diff --git a/profile b/profile
@@ -1,2 +1,2 @@
-export ENV=$HOME/.ashrc
+export ENV=$HOME/.bashrc
. $ENV
(DIR) diff --git a/slrn/colors b/slrn/colors
@@ -1,125 +0,0 @@
-%
-%% 9. Display / color settings
-%
-
-% If non-zero, slrn will draw the thread tree using simple ascii characters
-%set simulate_graphic_chars 0
-
-% Enable xterm/win32 mouse support: 1 to enable, 0 to disable
-%set mouse 1
-
-% Draw cursor bar ala tin instead of slrn "->" cursor?
-set display_cursor_bar 1
-
-% Set to 1 to have slrn scroll by full page instead of by line.
-%set scroll_by_page 0
-
-% Should color be used to indicate the score of an article?
-% (0) scores do not influence colors (1) scores are colored by their value
-% (2) subjects are colored by score (3) both are colored by score
-%set color_by_score 3
-
-% If non-zero, the subjects of unread articles are highlighted
-set highlight_unread_subjects 2
-
-% If non-zero, URLs are highlighted.
-set highlight_urls 1
-
-% Enables blinking in monochrome mode and allows bright backgrounds in some
-% color terminals:
-set use_blink 0
-
-% This color object is only used when highlight_unread_subjects is set to 2
-% (see the reference manual for details):
-color unread_subject "default" "default"
-mono unread_subject "none"
-
-% These settings are used for color terminals:
-color article "default" "default"
-color author "default" "default"
-color boldtext "white" "default"
-color box "black" "white"
-color cursor "default" "default" "reverse"
-color date "default" "default"
-color description "default" "default"
-color error "brightred" "default"
-color frame "gray" "black"
-color from_myself "brightmagenta" "default"
-color group "default" "default"
-color grouplens_display "gray" "default"
-color header_number "gray" "default"
-color header_name "gray" "default"
-color headers "gray" "default"
-color neg_score "red" "default"
-color pos_score "brightblue" "default"
-color high_score "yellow" "default"
-color italicstext "white" "default"
-color menu "white" "black"
-color menu_press "white" "gray"
-color message "default" "default"
-color normal "lightgray" "default"
-color pgpsignature "cyan" "default"
-color quotes "gray" "default"
-color quotes1 "gray" "default"
-color quotes2 "gray" "default"
-color quotes3 "gray" "default"
-color quotes4 "gray" "default"
-color quotes5 "gray" "default"
-color quotes6 "gray" "default"
-color quotes7 "gray" "default"
-color response_char "blue" "default"
-color signature "gray" "default"
-color selection "white" "gray"
-color status "white" "black"
-color subject "default" "default"
-color thread_number "gray" "default"
-color tilde "gray" "default"
-color tree "gray" "default"
-color underlinetext "white" "default" "underline"
-color url "brightblue" "default"
-color verbatim "white" "default"
-
-% These attributes are for terminals that cannot display color:
-mono article "none"
-mono author "none"
-mono boldtext "bold"
-mono cursor "bold" "reverse"
-mono date "none"
-mono description "none"
-mono error "blink"
-mono frame "reverse"
-mono from_myself "bold"
-mono group "bold"
-mono grouplens_display "none"
-mono header_name "bold"
-mono header_number "none"
-mono headers "none"
-mono high_score "bold"
-mono italicstext "bold"
-mono menu "reverse"
-mono menu_press "none"
-mono neg_score "none"
-mono normal "none"
-mono pgpsignature "none"
-mono pos_score "reverse"
-mono quotes "none"
-mono quotes1 "none"
-mono quotes2 "none"
-mono quotes3 "none"
-mono quotes4 "none"
-mono quotes5 "none"
-mono quotes6 "none"
-mono quotes7 "none"
-mono response_char "bold"
-mono selection "bold"
-mono signature "none"
-mono status "reverse"
-mono subject "none"
-mono thread_number "bold"
-mono tilde "bold"
-mono tree "none"
-mono underlinetext "underline"
-mono url "bold"
-mono verbatim "none"
-
-% vim:set ft=slrnrc:
(DIR) diff --git a/slrn/config b/slrn/config
@@ -1,45 +0,0 @@
-% user
-set username "jay"
-set hostname "jay.invalid"
-set realname "jay"
-set generate_message_id 0
-
-% apps
-set editor_command "vim '+set tw=72' +%d '%s'"
-set Xbrowser "firefox '%s' &"
-
-% attrib
-set followup_string "On %D, %r <%f> wrote:"
-set reply_string "In %n, you wrote:"
-
-% paths
-set scorefile ".config/slrn/score"
-set spool_inn_root "/home/jay/.config/slrn/"
-set spool_root "/home/jay/.config/slrn/news"
-set spool_nov_root "/home/jay/.config/slrn/news"
-set read_active 1
-set use_slrnpull 1
-set server_object "spool"
-
-% mime
-charset display utf8
-charset outgoing utf8
-
-% display
-set confirm_actions 0
-set sorting_method 9
-set uncollapse_threads 1
-set top_status_line " %n"
-set group_status_line "%D %-20g -- %L (%P)"
-set header_status_line "%p [%r/%t] %-20g -- %L (%P)"
-set art_status_line "%p %s %-20g -- %L (%P)"
-set overview_date_format "%d %b %Y %H:%M"
-
-visible_headers "Date:,From:,Newsgroups:,Subject:"
-header_display_format 0 "%F%B %21r %T%s %-26g %D %-5c"
-
-% keybinds
-setkey group "set_prefix_argument(4); () = select_group();" "
-setkey article create_score "K"
-
-include ".config/slrn/colors"
(DIR) diff --git a/slrn/score b/slrn/score
@@ -1,26 +0,0 @@
-% : Logical AND ie all tests must be passed (Conjunction)
-% :: Logical OR ie any of the tests are passed (Disjunction)
-% ~ Logical NOT ie an exception from the score rule (Negation)
-% = Stop score processing and award the score if the test is passed
-% * Wild card character
-
-[*]
- Score:: -9999
- %
- % Kill all articles which are uppercase and contain $ sign
- Subject: \$
- ~Subject: \c[a-z]
- %
- % Google groups are a source of, basically, all spam
- Message-ID: googlegroups
- %
- % Known spam remailer
- From: nobody@dizum\.com
- %
- % Prolific spammer
- From: doctor@doctor\.nl2k\.ab\.ca
-
-[eternal-september.*]
- Score:: -9999
- From: Tigerbrother
- From: Dragonbrother
(DIR) diff --git a/slrn/slrnpull.conf b/slrn/slrnpull.conf
@@ -1,50 +0,0 @@
-default 0 0 0
-
-eternal-september.info
-eternal-september.newusers
-eternal-september.talk
-eternal-september.support
-eternal-september.config
-eternal-september.test
-eternal-september.grouprequests
-eternal-september.where.are.all.the.newsgroups
-alt.2600
-alt.2600.hackers
-alt.2600.hope
-alt.anonymous
-alt.culture.usenet
-alt.fan.countries.scotland
-alt.fan.usenet
-alt.gopher
-alt.linux
-alt.ph.uk
-alt.usenet.newbies
-comp.infosystems.gopher
-comp.mail.mutt
-comp.os.linux.announce
-comp.os.misc
-free.answers
-mailing.unix.mutt-users
-mailing.unix.slrn
-news.groups
-news.groups.proposals
-news.groups.questions
-news.software.nntp
-rec.radio.shortwave
-soc.culture.scottish
-uk.local.scot-highlands
-uk.radio.amateur
-uk.telecom
-comp.infosystems.gemini
-alt.comp.software.tools
-alt.conspiracy
-alt.cyberpunk
-alt.folklore.computers
-alt.hacker
-alt.hacking
-alt.os.linux.slackware
-alt.os.linux
-alt.privacy
-alt.radio.talk
-news.admin.peering
-alt.cypherpunks
(DIR) diff --git a/suckless/dmenu/Makefile b/suckless/dmenu/Makefile
@@ -0,0 +1,39 @@
+REPOSITORY = http://git.suckless.org/dmenu
+SRC_DIR = src
+PINNED_REVISION = HEAD
+PATCH_DIR = patches
+
+all: $(SRC_DIR)
+
+clean: reset
+ @if test -d $(SRC_DIR); then \
+ $(MAKE) -C "${SRC_DIR}" -s clean; \
+ git -C "${SRC_DIR}" clean -f; \
+ fi
+
+$(SRC_DIR): clone reset
+ @cp config.h $@
+ $(MAKE) -C "${SRC_DIR}" -s
+
+patch: $(PATCH_DIR)/*
+ @for file in $^ ; do \
+ patch -d "${SRC_DIR}" < $${file}; \
+ done
+reset:
+ @if [ -n "$(strip $(PINNED_REVISION))" ]; then \
+ git -C "${SRC_DIR}" reset --hard $(PINNED_REVISION); \
+ fi
+
+clone:
+ @if ! test -d $(SRC_DIR); then \
+ git clone $(REPOSITORY) $(SRC_DIR); \
+ fi
+
+update: clean
+ @git -C "${SRC_DIR}" pull
+
+install:
+ $(MAKE) -C "${SRC_DIR}" -s install
+
+
+.PHONY: all clean update install reset clone
(DIR) diff --git a/suckless/dmenu/config.h b/suckless/dmenu/config.h
@@ -0,0 +1,16 @@
+static int topbar = 1;
+static const char *fonts[] = {
+ "Hack:pixelsize=14"
+};
+static int centered = 1;
+static const char *prompt = "run »";
+static const char *colors[SchemeLast][2] = {
+ [SchemeNorm] = { "#ffd7af", "#222222" },
+ [SchemeSel] = { "#eeeeee", "#008000" },
+ [SchemeOut] = { "#000000", "#00ffff" },
+};
+
+static unsigned int lines = 0;
+static const char worddelimiters[] = " ";
+static int min_width = 800;
+static unsigned int border_width = 3;
(DIR) diff --git a/suckless/dmenu/patches/01-dmenu-border-4.9.diff b/suckless/dmenu/patches/01-dmenu-border-4.9.diff
@@ -0,0 +1,36 @@
+diff --git a/config.def.h b/config.def.h
+index 1edb647..dd3eb31 100644
+--- a/config.def.h
++++ b/config.def.h
+@@ -21,3 +21,6 @@ static unsigned int lines = 0;
+ * for example: " /?\"&[]"
+ */
+ static const char worddelimiters[] = " ";
++
++/* Size of the window border */
++static unsigned int border_width = 0;
+diff --git a/dmenu.c b/dmenu.c
+index 27b7a30..7c130fc 100644
+--- a/dmenu.c
++++ b/dmenu.c
+@@ -684,9 +684,11 @@ setup(void)
+ swa.override_redirect = True;
+ swa.background_pixel = scheme[SchemeNorm][ColBg].pixel;
+ swa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask;
+- win = XCreateWindow(dpy, root, x, y, mw, mh, 0,
++ win = XCreateWindow(dpy, root, x, y, mw, mh, border_width,
+ CopyFromParent, CopyFromParent, CopyFromParent,
+ CWOverrideRedirect | CWBackPixel | CWEventMask, &swa);
++ if (border_width)
++ XSetWindowBorder(dpy, win, scheme[SchemeSel][ColBg].pixel);
+ XSetClassHint(dpy, win, &ch);
+
+
+@@ -757,6 +759,8 @@ main(int argc, char *argv[])
+ colors[SchemeSel][ColFg] = argv[++i];
+ else if (!strcmp(argv[i], "-w")) /* embedding window id */
+ embed = argv[++i];
++ else if (!strcmp(argv[i], "-bw"))
++ border_width = atoi(argv[++i]); /* border width */
+ else
+ usage();
(DIR) diff --git a/suckless/dmenu/patches/02-dmenu-center-20200111-8cd37e1.diff b/suckless/dmenu/patches/02-dmenu-center-20200111-8cd37e1.diff
@@ -0,0 +1,120 @@
+From 8cd37e1ab9e7cb025224aeb3543f1a5be8bceb93 Mon Sep 17 00:00:00 2001
+From: Nihal Jere <nihal@nihaljere.xyz>
+Date: Sat, 11 Jan 2020 21:16:08 -0600
+Subject: [PATCH] center patch now has adjustable minimum width
+
+---
+ config.def.h | 2 ++
+ dmenu.1 | 3 +++
+ dmenu.c | 39 ++++++++++++++++++++++++++++++++-------
+ 3 files changed, 37 insertions(+), 7 deletions(-)
+
+diff --git a/config.def.h b/config.def.h
+index 1edb647..88ef264 100644
+--- a/config.def.h
++++ b/config.def.h
+@@ -2,6 +2,8 @@
+ /* Default settings; can be overriden by command line. */
+
+ static int topbar = 1; /* -b option; if 0, dmenu appears at bottom */
++static int centered = 0; /* -c option; centers dmenu on screen */
++static int min_width = 500; /* minimum width when centered */
+ /* -fn option overrides fonts[0]; default X11 font or font set */
+ static const char *fonts[] = {
+ "monospace:size=10"
+diff --git a/dmenu.1 b/dmenu.1
+index 323f93c..c036baa 100644
+--- a/dmenu.1
++++ b/dmenu.1
+@@ -40,6 +40,9 @@ which lists programs in the user's $PATH and runs the result in their $SHELL.
+ .B \-b
+ dmenu appears at the bottom of the screen.
+ .TP
++.B \-c
++dmenu appears centered on the screen.
++.TP
+ .B \-f
+ dmenu grabs the keyboard before reading stdin if not reading from a tty. This
+ is faster, but will lock up X until stdin reaches end\-of\-file.
+diff --git a/dmenu.c b/dmenu.c
+index 65f25ce..041c7f8 100644
+--- a/dmenu.c
++++ b/dmenu.c
+@@ -89,6 +89,15 @@ calcoffsets(void)
+ break;
+ }
+
++static int
++max_textw(void)
++{
++ int len = 0;
++ for (struct item *item = items; item && item->text; item++)
++ len = MAX(TEXTW(item->text), len);
++ return len;
++}
++
+ static void
+ cleanup(void)
+ {
+@@ -611,6 +620,7 @@ setup(void)
+ bh = drw->fonts->h + 2;
+ lines = MAX(lines, 0);
+ mh = (lines + 1) * bh;
++ promptw = (prompt && *prompt) ? TEXTW(prompt) - lrpad / 4 : 0;
+ #ifdef XINERAMA
+ i = 0;
+ if (parentwin == root && (info = XineramaQueryScreens(dpy, &n))) {
+@@ -637,9 +647,16 @@ setup(void)
+ if (INTERSECT(x, y, 1, 1, info[i]))
+ break;
+
+- x = info[i].x_org;
+- y = info[i].y_org + (topbar ? 0 : info[i].height - mh);
+- mw = info[i].width;
++ if (centered) {
++ mw = MIN(MAX(max_textw() + promptw, min_width), info[i].width);
++ x = info[i].x_org + ((info[i].width - mw) / 2);
++ y = info[i].y_org + ((info[i].height - mh) / 2);
++ } else {
++ x = info[i].x_org;
++ y = info[i].y_org + (topbar ? 0 : info[i].height - mh);
++ mw = info[i].width;
++ }
++
+ XFree(info);
+ } else
+ #endif
+@@ -647,11 +664,17 @@ setup(void)
+ if (!XGetWindowAttributes(dpy, parentwin, &wa))
+ die("could not get embedding window attributes: 0x%lx",
+ parentwin);
+- x = 0;
+- y = topbar ? 0 : wa.height - mh;
+- mw = wa.width;
++
++ if (centered) {
++ mw = MIN(MAX(max_textw() + promptw, min_width), wa.width);
++ x = (wa.width - mw) / 2;
++ y = (wa.height - mh) / 2;
++ } else {
++ x = 0;
++ y = topbar ? 0 : wa.height - mh;
++ mw = wa.width;
++ }
+ }
+- promptw = (prompt && *prompt) ? TEXTW(prompt) - lrpad / 4 : 0;
+ inputw = MIN(inputw, mw/3);
+ match();
+
+@@ -709,6 +732,8 @@ main(int argc, char *argv[])
+ topbar = 0;
+ else if (!strcmp(argv[i], "-f")) /* grabs keyboard before reading stdin */
+ fast = 1;
++ else if (!strcmp(argv[i], "-c")) /* centers dmenu on screen */
++ centered = 1;
+ else if (!strcmp(argv[i], "-i")) { /* case-insensitive item matching */
+ fstrncmp = strncasecmp;
+ fstrstr = cistrstr;
+--
+2.24.1
+
(DIR) diff --git a/suckless/dwm/Makefile b/suckless/dwm/Makefile
@@ -0,0 +1,35 @@
+REPOSITORY = http://git.suckless.org/dwm
+SRC_DIR = src
+PINNED_REVISION = HEAD
+
+all: $(SRC_DIR)
+
+clean: reset
+ @if test -d $(SRC_DIR); then \
+ cd $(SRC_DIR); \
+ $(MAKE) -s clean; \
+ git clean -f; \
+ fi
+
+$(SRC_DIR): clone reset
+ @cp config.h $@
+ @cd $@ && $(MAKE) -s
+
+reset:
+ @if [ -n "$(strip $(PINNED_REVISION))" ]; then \
+ cd $(SRC_DIR) && git reset --hard $(PINNED_REVISION); \
+ fi
+
+clone:
+ @if ! test -d $(SRC_DIR); then \
+ git clone $(REPOSITORY) $(SRC_DIR); \
+ fi
+
+update: clean
+ @cd $(SRC_DIR) && git pull
+
+install:
+ $(MAKE) -C "${SRC_DIR}" -s install
+
+
+.PHONY: all clean update install reset clone
(DIR) diff --git a/suckless/dwm/config.h b/suckless/dwm/config.h
@@ -0,0 +1,195 @@
+/* See LICENSE file for copyright and license details. */
+
+/* appearance */
+static const unsigned int borderpx = 2;
+static const unsigned int snap = 32;
+static const int lockfullscreen = 1;
+static const int showbar = 1;
+static const int topbar = 1;
+static const char *fonts[] = { "Hack:size=10" };
+static const char dmenufont[] = "Hack:size=10";
+static const char col_gray1[] = "#222222";
+static const char col_gray2[] = "#444444";
+static const char col_gray3[] = "#bbbbbb";
+static const char col_gray4[] = "#eeeeee";
+static const char col_cyan[] = "#222222";
+static const char *colors[][3] = {
+ /* fg bg border */
+ [SchemeNorm] = { col_gray3, col_gray1, col_cyan },
+ [SchemeSel] = { col_gray4, col_cyan, col_gray2 },
+};
+
+
+/* custom functions */
+static void togglefullscreen(const Arg *arg);
+static void bstack(Monitor *m);
+static void centeredfloatingmaster(Monitor *m);
+
+/* custom defines for mouse buttons */
+/* only 1-5 are defined in X11/X.h */
+#define Button8 8
+#define Button9 9
+
+/* tagging */
+static const char *tags[] = { "1", "2", "3", "4", "5" };
+
+static Rule rules[] = {
+ /* class instance title tags mask isfloating monitor */
+ { NULL, NULL, NULL, 0, False, -1 },
+};
+
+/* layout(s) */
+static const float mfact = 0.65;
+static const int nmaster = 1;
+static const int resizehints = 0;
+
+static const Layout layouts[] = {
+ { ">M>", centeredfloatingmaster },
+ { "[]=", tile },
+ { "TTT", bstack },
+ { "><>", NULL },
+};
+
+#define MODKEY Mod1Mask
+#define TAGKEYS(KEY,TAG) \
+{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
+{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
+{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
+{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
+
+#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
+
+/* commands */
+static char dmenumon[2] = "0";
+static const char *dmenucmd[] = { "dmenu_run", NULL };
+static const char *termcmd[] = { "alacritty", NULL };
+static const char *webcmd[] = { "firefox", NULL };
+static const char *ytcmd[] = { "ytfzf", "-D", NULL };
+static const char *gamecmd[] = { "/home/jay/bin/game_select.sh", NULL };
+static const char *volup[] = { "pamixer", "-i", "5", NULL };
+static const char *voldown[] = { "pamixer", "-d", "5", NULL };
+
+
+static Key keys[] = {
+ /* modifier key function argument */
+ { MODKEY, XK_p, spawn, {.v = dmenucmd } },
+ { MODKEY, XK_space, spawn, {.v = termcmd } },
+ { MODKEY, XK_f, spawn, {.v = webcmd } },
+ { MODKEY, XK_y, spawn, {.v = ytcmd } },
+ { MODKEY, XK_g, spawn, {.v = gamecmd } },
+ { MODKEY, XK_u, spawn, {.v = volup } },
+ { MODKEY, XK_d, spawn, {.v = voldown } },
+ { MODKEY, XK_j, focusstack, {.i = +1 } },
+ { MODKEY, XK_k, focusstack, {.i = -1 } },
+ { MODKEY, XK_h, setmfact, {.f = -0.05} },
+ { MODKEY, XK_l, setmfact, {.f = +0.05} },
+ { MODKEY, XK_Return, zoom, {0} },
+ { MODKEY, XK_Tab, view, {0} },
+ { MODKEY, XK_c, killclient, {0} },
+ { MODKEY, XK_m, togglefullscreen, {0} },
+ { MODKEY, XK_period, focusmon, {.i = +1 } },
+ { MODKEY, XK_comma, tagmon, {.i = +1 } },
+ { MODKEY, XK_b, togglebar, {0} },
+ { MODKEY, XK_x, setlayout, {.v = &layouts[0]} },
+ { MODKEY|ShiftMask, XK_x, setlayout, {.v = &layouts[1]} },
+ TAGKEYS( XK_1, 0)
+ TAGKEYS( XK_2, 1)
+ TAGKEYS( XK_3, 2)
+ TAGKEYS( XK_4, 3)
+ TAGKEYS( XK_5, 4)
+ { MODKEY|ShiftMask, XK_q, quit, {0} },
+};
+
+/* button definitions */
+static Button buttons[] = {
+ { ClkRootWin, 0, Button8, spawn, {.v = voldown } },
+ { ClkRootWin, 0, Button9, spawn, {.v = volup } },
+ };
+
+void
+togglefullscreen(const Arg *arg)
+{
+ if (!selmon->sel)
+ return;
+ setfullscreen(selmon->sel, !selmon->sel->isfullscreen);
+}
+
+static void
+bstack(Monitor *m) {
+ int w, h, mh, mx, tx, ty, tw;
+ unsigned int i, n;
+ Client *c;
+
+ for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
+ if (n == 0)
+ return;
+ if (n > m->nmaster) {
+ mh = m->nmaster ? m->mfact * m->wh : 0;
+ tw = m->ww / (n - m->nmaster);
+ ty = m->wy + mh;
+ } else {
+ mh = m->wh;
+ tw = m->ww;
+ ty = m->wy;
+ }
+ for (i = mx = 0, tx = m->wx, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) {
+ if (i < m->nmaster) {
+ w = (m->ww - mx) / (MIN(n, m->nmaster) - i);
+ resize(c, m->wx + mx, m->wy, w - (2 * c->bw), mh - (2 * c->bw), 0);
+ mx += WIDTH(c);
+ } else {
+ h = m->wh - mh;
+ resize(c, tx, ty, tw - (2 * c->bw), h - (2 * c->bw), 0);
+ if (tw != m->ww)
+ tx += WIDTH(c);
+ }
+ }
+}
+
+void
+centeredfloatingmaster(Monitor *m)
+{
+ unsigned int i, n, w, mh, mw, mx, mxo, my, myo, tx;
+ Client *c;
+
+ /* count number of clients in the selected monitor */
+ for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
+ if (n == 0)
+ return;
+
+ /* initialize nmaster area */
+ if (n > m->nmaster) {
+ /* go mfact box in the center if more than nmaster clients */
+ if (m->ww > m->wh) {
+ mw = m->nmaster ? m->ww * m->mfact : 0;
+ mh = m->nmaster ? m->wh * 0.9 : 0;
+ } else {
+ mh = m->nmaster ? m->wh * m->mfact : 0;
+ mw = m->nmaster ? m->ww * 0.9 : 0;
+ }
+ mx = mxo = (m->ww - mw) / 2;
+ my = myo = (m->wh - mh) / 2;
+ } else {
+ /* go fullscreen if all clients are in the master area */
+ mh = m->wh;
+ mw = m->ww;
+ mx = mxo = 0;
+ my = myo = 0;
+ }
+
+ for(i = tx = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
+ if (i < m->nmaster) {
+ /* nmaster clients are stacked horizontally, in the center
+ * of the screen */
+ w = (mw + mxo - mx) / (MIN(n, m->nmaster) - i);
+ resize(c, m->wx + mx, m->wy + my, w - (2*c->bw),
+ mh - (2*c->bw), 0);
+ mx += WIDTH(c);
+ } else {
+ /* stack clients are stacked horizontally */
+ w = (m->ww - tx) / (n - i);
+ resize(c, m->wx + tx, m->wy, w - (2*c->bw),
+ m->wh - (2*c->bw), 0);
+ tx += WIDTH(c);
+ }
+}
(DIR) diff --git a/suckless/herbe/Makefile b/suckless/herbe/Makefile
@@ -0,0 +1,40 @@
+REPOSITORY = https://github.com/dudik/herbe.git
+SRC_DIR = src
+PINNED_REVISION = HEAD
+PATCH_DIR = patches
+
+all: $(SRC_DIR)
+
+clean: reset
+ @if test -d $(SRC_DIR); then \
+ $(MAKE) -C "${SRC_DIR}" -s clean; \
+ git -C "${SRC_DIR}" clean -f; \
+ fi
+
+$(SRC_DIR): clone reset
+ @cp config.h $@
+ $(MAKE) -C "${SRC_DIR}" -s
+
+reset:
+ @if [ -n "$(strip $(PINNED_REVISION))" ]; then \
+ git -C "${SRC_DIR}" reset --hard $(PINNED_REVISION); \
+ fi
+
+patch: $(PATCH_DIR)/*
+ @for file in $^ ; do \
+ patch -d "${SRC_DIR}" < $${file}; \
+ done
+
+clone:
+ @if ! test -d $(SRC_DIR); then \
+ git clone $(REPOSITORY) $(SRC_DIR); \
+ fi
+
+update: clean
+ @git -C "${SRC_DIR}" pull
+
+install:
+ $(MAKE) -C "${SRC_DIR}" -s install
+
+
+.PHONY: all clean update install reset clone
(DIR) diff --git a/suckless/herbe/config.h b/suckless/herbe/config.h
@@ -0,0 +1,19 @@
+static const char *background_color = "#222222";
+static const char *border_color = "#008000";
+static const char *font_color = "#ffd7af";
+static const char *font_pattern = "Hack:pixelsize=12";
+static unsigned line_spacing = 5;
+static unsigned int padding = 12;
+
+static unsigned int width = 300;
+static unsigned int border_size = 3;
+static unsigned int pos_x = 30;
+static unsigned int pos_y = 60;
+
+enum corners { TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT };
+enum corners corner = TOP_RIGHT;
+
+static unsigned int duration = 5; /* in seconds */
+
+#define DISMISS_BUTTON Button1
+#define ACTION_BUTTON Button3
(DIR) diff --git a/sway/config b/sway/config
@@ -1,89 +0,0 @@
-set $mod Mod1
-
-# colour theme
-set $colour #013220
-
-set $left h
-set $down j
-set $up k
-set $right l
-
-# apps
-set $term footclient -d none
-set $browser qutebrowser
-set $steam flatpak run --user com.valvesoftware.Steam
-set $menu bemenu-run -p '> ' --tb '$colour' --tf '#ffffff' --hf '#444444'
-set $vol pamixer
-
-# autostart
-exec foot --server
-exec wl-paste -t text --watch clipman store --no-persist
-exec mpd
-exec /usr/libexec/pipewire-launcher
-
-# apperance
-default_border none
-default_floating_border none
-workspace_layout tabbed
-font pango: Hack:style=Regular 2
-
-# misc
-xwayland enable
-
-# Keyboard layout
-input * {
- xkb_layout "gb"
- xkb_variant "extd"
-}
-
-# monitors
-output HDMI-A-1 pos 0 0 res 1920x1080
-output DP-1 pos 1920 0 res 1920x1080
-focus output DP-1
-
-# workspaces
-workspace 1 HDMI-A-1
-workspace 2 HDMI-A-1
-workspace 3 DP-1
-workspace 4 DP-1
-
-# Keybinds
-bindsym $mod+Space exec $term
-bindsym $mod+p exec $menu
-bindsym $mod+f exec $browser
-bindsym $mod+s exec $steam
-bindsym $mod+u exec $vol -i 5
-bindsym $mod+d exec $vol -d 5
-
-bindsym $mod+c kill
-bindsym $mod+Shift+c reload
-bindsym $mod+Shift+q exec swaymsg exit
-
-# 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
-
-# Switch to workspace
-bindsym $mod+1 workspace number 1
-bindsym $mod+2 workspace number 2
-bindsym $mod+3 workspace number 3
-bindsym $mod+4 workspace number 4
-
-bindsym $mod+Shift+1 move container to workspace number 1
-bindsym $mod+Shift+2 move container to workspace number 2
-bindsym $mod+Shift+3 move container to workspace number 3
-bindsym $mod+Shift+4 move container to workspace number 4
-
-bindsym $mod+e layout toggle split
-bindsym $mod+m fullscreen
-bindsym $mod+w layout tabbed
-
-client.focused $colour $colour $colour