moving from i3block to i3status-rust
This commit is contained in:
parent
54eb40c7f5
commit
8e60e31b34
@ -22,7 +22,8 @@
|
||||
./workspace/fonts.nix
|
||||
./workspace/gtk.nix
|
||||
./workspace/i3
|
||||
./workspace/i3blocks
|
||||
# ./workspace/i3blocks
|
||||
./workspace/i3status-rust
|
||||
./workspace/kde
|
||||
./workspace/light.nix
|
||||
./workspace/locale.nix
|
||||
|
88
modules/workspace/i3status-rust/default.nix
Normal file
88
modules/workspace/i3status-rust/default.nix
Normal file
@ -0,0 +1,88 @@
|
||||
{ pkgs, config, lib, ... }:
|
||||
with rec {
|
||||
inherit (config) device deviceSpecific;
|
||||
};
|
||||
with deviceSpecific;
|
||||
with import ../../../support.nix { inherit pkgs config lib; };
|
||||
let scripts = import ./scripts pkgs config;
|
||||
in {
|
||||
home-manager.users.alukard.xsession.windowManager.i3.extraConfig = ''
|
||||
bar {
|
||||
id top
|
||||
font pango:Roboto Mono 11, FontAwesome 11
|
||||
mode dock
|
||||
hidden_state hide
|
||||
position top
|
||||
status_command ${pkgs.i3status-rust}/bin/i3status-rs $HOME/.config/i3status-rust/config.toml
|
||||
workspace_buttons yes
|
||||
strip_workspace_numbers no
|
||||
tray_output primary
|
||||
colors {
|
||||
background ${config.themes.colors.bg}
|
||||
statusline ${config.themes.colors.fg}
|
||||
separator ${config.themes.colors.alt}
|
||||
focused_workspace ${config.themes.colors.bg} ${config.themes.colors.bg} ${config.themes.colors.blue}
|
||||
active_workspace ${config.themes.colors.bg} ${config.themes.colors.bg} ${config.themes.colors.green}
|
||||
inactive_workspace ${config.themes.colors.bg} ${config.themes.colors.bg} ${config.themes.colors.fg}
|
||||
urgent_workspace ${config.themes.colors.bg} ${config.themes.colors.bg} ${config.themes.colors.orange}
|
||||
binding_mode ${config.themes.colors.bg} ${config.themes.colors.bg} ${config.themes.colors.yellow}
|
||||
}
|
||||
}
|
||||
'';
|
||||
|
||||
home-manager.users.alukard.xdg.configFile."i3status-rust/config.toml".text = ''
|
||||
theme = "slick"
|
||||
icons = "awesome"
|
||||
|
||||
[[block]]
|
||||
block = "net"
|
||||
'' + lib.optionals (device == "Dell-Laptop") ''
|
||||
device = "wlo1"
|
||||
'' + lib.optionals (isLaptop) ''
|
||||
[[block]]
|
||||
block = "battery"
|
||||
interval = 10
|
||||
format = "{percentage}% {time}"
|
||||
|
||||
[[block]]
|
||||
block = "backlight"
|
||||
'' + ''
|
||||
[[block]]
|
||||
block = "custom"
|
||||
command = "${scripts.weather}"
|
||||
interval = 600
|
||||
|
||||
[[block]]
|
||||
block = "music"
|
||||
buttons = ["play", "next"]
|
||||
|
||||
[[block]]
|
||||
block = "sound"
|
||||
|
||||
[[block]]
|
||||
block = "cpu"
|
||||
interval = 1
|
||||
format = "{utilization}% {frequency}GHz"
|
||||
|
||||
[[block]]
|
||||
block = "memory"
|
||||
display_type = "memory"
|
||||
format_mem = "{MAg}GiB"
|
||||
format_swap = "{SFg}GiB"
|
||||
|
||||
[[block]]
|
||||
block = "custom"
|
||||
command = "${scripts.df}"
|
||||
interval = 60
|
||||
|
||||
[[block]]
|
||||
block = "custom"
|
||||
command = "${scripts.vpn-status}"
|
||||
interval = 600
|
||||
|
||||
[[block]]
|
||||
block = "time"
|
||||
interval = 60
|
||||
format = "%a %Y/%m/%d %T"
|
||||
'';
|
||||
}
|
17
modules/workspace/i3status-rust/scripts/default.nix
Normal file
17
modules/workspace/i3status-rust/scripts/default.nix
Normal file
@ -0,0 +1,17 @@
|
||||
p: c:
|
||||
with p;
|
||||
builtins.mapAttrs (name: value:
|
||||
writeTextFile {
|
||||
inherit name;
|
||||
text = callPackage value {
|
||||
iconfont = "FontAwesome 11";
|
||||
config = c;
|
||||
};
|
||||
executable = true;
|
||||
checkPhase =
|
||||
"${bash}/bin/bash -n $src";
|
||||
}) {
|
||||
weather = ./weather.nix;
|
||||
df = ./df.nix;
|
||||
vpn-status = ./vpn-status.nix;
|
||||
}
|
4
modules/workspace/i3status-rust/scripts/df.nix
Normal file
4
modules/workspace/i3status-rust/scripts/df.nix
Normal file
@ -0,0 +1,4 @@
|
||||
{ ... }: ''
|
||||
#!/usr/bin/env bash
|
||||
echo $(sudo btrfs fi usage / | grep "Free" | awk '{print $3}')
|
||||
''
|
9
modules/workspace/i3status-rust/scripts/vpn-status.nix
Normal file
9
modules/workspace/i3status-rust/scripts/vpn-status.nix
Normal file
@ -0,0 +1,9 @@
|
||||
{ curl, ... }: ''
|
||||
#!/usr/bin/env bash
|
||||
API="$(${curl}/bin/curl https://am.i.mullvad.net/connected)"
|
||||
if [[ $(echo "$API" | awk -F'[ ()]+' '{print $6}') = 'server' ]]; then
|
||||
echo $(echo "$API" | awk -F'[ ()]+' '{print $7}')
|
||||
else
|
||||
echo 'Not connected'
|
||||
fi
|
||||
''
|
8
modules/workspace/i3status-rust/scripts/weather.nix
Normal file
8
modules/workspace/i3status-rust/scripts/weather.nix
Normal file
@ -0,0 +1,8 @@
|
||||
{ bash, config, curl, ... }: ''
|
||||
#!/usr/bin/env bash
|
||||
${curl}/bin/curl wttr.in/Volzhskiy\?format=3 | awk -F": " '{print $2}'
|
||||
if [[ $BLOCK_BUTTON == 1 ]]
|
||||
then
|
||||
${config.defaultApplications.term.cmd} --hold -e "${curl}/bin/curl wttr.in"
|
||||
fi
|
||||
''
|
Loading…
x
Reference in New Issue
Block a user