Compare commits

...

39 Commits

Author SHA1 Message Date
7c68cc7b65 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
Reviewed-on: #1
2025-05-23 18:16:05 -04:00
46ff9d254c Converted autostart execs to systemd units
All checks were successful
bluebuild / Build Custom Image (recipe.yml) (pull_request) Successful in 6m38s
2025-05-23 17:31:00 -04:00
be384c3e28 Copied the menu call to the dashboard menu 2025-05-23 17:03:09 -04:00
66757cf6e0 Added back update services package from ublue to allow auto update
All checks were successful
bluebuild / Build Custom Image (recipe.yml) (pull_request) Successful in 6m15s
2025-05-23 15:52:43 -04:00
4fa79e1eed added back copy destination for signing package
Some checks failed
bluebuild / Build Custom Image (recipe.yml) (pull_request) Failing after 46s
2025-05-23 15:49:36 -04:00
67ca43db57 removed more rpm-ostree for just and powerstat, and removed some ublue packages
Some checks failed
bluebuild / Build Custom Image (recipe.yml) (pull_request) Failing after 20s
2025-05-23 15:46:43 -04:00
2e3a2afe74 changed windowrule for steam to include when in small mode 2025-05-23 15:35:57 -04:00
28860af56f Removed firefox browser and made file manager hotkey application agnostic 2025-05-23 15:33:24 -04:00
3c9047226b Added gnome software store to allow users to install applications
All checks were successful
bluebuild / Build Custom Image (recipe.yml) (pull_request) Successful in 5m39s
2025-05-23 15:12:54 -04:00
36b1e97b53 Remove kde related dolphin and settings as settings was not working.
All checks were successful
bluebuild / Build Custom Image (recipe.yml) (pull_request) Successful in 8m51s
2025-05-23 14:22:00 -04:00
a73107abb3 Corrected hyprland format
All checks were successful
bluebuild / Build Custom Image (recipe.yml) (pull_request) Successful in 7m43s
2025-05-22 14:43:57 -04:00
83e35bd806 Converted from rpm-ostree to dnf
Some checks failed
bluebuild / Build Custom Image (recipe.yml) (pull_request) Failing after 17s
2025-05-22 14:41:19 -04:00
4e5002b4ea Corrected format for flatpak in steam module
Some checks failed
bluebuild / Build Custom Image (recipe.yml) (pull_request) Failing after 23s
2025-05-22 13:48:28 -04:00
c716cd31c9 Enabled steam module
Some checks failed
bluebuild / Build Custom Image (recipe.yml) (pull_request) Failing after 16s
2025-05-22 13:00:52 -04:00
76a8542e55 Re-added gamescope and added user input to launch script
All checks were successful
bluebuild / Build Custom Image (recipe.yml) (pull_request) Successful in 5m46s
2025-05-22 12:39:57 -04:00
a62fdaf823 Added kirigami libraries for settings 2025-05-22 11:45:52 -04:00
065d6bde1c remove example script
All checks were successful
bluebuild / Build Custom Image (recipe.yml) (pull_request) Successful in 11m20s
2025-05-22 01:51:49 -04:00
e8a8455617 Added kde portal 2025-05-22 01:36:47 -04:00
f576439626 Added default config for hyprpanel 2025-05-22 00:37:24 -04:00
7ee1831dd9 switch to plasma applicatons and remove network-manager-applet 2025-05-21 23:29:46 -04:00
b8e8c95b7f Install steam and protonup-qt
All checks were successful
bluebuild / Build Custom Image (recipe.yml) (pull_request) Successful in 6m59s
2025-05-21 22:36:44 -04:00
354d7beea0 Removed duplicate neovim from hyprland-module as it is not a hyprland related package 2025-05-21 22:29:03 -04:00
62dc188e0b Added more packages that seemed useful from wayblue
All checks were successful
bluebuild / Build Custom Image (recipe.yml) (pull_request) Successful in 5m20s
2025-05-21 22:10:09 -04:00
269c74d93d Added theming to login sddm 2025-05-21 21:00:39 -04:00
886c8cbea4 Reapply commit to remove building on branches, as it builds already for pull requests 2025-05-21 19:14:19 -04:00
c3974e0d5f Change module order 2025-05-21 19:10:54 -04:00
7f23ca80c2 Corrected typo
Some checks failed
bluebuild / Build Custom Image (recipe.yml) (pull_request) Has been cancelled
bluebuild / Build Custom Image (recipe.yml) (push) Successful in 4m40s
2025-05-21 17:45:47 -04:00
9d9755bf72 Added nvidia module to recipe
Some checks failed
bluebuild / Build Custom Image (recipe.yml) (push) Failing after 16s
bluebuild / Build Custom Image (recipe.yml) (pull_request) Failing after 15s
2025-05-21 17:44:01 -04:00
d453c910f7 Revert commit to restrict build to main branch
All checks were successful
bluebuild / Build Custom Image (recipe.yml) (push) Successful in 2m9s
bluebuild / Build Custom Image (recipe.yml) (pull_request) Successful in 21s
2025-05-21 17:18:32 -04:00
3d0d0ef382 Added nvidia drivers 2025-05-21 17:17:33 -04:00
0cf7637927 isolate pushes to only main for builds
All checks were successful
bluebuild / Build Custom Image (recipe.yml) (pull_request) Successful in 23s
2025-05-21 15:15:02 -04:00
7057f93a9a Moved systemd module to a script
All checks were successful
bluebuild / Build Custom Image (recipe.yml) (push) Successful in 3m2s
2025-05-21 14:12:47 -04:00
9a91dd08d0 Chagned to 42 as latest tag is not supported in Red Hat's container repo
Some checks failed
bluebuild / Build Custom Image (recipe.yml) (push) Failing after 2m23s
2025-05-21 13:54:34 -04:00
350f458ba0 adding base-module ading udev rules and other things from ublue
Some checks failed
bluebuild / Build Custom Image (recipe.yml) (push) Failing after 21s
2025-05-21 13:49:12 -04:00
534aca65f7 split recipe into components to be more manageable and organized 2025-05-19 13:45:15 -04:00
d3603718a9 added sddm-useradd script for patch 2025-05-19 13:44:40 -04:00
bef1fea9b5 Sddm patch for issue on login 2025-05-19 11:36:48 -04:00
900155e5e8 Give credit to wayblue 2025-05-19 10:42:15 -04:00
b1671e8c96 Moved to base image for fedora provided by Red Hat. Removed some scripts and waybar for hyprpanel.
Some checks failed
bluebuild / Build Custom Image (recipe.yml) (push) Failing after 17s
2025-05-18 16:04:08 -04:00
49 changed files with 443 additions and 415 deletions

View File

@@ -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"

View File

@@ -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.

View 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

View File

@@ -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'

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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)"
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -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": "⏸"
}
},
}

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -0,0 +1,2 @@
[Theme]
Current=maldives

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,5 +0,0 @@
#!/usr/bin/env bash
/usr/share/hypr-hydro-os/scripts/hypr_power/hypr_close_clients
hyprctl dispatch exit

View File

@@ -1,5 +0,0 @@
#!/usr/bin/env bash
/usr/share/hypr-hydro-os/scripts/hypr_power/hypr_close_clients
systemctl reboot

View File

@@ -1,5 +0,0 @@
#!/usr/bin/env bash
/usr/share/hypr-hydro-os/scripts/hypr_power/hypr_close_clients
systemctl poweroff

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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])

View File

@@ -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

View 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

View 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

View 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

View File

@@ -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

View 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

View File

@@ -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

View 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

View File

@@ -0,0 +1,10 @@
modules:
- type: systemd
user:
enabled:
- hyprpanel.service
- hyprpolkitagent.service
- discord.service
- floorp.service
- steam.service
- terminal.service

View 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

View File

@@ -0,0 +1,9 @@
modules:
- type: default-flatpaks
notify: true
system:
install:
- one.ablaze.floorp
user:
install:
- com.discordapp.Discord

View File

@@ -0,0 +1,11 @@
modules:
- type: dnf
repos:
copr:
- solopasha/hyprland
install:
packages:
- hyprland-git
- hyprpanel
- hyprpolkitagent
- hyprshot

View 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

View 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

View 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

View 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 /

View File

@@ -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