diff options
author | Süleyman Fərəcli <suleyman@farajli.net> | 2025-06-27 21:38:35 +0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-06-27 21:38:35 +0400 |
commit | f267d0b07f549dcfbe2782ce30df2accde2bd673 (patch) | |
tree | f6ce1b889bdff12d521ba75c636657620d65d2b4 | |
parent | 8b88efdc14d442e129887e4b45e4b07fce03a4dc (diff) | |
parent | d01aa72037643860458263fb8556943768bd268b (diff) |
Merge pull request #17 from sfarajli/dev_minimal
Dev minimal
-rw-r--r-- | Makefile | 14 | ||||
-rw-r--r-- | README | 18 | ||||
-rw-r--r-- | README.md | 71 | ||||
-rwxr-xr-x | dep.sh | 107 |
4 files changed, 74 insertions, 136 deletions
@@ -28,9 +28,7 @@ DIRECTORIES = $(BINDIR) $(CONFDIR) $(FONTDIR) COPY = cp -r LINK = ln -sf -all: config $(DIRECTORIES) scripts - -full: all desktop +all: config $(DIRECTORIES) scripts desktop desktop: $(INSTALL_TARGETS) @@ -106,12 +104,6 @@ font1-install font2-install: $(COPY) $$(basename $< .tar.gz) $(FONTDIR) fc-cache -check: - @./dep.sh - -fullcheck: - @./dep.sh --optional - dist: clean mkdir -p slcf/ cp -R config distros scripts dep.sh Makefile README slcf/ @@ -121,6 +113,6 @@ dist: clean clean: rm -rf slcf/ slcf.tar.gz $(ARCHIVE) $(FONTS) $(SOFTWARE) -.PHONY: all arch-linux check clean config desktop directory dist \ - fonts full fullcheck git scripts server sync \ +.PHONY: all arch-linux clean config desktop directory dist \ + fonts git scripts server sync \ $(INSTALL_TARGETS) @@ -1,18 +0,0 @@ -slcf - Suleyman's linux configuration files -=========================================== -My personal dotfiles. - -Installing slcf ---------------- -slcf only installs dotfiles to the home directory of the user running the Makefile -and doesn't affect other users. Therefore, it's recommended to create a new user -and run make as that user. If you like the setup then you can install it for your main user. - -Check the dependencies -> make depcheck - -Install config and scripts -> make config scripts - -Install everything -> make full diff --git a/README.md b/README.md new file mode 100644 index 0000000..349db0b --- /dev/null +++ b/README.md @@ -0,0 +1,71 @@ +# slcf - Suleyman's linux configuration files +My linux xorg configuration. + +slcf only installs configuration to the home directory of the user running the Makefile +and doesn't affect other users or make system-wide changes but it does overwrites the current configuration, +so, it's recommended to create a new user and run make as that user. +If you like the setup then you can install it for your main user. + +# Instlallation +1. Make sure to use Zsh or Bash as your interactive shell, have an internet connection, and install at least the build-time dependencies. + +2. Create a new user (set shell either to Zsh or Bash): +``` +useradd -m -s /bin/zsh <user> +``` + +3. run +``` bash +make +``` +4. Log out, log back in, and run `startx` on the TTY. + +# Dependencies +## Build time dependencies +- curl +- fontconfig (fc-cache command) +- gcc +- ld +- make +- ncurses (tic command) +- pkg-config +- tar + +## Build time libraries +- libx11 +- libxft +- libxinerama + +## Program dependencies (optional but recommended) +- Xorg +- dunst +- fzf +- git +- lf >= r31 +- mpv +- libnotify (notify-send command) +- nsxiv or sxiv +- nvim >= 0.10.3 or vim +- picom +- qutebrowser +- scrot +- setxkbmap +- xorg-xinit +- xclip +- zathura +- zsh or bash + +## Script dependencies (optional but recommended) +- brightnessctl +- pulseaudio +- xgamma +- xinput +- xset +- xwallpaper + +# Notes +- Refer to [my dwm build man page](https://git.farajli.net/dwm.git/tree/dwm.1) for keybinds. + +# Troubleshooting +- brightnessctl can require privileged user to function, to solve it refer to [brightnessctl page](https://github.com/Hummer12007/brightnessctl#Permissions). +- pulseaudio sometimes doesn't start automatically to start it manually run `pulseaudio --start`. @@ -1,107 +0,0 @@ -#!/bin/sh - -# Check if programs are installed on the system. -# Format for entries `program,alternative_program:output_message`, -# `alternative_program` and `message` are optional. -check() { - fail=0 - [ "${1}" = "-l" ] && { ISLIB=1; shift;} || ISLIB=0 - for entry in "${@}"; do - missing=0 - program_part=${entry%%:*} - program=${program_part%%,*} - alt_program=${program_part#*,} - msg=${entry#*:} - - [ "${msg}" = "${entry}" ] && msg="${program} is missing" - - if [ "${ISLIB}" -eq 1 ]; then - pkg-config --exists "${program}" || missing=1 - elif ! command -v "${program}" > /dev/null 2>&1 && - ! command -v "${alt_program}" > /dev/null 2>&1; then - missing=1 - fi - - [ "${missing}" -eq 1 ] && { echo "$msg" >&2; fail=1; } - done - return "${fail}" -} - -retval=0 - -# Optional Dependencies, skip QEMU and lualatex check -[ "${1}" = "--optional" ] && check \ - cmus \ - latex,pdflatex:"latex is missing" \ - neomutt,mutt \ - pamus \ - pandoc \ - shellcheck \ - ssh \ - trans:"translate shell is missing" \ - abook \ - acpi \ - cmus \ - dash \ - docker \ - ffmpeg \ - less \ - pass \ - python3 \ - rsync \ - sudo \ - tldr:"a tldr implementation is missing" \ - unclutter:"unclutter-xfixes is missing" \ - yt-dlp - -# Programs -check \ - Xorg \ - dunst \ - fzf \ - git \ - lf \ - mpv \ - notify-send:"libnotify is missing" \ - nsxiv,sxiv \ - nvim,vim \ - picom \ - qutebrowser \ - scrot \ - setxkbmap \ - startx:"xorg-xinit is missing" \ - xclip \ - zathura \ - zsh,bash - -# Script dependencies -check \ - brightnessctl \ - pulseaudio \ - xgamma \ - xinput \ - xset \ - xwallpaper - -# Build dependencies -check \ - cc:"c compiler is missing" \ - curl \ - fc-cache:"fontconfig is missing" \ - ld:"linker is missing" \ - make \ - tic:"ncurses is missing" \ - tar || retval=1 - -# Libraries -if check pkg-config; then - check -l \ - x11:"libX11 is missing" \ - xft:"libXft is missing " \ - xinerama:"libXinerama is missing" || retval=1 -else - echo "Warning: Skipping library check since 'pkg-config' is missing" >&2 - retval=1 -fi - -exit "${retval}" |