1
0
forked from extern/zaneyos

Working on Zaney Control Center and added flatpak service for enabling FlatHub

This commit is contained in:
Tyler Kelley 2024-02-15 22:17:08 -06:00
parent 5e08ac0346
commit fc1df2b684
7 changed files with 129 additions and 22 deletions

View File

@ -1,6 +1,6 @@
{ config, lib, pkgs, ... }:
let inherit (import ../../options.nix) flakeDir theShell; in
let inherit (import ../../options.nix) flakeDir flakePrev flakeBackup theShell; in
lib.mkIf (theShell == "bash") {
# Configure Bash
programs.bash = {
@ -18,7 +18,10 @@ lib.mkIf (theShell == "bash") {
fi
'';
sessionVariables = {
FLAKEDIR = "${flakeDir}";
ZANEYOS = true;
FLAKEBACKUP = "${flakeBackup}";
FLAKEPREV = "${flakePrev}";
};
shellAliases = {
sv="sudo nvim";

View File

@ -53,8 +53,6 @@ in with lib; {
env = GDK_BACKEND, wayland
env = CLUTTER_BACKEND, wayland
env = SDL_VIDEODRIVER, ${sdl-videodriver}
env = XCURSOR_SIZE, 24
env = XCURSOR_THEME, Bibata-Modern-Ice
env = QT_QPA_PLATFORM, wayland
env = QT_WAYLAND_DISABLE_WINDOWDECORATION, 1
env = QT_AUTO_SCREEN_SCALE_FACTOR, 1
@ -113,7 +111,6 @@ in with lib; {
exec-once = $POLKIT_BIN
exec-once = dbus-update-activation-environment --systemd --all
exec-once = systemctl --user import-environment QT_QPA_PLATFORMTHEME WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = hyprctl setcursor Bibata-Modern-Ice 24
exec-once = swww init
exec-once = waybar
exec-once = swaync

View File

@ -23,7 +23,7 @@ in {
(import ./../scripts/web-search.nix { inherit pkgs; })
(import ./../scripts/rofi-launcher.nix { inherit pkgs; })
(import ./../scripts/screenshootin.nix { inherit pkgs; })
(import ./../scripts/zcc.nix { inherit pkgs; })
# (import ./../scripts/zcc.nix { inherit pkgs; })
];
programs.gh.enable = true;

View File

@ -1,25 +1,121 @@
{ pkgs, ... }:
let
inherit (import ../../options.nix) flakeDir;
inherit (import ../../options.nix) flakeDir flakePrev flakeBackup;
in
pkgs.writeShellScriptBin "zcc" ''
kdenlive=false
# Function to toggle the boolean variable
toggle_kdenlive() {
kdenlive=$(yad --width=200 --height=100 --title="Toggle Kdenlive" \
--text="Toggle Kdenlive" --button="Toggle:0" --button="Cancel:1" \
--checkbox --value="$kdenlive")
# If the user clicks "Toggle" button, update the boolean value
if [ "$?" -eq 0 ]; then
echo "Kdenlive is now set to: $kdenlive"
else
echo "Toggle canceled. Kdenlive remains set to: $kdenlive"
if [ "$#" -eq 0 ]; then
echo "The ZaneyOS Control Center requires an option like 'zcc [OPTION]'."
elif [ "$#" -eq 1 ]; then
if [ "$ZANEYOS" = true ]; then
choice="$1"
if [[ "$choice" = "update" ]]; then
# Add your update logic here
# If ~/zaneyos-previous exists, backup the configuration
if [[ -d ${flakePrev} ]]; then
# Check if ~/zaneyos-backup exists, otherwise create it
if [[ ! -d ${flakeBackup} ]]; then
mkdir ${flakeBackup}
fi
}
# Call the toggle function
toggle_kdenlive
# Create a unique backup folder name with date and time
backup_folder=${flakeBackup}/$(date +"%Y%m%d%H%M%S")
# Backup previous configuration
sudo mv ${flakePrev} "$backup_folder"
echo "---"
echo "Previous configuration saved in $backup_folder"
fi
# Copy the previous repository
sudo cp -rp ${flakeDir} ${flakePrev}
echo "---"
echo "Actual configuration saved on $FLAKEPREV"
# Change directory
cd ${flakeDir} || exit 1
# Run git status to get only modified, tracked but not committed files
files_to_check=$(git status -s --untracked-files=no | awk '{print $2}')
# Stash changes and update the local repo from the remote one
echo "---"
echo "Updating zaneyos..."
git stash && git pull
# Show files to check to the user
echo "---"
echo "Files to review:"
echo $files_to_check
# Initialize the unresolved_files list
unresolved_files=()
# Verify and overwrite files if the user confirms or save files to be manually reviewed
for file in $files_to_check; do
echo "---"
echo "Differences on $file:"
diff "$file" ~/zaneyos-previous/"$file"
echo "---"
read -p "Overwrite file $file with your? [Y/n]: " choice
case "$choice" in
*)
cp ~/zaneyos-previous/"$file" "$file"
;;
n|N)
# Add the file to unresolved_files
unresolved_files+=("$file")
;;
esac
done
# If unresolved_files contains one or more files
if [[ ''${#unresolved_files[@]} -gt 0 ]]; then
# Show the user files to be manually reviewed and exit
echo "---"
echo "Review manually the following files:"
printf '%s\n' "''${unresolved_files[@]}"
else
# Prompt for updating flake.nix
echo "---"
read -p "Do you want to update flake? [Y/n]: " update_flake
update_flake=${update_flake:-Y} # Set Y as default option
if [[ $update_flake == [Yy] ]]; then
# Run flake-update
echo "---"
echo "Running flake-update..."
sudo nix flake update ~/zaneyos
# Prompt for system rebuild
echo "---"
read -p "Do you want to rebuild the system? [Y/n]: " rebuild_system
rebuild_system=${rebuild_system:-Y} # Set Y as default option
if [[ $rebuild_system == [Yy] ]]; then
# Run flake-rebuild
echo "---"
echo "Running flake-rebuild..."
sudo nixos-rebuild switch --flake ~/zaneyos
else
echo "---"
echo "Ok, the system will not be rebuilt"
fi
else
echo "---"
echo "Ok, flake will not be updated"
fi
fi
echo "---"
echo "Ok. Press any key to exit."
read -n 1 -s
elif [[ "$choice" = "install" ]]; then
echo "Installing..."
# Add logic for when the user chooses not to update
else
echo "Invalid option. Try zcc update or zcc install"
fi
else
echo "ZANEYOS is false"
fi
else
echo "Too many arguments. Please provide one argument."
fi
''

View File

@ -4,6 +4,7 @@
# Bootloader
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.kernel.sysctl = { "vm.max_map_count" = 2147483642; };
# This is for OBS Virtual Cam Support - v4l2loopback setup
boot.kernelModules = [ "v4l2loopback" ];

View File

@ -1,6 +1,14 @@
{ config, lib, ... }:
{ pkgs, config, lib, ... }:
let inherit (import ../../options.nix) flatpak; in
lib.mkIf (flatpak == true) {
services.flatpak.enable = true;
systemd.services.flatpak-repo = {
wantedBy = [ "multi-user.target" ];
path = [ pkgs.flatpak ];
script = ''
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
'';
};
}

View File

@ -24,6 +24,8 @@ in {
wallpaperDir = "${userHome}/Pictures/Wallpapers";
screenshotDir = "${userHome}/Pictures/Screenshots";
flakeDir = "${flakeDir}";
flakePrev = "${userHome}/.zaneyos-previous";
flakeBackup = "${userHome}/.zaneyos-backup";
terminal = "alacritty"; # This sets the terminal that is used by the hyprland terminal keybinding
# System Settings