diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a870d47..2144b3c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,6 +32,7 @@ jobs: # !! Add your recipes here - recipe-gnome.yml - recipe-kde.yml + - recipe-sway.yml - recipe-budgie.yml steps: # the build is fully handled by the reusable github action diff --git a/files/scripts/example.sh b/files/scripts/example.sh deleted file mode 100644 index fdb2e04..0000000 --- a/files/scripts/example.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash - -# Tell this script to exit if there are any errors. -# You should have this in every custom script, to ensure that your completed -# builds actually ran successfully without any errors! -set -oue pipefail - -# Your code goes here. -echo 'This is an example shell script' -echo 'Scripts here will run during build if specified in recipe.yml' diff --git a/files/scripts/remove-sway-config.sh b/files/scripts/remove-sway-config.sh new file mode 100644 index 0000000..b57bf2e --- /dev/null +++ b/files/scripts/remove-sway-config.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +set -euo pipefail + + +rm -f /etc/sway/config \ No newline at end of file diff --git a/files/system/etc/sway/config.d/config.conf b/files/system/etc/sway/config.d/config.conf new file mode 100644 index 0000000..3a0ac8b --- /dev/null +++ b/files/system/etc/sway/config.d/config.conf @@ -0,0 +1,53 @@ +set $bg #001524 +set $teal #15616d +set $cream #ffecd1 +set $accent #ff7d00 +set $brown #78290f + +set $mod Mod4 +set $term foot +set $menu wofi --show drun --style /etc/wofi/style.css + + +font pango:Inter 10 +titlebar_padding 10 4 +titlebar_border_thickness 0 +title_align center + +default_border pixel 3 +default_floating_border pixel 3 +hide_edge_borders none + +gaps inner 10 +gaps outer 6 + +client.focused $accent $accent $bg $accent $accent +client.focused_inactive $teal $teal $cream $teal $teal +client.unfocused $teal $bg $teal $bg $teal +client.urgent $brown $brown $cream $brown $brown +client.placeholder $bg $bg $cream $bg $bg +client.background $bg + +output * bg $bg solid_color +seat * hide_cursor when-typing enable + +input type:keyboard { + xkb_layout de +} +input type:touchpad { + tap enabled + natural_scroll enabled + dwt enabled +} + +bindsym $mod+Return exec $term +unbindsym $mod+d +bindsym $mod+d exec $menu +bindsym $mod+q kill + + + +exec swayidle -w \ + timeout 300 '$lock' \ + timeout 600 'swaymsg "output * power off"' \ + resume 'swaymsg "output * power on"' \ No newline at end of file diff --git a/files/system/etc/wofi/style.css b/files/system/etc/wofi/style.css new file mode 100644 index 0000000..9134efd --- /dev/null +++ b/files/system/etc/wofi/style.css @@ -0,0 +1,23 @@ +window { + margin: 0; + background-color: #001524; + border: 2px solid #ff7d00; + border-radius: 14px; + font-family: "Inter", sans-serif; + font-size: 14px; +} +#outer-box { margin: 8px; } +#input { + margin: 8px; + padding: 8px 12px; + color: #ffecd1; + background-color: #001524; + border: 2px solid #15616d; + border-radius: 10px; +} +#input:focus { border-color: #ff7d00; } +#inner-box { margin: 0 8px 8px 8px; background: transparent; } +#scroll { background: transparent; } +#entry { padding: 6px 10px; border-radius: 8px; color: #ffecd1; } +#entry:selected { background-color: #15616d; } +#text:selected { color: #ffecd1; } diff --git a/files/system/etc/xdg/foot/foot.ini b/files/system/etc/xdg/foot/foot.ini new file mode 100644 index 0000000..bb5f424 --- /dev/null +++ b/files/system/etc/xdg/foot/foot.ini @@ -0,0 +1,29 @@ +[main] +font=monospace:size=11 +pad=12x12 + +[colors-dark] +alpha=0.96 +background=001524 +foreground=ffecd1 +cursor=001524 ff7d00 +selection-background=15616d +selection-foreground=ffecd1 + +regular0=0a2a3c +regular1=d9532b +regular2=4fa3a5 +regular3=ff7d00 +regular4=2a8a99 +regular5=c97b5a +regular6=3fb0b8 +regular7=ffecd1 + +bright0=15616d +bright1=ff7a52 +bright2=6fc7c7 +bright3=ffa94d +bright4=5cc4cf +bright5=e0a284 +bright6=8fdede +bright7=fff6e6 \ No newline at end of file diff --git a/files/system/etc/xdg/mako/config b/files/system/etc/xdg/mako/config new file mode 100644 index 0000000..2d24eb4 --- /dev/null +++ b/files/system/etc/xdg/mako/config @@ -0,0 +1,16 @@ +font=Inter 10 +width=340 +margin=10 +padding=12 +border-size=2 +border-radius=12 +default-timeout=6000 +background-color=#001524 +text-color=#ffecd1 +border-color=#15616d +progress-color=over #ff7d00 + +[urgency=high] +background-color=#78290f +border-color=#ff7d00 +default-timeout=0 diff --git a/files/system/etc/xdg/waybar/config b/files/system/etc/xdg/waybar/config new file mode 100644 index 0000000..eaa8b3e --- /dev/null +++ b/files/system/etc/xdg/waybar/config @@ -0,0 +1,20 @@ +{ + "layer": "top", + "position": "top", + "height": 32, + "margin-top": 6, + "margin-left": 6, + "margin-right": 6, + "spacing": 6, + + "modules-left": ["sway/workspaces", "sway/mode"], + "modules-center": ["clock"], + "modules-right": ["tray", "pulseaudio", "network", "battery"], + + "sway/workspaces": { "disable-scroll": true, "all-outputs": true }, + "clock": { "format": "{:%a %d %b %H:%M}", "tooltip-format": "{:%A, %d %B %Y}" }, + "pulseaudio": { "format": "vol {volume}%", "format-muted": "muted", "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" }, + "network": { "format-wifi": "{essid}", "format-ethernet": "wired", "format-disconnected": "offline" }, + "battery": { "format": "bat {capacity}%", "format-charging": "chg {capacity}%", "states": { "warning": 25, "critical": 10 } }, + "tray": { "spacing": 8 } +} diff --git a/files/system/etc/xdg/waybar/style.css b/files/system/etc/xdg/waybar/style.css new file mode 100644 index 0000000..019d776 --- /dev/null +++ b/files/system/etc/xdg/waybar/style.css @@ -0,0 +1,42 @@ +@define-color bg #001524; +@define-color teal #15616d; +@define-color cream #ffecd1; +@define-color accent #ff7d00; +@define-color brown #78290f; + +* { + font-family: "Inter", sans-serif; + font-size: 13px; + border: none; + border-radius: 0; + min-height: 0; +} + +window#waybar { background: transparent; color: @cream; } + +#workspaces, #mode, #clock, #pulseaudio, #network, #battery, #tray { + background: alpha(@bg, 0.92); + border: 2px solid @teal; + border-radius: 12px; + padding: 0 12px; + margin: 0 2px; +} + +#workspaces { padding: 0 4px; } +#workspaces button { + padding: 0 10px; + margin: 3px 2px; + color: @cream; + background: transparent; + border-radius: 8px; +} +#workspaces button:hover { background: @teal; box-shadow: none; } +#workspaces button.focused { background: @accent; color: @bg; font-weight: 600; } +#workspaces button.urgent { background: @brown; } + +#mode { background: @brown; border-color: @accent; } +#clock { color: @accent; font-weight: 600; border-color: @accent; } +#pulseaudio.muted { color: @teal; } +#network.disconnected { color: @brown; } +#battery.warning { color: @accent; } +#battery.critical { background: @brown; border-color: @accent; } diff --git a/recipes/recipe-sway.yml b/recipes/recipe-sway.yml new file mode 100644 index 0000000..0732921 --- /dev/null +++ b/recipes/recipe-sway.yml @@ -0,0 +1,44 @@ + +--- +# yaml-language-server: $schema=https://schema.blue-build.org/recipe-v1.json +# image will be published to ghcr.io// +name: marschallos-sway +# description will be included in the image's metadata +description: my personal image which is obviously the best. + +# the base image to build on top of (FROM) and the version tag to use +base-image: quay.io/fedora-ostree-desktops/sway-atomic + +image-version: 44 # You can pin to a specific version of Fedora as well + +# module configuration, executed in order +# you can include multiple instances of the same module +modules: + - type: files + files: + - source: system + destination: / # copies files/system/* (* means everything inside it) into your image's root folder / + - type: brew + nofile-limits: true + brew-analytics: false + - type: dnf + repos: + copr: + - atim/starship + install: + packages: + - micro + - starship + - fastfetch + - wofi + remove: + packages: + # example: removing firefox (in favor of the flatpak) + # "firefox" is the main package, "firefox-langpacks" is a dependency + - firefox + - firefox-langpacks # also remove firefox dependency (not required for all packages, this is a special case) + - nvtop + - rofi + + + - type: signing # this sets up the proper policy & signing files for signed images to work full