From 9568a1a3c25c613cd9883a1d50a4bdd37b574458 Mon Sep 17 00:00:00 2001 From: Bertrand Benjamin Date: Sat, 20 Nov 2021 20:52:12 +0100 Subject: [PATCH] Feat: init sway config --- sway/.config/rofi/config.rasi | 17 ++ sway/.config/sway/config | 252 ++++++++++++++++++++++ sway/.config/sway/config.d/misc_autostart | 5 + sway/.config/waybar/config | 57 +++++ sway/.config/waybar/gruvbox.css | 23 ++ sway/.config/waybar/style.css | 70 ++++++ 6 files changed, 424 insertions(+) create mode 100644 sway/.config/rofi/config.rasi create mode 100644 sway/.config/sway/config create mode 100644 sway/.config/sway/config.d/misc_autostart create mode 100644 sway/.config/waybar/config create mode 100644 sway/.config/waybar/gruvbox.css create mode 100644 sway/.config/waybar/style.css diff --git a/sway/.config/rofi/config.rasi b/sway/.config/rofi/config.rasi new file mode 100644 index 0000000..c3bd391 --- /dev/null +++ b/sway/.config/rofi/config.rasi @@ -0,0 +1,17 @@ + +configuration { + terminal: "kitty"; + modi: "combi,window,drun"; + combi-modi: "drun,window"; + font: "Noto Sans Bold 10"; + show-icons: true; + icon-theme: "Tela circle dark"; + combi-hide-mode-prefix: true; + drun-show-actions: true; + drun-display-format: "{name}"; + disable-history: false; + fullscreen: false; + hide-scrollbar: true; + sidebar-mode: false; + auto-select: false; +} diff --git a/sway/.config/sway/config b/sway/.config/sway/config new file mode 100644 index 0000000..f4633c7 --- /dev/null +++ b/sway/.config/sway/config @@ -0,0 +1,252 @@ +# 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 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 urxvt +# 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 rofi -show drun + +set $laptopScreen eDP-1 + +### Output configuration +# +# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) +output * bg ~/Images/Wallpapers/Pteridium.jpg 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 \ +# timeout 300 'swaylock -f -c 000000' \ +# timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms 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 + + +input type:keyboard { + xkb_layout "fr" + xkb_variant "" +} +input type:touchpad { + natural_scroll enabled + tap enabled +} + +# +# 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+Return exec $term + + # Kill focused window + bindsym $mod+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' +# +# 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: +# +set $ws1 1:  +set $ws2 2:  +set $ws3 3:  +set $ws4 4:  +set $ws5 5:  +set $ws6 6:  +set $ws7 7:  + +bindsym $mod+ampersand workspace $ws1 +bindsym $mod+eacute workspace $ws2 +bindsym $mod+quotedbl workspace $ws3 +bindsym $mod+apostrophe workspace $ws4 +bindsym $mod+parenleft workspace $ws5 +bindsym $mod+minus workspace $ws6 +bindsym $mod+egrave workspace $ws7 +bindsym $mod+underscore workspace 8 +bindsym $mod+ccedilla workspace 9 +bindsym $mod+agrave workspace 10 + +bindsym $mod+1 move container to workspace $ws1 +bindsym $mod+2 move container to workspace $ws2 +bindsym $mod+3 move container to workspace $ws3 +bindsym $mod+4 move container to workspace $ws4 +bindsym $mod+5 move container to workspace $ws5 +bindsym $mod+6 move container to workspace $ws6 +bindsym $mod+7 move container to workspace $ws7 +bindsym $mod+8 move container to workspace 8 +bindsym $mod+9 move container to workspace 9 +# +# 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" + +# +# Audio +# + +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle +bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle + +# +# Brightness +# +bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set 5%- +bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set 5%+ + + +# +# Decoration +# + +default_border pixel 1 +# class border backgr. text indicator child_border +client.focused #d65d0e #be5046 #ffffff #be5046 #be5046 + +# +# Status Bar: +# +# Read `man 5 sway-bar` for more information about this section. +bar { + position top + output $laptopScreen + swaybar_command waybar +} + +# include /etc/sway/config.d/* +include ~/.config/sway/config.d/* diff --git a/sway/.config/sway/config.d/misc_autostart b/sway/.config/sway/config.d/misc_autostart new file mode 100644 index 0000000..1820987 --- /dev/null +++ b/sway/.config/sway/config.d/misc_autostart @@ -0,0 +1,5 @@ +exec_always /usr/libexec/goa-daemon --replace +exec_always blueman-applet +exec_always /usr/bin/nm-applet --indicator +exec_always nextcloud + diff --git a/sway/.config/waybar/config b/sway/.config/waybar/config new file mode 100644 index 0000000..e2a2690 --- /dev/null +++ b/sway/.config/waybar/config @@ -0,0 +1,57 @@ +{ + "layer": "top", + "output": "eDP-1", + "modules-left": ["sway/workspaces", "sway/mode"], + "modules-center": ["sway/window"], + "modules-right": ["pulseaudio", "battery", "tray", "clock"], + "sway/window": { + "max-length": 50 + }, + "sway/workspaces": { + + }, + "battery": { + "states": { + // "good": 95, + "warning": 20, + "critical": 10 + }, + "format": "{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": ["", "", "", "", ""] + }, + "clock": { + "format": "{:%a, %d. %b %H:%M}" + }, + "network": { + "format-wifi": "{essid} ({signalStrength}%) ", + "format-ethernet": "{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": "{volume}% {icon} {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" + }, +} diff --git a/sway/.config/waybar/gruvbox.css b/sway/.config/waybar/gruvbox.css new file mode 100644 index 0000000..28a9d8a --- /dev/null +++ b/sway/.config/waybar/gruvbox.css @@ -0,0 +1,23 @@ +@define-color background #282828; +@define-color foreground #ebdbb2; +@define-color black #282828; +@define-color red #cc241d; +@define-color green #98971a; +@define-color yellow #d79921; +@define-color blue #458588; +@define-color magenta #b16286; +@define-color cyan #689d6a; +@define-color white #a89984; +@define-color aqua #689d6a; +@define-color orange #d65d0e; + +@define-color magenta_b #d3869b; +@define-color cyan_b #8ec07c; +@define-color yellow_b #fabd2f; +@define-color white_b #ebdbb2; +@define-color black_b #928374; +@define-color red_b #fb4934; +@define-color green_b #b8bb26; +@define-color blue_b #83a598; +@define-color aqua_b #8ec07c; +@define-color orange_b #fe8010; diff --git a/sway/.config/waybar/style.css b/sway/.config/waybar/style.css new file mode 100644 index 0000000..fe91a98 --- /dev/null +++ b/sway/.config/waybar/style.css @@ -0,0 +1,70 @@ +* { + border: none; + border-radius: 0; + font-family: Droid Nerd Font Mono; + font-size: 13px; + min-height: 0; +} + +@import "gruvbox.css"; + +window#waybar { + background: @background; + color: @white_b; +} + +#workspaces button { + padding: 0 2px; + background: transparent; + color: @white_b; + border-bottom: 3px solid transparent; +} + +#workspaces button.focused { + background: @orange; + border-bottom: 3px solid @orange_b; +} + +#mode, #clock, #battery { + padding: 0 10px; + margin: 0 5px; +} + +#mode { + background: @red; + border-bottom: 3px solid @white_b; +} + +#clock { + color: @white_b; +} + +#battery { + color: @white_b; +} + +#battery.charging { + color: @gree; +} + +@keyframes blink { + to { + background-color: @white_b; + color: @background; + } +} + +#idle_inhibitor, #pulseaudio, #custom-openvpn, #network, #cpu, #memory, #temperature, #backlight, #battery, #clock, #tray { + padding: 0 6px; + margin: 0 3px; +} + +#battery.warning:not(.charging) { + background: @red; + color: @white_b; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +}