Fedora-OSTree-Setup-dev / Fedora-OSTree-Setup

Glorified scipt that automates the setup of Fedora Silverblue/Kinoite based on given config file.
GNU General Public License v3.0
7 stars 3 forks source link

version 0.1, implementation of some features with priority label #57

Open iaacornus opened 1 year ago

iaacornus commented 1 year ago

the mechanism of program is described as follows:

  1. initial setup, this includes preparation of things that is required for the next step, such as setup of repository (rpmfusion, flatpak repos), as well as layering of the program where further modification is needed after reboot.
  2. reboot
  3. main phase setup, after setup of repository and layering of initial applications, the tweaks necessary are then executed, such as after layering of fish, it is set as default shell
  4. reboot
  5. finish

some of the currently implemented features includes:

work in progress

iaacornus commented 1 year ago

the project also plans to introduce config for easy reproducible starting setup, the config would allow the user to utilize the features of the program in a fully autonomous manner

iaacornus commented 1 year ago

the basic initial config as of this comment:

{
    "afi_conf": "iaacornus/Fedora-OSTree-Setup/devel/config/app_for_install.json",
    "afu_conf": "iaacornus/Fedora-OSTree-Setup/devel/config/app_for_removal.json",
    "tprepo-i": [
            "rpm_rfusion_f",
            "rpm_rfusion_nf",
            "rpm_rfusion_tainted",
            "rpm_rfusion_nf_tained",
            "fp_flathub",
            "fp_fed_oci",
            "fp_kde",
            "fp_gnome_nightly"
        ],
    "cdrv-i": true,
    "wq_ssd-d": true,
    "toolbox-r": true,
    "wayland_ff-e": true,
    "ff_rpm-r": true,
    "ppd-r": true,
    "deep-sw": true,
    "batt_thresh": 80,
    "bpkgs-r": true,
    "fish-s": true,
    "fish-mod": {
            "greetings": null
        },
    "rfusion-ri": true
}
  1. afi_conf and afu_conf takes the config file which is a list of program that will be installed and uninstalled, respectively, has the same format as default, the value has a format of user/repo/<branch: optional>/file_dir, #13 , #36 , #37
  2. tprepo_i (#15 ) takes an array of repo id which is hard coded in the program, the default (will be further expanded) includes:
    "rpm_rfusion_f", rpmfusion free "rpm_rfusion_nf", rpmfusion non free "rpm_rfusion_tainted", rpm fusion free tainted "rpm_rfusion_nf_tained", rpm fusion nonfree tainted "fp_flathub", flathub "fp_fed_oci", fedora oci "fp_kde", kde "fp_gnome_nightly" gnome nightly
  3. cdrv-i, takes bool, whether to automatically install drvs and codecs #15
  4. wq_ssd-d, takes bool, whether to disable workspace queue #35
  5. toolbox-r, takes bool, whether to replace toolbox with distrobox #34
  6. wayland_ff-e,takes bool, whether to enable wayland rendering in firefox #44
  7. ff_rpm-r, takes bool, whether to replace firefox rpm with firefox from flathub #48
  8. ppd-r, takes bool, whether to replace power-profiles-daemon with tlp, #48
  9. deep-sw, takes bool, whether to switch from s2idle to deep sleep, #43
  10. batt_thresh, takes int, the value to set in battery threshold, #39
  11. bpkgs-r, takes bool, whether to remove the base packages on given config afu_conf, #37 , #36
  12. fish-sw, takes bool, whether to replace bash with fish shell, #14
  13. fish-mod, takes dictionary, which contains a key value pair of modifications and its values, #58
  14. rfusion-ri, takes bool, whether to reinstall rpmfusion or not, #42
boredsquirrel commented 1 year ago

I would say installing Flatpaks is also step 1. Somewhere I read it is not recommended to layer packages with the initial update, but I dont think adding repos could hurt.

iaacornus commented 1 year ago

I would say installing Flatpaks is also step 1. Somewhere I read it is not recommended to layer packages with the initial update, but I dont think adding repos could hurt.

thats an interesting suggestion, but i agree that maybe we should commence a full system upgrade first before doing modifications and what not

iaacornus commented 1 year ago

quoted from #92

everything related here will be pushed to alpha-0.1, then alpha-0.1 will be merged to devel for testing and finally to main branch for stable

boredsquirrel commented 1 year ago

I think we should go away from the "as little as possible" approach.

If we can build a custom image without client-side layering, why not do it perfectly? In the docker build on Github you can edit everything, place custom files and more. You can remove all those weird free codecs and drivers and replace them with working ones from rpmfusion for example.

The process is like that: