home: major restructuring
needs more work
This commit is contained in:
30
home/natto/config/bspwm/bspwmrc
Executable file
30
home/natto/config/bspwm/bspwmrc
Executable file
@@ -0,0 +1,30 @@
|
||||
#! /bin/sh
|
||||
bspc rule -r "*"
|
||||
##Autostart
|
||||
pgrep -x sxhkd > /dev/null || sxhkd &
|
||||
picom --experimental-backends &
|
||||
feh --bg-scale ~/Downloads/gruvbox.jpg &
|
||||
killall "polybar"
|
||||
polybar main &
|
||||
killall node
|
||||
node /mnt/Stuff/code/muhbot
|
||||
|
||||
|
||||
|
||||
bspc monitor -d
|
||||
#bspc monitor -d I II III IV V VI VII VIII IX X
|
||||
|
||||
bspc config border_width 2
|
||||
bspc config window_gap 10
|
||||
bspc config focus_follows_pointer true
|
||||
|
||||
bspc config split_ratio 0.52
|
||||
bspc config borderless_monocle true
|
||||
bspc config gapless_monocle true
|
||||
bspc config single_monocle true
|
||||
bspc config top_padding 50
|
||||
|
||||
bspc config normal_border_color "#ffffff"
|
||||
bspc config active_border_color "#1bb1b1"
|
||||
bspc config focused_border_color "#fe8019"
|
||||
bspc config urgent_border_color "#fe8019"
|
||||
66
home/natto/config/dunst/dunstrc
Normal file
66
home/natto/config/dunst/dunstrc
Normal file
@@ -0,0 +1,66 @@
|
||||
[global]
|
||||
monitor = 0
|
||||
follow = mouse
|
||||
geometry = "250x20-50+20"
|
||||
|
||||
# Turn on the progess bar
|
||||
progress_bar = true
|
||||
progress_bar_height = 3
|
||||
progress_bar_frame_width = 1
|
||||
progress_bar_min_width = 125
|
||||
progress_bar_max_width = 250
|
||||
indicate_hidden = yes
|
||||
shrink = no
|
||||
|
||||
transparency = 0.8
|
||||
separator_height = 2
|
||||
padding = 5
|
||||
text_icon_padding = 4
|
||||
frame_width = 3
|
||||
frame_color = "#ebdbb2"
|
||||
separator_color = frame
|
||||
sort = yes
|
||||
idle_threshold = 120
|
||||
font = Fira Mono 10
|
||||
markup = full
|
||||
format = "<b>%a<b> - %s\n%b"
|
||||
alignment = left
|
||||
vertical_alignment = center
|
||||
show_age_threshold = 60
|
||||
word_wrap = yes
|
||||
ellipsize = middle
|
||||
ignore_newline = no
|
||||
stack_duplicates = true
|
||||
hide_duplicate_count = false
|
||||
show_indicators = yes
|
||||
icon_position = left
|
||||
min_icon_size = 0
|
||||
max_icon_size = 32
|
||||
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
|
||||
sticky_history = yes
|
||||
history_length = 20
|
||||
dmenu = /usr/bin/dmenu -p dunst:
|
||||
browser = /usr/bin/firefox -new-tab
|
||||
always_run_script = true
|
||||
title = Dunst
|
||||
class = Dunst
|
||||
startup_notification = false
|
||||
verbosity = mesg
|
||||
corner_radius = 1
|
||||
ignore_dbusclose = false
|
||||
|
||||
[urgency_low]
|
||||
background = "#222222"
|
||||
foreground = "#888888"
|
||||
timeout = 10
|
||||
|
||||
[urgency_normal]
|
||||
background = "#285577"
|
||||
foreground = "#ffffff"
|
||||
timeout = 10
|
||||
|
||||
[urgency_critical]
|
||||
background = "#900000"
|
||||
foreground = "#ffffff"
|
||||
frame_color = "#ff0000"
|
||||
timeout = 10
|
||||
2
home/natto/config/dwm/autostart.sh
Executable file
2
home/natto/config/dwm/autostart.sh
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env bash
|
||||
~/.dwm/bruhstatus.sh &
|
||||
47
home/natto/config/dwm/bruhstatus.sh
Executable file
47
home/natto/config/dwm/bruhstatus.sh
Executable file
@@ -0,0 +1,47 @@
|
||||
#!/usr/bin/env bash
|
||||
prevtotload=0
|
||||
previdleload=0
|
||||
#tt=$(date +"%s")
|
||||
#bgfile=$(ls ~/Wallpapers/** | shuf -n 1)
|
||||
#for N in {99..1}; do
|
||||
# magick convert $bgfile -fill black -colorize $N% jpg:- | feh --bg-scale -
|
||||
#done
|
||||
#feh --bg-scale $bgfile
|
||||
while true; do
|
||||
cputemp=$(($(cat /sys/class/thermal/thermal_zone0/temp)/1000))
|
||||
gputemp=$(nvidia-smi | head -n 10 | tail -n 1 |awk '{print $3}'| cut -c 1-2)
|
||||
totmem=$(cat /proc/meminfo | awk '/MemTotal:/ {print $2}')
|
||||
echo $totmem
|
||||
availmem=$(cat /proc/meminfo | awk '/MemAvailable:/ {print $2}')
|
||||
echo $availmem
|
||||
totload=$(cat /proc/stat | awk '/cpu/'|head -n 1|awk '{print $2+$3+$4+$5+$6+$7+$8}')
|
||||
echo $totload
|
||||
idleload=$(cat /proc/stat | awk '/cpu/'|head -n 1|awk '{print $5}')
|
||||
echo $idleload
|
||||
totloadchange=$(($totload-$prevtotload))
|
||||
idleloadchange=$(($idleload-$previdleload))
|
||||
xsetroot -name\
|
||||
"CPU [$(printf %0.2f $(echo "($totloadchange-$idleloadchange)*100/$totloadchange" | bc -l))%]\
|
||||
MEM [$(printf %0.2f $(echo \($totmem - $availmem\)/1024/1024|bc -l))/\
|
||||
$(printf %0.2f $(echo $totmem/1024/1024 | bc -l))]\
|
||||
TEMP [$cputemp°C|$gputemp°C]\
|
||||
BAT$($(cat /sys/class/power_supply/BAT1/status | grep -q Discharging) && echo " " || echo "")\
|
||||
[$(cat /sys/class/power_supply/BAT1/capacity)%]\
|
||||
VOL [$(pamixer --get-volume)]\
|
||||
[$(date +"%a, %b %d") | $(date +"%H:%M:%S")]"
|
||||
prevtotload=$totload
|
||||
previdleload=$idleload
|
||||
# if [ $(echo $tt+44 | bc -l) -lt $(date +"%s") ]
|
||||
# then
|
||||
#for N in {1..99}; do
|
||||
# magick convert $bgfile -fill black -colorize $N% jpg:- | feh --bg-scale -
|
||||
#done
|
||||
# bgfile=$(ls ~/Wallpapers/** | shuf -n 1)
|
||||
#for N in {99..1}; do
|
||||
# magick convert $bgfile -fill black -colorize $N% jpg:- | feh --bg-scale -
|
||||
#done
|
||||
# feh --bg-scale $bgfile
|
||||
# tt=$(date +"%s")
|
||||
#fi
|
||||
sleep 15
|
||||
done
|
||||
1
home/natto/config/emacs/init.el
Symbolic link
1
home/natto/config/emacs/init.el
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../modules/emacs/init.el
|
||||
2
home/natto/config/firefox/README.md
Normal file
2
home/natto/config/firefox/README.md
Normal file
@@ -0,0 +1,2 @@
|
||||
Shamelessly taken from https://github.com/mut-ex/minimal-functional-fox
|
||||
and added gruvbox colors
|
||||
355
home/natto/config/firefox/userChrome.css
Executable file
355
home/natto/config/firefox/userChrome.css
Executable file
@@ -0,0 +1,355 @@
|
||||
:root {
|
||||
|
||||
/* Minimal Functional Fox variables*/
|
||||
--mff-bg: #1d2021;
|
||||
--mff-icon-color: #bbbbbb;
|
||||
--mff-nav-toolbar-padding: 8px;
|
||||
--mff-sidebar-bg: var(--mff-bg);
|
||||
--mff-sidebar-color: #e0fbfc;
|
||||
--mff-tab-border-radius: 0px;
|
||||
--mff-tab-color: #ebdbb2;
|
||||
--mff-tab-font-family: "Fira Mono for Powerline", sans;
|
||||
--mff-tab-font-size: 11pt;
|
||||
--mff-tab-font-weight: 400;
|
||||
--mff-tab-height: 32px;
|
||||
--mff-tab-pinned-bg: #70c1b3;
|
||||
--mff-tab-selected-bg: #ebdbb2;
|
||||
--mff-tab-selected-color: #1d2021;
|
||||
--mff-tab-soundplaying-bg: #818181;
|
||||
--mff-tab-soundplaying-color: #1d2021;
|
||||
--mff-urlbar-color: #98c1d9;
|
||||
--mff-urlbar-focused-color: #e0fbfc;
|
||||
--mff-urlbar-font-family: "Fira Mono for Powerline", serif;
|
||||
--mff-urlbar-font-size: 12pt;
|
||||
--mff-urlbar-font-weight: 500;
|
||||
--mff-urlbar-results-color: #e0fbfc;
|
||||
--mff-urlbar-results-font-family: "Fira Mono for Powerline", serif;
|
||||
--mff-urlbar-results-font-size: 12pt;
|
||||
--mff-urlbar-results-font-weight: 500;
|
||||
--mff-urlbar-results-url-color: #98c1d9;
|
||||
/* --mff-tab-selected-bg: linear-gradient(90deg, rgba(232,74,95,1) 0%, rgba(255,132,124,1) 50%, rgba(254,206,168,1) 100%); */
|
||||
/* --mff-urlbar-font-weight: 600; */
|
||||
|
||||
/* Overriden Firefox variables*/
|
||||
--autocomplete-popup-background: var(--mff-bg) !important;
|
||||
--default-arrowpanel-background: var(--mff-bg) !important;
|
||||
--default-arrowpanel-color: #fefefa !important;
|
||||
--lwt-toolbarbutton-icon-fill: var(--mff-icon-color) !important;
|
||||
--panel-disabled-color: #f9f9fa80;
|
||||
--toolbar-bgcolor: var(--mff-bg) !important;
|
||||
--urlbar-separator-color: transparent !important;
|
||||
}
|
||||
|
||||
/*
|
||||
_____ _ ___ ___
|
||||
|_ _/_\ | _ ) __|
|
||||
| |/ _ \| _ \__ \
|
||||
|_/_/ \_\___/___/
|
||||
|
||||
*/
|
||||
|
||||
.tab-background[selected="true"] {
|
||||
background: var(--mff-tab-selected-bg) !important;
|
||||
}
|
||||
.tab-text[selected="true"] {
|
||||
color: var(--mff-tab-selected-color) !important;
|
||||
font-weight: bold !important;
|
||||
}
|
||||
.tab-background:not[visuallyselected] {
|
||||
background: var(--mff-tab-selected-bg) !important;
|
||||
opacity: 0.5 !important;
|
||||
}
|
||||
|
||||
/* This positions the tabs under the navaigator container */
|
||||
#titlebar {
|
||||
-moz-box-ordinal-group: 3 !important;
|
||||
}
|
||||
|
||||
.tabbrowser-tab::after,
|
||||
.tabbrowser-tab::before {
|
||||
border-left: none !important;
|
||||
}
|
||||
|
||||
.tab-background {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.tabbrowser-arrowscrollbox {
|
||||
margin-inline-start: 4px !important;
|
||||
margin-inline-end: 0px !important;
|
||||
}
|
||||
|
||||
.tab-close-button {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.tab-text {
|
||||
font-family: var(--mff-tab-font-family);
|
||||
font-weight: var(--mff-tab-font-weight);
|
||||
font-size: var(--mff-tab-font-size) !important;
|
||||
color: var(--mff-tab-color);
|
||||
}
|
||||
|
||||
/* Hide the favicon for tabs */
|
||||
hbox.tab-content .tab-icon-image {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Show the favicon for tabs that are pinned */
|
||||
hbox.tab-content[pinned=true] .tab-icon-image {
|
||||
display: initial !important;
|
||||
}
|
||||
|
||||
hbox.tab-content[pinned=true] .tab-text {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#tabbrowser-tabs {
|
||||
--tab-loading-fill: #033433 !important;
|
||||
|
||||
}
|
||||
|
||||
.tab-label-container:not([textoverflow]) {
|
||||
display: flex;
|
||||
overflow: hidden;
|
||||
justify-content: center;
|
||||
width: 50% !important;
|
||||
max-width: 50% !important;
|
||||
min-width: 50% !important;
|
||||
}
|
||||
|
||||
/* .tab-label-container::after {
|
||||
content: "?" !important;
|
||||
|
||||
} */
|
||||
|
||||
.tab-line {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.tabbrowser-tab {
|
||||
border-radius: var(--mff-tab-border-radius) !important;
|
||||
border-width: 0;
|
||||
height: var(--mff-tab-height) !important;
|
||||
margin-bottom: 4px !important;
|
||||
margin-inline-end: 4px !important;
|
||||
margin-top: 4px !important;
|
||||
max-height: var(--mff-tab-height) !important;
|
||||
min-height: var(--mff-tab-height) !important;
|
||||
}
|
||||
|
||||
.tabbrowser-tab[soundplaying="true"] {
|
||||
background-color: var(--mff-tab-soundplaying-bg) !important;
|
||||
}
|
||||
|
||||
#tabs-newtab-button {
|
||||
list-style-image: url("https://raw.githubusercontent.com/mut-ex/minimal-functional-fox/master/add.svg") !important;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.tab-icon-sound {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/*
|
||||
_____ ___ ___ _ ___ _ ___
|
||||
|_ _/ _ \ / _ \| | | _ ) /_\ | _ \
|
||||
| || (_) | (_) | |__| _ \/ _ \| /
|
||||
|_| \___/ \___/|____|___/_/ \_\_|_\
|
||||
*/
|
||||
|
||||
.urlbar-icon > image {
|
||||
fill: var(--mff-icon-color) !important;
|
||||
color: var(--mff-icon-color) !important;
|
||||
}
|
||||
|
||||
.toolbarbutton-text {
|
||||
color: var(--mff-icon-color) !important;
|
||||
}
|
||||
.urlbar-icon {
|
||||
color: var(--mff-icon-color) !important;
|
||||
|
||||
}
|
||||
|
||||
.toolbarbutton-icon {
|
||||
/* filter: drop-shadow(0 0 0.75rem crimson); */
|
||||
}
|
||||
|
||||
#urlbar-results {
|
||||
font-family: var(--mff-urlbar-results-font-family);
|
||||
font-weight: var(--mff-urlbar-results-font-weight);
|
||||
font-size: var(--mff-urlbar-results-font-size) !important;
|
||||
color: var(--mff-urlbar-results-color) !important;
|
||||
}
|
||||
|
||||
.urlbarView-row[type="bookmark"] > span{
|
||||
color: green !important;
|
||||
}
|
||||
|
||||
.urlbarView-row[type="switchtab"] > span{
|
||||
color: orange !important;
|
||||
}
|
||||
|
||||
.urlbarView-url, .search-panel-one-offs-container {
|
||||
color: var(--mff-urlbar-results-url-color) !important;
|
||||
font-family: var(--mff-urlbar-font-family);
|
||||
font-weight: var(--mff-urlbar-results-font-weight);
|
||||
font-size: var(--mff-urlbar-font-size) !important;
|
||||
}
|
||||
|
||||
.urlbarView-favicon, .urlbarView-type-icon {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#urlbar-input {
|
||||
font-size: var(--mff-urlbar-font-size) !important;
|
||||
color: var(--mff-urlbar-color) !important;
|
||||
font-family: var(--mff-urlbar-font-family) !important;
|
||||
font-weight: var(--mff-urlbar-font-weight)!important;
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
#tracking-protection-icon-container, #identity-box {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#back-button > .toolbarbutton-icon{
|
||||
--backbutton-background: transparent !important;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
#back-button {
|
||||
list-style-image: url("https://raw.githubusercontent.com/mut-ex/minimal-functional-fox/master/left-arrow.svg") !important;
|
||||
}
|
||||
|
||||
#forward-button {
|
||||
list-style-image: url("https://raw.githubusercontent.com/mut-ex/minimal-functional-fox/master/right-arrow.svg") !important;
|
||||
}
|
||||
|
||||
toolbar {
|
||||
background-image: none !important;
|
||||
}
|
||||
|
||||
#urlbar-background {
|
||||
opacity: .98 !important;
|
||||
}
|
||||
|
||||
#navigator-toolbox, toolbaritem {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
#urlbar-background {
|
||||
background-color: var(--mff-bg) !important;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.toolbar-items {
|
||||
background-color: var(--mff-bg) !important;
|
||||
}
|
||||
|
||||
#sidebar-search-container {
|
||||
background-color: var(--mff-sidebar-bg) !important;
|
||||
}
|
||||
|
||||
box.panel-arrowbox {
|
||||
display: none;
|
||||
}
|
||||
|
||||
box.panel-arrowcontent {
|
||||
border-radius: 8px !important;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
tab.tabbrowser-tab {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
tab.tabbrowser-tab:hover {
|
||||
box-shadow: 0 1px 4px rgba(0,0,0,.05);
|
||||
}
|
||||
|
||||
image#star-button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
toolbar#nav-bar {
|
||||
padding: var(--mff-nav-toolbar-padding) !important;
|
||||
}
|
||||
|
||||
toolbar#nav-bar {
|
||||
padding: 4px !important;
|
||||
}
|
||||
|
||||
#urlbar {
|
||||
max-width: 70% !important;
|
||||
margin: 0 15% !important;
|
||||
/* position: unset!important; */;
|
||||
}
|
||||
|
||||
#urlbar-input:focus {
|
||||
color: var(--mff-urlbar-focused-color) !important;
|
||||
}
|
||||
|
||||
|
||||
.megabar[breakout-extend="true"]:not([open="true"]) > #urlbar-background {
|
||||
box-shadow: none !important;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
toolbarbutton {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
___ ___ ___ ___ ___ _ ___
|
||||
/ __|_ _| \| __| _ ) /_\ | _ \
|
||||
\__ \| || |) | _|| _ \/ _ \| /
|
||||
|___/___|___/|___|___/_/ \_\_|_\
|
||||
*/
|
||||
|
||||
.close-icon, .urlbar-icon {
|
||||
fill: var(--mff-icon-color) !important;
|
||||
}
|
||||
|
||||
.sidebar-placesTree {
|
||||
color: var(--mff-sidebar-color) !important;
|
||||
}
|
||||
|
||||
#sidebar-switcher-target {
|
||||
/* color: white !important; */
|
||||
}
|
||||
|
||||
#sidebar-box {
|
||||
--sidebar-background-color: var(--mff-sidebar-bg) !important;
|
||||
}
|
||||
|
||||
splitter#sidebar-splitter {
|
||||
opacity: 0 !important;
|
||||
}
|
||||
|
||||
splitter#sidebar-splitter {
|
||||
border: none !important;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
image#sidebar-icon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
_ ___ ___ _____ _____ _ _ _ ___ _
|
||||
/_\ | _ \ _ \/ _ \ \ / / _ \/_\ | \| | __| |
|
||||
/ _ \| / / (_) \ \/\/ /| _/ _ \| .` | _|| |__
|
||||
/_/ \_\_|_\_|_\\___/ \_/\_/ |_|/_/ \_\_|\_|___|____|
|
||||
*/
|
||||
|
||||
.panel-arrowcontent {
|
||||
padding: 0px !important;
|
||||
margin: 0px !important;
|
||||
}
|
||||
|
||||
toolbarseparator {
|
||||
display: none;
|
||||
}
|
||||
23
home/natto/config/firefox/userContent.css
Executable file
23
home/natto/config/firefox/userContent.css
Executable file
@@ -0,0 +1,23 @@
|
||||
@import url("userChrome.css");
|
||||
|
||||
/* Removes white loading page */
|
||||
@-moz-document url(about:blank), url(about:newtab), url(about:home) {
|
||||
html:not(#ublock0-epicker), html:not(#ublock0-epicker) body, #newtab-customize-overlay {
|
||||
background: var(--mff-bg) !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Hide scrollbar */
|
||||
|
||||
:root{
|
||||
scrollbar-width: none !important;
|
||||
}
|
||||
|
||||
|
||||
@-moz-document url(about:privatebrowsing) {
|
||||
|
||||
:root{
|
||||
scrollbar-width: none !important;
|
||||
}
|
||||
}
|
||||
154
home/natto/config/sxhkd/sxhkdrc
Normal file
154
home/natto/config/sxhkd/sxhkdrc
Normal file
@@ -0,0 +1,154 @@
|
||||
#
|
||||
# wm independent hotkeys
|
||||
#
|
||||
|
||||
# terminal emulator
|
||||
super + Return
|
||||
st
|
||||
|
||||
# program launcher
|
||||
super + d
|
||||
rofi -show drun
|
||||
|
||||
# make sxhkd reload its configuration files:
|
||||
super + alt + c
|
||||
pkill -USR1 -x sxhkd
|
||||
|
||||
|
||||
# quit/restart bspwm
|
||||
super + shift + {e,r}
|
||||
bspc {quit,wm -r}
|
||||
|
||||
# close and kill
|
||||
super + {_,shift + }q
|
||||
bspc node -{c,k}
|
||||
|
||||
# alternate between the tiled and monocle layout
|
||||
super + shift + f
|
||||
bspc desktop -l next
|
||||
|
||||
# send the newest marked node to the newest preselected node
|
||||
#super + y
|
||||
# bspc node newest.marked.local -n newest.!automatic.local
|
||||
|
||||
# swap the current node and the biggest window
|
||||
#super + g
|
||||
# bspc node -s biggest.window
|
||||
|
||||
#
|
||||
# state/flags
|
||||
#
|
||||
|
||||
# set the window state
|
||||
super + {t,shift + t,s,f}
|
||||
bspc node -t {\~tiled,\~pseudo_tiled,\~floating,\~fullscreen}
|
||||
|
||||
# set the node flags
|
||||
#super + ctrl + {m,x,y,z}
|
||||
# bspc node -g {marked,locked,sticky,private}
|
||||
|
||||
#
|
||||
# focus/swap
|
||||
#
|
||||
|
||||
# focus the node in the given direction
|
||||
super + shift + {h,j,k,l}
|
||||
bspc node -s {west,south,north,east}
|
||||
|
||||
super + {h,j,k,l}
|
||||
bspc node -f {west,south,north,east}
|
||||
|
||||
# focus the code for the given path jump
|
||||
#super + {p,b,comma,period}
|
||||
# bspc node -f @{parent,brother,first,second}
|
||||
|
||||
# focus the next/previous window in the current desktop
|
||||
super + {_,shift + }c
|
||||
bspc node -f {next,prev}.local.!hidden.window
|
||||
|
||||
# focus the next/previous desktop in the current monitor
|
||||
super + bracket{left,right}
|
||||
bspc desktop -f {prev,next}.local
|
||||
|
||||
# focus the last node/desktop
|
||||
#super + {grave,Tab}
|
||||
# bspc {node,desktop} -f last
|
||||
|
||||
# focus the older or newer node in the focus history
|
||||
super + {o,i}
|
||||
bspc wm -h off; \
|
||||
bspc node {older,newer} -f; \
|
||||
bspc wm -h on
|
||||
|
||||
# focus or send to the given desktop
|
||||
super + {_,shift + }{1-9,0}
|
||||
bspc {desktop -f,node -d} '^{1-9,10}'
|
||||
|
||||
#
|
||||
# preselect
|
||||
#
|
||||
|
||||
# preselect the direction
|
||||
super + ctrl + {h,j,k,l}
|
||||
bspc node -p {west,south,north,east}
|
||||
|
||||
# preselect the ratio
|
||||
super + ctrl + {1-9}
|
||||
bspc node -o 0.{1-9}
|
||||
|
||||
# cancel the preselection for the focused node
|
||||
super + ctrl + space
|
||||
bspc node -p cancel
|
||||
|
||||
# cancel the preselection for the focused desktop
|
||||
super + ctrl + shift + space
|
||||
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
|
||||
|
||||
#
|
||||
# move/resize
|
||||
#
|
||||
|
||||
# expand a window by moving one of its side outward
|
||||
super + alt + {h,j,k,l}
|
||||
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
|
||||
|
||||
# contract a window by moving one of its side inward
|
||||
super + alt + shift + {h,j,k,l}
|
||||
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
|
||||
|
||||
# move a floating window
|
||||
super + {Left,Down,Up,Right}
|
||||
bspc node -v {-20 0,0 20,0 -20,20 0}
|
||||
|
||||
#
|
||||
# Screenshotting
|
||||
#
|
||||
@Print
|
||||
flameshot & flameshot full -p ~/Pictures
|
||||
# exec scrot '%d-%m-%Y_%I-%M-%S%p.png' -e 'mv ~/$f ~/Pictures/'
|
||||
shift + @Print
|
||||
flameshot & flameshot gui -p ~/Pictures
|
||||
# exec scrot -s '%d-%m-%Y_%I-%M-%S%p.png' -e 'mv ~/$f ~/Pictures/'
|
||||
#super + @Print
|
||||
#flameshot gui full -p ~/Pictures
|
||||
# exec scrot -u '%d-%m-%Y_%I-%M-%S%p.png' -e 'mv ~/$f ~/Pictures/'
|
||||
alt + @Print
|
||||
flameshot & flameshot gui -d 10000 -p ~/Pictures
|
||||
# exec scrot -d 10 '%d-%m-%Y_%I-%M-%S%p.png' -e 'mv ~/$f ~/Pictures/'
|
||||
|
||||
#
|
||||
#mpd/ncmpcpp
|
||||
#
|
||||
|
||||
super + shift + n
|
||||
mpc prev
|
||||
|
||||
super + shift + m
|
||||
mpc next
|
||||
|
||||
super + shift + space
|
||||
mpc toggle
|
||||
super + A
|
||||
mpc seek +00:00:05
|
||||
super + D
|
||||
mpc seek -00:00:05
|
||||
61
home/natto/config/xmonad/nixos.xpm
Normal file
61
home/natto/config/xmonad/nixos.xpm
Normal file
@@ -0,0 +1,61 @@
|
||||
/* XPM */
|
||||
static char *bigger[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"25 22 33 1 ",
|
||||
" c None",
|
||||
". c #5277C3",
|
||||
"X c #5278C3",
|
||||
"o c #5378C3",
|
||||
"O c #557BC5",
|
||||
"+ c #557CC6",
|
||||
"@ c #567CC6",
|
||||
"# c #567DC6",
|
||||
"$ c #577EC6",
|
||||
"% c #577EC7",
|
||||
"& c #5880C7",
|
||||
"* c #5981C8",
|
||||
"= c #5C87CB",
|
||||
"- c #5F8BCC",
|
||||
"; c #608CCE",
|
||||
": c #618DCE",
|
||||
"> c #6594D1",
|
||||
", c #6A9BD5",
|
||||
"< c #6C9DD6",
|
||||
"1 c #6C9ED6",
|
||||
"2 c #6C9FD6",
|
||||
"3 c #6DA0D7",
|
||||
"4 c #71A6DA",
|
||||
"5 c #76ADDE",
|
||||
"6 c #76AEDE",
|
||||
"7 c #79B2E0",
|
||||
"8 c #79B3E0",
|
||||
"9 c #7AB4E1",
|
||||
"0 c #7BB4E1",
|
||||
"q c #7CB7E2",
|
||||
"w c #7CB7E3",
|
||||
"e c #7DB8E3",
|
||||
"r c #7EBAE4",
|
||||
/* pixels */
|
||||
" .. rr r ",
|
||||
" .. rr rr ",
|
||||
" ... rrrrr ",
|
||||
" ... rrrrr ",
|
||||
" ........O2err ",
|
||||
" ..........=6rr . ",
|
||||
" rrr .. ",
|
||||
" rr rrr ... ",
|
||||
" rrr rq>X. ",
|
||||
" rrr r4$X... ",
|
||||
"rrrrrrrr :X..... ",
|
||||
"rrrrrr7< ....... ",
|
||||
" rre3$ ... ",
|
||||
" rr9-o. .X ",
|
||||
" rr $.. *$O ",
|
||||
" rr ...2rrrr667rrrr ",
|
||||
" r ..:7rrrrrrrrr ",
|
||||
" ...$,rrrrrrrrr ",
|
||||
" ..... rrr ",
|
||||
" ... .. rr ",
|
||||
" .. ... rr ",
|
||||
" "
|
||||
};
|
||||
58
home/natto/config/xmonad/padding-icon.sh
Executable file
58
home/natto/config/xmonad/padding-icon.sh
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Taken from https://github.com/jaor/xmobar/blob/master/examples/padding-icon.sh
|
||||
|
||||
# Detects the width of running window with name given as first
|
||||
# argument (xprop name '$1') and creates an XPM icon of that width,
|
||||
# 1px height, and transparent. Outputs an <icon>-tag for use in
|
||||
# xmobar to display the generated XPM icon.
|
||||
#
|
||||
# Run script from xmobar and trayer:
|
||||
# `Run Com "/where/ever/padding-icon.sh" ["panel"] "trayerpad" 10`
|
||||
# and use `%trayerpad%` in your template.
|
||||
# or, if you're using for instance stalonetray:
|
||||
# `Run Com "/where/ever/padding-icon.sh" ["stalonetray"] "tray" 10`
|
||||
|
||||
# Very heavily based on Jonas Camillus Jeppensen code
|
||||
# https://github.com/jaor/xmobar/issues/239#issuecomment-233206552
|
||||
|
||||
# Function to create a transparent Wx1 px XPM icon
|
||||
create_xpm_icon () {
|
||||
timestamp=$(date)
|
||||
pixels=$(for i in `seq $1`; do echo -n "."; done)
|
||||
|
||||
cat << EOF > "$2"
|
||||
/* XPM *
|
||||
static char * trayer_pad_xpm[] = {
|
||||
/* This XPM icon is used for padding in xmobar to */
|
||||
/* leave room for trayer-srg. It is dynamically */
|
||||
/* updated by by trayer-pad-icon.sh which is run */
|
||||
/* by xmobar. */
|
||||
/* Created: ${timestamp} */
|
||||
/* <w/cols> <h/rows> <colors> <chars per pixel> */
|
||||
"$1 1 1 1",
|
||||
/* Colors (none: transparent) */
|
||||
". c none",
|
||||
/* Pixels */
|
||||
"$pixels"
|
||||
};
|
||||
EOF
|
||||
}
|
||||
|
||||
# panel window name
|
||||
pname=${1:-panel}
|
||||
|
||||
# Width of the trayer window
|
||||
width=$(xprop -name $pname | grep 'program specified minimum size' | cut -d ' ' -f 5)
|
||||
|
||||
# Icon file name
|
||||
iconfile="/tmp/$pname-padding-${width:-0}px.xpm"
|
||||
|
||||
# If the desired icon does not exist create it
|
||||
if [ ! -f $iconfile ]
|
||||
then
|
||||
create_xpm_icon $width $iconfile
|
||||
fi
|
||||
|
||||
# Output the icon tag for xmobar
|
||||
echo "<icon=${iconfile}/>"
|
||||
49
home/natto/config/xmonad/xmobar.hs
Normal file
49
home/natto/config/xmonad/xmobar.hs
Normal file
@@ -0,0 +1,49 @@
|
||||
import Xmobar
|
||||
|
||||
bg, fg, grey, red, green, yellow, blue, magenta, cyan, white, sep :: String
|
||||
sep = "<fc=" ++ cyan ++ ">║</fc>"
|
||||
bg = "#1d1f21"
|
||||
fg = "#c5c8c6"
|
||||
grey = "#969896"
|
||||
red = "#cc6666"
|
||||
green = "#b5bd68"
|
||||
yellow = "#f0c674"
|
||||
blue = "#81a2be"
|
||||
magenta = "#b294bb"
|
||||
cyan = "#8abeb7"
|
||||
white = "#ecebec"
|
||||
|
||||
config :: Config
|
||||
config =
|
||||
defaultConfig
|
||||
{ font = "xft:Fira Mono:style=Regular:antialias=true:pixelsize,Font Awesome 5 Brands:pixelsize=16,Font Awesome 5 Free:pixelsize=16:style=Solid,Lohit Devanagari:style=Regular:pixelsize=16,Lohit Gurmukhi:style=Regular:pixelsize=16,Noto Sans CJK JP:style=Regular:pixelsize=16,Noto Sans CJK KR:style=Regular:pixelsize=16,Noto Sans CJK SC:style=Regular:pixelsize=16",
|
||||
additionalFonts =
|
||||
[ "xft:Font Awesome 5 Free:pixelsize=15:style=Solid",
|
||||
"xft:Font Awesome 5 Brands:pixelsize=15"
|
||||
],
|
||||
position = Static { xpos = 0, ypos = 0, height = 23, width = 1920 },
|
||||
bgColor = bg,
|
||||
fgColor = fg,
|
||||
lowerOnStart = False,
|
||||
overrideRedirect = False,
|
||||
allDesktops = True,
|
||||
persistent = True,
|
||||
commands =
|
||||
[ Run $ MultiCpu ["-t", "<fn=1>\xf2db</fn> <total>%", "-L", "20", "-H", "80", "-h", magenta, "-l", green, "-n", yellow] 10,
|
||||
Run $ Memory ["-t", "<fn=1>\xf538</fn> <usedratio>%", "-H", "10240", "-L", "6144", "-h", magenta, "-l", green, "-n", yellow] 20,
|
||||
Run $ BatteryP ["BAT1", "BAT0", "BAT2"] ["-t", "<acstatus>", "-L", "10", "-H", "80", "-l", magenta, "-h", green, "-n", yellow, "--", "-O", "Charging", "-o", "<left>%", "-a", "notify-send -u critical 'Battery running out!'", "-A", "5", "--lows", "<fn=1>\xf243</fn> ", "--mediums", "<fn=1>\xf242</fn> ", "--highs", "<fn=1>\xf240</fn> "] 300,
|
||||
Run $ Network "wlp0s20f3" ["-t", "<fn=1>\xf1eb</fn> <fc=" ++ magenta ++ "><rx>/<tx></fc>"] 10,
|
||||
Run $ Date "<fn=1>\xf073</fn> %-d/%-m/%-y/%w" "date" 10000,
|
||||
Run $ Date "%H:%M:%S" "time" 10,
|
||||
Run $ MPD ["-t", "<statei><title><fn=" ++ magenta ++ "> \xf001</fn>", "--", "-P", ">> ", "-Z", "|| ", "-S", "Stopped", "-h", "127.0.0.1", "-p", "6600"] 10,
|
||||
Run $ Com "/home/natto/.xmonad/lib/padding-icon.sh" ["stalonetray"] "tray" 10,
|
||||
Run $ Com "pamixer" ["--get-volume"] "" 100,
|
||||
Run UnsafeStdinReader
|
||||
],
|
||||
sepChar = "*",
|
||||
alignSep = "--",
|
||||
template = "<action=`dmenu_run` button=1><icon=/home/natto/.xmonad/lib/nixos.xpm/></action> *UnsafeStdinReader* " ++ sep ++ " <fn=1></fn>*mpd* -- *multicpu* " ++ sep ++ " *memory* " ++ sep ++ " *wlp0s20f3* " ++ sep ++ " *battery* " ++ sep ++ " <fn=1>\xf028</fn> <fc=" ++ green ++ ">*pamixer*%</fc> " ++ sep ++ " *date* - *time* " ++ sep ++ "*tray*"
|
||||
}
|
||||
|
||||
main :: IO ()
|
||||
main = xmobar config
|
||||
257
home/natto/config/xmonad/xmonad.hs
Normal file
257
home/natto/config/xmonad/xmonad.hs
Normal file
@@ -0,0 +1,257 @@
|
||||
import System.IO
|
||||
import System.Exit
|
||||
import XMonad
|
||||
import XMonad.Hooks.SetWMName
|
||||
import XMonad.Hooks.EwmhDesktops
|
||||
import XMonad.Hooks.DynamicLog
|
||||
import XMonad.Layout.NoBorders
|
||||
import XMonad.Layout.Spacing (smartSpacing)
|
||||
import XMonad.Layout.Spiral
|
||||
import XMonad.Layout.Tabbed
|
||||
import XMonad.Layout.ThreeColumns
|
||||
import XMonad.Layout.ResizableTile
|
||||
import XMonad.Hooks.ManageDocks
|
||||
import XMonad.Util.Run (spawnPipe)
|
||||
import XMonad.Actions.FloatKeys (keysMoveWindow,
|
||||
keysResizeWindow)
|
||||
import Graphics.X11.ExtraTypes.XF86
|
||||
import XMonad.Actions.CycleWindows
|
||||
import qualified XMonad.StackSet as W
|
||||
import qualified Data.Map as M
|
||||
|
||||
--colors
|
||||
bgColor = "#1d1f21"
|
||||
fgColor = "#c5c8c6"
|
||||
activeWinColor = "#f0c674"
|
||||
inactiveWinColor = "#b294bb"
|
||||
urgentWinColor = "#cc6666"
|
||||
miscColor = "#8abeb7"
|
||||
|
||||
myBorderWidth = 2
|
||||
myTerminal = "/usr/bin/env st"
|
||||
myFocusFollowsMouse = True
|
||||
myNormalBorderColor = bgColor
|
||||
myModMask = mod4Mask
|
||||
myFocusedBorderColor = fgColor
|
||||
myManageHook = composeAll
|
||||
[ className =? "Discord" --> doFloat
|
||||
, className =? "Anki" --> doFloat
|
||||
]
|
||||
|
||||
tabConfig = defaultTheme {
|
||||
activeTextColor = bgColor,
|
||||
activeColor = fgColor,
|
||||
inactiveTextColor = fgColor,
|
||||
inactiveColor = bgColor
|
||||
}
|
||||
|
||||
myXmobarrc = "~/.xmonad/lib/xmobar.hs"
|
||||
|
||||
myWorkspaces = clickable $ ["\xf269", "\xf120", "\xf121", "\xf392", "\xf008", "\xf07b", "\xf11b", "\xf086", "\xf074" ]
|
||||
where clickable l = ["<action=`xdotool key super+" ++ show (n) ++ "`>" ++ ws ++ "</action>" | (i,ws) <- zip [1..9] l, let n = i ]
|
||||
|
||||
myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
|
||||
[ ((modMask, xK_Return),
|
||||
spawn $ XMonad.terminal conf)
|
||||
|
||||
, ((modMask, xK_d),
|
||||
spawn "/usr/bin/env dmenu_run -l 20")
|
||||
|
||||
, ((shiftMask, xK_Print),
|
||||
spawn "flameshot gui")
|
||||
|
||||
, ((0, xK_Print),
|
||||
spawn "flameshot full -p /home/natto/Pictures")
|
||||
|
||||
, ((mod1Mask, xK_Print),
|
||||
spawn "flameshot gui -d 10000")
|
||||
|
||||
, ((modMask, xK_p),
|
||||
spawn "mpc toggle")
|
||||
|
||||
, ((modMask, xK_h),
|
||||
spawn "mpc next")
|
||||
|
||||
, ((modMask, xK_k),
|
||||
spawn "mpc prev")
|
||||
|
||||
, ((modMask .|. shiftMask, xK_a),
|
||||
spawn "mpc seek -00:00:05")
|
||||
|
||||
, ((modMask .|. shiftMask, xK_s),
|
||||
spawn "mpc seek +00:00:05")
|
||||
|
||||
, ((modMask .|. shiftMask, xK_period),
|
||||
spawn "pamixer --allow-boost -i 5")
|
||||
|
||||
, ((modMask .|. shiftMask, xK_comma),
|
||||
spawn "pamixer --allow-boost -d 5")
|
||||
|
||||
, ((modMask .|. shiftMask, xK_q), kill)
|
||||
|
||||
, ((mod1Mask, xK_Tab),
|
||||
cycleRecentWindows [xK_Alt_L] xK_Tab xK_q)
|
||||
|
||||
, ((modMask .|. mod1Mask, xK_0), spawn "light -A 5")
|
||||
|
||||
, ((modMask .|. mod1Mask, xK_9), spawn "light -U 5")
|
||||
|
||||
, ((modMask .|. shiftMask, xK_F1),
|
||||
spawn "setxkbmap us-colemak")
|
||||
|
||||
, ((modMask .|. shiftMask, xK_F2),
|
||||
spawn "setxkbmap us basic")
|
||||
|
||||
, ((modMask .|. shiftMask, xK_F3),
|
||||
spawn "setxkbmap in deva")
|
||||
|
||||
, ((modMask .|. shiftMask, xK_F4),
|
||||
spawn "setxkbmap in guru")
|
||||
|
||||
, ((modMask, xK_space),
|
||||
sendMessage NextLayout)
|
||||
|
||||
, ((modMask, xK_f),
|
||||
toggleFullscreen)
|
||||
|
||||
, ((modMask .|. shiftMask, xK_space),
|
||||
setLayout $ XMonad.layoutHook conf)
|
||||
|
||||
, ((modMask, xK_r),
|
||||
refresh)
|
||||
|
||||
, ((modMask, xK_n),
|
||||
windows W.focusDown)
|
||||
|
||||
, ((modMask, xK_e), windows W.focusUp )
|
||||
|
||||
, ((modMask .|. shiftMask, xK_h),
|
||||
windows W.focusMaster )
|
||||
|
||||
, ((modMask .|. shiftMask, xK_Return),
|
||||
windows W.swapMaster)
|
||||
|
||||
, ((modMask .|. shiftMask, xK_n),
|
||||
windows W.swapDown )
|
||||
|
||||
, ((modMask .|. shiftMask, xK_e),
|
||||
windows W.swapUp )
|
||||
|
||||
, ((mod1Mask, xK_m),
|
||||
sendMessage Expand)
|
||||
|
||||
, ((mod1Mask, xK_i),
|
||||
sendMessage Shrink)
|
||||
|
||||
, ((mod1Mask, xK_n),
|
||||
sendMessage MirrorExpand)
|
||||
|
||||
, ((mod1Mask, xK_e),
|
||||
sendMessage MirrorShrink)
|
||||
|
||||
, ((modMask .|. mod1Mask .|. shiftMask, xK_m),
|
||||
withFocused (keysMoveWindow (-30, 0)))
|
||||
|
||||
, ((modMask .|. mod1Mask .|. shiftMask, xK_i),
|
||||
withFocused (keysMoveWindow (30, 0)))
|
||||
|
||||
, ((modMask .|. mod1Mask .|. shiftMask, xK_n),
|
||||
withFocused (keysMoveWindow (0, 30)))
|
||||
|
||||
, ((modMask .|. mod1Mask .|. shiftMask, xK_e),
|
||||
withFocused (keysMoveWindow (0, -30)))
|
||||
|
||||
, ((modMask, xK_t),
|
||||
withFocused $ windows . W.sink)
|
||||
|
||||
, ((modMask, xK_comma),
|
||||
sendMessage (IncMasterN 1))
|
||||
|
||||
, ((modMask, xK_period),
|
||||
sendMessage (IncMasterN (-1)))
|
||||
|
||||
, ((modMask .|. mod1Mask, xK_f),
|
||||
io (exitWith ExitSuccess))
|
||||
|
||||
, ((modMask .|. mod1Mask, xK_r),
|
||||
restart "xmonad" True)
|
||||
]
|
||||
++
|
||||
[((m .|. modMask, k), windows $ f i)
|
||||
| (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
|
||||
, (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
|
||||
|
||||
|
||||
myLayoutHook = smartSpacing 8 $ smartBorders $ avoidStruts (
|
||||
ResizableTall 1 (3/100) (3/5) [] |||
|
||||
spiral (6/7) |||
|
||||
tabbed shrinkText tabConfig |||
|
||||
ThreeCol 1 (3/100) (1/2) |||
|
||||
Tall 1 (3/100) (1/2) |||
|
||||
Mirror (Tall 1 (3/100) (1/2)) |||
|
||||
Full)
|
||||
|
||||
-- {{{source: https://github.com/liskin/dotfiles/commit/659af2ec68c26044f9e6ddf11655856613285685#diff-f3bd9f70ef878f30362ff11bbea7fd1d0d6abde1b4befa44b18cce5a27456204R190
|
||||
toggleFullscreen =
|
||||
withWindowSet $ \ws ->
|
||||
withFocused $ \w -> do
|
||||
let fullRect = W.RationalRect 0 0 1 1
|
||||
let isFullFloat = w `M.lookup` W.floating ws == Just fullRect
|
||||
windows $ if isFullFloat then W.sink w else W.float w fullRect
|
||||
--}}}
|
||||
|
||||
--{{{
|
||||
--couldnt get fullScreenEventHook to work normally so using this for now
|
||||
--source code: https://github.com/xmonad/xmonad-contrib/blob/v0.16/XMonad/Hooks/EwmhDesktops.hs
|
||||
|
||||
fullscreenFix :: XConfig a -> XConfig a
|
||||
fullscreenFix c = c {
|
||||
startupHook = startupHook c +++ setSupportedWithFullscreen
|
||||
}
|
||||
where x +++ y = mappend x y
|
||||
|
||||
setSupportedWithFullscreen :: X ()
|
||||
setSupportedWithFullscreen = withDisplay $ \dpy -> do
|
||||
r <- asks theRoot
|
||||
a <- getAtom "_NET_SUPPORTED"
|
||||
c <- getAtom "ATOM"
|
||||
supp <- mapM getAtom ["_NET_WM_STATE_HIDDEN"
|
||||
,"_NET_WM_STATE_FULLSCREEN"
|
||||
,"_NET_NUMBER_OF_DESKTOPS"
|
||||
,"_NET_CLIENT_LIST"
|
||||
,"_NET_CLIENT_LIST_STACKING"
|
||||
,"_NET_CURRENT_DESKTOP"
|
||||
,"_NET_DESKTOP_NAMES"
|
||||
,"_NET_ACTIVE_WINDOW"
|
||||
,"_NET_WM_DESKTOP"
|
||||
,"_NET_WM_STRUT"
|
||||
]
|
||||
io $ changeProperty32 dpy r a c propModeReplace (fmap fromIntegral supp)
|
||||
|
||||
setWMName "xmonad"
|
||||
--}}}
|
||||
|
||||
main = do xmproc <- spawnPipe ("xmobar " ++ myXmobarrc)
|
||||
xmonad $ docks $ fullscreenFix $ ewmh def
|
||||
{ borderWidth = myBorderWidth
|
||||
, manageHook = manageDocks <+> myManageHook
|
||||
, handleEventHook = handleEventHook def <+> fullscreenEventHook
|
||||
, terminal = myTerminal
|
||||
, focusFollowsMouse = myFocusFollowsMouse
|
||||
, normalBorderColor = myNormalBorderColor
|
||||
, layoutHook = myLayoutHook
|
||||
, modMask = myModMask
|
||||
, keys = myKeys
|
||||
, focusedBorderColor = myFocusedBorderColor
|
||||
, workspaces = myWorkspaces
|
||||
, logHook = dynamicLogWithPP xmobarPP
|
||||
{ ppOutput = hPutStrLn xmproc
|
||||
, ppCurrent = xmobarColor activeWinColor "" . wrap "(" ")"
|
||||
, ppVisible = xmobarColor activeWinColor ""
|
||||
, ppHidden = xmobarColor inactiveWinColor ""
|
||||
, ppTitle = xmobarColor fgColor "" . shorten 40
|
||||
, ppLayout = const ""
|
||||
, ppUrgent = xmobarColor urgentWinColor "" . wrap "!" ""
|
||||
, ppSep = "<fc=" ++ miscColor ++ "> ║ </fc>"
|
||||
}
|
||||
}
|
||||
14
home/natto/config/zathura/zathurarc
Normal file
14
home/natto/config/zathura/zathurarc
Normal file
@@ -0,0 +1,14 @@
|
||||
set statusbar-h-padding 0
|
||||
set statusbar-v-padding 0
|
||||
set page-padding 1
|
||||
map w scroll half-up
|
||||
map r scroll half-down
|
||||
map s reload
|
||||
map S rotate
|
||||
map f zoom in
|
||||
map q zoom out
|
||||
map p follow link
|
||||
#map m scroll left
|
||||
#map i scroll right
|
||||
#map n scroll down
|
||||
#map e scroll up
|
||||
13
home/natto/default.nix
Normal file
13
home/natto/default.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./secrets
|
||||
./programs.nix
|
||||
./xsession.nix
|
||||
./services.nix
|
||||
./pkgs.nix
|
||||
./stuff.nix
|
||||
];
|
||||
}
|
||||
76
home/natto/pkgs.nix
Normal file
76
home/natto/pkgs.nix
Normal file
@@ -0,0 +1,76 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
ffmpeg-full
|
||||
sox
|
||||
rage
|
||||
curl
|
||||
pamixer
|
||||
mpdas
|
||||
pavucontrol
|
||||
unstable.anup
|
||||
xfce.thunar
|
||||
xfce.xfconf
|
||||
xfce.tumbler
|
||||
master.discord
|
||||
mpd_discord_richpresence
|
||||
sox
|
||||
qbittorrent
|
||||
#tor-browser-bundle-bin
|
||||
mpc_cli
|
||||
hexchat
|
||||
luajit
|
||||
mpv
|
||||
jmtpfs
|
||||
dunst
|
||||
flameshot
|
||||
yt-dlp
|
||||
xclip
|
||||
xorg.xkbcomp
|
||||
xorg.xmodmap
|
||||
p7zip
|
||||
unrar
|
||||
glxinfo
|
||||
sxiv
|
||||
vim
|
||||
feh
|
||||
dmenu
|
||||
st
|
||||
neofetch
|
||||
xmobar
|
||||
xdotool
|
||||
arc-theme
|
||||
arc-icon-theme
|
||||
tor-browser-bundle-bin
|
||||
wineWowPackages.stable
|
||||
master.winetricks
|
||||
games.wine-discord-ipc-bridge
|
||||
(games.osu-stable.overrideAttrs (_: {
|
||||
tricks = [ "gdiplus" "dotnet48" "meiryo" ];
|
||||
}))
|
||||
pmidi
|
||||
# dosbox
|
||||
authy
|
||||
unstable.premid
|
||||
(master.tauon.override { withDiscordRPC = true; })
|
||||
nbfc-linux
|
||||
pulseaudio
|
||||
(texlive.combine { inherit (texlive) scheme-small babel lm graphics-def url mhchem wrapfig capt-of; })
|
||||
# carla
|
||||
# electrum
|
||||
anki-bin
|
||||
spotify
|
||||
deluge
|
||||
teams
|
||||
# libreoffice
|
||||
google-drive-ocamlfuse
|
||||
customscripts
|
||||
(qjackctl.override { jackSession = true; })
|
||||
stable.lmms
|
||||
# stable.blender
|
||||
neomutt
|
||||
mailcap
|
||||
element-desktop
|
||||
syncplay
|
||||
];
|
||||
}
|
||||
92
home/natto/programs.nix
Normal file
92
home/natto/programs.nix
Normal file
@@ -0,0 +1,92 @@
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
programs = {
|
||||
firefox = {
|
||||
enable = true;
|
||||
package = pkgs.master.firefox-bin;
|
||||
profiles.natto = {
|
||||
name = "natto";
|
||||
# userChrome = builtins.readFile ./config/firefox/userChrome.css;
|
||||
# userContent = builtins.readFile ./config/firefox/userContent.css;
|
||||
};
|
||||
};
|
||||
/* chromium = {
|
||||
enable = true;
|
||||
package = pkgs.ungoogled-chromium;
|
||||
}; */
|
||||
zathura = {
|
||||
enable = true;
|
||||
extraConfig = builtins.readFile ./config/zathura/zathurarc;
|
||||
options = {
|
||||
recolor = true;
|
||||
recolor-lightcolor = "rgba(0,0,0,0)";
|
||||
default-bg = "rgba(0,0,0,0.8)";
|
||||
};
|
||||
};
|
||||
mpv = {
|
||||
enable = true;
|
||||
config = {
|
||||
force-window = "yes";
|
||||
keep-open = "yes";
|
||||
save-position-on-quit = "yes";
|
||||
# autofit="100%";
|
||||
# no-keepaspect-window = "yes";
|
||||
};
|
||||
};
|
||||
go.enable = true;
|
||||
ncmpcpp = {
|
||||
enable = true;
|
||||
mpdMusicDir = ~/Music;
|
||||
settings = {
|
||||
autocenter_mode = "yes";
|
||||
follow_now_playing_lyrics = "yes";
|
||||
lyrics_directory = "~/.lyrics";
|
||||
fetch_lyrics_for_current_song_in_background = "yes";
|
||||
#store_lyrics_in_song_dir = yes;
|
||||
browser_sort_mode = "mtime";
|
||||
colors_enabled = "yes";
|
||||
main_window_color = "white";
|
||||
header_window_color = "143";
|
||||
volume_color = "222";
|
||||
progressbar_color = "143";
|
||||
# progressbar_elapsed_color = "";
|
||||
# statusbar_color = "43";
|
||||
active_window_border = "blue";
|
||||
user_interface = "alternative";
|
||||
#song_list_format="(4)[230]{l}";
|
||||
song_columns_list_format = "(4)[167]{l} (20)[109]{t} (12)[143]{a} (16)[139]{b}";
|
||||
song_list_format = "$(222){%a} - $(109){%t}";
|
||||
#song_list_format = "{$7%a - $9}{$5%t$9}|{$5%f$9}$R{$6%b $9}{$3%l$9}";
|
||||
song_status_format = " $6%a $7⟫⟫ $3%t $7⟫⟫ $4%b ";
|
||||
visualizer_data_source = "/tmp/g.fifo";
|
||||
#visualizer_output_name = "my_fifo";
|
||||
visualizer_type = "spectrum";
|
||||
#visualizer_type = "ellipse";
|
||||
visualizer_fps = "144";
|
||||
visualizer_in_stereo = "yes";
|
||||
visualizer_look = "◆▋";
|
||||
visualizer_spectrum_smooth_look = "yes";
|
||||
playlist_editor_display_mode = "classic";
|
||||
playlist_display_mode = "columns";
|
||||
cyclic_scrolling = "yes";
|
||||
lines_scrolled = "2";
|
||||
system_encoding = "utf-8";
|
||||
regular_expressions = "extended";
|
||||
#selected_item_prefix = "* "
|
||||
#discard_colors_if_item_is_selected = "no"
|
||||
#incremental_seeking = "yes"
|
||||
#seek_time = "1"
|
||||
header_visibility = "yes";
|
||||
statusbar_visibility = "yes";
|
||||
titles_visibility = "yes";
|
||||
progressbar_look = "▃▃▃";
|
||||
now_playing_prefix = "> ";
|
||||
centered_cursor = "yes";
|
||||
display_bitrate = "yes";
|
||||
enable_window_title = "yes";
|
||||
empty_tag_marker = "";
|
||||
execute_on_song_change = "${config.home.homeDirectory}/.config/ncmpcpp/ncmpcpp-ueberzug/ncmpcpp_cover_art.sh";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
BIN
home/natto/secrets/.zshrc.age
Normal file
BIN
home/natto/secrets/.zshrc.age
Normal file
Binary file not shown.
20
home/natto/secrets/default.nix
Normal file
20
home/natto/secrets/default.nix
Normal file
@@ -0,0 +1,20 @@
|
||||
{ config, ... }: {
|
||||
age =
|
||||
let
|
||||
home = config.home.homeDirectory;
|
||||
in
|
||||
{
|
||||
sshKeyPaths = [ "${home}/.ssh/id_ed25519" ];
|
||||
secrets = {
|
||||
mpdasrc = {
|
||||
file = ./mpdasrc.age;
|
||||
path = "${home}/.config/mpdasrc";
|
||||
};
|
||||
zshrc = {
|
||||
file = ./.zshrc.age;
|
||||
path = "${home}/.zshrc";
|
||||
mode = "660";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
BIN
home/natto/secrets/fish_variables.age
Normal file
BIN
home/natto/secrets/fish_variables.age
Normal file
Binary file not shown.
BIN
home/natto/secrets/mpdasrc.age
Normal file
BIN
home/natto/secrets/mpdasrc.age
Normal file
Binary file not shown.
101
home/natto/services.nix
Normal file
101
home/natto/services.nix
Normal file
@@ -0,0 +1,101 @@
|
||||
{config, pkgs, ...}:
|
||||
let
|
||||
home = config.home.homeDirectory;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
picom = {
|
||||
experimentalBackends = true;
|
||||
enable = true;
|
||||
shadow = true;
|
||||
shadowOffsets = [ (6) (6) ];
|
||||
shadowExclude = [
|
||||
"! name~=''"
|
||||
"window_type = 'dock'"
|
||||
"name = 'Dunst'"
|
||||
"_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
|
||||
];
|
||||
blur = true;
|
||||
blurExclude = [
|
||||
"window_type = 'dock'"
|
||||
"window_type = 'desktop'"
|
||||
"class_g = 'dwm'"
|
||||
];
|
||||
inactiveOpacity = "0.92";
|
||||
activeOpacity = "0.97";
|
||||
fade = true;
|
||||
fadeSteps = [ "0.04" "0.04" ];
|
||||
backend = "glx";
|
||||
menuOpacity = "0.8";
|
||||
vSync = false;
|
||||
opacityRule = [
|
||||
"100:class_i='Tauon Music Box'"
|
||||
"100:class_g='firefox'"
|
||||
];
|
||||
extraOptions =
|
||||
''
|
||||
shadow-radius = 8;
|
||||
inactive-opacity-override = true;
|
||||
blur-method = "dual_kawase";
|
||||
blur-strength = 3;
|
||||
blur-kern = "11x11gaussian";
|
||||
detect-rounded-corners = true;
|
||||
detect-client-opacity = true;
|
||||
'';
|
||||
};
|
||||
sxhkd = {
|
||||
enable = false;
|
||||
extraConfig = builtins.readFile ./config/sxhkd/sxhkdrc;
|
||||
};
|
||||
|
||||
mpd = {
|
||||
enable = true;
|
||||
musicDirectory = "${config.home.homeDirectory}/Music";
|
||||
dbFile = "${config.home.homeDirectory}/.config/mpd/database";
|
||||
dataDir = "${config.home.homeDirectory}/.config/mpd";
|
||||
network = {
|
||||
startWhenNeeded = true;
|
||||
listenAddress = "any";
|
||||
port = 6600;
|
||||
};
|
||||
extraConfig = ''
|
||||
log_file "~/.config/mpd/log"
|
||||
pid_file "~/.config/mpd/pid"
|
||||
bind_to_address "0.0.0.0"
|
||||
bind_to_address "~/.config/mpd/socket"
|
||||
restore_paused "yes"
|
||||
input {
|
||||
plugin "curl"
|
||||
}
|
||||
audio_output {
|
||||
type "pulse"
|
||||
name "pulse audio"
|
||||
}
|
||||
audio_output {
|
||||
encoder "vorbis"
|
||||
type "httpd"
|
||||
quality "9"
|
||||
name "Vorbis Stream"
|
||||
port "8000"
|
||||
max_clients "4"
|
||||
}
|
||||
filesystem_charset "UTF-8"
|
||||
'';
|
||||
};
|
||||
stalonetray = {
|
||||
enable = true;
|
||||
config = {
|
||||
geometry = "1x1-0";
|
||||
max_geometry = "10x0";
|
||||
window_type = "dock";
|
||||
sticky = true;
|
||||
icon_size = 23;
|
||||
background = "#1d2021";
|
||||
icon_gravity = "E";
|
||||
grow_gravity = "E";
|
||||
kludges = "force_icons_size";
|
||||
window_layer = "top";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
17
home/natto/stuff.nix
Normal file
17
home/natto/stuff.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ config, lib, pkgs, ... }: {
|
||||
home =
|
||||
let
|
||||
home = config.home.homeDirectory;
|
||||
in
|
||||
{
|
||||
sessionVariables = {
|
||||
LV2_PATH = lib.makeSearchPath "lib/lv2" (with pkgs; [ calf ]);
|
||||
};
|
||||
file = {
|
||||
dunstrc = {
|
||||
source = ./config/dunst/dunstrc;
|
||||
target = "${home}/.config/dunst/dunstrc";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
26
home/natto/xsession.nix
Normal file
26
home/natto/xsession.nix
Normal file
@@ -0,0 +1,26 @@
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
xsession = {
|
||||
pointerCursor = {
|
||||
package = pkgs.numix-cursor-theme;
|
||||
name = "Numix";
|
||||
};
|
||||
windowManager = {
|
||||
bspwm = {
|
||||
enable = false;
|
||||
extraConfig = builtins.readFile ./config/bspwm/bspwmrc;
|
||||
};
|
||||
xmonad = {
|
||||
enable = true;
|
||||
enableContribAndExtras = true;
|
||||
extraPackages = hs: [ hs.xmobar ];
|
||||
config = ./config/xmonad/xmonad.hs;
|
||||
libFiles = {
|
||||
"xmobar.hs" = ./config/xmonad/xmobar.hs;
|
||||
"padding-icon.sh" = ./config/xmonad/padding-icon.sh;
|
||||
"nixos.xpm" = ./config/xmonad/nixos.xpm;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user