Add .config/sway/cheatsheet

Add .config/sway/config
Add .config/sway/config.d/application_defaults
Add .config/sway/config.d/autostart_applications
Add .config/sway/config.d/clamshell
Add .config/sway/config.d/default
Add .config/sway/config.d/input
Add .config/sway/config.d/output
Add .config/sway/config.d/theme
Add .config/sway/keyboard.conf
Add .config/sway/scripts/clamshell.sh
Add .config/sway/scripts/import-gsettings
Add .config/sway/scripts/lockman.sh
Add .config/sway/scripts/screenshot.sh
Add .config/sway/scripts/swayfader.py
Add .config/sway/scripts/weather.sh
Add .config/sway/sway.png
Add .config/sway/swaylock.png
This commit is contained in:
Kasper Juul Hermansen 2023-07-25 15:39:26 +02:00
parent 014b81d5c2
commit 9d6cc15469
Signed by: kjuulh
GPG Key ID: 9AA7BC13CE474394
18 changed files with 1319 additions and 0 deletions

179
dot_config/sway/cheatsheet Normal file
View File

@ -0,0 +1,179 @@
EndeavourOS Sway-WM CheatSheet :
- Hello! Welcome to EndeavourOS and our Sway-WM Edition! Now we'll admit this is not vanilla Sway and it wasn't desinged to be. It is loosely themed around the ArcDark
colorscheme chosen for it's stability and ease of implementation. The default bar is Waybar not Swaybar - once again chosen it's ease of use and stability as well
the options it offers.
- Sway is documentated through man pages unlike i3.To get a overview of what to expect you can read 'man 5 sway'. The pages are then spilt into topics - some the
important ones are listed at the bottom of the document. Waybar is also documented through man pages - 'man 5 waybar'.
- Our file structure is spilt for easier use - the names of the files eg; 'output' referring to the part they play.
- If your experiencing issus with your cursor - edit file '~/.profile' and comment out 'export WLR_NO_HARDWARE_CURSORS=1'
- Other than that enjoy your time here and welcome! You can join the Forum or our Telegram - we'd love to hear from you!
 = windows key
# start floating xfce4-terminal
+Return
# start fixed termite-terminal
+Shift+Return
# kill focused window
+q
# Application menu - wofi:
+d
# Activities:
+p
# Power-Menu:
+Shift+e
# Lock the system
+f1
# reload the configuration file
+Shift+c
# change window focus,like vim
+h focus left
+j focus down
+k focus up
+l focus right
# alternatively, you can use the cursor keys:
+Left focus left
+Down focus down
+Up focus up
+Right focus right
# move a focused window
+Shift+h move left
+Shift+j move down
+Shift+k move up
+Shift+l move right
# alternatively, you can use the cursor keys:
+Shift+Left move left
+Shift+Down move down
+Shift+Up move up
+Shift+Right move right
# split in horizontal orientation (changes take place on next opened window):
+b
# split in vertical orientation (changes take place on next opened window):
+v
# enter fullscreen mode for the focused container:
+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split):
+s layout stacking
+w layout tabbed
+e layout toggle split
# toggle tiling / floating:
+Shift+space floating toggle
# change focus between tiling / floating windows:
+space focus mode_toggle
# focus the parent container:
+a focus parent
# resize floating window:
+right mouse button
# move floating window:
+left mouse button
# scratchpad:
+Shift+Minus move scratchpad
+minus scratchpad cycle
# resize mode:
+r
# resize,like vim:
h focus left
j focus down
k focus up
l focus right
# alternatively, you can use the cursor keys:
Left focus left
Down focus down
Up focus up
Right focus right
# Return to default mode:
Return or Escape
# Workspaces:
#
# Switch to workspace
+1 workspace number 1
+2 workspace number 2
+3 workspace number 3
+4 workspace number 4
+5 workspace number 5
+6 workspace number 6
+7 workspace number 7
+8 workspace number 8
+9 workspace number 9
+0 workspace number 10
# Move focused container to workspace:
+Shift+1 move container to workspace number 1
+Shift+2 move container to workspace number 2
+Shift+3 move container to workspace number 3
+Shift+4 move container to workspace number 4
+Shift+5 move container to workspace number 5
+Shift+6 move container to workspace number 6
+Shift+7 move container to workspace number 7
+Shift+8 move container to workspace number 8
+Shift+9 move container to workspace number 9
+Shift+0 move container to workspace number 10
# Multimedia Keys (be aware that these may not work for every keyboard):
They are enabled - you may need to hold down the function key while doing so.
# Screenshots:
PrintSrc for full screenshot
Shift+PrintSrc for screenshot options
# App Shortcuts:
+n thunar
+o firefox
# Other Things:
# Input - ~/.config/sway/config.d/input
# You can get the names of your inputs by running: swaymsg -t get_inputs
# Put your touchpad's IDENFICATOR to replace "Touchpad-ID" (keep the quotation marks)
# Read `man 5 sway-input` for more information about this section.
# Output - ~/.config/sway/config.d/output
# You can get the names of your outputs by running: swaymsg -t get_outputs
# Read `man 5 sway-output` for more information about this section.
# Wallpaper - ~/.config/sway/config.d/theme
# exec swaybg -i /path/to/wallpaper
# Waybar - ~/.config/waybar/config : ~/.config/waybar/style.css
# It is an external bar we have chosen because of the option's it allows.
# If you wish to use the default swaybar - ~/.config/sway/config.d/theme and change waybar to sway-bar
# Read `man 5 sway-bar` for more information about this section
# Autostart - ~/.config/sway/config.d/autostart_applications

12
dot_config/sway/config Normal file
View File

@ -0,0 +1,12 @@
# Initial Setup
# exec ~/set_once.sh
# Config for sway
#
# Read `man 5 sway` for a complete reference.
# user config directory
include $HOME/.config/sway/config.d/*
# only enable this if every app you use is compatible with wayland
# xwayland disable

View File

@ -0,0 +1,51 @@
# Assign workspaces
assign [app_id="firefox"] 2
for_window [app_id="firefox"] focus
assign [class="firefox"] 2
for_window [class="firefox"] focus
assign [app_id=thunar] 3
for_window [app_id=thunar] focus
assign [class="Telegram"] 4
for_window [class="Telegram"] focus
for_window [app_id="xed"] focus
for_window [app_id="Alacritty"] opacity 0.95
# set floating (nontiling)for apps needing it:
for_window [class="Yad" instance="yad"] floating enable
for_window [app_id="yad"] floating enable
for_window [app_id="blueman-manager"] floating enable, resize set width 40 ppt height 30 ppt
# set floating (nontiling) for special apps:
for_window [class="Xsane" instance="xsane"] floating enable
for_window [app_id="pavucontrol" ] floating enable, resize set width 40 ppt height 30 ppt
for_window [class="qt5ct" instance="qt5ct"] floating enable, resize set width 60 ppt height 50 ppt
for_window [class="Bluetooth-sendto" instance="bluetooth-sendto"] floating enable
for_window [app_id="pamac-manager"] floating enable, resize set width 80 ppt height 70 ppt
for_window [class="Lxappearance"] floating enable, resize set width 60 ppt height 50 ppt
# set floating for window roles
for_window [window_role="pop-up"] floating enable
for_window [window_role="bubble"] floating enable
for_window [window_role="task_dialog"] floating enable
for_window [window_role="Preferences"] floating enable
for_window [window_type="dialog"] floating enable
for_window [window_type="menu"] floating enable
for_window [window_role="About"] floating enable
for_window [title="File Operation Progress"] floating enable, border pixel 1, sticky enable, resize set width 40 ppt height 30 ppt
for_window [app_id="firefox" title="^Library$"] floating enable, border pixel 1, sticky enable, resize set width 40 ppt height 30 ppt
for_window [app_id="floating_shell_portrait"] floating enable, border pixel 1, sticky enable, resize set width 30 ppt height 40 ppt
for_window [title="Picture in picture"] floating enable, sticky enable
for_window [title="nmtui"] floating enable, resize set width 50 ppt height 70 ppt
for_window [title="htop"] floating enable, resize set width 50 ppt height 70 ppt
for_window [app_id="xsensors"] floating enable
for_window [title="Save File"] floating enable
for_window [app_id="firefox" title="Firefox — Sharing Indicator"] kill
# Inhibit idle
for_window [app_id="firefox"] inhibit_idle fullscreen
for_window [app_id="Chromium"] inhibit_idle fullscreen

View File

@ -0,0 +1,19 @@
# Auth with polkit-gnome:
exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
# Desktop notifications
exec mako
# Network Applet
exec nm-applet --indicator
# GTK3 applications take a long time to start
exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK
exec hash dbus-update-activation-environment 2>/dev/null && \
dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK
# Welcome App
exec dex -a -s /etc/xdg/autostart/:~/.config/autostart/
# Sway Fader
# exec python3 ~/.config/sway/scripts/swayfader.py

View File

@ -0,0 +1,6 @@
# Clamshell Mode
set $laptop eDP-1
bindswitch --reload --locked lid:on output $laptop disable
bindswitch --reload --locked lid:off output $laptop enable
exec_always ~/.config/sway/scripts/clamshell.sh

View File

@ -0,0 +1,227 @@
# 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
# audio control
set $sink_volume pactl get-sink-volume @DEFAULT_SINK@ | grep '^Volume:' | cut -d / -f 2 | tr -d ' ' | sed 's/%//'
set $source_volume pactl get-source-volume @DEFAULT_SOURCE@ | grep '^Volume:' | cut -d / -f 2 | tr -d ' ' | sed 's/%//'
set $volume_down $(pactl set-sink-volume @DEFAULT_SINK@ -5% && $sink_volume)
set $volume_up $(pactl set-sink-volume @DEFAULT_SINK@ +5% && $sink_volume)
set $volume_mute $(pactl set-sink-mute @DEFAULT_SINK@ toggle && pactl get-sink-mute @DEFAULT_SINK@ | sed -En "/no/ s/.*/$($sink_volume)/p; /yes/ s/.*/0/p")
set $mic_mute $(pactl set-source-mute @DEFAULT_SOURCE@ toggle && pactl get-source-mute @DEFAULT_SOURCE@ | sed -En "/no/ s/.*/$($source_volume)/p; /yes/ s/.*/0/p")
# Your preferred terminal emulators
set $term-float 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 -c ~/.config/wofi/config -I
set $powermenu ~/.config/waybar/scripts/power-menu.sh
### Idle configuration
exec swayidle -w\
timeout 1070 'swaylock -f -C ~/.config/swaylock/config'\
timeout 770 'swaymsg "output * power off"' \
resume 'swaymsg "output * power on"' \
before-sleep 'swaylock -C ~/.config/swaylock/config'
# 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.
## Lock Screen
bindsym $mod+f1 exec ~/.config/sway/scripts/lockman.sh
### Key bindings
#
# Basics:
#
# Start a floating terminal
bindsym $mod+Return exec $term-float
# Open the power menu
bindsym $mod+Shift+e exec $powermenu
# Kill focused window
bindsym $mod+q kill
# Start your launcher
bindsym $mod+d exec $menu
# Activities
bindsym $mod+p exec ~/.config/wofi/windows.py
# 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
#
# 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 $right resize grow width 10px
bindsym $up resize shrink height 10px
bindsym $down resize grow height 10px
# Ditto, with arrow keys
bindsym Left resize shrink width 10px
bindsym Right resize grow width 10px
bindsym Up resize shrink height 10px
bindsym Down resize grow height 10px
# Return to default mode
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
# Resize floating windows with mouse scroll:
bindsym --whole-window --border $mod+button4 resize shrink height 5 px or 5 ppt
bindsym --whole-window --border $mod+button5 resize grow height 5 px or 5 ppt
bindsym --whole-window --border $mod+Shift+button4 resize shrink width 5 px or 5 ppt
bindsym --whole-window --border $mod+Shift+button5 resize grow width 5 px or 5 ppt
#
# Volume
#
# Control volume trough pamixer
# bindsym --locked XF86AudioRaiseVolume exec pamixer -ui 2
# bindsym --locked XF86AudioLowerVolume exec pamixer -ud 2
# bindsym --locked XF86AudioMute exec pamixer -t
# Control volume directly trough pactl
bindsym --locked XF86AudioRaiseVolume exec $volume_up
bindsym --locked XF86AudioLowerVolume exec $volume_down
bindsym --locked XF86AudioMute exec $volume_mute
#
# Player
#
bindsym XF86AudioPlay exec playerctl play
bindsym XF86AudioPause exec playerctl pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
#
# Backlight
#
bindsym XF86MonBrightnessUp exec brightnessctl -c backlight set +5%
bindsym XF86MonBrightnessDown exec brightnessctl -c backlight set 5%-
#
# App shortcuts
#
bindsym $mod+n exec thunar
bindsym $mod+o exec firefox
#
# Screenshots
#
bindsym print exec /usr/share/sway/scripts/grimshot --notify save output
bindsym Shift+print exec ~/.config/sway/scripts/screenshot.sh
#
# Keybindings List
#
bindsym $mod+t exec xed ~/.config/sway/cheatsheet

View File

@ -0,0 +1,22 @@
### Input configuration
#
# Example configuration:
# You can get the names of your inputs by running: swaymsg -t get_inputs
# Put your touchpad's ID to replace "Touchpad-ID" (keep the quotation marks)
input type:touchpad {
dwt enabled
tap enabled
natural_scroll enabled
}
# Read `man 5 sway-input` for more information about this section.
#
input type:keyboard xkb_layout "us"
exec_always {
'swaymsg input type:keyboard xkb_layout "$(localectl status | grep "X11 Layout" | sed -e "s/^.*X11 Layout://")"'
'swaymsg input type:keyboard xkb_variant "$(localectl status | grep "X11 Variant" | sed -e "s/^.*X11 Variant://")"'
}
output DP-2 transform 270

View File

@ -0,0 +1,11 @@
### Output configuration
#
# 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
#
# Wacom Tablet - Example
# input "1386:884:Wacom_Intuos_S_Pad" map_to_output HDMI-A-1
# input "1386:884:Wacom_Intuos_S_Pen" map_to_output HDMI-A-1

View File

@ -0,0 +1,41 @@
# Apply gtk theming
exec_always ~/.config/sway/scripts/import-gsettings
# Set inner/outer gaps
gaps inner 10
gaps outer 5
# Hide titlebar on windows:
default_border pixel 1
# Default Font
font pango:Noto Sans Regular 10
# Thin borders:
smart_borders on
# Set wallpaper:
#exec swaybg -i ~/Desktop/Wallpapers/plants-001.jpg
output HDMI-A-1 background ~/Desktop/Wallpapers/plants-001.jpg fill
output DP-2 background ~/Desktop/Wallpapers/plants-001.jpg fill
# Title format for windows
for_window [shell="xdg_shell"] title_format "%title (%app_id)"
for_window [shell="x_wayland"] title_format "%class - %title"
# class border bground text indicator child_border
client.focused #6272A4 #6272A4 #F8F8F2 #6272A4 #6272A4
client.focused_inactive #44475A #44475A #F8F8F2 #44475A #44475A
client.unfocused #282A36 #282A36 #BFBFBF #282A36 #282A36
client.urgent #44475A #FF5555 #F8F8F2 #FF5555 #FF5555
client.placeholder #282A36 #282A36 #F8F8F2 #282A36 #282A36
client.background #F8F8F2
#
# Status Bar:
#
# Read `man 5 sway-bar` for more information about this section.
bar {
swaybar_command waybar
}

View File

@ -0,0 +1,457 @@
! layout
us USA
ad Andorra
af Afghanistan
ara Arabic
al Albania
am Armenia
az Azerbaijan
by Belarus
be Belgium
bd Bangladesh
in India
ba Bosnia and Herzegovina
br Brazil
bg Bulgaria
ma Morocco
mm Myanmar
ca Canada
cd Congo, Democratic Republic of the
cn China
hr Croatia
cz Czechia
dk Denmark
nl Netherlands
bt Bhutan
ee Estonia
ir Iran
iq Iraq
fo Faroe Islands
fi Finland
fr France
gh Ghana
gn Guinea
ge Georgia
de Germany
gr Greece
hu Hungary
is Iceland
il Israel
it Italy
jp Japan
kg Kyrgyzstan
kh Cambodia
kz Kazakhstan
la Laos
latam Latin American
lt Lithuania
lv Latvia
mao Maori
me Montenegro
mk Macedonia
mt Malta
mn Mongolia
no Norway
pl Poland
pt Portugal
ro Romania
ru Russia
rs Serbia
si Slovenia
sk Slovakia
es Spain
se Sweden
ch Switzerland
sy Syria
tj Tajikistan
lk Sri Lanka
th Thailand
tr Turkey
tw Taiwan
ua Ukraine
gb United Kingdom
uz Uzbekistan
vn Vietnam
kr Korea, Republic of
nec_vndr/jp Japan (PC-98xx Series)
ie Ireland
pk Pakistan
mv Maldives
za South Africa
epo Esperanto
np Nepal
ng Nigeria
et Ethiopia
sn Senegal
brai Braille
tm Turkmenistan
ml Mali
tz Tanzania
! variant
chr us: Cherokee
euro us: With EuroSign on 5
intl us: International (with dead keys)
alt-intl us: Alternative international (former us_intl)
colemak us: Colemak
dvorak us: Dvorak
dvorak-intl us: Dvorak international
dvorak-l us: Left handed Dvorak
dvorak-r us: Right handed Dvorak
dvorak-classic us: Classic Dvorak
dvp us: Programmer Dvorak
rus us: Russian phonetic
mac us: Macintosh
altgr-intl us: International (AltGr dead keys)
olpc2 us: Group toggle on multiply/divide key
srp us: Serbian
ps af: Pashto
uz af: Southern Uzbek
olpc-ps af: OLPC Pashto
olpc-fa af: OLPC Dari
olpc-uz af: OLPC Southern Uzbek
azerty ara: azerty
azerty_digits ara: azerty/digits
digits ara: digits
qwerty ara: qwerty
qwerty_digits ara: qwerty/digits
buckwalter ara: Buckwalter
phonetic am: Phonetic
phonetic-alt am: Alternative Phonetic
eastern am: Eastern
western am: Western
eastern-alt am: Alternative Eastern
cyrillic az: Cyrillic
legacy by: Legacy
latin by: Latin
oss be: Alternative
oss_latin9 be: Alternative, latin-9 only
oss_sundeadkeys be: Alternative, Sun dead keys
iso-alternate be: ISO Alternate
nodeadkeys be: Eliminate dead keys
sundeadkeys be: Sun dead keys
wang be: Wang model 724 azerty
probhat bd: Probhat
ben in: Bengali
ben_probhat in: Bengali Probhat
guj in: Gujarati
guru in: Gurmukhi
jhelum in: Gurmukhi Jhelum
kan in: Kannada
mal in: Malayalam
mal_lalitha in: Malayalam Lalitha
ori in: Oriya
tam_unicode in: Tamil Unicode
tam_keyboard_with_numerals in: Tamil Keyboard with Numerals
tam_TAB in: Tamil TAB Typewriter
tam_TSCII in: Tamil TSCII Typewriter
tam in: Tamil
tel in: Telugu
urd-phonetic in: Urdu, Phonetic
urd-phonetic3 in: Urdu, Alternative phonetic
urd-winkeys in: Urdu, Winkeys
bolnagri in: Hindi Bolnagri
hin-wx in: Hindi Wx
alternatequotes ba: Use guillemets for quotes
unicode ba: Use Bosnian digraphs
unicodeus ba: US keyboard with Bosnian digraphs
us ba: US keyboard with Bosnian letters
nodeadkeys br: Eliminate dead keys
dvorak br: Dvorak
nativo br: Nativo
nativo-us br: Nativo for USA keyboards
nativo-epo br: Nativo for Esperanto
phonetic bg: Traditional phonetic
bas_phonetic bg: New phonetic
french ma: French
tifinagh ma: Tifinagh
tifinagh-alt ma: Tifinagh Alternative
tifinagh-alt-phonetic ma: Tifinagh Alternative Phonetic
tifinagh-extended ma: Tifinagh Extended
tifinagh-phonetic ma: Tifinagh Phonetic
tifinagh-extended-phonetic ma: Tifinagh Extended Phonetic
fr-dvorak ca: French Dvorak
fr-legacy ca: French (legacy)
multix ca: Multilingual
multi ca: Multilingual, first part
multi-2gr ca: Multilingual, second part
ike ca: Inuktitut
shs ca: Secwepemctsin
kut ca: Ktunaxa
eng ca: English
tib cn: Tibetan
tib_asciinum cn: Tibetan (with ASCII numerals)
alternatequotes hr: Use guillemets for quotes
unicode hr: Use Croatian digraphs
unicodeus hr: US keyboard with Croatian digraphs
us hr: US keyboard with Croatian letters
bksl cz: With <\|> key
qwerty cz: qwerty
qwerty_bksl cz: qwerty, extended Backslash
ucw cz: UCW layout (accented letters only)
dvorak-ucw cz: US Dvorak with CZ UCW support
nodeadkeys dk: Eliminate dead keys
mac dk: Macintosh
mac_nodeadkeys dk: Macintosh, eliminate dead keys
dvorak dk: Dvorak
sundeadkeys nl: Sun dead keys
mac nl: Macintosh
std nl: Standard
nodeadkeys ee: Eliminate dead keys
dvorak ee: Dvorak
us ee: US keyboard with Estonian letters
pes_keypad ir: Persian, with Persian Keypad
ku ir: Kurdish, Latin Q
ku_f ir: Kurdish, (F)
ku_alt ir: Kurdish, Latin Alt-Q
ku_ara ir: Kurdish, Arabic-Latin
ku iq: Kurdish, Latin Q
ku_f iq: Kurdish, (F)
ku_alt iq: Kurdish, Latin Alt-Q
ku_ara iq: Kurdish, Arabic-Latin
nodeadkeys fo: Eliminate dead keys
nodeadkeys fi: Eliminate dead keys
smi fi: Northern Saami
classic fi: Classic
mac fi: Macintosh
nodeadkeys fr: Eliminate dead keys
sundeadkeys fr: Sun dead keys
oss fr: Alternative
oss_latin9 fr: Alternative, latin-9 only
oss_nodeadkeys fr: Alternative, eliminate dead keys
oss_sundeadkeys fr: Alternative, Sun dead keys
latin9 fr: (Legacy) Alternative
latin9_nodeadkeys fr: (Legacy) Alternative, eliminate dead keys
latin9_sundeadkeys fr: (Legacy) Alternative, Sun dead keys
bepo fr: Bepo, ergonomic, Dvorak way
bepo_latin9 fr: Bepo, ergonomic, Dvorak way, latin-9 only
dvorak fr: Dvorak
mac fr: Macintosh
bre fr: Breton
oci fr: Occitan
geo fr: Georgian AZERTY Tskapo
generic gh: Multilingual
akan gh: Akan
ewe gh: Ewe
fula gh: Fula
ga gh: Ga
hausa gh: Hausa
ergonomic ge: Ergonomic
mess ge: MESS
ru ge: Russian
os ge: Ossetian
deadacute de: Dead acute
deadgraveacute de: Dead grave acute
nodeadkeys de: Eliminate dead keys
ro de: Romanian keyboard with German letters
ro_nodeadkeys de: Romanian keyboard with German letters, eliminate dead keys
dvorak de: Dvorak
sundeadkeys de: Sun dead keys
neo de: Neo 2
mac de: Macintosh
mac_nodeadkeys de: Macintosh, eliminate dead keys
dsb de: Lower Sorbian
dsb_qwertz de: Lower Sorbian (qwertz)
qwerty de: qwerty
simple gr: Simple
extended gr: Extended
nodeadkeys gr: Eliminate dead keys
polytonic gr: Polytonic
standard hu: Standard
nodeadkeys hu: Eliminate dead keys
qwerty hu: qwerty
101_qwertz_comma_dead hu: 101/qwertz/comma/Dead keys
101_qwertz_comma_nodead hu: 101/qwertz/comma/Eliminate dead keys
101_qwertz_dot_dead hu: 101/qwertz/dot/Dead keys
101_qwertz_dot_nodead hu: 101/qwertz/dot/Eliminate dead keys
101_qwerty_comma_dead hu: 101/qwerty/comma/Dead keys
101_qwerty_comma_nodead hu: 101/qwerty/comma/Eliminate dead keys
101_qwerty_dot_dead hu: 101/qwerty/dot/Dead keys
101_qwerty_dot_nodead hu: 101/qwerty/dot/Eliminate dead keys
102_qwertz_comma_dead hu: 102/qwertz/comma/Dead keys
102_qwertz_comma_nodead hu: 102/qwertz/comma/Eliminate dead keys
102_qwertz_dot_dead hu: 102/qwertz/dot/Dead keys
102_qwertz_dot_nodead hu: 102/qwertz/dot/Eliminate dead keys
102_qwerty_comma_dead hu: 102/qwerty/comma/Dead keys
102_qwerty_comma_nodead hu: 102/qwerty/comma/Eliminate dead keys
102_qwerty_dot_dead hu: 102/qwerty/dot/Dead keys
102_qwerty_dot_nodead hu: 102/qwerty/dot/Eliminate dead keys
Sundeadkeys is: Sun dead keys
nodeadkeys is: Eliminate dead keys
mac is: Macintosh
dvorak is: Dvorak
lyx il: lyx
phonetic il: Phonetic
biblical il: Biblical Hebrew (Tiro)
nodeadkeys it: Eliminate dead keys
mac it: Macintosh
us it: US keyboard with Italian letters
geo it: Georgian
kana jp: Kana
OADG109A jp: OADG 109A
mac jp: Macintosh
phonetic kg: Phonetic
ruskaz kz: Russian with Kazakh
kazrus kz: Kazakh with Russian
basic la: Laos
stea la: Laos - STEA (proposed standard layout)
nodeadkeys latam: Eliminate dead keys
deadtilde latam: Include dead tilde
sundeadkeys latam: Sun dead keys
std lt: Standard
us lt: US keyboard with Lithuanian letters
ibm lt: IBM (LST 1205-92)
lekp lt: LEKP
lekpa lt: LEKPa
apostrophe lv: Apostrophe (') variant
tilde lv: Tilde (~) variant
fkey lv: F-letter (F) variant
cyrillic me: Cyrillic
cyrillicyz me: Cyrillic, Z and ZHE swapped
latinunicode me: Latin unicode
latinyz me: Latin qwerty
latinunicodeyz me: Latin unicode qwerty
cyrillicalternatequotes me: Cyrillic with guillemets
latinalternatequotes me: Latin with guillemets
nodeadkeys mk: Eliminate dead keys
us mt: Maltese keyboard with US layout
nodeadkeys no: Eliminate dead keys
dvorak no: Dvorak
smi no: Northern Saami
smi_nodeadkeys no: Northern Saami, eliminate dead keys
mac no: Macintosh
mac_nodeadkeys no: Macintosh, eliminate dead keys
qwertz pl: qwertz
dvorak pl: Dvorak
dvorak_quotes pl: Dvorak, Polish quotes on quotemark key
dvorak_altquotes pl: Dvorak, Polish quotes on key 1
csb pl: Kashubian
ru_phonetic_dvorak pl: Russian phonetic Dvorak
dvp pl: Programmer Dvorak
nodeadkeys pt: Eliminate dead keys
sundeadkeys pt: Sun dead keys
mac pt: Macintosh
mac_nodeadkeys pt: Macintosh, eliminate dead keys
mac_sundeadkeys pt: Macintosh, Sun dead keys
nativo pt: Nativo
nativo-us pt: Nativo for USA keyboards
nativo-epo pt: Nativo for Esperanto
cedilla ro: Cedilla
std ro: Standard
std_cedilla ro: Standard (Cedilla)
winkeys ro: Winkeys
crh_f ro: Crimean Tatar (Turkish F)
crh_alt ro: Crimean Tatar (Turkish Alt-Q)
crh_dobruca1 ro: Crimean Tatar (Dobruca-1 Q)
crh_dobruca2 ro: Crimean Tatar (Dobruca-2 Q)
phonetic ru: Phonetic
phonetic_winkeys ru: Phonetic Winkeys
typewriter ru: Typewriter
legacy ru: Legacy
typewriter-legacy ru: Typewriter, legacy
tt ru: Tatar
os_legacy ru: Ossetian, legacy
os_winkeys ru: Ossetian, Winkeys
cv ru: Chuvash
cv_latin ru: Chuvash Latin
udm ru: Udmurt
kom ru: Komi
sah ru: Yakut
xal ru: Kalmyk
dos ru: DOS
srp ru: Serbian
bak ru: Bashkirian
yz rs: Z and ZHE swapped
latin rs: Latin
latinunicode rs: Latin Unicode
latinyz rs: Latin qwerty
latinunicodeyz rs: Latin Unicode qwerty
alternatequotes rs: With guillemets
latinalternatequotes rs: Latin with guillemets
alternatequotes si: Use guillemets for quotes
us si: US keyboard with Slovenian letters
bksl sk: Extended Backslash
qwerty sk: qwerty
qwerty_bksl sk: qwerty, extended Backslash
nodeadkeys es: Eliminate dead keys
deadtilde es: Include dead tilde
sundeadkeys es: Sun dead keys
dvorak es: Dvorak
ast es: Asturian variant with bottom-dot H and bottom-dot L
cat es: Catalan variant with middle-dot L
mac es: Macintosh
nodeadkeys se: Eliminate dead keys
dvorak se: Dvorak
rus se: Russian phonetic
rus_nodeadkeys se: Russian phonetic, eliminate dead keys
smi se: Northern Saami
mac se: Macintosh
svdvorak se: Svdvorak
legacy ch: Legacy
de_nodeadkeys ch: German, eliminate dead keys
de_sundeadkeys ch: German, Sun dead keys
fr ch: French
fr_nodeadkeys ch: French, eliminate dead keys
fr_sundeadkeys ch: French, Sun dead keys
fr_mac ch: French (Macintosh)
de_mac ch: German (Macintosh)
syc sy: Syriac
syc_phonetic sy: Syriac phonetic
ku sy: Kurdish, Latin Q
ku_f sy: Kurdish, (F)
ku_alt sy: Kurdish, Latin Alt-Q
legacy tj: Legacy
tam_unicode lk: Tamil Unicode
tam_TAB lk: Tamil TAB Typewriter
tis th: TIS-820.2538
pat th: Pattachote
f tr: (F)
alt tr: Alt-Q
sundeadkeys tr: Sun dead keys
ku tr: Kurdish, Latin Q
ku_f tr: Kurdish, (F)
ku_alt tr: Kurdish, Latin Alt-Q
intl tr: International (with dead keys)
crh tr: Crimean Tatar (Turkish Q)
crh_f tr: Crimean Tatar (Turkish F)
crh_alt tr: Crimean Tatar (Turkish Alt-Q)
indigenous tw: Indigenous
saisiyat tw: Saisiyat
phonetic ua: Phonetic
typewriter ua: Typewriter
winkeys ua: Winkeys
legacy ua: Legacy
rstu ua: Standard RSTU
rstu_ru ua: Standard RSTU on Russian layout
homophonic ua: Homophonic
crh ua: Crimean Tatar (Turkish Q)
crh_f ua: Crimean Tatar (Turkish F)
crh_alt ua: Crimean Tatar (Turkish Alt-Q)
extd gb: Extended - Winkeys
intl gb: International (with dead keys)
dvorak gb: Dvorak
dvorakukp gb: Dvorak (UK Punctuation)
mac gb: Macintosh
colemak gb: Colemak
latin uz: Latin
crh uz: Crimean Tatar (Turkish Q)
crh_f uz: Crimean Tatar (Turkish F)
crh_alt uz: Crimean Tatar (Turkish Alt-Q)
kr104 kr: 101/104 key Compatible
CloGaelach ie: CloGaelach
UnicodeExpert ie: UnicodeExpert
ogam ie: Ogham
ogam_is434 ie: Ogham IS434
urd-crulp pk: CRULP
urd-nla pk: NLA
ara pk: Arabic
legacy epo: displaced semicolon and quote (obsolete)
igbo ng: Igbo
yoruba ng: Yoruba
hausa ng: Hausa
left_hand brai: Left hand
right_hand brai: Right hand
alt tm: Alt-Q
fr-oss ml: Français (France Alternative)
us-mac ml: English (USA Macintosh)
us-intl ml: English (USA International)

View File

@ -0,0 +1,8 @@
#!/usr/bin/bash
if [-d "/proc/acpi" ]; then
if cat /proc/acpi/button/lid/*/state | grep -q open; then
swaymsg output eDP-1 enable
else
swaymsg output eDP-1 disable
fi
fi

View File

@ -0,0 +1,15 @@
#!/bin/sh
# usage: import-gsettings
config="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-3.0/settings.ini"
if [ ! -f "$config" ]; then exit 1; fi
gnome_schema="org.gnome.desktop.interface"
gtk_theme="$(grep 'gtk-theme-name' "$config" | cut -d'=' -f2)"
icon_theme="$(grep 'gtk-icon-theme-name' "$config" | cut -d'=' -f2)"
cursor_theme="$(grep 'gtk-cursor-theme-name' "$config" | cut -d'=' -f2)"
font_name="$(grep 'gtk-font-name' "$config" | cut -d'=' -f2)"
gsettings set "$gnome_schema" gtk-theme "$gtk_theme"
gsettings set "$gnome_schema" icon-theme "$icon_theme"
gsettings set "$gnome_schema" cursor-theme "$cursor_theme"
gsettings set "$gnome_schema" font-name "$font_name"

View File

@ -0,0 +1,9 @@
#!/bin/sh
# Times the screen off and puts it to background
swayidle \
timeout 300 'swaymsg "output * power off"' \
resume 'swaymsg "output * power on"' &
# Locks the screen immediately
swaylock
# Kills last background task so idle timer doesn't keep running
kill %%

View File

@ -0,0 +1,18 @@
#!/bin/bash
entries="Active Screen Output Area Window"
selected=$(printf '%s\n' $entries | wofi --style=$HOME/.config/wofi/style.widgets.css --conf=$HOME/.config/wofi/config.screenshot | awk '{print tolower($1)}')
case $selected in
active)
/usr/share/sway/scripts/grimshot --notify save active;;
screen)
/usr/share/sway/scripts/grimshot --notify save screen;;
output)
/usr/share/sway/scripts/grimshot --notify save output;;
area)
/usr/share/sway/scripts/grimshot --notify save area;;
window)
/usr/share/sway/scripts/grimshot --notify save window;;
esac

View File

@ -0,0 +1,229 @@
from i3ipc import Connection, Event
from threading import Thread
from time import sleep
FRAME_T = 0.01 # time taken between each frame of fade
# transparency values
CON_AC = 1 # active window
CON_INAC = 0.5 # inactive window
FLOAT_AC = 1 # active floating window
FLOAT_INAC = 0.5 # inactive floating window
BOT_INAC = 0.9 # bottom window
# fade durations
FADE_TIME = 0.2
ALT_FADE_TIME = 0.1
CON_OUT = FADE_TIME # window fading out
CON_IN = 0.15 # window fading in
FLOAT_OUT = ALT_FADE_TIME # floating window fading out
FLOAT_IN = ALT_FADE_TIME # floating window fading in
BOT_OUT = ALT_FADE_TIME # bottom window fading out
BOT_IN = ALT_FADE_TIME # bottom window fading in
BOT_SWITCH_IN = FADE_TIME # window becoming bottom window
BOT_SWITCH_OUT = FADE_TIME # bottom window becoming window
FLOAT_BOT_OUT = FADE_TIME # floating window fading out from bottom
FLOAT_BOT_IN = FADE_TIME # floating window fading in from bottom
class Fader:
def __init__(self):
self.floating_windows = []
self.fader_running = False
self.fade_queue = []
self.fade_data = {}
self.bottom_win = None
self.old_win = None
self.active_win = None
ipc = Connection()
ipc.on(Event.WINDOW_FOCUS, self.on_window_focus)
ipc.on(Event.WINDOW_NEW, self.on_window_new)
ipc.on(Event.WINDOW_FLOATING, self.on_window_floating)
for win in ipc.get_tree():
if win.type == "floating_con":
self.floating_windows.append(win.id)
if win.focused:
change_opacity(win, FLOAT_AC)
self.active_win = win
else:
change_opacity(win, FLOAT_INAC)
elif win.type == "con":
if win.focused:
self.active_win = win
change_opacity(win, CON_AC)
else:
change_opacity(win, CON_INAC)
ipc.main()
def add_fade(self, win, start, target, duration):
if not duration:
if win.id in self.fade_queue:
self.fade_queue.remove(win.id)
del self.fade_data[win.id]
change_opacity(win, target)
return
if win.id in self.fade_queue:
f = self.fade_data[win.id]
change = (FRAME_T / duration) * (target - f["opacity"])
f["change"] = change
f["target"] = target
return
change_opacity(win, start)
change = (FRAME_T / duration) * (target - start)
fade_data = {"opacity": start, "change": change, "target": target, "win": win}
self.fade_queue.append(win.id)
self.fade_data[win.id] = fade_data
def start_fader(self):
if not self.fader_running:
self.fader_running = True
Thread(target=self.fader).start()
def fader(self):
while self.fade_queue:
for win_id in self.fade_queue.copy():
try:
f = self.fade_data[win_id]
except KeyError:
continue
f["opacity"] += f["change"]
finished = False
if f["change"] > 0:
if f["opacity"] >= f["target"]:
finished = True
elif f["opacity"] <= f["target"]:
finished = True
if finished:
change_opacity(f["win"], f["target"])
try:
self.fade_queue.remove(win_id)
del self.fade_data[win_id]
except (KeyError, ValueError):
continue
else:
change_opacity(f["win"], f["opacity"])
sleep(FRAME_T)
self.fader_running = False
def on_window_focus(self, ipc, e):
if self.active_win.id == e.container.id:
return
if self.active_win.type == "con":
if e.container.type == "con":
self.add_fade(
e.container, CON_INAC,
CON_AC, CON_IN)
self.add_fade(
self.active_win, CON_AC,
CON_INAC, CON_OUT)
else:
self.add_fade(
e.container, FLOAT_INAC,
FLOAT_AC, FLOAT_IN)
self.add_fade(
self.active_win, CON_AC,
BOT_INAC, BOT_OUT)
self.bottom_win = self.active_win
else:
if e.container.type == "con":
self.add_fade(
self.active_win, FLOAT_AC,
FLOAT_INAC, FLOAT_BOT_OUT)
if not self.bottom_win:
self.add_fade(
e.container, CON_INAC,
CON_AC, CON_IN)
elif e.container.id != self.bottom_win.id:
self.add_fade(
self.bottom_win, BOT_INAC,
CON_INAC, BOT_SWITCH_OUT)
self.add_fade(
e.container, CON_INAC,
CON_AC, BOT_SWITCH_IN)
self.bottom_win = e.container
else:
self.add_fade(
self.bottom_win, BOT_INAC,
CON_AC, BOT_IN)
else:
self.add_fade(
self.active_win, FLOAT_AC,
FLOAT_INAC, FLOAT_OUT)
self.add_fade(
e.container, FLOAT_INAC,
FLOAT_AC, FLOAT_IN)
self.start_fader()
self.active_win = e.container
def on_window_new(self, ipc, e):
if self.active_win:
if self.active_win.type == "con":
change_opacity(self.active_win, CON_INAC)
else:
change_opacity(self.active_win, FLOAT_INAC)
if self.bottom_win:
change_opacity(self.bottom_win, CON_INAC)
elif self.active_win and self.active_win.type == "con":
self.bottom_win = self.active_win
change_opacity(self.bottom_win, CON_INAC)
change_opacity(e.container, CON_AC)
self.old_win = self.active_win
self.active_win = e.container
def on_window_floating(self, ipc, e):
c_id = e.container.id
if c_id not in self.floating_windows:
self.floating_windows.append(c_id)
if self.active_win.id != e.container.id:
change_opacity(e.container, FLOAT_INAC)
else:
if self.old_win and self.bottom_win:
if self.old_win.type == "con":
self.bottom_win = self.old_win
change_opacity(self.bottom_win, BOT_INAC)
change_opacity(e.container, FLOAT_AC)
else:
self.floating_windows.remove(c_id)
if self.active_win.id != e.container.id:
change_opacity(e.container, CON_INAC)
else:
if self.old_win and self.old_win.type == "con":
change_opacity(self.old_win, CON_INAC)
change_opacity(self.active_win, CON_AC)
self.active_win = e.container
def change_opacity(win, trans):
win.command("opacity " + str(trans))
if __name__ == "__main__":
Fader()

View File

@ -0,0 +1,15 @@
#!/bin/bash
LOC="$1"
# HTML encode string as %20
LOCATION=$(sed -e "s/ /%20/g" <<<"$LOC")
content=$(curl -sS "https://thisdavej.azurewebsites.net/api/weather/current?loc=NewYork&deg=C")
ICON=$(curl -s 'https://wttr.in/?format=1' | sed 's/[+0-9a-cA-Z°-]//g' )
# echo $ICON
TEMP=$(echo $content | jq -r '. | "\(.temperature)°\(.degType)"' | sed 's/"//g')
TOOLTIP=$(echo $content | jq -r '. | "\(.temperature)°\(.degType)\n\(.skytext)"' | sed 's/"//g')
CLASS=$(echo $content | jq .skytext)
echo '{"text": "'$TEMP'", "tooltip": "'$ICON $TOOLTIP $LOC'", "class": '$CLASS' }'

BIN
dot_config/sway/sway.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB