mirror of
https://github.com/elkowar/dots-of-war.git
synced 2024-11-06 03:12:24 +00:00
REEEEEEEEEEEEEEEEEEEEEE
This commit is contained in:
parent
7d6343e415
commit
ff35e25048
14 changed files with 536 additions and 114 deletions
|
@ -1,10 +1,4 @@
|
||||||
{
|
{
|
||||||
"optOut": false,
|
"optOut": false,
|
||||||
"lastUpdateCheck": 1609704527220,
|
"lastUpdateCheck": 1615367685427
|
||||||
"update": {
|
|
||||||
"latest": "6.14.10",
|
|
||||||
"current": "6.14.9",
|
|
||||||
"type": "patch",
|
|
||||||
"name": "npm"
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -75,7 +75,6 @@ scale trough {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.this {
|
.this {
|
||||||
border: 10px solid blue;
|
border: 10px solid blue;
|
||||||
}
|
}
|
||||||
|
@ -93,3 +92,38 @@ scale trough {
|
||||||
.lol {
|
.lol {
|
||||||
color: red;
|
color: red;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
window {
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
progressbar {
|
||||||
|
min-width: 1px;
|
||||||
|
|
||||||
|
trough {
|
||||||
|
min-width: 1px;
|
||||||
|
//background-color: #ebdbb255;
|
||||||
|
}
|
||||||
|
|
||||||
|
&, & * {
|
||||||
|
all: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
progress {
|
||||||
|
min-width: 1px;
|
||||||
|
//background-color: #8CD68F;
|
||||||
|
//box-shadow: 0 0 10px 3px #8CD68F22;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
progressbar progress {
|
||||||
|
background: repeating-linear-gradient(0deg, #458588, #8ec07c); /*, #b8bb26, #fabd2f);*/
|
||||||
|
background-size: 100% 200%;
|
||||||
|
|
||||||
|
animation: AnimationName 1s linear infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes AnimationName {
|
||||||
|
0%{background-position:0% 0%}
|
||||||
|
100%{background-position:0% 200%}
|
||||||
|
}
|
||||||
|
|
|
@ -1,9 +1,29 @@
|
||||||
<eww>
|
<eww>
|
||||||
|
<includes>
|
||||||
|
<file path="./foo.xml"/>
|
||||||
|
</includes>
|
||||||
<definitions>
|
<definitions>
|
||||||
|
|
||||||
|
<def name="pxbar">
|
||||||
|
<progress value="{{volume}}" orientation="v" halign="start" flipped="true"/>
|
||||||
|
</def>
|
||||||
|
|
||||||
<def name="test">
|
<def name="test">
|
||||||
<box class="{{some_var}}" space-evenly="false" spacing="10">
|
<box class="{{some_var}}" space-evenly="false" spacing="10">
|
||||||
testing {{shit}}
|
testing {{shit}}
|
||||||
|
|
||||||
|
is shit true? {{shit == true}}
|
||||||
|
is shit "shit"? {{shit == "shit"}}
|
||||||
|
|
||||||
|
true and false 🤔 {{ true && false }}
|
||||||
|
fancy ass math {{ 12 + 5 * 12 * 4 }}
|
||||||
|
|
||||||
|
<if-else cond="{{shit == 'yea'}}">
|
||||||
|
<box>hi</box>
|
||||||
|
<box>ho</box>
|
||||||
|
</if-else>
|
||||||
|
|
||||||
|
|
||||||
<scale value="50" orientation="v" min="0" max="100" flipped="true" />
|
<scale value="50" orientation="v" min="0" max="100" flipped="true" />
|
||||||
|
|
||||||
<button onclick="pgrep 'eww' && echo '' || echo ''">Test bug</button>
|
<button onclick="pgrep 'eww' && echo '' || echo ''">Test bug</button>
|
||||||
|
@ -12,6 +32,8 @@
|
||||||
notify-send 'ree' 'this is {{shit}}'
|
notify-send 'ree' 'this is {{shit}}'
|
||||||
<multiple text="{{shit}}" />
|
<multiple text="{{shit}}" />
|
||||||
|
|
||||||
|
<!--<literal content="{{code}}"/>-->
|
||||||
|
|
||||||
</box>
|
</box>
|
||||||
</def>
|
</def>
|
||||||
|
|
||||||
|
@ -24,8 +46,9 @@
|
||||||
<box>{{text}}</box>
|
<box>{{text}}</box>
|
||||||
|
|
||||||
<label onscroll="notify-send '{{shit}}' {}" text="reeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" limit-width="5" wrap="true" />
|
<label onscroll="notify-send '{{shit}}' {}" text="reeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" limit-width="5" wrap="true" />
|
||||||
<input onchange="notify-send 'ree' '{}'" />
|
<!--<input onchange="eww update code='{}'" />-->
|
||||||
{{date}}
|
{{date}}
|
||||||
|
{{date-tail}}
|
||||||
</box>
|
</box>
|
||||||
</def>
|
</def>
|
||||||
|
|
||||||
|
@ -67,15 +90,16 @@
|
||||||
<variables>
|
<variables>
|
||||||
<script-var name="volume">
|
<script-var name="volume">
|
||||||
amixer sget 'Master' | grep 'Front Left:' | sed 's/.*\[\(.*\)%\].*/\1/g';
|
amixer sget 'Master' | grep 'Front Left:' | sed 's/.*\[\(.*\)%\].*/\1/g';
|
||||||
LANG=C pactl subscribe | grep REEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE-line-buffered sink | while read -r _; do
|
LANG=C pactl subscribe | grep --line-buffered sink | while read -r _; do
|
||||||
amixer sget 'Master' | grep 'Front Left:' | sed 's/.*\[\(.*\)%\].*/\1/g'
|
amixer sget 'Master' | grep 'Front Left:' | sed 's/.*\[\(.*\)%\].*/\1/g'
|
||||||
done
|
done
|
||||||
</script-var>
|
</script-var>
|
||||||
|
|
||||||
<var name="shit">
|
<var name="shit">
|
||||||
shit
|
true
|
||||||
</var>
|
</var>
|
||||||
<var name="some_var"></var>
|
<var name="some_var"></var>
|
||||||
|
<var name="code"></var>
|
||||||
|
|
||||||
|
|
||||||
<var name="song-image"></var>
|
<var name="song-image"></var>
|
||||||
|
@ -88,7 +112,7 @@
|
||||||
<!--<script-var name="date" interval="1s">-->
|
<!--<script-var name="date" interval="1s">-->
|
||||||
<!--date-->
|
<!--date-->
|
||||||
<!--</script-var>-->
|
<!--</script-var>-->
|
||||||
<script-var name="date">
|
<script-var name="date-tail">
|
||||||
while true; do
|
while true; do
|
||||||
sleep 1;
|
sleep 1;
|
||||||
notify-send 'hi' 'ho'
|
notify-send 'hi' 'ho'
|
||||||
|
@ -96,6 +120,16 @@
|
||||||
done
|
done
|
||||||
</script-var>
|
</script-var>
|
||||||
|
|
||||||
|
<script-var name="date" interval="1s">
|
||||||
|
date
|
||||||
|
</script-var>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--<script-var name="xyz">-->
|
<!--<script-var name="xyz">-->
|
||||||
<!--tail -F /home/leon/test | while read -r _; do notify-send "Hi"; done-->
|
<!--tail -F /home/leon/test | while read -r _; do notify-send "Hi"; done-->
|
||||||
<!--</script-var>-->
|
<!--</script-var>-->
|
||||||
|
@ -107,8 +141,15 @@
|
||||||
|
|
||||||
|
|
||||||
<windows>
|
<windows>
|
||||||
<window screen="DisplayPort-0" name="mw" stacking="fg" focusable="false">
|
<window screen="0" name="px" stacking="fg" focusable="false">
|
||||||
<!--<struts top="250" top_end_x="1920"/>-->
|
<geometry anchor="center left" width="10px" height="100%" x="1px" y="0px"/>
|
||||||
|
<widget>
|
||||||
|
<pxbar/>
|
||||||
|
</widget>
|
||||||
|
</window>
|
||||||
|
<window screen="1" name="mw" stacking="fg" focusable="false">
|
||||||
|
<!--<window screen="2" name="mw" stacking="fg" focusable="false">-->
|
||||||
|
<reserve side="l" distance="500px"/>
|
||||||
<geometry anchor="center" width="200px" height="200px" x="0px" y="0px"/>
|
<geometry anchor="center" width="200px" height="200px" x="0px" y="0px"/>
|
||||||
<widget>
|
<widget>
|
||||||
<test ree="test" />
|
<test ree="test" />
|
||||||
|
@ -117,7 +158,8 @@
|
||||||
<window screen="0" name="mw2" stacking="fg">
|
<window screen="0" name="mw2" stacking="fg">
|
||||||
<geometry anchor="bottom right"/>
|
<geometry anchor="bottom right"/>
|
||||||
<widget>
|
<widget>
|
||||||
<test ree="test" />
|
<foo/>
|
||||||
|
<!--<test ree="test" />-->
|
||||||
</widget>
|
</widget>
|
||||||
</window>
|
</window>
|
||||||
<window screen="0" name="volume_popup">
|
<window screen="0" name="volume_popup">
|
||||||
|
|
87
files/.config/eww/example/eww.scss
Normal file
87
files/.config/eww/example/eww.scss
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
|
||||||
|
* {
|
||||||
|
all: unset; //Unsets everything so you can style everything from scratch
|
||||||
|
}
|
||||||
|
|
||||||
|
//Global Styles
|
||||||
|
window {
|
||||||
|
background-color: #282828;
|
||||||
|
color: #ffd5cd;
|
||||||
|
font-family: cozette;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
all: unset;
|
||||||
|
background-color: #282828;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bar {
|
||||||
|
padding-left: 30px;
|
||||||
|
padding-right: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Styles on classes (see eww.xml for more information)
|
||||||
|
|
||||||
|
.sidestuff slider {
|
||||||
|
all: unset;
|
||||||
|
color: #ffd5cd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slider-vol scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-color: #D35D6E;
|
||||||
|
color: #000000;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.slider-vol scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: #4e4e4e;
|
||||||
|
border-radius: 50px;
|
||||||
|
min-height: 3px;
|
||||||
|
min-width: 50px;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
.slider-ram scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-color: #D35D6E;
|
||||||
|
color: #000000;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.slider-ram scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: #4e4e4e;
|
||||||
|
border-radius: 50px;
|
||||||
|
min-height: 3px;
|
||||||
|
min-width: 50px;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
.label-ram, .label-vol {
|
||||||
|
font-size: large;
|
||||||
|
}
|
||||||
|
.time {
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.workspaces button:hover {
|
||||||
|
color: #D35D6E;
|
||||||
|
}
|
||||||
|
|
||||||
|
.workspaces > * {
|
||||||
|
padding-left: 5px;
|
||||||
|
padding-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.active_wsp {
|
||||||
|
color: #8ec07c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.full_wsp {
|
||||||
|
color: #ebdbb2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.inactive_wsp {
|
||||||
|
color: #a89984;
|
||||||
|
}
|
125
files/.config/eww/example/eww.xml
Normal file
125
files/.config/eww/example/eww.xml
Normal file
|
@ -0,0 +1,125 @@
|
||||||
|
<!-- The main eww configuration file. This is where your widgets and how they appear on the screen and what they
|
||||||
|
contain are defined. -->
|
||||||
|
|
||||||
|
<eww>
|
||||||
|
<definitions>
|
||||||
|
<!-- This is the place where you structure your widgets, align them and stuff. -->
|
||||||
|
|
||||||
|
<def name="bar"> <!-- Starts the definition of a widget named main -->
|
||||||
|
<box orientation="h" hexpand="true" valign="center">
|
||||||
|
<workspaces wsp_literal="{{wsp_literal}}"/>
|
||||||
|
<music/>
|
||||||
|
<sidestuff/>
|
||||||
|
</box>
|
||||||
|
</def>
|
||||||
|
<def name="sidestuff">
|
||||||
|
<box class="sidestuff" orientation="h" space-evenly="false" halign="end">
|
||||||
|
<slider-vol/>
|
||||||
|
<slider-ram/>
|
||||||
|
<time/>
|
||||||
|
</box>
|
||||||
|
</def>
|
||||||
|
|
||||||
|
<def name="workspaces">
|
||||||
|
<literal content="{{wsp_literal}}"/>
|
||||||
|
</def>
|
||||||
|
<def name="music">
|
||||||
|
<box orientation="h" class="music" halign="center" space-evenly="false">
|
||||||
|
<!-- An image. We won't be using it, but it might be handy if you ever need it. -->
|
||||||
|
<!-- <image path="/home/user/.config/eww/icons/music.svg"/> -->
|
||||||
|
|
||||||
|
{{music}} <!--This is how you use variables.-->
|
||||||
|
</box>
|
||||||
|
</def>
|
||||||
|
<def name="slider-vol">
|
||||||
|
<!--A basic volume slider-->
|
||||||
|
<box orientation="h" class="slider-vol" space-evenly="false">
|
||||||
|
<box class="label-vol"></box>
|
||||||
|
<scale min="0" max="101" value="{{volume}}" onchange="amixer -D pulse sset Master {}%"/>
|
||||||
|
</box>
|
||||||
|
</def>
|
||||||
|
<def name="slider-ram">
|
||||||
|
<!--A basic RAM slider-->
|
||||||
|
<box orientation="h" class="slider-ram" space-evenly="false">
|
||||||
|
<box class="label-ram"></box>
|
||||||
|
<scale min="0" active="false" max="101" value="{{ram-used}}"/>
|
||||||
|
</box>
|
||||||
|
</def>
|
||||||
|
<def name="time">
|
||||||
|
<!--Time-->
|
||||||
|
<box class="time">{{hour}}:{{min}} {{month}} {{number_day}}, {{year_full}}</box>
|
||||||
|
</def>
|
||||||
|
</definitions>
|
||||||
|
|
||||||
|
<variables>
|
||||||
|
|
||||||
|
<!-- Music vars -->
|
||||||
|
<!-- These are your variables. Like they say, they run a script, and then output that to the variable. In
|
||||||
|
the following var, we get music info from playerctl. -->
|
||||||
|
|
||||||
|
<script-var name="music" interval="5s">playerctl metadata --format '{{ artist }} - {{ title }}'</script-var>
|
||||||
|
|
||||||
|
|
||||||
|
<!--Volume var-->
|
||||||
|
<!-- If your vars get too complex to write down here, you can use an external script and paste it's path here as well, as shown below.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<script-var name="volume" interval="16ms">
|
||||||
|
amixer -D pulse sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%'
|
||||||
|
</script-var>
|
||||||
|
|
||||||
|
<script-var name="workspace_literal_0">
|
||||||
|
~/.config/eww/scripts/workspaces.sh 0
|
||||||
|
</script-var>
|
||||||
|
<script-var name="workspace_literal_1">
|
||||||
|
~/.config/eww/scripts/workspaces.sh 1
|
||||||
|
</script-var>
|
||||||
|
<script-var name="workspace_literal_2">
|
||||||
|
~/.config/eww/scripts/workspaces.sh 2
|
||||||
|
</script-var>
|
||||||
|
|
||||||
|
<!--Date vars-->
|
||||||
|
<script-var name="number_day" interval="5h">date "+%d"</script-var>
|
||||||
|
<script-var name="month" interval="10h">date "+%b"</script-var>
|
||||||
|
<script-var name="min" interval="10s">date "+%M"</script-var>
|
||||||
|
<script-var name="hour" interval="1m">date "+%H"</script-var>
|
||||||
|
<script-var name="year_full" interval="15h">date "+%Y"</script-var>
|
||||||
|
|
||||||
|
<!--RAM var-->
|
||||||
|
<script-var name="ram-used" interval="1s">
|
||||||
|
printf '%.0f\n' $(LANG=en_US free -m | grep Mem | awk '{print ($3/$2)*100}')
|
||||||
|
</script-var>
|
||||||
|
|
||||||
|
<!--Battery charge var-->
|
||||||
|
<script-var name="battery-remaining" interval="2m">
|
||||||
|
<!--cat /sys/class/power_supply/BAT0/capacity-->
|
||||||
|
echo 50
|
||||||
|
</script-var>
|
||||||
|
|
||||||
|
</variables>
|
||||||
|
|
||||||
|
<windows>
|
||||||
|
<!-- These are the windows -->
|
||||||
|
<window screen="0" name="bar">
|
||||||
|
<geometry x="0%" y="0%" width="100%" height="40px"/> <!--Specifies geometry-->
|
||||||
|
<reserve side="top" distance="20px"/>
|
||||||
|
<widget>
|
||||||
|
<bar wsp_literal="{{workspace_literal_1}}"/> <!--This is the def we created earlier-->
|
||||||
|
</widget>
|
||||||
|
</window>
|
||||||
|
<window screen="1" name="bar1">
|
||||||
|
<geometry x="0%" y="0%" width="100%" height="40px"/> <!--Specifies geometry-->
|
||||||
|
<reserve side="top" distance="20px"/>
|
||||||
|
<widget>
|
||||||
|
<bar wsp_literal="{{workspace_literal_0}}"/> <!--This is the def we created earlier-->
|
||||||
|
</widget>
|
||||||
|
</window>
|
||||||
|
<window screen="2" name="bar2">
|
||||||
|
<geometry x="0%" y="0%" width="100%" height="40px"/> <!--Specifies geometry-->
|
||||||
|
<reserve side="top" distance="20px"/>
|
||||||
|
<widget>
|
||||||
|
<bar wsp_literal="{{workspace_literal_2}}"/> <!--This is the def we created earlier-->
|
||||||
|
</widget>
|
||||||
|
</window>
|
||||||
|
</windows>
|
||||||
|
</eww>
|
13
files/.config/eww/foo.xml
Normal file
13
files/.config/eww/foo.xml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<eww>
|
||||||
|
<definitions>
|
||||||
|
<def name="foo">
|
||||||
|
<box>Hey this is a foo</box>
|
||||||
|
</def>
|
||||||
|
</definitions>
|
||||||
|
|
||||||
|
<variables>
|
||||||
|
<var name="shit">
|
||||||
|
shit
|
||||||
|
</var>
|
||||||
|
</variables>
|
||||||
|
</eww>
|
28
files/.config/eww/scripts/workspaces.sh
Normal file
28
files/.config/eww/scripts/workspaces.sh
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
monitor="$1"
|
||||||
|
|
||||||
|
gib_workspace_names() {
|
||||||
|
wmctrl -d \
|
||||||
|
| awk '{ print $1 " " $2 " " $9 }' \
|
||||||
|
| grep -v NSP \
|
||||||
|
| grep "${monitor}_"
|
||||||
|
}
|
||||||
|
|
||||||
|
gib_workspace_xml() {
|
||||||
|
gib_workspace_names | while read -r id active name; do
|
||||||
|
name="${name#*_}"
|
||||||
|
if [ "$active" == '*' ]; then
|
||||||
|
button_class="active_wsp"
|
||||||
|
elif wmctrl -l | grep --regexp '.*\s\+'"$id"'\s\+.*' >/dev/null; then
|
||||||
|
button_class="full_wsp"
|
||||||
|
else
|
||||||
|
button_class="inactive_wsp"
|
||||||
|
fi
|
||||||
|
echo -n '<button class="'"$button_class"'" onclick="wmctrl -s '"$id"'">'"$name"'</button>'
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
xprop -spy -root _NET_CURRENT_DESKTOP | while read -r; do
|
||||||
|
echo '<box orientation="h" class="workspaces" space-evenly="true" halign="start" valign="center" vexpand="true">'"$(gib_workspace_xml)"'</box>'
|
||||||
|
done
|
|
@ -1,6 +1,6 @@
|
||||||
{-# LANGUAGE NamedFieldPuns #-}
|
{-# LANGUAGE NamedFieldPuns #-}
|
||||||
{-# LANGUAGE MultiParamTypeClasses, DeriveDataTypeable, TypeSynonymInstances, FlexibleInstances, FlexibleContexts, ScopedTypeVariables, LambdaCase #-}
|
{-# LANGUAGE MultiParamTypeClasses, DeriveDataTypeable, TypeSynonymInstances, FlexibleInstances, FlexibleContexts, ScopedTypeVariables, LambdaCase #-}
|
||||||
{-# OPTIONS_GHC -fno-warn-missing-signatures -fno-warn-unused-binds #-}
|
{-# OPTIONS_GHC -fno-warn-missing-signatures -fno-warn-unused-binds -fno-warn-Wno-unused-top-binds #-}
|
||||||
-- Imports -------------------------------------------------------- {{{
|
-- Imports -------------------------------------------------------- {{{
|
||||||
|
|
||||||
module Config (main) where
|
module Config (main) where
|
||||||
|
@ -97,6 +97,7 @@ import Data.Bifunctor
|
||||||
import GHC.IO.Unsafe (unsafePerformIO)
|
import GHC.IO.Unsafe (unsafePerformIO)
|
||||||
import XMonad.Layout.LayoutModifier
|
import XMonad.Layout.LayoutModifier
|
||||||
import qualified IndependentScreens as IS
|
import qualified IndependentScreens as IS
|
||||||
|
import Data.List (find)
|
||||||
--import XMonad.Layout.MultiColumns (multiCol)
|
--import XMonad.Layout.MultiColumns (multiCol)
|
||||||
{-# ANN module "HLint: ignore Redundant $" #-}
|
{-# ANN module "HLint: ignore Redundant $" #-}
|
||||||
{-# ANN module "HLint: ignore Redundant bracket" #-}
|
{-# ANN module "HLint: ignore Redundant bracket" #-}
|
||||||
|
@ -272,7 +273,7 @@ myStartupHook = do
|
||||||
spawn "/home/leon/.config/polybar/launch.sh"
|
spawn "/home/leon/.config/polybar/launch.sh"
|
||||||
spawnOnce "nitrogen --restore"
|
spawnOnce "nitrogen --restore"
|
||||||
spawnOnce "mailnag"
|
spawnOnce "mailnag"
|
||||||
spawnOnce "flashfocus"
|
spawn "flashfocus"
|
||||||
for_ ["led1", "led2"] $ \led -> safeSpawn "sudo" ["liquidctl", "set", led, "color", "fixed", "00ffff"]
|
for_ ["led1", "led2"] $ \led -> safeSpawn "sudo" ["liquidctl", "set", led, "color", "fixed", "00ffff"]
|
||||||
withDisplay $ \dpy -> do
|
withDisplay $ \dpy -> do
|
||||||
r <- asks theRoot
|
r <- asks theRoot
|
||||||
|
@ -347,7 +348,7 @@ myKeys = concat [ zoomRowBindings, tabbedBindings, multiMonitorBindings, program
|
||||||
programLaunchBindings :: [(String, X ())]
|
programLaunchBindings :: [(String, X ())]
|
||||||
programLaunchBindings =
|
programLaunchBindings =
|
||||||
[ ("M-p", spawn myLauncher)
|
[ ("M-p", spawn myLauncher)
|
||||||
, ("M-S-p", Rofi.showCombi def [ "drun", "window", "ssh" ])
|
, ("M-S-p", Rofi.showCombi def [ "drun", "ssh" ])
|
||||||
, ("M-S-e", Rofi.showNormal (def { Rofi.fuzzy = False }) "emoji")
|
, ("M-S-e", Rofi.showNormal (def { Rofi.fuzzy = False }) "emoji")
|
||||||
--, ("M-s", spawn $ scriptFile "rofi-search.sh")
|
--, ("M-s", spawn $ scriptFile "rofi-search.sh")
|
||||||
, ("M-S-o", spawn $ scriptFile "rofi-open.sh")
|
, ("M-S-o", spawn $ scriptFile "rofi-open.sh")
|
||||||
|
@ -470,6 +471,18 @@ myKeys = concat [ zoomRowBindings, tabbedBindings, multiMonitorBindings, program
|
||||||
, W.visible = (otherScreen { W.workspace = currentWsp { W.tag = W.tag otherWsp } } : (tail $ W.visible ws))
|
, W.visible = (otherScreen { W.workspace = currentWsp { W.tag = W.tag otherWsp } } : (tail $ W.visible ws))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
swapCurrentWspContentsWith :: Eq i => i -> W.StackSet i l a sid sd -> W.StackSet i l a sid sd
|
||||||
|
swapCurrentWspContentsWith other ws =
|
||||||
|
case find ((other ==) . W.tag) $ W.workspaces ws of
|
||||||
|
Just otherWsp -> W.mapWorkspace (swapWith otherWsp) ws
|
||||||
|
Nothing -> ws
|
||||||
|
where
|
||||||
|
currentWsp = W.workspace $ W.current ws
|
||||||
|
swapWith otherWsp w
|
||||||
|
| W.tag w == other = currentWsp { W.tag = W.tag otherWsp }
|
||||||
|
| W.tag w == W.tag currentWsp = otherWsp { W.tag = W.tag currentWsp }
|
||||||
|
| otherwise = w
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
withSelectionCommands :: [(String, X ())]
|
withSelectionCommands :: [(String, X ())]
|
||||||
|
@ -632,10 +645,6 @@ fullscreenFixEventHook (ClientMessageEvent _ _ _ dpy win typ (_:dats)) = do
|
||||||
liftIO $ do
|
liftIO $ do
|
||||||
resizeWindow dpy win (fromIntegral $ wa_width attrs - 1) (fromIntegral $ wa_height attrs)
|
resizeWindow dpy win (fromIntegral $ wa_width attrs - 1) (fromIntegral $ wa_height attrs)
|
||||||
resizeWindow dpy win (fromIntegral $ wa_width attrs) (fromIntegral $ wa_height attrs)
|
resizeWindow dpy win (fromIntegral $ wa_width attrs) (fromIntegral $ wa_height attrs)
|
||||||
--withWindowAttributes dpy win $ \attrs ->
|
|
||||||
--liftIO $ resizeWindow dpy win (fromIntegral $ wa_width attrs - 1) (fromIntegral $ wa_height attrs)
|
|
||||||
--withWindowAttributes dpy win $ \attrs ->
|
|
||||||
--liftIO $ resizeWindow dpy win (fromIntegral $ wa_width attrs + 1) (fromIntegral $ wa_height attrs)
|
|
||||||
return $ All True
|
return $ All True
|
||||||
fullscreenFixEventHook _ = return $ All True
|
fullscreenFixEventHook _ = return $ All True
|
||||||
|
|
||||||
|
@ -655,7 +664,7 @@ polybarLogHook monitor = do
|
||||||
-- swapping namedScratchpadFilterOutWorkspacePP and marshallPP will throw "Prelude.read no Parse" errors..... wtf
|
-- swapping namedScratchpadFilterOutWorkspacePP and marshallPP will throw "Prelude.read no Parse" errors..... wtf
|
||||||
-- | create a polybar Pretty printer, marshalled for given monitor.
|
-- | create a polybar Pretty printer, marshalled for given monitor.
|
||||||
polybarPP :: ScreenId -> PP
|
polybarPP :: ScreenId -> PP
|
||||||
polybarPP monitor = namedScratchpadFilterOutWorkspacePP . (if useSharedWorkspaces then id else IS.marshallPP $ fromIntegral monitor) $ def
|
polybarPP monitor = filterOutWsPP ["NSP"] . (if useSharedWorkspaces then id else IS.marshallPP $ fromIntegral monitor) $ def
|
||||||
{ ppCurrent = withFG aqua . withMargin . withFont 5 . const "__active__"
|
{ ppCurrent = withFG aqua . withMargin . withFont 5 . const "__active__"
|
||||||
, ppVisible = withFG aqua . withMargin . withFont 5 . const "__active__"
|
, ppVisible = withFG aqua . withMargin . withFont 5 . const "__active__"
|
||||||
, ppUrgent = withFG red . withMargin . withFont 5 . const "__urgent__"
|
, ppUrgent = withFG red . withMargin . withFont 5 . const "__urgent__"
|
||||||
|
@ -733,48 +742,6 @@ getActiveLayoutDescription = (description . W.layout . W.workspace . W.current)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
--
|
|
||||||
-- newtype ActionCycleState = ActionCycleState (M.Map String Int) deriving Typeable
|
|
||||||
-- instance ExtensionClass ActionCycleState where
|
|
||||||
-- initialValue = ActionCycleState mempty
|
|
||||||
--
|
|
||||||
-- getActionCycle :: String -> ActionCycleState -> Maybe Int
|
|
||||||
-- getActionCycle name (ActionCycleState s) = M.lookup name s
|
|
||||||
--
|
|
||||||
-- nextActionCycle :: String -> Int -> ActionCycleState -> ActionCycleState
|
|
||||||
-- nextActionCycle name maxNum (ActionCycleState s) = ActionCycleState $ M.update (\n -> Just $ (n + 1) `mod` maxNum) name s
|
|
||||||
--
|
|
||||||
-- setActionCycle :: String -> Int -> ActionCycleState -> ActionCycleState
|
|
||||||
-- setActionCycle name n (ActionCycleState s)= ActionCycleState $ M.insert name n s
|
|
||||||
--
|
|
||||||
-- cycleAction :: String -> [X ()] -> X ()
|
|
||||||
-- cycleAction _ [] = pure ()
|
|
||||||
-- cycleAction name actions = do
|
|
||||||
-- idx <- XS.gets (getActionCycle name) >>= \case
|
|
||||||
-- Just x -> do
|
|
||||||
-- XS.modify (nextActionCycle name (length actions))
|
|
||||||
-- pure x
|
|
||||||
-- Nothing -> do
|
|
||||||
-- XS.modify (setActionCycle name 1)
|
|
||||||
-- pure 0
|
|
||||||
--
|
|
||||||
-- sequence_ $ actions `safeIdx` idx
|
|
||||||
--
|
|
||||||
--
|
|
||||||
--
|
|
||||||
--
|
|
||||||
-- safeIdx :: [a] -> Int -> Maybe a
|
|
||||||
-- safeIdx list i
|
|
||||||
-- | i < length list = Just $ list !! i
|
|
||||||
-- | otherwise = Nothing
|
|
||||||
--
|
|
||||||
|
|
||||||
|
|
||||||
unsafeGetXrdbValue :: String -> String
|
unsafeGetXrdbValue :: String -> String
|
||||||
unsafeGetXrdbValue = unsafePerformIO . getXrdbValue
|
unsafeGetXrdbValue = unsafePerformIO . getXrdbValue
|
||||||
|
|
||||||
|
@ -801,3 +768,12 @@ fuckshit = getActiveLayoutDescription >>= debugShit
|
||||||
|
|
||||||
debugShit :: MonadIO m => String -> m ()
|
debugShit :: MonadIO m => String -> m ()
|
||||||
debugShit x = spawn $ "notify-send 'Debug' '" ++ x ++ "'"
|
debugShit x = spawn $ "notify-send 'Debug' '" ++ x ++ "'"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
lastLayout :: X ()
|
||||||
|
lastLayout = lastLayout' 123
|
||||||
|
where
|
||||||
|
lastLayout' :: Int -> X ()
|
||||||
|
lastLayout' 0 = pure ()
|
||||||
|
lastLayout' n = sendMessage NextLayout >> lastLayout' (n - 1)
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
/nix/store/g0342b3m9b0c8znl1s7xyibadadw0y0w-glibc-locales-2.32
|
/nix/store/k1yac6z5x9qqrrxf89xmwp38rs7snhjj-glibc-locales-2.32-10
|
104
files/github_gruvbox_simple.css
Normal file
104
files/github_gruvbox_simple.css
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
/* ==UserStyle==
|
||||||
|
@name Github gruvbox
|
||||||
|
@namespace github.com/openstyles/stylus
|
||||||
|
@version 1.0.0
|
||||||
|
@description A new userstyle
|
||||||
|
@author Me
|
||||||
|
==/UserStyle== */
|
||||||
|
@-moz-document domain("github.com") {
|
||||||
|
|
||||||
|
|
||||||
|
[data-color-mode=dark] {
|
||||||
|
--color-bg-canvas: #282828 !important;
|
||||||
|
--color-bg-canvas-inset: #1d2021 !important;
|
||||||
|
--color-bg-canvas-inverse: #080808 !important;
|
||||||
|
--color-bg-canvas-mobile: #080808 !important;
|
||||||
|
--color-header-bg: #282828 !important;
|
||||||
|
--color-bg-primary: #1d2021 !important;
|
||||||
|
--color-bg-secondary: #1d2021 !important;
|
||||||
|
--color-bg-tertiary: #3c3836 !important;
|
||||||
|
--color-border-primary: transparent !important;
|
||||||
|
--color-border-secondary: transparent !important;
|
||||||
|
--color-box-header-blue-bg: transparent !important;
|
||||||
|
--color-box-header-blue-border: transparent !important;
|
||||||
|
--color-btn-bg: #ffffff10 !important;
|
||||||
|
--color-social-count-bg: #ffffff20 !important;
|
||||||
|
--color-btn-border: transparent !important;
|
||||||
|
--color-btn-hover-bg: #ffffff20 !important;
|
||||||
|
--color-btn-hover-border: transparent !important;
|
||||||
|
--color-topic-tag-bg: #5c8ae610 !important;
|
||||||
|
--color-header-search-bg: #ffffff10 !important;
|
||||||
|
--color-header-text: #ebdbb2 !important;
|
||||||
|
--color-header-logo: #ebdbb2 !important;
|
||||||
|
--color-header-search-border: transparent !important;
|
||||||
|
--color-input-contrast-bg: #ffffff10 !important;
|
||||||
|
--color-input-bg: #ffffff10 !important;
|
||||||
|
--color-input-border: transparent !important;
|
||||||
|
--color-text-primary: #fbf1c7 !important;
|
||||||
|
--color-text-secondary: #fbf1c7 !important;
|
||||||
|
--color-text-tertiary: #ebdbb2 !important;
|
||||||
|
--color-underlinenav-text: #ebdbb2 !important;
|
||||||
|
--color-underlinenav-text-active: #ebdbb2 !important;
|
||||||
|
--color-text-placeholder: #ffffff40 !important;
|
||||||
|
--color-underlinenav-counter-text: #ffffffAA !important;
|
||||||
|
--color-counter-bg: #ffffff20 !important;
|
||||||
|
--color-underlinenav-icon: #ffffffAA !important;
|
||||||
|
--color-calendar-graph-day-bg: #ffffff10 !important;
|
||||||
|
--color-border-overlay: transparent !important;
|
||||||
|
--color-shadow-large: rgb(1, 4, 9) 2px 2px 12px 0px !important;
|
||||||
|
--color-bg-overlay: #1c1c1c !important;
|
||||||
|
--color-select-menu-backdrop-bg: #1c1c1c !important;
|
||||||
|
--color-state-hover-secondary-bg: #ffffff10 !important;
|
||||||
|
--color-menu-bg-active: #ffffff10 !important;
|
||||||
|
--color-bg-info: #1c1c1c !important;
|
||||||
|
--color-btn-selected-bg: #ffffff20 !important;
|
||||||
|
--color-sidenav-selected-bg: #ffffff10 !important;
|
||||||
|
--color-auto-gray-2: #ffffff20 !important;
|
||||||
|
--color-state-selected-primary-bg: #835ce6 !important;
|
||||||
|
--color-text-link: #458588 !important;
|
||||||
|
--color-icon-success: #8ec07c !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-color-mode=dark] * {
|
||||||
|
transition-duration: 150ms !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-color-mode=dark] .markdown-body img,
|
||||||
|
[data-color-mode=dark] .bg-white:not(aside):not(.position-sticky) {
|
||||||
|
background: transparent !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-color-mode=dark] main .Box-header--blue,
|
||||||
|
[data-color-mode=dark] main .Box,
|
||||||
|
[data-color-mode=dark] .Box-row,
|
||||||
|
[data-color-mode=dark] .Box-header,
|
||||||
|
[data-color-mode=dark] .border-top .SelectMenu-item:last-child {
|
||||||
|
border: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-color-mode=dark] .tabnav-tab.selected,
|
||||||
|
[data-color-mode=dark] .tabnav-tab[aria-current]:not([aria-current=false]),
|
||||||
|
[data-color-mode=dark] .tabnav-tab[aria-selected=true],
|
||||||
|
[data-color-mode=dark] .pinned-issue-item,
|
||||||
|
[data-color-mode=dark] pager-flow,
|
||||||
|
[data-color-mode=dark] .border {
|
||||||
|
background: #1d2021;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-color-mode=dark] .SelectMenu-item {
|
||||||
|
border-color: #ffffff10;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-color-mode=dark] .Box-row--focus-gray.navigation-focus {
|
||||||
|
background: #ffffff03;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-color-mode=dark] main .Box-header,
|
||||||
|
[data-color-mode=dark] .Box-row {
|
||||||
|
margin: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
svg {
|
||||||
|
color: var(--color-fg-primary) !important;
|
||||||
|
}
|
||||||
|
}
|
|
@ -27,6 +27,15 @@ in
|
||||||
barrier
|
barrier
|
||||||
#hyper-haskell
|
#hyper-haskell
|
||||||
font-manager
|
font-manager
|
||||||
|
|
||||||
|
sqlite-web
|
||||||
|
|
||||||
|
#flameshot
|
||||||
|
|
||||||
|
|
||||||
|
sxhkd
|
||||||
|
okular
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
@ -60,6 +69,8 @@ in
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.user.services.dunst.Environment.DISPLAY = ":1";
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
mpd = {
|
mpd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -132,62 +132,70 @@ in
|
||||||
|
|
||||||
initExtraBeforeCompInit = ''
|
initExtraBeforeCompInit = ''
|
||||||
|
|
||||||
zstyle ':completion:*' menu select
|
zstyle ':completion:*' menu select
|
||||||
zstyle ':completion::complete:*' gain-privileges 1
|
zstyle ':completion::complete:*' gain-privileges 1
|
||||||
zstyle ':completion:*' list-prompt ""
|
zstyle ':completion:*' list-prompt ""
|
||||||
zstyle ':completion:*' select-prompt ""
|
zstyle ':completion:*' select-prompt ""
|
||||||
zmodload zsh/complist
|
zmodload zsh/complist
|
||||||
|
|
||||||
fpath+=( /usr/share/zsh/site-functions/ )
|
fpath+=( /usr/share/zsh/site-functions/ )
|
||||||
'';
|
'';
|
||||||
|
|
||||||
initExtra = ''
|
|
||||||
export MANPAGER='nvim +Man! +"set nocul" +"set noshowcmd" +"set noruler" +"set noshowmode" +"set laststatus=2" +"set statusline=\ %t"'
|
|
||||||
export MANPAGER='nvim +Man! +"set nocul" +"set noshowcmd" +"set noruler" +"set noshowmode" +"set laststatus=0"'
|
|
||||||
|
|
||||||
setopt nobeep
|
|
||||||
|
|
||||||
setopt HIST_IGNORE_ALL_DUPS
|
|
||||||
autoload -Uz colors && colors
|
|
||||||
autoload -Uz promptinit && promptinit
|
|
||||||
|
|
||||||
|
|
||||||
# control-backspace
|
profileExtra = ''
|
||||||
bindkey '^H' backward-kill-word
|
[[ -f /home/leon/.profile ]] && . /home/leon/.profile
|
||||||
|
#case $(tty) in
|
||||||
|
#/dev/tty*) [[ $XDG_VTNR -le 2 ]] && tbsm;;
|
||||||
|
#esac
|
||||||
|
'';
|
||||||
|
|
||||||
|
initExtra = ''
|
||||||
|
export MANPAGER='nvim +Man! +"set nocul" +"set noshowcmd" +"set noruler" +"set noshowmode" +"set laststatus=2" +"set statusline=\ %t"'
|
||||||
|
export MANPAGER='nvim +Man! +"set nocul" +"set noshowcmd" +"set noruler" +"set noshowmode" +"set laststatus=0"'
|
||||||
|
|
||||||
|
setopt nobeep
|
||||||
|
|
||||||
|
setopt HIST_IGNORE_ALL_DUPS
|
||||||
|
autoload -Uz colors && colors
|
||||||
|
autoload -Uz promptinit && promptinit
|
||||||
|
|
||||||
|
|
||||||
#_comp_options+=(globdots)
|
# control-backspace
|
||||||
|
bindkey '^H' backward-kill-word
|
||||||
|
|
||||||
# enable cdr command
|
|
||||||
autoload -Uz chpwd_recent_dirs cdr add-zsh-hook
|
|
||||||
add-zsh-hook chpwd chpwd_recent_dirs
|
|
||||||
|
|
||||||
# deer is a ranger-style file manager directly in the shell that doesn't fully context-switch
|
#_comp_options+=(globdots)
|
||||||
#source ~/nixpkgs/config/deer.zsh
|
|
||||||
#zle -N deer
|
|
||||||
#bindkey '\ek' deer
|
|
||||||
|
|
||||||
source ~/.profile
|
# enable cdr command
|
||||||
|
autoload -Uz chpwd_recent_dirs cdr add-zsh-hook
|
||||||
|
add-zsh-hook chpwd chpwd_recent_dirs
|
||||||
|
|
||||||
${fzf-tab-stuff}
|
# deer is a ranger-style file manager directly in the shell that doesn't fully context-switch
|
||||||
${fixedKeybinds}
|
#source ~/nixpkgs/config/deer.zsh
|
||||||
${makeAbbrs cfg.abbrs}
|
#zle -N deer
|
||||||
${manFunction}
|
#bindkey '\ek' deer
|
||||||
|
|
||||||
${builtins.readFile ./prompt.zsh}
|
source ~/.profile
|
||||||
${builtins.readFile ./keybinds.zsh}
|
|
||||||
'';
|
|
||||||
|
|
||||||
plugins = let
|
${fzf-tab-stuff}
|
||||||
sources = import ./nix/sources.nix;
|
${fixedKeybinds}
|
||||||
in
|
${makeAbbrs cfg.abbrs}
|
||||||
[
|
${manFunction}
|
||||||
{ name = "fzf-tab"; src = sources.fzf-tab; }
|
|
||||||
{ name = "zsh-autosuggestions"; src = sources.zsh-autosuggestions; }
|
${builtins.readFile ./prompt.zsh}
|
||||||
{ name = "history-substring-search"; src = sources.zsh-history-substring-search; }
|
${builtins.readFile ./keybinds.zsh}
|
||||||
{ name = "zsh-abbr"; src = sources.zsh-abbr; }
|
'';
|
||||||
{ name = "fast-syntax-highlighting"; src = sources.fast-syntax-highlighting; }
|
|
||||||
];
|
plugins = let
|
||||||
|
sources = import ./nix/sources.nix;
|
||||||
|
in
|
||||||
|
[
|
||||||
|
{ name = "fzf-tab"; src = sources.fzf-tab; }
|
||||||
|
{ name = "zsh-autosuggestions"; src = sources.zsh-autosuggestions; }
|
||||||
|
{ name = "history-substring-search"; src = sources.zsh-history-substring-search; }
|
||||||
|
{ name = "zsh-abbr"; src = sources.zsh-abbr; }
|
||||||
|
{ name = "fast-syntax-highlighting"; src = sources.fast-syntax-highlighting; }
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs ? import <nixpkgs> {} }:
|
{ pkgs ? import <nixpkgs> {} }:
|
||||||
pkgs.mkShell {
|
pkgs.mkShell {
|
||||||
buildInputs = [ pkgs.ytop pkgs.pscircle pkgs.asciiquarium pkgs.cmatrix ];
|
buildInputs = [ pkgs.pscircle pkgs.asciiquarium pkgs.cmatrix ];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
sudo chmod 666 /dev/ttyACM0
|
sudo chmod 666 /dev/ttyACM0
|
||||||
~/Downloads/Bazecor-0.2.4.AppImage
|
~/Downloads/Bazecor-0.2.7.AppImage
|
||||||
|
|
Loading…
Reference in a new issue