mirror of
https://github.com/elkowar/dots-of-war.git
synced 2024-12-24 13:22:23 +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,
|
||||
"lastUpdateCheck": 1609704527220,
|
||||
"update": {
|
||||
"latest": "6.14.10",
|
||||
"current": "6.14.9",
|
||||
"type": "patch",
|
||||
"name": "npm"
|
||||
}
|
||||
"lastUpdateCheck": 1615367685427
|
||||
}
|
|
@ -75,7 +75,6 @@ scale trough {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
.this {
|
||||
border: 10px solid blue;
|
||||
}
|
||||
|
@ -93,3 +92,38 @@ scale trough {
|
|||
.lol {
|
||||
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>
|
||||
<includes>
|
||||
<file path="./foo.xml"/>
|
||||
</includes>
|
||||
<definitions>
|
||||
|
||||
<def name="pxbar">
|
||||
<progress value="{{volume}}" orientation="v" halign="start" flipped="true"/>
|
||||
</def>
|
||||
|
||||
<def name="test">
|
||||
<box class="{{some_var}}" space-evenly="false" spacing="10">
|
||||
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" />
|
||||
|
||||
<button onclick="pgrep 'eww' && echo '' || echo ''">Test bug</button>
|
||||
|
@ -12,6 +32,8 @@
|
|||
notify-send 'ree' 'this is {{shit}}'
|
||||
<multiple text="{{shit}}" />
|
||||
|
||||
<!--<literal content="{{code}}"/>-->
|
||||
|
||||
</box>
|
||||
</def>
|
||||
|
||||
|
@ -24,8 +46,9 @@
|
|||
<box>{{text}}</box>
|
||||
|
||||
<label onscroll="notify-send '{{shit}}' {}" text="reeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" limit-width="5" wrap="true" />
|
||||
<input onchange="notify-send 'ree' '{}'" />
|
||||
<!--<input onchange="eww update code='{}'" />-->
|
||||
{{date}}
|
||||
{{date-tail}}
|
||||
</box>
|
||||
</def>
|
||||
|
||||
|
@ -67,15 +90,16 @@
|
|||
<variables>
|
||||
<script-var name="volume">
|
||||
amixer sget 'Master' | grep 'Front Left:' | sed 's/.*\[\(.*\)%\].*/\1/g';
|
||||
LANG=C pactl subscribe | grep REEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE-line-buffered sink | while read -r _; do
|
||||
amixer sget 'Master' | grep 'Front Left:' | sed 's/.*\[\(.*\)%\].*/\1/g'
|
||||
LANG=C pactl subscribe | grep --line-buffered sink | while read -r _; do
|
||||
amixer sget 'Master' | grep 'Front Left:' | sed 's/.*\[\(.*\)%\].*/\1/g'
|
||||
done
|
||||
</script-var>
|
||||
|
||||
<var name="shit">
|
||||
shit
|
||||
true
|
||||
</var>
|
||||
<var name="some_var"></var>
|
||||
<var name="code"></var>
|
||||
|
||||
|
||||
<var name="song-image"></var>
|
||||
|
@ -88,7 +112,7 @@
|
|||
<!--<script-var name="date" interval="1s">-->
|
||||
<!--date-->
|
||||
<!--</script-var>-->
|
||||
<script-var name="date">
|
||||
<script-var name="date-tail">
|
||||
while true; do
|
||||
sleep 1;
|
||||
notify-send 'hi' 'ho'
|
||||
|
@ -96,6 +120,16 @@
|
|||
done
|
||||
</script-var>
|
||||
|
||||
<script-var name="date" interval="1s">
|
||||
date
|
||||
</script-var>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--<script-var name="xyz">-->
|
||||
<!--tail -F /home/leon/test | while read -r _; do notify-send "Hi"; done-->
|
||||
<!--</script-var>-->
|
||||
|
@ -107,8 +141,15 @@
|
|||
|
||||
|
||||
<windows>
|
||||
<window screen="DisplayPort-0" name="mw" stacking="fg" focusable="false">
|
||||
<!--<struts top="250" top_end_x="1920"/>-->
|
||||
<window screen="0" name="px" stacking="fg" focusable="false">
|
||||
<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"/>
|
||||
<widget>
|
||||
<test ree="test" />
|
||||
|
@ -117,7 +158,8 @@
|
|||
<window screen="0" name="mw2" stacking="fg">
|
||||
<geometry anchor="bottom right"/>
|
||||
<widget>
|
||||
<test ree="test" />
|
||||
<foo/>
|
||||
<!--<test ree="test" />-->
|
||||
</widget>
|
||||
</window>
|
||||
<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 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 -------------------------------------------------------- {{{
|
||||
|
||||
module Config (main) where
|
||||
|
@ -97,6 +97,7 @@ import Data.Bifunctor
|
|||
import GHC.IO.Unsafe (unsafePerformIO)
|
||||
import XMonad.Layout.LayoutModifier
|
||||
import qualified IndependentScreens as IS
|
||||
import Data.List (find)
|
||||
--import XMonad.Layout.MultiColumns (multiCol)
|
||||
{-# ANN module "HLint: ignore Redundant $" #-}
|
||||
{-# ANN module "HLint: ignore Redundant bracket" #-}
|
||||
|
@ -272,7 +273,7 @@ myStartupHook = do
|
|||
spawn "/home/leon/.config/polybar/launch.sh"
|
||||
spawnOnce "nitrogen --restore"
|
||||
spawnOnce "mailnag"
|
||||
spawnOnce "flashfocus"
|
||||
spawn "flashfocus"
|
||||
for_ ["led1", "led2"] $ \led -> safeSpawn "sudo" ["liquidctl", "set", led, "color", "fixed", "00ffff"]
|
||||
withDisplay $ \dpy -> do
|
||||
r <- asks theRoot
|
||||
|
@ -347,7 +348,7 @@ myKeys = concat [ zoomRowBindings, tabbedBindings, multiMonitorBindings, program
|
|||
programLaunchBindings :: [(String, X ())]
|
||||
programLaunchBindings =
|
||||
[ ("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", spawn $ scriptFile "rofi-search.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))
|
||||
}
|
||||
|
||||
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 ())]
|
||||
|
@ -632,10 +645,6 @@ fullscreenFixEventHook (ClientMessageEvent _ _ _ dpy win typ (_:dats)) = do
|
|||
liftIO $ do
|
||||
resizeWindow dpy win (fromIntegral $ wa_width attrs - 1) (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
|
||||
fullscreenFixEventHook _ = return $ All True
|
||||
|
||||
|
@ -655,7 +664,7 @@ polybarLogHook monitor = do
|
|||
-- swapping namedScratchpadFilterOutWorkspacePP and marshallPP will throw "Prelude.read no Parse" errors..... wtf
|
||||
-- | create a polybar Pretty printer, marshalled for given monitor.
|
||||
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__"
|
||||
, ppVisible = withFG aqua . withMargin . withFont 5 . const "__active__"
|
||||
, 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 = unsafePerformIO . getXrdbValue
|
||||
|
||||
|
@ -801,3 +768,12 @@ fuckshit = getActiveLayoutDescription >>= debugShit
|
|||
|
||||
debugShit :: MonadIO m => String -> m ()
|
||||
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
|
||||
#hyper-haskell
|
||||
font-manager
|
||||
|
||||
sqlite-web
|
||||
|
||||
#flameshot
|
||||
|
||||
|
||||
sxhkd
|
||||
okular
|
||||
|
||||
];
|
||||
|
||||
|
||||
|
@ -60,6 +69,8 @@ in
|
|||
|
||||
};
|
||||
|
||||
systemd.user.services.dunst.Environment.DISPLAY = ":1";
|
||||
|
||||
services = {
|
||||
mpd = {
|
||||
enable = true;
|
||||
|
|
|
@ -132,62 +132,70 @@ in
|
|||
|
||||
initExtraBeforeCompInit = ''
|
||||
|
||||
zstyle ':completion:*' menu select
|
||||
zstyle ':completion::complete:*' gain-privileges 1
|
||||
zstyle ':completion:*' list-prompt ""
|
||||
zstyle ':completion:*' select-prompt ""
|
||||
zmodload zsh/complist
|
||||
zstyle ':completion:*' menu select
|
||||
zstyle ':completion::complete:*' gain-privileges 1
|
||||
zstyle ':completion:*' list-prompt ""
|
||||
zstyle ':completion:*' select-prompt ""
|
||||
zmodload zsh/complist
|
||||
|
||||
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
|
||||
fpath+=( /usr/share/zsh/site-functions/ )
|
||||
'';
|
||||
|
||||
|
||||
# control-backspace
|
||||
bindkey '^H' backward-kill-word
|
||||
profileExtra = ''
|
||||
[[ -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
|
||||
#source ~/nixpkgs/config/deer.zsh
|
||||
#zle -N deer
|
||||
#bindkey '\ek' deer
|
||||
#_comp_options+=(globdots)
|
||||
|
||||
source ~/.profile
|
||||
# enable cdr command
|
||||
autoload -Uz chpwd_recent_dirs cdr add-zsh-hook
|
||||
add-zsh-hook chpwd chpwd_recent_dirs
|
||||
|
||||
${fzf-tab-stuff}
|
||||
${fixedKeybinds}
|
||||
${makeAbbrs cfg.abbrs}
|
||||
${manFunction}
|
||||
# deer is a ranger-style file manager directly in the shell that doesn't fully context-switch
|
||||
#source ~/nixpkgs/config/deer.zsh
|
||||
#zle -N deer
|
||||
#bindkey '\ek' deer
|
||||
|
||||
${builtins.readFile ./prompt.zsh}
|
||||
${builtins.readFile ./keybinds.zsh}
|
||||
'';
|
||||
source ~/.profile
|
||||
|
||||
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; }
|
||||
];
|
||||
${fzf-tab-stuff}
|
||||
${fixedKeybinds}
|
||||
${makeAbbrs cfg.abbrs}
|
||||
${manFunction}
|
||||
|
||||
${builtins.readFile ./prompt.zsh}
|
||||
${builtins.readFile ./keybinds.zsh}
|
||||
'';
|
||||
|
||||
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.mkShell {
|
||||
buildInputs = [ pkgs.ytop pkgs.pscircle pkgs.asciiquarium pkgs.cmatrix ];
|
||||
buildInputs = [ pkgs.pscircle pkgs.asciiquarium pkgs.cmatrix ];
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
sudo chmod 666 /dev/ttyACM0
|
||||
~/Downloads/Bazecor-0.2.4.AppImage
|
||||
~/Downloads/Bazecor-0.2.7.AppImage
|
||||
|
|
Loading…
Reference in a new issue