fix: Fixed writing command xinitrc, fixed auto-startx script

This commit is contained in:
ngn 2024-02-21 22:42:13 +03:00
parent 70ed2bec08
commit e1b05b3bf2
3 changed files with 30 additions and 43 deletions

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-20 21:22+0300\n" "POT-Creation-Date: 2024-02-21 22:39+0300\n"
"PO-Revision-Date: 2024-02-20 20:36+0300\n" "PO-Revision-Date: 2024-02-20 20:36+0300\n"
"Last-Translator: <ngn@ngn.tf>\n" "Last-Translator: <ngn@ngn.tf>\n"
"Language-Team: Turkish <gnome-turk@gnome.org>\n" "Language-Team: Turkish <gnome-turk@gnome.org>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/main.c:101 src/main.c:258 #: src/main.c:101 src/main.c:238
#, fuzzy #, fuzzy
msgid "Failed to get the home directory" msgid "Failed to get the home directory"
msgstr "Ev dizini bulmak başarısız oldu" msgstr "Ev dizini bulmak başarısız oldu"
@ -32,7 +32,7 @@ msgstr "%s dosyasını okumak için açmak başarısız oldu"
msgid "Failed to open %s for writing" msgid "Failed to open %s for writing"
msgstr "%s dosyasını yazmak için açmak başarısız oldu" msgstr "%s dosyasını yazmak için açmak başarısız oldu"
#: src/main.c:152 src/main.c:264 #: src/main.c:152 src/main.c:244
#, c-format #, c-format
msgid "Failed to write to %s" msgid "Failed to write to %s"
msgstr "%s dosyasına yazmak başarısız oldu" msgstr "%s dosyasına yazmak başarısız oldu"
@ -62,16 +62,16 @@ msgstr "Hayır"
msgid "Add auto-startx to shell configuration?" msgid "Add auto-startx to shell configuration?"
msgstr "Otomatik-startx kabuk konfigürasyonu ekle?" msgstr "Otomatik-startx kabuk konfigürasyonu ekle?"
#: src/main.c:236 #: src/main.c:250
msgid "Configuration has been saved!"
msgstr "Konfigürasyon kaydedildi!"
#: src/main.c:252
#, fuzzy, c-format #, fuzzy, c-format
msgid "Installing %s" msgid "Installing %s"
msgstr "%s kuruluyor" msgstr "%s kuruluyor"
#: src/main.c:244 src/main.c:252 #: src/main.c:258
#, fuzzy #, fuzzy
msgid "Installation failed" msgid "Installation failed"
msgstr "Kurulum başarısız oldu" msgstr "Kurulum başarısız oldu"
#: src/main.c:269
msgid "Configuration has been saved!"
msgstr "Konfigürasyon kaydedildi!"

View File

@ -26,7 +26,7 @@
#include <curses.h> #include <curses.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <spawn.h> #include <unistd.h>
#include <stdio.h> #include <stdio.h>
#include <menu.h> #include <menu.h>
#include "util.h" #include "util.h"
@ -169,13 +169,13 @@ int main(int argc, char** argv, char** envp){
.name="XFCE4", .name="XFCE4",
.desc="Lightweight desktop environment for UNIX-like operating systems", .desc="Lightweight desktop environment for UNIX-like operating systems",
.pkg="xfce4", .pkg="xfce4",
.cmd="startxfce4", .cmd="startxfce4\n",
}, },
{ {
.name="bspwm", .name="bspwm",
.desc="Tiling window manager based on binary space partitioning", .desc="Tiling window manager based on binary space partitioning",
.pkg="bspwm", .pkg="bspwm",
.cmd="bspwm" .cmd="bspwm\n"
} }
}; };
@ -232,45 +232,32 @@ int main(int argc, char** argv, char** envp){
if(autox && !add_startx()) if(autox && !add_startx())
goto FAIL; goto FAIL;
char xinitrc[PATH_MAX];
if(!joinhome(xinitrc, ".xinitrc")){
error(_("Failed to get the home directory"));
goto FAIL;
}
FILE* xf = fopen(xinitrc, "w");
if(fwrite(desktops[indx].cmd, 1, strlen(desktops[indx].cmd), xf)<0){
error(_("Failed to write to %s"), xinitrc);
fclose(xf);
goto FAIL;
}
fclose(xf);
success(_("Configuration has been saved!"));
info(_("Installing %s"), desktops[indx].name, mpi_path); info(_("Installing %s"), desktops[indx].name, mpi_path);
char* args[] = { char* args[] = {
doas_path, "mp-install", desktops[indx].pkg, NULL doas_path, "mp-install", desktops[indx].pkg, NULL
}; };
pid_t pid; if(execvp(doas_path, args) != 0) {
if(posix_spawn(&pid, doas_path, NULL, NULL, args, envp) != 0) {
error(_("Installation failed")); error(_("Installation failed"));
goto FAIL;
} }
int status;
waitpid(pid, &status, 0);
if(status!=0){
error(_("Installation failed"));
goto FAIL;
}
char xinitrc[PATH_MAX];
if(!joinhome(xinitrc, ".xinitrc")){
error(_("Failed to get the home directory"));
goto FAIL;
}
FILE* xf = fopen(xinitrc, "w");
if(fwrite(xinitrc, 1, strlen(desktops[indx].cmd), xf)<0){
error(_("Failed to write to %s"), xinitrc);
fclose(xf);
goto FAIL;
}
success(_("Configuration has been saved!"));
fclose(xf);
free(doas_path);
return EXIT_SUCCESS;
FAIL: FAIL:
free(doas_path); free(doas_path);
return EXIT_FAILURE; return EXIT_FAILURE;

View File

@ -1,4 +1,4 @@
#define AUTOSTARTX "\n#auto-startx \nif [ -z '$DISPLAY' ] && [ '$XDG_VTNR' = 1 ]; then\nexec startx\nfi\n" #define AUTOSTARTX "\n#auto-startx \nif [[ \"$(tty)\" == \"/dev/tty1\" ]] && [ -z \"$DISPLAY\" ]; then\nexec startx\nfi\n"
struct Desktop { struct Desktop {
char* name; char* name;