fix powerbutton - with xmonad | remove xmobar
This commit is contained in:
@@ -133,8 +133,6 @@
|
||||
seahorse
|
||||
libgnome-keyring
|
||||
|
||||
acpid
|
||||
|
||||
# For setting the necessary permissions for gnome.nautilus.
|
||||
lxqt.lxqt-policykit # provides a default authentication client for policykit
|
||||
];
|
||||
@@ -185,13 +183,6 @@
|
||||
|
||||
# Disable powerbutton => for use with eww
|
||||
services.logind.extraConfig = ''HandlePowerKey=ignore'';
|
||||
services.acpid.enable = true;
|
||||
environment.etc = {
|
||||
"acpi/events/power".text = ''
|
||||
event=button/power.*
|
||||
action=/home/elias/eww/scripts/powermenu.sh
|
||||
'';
|
||||
};
|
||||
|
||||
# Set stateVersion. Leave it as set.
|
||||
system.stateVersion = "23.11";
|
||||
|
||||
40
flake.lock
generated
40
flake.lock
generated
@@ -243,11 +243,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1746177088,
|
||||
"narHash": "sha256-hmHKl4meWr6ryzqQAwRD3+3Ihfb/Y/0CbK+WnE+oa6Q=",
|
||||
"lastModified": 1746243165,
|
||||
"narHash": "sha256-DQycVmlyLQNLjLJ/FzpokVmbxGQ8HjQQ4zN4nyq2vII=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "f045bd46b73c3b0ed4e46cdb6036b3d5823d7dee",
|
||||
"rev": "c0962eeeabfb8127713f859ec8a5f0e86dead0f2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -269,11 +269,11 @@
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1746168726,
|
||||
"narHash": "sha256-ZkgW3U37lTwzqUo2rfko+utld5ChnYWDunJ2hAcJOQo=",
|
||||
"lastModified": 1746256223,
|
||||
"narHash": "sha256-a97mwMJcE0cYGfwB5N5v+Ey+by1poGTc/fsrd47Fom8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "neovim-nightly-overlay",
|
||||
"rev": "d4e6959d82e9e9dc609dcbf7a29fd293fad9c912",
|
||||
"rev": "02ec02529a5d602a9e9d273531d776d160fae182",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -285,11 +285,11 @@
|
||||
"neovim-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1746141998,
|
||||
"narHash": "sha256-CYxer9cRvlMySr76epuh5Ub3ryyDV94yVwDC1M/MPvw=",
|
||||
"lastModified": 1746214751,
|
||||
"narHash": "sha256-FlGgG3A9oJwGP0YTWU2Nw9fwdnqPMapjx3twonu0Vkg=",
|
||||
"owner": "neovim",
|
||||
"repo": "neovim",
|
||||
"rev": "ce8b755a86c10496a81675c49b3bc9a42c79d80f",
|
||||
"rev": "5a2edc483dff93cc94847b6950713d80a51087c0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -360,10 +360,12 @@
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 0,
|
||||
"narHash": "sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ+5dck=",
|
||||
"path": "/nix/store/s8b6phy15mzjvx56vjdd1rdd8hr07qw5-source",
|
||||
"type": "path"
|
||||
"lastModified": 1746206129,
|
||||
"narHash": "sha256-JA4DynBKhY7t4DdJZTuomRLAiXFDUgCGGwxgt+XGiik=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9a7caecf30a0494c88b7daeeed29244cd9a52e7d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
@@ -377,11 +379,11 @@
|
||||
"treefmt-nix": "treefmt-nix_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1746175988,
|
||||
"narHash": "sha256-Zcq3UcnsZis/3bAevz2yBWP5hp6LBGIsoO+dIAPqy+o=",
|
||||
"lastModified": 1746267210,
|
||||
"narHash": "sha256-bwvvkCXoy88F9xJZoXhRU6QLQyijyVFcORA+MJ7TrY4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "68db141101c20602e175a53b290bc6064e83bf30",
|
||||
"rev": "e42236846f62fda1479b1c7a3a709bca8f60e3c0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -474,11 +476,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745929750,
|
||||
"narHash": "sha256-k5ELLpTwRP/OElcLpNaFWLNf8GRDq4/eHBmFy06gGko=",
|
||||
"lastModified": 1746216483,
|
||||
"narHash": "sha256-4h3s1L/kKqt3gMDcVfN8/4v2jqHrgLIe4qok4ApH5x4=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "82bf32e541b30080d94e46af13d46da0708609ea",
|
||||
"rev": "29ec5026372e0dec56f890e50dbe4f45930320fd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
@@ -46,10 +46,6 @@
|
||||
users.elias = import ./home/default-laptop.nix;
|
||||
};
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
xmobar = final.haskellPackages.callPackage
|
||||
./home/programs/xmonad/src/xmobar/default.nix { };
|
||||
})
|
||||
inputs.neovim-nightly-overlay.overlays.default
|
||||
inputs.wpaperd.overlays.default
|
||||
inputs.nur.overlays.default
|
||||
@@ -74,10 +70,6 @@
|
||||
users.elias = import ./home/default-desktop.nix;
|
||||
};
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
xmobar = final.haskellPackages.callPackage
|
||||
./home/programs/xmonad/src/xmobar/default.nix { };
|
||||
})
|
||||
inputs.neovim-nightly-overlay.overlays.default
|
||||
inputs.wpaperd.overlays.default
|
||||
inputs.nur.overlays.default
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
bat=$(cat /sys/class/power_supply/BAT0/capacity)
|
||||
stat=$(cat /sys/class/power_supply/BAT0/status)
|
||||
stat=$(cat /sys/class/power_supply/AC/online)
|
||||
|
||||
class="batteryFull"
|
||||
|
||||
if [[ $stat == "Charging" ]]; then
|
||||
if [[ $stat == 1 ]]; then
|
||||
class="batteryCharging"
|
||||
elif [[ $bat -le 10 ]]; then
|
||||
class="batteryEmpty"
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
bat=$(cat /sys/class/power_supply/BAT0/capacity)
|
||||
stat=$(cat /sys/class/power_supply/BAT0/status)
|
||||
stat=$(cat /sys/class/power_supply/AC/online)
|
||||
|
||||
icon=""
|
||||
|
||||
if [[ $stat == "Charging" ]]; then
|
||||
if [[ $stat == 1 ]]; then
|
||||
icon=""
|
||||
elif [[ $bat -le 10 ]]; then
|
||||
icon=""
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
WINDOW_NAME="power"
|
||||
if eww windows | grep -q "$WINDOW_NAME"; then
|
||||
|
||||
echo "Power button pressed" >>/tmp/acpi_log.txt
|
||||
|
||||
# Check if the window is already open
|
||||
if eww active-windows | grep -q "$WINDOW_NAME"; then
|
||||
eww close "$WINDOW_NAME"
|
||||
else
|
||||
eww open "$WINDOW_NAME"
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
module Plugins.Audio where
|
||||
|
||||
import Xmobar
|
||||
import System.Process
|
||||
import Control.Concurrent
|
||||
|
||||
data Audio = Audio Int deriving (Read, Show)
|
||||
|
||||
instance Exec Audio where
|
||||
alias (Audio _) = "audio"
|
||||
start (Audio r) cb = if r > 0 then go cb r else go cb 1000
|
||||
where
|
||||
go :: (String -> IO ()) -> Int -> IO ()
|
||||
go cb r = do
|
||||
response <- readProcess "/bin/sh" ["-c", "pulseaudio-ctl full-status"] ""
|
||||
let list = [w | w <- words (init response)]
|
||||
audio (head list) (list !! 1) (last list) cb
|
||||
threadDelay r
|
||||
go cb r
|
||||
|
||||
audio :: String -> String -> String -> (String -> IO ()) -> IO ()
|
||||
audio vol speaker mic cb
|
||||
| speaker == "yes" = chooseMic vol "#f38ba8" "\xf466" mic cb
|
||||
| elem vol [show i | i <- [0..49]] = chooseMic vol "#a6e3a1" "\xf027" mic cb
|
||||
| otherwise = chooseMic vol "#a6e3a1" "\xf028" mic cb
|
||||
| otherwise = formatAudio vol "a" "c" "d" "e" cb
|
||||
where
|
||||
chooseMic :: String -> String -> String -> String -> (String -> IO ()) -> IO ()
|
||||
chooseMic vol speakerC speakerI mic cb
|
||||
| mic == "yes" = formatAudio vol speakerC speakerI "#f38ba8" "\xf036d" cb
|
||||
| otherwise = formatAudio vol speakerC speakerI "#a6e3a1" "\xf036c" cb
|
||||
formatAudio :: String -> String -> String -> String -> String -> (String -> IO ()) -> IO ()
|
||||
formatAudio vol speakerC speakerI micC micI cb = cb ("<fc=" ++ speakerC ++ "><fn=1>" ++ speakerI ++ "</fn></fc> " ++ vol ++ "% <fc=" ++ micC ++ "><fn=1>" ++ micI ++ "</fn></fc>")
|
||||
@@ -1,13 +0,0 @@
|
||||
{ pkgs ? import <nixpkgs> { } }:
|
||||
with pkgs;
|
||||
haskellPackages.mkDerivation {
|
||||
pname = "xmobar";
|
||||
version = "0.1.0.0";
|
||||
src = ./.;
|
||||
isLibrary = false;
|
||||
isExecutable = true;
|
||||
executableHaskellDepends = with haskellPackages; [ base xmobar ];
|
||||
license = "unknown";
|
||||
hydraPlatforms = lib.platforms.none;
|
||||
}
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
cabal-version: 3.0
|
||||
-- The cabal-version field refers to the version of the .cabal specification,
|
||||
-- and can be different from the cabal-install (the tool) version and the
|
||||
-- Cabal (the library) version you are using. As such, the Cabal (the library)
|
||||
-- version used must be equal or greater than the version stated in this field.
|
||||
-- Starting from the specification version 2.2, the cabal-version field must be
|
||||
-- the first thing in the cabal file.
|
||||
|
||||
-- Initial package description 'xmobar-custom' generated by
|
||||
-- 'cabal init'. For further documentation, see:
|
||||
-- http://haskell.org/cabal/users-guide/
|
||||
--
|
||||
-- The name of the package.
|
||||
name: xmobar-custom
|
||||
|
||||
-- The package version.
|
||||
-- See the Haskell package versioning policy (PVP) for standards
|
||||
-- guiding when and how versions should be incremented.
|
||||
-- https://pvp.haskell.org
|
||||
-- PVP summary: +-+------- breaking API changes
|
||||
-- | | +----- non-breaking API additions
|
||||
-- | | | +--- code changes with no API change
|
||||
version: 0.1.0.0
|
||||
|
||||
-- The package author(s).
|
||||
author: einfischy
|
||||
|
||||
-- An email address to which users can send suggestions, bug reports, and patches.
|
||||
maintainer: accounts.codeberg@kstn.in
|
||||
|
||||
-- A copyright notice.
|
||||
-- copyright:
|
||||
build-type: Simple
|
||||
|
||||
common warnings
|
||||
ghc-options: -Wall -threaded
|
||||
|
||||
executable xmobar
|
||||
-- Import common warning flags.
|
||||
import: warnings
|
||||
|
||||
-- .hs or .lhs file containing the Main module.
|
||||
main-is: xmobar.hs
|
||||
|
||||
-- Other library packages from which modules are imported.
|
||||
build-depends: base >= 4.11.0 && < 4.20,
|
||||
xmobar ^>=0.48
|
||||
|
||||
-- Directories containing source files.
|
||||
hs-source-dirs: .
|
||||
|
||||
-- Base language which the package is written in.
|
||||
default-language: Haskell2010
|
||||
|
||||
@@ -1,138 +0,0 @@
|
||||
import Xmobar
|
||||
--import Plugins.Audio
|
||||
--import Xmobar.Run.Exec
|
||||
--import Xmobar (Command(ComX))
|
||||
--import GHC.Real (Integral(rem))
|
||||
|
||||
|
||||
config :: Config
|
||||
config =
|
||||
defaultConfig
|
||||
{ font = "Fira Code 10"
|
||||
, position = TopH 25
|
||||
, borderColor = "#11111b"
|
||||
, border = FullB
|
||||
, borderWidth = 2
|
||||
, bgColor = "#1e1e2e"
|
||||
, fgColor = "#f5e0dc"
|
||||
, commands =
|
||||
[
|
||||
--Run $ Audio 10
|
||||
Run $ Com "/bin/sh" ["-c", "Status=$(pulseaudio-ctl full-status); Volume=$(cut -d ' ' -f 1 <<<$Status); Mute=$(cut -d ' ' -f 2 <<<$Status); Microphone=$(cut -d ' ' -f 3 <<<$Status); SpeakerColor=\"#a6e3a1\"; MicColor=\"#a6e3a1\"; if [[ $Mute == \"yes\" ]]; then Symbol=\"\xf466\"; SpeakerColor=\"#f38ba8\"; elif [[ $Volume -le 100 ]]; then Symbol=\"\xf027\"; elseSymbol=\"\xf028\"; fi; if [[ $Microphone == \"yes\" ]]; then MicOut=\"\xf036d\"; MicColor=\"#f38ba8\"; else MicOut=\"\xf036c\"; fi; Volume=$(( Volume/2 )); echo \"<fc=$SpeakerColor><fn=1>$Symbol</fn></fc> $Volume% <fc=$MicColor><fn=1>$MicOut</fn></fc>\""] "audio" 10
|
||||
--Run $ Com "/bin/sh" ["-c", "Status=$(pulseaudio-ctl full-status);
|
||||
-- Volume=$(cut -d ' ' -f 1 <<<$Status);
|
||||
-- Mute=$(cut -d ' ' -f 2 <<<$Status);
|
||||
-- Microphone=$(cut -d ' ' -f 3 <<<$Status);
|
||||
-- SpeakerColor=\"#a6e3a1\";
|
||||
-- MicColor=\"#a6e3a1\";
|
||||
-- if [[ $Mute == \"yes\" ]];
|
||||
-- then
|
||||
-- Symbol=\"\xf466\";
|
||||
-- SpeakerColor=\"#f38ba8\";
|
||||
-- elif [[ $Volume -le 50 ]];
|
||||
-- then
|
||||
-- Symbol=\"\xf027\";
|
||||
-- else Symbol=\"\xf028\";
|
||||
-- fi;
|
||||
--
|
||||
-- if [[ $Microphone == \"yes\" ]];
|
||||
-- then
|
||||
-- MicOut=\"\xf036d\";
|
||||
-- MicColor=\"#f38ba8\";
|
||||
-- else MicOut=\"\xf036c\";
|
||||
-- fi;xmobar.Run not found
|
||||
--
|
||||
-- echo \"<fc=$SpeakerColor><fn=1>$Symbol</fn></fc> $Volume% <fc=$MicColor><fn=1>$MicOut</fn></fc>\""] "audio" 10
|
||||
--Run $ Audio
|
||||
--[
|
||||
-- "--template", "<fc=<speakerColor>><fn=1><speakerIcon></fn></fc> <Volume>% <fc=<micColor>><fn=1><micIcon></fn></fc>"
|
||||
-- , "" ""
|
||||
--] 10
|
||||
-- Run $ Audio "#f38ba8" "#a6e3a1" "\xf466" "\xf027" "\xf027" "\xf036d" "\xf036c" 10
|
||||
--Run $ Audio "<fc=#fab387><fn=1>\xf017</fn></fc> %a %d.%m.%y %H:%M" "date" 300
|
||||
, Run $ Com "/bin/sh" ["-c", "echo \"<fc=#f9e2af><fn=1>\xf00e0</fn></fc> $(xbacklight -get)%\""] "backlight" 10
|
||||
, Run $ Cpu
|
||||
[
|
||||
"--template", "<fc=#b4befe><fn=1>\xf085</fn></fc> <total>%"
|
||||
, "--Low","3"
|
||||
, "--High","50"
|
||||
, "--low","#f5e0dc"
|
||||
, "--normal","#f5e0dc"
|
||||
, "--high","#f38ba8"
|
||||
] 50
|
||||
, Run $ Memory
|
||||
[
|
||||
"-t","<fc=#74c7ec><fn=1>\xF2DB</fn></fc> <usedratio>%"
|
||||
,"-H","80"
|
||||
,"-L","10"
|
||||
,"-l","#f5e0dc"
|
||||
,"-n","#f5e0dc"
|
||||
,"-h","#f38ba8"
|
||||
] 50
|
||||
, Run $ Date "<fc=#fab387><fn=1>\xf017</fn></fc> %a %d.%m.%y %H:%M" "date" 300
|
||||
, Run $ DynNetwork
|
||||
[
|
||||
"-t","<fc=#74c7ec><fn=1>\xf063</fn></fc> <rx> <fc=#f38ba8><fn=1>\xf062</fn></fc> <tx>"
|
||||
,"-H","200"
|
||||
,"-L","10"
|
||||
,"-h","#f5e0dc"
|
||||
,"-l","#f5e0dc"
|
||||
,"-n","#f38ba8"
|
||||
] 50
|
||||
, Run $ BatteryP [ "BAT0" ]
|
||||
[
|
||||
"--template" , "<fc=#a6e3a1><fn=1>\xf240</fn></fc> <acstatus>"
|
||||
, "--Low" , "10" -- units: %
|
||||
, "--High" , "80" -- units: %
|
||||
, "--low" , "#f38ba8"
|
||||
, "--normal" , "#f5e0dc"
|
||||
, "--high" , "#a6e3a1"
|
||||
, "--" -- battery specific options
|
||||
-- discharging status
|
||||
, "-o" , "<left>% (<timeleft>)"
|
||||
-- AC "on" status
|
||||
, "-O" , "<left>% (<fc=#a6e3a1>Charging</fc>)"
|
||||
-- charged status
|
||||
, "-i" , "<fc=#f9e2af>Charged</fc>"
|
||||
] 50
|
||||
, Run XMonadLog
|
||||
]
|
||||
, sepChar = "%"
|
||||
, alignSep = "}{"
|
||||
, template = "%XMonadLog% }{ %audio% | %backlight% | %cpu% | %memory% | %battery% | %dynnetwork% | %date% "
|
||||
}
|
||||
|
||||
--instance Exec Audio where
|
||||
-- alias (Audio _ _ ) = "audio"
|
||||
-- start (Audio a r) = startAudio a r
|
||||
-- where
|
||||
-- startAudio :: [String] -> Int -> (String -> IO ()) -> IO ()
|
||||
-- startAudio =
|
||||
--Run $ Com "/bin/sh" ["-c", "Status=$(pulseaudio-ctl full-status);
|
||||
-- Volume=$(cut -d ' ' -f 1 <<<$Status);
|
||||
-- Mute=$(cut -d ' ' -f 2 <<<$Status);
|
||||
-- Microphone=$(cut -d ' ' -f 3 <<<$Status);
|
||||
-- SpeakerColor=\"#a6e3a1\";
|
||||
-- MicColor=\"#a6e3a1\";
|
||||
-- if [[ $Mute == \"yes\" ]];
|
||||
-- then
|
||||
-- Symbol=\"\xf466\";
|
||||
-- SpeakerColor=\"#f38ba8\";
|
||||
-- elif [[ $Volume -le 50 ]];
|
||||
-- then
|
||||
-- Symbol=\"\xf027\";
|
||||
-- else Symbol=\"\xf028\";
|
||||
-- fi;
|
||||
--
|
||||
-- if [[ $Microphone == \"yes\" ]];
|
||||
-- then
|
||||
-- MicOut=\"\xf036d\";
|
||||
-- MicColor=\"#f38ba8\";
|
||||
-- else MicOut=\"\xf036c\";
|
||||
-- fi;
|
||||
--
|
||||
-- echo \"<fc=$SpeakerColor><fn=1>$Symbol</fn></fc> $Volume% <fc=$MicColor><fn=1>$MicOut</fn></fc>\""] "audio" 10
|
||||
|
||||
main :: IO ()
|
||||
main = xmobar config
|
||||
|
||||
@@ -59,6 +59,8 @@ myKeys =
|
||||
, ("<XF86AudioRaiseVolume>", spawn "pactl set-sink-volume @DEFAULT_SINK@ +10%")
|
||||
, ("<XF86AudioLowerVolume>", spawn "pactl set-sink-volume @DEFAULT_SINK@ -10%")
|
||||
, ("<XF86AudioMicMute>", spawn "pactl set-source-mute @DEFAULT_SOURCE@ toggle")
|
||||
, -- Powerbutton
|
||||
("<XF86PowerOff>", spawn "/home/$USER/.config/eww/scripts/powermenu.sh")
|
||||
]
|
||||
|
||||
-- `removeKeysP` [ "M-S-q" ]
|
||||
|
||||
Reference in New Issue
Block a user