fleshed out river config
parent
1c31c5a05d
commit
f6bb7b1113
|
@ -0,0 +1,101 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
# usage: bemenu [options]
|
||||||
|
# Options
|
||||||
|
# -h, --help display this help and exit.
|
||||||
|
# -v, --version display version.
|
||||||
|
# -i, --ignorecase match items case insensitively.
|
||||||
|
# -F, --filter filter entries for a given string.
|
||||||
|
# -w, --wrap wraps cursor selection.
|
||||||
|
# -l, --list list items vertically with the given number of lines.
|
||||||
|
# -p, --prompt defines the prompt text to be displayed.
|
||||||
|
# -P, --prefix text to show before highlighted item.
|
||||||
|
# -I, --index select item at index automatically.
|
||||||
|
# -x, --password hide input.
|
||||||
|
# -s, --no-spacing disable the title spacing on entries.
|
||||||
|
# --scrollbar display scrollbar. (none (default), always, autohide)
|
||||||
|
# --ifne only display menu if there are items.
|
||||||
|
# --fork always fork. (bemenu-run)
|
||||||
|
# --no-exec do not execute command. (bemenu-run)
|
||||||
|
#
|
||||||
|
# Use BEMENU_BACKEND env variable to force backend:
|
||||||
|
# curses ncurses based terminal backend
|
||||||
|
# wayland wayland backend
|
||||||
|
# x11 x11 backend
|
||||||
|
#
|
||||||
|
# If BEMENU_BACKEND is empty, one of the GUI backends is selected automatically.
|
||||||
|
#
|
||||||
|
# Backend specific options
|
||||||
|
# c = ncurses, w == wayland, x == x11
|
||||||
|
# (...) At end of help indicates the backend support for option.
|
||||||
|
#
|
||||||
|
# -b, --bottom appears at the bottom of the screen. (wx)
|
||||||
|
# -c, --center appears at the center of the screen. (wx)
|
||||||
|
# -f, --grab show the menu before reading stdin. (wx)
|
||||||
|
# -n, --no-overlap adjust geometry to not overlap with panels. (w)
|
||||||
|
# -m, --monitor index of monitor where menu will appear. (wx)
|
||||||
|
# -H, --line-height defines the height to make each menu line (0 = default height). (wx)
|
||||||
|
# -M, --margin defines the empty space on either side of the menu. (wx)
|
||||||
|
# -W, --width-factor defines the relative width factor of the menu (from 0 to 1). (wx)
|
||||||
|
# -B, --border defines the width of the border in pixels around the menu. (wx)
|
||||||
|
# --ch defines the height of the cursor (0 = scales with line height). (wx)
|
||||||
|
# --cw defines the width of the cursor. (wx)
|
||||||
|
# --hp defines the horizontal padding for the entries in single line mode. (wx)
|
||||||
|
# --fn defines the font to be used ('name [size]'). (wx)
|
||||||
|
# --tb defines the title background color. (wx)
|
||||||
|
# --tf defines the title foreground color. (wx)
|
||||||
|
# --fb defines the filter background color. (wx)
|
||||||
|
# --ff defines the filter foreground color. (wx)
|
||||||
|
# --nb defines the normal background color. (wx)
|
||||||
|
# --nf defines the normal foreground color. (wx)
|
||||||
|
# --hb defines the highlighted background color. (wx)
|
||||||
|
# --hf defines the highlighted foreground color. (wx)
|
||||||
|
# --fbb defines the feedback background color. (wx)
|
||||||
|
# --fbf defines the feedback foreground color. (wx)
|
||||||
|
# --sb defines the selected background color. (wx)
|
||||||
|
# --sf defines the selected foreground color. (wx)
|
||||||
|
# --ab defines the alternating background color. (wx)
|
||||||
|
# --af defines the alternating foreground color. (wx)
|
||||||
|
# --scb defines the scrollbar background color. (wx)
|
||||||
|
# --scf defines the scrollbar foreground color. (wx)
|
||||||
|
# --bdr defines the border color. (wx)
|
||||||
|
|
||||||
|
let
|
||||||
|
bemenuColors = {
|
||||||
|
titleBackground = "#282828E0";
|
||||||
|
titleForeground = "#fbf1c7";
|
||||||
|
filterBackground = "#282828E0";
|
||||||
|
filterForeground = "#ebdbb2";
|
||||||
|
normalBackground = "#282828E0";
|
||||||
|
normalForeground = "#ebdbb2";
|
||||||
|
highlightedBackground = "#458588E0";
|
||||||
|
highlightedForeground = "#fbf1c7";
|
||||||
|
scrollbarBackground = "#282828E0";
|
||||||
|
scrollbarForeground = "#458588E0";
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
home.packages = [ pkgs.bemenu ];
|
||||||
|
home.sessionVariables.BEMENU_OPTS = ''
|
||||||
|
--ignorecase \
|
||||||
|
--list 20 \
|
||||||
|
--prompt '❯' \
|
||||||
|
--scrollbar none \
|
||||||
|
--wrap \
|
||||||
|
--scrollbar autohide \
|
||||||
|
--no-overlap \
|
||||||
|
--monitor all \
|
||||||
|
--fn 'Inter 13px' \
|
||||||
|
--tb '${bemenuColors.titleBackground}' \
|
||||||
|
--tf '${bemenuColors.titleForeground}' \
|
||||||
|
--fb '${bemenuColors.filterBackground}' \
|
||||||
|
--ff '${bemenuColors.filterForeground}' \
|
||||||
|
--nb '${bemenuColors.normalBackground}' \
|
||||||
|
--ab '${bemenuColors.normalBackground}' \
|
||||||
|
--nf '${bemenuColors.normalForeground}' \
|
||||||
|
--af '${bemenuColors.normalForeground}' \
|
||||||
|
--hb '${bemenuColors.highlightedBackground}' \
|
||||||
|
--hf '${bemenuColors.highlightedForeground}' \
|
||||||
|
--scb '${bemenuColors.scrollbarBackground}' \
|
||||||
|
--scf '${bemenuColors.scrollbarForeground}'
|
||||||
|
'';
|
||||||
|
}
|
|
@ -1,12 +1,15 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [ ./init.nix ];
|
imports = [ ./init.nix ./bemenu.nix ./waybar.nix ./foot.nix ];
|
||||||
|
|
||||||
home.packages = with pkgs; [ river foot ];
|
home.packages = with pkgs; [ river swaybg ];
|
||||||
|
|
||||||
programs.zsh.loginExtra = ''
|
programs.zsh.loginExtra = ''
|
||||||
[[ -z "''${DISPLAY}" ]] && [[ "$(tty)" = "/dev/tty1" ]] && \
|
[[ -z "''${DISPLAY}" ]] && [[ "$(tty)" = "/dev/tty1" ]] && \
|
||||||
|
export XKB_DEFAULT_LAYOUT="us"
|
||||||
|
export XKB_DEFAULT_VARIANT="altgr-intl"
|
||||||
|
export XKB_DEFAULT_OPTIONS="caps:escape"
|
||||||
exec ${pkgs.river}/bin/river
|
exec ${pkgs.river}/bin/river
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.foot = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
main = {
|
||||||
|
shell = "${pkgs.tmux}/bin/tmux -u";
|
||||||
|
font = "Hack Nerd Font:size=8:style=Regular";
|
||||||
|
font-bold = "Hack Nerd Font:size=8:style=Bold";
|
||||||
|
font-italic = "Hack Nerd Font:size=8:style=Italic";
|
||||||
|
font-bold-italic = "Hack Nerd Font:size=8:style=Bold Italic";
|
||||||
|
};
|
||||||
|
colors = {
|
||||||
|
alpha = 0.9;
|
||||||
|
background = "282828";
|
||||||
|
foreground = "ebdbb2";
|
||||||
|
|
||||||
|
regular0 = "282828"; # black
|
||||||
|
regular1 = "cc241d"; # red
|
||||||
|
regular2 = "98971a"; # green
|
||||||
|
regular3 = "d79921"; # yellow
|
||||||
|
regular4 = "458588"; # blue
|
||||||
|
regular5 = "b16286"; # magenta
|
||||||
|
regular6 = "689d6a"; # cyan
|
||||||
|
regular7 = "ebdbb2"; # white
|
||||||
|
|
||||||
|
bright0 = "928374"; # black
|
||||||
|
bright1 = "fb4934"; # red
|
||||||
|
bright2 = "b8bb26"; # green
|
||||||
|
bright3 = "fabd2f"; # yellow
|
||||||
|
bright4 = "83a598"; # blue
|
||||||
|
bright5 = "d3869b"; # magenta
|
||||||
|
bright6 = "8ec07c"; # cyan
|
||||||
|
bright7 = "ebdbb2"; # white
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,102 +1,128 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
wallpapers = "${config.home.homeDirectory}/Images/wallpapers/enabled";
|
||||||
shell = "${pkgs.dash}/bin/dash";
|
shell = "${pkgs.dash}/bin/dash";
|
||||||
riverctl = "${pkgs.river}/bin/riverctl";
|
riverctl = "${pkgs.river}/bin/riverctl";
|
||||||
rivertile = "${pkgs.river}/bin/rivertile";
|
rivertile = "${pkgs.river}/bin/rivertile";
|
||||||
foot = "${pkgs.foot}/bin/foot";
|
foot = "${pkgs.foot}/bin/foot";
|
||||||
|
bemenu-run = "${pkgs.bemenu}/bin/bemenu-run";
|
||||||
|
waybar = "${pkgs.waybar}/bin/waybar";
|
||||||
|
swaybg = "${pkgs.swaybg}/bin/swaybg";
|
||||||
seq = "${pkgs.coreutils}/bin/seq";
|
seq = "${pkgs.coreutils}/bin/seq";
|
||||||
|
playerctl = "${pkgs.playerctl}/bin/playerctl";
|
||||||
|
pamixer = "${pkgs.pamixer}/bin/pamixer";
|
||||||
|
light = "${pkgs.light}/bin/light";
|
||||||
|
eject = "${pkgs.util-linux}/bin/eject";
|
||||||
|
find = "${pkgs.findutils}/bin/find";
|
||||||
|
shuf = "${pkgs.coreutils}/bin/shuf";
|
||||||
in {
|
in {
|
||||||
home.file.river_init = {
|
home.file.river_init = {
|
||||||
executable = true;
|
executable = true;
|
||||||
target = "${config.xdg.configHome}/river/init";
|
target = "${config.xdg.configHome}/river/init";
|
||||||
text = ''
|
text = ''
|
||||||
|
#!${shell}
|
||||||
|
|
||||||
# start an instance of foot
|
# Super+Return to start an instance of foot (https://codeberg.org/dnkl/foot)
|
||||||
${riverctl} map normal Super Return spawn ${foot}
|
${riverctl} map normal Super Return spawn ${foot}
|
||||||
|
|
||||||
# close the focused view
|
${riverctl} map normal Super R spawn ${bemenu-run}
|
||||||
|
|
||||||
|
# Super+Shift+C to close the focused view
|
||||||
${riverctl} map normal Super+Shift C close
|
${riverctl} map normal Super+Shift C close
|
||||||
|
|
||||||
# exit river
|
# Super+Shift+Esc to exit river
|
||||||
${riverctl} map normal Super+Shift Escape exit
|
${riverctl} map normal Super+Shift Escape exit
|
||||||
|
|
||||||
# focus next/previous
|
# Super+J and Super+K to focus the next/previous view in the layout stack
|
||||||
${riverctl} map normal Super J focus-view next
|
${riverctl} map normal Super J focus-view next
|
||||||
${riverctl} map normal Super K focus-view previous
|
${riverctl} map normal Super K focus-view previous
|
||||||
|
|
||||||
# swap next/previous
|
# Super+Shift+J and Super+Shift+K to swap the focused view with the next/previous
|
||||||
|
# view in the layout stack
|
||||||
${riverctl} map normal Super+Shift J swap next
|
${riverctl} map normal Super+Shift J swap next
|
||||||
${riverctl} map normal Super+Shift K swap previous
|
${riverctl} map normal Super+Shift K swap previous
|
||||||
|
|
||||||
# bump focused view to the top of the stack layout
|
# Super+E and Super+W to focus the next/previous output
|
||||||
|
${riverctl} map normal Super E focus-output next
|
||||||
|
${riverctl} map normal Super W focus-output previous
|
||||||
|
|
||||||
|
# Super+Shift+{W,E} to send the focused view to the next/previous output
|
||||||
|
${riverctl} map normal Super+Shift W send-to-output next
|
||||||
|
${riverctl} map normal Super+Shift W send-to-output previous
|
||||||
|
|
||||||
|
# Super+Shift+Return to bump the focused view to the top of the layout stack
|
||||||
${riverctl} map normal Super+Shift Return zoom
|
${riverctl} map normal Super+Shift Return zoom
|
||||||
|
|
||||||
# increase/decrease the main ratio of rivertile
|
# Super+H and Super+L to decrease/increase the main ratio of rivertile(1)
|
||||||
${riverctl} map normal Super H send-layout-cmd ${rivertile} "main-ratio -0.05"
|
${riverctl} map normal Super H send-layout-cmd rivertile "main-ratio -0.05"
|
||||||
${riverctl} map normal Super L send-layout-cmd ${rivertile} "main-ratio +0.05"
|
${riverctl} map normal Super L send-layout-cmd rivertile "main-ratio +0.05"
|
||||||
|
|
||||||
# increase/decrease the main count of rivertile
|
# Super+Shift+Comma and Super+Shift+Period. to increment/decrement the main count of rivertile(1)
|
||||||
${riverctl} map normal Super+Shift H send-layout-cmd ${rivertile} "main-count +1"
|
${riverctl} map normal Super+Shift Comma send-layout-cmd rivertile "main-count +1"
|
||||||
${riverctl} map normal Super+Shift L send-layout-cmd ${rivertile} "main-count -1"
|
${riverctl} map normal Super+Shift Period send-layout-cmd rivertile "main-count -1"
|
||||||
|
|
||||||
# move views
|
# Super+Alt+{H,J,K,L} to move views
|
||||||
${riverctl} map normal Super+Alt H move left 100
|
${riverctl} map normal Super+Alt H move left 100
|
||||||
${riverctl} map normal Super+Alt J move down 100
|
${riverctl} map normal Super+Alt J move down 100
|
||||||
${riverctl} map normal Super+Alt K move up 100
|
${riverctl} map normal Super+Alt K move up 100
|
||||||
${riverctl} map normal Super+Alt L move right 100
|
${riverctl} map normal Super+Alt L move right 100
|
||||||
|
|
||||||
# snap views to screen edges
|
# Super+Alt+Control+{H,J,K,L} to snap views to screen edges
|
||||||
${riverctl} map normal Super+Alt+Control H snap left
|
${riverctl} map normal Super+Alt+Control H snap left
|
||||||
${riverctl} map normal Super+Alt+Control J snap down
|
${riverctl} map normal Super+Alt+Control J snap down
|
||||||
${riverctl} map normal Super+Alt+Control K snap up
|
${riverctl} map normal Super+Alt+Control K snap up
|
||||||
${riverctl} map normal Super+Alt+Control L snap right
|
${riverctl} map normal Super+Alt+Control L snap right
|
||||||
|
|
||||||
# resize views
|
# Super+Alt+Shift+{H,J,K,L} to resize views
|
||||||
${riverctl} map normal Super+Alt+Shift H resize horizontal -100
|
${riverctl} map normal Super+Alt+Shift H resize horizontal -100
|
||||||
${riverctl} map normal Super+Alt+Shift J resize vertical 100
|
${riverctl} map normal Super+Alt+Shift J resize vertical 100
|
||||||
${riverctl} map normal Super+Alt+Shift K resize vertical -100
|
${riverctl} map normal Super+Alt+Shift K resize vertical -100
|
||||||
${riverctl} map normal Super+Alt+Shift L resize horizontal 100
|
${riverctl} map normal Super+Alt+Shift L resize horizontal 100
|
||||||
|
|
||||||
# move/resize with mouse
|
# Super + Left Mouse Button to move views
|
||||||
${riverctl} map-pointer normal Super BTN_LEFT move-view
|
${riverctl} map-pointer normal Super BTN_LEFT move-view
|
||||||
|
|
||||||
|
# Super + Right Mouse Button to resize views
|
||||||
${riverctl} map-pointer normal Super BTN_RIGHT resize-view
|
${riverctl} map-pointer normal Super BTN_RIGHT resize-view
|
||||||
|
|
||||||
${rivertile} -view-padding 6 -outer-padding 6
|
# Super + Middle Mouse Button to toggle float
|
||||||
|
${riverctl} map-pointer normal Super BTN_MIDDLE toggle-float
|
||||||
|
|
||||||
for i in $(${seq} 1 9); do
|
for i in $(${seq} 1 9)
|
||||||
|
do
|
||||||
tags=$((1 << ($i - 1)))
|
tags=$((1 << ($i - 1)))
|
||||||
|
|
||||||
# focus tag [0-8]
|
# Super+[1-9] to focus tag [0-8]
|
||||||
${riverctl} map normal Super $i set-focused-tags $tags
|
${riverctl} map normal Super $i set-focused-tags $tags
|
||||||
|
|
||||||
# tag focused view with tag [0-8]
|
# Super+Shift+[1-9] to tag focused view with tag [0-8]
|
||||||
${riverctl} map normal Super+Shift $i set-view-tags $tags
|
${riverctl} map normal Super+Shift $i set-view-tags $tags
|
||||||
|
|
||||||
# toggle focus of tag [0-8]
|
# Super+Ctrl+[1-9] to toggle focus of tag [0-8]
|
||||||
${riverctl} map normal Super+Control $i toggle-focused-tags $tags
|
${riverctl} map normal Super+Control $i toggle-focused-tags $tags
|
||||||
|
|
||||||
# toggle tag [0-8] of focused view
|
# Super+Shift+Ctrl+[1-9] to toggle tag [0-8] of focused view
|
||||||
${riverctl} map normal Super+Shift+Control $i toggle-view-tags $tags
|
${riverctl} map normal Super+Shift+Control $i toggle-view-tags $tags
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Super+0 to focus all tags
|
||||||
|
# Super+Shift+0 to tag focused view with all tags
|
||||||
all_tags=$(((1 << 32) - 1))
|
all_tags=$(((1 << 32) - 1))
|
||||||
# focus all tags
|
|
||||||
${riverctl} map normal Super 0 set-focused-tags $all_tags
|
${riverctl} map normal Super 0 set-focused-tags $all_tags
|
||||||
# tag focused view with all tags
|
|
||||||
${riverctl} map normal Super+Shift 0 set-view-tags $all_tags
|
${riverctl} map normal Super+Shift 0 set-view-tags $all_tags
|
||||||
|
|
||||||
# toggle float
|
# Super+T to toggle float
|
||||||
${riverctl} map normal Super T toggle-float
|
${riverctl} map normal Super T toggle-float
|
||||||
|
|
||||||
# toggle fullscreen
|
# Super+M to toggle fullscreen
|
||||||
${riverctl} map normal Super M toggle-fullscreen
|
${riverctl} map normal Super M toggle-fullscreen
|
||||||
|
|
||||||
# Super+{Up,Right,Down,Left} to change layout orientation
|
# Super+{Up,Right,Down,Left} to change layout orientation
|
||||||
${riverctl} map normal Super Up send-layout-cmd ${rivertile} "main-location top"
|
${riverctl} map normal Super Up send-layout-cmd rivertile "main-location top"
|
||||||
${riverctl} map normal Super Right send-layout-cmd ${rivertile} "main-location right"
|
${riverctl} map normal Super Right send-layout-cmd rivertile "main-location right"
|
||||||
${riverctl} map normal Super Down send-layout-cmd ${rivertile} "main-location bottom"
|
${riverctl} map normal Super Down send-layout-cmd rivertile "main-location bottom"
|
||||||
${riverctl} map normal Super Left send-layout-cmd ${rivertile} "main-location left"
|
${riverctl} map normal Super Left send-layout-cmd rivertile "main-location left"
|
||||||
|
|
||||||
# Declare a passthrough mode. This mode has only a single mapping to return to
|
# Declare a passthrough mode. This mode has only a single mapping to return to
|
||||||
# normal mode. This makes it useful for testing a nested wayland compositor
|
# normal mode. This makes it useful for testing a nested wayland compositor
|
||||||
|
@ -108,8 +134,57 @@ in {
|
||||||
# Super+F11 to return to normal mode
|
# Super+F11 to return to normal mode
|
||||||
${riverctl} map passthrough Super F11 enter-mode normal
|
${riverctl} map passthrough Super F11 enter-mode normal
|
||||||
|
|
||||||
|
# Various media key mapping examples for both normal and locked mode which do
|
||||||
|
# not have a modifier
|
||||||
|
for mode in normal locked
|
||||||
|
do
|
||||||
|
# Eject the optical drive (well if you still have one that is)
|
||||||
|
${riverctl} map $mode None XF86Eject spawn '${eject} -T'
|
||||||
|
|
||||||
|
# Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer)
|
||||||
|
${riverctl} map $mode None XF86AudioRaiseVolume spawn '${pamixer} -i 5'
|
||||||
|
${riverctl} map $mode None XF86AudioLowerVolume spawn '${pamixer} -d 5'
|
||||||
|
${riverctl} map $mode None XF86AudioMute spawn '${pamixer} --toggle-mute'
|
||||||
|
|
||||||
|
# Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl)
|
||||||
|
${riverctl} map $mode None XF86AudioMedia spawn '${playerctl} play-pause'
|
||||||
|
${riverctl} map $mode None XF86AudioPlay spawn '${playerctl} play-pause'
|
||||||
|
${riverctl} map $mode None XF86AudioPrev spawn '${playerctl} previous'
|
||||||
|
${riverctl} map $mode None XF86AudioNext spawn '${playerctl} next'
|
||||||
|
|
||||||
|
# Control screen backlight brightness with light (https://github.com/haikarainen/light)
|
||||||
|
${riverctl} map $mode None XF86MonBrightnessUp spawn '${light} -A 5'
|
||||||
|
${riverctl} map $mode None XF86MonBrightnessDown spawn '${light} -U 5'
|
||||||
|
done
|
||||||
|
|
||||||
|
# Set background and border color
|
||||||
|
${riverctl} background-color 0x282828
|
||||||
|
${riverctl} border-color-focused 0x458588
|
||||||
|
${riverctl} border-color-unfocused 0x504945
|
||||||
|
${riverctl} border-width 3
|
||||||
|
|
||||||
|
${riverctl} focus-follows-cursor normal
|
||||||
|
|
||||||
|
# Set keyboard repeat rate
|
||||||
|
${riverctl} set-repeat 50 300
|
||||||
|
|
||||||
|
# Make certain views start floating
|
||||||
|
${riverctl} float-filter-add app-id float
|
||||||
|
${riverctl} float-filter-add title "popup title with spaces"
|
||||||
|
|
||||||
|
# Set app-ids and titles of views which should use client side decorations
|
||||||
|
${riverctl} csd-filter-add app-id "gedit"
|
||||||
|
|
||||||
|
${riverctl} spawn "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river"
|
||||||
|
${riverctl} spawn "systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river"
|
||||||
|
${riverctl} spawn "${waybar}"
|
||||||
|
|
||||||
|
${riverctl} spawn '${swaybg} --image "$(${find} ${wallpapers} -type f | ${shuf} -n 1)" --mode fill'
|
||||||
|
|
||||||
|
# Set the default layout generator to be rivertile and start it.
|
||||||
|
# River will send the process group of the init executable SIGTERM on exit.
|
||||||
${riverctl} default-layout rivertile
|
${riverctl} default-layout rivertile
|
||||||
${rivertile} -view-padding 6 -outer-padding 6
|
${rivertile} -view-padding 0 -outer-padding 0 &
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,160 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [ at-spi2-atk ];
|
||||||
|
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
settings = [{
|
||||||
|
modules-left = [ "river/tags" ];
|
||||||
|
modules-center = [ "river/window" ];
|
||||||
|
modules-right = [ "tray" "pulseaudio" "battery" "network" "clock" ];
|
||||||
|
modules = {
|
||||||
|
clock.format = ''{: %m/%d <span color="#a89984">|</span> %H:%M}'';
|
||||||
|
network = {
|
||||||
|
format-icons = [
|
||||||
|
''<span color="#fb4944">直</span>''
|
||||||
|
''<span color="#fabd2f">直</span>''
|
||||||
|
''<span color="#b8bb26">直</span>''
|
||||||
|
];
|
||||||
|
format = "({ifname})";
|
||||||
|
format-wifi = "{icon} {signalStrength}";
|
||||||
|
format-disconnected = ''<span color="#a89974">睊</span>'';
|
||||||
|
format-ethernet = "";
|
||||||
|
};
|
||||||
|
battery = {
|
||||||
|
states = {
|
||||||
|
good = 95;
|
||||||
|
warning = 50;
|
||||||
|
critical = 20;
|
||||||
|
};
|
||||||
|
format-icons = {
|
||||||
|
discharging = [
|
||||||
|
''<span color="#fb4944"></span>''
|
||||||
|
''<span color="#fb4944"></span>''
|
||||||
|
''<span color="#fb4944"></span>''
|
||||||
|
''<span color="#fabd2f"></span>''
|
||||||
|
''<span color="#fabd2f"></span>''
|
||||||
|
''<span color="#fabd2f"></span>''
|
||||||
|
''<span color="#b8bb26"></span>''
|
||||||
|
''<span color="#b8bb26"></span>''
|
||||||
|
''<span color="#b8bb26"></span>''
|
||||||
|
]; #
|
||||||
|
charging = [
|
||||||
|
''<span color="#fb4944"></span>''
|
||||||
|
''<span color="#fb4944"></span>''
|
||||||
|
''<span color="#fabd2f"></span>''
|
||||||
|
''<span color="#fabd2f"></span>''
|
||||||
|
''<span color="#b8bb26"></span>''
|
||||||
|
''<span color="#b8bb26"></span>''
|
||||||
|
]; #
|
||||||
|
};
|
||||||
|
format = " {capacity}";
|
||||||
|
format-full = "";
|
||||||
|
format-good-charging = "";
|
||||||
|
format-plugged = "";
|
||||||
|
format-charging = "{icon} {capacity}";
|
||||||
|
format-discharging = "{icon} {capacity} ({time})";
|
||||||
|
interval = 5;
|
||||||
|
};
|
||||||
|
pulseaudio = {
|
||||||
|
states = {
|
||||||
|
high = 101;
|
||||||
|
very_high = 111;
|
||||||
|
};
|
||||||
|
format-icons = [
|
||||||
|
''<span color="#a89974">奄</span>''
|
||||||
|
''<span color="#83a587">奔</span>''
|
||||||
|
''<span color="#b8bb26">墳</span>''
|
||||||
|
];
|
||||||
|
format = "{icon} {volume}";
|
||||||
|
format-bluetooth = "{icon} {volume}";
|
||||||
|
format-muted = "ﱝ";
|
||||||
|
};
|
||||||
|
|
||||||
|
tray.icon-size = 14;
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
style = ''
|
||||||
|
* {
|
||||||
|
border-radius: 0px;
|
||||||
|
border: none;
|
||||||
|
font-family: Inter, "mplus Nerd Font";
|
||||||
|
font-size: 13px;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background-color: #282828;
|
||||||
|
color: #ebdbb2;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
color: #fbf1c7;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tags {
|
||||||
|
padding: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tags button {
|
||||||
|
padding: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
color: #a89984;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tags button.occupied {
|
||||||
|
color: #fbf1c7;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tags button.focused {
|
||||||
|
background-color: #458588;
|
||||||
|
color: #fbf1c7;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tags button.urgent {
|
||||||
|
background-color: #cc241d;
|
||||||
|
color: #fbf1c7;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray,
|
||||||
|
#pulseaudio,
|
||||||
|
#battery,
|
||||||
|
#network,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#clock {
|
||||||
|
color: #fbf1c7;
|
||||||
|
padding-left: 5px;
|
||||||
|
padding-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray,
|
||||||
|
#pulseaudio,
|
||||||
|
#battery,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#network {
|
||||||
|
border-right: 1px solid #a89984;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.high {
|
||||||
|
color: #fabd2f;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.very_high {
|
||||||
|
color: #fb4944;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.muted {
|
||||||
|
color: #a8997a;
|
||||||
|
}
|
||||||
|
|
||||||
|
'';
|
||||||
|
systemd.enable = false;
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue