diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..9d791b3 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,32 @@ +name: build +on: + schedule: + - cron: 0 2 * * 6 + workflow_dispatch: +jobs: + build: + runs-on: ubuntu-latest + container: + image: docker.io/fedora:latest + # Fix SELinux for the built OSTree: https://github.com/coreos/rpm-ostree/issues/1943 + options: --privileged --security-opt label:disable + steps: + - name: Install dependencies + run: dnf install -y rpm-ostree selinux-policy selinux-policy-targeted policycoreutils + + - name: Clone repository + uses: actions/checkout@v2 + + - name: Build OSTree + run: ./compose.sh + + # upload-artifact@v2 has trouble with tens of thousands of files + - name: Create repo tarball + run: tar -czf /var/tmp/repo.tar.gz -C /var/tmp/repo . + + - name: Create repository artifact + uses: actions/upload-artifact@v2 + with: + name: repository + path: /var/tmp/repo.tar.gz + retention-days: 5 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7f8f94e --- /dev/null +++ b/LICENSE @@ -0,0 +1,19 @@ +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md index 31f49b8..9744e91 100644 --- a/README.md +++ b/README.md @@ -1,73 +1,100 @@ +# Vladan's X13 Gen 1 Sway Desktop config + +This is an [rpm-ostree](https://coreos.github.io/rpm-ostree/) based minimal +[Fedora](https://getfedora.org/) developer desktop with the [sway window manager](https://swaywm.org/) and [podman](https://podman.io/)/[toolbox](https://docs.fedoraproject.org/en-US/fedora-silverblue/toolbox/) for doing development and running less common graphical applications. + +Run `sudo ./compose.sh` from the root folder of this repo to build the rootfs in a local repo. Don't forget to change the path related env vars. + +--- +Original README for [workstation-ostree-config](https://pagure.io/workstation-ostree-config) +--- + +# Manifests for rpm-ostree based Fedora variants + +This is the configuration needed to create +[rpm-ostree](https://coreos.github.io/rpm-ostree/) based variants of Fedora. +Each variant is described in a YAML +[treefile](https://coreos.github.io/rpm-ostree/treefile/) which is then used by +rpm-ostree to compose an ostree commit with the package requested. + +In the Fedora infrastructure, this happens via +[pungi](https://pagure.io/pungi-fedora) with +[Lorax](https://github.com/weldr/lorax) +([templates](https://pagure.io/fedora-lorax-templates)). + +## Fedora Silverblue + +- Website: https://silverblue.fedoraproject.org/ ([sources](https://github.com/fedora-silverblue/silverblue-site)) +- Documentation: https://docs.fedoraproject.org/en-US/fedora-silverblue/ ([sources](https://github.com/fedora-silverblue/silverblue-docs)) +- Issue tracker: https://github.com/fedora-silverblue/issue-tracker/issues + +## Fedora Kinoite + +- Website: https://kinoite.fedoraproject.org/ ([sources](https://pagure.io/fedora-kde/kinoite-site)) +- Documentation: https://docs.fedoraproject.org/en-US/fedora-kinoite/ ([sources](https://pagure.io/fedora-kde/kinoite-docs)) +- Issue tracker: https://pagure.io/fedora-kde/SIG/issues + +## Building + +Instructions to perform a local build of Silverblue: + +``` +# Clone the config +git clone https://pagure.io/workstation-ostree-config && cd workstation-ostree-config + +# Prepare directories +mkdir -p repo cache +ostree --repo=repo init --mode=archive + +# Build (compose) the variant of your choice +sudo rpm-ostree compose tree --repo=repo --cachedir=cache fedora-silverblue.yaml + +# Update summary file +ostree summary --repo=repo --update +``` + +## Testing + +Instructions to test the resulting build: + +- First, serve the ostree repo using an HTTP server. You can use any static file server. For example using : + + ``` + simple-http-server --index --ip 192.168.122.1 --port 8000 + ``` + +- Then, on an already installed Silverblue system: + +``` +# Add an ostree remote +sudo ostree remote add testremote http://192.168.122.1:8000/repo --no-gpg-verify + +# Pin the currently deployed (and probably working) version +sudo ostree admin pin 0 + +# List refs from variant remote +sudo ostree remote refs testremote + +# Switch to your variant +sudo rpm-ostree rebase testremote:fedora/rawhide/x86_64/silverblue + +# Reboot and test! +``` + +## Historical references + +Building and testing instructions: + +- https://dustymabe.com/2017/10/05/setting-up-an-atomic-host-build-server/ +- https://dustymabe.com/2017/08/08/how-do-we-create-ostree-repos-and-artifacts-in-fedora/ +- https://www.projectatomic.io/blog/2017/12/compose-custom-ostree/ +- https://www.projectatomic.io/docs/compose-your-own-tree/ + For some background, see: - - https://fedoraproject.org/wiki/Workstation/AtomicWorkstation - - https://fedoraproject.org/wiki/Changes/WorkstationOstree - -(Note also this repo obsoletes https://pagure.io/atomic-ws) +- +- +- +- -High level design ------------------ - -The goal of the system is to be a workstation, using -rpm-ostree for the base OS, and a combination of -Docker and Flatpak containers, as well as virtualization -tools such as Vagrant. - -Status ------- - -This project is actively maintained and is ready for use -by sophisticated and interested users, but not ready -for widespread promotion. - -See some [https://lists.fedoraproject.org/archives/list/desktop@lists.fedoraproject.org/thread/J6BJS7Z4NKNOQUZWGYXZZIEKYMWBBSUY/](discussion about the first release). - -Installing ------------- - -See the Silverblue documentation at -https://docs.fedoraproject.org/en-US/fedora-silverblue/installation-guide/. -There's also a guide for installing inside an existing system: -https://docs.fedoraproject.org/en-US/fedora-silverblue/installation-dual-boot/. - -Important issues: ------------------------ - - - [flatpak system repo](https://github.com/flatpak/flatpak/issues/113#issuecomment-247022006) - -Using the system --------------------- - -One of the first things you should do use is use a container runtime of your -choice to manage one or more "pet" containers. This is where you will use -`yum/dnf` to install utilities. - -With `docker` for example, you can use the `-v /srv:/srv` command line option so -these containers can share content with your host (such as git repositories). -Note that if you want to share content between multiple Docker containers and -the host (e.g. your desktop session), you should execute (once): - -``` -sudo chcon -R -h -t container_file_t /var/srv -``` - -Next, let's try flatpak. Before you do: There's a known flatpak issue on -AtomicWS - run [this workaround](https://github.com/flatpak/flatpak/issues/113#issuecomment-247022006), -which you only need to do once. After that, [try flatpak](http://flatpak.org/apps.html). - -If you are a developer for server applications, -try [oc cluster up](https://github.com/openshift/origin/blob/master/docs/cluster_up_down.md) to -create a local OpenShift v3 cluster. - -Finally, try out `rpm-ostree install` to layer additional packages directly on -the host. This is needed for "host extensions" - privileged software that -doesn't make sense to live in a container. For example, `rpm-ostree install -powerline` to use that software for the shell prompts of the host. Another -good example is `rpm-ostree install vagrant-libvirt` to use [Vagrant](https://www.vagrantup.com/) -to manage VMs. - -Future work ------------ - - - GNOME Software support for both rpm-ostree/flatpak and possibly docker - - automated tests that run on this content +Note also this repo obsoletes https://pagure.io/atomic-ws diff --git a/better-fonts-37.repo b/better-fonts-37.repo new file mode 100644 index 0000000..90740cc --- /dev/null +++ b/better-fonts-37.repo @@ -0,0 +1,10 @@ +[copr:copr.fedorainfracloud.org:dawid:better_fonts] +name=Copr repo for better_fonts owned by dawid +baseurl=https://download.copr.fedorainfracloud.org/results/dawid/better_fonts/fedora-37-$basearch/ +type=rpm-md +skip_if_unavailable=True +gpgcheck=1 +gpgkey=https://download.copr.fedorainfracloud.org/results/dawid/better_fonts/pubkey.gpg +repo_gpgcheck=0 +enabled=1 +enabled_metadata=1 diff --git a/compose.sh b/compose.sh new file mode 100755 index 0000000..ca99030 --- /dev/null +++ b/compose.sh @@ -0,0 +1,13 @@ +#!/bin/sh +set -eu +CACHE=/var/cache/x13-gen1-sway-ostree +REPO=/srv/ostree/x13-gen1-sway-repo + +mkdir -p $CACHE + +if [ ! -d $REPO/objects ]; then + ostree --repo=$REPO init --mode=archive-z2 +fi + +rpm-ostree compose tree --unified-core --cachedir=$CACHE --repo=$REPO x13-gen1-sway-desktop.yaml +ostree summary --repo=$REPO --update diff --git a/comps-sync-exclude-list.yml b/comps-sync-exclude-list.yml index 4aa2ed1..f2e053b 100644 --- a/comps-sync-exclude-list.yml +++ b/comps-sync-exclude-list.yml @@ -41,6 +41,7 @@ exclude_list: # Architecture specific packages - powerpc-utils - lsvpd + - s390utils-base base-x: # x86 specific packages. Added back by fedora-common-ostree.yaml - xorg-x11-drv-intel @@ -61,6 +62,7 @@ exclude_list: - dnf - dnf-plugins-core - deltarpm + - python3-dnf-plugin-system-upgrade # We use fedora-release-silverblue instead - fedora-release-workstation # Really not worth listing explicitly @@ -92,6 +94,7 @@ exclude_list: - evolution - evolution-ews - evolution-help + - mediawriter # This is ancient now, and IMO has been superceded by cgroups # Also it breaks with --unified-core. - psacct @@ -106,7 +109,6 @@ exclude_list: # filesystem tools, again priv container - symlinks - dosfstools - - ntfs-3g # Misc - dos2unix # Gnome specific @@ -139,12 +141,12 @@ desktop_exclude_list: - evince-nautilus - file-roller - file-roller-nautilus - - gedit - gnome-boxes - gnome-calculator - gnome-calendar - gnome-characters - gnome-clocks + - gnome-connections - gnome-contacts - gnome-documents - gnome-font-viewer @@ -152,6 +154,7 @@ desktop_exclude_list: - gnome-maps - gnome-photos - gnome-screenshot + - gnome-text-editor - gnome-weather - jwhois - rdist @@ -180,7 +183,6 @@ desktop_exclude_list: - kcalc - kcharselect - kcolorchooser - - kde-partitionmanager - kdnssd - kf5-kipi-plugins - kfind @@ -197,18 +199,14 @@ desktop_exclude_list: - kwrite - libreoffice-kde - okular - - spectacle # Misc - adwaita-gtk2-theme - colord-kde - keditbookmarks - kwebkitpart - plasma-nm-l2tp - - plasma-nm-openconnect - plasma-nm-openswan - - plasma-nm-openvpn - plasma-nm-pptp - - plasma-nm-vpnc xfce-desktop: # Incompatible with ostree for various reasons - abrt-desktop @@ -265,5 +263,5 @@ desktop_exclude_list: - NetworkManager-strongswan-gnome - NetworkManager-team - NetworkManager-wifi - # Use Silverblue release package for now - - fedora-release-matecompiz + # Already in the common set + - wireplumber diff --git a/comps-sync.py b/comps-sync.py index cd9d73e..aea3449 100755 --- a/comps-sync.py +++ b/comps-sync.py @@ -1,5 +1,5 @@ #!/usr/bin/python3 -# Usage: ./comps-sync.py /path/to/comps-f34.xml.in +# Usage: ./comps-sync.py /path/to/comps-f35.xml.in # # Can both remove packages from the manifest # which are not mentioned in comps, and add packages from diff --git a/config.ini b/config.ini index 35a9cc7..4a7200f 100644 --- a/config.ini +++ b/config.ini @@ -10,10 +10,10 @@ os_pretty_name = Fedora ostree Workstation tree_name = workstation tree_file = %(os_name)s-%(tree_name)s.json arch = x86_64 -release = rawhide +release = 36 ref = %(os_name)s/%(release)s/%(arch)s/%(tree_name)s # Force use of a closeish and fastish HTTP mirror, so that the HTTP proxy works -yum_baseurl = https://download.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/%(arch)s/os/ +yum_baseurl = https://download.fedoraproject.org/pub/fedora/linux/development/36/Everything/%(arch)s/os/ # lorax_additional_repos = http://127.0.0.1/fedora-atomic/local-overrides # lorax_include_packages = fedora-productimg-atomic docker_os_name = fedora diff --git a/config/environment.d/wayland.conf b/config/environment.d/wayland.conf new file mode 100644 index 0000000..7a78aa7 --- /dev/null +++ b/config/environment.d/wayland.conf @@ -0,0 +1,4 @@ +XDG_SESSION_TYPE=wayland +XDG_CURRENT_DESKTOP=sway +MOZ_ENABLE_WAYLAND=1 +SDL_VIDEODRIVER=wayland diff --git a/config/greetd/config.toml b/config/greetd/config.toml new file mode 100644 index 0000000..8e05065 --- /dev/null +++ b/config/greetd/config.toml @@ -0,0 +1,6 @@ +[terminal] +vt = 1 + +[default_session] +command = "cage -s -- gtkgreet" +user = "greeter" diff --git a/config/greetd/environments b/config/greetd/environments new file mode 100644 index 0000000..d16bb19 --- /dev/null +++ b/config/greetd/environments @@ -0,0 +1,2 @@ +sway +bash diff --git a/config/i3status-rust/config.toml b/config/i3status-rust/config.toml new file mode 100644 index 0000000..4681a21 --- /dev/null +++ b/config/i3status-rust/config.toml @@ -0,0 +1,78 @@ +# when using 3istsatus-rs with swaybar +# https://github.com/greshake/i3status-rust +# + +theme = "solarized-dark" +icons = "awesome5" + +[[block]] +block = "temperature" +collapsed = false +interval = 10 +format = "gpu {max}°" +chip = "amdgpu-pci-*" + +[[block]] +block = "temperature" +collapsed = false +interval = 10 +format = "cpu {max}°" +chip = "k10temp-pci-*" + +[[block]] +block = "temperature" +collapsed = true +interval = 10 +format = "nvme: {max}°" +chip = "nvme-pci-*" + +[[block]] +block = "temperature" +collapsed = true +interval = 10 +format = "wifi: {max}°" +chip = "iwlwifi_1-*" + +[[block]] +block = "net" +device = "wlan0" +format = "{ssid} {signal_strength} {ip} {speed_down} {graph_down}" +interval = 5 + +[[block]] +block = "disk_space" +path = "/" +alias = "/" +info_type = "available" +unit = "GB" +interval = 20 +warning = 20.0 +alert = 10.0 + +[[block]] +block = "memory" +display_type = "memory" +format_mem = "{Mup}%" +format_swap = "{SUp}%" + +[[block]] +block = "cpu" +interval = 1 + +[[block]] +block = "load" +interval = 1 +format = "{1m}" + +[[block]] +block = "sound" + +[[block]] +block = "keyboard_layout" +driver = "sway" +sway_kb_identifier = "6127:24585:Lite-On_Technology_Corp._ThinkPad_USB_Keyboard_with_TrackPoint" + +[[block]] +block = "time" +interval = 60 +format = "%a %d/%m %R" diff --git a/config/modprobe.d/i915.conf b/config/modprobe.d/i915.conf new file mode 100644 index 0000000..39114f5 --- /dev/null +++ b/config/modprobe.d/i915.conf @@ -0,0 +1,4 @@ +options i915 enable_fbc=1 +options i915 enable_guc=2 +options i915 nuclear_pageflip=Y +options i915 enable_dc=2 diff --git a/config/sway-service.sh b/config/sway-service.sh new file mode 100755 index 0000000..8b0de34 --- /dev/null +++ b/config/sway-service.sh @@ -0,0 +1,7 @@ +#! /bin/sh +# /usr/local/bin/sway-service.sh - needs to be 0755 + +# first import environment variables from the login manager +systemctl --user import-environment +# then start the service +exec systemctl --wait --user start sway.service \ No newline at end of file diff --git a/config/sway/bin/keyboard-layout-per-window.py b/config/sway/bin/keyboard-layout-per-window.py new file mode 100755 index 0000000..15e5dfb --- /dev/null +++ b/config/sway/bin/keyboard-layout-per-window.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python + +# This script keeps track of active keyboard layouts per window. +# +# This script requires i3ipc-python package (install it from a system package +# manager or pip). +# +# https://github.com/swaywm/sway/pull/4504/files +import i3ipc + +sway = i3ipc.Connection() +prev_focused = sway.get_tree().find_focused().id +windows = {} + +def on_window_focus(ipc, event): + global windows, prev_focused + + # Save current layouts + layouts = {input.identifier: input.xkb_active_layout_index for input in sway.get_inputs()} + windows[prev_focused] = layouts + + # Restore layout of the newly focused window + if event.container.id in windows: + for (input_id, layout_index) in windows[event.container.id].items(): + if layout_index != layouts[input_id]: + sway.command(f'input "{input_id}" xkb_switch_layout {layout_index}') + + prev_focused = event.container.id + +def on_window_close(ipc, event): + global windows + if event.container.id in windows: + del(windows[event.container.id]) + +def on_window(ipc, event): + if event.change == "focus": + on_window_focus(ipc, event) + elif event.change == "close": + on_window_close(ipc, event) + +sway.on("window", on_window) +sway.main() diff --git a/config/sway/config b/config/sway/config new file mode 100644 index 0000000..a1fafba --- /dev/null +++ b/config/sway/config @@ -0,0 +1 @@ +include /etc/sway/config.d/* diff --git a/config/sway/config.d/10-variables.conf b/config/sway/config.d/10-variables.conf new file mode 100644 index 0000000..6397e62 --- /dev/null +++ b/config/sway/config.d/10-variables.conf @@ -0,0 +1,15 @@ +### Variables +# +# 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 +set $term alacritty +# Your preferred application launcher +# Note: it's recommended that you pass the final command to sway +# set $menu wofi -c $HOME/.config/wofi/config -s $HOME/.config/wofi/style.css | xargs swaymsg exec -- +set $menu wldash diff --git a/config/sway/config.d/20-output.conf b/config/sway/config.d/20-output.conf new file mode 100644 index 0000000..3a723ab --- /dev/null +++ b/config/sway/config.d/20-output.conf @@ -0,0 +1,16 @@ +### 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 +# +output DP-1 bg ~/.config/sway/bkg2.jpg fill +output DP-1 scale 1.2 res 3840x2160 pos 0 0 +output DP-2 bg ~/.config/sway/bkg2.jpg fill +output DP-2 scale 1.2 res 3840x2160 pos 0 0 +output HDMI-A-1 bg ~/.config/sway/bkg2.jpg fill +output HDMI-A-1 scale 1.2 res 3840x2160 pos 0 0 +output eDP-1 bg ~/.config/sway/bkg.jpg fill +output eDP-1 scale 1.0 res 1920x1080 pos 640 1800 diff --git a/config/sway/config.d/30-input.conf b/config/sway/config.d/30-input.conf new file mode 100644 index 0000000..9dfbe9d --- /dev/null +++ b/config/sway/config.d/30-input.conf @@ -0,0 +1,27 @@ +### 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. + +input * xkb_layout "us,mk" +input * xkb_variant "typewriter" +input * xkb_options "grp:caps_toggle" + +# Pulse Audio controls +bindsym XF86AudioRaiseVolume exec pactl set-sink-volume 0 +5% #increase sound volume +bindsym XF86AudioLowerVolume exec pactl set-sink-volume 0 -5% #decrease sound volume +bindsym XF86AudioMute exec pactl set-sink-mute 0 toggle # mute sound +bindsym XF86AudioMicMute exec pactl set-source-mute alsa_input.pci-0000_00_1b.0.analog-stereo toggle # mute mic + +# Sreen brightness controls +bindsym XF86MonBrightnessUp exec brightnessctl -q s +10% +bindsym XF86MonBrightnessDown exec brightnessctl -q s 10%- diff --git a/config/sway/config.d/50-style.conf b/config/sway/config.d/50-style.conf new file mode 100644 index 0000000..49f4ab4 --- /dev/null +++ b/config/sway/config.d/50-style.conf @@ -0,0 +1,47 @@ +# +# Status Bar: +# +# Read `man 5 sway-bar` for more information about this section. +bar { + position top + + # When the status_command prints a new line to stdout, swaybar updates. + # The default just shows the current date and time. + swaybar_command waybar +} + +# Remove title from windows +default_border pixel 1 +default_floating_border normal +bindsym $mod+t border toggle + +hide_edge_borders smart + +# Background +set $bg #232425 +# Background active +set $ba #191919 +# Background inactive +set $bi #3f3f3f +# Foreground active +set $fa #eff1f5 +# Foreground inactive +set $fi #646464 +# Border active +set $bra #9a9a9a +# Border inactive +set $bri #000000 + +# class border backgr. text indicator child_border +client.focused $bra $bra $bg $bg $bra +client.focused_inactive $bra $ba $fa $bg $bri +client.unfocused $bri $bi $fi $bg $bri +#client.urgent $br $br $fg $bg $br #currently not implemented +#client.placeholder $br $br $fg $bg $br #currently not implemented +client.background $bg + +gaps inner 0 +gaps outer 0 +#smart_gaps on + +for_window [app_id=".*"] border normal diff --git a/config/sway/config.d/60-app-windows.conf b/config/sway/config.d/60-app-windows.conf new file mode 100644 index 0000000..e5221e2 --- /dev/null +++ b/config/sway/config.d/60-app-windows.conf @@ -0,0 +1,34 @@ +for_window [class="Firefox"] mark Browser +for_window [class="Firefox" window_role="Browser"] { + border normal 0 +} +# firefox floating menus +for_window [window_role="pop-up"] floating enable +for_window [window_role="task_dialog"] floating enable +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 [title="About Mozilla Firefox"] floating enabled +for_window [title="Password Required - Mozilla Firefox"] floating enabled +for_window [app_id="pinentry-qt"] { + move position center + floating enable +} +for_window [app_id="pavucontrol"] { + move position center + floating enable +} +for_window [app_id="wdisplays"] { + floating enable +} +for_window [app_id="com.nextcloud.desktopclient.nextcloud"] { + border normal 1 + floating enable +} + +for_window [app_id="avizo-service"] border pixel 0 +for_window [app_id="avizo-service"] sticky toggle +no_focus [app_id="avizo-service"] diff --git a/config/sway/config.d/90-bindings.conf b/config/sway/config.d/90-bindings.conf new file mode 100644 index 0000000..51af250 --- /dev/null +++ b/config/sway/config.d/90-bindings.conf @@ -0,0 +1,150 @@ +### Key bindings +# +# Basics: +# + # start a terminal + bindsym $mod+Return exec $term + + # kill focused window + bindsym $mod+Shift+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 + + # exit sway (logs 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' +# +# 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 1 + bindsym $mod+2 workspace 2 + bindsym $mod+3 workspace 3 + bindsym $mod+4 workspace 4 + bindsym $mod+5 workspace 5 + bindsym $mod+6 workspace 6 + bindsym $mod+7 workspace 7 + bindsym $mod+8 workspace 8 + bindsym $mod+9 workspace 9 + bindsym $mod+0 workspace 10 + # move focused container to workspace + bindsym $mod+Shift+1 move container to workspace 1 + bindsym $mod+Shift+2 move container to workspace 2 + bindsym $mod+Shift+3 move container to workspace 3 + bindsym $mod+Shift+4 move container to workspace 4 + bindsym $mod+Shift+5 move container to workspace 5 + bindsym $mod+Shift+6 move container to workspace 6 + bindsym $mod+Shift+7 move container to workspace 7 + bindsym $mod+Shift+8 move container to workspace 8 + bindsym $mod+Shift+9 move container to workspace 9 + bindsym $mod+Shift+0 move container to workspace 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 + + + +# Lock screen +bindsym $mod+z exec swaylock -c 000000 + +# Take full screen screenshot with PrtScr +bindsym Print exec grim -t png /tmp/screen.png +# Take area screenshot with Shift+PrtScr +bindsym Shift+Print exec grim -g "$(slurp)" /tmp/screen.png + +# +# Resizing containers: +# + bindsym $mod+r mode "resize" + + 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" + } + diff --git a/config/sway/config.d/91-swaysome.conf b/config/sway/config.d/91-swaysome.conf new file mode 100644 index 0000000..7f5308f --- /dev/null +++ b/config/sway/config.d/91-swaysome.conf @@ -0,0 +1,52 @@ +# Change focus between workspaces +unbindsym $mod+1 +unbindsym $mod+2 +unbindsym $mod+3 +unbindsym $mod+4 +unbindsym $mod+5 +unbindsym $mod+6 +unbindsym $mod+7 +unbindsym $mod+8 +unbindsym $mod+9 +unbindsym $mod+0 +bindsym $mod+1 exec "swaysome focus 1" +bindsym $mod+2 exec "swaysome focus 2" +bindsym $mod+3 exec "swaysome focus 3" +bindsym $mod+4 exec "swaysome focus 4" +bindsym $mod+5 exec "swaysome focus 5" +bindsym $mod+6 exec "swaysome focus 6" +bindsym $mod+7 exec "swaysome focus 7" +bindsym $mod+8 exec "swaysome focus 8" +bindsym $mod+9 exec "swaysome focus 9" +bindsym $mod+0 exec "swaysome focus 0" + +# Move containers between workspaces +unbindsym $mod+Shift+1 +unbindsym $mod+Shift+2 +unbindsym $mod+Shift+3 +unbindsym $mod+Shift+4 +unbindsym $mod+Shift+5 +unbindsym $mod+Shift+6 +unbindsym $mod+Shift+7 +unbindsym $mod+Shift+8 +unbindsym $mod+Shift+9 +unbindsym $mod+Shift+0 +bindsym $mod+Shift+1 exec "swaysome move 1" +bindsym $mod+Shift+2 exec "swaysome move 2" +bindsym $mod+Shift+3 exec "swaysome move 3" +bindsym $mod+Shift+4 exec "swaysome move 4" +bindsym $mod+Shift+5 exec "swaysome move 5" +bindsym $mod+Shift+6 exec "swaysome move 6" +bindsym $mod+Shift+7 exec "swaysome move 7" +bindsym $mod+Shift+8 exec "swaysome move 8" +bindsym $mod+Shift+9 exec "swaysome move 9" +bindsym $mod+Shift+0 exec "swaysome move 0" + +# Move focused container to next output +bindsym $mod+o exec "swaysome next_output" + +# Move focused container to previous output +bindsym $mod+Shift+o exec "swaysome prev_output" + +# Init workspaces for every screen +exec "swaysome init 1" diff --git a/config/sway/config.d/99-startup.conf b/config/sway/config.d/99-startup.conf new file mode 100644 index 0000000..12814dd --- /dev/null +++ b/config/sway/config.d/99-startup.conf @@ -0,0 +1,3 @@ +exec "/usr/local/bin/keyboard-layout-per-window.py" +exec "systemctl --user start sway-session.target" +exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway diff --git a/config/swaylock/config b/config/swaylock/config new file mode 100644 index 0000000..acb5cb4 --- /dev/null +++ b/config/swaylock/config @@ -0,0 +1,8 @@ +# ~/.config/swayidle/config +before-sleep 'systemctl --user start swaylock' +lock 'systemctl --user start swaylock' +unlock 'swaymsg "output * dpms on"' +after-resume 'swaymsg "output * dpms on"' +timeout 300 'systemctl --user start swaylock' +timeout 600 'swaymsg "output * dpms off"' +resume 'swaymsg "output * dpms on"' diff --git a/config/systemd/firefox.service b/config/systemd/firefox.service new file mode 100644 index 0000000..55bf229 --- /dev/null +++ b/config/systemd/firefox.service @@ -0,0 +1,10 @@ +[Unit] +Description=Firefox nightly +PartOf=graphical-session.target + +[Service] +Type=exec +ExecStart=/opt/firefox/firefox + +[Install] +WantedBy=graphical-session.target diff --git a/config/systemd/mako.service b/config/systemd/mako.service new file mode 100644 index 0000000..bd2fac2 --- /dev/null +++ b/config/systemd/mako.service @@ -0,0 +1,15 @@ +[Unit] +Description=Lightweight Wayland notification daemon +Documentation=man:mako(1) +PartOf=sway-session.target +After=sway-session.target + +[Service] +Type=dbus +BusName=org.freedesktop.Notifications +ExecCondition=/bin/sh -c '[ -n "$WAYLAND_DISPLAY" ]' +ExecStart=/usr/bin/mako +ExecReload=/usr/bin/makoctl reload + +[Install] +WantedBy=sway-session.target diff --git a/config/systemd/nm-applet.service b/config/systemd/nm-applet.service new file mode 100644 index 0000000..3e35f1c --- /dev/null +++ b/config/systemd/nm-applet.service @@ -0,0 +1,14 @@ +[Unit] +Description=network monitor and control GUI applet +Documentation=man:nm-applet(1) +PartOf=wayland-session.target +After=wayland-session.target + +# requires nm-applet compiled with -D appindicator=yes +[Service] +Type=dbus +BusName=org.freedesktop.network-manager-applet +ExecStart=/usr/bin/nm-applet --indicator + +[Install] +WantedBy=wayland-session.target diff --git a/config/systemd/sway.service b/config/systemd/sway.service new file mode 100644 index 0000000..ea21f05 --- /dev/null +++ b/config/systemd/sway.service @@ -0,0 +1,14 @@ +[Unit] +Description=sway - i3-compatible Wayland compositor +Documentation=man:sway(5) +Before=graphical-session.service +Wants=graphical-session-pre.service +After=graphical-session-pre.service + +[Service] +Type=simple +EnvironmentFile=-%h/.config/sway/env +ExecStart=/usr/bin/sway +Restart=on-failure +RestartSec=1 +TimeoutStopSec=10 diff --git a/config/systemd/swayidle.service b/config/systemd/swayidle.service new file mode 100644 index 0000000..d235a7a --- /dev/null +++ b/config/systemd/swayidle.service @@ -0,0 +1,13 @@ +[Unit] +Description=Idle manager for Wayland +Documentation=man:swayidle(1) +Documentation=https://github.com/gdamjan/swayidle - fork with sd-notify and autolock +PartOf=graphical-session.target +After=sway-session.target + +[Service] +Type=notify +ExecStart=/usr/bin/swayidle -w + +[Install] +WantedBy=sway-session.target diff --git a/config/systemd/swaylock.service b/config/systemd/swaylock.service new file mode 100644 index 0000000..88c7a10 --- /dev/null +++ b/config/systemd/swaylock.service @@ -0,0 +1,11 @@ +[Unit] +Description=swaylock - Screen locker for Wayland +Documentation=man:swaylock(1) + +[Service] +Type=forking +ExecStart=/usr/bin/swaylock -f +Restart=on-failure + +[Install] +WantedBy=sway-session.target diff --git a/config/waybar/config b/config/waybar/config new file mode 100644 index 0000000..2bc2738 --- /dev/null +++ b/config/waybar/config @@ -0,0 +1,90 @@ +{ + "layer": "top", // Waybar at top layer + "position": "bottom", // Waybar position (top|bottom|left|right) + "height": 30, + "modules-left": ["sway/workspaces", "sway/mode", "sway/window"], + "modules-center": [], + "modules-right": ["temperature", "network", "battery", "pulseaudio", "backlight", "cpu", "memory", "custom/layout", "clock", "tray"], + // Module config + "sway/mode": { + "tooltip": true, + "format": "{}" + }, + "temperature": { + "thermal-zone": 1, + "hwmon-path": "/sys/class/hwmon/hwmon2/temp3_input", + "critical-threshold": 80, + "format-critical": "🌡 {temperatureC}°C", + "format": "ī‹‹ {temperatureC}°C" + }, + "custom/vpn": { + }, + "network": { + "tooltip": false, + "interface": "wlp3s0*", + "format-wifi": "ī‡Ģ {essid} ({signalStrength}%)", + "format-ethernet": "{ifname}: {ipaddr}/{cidr}", + "format-linked": "{ifname} (No IP)", + "format-alt": "{ifname}: {ipaddr}", + "format-disconnected": "No internet" + }, + "battery": { + "tooltip": false, + "states": { + "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{icon} {capacity}%", + "format-alt": "{time} {icon} {power}", + "format-charging": "ī‡Ļ {capacity}%", + "format-icons": ["đŸĒĢ", "", "🔋"], + "format-plugged": "ī‡Ļ {capacity}%" + }, + "backlight": { + "device": "amdgpu_bl0", + "format": "{icon} {percent}%", + "format-icons": ["ī„‘", ""] + }, + "pulseaudio": { + "tooltip": true, + "scroll-step": 1.0, + "format": "{icon} {volume}%", + "format-bluetooth": "ī‚ą {volume}%", + "format-muted": "🔇", + "format-source": "{volume}%", + "format-source-muted": "🔇", + "format-icons": { + "headphones": "🎧", + "handsfree": "🎧", + "headset": "🎧", + "phone": "ī‚•", + "portable": "ī‚•", + "car": "ī†š", + "default": ["🔊"] + }, + "on-click": "pavucontrol" + }, + "cpu": { + "interval": 5, + "tooltip": false, + "format": "ī„ˆ {usage}%" + }, + "memory": { + "format": "īƒ‰ {}%" + }, + "custom/layout": { + "exec": "/etc/xdg/waybar/keyboard-layout.py", + "return-type": "json", + "format": "| {}" + }, + "clock": { + "tooltip": false, + "format": "| {:%d.%m.%Y %H:%M}" + }, + "tray": { + "tooltip": false, + "icon-size": 18, + "spacing": 5 + } +} diff --git a/config/waybar/keyboard-layout.py b/config/waybar/keyboard-layout.py new file mode 100755 index 0000000..92f132a --- /dev/null +++ b/config/waybar/keyboard-layout.py @@ -0,0 +1,36 @@ +#!/usr/bin/python +import i3ipc +import json + + +long_to_short = { + 'English (US)': 'en', + 'Macedonian': 'mk', +} + +def print_status(keyboard): + layout = keyboard.xkb_active_layout_name + short_code = long_to_short.get(layout, layout) + output = {"text": short_code, "tooltip": layout, "class": short_code} + print(json.dumps(output), flush=True) + +def find_keyboard(sway): + # *the* keyboard is the one with more than one layout + for input_dev in sway.get_inputs(): + if input_dev.type == 'keyboard' and len(input_dev.xkb_layout_names) > 1: + return input_dev + +def on_input(sway, event): + if event.change == "xkb_layout" and \ + event.input.identifier == sway.keyboard.identifier: + print_status(event.input) + +def main(): + sway = i3ipc.Connection() + sway.keyboard = find_keyboard(sway) + print_status(sway.keyboard) + + sway.on(i3ipc.Event.INPUT, on_input) + sway.main() + +main() diff --git a/config/waybar/style.css b/config/waybar/style.css new file mode 100644 index 0000000..1bd9166 --- /dev/null +++ b/config/waybar/style.css @@ -0,0 +1,123 @@ +* { + border: none; + border-radius: 0; + font-family: Consolas, "Material Design Icons"; + font-size: 1em; + min-height: 0; +} + +window#waybar { + background-color: rgba(11, 11, 11, 0.8); + color: #ffffff; + transition-property: background-color; + transition-duration: .5s; +} + +window#waybar.hidden { + opacity: 0.2; +} + +#window { + padding: 0 15px; +} + +window { + color: rgba(217, 216, 216, 1); + background: rgba(35, 31, 32, 0.00); +} + +window#waybar.solo { + color: rgba(217, 216, 216, 1); + background: rgba(35, 31, 32, 0.85); +} + +/* +window#waybar.empty { + background-color: transparent; +} +window#waybar.solo { + background-color: #FFFFFF; +} +*/ + +/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ +#workspaces button { + padding: 0 5px; + background-color: transparent; + border-bottom: 2px solid rgba(180, 14, 25, 0.5); + color: #999999; +} + +#workspaces button.focused { + color: #ffffff; + background-color: #333333; + border-bottom: 2px solid #ff9600; +} + +#workspaces button.urgent { + background-color: #eb4d4b; +} + +#clock, +#custom-vpn, +#battery, +#cpu, +#memory, +#backlight, +#network, +#pulseaudio, +#tray, +#temperature, +#mode, +#idle_inhibitor { + padding: 0 5px; + margin: 0 4px; + background-color: transparent; + border-bottom: 2px solid #bdbd45; + color: #ffffff; +} + +#temperature { + border-bottom: 2px solid #42a832; +} +#mode { + background-color: #00ff96; + color: #000000; +} + +#pulseaudio, +#clock, +#tray, +#cpu { + border-bottom: transparent; +} + +#battery { + border-bottom: 2px solid #bff874; +} + +#battery.charging { + border-bottom: 2px solid #00ff96; +} + +#custom-vpn.down, +#temperature.critical, +#battery.critical:not(.charging) { + border-bottom: 2px solid #dd2241; +} + +label:focus { + background-color: #000000; +} + +#network.disconnected { + border-bottom: 2px solid #dd2241; +} + +#pulseaudio.bluetooth { + border-bottom: 2px solid #1a8cff; +} + +#pulseaudio.muted { + border-bottom: 2px solid #fff569; +} diff --git a/config/wldash.yaml b/config/wldash.yaml new file mode 100644 index 0000000..4667602 --- /dev/null +++ b/config/wldash.yaml @@ -0,0 +1,82 @@ +--- +outputMode: active +scale: 0.6 +background: + red: 0.0 + green: 0.0 + blue: 0.0 + opacity: 0.8999999761581421 +widget: + margin: + margins: + - 20 + - 20 + - 20 + - 20 + widget: + verticalLayout: + - horizontalLayout: + - margin: + margins: + - 0 + - 88 + - 0 + - 32 + widget: + verticalLayout: + - date: + font: ~ + font_size: 64.0 + - clock: + font: ~ + font_size: 256.0 + - verticalLayout: + - margin: + margins: + - 0 + - 0 + - 0 + - 8 + widget: + battery: + font: ~ + font_size: 24.0 + length: 0 + - margin: + margins: + - 0 + - 0 + - 0 + - 8 + widget: + backlight: + device: intel_backlight + font: ~ + font_size: 24.0 + length: 0 + - margin: + margins: + - 0 + - 0 + - 0 + - 8 + widget: + pulseAudio: + font: ~ + font_size: 24.0 + length: 0 + - calendar: + font_primary: ~ + font_secondary: ~ + font_size: 16.0 + sections: 3 + - launcher: + font: ~ + font_size: 32.0 + length: 0 + app_opener: "" + term_opener: "" + url_opener: "" +fonts: + sans: sans + mono: mono diff --git a/fedora-37-updates.repo b/fedora-37-updates.repo new file mode 100644 index 0000000..c5b65df --- /dev/null +++ b/fedora-37-updates.repo @@ -0,0 +1,6 @@ +[fedora-37-updates] +name=Fedora 37 $basearch Updates +mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f37&arch=$basearch +enabled=1 +gpgcheck=1 +metadata_expire=1d diff --git a/fedora-37.repo b/fedora-37.repo new file mode 100644 index 0000000..7e41cb3 --- /dev/null +++ b/fedora-37.repo @@ -0,0 +1,6 @@ +[fedora-37] +name=Fedora 37 $basearch +mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-37&arch=$basearch +enabled=1 +gpgcheck=1 +metadata_expire=1d diff --git a/fedora-base.yaml b/fedora-base.yaml index ed3c178..0f7fa07 100644 --- a/fedora-base.yaml +++ b/fedora-base.yaml @@ -1,10 +1,13 @@ include: fedora-common-ostree.yaml -ref: fedora/rawhide/${basearch}/base +ref: fedora/35/${basearch}/base rojig: name: fedora-base summary: "Fedora base image for alternative DE" license: MIT packages: + # Generic release package for desktop variants + - fedora-release + - fedora-release-ostree-desktop # XWayland support - xorg-x11-server-Xwayland # Portals for Flatpak @@ -12,4 +15,5 @@ packages: - xdg-desktop-portal-gtk repos: - - fedora-rawhide + - fedora-35 + - fedora-35-updates diff --git a/fedora-common-ostree-pkgs.yaml b/fedora-common-ostree-pkgs.yaml index f99a8fd..dfa1441 100644 --- a/fedora-common-ostree-pkgs.yaml +++ b/fedora-common-ostree-pkgs.yaml @@ -5,7 +5,6 @@ packages: - NetworkManager-config-connectivity-fedora - NetworkManager-wifi - NetworkManager-wwan - - aajohan-comfortaa-fonts - abattis-cantarell-fonts - acl - adwaita-qt5 @@ -28,6 +27,7 @@ packages: - chrony - cifs-utils - colord + - compsize - coreutils - cpio - cryptsetup @@ -35,14 +35,15 @@ packages: - cups-filters - curl - cyrus-sasl-plain + - default-editor - dejavu-sans-fonts - dejavu-sans-mono-fonts - dejavu-serif-fonts - dhcp-client - dnsmasq - e2fsprogs - - earlyoom - ethtool + - exfatprogs - fedora-bookmarks - fedora-chromium-config - fedora-repos-modular @@ -51,19 +52,31 @@ packages: - filesystem - firefox - firewalld - - foomatic - - foomatic-db-ppds - fpaste - fros-gnome + - fwupd - gamemode - glibc - glibc-all-langpacks - glx-utils - gnupg2 - google-noto-emoji-color-fonts + - google-noto-naskh-arabic-vf-fonts + - google-noto-sans-armenian-vf-fonts + - google-noto-sans-canadian-aboriginal-vf-fonts + - google-noto-sans-cherokee-vf-fonts - google-noto-sans-cjk-ttc-fonts - - google-noto-sans-gurmukhi-fonts + - google-noto-sans-ethiopic-vf-fonts + - google-noto-sans-georgian-vf-fonts + - google-noto-sans-gurmukhi-vf-fonts + - google-noto-sans-hebrew-vf-fonts + - google-noto-sans-lao-vf-fonts + - google-noto-sans-math-vf-fonts + - google-noto-sans-mono-vf-fonts - google-noto-sans-sinhala-vf-fonts + - google-noto-sans-thaana-vf-fonts + - google-noto-sans-vf-fonts + - google-noto-serif-vf-fonts - gstreamer1-plugins-bad-free - gstreamer1-plugins-good - gstreamer1-plugins-ugly-free @@ -72,19 +85,17 @@ packages: - hostname - hplip - hunspell + - ibus-anthy - ibus-gtk3 - ibus-hangul - - ibus-kkc - ibus-libpinyin - ibus-libzhuyin - ibus-m17n - ibus-typing-booster - iproute - - iptables + - iptables-nft - iptstate - iputils - - ipw2100-firmware - - ipw2200-firmware - iwl100-firmware - iwl1000-firmware - iwl105-firmware @@ -101,8 +112,8 @@ packages: - iwl6000g2b-firmware - iwl6050-firmware - iwl7260-firmware + - iwlax2xx-firmware - jomolhari-fonts - - julietaula-montserrat-fonts - kbd - kernel - kernel-modules-extra @@ -114,6 +125,7 @@ packages: - libertas-sd8686-firmware - libertas-sd8787-firmware - libertas-usb8388-firmware + - libglvnd-gles - linux-firmware - logrotate - lohit-assamese-fonts @@ -121,6 +133,7 @@ packages: - lohit-devanagari-fonts - lohit-gujarati-fonts - lohit-kannada-fonts + - lohit-marathi-fonts - lohit-odia-fonts - lohit-tamil-fonts - lohit-telugu-fonts @@ -131,14 +144,12 @@ packages: - mdadm - mesa-dri-drivers - mesa-vulkan-drivers - - mlocate - mpage - mtr - - nano - - nano-default-editor - nfs-utils - nss-altfiles - nss-mdns + - ntfs-3g - ntfsprogs - opensc - openssh-clients @@ -160,7 +171,6 @@ packages: - policycoreutils-python-utils - procps-ng - psmisc - - pt-sans-fonts - qemu-guest-agent - qt5-qtbase - qt5-qtbase-gui @@ -168,6 +178,7 @@ packages: - qt5-qtxmlpatterns - quota - realmd + - rit-meera-new-fonts - rootfiles - rpm - rsync @@ -175,11 +186,9 @@ packages: - selinux-policy-targeted - setup - shadow-utils - - sil-abyssinica-fonts - sil-mingzat-fonts - sil-nuosu-fonts - sil-padauk-fonts - - smc-meera-fonts - sos - spice-vdagent - sssd @@ -189,6 +198,8 @@ packages: - sudo - system-config-printer-udev - systemd + - systemd-oomd-defaults + - systemd-resolved - systemd-udev - tar - thai-scalable-waree-fonts @@ -202,7 +213,9 @@ packages: - vim-minimal - wget - which + - wireplumber - words + - wpa_supplicant - xorg-x11-drv-amdgpu - xorg-x11-drv-ati - xorg-x11-drv-evdev @@ -212,7 +225,6 @@ packages: - xorg-x11-drv-qxl - xorg-x11-drv-wacom - xorg-x11-server-Xorg - - xorg-x11-utils - xorg-x11-xauth - xorg-x11-xinit - zd1211-firmware diff --git a/fedora-common-ostree.yaml b/fedora-common-ostree.yaml index e66c6cc..fbda7e3 100644 --- a/fedora-common-ostree.yaml +++ b/fedora-common-ostree.yaml @@ -1,12 +1,11 @@ ref: fedora/rawhide/${basearch}/ostree-base -automatic_version_prefix: "34" -mutate-os-release: "34" +automatic_version_prefix: "35" +mutate-os-release: "35" include: fedora-common-ostree-pkgs.yaml packages: - - fedora-release-silverblue - git-core - lvm2 - rpm-ostree @@ -17,7 +16,6 @@ packages: - toolbox # Flatpak support - flatpak - - flatpak-builder - xdg-desktop-portal # HFS filesystem tools for Apple hardware # See https://github.com/projectatomic/rpm-ostree/issues/1380 @@ -48,8 +46,12 @@ ignore-removed-users: - root ignore-removed-groups: - root -check-passwd: { type: file, filename: passwd } -check-groups: { type: file, filename: group } +check-passwd: + type: file + filename: passwd +check-groups: + type: file + filename: group default_target: graphical.target @@ -69,11 +71,13 @@ packages-ppc64le: - grub2 - ostree-grub2 packages-x86_64: - - grub2 + - grub2-efi-ia32 - grub2-efi-x64 + - grub2-pc - ostree-grub2 - efibootmgr - - shim + - shim-ia32 + - shim-x64 - microcode_ctl - mcelog - thermald @@ -92,3 +96,23 @@ exclude-packages: - gstreamer1-plugin-openh264 - mozilla-openh264 - openh264 + +postprocess: + - | + #!/usr/bin/env bash + set -xeuo pipefail + + # Work around https://bugzilla.redhat.com/show_bug.cgi?id=1265295 + # From https://github.com/coreos/fedora-coreos-config/blob/testing-devel/overlay.d/05core/usr/lib/systemd/journald.conf.d/10-coreos-persistent.conf + install -dm0755 /usr/lib/systemd/journald.conf.d/ + echo -e "[Journal]\nStorage=persistent" > /usr/lib/systemd/journald.conf.d/10-persistent.conf + + # See: https://src.fedoraproject.org/rpms/glibc/pull-request/4 + # Basically that program handles deleting old shared library directories + # mid-transaction, which never applies to rpm-ostree. This is structured as a + # loop/glob to avoid hardcoding (or trying to match) the architecture. + for x in /usr/sbin/glibc_post_upgrade.*; do + if test -f ${x}; then + ln -srf /usr/bin/true ${x} + fi + done diff --git a/fedora-deepin.yaml b/fedora-deepin.yaml index a6470e4..1bde080 100644 --- a/fedora-deepin.yaml +++ b/fedora-deepin.yaml @@ -1,12 +1,16 @@ include: deepin-desktop-pkgs.yaml -ref: fedora/rawhide/${basearch}/deepin +ref: fedora/35/${basearch}/deepin rojig: name: fedora-deepin summary: "Fedora Deepin base image" license: MIT packages: + # Generic release package for desktop variants + - fedora-release + - fedora-release-ostree-desktop # GUI to manage updates & Flatpaks - gnome-software repos: - - fedora-rawhide + - fedora-35 + - fedora-35-updates diff --git a/fedora-kinoite.yaml b/fedora-kinoite.yaml index 25099f1..cc331f8 100644 --- a/fedora-kinoite.yaml +++ b/fedora-kinoite.yaml @@ -1,10 +1,11 @@ include: kde-desktop-pkgs.yaml -ref: fedora/rawhide/${basearch}/kinoite +ref: fedora/35/${basearch}/kinoite rojig: name: fedora-kde summary: "Fedora Kinoite (KDE) base image" license: MIT packages: + - fedora-release-kinoite # Wayland support - kwayland-integration - kwin-wayland @@ -14,6 +15,21 @@ packages: - xdg-desktop-portal-kde # Provide an archive manager by default - ark + # Keep some basic apps installed until we have Flatpaks available + # See https://pagure.io/fedora-kde/SIG/issue/13 + - gwenview + - kcalc + - kwrite + - okular + +# Make sure the following are not pulled in when Recommended by other packages +exclude-packages: + - plasma-discover-offline-updates + - plasma-discover-packagekit + # Exclude currently broken support for rpm-ostree in Discover + - plasma-discover-rpm-ostree + - plasma-pk-updates repos: - - fedora-rawhide + - fedora-35 + - fedora-35-updates diff --git a/fedora-lxqt.yaml b/fedora-lxqt.yaml index 21ecf2b..74f5071 100644 --- a/fedora-lxqt.yaml +++ b/fedora-lxqt.yaml @@ -1,13 +1,17 @@ include: lxqt-desktop-pkgs.yaml -ref: fedora/rawhide/${basearch}/lxqt +ref: fedora/35/${basearch}/lxqt rojig: name: fedora-lxqt summary: "Fedora LXQt base image" license: MIT packages: + # Generic release package for desktop variants + - fedora-release + - fedora-release-ostree-desktop - libqtxdg # Portals for Flatpak - xdg-desktop-portal-kde repos: - - fedora-rawhide + - fedora-35 + - fedora-35-updates diff --git a/fedora-mate.yaml b/fedora-mate.yaml index 6080915..ee0f8e3 100644 --- a/fedora-mate.yaml +++ b/fedora-mate.yaml @@ -1,11 +1,12 @@ include: mate-desktop-pkgs.yaml -ref: fedora/rawhide/${basearch}/mate +ref: fedora/35/${basearch}/mate rojig: name: fedora-mate summary: "Fedora Mate base image" license: MIT - packages: + # Generic release sub package for desktop variants + - fedora-release-ostree-desktop # Portals for Flatpak - xdg-desktop-portal-gtk @@ -13,4 +14,5 @@ exclude-packages: - python3-unbound repos: - - fedora-rawhide + - fedora-35 + - fedora-35-updates diff --git a/fedora-pantheon.yaml b/fedora-pantheon.yaml index 31327f4..e6b32de 100644 --- a/fedora-pantheon.yaml +++ b/fedora-pantheon.yaml @@ -1,10 +1,14 @@ include: pantheon-desktop-pkgs.yaml -ref: fedora/rawhide/${basearch}/pantheon +ref: fedora/35/${basearch}/pantheon rojig: name: fedora-pantheon summary: "Fedora Pantheon base image" license: MIT packages: + # Generic release package for desktop variants + - fedora-release + - fedora-release-ostree-desktop repos: - - fedora-rawhide + - fedora-35 + - fedora-35-updates diff --git a/fedora-rawhide.repo b/fedora-rawhide.repo deleted file mode 100644 index 5881c94..0000000 --- a/fedora-rawhide.repo +++ /dev/null @@ -1,7 +0,0 @@ -[fedora-rawhide] -name=Fedora rawhide $basearch -#baseurl=https://download.fedoraproject.org/pub/fedora/linux/development/rawhide/$basearch/os/ -mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=rawhide&arch=$basearch -enabled=0 -gpgcheck=0 -metadata_expire=1d diff --git a/fedora-silverblue.yaml b/fedora-silverblue.yaml index f7f810a..bcaca35 100644 --- a/fedora-silverblue.yaml +++ b/fedora-silverblue.yaml @@ -1,10 +1,11 @@ include: gnome-desktop-pkgs.yaml -ref: fedora/rawhide/${basearch}/silverblue +ref: fedora/35/${basearch}/silverblue rojig: name: fedora-silverblue summary: "Fedora Silverblue base image" license: MIT packages: + - fedora-release-silverblue - desktop-backgrounds-gnome - gnome-shell-extension-background-logo - pinentry-gnome3 @@ -14,6 +15,13 @@ packages: # Include evince-thumbnailer otherwise PDF thumbnails won't work in Nautilus # https://github.com/fedora-silverblue/issue-tracker/issues/98 - evince-thumbnailer + # Include evince-previewer otherwise print previews are broken in Evince + # https://github.com/fedora-silverblue/issue-tracker/issues/122 + - evince-previewer + # Include totem-video-thumbnailer for video thumbnailing in Nautilus + # https://pagure.io/fedora-workstation/issue/168 + - totem-video-thumbnailer repos: - - fedora-rawhide + - fedora-35 + - fedora-35-updates diff --git a/fedora-xfce.yaml b/fedora-xfce.yaml index 4655808..408ca09 100644 --- a/fedora-xfce.yaml +++ b/fedora-xfce.yaml @@ -1,11 +1,15 @@ include: xfce-desktop-pkgs.yaml -ref: fedora/rawhide/${basearch}/xfce +ref: fedora/35/${basearch}/xfce rojig: name: fedora-xfce summary: "Fedora XFCE base image" license: MIT packages: + - fedora-release-xfce + # Generic release sub package for desktop variants + - fedora-release-ostree-desktop # Portals for Flatpak - xdg-desktop-portal-gtk repos: - - fedora-rawhide + - fedora-35 + - fedora-35-updates diff --git a/github-fetch.sh b/github-fetch.sh new file mode 100755 index 0000000..ebf972e --- /dev/null +++ b/github-fetch.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# Download built GitHub OSTree repository artifact and unpack it into a plain directory +set -eux + +# download latest repo build +REPO_FINAL="$(dirname $0)/pitti-workstation" +REPO="${REPO_FINAL}.new" + +CURL="curl -u token:$(cat ~/.config/github-token) --show-error --fail" +RESPONSE=$($CURL --silent https://api.github.com/repos/martinpitt/ostree-pitti-workstation/actions/artifacts) +ZIP=$(echo "$RESPONSE" | jq --raw-output '.artifacts | map(select(.name == "repository"))[0].archive_download_url') +echo "INFO: Downloading $ZIP ..." +[ -e /tmp/repository.zip ] || $CURL -L -o /tmp/repository.zip "$ZIP" +rm -rf "$REPO" +mkdir -p "$REPO" +unzip -p /tmp/repository.zip | tar -xzC "$REPO" +rm /tmp/repository.zip +[ ! -e "$REPO_FINAL" ] || mv "${REPO_FINAL}" "${REPO_FINAL}.old" +mv "$REPO" "$REPO_FINAL" +rm -rf "${REPO_FINAL}.old" diff --git a/gnome-desktop-pkgs.yaml b/gnome-desktop-pkgs.yaml index fd31ff5..5200e7a 100644 --- a/gnome-desktop-pkgs.yaml +++ b/gnome-desktop-pkgs.yaml @@ -25,7 +25,6 @@ packages: - gnome-color-manager - gnome-control-center - gnome-disk-utility - - gnome-getting-started-docs - gnome-initial-setup - gnome-remote-desktop - gnome-session-wayland-session @@ -60,6 +59,7 @@ packages: - tracker - tracker-miners - xdg-desktop-portal + - xdg-desktop-portal-gnome - xdg-desktop-portal-gtk - xdg-user-dirs-gtk - yelp diff --git a/greetd-37.repo b/greetd-37.repo new file mode 100644 index 0000000..9decc39 --- /dev/null +++ b/greetd-37.repo @@ -0,0 +1,11 @@ +[copr:copr.fedorainfracloud.org:alebastr:sway-extras] +name=Copr repo for sway-extras owned by alebastr +baseurl=https://download.copr.fedorainfracloud.org/results/alebastr/sway-extras/fedora-37-$basearch/ +type=rpm-md +skip_if_unavailable=True +gpgcheck=1 +gpgkey=https://download.copr.fedorainfracloud.org/results/alebastr/sway-extras/pubkey.gpg +repo_gpgcheck=0 +enabled=1 +enabled_metadata=1 +module_hotfixes=1 diff --git a/kde-desktop-pkgs.yaml b/kde-desktop-pkgs.yaml index 2a1afb6..dd697c5 100644 --- a/kde-desktop-pkgs.yaml +++ b/kde-desktop-pkgs.yaml @@ -5,13 +5,13 @@ packages: - bluedevil - breeze-icon-theme - dolphin - - earlyoom - firewall-config + - fprintd-pam - glibc-all-langpacks - gnome-keyring-pam - initial-setup-gui - - kcm_systemd - kde-gtk-config + - kde-partitionmanager - kde-print-manager - kde-settings-pulseaudio - kdegraphics-thumbnailers @@ -29,7 +29,6 @@ packages: - konsole5 - kscreen - kscreenlocker - - ksysguard - kwalletmanager5 - kwin - pam-kwallet @@ -39,9 +38,17 @@ packages: - plasma-desktop - plasma-desktop-doc - plasma-discover + - plasma-discover-notifier + - plasma-disks - plasma-drkonqi - plasma-nm + - plasma-nm-openconnect + - plasma-nm-openvpn + - plasma-nm-vpnc - plasma-pa + - plasma-systemmonitor + - plasma-thunderbolt + - plasma-vault - plasma-workspace - plasma-workspace-geolocation - plasma-workspace-xorg @@ -52,4 +59,6 @@ packages: - sddm - sddm-breeze - sddm-kcm + - spectacle + - xdg-desktop-portal-gnome - xorg-x11-drv-libinput diff --git a/mate-desktop-pkgs.yaml b/mate-desktop-pkgs.yaml index 1f49c68..45c141b 100644 --- a/mate-desktop-pkgs.yaml +++ b/mate-desktop-pkgs.yaml @@ -23,10 +23,11 @@ packages: - dconf-editor - engrampa - eom - - f33-backgrounds-base - - f33-backgrounds-extras-base - - f33-backgrounds-extras-mate - - f33-backgrounds-mate + - f35-backgrounds-base + - f35-backgrounds-extras-base + - f35-backgrounds-extras-mate + - f35-backgrounds-mate + - fedora-release-matecompiz - firefox - firewall-config - gnome-epub-thumbnailer @@ -94,3 +95,5 @@ packages: - system-config-printer-applet - usermode-gtk - xdg-user-dirs-gtk + - xmodmap + - xrdb diff --git a/pantheon-desktop-pkgs.yaml b/pantheon-desktop-pkgs.yaml index dd97c4d..cc4df6e 100644 --- a/pantheon-desktop-pkgs.yaml +++ b/pantheon-desktop-pkgs.yaml @@ -11,10 +11,12 @@ packages: - elementary-greeter - elementary-icon-theme - elementary-music + - elementary-notifications - elementary-photos - elementary-print - elementary-screenshot-tool - elementary-shortcut-overlay + - elementary-sideload - elementary-sound-theme - elementary-terminal - elementary-theme @@ -36,7 +38,6 @@ packages: - switchboard-plug-mouse-touchpad - switchboard-plug-networking - switchboard-plug-notifications - - switchboard-plug-onlineaccounts - switchboard-plug-pantheon-shell - switchboard-plug-printers - switchboard-plug-sharing diff --git a/post.sh b/post.sh index 39db86f..461b514 100755 --- a/post.sh +++ b/post.sh @@ -26,3 +26,6 @@ for x in /usr/sbin/glibc_post_upgrade.*; do ln -srf /usr/bin/true ${x} fi done + +# enable services +systemctl enable greetd diff --git a/rpmfusion-free-37.repo b/rpmfusion-free-37.repo new file mode 100644 index 0000000..f21c8d7 --- /dev/null +++ b/rpmfusion-free-37.repo @@ -0,0 +1,32 @@ +[rpmfusion-free-37] +name=RPM Fusion for Fedora 37 - Free +#baseurl=http://download1.rpmfusion.org/free/fedora/releases/36/Everything/$basearch/os/ +metalink=https://mirrors.rpmfusion.org/metalink?repo=free-fedora-37&arch=$basearch +enabled=0 +metadata_expire=14d +type=rpm-md +gpgcheck=1 +repo_gpgcheck=0 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-37 + +[rpmfusion-free-debuginfo-37] +name=RPM Fusion for Fedora 37 - Free - Debug +#baseurl=http://download1.rpmfusion.org/free/fedora/releases/36/Everything/$basearch/debug/ +metalink=https://mirrors.rpmfusion.org/metalink?repo=free-fedora-debug-37&arch=$basearch +enabled=0 +metadata_expire=7d +type=rpm-md +gpgcheck=1 +repo_gpgcheck=0 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-37 + +[rpmfusion-free-source-37] +name=RPM Fusion for Fedora 37 - Free - Source +#baseurl=http://download1.rpmfusion.org/free/fedora/releases/36/Everything/source/SRPMS/ +metalink=https://mirrors.rpmfusion.org/metalink?repo=free-fedora-source-37&arch=$basearch +enabled=0 +metadata_expire=7d +type=rpm-md +gpgcheck=1 +repo_gpgcheck=0 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-37 diff --git a/rpmfusion-free-updates-37.repo b/rpmfusion-free-updates-37.repo new file mode 100644 index 0000000..6e1831b --- /dev/null +++ b/rpmfusion-free-updates-37.repo @@ -0,0 +1,29 @@ +[rpmfusion-free-updates-37] +name=RPM Fusion for Fedora 37 - Free - Updates +#baseurl=http://download1.rpmfusion.org/free/fedora/updates/36/$basearch/ +metalink=https://mirrors.rpmfusion.org/metalink?repo=free-fedora-updates-released-37&arch=$basearch +enabled=0 +type=rpm-md +gpgcheck=1 +repo_gpgcheck=0 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-37 + +[rpmfusion-free-updates-debuginfo-37] +name=RPM Fusion for Fedora 37 - Free - Updates Debug +#baseurl=http://download1.rpmfusion.org/free/fedora/updates/36/$basearch/debug/ +metalink=https://mirrors.rpmfusion.org/metalink?repo=free-fedora-updates-released-debug-37&arch=$basearch +enabled=0 +type=rpm-md +gpgcheck=1 +repo_gpgcheck=0 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-37 + +[rpmfusion-free-updates-source-37] +name=RPM Fusion for Fedora 37 - Free - Updates Source +#baseurl=http://download1.rpmfusion.org/free/fedora/updates/36/SRPMS/ +metalink=https://mirrors.rpmfusion.org/metalink?repo=free-fedora-updates-released-source-37&arch=$basearch +enabled=0 +type=rpm-md +gpgcheck=1 +repo_gpgcheck=0 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-37 diff --git a/x1-gen7-sway-desktop.yaml b/x1-gen7-sway-desktop.yaml new file mode 100644 index 0000000..df68271 --- /dev/null +++ b/x1-gen7-sway-desktop.yaml @@ -0,0 +1,418 @@ +ref: x1-gen7-sway-desktop-35 +rojig: + name: x1-gen7-sway-desktop-35 + summary: "Thinkpad X1 Gen 7 Sway Desktop - Fedora 35" + license: MIT + +automatic_version_prefix: "35" +mutate-os-release: "35" + +repos: + - fedora-35 + - fedora-35-updates + - rpmfusion-free-35 + - rpmfusion-free-updates-35 + - copr:copr.fedorainfracloud.org:dawid:better_fonts + - copr:copr.fedorainfracloud.org:alebastr:sway-extras + +selinux: true +documentation: true +boot-location: modules +etc-group-members: + - wheel +tmp-is-dir: true + +postprocess-script: post.sh + +ignore-removed-users: + - root +ignore-removed-groups: + - root +check-passwd: + type: file + filename: passwd +check-groups: + type: file + filename: group + +default_target: graphical.target + +packages: + - lvm2 + - rpm-ostree +# Container management + - buildah + - podman + - skopeo + - toolbox +# Flatpak support + - flatpak + - xdg-desktop-portal + - glibc-devel + - kernel-devel + - elfutils-libelf-devel + - fedora-repos-ostree + - fedora-repos-archive +# boot / hardware / drivers + - efibootmgr + - fwupd + - grub2-efi-ia32 + - grub2-efi-x64 + - grub2-pc + - libva-intel-driver + - libva-intel-hybrid-driver + - mcelog + - microcode_ctl + - ostree-grub2 + - shim-ia32 + - shim-x64 + - thermald + - thinkfan +# base system + - biosdevname + - coreutils-common + - dbus-daemon + - device-mapper-multipath + - nvme-cli + - rng-tools +# diagnostic / utils + - htop + - iotop + - lm_sensors + - lshw + - net-tools + - nmap-ncat + - powertop + - wireshark +# alternative modern rust apps + - bat + - ripgrep +# networking + - bridge-utils + - dhcpcd + - iwd + - network-manager-applet +# shell tools and development + - alacritty + - autoconf + - automake + - ctags + - emacs + - gettext-devel + - git + - intltool + - ipython3 + - libtool + - make + - neovim + - patchutils + - squashfs-tools + - strace + - systemd-container + - vim-enhanced + - w3m + - zram-generator +# fonts + - adobe-source-sans-pro-fonts + - bitstream-vera-fonts-all + - fontawesome-fonts + - fontawesome-fonts-web + - fontconfig + - fontconfig-font-replacements + - fontconfig-enhanced-defaults + - google-roboto-slab-fonts + - langpacks-core-font-en + - lato-fonts + - open-sans-fonts + - terminus-fonts + - ucs-miscfixed-opentype-fonts + - urw-base35-bookman-fonts + - urw-base35-c059-fonts + - urw-base35-d050000l-fonts + - urw-base35-fonts-common + - urw-base35-fonts + - urw-base35-gothic-fonts + - urw-base35-nimbus-mono-ps-fonts + - urw-base35-nimbus-roman-fonts + - urw-base35-nimbus-sans-fonts + - urw-base35-p052-fonts + - urw-base35-standard-symbols-ps-fonts + - urw-base35-z003-fonts +# audio / video + - alsa-plugins-pulseaudio + - ffmpeg + - gstreamer1-libav + - gvfs-mtp + - libavdevice + - libva + - libva-utils + - pavucontrol + - pulseaudio-utils + - vlc +# misc + - feh + - okular +# sway / wayland desktop + - brightnessctl + - cage + - greetd + - greetd-gtkgreet + - grim + - i3status-rs + - kanshi + - mako + - pinentry-qt + - slurp + - sway + - swayidle + - swaylock + - waybar + - wayland-devel + - wdisplays + - wl-clipboard + - wofi + - xdg-desktop-portal-wlr +# virtualization + - libguestfs-tools + - libvirt-daemon-config-network + - libvirt-daemon-kvm + - python-libguestfs + - qemu-img + - qemu-kvm + - qemu-system-x86-core + - qemu-ui-sdl + - virt-install + - virt-manager + - virt-top + - virt-viewer +# comps-sync + - NetworkManager + - NetworkManager-bluetooth + - NetworkManager-config-connectivity-fedora + - NetworkManager-wifi + - NetworkManager-wwan + - abattis-cantarell-fonts + - acl + # - adwaita-qt5 + - alsa-sof-firmware + - alsa-ucm + - alsa-utils + # - atmel-firmware + - attr + - audit + - b43-fwcutter + - b43-openfwwf + - basesystem + - bash + - bash-completion + - bc + - bind-utils + # - bluez-cups + # - btrfs-progs + - bzip2 + # - chrony + # - cifs-utils + - colord + - compsize + - coreutils + - cpio + - cryptsetup + # - cups + # - cups-filters + - curl + - cyrus-sasl-plain + # - default-editor + - dejavu-sans-fonts + - dejavu-sans-mono-fonts + - dejavu-serif-fonts + - dhcp-client + - dnsmasq + - e2fsprogs + - ethtool + - exfatprogs + # - fedora-bookmarks + # - fedora-chromium-config + - fedora-repos-modular + # - fedora-workstation-backgrounds + - file + - filesystem + - firefox + - firewalld + # - fpaste + # - fros-gnome + # - gamemode + - glibc + - glibc-all-langpacks + - glx-utils + - gnupg2 + - google-noto-emoji-color-fonts + # - google-noto-sans-cjk-ttc-fonts + - google-noto-sans-gurmukhi-fonts + - google-noto-sans-sinhala-vf-fonts + - gstreamer1-plugins-bad-free + - gstreamer1-plugins-good + - gstreamer1-plugins-ugly-free + # - gutenprint + # - gutenprint-cups + - hostname + # - hplip + - hunspell + - ibus-anthy + - ibus-gtk3 + - ibus-hangul + - ibus-libpinyin + - ibus-libzhuyin + - ibus-m17n + - ibus-typing-booster + - iproute + - iptables-nft + - iptstate + - iputils + - ipw2100-firmware + - ipw2200-firmware + - iwl100-firmware + - iwl1000-firmware + - iwl105-firmware + - iwl135-firmware + - iwl2000-firmware + - iwl2030-firmware + - iwl3160-firmware + - iwl3945-firmware + - iwl4965-firmware + - iwl5000-firmware + - iwl5150-firmware + - iwl6000-firmware + - iwl6000g2a-firmware + - iwl6000g2b-firmware + - iwl6050-firmware + - iwl7260-firmware + - iwlax2xx-firmware + - jomolhari-fonts + - kbd + - kernel + - kernel-modules-extra + - khmer-os-system-fonts + - less + - liberation-mono-fonts + - liberation-sans-fonts + - liberation-serif-fonts + - libertas-sd8686-firmware + - libertas-sd8787-firmware + - libertas-usb8388-firmware + # - libglvnd-gles + - linux-firmware + - logrotate + - lohit-assamese-fonts + - lohit-bengali-fonts + - lohit-devanagari-fonts + - lohit-gujarati-fonts + - lohit-kannada-fonts + - lohit-odia-fonts + - lohit-tamil-fonts + - lohit-telugu-fonts + # - lrzsz + - lsof + - man-db + - man-pages + - mdadm + - mesa-dri-drivers + - mesa-vulkan-drivers + - mlocate + # - mpage + - mtr + - nfs-utils + - nss-altfiles + - nss-mdns + # - ntfs-3g + # - ntfsprogs + - opensc + - openssh-clients + - openssh-server + - paktype-naskh-basic-fonts + - pam_afs_session + # - paps + - passwd + - passwdqc + - pciutils + - pinfo + - pipewire-alsa + - pipewire-gstreamer + - pipewire-pulseaudio + - pipewire-utils + - plymouth + - plymouth-system-theme + - policycoreutils + - policycoreutils-python-utils + - procps-ng + - psmisc + - qemu-guest-agent + - qt5-qtbase + - qt5-qtbase-gui + - qt5-qtdeclarative + - qt5-qtxmlpatterns + - quota + # - realmd + - rootfiles + - rpm + - rsync + # - samba-client + - selinux-policy-targeted + - setup + - shadow-utils + - sil-abyssinica-fonts + - sil-mingzat-fonts + - sil-nuosu-fonts + - sil-padauk-fonts + - smc-meera-fonts + - sos + - spice-vdagent + - sssd + - sssd-common + - sssd-kcm + - stix-fonts + - sudo + # - system-config-printer-udev + - systemd + - systemd-oomd-defaults + - systemd-resolved + - systemd-udev + - tar + - thai-scalable-waree-fonts + - time + - tree + - unzip + - uresourced + - usb_modeswitch + - usbutils + - util-linux + # - vim-minimal + - wget + - which + - wireplumber + - words + - wpa_supplicant + # - zd1211-firmware + - zip + - zram-generator-defaults + +# Make sure the following are not pulled in when Recommended by other packages +exclude-packages: + - PackageKit + # We can not include openh264. See https://fedoraproject.org/wiki/OpenH264 + - gstreamer1-plugin-openh264 + - mozilla-openh264 + - openh264 + - xdg-desktop-portal-gtk + +add-files: + - ["config/systemd/mako.service", "/etc/systemd/user/mako.service"] + - ["config/systemd/nm-applet.service", "/etc/systemd/user/nm-applet.service"] + - ["config/systemd/swayidle.service", "/etc/systemd/user/swayidle.service"] + - ["config/systemd/swaylock.service", "/etc/systemd/user/swaylock.service"] + - ["config/systemd/sway-session.target", "/etc/systemd/user/sway-session.target"] + - ["config/systemd/wayland-session.target", "/etc/systemd/user/wayland-session.target"] + - ["config/sway-service.desktop", "/usr/share/wayland-sessions/sway-service.desktop"] + - ["config/modprobe.d/i2c_i801-blacklist.conf", "/etc/modprobe.d/i2c_i801-blacklist.conf"] + - ["config/environment.d/wayland.conf", "/etc/environment.d/wayland.conf"] + - ["config/greetd/config.toml", "/etc/greetd/config.toml"] + - ["config/greetd/environments", "/etc/greetd/environments"] diff --git a/x13-gen1-sway-desktop.yaml b/x13-gen1-sway-desktop.yaml new file mode 100644 index 0000000..bd9e0c4 --- /dev/null +++ b/x13-gen1-sway-desktop.yaml @@ -0,0 +1,368 @@ +ref: x13-gen1-sway-desktop-37 +rojig: + name: x13-gen1-sway-desktop-37 + summary: "Thinkpad X13 Gen 1 Sway Desktop - Fedora 37" + license: MIT + +automatic_version_prefix: "37" +mutate-os-release: "37" + +repos: + - fedora-37 + - fedora-37-updates + - rpmfusion-free-37 + - rpmfusion-free-updates-37 + - copr:copr.fedorainfracloud.org:dawid:better_fonts + - copr:copr.fedorainfracloud.org:alebastr:sway-extras + +selinux: true +documentation: true +boot-location: modules +etc-group-members: + - wheel +tmp-is-dir: true + +postprocess-script: post.sh + +ignore-removed-users: + - root +ignore-removed-groups: + - root +check-passwd: + type: file + filename: passwd +check-groups: + type: file + filename: group + +default_target: graphical.target + +packages: + - lvm2 + - rpm-ostree +# Container management + - buildah + - podman + - skopeo + - toolbox +# Flatpak support + - flatpak + - xdg-desktop-portal + - glibc-devel + - kernel-devel + - elfutils-libelf-devel + - fedora-repos-ostree + - fedora-repos-archive +# boot / hardware / drivers + - efibootmgr + - fwupd + - libva-intel-driver + - libva-intel-hybrid-driver + - mcelog + - microcode_ctl + - thermald + - thinkfan +# base system + - biosdevname + - coreutils-common + - dbus-daemon + - device-mapper-multipath + - nvme-cli + - rng-tools +# diagnostic / utils + - htop + - iotop + - lm_sensors + - lshw + - net-tools + - nmap-ncat + - powertop + - wireshark +# alternative modern rust apps + - bat + - ripgrep +# networking + - bridge-utils + - dhcpcd + - iwd + - NetworkManager + - network-manager-applet + - NetworkManager-bluetooth + - NetworkManager-config-connectivity-fedora + - NetworkManager-wifi + - NetworkManager-wwan +# shell tools and development + - alacritty + - autoconf + - automake + - ctags + - emacs + - gettext-devel + - git + - intltool + - ipython3 + - libtool + - make + - neovim + - patchutils + - squashfs-tools + - strace + - systemd-container + - vim-enhanced + - w3m + - zram-generator +# fonts + - adobe-source-sans-pro-fonts + - bitstream-vera-fonts-all + - dejavu-sans-fonts + - dejavu-sans-mono-fonts + - dejavu-serif-fonts + - fontawesome-fonts + - fontawesome-fonts-web + - fontconfig + - fontconfig-enhanced-defaults + - google-noto-emoji-color-fonts + - google-noto-sans-gurmukhi-fonts + - google-noto-sans-sinhala-vf-fonts + - khmer-os-system-fonts + - langpacks-core-font-en + - liberation-mono-fonts + - liberation-sans-fonts + - liberation-serif-fonts + - lohit-assamese-fonts + - lohit-bengali-fonts + - lohit-devanagari-fonts + - lohit-gujarati-fonts + - lohit-kannada-fonts + - lohit-odia-fonts + - lohit-tamil-fonts + - lohit-telugu-fonts + - open-sans-fonts + - paktype-naskh-basic-fonts + - sil-abyssinica-fonts + - sil-mingzat-fonts + - sil-nuosu-fonts + - sil-padauk-fonts + - rit-meera-new-fonts + - terminus-fonts + - thai-scalable-waree-fonts + - ucs-miscfixed-opentype-fonts + - urw-base35-bookman-fonts + - urw-base35-c059-fonts + - urw-base35-d050000l-fonts + - urw-base35-fonts + - urw-base35-fonts-common + - urw-base35-gothic-fonts + - urw-base35-nimbus-mono-ps-fonts + - urw-base35-nimbus-roman-fonts + - urw-base35-nimbus-sans-fonts + - urw-base35-p052-fonts + - urw-base35-standard-symbols-ps-fonts + - urw-base35-z003-fonts +# audio / video + - alsa-plugins-pulseaudio + - ffmpeg + - gstreamer1-libav + - gvfs-mtp + - libavdevice + - libva + - libva-utils + - pavucontrol + - pulseaudio-utils +# misc + - feh + - okular +# sway / wayland desktop + - brightnessctl + - cage + - greetd + - greetd-gtkgreet + - grim + - i3status-rs + - kanshi + - mako + - pinentry-qt + - slurp + - sway + - swayidle + - swaylock + - waybar + - wayland-devel + - wdisplays + - wl-clipboard + - wldash + - xdg-desktop-portal-wlr +# virtualization + - libguestfs-tools + - libvirt-daemon-config-network + - libvirt-daemon-kvm + - python-libguestfs + - qemu-img + - qemu-kvm + - qemu-system-x86-core + - qemu-ui-sdl + - virt-install + - virt-manager + - virt-top + - virt-viewer +# comps-sync + - abattis-cantarell-fonts + - acl + - alsa-sof-firmware + - alsa-ucm + - alsa-utils + - attr + - audit + - b43-fwcutter + - b43-openfwwf + - basesystem + - bash + - bash-completion + - bc + - bind-utils + - bzip2 + - colord + - compsize + - coreutils + - cpio + - cryptsetup + - curl + - dhcp-client + - dnsmasq + - e2fsprogs + - ethtool + - exfatprogs + - fedora-repos-modular + - file + - filesystem + - firefox + - firewalld + - glibc + - glibc-all-langpacks + - glx-utils + - gnupg2 + - gstreamer1-plugins-bad-free + - gstreamer1-plugins-good + - gstreamer1-plugins-ugly-free + - hostname + - hunspell + - ibus-anthy + - ibus-gtk3 + - ibus-hangul + - ibus-libpinyin + - ibus-libzhuyin + - ibus-m17n + - ibus-typing-booster + - iproute + - iptables-nft + - iptstate + - iputils + - iwl7260-firmware + - jomolhari-fonts + - kbd + - kernel + - kernel-modules-extra + - less + - libertas-sd8686-firmware + - libertas-sd8787-firmware + - libertas-usb8388-firmware + - linux-firmware + - logrotate + - lsof + - man-db + - man-pages + - mdadm + - mesa-dri-drivers + - mesa-vulkan-drivers + - mlocate + - mtr + - nfs-utils + - nss-altfiles + - nss-mdns + - opensc + - openssh-clients + - openssh-server + - pam_afs_session + - passwd + - passwdqc + - pciutils + - pinfo + - pipewire-alsa + - pipewire-gstreamer + - pipewire-pulseaudio + - pipewire-utils + - plymouth + - plymouth-system-theme + - policycoreutils + - policycoreutils-python-utils + - procps-ng + - psmisc + - qemu-guest-agent + - qt5-qtbase + - qt5-qtbase-gui + - qt5-qtdeclarative + - qt5-qtxmlpatterns + - quota + - rootfiles + - rpm + - rsync + - selinux-policy-targeted + - setup + - shadow-utils + - sos + - spice-vdagent + - sssd + - sssd-common + - sssd-kcm + - stix-fonts + - sudo + - systemd + - systemd-oomd-defaults + - systemd-resolved + - systemd-udev + - tar + - time + - tree + - unzip + - uresourced + - usb_modeswitch + - usbutils + - util-linux + - wget + - which + - wireplumber + - words + - wpa_supplicant + - zip + - zram-generator-defaults + +# Make sure the following are not pulled in when Recommended by other packages +exclude-packages: + - PackageKit + # We can not include openh264. See https://fedoraproject.org/wiki/OpenH264 + - gstreamer1-plugin-openh264 + - mozilla-openh264 + - openh264 + - xdg-desktop-portal-gtk + +add-files: + - ["config/systemd/mako.service", "/etc/systemd/user/mako.service"] + - ["config/systemd/nm-applet.service", "/etc/systemd/user/nm-applet.service"] + - ["config/systemd/swayidle.service", "/etc/systemd/user/swayidle.service"] + - ["config/systemd/swaylock.service", "/etc/systemd/user/swaylock.service"] + - ["config/environment.d/wayland.conf", "/etc/environment.d/wayland.conf"] + - ["config/greetd/config.toml", "/etc/greetd/config.toml"] + - ["config/sway/config", "/etc/sway/config"] + - ["config/sway/config.d/10-variables.conf", "/etc/sway/config.d/10-variables.conf"] + - ["config/sway/config.d/20-output.conf", "/etc/sway/config.d/20-output.conf"] + - ["config/sway/config.d/30-input.conf", "/etc/sway/config.d/30-input.conf"] + - ["config/sway/config.d/50-style.conf", "/etc/sway/config.d/50-style.conf"] + - ["config/sway/config.d/60-app-windows.conf", "/etc/sway/config.d/60-app-windows.conf"] + - ["config/sway/config.d/90-bindings.conf", "/etc/sway/config.d/90-bindings.conf"] + - ["config/sway/config.d/91-swaysome.conf", "/etc/sway/config.d/91-swaysome.conf"] + - ["config/sway/config.d/99-startup.conf", "/etc/sway/config.d/99-startup.conf"] + - ["config/sway/bin/keyboard-layout-per-window.py", "/usr/bin/keyboard-layout-per-window.py"] + - ["config/waybar/config", "/etc/xdg/waybar/config"] + - ["config/waybar/style.css", "/etc/xdg/waybar/style.css"] + - ["config/waybar/keyboard-layout.py", "/etc/xdg/waybar/keyboard-layout.py"] + - ["config/wldash.yaml", "/usr/share/wldash/config.yaml"] diff --git a/xfce-desktop-pkgs.yaml b/xfce-desktop-pkgs.yaml index e473a98..def43f1 100644 --- a/xfce-desktop-pkgs.yaml +++ b/xfce-desktop-pkgs.yaml @@ -45,5 +45,4 @@ packages: - xfconf - xfdesktop - xfwm4 - - xfwm4-theme-nodoka - xfwm4-themes