diff --git a/.config/sway/autostart b/.config/sway/autostart new file mode 100644 index 0000000..7c63ac6 --- /dev/null +++ b/.config/sway/autostart @@ -0,0 +1,22 @@ +# Autostart +exec ~/.azotebg +exec mako +exec autotiling +exec /usr/lib/kdeconnectd +exec kdeconnect-indicator +exec nm-applet --indicator +exec mpd ~/.config/mpd/mpd.conf +exec mpDris2 +exec "syncthing -no-browser" +exec sed -i 's/hidden-mode=river-auto/hidden-mode=always/g' ~/.config/lavalauncher/config.conf +exec lavalauncher -c ~/.config/lavalauncher/config.conf +exec sh /home/bryan/.nix-profile/etc/profile.d/nix.sh +exec_always /usr/share/sway/scripts/inactive-windows-transparency.py --opacity 0.8 +exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 +exec mkfifo $SWAYSOCK.wob && tail -f $SWAYSOCK.wob | wob --border-color '#ff5e81ac' --background-color '#cc2e3440' --bar-color '#ff5e81ac' +exec 'fish -c "set -Ux XDG_CURRENT_DESKTOP sway"' + +# Dynamic Wallpaper +# exec "oguri -c ~/.config/oguri/config" +# exec dwall -s flcl & + diff --git a/.config/sway/config b/.config/sway/config new file mode 100644 index 0000000..bca82f7 --- /dev/null +++ b/.config/sway/config @@ -0,0 +1,9 @@ +# 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 diff --git a/.config/sway/config.d/application_defaults b/.config/sway/config.d/application_defaults new file mode 100644 index 0000000..d6c9c47 --- /dev/null +++ b/.config/sway/config.d/application_defaults @@ -0,0 +1,48 @@ +# Assign workspaces +assign [app_id="xfce4-terminal"] 1 +for_window [app_id="xfce4-terminal"] focus + +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 + +# set floating (nontiling)for apps needing it: +for_window [class="Yad" instance="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 +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 diff --git a/.config/sway/config.d/autostart_applications b/.config/sway/config.d/autostart_applications new file mode 100644 index 0000000..77f177a --- /dev/null +++ b/.config/sway/config.d/autostart_applications @@ -0,0 +1,8 @@ +# Auth with polkit-gnome: +exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 + +# Desktop notifications +exec mako + +# Network Applet +exec nm-applet --indicator diff --git a/.config/sway/config.d/clamshell b/.config/sway/config.d/clamshell new file mode 100644 index 0000000..0f7abd9 --- /dev/null +++ b/.config/sway/config.d/clamshell @@ -0,0 +1,6 @@ +# Clamshell Mode +set $laptop +bindswitch --reload --locked lid:on output $laptop disable +bindswitch --reload --locked lid:off output $laptop enable + +exec_always ~/.config/sway/scripts/clamshell.sh \ No newline at end of file diff --git a/.config/sway/config.d/default b/.config/sway/config.d/default new file mode 100644 index 0000000..6aeda5d --- /dev/null +++ b/.config/sway/config.d/default @@ -0,0 +1,205 @@ +# 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 : Alt terminal is termite change below + line 1 in application_defaults +set $term xfce4-terminal + +# 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 * dpms off"' \ + resume 'swaymsg "output * dpms 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 terminal + bindsym $mod+Return exec $term + + # 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 + + # 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 $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" + +# 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 +# + bindsym --locked XF86AudioRaiseVolume exec pamixer -ui 2 + bindsym --locked XF86AudioLowerVolume exec pamixer -ud 2 + bindsym --locked XF86AudioMute exec pamixer -t +# +# 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 diff --git a/.config/sway/config.d/input b/.config/sway/config.d/input new file mode 100644 index 0000000..b626938 --- /dev/null +++ b/.config/sway/config.d/input @@ -0,0 +1,33 @@ +### 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. +# +# Keyboard - Uncomment to Pick - Defualt is ENGLISH (UK) +# +# All langauges and varinats in keyboard.conf +# +# input * xkb_layout "gb" +# input * xkb_layout "de" +# input * xkb_layout "nl" + +input * xkb_layout "us" + +# You can get the names of your inputs by running: swaymsg -t get_input. +# Put your touchpad's ID to replace "1267:12363:ELAN0650:01_04F3:304B_Touchpad" (keep the quotation marks) +input "1267:12363:ELAN0650:01_04F3:304B_Touchpad" { + dwt enabled + tap enabled + natural_scroll enabled + middle_emulation enabled +} + diff --git a/.config/sway/config.d/output b/.config/sway/config.d/output new file mode 100644 index 0000000..203d10e --- /dev/null +++ b/.config/sway/config.d/output @@ -0,0 +1,7 @@ +### 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 \ No newline at end of file diff --git a/.config/sway/config.d/theme b/.config/sway/config.d/theme new file mode 100644 index 0000000..78d6d25 --- /dev/null +++ b/.config/sway/config.d/theme @@ -0,0 +1,38 @@ +# Apply gtk theming +exec_always ~/.config/sway/scripts/import-gsettings + +# Set inner/outer gaps +gaps inner 2 +gaps outer 0 + +# 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 ~/.config/sway/sway.png + +# 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 +} diff --git a/.config/sway/keyboard.conf b/.config/sway/keyboard.conf new file mode 100644 index 0000000..0c034fd --- /dev/null +++ b/.config/sway/keyboard.conf @@ -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) diff --git a/.config/sway/scripts/clamshell.sh b/.config/sway/scripts/clamshell.sh new file mode 100644 index 0000000..1404d36 --- /dev/null +++ b/.config/sway/scripts/clamshell.sh @@ -0,0 +1,6 @@ +#!/usr/bin/bash +if cat /proc/acpi/button/lid/LID/state | grep -q open; then + swaymsg output enable +else + swaymsg output disable +fi diff --git a/.config/sway/scripts/import-gsettings b/.config/sway/scripts/import-gsettings new file mode 100644 index 0000000..e1257df --- /dev/null +++ b/.config/sway/scripts/import-gsettings @@ -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" diff --git a/.config/sway/scripts/lockman.sh b/.config/sway/scripts/lockman.sh new file mode 100644 index 0000000..09b3ad9 --- /dev/null +++ b/.config/sway/scripts/lockman.sh @@ -0,0 +1,9 @@ +#!/bin/sh +# Times the screen off and puts it to background +swayidle \ + timeout 5 'swaymsg "output * dpms off"' \ + resume 'swaymsg "output * dpms on"' & +# Locks the screen immediately +swaylock +# Kills last background task so idle timer doesn't keep running +kill %% diff --git a/.config/sway/scripts/screenshot.sh b/.config/sway/scripts/screenshot.sh new file mode 100644 index 0000000..d946a21 --- /dev/null +++ b/.config/sway/scripts/screenshot.sh @@ -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 diff --git a/.config/sway/scripts/weather.sh b/.config/sway/scripts/weather.sh new file mode 100644 index 0000000..ce0f458 --- /dev/null +++ b/.config/sway/scripts/weather.sh @@ -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°=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' }' + + + diff --git a/.config/sway/sway.png b/.config/sway/sway.png new file mode 100644 index 0000000..6324dc4 Binary files /dev/null and b/.config/sway/sway.png differ diff --git a/.config/sway/swaylock.png b/.config/sway/swaylock.png new file mode 100644 index 0000000..ac82334 Binary files /dev/null and b/.config/sway/swaylock.png differ diff --git a/.config/waybar/config b/.config/waybar/config new file mode 100644 index 0000000..1b55e44 --- /dev/null +++ b/.config/waybar/config @@ -0,0 +1,204 @@ +// Global +{ + "layer": "top", + "position": "top", + // If height property would be not present, it'd be calculated dynamically + "height": 30, + + "modules-left": [ + "custom/launcher", + "sway/workspaces", + "sway/mode", + ], + + "modules-center": [ + ], + + "modules-right": [ + "network", + "memory", + "cpu", + // "custom/weather", + "pulseaudio", + "custom/keyboard-layout", + "battery", + "backlight", + "clock", + "tray", + "custom/power", + ], + +// Modules + +"battery": { + "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": ["", "", "", "", ""] +}, + + +"clock": { + "interval": 10, + "format-alt": " {:%e %b %Y}", // Icon: calendar-alt + "format": "{:%H:%M}", + "tooltip-format": "{:%e %B %Y}" +}, + +"cpu": { + "interval": 5, + "format": " {usage}% ({load})", // Icon: microchip + "states": { + "warning": 70, + "critical": 90 + }, + "on-click": "exec htop", +}, + +"custom/keyboard-layout": { + "exec": "swaymsg -t get_inputs | grep -m1 'xkb_active_layout_name' | cut -d '\"' -f4", + // Interval set only as a fallback, as the value is updated by signal + "interval": 30, + "format": " {}", // Icon: keyboard + // Signal sent by Sway key binding (~/.config/sway/key-bindings) + "signal": 1, // SIGHUP + "tooltip": false + }, + +"memory": { + "interval": 5, + "format": " {}%", // Icon: memory + "states": { + "warning": 70, + "critical": 90 + } +}, + +"network": { + "interval": 5, + "format-wifi": " {essid} ({signalStrength}%)", // Icon: wifi + "format-ethernet": " {ifname}: {ipaddr}/{cidr}", // Icon: ethernet + "format-disconnected": "⚠ Disconnected", + "tooltip-format": "{ifname}: {ipaddr}" +}, +"network#vpn": { + "interface": "tun0", + "format": "嬨 {essid} ({signalStrength}%)", + "format-disconnected": "⚠ Disconnected", + "tooltip-format": "{ifname}: {ipaddr}/{cidr}", + "on-click": "nm-connection-editor" +}, + +"sway/mode": { + "format": "{}", + "tooltip": false +}, + +"sway/window": { + "format": "{}", + "max-length": 120 +}, + +"sway/workspaces": { + "disable-scroll": true, + "disable-markup" : false, + "all-outputs": true, + "format": " {icon} ", + //"format":"{icon}", + "format-icons": { + "1": "", + "2": "", + "3": "", + "4": "", + } + }, +"pulseaudio": { + "scroll-step": 1, // %, can be a float + "format": "{volume}% {icon}", + "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", + "on-scroll-up": "pamixer -ui 2", + "on-scroll-down": "pamixer -ud 2", +}, + +"custom/weather": { + "exec": "~/.config/waybar/scripts/weather.sh", + "format": "{}", + "return-type": "json", + "interval": 600 +}, + +"tray": { + "icon-size": 18, + "spacing":10, + }, + +"backlight": { + "interval": 5, + "format": "{icon} {percent}%", + "format-alt": "{percent}% {icon}", + "format-alt-click": "click-right", + "format-icons": ["🌕", "🌔", "🌓", "🌒", "🌑"], + "on-scroll-down": "brightnessctl -c backlight set +5%", + "on-scroll-up": "brightnessctl -c backlight set 5%-" +}, + +"custom/firefox": { + "format": " ", + "on-click": "exec firefox", + "tooltip": false +}, + +"custom/terminal": { + "format": " ", + "on-click": "exec alacritty", + "tooltip": false +}, + +"custom/files": { + "format": " ", + "on-click": "exec thunar", + "tooltip": false +}, + +"custom/launcher": { + "format":" ", + "on-click": "exec wofi -c ~/.config/wofi/config -I", + "tooltip": false, +}, + +"custom/power": { + "format":"⏻", + "on-click": "exec ~/.config/waybar/scripts/power-menu.sh", + "tooltip": false, + }, +} +"wlr/taskbar": { + "format": "{icon}", + "icon-size": 14, + "icon-theme": "Numix-Circle", + "tooltip-format": "{title}", + "on-click": "activate", + "on-click-middle": "close" +} diff --git a/.config/waybar/scripts/power-menu.sh b/.config/waybar/scripts/power-menu.sh new file mode 100644 index 0000000..edaa5d6 --- /dev/null +++ b/.config/waybar/scripts/power-menu.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +entries="Logout Suspend Reboot Shutdown" + +selected=$(printf '%s\n' $entries | wofi --conf=$HOME/.config/wofi/config.power --style=$HOME/.config/wofi/style.widgets.css | awk '{print tolower($1)}') + +case $selected in + logout) + swaymsg exit;; + suspend) + exec systemctl suspend;; + reboot) + exec systemctl reboot;; + shutdown) + exec systemctl poweroff -i;; +esac diff --git a/.config/waybar/scripts/weather.sh b/.config/waybar/scripts/weather.sh new file mode 100644 index 0000000..b03cd1c --- /dev/null +++ b/.config/waybar/scripts/weather.sh @@ -0,0 +1,13 @@ +#!/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=$LOCATION°=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' }' + diff --git a/.config/waybar/style.css b/.config/waybar/style.css new file mode 100644 index 0000000..b62f477 --- /dev/null +++ b/.config/waybar/style.css @@ -0,0 +1,201 @@ +/* ============================================================================= + * + * Waybar configuration + * + * Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration + * + * =========================================================================== */ + +/* ----------------------------------------------------------------------------- + * Keyframes + * -------------------------------------------------------------------------- */ + /* +Arc-Dark Color Scheme +*/ + +@define-color highlight #5294e2 ; +@define-color base1 #404552 ; + + + +@keyframes blink-warning { + 70% { + color: white; + } + + to { + color: white; + background-color: orange; + } +} + +@keyframes blink-critical { + 70% { + color: white; + } + + to { + color: white; + background-color: red; + } +} + + +/* ----------------------------------------------------------------------------- + * Base styles + * -------------------------------------------------------------------------- */ + +/* Reset all styles */ +* { + border: none; + border-radius: 0; + min-height: 0; + margin: 1px; + padding: 0; +} + +/* The whole bar */ +#waybar { + background: transparent; + color: #bebebe; + background-color: @base1; + font-family: UbuntuMono; + font-size: 14px; +} + +/* Each module */ +#battery, +#clock, +#backlight, +#cpu, +#custom-keyboard-layout, +#memory, +#mode, +#network, +#pulseaudio, +#temperature, +#tray { + margin-left:10px; + margin-right:10px; + padding:0; +} + + + + +/* ----------------------------------------------------------------------------- + * Module styles + * -------------------------------------------------------------------------- */ + +#battery { + margin-top:3px; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#battery.warning { + color: orange; +} + +#battery.critical { + color: red; +} + +#battery.warning.discharging { + animation-name: blink-warning; + animation-duration: 3s; +} + +#battery.critical.discharging { + animation-name: blink-critical; + animation-duration: 2s; +} + +#cpu{ + margin-top:2.5px; +} +#cpu.warning { + color: orange; +} + +#cpu.critical { + color: red; +} + +#memory { + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#memory.warning { + color: orange; + } + +#memory.critical { + color: red; + animation-name: blink-critical; + animation-duration: 2s; +} + +#mode { + background: @highlight; + border-bottom: 3px transparent; + color:white; + margin-left: 5px; + padding:7; + } + +#network.disconnected { + color: orange; +} + +#pulseaudio{ + margin-top:2px; +} +#pulseaudio.muted { + color: @highlight; +} + +#temperature.critical { + color: red; +} + +#window { + font-weight: bold; +} + +#workspaces{ +font-size:18px; +} +#workspaces button { + border-bottom: 3px solid transparent; + margin-bottom: 0px; + padding:0px; + +} + +#workspaces button.focused { + border-bottom: 3px solid @highlight; + margin-bottom: 1px; + padding-left:0; + } + +#workspaces button.urgent { + border-color: #c9545d; + color: #c9545d; +} + +#custom-power{ + margin-left:15px; + margin-right:15px; + font-size:20px; +} +#custom-launcher{ + font-size:20px; + margin-left:15px; + margin-right:10px; + } + +