Introduction
Introduction Statistics Contact Development Disclaimer Help
Moving to X11, better gaming exp. - dotfiles - These are my dotfiles. There are…
Log
Files
Refs
README
---
commit 406144df3d4c0ddd9f25bc8113c78525953d1299
parent 1a92abacbd9178d67fa34a030a9ab80b4b596849
Author: Jay Scott <[email protected]>
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(-)
---
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
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
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:
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
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'
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 …
-
-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…
-alias gd='git diff'
-alias gma='git commit -am'
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 …
+
+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…
+alias gd='git diff'
+alias gma='git commit -am'
+
+source ~/.secret
diff --git a/bin/old/dwmstatus.sh b/bin/dwmstatus.sh
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
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" |…
-
-[ -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
diff --git a/bin/sway-run.sh b/bin/old/sway-run.sh
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 …
+CONFIG='alacritty git isync lynx mutt newsraft qutebrowser senpai X11'
link() {
for f in $FILES; do ln -sfn "$DOTFILES/$f" "$HOME/.$f"; done
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
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
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"
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
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"
diff --git a/profile b/profile
@@ -1,2 +1,2 @@
-export ENV=$HOME/.ashrc
+export ENV=$HOME/.bashrc
. $ENV
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:
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"
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
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
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
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;
diff --git a/suckless/dmenu/patches/01-dmenu-border-4.9.diff b/suckless/dmenu/p…
@@ -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, &…
++ 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();
diff --git a/suckless/dmenu/patches/02-dmenu-center-20200111-8cd37e1.diff b/suc…
@@ -0,0 +1,120 @@
+From 8cd37e1ab9e7cb025224aeb3543f1a5be8bceb93 Mon Sep 17 00:00:00 2001
+From: Nihal Jere <[email protected]>
+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 appear…
++static int centered = 0; /* -c option; centers dmenu on sc…
++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…
+ .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[…
++ 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.wi…
++ 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 r…
+ fast = 1;
++ else if (!strcmp(argv[i], "-c")) /* centers dmenu on screen…
++ centered = 1;
+ else if (!strcmp(argv[i], "-i")) { /* case-insensitive item m…
+ fstrncmp = strncasecmp;
+ fstrstr = cistrstr;
+--
+2.24.1
+
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
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 monit…
+ { 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 = dmenu…
+ { MODKEY, XK_space, spawn, {.v = termc…
+ { MODKEY, XK_f, spawn, {.v = webcm…
+ { MODKEY, XK_y, spawn, {.v = ytcmd…
+ { MODKEY, XK_g, spawn, {.v = gamec…
+ { MODKEY, XK_u, spawn, {.v = volup…
+ { MODKEY, XK_d, spawn, {.v = voldo…
+ { 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 = &layo…
+ { MODKEY|ShiftMask, XK_x, setlayout, {.v = &layo…
+ 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, …
+ { ClkRootWin, 0, Button9, spawn, …
+ };
+
+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 = nexttil…
+ 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 …
+ 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), …
+ 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);
+ }
+}
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
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
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
You are viewing proxied material from jay.scot. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.