diff --git a/hosts/nb-01.cloonar.com/configuration.nix b/hosts/nb-01.cloonar.com/configuration.nix index f8dd474..2a7f879 100644 --- a/hosts/nb-01.cloonar.com/configuration.nix +++ b/hosts/nb-01.cloonar.com/configuration.nix @@ -33,6 +33,8 @@ "openssl-1.1.1v" ]; + virtualisation.waydroid.enable = true; + # security.sudo.wheelNeedsPassword = false; # services.clevis.uuid = "7435d48f-f942-485b-9817-328ad3fc0b93"; diff --git a/hosts/phone/modules/sway/sway.conf b/hosts/phone/modules/sway/sway.conf index 5d592cb..add2140 100644 --- a/hosts/phone/modules/sway/sway.conf +++ b/hosts/phone/modules/sway/sway.conf @@ -1,31 +1,330 @@ -set $mod Mod1 +# Oxide theme +# +# Author: Diki Ananta Repository: https://github.com/dikiaap/dotfiles +# License: MIT +# i3 config file (v4) -output DSI-1 scale 1.5 +# outputs +set $output-phone DSI-1 +set $output-desktop DP-1 +# font for window titles and bar +font pango:Source Sans Pro 10 + +# use win key +set $mod Mod4 + +# use these keys for focus, movement, and resize directions +set $left h +set $down j +set $up k +set $right l + +# define names for workspaces +set $wsp "phone" +set $ws1 "1: " +set $ws2 "2: " +set $ws3 "3: " +set $ws4 "4: " +set $ws5 "5: " +set $ws6 "6: " +set $ws7 "7: " +set $ws8 "8: " +set $ws9 "9: " +set $ws10 "10: " + +# assign workspaces to primary monitor +workspace $wsp output $output-phone +workspace $ws1 output $output-desktop +workspace $ws2 output $output-desktop +workspace $ws3 output $output-desktop +workspace $ws4 output $output-desktop +workspace $ws5 output $output-desktop +workspace $ws6 output $output-desktop +workspace $ws7 output $output-desktop +workspace $ws8 output $output-desktop +workspace $ws9 output $output-desktop + +# use $mod+Mouse to drag floating windows to their wanted position +floating_modifier $mod + +# control focused window when follows the mouse movements +focus_follows_mouse no + +# window border settings +default_border none +default_floating_border none + +# hiding borders adjacent to the screen edges +hide_edge_borders none + +# set popups during fullscreen mode +popup_during_fullscreen smart + +# start a terminal +bindsym $mod+Return workspace $ws1; exec foot -c /etc/xdg/foot/foot.ini -T terminal-sway + +# start a program launcher bindsym $mod+d exec foot -a launcher -e env TERMINAL_COMMAND="foot -c /etc/xdg/foot/foot.ini -e" sway-launcher-desktop +# start an explorer +bindsym $mod+e exec --no-startup-id pcmanfm -exec foot -c /etc/xdg/foot/foot.ini -T terminal-sway -exec squeekboard -exec busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b true +# switching window with win+tab +bindsym $mod+Tab exec --no-startup-id wofi -show window +# kill focused window +bindsym $mod+Shift+q kill + +# change keyboard layout +bindsym $mod+i swaymsg input "*" us +bindsym $mod+Shift+i swaymsg input "*" de + +# 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+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# split in horizontal orientation +bindsym $mod+c split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+p layout toggle split + +# toggle tiling / floating +# bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +# bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent + +# focus the child container +bindsym $mod+Shift+a focus child + +# 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 +bindsym $mod+minus scratchpad show + +# move focused floating window to the current position of the cursor +bindsym $mod+Shift+m move position mouse + +# set a window to stick to the glass +bindsym $mod+Shift+s sticky toggle + +# sticky preview for media +bindsym $mod+Shift+p fullscreen disable; floating enable; resize set 350 px 197 px; sticky enable; move window to position 1006 px 537 px + +# shortcut to change window border +bindsym $mod+t border normal 0 +bindsym $mod+y border pixel 1 +bindsym $mod+u border none + +# switch to workspace + +bindcode $mod+10 workspace $ws1 +bindcode $mod+11 workspace $ws2 +bindcode $mod+12 workspace $ws3 +bindcode $mod+13 workspace $ws4 +bindcode $mod+14 workspace $ws5 +bindcode $mod+15 workspace $ws6 +bindcode $mod+16 workspace $ws7 +bindcode $mod+17 workspace $ws8 +bindcode $mod+18 workspace $ws9 +bindcode $mod+19 workspace $ws10 + +# move focused container to workspace +bindcode $mod+Shift+10 move container to workspace $ws1 +bindcode $mod+Shift+11 move container to workspace $ws2 +bindcode $mod+Shift+12 move container to workspace $ws3 +bindcode $mod+Shift+13 move container to workspace $ws4 +bindcode $mod+Shift+14 move container to workspace $ws5 +bindcode $mod+Shift+15 move container to workspace $ws6 +bindcode $mod+Shift+16 move container to workspace $ws7 +bindcode $mod+Shift+17 move container to workspace $ws8 +bindcode $mod+Shift+18 move container to workspace $ws9 +bindcode $mod+Shift+19 move container to workspace $ws10 + +# shortcut applications +bindsym $mod+F1 exec gkamus +bindsym $mod+F2 workspace $ws2; exec subl +bindsym $mod+F3 workspace $ws3; exec chromium-browser +bindsym $mod+F4 workspace $ws4; exec pcmanfm +bindsym $mod+F5 workspace $ws5; exec evince +bindsym $mod+F6 workspace $ws6; exec audacious +bindsym $mod+F7 workspace $ws7; exec gcolor2 +bindsym $mod+F8 workspace $ws8; exec telegram +bindsym $mod+F9 workspace $ws9; exec go-for-it +bindsym Print exec --no-startup-id gnome-screenshot +bindcode $mod+9 exec swaylock --image ~/.wallpaper.jpg +bindsym Ctrl+Shift+Space exec 1password --quick-access +bindsym $mod+Space exec rofi-rbw --menu-keybindings ctrl+p:copy:password + +# volume +bindsym XF86AudioLowerVolume exec amixer -q sset Master 5%- unmute +bindsym XF86AudioRaiseVolume exec amixer -q sset Master 5%+ unmute +bindsym XF86AudioMute exec amixer -q sset Master toggle + +# set brightness logarithmically by factor 1.4 +# .72 is just slightly bigger than 1 / 1.4 +bindsym --locked XF86MonBrightnessUp exec light -S "$(light -G | awk '{ print int(($1 + .72) * 1.4) }')" +bindsym --locked XF86MonBrightnessDown exec light -S "$(light -G | awk '{ print int($1 / 1.4) }')" + +# reload the configuration file +bindsym $mod+Shift+c reload + +# restart i3 inplace +bindsym $mod+Shift+r restart + +# manage i3 session +bindsym $mod+Shift+e exec swaynag --background f1fa8c --border ffb86c --border-bottom-size 0 --button-background ffb86c --button-text 282a36 -t warning -f "pango:Hack 9" -m "Do you really want to exit?" -B "  Exit " "swaymsg exit" -B "  Lock " "pkill swaynag && swaylock --image ~/.wallpaper.jpg" -B "  Reboot " "pkill swaynag && reboot" -B "  Shutdown " "pkill swaynag && shutdown -h now" -B " Suspend " "pkill swaynag && systemctl suspend" + +# resize window +bindsym $mod+r mode "  " +mode "  " { + # pressing left and up will shrink the window's width and height + # pressing right and down will grow the window's width and height + bindsym $left resize shrink width 10 px or 10 ppt + bindsym $down resize grow height 10 px or 10 ppt + bindsym $up resize shrink height 10 px or 10 ppt + bindsym $right resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or win+r + bindsym Return mode "default" + bindsym $mod+r mode "default" +} + +# set specific windows to floating mode +for_window [window_role="app"] floating enable +#for_window [window_role="pop-up"] floating enable +for_window [window_role="task_dialog"] floating enable +for_window [title="Preferences$"] floating enable +for_window [class="Gkamus"] floating enable +for_window [class="Go-for-it"] floating enable +for_window [class="Lightdm-gtk-greeter-settings"] floating enable +for_window [class="Lxappearance"] floating enable +for_window [class="Menu"] floating enable +for_window [class="Nm-connection-editor"] floating enable +for_window [class="Software-properties-gtk"] floating enable +for_window [app_id="launcher"] floating enable + +# set specific windows to tabbed mode +#for_window [class="Rambox"]tabbed +#for_window [class="Signal"]tabbed + +# assign program to workspace +assign [title="terminal-sway"] → $ws1 +# assign [app_id="Alacritty" title="^(?!alacritty-sway)$"] → $ws2 +assign [app_id="foot" title="^(?!terminal-sway)$"] → $ws2 +assign [app_id="chromium"] → $ws3 +assign [app_id="firefox"] → $ws3 +assign [app_id="pcmanfm"] → $ws4 +assign [app_id="libreoffice-calc"] → $ws5 +assign [app_id="libreoffice-writer"] → $ws5 +assign [class="vlc"] → $ws6 +assign [class="Gimp"] → $ws7 +assign [class="Signal"] → $ws8 +assign [app_id="social"] → $ws8 +assign [app_id="thunderbird"] → $ws8 +assign [class="Lightdm-gtk-greeter-settings"] → $ws10 +assign [class="Software-properties-gtk"] → $ws10 + +# class border backgr. text indicator child_border +client.focused #2b83a6 #2b83a6 #ffffff #dddddd #2b83a6 +client.focused_inactive #212121 #212121 #86888c #292d2e #5a5a5a +client.unfocused #212121 #212121 #86888c #292d2e #5a5a5a +client.urgent #d64e4e #d64e4e #ffffff #d64e4e #d64e4e +client.placeholder #212121 #0c0c0c #ffffff #212121 #262626 +client.background #212121 + +bar { + swaybar_command waybar +} + +# gaps +smart_gaps on +gaps inner 12 +gaps outer 0 + +# startup applications +exec /run/wrappers/bin/gnome-keyring-daemon --start --daemonize +exec waydroid session start && waydroid show-full-ui + +# wallpaper +# output eDP-1 bg ~/.wallpaper.jpg fill +# output DP-4 bg ~/.wallpaper.jpg fill +# output DP-5 bg ~/.wallpaper.jpg fill + +input * xkb_layout "de" +input * xkb_variant "colemak,,typewriter" +input * xkb_options "grp:win_space_toggle" +input "MANUFACTURER1 Keyboard" xkb_model "pc101" + +# notebook +set $laptop eDP-1 +# bindswitch --reload --locked lid:on output $laptop disable +# bindswitch --reload lid:off output $laptop enable + +# A lock command used in several places +set $lock_script swaylock + +# A sleep command used in several places. +# We leave a bit of time for locking to happen before putting the system to sleep +set $sleep $lock_script && sleep 3 && systemctl suspend + +# Triggers a short notification +set $notify dunstify --timeout 1500 + +# Set your laptop screen name +set $laptop_screen 'eDP-1' + +# Clamshell mode or lock & sleep +# This is a if/else statement: [ outputs_count == 1 ] && true || false +# bindswitch --locked lid:on exec '[ $(swaymsg -t get_outputs | grep name | wc -l) == 1 ] && ($sleep) || swaymsg output $laptop_screen disable' +# bindswitch --locked lid:off output $laptop_screen enable + +# disable xwayland +# xwayland disable + +# Touchpad +input type:touchpad { +tap enabled +natural_scroll enabled +} -exec lisgd \ - -g "1,l,r, false" \ - -g "1,r,l, false" \ - -g "1,u,d, false" \ - -g "1,d,u, false" \ - -g "2,l,r, swaymsg workspace prev" \ - -g "2,r,l, swaymsg workspace next" \ - -g "2,u,d, swaymsg exec busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b false" \ - -g "2,d,u, swaymsg exec pidof squeekboard || squeekboard & busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b true" \ - -g "2,l,u, swaymsg fullscreen" \ - -g "2,r,d, swaymsg kill" \ - -g "3,l,r, swaymsg focus right" \ - -g "3,r,l, swaymsg focus left" \ - -g "3,u,d, swaymsg focus down" \ - -g "3,d,u, swaymsg focus up" \ - -g "4,l,r, swaymsg move right" \ - -g "4,r,l, swaymsg move left" \ - -g "4,u,d, swaymsg move down" \ - -g "4,d,u, swaymsg move up" diff --git a/hosts/phone/modules/sway/sway.conf.mobile b/hosts/phone/modules/sway/sway.conf.mobile new file mode 100644 index 0000000..e83e66f --- /dev/null +++ b/hosts/phone/modules/sway/sway.conf.mobile @@ -0,0 +1,32 @@ +# set $mod Mod1 + +# output DSI-1 scale 1.5 + +# bindsym $mod+d exec foot -a launcher -e env TERMINAL_COMMAND="foot -c /etc/xdg/foot/foot.ini -e" sway-launcher-desktop + + +# exec foot -c /etc/xdg/foot/foot.ini -T terminal-sway +# exec squeekboard +# exec busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b true +exec waydroid session start && waydroid show-full-ui + + +# exec lisgd \ +# -g "1,l,r, false" \ +# -g "1,r,l, false" \ +# -g "1,u,d, false" \ +# -g "1,d,u, false" \ +# -g "2,l,r, swaymsg workspace prev" \ +# -g "2,r,l, swaymsg workspace next" \ +# -g "2,u,d, swaymsg exec busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b false" \ +# -g "2,d,u, swaymsg exec pidof squeekboard || squeekboard & busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b true" \ +# -g "2,l,u, swaymsg fullscreen" \ +# -g "2,r,d, swaymsg kill" \ +# -g "3,l,r, swaymsg focus right" \ +# -g "3,r,l, swaymsg focus left" \ +# -g "3,u,d, swaymsg focus down" \ +# -g "3,d,u, swaymsg focus up" \ +# -g "4,l,r, swaymsg move right" \ +# -g "4,r,l, swaymsg move left" \ +# -g "4,u,d, swaymsg move down" \ +# -g "4,d,u, swaymsg move up" diff --git a/hosts/phone/modules/sway/waybar.conf b/hosts/phone/modules/sway/waybar.conf new file mode 100644 index 0000000..a9ef62b --- /dev/null +++ b/hosts/phone/modules/sway/waybar.conf @@ -0,0 +1,133 @@ +// -*- mode: json -*- + +{ + "layer": "top", + "position": "top", + "output": ["eDP-1"], + + "modules-left": [ + "sway/workspaces", + "custom/right-arrow-dark" + ], + "modules-center": [ + "custom/left-arrow-dark", + "clock#1", + "custom/left-arrow-light", + "custom/left-arrow-dark", + "clock#2", + "custom/right-arrow-dark", + "custom/right-arrow-light", + "clock#3", + "custom/right-arrow-dark" + ], + "modules-right": [ + "custom/left-arrow-dark", + "network", + "custom/left-arrow-light", + "custom/left-arrow-dark", + "pulseaudio", + "custom/left-arrow-light", + "custom/left-arrow-dark", + "memory", + "custom/left-arrow-light", + "custom/left-arrow-dark", + "cpu", + "custom/left-arrow-light", + "custom/left-arrow-dark", + "battery", + "custom/left-arrow-light", + "custom/left-arrow-dark", + "disk", + "custom/left-arrow-light", + "custom/left-arrow-dark", + "tray" + ], + + "custom/left-arrow-dark": { + "format": "", + "tooltip": false + }, + "custom/left-arrow-light": { + "format": "", + "tooltip": false + }, + "custom/right-arrow-dark": { + "format": "", + "tooltip": false + }, + "custom/right-arrow-light": { + "format": "", + "tooltip": false + }, + + "sway/workspaces": { + "disable-scroll": true, + "format": "{name}" + }, + + "clock#1": { + "format": "{:%a}", + "tooltip": false + }, + "clock#2": { + "format": "{:%H:%M}", + "tooltip": false + }, + "clock#3": { + "format": "{:%d.%m}", + "tooltip": false + }, + + "pulseaudio": { + "format": "{icon}{volume}%", + "format-muted": "ﱝ", + "format-icons": { + "phone": ["奄", "奔", "墳"], + "default": ["奄", "奔", "墳"] + }, + "scroll-step": 5, + "on-click": "pavucontrol", + "tooltip": false + }, + "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}" + }, + "memory": { + "interval": 5, + "format": "{}%" + }, + "cpu": { + "interval": 5, + "format": "﬙{usage:2}%" + }, + "battery": { + "states": { + "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{icon} {capacity}%", + "format-icons": [ + "", + "", + "", + "", + "" + ] + }, + "disk": { + "interval": 5, + "format": "{percentage_used:2}%", + "path": "/home/" + }, + "tray": { + "icon-size": 20 + } +} + diff --git a/hosts/phone/modules/sway/waybar.css b/hosts/phone/modules/sway/waybar.css new file mode 100644 index 0000000..c927754 --- /dev/null +++ b/hosts/phone/modules/sway/waybar.css @@ -0,0 +1,79 @@ +* { + font-size: 20px; + font-family: monospace; +} + +window#waybar { + background: #282a36; + color: #f8f8f2; +} + +#custom-right-arrow-dark, +#custom-left-arrow-dark { + color: #252525; +} +#custom-right-arrow-light, +#custom-left-arrow-light { + color: #282a36; + background: #252525; +} + +#workspaces, +#clock.1, +#clock.2, +#clock.3, +#network, +#pulseaudio, +#memory, +#cpu, +#battery, +#disk, +#tray { + background: #252525; +} + +#workspaces button { + padding: 0 2px; + color: #f8f8f2; +} +#workspaces button.focused { + color: #50fa7b; +} +#workspaces button:hover { + box-shadow: inherit; + text-shadow: inherit; +} +#workspaces button:hover { + background: #252525; + border: #252525; + padding: 0 3px; +} + +#network { + color: #8be9fd; +} +#pulseaudio { + color: #6272a4; +} +#memory { + color: #f8f8f2; +} +#cpu { + color: #bd93f9; +} +#battery { + color: #f1fa8c; +} +#disk { + color: #ffb86c; +} + +#clock, +#network, +#pulseaudio, +#memory, +#cpu, +#battery, +#disk { + padding: 0 10px; +}