From be4e2ca74996967bddd0f4b5ebbf7161d0306f5b Mon Sep 17 00:00:00 2001 From: Nemo <commits@captnemo.in> Date: Wed, 10 Apr 2024 15:10:41 +0530 Subject: [PATCH] sway --- files/i3/.i3/config | 46 ++++++++++++++++++++++++++++++++++++---------- files/i3/.config/dunst/dunstrc | 25 +++++++++++++++++++++++++ files/i3/.config/i3blocks/config | 15 ++++++++++++--- files/i3/.config/sway/config | 330 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ files/i3/.config/sway/outputs | 20 ++++++++++++++++++++ 5 files changed, 419 insertions(+), 17 deletions(-) diff --git a/files/i3/.i3/config b/files/i3/.i3/config index ab35d5e..911a276 100644 --- a/files/i3/.i3/config +++ a/files/i3/.i3/config @@ -26,6 +26,9 @@ # Launch the VPN app, but turn it off exec riseup-vpn-git --start-vpn off +# Launch easyeffects +exec easyeffects --hide-window + ## Press Ctrl+C twice to search a word ## Dictionaries are kept in ~/Documents/Dictionaries exec --no-startup-id goldendict @@ -71,8 +74,8 @@ floating_modifier $mod # start a terminal -bindsym $mod+Return split v; exec alacritty -bindsym $mod+Shift+Return split h; exec alacritty +bindsym $mod+Return split v; exec foot +bindsym $mod+Shift+Return split h; exec foot bindsym $mod+Shift+f exec killall firefox; # Snippy for quick text @@ -86,7 +89,7 @@ bindsym $mod+Hyper_L exec rofi -show drun -icon-theme "Papirus" -show-icons -font "Input Sans 12" bindsym --release Hyper_L exec rofi -show window -icon-theme "Papirus" -show-icons -font "Input Sans 12" -bindsym $mod+F8 exec pcmanfm --role=floating +bindsym $mod+F8 exec pcmanfm # kill focused window bindsym $mod+Shift+q kill @@ -101,16 +104,13 @@ # Lock Related ## Setup a new lock screen on every boot -exec "sh -c 'sleep 5; multilockscreen --fx dim -u /home/nemo/Pictures/wallpapers/; multilockscreen -w'" +exec "betterlockscreen --fx dim -u /home/nemo/Pictures/wallpapers/" ## Run xss-lock for handling suspend + session locks -exec xss-lock -l -- multilockscreen -l dim +exec xss-lock -l -- betterlockscreen -l dim ## And manual locking as well bindsym $mod+l exec loginctl lock-session - -# For starting applications with a .desktop entry -bindsym $mod+shift+d exec notify-send -u low "Use Mod+Caps_Lock instead" # Print screen bindsym Print exec flameshot gui @@ -232,12 +232,29 @@ # https://github.com/vivien/i3blocks-contrib/tree/master/volume#usage -bindsym XF86AudioRaiseVolume exec amixer -q -D pulse sset Master 5%+ && pkill -RTMIN+10 i3blocks -bindsym XF86AudioLowerVolume exec amixer -q -D pulse sset Master 5%- && pkill -RTMIN+10 i3blocks -bindsym XF86AudioMute exec amixer -q -D pulse sset Master toggle && pkill -RTMIN+10 i3blocks +# Review the lines below and append to ~/.config/i3/config + +## Volume control + +# Path to volume control, without trailing slash +set $volumepath ~/i3-volume +# Amount to increase/decrease volume as a percentage +set $volumestep 5 + +# pulseaudio-utils settings +# +# Symbolic name for sink (numeric index not supported) +# Recommended: comment out this setting and omit the -s option to use default sink +# List sink names: pacmd list-sinks | awk -F "[<>]" '/^\s+name: <.*>/{print $2}' +#set $sinkname alsa_output.pci-0000_00_1b.0.analog-stereo + +# Pulse Audio controls +bindsym XF86AudioRaiseVolume exec --no-startup-id pamixer --increase 2 && notify-send `pamixer --get-volume` -t 200 +bindsym XF86AudioLowerVolume exec --no-startup-id pamixer --decrease 2 && notify-send `pamixer --get-volume` -t 200 +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle + # Window assignments -for_window [class="Pcmanfm"] floating enable resize 860 800 for_window [class="Wine"] floating enable for_window [class="Blueberry.py"] floating enable for_window [class="Transmission-gtk"] floating enable @@ -259,7 +276,7 @@ exec --no-startup-id xpad # Sticky math app exec --no-startup-id GTK_THEME=Ambiance com.github.parnold-x.nasc -#bindsym $mod+F1 [class="xpad" instance="xpad"] scratchpad show +bindsym $mod+F1 [class="xpad" instance="xpad"] scratchpad show # Only for Nasc bindsym $mod+F3 [class="Com.github.parnold-x.nasc"] scratchpad show @@ -302,3 +319,6 @@ client.focused #859900 #859900 #fdf6e3 #2e9ef4 client.focused_inactive #268bd2 #268bd2 #fdf6e3 #484e50 client.unfocused #333333 #93a1a1 #fdf6e3 #292d2e + +exec_always --no-startup-id kitti3 -p TL +bindsym $mod+n nop kitti3diff --git a/files/i3/.config/dunst/dunstrc b/files/i3/.config/dunst/dunstrc index bfe05c6..45369e8 100644 --- a/files/i3/.config/dunst/dunstrc +++ a/files/i3/.config/dunst/dunstrc @@ -80,6 +80,31 @@ # Paths to default icons. icon_path = /usr/share/icons/Adwaita/16x16/status/:/usr/share/icons/Adwaita/16x16/devices/ +notification_limit = 10 + +### Progress bar ### + +# Turn on the progess bar. It appears when a progress hint is passed with +# for example dunstify -h int:value:12 +progress_bar = true + +# Set the progress bar height. This includes the frame, so make sure +# it's at least twice as big as the frame width. +progress_bar_height = 10 + +# Set the frame width of the progress bar +progress_bar_frame_width = 1 + +# Set the minimum width for the progress bar +progress_bar_min_width = 150 + +# Set the maximum width for the progress bar +progress_bar_max_width = 300 + + # Show how many messages are currently hidden (because of + # notification_limit). + indicate_hidden = yes + # Context menu. [shortcuts] diff --git a/files/i3/.config/i3blocks/config b/files/i3/.config/i3blocks/config index f93c06d..12adf58 100644 --- a/files/i3/.config/i3blocks/config +++ a/files/i3/.config/i3blocks/config @@ -41,8 +41,8 @@ [weather] command=curl -Ss 'https://wttr.in/Bangalore?0&T&Q' | cut -c 16- | head -2 | xargs echo -# Every 30 minutes -interval=1800 +# Every 5 minutes +interval=300 color=#A4C2F4 [ip] @@ -141,4 +141,13 @@ SHOW_UP_DOWN=0 FONT_FAMILY=DejaVu Sans Mono FONT_SIZE=12 -CLOSE_TO_BOUNDARY_BUFFER=30+CLOSE_TO_BOUNDARY_BUFFER=30 + +[i3volume] +label= +command=~/i3-volume/volume output i3blocks +interval=once +signal=10 +color=#b8bb26 +separator_block_width=10 +markup=pango diff --git a/files/i3/.config/sway/config b/files/i3/.config/sway/config old mode 120000 new mode 100644 index bd5213a..6203bac --- a/files/i3/.config/sway/config +++ a/files/i3/.config/sway/config @@ -1,1 +1,329 @@ -../../.i3/config+# sway config file +# +# Please see http://i3wm.org/docs/userguide.html for a complete reference! + +include /etc/sway/config.d/* + +exec systemctl --user import-environment SSH_AUTH_SOCK +exec dbus-update-activation-environment --systemd SSH_AUTH_SOCK + +# I use the Super key on my laptop for i3 +set $mod Mod4 + +# 4 named workspaces +set $WS1 1: +set $WS2 2: +set $WS3 3:ïƒ +set $WS4 4: + +# Startup items that don't have their windows +exec gammastep + +exec yubikey-touch-detector --libnotify + +# This ensures that GTK changes are applied immediately +exec xfsettingsd --replace --no-daemon + +# execute ibus XIM server. +exec ibus-daemon --replace --xim + +# Launch the VPN app, but turn it off +exec riseup-vpn-git --start-vpn off + +# Launch easyeffects +exec easyeffects --hide-window + +## Press Ctrl+C twice to search a word +## Dictionaries are kept in ~/Documents/Dictionaries +exec --no-startup-id goldendict + +# For ArchLinux +exec --no-startup-id connman-gtk +exec --no-startup-id /usr/sbin/hackertray --firefox auto --comments/usr/sbin/hackertray + +# For Ubuntu +exec --no-startup-id nm-applet +exec --no-startup-id aa-notify -p -s 1 -w 60 -f /var/log/audit/audit.log +exec --no-startup-id autorandr --change + +input * { + #xkb_layout = "in(eng),in(hin-wx),in(hin-kagapa)" + # Caps Lock = Hyper_L + xkb_options "grp_led:caps,caps:hyper,compose:ralt" +} + + +# Quick switching between workspace is disabled +# Just leads to confusion +workspace_auto_back_and_forth no + +# I am still learning splitting properly +workspace_layout default +hide_edge_borders both + +# Still playing around with this +font pango:Cantarell 10,Fira Sans 8,Dejavu Sans,FontAwesome 9 + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# start a terminal +bindsym $mod+Return split v; exec alacritty +bindsym $mod+Shift+Return split h; exec alacritty +bindsym $mod+Shift+f exec killall firefox; + +# Snippy for quick text +# https://gist.github.com/coderofsalvation/46549e3788ade2f3a938 +bindsym $mod+grave exec snippy.sh +# This one because of a 60% keyboard +bindsym $mod+Escape exec snippy.sh + +bindsym $mod+z exec fsearch + +bindsym $mod+Hyper_L exec wofi --show drun -icon-theme "Papirus" -show-icons -font "Cantarell 14" +# TODO: Window switch does not work +bindsym --release Hyper_L exec wofi --show window -icon-theme "Papirus" -show-icons -font "Cantarell 14" + +bindsym $mod+F8 exec nemo --no-desktop + +# kill focused window +bindsym $mod+Shift+q kill + +# keyboard backlight, for Mac +# increase/decrease keyboard brightness +# TODO: Switch to wayland? +#bindsym XF86KbdBrightnessUp exec /home/nemo/projects/scripts/backlight up +#bindsym XF86KbdBrightnessDown exec /home/nemo/projects/scripts/backlight down + +# Setup wallpapers +exec swaybg --output "Samsung Electric Company C24F390 HTQK801650" --mode fit --image /home/nemo/Pictures/wallpapers/personal/zurich.jpg \ + --output "HDMI-A-1" --mode stretch --image /home/nemo/Pictures/wallpapers/personal/titlis.jpg + +# Notifications +exec swaync +# Toggle control center +bindsym $mod+Shift+n exec swaync-client -t -sw + +# Lock Related +exec swayidle -w \ + timeout 1800 'swaylock -f' \ + timeout 2000 'swaymsg "output * dpms off"' \ + resume 'swaymsg "output * power on"' \ + before-sleep 'swaylock -f' \ + lock 'swaylock -f' \ + unlock 'killall -s SIGUSR1 swaylock' \ + idlehint 1800 + +exec swayidle -w timeout 10 \ + 'if pgrep -x swaylock; then swaymsg "output * dpms off"; fi' resume 'swaymsg "output * dpms on"' + +bindsym $mod+l exec "killall -s SIGUSR1 swayidle" + +## And manual locking as well +## TODO: Get this working +# bindsym $mod+l exec loginctl lock-session + +# Print screen +bindsym Print exec flameshot gui +bindsym $mod+I exec grimshot copy area + +bindsym Ctrl+Print exec flameshot screen +bindsym Ctrl+$mod+I exec grimshot save area + +bindsym $mod+P exec /home/nemo/projects/scripts/wofipass --type + +# 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 + +# Switching to a different workspace +bindsym $mod+Ctrl+Left workspace prev_on_output +bindsym $mod+Ctrl+Right workspace next_on_output + +# split in horizontal orientation +bindsym $mod+h split h; exec wofi --show drun + +# split in vertical orientation +bindsym $mod+v split v; exec wofi --show drun + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent + +# focus the child container +#bindsym $mod+d focus child + +# switch to workspace +bindsym $mod+1 workspace $WS1 +bindsym $mod+2 workspace $WS2 +bindsym $mod+3 workspace $WS3 +bindsym $mod+4 workspace $WS4 +bindsym $mod+5 workspace 5 +bindsym $mod+6 workspace 6 +bindsym $mod+7 workspace 7 +bindsym $mod+8 workspace 8 +bindsym $mod+9 workspace 9 +bindsym $mod+0 workspace 10 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace $WS1 +bindsym $mod+Shift+2 move container to workspace $WS2 +bindsym $mod+Shift+3 move container to workspace $WS3 +bindsym $mod+Shift+4 move container to workspace $WS4 +bindsym $mod+Shift+5 move container to workspace 5 +bindsym $mod+Shift+6 move container to workspace 6 +bindsym $mod+Shift+7 move container to workspace 7 +bindsym $mod+Shift+8 move container to workspace 8 +bindsym $mod+Shift+9 move container to workspace 9 +bindsym $mod+Shift+0 move container to workspace 10 + +# rename a workspace +bindsym $mod+ctrl+r exec i3-input -F 'rename workspace to "%s"' -P 'New name: ' + +# reload the configuration file +bindsym $mod+Shift+c reload + +# exit i3 (logs you out of your X 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 button 6 exec "notify-send 123" +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym j resize shrink width 10 px or 10 ppt + bindsym k resize grow height 10 px or 10 ppt + bindsym l resize shrink height 10 px or 10 ppt + bindsym semicolon resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + +bindsym $mod+r mode "resize" + +# backlight support +bindsym XF86MonBrightnessUp exec xbacklight -inc 10 +bindsym XF86MonBrightnessDown exec xbacklight -dec 10 + +## Volume control + +# pulseaudio-utils settings +# +# Symbolic name for sink (numeric index not supported) +# Recommended: comment out this setting and omit the -s option to use default sink +# List sink names: pacmd list-sinks | awk -F "[<>]" '/^\s+name: <.*>/{print $2}' +#set $sinkname alsa_output.pci-0000_00_1b.0.analog-stereo + +# Pulse Audio controls +bindsym XF86AudioRaiseVolume exec --no-startup-id pamixer --increase 2 && notify-send `pamixer --get-volume` -t 200 -e +bindsym XF86AudioLowerVolume exec --no-startup-id pamixer --decrease 2 && notify-send `pamixer --get-volume` -t 200 -e +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle + +# Window assignments +for_window [class="Wine"] floating enable +for_window [class="Blueberry.py"] floating enable +for_window [class="Transmission-gtk"] floating enable +for_window [window_role="pop-up"] floating enable +for_window [window_role="bubble"] floating enable +for_window [class="xpad"] floating enable +for_window [class="Zeal"] floating enable +for_window [class="Pavucontrol"] floating enable resize 940 600 +for_window [class="Connman-gtk"] floating enable resize 800 420 +for_window [class="Firefox" instance="Browser"] floating enable +for_window [class="Firefox Beta" instance="Browser"] floating enable +for_window [class="Fsearch"] floating enable +for_window [class="Com.github.parnold-x.nasc"] floating enable 800 420 +for_window [class="xpad" window_role="info-"] move scratchpad +for_window [class="Com.github.parnold-x.nasc"] move scratchpad +for_window [class="Blueman-manager"] floating enable resize 640 600 + +# Sticky Notepad +exec --no-startup-id xpad +# Sticky math app +exec --no-startup-id GTK_THEME=Ambiance com.github.parnold-x.nasc +bindsym $mod+F1 [class="xpad" instance="xpad"] scratchpad show +# Only for Nasc +bindsym $mod+F3 [class="Com.github.parnold-x.nasc"] scratchpad show + +# Go through all windows + +# Scratchpad +bindsym $mod+shift+minus move scratchpad +bindsym $mod+minus scratchpad show + +# gaps are native in sway +for_window [class="^.*"] border pixel 0 +gaps inner 10 +gaps outer 5 +smart_gaps on +smart_borders on + +bar { + font xft:Cantarell, FontAwesome 11 + status_command i3blocks + colors { + separator #657b83 + background #002b36 + statusline #fdf6e3 + focused_workspace #fdf6e3 #859900 #fdf6e3 + active_workspace #fdf6e3 #6c71c4 #fdf6e3 + inactive_workspace #586e75 #93a1a1 #002b36 + urgent_workspace #d33682 #d33682 #fdf6e3 + } +} + +# Multi monitor +bindsym $mod+shift+a move workspace to output left +bindsym $mod+shift+s move workspace to output right + +# class border backgr. text indicator +client.focused #859900 #859900 #fdf6e3 #2e9ef4 +client.focused_inactive #268bd2 #268bd2 #fdf6e3 #484e50 +client.unfocused #333333 #93a1a1 #fdf6e3 #292d2e + +exec_always --no-startup-id kitti3 -p TL + +# https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland/#setting-values-in-gsettings +exec_always import-gsettings + +bindsym $mod+n nop kitti3 + +output 'Samsung Electric Company C24F390 HTQK801650' position 0 0 +output 'LG Electronics LG ULTRAWIDE 0x0000974A' position 1920 0 + +for_window [app_id="flameshot"] border pixel 0, floating enable, fullscreen disable, move absolute position 0 0 + +for_window [app_id="signal"] floating enable diff --git a/files/i3/.config/sway/outputs b/files/i3/.config/sway/outputs new file mode 100644 index 0000000..52d6a44 100644 --- /dev/null +++ a/files/i3/.config/sway/outputs @@ -1,0 +1,20 @@ +# Generated by nwg-displays on 2024-02-23 at 17:21:41. Do not edit manually. + +output "HDMI-A-1" { + mode 2560x1080@60.0Hz + pos 1920 0 + transform normal + scale 1.0 + scale_filter nearest + adaptive_sync off + dpms on +} +output "DP-1" { + mode 1920x1080@60.0Hz + pos 0 0 + transform normal + scale 1.0 + scale_filter nearest + adaptive_sync off + dpms on +} -- rgit 0.1.5