Add sway and waybar config

This commit is contained in:
2025-02-08 12:16:37 +01:00
parent d32667ba68
commit f4d0473652
6 changed files with 660 additions and 1 deletions

View File

@@ -6,7 +6,7 @@ blinking = "On"
shape = "Block"
[env]
TERM = "alacritty"
TERM= "xterm-256color"
[window]
decorations = "full"

View File

@@ -8,6 +8,12 @@
~/.config/alacritty:
create: true
path: alacritty
~/.config/sway:
create: true
path: sway
~/.config/waybar:
create: true
path: waybar
~/.config/nvim:
path: nvim
~/.zshrc:

220
sway/config Normal file
View File

@@ -0,0 +1,220 @@
# Read `man 5 sway` for a complete reference.
default_border pixel 2
client.focused #64107d #1e222a #eceff4 #c44be8 #64107d
# client.focused_inactive #88c0d0 #2e3440 #d8dee9 #4c566a #4c566a
# client.unfocused #88c0d0 #2e3440 #d8dee9 #4c566a #4c566a
# client.urgent #ebcb8b #ebcb8b #2e3440 #8fbcbb #ebcb8b
font pango:IosevkaFont Medium 11
### Variables
#
xwayland enable
# Logo key. Use Mod1 for Alt.
set $mod Mod4
# Home row direction keys, like vim
set $left h
set $down j
set $up k
set $right l
# Your preferred terminal emulator
set $term alacritty
# Your preferred application launcher
# Note: pass the final command to swaymsg so that the resulting window can be opened
# on the original workspace that the command was run on.
set $menu dmenu-wl_run
### Output configuration
#
# Default wallpaper (more resolutions are available in /usr/local/share/backgrounds/sway/)
output * bg ~/.config/sway/od_freebsd.png fill
# Example configuration:
#
output DP-3 resolution 3440x1440@165hz position 1920,0
#
# You can get the names of your outputs by running: swaymsg -t get_outputs
### Idle configuration
set $lock swaylock -f -c 000000 --clock
# 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.
exec swayidle -w \
timeout 300 'swaylock -f -c 000000' --clock \
timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
before-sleep 'swaylock -f -c 000000' --clock
### Input configuration
input * xkb_rules evdev
input * xkb_layout "be"
#
# Example configuration:
#
# input "2:14:SynPS/2_Synaptics_TouchPad" {
# dwt enabled
# tap enabled
# natural_scroll enabled
# middle_emulation enabled
# }
#
# You can get the names of your inputs by running: swaymsg -t get_inputs
# Read `man 5 sway-input` for more information about this section.
### Key bindings
#
# Basics:
#
# Start a terminal
bindsym $mod+t exec $term
# Kill focused window
bindsym $mod+q kill
# Start your launcher
bindsym $mod+p exec $menu
bindsym $mod+w exec firefox
bindsym $mod+i exec $term -e "nvim"
# 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
bindsym $mod+Shift+c reload
# Exit sway (logs you out of your Wayland session)
bindsym $mod+Shift+q exec sway exit
#
# 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
# Or use $mod+[up|down|left|right]
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
bindsym alt+tab focus next
# 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
# Ditto, with arrow keys
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:
#
bindsym $mod+tab workspace next
bindsym $mod+Shift+tab workspace prev
# Switch to workspace
bindsym $mod+ampersand workspace number 1
bindsym $mod+eacute workspace number 2
bindsym $mod+quotedbl workspace number 3
bindsym $mod+apostrophe workspace number 4
bindsym $mod+parenleft workspace number 5
bindsym $mod+section workspace number 6
bindsym $mod+egrave workspace number 7
bindsym $mod+exclam workspace number 8
bindsym $mod+ccedilla workspace number 9
bindsym $mod+agrave workspace number 10
# Move focused container to workspace
bindsym $mod+1 move container to workspace number 1
bindsym $mod+2 move container to workspace number 2
bindsym $mod+3 move container to workspace number 3
bindsym $mod+4 move container to workspace number 4
bindsym $mod+5 move container to workspace number 5
bindsym $mod+6 move container to workspace number 6
bindsym $mod+7 move container to workspace number 7
bindsym $mod+8 move container to workspace number 8
bindsym $mod+9 move container to workspace number 9
bindsym $mod+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
bindsym $mod+c split none
# Switch the current container between different layout styles
bindsym $mod+Shift+s layout stacking
bindsym $mod+Shift+t layout tabbed
bindsym $mod+Shift+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"
#
# Status Bar:
#
bar {
swaybar_command waybar
}
include /usr/local/etc/sway/config.d/*

BIN
sway/od_freebsd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

234
waybar/config Executable file
View File

@@ -0,0 +1,234 @@
{
"layer": "top",
"output": ["DP-3"],
// "mode": "dock",
"gtk-layer-shell": "true",
//"exclusive": "false",
//"passthrough": "true",
// "spacing": 0,
// "margin-top": 0,
// "margin-left": 16,
// "margin-right": 16,
// "margin-bottom": -7,
"height": 32,
"modules-left": ["custom/launcher","sway/workspaces","cpu","memory","disk","sway/window"],
"modules-center": [],
"modules-right": ["sway/mode","custom/kernel","pulseaudio","tray","clock","custom/power"],
"keyboard-state": {
"numlock": true,
"capslock": true,
"format": "{name} {icon}",
"format-icons": {
"locked": "",
"unlocked": ""
}
},
"wlr/taskbar": {
"format": "{icon} {app_id}",
"icon-size": 16,
"icon-theme": "Papirus",
"tooltip-format": "{title}",
"on-click": "activate",
"on-click-middle": "close",
"on-click-right": "minimize-raise",
"ignore-list": [
"Alacritty"
],
"app_ids-mapping": {
}
},
"sway/workspaces": {
"sort-by-name": true,
"on-click": "activate",
"format": "{icon}",
"format-icons": {
"1": "",
"2": "",
"3": "",
"4": "",
"5": "",
"6": "",
"7": "",
"8": "",
"9": "",
"10": "",
"urgent": "",
"active": "",
"focused": ""
},
"on-click": "activate"
// "sort-by-coordinates": true
},
"sway/window": {
"format": "{}",
"max-length": 45,
"rewrite": {
"(.*) - Mozilla Firefox": "🌎 $1",
"(.*) - zsh": "> [$1]",
"nvim(.*)": "Editing $1"
},
"tooltip": false
},
"temperature": {
"hwmon-path": "/sys/module/k10temp/drivers/pci:k10temp/0000:00:18.3/hwmon/hwmon3/temp1_input",
"format": " {temperatureC}°C",
"interval": 2,
"on-click" : "",
},
"sway/language": {
"format": "{short}  "
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
},
"tray": {
"spacing": 10,
"icon-size": 14,
},
"clock": {
// "timezone": "America/New_York",
"format": " {:%H:%M}",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "󰃭 {:%A, %B %d, %Y}",
"on-click" : "",
},
"backlight": {
// "device": "acpi_video1",
"format": " {percent}%",
},
"cpu": {
"format": "{usage}% ",
"tooltip": false,
"interval": 2,
"on-click" : "alacritty -e htop",
},
"memory": {
"format": "{}%  ",
"interval": 5,
"on-click" : "alacritty -e htop",
},
"custom/memory": {
"format": "{} ",
"interval": 5,
"exec": "$HOME/.local/bin/mem3",
"on-click" : "",
},
"disk": {
"interval": 30,
"format": "{percentage_used}% 󰋊",
"path": "/",
"on-click" : "",
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "",
"format-ethernet": " {ifname}: {ipaddr}/{cidr}",
"format-linked": "{ifname} (No IP) ",
"format-disconnected": "睊 Not connected",
"format-alt": "{ifname}: {ipaddr}/{cidr}",
"tooltip-format": "{essid} {signalStrength}%"
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-bluetooth": "{icon} {volume}% {format_source}",
"format-bluetooth-muted": "  {volume}% {format_source}",
"format-muted": " {format_source}",
"format-source": "",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"tooltip-format": "{desc}, {volume}%",
"on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
"on-click-right": "pactl set-source-mute @DEFAULT_SOURCE@ toggle",
"on-click-middle": "pavucontrol"
},
"custom/updater":{
"format": "<span font='14' rise='1000'></span> {}",
"exec": "checkupdates | wc -l",
"exec-if": "[[ $(checkupdates | wc -l) ]]",
"interval": 300,
"on-click": "kitty --class update -T update -e yay -Syu && notify-send -i '/usr/share/icons/hicolor/256x256/apps/kitty.png' 'Kitty Terminal' 'The system has been updated' "
},
"custom/power": {
"format": "",
"on-click": "wofi-power",
"on-click-right": "killall -9 wofi",
"tooltip": false
},
"custom/launcher": {
"format": "",
//"format": "異",
"on-click": "wofi --show drun",
"on-click-right": "killall -9 wofi",
"tooltip": false
},
"custom/dunst": {
"exec": "~/.config/waybar/scripts/dunst.sh",
"on-click": "dunstctl set-paused toggle",
"restart-interval": 1,
"format": "{}",
"return-type": "json",
"on-click" : "",
},
"custom/dot4": {
"format": " ",
"on-click" : "",
},
"custom/dot": {
"format": "",
"on-click" : "",
},
"custom/dot2": {
"format": " ",
"on-click" : "",
},
"custom/dot3": {
"format": " ",
"on-click" : "",
},
"custom/network": {
"format": "{}",
"exec": "$HOME/.local/bin/network-traffic.sh",
"on-click" : "",
},
"custom/gputmp": {
"format": "{}",
"exec": "$HOME/.local/bin/gputemp",
"interval": 2,
"on-click" : "",
},
"custom/uptime": {
"format": " {}",
"interval": 30,
"exec": "$HOME/.local/bin/upt2",
"on-click" : "",
},
"custom/kernel": {
"format": " {}",
"interval": 7200,
"exec": "uname -v | cut -d '-' -f1",
"on-click" : "",
},
"custom/eix": {
"format": "{}  ",
"interval": 3600, // every hour
"exec": "(eix --installed --upgrade --format '<installedversions:NAMEVERSION>') | wc -l",
"exec-if": "exit 0", // always run; consider advanced run conditions
"signal": 8,
"tooltip": false,
}
}

199
waybar/style.css Executable file
View File

@@ -0,0 +1,199 @@
* {
border: none;
font-family: JetBrains Mono Nerd Font,Weather Icons,sans-serif;
font-size: 14px;
font-weight: bold;
min-height: 0;
}
window#waybar {
background-color: transparent;
}
tooltip {
background: #1e222a; /* tooltip background */
/*border: 2px solid #c0caf5; */
border-radius: 6px; /* tooltip rounded corners */
box-shadow: 1px 1px 2px 1px rgba(0, 0, 0, 0.4);
}
/*window > box {
background: #1e222a;
border-radius: 12px;
min-width: 28px;
margin: 2px;
background-clip: border-box;
transition-property: background-color;
transition-duration: .5s;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.18), 0 1px 2px 1px rgba(0, 0, 0, 0.18), 0 2px 4px 2px rgba(0, 0, 0, 0.18);
}*/
#custom-memory,
#memory,
#cpu,
#custom-gputmp,
#custom-uptime,
#temperature,
#custom-weather,
#workspaces,
#custom-media,
#custom-fans,
#clock,
#network,
#custom-power,
#mode,
#pulseaudio,
#custom-kernel,
#custom-launcher,
#custom-network,
#window,
#custom-window,
#custom-eix,
#custom-update,
#disk,
#tray {
background-color: #1e222a;
padding: 0 6px;
margin: 4px 4px 4px 4px;
border-radius: 6px;
box-shadow: 1px 1px 2px 1px rgba(0, 0, 0, 0.4);
background-clip: padding-box;
}
#pulseaudio {
color: #efbd5d;
}
#pulseaudio.muted {
background-color: #e06c75;
}
#custom-gputmp {
color: #41a7fc;
}
#custom-memory {
color: #c75ae8;
}
#memory {
color: #8bcd5b;
}
#cpu {
color: #efbd5d;
}
#custom-uptime {
color: #34bfd0;
}
#temperature {
color: #c75ae8;
}
#temperature.critical {
background-color: #e06c75;
color: #1f1f1f;
}
#custom-kernel {
color: #41a7fc;
}
#custom-weather {
color: #34bfd0;
}
#disk {
color: #34bfd0;
}
#custom-network {
color: #e06c75;
}
#workspaces{
}
#workspaces button {
padding: 1px 0px;
color: #41a7fc;
transition-property: background-color; /* smooth transition for workspace module */
transition-duration: .1s;
}
#workspaces button:hover {
background-color: rgba(36, 36, 36, 0.9);
}
#workspaces button.active {
color: #c75ae8;
}
#workspaces button.focused {
color: #c75ae8;
}
#workspaces button.urgent {
color: #e06c75;
}
#clock {
color: #41a7fc;
}
#mode {
color: #0fa4bf;
}
#window {
color: #DDDAEC;
}
#custom-power {
color: #f65866;
}
#custom-launcher {
font-size: 13px;
color: #ADA8D0;
}
#custom-eix {
color: #2ec27e;
}
#custom-update {
color: #2ec27e;
}
#network {
color: #c75ae8;
}
#network.disconnected {
color: #1f1f1f;
background-color: #e06c75;
}
@keyframes gradient {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}
@keyframes blink {
to {
color: #e06c75;
background-color: #1f1f1f;
}
}