Add sway stuff

This commit is contained in:
Sergey 2025-09-27 01:49:16 +04:00
parent 4dc5660e60
commit 972ba6c251
7 changed files with 1415 additions and 0 deletions

277
config/foot/foot.ini Normal file
View File

@ -0,0 +1,277 @@
# -*- conf -*-
shell=fish
term=xterm-256color
# term=foot (or xterm-256color if built with -Dterminfo=disabled)
# login-shell=no
# app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode
# title=foot
# locked-title=no
font=Iosevka Custom:size=12
# font-bold=<bold variant of regular font>
# font-italic=<italic variant of regular font>
# font-bold-italic=<bold+italic variant of regular font>
# font-size-adjustment=0.5
# line-height=0.9
# letter-spacing=0
# horizontal-letter-offset=0
# vertical-letter-offset=0
# underline-offset=<font metrics>
# underline-thickness=<font underline thickness>
# strikeout-thickness=<font strikeout thickness>
# box-drawings-uses-font-glyphs=no
# dpi-aware=no
# initial-window-size-pixels=700x500 # Or,
# initial-window-size-chars=<COLSxROWS>
# initial-window-mode=windowed
# pad=0x0 # optionally append 'center'
# resize-by-cells=yes
# resize-keep-grid=yes
# resize-delay-ms=100
# bold-text-in-bright=no
# word-delimiters=,│`|:"'()[]{}<>
# selection-target=primary
workers=4
# utmp-helper=/usr/lib/utempter/utempter # When utmp backend is libutempter (Linux)
# utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ulog (FreeBSD)
[colors]
background=282828
foreground=ebdbb2
regular0=282828
regular1=cc241d
regular2=98971a
regular3=d79921
regular4=458588
regular5=b16286
regular6=689d6a
regular7=a89984
bright0=928374
bright1=fb4934
bright2=b8bb26
bright3=fabd2f
bright4=83a598
bright5=d3869b
bright6=8ec07c
bright7=ebdbb2
[environment]
# name=value
[bell]
# urgent=no
# notify=no
# visual=no
# command=
# command-focused=no
[desktop-notifications]
# command=notify-send --wait --app-name ${app-id} --icon ${app-id} --category ${category} --urgency ${urgency} --expire-time ${expire-time} --hint STRING:image-path:${icon} --hint BOOLEAN:suppress-sound:${muted} --hint STRING:sound-name:${sound-name} --replace-id ${replace-id} ${action-argument} --print-id -- ${title} ${body}
# command-action-argument=--action ${action-name}=${action-label}
# close=""
# inhibit-when-focused=yes
[scrollback]
# lines=1000
# multiplier=3.0
# indicator-position=relative
# indicator-format=""
[url]
# launch=xdg-open ${url}
# label-letters=sadfjklewcmpgh
# osc8-underline=url-mode
# protocols=http, https, ftp, ftps, file, gemini, gopher
# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
[cursor]
# style=block
# color=<inverse foreground/background>
# blink=no
# blink-rate=500
# beam-thickness=1.5
# underline-thickness=<font underline thickness>
[mouse]
# hide-when-typing=no
# alternate-scroll-mode=yes
[touch]
# long-press-delay=400
[colors]
# alpha=1.0
# background=242424
# foreground=ffffff
# flash=7f7f00
# flash-alpha=0.5
## Normal/regular colors (color palette 0-7)
# regular0=242424 # black
# regular1=f62b5a # red
# regular2=47b413 # green
# regular3=e3c401 # yellow
# regular4=24acd4 # blue
# regular5=f2affd # magenta
# regular6=13c299 # cyan
# regular7=e6e6e6 # white
## Bright colors (color palette 8-15)
# bright0=616161 # bright black
# bright1=ff4d51 # bright red
# bright2=35d450 # bright green
# bright3=e9e836 # bright yellow
# bright4=5dc5f8 # bright blue
# bright5=feabf2 # bright magenta
# bright6=24dfc4 # bright cyan
# bright7=ffffff # bright white
## dimmed colors (see foot.ini(5) man page)
# dim0=<not set>
# ...
# dim7=<not-set>
## The remaining 256-color palette
# 16 = <256-color palette #16>
# ...
# 255 = <256-color palette #255>
## Sixel colors
# sixel0 = 000000
# sixel1 = 3333cc
# sixel2 = cc2121
# sixel3 = 33cc33
# sixel4 = cc33cc
# sixel5 = 33cccc
# sixel6 = cccc33
# sixel7 = 878787
# sixel8 = 424242
# sixel9 = 545499
# sixel10 = 994242
# sixel11 = 549954
# sixel12 = 995499
# sixel13 = 549999
# sixel14 = 999954
# sixel15 = cccccc
## Misc colors
# selection-foreground=<inverse foreground/background>
# selection-background=<inverse foreground/background>
# jump-labels=<regular0> <regular3> # black-on-yellow
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
# search-box-no-match=<regular0> <regular1> # black-on-red
# search-box-match=<regular0> <regular3> # black-on-yellow
# urls=<regular3>
[csd]
# preferred=server
# size=26
# font=<primary font>
# color=<foreground color>
# hide-when-maximized=no
# double-click-to-maximize=yes
# border-width=0
# border-color=<csd.color>
# button-width=26
# button-color=<background color>
# button-minimize-color=<regular4>
# button-maximize-color=<regular2>
# button-close-color=<regular1>
[key-bindings]
# scrollback-up-page=Shift+Page_Up
# scrollback-up-half-page=none
# scrollback-up-line=none
# scrollback-down-page=Shift+Page_Down
# scrollback-down-half-page=none
# scrollback-down-line=none
# scrollback-home=none
# scrollback-end=none
# clipboard-copy=Control+Shift+c XF86Copy
# clipboard-paste=Control+Shift+v XF86Paste
# primary-paste=Shift+Insert
# search-start=Control+Shift+r
font-increase=Control+plus
font-decrease=Control+minus
font-reset=Control+equal
# spawn-terminal=Control+Shift+n
# minimize=none
# maximize=none
# fullscreen=none
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-selected=[xargs -r firefox] none
# pipe-command-output=[wl-copy] none # Copy last command's output to the clipboard
# show-urls-launch=Control+Shift+o
# show-urls-copy=none
# show-urls-persistent=none
# prompt-prev=Control+Shift+z
# prompt-next=Control+Shift+x
# unicode-input=Control+Shift+u
# noop=none
[search-bindings]
# cancel=Control+g Control+c Escape
# commit=Return
# find-prev=Control+r
# find-next=Control+s
# cursor-left=Left Control+b
# cursor-left-word=Control+Left Mod1+b
# cursor-right=Right Control+f
# cursor-right-word=Control+Right Mod1+f
# cursor-home=Home Control+a
# cursor-end=End Control+e
# delete-prev=BackSpace
# delete-prev-word=Mod1+BackSpace Control+BackSpace
# delete-next=Delete
# delete-next-word=Mod1+d Control+Delete
# extend-char=Shift+Right
# extend-to-word-boundary=Control+w Control+Shift+Right
# extend-to-next-whitespace=Control+Shift+w
# extend-line-down=Shift+Down
# extend-backward-char=Shift+Left
# extend-backward-to-word-boundary=Control+Shift+Left
# extend-backward-to-next-whitespace=none
# extend-line-up=Shift+Up
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
# primary-paste=Shift+Insert
# unicode-input=none
# quit=none
# scrollback-up-page=Shift+Page_Up
# scrollback-up-half-page=none
# scrollback-up-line=none
# scrollback-down-page=Shift+Page_Down
# scrollback-down-half-page=none
# scrollback-down-line=none
# scrollback-home=none
# scrollback-end=none
[url-bindings]
# cancel=Control+g Control+c Control+d Escape
# toggle-url-visible=t
[text-bindings]
# \x03=Mod4+c # Map Super+c -> Ctrl+c
[mouse-bindings]
# scrollback-up-mouse=BTN_WHEEL_BACK
# scrollback-down-mouse=BTN_WHEEL_FORWARD
# font-increase=Control+BTN_WHEEL_BACK
# font-decrease=Control+BTN_WHEEL_FORWARD
# selection-override-modifiers=Shift
# primary-paste=BTN_MIDDLE
# select-begin=BTN_LEFT
# select-begin-block=Control+BTN_LEFT
# select-extend=BTN_RIGHT
# select-extend-character-wise=Control+BTN_RIGHT
# select-word=BTN_LEFT-2
# select-word-whitespace=Control+BTN_LEFT-2
# select-quote = BTN_LEFT-3
# select-row=BTN_LEFT-4
# vim: ft=dosini

25
config/kanshi/config Normal file
View File

@ -0,0 +1,25 @@
profile "Internal" {
output eDP-1 enable
}
profile "Full setup" {
output eDP-1 disable
output DP-1 enable scale 1.25 position 0,0
output HDMI-A-1 enable position 3072,0
exec swaymsg focus output DP-1
}
profile "Internal + External" {
output eDP-1 disable
output DP-1 enable scale 1.25 position 0,0
exec swaymsg focus output DP-1
}
profile "Internal + Kamvas" {
output eDP-1 enable position 0,0
output HDMI-A-1 enable position 2560,0
exec swaymsg focus output eDP-1
}

1
config/mako/config Normal file
View File

@ -0,0 +1 @@
default-timeout=10

176
config/rofi/config.rasi Normal file
View File

@ -0,0 +1,176 @@
configuration {
font: "Iosevka 12";
/* modes: "window,drun,run,ssh";*/
/* location: 0;*/
/* yoffset: 0;*/
/* xoffset: 0;*/
/* fixed-num-lines: true;*/
/* show-icons: false;*/
/* preview-cmd: ;*/
/* on-selection-changed: ;*/
/* on-mode-changed: ;*/
/* on-entry-accepted: ;*/
/* on-menu-canceled: ;*/
/* on-menu-error: ;*/
/* on-screenshot-taken: ;*/
/* terminal: "rofi-sensible-terminal";*/
/* ssh-client: "ssh";*/
/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
/* run-command: "{cmd}";*/
/* run-list-command: "";*/
/* run-shell-command: "{terminal} -e {cmd}";*/
/* window-command: "wmctrl -i -R {window}";*/
/* window-match-fields: "all";*/
/* icon-theme: ;*/
/* drun-match-fields: "name,generic,exec,categories,keywords";*/
/* drun-categories: ;*/
/* drun-exclude-categories: ;*/
/* drun-show-actions: false;*/
/* drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";*/
/* drun-url-launcher: "xdg-open";*/
/* disable-history: false;*/
/* ignored-prefixes: "";*/
/* sort: false;*/
/* sorting-method: "normal";*/
/* case-sensitive: false;*/
/* case-smart: false;*/
/* cycle: true;*/
/* sidebar-mode: false;*/
/* hover-select: false;*/
/* eh: 1;*/
/* auto-select: false;*/
/* parse-hosts: false;*/
/* parse-known-hosts: true;*/
/* combi-modes: "window,run";*/
/* matching: "normal";*/
/* tokenize: true;*/
/* m: "-5";*/
/* filter: ;*/
/* dpi: -1;*/
/* threads: 0;*/
/* scroll-method: 0;*/
/* window-format: "{w} {c} {t}";*/
/* click-to-exit: true;*/
/* max-history-size: 25;*/
/* combi-hide-mode-prefix: false;*/
/* combi-display-format: "{mode} {text}";*/
/* matching-negate-char: '-' /* unsupported */;*/
/* cache-dir: ;*/
/* window-thumbnail: false;*/
/* drun-use-desktop-cache: false;*/
/* drun-reload-desktop-cache: false;*/
/* normalize-match: false;*/
/* steal-focus: false;*/
/* application-fallback-icon: ;*/
/* refilter-timeout-limit: 300;*/
/* xserver-i300-workaround: false;*/
/* completer-mode: "filebrowser";*/
/* imdkit: true;*/
/* pid: "/run/user/1000/rofi.pid";*/
/* display-window: ;*/
/* display-windowcd: ;*/
/* display-run: ;*/
/* display-ssh: ;*/
/* display-drun: ;*/
/* display-combi: ;*/
/* display-keys: ;*/
/* display-filebrowser: ;*/
/* display-recursivebrowser: ;*/
/* kb-primary-paste: "Control+V,Shift+Insert";*/
/* kb-secondary-paste: "Control+v,Insert";*/
/* kb-secondary-copy: "Control+c";*/
/* kb-clear-line: "Control+w";*/
/* kb-move-front: "Control+a";*/
/* kb-move-end: "Control+e";*/
/* kb-move-word-back: "Alt+b,Control+Left";*/
/* kb-move-word-forward: "Alt+f,Control+Right";*/
/* kb-move-char-back: "Left,Control+b";*/
/* kb-move-char-forward: "Right,Control+f";*/
/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
/* kb-remove-word-forward: "Control+Alt+d";*/
/* kb-remove-char-forward: "Delete,Control+d";*/
/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
/* kb-remove-to-eol: "Control+k";*/
/* kb-remove-to-sol: "Control+u";*/
/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
/* kb-accept-custom: "Control+Return";*/
/* kb-accept-custom-alt: "Control+Shift+Return";*/
/* kb-accept-alt: "Shift+Return";*/
/* kb-delete-entry: "Shift+Delete";*/
/* kb-mode-next: "Shift+Right,Control+Tab";*/
/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
/* kb-mode-complete: "Control+l";*/
/* kb-row-left: "Control+Page_Up";*/
/* kb-row-right: "Control+Page_Down";*/
/* kb-row-up: "Up,Control+p";*/
/* kb-row-down: "Down,Control+n";*/
/* kb-row-tab: "";*/
/* kb-element-next: "Tab";*/
/* kb-element-prev: "ISO_Left_Tab";*/
/* kb-page-prev: "Page_Up";*/
/* kb-page-next: "Page_Down";*/
/* kb-row-first: "Home,KP_Home";*/
/* kb-row-last: "End,KP_End";*/
/* kb-row-select: "Control+space";*/
/* kb-screenshot: "Alt+S";*/
/* kb-ellipsize: "Alt+period";*/
/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
/* kb-toggle-sort: "Alt+grave";*/
/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
/* kb-custom-1: "Alt+1";*/
/* kb-custom-2: "Alt+2";*/
/* kb-custom-3: "Alt+3";*/
/* kb-custom-4: "Alt+4";*/
/* kb-custom-5: "Alt+5";*/
/* kb-custom-6: "Alt+6";*/
/* kb-custom-7: "Alt+7";*/
/* kb-custom-8: "Alt+8";*/
/* kb-custom-9: "Alt+9";*/
/* kb-custom-10: "Alt+0";*/
/* kb-custom-11: "Alt+exclam";*/
/* kb-custom-12: "Alt+at";*/
/* kb-custom-13: "Alt+numbersign";*/
/* kb-custom-14: "Alt+dollar";*/
/* kb-custom-15: "Alt+percent";*/
/* kb-custom-16: "Alt+dead_circumflex";*/
/* kb-custom-17: "Alt+ampersand";*/
/* kb-custom-18: "Alt+asterisk";*/
/* kb-custom-19: "Alt+parenleft";*/
/* kb-select-1: "Super+1";*/
/* kb-select-2: "Super+2";*/
/* kb-select-3: "Super+3";*/
/* kb-select-4: "Super+4";*/
/* kb-select-5: "Super+5";*/
/* kb-select-6: "Super+6";*/
/* kb-select-7: "Super+7";*/
/* kb-select-8: "Super+8";*/
/* kb-select-9: "Super+9";*/
/* kb-select-10: "Super+0";*/
/* kb-entry-history-up: "Control+Up";*/
/* kb-entry-history-down: "Control+Down";*/
/* kb-matcher-up: "Super+equal";*/
/* kb-mather-down: "Super+minus";*/
/* ml-row-left: "ScrollLeft";*/
/* ml-row-right: "ScrollRight";*/
/* ml-row-up: "ScrollUp";*/
/* ml-row-down: "ScrollDown";*/
/* me-select-entry: "MousePrimary";*/
/* me-accept-entry: "MouseDPrimary";*/
/* me-accept-custom: "Control+MouseDPrimary";*/
timeout {
action: "kb-cancel";
delay: 0;
}
filebrowser {
directories-first: true;
sorting-method: "name";
}
}
//@theme "/usr/share/rofi/themes/gruvbox-dark-soft.rasi"
//@theme "/usr/share/rofi/themes/sidebar.rasi"
//@theme "/usr/share/rofi/themes/solarized.rasi"
@theme "/usr/share/rofi/themes/android_notification.rasi"

367
config/waybar/config.jsonc Normal file
View File

@ -0,0 +1,367 @@
// =============================================================================
//
// Waybar configuration
//
// Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration
//
// =============================================================================
{
// -------------------------------------------------------------------------
// Global configuration
// -------------------------------------------------------------------------
"layer": "top",
// If height property would be not present, it'd be calculated dynamically
"height": 24,
"position": "bottom",
"modules-left": [
// "custom/menu",
"sway/workspaces",
"custom/scratchpad"
],
"modules-center": [
"custom/wf-recorder",
"sway/mode",
"custom/weather"
],
"modules-right": [
"custom/taskwarrior",
// informational
"sway/language",
"custom/clipboard",
"cpu",
"temperature",
"memory",
"battery",
// connecting
"network",
"bluetooth",
"custom/valent",
// media
"custom/playerctl",
"custom/idle_inhibitor",
"custom/dnd",
"pulseaudio",
"backlight",
// system
"custom/theme",
"custom/adaptive-light",
"custom/sunset",
"tray",
"clock"
],
// -------------------------------------------------------------------------
// Modules
// -------------------------------------------------------------------------
"battery": {
"interval": 30,
"states": {
"warning": 30,
"critical": 15
},
"format-charging": "󰂄 {capacity}%",
"format": "{icon} {capacity}%",
"format-icons": [
"󱃍",
"󰁺",
"󰁼",
"󰁽",
"󰁾",
"󰁿",
"󰂀",
"󰂁",
"󰂂",
"󰁹"
],
"tooltip": true
},
"clock": {
"interval": 60,
"format": "{:%e %b %H:%M}",
"tooltip": true,
"tooltip-format": "<big>{:%B %Y}</big>\n<tt>{calendar}</tt>",
"on-click": "swaymsg exec \\$calendar"
},
"cpu": {
"interval": 5,
"format": "cpu {usage}% {avg_frequency}GHz",
"states": {
"warning": 70,
"critical": 90
},
"on-click": "swaymsg exec \\$task_manager",
"tooltip": true
},
"memory": {
"interval": 10,
"format": "ram {}%",
"states": {
"warning": 70,
"critical": 90
},
"on-click": "swaymsg exec \\$task_manager",
"tooltip": true
},
"network": {
"interval": 5,
"format-wifi": "{icon}",
"format-ethernet": "󰈀",
"format-disconnected": "󰖪",
"format-disabled": "󰀝",
"format-icons": [
"󰤯",
"󰤟",
"󰤢",
"󰤥",
"󰤨"
],
"tooltip-format": "{icon} {ifname}: {ipaddr}",
"tooltip-format-ethernet": "{icon} {ifname}: {ipaddr}",
"tooltip-format-wifi": "{icon} {ifname} ({essid}): {ipaddr}",
"tooltip-format-disconnected": "{icon} disconnected",
"tooltip-format-disabled": "{icon} disabled",
"on-click": "swaymsg exec \\$once \\$term_float nmtui connect"
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>",
"tooltip": false
},
"sway/workspaces": {
"active-only": false,
"all-outputs": false,
"disable-scroll": true,
},
"backlight": {
"format": "{icon} {percent}%",
"format-icons": [
"󰃞",
"󰃟",
"󰃠"
],
"on-scroll-up": "swaymsg exec \\$brightness_up",
"on-scroll-down": "swaymsg exec \\$brightness_down"
},
"pulseaudio": {
"scroll-step": 5,
"format": "{icon} {volume}%{format_source}",
"format-muted": "󰖁 {format_source}",
"format-source": "",
"format-source-muted": " 󰍭",
"format-icons": {
"headphone": "󰋋",
"headset": "󰋎",
"default": [
"󰕿",
"󰖀",
"󰕾"
]
},
"tooltip-format": "{icon} {volume}% {format_source}",
"on-click": "swaymsg exec \\$pulseaudio",
"on-click-middle": "swaymsg exec \\$volume_mute",
"on-scroll-up": "swaymsg exec \\$volume_up",
"on-scroll-down": "swaymsg exec \\$volume_down"
},
"temperature": {
"critical-threshold": 90,
"interval": 5,
"format": "{icon}",
"tooltip-format": "{temperatureC}°C",
"format-icons": [
"",
"",
""
],
"tooltip": true,
"on-click": "swaymsg exec \"\\$once \\$term_float watch sensors\""
},
"tray": {
"icon-size": 14,
"spacing": 5
},
// "custom/pacman": {
// "format": "󰀼 {}",
// "interval": 3600,
// "return-type": "json",
// "exec-if": "$HOME/.local/share/sway/scripts/checkupdates.sh check",
// "exec": "$HOME/.local/share/sway/scripts/checkupdates.sh status",
// "on-click": "$HOME/.local/share/sway/scripts/checkupdates.sh check && swaymsg exec \\$update_manager",
// "on-click-middle": "waybar-signal pacman",
// "signal": 14
// },
// "custom/menu": {
// "format": "",
// "on-click": "swaymsg exec \\$menu",
// "tooltip": false
// },
"bluetooth": {
"format": "󰂯",
"format-disabled": "󰂲",
// "on-click": "swaymsg exec \\$bluetooth",
"on-click": "blueman-manager",
"on-click-right": "rfkill toggle bluetooth",
"tooltip-format": "{}"
},
"sway/language": {
"format": " {}",
"min-length": 5,
"tooltip": false,
"on-click": "swaymsg input type:keyboard xkb_switch_layout next"
},
"custom/scratchpad": {
"interval": "once",
"return-type": "json",
"format": "{icon}",
"format-icons": {
"one": "󰖯",
"many": "󰖲"
},
"exec": "/bin/sh $HOME/.local/share/sway/scripts/scratchpad.sh",
"on-click": "swaymsg 'scratchpad show'",
"signal": 7
},
"custom/sunset": {
"interval": "once",
"tooltip": true,
"return-type": "json",
"format": "{icon}",
"format-icons": {
"on": "󰌵",
"off": "󰌶"
},
"exec": "fallback_latitude=50.1 fallback_longitude=8.7 latitude= longitude= $HOME/.local/share/sway/scripts/sunset.sh",
"on-click": "$HOME/.local/share/sway/scripts/sunset.sh toggle",
"exec-if": "$HOME/.local/share/sway/scripts/sunset.sh check",
"signal": 6
},
"custom/theme": {
"format": "{icon}",
"interval": 300,
"tooltip": true,
"format-icons": {
"light": "",
"dark": "",
"auto_light": "󱩷",
"auto_dark": "󱩸"
},
"return-type": "json",
"exec-if": "$HOME/.local/share/sway/scripts/theme-toggle.sh check",
"exec": "$HOME/.local/share/sway/scripts/theme-toggle.sh status",
"on-click": "$HOME/.local/share/sway/scripts/theme-toggle.sh toggle",
"on-click-right": "$HOME/.local/share/sway/scripts/theme-toggle.sh auto-toggle",
"signal": 17
},
"custom/wf-recorder": {
"interval": "once",
"return-type": "json",
"format": "{}",
"exec": "echo '{\"class\": \"recording\",\"text\":\"󰑊\",\"tooltip\":\"press $mod+Esc to stop recording\"}'",
"exec-if": "pgrep wf-recorder",
"on-click": "waybar-signal recorder",
"signal": 8
},
"custom/playerctl": {
"interval": "once",
"tooltip": true,
"return-type": "json",
"format": "{icon}",
"format-icons": {
"Playing": "󰏦",
"Paused": "󰐍"
},
"exec": "playerctl metadata --format '{\"alt\": \"{{status}}\", \"tooltip\": \"{{playerName}}: {{markup_escape(title)}} - {{markup_escape(artist)}}\" }'",
"on-click": "playerctl play-pause",
"on-click-right": "playerctl next",
"on-scroll-up": "playerctl position 10+",
"on-scroll-down": "playerctl position 10-",
"signal": 5
},
"custom/clipboard": {
"format": "󰨸",
"interval": "once",
"return-type": "json",
"on-click": "swaymsg -q exec '$clipboard'; waybar-signal clipboard",
"on-click-right": "swaymsg -q exec '$clipboard-del'; waybar-signal clipboard",
"on-click-middle": "rm -f ~/.cache/cliphist/db; waybar-signal clipboard",
"exec": "printf '{\"tooltip\":\"%s\"}' $(cliphist list | wc -l)' item(s) in the clipboard\r(Mid click to clear)'",
"exec-if": "[ -x \"$(command -v cliphist)\" ] && [ $(cliphist list | wc -l) -gt 0 ]",
"signal": 9
},
"custom/taskwarrior": {
"format": "{text}",
"tooltip": false,
"interval": 2,
"exec": "taskwarrior_active",
"return-type": "json",
"on-click": "taskwarrior_start",
"on-click-right": "taskwarrior_stop",
},
"custom/weather": {
"format": "{}",
"tooltip": true,
"interval": 3600,
// accepts -c/--city <city> -t/--temperature <C/F> -d/--distance <km/miles>
"exec": "$HOME/.local/share/sway/scripts/weather.py",
"return-type": "json",
"on-click": "xdg-open \"https://wttr.in/$(curl -s https://manjaro-sway.download/geoip | jq -r '.city')\"",
"on-click-right": "waybar-signal weather",
"signal": 16
},
"custom/dnd": {
"interval": "once",
"return-type": "json",
"format": "{}{icon}",
"format-icons": {
"default": "󰚢",
"dnd": "󰚣"
},
"on-click": "$HOME/.local/share/sway/scripts/dnd.sh toggle; waybar-signal dnd",
"on-click-right": "$HOME/.local/share/sway/scripts/dnd.sh restore",
"exec": "$HOME/.local/share/sway/scripts/dnd.sh status",
"signal": 11
},
"custom/adaptive-light": {
"interval": "once",
"tooltip": true,
"return-type": "json",
"format": "{icon}",
"format-icons": {
"on": "󰃡",
"off": "󰃠"
},
"exec": "$HOME/.local/share/sway/scripts/wluma.sh",
"on-click": "$HOME/.local/share/sway/scripts/wluma.sh toggle",
"exec-if": "$HOME/.local/share/sway/scripts/wluma.sh check",
"signal": 12
},
"custom/valent": {
"format": "{icon}",
"tooltip": true,
"interval": 60,
"exec": "$HOME/.local/share/sway/scripts/valent.py",
"exec-if": "[ -x \"$(command -v valent)\" ]",
"return-type": "json",
"format-icons": {
"no-devices": "",
"dangerously-empty": "󰂃",
"no-signal": "󰞃",
"connected": "",
"disconnected": ""
},
"on-click": "valent",
"on-click-middle": "waybar-signal valent",
"signal": 13
},
"custom/idle_inhibitor": {
"interval": 60,
"return-type": "json",
"format": "{icon}",
"format-icons": {
"on": "󰒳",
"off": "󰒲"
},
"exec": "inhibit-idle",
"on-click": "inhibit-idle off; inhibit-idle interactive",
"on-click-middle": "inhibit-idle off",
"signal": 15
}
}

303
config/waybar/gruvbox.css Normal file
View File

@ -0,0 +1,303 @@
/* GRUVBOX DARK PALETTE
--------------------
*/
@define-color bg #282828;
@define-color gray1 #928374;
@define-color red1 #cc241d;
@define-color red2 #fb4934;
@define-color green1 #98971a;
@define-color green2 #b8bb26;
@define-color yellow1 #d79921;
@define-color yellow2 #fabd2f;
@define-color blue1 #458588;
@define-color blue2 #83a598;
@define-color purple1 #b16286;
@define-color purple2 #d3869b;
@define-color aqua1 #689d6a;
@define-color aqua2 #8ec07c;
@define-color gray2 #a89984;
@define-color fg #ebdbb2;
@define-color bg0_h #1d2021;
@define-color bg0 @bg;
@define-color bg1 #3c3836;
@define-color bg2 #504945;
@define-color bg3 #665c54;
@define-color bg4 #7c6f64;
@define-color bg-gray @gray1;
@define-color bg0_s #32302f;
@define-color fg4 #a89984;
@define-color fg3 #bdae93;
@define-color fg2 #d5c4a1;
@define-color fg1 @fg;
@define-color fg0 #fbf1c7;
@define-color orange1 #d65d0e;
@define-color orange2 #af3a03;
/* GRUVBOX LIGHT PALETTE
--------------------- */
/* @define-color bg #fbf1c7; */
/* @define-color gray1 #928374; */
/* @define-color red1 #cc241d; */
/* @define-color red2 #9d0006; */
/* @define-color green1 #98971a; */
/* @define-color green2 #79740e; */
/* @define-color yellow1 #d79921; */
/* @define-color yellow2 #b57614; */
/* @define-color blue1 #458588; */
/* @define-color blue2 #076678; */
/* @define-color purple1 #b16286; */
/* @define-color purple2 #8f3f71; */
/* @define-color aqua1 #689d6a; */
/* @define-color aqua2 #427b58; */
/* @define-color gray2 #7c6f64; */
/* @define-color fg #3c3836; */
/* @define-color bg0_h #f9f5d7; */
/* @define-color bg0 @bg; */
/* @define-color bg1 #ebdbb2; */
/* @define-color bg2 #d5c4a1; */
/* @define-color bg3 #bdae93; */
/* @define-color bg4 #a89984; */
/* @define-color bg-gray @gray1; */
/* @define-color bg0_s #f2e5bc; */
/* @define-color fg4 #7c6f64; */
/* @define-color fg3 #665c54; */
/* @define-color fg2 #504945; */
/* @define-color fg1 @fg; */
/* @define-color fg0 #282828; */
/* @define-color orange1 #d65d0e; */
/* @define-color orange2 #af3a03; */
/* COLOR BINDS
----------- */
@define-color waybar @bg;
@define-color text-main @fg;
@define-color text-opposite @bg;
@define-color text-alert @red2;
@define-color alert @red1;
@define-color warning @orange1;
@define-color ok @aqua2;
@define-color workspaces @yellow1;
@define-color workspaces-hover @yellow2;
@define-color day @orange1;
@define-color time @orange2;
@define-color date @orange1;
@define-color backlight @bg-gray;
@define-color network @bg4;
@define-color audio @bg3;
@define-color battery @bg2;
/* ELEMENT SETTINGS
---------------- */
.modules-left > widget:first-child > #workspaces {margin: 0}
.modules-right > widget:last-child > #workspaces {margin: 0}
* {
font-family: Symbols Nerd Font Mono, VictorMono Nerd Font;
font-size: 12;
color: @text-main;
background-color: @waybar;
border: none;
border-radius: 0;
min-height: 0;
margin: 0;
padding: 0;
box-shadow: none;
text-shadow: none;
icon-shadow: none;
}
workspaces button label,
#window,
widget label,
#tray {
padding: 0 .5em;
}
/* ANIMATION
--------- */
@keyframes text-blink {
to {
color: @text-alert;
}
}
@keyframes gradient-blink {
from {
color: @text-alert;
background: linear-gradient(to right, @battery 100%, @alert);
}
to {
color: @text-opposite;
background: linear-gradient(to right, @battery 15%, @alert);
}
}
/* Attention */
#mode,
#battery.below20.discharging {
animation-name: text-blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#battery.below20.discharging {
color: transparent
}
/* Warning */
#pulseaudio.muted,
#network.disconnected/*,
#battery.below20.discharging*/ {
color: @text-alert;
}
/* Critical */
#battery.below10.discharging {
animation-name: gradient-blink;
animation-duration: .75s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
/* LEFT MODULES
------------ */
#workspaces button label {
background: @workspaces;
}
#workspaces button:hover label {
transition: background-color .5s;
background: radial-gradient( @workspaces-hover, @workspaces 60%);
}
#workspaces button.urgent {
transition: background-color .5s;
background: radial-gradient( @alert, @workspaces 80%);
transition: color .5s;
color: @text-alert;
}
#mode {
font-style: italic;
font-weight: bold;
padding: 0;
margin: 0 .5em;
color: transparent;
background-color: @waybar;
box-shadow:
0 .2em @alert inset,
0 -.2em @alert inset;
}
/* CENTER MODULES
-------------- */
#scratchpad.empty {
color: @waybar;
}
#clock {
color: @text-opposite;
}
#clock.day {
background-color: @day;
}
#clock.time {
background-color: @time;
}
#clock.date {
background-color: @day;
}
#scratchpad.invisible {
color: @waybar;
}
/* RIGHT MODULES
------------- */
#tray {
background-color: @bg;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
}
#backlight {
background-color: @backlight;
}
#network {
background-color: @network;
}
#pulseaudio {
background-color: @audio;
}
#battery {
background-color: @battery;
}
#battery.charging {
background: linear-gradient(to right, @battery 30%, @ok);
}
#battery.discharging {
background: linear-gradient(to right, @battery 30%, @alert);
}
/* ARROWS
------ */
#custom-arrow-right,
#custom-arrow-left {
padding: 0;
font-family: Hack Nerd Font Mono;
font-size: 1.4em;
}
#custom-arrow-right.workspaces {
color: @workspaces;
background-color: transparent;
}
#custom-arrow-right.time {
color: @time;
background-color: @date;
}
#custom-arrow-right.date {
color: @date;
background-color: transparent;
}
#custom-arrow-left.battery {
color: @battery;
background-color: @audio;
}
#custom-arrow-left.audio {
color: @audio;
background-color: @network;
}
#custom-arrow-left.network {
color: @network;
background-color: @backlight;
}
#custom-arrow-left.backlight {
color: @backlight;
background-color: transparent;
}
#custom-arrow-left.time {
color: @time;
background-color: @day;
}
#custom-arrow-left.day {
color: @day;
background-color: transparent;
}

266
config/waybar/style.css Normal file
View File

@ -0,0 +1,266 @@
/* GRUVBOX DARK PALETTE
--------------------
*/
@define-color bg #282828;
@define-color gray1 #928374;
@define-color red1 #cc241d;
@define-color red2 #fb4934;
@define-color green1 #98971a;
@define-color green2 #b8bb26;
@define-color yellow1 #d79921;
@define-color yellow2 #fabd2f;
@define-color blue1 #458588;
@define-color blue2 #83a598;
@define-color purple1 #b16286;
@define-color purple2 #d3869b;
@define-color aqua1 #689d6a;
@define-color aqua2 #8ec07c;
@define-color gray2 #a89984;
@define-color fg #ebdbb2;
@define-color bg0_h #1d2021;
@define-color bg0 @bg;
@define-color bg1 #3c3836;
@define-color bg2 #504945;
@define-color bg3 #665c54;
@define-color bg4 #7c6f64;
@define-color bg-gray @gray1;
@define-color bg0_s #32302f;
@define-color fg4 #a89984;
@define-color fg3 #bdae93;
@define-color fg2 #d5c4a1;
@define-color fg1 @fg;
@define-color fg0 #fbf1c7;
@define-color orange1 #d65d0e;
@define-color orange2 #af3a03;
/* COLOR BINDS
----------- */
@define-color theme_base_color @bg;
@define-color theme_bg_color @bg;
@define-color theme_text_color @fg;
@define-color text-opposite @bg;
@define-color text-alert @red2;
@define-color error_color @red1;
@define-color warning_color @orange1;
@define-color ok @aqua2;
@define-color workspaces-text-color @fg4;
@define-color workspaces-hover @yellow2;
@define-color workspaces-focused @yellow1;
@define-color day @orange1;
@define-color time @orange2;
@define-color date @orange1;
@define-color backlight @bg-gray;
@define-color network @bg4;
@define-color audio @bg3;
@define-color battery @bg2;
@define-color theme_selected_bg_color @blue1;
/* =============================================================================
*
* Waybar configuration
*
* Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration
*
* =========================================================================== */
/* import css definitions for current theme */
/* -----------------------------------------------------------------------------
* Keyframes
* -------------------------------------------------------------------------- */
@keyframes blink-warning {
70% {
color: @wm_icon_bg;
}
to {
color: @wm_icon_bg;
background-color: @warning_color;
}
}
@keyframes blink-critical {
70% {
color: @wm_icon_bg;
}
to {
color: @wm_icon_bg;
background-color: @error_color;
}
}
/* -----------------------------------------------------------------------------
* Base styles
* -------------------------------------------------------------------------- */
/* Reset all styles */
* {
border: none;
border-radius: 0;
min-height: 0;
margin: 0;
padding: 0;
font-family: "Iosevka Custom";
}
/* The whole bar */
window#waybar {
background: @bg0_h;
color: @theme_text_color;
font-size: 12px;
}
/* Each module */
#custom-help,
#custom-scratchpad,
#custom-github,
#custom-clipboard,
#custom-dnd,
#custom-valent,
#custom-idle_inhibitor,
#bluetooth,
#battery,
#clock,
#cpu,
#memory,
#mode,
#network,
#pulseaudio,
#temperature,
#backlight,
#language,
#custom-adaptive-light,
#custom-sunset,
#custom-playerctl,
#custom-weather,
#custom-theme,
#tray {
padding-left: 8px;
padding-right: 8px;
}
/* -----------------------------------------------------------------------------
* Module styles
* -------------------------------------------------------------------------- */
#custom-scratchpad,
#workspaces button.focused {
color: @theme_bg_color;
background-color: @workspaces-focused;
}
#battery {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#battery.warning {
color: @warning_color;
}
#battery.critical {
color: @error_color;
}
#battery.warning.discharging {
animation-name: blink-warning;
animation-duration: 3s;
}
#battery.critical.discharging {
animation-name: blink-critical;
animation-duration: 2s;
}
#clock {
font-weight: bold;
}
#cpu.warning {
color: @warning_color;
}
#cpu.critical {
color: @error_color;
}
#memory {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#memory.warning {
color: @warning_color;
}
#memory.critical {
color: @error_color;
animation-name: blink-critical;
animation-duration: 2s;
}
#mode {
background: @background_color;
}
#network.disconnected {
color: @warning_color;
}
#pulseaudio.muted {
color: @warning_color;
}
#temperature.critical {
color: @error_color;
}
#workspaces button {
margin-left: 2px;
margin-right: 2px;
padding-left: 8px;
padding-right: 8px;
color: @workspaces-text-color;
background: @theme_bg_color;
}
#workspaces button.focused {
border-color: @workspaces-focused;
}
#workspaces button.urgent {
border-color: @error_color;
color: @error_color;
}
#workspaces button:hover {
border-color: @yellow1;
color: @yellow1;
}
#bluetooth.disabled {
color: @warning_color;
}
#custom-wf-recorder {
color: @error_color;
padding-right: 10px;
}
#custom-taskwarrior {
background-color: @warning_color;
color: @theme_base_color;
font-weight: bold;
padding-left: 10px;
padding-right: 10px;
}
#custom-valent.dangerously-empty {
color: @warning_color;
}