Merge pull request 'new-base-core' (#1) from new-base-core into main
All checks were successful
bluebuild / Build Custom Image (recipe.yml) (push) Successful in 24s
All checks were successful
bluebuild / Build Custom Image (recipe.yml) (push) Successful in 24s
Reviewed-on: #1
This commit is contained in:
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@@ -5,6 +5,8 @@ on:
|
||||
"00 06 * * *" # build at 06:00 UTC every day
|
||||
# (20 minutes after last ublue images start building)
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths-ignore: # don't rebuild if only documentation has changed
|
||||
- "**.md"
|
||||
|
||||
|
@@ -26,4 +26,9 @@ To rebase an existing atomic Fedora installation to the latest build:
|
||||
systemctl reboot
|
||||
```
|
||||
|
||||
The `latest` tag will automatically point to the latest build. That build will still always use the Fedora version specified in `recipe.yml`, so you won't get accidentally updated to the next major version.
|
||||
The `latest` tag will automatically point to the latest build. That build will still always use the Fedora version specified in `recipe.yml`, so you won't get accidentally updated to the next major version.
|
||||
|
||||
|
||||
# Attribution
|
||||
|
||||
Thanks to [Wayblue](https://github.com/wayblueorg/wayblue) for how to get around some issues with sddm on an atomic distribution and how to create a working distro from the base Fedora image.
|
10
files/scripts/enableautoupdates.sh
Normal file
10
files/scripts/enableautoupdates.sh
Normal file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Tell build process to exit if there are any errors.
|
||||
set -oue pipefail
|
||||
|
||||
systemctl enable rpm-ostreed-automatic.timer
|
||||
systemctl enable podman-auto-update.timer
|
||||
systemctl --global enable podman-auto-update.timer
|
||||
systemctl --global enable flatpak-user-update.timer
|
||||
systemctl enable flatpak-system-update.timer
|
@@ -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'
|
25
files/scripts/installproprietarypackages.sh
Normal file
25
files/scripts/installproprietarypackages.sh
Normal file
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Tell build process to exit if there are any errors.
|
||||
set -oue pipefail
|
||||
|
||||
curl -Lo /etc/yum.repos.d/negativo17-fedora-multimedia.repo https://negativo17.org/repos/fedora-multimedia.repo
|
||||
sed -i '0,/enabled=1/{s/enabled=1/enabled=1\npriority=90/}' /etc/yum.repos.d/negativo17-fedora-multimedia.repo
|
||||
|
||||
rpm-ostree override replace \
|
||||
--experimental \
|
||||
--from repo='fedora-multimedia' \
|
||||
libheif \
|
||||
libva \
|
||||
libva-intel-media-driver \
|
||||
mesa-dri-drivers \
|
||||
mesa-filesystem \
|
||||
mesa-libEGL \
|
||||
mesa-libGL \
|
||||
mesa-libgbm \
|
||||
mesa-libxatracker \
|
||||
mesa-va-drivers \
|
||||
mesa-vulkan-drivers \
|
||||
gstreamer1-plugin-libav \
|
||||
gstreamer1-plugin-vaapi \
|
||||
rar
|
6
files/scripts/nvidia/installtoolkitpolicy.sh
Normal file
6
files/scripts/nvidia/installtoolkitpolicy.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Tell build process to exit if there are any errors.
|
||||
set -oue pipefail
|
||||
|
||||
semodule --verbose --install /usr/share/selinux/packages/nvidia-container.pp
|
10
files/scripts/nvidia/removeunusedrepos.sh
Normal file
10
files/scripts/nvidia/removeunusedrepos.sh
Normal file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Tell build process to exit if there are any errors.
|
||||
set -oue pipefail
|
||||
|
||||
rm -f /etc/yum.repos.d/negativo17-fedora-nvidia.repo
|
||||
rm -f /etc/yum.repos.d/negativo17-fedora-multimedia.repo
|
||||
rm -f /etc/yum.repos.d/eyecantcu-supergfxctl.repo
|
||||
rm -f /etc/yum.repos.d/_copr_ublue-os-akmods.repo
|
||||
rm -f /etc/yum.repos.d/nvidia-container-toolkit.repo
|
16
files/scripts/nvidia/setdrmvariables.sh
Normal file
16
files/scripts/nvidia/setdrmvariables.sh
Normal file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Tell build process to exit if there are any errors.
|
||||
set -oue pipefail
|
||||
|
||||
|
||||
echo '
|
||||
|
||||
# Nvidia modesetting support. Set to 0 or comment to disable kernel modesetting
|
||||
# support. This must be disabled in case of SLI Mosaic.
|
||||
|
||||
options nvidia-drm modeset=1 fbdev=1
|
||||
|
||||
' > /usr/lib/modprobe.d/nvidia-modeset.conf
|
||||
|
||||
cp /usr/lib/modprobe.d/nvidia-modeset.conf /etc/modprobe.d/nvidia-modeset.conf
|
7
files/scripts/nvidia/setearlyloading.sh
Normal file
7
files/scripts/nvidia/setearlyloading.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Tell build process to exit if there are any errors.
|
||||
set -oue pipefail
|
||||
|
||||
sed -i 's@omit_drivers@force_drivers@g' /usr/lib/dracut/dracut.conf.d/99-nvidia.conf
|
||||
sed -i 's@ nvidia @ i915 amdgpu nvidia @g' /usr/lib/dracut/dracut.conf.d/99-nvidia.conf
|
11
files/scripts/setsddmtheming.sh
Normal file
11
files/scripts/setsddmtheming.sh
Normal file
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Tell build process to exit if there are any errors.
|
||||
set -oue pipefail
|
||||
|
||||
sed -i 's/color: "black"/color: "white"/' /usr/share/sddm/themes/maldives/Main.qml
|
||||
sed -i 's/id: lblPassword/id: lblPassword\ncolor: "white"/' /usr/share/sddm/themes/maldives/Main.qml
|
||||
sed -i 's/id: lblName/id: lblName\ncolor: "white"/' /usr/share/sddm/themes/maldives/Main.qml
|
||||
sed -i 's/id: lblSession/id: lblSession\ncolor: "white"/' /usr/share/sddm/themes/maldives/Main.qml
|
||||
sed -i 's/id: lblLayout/id: lblLayout\ncolor: "white"/' /usr/share/sddm/themes/maldives/Main.qml
|
||||
sed -i 's/id: errorMessage/id: errorMessage\ncolor: "white"/' /usr/share/sddm/themes/maldives/Main.qml
|
4
files/system/etc/sddm/sddm-useradd
Normal file
4
files/system/etc/sddm/sddm-useradd
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/sh
|
||||
|
||||
getent group sddm > /dev/null || groupadd -r sddm
|
||||
getent passwd sddm > /dev/null || useradd -r -g sddm -c "SDDM Greeter Account" -d /var/lib/sddm -s /usr/sbin/nologin sddm
|
59
files/system/etc/skel/.config/hyprpanel/config.json
Normal file
59
files/system/etc/skel/.config/hyprpanel/config.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"scalingPriority": "gdk",
|
||||
"theme.bar.floating": true,
|
||||
"bar.autoHide": "never",
|
||||
"bar.layouts": {
|
||||
"*": {
|
||||
"left": [
|
||||
"cpu",
|
||||
"ram",
|
||||
"workspaces",
|
||||
"windowtitle"
|
||||
],
|
||||
"middle": [
|
||||
"media"
|
||||
],
|
||||
"right": [
|
||||
"volume",
|
||||
"network",
|
||||
"bluetooth",
|
||||
"systray",
|
||||
"notifications",
|
||||
"clock",
|
||||
"dashboard"
|
||||
]
|
||||
}
|
||||
},
|
||||
"theme.notification.enableShadow": false,
|
||||
"theme.bar.border.location": "none",
|
||||
"theme.bar.border_radius": "0.75em",
|
||||
"theme.bar.outer_spacing": ".25em",
|
||||
"theme.bar.buttons.radius": "0.75em",
|
||||
"theme.bar.menus.monochrome": false,
|
||||
"theme.bar.menus.opacity": 100,
|
||||
"theme.bar.buttons.y_margins": "0.1em",
|
||||
"theme.bar.buttons.enableBorders": true,
|
||||
"theme.bar.transparent": true,
|
||||
"theme.bar.enableShadow": false,
|
||||
"menus.clock.time.hideSeconds": false,
|
||||
"menus.dashboard.shortcuts.left.shortcut1.icon": "",
|
||||
"menus.dashboard.shortcuts.left.shortcut1.command": "uwsm app -- one.ablaze.floorp.desktop",
|
||||
"menus.dashboard.shortcuts.left.shortcut1.tooltip": "Floorp",
|
||||
"menus.dashboard.shortcuts.enabled": true,
|
||||
"menus.dashboard.stats.enable_gpu": false,
|
||||
"menus.clock.weather.enabled": false,
|
||||
"bar.workspaces.show_icons": false,
|
||||
"bar.workspaces.show_numbered": true,
|
||||
"theme.bar.buttons.windowtitle.enableBorder": false,
|
||||
"bar.windowtitle.custom_title": true,
|
||||
"bar.windowtitle.truncation": true,
|
||||
"bar.notifications.show_total": true,
|
||||
"bar.notifications.hideCountWhenZero": true,
|
||||
"bar.launcher.icon": "",
|
||||
"bar.launcher.autoDetectIcon": false,
|
||||
"menus.dashboard.shortcuts.left.shortcut3.command": "uwsm app -- com.discordapp.Discord",
|
||||
"menus.dashboard.shortcuts.left.shortcut2.icon": "",
|
||||
"menus.dashboard.shortcuts.left.shortcut2.command": "uwsm app --net.cozic.joplin_desktop",
|
||||
"menus.dashboard.shortcuts.left.shortcut2.tooltip": "Joplin",
|
||||
"menus.dashboard.shortcuts.left.shortcut4.command": "uwsm app -- $(wofi --show drun --define=drun-print_desktop_file=true)"
|
||||
}
|
1
files/system/etc/skel/.config/hyprpanel/modules.json
Normal file
1
files/system/etc/skel/.config/hyprpanel/modules.json
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
@@ -1,100 +0,0 @@
|
||||
// -*- mode: jsonc -*-
|
||||
{
|
||||
"layer": "top", // Waybar at top layer
|
||||
// "position": "bottom", // Waybar position (top|bottom|left|right)
|
||||
"height": 52, // Waybar height (to be removed for auto height)
|
||||
// "width": 1280, // Waybar width
|
||||
"spacing": 0, // Gaps between modules (4px)
|
||||
// Choose the order of the modules
|
||||
"modules-left": [
|
||||
"cpu",
|
||||
"memory",
|
||||
"hyprland/workspaces",
|
||||
"hyprland/window"
|
||||
],
|
||||
"modules-center": [
|
||||
"mpris"
|
||||
],
|
||||
"modules-right": [
|
||||
"tray",
|
||||
"gamemode",
|
||||
"wireplumber",
|
||||
"custom/notification",
|
||||
"clock"
|
||||
],
|
||||
//"reload_style_on_change": true,
|
||||
"hyprland/window":{
|
||||
"separate-outputs": true,
|
||||
"hide-empty-text": true,
|
||||
},
|
||||
"tray": {
|
||||
// "icon-size": 21,
|
||||
"spacing": 10
|
||||
},
|
||||
"clock": {
|
||||
// "timezone": "America/New_York",
|
||||
"format": "{:%I : %M %p %Y-%m-%d}",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"
|
||||
},
|
||||
"cpu": {
|
||||
"format": "{usage}% ",
|
||||
"tooltip": false
|
||||
},
|
||||
"memory": {
|
||||
"format": "{}% "
|
||||
},
|
||||
"temperature": {
|
||||
// "thermal-zone": 2,
|
||||
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
|
||||
"critical-threshold": 80,
|
||||
// "format-critical": "{temperatureC}°C {icon}",
|
||||
"format": "{temperatureC}°C {icon}",
|
||||
"format-icons": ["", "", ""]
|
||||
},
|
||||
"network": {
|
||||
// "interface": "wlp2*", // (Optional) To force the use of this interface
|
||||
"format-wifi": "{essid} ({signalStrength}%) ",
|
||||
"format-ethernet": "{ipaddr}/{cidr} ",
|
||||
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||
"format-linked": "{ifname} (No IP) ",
|
||||
"format-disconnected": "Disconnected ⚠",
|
||||
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||
},
|
||||
"wireplumber": {
|
||||
"format": "{node_name} {volume}% {icon}",
|
||||
"format-muted": "{node_name} ",
|
||||
"on-click": "hyprctl dispatch -- exec flatpak run com.saivert.pwvucontrol",
|
||||
"format-icons": ["", "", ""]
|
||||
},
|
||||
"custom/notification": {
|
||||
"tooltip": false,
|
||||
"format": "{} {icon}",
|
||||
"format-icons": {
|
||||
"notification": "",
|
||||
"none": "",
|
||||
"dnd-notification": "",
|
||||
"dnd-none": "",
|
||||
"inhibited-notification": "",
|
||||
"inhibited-none": "",
|
||||
"dnd-inhibited-notification": "",
|
||||
"dnd-inhibited-none": ""
|
||||
},
|
||||
"return-type": "json",
|
||||
"exec-if": "which swaync-client",
|
||||
"exec": "swaync-client -swb",
|
||||
"on-click": "swaync-client -t -sw",
|
||||
"on-click-right": "swaync-client -d -sw",
|
||||
"escape": true
|
||||
},
|
||||
"mpris": {
|
||||
"format": "{player_icon} {title} - {artist}",
|
||||
"format-paused": "{status_icon} {title} - {artist}",
|
||||
"player-icons": {
|
||||
"default": "▶",
|
||||
"mpv": "🎵"
|
||||
},
|
||||
"status-icons": {
|
||||
"paused": "⏸"
|
||||
}
|
||||
},
|
||||
}
|
@@ -1,129 +0,0 @@
|
||||
@import "tokyonight.css";
|
||||
|
||||
* {
|
||||
font-family: JetBrains Mono;
|
||||
font-size: 17px;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: @transparent;
|
||||
color: @theme_text_color;
|
||||
margin: 0rem 0rem 0rem 0rem;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
color: @lavender;
|
||||
border-radius: 1.5rem;
|
||||
padding: 0rem 0.5rem;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: @sky;
|
||||
border-radius: 1.5rem;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
color: @sapphire;
|
||||
border-radius: 1.5rem;
|
||||
}
|
||||
|
||||
#cpu,
|
||||
#memory,
|
||||
#custom-weather,
|
||||
#wireplumber,
|
||||
#custom-notification,
|
||||
#custom-music,
|
||||
#custom-edit-config,
|
||||
#tray,
|
||||
#backlight,
|
||||
#clock,
|
||||
#battery,
|
||||
#pulseaudio,
|
||||
#custom-lock,
|
||||
#powermenu,
|
||||
#window,
|
||||
#workspaces,
|
||||
#gamemode,
|
||||
#mpris {
|
||||
background-color: @theme_bg_color;
|
||||
padding: 0.5rem 0.75rem;
|
||||
margin: 0.75rem 0.25rem 0rem 0.25rem;
|
||||
border-radius: 1.5rem;
|
||||
border: 2px solid;
|
||||
}
|
||||
|
||||
window#waybar.empty #window {
|
||||
background-color: transparent;
|
||||
border: 0px
|
||||
}
|
||||
|
||||
/* left side margin */
|
||||
#cpu {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
/* right side margin */
|
||||
#clock {
|
||||
margin-right: 1rem;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
color: @green;
|
||||
}
|
||||
|
||||
#memory {
|
||||
color: @magenta;
|
||||
}
|
||||
|
||||
#clock {
|
||||
color: @blue;
|
||||
}
|
||||
|
||||
#battery {
|
||||
color: @green;
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
color: @green;
|
||||
}
|
||||
|
||||
#battery.warning:not(.charging) {
|
||||
color: @red;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
color: @yellow;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
color: @maroon;
|
||||
}
|
||||
|
||||
#custom-music {
|
||||
color: @mauve;
|
||||
}
|
||||
|
||||
#custom-lock {
|
||||
color: @magenta;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
color: @red;
|
||||
}
|
||||
|
||||
#wireplumber {
|
||||
color: @red;
|
||||
}
|
||||
|
||||
#custom-notification {
|
||||
color: @rosewater;
|
||||
}
|
||||
|
||||
#custom-notification.notification {
|
||||
color: @red;
|
||||
}
|
||||
|
||||
#custom-notification.dnd-notification {
|
||||
color: @maroon;
|
||||
}
|
@@ -1,15 +0,0 @@
|
||||
@define-color foreground #313244;
|
||||
@define-color background #1a1b26;
|
||||
@define-color text #a9b1d6;
|
||||
@define-color black #414868;
|
||||
@define-color red #f7768e;
|
||||
@define-color green #73daca;
|
||||
@define-color yellow #e0af68;
|
||||
@define-color blue #7aa2f7;
|
||||
@define-color magenta #bb9af7;
|
||||
@define-color cyan #7dcfff;
|
||||
@define-color white #c0caf5;
|
||||
@define-color sky #89dceb;
|
||||
@define-color sapphire #74c7ec;
|
||||
@define-color rosewater #f5e0dc;
|
||||
@define-color flamingo #f2cdcd;
|
2
files/system/sddm.conf.d/theme.conf
Normal file
2
files/system/sddm.conf.d/theme.conf
Normal file
@@ -0,0 +1,2 @@
|
||||
[Theme]
|
||||
Current=maldives
|
@@ -1,11 +1,7 @@
|
||||
# browser.conf
|
||||
|
||||
# floorp
|
||||
$browser = uwsm app -- one.ablaze.floorp.desktop
|
||||
$mainMod = SUPER
|
||||
|
||||
## autostart
|
||||
exec-once = [workspace 1 silent] $browser
|
||||
|
||||
## keybind
|
||||
bind = $mainMod, F, exec, $browser
|
||||
bind = $mainMod, F, exec, uwsm app -- one.ablaze.floorp.desktop
|
||||
|
@@ -1,7 +1,5 @@
|
||||
# discord_workspace.conf
|
||||
|
||||
$discord = uwsm app -- com.discordapp.Discord.desktop
|
||||
|
||||
$discord_class = class:^(vesktop)$|^(discord)$|^(com.discord.app.Discord)$|^(WebCord)$|^(equibop)$
|
||||
|
||||
# workspace
|
||||
@@ -20,7 +18,4 @@ bind = $mainMod, D, togglespecialworkspace, discord
|
||||
bind = $mainMod SHIFT, D, movetoworkspace, special:discord
|
||||
|
||||
# discord overlay
|
||||
#exec-once = discover-overlay
|
||||
|
||||
# launch discord
|
||||
exec-once = $discord
|
||||
#exec-once = discover-overlay
|
@@ -3,10 +3,8 @@
|
||||
# workspace number
|
||||
$game-workspace-number = 5
|
||||
|
||||
exec-once = uwsm app -- steam.desktop
|
||||
|
||||
# window rules
|
||||
windowrule = workspace 9 silent, title:^(Steam)$
|
||||
windowrule = workspace 9 silent, class:^(steam)$
|
||||
|
||||
# key binds
|
||||
$mainMod = SUPER
|
||||
|
@@ -1,18 +1,16 @@
|
||||
# key_binds.conf
|
||||
|
||||
# Set programs that you use
|
||||
$fileManager = uwsm app -- org.kde.dolphin.desktop
|
||||
$fileManager = xdg-open "$HOME"
|
||||
$menu = uwsm app -- $(wofi --show drun --define=drun-print_desktop_file=true)
|
||||
#$menu = ags request -i launcher show
|
||||
$screenshot = hyprshot -m region --clipboard-only
|
||||
$powermenu = /usr/share/hypr-hydro-os/scripts/local-lua /usr/share/hypr-hydro-os/scripts/powermenu.lua
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
$mainMod = SUPER
|
||||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
bind = $mainMod SHIFT, C, killactive,
|
||||
bind = $mainMod, M, exec, $powermenu
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = $mainMod, R, exec, $menu
|
||||
|
@@ -1,12 +1,8 @@
|
||||
# terminal.conf
|
||||
$terminal = uwsm app -- kitty.desktop
|
||||
|
||||
# workspace
|
||||
workspace = special:terminal
|
||||
|
||||
# launch a terminal
|
||||
exec-once = [workspace special:terminal silent] $terminal
|
||||
|
||||
# key binds
|
||||
$mainMod = SUPER
|
||||
bind = $mainMod, T, togglespecialworkspace, terminal
|
||||
|
@@ -1,18 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
HYPRCMDS=$(hyprctl -j clients | jq -j '.[] | "dispatch closewindow address:\(.address); "')
|
||||
hyprctl --batch "$HYPRCMDS" >>/tmp/hyprexitwithgrace.log 2>&1
|
||||
|
||||
notify-send "power controls" "Closing Applications..."
|
||||
|
||||
sleep 2
|
||||
|
||||
COUNT=$(hyprctl clients | grep "class:" | wc -l)
|
||||
|
||||
if [ "$COUNT" -eq "0" ]; then
|
||||
notify-send "power controls" "Closed Applications."
|
||||
return
|
||||
else
|
||||
notify-send "power controls" "Some apps didn't close. Not shutting down."
|
||||
exit 1
|
||||
fi
|
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
/usr/share/hypr-hydro-os/scripts/hypr_power/hypr_close_clients
|
||||
|
||||
hyprctl dispatch exit
|
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
/usr/share/hypr-hydro-os/scripts/hypr_power/hypr_close_clients
|
||||
|
||||
systemctl reboot
|
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
/usr/share/hypr-hydro-os/scripts/hypr_power/hypr_close_clients
|
||||
|
||||
systemctl poweroff
|
@@ -1,3 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# nextcloud desktop
|
||||
sleep 15 && flatpak run --branch=stable --arch=x86_64 --command=nextcloud --file-forwarding com.nextcloud.desktopclient.nextcloud
|
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
kwalletmanager5 &
|
||||
sleep 1 && exec --no-startup-id /usr/lib/pam_kwallet_init
|
||||
notify-send -e --expire-time=2000 'Kwallet has been loaded. Loading dependent apps...'
|
||||
sleep 2 && hyprctl dispatch closewindow class:org.kde.kwalletmanager
|
@@ -1,4 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
BIN_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
|
||||
|
||||
LUA_PATH="${BIN_DIR}/?.lua;;" lua $1
|
@@ -1,27 +0,0 @@
|
||||
#!/usr/bin/env lua
|
||||
local menu = {}
|
||||
|
||||
function menu:clean_string(str)
|
||||
str = string.gsub(str, "^%s+", "")
|
||||
str = string.gsub(str, "%s+$", "")
|
||||
return string.gsub(str, "[\n]+", " ")
|
||||
end
|
||||
|
||||
function menu:bring_menu(prompt, options)
|
||||
local options_string = ""
|
||||
local length = 1
|
||||
for _, value in pairs(options) do
|
||||
options_string = options_string .. value .. "\n"
|
||||
length = length + 1
|
||||
end
|
||||
|
||||
options_string = options_string:sub(1, -2)
|
||||
|
||||
local command = "echo -e '" .. options_string .. "' | wofi -dmenu -i -p '" .. prompt .. "'"
|
||||
local f = assert(io.popen(command, "r"))
|
||||
local s = menu:clean_string(assert(f:read("*a")))
|
||||
f:close()
|
||||
return s
|
||||
end
|
||||
|
||||
return menu
|
@@ -1,14 +0,0 @@
|
||||
#!/usr/bin/env lua
|
||||
local menu = require("menu")
|
||||
local executable = {
|
||||
["Shutdown"] = "/usr/share/hypr-hydro-os/scripts/hypr_power/hypr_shutdown",
|
||||
["Reboot"] = "/usr/share/hypr-hydro-os/scripts/hypr_power/hypr_reboot",
|
||||
["Log out"] = "/usr/share/hypr-hydro-os/scripts/hypr_power/hypr_logout",
|
||||
["Cancel"] = "",
|
||||
}
|
||||
|
||||
local options = { "Shutdown", "Reboot", "Log out", "Cancel" }
|
||||
|
||||
local s = menu:bring_menu("Power menu", options)
|
||||
|
||||
os.execute(executable[s])
|
@@ -1,5 +1,5 @@
|
||||
[Desktop Entry]
|
||||
Name=Steam Big Picture Mode
|
||||
Comment=Start Steam in Big Picture Mode
|
||||
Exec=/usr/bin/gamescope -H 1080 -r 60 --force-composition -fe -- /usr/bin/steam -tenfoot
|
||||
Exec=/usr/bin/gamescope -H 1080 -r 60 --force-composition --mangoapp -fe -- /usr/bin/steam -tenfoot %U
|
||||
Type=Application
|
18
files/systemd/system/sddm-boot-patch.service
Normal file
18
files/systemd/system/sddm-boot-patch.service
Normal file
@@ -0,0 +1,18 @@
|
||||
# Taken from Wayblue's repo, https://github.com/wayblueorg/wayblue
|
||||
# This is to resolve issue on boot for sddm login
|
||||
# Creates an SDDM user before SDDM runs.
|
||||
# See:
|
||||
# - https://github.com/ublue-os/cinnamon/blob/bf44562ddbed670cdd0d03a45ea08bdb8a6e96a7/system_files/usr/lib/systemd/system/ublue-lightdm-workaround.service#L4
|
||||
# - https://github.com/ublue-os/main/issues/224#issuecomment-1987851271
|
||||
|
||||
[Unit]
|
||||
Description=Create SDDM user on system boot
|
||||
Before=sddm.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/etc/sddm/sddm-useradd
|
||||
RemainAfterExit=yes
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
17
files/systemd/user/discord.service
Normal file
17
files/systemd/user/discord.service
Normal file
@@ -0,0 +1,17 @@
|
||||
[Unit]
|
||||
Description=The pc gaming platform
|
||||
# order startup after WM
|
||||
After=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=exec
|
||||
# Repurpose XDG Autostart filtering
|
||||
ExecCondition=/lib/systemd/systemd-xdg-autostart-condition "wlroots:sway:Wayfire:labwc:Hyprland" ""
|
||||
ExecStart=/usr/bin/flatpak run com.discordapp.Discord
|
||||
Slice=app-graphical.slice
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
# Alternatively can be wanted by specific WMs' targets
|
||||
# Should also be duplicated in 'After=' to avoid ordering loop
|
||||
#WantedBy=wayland-session@hyprland.desktop.target
|
17
files/systemd/user/floorp.service
Normal file
17
files/systemd/user/floorp.service
Normal file
@@ -0,0 +1,17 @@
|
||||
[Unit]
|
||||
Description=The pc gaming platform
|
||||
# order startup after WM
|
||||
After=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=exec
|
||||
# Repurpose XDG Autostart filtering
|
||||
ExecCondition=/lib/systemd/systemd-xdg-autostart-condition "wlroots:sway:Wayfire:labwc:Hyprland" ""
|
||||
ExecStart=/usr/bin/flatpak run one.ablaze.floorp
|
||||
Slice=app-graphical.slice
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
# Alternatively can be wanted by specific WMs' targets
|
||||
# Should also be duplicated in 'After=' to avoid ordering loop
|
||||
#WantedBy=wayland-session@hyprland.desktop.target
|
@@ -1,5 +1,5 @@
|
||||
[Unit]
|
||||
Description=Highly customizable Wayland bar for Sway and Wlroots based compositors.
|
||||
Description=A panel bar branched from AGS maintained by Hyprland devs.
|
||||
Documentation=man:waybar(5)
|
||||
# order startup after WM
|
||||
After=graphical-session.target
|
||||
@@ -8,8 +8,7 @@ After=graphical-session.target
|
||||
Type=exec
|
||||
# Repurpose XDG Autostart filtering
|
||||
ExecCondition=/lib/systemd/systemd-xdg-autostart-condition "wlroots:sway:Wayfire:labwc:Hyprland" ""
|
||||
ExecStart=/usr/bin/waybar
|
||||
ExecReload=kill -SIGUSR2 $MAINPID
|
||||
ExecStart=/usr/bin/hyprpanel
|
||||
Restart=on-failure
|
||||
Slice=app-graphical.slice
|
||||
|
17
files/systemd/user/steam.service
Normal file
17
files/systemd/user/steam.service
Normal file
@@ -0,0 +1,17 @@
|
||||
[Unit]
|
||||
Description=The pc gaming platform
|
||||
# order startup after WM
|
||||
After=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=exec
|
||||
# Repurpose XDG Autostart filtering
|
||||
ExecCondition=/lib/systemd/systemd-xdg-autostart-condition "wlroots:sway:Wayfire:labwc:Hyprland" ""
|
||||
ExecStart=/usr/bin/steam %U
|
||||
Slice=app-graphical.slice
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
# Alternatively can be wanted by specific WMs' targets
|
||||
# Should also be duplicated in 'After=' to avoid ordering loop
|
||||
#WantedBy=wayland-session@hyprland.desktop.target
|
@@ -1,16 +0,0 @@
|
||||
[Unit]
|
||||
Description=A simple notification daemon with a GTK gui for notifications and the control center.
|
||||
Documentation=man:swaync(1)
|
||||
# order startup after WM
|
||||
After=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=exec
|
||||
# Repurpose XDG Autostart filtering
|
||||
ExecCondition=/lib/systemd/systemd-xdg-autostart-condition "wlroots:sway:Wayfire:labwc:Hyprland" ""
|
||||
ExecStart=/usr/bin/swaync
|
||||
Restart=on-failure
|
||||
Slice=app-graphical.slice
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
17
files/systemd/user/terminal.service
Normal file
17
files/systemd/user/terminal.service
Normal file
@@ -0,0 +1,17 @@
|
||||
[Unit]
|
||||
Description=The pc gaming platform
|
||||
# order startup after WM
|
||||
After=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=exec
|
||||
# Repurpose XDG Autostart filtering
|
||||
ExecCondition=/lib/systemd/systemd-xdg-autostart-condition "wlroots:sway:Wayfire:labwc:Hyprland" ""
|
||||
ExecStart=/usr/bin/kitty
|
||||
Slice=app-graphical.slice
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
# Alternatively can be wanted by specific WMs' targets
|
||||
# Should also be duplicated in 'After=' to avoid ordering loop
|
||||
#WantedBy=wayland-session@hyprland.desktop.target
|
10
recipes/components/autostart-module.yml
Normal file
10
recipes/components/autostart-module.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
modules:
|
||||
- type: systemd
|
||||
user:
|
||||
enabled:
|
||||
- hyprpanel.service
|
||||
- hyprpolkitagent.service
|
||||
- discord.service
|
||||
- floorp.service
|
||||
- steam.service
|
||||
- terminal.service
|
96
recipes/components/base-module.yml
Normal file
96
recipes/components/base-module.yml
Normal file
@@ -0,0 +1,96 @@
|
||||
modules:
|
||||
- type: containerfile
|
||||
snippets:
|
||||
- COPY --from=ghcr.io/ublue-os/config:latest /rpms/ublue-os-udev-rules.noarch.rpm /
|
||||
- COPY --from=ghcr.io/ublue-os/config:latest /rpms/ublue-os-update-services.noarch.rpm /
|
||||
- COPY --from=ghcr.io/ublue-os/config:latest /rpms/ublue-os-signing.noarch.rpm /
|
||||
- RUN rpm -ivh /ublue-os-udev-rules.noarch.rpm
|
||||
- RUN rpm -ivh /ublue-os-update-services.noarch.rpm
|
||||
- RUN rpm -ivh /ublue-os-signing.noarch.rpm
|
||||
|
||||
- type: script
|
||||
scripts:
|
||||
- enableautoupdates.sh # using systemd did not work, so using this script instead
|
||||
|
||||
- type: dnf
|
||||
repos:
|
||||
copr:
|
||||
- erikreider/SwayNotificationCenter
|
||||
install:
|
||||
packages:
|
||||
# environment
|
||||
# fuzzy finder
|
||||
- fzf
|
||||
# power profiles like
|
||||
- tuned-ppd
|
||||
# xwayland
|
||||
- xorg-x11-server-Xwayland
|
||||
# headset control
|
||||
- headsetcontrol
|
||||
# media related
|
||||
- mediainfo
|
||||
- playerctl
|
||||
- alsa-firmware
|
||||
# nofitications
|
||||
- SwayNotificationCenter
|
||||
# text editor
|
||||
- neovim
|
||||
# tools for evocation
|
||||
- just
|
||||
# zip utilities
|
||||
- p7zip
|
||||
# qt libraries
|
||||
- qt5-qtwayland
|
||||
- qt6-qtwayland
|
||||
# emoji fonts
|
||||
- google-noto-emoji-fonts
|
||||
# vulkan
|
||||
- vulkan-tools
|
||||
- vulkan-validation-layers
|
||||
|
||||
# polkit
|
||||
- polkit
|
||||
|
||||
# sound
|
||||
- wireplumber
|
||||
- pipewire
|
||||
- pamixer
|
||||
- pulseaudio-utils
|
||||
|
||||
# networking
|
||||
- bluez
|
||||
- bluez-tools
|
||||
- firewall-config
|
||||
|
||||
# file manager
|
||||
- nautilus
|
||||
- file-roller
|
||||
- file-roller-nautilus
|
||||
- nextcloud-client
|
||||
- nextcloud-client-nautilus
|
||||
|
||||
# theme and GUI
|
||||
- fontawesome-fonts-all
|
||||
- gnome-themes-extra
|
||||
- gnome-icon-theme
|
||||
- paper-icon-theme
|
||||
- breeze-icon-theme
|
||||
- papirus-icon-theme
|
||||
|
||||
# software
|
||||
- gnome-software
|
||||
- gnome-software-rpm-ostree
|
||||
|
||||
# power
|
||||
- powerstat
|
||||
|
||||
remove:
|
||||
packages:
|
||||
# remove firefox
|
||||
- firefox
|
||||
- firefox-langpacks
|
||||
|
||||
- type: script
|
||||
scripts:
|
||||
- installproprietarypackages.sh
|
||||
|
9
recipes/components/default-flatpak.yml
Normal file
9
recipes/components/default-flatpak.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
modules:
|
||||
- type: default-flatpaks
|
||||
notify: true
|
||||
system:
|
||||
install:
|
||||
- one.ablaze.floorp
|
||||
user:
|
||||
install:
|
||||
- com.discordapp.Discord
|
11
recipes/components/hyprland-module.yml
Normal file
11
recipes/components/hyprland-module.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
modules:
|
||||
- type: dnf
|
||||
repos:
|
||||
copr:
|
||||
- solopasha/hyprland
|
||||
install:
|
||||
packages:
|
||||
- hyprland-git
|
||||
- hyprpanel
|
||||
- hyprpolkitagent
|
||||
- hyprshot
|
15
recipes/components/nvidia-module.yml
Normal file
15
recipes/components/nvidia-module.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
modules:
|
||||
- type: containerfile
|
||||
snippets:
|
||||
- COPY --from=ghcr.io/ublue-os/akmods-nvidia:main-42 /rpms/ /tmp/rpms
|
||||
- RUN find /tmp/rpms
|
||||
- RUN rpm-ostree install /tmp/rpms/ublue-os/ublue-os-nvidia*.rpm
|
||||
- RUN sed -i '0,/enabled=0/{s/enabled=0/enabled=1/}' /etc/yum.repos.d/nvidia-container-toolkit.repo
|
||||
- RUN sed -i '0,/enabled=0/{s/enabled=0/enabled=1\npriority=90/}' /etc/yum.repos.d/negativo17-fedora-nvidia.repo
|
||||
- RUN rpm-ostree install /tmp/rpms/kmods/kmod-nvidia*.rpm libnvidia-fbc libva-nvidia-driver nvidia-driver nvidia-driver-cuda nvidia-modprobe nvidia-persistenced nvidia-settings nvidia-container-toolkit
|
||||
- type: script
|
||||
scripts:
|
||||
- nvidia/installtoolkitpolicy.sh
|
||||
- nvidia/removeunusedrepos.sh
|
||||
- nvidia/setearlyloading.sh
|
||||
- nvidia/setdrmvariables.sh
|
20
recipes/components/sddm-module.yml
Normal file
20
recipes/components/sddm-module.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
modules:
|
||||
- type: dnf
|
||||
install:
|
||||
packages:
|
||||
- sddm
|
||||
- sddm-themes
|
||||
- qt5-qtgraphicaleffects
|
||||
- qt5-qtquickcontrols2
|
||||
- qt5-qtsvg
|
||||
- kwallet
|
||||
- pam-kwallet
|
||||
|
||||
- type: script
|
||||
scripts:
|
||||
- setsddmtheming.sh
|
||||
|
||||
- type: systemd
|
||||
system:
|
||||
enabled:
|
||||
- sddm-boot-patch.service
|
16
recipes/components/steam-module.yml
Normal file
16
recipes/components/steam-module.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
modules:
|
||||
- type: dnf
|
||||
repos:
|
||||
nonfree: rpmfusion
|
||||
install:
|
||||
packages:
|
||||
- steam
|
||||
# for game mode and big picture mode
|
||||
- gamescope
|
||||
# for performance view
|
||||
- mangohud
|
||||
|
||||
- type: default-flatpaks
|
||||
system:
|
||||
install:
|
||||
- net.davidotek.pupgui2
|
5
recipes/components/sys-files-module.yml
Normal file
5
recipes/components/sys-files-module.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
modules:
|
||||
- type: files
|
||||
files:
|
||||
- source: system
|
||||
destination: / # copies files/system/* (* means everything inside it) into your image's root folder /
|
@@ -6,43 +6,19 @@ name: hydro-os
|
||||
description: This is my personal OS image.
|
||||
|
||||
# the base image to build on top of (FROM) and the version tag to use
|
||||
base-image: ghcr.io/ublue-os/bazzite-asus-nvidia
|
||||
image-version: latest # latest is also supported if you want new updates ASAP
|
||||
base-image: quay.io/fedora-ostree-desktops/base-atomic
|
||||
image-version: 42 # latest is also supported if you want new updates ASAP
|
||||
|
||||
# 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: rpm-ostree
|
||||
repos:
|
||||
- https://copr.fedorainfracloud.org/coprs/solopasha/hyprland/repo/fedora-%OS_VERSION%/solopasha-hyprland-fedora-%OS_VERSION%.repo
|
||||
- https://copr.fedorainfracloud.org/coprs/erikreider/SwayNotificationCenter/repo/fedora-%OS_VERSION%/erikreider-SwayNotificationCenter-fedora-%OS_VERSION%.repo
|
||||
install:
|
||||
- hyprland-git
|
||||
- waybar
|
||||
- neovim
|
||||
- SwayNotificationCenter
|
||||
- hyprpolkitagent
|
||||
- hyprshot
|
||||
|
||||
- type: default-flatpaks
|
||||
notify: true # Send notification after install/uninstall is finished (true/false)
|
||||
system:
|
||||
# If no repo information is specified, Flathub will be used by default
|
||||
install:
|
||||
- one.ablaze.floorp
|
||||
- com.discordapp.Discord
|
||||
user: {} # Also add Flathub user repo, but no user packages
|
||||
|
||||
- type: systemd
|
||||
user:
|
||||
enabled:
|
||||
- waybar.service
|
||||
- hyprpolkitagent.service
|
||||
- from-file: components/sddm-module.yml
|
||||
- from-file: components/base-module.yml
|
||||
- from-file: components/nvidia-module.yml
|
||||
- from-file: components/sys-files-module.yml
|
||||
- from-file: components/hyprland-module.yml
|
||||
- from-file: components/steam-module.yml
|
||||
- from-file: components/default-flatpak.yml
|
||||
|
||||
- type: signing # this sets up the proper policy & signing files for signed images to work fully
|
||||
|
||||
|
Reference in New Issue
Block a user