aboutsummaryrefslogtreecommitdiffstats
path: root/config/ags/modules/overview/miscfunctions.js
diff options
context:
space:
mode:
Diffstat (limited to 'config/ags/modules/overview/miscfunctions.js')
-rw-r--r--config/ags/modules/overview/miscfunctions.js155
1 files changed, 0 insertions, 155 deletions
diff --git a/config/ags/modules/overview/miscfunctions.js b/config/ags/modules/overview/miscfunctions.js
deleted file mode 100644
index 187ee6ec..00000000
--- a/config/ags/modules/overview/miscfunctions.js
+++ /dev/null
@@ -1,155 +0,0 @@
-const { Gio, GLib } = imports.gi;
-import App from 'resource:///com/github/Aylur/ags/app.js';
-import * as Utils from 'resource:///com/github/Aylur/ags/utils.js';
-const { execAsync, exec } = Utils;
-// import Todo from "../../services/todo.js";
-import { darkMode } from '../.miscutils/system.js';
-
-export function hasUnterminatedBackslash(inputString) {
- // Use a regular expression to match a trailing odd number of backslashes
- const regex = /\\+$/;
- return regex.test(inputString);
-}
-
-export function launchCustomCommand(command) {
- const args = command.toLowerCase().split(' ');
- if (args[0] == '>raw') { // Mouse raw input
- Utils.execAsync('hyprctl -j getoption input:accel_profile')
- .then((output) => {
- const value = JSON.parse(output)["str"].trim();
- if (value != "[[EMPTY]]" && value != "") {
- execAsync(['bash', '-c', `hyprctl keyword input:accel_profile '[[EMPTY]]'`]).catch(print);
- }
- else {
- execAsync(['bash', '-c', `hyprctl keyword input:accel_profile flat`]).catch(print);
- }
- })
- }
- else if (args[0] == '>img') { // Change wallpaper
- execAsync([`bash`, `-c`, `${App.configDir}/scripts/color_generation/switchwall.sh`, `&`]).catch(print);
- }
- else if (args[0] == '>color') { // Generate colorscheme from color picker
- execAsync([`bash`, `-c`, `${App.configDir}/scripts/color_generation/switchcolor.sh --pick`, `&`]).catch(print);
- }
- else if (args[0] == '>light') { // Light mode
- darkMode.value = false;
- execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && sed -i "1s/.*/light/" ${GLib.get_user_cache_dir()}/ags/user/colormode.txt`])
- .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`]))
- .catch(print);
- }
- else if (args[0] == '>dark') { // Dark mode
- darkMode.value = true;
- execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && sed -i "1s/.*/dark/" ${GLib.get_user_cache_dir()}/ags/user/colormode.txt`])
- .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`]))
- .catch(print);
- }
- else if (args[0] == '>badapple') { // Black and white
- execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && sed -i "3s/.*/monochrome/" ${GLib.get_user_cache_dir()}/ags/user/colormode.txt`])
- .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`]))
- .catch(print);
- }
- else if (args[0] == '>material') { // Use material colors
- execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && echo "material" > ${GLib.get_user_cache_dir()}/ags/user/colorbackend.txt`]).catch(print)
- .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchwall.sh --noswitch`]).catch(print))
- .catch(print);
- }
- else if (args[0] == '>pywal') { // Use Pywal (ik it looks shit but I'm not removing)
- execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && echo "pywal" > ${GLib.get_user_cache_dir()}/ags/user/colorbackend.txt`]).catch(print)
- .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchwall.sh --noswitch`]).catch(print))
- .catch(print);
- }
- else if (args[0] == '>todo') { // Todo
- Todo.add(args.slice(1).join(' '));
- }
- else if (args[0] == '>shutdown') { // Shut down
- execAsync([`bash`, `-c`, `systemctl poweroff || loginctl poweroff`]).catch(print);
- }
- else if (args[0] == '>reboot') { // Reboot
- execAsync([`bash`, `-c`, `systemctl reboot || loginctl reboot`]).catch(print);
- }
- else if (args[0] == '>sleep') { // Sleep
- execAsync([`bash`, `-c`, `systemctl suspend || loginctl suspend`]).catch(print);
- }
- else if (args[0] == '>logout') { // Log out
- execAsync([`bash`, `-c`, `pkill Hyprland || pkill sway`]).catch(print);
- }
-}
-
-export function execAndClose(command, terminal) {
- App.closeWindow('overview');
- if (terminal) {
- execAsync([`bash`, `-c`, `${userOptions.apps.terminal} fish -C "${command}"`, `&`]).catch(print);
- }
- else
- execAsync(command).catch(print);
-}
-
-export function couldBeMath(str) {
- const regex = /^[0-9.+*/-]/;
- return regex.test(str);
-}
-
-export function expandTilde(path) {
- if (path.startsWith('~')) {
- return GLib.get_home_dir() + path.slice(1);
- } else {
- return path;
- }
-}
-
-function getFileIcon(fileInfo) {
- let icon = fileInfo.get_icon();
- if (icon) {
- // Get the icon's name
- return icon.get_names()[0];
- } else {
- // Default icon for files
- return 'text-x-generic';
- }
-}
-
-export function ls({ path = '~', silent = false }) {
- let contents = [];
- try {
- let expandedPath = expandTilde(path);
- if (expandedPath.endsWith('/'))
- expandedPath = expandedPath.slice(0, -1);
- let folder = Gio.File.new_for_path(expandedPath);
-
- let enumerator = folder.enumerate_children('standard::*', Gio.FileQueryInfoFlags.NONE, null);
- let fileInfo;
- while ((fileInfo = enumerator.next_file(null)) !== null) {
- let fileName = fileInfo.get_display_name();
- let fileType = fileInfo.get_file_type();
-
- let item = {
- parentPath: expandedPath,
- name: fileName,
- type: fileType === Gio.FileType.DIRECTORY ? 'folder' : 'file',
- icon: getFileIcon(fileInfo),
- };
-
- // Add file extension for files
- if (fileType === Gio.FileType.REGULAR) {
- let fileExtension = fileName.split('.').pop();
- item.type = `${fileExtension}`;
- }
-
- contents.push(item);
- contents.sort((a, b) => {
- const aIsFolder = a.type.startsWith('folder');
- const bIsFolder = b.type.startsWith('folder');
- if (aIsFolder && !bIsFolder) {
- return -1;
- } else if (!aIsFolder && bIsFolder) {
- return 1;
- } else {
- return a.name.localeCompare(b.name); // Sort alphabetically within folders and files
- }
- });
- }
- } catch (e) {
- if (!silent) console.log(e);
- }
- return contents;
-}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage