Skip to content

Conversation

@iaacornus
Copy link
Collaborator

@iaacornus iaacornus commented Mar 4, 2023

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 iaacornus self-assigned this Mar 4, 2023
@iaacornus
Copy link
Collaborator Author

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
Copy link
Collaborator Author

iaacornus commented Mar 4, 2023

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, installation of recommended apps (rpm) #13 , removal of some base packages (kde) #36 , removal of some base packages (gnome) #37
  2. tprepo_i (install media codecs and drvs #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 install media codecs and drvs #15
  4. wq_ssd-d, takes bool, whether to disable workspace queue disabling of workqueue to improve ssd performance #35
  5. toolbox-r, takes bool, whether to replace toolbox with distrobox Option: replace toolbox with distrobox #34
  6. wayland_ff-e,takes bool, whether to enable wayland rendering in firefox enable wayland rendering in either flatpak or rpm firefox #44
  7. ff_rpm-r, takes bool, whether to replace firefox rpm with firefox from flathub replace power-profiles-daemon with tlp #48
  8. ppd-r, takes bool, whether to replace power-profiles-daemon with tlp, replace power-profiles-daemon with tlp #48
  9. deep-sw, takes bool, whether to switch from s2idle to deep sleep, option to change suspend mode from s2idle to deep sleep #43
  10. batt_thresh, takes int, the value to set in battery threshold, option to set battery threshold in laptops #39
  11. bpkgs-r, takes bool, whether to remove the base packages on given config afu_conf, removal of some base packages (gnome) #37 , removal of some base packages (kde) #36
  12. fish-sw, takes bool, whether to replace bash with fish shell, change default shell to fish #14
  13. fish-mod, takes dictionary, which contains a key value pair of modifications and its values, basic customization for fish #58
  14. rfusion-ri, takes bool, whether to reinstall rpmfusion or not, reinstall rpmfusion with the unversioned rpmfusion to avoid future rebooting problems #42

iaacornus and others added 14 commits March 4, 2023 14:48
I dont think recommending Flatpaks makes sense really.
the desktop env can be determined using some modules, hence theres no need to specify whether its kde or gnome

replaced `i` with `add`, `r` with `rm`, `ri` with `radd` (reinstall)
added more configs, extended some names, reordered
added more configs, extended some names, reordered
@boredsquirrel
Copy link
Collaborator

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Collaborator

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:

  • fetch an image from the fedora image repo
  • apply override remove and install
  • change anything else
  • build the image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment