eww-start
This commit is contained in:
@@ -1,97 +1,29 @@
|
||||
(defwindow bar-primary
|
||||
:monitor 0
|
||||
:geometry (geometry :x "0px"
|
||||
:y "25px"
|
||||
:width "100%"
|
||||
:height "25px"
|
||||
:anchor "top center")
|
||||
:stacking "fg"
|
||||
:reserve (struts :distance "50px" :side "top")
|
||||
:windowtype "dock"
|
||||
:wm-ignore false
|
||||
(box
|
||||
:orientation "horizontal"
|
||||
:halign "right"
|
||||
(eventbox :onclick "notify-send Left"
|
||||
:onrightclick "notify-send Right"
|
||||
"Click Me!")
|
||||
(rightSideBar)))
|
||||
(defwidget workspaces-and-windows []
|
||||
(let content (split " " (file "/tmp/xmonad-eww-log"))
|
||||
(let ws-list (take 9 content)
|
||||
(let win-list (drop 9 content)
|
||||
(box :orientation "vertical" :class "bar"
|
||||
|
||||
;; The Wrapper of the rightside Information
|
||||
(defwidget rightSideBar []
|
||||
(box
|
||||
:space-evenly "false"
|
||||
:halign "end"
|
||||
(audio)
|
||||
(nw)
|
||||
(date)
|
||||
))
|
||||
|
||||
;; The Internet Information box.
|
||||
(defwidget audio []
|
||||
(box :class "container"
|
||||
:space-evenly "false"
|
||||
:halign "end"
|
||||
(label :class "iconBat" :text "${volicon} ")
|
||||
(label :class "text" :text "${vol} % ")
|
||||
(label :class "text" :text "${micicon} ")))
|
||||
|
||||
;; The Internet Information box.
|
||||
(defwidget nw []
|
||||
(box :class "container"
|
||||
:space-evenly "false"
|
||||
:halign "end"
|
||||
(label :class "iconNWDown" :text " ")
|
||||
(label :class "text" :text " ${nwdown} ")
|
||||
(label :class "iconNWUp" :text " ")
|
||||
(label :class "text" :text "${nwup} ")))
|
||||
|
||||
;; The date Information box.
|
||||
(defwidget date []
|
||||
(box :class "container"
|
||||
:space-evenly "false"
|
||||
:halign "end"
|
||||
(label :class "iconClock" :text " ")
|
||||
(label :class "text" :text "${date-time} ")))
|
||||
|
||||
;; Variables
|
||||
|
||||
(defpoll volicon
|
||||
:interval "1s"
|
||||
:initial "-" ; optional, defaults to poll at startup
|
||||
`if [[ $(cut -d ' ' -f 2 <<< $(pulseaudio-ctl full-status)) == "yes" ]]; then echo ""; else echo ""; fi`)
|
||||
|
||||
(defpoll vol
|
||||
:interval "1s"
|
||||
:initial "-" ; optional, defaults to poll at startup
|
||||
`Volume=$(cut -d ' ' -f 1 <<<$(pulseaudio-ctl full-status)); echo "$(( Volume/2 ))"`)
|
||||
|
||||
(defpoll micicon
|
||||
:interval "1s"
|
||||
:initial "-" ; optional, defaults to poll at startup
|
||||
`if [[ $(cut -d ' ' -f 3 <<< $(pulseaudio-ctl full-status)) == "yes" ]]; then echo ""; else echo ""; fi`)
|
||||
|
||||
(defpoll nwup ;; TODO
|
||||
:interval "1s"
|
||||
:initial "-" ; optional, defaults to poll at startup
|
||||
`echo "up"`)
|
||||
|
||||
(defpoll nwdown ; TODO
|
||||
:interval "1s"
|
||||
:initial "-" ; optional, defaults to poll at startup
|
||||
`echo "down"`)
|
||||
|
||||
(defpoll date-time
|
||||
:interval "1s"
|
||||
:initial "initial-value" ; optional, defaults to poll at startup
|
||||
`date "+%a %d.%m.%y %H:%M:%S"`)
|
||||
|
||||
;; IDK
|
||||
(defwidget greeter [?text name]
|
||||
;; Workspaces
|
||||
(box :orientation "horizontal"
|
||||
:halign "center"
|
||||
:geometry (geometry :x "0px"
|
||||
:y "0px"
|
||||
:height "20px"
|
||||
:anchor "top center")
|
||||
text))
|
||||
(for ws in ws-list
|
||||
(let class (if (starts-with ws "[[")
|
||||
"ws-current"
|
||||
(if (starts-with ws "(")
|
||||
"ws-visible"
|
||||
"ws-hidden")))
|
||||
(let name (string-trim ws "[]()")
|
||||
(button :onclick (format "wmctrl -s %s" name)
|
||||
:class class
|
||||
(label :text name))))))
|
||||
|
||||
;; Open windows
|
||||
(box :orientation "horizontal" :class "window-list"
|
||||
(for win in win-list
|
||||
(let class (if (starts-with win "*") "win-focused" "win")
|
||||
(label :class class :text (string-trim win "*")))))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
4
home/programs/eww/src/scripts/xmonad_log.sh
Executable file
4
home/programs/eww/src/scripts/xmonad_log.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
tail -F /tmp/xmonad-eww-log | while read -r line; do
|
||||
clean_line=$(echo "$line" | sed -E 's/<[^>]+>//g')
|
||||
eww update xmonad_log="$clean_line"
|
||||
done
|
||||
@@ -5,6 +5,7 @@ return {
|
||||
name = "catppuccin",
|
||||
priority = 1000,
|
||||
config = function()
|
||||
require("catppuccin").setup()
|
||||
vim.cmd.colorscheme("catppuccin-mocha")
|
||||
end,
|
||||
opts = {
|
||||
|
||||
@@ -19,5 +19,7 @@
|
||||
xorg.xmessage
|
||||
ghc
|
||||
cabal-install
|
||||
wmctrl
|
||||
trayer
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,40 +1,46 @@
|
||||
import XMonad
|
||||
import XMonad.Util.SpawnOnce (spawnOnce)
|
||||
import XMonad.Hooks.EwmhDesktops
|
||||
import XMonad.Util.EZConfig
|
||||
import XMonad.Hooks.DynamicLog
|
||||
import XMonad.Hooks.StatusBar
|
||||
import XMonad.Hooks.StatusBar.PP
|
||||
import XMonad.Layout.ThreeColumns
|
||||
import XMonad.Layout.Magnifier
|
||||
import XMonad.Util.ClickableWorkspaces
|
||||
import XMonad.Util.Loggers
|
||||
import Data.ByteString (maximum)
|
||||
import Distribution.Compat.Prelude (print)
|
||||
import System.IO
|
||||
import XMonad
|
||||
import XMonad.Hooks.DynamicLog
|
||||
import XMonad.Hooks.EwmhDesktops
|
||||
import XMonad.Hooks.ManageDocks
|
||||
import XMonad.Hooks.StatusBar
|
||||
import XMonad.Hooks.StatusBar.PP
|
||||
import XMonad.Layout.Magnifier
|
||||
import XMonad.Layout.ThreeColumns
|
||||
import XMonad.Util.ClickableWorkspaces
|
||||
import XMonad.Util.EZConfig
|
||||
import XMonad.Util.Loggers
|
||||
import XMonad.Util.Run (spawnPipe)
|
||||
import XMonad.Util.SpawnOnce (spawnOnce)
|
||||
|
||||
-- import Control.Monad.RWS (All(All))
|
||||
import XMonad.Hooks.ManageHelpers
|
||||
|
||||
main = do
|
||||
xmonad . ewmhFullscreen . ewmh $ myConfig
|
||||
|
||||
main = xmonad . ewmhFullscreen . ewmh . withEasySB (statusBarProp "xmobar" (pure myXmobarPP)) defToggleStrutsKey $ myconfig
|
||||
|
||||
myconfig = def
|
||||
{
|
||||
modMask = mod4Mask
|
||||
, layoutHook = myLayout
|
||||
myConfig =
|
||||
def
|
||||
{ modMask = mod4Mask
|
||||
, terminal = "alacritty"
|
||||
, layoutHook = avoidStruts myLayout
|
||||
, normalBorderColor = "#f5c2e7"
|
||||
, focusedBorderColor = "#cdd6f4"
|
||||
, manageHook = myManageHooks
|
||||
, manageHook = manageDocks <+> myManageHooks
|
||||
, startupHook = myStartupHook
|
||||
, logHook = dynamicLogWithPP myXmobarPP
|
||||
}
|
||||
`additionalKeysP`
|
||||
[
|
||||
-- Messages
|
||||
`additionalKeysP` myKeys
|
||||
|
||||
myKeys =
|
||||
[ -- Messages
|
||||
("M-m w", spawn "xmessage 'Test Message :)'") -- type mod+x then w to pop up 'woohoo!')
|
||||
-- System
|
||||
, ("M-p", spawn "rofi -show \"drun\"")
|
||||
-- Screenshots
|
||||
, ("<Print>", spawn "maim --format=png \"/home/$USER/Pictures/screenshot-$(date -u +%Y-%m-%d-%H:%M:%S).png\"") -- Whole Screen to File
|
||||
, -- Screenshots
|
||||
("<Print>", spawn "maim --format=png \"/home/$USER/Pictures/screenshot-$(date -u +%Y-%m-%d-%H:%M:%S).png\"") -- Whole Screen to File
|
||||
, ("M-<Print>", spawn "maim --format=png --window $(xdotool getactivewindow) \"/home/$USER/Pictures/screenshot-$(date -u +%Y-%m-%d-%H:%M:%S).png\"") -- Focused Window to File
|
||||
, ("S-<Print>", spawn "maim --format=png --select \"/home/$USER/Pictures/screenshot-$(date -u +%Y-%m-%d-%H:%M:%S).png\"") -- Selection to File
|
||||
, ("C-<Print>", spawn "maim --format=png | xclip -selection clipboard -t image/png") -- Whole Screen to Clipboard
|
||||
@@ -46,57 +52,50 @@ myconfig = def
|
||||
, ("M-x", spawn "telegram-desktop")
|
||||
, ("M-c", spawn "firefox")
|
||||
, ("M-v", spawn "thunderbird")
|
||||
-- Brightness
|
||||
, ("<XF86MonBrightnessUp>", spawn "xbacklight -inc 10")
|
||||
, -- Brightness
|
||||
("<XF86MonBrightnessUp>", spawn "xbacklight -inc 10")
|
||||
, ("<XF86MonBrightnessDown>", spawn "xbacklight -dec 10")
|
||||
-- Audio
|
||||
, ("<XF86AudioMute>", spawn "pulseaudio-ctl mute")
|
||||
, -- Audio
|
||||
("<XF86AudioMute>", spawn "pulseaudio-ctl mute")
|
||||
, ("<XF86AudioRaiseVolume>", spawn "pulseaudio-ctl up 5")
|
||||
, ("<XF86AudioLowerVolume>", spawn "pulseaudio-ctl down 5")
|
||||
, ("<XF86AudioMicMute>", spawn "pulseaudio-ctl mute-input")
|
||||
]
|
||||
|
||||
-- `removeKeysP` [ "M-S-q" ]
|
||||
|
||||
myXmobarPP :: PP
|
||||
myXmobarPP = def
|
||||
{
|
||||
ppSep = pink " • "
|
||||
, ppWsSep = ""
|
||||
, ppCurrent = wrap " " "" . xmobarBorder "Top" "#f38ba8" 2
|
||||
, ppVisible = wrap " " "" . xmobarBorder "Top" "#a6e3a1" 2
|
||||
, ppHidden = green . wrap " " ""
|
||||
, ppHiddenNoWindows = gray . wrap " " ""
|
||||
, ppUrgent = red . wrap (yellow "!") (yellow "!")
|
||||
, ppTitleSanitize = xmobarStrip
|
||||
, ppOrder = \[ws, l, _, wins] -> [ws, l, wins]
|
||||
myXmobarPP =
|
||||
def
|
||||
{ ppOutput = \str -> do
|
||||
writeFile "/tmp/xmonad-eww-log" str
|
||||
, ppCurrent = wrap "[[" "]]"
|
||||
, ppVisible = wrap "(" ")"
|
||||
, ppHidden = wrap " " " "
|
||||
, ppHiddenNoWindows = id
|
||||
, ppUrgent = wrap "!" "!"
|
||||
, ppSep = " "
|
||||
, ppOrder = \(ws : _ : _ : wins : _) -> [ws, wins]
|
||||
, ppExtras = [logTitles formatFocused formatUnfocused]
|
||||
}
|
||||
where
|
||||
formatFocused = wrap "[" "]" . pink . ppWindow
|
||||
formatUnfocused = wrap "[" "]" . gray . ppWindow
|
||||
formatFocused = wrap "*" "*" . ppWindow
|
||||
formatUnfocused = id . ppWindow
|
||||
|
||||
ppWindow :: String -> String
|
||||
ppWindow = xmobarRaw . (\w -> if null w then "???" else w) . shorten 15 -- set maximum length of windowtitle to 15
|
||||
|
||||
pink, gray, red, yellow, green :: String -> String
|
||||
pink = xmobarColor "#f5c2e7" ""
|
||||
green = xmobarColor "#a6e3a1" ""
|
||||
gray = xmobarColor "#cdd6f4" ""
|
||||
red = xmobarColor "#f38ba8" ""
|
||||
yellow = xmobarColor "#f9e2af" ""
|
||||
|
||||
ppWindow w = if null w then "???" else take 30 w
|
||||
|
||||
myLayout = Tall 1 (3 / 100) (1 / 2) ||| Mirror (Tall 1 (3 / 100) (1 / 2)) ||| Full ||| ThreeColMid 1 (3 / 100) (1 / 2) -- wenn wieder zoom von fokusierten Seitenfenstern gewünscht, dann Fireox fixn und: magnifiercz' 1.3 (ThreeColMid 1 (3/100) (1/2))
|
||||
|
||||
myManageHooks :: ManageHook
|
||||
myManageHooks = composeAll
|
||||
[
|
||||
isDialog --> doFloat
|
||||
myManageHooks =
|
||||
composeAll
|
||||
[ isDialog --> doFloat
|
||||
, className =? "Xmessage" --> doCenterFloat
|
||||
]
|
||||
|
||||
myStartupHook :: X ()
|
||||
myStartupHook = do
|
||||
mapM_ spawnOnce ["xmobar -x " ++ show sid | sid <- [0..9]]
|
||||
spawnOnce "dropbox"
|
||||
spawnOnce "nextcloud --background"
|
||||
spawnOnce "trayer --edge top --align left --widthtype request --height 25 --transparent true --alpha 0 --expand false --SetDockType true --SetPartialStrut true --monitor primary &"
|
||||
spawnOnce "eww open bar"
|
||||
|
||||
38
indent.log
Normal file
38
indent.log
Normal file
@@ -0,0 +1,38 @@
|
||||
INFO: latexindent.pl version 3.24.4, 2024-07-18, a script to indent .tex files
|
||||
latexindent.pl lives here: /nix/store/n170p0fiily4lcr7agswvzm84fyzi2jx-latexindent-3.24.4-tex/scripts/latexindent/
|
||||
Sun Apr 20 15:34:29 2025
|
||||
Reading input from STDIN
|
||||
INFO: Processing switches:
|
||||
-y|--yaml: YAML settings specified via command line
|
||||
INFO: Directory for backup files and log file indent.log:
|
||||
.
|
||||
INFO: Perl modules are being loaded from the following directories:
|
||||
/nix/store/3vq9qasxlqpyq1k95nq3s13g2m6w59ay-perl-5.40.0/lib/perl5/5.40.0/FindBin.pm
|
||||
/nix/store/zi73jrv7iqlrwg6sk8fjbfafqs7jjj1z-perl-5.40.0-env/lib/perl5/site_perl/5.40.0/YAML/Tiny.pm
|
||||
/nix/store/3vq9qasxlqpyq1k95nq3s13g2m6w59ay-perl-5.40.0/lib/perl5/5.40.0/File/Copy.pm
|
||||
/nix/store/3vq9qasxlqpyq1k95nq3s13g2m6w59ay-perl-5.40.0/lib/perl5/5.40.0/File/Basename.pm
|
||||
/nix/store/3vq9qasxlqpyq1k95nq3s13g2m6w59ay-perl-5.40.0/lib/perl5/5.40.0/Getopt/Long.pm
|
||||
/nix/store/zi73jrv7iqlrwg6sk8fjbfafqs7jjj1z-perl-5.40.0-env/lib/perl5/site_perl/5.40.0/File/HomeDir.pm
|
||||
INFO: LatexIndent perl modules are being loaded from, for example:
|
||||
/nix/store/n170p0fiily4lcr7agswvzm84fyzi2jx-latexindent-3.24.4-tex/scripts/latexindent/LatexIndent/Document.pm
|
||||
INFO: YAML settings read: defaultSettings.yaml
|
||||
Reading defaultSettings.yaml from /nix/store/n170p0fiily4lcr7agswvzm84fyzi2jx-latexindent-3.24.4-tex/scripts/latexindent/defaultSettings.yaml
|
||||
INFO: YAML reading settings
|
||||
Home directory is /home/elias
|
||||
latexindent.pl didn't find indentconfig.yaml or .indentconfig.yaml
|
||||
see all possible locations: https://latexindentpl.readthedocs.io/en/latest/sec-appendices.html#indentconfig-options)
|
||||
INFO: YAML settings read: -y switch
|
||||
YAML setting: "defaultIndent:' '"
|
||||
quote found in -y switch
|
||||
key:
|
||||
value: defaultIndent:' '
|
||||
double-quoted string found in -y switch: "defaultIndent:' '", substitute to defaultIndent:' '
|
||||
INFO: Phase 1: searching for objects
|
||||
INFO: Phase 2: finding surrounding indentation
|
||||
INFO: Phase 3: indenting objects
|
||||
INFO: Phase 4: final indentation check
|
||||
INFO: Output routine:
|
||||
Not outputting to file; see -w and -o switches for more options.
|
||||
--------------
|
||||
INFO: Please direct all communication/issues to:
|
||||
https://github.com/cmhughes/latexindent.pl
|
||||
Reference in New Issue
Block a user