Compare commits

..

22 Commits

Author SHA1 Message Date
5ed69da6fc wip 2026-02-16 10:10:45 +01:00
bcb7a93b90 wip 2026-02-16 10:10:45 +01:00
2f672733c2 wip 2026-02-16 10:10:42 +01:00
de535944f3 feat(sway): add f13-f24 input and bind mic mute 2026-02-16 10:09:58 +01:00
6e56e1d203 fix(git): includeif config location and syntax 2026-02-11 19:02:04 +01:00
5721cebb57 feat(sway): update BoltLauncher for_window rule 2026-02-11 19:00:42 +01:00
15e72a654d feat(zsh): add git push origin alias gpo 2026-02-10 08:36:54 +01:00
8864557b02 feat(sway): add swayfx theming 2026-02-02 18:28:39 +01:00
f9da29cc0d feat(sway): consistent border theming 2026-02-02 18:28:04 +01:00
0cbd1bf856 chore(sway): format autostart file 2026-02-02 12:11:58 +01:00
c905c4cdb6 feat(sway): add multi host multi output support 2026-01-31 01:23:29 +01:00
6f11a13f1f feat(sway): reorganize the config 2026-01-31 01:07:03 +01:00
cc7511a954 feat(flameshot): add initial config 2026-01-30 10:24:20 +01:00
0c2dc97daf feat(swayidle): keep monitors on for 10min 2026-01-30 10:23:15 +01:00
79c6004043 feat(sway): add wlsunset and flameshot 2026-01-30 10:22:39 +01:00
3753805996 feat(sway): add osrs window rules 2026-01-29 20:47:57 +01:00
02be4c6a24 feat(swaylock): invert ring colors 2026-01-29 20:47:36 +01:00
91275b9688 feat(git): add dumps to gitignore 2026-01-29 20:45:59 +01:00
29bda01e31 fix(git): import correct config for flare 2026-01-29 20:45:20 +01:00
a41d24ab47 feat(sway): add wob 2026-01-26 10:55:09 +01:00
5c8f94abd6 feat(swayidle): lock screen after 300s 2026-01-23 10:02:07 +01:00
58e9f2cc91 feat(swaylock): use european date format 2026-01-23 00:39:48 +01:00
28 changed files with 825 additions and 309 deletions

14
.gitignore vendored
View File

@@ -42,7 +42,10 @@ tmux/*
git/* git/*
!git/config !git/config
!git/ignore !git/ignore
!git/aflabs !git/config.d
git/config.d/*
!git/config.d/aflabs.conf
!git/config.d/flare.conf
# ghostty # ghostty
!ghostty !ghostty
@@ -55,6 +58,7 @@ ghostty/*
sway/* sway/*
!sway/config !sway/config
!sway/config.d !sway/config.d
!sway/host.d
!swaylock !swaylock
swaylock/* swaylock/*
@@ -63,3 +67,11 @@ swaylock/*
!swayidle !swayidle
swayidle/* swayidle/*
!swayidle/config !swayidle/config
!waybar
!bin
# flameshot
!flameshot
flameshot/*
!flameshot/flameshot.ini

34
bin/waybar-custom-cider.sh Executable file
View File

@@ -0,0 +1,34 @@
#!/usr/bin/env bash
url="http://localhost:10767/api/v1/playback"
status_raw=$(curl -s --max-time 2 "$url/is-playing")
# CASE 1: API is totally unreachable (App closed)
if [[ -z "$status_raw" ]]; then
echo '{"text": "offline", "class": "offline", "alt": "offline"}'
exit 0
fi
# Extract playing status, defaulting to false if null
is_playing=$(echo "$status_raw" | jq -r '.is_playing // false')
# 2. Get song info
info_raw=$(curl -s --max-time 2 "$url/now-playing")
# CASE 2 & 3: Handle empty metadata vs. active metadata
echo "$info_raw" | jq -c \
--argjson is_playing "$is_playing" \
'
# Helper function to escape & for Pango
def pango_escape: sub("&"; "&"; "g");
if (.info.name == null or .info.name == "") then
{text: "idle", class: "paused"}
else
{
text: "\(.info.name | pango_escape) - \(.info.artistName | pango_escape)",
tooltip: "\(.info.albumName | pango_escape // "Unknown")",
class: (if $is_playing then "playing" else "paused" end)
}
end'

16
flameshot/flameshot.ini Normal file
View File

@@ -0,0 +1,16 @@
[General]
contrastOpacity=188
contrastUiColor=#000000
disabledGrimWarning=true
drawColor=#00ffff
saveAfterCopy=true
savePath=/home/matej/screens
showHelp=false
showMagnifier=true
showSelectionGeometryHideTime=3000
uiColor=#ffffff
useGrimAdapter=true
[Shortcuts]
TYPE_ACCEPT=
TYPE_COPY=Space

View File

@@ -1,12 +1,3 @@
[includeIf "gitdir:~/Desktop/git/git.aflabs.org/"]
path = ~/.config/git/config.d/aflabs.conf
[includeIf "gitdir:~/Desktop/git/gitlab.com/flarenetwork"]
path = ~/.config/git/config.d/aflabs.conf
[includeIf "gitdir:~/Desktop/git/gitlab.com/flare-foundation"]
path = ~/.config/git/flare
[user] [user]
name = Matej Janežič name = Matej Janežič
email = janezic.mj@gmail.com email = janezic.mj@gmail.com
@@ -54,3 +45,12 @@
[mergetool "nvimdiff"] [mergetool "nvimdiff"]
layout = "LOCAL,BASE,REMOTE / MERGED" layout = "LOCAL,BASE,REMOTE / MERGED"
[includeIf "gitdir:~/git/git.aflabs.org/**"]
path = ~/.config/git/config.d/aflabs.conf
[includeIf "gitdir:~/git/gitlab.com/flarenetwork/**"]
path = ~/.config/git/config.d/flare.conf
[includeIf "gitdir:~/git/gitlab.com/flare-foundation/**"]
path = ~/.config/git/config.d/flare.conf

2
git/config.d/aflabs.conf Normal file
View File

@@ -0,0 +1,2 @@
[user]
email = matej.janezic@aflabs.com

2
git/config.d/flare.conf Normal file
View File

@@ -0,0 +1,2 @@
[user]
email = matej@flare.network

View File

@@ -18,3 +18,5 @@
# todo files # todo files
TODO.md TODO.md
# db dumps files
dumps

View File

@@ -1,199 +1,3 @@
include host.d/"$(hostname)".conf
include config.d/* include config.d/*
### Output configuration
#
# Default wallpaper (more resolutions are available in /run/current-system/sw/share/backgrounds/sway/)
output * bg ~/.assets/wallpaper.png fill
#
# Example configuration:
#
# output HDMI-A-1 resolution 1920x1080 position 1920,0
#
# You can get the names of your outputs by running: swaymsg -t get_outputs
### Idle configuration
#
# Example configuration:
#
exec swayidle -w
# This will lock your screen after 300 seconds of inactivity, then turn off
# your displays after another 300 seconds, and turn your screens back on when
# resumed. It will also lock your screen before your computer goes to sleep.
### Input configuration
#
# Example configuration:
#
# input type:touchpad {
# dwt enabled
# tap enabled
# natural_scroll enabled
# middle_emulation enabled
# }
#
# input type:keyboard {
# xkb_layout "eu"
# }
#
# You can also configure each device individually.
# Read `man 5 sway-input` for more information about this section.
### Key bindings
#
# Basics:
#
# Start a terminal
# Kill focused window
# Start your launcher
# Drag floating windows by holding down $mod and left mouse button.
# Resize them with right mouse button + $mod.
# Despite the name, also works for non-floating windows.
# Change normal to inverse to use left mouse button for resizing and right
# mouse button for dragging.
floating_modifier $mod normal
# Reload the configuration file
# Exit sway (logs you out of your Wayland session)
#
# Moving around:
#
# Move your focus around
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
# Move the focused window with the same, but add Shift
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
#
# Workspaces:
#
# Switch to workspace
bindsym $mod+1 workspace number 1
bindsym $mod+2 workspace number 2
bindsym $mod+3 workspace number 3
bindsym $mod+4 workspace number 4
bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10
# Move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+2 move container to workspace number 2
bindsym $mod+Shift+3 move container to workspace number 3
bindsym $mod+Shift+4 move container to workspace number 4
bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10
# Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default.
#
# Layout stuff:
#
# You can "split" the current object of your focus with
# $mod+b or $mod+v, for horizontal and vertical splits
# respectively.
bindsym $mod+b splith
bindsym $mod+v splitv
# Switch the current container between different layout styles
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# Make the current focus fullscreen
bindsym $mod+f fullscreen
# Toggle the current focus between tiling and floating mode
bindsym $mod+Shift+space floating toggle
# Swap focus between the tiling area and the floating area
bindsym $mod+space focus mode_toggle
# Move focus to the parent container
bindsym $mod+a focus parent
#
# Scratchpad:
#
# Sway has a "scratchpad", which is a bag of holding for windows.
# You can send windows there and get them back later.
# Move the currently focused window to the scratchpad
bindsym $mod+Shift+minus move scratchpad
# Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them.
bindsym $mod+minus scratchpad show
#
# Resizing containers:
#
mode "resize" {
# left will shrink the containers width
# right will grow the containers width
# up will shrink the containers height
# down will grow the containers height
bindsym $left resize shrink width 10px
bindsym $down resize grow height 10px
bindsym $up resize shrink height 10px
bindsym $right resize grow width 10px
# Ditto, with arrow keys
bindsym Left resize shrink width 10px
bindsym Down resize grow height 10px
bindsym Up resize shrink height 10px
bindsym Right resize grow width 10px
# Return to default mode
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
#
# Utilities:
#
# Special keys to adjust volume via PulseAudio
bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5%
bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5%
bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle
# Special keys to adjust brightness via brightnessctl
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
# Special key to take a screenshot with grim
bindsym --locked XF86AudioNext exec playerctl next
bindsym --locked XF86AudioPause exec playerctl play-pause
bindsym --locked XF86AudioPlay exec playerctl play-pause
bindsym --locked XF86AudioPrev exec playerctl previous
#
# Status Bar:
#
# Read `man 5 sway-bar` for more information about this section.
bar {
position top
# When the status_command prints a new line to stdout, swaybar updates.
# The default just shows the current date and time.
status_command while date +'%Y-%m-%d %X'; do sleep 1; done
colors {
statusline #ffffff
background #323232
inactive_workspace #32323200 #32323200 #5c5c5c
}
}
include /etc/sway/config.d/* include /etc/sway/config.d/*

View File

@@ -1,11 +0,0 @@
set $mod Mod4
# vim style
set $left h
set $down j
set $up k
set $right l
# programs
set $term ghostty
set $menu wofi --show drun -iIG -w 2

View File

@@ -1,4 +0,0 @@
input "type:keyboard" {
repeat_delay 150
repeat_rate 35
}

View File

@@ -0,0 +1,27 @@
set $mod Mod4
# vim style
set $left h
set $down j
set $up k
set $right l
# programs
set $term ghostty
set $menu wofi --show drun -iIG -w 2
set $browser google-chrome-stable
set $lockscreen swaylock
# other
set $wobs /tmp/wob.sock
# style
set $border 3
# colors
set $bg0 #32302f
set $bg1 #252423
set $bg_overlay #45403d
set $fg #d4be98
set $red #ea6962
set $gray #928374

View File

@@ -0,0 +1 @@
output * bg ~/.assets/wallpaper.png fill

View File

@@ -1,22 +0,0 @@
# ws2
assign [app_id="google-chrome"] workspace 2
# ws3
assign [app_id="thunderbird"] workspace 3
# ws4
assign [app_id="Cider"] workspace 4
# ws5
assign [class=".*BoltLauncher.*"] workspace 5
assign [class="net-runelite-client-RuneLite"] workspace 5
# ws8
assign [app_id="vesktop"] workspace 8
assign [app_id="Slack"] workspace 8
assign [app_id="org.telegram.desktop"] workspace 8
assign [class="Rocket.Chat"] workspace 8
# i also had these in hyprland
# for_window [class=".*"] fullscreen disable

View File

@@ -0,0 +1,5 @@
input "type:keyboard" {
xkb_options "fkeys:basic_13-24"
repeat_delay 150
repeat_rate 35
}

View File

@@ -1,16 +0,0 @@
bindsym $mod+Return exec $term
bindsym $mod+Shift+q kill
bindsym $mod+d exec $menu
bindsym $mod+Shift+c reload
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
bindsym $mod+Shift+Ctrl+Alt+space exec 1password --quick-access
bindsym $mod+u exec swaylock
bindsym Print exec grim -g "$(slurp -d)" - | wl-copy

View File

@@ -1,31 +0,0 @@
exec $term
exec google-chrome-stable
exec protonmail-bridge -n
exec thunderbird
exec cider-2
exec TZ="Europe/Ljubljana" bolt-launcher
exec vesktop
exec slack
exec Telegram
exec rocketchat-desktop
# for_window [app_id="discord"] mark discord
# for_window [app_id="telegram-desktop"] mark telegram
# for_window [app_id="Slack"] mark slack
# for_window [app_id="rocketchat"] mark rocketchat
#
# workspace 8 layout splith
#
# exec_always {
# swaymsg '[con_mark="discord"] focus'
# swaymsg '[con_mark="telegram"] move right'
# swaymsg '[con_mark="slack"] move right'
# swaymsg '[con_mark="rocketchat"] move right'
# }
exec 1password --silent

View File

@@ -0,0 +1,12 @@
font pango:JetBrainsMono Nerd Font Bold 10
default_floating_border normal $border
default_border normal $border
titlebar_border_thickness $border
# class border bground text indicator child_border
client.focused $fg $bg0 $fg $fg $fg
client.focused_inactive $bg1 $bg1 $gray $bg1 $bg1
client.unfocused $bg1 $bg1 $gray $bg1 $bg1
client.urgent $red $red $bg0 $red $red
client.placeholder $bg1 $bg1 $fg $bg1 $bg1

View File

@@ -0,0 +1,8 @@
titlebar_separator disable
shadows enable
shadow_blur_radius 25
shadow_color #0000007F
shadow_offset 0 5
blur enable

View File

@@ -0,0 +1,118 @@
# sway
bindsym $mod+Shift+c reload
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
floating_modifier $mod normal
# programs
bindsym $mod+Return exec $term
bindsym $mod+d exec $menu
bindsym $mod+u exec $lockscreen
bindsym $mod+Shift+Ctrl+Alt+space exec 1password --quick-access
bindsym Print exec flameshot gui
# programs'
bindsym $mod+Shift+q kill
# move focus
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
# move focused window
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
# switch to workspace
bindsym $mod+1 workspace number 1
bindsym $mod+2 workspace number 2
bindsym $mod+3 workspace number 3
bindsym $mod+4 workspace number 4
bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10
# move to workspace
bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+2 move container to workspace number 2
bindsym $mod+Shift+3 move container to workspace number 3
bindsym $mod+Shift+4 move container to workspace number 4
bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10
bindsym $mod+Ctrl+1 workspace number 1 output current
bindsym $mod+Ctrl+2 workspace number 2 output current
bindsym $mod+Ctrl+3 workspace number 3 output current
bindsym $mod+Ctrl+4 workspace number 4 output current
bindsym $mod+Ctrl+5 workspace number 5 output current
bindsym $mod+Ctrl+6 workspace number 6 output current
bindsym $mod+Ctrl+7 workspace number 7 output current
bindsym $mod+Ctrl+8 workspace number 8 output current
bindsym $mod+Ctrl+9 workspace number 9 output current
bindsym $mod+Ctrl+0 workspace number 10 output current
# layout
bindsym $mod+b splith
bindsym $mod+v splitv
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# fullscreen
bindsym $mod+f fullscreen
# focus
bindsym $mod+Shift+space floating toggle; [floating] border pixel $border; [tiling] border normal $border
bindsym $mod+space focus mode_toggle
bindsym $mod+a focus parent
# scratchpad
bindsym $mod+Shift+minus move scratchpad
bindsym $mod+minus scratchpad show
# xf86-volume
bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
bindsym --locked XF86AudioLowerVolume exec pamixer -d 5 && pamixer --get-volume > $wobs
bindsym --locked XF86AudioRaiseVolume exec pamixer -i 5 && pamixer --get-volume > $wobs
bindsym --locked F16 exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle
# xf86-brightnes
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
# xf86-audio
bindsym --locked XF86AudioNext exec playerctl next
bindsym --locked XF86AudioPause exec playerctl play-pause
bindsym --locked XF86AudioPlay exec playerctl play-pause
bindsym --locked XF86AudioPrev exec playerctl previous
# resize
mode "resize" {
# left will shrink the containers width
# right will grow the containers width
# up will shrink the containers height
# down will grow the containers height
bindsym $left resize shrink width 10px
bindsym $down resize grow height 10px
bindsym $up resize shrink height 10px
bindsym $right resize grow width 10px
# Ditto, with arrow keys
bindsym Left resize shrink width 10px
bindsym Down resize grow height 10px
bindsym Up resize shrink height 10px
bindsym Right resize grow width 10px
# Return to default mode
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"

View File

@@ -0,0 +1,18 @@
# additional theming
for_window [floating] border pixel $border
for_window [tiling] border normal $border
# workspace assignment
assign [app_id="google-chrome"] workspace 2
assign [app_id="thunderbird"] workspace 3
assign [app_id="Cider"] workspace 4
assign [app_id=".*BoltLauncher.*"] workspace 5
assign [class="net-runelite.*"] workspace 5
assign [app_id="vesktop"] workspace 8
assign [app_id="Slack"] workspace 8
assign [app_id="org.telegram.desktop"] workspace 8
assign [class="Rocket.Chat"] workspace 8
# rules
for_window [class="net-runelite.*"] floating enable
no_focus [class="net-runelite.*"]

View File

@@ -0,0 +1,3 @@
bar {
swaybar_command waybar
}

View File

@@ -0,0 +1,20 @@
# deamon
exec swayidle -w
exec wlsunset -l 46.1 -L 14.5
exec rm -f $wobs \
&& mkfifo $wobs \
&& tail -f $wobs \
| wob
exec protonmail-bridge -n
# traditional "start when os starts" programs
exec $term
exec $browser
exec thunderbird
exec cider-2
exec bolt-launcher
exec vesktop
exec slack
exec Telegram
exec rocketchat-desktop
exec 1password --silent

View File

@@ -0,0 +1,2 @@
output HDMI-A-1 resolution 2560x1440 position 0,0
output DP-2 resolution 2560x1440 position 2560,0

View File

@@ -1,3 +1,3 @@
timeout 60 'swaylock -f' timeout 300 'swaylock -f'
timeout 300 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"'
before-sleep 'swaylock -f' before-sleep 'swaylock -f'

View File

@@ -1,29 +1,31 @@
image=~/.assets/lockscreen.png image=~/.assets/lockscreen.png
clock clock
datestr=%A, %d/%m/%y
indicator-radius=150 indicator-radius=150
indicator-thickness=7 indicator-thickness=7
indicator-idle-visible indicator-idle-visible
indicator-y-position=300 indicator-y-position=300
indicator-x-position=1200 indicator-x-position=1200
inside-color=ffffff inside-color=000000
text-color=000000 text-color=ffffff
ring-color=000000 ring-color=ffffff
inside-ver-color=ffffff inside-ver-color=000000
text-ver-color=ffffff text-ver-color=000000
ring-ver-color=000000 ring-ver-color=ffffff
inside-clear-color=ffffff inside-clear-color=000000
text-clear-color=000000 text-clear-color=ffffff
ring-clear-color=000000 ring-clear-color=ffffff
inside-wrong-color=ffffff inside-wrong-color=000000
text-wrong-color=000000 text-wrong-color=ffffff
ring-wrong-color=000000 ring-wrong-color=ffffff
key-hl-color=ffffff key-hl-color=000000
bs-hl-color=ffffff bs-hl-color=000000
caps-lock-key-hl-color=ffffff caps-lock-key-hl-color=000000
caps-lock-bs-hl-color=ffffff caps-lock-bs-hl-color=000000

214
waybar/config.jsonc Normal file
View File

@@ -0,0 +1,214 @@
[
{
"layer": "top",
"position": "top",
"height": 30,
"spacing": 1,
"margin": 0,
"modules-left": [
"sway/workspaces", "sway/mode"
],
"modules-center": [
"privacy",
"custom/ssh-login"
],
"modules-right": [
"custom/cider",
"pulseaudio",
"power-profiles-daemon",
"cpu",
"memory",
"temperature",
"backlight",
"battery",
"tray",
],
//
"sway/workspaces": {
"disable-scroll": true,
"format": "{icon}",
"format-icons": {
"1": "I",
"2": "II",
"3": "III",
"4": "IV",
"5": "V",
"6": "VI",
"7": "VII",
"8": "VIII",
"9": "IX",
"10": "X",
},
},
"sway/mode": {
"format": "{}",
},
"custom/cider": {
"format": "{}",
"return-type": "json",
"max-length": 18,
"interval": 1,
"tooltip": true,
"exec": "~/.config/bin/waybar-custom-cider.sh",
"on-click": "curl -s -X POST http://localhost:10767/api/v1/playback/playpause",
"on-click-right": "curl -s -X POST http://localhost:10767/api/v1/playback/next",
},
"privacy": {
"icon-spacing": 4,
"icon-size": 18,
"transition-duration": 250,
"modules": [
{
"type": "screenshare",
"tooltip": true,
"tooltip-icon-size": 24
},
{
"type": "audio-out",
"tooltip": true,
"tooltip-icon-size": 24
},
{
"type": "audio-in",
"tooltip": true,
"tooltip-icon-size": 24
}
],
"ignore-monitor": true,
"ignore": [
{
"type": "audio-in",
"name": "cava"
},
{
"type": "screenshare",
"name": "obs"
}
]
},
"tray": {
"icon-size": 18,
"spacing": 10,
},
"cpu": {
"format": "cpu:{usage}%",
"tooltip": false,
"on-click": "ghostty -e htop",
},
"memory": {
"interval": 10,
"format": "ram:{}%",
"tooltip-format": "total: {total:0.2f}GiB\nused: {used:0.2f}GiB\navailable: {avail:0.2f}GiB\nswap: {swapUsed:0.2f}/{swapTotal:0.2f}GiB",
"on-click": "ghostty -e htop",
},
"temperature": {
// "thermal-zone": 2,
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
"critical-threshold": 80,
// "format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C {icon}",
"format-icons": ["", "", ""],
"on-click": "ghostty -e s-tui",
"tooltip": false,
},
"backlight": {
// "device": "acpi_video1",
"format": "{percent}% {icon}",
"format-icons": ["", "", "", "", "", "", "", "", ""],
"tooltip": false,
},
"battery": {
"states": {
// "good": 95,
"warning": 30,
"critical": 15,
},
"format": "{capacity}% {icon}",
"format-full": "{capacity}% {icon}",
"format-charging": "{capacity}% ",
"format-plugged": "{capacity}% ",
"format-alt": "{time} {icon}",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": ["", "", "", "", ""],
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "",
"balanced": "",
"power-saver": "",
},
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "{essid} ({signalStrength}%) ",
"format-ethernet": "ipv4:{ipaddr}/{cidr}",
"tooltip-format": "{ifname} via {gwaddr} ",
"format-linked": "{ifname} (No IP) ",
"format-disconnected": "Disconnected ⚠",
"format-alt": "{ifname}: {ipaddr}/{cidr}",
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "vol:{volume}%/{format_source}",
"format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}%",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""],
},
"on-click": "pavucontrol",
},
"custom/power": {
"format": "⏻ ",
"tooltip": false,
"menu": "on-click",
"menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder
"menu-actions": {
"shutdown": "shutdown",
"reboot": "reboot",
"suspend": "systemctl suspend",
"hibernate": "systemctl hibernate",
},
},
"custom/ssh-login": {
"format": "{}",
"interval": 1,
// "exec-if": "who",
"exec": "who | awk '{ print $2 }'",
"on-click": "pkill -9 -t $(who | awk '{ print $2 }')",
},
},
{
"layer": "top",
"position": "bottom",
"height": 30,
"spacing": 1,
"margin": 0,
"modules-right": [
"network",
"clock",
],
"network": {
"format-ethernet": "{ipaddr}/{cidr}",
"format-disconnected": "disconnected"
},
"clock": {
"interval": 1,
"format": "{:%Y/%m/%d %H:%M:%S}",
"tooltip-format": "<big><tt>{calendar}</tt></big>",
},
}
]

297
waybar/style.css Normal file
View File

@@ -0,0 +1,297 @@
@define-color workspaces-color @gray;
@define-color workspaces-focused-bg @background-light;
@define-color workspaces-focused-fg @foreground;
@define-color workspaces-urgent-bg @red;
@define-color workspaces-urgent-fg @background;
@define-color cider-color @red;
@define-color clock-color @foreground;
@define-color pulseaudio-color @blue;
@define-color pulseaudio-muted-color @gray;
@define-color network-color @magenta;
@define-color network-disconnected-color @red;
@define-color cpu-color @orange;
@define-color memory-color @cyan;
@define-color temperature-color @yellow;
@define-color temperature-critical-color @red;
@define-color backlight-color @white;
@define-color battery-color @foreground;
@define-color battery-charging-color @green;
@define-color battery-warning-color @yellow;
@define-color battery-critical-color @red;
* {
font-family: "JetBrainsMono Nerd Font";
font-size: 14px;
font-weight: bold;
}
window#waybar {
color: #ffffff;
transition-property: background-color;
transition-duration: .5s;
}
window#waybar.hidden {
opacity: 0.2;
}
/* This targets every module */
#waybar .module {
background-color: #1e1e2e; /* Your desired module color */
}
/* Specific grouping (Optional: if you want modules to stick together in islands) */
.modules-left, .modules-center, .modules-right {}
button {
box-shadow: none;
border: none;
border-radius: 0;
}
button:hover {
background: inherit;
box-shadow: none;
}
/* -----------------------------------------------------------------------------
* Workspaces
* ----------------------------------------------------------------------------- */
#workspaces button {
padding: 0 8px;
background-color: transparent;
color: @workspaces-color;
margin: 0;
}
#workspaces button:hover {
background: @background-light;
color: @foreground;
box-shadow: none;
}
/* The "Neovim Buffer" Look:
Active workspace is lighter background + cream text.
No flashy underlines. */
#workspaces button.focused {
background-color: @background-light;
color: @workspaces-focused-fg;
box-shadow: none;
}
#workspaces button.urgent {
background-color: @workspaces-urgent-bg;
color: @workspaces-urgent-fg;
}
/* -----------------------------------------------------------------------------
* Modules
* ----------------------------------------------------------------------------- */
#mode,
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#tray,
#idle_inhibitor,
#scratchpad,
#power-profiles-daemon,
#mpd,
#custom-cider {
color: @clock-color;
font-weight: bold;
padding: 0 10px;
margin: 0 2px;
background-color: transparent;
border: none; /* Removed the underlines for a cleaner look */
}
#window,
#workspaces {
margin: 0 4px;
}
.modules-left > widget:first-child > #workspaces { margin-left: 0; }
.modules-right > widget:last-child > #workspaces { margin-right: 0; }
/* -----------------------------------------------------------------------------
* Module Specifics
* ----------------------------------------------------------------------------- */
#battery {
color: @battery-color;
}
#battery.charging, #battery.plugged {
color: @battery-charging-color;
}
#battery.warning:not(.charging) {
color: @battery-warning-color;
}
@keyframes blink {
to {
background-color: @red;
color: @background;
}
}
#battery.critical:not(.charging) {
color: @battery-critical-color;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
/* #cpu { */
/* color: @cpu-color; */
/* } */
/**/
/* #memory { */
/* color: @memory-color; */
/* } */
/**/
/* #disk { */
/* color: @yellow; */
/* } */
/**/
/* #backlight { */
/* color: @backlight-color; */
/* } */
/**/
/* #network { */
/* color: @network-color; */
/* } */
/**/
/* #network.disconnected { */
/* color: @network-disconnected-color; */
/* } */
/**/
/* #pulseaudio { */
/* color: @pulseaudio-color; */
/* } */
/**/
/* #pulseaudio.muted { */
/* color: @pulseaudio-muted-color; */
/* } */
/**/
/* #wireplumber { */
/* color: @foreground; */
/* } */
/**/
/* #wireplumber.muted { */
/* color: @red; */
/* } */
#custom-media {
color: @green;
min-width: 100px;
}
#temperature {
color: @temperature-color;
}
#temperature.critical {
color: @temperature-critical-color;
}
#tray {
background-color: @background-light;
border-radius: 4px; /* Slight roundness for the tray container */
padding: 0 8px;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
color: @red;
}
#idle_inhibitor {
color: @gray;
}
#idle_inhibitor.activated {
color: @foreground;
}
#mpd {
color: @green;
}
#mpd.disconnected {
color: @red;
}
#mpd.stopped {
color: @gray;
}
#mpd.paused {
color: @blue;
}
#language {
background: @background-light;
color: @foreground;
padding: 0 5px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state {
color: @foreground;
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state > label.locked {
color: @red;
}
#scratchpad {
background: transparent;
color: @gray;
}
#scratchpad.empty {
background-color: transparent;
}
#privacy {
padding: 0;
}
#privacy-item {
padding: 0 5px;
color: @foreground;
}
#privacy-item.screenshare {
color: @orange;
}
#privacy-item.audio-in {
color: @green;
}
#privacy-item.audio-out {
color: @blue;
}

View File

@@ -24,6 +24,7 @@ alias accenton="defaults write -g ApplePressAndHoldEnabled -bool true"
alias accentoff="defaults write -g ApplePressAndHoldEnabled -bool false" alias accentoff="defaults write -g ApplePressAndHoldEnabled -bool false"
# git # git
alias gpo="git push origin"
alias gros="git reset origin/$(git_current_branch) --soft" alias gros="git reset origin/$(git_current_branch) --soft"
alias gcan="git commit -v --amend --no-edit" alias gcan="git commit -v --amend --no-edit"
alias glogaa="git log --oneline --graph --all --pretty=format:\"%C(auto)%h %C(blue)(%aL/%cL)%C(auto)%(decorate) %s%Creset\"" alias glogaa="git log --oneline --graph --all --pretty=format:\"%C(auto)%h %C(blue)(%aL/%cL)%C(auto)%(decorate) %s%Creset\""