From f38942647847c70efea46dc6c255dd8d6816ecd1 Mon Sep 17 00:00:00 2001 From: nnduc Date: Wed, 13 Nov 2024 12:47:15 +0700 Subject: [PATCH] Added configs for sway (sway-i3) and waybar --- sway/config | 235 +++++++++++++++++++++++++++++++++++++++++++++++ waybar/config | 55 +++++++++++ waybar/style.css | 182 ++++++++++++++++++++++++++++++++++++ 3 files changed, 472 insertions(+) create mode 100644 sway/config create mode 100644 waybar/config create mode 100644 waybar/style.css diff --git a/sway/config b/sway/config new file mode 100644 index 0000000..371fd2c --- /dev/null +++ b/sway/config @@ -0,0 +1,235 @@ +# Default config for sway +# +# Copy this to ~/.config/sway/config and edit it to your liking. +# +# Read `man 5 sway` for a complete reference. + +### Variables +# +# Logo key. Use Mod1 for Alt. +set $mod Mod1 +# 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 wofi --show drun + +### Output configuration +# +# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) +output * bg /data/sync/images/wallpapers/stonebeach.jpg fill +# +# Example configuration: +# +output HDMI-A-1 resolution 1920x1080@120hz position 1920,0 +# +# You can get the names of your outputs by running: swaymsg -t get_outputs + +### Idle configuration +# +# Example configuration: +# + exec swayidle -w \ + timeout 900 'swaylock -f -c 000000' \ + timeout 1800 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ + before-sleep 'swaylock -f -c 000000' +# +# 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 "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. + +exec --no-startup-id fcitx5 +exec --no-startup-id blueman-applet +exec --no-startup-id feh --bg-fill '/data/sync/images/wallpapers/stonebeach.jpg' +exec --no-startup-id owncloud +exec --no-startup-id waybar +exec --no-startup-id nohup gentoo-pipewire-launcher restart >/dev/null 2>&1 & +exec --no-startup-id xset m 1/1 0 + + +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% && $refresh_i3status +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% && $refresh_i3status +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status +bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status + +# Media player key bindings (need media-sound/playerctl for playerctl.) +bindsym XF86AudioPlay exec playerctl play +bindsym XF86AudioPause exec playerctl pause +bindsym XF86AudioNext exec playerctl next +bindsym XF86AudioPrev exec playerctl previous + +# Brightness key bindings +bindsym XF86MonBrightnessUp exec brightnessctl set +5% +bindsym XF86MonBrightnessDown exec brightnessctl set 5%- +### Key bindings +# +# Basics: +# + # Start a terminal + bindsym $mod+Return exec $term + + # Kill focused window + bindsym $mod+Shift+q kill + + # Start your launcher + bindsym $mod+d exec $menu + + # 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+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+e exec swaymsg 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 + + # 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: +# + # 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" + +# +# Status Bar: +# +# Read `man 5 sway-bar` for more information about this section. +bar { +} + +for_window [class="^.*"] border pixel 1 + +#floating +for_window [class="Signal"] floating enable +for_window [class="Gajim"] floating enable +include /etc/sway/config.d/* diff --git a/waybar/config b/waybar/config new file mode 100644 index 0000000..63235d1 --- /dev/null +++ b/waybar/config @@ -0,0 +1,55 @@ +{ + // "height": 40, // Waybar height (to be removed for auto height) + "spacing": 4, // Gaps between modules (4px) + // Choose the order of the modules + "modules-left": ["sway/workspaces", "sway/window"], + "modules-center": ["clock"], + "modules-right": ["custom/tiramisu", "network", "wireplumber", "tray"], + // Modules configuration + // "hyprland/workspaces": { + // "disable-scroll": true, + // "all-outputs": true, + // "warp-on-scroll": false, + // "format": "{name}", + // }, + "sway/workspaces": { + "format": "{icon}", + }, + "tray": { + "icon-size": 21, + "spacing": 10 + }, + "clock": { + // "timezone": "America/New_York", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%Y-%m-%d %H:%M}" + }, + "network": { + "format-wifi": " {icon}", + "format-ethernet": "  ", + "format-disconnected": "󰌙", + "format-icons": [ + "󰤯 ", + "󰤟 ", + "󰤢 ", + "󰤢 ", + "󰤨 " + ], + "on-click": "alacritty -e nmtui" + }, + "wireplumber": { + "format": "{volume}% {icon}", + "format-muted": "{node_name} off", + "on-click-right": "pactl set-default-sink $((s=$(pactl list short sinks | sed -e 's:^[0-9]\\+\\s\\+::' | grep -oP '^\\S+'); echo \"$s\"; echo \"$s\") | fgrep $(pactl get-default-sink) -m 1 -A 1 | tail -1)", + "on-click": "pavucontrol", + "max-volume": 100, + "scroll-step": 2, + "format-icons": ["", ""], + }, + + "custom/tiramisu": { + "format": "{} ", + "exec": "sh ~/.config/polybar/scripts/polytiramisu.sh", + }, +} + diff --git a/waybar/style.css b/waybar/style.css new file mode 100644 index 0000000..37d9ab3 --- /dev/null +++ b/waybar/style.css @@ -0,0 +1,182 @@ +/*base background color*/ +@define-color bg_main rgba(25, 25, 25, 0.65); +@define-color bg_main_tooltip rgba(0, 0, 0, 0.7); + + +/*base background color of selections */ +@define-color bg_hover rgba(200, 200, 200, 0.3); +/*base background color of active elements */ +@define-color bg_active rgba(255, 255, 255, 1); + +/*base border color*/ +@define-color border_main rgba(255, 255, 255, 0.2); + +/*text color for entries, views and content in general */ +@define-color content_main white; +/*text color for entries that are unselected */ +@define-color content_inactive rgba(255, 255, 255, 0.69); + +* { + text-shadow: none; + box-shadow: none; + border: none; + border-radius: 0; + font-family: "Hack Nerd Font" ; + font-weight: 400; + font-size: 16px; + + +} + +window#waybar { + background: @bg_main; + border-top: 1px solid @border_main; + color: @content_main; +} + +tooltip { + background: @bg_main_tooltip; + border-radius: 5px; + border-width: 1px; + border-style: solid; + border-color: @border_main; +} +tooltip label{ + color: @content_main; +} + +#custom-os_button { + font-family: "JetBrainsMono Nerd Font"; + font-size: 24px; + padding-left: 12px; + padding-right: 20px; + transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); +} +#custom-os_button:hover { + background: @bg_hover; + color: @content_main; +} + +#workspaces { + color: transparent; + margin-right: 1.5px; + margin-left: 1.5px; +} +#workspaces button { + padding: 3px; + color: @content_inactive; + transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); +} +#workspaces button.active { + color: @content_main; + border-bottom: 3px solid white; +} +#workspaces button.focused { + color: @bg_active; +} +#workspaces button.urgent { + background: rgba(255, 200, 0, 0.35); + border-bottom: 3px dashed @warning_color; + color: @warning_color; +} +#workspaces button:hover { + background: @bg_hover; + color: @content_main; +} + +#taskbar { +} + +#taskbar button { + min-width: 130px; + border-bottom: 3px solid rgba(255, 255, 255, 0.3); + margin-left: 2px; + margin-right: 2px; + padding-left: 8px; + padding-right: 8px; + color: white; + transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); +} + +#taskbar button.active { + border-bottom: 3px solid white; + background: @bg_active; +} + +#taskbar button:hover { + border-bottom: 3px solid white; + background: @bg_hover; + color: @content_main; +} + +#cpu, #disk, #memory { + padding:3px; +} + +#temperature { + color: transparent; + font-size: 0px; + transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); +} +#temperature.critical { + padding-right: 3px; + color: @warning_color; + font-size: initial; + border-bottom: 3px dashed @warning_color; + transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); +} + +#window { + border-radius: 10px; + margin-left: 20px; + margin-right: 20px; +} + +#tray{ + margin-left: 5px; + margin-right: 5px; +} +#tray > .passive { + border-bottom: none; +} +/*#tray > .active {*/ + /*border-bottom: 3px solid white;*/ +/*}*/ +#tray > .needs-attention { + border-bottom: 3px solid @warning_color; +} +#tray > widget { + transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); +} +#tray > widget:hover { + background: @bg_hover; +} + +#pulseaudio { + font-family: "JetBrainsMono Nerd Font"; + padding-left: 3px; + padding-right: 3px; + transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); +} +#pulseaudio:hover { + background: @bg_hover; +} + +#network { + padding-left: 3px; + padding-right: 3px; +} + +#language { + padding-left: 5px; + padding-right: 5px; +} + +#clock { + padding-right: 5px; + padding-left: 5px; + transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); +} +#clock:hover { + background: @bg_hover; +}