From 3b6d7cac88073849148ceb1aedd59eddad3449ff Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Wed, 24 Mar 2021 08:23:52 -0500 Subject: [PATCH] Adding sway, waybar, wofi and other things --- qutebrowser/config.py | 4 +- sway/config | 221 ++++++++++++++++++++++++++++++++++++++++++ waybar/config | 95 +++++++++--------- waybar/style.css | 171 ++++++++++++++++++++++++++++++++ wofi/config | 2 + 5 files changed, 444 insertions(+), 49 deletions(-) create mode 100644 sway/config create mode 100644 waybar/style.css create mode 100644 wofi/config diff --git a/qutebrowser/config.py b/qutebrowser/config.py index 0b69cd8..93db9ec 100644 --- a/qutebrowser/config.py +++ b/qutebrowser/config.py @@ -1765,7 +1765,7 @@ c.qt.highdpi = True ## Enable smooth scrolling for web pages. Note smooth scrolling does not ## work with the `:scroll-px` command. ## Type: Bool -c.scrolling.smooth = False +c.scrolling.smooth = False ## When to find text on a page case-insensitively. ## Type: IgnoreCase @@ -1873,7 +1873,7 @@ c.statusbar.show = "always" ## - tabs: Current active tab, e.g. `2`. ## - keypress: Display pressed keys when composing a vi command. ## - progress: Progress bar for the current page loading. -# c.statusbar.widgets = ['keypress', 'url', 'scroll', 'history', 'tabs', 'progress'] +c.statusbar.widgets = ['keypress', 'url', 'scroll', 'history', 'progress'] ## Open new tabs (middleclick/ctrl+click) in the background. ## Type: Bool diff --git a/sway/config b/sway/config new file mode 100644 index 0000000..353b346 --- /dev/null +++ b/sway/config @@ -0,0 +1,221 @@ +# Default config for sway +# +### Basic Variables +set $mod Mod4 + +set $left h +set $down j +set $up k +set $right l + +set $term alacritty +set $menu wofi --show drun | xargs swaymsg exec -- + +### Output configuration +output * bg ~/Pictures/wallpapers/RoyalKing.png fill +output eDP-1 pos 0 0 +output DP-3 pos 3000 0 + +### 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 +# Keyboard +input type:keyboard { + repeat_delay 180 + repeat_rate 200 +} +# Mouse +input type:touchpad { + tap enabled + tap_button_map lrm + natural_scroll enabled + dwt enabled + pointer_accel 0.3 +} + +### Style +gaps outer 10 +gaps inner 10 +smart_gaps on + +default_border none + +font pango: VictorMono Nerd Font 10 +titlebar_border_thickness 1 +### Key bindings +# +# Basics: +# + # Start a terminal + bindsym $mod+Return exec $term + + # Kill focused window + bindsym $mod+c kill + + # Start your launcher + bindsym Menu 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+Ctrl+r reload + + # Exit sway (logs you out of your Wayland session) + bindsym $mod+Ctrl+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: +# + # 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" + +### Audio + + +### Launchers +set $mode_launcher Launcher +bindsym $mod+o mode "$mode_launcher" + +mode "$mode_launcher" { + bindsym e exec emacsclient -c & + bindsym b exec qutebrowser + bindsym Return mode "default" + bindsym Escape mode "default" +} + +# +# Status Bar: +# +# Read `man 5 sway-bar` for more information about this section. +bar { + swaybar_command waybar + workspace_buttons yes +} + +exec emacs --daemon +exec mako + +xwayland enable +include /etc/sway/config.d/* \ No newline at end of file diff --git a/waybar/config b/waybar/config index 97f2fe0..8411b2c 100644 --- a/waybar/config +++ b/waybar/config @@ -1,57 +1,33 @@ { // "layer": "top", // Waybar at top layer - // "position": "bottom", // Waybar position (top|bottom|left|right) - "height": 30, // Waybar height (to be removed for auto height) + "position": "bottom", // Waybar position (top|bottom|left|right) + "height": 20, // Waybar height (to be removed for auto height) // "width": 1280, // Waybar width // Choose the order of the modules - "modules-left": [], + "modules-left": ["sway/workspaces", "sway/mode", "sway/window"], "modules-center": ["clock"], "modules-right": ["pulseaudio", "network", "cpu", "memory", "temperature", "battery", "battery#bat2", "tray"], + "margin-top": 5, + "margin-bottom": 5, // Modules configuration - // "sway/workspaces": { - // "disable-scroll": true, - // "all-outputs": true, - // "format": "{name}: {icon}", - // "format-icons": { - // "1": "", - // "2": "", - // "3": "", - // "4": "", - // "5": "", - // "urgent": "", - // "focused": "", - // "default": "" - // } - // }, + "sway/workspaces": { + "disable-scroll": true, + "all-outputs": true, + "format": "{icon}", + "format-icons": { + "1": "", + "2": "", + "3": "", + "4": "", + "5": "", + "urgent": "", + "focused": "", + "default": "" + } + }, "sway/mode": { "format": "{}" }, - "mpd": { - "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ ", - "format-disconnected": "Disconnected ", - "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", - "unknown-tag": "N/A", - "interval": 2, - "consume-icons": { - "on": " " - }, - "random-icons": { - "off": " ", - "on": " " - }, - "repeat-icons": { - "on": " " - }, - "single-icons": { - "on": "1 " - }, - "state-icons": { - "paused": "", - "playing": "" - }, - "tooltip-format": "MPD (connected)", - "tooltip-format-disconnected": "MPD (disconnected)" - }, "idle_inhibitor": { "format": "{icon}", "format-icons": { @@ -74,7 +50,7 @@ "tooltip": false }, "memory": { - "format": "{}% " + "format": "{}% " }, "temperature": { // "thermal-zone": 2, @@ -104,12 +80,24 @@ "format-icons": ["", "", "", "", ""] }, "battery#bat2": { - "bat": "BAT2" + "bat": "BAT2", + "states": { + // "good": 95, + "warning": 30, + "critical": 15 + }, + "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": ["", "", "", "", ""] }, "network": { // "interface": "wlp2*", // (Optional) To force the use of this interface "format-wifi": "{essid} ({signalStrength}%) ", - "format-ethernet": "{ifname}: {ipaddr}/{cidr} ", + "format-ethernet": "{ifname}: {ipaddr} ", "format-linked": "{ifname} (No IP) ", "format-disconnected": "Disconnected ⚠", "format-alt": "{ifname}: {ipaddr}/{cidr}" @@ -144,5 +132,18 @@ "escape": true, "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name + }, + "wlr/taskbar": { + "format": "{icon} {title}", + "icon-size": 20, + "icon-theme": "Papirus-Dark", + "tooltip-format": "{title}", + "max-length": 30, + "on-click": "activate", + "on-click-middle": "close" + }, + "sway/window": { + "format": " {} ", + "max-length": 60, } } diff --git a/waybar/style.css b/waybar/style.css new file mode 100644 index 0000000..07cb281 --- /dev/null +++ b/waybar/style.css @@ -0,0 +1,171 @@ +@define-color base00 #282a36; +@define-color base01 #34353e; +@define-color base02 #43454f; +@define-color base03 #78787e; +@define-color base04 #a5a5a9; +@define-color base05 #e2e4e5; +@define-color base06 #eff0eb; +@define-color base07 #f1f1f0; +@define-color base08 #ff5c57; +@define-color base09 #ff9f43; +@define-color base0A #f3f99d; +@define-color base0B #5af78e; +@define-color base0C #9aedfe; +@define-color base0D #57c7ff; +@define-color base0E #ff6ac1; +@define-color base0F #b2643c; +* { + border: none; + border-radius: 0; + font-family: VictorMono Nerd Font; + font-size: 12px; + font-weight: bold; + box-shadow: none; + text-shadow: none; + transition-duration: 0s; +} + + +window { + color: @base05; + background: rgba(1, 1, 1, 0.0); +} + +window#waybar.solo { + background: rgba(1, 1, 1, 0.40); +} + +#workspaces { + border-radius: 20px; + margin-left: 10px; + padding-right: 10px; + background: rgba(40, 42, 54, 0.85); + transition: none; +} + +#workspaces button { + transition: none; + color: rgba(217, 216, 216, 0.4); + background: transparent; +} + +#workspaces button.visible { + color: rgba(217, 216, 216, 1); +} + +#workspaces button.focused { + color: #9aedfe; +} + +#workspaces button:hover { + transition: none; + box-shadow: inherit; + text-shadow: inherit; + color: #ff79c6; +} + +#workspaces button.urgent { + color: rgba(238, 46, 36, 1); +} + +#mode, #battery, #cpu, #memory, #network, #pulseaudio, #idle_inhibitor, #backlight, #custom-storage, #custom-spotify, #custom-weather, #custom-mail { + margin: 0px 6px 0px 5px; + min-width: 25px; +} + +#clock { + margin-left: 2px; + margin-right: 2px; + padding-left: 10px; + padding-right: 10px; + border-radius: 20px; + transition: none; + color: #4d4d4d; + background: rgba(107, 142, 35, 0.85); +} + +#backlight { + margin-left: 2px; + margin-right: 2px; + padding-left: 5px; + padding-right: 5px; + border-radius: 20px; + transition: none; + color: #4d4d4d; + background: rgba(188, 143, 143, 0.85); +} + +#battery.warning { + color: rgba(255, 210, 4, 1); +} + +#battery.critical { + color: rgba(238, 46, 36, 1); +} + +#battery.charging { + color: rgba(217, 216, 216, 1); +} + +#pulseaudio { + margin-left: 2px; + margin-right: 2px; + padding-left: 10px; + padding-right: 10px; + border-radius: 20px; + transition: none; + color: #4d4d4d; + background: rgba(189, 183, 107, 0.85); +} + +#network { + margin-left: 2px; + margin-right: 2px; + padding-left: 10px; + padding-right: 14px; + border-radius: 20px; + transition: none; + color: #4d4d4d; + background: rgba(189, 183, 107, 0.85); +} + +#cpu { + margin-left: 2px; + margin-right: 2px; + padding-left: 10px; + padding-right: 10px; + border-radius: 20px; + transition: none; + color: #4d4d4d; + background: rgba(205, 92, 92, 0.85); +} + +#battery { + margin-left: 2px; + margin-right: 2px; + padding-left: 10px; + padding-right: 18px; + border-radius: 20px; + transition: none; + color: #4d4d4d; + background: rgba(176, 196, 222, 0.85); +} + +#battery.bat2 { + margin-right: 10px; +} + +#memory { + margin-left: 2px; + margin-right: 2px; + padding-left: 10px; + padding-right: 10px; + border-radius: 20px; + transition: none; + color: #4d4d4d; + background: rgba(222, 184, 135, 0.85); +} + +#tray { + margin-right: 10px; +} diff --git a/wofi/config b/wofi/config new file mode 100644 index 0000000..91cedf6 --- /dev/null +++ b/wofi/config @@ -0,0 +1,2 @@ +width=60% +height=50% \ No newline at end of file