diff options
author | jakob.stendahl <jakob.stendahl@infomedia.dk> | 2023-04-25 07:45:50 +0200 |
---|---|---|
committer | jakob.stendahl <jakob.stendahl@infomedia.dk> | 2023-04-25 07:45:50 +0200 |
commit | bb5818068337cc3e5f985123e61030298469368b (patch) | |
tree | f11b10a34790ede05770c207e2b7f74fbd96dab9 /Common | |
parent | ae56946206235b8b6f30a184d29a41cc5dcc39ca (diff) | |
download | dotfiles-bb5818068337cc3e5f985123e61030298469368b.tar.gz dotfiles-bb5818068337cc3e5f985123e61030298469368b.zip |
Add wayland things
Diffstat (limited to 'Common')
-rw-r--r-- | Common/foot/foot.ini | 202 | ||||
l--------- | Common/nvim/nvim | 1 | ||||
-rw-r--r-- | Common/sway/autostart | 12 | ||||
-rw-r--r-- | Common/sway/config | 272 | ||||
-rw-r--r-- | Common/sway/config-backup-20230330-194759 | 134 | ||||
-rw-r--r-- | Common/sway/keyboard | 7 | ||||
-rw-r--r-- | Common/sway/outputs | 0 | ||||
-rw-r--r-- | Common/sway/pointer | 5 | ||||
-rw-r--r-- | Common/sway/touchpad | 13 | ||||
-rw-r--r-- | Common/sway/variables | 6 | ||||
-rw-r--r-- | Common/sway/workspaces | 0 | ||||
-rw-r--r-- | Common/waybar/config | 177 | ||||
-rw-r--r-- | Common/waybar/style.bar.css | 250 | ||||
l--------- | Common/waybar/style.css | 1 | ||||
-rw-r--r-- | Common/waybar/style.rounded.css | 258 | ||||
-rw-r--r-- | Common/waybar/style.segmented.css | 265 |
16 files changed, 1603 insertions, 0 deletions
diff --git a/Common/foot/foot.ini b/Common/foot/foot.ini new file mode 100644 index 0000000..710c0dc --- /dev/null +++ b/Common/foot/foot.ini @@ -0,0 +1,202 @@ +# -*- conf -*- + +# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd) +# term=foot (or xterm-256color if built with -Dterminfo=disabled) +# login-shell=no + +# app-id=foot +# title=foot +# locked-title=no + +#font=monospace:size=11 +font=RobotoMono Nerd Font Mono:size=10 +#font=Source Code Pro for Powerline:size=10 + +# font-bold=<bold variant of regular font> +# font-italic=<italic variant of regular font> +# font-bold-italic=<bold+italic variant of regular font> +# line-height=<font metrics> +# letter-spacing=0 +# horizontal-letter-offset=0 +# vertical-letter-offset=0 +# underline-offset=<font metrics> +# box-drawings-uses-font-glyphs=no +dpi-aware=no + +# initial-window-size-pixels=700x500 # Or, +# initial-window-size-chars=<COLSxROWS> +# initial-window-mode=windowed +pad=0x0 center # optionally append 'center' +# resize-delay-ms=100 + +# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body} + +# bold-text-in-bright=no +# word-delimiters=,│`|:"'()[]{}<> +# selection-target=primary +# workers=<number of logical CPUs> + +[bell] +# urgent=no +# notify=no +# command= +# command-focused=no + +[scrollback] +# lines=1000 +# multiplier=3.0 +# indicator-position=relative +# indicator-format= + +[url] +# launch=xdg-open ${url} +# label-letters=sadfjklewcmpgh +# osc8-underline=url-mode +# protocols=http, https, ftp, ftps, file, gemini, gopher +# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="' + +[cursor] +# style=block +# color=111111 dcdccc +# blink=no +# beam-thickness=1.5 +# underline-thickness=<font underline thickness> + +[mouse] +# hide-when-typing=no +# alternate-scroll-mode=yes + +[colors] +alpha=1 + +background=eeeeee +foreground=0E1116 +regular0=24292f +regular1=cf222e +regular2=116329 +regular3=4d2d00 +regular4=0969da +regular5=8250df +regular6=1b7c83 +regular7=6e7781 +bright0=57606a +bright1=a40e26 +bright2=1a7f37 +bright3=633c01 +bright4=218bff +bright5=a475f9 +bright6=3192aa +bright7=8c959f + +# foreground=dcdccc +# background=111111 + +## Normal/regular colors (color palette 0-7) +# regular0=222222 # black +# regular1=cc9393 # red +# regular2=7f9f7f # green +# regular3=d0bf8f # yellow +# regular4=6ca0a3 # blue +# regular5=dc8cc3 # magenta +# regular6=93e0e3 # cyan +# regular7=dcdccc # white + +## Bright colors (color palette 8-15) +# bright0=666666 # bright black +# bright1=dca3a3 # bright red +# bright2=bfebbf # bright green +# bright3=f0dfaf # bright yellow +# bright4=8cd0d3 # bright blue +# bright5=fcace3 # bright magenta +# bright6=b3ffff # bright cyan +# bright7=ffffff # bright white + +## dimmed colors (see foot.ini(5) man page) +# dim0=<not set> +# ... +# dim7=<not-set> + +## The remaining 256-color palette +# 16 = <256-color palette #16> +# ... +# 255 = <256-color palette #255> + +## Misc colors +# selection-foreground=<inverse foreground/background> +# selection-background=<inverse foreground/background> +# jump-labels=<regular0> <regular3> +# urls=<regular3> +# scrollback-indicator=<regular0> <bright4> + +[csd] +# preferred=server +# size=26 +# font=<primary font> +# color=<foreground color> +border-width=0 +# border-color=<csd.color> +# button-width=26 +# button-color=<background color> +# button-minimize-color=<regular4> +# button-maximize-color=<regular2> +# button-close-color=<regular1> + +[key-bindings] +# scrollback-up-page=Shift+Page_Up +# scrollback-up-half-page=none +# scrollback-up-line=none +# scrollback-down-page=Shift+Page_Down +# scrollback-down-half-page=none +# scrollback-down-line=none +clipboard-copy=Mod1+c XF86Copy +clipboard-paste=Mod1+v XF86Paste +# primary-paste=Shift+Insert +# search-start=Control+Shift+r +# font-increase=Control+plus Control+equal Control+KP_Add +# font-decrease=Control+minus Control+KP_Subtract +# font-reset=Control+0 Control+KP_0 +# spawn-terminal=Control+Shift+n +# minimize=none +# maximize=none +# fullscreen=none +# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none +# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none +# pipe-selected=[xargs -r firefox] none +# show-urls-launch=Control+Shift+u +# show-urls-copy=none +# noop=none + +[search-bindings] +# cancel=Control+g Control+c Escape +# commit=Return +# find-prev=Control+r +# find-next=Control+s +# cursor-left=Left Control+b +# cursor-left-word=Control+Left Mod1+b +# cursor-right=Right Control+f +# cursor-right-word=Control+Right Mod1+f +# cursor-home=Home Control+a +# cursor-end=End Control+e +# delete-prev=BackSpace +# delete-prev-word=Mod1+BackSpace Control+BackSpace +# delete-next=Delete +# delete-next-word=Mod1+d Control+Delete +# extend-to-word-boundary=Control+w +# extend-to-next-whitespace=Control+Shift+w +# clipboard-paste=Control+v Control+y +# primary-paste=Shift+Insert + +[url-bindings] +# cancel=Control+g Control+c Control+d Escape +# toggle-url-visible=t + +[mouse-bindings] +# selection-override-modifiers=Shift +# primary-paste=BTN_MIDDLE +# select-begin=BTN_LEFT +# select-begin-block=Control+BTN_LEFT +# select-extend=BTN_RIGHT +# select-extend-character-wise=Control+BTN_RIGHT +# select-word=BTN_LEFT-2 +# select-word-whitespace=Control+BTN_LEFT-2 +# select-row=BTN_LEFT-3 diff --git a/Common/nvim/nvim b/Common/nvim/nvim new file mode 120000 index 0000000..3b8a801 --- /dev/null +++ b/Common/nvim/nvim @@ -0,0 +1 @@ +/home/jakob/_code/dotfiles/Common/nvim
\ No newline at end of file diff --git a/Common/sway/autostart b/Common/sway/autostart new file mode 100644 index 0000000..5b8710e --- /dev/null +++ b/Common/sway/autostart @@ -0,0 +1,12 @@ +exec rm /tmp/nwg-shell-check-update.lock +exec wlsunset -l 59.9614 -L 10.925 -t 4500 -T 6500 -g 1.0 +#exec swaync -s /home/jakob/.config/swaync/preset-1.css +exec nm-applet --indicator +#exec_always nwg-autotiling +#exec_always nwg-drawer -r -c 6 -is 64 -fscol 2 -s preset-1.css -term foot +#exec_always nwg-dock -d -p bottom -a center -i 48 -hd 20 -s preset-1.css +#exec_always nwg-panel -c preset-1 -s preset-1.css +#exec_always nwg-shell-check-updates +exec swayidle timeout 1200 nwg-lock timeout 1800 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' +#exec nwg-update-indicator +#exec nwg-shell-config diff --git a/Common/sway/config b/Common/sway/config new file mode 100644 index 0000000..31aed6a --- /dev/null +++ b/Common/sway/config @@ -0,0 +1,272 @@ +# The files we include below will be created / overwritten by nwg-shell tools +# +include variables +include outputs +include autostart +include workspaces +include keyboard +include pointer +include touchpad + +# nwg-shell sway config +# Read `man 5 sway` for reference. + +# border & title +for_window [title="^.*"] border none, title_format "<b> %class >> %title </b>" +default_border none + +# gaps +gaps inner 5 +gaps outer 0 +smart_gaps off + +# font +font pango:monospace 11 + +# mod key used for most binds +# Mod1 = Alt +# Mod4 = Super +set $Mod Mod4 + +# direction keys +set $up l +set $down k +set $left j +set $right semicolon + +############### wob ################## +set $WOBSOCK $XDG_RUNTIME_DIR/wob.sock +exec rm -f $WOBSOCK && mkfifo $WOBSOCK && tail -f $WOBSOCK | wob + +############### Autostart ################## + +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 +exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 +exec ~/.azotebg +exec blueman-applet +exec udiskie + +### Turn off screen on lid closed +set $laptop eDP-1 +bindswitch lid:on output $laptop disable +bindswitch lid:off output $laptop enable + +############# Bindings ################## + +# kill focused window +bindsym $Mod+Shift+q kill +bindsym Mod1+q kill +bindsym Mod1+F4 kill + +# core applications +bindsym $Mod+Return exec $term +bindsym $Mod+s exec nwg-shell-config +bindsym $Mod+w exec $browser +bindsym $Mod+f exec $filemanager +bindsym $Mod+c exec swaync-client -t +bindsym Mod1+l exec nwg-lock +bindsym $Mod+F1 exec nwg-shell-help +bindsym $Mod+d exec wofi --show=drun +#bindsym $Mod+d exec rofi -lines 12 -padding 18 -width 60 -location 0 -show drun -sidebar-mode -columns 3 -font 'Noto Sans 8' + +# Exit menu +bindsym $Mod+p exec $exit + +# Exit sway (default way to log you out of your Wayland session) +bindsym $Mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit' + +# screenshot +bindsym Print exec screenshot fullscreen +bindsym Control+Print exec screenshot display +bindsym Shift+Control+Print exec grim -g "$(slurp)" - | swappy -f - +bindsym $Mod+Shift+Control+Print exec screenshot focused + +# audio +bindsym XF86AudioRaiseVolume exec amixer sset Master 5%+ | sed -En 's/.*\[([0-9]+)%\].*/\1/p' | head -1 > $WOBSOCK +bindsym XF86AudioLowerVolume exec amixer sset Master 5%- | sed -En 's/.*\[([0-9]+)%\].*/\1/p' | head -1 > $WOBSOCK +bindsym XF86AudioMute exec amixer sset Master toggle | sed -En '/\[on\]/ s/.*\[([0-9]+)%\].*/\1/ p; /\[off\]/ s/.*/0/p' | head -1 > $WOBSOCK +bindsym XF86AudioMicMute exec amixer set Capture toggle + +# backlight +bindsym XF86MonBrightnessDown exec brightnessctl set 5%- | sed -En 's/.*\(([0-9]+)%\).*/\1/p' > $WOBSOCK +bindsym XF86MonBrightnessUp exec brightnessctl set +5% | sed -En 's/.*\(([0-9]+)%\).*/\1/p' > $WOBSOCK + +# Open wdisplays +bindsym XF86Display exec --no-startup-id "wdisplays" + +# Reload the configuration file +bindsym $Mod+Shift+c reload + +# Shortcut to tt gui +bindsym $Mod+Shift+Return exec /home/jakob/.local/bin/tt-g + +# Keyboard layout +bindsym $Mod+Shift+F1 exec "swaymsg input 1:1:AT_Translated_Set_2_keyboard xkb_layout no" +bindsym $Mod+Shift+F2 exec "swaymsg input 1:1:AT_Translated_Set_2_keyboard xkb_layout us" + +########### Workspace Bindings ############### + +# 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 + +# switch to workspace - numpad alternatives +bindsym $Mod+Mod2+KP_1 workspace number 1 +bindsym $Mod+Mod2+KP_2 workspace number 2 +bindsym $Mod+Mod2+KP_3 workspace number 3 +bindsym $Mod+Mod2+KP_4 workspace number 4 +bindsym $Mod+Mod2+KP_5 workspace number 5 +bindsym $Mod+Mod2+KP_6 workspace number 6 +bindsym $Mod+Mod2+KP_7 workspace number 7 +bindsym $Mod+Mod2+KP_8 workspace number 8 +bindsym $Mod+Mod2+KP_9 workspace number 9 + +# switch to next or previous workspace +bindsym $Mod+Mod1+Left workspace prev +bindsym $Mod+Mod1+Right workspace next + +# move focused container to workspace +bindsym $Mod+Shift+1 move container to workspace number 1; workspace number 1 +bindsym $Mod+Shift+2 move container to workspace number 2; workspace number 2 +bindsym $Mod+Shift+3 move container to workspace number 3; workspace number 3 +bindsym $Mod+Shift+4 move container to workspace number 4; workspace number 4 +bindsym $Mod+Shift+5 move container to workspace number 5; workspace number 5 +bindsym $Mod+Shift+6 move container to workspace number 6; workspace number 6 +bindsym $Mod+Shift+7 move container to workspace number 7; workspace number 7 +bindsym $Mod+Shift+8 move container to workspace number 8; workspace number 8 +bindsym $Mod+Shift+9 move container to workspace number 9; workspace number 9 + +# move focused container to workspace - numpad alternatives +bindsym $Mod+Shift+Mod2+KP_End move container to workspace number 1; workspace number 1 +bindsym $Mod+Shift+Mod2+KP_Down move container to workspace number 2; workspace number 2 +bindsym $Mod+Shift+Mod2+KP_Next move container to workspace number 3; workspace number 3 +bindsym $Mod+Shift+Mod2+KP_Left move container to workspace number 4; workspace number 4 +bindsym $Mod+Shift+Mod2+KP_Begin move container to workspace number 5; workspace number 5 +bindsym $Mod+Shift+Mod2+KP_Right move container to workspace number 6; workspace number 7 +bindsym $Mod+Shift+Mod2+KP_Home move container to workspace number 7; workspace number 7 +bindsym $Mod+Shift+Mod2+KP_Up move container to workspace number 8; workspace number 8 + +############ Container/Window control ############ + +# Scratchpad, Floating +bindsym $Mod+space floating toggle +floating_modifier $Mod normal + +# 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+z 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+z scratchpad show + +# change focus +bindsym $Mod+$left focus left +bindsym $Mod+$down focus down +bindsym $Mod+$up focus up +bindsym $Mod+$right focus right + +# alternatively, you can use the cursor keys: +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 + +# alternatively, you can use the cursor keys: +bindsym $Mod+Shift+Up move up +bindsym $Mod+Shift+Down move down +bindsym $Mod+Shift+Left move left +bindsym $Mod+Shift+Right move right + +# Resizing containers +mode "resize" { + 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" + +# Size +# bindsym Mod1+Up resize shrink height 10 px or 1 ppt +# bindsym Mod1+Down resize grow height 10 px or 1 ppt +# bindsym Mod1+Left resize shrink width 10 px or 1 ppt +# bindsym Mod1+Right resize grow width 10 px or 1 ppt + +# layout toggle +bindsym Mod1+Tab layout toggle tabbed stacking split +bindsym $Mod+Tab layout toggle splitv splith + +# switch to workspace with urgent window +for_window [urgent="latest"] focus +focus_on_window_activation focus + +# container layout +bindsym $Mod+h split h +bindsym $Mod+v split v +bindsym $Mod+Shift+t layout tabbed +bindsym $Mod+Shift+s layout stacking +bindsym $Mod+Shift+h layout toggle split + +default_orientation horizontal + +# make the current focus fullscreen +bindsym $Mod+Shift+f fullscreen + +############### Border & Gaps ############### + +# changing border style +bindsym $Mod+b border toggle + +# change gaps +bindsym $Mod+plus gaps inner current plus 5 +bindsym $Mod+minus gaps inner current minus 5 +bindsym Mod1+plus gaps outer current plus 5 +bindsym Mod1+minus gaps outer current minus 5 + +bindsym $Mod+KP_Add gaps inner current plus 5 +bindsym $Mod+KP_Subtract gaps inner current minus 5 +bindsym Mod1+KP_Add gaps outer current plus 5 +bindsym Mod1+KP_Subtract gaps outer current minus 5 + +############ bar settings ############ +bar { + swaybar_command "waybar" +} + +############ application settings ############ + +# focus, floating, & sticky +for_window [app_id="(?i)(?:blueman-manager|azote|gnome-disks|Thunar|wdisplays)"] floating enable +for_window [app_id="(?i)(?:pavucontrol|nm-connection-editor|gsimplecal|galculator)"] floating enable +for_window [app_id="(?i)(?:firefox|chromium)"] border none +for_window [title="(?i)(?:copying|deleting|moving)"] floating enable + +popup_during_fullscreen smart diff --git a/Common/sway/config-backup-20230330-194759 b/Common/sway/config-backup-20230330-194759 new file mode 100644 index 0000000..f8058d6 --- /dev/null +++ b/Common/sway/config-backup-20230330-194759 @@ -0,0 +1,134 @@ +# set modifier +set $super Mod4 +set $alt Mod1 + +# set font +font pango: Noto Sans 8 + +# Use Mouse+$super to drag floating windows to their wanted position +floating_modifier $super + +exec nm-applet --indicator + +# start a terminal +bindsym $super+Return exec urxvt +bindsym $super+Alt+Return exec urxvt --name floating -e noemutt + +# Shortcut to tt gui +bindsym $super+Shift+Return exec /home/jakob/.local/bin/tt-g + +# start dmenu (a program launcher) +bindsym $super+Shift+d exec i3-dmenu-desktop --dmenu="dmenu -i -fn 'Noto Sans:size=8'" +bindsym $super+d exec rofi -lines 12 -padding 18 -width 60 -location 0 -show drun -sidebar-mode -columns 3 -font 'Noto Sans 8' + +# change volume +bindsym XF86AudioRaiseVolume exec amixer -q set Master 2%+ +bindsym XF86AudioLowerVolume exec amixer -q set Master 2%- +bindsym XF86AudioMute exec amixer set Master toggle +bindsym XF86AudioMicMute exec amixer set Capture toggle + +# music control +#bindsym XF86AudioNext exec mpc next +#bindsym XF86AudioPrev exec mpc prev +#bindsym XF86AudioPlay exec mpc toggle +#bindsym XF86AudioStop exec mpc stop + +# kill focused window +bindsym $alt+F4 kill + +# change focus +bindsym $super+Left focus left +bindsym $super+Down focus down +bindsym $super+Up focus up +bindsym $super+Right focus right +focus_follows_mouse no + +# move focused window +bindsym $super+Shift+Left move left +bindsym $super+Shift+Down move down +bindsym $super+Shift+Up move up +bindsym $super+Shift+Right move right + +# split in horizontal orientation +bindsym $super+h split h + +# split in vertical orientation +bindsym $super+v split v + +# enter fullscreen mode for the focused container +bindsym $super+f fullscreen toggle + +# change container layout split +bindsym $super+s layout toggle split + +# toggle tiling / floating +bindsym $super+space floating toggle + +# change focus between tiling / floating windows +bindsym $super+Shift+space focus mode_toggle + +# switch to workspace +bindsym $alt+Control+Right workspace next +bindsym $alt+Control+Left workspace prev +bindsym $super+1 workspace 1 +bindsym $super+2 workspace 2 +bindsym $super+3 workspace 3 +bindsym $super+4 workspace 4 +bindsym $super+5 workspace 5 +bindsym $super+6 workspace 6 +bindsym $super+7 workspace 7 +bindsym $super+8 workspace 8 +bindsym $super+9 workspace 9 + +# move focused container to workspace +bindsym $super+Shift+1 move container to workspace 1 +bindsym $super+Shift+2 move container to workspace 2 +bindsym $super+Shift+3 move container to workspace 3 +bindsym $super+Shift+4 move container to workspace 4 +bindsym $super+Shift+5 move container to workspace 5 +bindsym $super+Shift+6 move container to workspace 6 +bindsym $super+Shift+7 move container to workspace 7 +bindsym $super+Shift+8 move container to workspace 8 +bindsym $super+Shift+9 move container to workspace 9 + + +#bindsym $super+l exec i3lock -f -c 63bfb6 #-i /home/jakob/.lockscreen.png +bindsym $super+l exec dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock +bindsym $super+Shift+e exec "swaynag -t warning -m 'Really, exit?' -b 'Yes' 'swaymsg exit'" +bindsym $super+p exec --no-startup-id /home/jakob/.config/rofi/bin/applet_powermenu +bindsym $super+Shift+r reload + +# resize window (you can also use the mouse for that) +mode "resize" { + bindsym Left resize shrink width 5 px or 5 ppt + bindsym Down resize grow height 5 px or 5 ppt + bindsym Up resize shrink height 5 px or 5 ppt + bindsym Right resize grow width 5 px or 5 ppt + bindsym Return mode "default" +} +bindsym $super+r mode "resize" + +bar { + swaybar_command waybar +} + +# window rules, you can find the window class using xprop +for_window [class="^.*"] border pixel 2 +for_window [class=Viewnior|feh|Audacious|File-roller|Lxappearance|Lxtask|Pavucontrol|wdisplays|Nitrogen|Nautilus|Eog|gnome-calculator|Thunar|gnome-system-monitor] floating enable +for_window [class=URxvt|Firefox|Geany|Evince|Soffice|libreoffice*|mpv|Ghb|Xfburn|Gimp*|Inkscape|Vlc|Lxappearance|Audacity|Nautilus|Eog|gnome-calculator|Thunar] focus +for_window [class=Xfburn|GParted|System-config-printer.py|Lxtask|Pavucontrol|Exo-helper*|Lxrandr|wdisplays|Nitrogen] focus +for_window [ instance="floating" ] floating enable + +# Keybinds for lenovo x1 carbon +bindsym XF86MonBrightnessUp exec --no-startup-id "/home/jakob/bin/brightness-popup.sh inc" +bindsym XF86MonBrightnessDown exec --no-startup-id "/home/jakob/bin/brightness-popup.sh dec" + +bindsym XF86Display exec --no-startup-id "wdisplays" +bindsym Print exec --no-startup-id "gnome-screenshot --interactive" +bindsym XF86Favorites exec --no-startup-id "kill -s USR1 $(pidof deadd-notification-center)" + +# Keybinds for switching keyboard layout +#bindsym $super+Shift+F1 exec setxkbmap -layout no; notify-send.py "Keyboard layout NO" +#bindsym $super+Shift+F2 exec setxkbmap -layout gb; notify-send.py "Keyboard layout EN" +bindsym $super+Shift+F1 exec "/home/jakob/bin/kblayout.sh no" +bindsym $super+Shift+F2 exec "/home/jakob/bin/kblayout.sh us" diff --git a/Common/sway/keyboard b/Common/sway/keyboard new file mode 100644 index 0000000..935ef70 --- /dev/null +++ b/Common/sway/keyboard @@ -0,0 +1,7 @@ +input "type:keyboard" { + xkb_layout us + repeat_delay 300 + repeat_rate 40 + xkb_capslock disabled + xkb_numlock disabled +} diff --git a/Common/sway/outputs b/Common/sway/outputs new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Common/sway/outputs diff --git a/Common/sway/pointer b/Common/sway/pointer new file mode 100644 index 0000000..db6e52f --- /dev/null +++ b/Common/sway/pointer @@ -0,0 +1,5 @@ +input "type:pointer" { + natural_scroll disabled + scroll_factor 1.0 + left_handed disabled +} diff --git a/Common/sway/touchpad b/Common/sway/touchpad new file mode 100644 index 0000000..2cdb7bf --- /dev/null +++ b/Common/sway/touchpad @@ -0,0 +1,13 @@ +input "type:touchpad" { + pointer_accel 0.0 + natural_scroll disabled + scroll_factor 1.0 + scroll_method two_finger + left_handed disabled + tap enabled + tap_button_map lrm + drag enabled + drag_lock disabled + dwt enabled + middle_emulation enabled +} diff --git a/Common/sway/variables b/Common/sway/variables new file mode 100644 index 0000000..a0d521b --- /dev/null +++ b/Common/sway/variables @@ -0,0 +1,6 @@ +set $term foot +set $browser google-chrome-stable --enable-features=UseOzonePlatform --ozone-platform=wayland +set $filemanager thunar +set $editor emacs +set $launcher nwg-drawer +set $exit nwg-bar -p center -a middle -i 48 -s preset-1.css diff --git a/Common/sway/workspaces b/Common/sway/workspaces new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Common/sway/workspaces diff --git a/Common/waybar/config b/Common/waybar/config new file mode 100644 index 0000000..1f720dd --- /dev/null +++ b/Common/waybar/config @@ -0,0 +1,177 @@ +{ + // "layer": "top", // Waybar at top layer + // "position": "bottom", // Waybar position (top|bottom|left|right) + //"height": 0, // Waybar height (to be removed for auto height) + // "width": 1280, // Waybar width + "spacing": 0, // Gaps between modules (4px) + // Choose the order of the modules + "modules-left": ["sway/workspaces", "sway/mode", "sway/scratchpad", "custom/media"], + "modules-center": ["clock"], + "modules-right": ["temperature", "mpd", "cpu", "memory", "idle_inhibitor", "sway/language", "pulseaudio", "battery", "battery#bat2", "tray"], + // Modules configuration + "sway/workspaces": { + //"disable-scroll": true, + //"all-outputs": true, + //"format": "{name}: {icon}", + //"format-icons": { + // "1": "", + // "2": "", + // "3": "", + // "4": "", + // "5": "", + // "urgent": "", + // "focused": "", + // "default": "" + //} + }, + "keyboard-state": { + "numlock": true, + "capslock": true, + "format": "{name} {icon}", + "format-icons": { + "locked": "", + "unlocked": "" + } + }, + "sway/mode": { + "format": "<span style=\"italic\">{}</span>" + }, + "sway/scratchpad": { + "format": "{icon} {count}", + "show-empty": false, + "format-icons": ["", ""], + "tooltip": true, + "tooltip-format": "{app}: {title}" + }, + "mpd": { + "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ", + "format-disconnected": "Disconnected ", + "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", + "unknown-tag": "N/A", + "interval": 2, + "consume-icons": { + "on": " " + }, + "random-icons": { + "off": "<span color=\"#f53c3c\"></span> ", + "on": " " + }, + "repeat-icons": { + "on": " " + }, + "single-icons": { + "on": "1 " + }, + "state-icons": { + "paused": "", + "playing": "" + }, + "tooltip-format": "MPD (connected)", + "tooltip-format-disconnected": "MPD (disconnected)" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + "clock": { + // "timezone": "America/New_York", + "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", + "format-alt": "{:%Y-%m-%d}" + }, + "cpu": { + "format-critical": " {usage}%", + "format": "", + "tooltip": false, + "on-click": "gnome-system-monitor", + "states": { + "critical": 90, + }, + }, + "memory": { + "format-critical": " {}%", + "format": "", + "on-click": "gnome-system-monitor", + "states": { + "critical": 90, + }, + }, + "temperature": { + // "thermal-zone": 2, + // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", + "critical-threshold": 80, + "format-critical": "{icon} {temperatureC}°C", + "format": "", + "format-icons": ["", "", ""] + }, + "backlight": { + // "device": "acpi_video1", + "format": "{percent}% {icon}", + "format-icons": ["", "", "", "", "", "", "", "", ""] + }, + "battery": { + "states": { + "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{icon} {capacity}%", + "format-charging": " {capacity}%", + "format-plugged": " {capacity}%", + "format-alt": "{icon} {time}", + // "format-good": "", // An empty format will hide the module + // "format-full": "", + "format-icons": ["", "", "", "", ""], + "full-at": 99 + }, + "battery#bat2": { + "bat": "BAT2" + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "{essid} ({signalStrength}%) ", + "format-ethernet": "{ipaddr}/{cidr} ", + "tooltip-format": "{ifname} via {gwaddr} ", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": "Disconnected ⚠", + "format-alt": "{ifname}: {ipaddr}/{cidr}" + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{icon} {volume}% {format_source}", + "format-bluetooth": "{volume}% {icon} {format_source}", + "format-bluetooth-muted": " {icon} {format_source}", + "format-muted": "🔇 {format_source}", + "format-source": " {volume}%", + "format-source-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click": "pavucontrol" + }, + "custom/media": { + "format": "{icon} {}", + "return-type": "json", + "max-length": 40, + "format-icons": { + "spotify": "", + "default": "🎜" + }, + "escape": true, + "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder + // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name + } +} + diff --git a/Common/waybar/style.bar.css b/Common/waybar/style.bar.css new file mode 100644 index 0000000..6da031f --- /dev/null +++ b/Common/waybar/style.bar.css @@ -0,0 +1,250 @@ +* { + border: none; + border-radius: 0; + /* `otf-font-awesome` is required to be installed for icons */ + font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; + font-size: 13px; + min-height: 0; +} + +window#waybar { + background-color: rgba(43, 48, 59, 1.5); + /* border-bottom: 3px solid rgba(100, 114, 125, 0.5); */ + border-bottom: 0px solid rgba(100, 114, 125, 0.0); + color: #ffffff; + transition-property: background-color; + transition-duration: .5s; +} + +window#waybar.hidden { + opacity: 0.2; +} + +/* +window#waybar.empty { + background-color: transparent; +} +window#waybar.solo { + background-color: #FFFFFF; +} +*/ + +window#waybar.termite { + background-color: #3F3F3F; +} + +window#waybar.chromium { + background-color: #000000; + border: none; +} + +#workspaces button { + padding: 0 5px; + padding-top: 4px; + background-color: transparent; + color: #ffffff; + border-bottom: 3px solid transparent; +} + +/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ +#workspaces button:hover { + background: rgba(0, 0, 0, 0.2); + box-shadow: inherit; + border-bottom: 3px solid #ffffff; +} + +#workspaces button.focused { + background-color: #64727D; + /* border-bottom: 3px solid #ffffff; */ +} + +#workspaces button.urgent { + background-color: #eb4d4b; +} + +#mode { + background-color: #64727D; + /* border-bottom: 3px solid #ffffff; */ +} + +#clock, +#battery, +#cpu, +#memory, +#temperature, +#backlight, +#network, +#pulseaudio, +#custom-media, +#tray, +#mode, +#language, +#idle_inhibitor, +#mpd { + padding: 0 10px; + margin: 5px 0px; + color: #ffffff; + border-radius: 20px; +} + +#clock { + /* background-color: #64727D; */ +} + +#battery { + /* background-color: #ffffff; */ + /* color: #000000; */ +} + +#battery.charging { + animation-name: blink-charge; + animation-duration: 5.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#battery.warning { + animation-name: blink-warn; + animation-duration: 3.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +@keyframes blink-charge { + to { + background-color: #007820; + } +} + +@keyframes blink-warn { + to { + background-color: #ff9142; + } +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} + +@keyframes blink-critical { + to { + background-color: #f53c3c; + } +} + +#battery.critical:not(.charging) { + background-color: #f53c3c; + color: #ffffff; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +label:focus { + background-color: #000000; +} + +#memory, +#cpu { + /* color: #000000; */ +} + +#memory.critical, +#cpu.critical { + animation-name: blink-critical; + animation-duration: 1.2s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#backlight { + background-color: #90b1b1; +} + +#network { + /* background-color: #2980b9; */ +} + +#network.disconnected { + background-color: #f53c3c; +} + +#pulseaudio { + /* background-color: #f1c40f; */ + /* color: #000000; */ +} + +#pulseaudio.muted { + /* background-color: #90b1b1; */ + /* color: #2a5c45; */ +} + +#custom-media { + background-color: #66cc99; + color: #2a5c45; + min-width: 100px; +} + +#custom-media.custom-spotify { + background-color: #66cc99; +} + +#custom-media.custom-vlc { + background-color: #ffa000; +} + +#temperature { + font-size: 0; + margin: 0; + padding: 0; +} + +#temperature.critical { + background-color: #eb4d4b; +} + +#language { +} + +#tray { + background: rgba(0, 0, 0, 0.4); + border-radius: 0; + margin: 0; +} + +#idle_inhibitor { + /* background-color: #2d3436; */ + border-radius: 20px; + padding: 0 5px; + margin: 4px 0px; +} + +#idle_inhibitor.activated { + background-color: #ecf0f1; + color: #2d3436; +} + +#mpd { + background-color: #66cc99; + color: #2a5c45; +} + +#mpd.disconnected { + background-color: #f53c3c; +} + +#mpd.stopped { + background-color: #90b1b1; +} + +#mpd.paused { + background-color: #51a37a; +} diff --git a/Common/waybar/style.css b/Common/waybar/style.css new file mode 120000 index 0000000..57019b0 --- /dev/null +++ b/Common/waybar/style.css @@ -0,0 +1 @@ +style.segmented.css
\ No newline at end of file diff --git a/Common/waybar/style.rounded.css b/Common/waybar/style.rounded.css new file mode 100644 index 0000000..9e4b812 --- /dev/null +++ b/Common/waybar/style.rounded.css @@ -0,0 +1,258 @@ +* { + border: none; + border-radius: 0; + /* `otf-font-awesome` is required to be installed for icons */ + font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; + font-size: 13px; + min-height: 0; +} + +window#waybar { + background-color: rgba(0, 0, 0, 0); + /* border-bottom: 3px solid rgba(100, 114, 125, 0.5); */ + color: #ffffff; + transition-property: background-color; + transition-duration: .5s; +} + +window#waybar.hidden { + opacity: 0.0; +} + +.modules-left, +.modules-center, +.modules-right { + margin: 4px 4px 0px 4px; + background-color: rgba(43, 48, 59, 1.5); + border-radius: 20px; +} + +/* +window#waybar.empty { + background-color: transparent; +} +window#waybar.solo { + background-color: #FFFFFF; +} +*/ + +window#waybar.termite { + background-color: #3F3F3F; +} + +window#waybar.chromium { + background-color: #000000; + border: none; +} + +#workspaces button { + padding: 0 5px; + padding-top: 4px; + padding-bottom: 4px; + background-color: transparent; + color: #ffffff; + border-radius: 0; +} + +/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ +#workspaces button:hover { + background: rgba(255, 255, 255, 0.2); + box-shadow: inherit; +} + +#workspaces button.focused { + background: rgba(255, 255, 255, 0.1); + /* border-bottom: 3px solid #ffffff; */ +} + +#workspaces button.urgent { + background-color: #eb4d4b; +} + +#mode { + background-color: #64727D; + /* border-bottom: 3px solid #ffffff; */ +} + +#clock, +#battery, +#cpu, +#memory, +#temperature, +#backlight, +#network, +#pulseaudio, +#custom-media, +#tray, +#mode, +#language, +#idle_inhibitor, +#mpd { + padding: 0 10px; + margin: 0; + color: #ffffff; + border-radius: 20px; +} + +#clock { + /* background-color: #64727D; */ +} + +#battery { + /* background-color: #ffffff; */ + /* color: #000000; */ + border-radius: 20px 0 0 20px; +} + +#battery.charging { + animation-name: blink-charge; + animation-duration: 5.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#battery.warning { + animation-name: blink-warn; + animation-duration: 3.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +@keyframes blink-charge { + to { + background-color: #007820; + } +} + +@keyframes blink-warn { + to { + background-color: #ff9142; + } +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} + +@keyframes blink-critical { + to { + background-color: #f53c3c; + } +} + +#battery.critical:not(.charging) { + background-color: #f53c3c; + color: #ffffff; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +label:focus { + background-color: #000000; +} + +#memory, +#cpu { + /* color: #000000; */ +} + +#memory.critical, +#cpu.critical { + animation-name: blink-critical; + animation-duration: 1.2s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#backlight { + background-color: #90b1b1; +} + +#network { + /* background-color: #2980b9; */ +} + +#network.disconnected { + background-color: #f53c3c; +} + +#pulseaudio { + /* background-color: #f1c40f; */ + /* color: #000000; */ +} + +#pulseaudio.muted { + /* background-color: #90b1b1; */ + /* color: #2a5c45; */ +} + +#custom-media { + background-color: #66cc99; + color: #2a5c45; + min-width: 100px; +} + +#custom-media.custom-spotify { + background-color: #66cc99; +} + +#custom-media.custom-vlc { + background-color: #ffa000; +} + +#temperature { + font-size: 0; + margin: 0; + padding: 0; +} + +#temperature.critical { + background-color: #eb4d4b; +} + +#language { +} + +#tray { + background: rgba(0, 0, 0, 0.4); + border-radius: 0 20px 20px 0; + margin: 0; +} + +#idle_inhibitor { + /* background-color: #2d3436; */ + /* border-radius: 20px; */ + /* padding: 0 5px; */ + /* margin: 4px 0px; */ +} + +#idle_inhibitor.activated { + background-color: #ecf0f1; + color: #2d3436; +} + +#mpd { + background-color: #66cc99; + color: #2a5c45; +} + +#mpd.disconnected { + background-color: #f53c3c; +} + +#mpd.stopped { + background-color: #90b1b1; +} + +#mpd.paused { + background-color: #51a37a; +} diff --git a/Common/waybar/style.segmented.css b/Common/waybar/style.segmented.css new file mode 100644 index 0000000..78ebeda --- /dev/null +++ b/Common/waybar/style.segmented.css @@ -0,0 +1,265 @@ +* { + border: none; + border-radius: 0; + /* `otf-font-awesome` is required to be installed for icons */ + font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; + font-size: 13px; + min-height: 0; +} + +window#waybar { + background-color: rgba(0, 0, 0, 0); + /* border-bottom: 3px solid rgba(100, 114, 125, 0.5); */ + color: #ffffff; + transition-property: background-color; + transition-duration: .5s; +} + +window#waybar.hidden { + opacity: 0.0; +} + +.modules-left, +.modules-center, +.modules-right { + margin: 0; + background-color: rgba(43, 48, 59, 1.5); +} + +.modules-left { + border-radius: 0 0 10px 0; +} + +.modules-center { + border-radius: 0 0 10px 10px; +} + +.modules-right { + border-radius: 0 0 0 10px; +} + +/* +window#waybar.empty { + background-color: transparent; +} +window#waybar.solo { + background-color: #FFFFFF; +} +*/ + +window#waybar.termite { + background-color: #3F3F3F; +} + +window#waybar.chromium { + background-color: #000000; + border: none; +} + +#workspaces button { + padding: 0 5px; + padding-top: 4px; + padding-bottom: 4px; + background-color: transparent; + border-top: 1px solid transparent; + color: #ffffff; + border-radius: 0; +} + +/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ +#workspaces button:hover { + border-top: 1px solid cyan; + /* background: rgba(255, 255, 255, 0.2); */ + /* box-shadow: inherit; */ +} + +#workspaces button.focused { + border-top: 1px solid white; + /* background: rgba(255, 255, 255, 0.1); */ + /* border-bottom: 3px solid #ffffff; */ +} + +#workspaces button.urgent { + background-color: #eb4d4b; +} + +#mode { + background-color: #64727D; + /* border-bottom: 3px solid #ffffff; */ +} + +#clock, +#battery, +#cpu, +#memory, +#temperature, +#backlight, +#network, +#pulseaudio, +#custom-media, +#tray, +#mode, +#language, +#idle_inhibitor, +#mpd { + padding: 0 10px; + margin: 0; + color: #ffffff; + border-radius: 0; +} + +#clock { + /* background-color: #64727D; */ +} + +#battery { + /* background-color: #ffffff; */ + /* color: #000000; */ + border-radius: 20px 0 0 20px; +} + +#battery.charging { + animation-name: blink-charge; + animation-duration: 5.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#battery.warning { + animation-name: blink-warn; + animation-duration: 3.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +@keyframes blink-charge { + to { + background-color: #007820; + } +} + +@keyframes blink-warn { + to { + background-color: #ff9142; + } +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} + +@keyframes blink-critical { + to { + background-color: #f53c3c; + } +} + +#battery.critical:not(.charging) { + background-color: #f53c3c; + color: #ffffff; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +label:focus { + background-color: #000000; +} + +#temperature, +#memory, +#cpu { + /* color: #000000; */ + border-radius: 20px; + margin: 3px; +} + +#temperature.critical, +#memory.critical, +#cpu.critical { + animation-name: blink-critical; + animation-duration: 1.2s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#backlight { + background-color: #90b1b1; +} + +#network { + /* background-color: #2980b9; */ +} + +#network.disconnected { + background-color: #f53c3c; +} + +#pulseaudio { + /* background-color: #f1c40f; */ + /* color: #000000; */ +} + +#pulseaudio.muted { + /* background-color: #90b1b1; */ + /* color: #2a5c45; */ +} + +#custom-media { + background-color: #66cc99; + color: #2a5c45; + min-width: 100px; +} + +#custom-media.custom-spotify { + background-color: #66cc99; +} + +#custom-media.custom-vlc { + background-color: #ffa000; +} + +#language { +} + +#tray { + background: rgba(0, 0, 0, 0.4); + border-radius: 0; +} + +#idle_inhibitor { + /* background-color: #2d3436; */ + /* border-radius: 20px; */ + /* padding: 0 5px; */ + /* margin: 4px 0px; */ +} + +#idle_inhibitor.activated { + background-color: #ecf0f1; + color: #2d3436; +} + +#mpd { + background-color: #66cc99; + color: #2a5c45; +} + +#mpd.disconnected { + background-color: #f53c3c; +} + +#mpd.stopped { + background-color: #90b1b1; +} + +#mpd.paused { + background-color: #51a37a; +} |