initial shit thing
This commit is contained in:
commit
994f2e2cdd
4 changed files with 248 additions and 0 deletions
33
install.sh
Normal file
33
install.sh
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo Are you using sudo or doas? (root permisions)
|
||||
echo (1=sudo,2=doas)
|
||||
read rootperms
|
||||
|
||||
if [ $rootperms == 1]
|
||||
then
|
||||
make
|
||||
sudo make install
|
||||
sudo systemctl enable 4y.service
|
||||
sudo systemctl disable getty@tty2.service
|
||||
echo Installation finished.
|
||||
echo Do you wish to proceed to 4y menu?
|
||||
read proceed
|
||||
elif [ $rootperms == 2 ]
|
||||
then
|
||||
make
|
||||
doas make install
|
||||
doas systemctl enable 4y.service
|
||||
doas systemctl disable getty@tty2.service
|
||||
echo Installation finished.
|
||||
echo Do you wish to proceed to 4y menu? [Y/N]
|
||||
read proceed
|
||||
else
|
||||
echo error: you can only choose sudo or doas. If you use something different youre gonna need to proceed to manual installation
|
||||
echo exiting installation.
|
||||
|
||||
if [ $proceed == Y]
|
||||
then
|
||||
systemctl start 4y
|
||||
else
|
||||
echo installation finished successfully, exiting.
|
||||
13
license.md
Normal file
13
license.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
Version 2, December 2004
|
||||
|
||||
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim or modified
|
||||
copies of this license document, and changing it is allowed as long
|
||||
as the name is changed.
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. You just DO WHAT THE FUCK YOU WANT TO.
|
||||
106
makefile
Normal file
106
makefile
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
NAME = 4y
|
||||
CC = gcc
|
||||
FLAGS = -std=c99 -pedantic -g
|
||||
FLAGS+= -Wall -Wextra -Werror=vla -Wno-unused-parameter
|
||||
#FLAGS+= -DDEBUG
|
||||
FLAGS+= -DGIT_VERSION_STRING=\"$(shell git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g')\"
|
||||
LINK = -lpam -lxcb
|
||||
VALGRIND = --show-leak-kinds=all --track-origins=yes --leak-check=full --suppressions=../res/valgrind.supp
|
||||
CMD = ./$(NAME)
|
||||
|
||||
OS:= $(shell uname -s)
|
||||
ifeq ($(OS), Linux)
|
||||
FLAGS+= -D_DEFAULT_SOURCE
|
||||
endif
|
||||
|
||||
BIND = bin
|
||||
OBJD = obj
|
||||
SRCD = src
|
||||
SUBD = sub
|
||||
RESD = res
|
||||
TESTD = tests
|
||||
|
||||
DATADIR ?= ${DESTDIR}/etc/4y
|
||||
FLAGS+= -DDATADIR=\"$(DATADIR)\"
|
||||
|
||||
INCL = -I$(SRCD)
|
||||
INCL+= -I$(SUBD)/ctypes
|
||||
INCL+= -I$(SUBD)/argoat/src
|
||||
INCL+= -I$(SUBD)/configator/src
|
||||
INCL+= -I$(SUBD)/dragonfail/src
|
||||
INCL+= -I$(SUBD)/termbox_next/src
|
||||
|
||||
SRCS = $(SRCD)/main.c
|
||||
SRCS += $(SRCD)/config.c
|
||||
SRCS += $(SRCD)/draw.c
|
||||
SRCS += $(SRCD)/inputs.c
|
||||
SRCS += $(SRCD)/login.c
|
||||
SRCS += $(SRCD)/utils.c
|
||||
SRCS += $(SUBD)/argoat/src/argoat.c
|
||||
SRCS += $(SUBD)/configator/src/configator.c
|
||||
SRCS += $(SUBD)/dragonfail/src/dragonfail.c
|
||||
|
||||
SRCS_OBJS:= $(patsubst %.c,$(OBJD)/%.o,$(SRCS))
|
||||
SRCS_OBJS+= $(SUBD)/termbox_next/bin/termbox.a
|
||||
|
||||
.PHONY: final
|
||||
final: $(BIND)/$(NAME)
|
||||
|
||||
$(OBJD)/%.o: %.c
|
||||
@echo "building object $@"
|
||||
@mkdir -p $(@D)
|
||||
@$(CC) $(INCL) $(FLAGS) -c -o $@ $<
|
||||
|
||||
$(SUBD)/termbox_next/bin/termbox.a:
|
||||
@echo "building static object $@"
|
||||
@(cd $(SUBD)/termbox_next && $(MAKE))
|
||||
|
||||
$(BIND)/$(NAME): $(SRCS_OBJS)
|
||||
@echo "compiling executable $@"
|
||||
@mkdir -p $(@D)
|
||||
@$(CC) -o $@ $^ $(LINK)
|
||||
|
||||
run:
|
||||
@cd $(BIND) && $(CMD)
|
||||
|
||||
leak: leakgrind
|
||||
leakgrind: $(BIND)/$(NAME)
|
||||
@rm -f valgrind.log
|
||||
@cd $(BIND) && valgrind $(VALGRIND) 2> ../valgrind.log $(CMD)
|
||||
@less valgrind.log
|
||||
|
||||
install: $(BIND)/$(NAME)
|
||||
@echo "installing"
|
||||
@install -dZ ${DESTDIR}/etc/4y
|
||||
@install -DZ $(BIND)/$(NAME) -t ${DESTDIR}/usr/bin
|
||||
@install -DZ $(RESD)/config.ini -t ${DESTDIR}/etc/4y
|
||||
@install -DZ $(RESD)/xsetup.sh -t $(DATADIR)
|
||||
@install -DZ $(RESD)/wsetup.sh -t $(DATADIR)
|
||||
@install -dZ $(DATADIR)/lang
|
||||
@install -DZ $(RESD)/lang/* -t $(DATADIR)/lang
|
||||
@install -DZ $(RESD)/4y.service -m 644 -t ${DESTDIR}/usr/lib/systemd/system
|
||||
@install -DZ $(RESD)/pam.d/4y -m 644 -t ${DESTDIR}/etc/pam.d
|
||||
|
||||
installnoconf: $(BIND)/$(NAME)
|
||||
@echo "installing without the configuration file"
|
||||
@install -dZ ${DESTDIR}/etc/4y
|
||||
@install -DZ $(BIND)/$(NAME) -t ${DESTDIR}/usr/bin
|
||||
@install -DZ $(RESD)/xsetup.sh -t $(DATADIR)
|
||||
@install -DZ $(RESD)/wsetup.sh -t $(DATADIR)
|
||||
@install -dZ $(DATADIR)/lang
|
||||
@install -DZ $(RESD)/lang/* -t $(DATADIR)/lang
|
||||
@install -DZ $(RESD)/4y.service -m 644 -t ${DESTDIR}/usr/lib/systemd/system
|
||||
@install -DZ $(RESD)/pam.d/4y -m 644 -t ${DESTDIR}/etc/pam.d
|
||||
|
||||
uninstall:
|
||||
@echo "uninstalling"
|
||||
@rm -rf ${DESTDIR}/etc/4y
|
||||
@rm -rf $(DATADIR)
|
||||
@rm -f ${DESTDIR}/usr/bin/4y
|
||||
@rm -f ${DESTDIR}/usr/lib/systemd/system/4y.service
|
||||
@rm -f ${DESTDIR}/etc/pam.d/4y
|
||||
|
||||
clean:
|
||||
@echo "cleaning"
|
||||
@rm -rf $(BIND) $(OBJD) valgrind.log
|
||||
@(cd $(SUBD)/termbox_next && $(MAKE) clean)
|
||||
96
readme.md
Normal file
96
readme.md
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
# 4y - Ly Fork - TUI display manager
|
||||

|
||||
|
||||
# WARNING!
|
||||
this fork of Ly is unfinished. please dont hate on it its still in development.
|
||||
|
||||
|
||||
4y is a fork of Ly, It is made to be easier and have an auto install command.
|
||||
Ly is a lightweight TUI (ncurses-like) display manager for Linux and BSD.
|
||||
|
||||
## Dependencies
|
||||
- a C99 compiler (tested with tcc and gcc)
|
||||
- a C standard library
|
||||
- GNU make
|
||||
- pam
|
||||
- xcb
|
||||
- xorg
|
||||
- xorg-xauth
|
||||
- mcookie
|
||||
- tput
|
||||
- shutdown
|
||||
|
||||
On Debian-based distros running `apt install build-essential libpam0g-dev libxcb-xkb-dev` as root should install all the dependencies for you.
|
||||
|
||||
## Support
|
||||
The following desktop environments were tested with success
|
||||
- bspwm
|
||||
- budgie
|
||||
- cinnamon
|
||||
- deepin
|
||||
- dwm
|
||||
- enlightenment
|
||||
- gnome
|
||||
- i3
|
||||
- kde
|
||||
- lxde
|
||||
- lxqt
|
||||
- mate
|
||||
- qtile
|
||||
- sway
|
||||
- xfce
|
||||
- pantheon
|
||||
- maxx
|
||||
- windowmaker
|
||||
|
||||
4y should work with any X desktop environment, and provides
|
||||
basic wayland support (sway works very well, for example).
|
||||
|
||||
## systemd?
|
||||
For the autoinstall script. youre gonna need systemd. however,
|
||||
with some tinkering you dont need systemd to do this!
|
||||
|
||||
## Installing
|
||||
just do "git clone --recurse-submodules https://github.com/M4RT1NDEV/4y.git"
|
||||
"cd 4y"
|
||||
"bash install.sh" or "./install.sh"
|
||||
|
||||
## Configuration
|
||||
You can find all the configuration in `/etc/4y/config.ini`.
|
||||
The file is commented, and includes the default values.
|
||||
|
||||
## Controls
|
||||
Use the up and down arrow keys to change the current field, and the
|
||||
left and right arrow keys to change the target desktop environment
|
||||
while on the desktop field (above the login field).
|
||||
|
||||
## .xinitrc
|
||||
If your .xinitrc doesn't work make sure it is executable and includes a shebang.
|
||||
This file is supposed to be a shell script! Quoting from xinit's man page:
|
||||
```
|
||||
If no specific client program is given on the command line, xinit will look for
|
||||
a file in the user's home directory called .xinitrc to run as a shell script to
|
||||
start up client programs.
|
||||
```
|
||||
On ArchLinux, the example .xinitrc (/etc/X11/xinit/xinitrc) starts like this:
|
||||
```
|
||||
#!/bin/sh
|
||||
```
|
||||
|
||||
## Tips
|
||||
The numlock and capslock state is printed in the top-right corner.
|
||||
Use the F1 and F2 keys to respectively shutdown and reboot.
|
||||
Take a look at your .xsession if X doesn't start, as it can interfere
|
||||
(this file is launched with X to configure the display properly).
|
||||
|
||||
## PSX DOOM fire animation
|
||||
To enable the famous PSX DOOM fire described by [Fabien Sanglard](http://fabiensanglard.net/doom_fire_psx/index.html),
|
||||
just uncomment `animate = true` in `/etc/ly/config.ini`. You may also
|
||||
disable the main box borders with `hide_borders = true`.
|
||||
|
||||
## Additional Information
|
||||
The name "4y" comes from the 4 in M4RT1NDEV and the y is from
|
||||
the name ly which is the login manager this is a fork of.
|
||||
|
||||
The name "Ly" is a tribute to the fairy from the game Rayman.
|
||||
Ly was tested by oxodao, who is some seriously awesome dude.
|
||||
Loading…
Add table
Add a link
Reference in a new issue