From bc591dcedf45b80f70661f33c42c68dbd581e901 Mon Sep 17 00:00:00 2001 From: jdlugosz963 Date: Mon, 11 Aug 2025 17:36:57 +0200 Subject: Migrate to RDE --- .guix-channel | 23 - Makefile | 19 + channels-lock.scm | 35 ++ files/.Xmodmap | 2 - files/.bash_profile | 17 - files/.bin/arduino-cli | 14 - files/.bin/chiaki | 21 - files/.bin/clean.sh | 3 - files/.bin/download_music.sh | 26 -- files/.bin/esp_upload.sh | 6 - files/.bin/file_upload.sh | 38 -- files/.bin/guix-container | 8 - files/.bin/home-reconfigure | 9 - files/.bin/jd-arduino-cli.Dockerfile | 16 - files/.bin/mount-nas-abaks | 1 - files/.bin/oath | 14 - files/.bin/profile-add-all | 9 - files/.bin/stumpish | 196 -------- files/.bin/system-reconfigure | 10 - files/.bin/update.sh | 4 - files/.bin/whois-at-hsp | 84 ---- files/.config/alacritty/alacritty.toml | 46 -- files/.config/alacritty/alacritty.toml.old | 23 - files/.config/alacritty/alacritty.yaml | 27 -- .../source-registry.conf.d/50-user-lisp.conf | 1 - files/.config/distrobox/distrobox.conf | 10 - files/.config/dunst/dunstrc | 177 ------- files/.config/guix/.gitignore | 1 - files/.config/guix/channels.scm | 5 - files/.config/guix/shell-authorized-directories | 10 - files/.config/picom/picom.conf | 117 ----- files/.config/polybar/config.ini | 122 ----- files/.config/qtile/autorc | 31 -- files/.config/qtile/config.py | 232 ---------- files/.config/qtile/mdt_shell | 1 - files/.config/qtile/photos/desktop.png | Bin 1555228 -> 0 bytes files/.config/qtile/python.png | Bin 52166 -> 0 bytes files/.config/qtile/readme.org | 5 - files/.config/sway/config | 195 -------- files/.config/waybar/config | 159 ------- files/.config/waybar/style.css | 205 --------- files/.emacs.d/.gitignore | 5 - files/.emacs.d/init.el | 146 ------ files/.emacs.d/jd/jd-apps.el | 49 -- files/.emacs.d/jd/jd-custom.el | 33 -- files/.emacs.d/jd/jd-dev.el | 177 ------- files/.emacs.d/jd/jd-exwm.el | 177 ------- files/.emacs.d/jd/jd-gym.el | 120 ----- files/.emacs.d/jd/jd-keys.el | 49 -- files/.emacs.d/jd/jd-misc.el | 34 -- files/.emacs.d/jd/jd-mu4e.el | 84 ---- files/.emacs.d/jd/jd-org.el | 222 --------- files/.emacs.d/jd/jd-sway.el | 18 - files/.emacs.d/jd/jd-ui.el | 104 ----- files/.gitignore | 7 - files/.guile | 2 - files/.mbsyncrc | 47 -- files/.nix-channels | 1 - files/.stumpwm.d/.gitignore | 1 - files/.stumpwm.d/init.lisp | 360 --------------- guix/jd/desktops/base.scm | 249 ---------- guix/jd/desktops/berserker.scm | 17 - guix/jd/desktops/mimir.scm | 14 - guix/jd/home/services/desktop.scm | 198 -------- guix/jd/home/services/emacs.scm | 113 ----- guix/jd/home/services/polkit.scm | 31 -- guix/jd/packages/emacs.scm | 57 --- guix/jd/packages/fonts.scm | 25 - guix/jd/packages/linux.scm | 51 --- guix/jd/services/polkit.scm | 21 - guix/jd/utils.scm | 75 --- src/jd/config.scm | 23 + src/jd/features/mail.scm | 115 +++++ src/jd/features/networking.scm | 81 ++++ src/jd/host.scm | 47 ++ src/jd/user.scm | 507 +++++++++++++++++++++ 76 files changed, 827 insertions(+), 4355 deletions(-) delete mode 100644 .guix-channel create mode 100644 Makefile create mode 100644 channels-lock.scm delete mode 100644 files/.Xmodmap delete mode 100644 files/.bash_profile delete mode 100755 files/.bin/arduino-cli delete mode 100755 files/.bin/chiaki delete mode 100755 files/.bin/clean.sh delete mode 100755 files/.bin/download_music.sh delete mode 100755 files/.bin/esp_upload.sh delete mode 100755 files/.bin/file_upload.sh delete mode 100755 files/.bin/guix-container delete mode 100755 files/.bin/home-reconfigure delete mode 100644 files/.bin/jd-arduino-cli.Dockerfile delete mode 100755 files/.bin/mount-nas-abaks delete mode 100755 files/.bin/oath delete mode 100755 files/.bin/profile-add-all delete mode 100755 files/.bin/stumpish delete mode 100755 files/.bin/system-reconfigure delete mode 100755 files/.bin/update.sh delete mode 100755 files/.bin/whois-at-hsp delete mode 100644 files/.config/alacritty/alacritty.toml delete mode 100644 files/.config/alacritty/alacritty.toml.old delete mode 100644 files/.config/alacritty/alacritty.yaml delete mode 100644 files/.config/common-lisp/source-registry.conf.d/50-user-lisp.conf delete mode 100644 files/.config/distrobox/distrobox.conf delete mode 100644 files/.config/dunst/dunstrc delete mode 100644 files/.config/guix/.gitignore delete mode 100755 files/.config/guix/channels.scm delete mode 100644 files/.config/guix/shell-authorized-directories delete mode 100644 files/.config/picom/picom.conf delete mode 100644 files/.config/polybar/config.ini delete mode 100755 files/.config/qtile/autorc delete mode 100644 files/.config/qtile/config.py delete mode 100755 files/.config/qtile/mdt_shell delete mode 100644 files/.config/qtile/photos/desktop.png delete mode 100644 files/.config/qtile/python.png delete mode 100644 files/.config/qtile/readme.org delete mode 100644 files/.config/sway/config delete mode 100644 files/.config/waybar/config delete mode 100644 files/.config/waybar/style.css delete mode 100644 files/.emacs.d/.gitignore delete mode 100755 files/.emacs.d/init.el delete mode 100755 files/.emacs.d/jd/jd-apps.el delete mode 100755 files/.emacs.d/jd/jd-custom.el delete mode 100755 files/.emacs.d/jd/jd-dev.el delete mode 100755 files/.emacs.d/jd/jd-exwm.el delete mode 100755 files/.emacs.d/jd/jd-gym.el delete mode 100755 files/.emacs.d/jd/jd-keys.el delete mode 100644 files/.emacs.d/jd/jd-misc.el delete mode 100755 files/.emacs.d/jd/jd-mu4e.el delete mode 100755 files/.emacs.d/jd/jd-org.el delete mode 100644 files/.emacs.d/jd/jd-sway.el delete mode 100755 files/.emacs.d/jd/jd-ui.el delete mode 100644 files/.gitignore delete mode 100644 files/.guile delete mode 100644 files/.mbsyncrc delete mode 100644 files/.nix-channels delete mode 100644 files/.stumpwm.d/.gitignore delete mode 100755 files/.stumpwm.d/init.lisp delete mode 100644 guix/jd/desktops/base.scm delete mode 100755 guix/jd/desktops/berserker.scm delete mode 100644 guix/jd/desktops/mimir.scm delete mode 100644 guix/jd/home/services/desktop.scm delete mode 100644 guix/jd/home/services/emacs.scm delete mode 100644 guix/jd/home/services/polkit.scm delete mode 100644 guix/jd/packages/emacs.scm delete mode 100644 guix/jd/packages/fonts.scm delete mode 100644 guix/jd/packages/linux.scm delete mode 100644 guix/jd/services/polkit.scm delete mode 100644 guix/jd/utils.scm create mode 100644 src/jd/config.scm create mode 100644 src/jd/features/mail.scm create mode 100644 src/jd/features/networking.scm create mode 100644 src/jd/host.scm create mode 100644 src/jd/user.scm diff --git a/.guix-channel b/.guix-channel deleted file mode 100644 index 57f7a2c..0000000 --- a/.guix-channel +++ /dev/null @@ -1,23 +0,0 @@ -(channel - (version 0) - (directory "guix") - (url "https://github.com/jdlugosz963/dotfiles") - (dependencies - (channel - (name nonguix) - (url "https://gitlab.com/nonguix/nonguix") - (branch "master") - (introduction - (channel-introduction - (version 0) - (commit "897c1a470da759236cc11798f4e0a5f7d4d59fbc") - (signer "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))) - (channel - (name rustup) - (url "https://github.com/declantsien/guix-rustup") - (branch "master") - (introduction - (channel-introduction - (version 0) - (commit "325d3e2859d482c16da21eb07f2c6ff9c6c72a80") - (signer "F695 F39E C625 E081 33B5 759F 0FC6 8703 75EF E2F5")))))) \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..14fdb7b --- /dev/null +++ b/Makefile @@ -0,0 +1,19 @@ +.DEFAULT_GOAL := reconfigure + +CHANNELS_FILE=./channels-lock.scm +GUIXTM=guix time-machine -C ${CHANNELS_FILE} +GUIXTM_LOCAL_RDE=guix time-machine -L ./env/guix -C ${CHANNELS_FILE_LOCAL_RDE} + +GUIX=$(GUIXTM) -- + +repl: + ${GUIX} shell guile-next guile-ares-rs \ + -e '((@ (rde packages guix) make-guix-package) (load "${CHANNELS_FILE}"))' \ + -e '((@ (rde packages guix) make-channels-package) (load "${CHANNELS_FILE}"))' \ + -- guile \ + -L ./src \ + -c \ + "(begin (use-modules (guix gexp)) ((@ (ares server) run-nrepl-server)))" + +reconfigure: + sudo -E ${GUIX} system -L ./src reconfigure -e "(@ (jd config) %os)" diff --git a/channels-lock.scm b/channels-lock.scm new file mode 100644 index 0000000..254f474 --- /dev/null +++ b/channels-lock.scm @@ -0,0 +1,35 @@ +(use-modules (guix channels)) + +(list (channel + (name 'rde) + (url "https://git.sr.ht/~abcdw/rde") + (branch "master") + (commit + "a0740b46c74210ea972560e07f33fb493eb65c78") + (introduction + (make-channel-introduction + "257cebd587b66e4d865b3537a9a88cccd7107c95" + (openpgp-fingerprint + "2841 9AC6 5038 7440 C7E9 2FFA 2208 D209 58C1 DEB0")))) + (channel + (name 'guix) + (url "https://codeberg.org/guix/guix.git") + (branch "master") + (commit + "ced31f8dd156e4202a2c7115fc003608a541388c") + (introduction + (make-channel-introduction + "9edb3f66fd807b096b48283debdcddccfea34bad" + (openpgp-fingerprint + "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA")))) + (channel + (name 'nonguix) + (url "https://gitlab.com/nonguix/nonguix") + (branch "master") + (commit + "473e5a62cd512cc0d5b4ac2c33be0bc0d0379435") + (introduction + (make-channel-introduction + "897c1a470da759236cc11798f4e0a5f7d4d59fbc" + (openpgp-fingerprint + "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))) diff --git a/files/.Xmodmap b/files/.Xmodmap deleted file mode 100644 index cb4706f..0000000 --- a/files/.Xmodmap +++ /dev/null @@ -1,2 +0,0 @@ -clear lock -keycode 0x42 = Escape diff --git a/files/.bash_profile b/files/.bash_profile deleted file mode 100644 index 14802fe..0000000 --- a/files/.bash_profile +++ /dev/null @@ -1,17 +0,0 @@ -# Honor per-interactive-shell startup file -if [ -f ~/.bashrc ]; then . ~/.bashrc; fi - -export GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles - -for i in $GUIX_EXTRA_PROFILES/*; do - profile=$i/$(basename "$i") - if [ -f "$profile"/etc/profile ]; then - GUIX_PROFILE="$profile" - . "$GUIX_PROFILE"/etc/profile - fi - unset profile -done - -export NIX_PATH=~/.nix-defexpr/channels/nixos/ - -. .profile diff --git a/files/.bin/arduino-cli b/files/.bin/arduino-cli deleted file mode 100755 index 7c0d41a..0000000 --- a/files/.bin/arduino-cli +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) - -if [[ $(docker images | grep jd-arduino-cli | wc -l) -eq 0 ]] -then - docker build -f "$SCRIPT_DIR/jd-arduino-cli.Dockerfile" -t jd-arduino-cli . -fi - -docker run --rm --network none -it --privileged \ - -v $(pwd):/src \ - -v jd-arduino-cli-tmp:/tmp \ - -v /dev:/dev jd-arduino-cli \ - arduino-cli $@ diff --git a/files/.bin/chiaki b/files/.bin/chiaki deleted file mode 100755 index 5fa6547..0000000 --- a/files/.bin/chiaki +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -CHIAKI_SHELL=/tmp/.chiaki.nix - -cat < $CHIAKI_SHELL -let - nixgl = import (fetchTarball https://github.com/guibou/nixGL/archive/main.tar.gz) { }; -in -{ nixpkgs ? import {} }: -with nixpkgs; mkShell { - buildInputs = [ - chiaki - nixgl.auto.nixGLDefault - ]; - shellHook = '' - nixGL chiaki && exit; - ''; -} -EOF - -nix-shell $CHIAKI_SHELL diff --git a/files/.bin/clean.sh b/files/.bin/clean.sh deleted file mode 100755 index 3e6bbfd..0000000 --- a/files/.bin/clean.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -sudo emerge --ask --depclean; diff --git a/files/.bin/download_music.sh b/files/.bin/download_music.sh deleted file mode 100755 index e3a3601..0000000 --- a/files/.bin/download_music.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -BOLD="\e[1"; -ENDCOLOR="\e[0m"; -Green="32"; -LightRed="31"; - -if ! [ $1 ]; then - echo "" - echo -e $BOLD";"";"$LightRed"m Please provide music url!"$ENDCOLOR - echo "" - exit -fi - -MUSIC_DIR="~/Documents/Music/%(artist)s/%(album)s/%(title)s-%(id)s.%(ext)s" -if [ $2 ]; then - MUSIC_DIR="${a}/%(artist)s/%(album)s/%(title)s-%(id)s.%(ext)s" -fi - -echo "" -echo -e $BOLD";"";"$Green"m Music will download to ${MUSIC_DIR} directory!"$ENDCOLOR -echo "" - -sleep 1 - -yt-dlp -x --audio-format mp3 --embed-metadata -o $MUSIC_DIR $1 diff --git a/files/.bin/esp_upload.sh b/files/.bin/esp_upload.sh deleted file mode 100755 index 27d8d41..0000000 --- a/files/.bin/esp_upload.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -# rm /tmp/arduino-sketch-*/ -r -~/.local/bin/arduino-cli cache clean -~/.local/bin/arduino-cli compile --fqbn esp8266:esp8266:nodemcuv2 -~/.local/bin/arduino-cli upload -p /dev/ttyUSB0 --fqbn esp8266:esp8266:nodemcuv2 diff --git a/files/.bin/file_upload.sh b/files/.bin/file_upload.sh deleted file mode 100755 index 0ff6c57..0000000 --- a/files/.bin/file_upload.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh - -BOLD="\e[1"; -ENDCOLOR="\e[0m"; -Green="32m"; -LightRed="31m"; - -echo "" -echo -e $BOLD";"";"$Green" FILE UPLOADER"$ENDCOLOR -echo "" - -if ! [ $1 ]; then - echo "" - echo -e $BOLD";"";"$LightRed" Please provide file path!"$ENDCOLOR - echo "" - exit -fi - -if [ $1 ]; then - echo -e " Are u sure u want upload this file: "$BOLD";"";"$Green" '$1'"$ENDCOLOR"? [y/N]: " - read -p " " input - echo "" - # read -r -p " " input - case $input in - [yY][eE][sS]|[yY]) - URL=$(curl -s -F "file=@$1" https://0x0.st); - echo -e " URL: "$BOLD";"";"$Green"$URL"$ENDCOLOR; - ;; - [nN][oO]|[nN]) - echo -e $BOLD";"";"$Green" OK"$ENDCOLOR; - ;; - *) - echo -e $BOLD";"";"$LightRed" Invalid input..."$ENDCOLOR; - exit 1 - ;; - esac - echo "" -fi; diff --git a/files/.bin/guix-container b/files/.bin/guix-container deleted file mode 100755 index 162eda0..0000000 --- a/files/.bin/guix-container +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -guix shell -C -F -N \ - -E XDG_RUNTIME_DIR=/tmp \ - -E WAYLAND_DISPLAY \ - -E DISPLAY \ - --share=$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY=/tmp/$WAYLAND_DISPLAY \ - $@ coreutils diff --git a/files/.bin/home-reconfigure b/files/.bin/home-reconfigure deleted file mode 100755 index f55b896..0000000 --- a/files/.bin/home-reconfigure +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -if [ -n "$1" ]; then - guix home -L $1 reconfigure \ - -e '((@ (jd utils) current-home))' -else - guix home reconfigure \ - -e '((@ (jd utils) current-home))' -fi; diff --git a/files/.bin/jd-arduino-cli.Dockerfile b/files/.bin/jd-arduino-cli.Dockerfile deleted file mode 100644 index cb8eb91..0000000 --- a/files/.bin/jd-arduino-cli.Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM python:3.12-rc-slim - -RUN apt update && apt install -y wget && \ - wget https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Linux_64bit.tar.gz && \ - tar -C /usr/bin/ -xf arduino-cli_nightly-latest_Linux_64bit.tar.gz - -RUN mkdir ~/.arduino15 && \ - echo "board_manager:" > ~/.arduino15/arduino-cli.yaml && \ - echo " additional_urls:" >> ~/.arduino15/arduino-cli.yaml && \ - echo " - http://arduino.esp8266.com/stable/package_esp8266com_index.json" >> ~/.arduino15/arduino-cli.yaml - - -RUN arduino-cli core update-index && \ - arduino-cli core install esp8266:esp8266 - -WORKDIR /src \ No newline at end of file diff --git a/files/.bin/mount-nas-abaks b/files/.bin/mount-nas-abaks deleted file mode 100755 index 6c14817..0000000 --- a/files/.bin/mount-nas-abaks +++ /dev/null @@ -1 +0,0 @@ -sudo mount -t cifs -o vers=2.0,username=kdlugosz,password=$(pass nas/abaks/kdlugosz) //195.74.91.28/kdlugosz /mnt \ No newline at end of file diff --git a/files/.bin/oath b/files/.bin/oath deleted file mode 100755 index 7444993..0000000 --- a/files/.bin/oath +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -if [[ $1 ]]; then - PASS=$(oathtool -b --totp $(pass show "oath/$1")) - printf $PASS | wl-copy - echo "pass: $PASS" - echo "Password should be in your clipboard!" -else - echo "Usage: oath " - echo "Available pass:" - pass oath -fi - - diff --git a/files/.bin/profile-add-all b/files/.bin/profile-add-all deleted file mode 100755 index bca4178..0000000 --- a/files/.bin/profile-add-all +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles -for i in $HOME/.config/guix/manifests/*; do - echo $i - MANIFEST_NAME=$(basename $i .scm) - mkdir -p "$GUIX_EXTRA_PROFILES"/"$MANIFEST_NAME" - guix package --manifest=$i --profile="$GUIX_EXTRA_PROFILES/$MANIFEST_NAME/$MANIFEST_NAME" -done diff --git a/files/.bin/stumpish b/files/.bin/stumpish deleted file mode 100755 index 9e95c0c..0000000 --- a/files/.bin/stumpish +++ /dev/null @@ -1,196 +0,0 @@ -#!/bin/sh - -# Copyright (C) 2007 Jonathan Moore Liles -# -# Maintainer: Jonathan Moore Liles -# -# stumpish is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# stumpish is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this software; see the file COPYING. If not, see -# . - -### STUMPwm Interactive SHell. - -DELAY=0.01 - -if ! sleep $DELAY 2>/dev/null >&2 -then - DELAY=1 -fi - -# replace -E with -r option for old versions of GNU sed -if ! sed -E 1p /dev/null 2>/dev/null; then - sed() { shift; command sed -r "$@"; } -fi - -# parse C-style backslash sequences by default -if [ "$(echo -e foo)" = foo ]; then - echo() { builtin echo -e "$@"; } -fi - -wait_result () -{ - while true - do - RESULT=$(xprop -root -f STUMPWM_COMMAND_RESULT 8s \ - STUMPWM_COMMAND_RESULT 2>/dev/null | - sed -E 's/\\([[:digit:]]+)/\\0\1/g') - if echo "$RESULT" | grep -v -q 'not found.$' - then - break - fi - - sleep $DELAY - done - - xprop -root -remove STUMPWM_COMMAND_RESULT - - if echo "$RESULT" | grep -q '= $' - then - return 0 - fi - - echo "$RESULT" | - sed -E 's/[^"\\n]+"// - /^"[[:space:]]*$/d - s/(^|[^\\])\\n/\1\ -/g - s/\\(["\\n])/\1/g - s/\^([*[:digit:]]+|[Bbn])//g' -} - -send_cmd () -{ - local cmd="$1" - - if [ "$cmd" = "stumpwm-quit" ] - then - cmd=quit - elif [ "$cmd" = "quit" ] - then - exit - fi - - xprop -root -f STUMPWM_COMMAND 8s -set STUMPWM_COMMAND "$cmd" - - wait_result -} - -usage () -{ - cat <&2 -} - -tput () -{ - local cap1=$1 cap2=$2 - shift 2 - - command tput $cap1 $@ 2>/dev/null || - command tput $cap2 $@ 2>/dev/null -} - -READLINE=yes - -if [ "x$1" = "x-r" ] -then - READLINE=no - shift 1 -fi - -if [ $# -gt 0 ] -then - [ "$1" = "--help" ] && usage - if [ "$1" = "-e" ] - then - if [ $# -ne 2 ] - then - echo "'-e' requires exactly one argument!" - exit - fi - shift 1 - IFS='' - ARGS=$(cat /dev/stdin) - send_cmd "$1 $ARGS" - else - IFS=' ' - send_cmd "$*" - fi -else - if [ -t 0 ] - then - if ! type rlwrap 2>/dev/null >&2 - then - warn rlwrap not found, command completion won\'t work - elif [ $READLINE = yes ] - then - COMMANDS="${TMPDIR:-/tmp}/stumpish.commands.$$" - echo $(send_cmd "commands") | - sed -E 's/[[:space:]]+/\ -/g' | - sort > "$COMMANDS" - trap 'rm -f "$COMMANDS"' exit int term - rlwrap -b '' -f "$COMMANDS" "$0" -r - exit - fi - - tput AF setaf 5 - echo Welcome to the STUMPwm Interactive SHell. - tput me sgr0 - echo 'Type \c' - tput AF setaf 2 - echo 'commands\c' - tput me sgr0 - echo \ for a list of commands. - - while read -p '> ' REPLY - do - tput md bold - tput AF setaf 2 - send_cmd "$REPLY" - tput me sgr0 - done - else - while read REPLY - do - send_cmd "$REPLY" - done - fi -fi diff --git a/files/.bin/system-reconfigure b/files/.bin/system-reconfigure deleted file mode 100755 index e76ba27..0000000 --- a/files/.bin/system-reconfigure +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -if [ -n "$1" ]; then - sudo -E guix system -L $1 reconfigure \ - -e '((@ (jd utils) current-operating-system))' -else - sudo -E guix system reconfigure \ - -e '((@ (jd utils) current-operating-system))' -fi; - diff --git a/files/.bin/update.sh b/files/.bin/update.sh deleted file mode 100755 index e6f9f8d..0000000 --- a/files/.bin/update.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -sudo emerge --sync -sudo emerge --ask --verbose --update --newuse --deep @world; diff --git a/files/.bin/whois-at-hsp b/files/.bin/whois-at-hsp deleted file mode 100755 index 982a90e..0000000 --- a/files/.bin/whois-at-hsp +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env -S guix shell guile guile-json -- guile --no-auto-compile -e main -s --*- scheme -*- -!# - -(use-modules (srfi srfi-1) - (ice-9 iconv) - (ice-9 receive) - (web client) - (json)) - -(define whois-at-hsp-endpoint "https://whois.at.hsp.sh/api/now") - -(define (http-get-serialize-json url) - (receive (response data) (http-request url) - (values (json-string->scm (bytevector->string data "UTF-8")) - response))) - -(define (whois-data->users whois-data) - (assoc-ref whois-data "users")) - -(define (whois-data->unknown-devices whois-data) - (assoc-ref whois-data "unknown_devices")) - -(define (whois-data->head-count whois-data) - (assoc-ref whois-data "headcount")) - -(define (whois-data->formated-users whois-data) - (let ((users (vector->list (whois-data->users whois-data)))) - (if (> (length users) 0) - (fold-right - (lambda (a b) (string-append a " " b)) - "" - users) - "No visible users!"))) - -(define (whois-data->summary whois-data) - (string-append - "Unknown devices: " - (number->string (whois-data->unknown-devices whois-data)) - "\nUsers: [" (number->string (whois-data->head-count whois-data)) "] " - (whois-data->formated-users whois-data))) - -(define (notify data) - (system* "notify-send" - "WHOIS AT HSP" - (whois-data->summary data))) - -(define (command-line-option? option args) - (> (length (or (member option args) - '())) - 0)) - -(define-syntax-rule (command-line-args-handle args default ((option ...) body ...) ...) - (let ((option? (lambda (o) (command-line-option? o args)))) - (cond ((or (option? option) ...) body ...) ... - (#t default)))) - -;; (command-line-args-handle '("a" "--help") -;; 0 -;; (("-h" "--help") "dupa")) - -(define (main args) - (let ((whois-data (http-get-serialize-json whois-at-hsp-endpoint))) - (command-line-args-handle args - (begin (display (whois-data->summary whois-data)) - (newline)) - (("-h" "--help") - (display (string-append "-h, --help Help message\n" - "-n, --notify Notification massage with whois information.\n" - "-u Get users\n" - "-H Get head count\n" - "-U Get unknown devices\n"))) - (("-n" "--notify") - (notify whois-data)) - (("-u") - (display (whois-data->formated-users whois-data)) - (newline)) - (("-H") - (display (whois-data->head-count whois-data)) - (newline)) - (("-U") - (display (whois-data->unknown-devices whois-data)) - (newline))))) - diff --git a/files/.config/alacritty/alacritty.toml b/files/.config/alacritty/alacritty.toml deleted file mode 100644 index 39fd4e9..0000000 --- a/files/.config/alacritty/alacritty.toml +++ /dev/null @@ -1,46 +0,0 @@ -[cursor] -style = "Block" -unfocused_hollow = true - -[font] -size = 14 - -[font.italic] -family = "Terminus" -style = "Light Italic" - -[font.normal] -family = "Terminus" -style = "Light" - -[font.offset] -x = 0 -y = 0 - -[window] -dynamic_padding = true -# opacity = 0.90 - -[colors.bright] -black = "0x002b36" -blue = "0x839496" -cyan = "0x93a1a1" -green = "0x586e75" -magenta = "0x6c71c4" -red = "0xcb4b16" -white = "0xfdf6e3" -yellow = "0x657b83" - -[colors.normal] -black = "0x073642" -blue = "0x268bd2" -cyan = "0x2aa198" -green = "0x859900" -magenta = "0xd33682" -red = "0xdc322f" -white = "0xeee8d5" -yellow = "0xb58900" - -[colors.primary] -background = "0x002b36" -foreground = "0x839496" diff --git a/files/.config/alacritty/alacritty.toml.old b/files/.config/alacritty/alacritty.toml.old deleted file mode 100644 index 031d81c..0000000 --- a/files/.config/alacritty/alacritty.toml.old +++ /dev/null @@ -1,23 +0,0 @@ -[cursor] -style = "Block" -unfocused_hollow = true - -[font] -size = 14 - -[font.italic] -family = "Terminus" -style = "Light Italic" - -[font.normal] -family = "Terminus" -style = "Light" - -[font.offset] -x = 0 -y = 0 - -[window] -dynamic_padding = true -opacity = 0.90 - diff --git a/files/.config/alacritty/alacritty.yaml b/files/.config/alacritty/alacritty.yaml deleted file mode 100644 index a4f2823..0000000 --- a/files/.config/alacritty/alacritty.yaml +++ /dev/null @@ -1,27 +0,0 @@ -colors: - # Default colors - primary: - background: '0x002b36' - foreground: '0x839496' - - # Normal colors - normal: - black: '0x073642' - red: '0xdc322f' - green: '0x859900' - yellow: '0xb58900' - blue: '0x268bd2' - magenta: '0xd33682' - cyan: '0x2aa198' - white: '0xeee8d5' - - # Bright colors - bright: - black: '0x002b36' - red: '0xcb4b16' - green: '0x586e75' - yellow: '0x657b83' - blue: '0x839496' - magenta: '0x6c71c4' - cyan: '0x93a1a1' - white: '0xfdf6e3' diff --git a/files/.config/common-lisp/source-registry.conf.d/50-user-lisp.conf b/files/.config/common-lisp/source-registry.conf.d/50-user-lisp.conf deleted file mode 100644 index 5ffc4fe..0000000 --- a/files/.config/common-lisp/source-registry.conf.d/50-user-lisp.conf +++ /dev/null @@ -1 +0,0 @@ -(:tree "/home/jakub/Projects/lisp/") \ No newline at end of file diff --git a/files/.config/distrobox/distrobox.conf b/files/.config/distrobox/distrobox.conf deleted file mode 100644 index 446223c..0000000 --- a/files/.config/distrobox/distrobox.conf +++ /dev/null @@ -1,10 +0,0 @@ -container_always_pull="1" -container_generate_entry=0 -container_manager="docker" -container_image_default="registry.opensuse.org/opensuse/toolbox:latest" -container_name_default="test-name-1" -container_user_custom_home="$HOME/.local/share/container-home-test" -# container_init_hook="~/.local/distrobox/a_custom_default_init_hook.sh" -# container_pre_init_hook="~/a_custom_default_pre_init_hook.sh" -non_interactive="1" -skip_workdir="0" \ No newline at end of file diff --git a/files/.config/dunst/dunstrc b/files/.config/dunst/dunstrc deleted file mode 100644 index b3b93b6..0000000 --- a/files/.config/dunst/dunstrc +++ /dev/null @@ -1,177 +0,0 @@ -[global] -frame_width = 2 -frame_color = "#39bae6" -font = sourcecodepro - -# Allow a small subset of html markup: -# bold -# italic -# strikethrough -# underline -# -# For a complete reference see -# . -# If markup is not allowed, those tags will be stripped out of the -# message. -markup = yes - -# The format of the message. Possible variables are: -# %a appname -# %s summary -# %b body -# %i iconname (including its path) -# %I iconname (without its path) -# %p progress value if set ([ 0%] to [100%]) or nothing -# Markup is allowed -format = "%s %p\n%b" - -# Sort messages by urgency. -sort = yes - -# Show how many messages are currently hidden (because of geometry). -indicate_hidden = yes - -# Alignment of message text. -# Possible values are "left", "center" and "right". -alignment = left - -# The frequency with wich text that is longer than the notification -# window allows bounces back and forth. -# This option conflicts with "word_wrap". -# Set to 0 to disable. -bounce_freq = 5 - - -# Show age of message if message is older than show_age_threshold -# seconds. -# Set to -1 to disable. -show_age_threshold = 60 - -# Split notifications into multiple lines if they don't fit into -# geometry. -word_wrap = no - -# Ignore newlines '\n' in notifications. -ignore_newline = no - - -# The geometry of the window: -# [{width}]x{height}[+/-{x}+/-{y}] -# The geometry of the message window. -# The height is measured in number of notifications everything else -# in pixels. If the width is omitted but the height is given -# ("-geometry x2"), the message window expands over the whole screen -# (dmenu-like). If width is 0, the window expands to the longest -# message displayed. A positive x is measured from the left, a -# negative from the right side of the screen. Y is measured from -# the top and down respectevly. -# The width can be negative. In this case the actual width is the -# screen width minus the width defined in within the geometry option. -geometry = "500x10-10+50" - -# Shrink window if it's smaller than the width. Will be ignored if -# width is 0. -shrink = yes - -# The transparency of the window. Range: [0; 100]. -# This option will only work if a compositing windowmanager is -# present (e.g. xcompmgr, compiz, etc.). -transparency = 15 - -# Don't remove messages, if the user is idle (no mouse or keyboard input) -# for longer than idle_threshold seconds. -# Set to 0 to disable. -# default 120 -idle_threshold = 120 - -# Which monitor should the notifications be displayed on. -monitor = 0 - -# Display notification on focused monitor. Possible modes are: -# mouse: follow mouse pointer -# keyboard: follow window with keyboard focus -# none: don't follow anything -# -# "keyboard" needs a windowmanager that exports the -# _NET_ACTIVE_WINDOW property. -# This should be the case for almost all modern windowmanagers. -# -# If this option is set to mouse or keyboard, the monitor option -# will be ignored. -follow = mouse - -# Should a notification popped up from history be sticky or timeout -# as if it would normally do. -sticky_history = yes - -# Maximum amount of notifications kept in history -history_length = 20 - -# Display indicators for URLs (U) and actions (A). -show_indicators = yes - -# The height of a single line. If the height is smaller than the -# font height, it will get raised to the font height. -# This adds empty space above and under the text. -line_height = 0 - -# Draw a line of "separator_height" pixel height between two -# notifications. -# Set to 0 to disable. -separator_height = 1 - -# Padding between text and separator. -# padding = 8 -padding = 8 - -# Horizontal padding. -horizontal_padding = 10 - -# Define a color for the separator. -# possible values are: -# * auto: dunst tries to find a color fitting to the background; -# * foreground: use the same color as the foreground; -# * frame: use the same color as the frame; -# * anything else will be interpreted as a X color. -separator_color = #263238 - -# Print a notification on startup. -# This is mainly for error detection, since dbus (re-)starts dunst -# automatically after a crash. -startup_notification = false - -# dmenu path. -dmenu = /usr/bin/dmenu -p dunst: - -# Browser for opening urls in context menu. -browser = palemoon - -# Align icons left/right/off -icon_position = left - -# Limit icons size. -max_icon_size=128 - -[urgency_low] -# IMPORTANT: colors have to be defined in quotation marks. -# Otherwise the "#" and following would be interpreted as a comment. -background "#0d1017" -foreground = "#888888" -timeout = 10 -# Icon for notifications with low urgency, uncomment to enable -#icon = /path/to/icon - -[urgency_normal] -background = "#1e2128" -foreground = "#ffffff" -timeout = 10 -# Icon for notifications with normal urgency, uncomment to enable -#icon = /path/to/icon - -[urgency_critical] -background = "#900000" -foreground = "#ffffff" -frame_color = "#ff0000" -timeout = 0 -# Icon for notifications with critical urgency, uncomment to enable -#icon = /path/to/icon diff --git a/files/.config/guix/.gitignore b/files/.config/guix/.gitignore deleted file mode 100644 index 1f4ddec..0000000 --- a/files/.config/guix/.gitignore +++ /dev/null @@ -1 +0,0 @@ -current \ No newline at end of file diff --git a/files/.config/guix/channels.scm b/files/.config/guix/channels.scm deleted file mode 100755 index cb25ece..0000000 --- a/files/.config/guix/channels.scm +++ /dev/null @@ -1,5 +0,0 @@ -(cons* (channel - (name 'jdlugosz) - (branch "main") - (url "https://github.com/jdlugosz963/dotfiles")) - %default-channels) diff --git a/files/.config/guix/shell-authorized-directories b/files/.config/guix/shell-authorized-directories deleted file mode 100644 index f6e0c84..0000000 --- a/files/.config/guix/shell-authorized-directories +++ /dev/null @@ -1,10 +0,0 @@ -/home/jakub/Projects/laco -/home/jakub/Projects/yasa -/home/jakub/Projects/trial -/home/jakub/Projects/matura-infa -/home/jakub/Projects/abaks-infra -/home/jakub/Projects/lispz -/home/jakub/Projects/zig-learning -/home/jakub/Projects/let-over-lambda -/home/jakub/Projects/rust -/home/jakub/temphome/embedded-rust diff --git a/files/.config/picom/picom.conf b/files/.config/picom/picom.conf deleted file mode 100644 index 0f3fe1d..0000000 --- a/files/.config/picom/picom.conf +++ /dev/null @@ -1,117 +0,0 @@ -# ____ _____ -# | _ \_ _| Derek Taylor (DistroTube) -# | | | || | http://www.youtube.com/c/DistroTube -# | |_| || | http://www.gitlab.com/dwt1/ -# |____/ |_| -# -# My config. Not much to see here; just some pretty standard stuff. - -# Enabled client-side shadows on windows. Note desktop windows -# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, -# unless explicitly requested using the wintypes option. -# -shadow = true; - -# The blur radius for shadows, in pixels. (defaults to 12) -shadow-radius = 8; - -# The opacity of shadows. (0.0 - 1.0, defaults to 0.75) -shadow-opacity = .6 - -# The left offset for shadows, in pixels. (defaults to -15) -shadow-offset-x = -3; - -# The top offset for shadows, in pixels. (defaults to -15) -shadow-offset-y = -3; - -# Specify a list of conditions of windows that should have no shadow. -# -# examples: -# shadow-exclude = "n:e:Notification"; -# -# shadow-exclude = [] -shadow-exclude = [ - "name = 'Notification'", - "class_g = 'Conky'", - "class_g ?= 'Notify-osd'", - "class_g = 'Cairo-clock'", - "class_g = 'slop'", - "class_g = 'Polybar'", - "_GTK_FRAME_EXTENTS@:c" -]; - - -# Fade windows in/out when opening/closing and when opacity changes, -# unless no-fading-openclose is used. -# fading = false -fading = true; - -# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) -# fade-in-step = 0.028 -fade-in-step = 0.3; - -# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) -# fade-out-step = 0.03 -fade-out-step = 0.3; - -# The time between steps in fade step, in milliseconds. (> 0, defaults to 10) -# fade-delta = 10 - -# Specify a list of conditions of windows that should not be faded. -# don't need this, we disable fading for all normal windows with wintypes: {} -fade-exclude = [ - "class_g = 'slop'" # maim -] - -# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0) -inactive-opacity = 0.9 -# inactive-opacity = 1.0; - -# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) -# frame-opacity = 1.0 -frame-opacity = 0.7; - -# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0) -# menu-opacity = 1.0 -# menu-opacity is depreciated use dropdown-menu and popup-menu instead. - -#If using these 2 below change their values in line 510 & 511 aswell -popup_menu = { opacity = 0.8; } -dropdown_menu = { opacity = 0.8; } - - -# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows. -# inactive-opacity-override = true -inactive-opacity-override = false; - -# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) -active-opacity = 1.0; - -# Dim inactive windows. (0.0 - 1.0, defaults to 0.0) -# inactive-dim = 0.0 - -# Specify a list of conditions of windows that should always be considered focused. -# focus-exclude = [] -focus-exclude = [ - "class_g = 'Cairo-clock'", - "class_g = 'Bar'", # lemonbar - "class_g = 'slop'" # maim -]; - -opacity-rule = [ - "100:class_g = 'XTerm'", - "100:class_g = 'URxvt'", - "100:class_g = 'firefox'", - "100:class_g = 'Thunderbird'" -]; - -wintypes: -{ - normal = { fade = false; shadow = true; } - tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; }; - dock = { shadow = false; } - dnd = { shadow = true; } - popup_menu = { opacity = 0.8; } - dropdown_menu = { opacity = 0.8; } -}; - diff --git a/files/.config/polybar/config.ini b/files/.config/polybar/config.ini deleted file mode 100644 index d43ee51..0000000 --- a/files/.config/polybar/config.ini +++ /dev/null @@ -1,122 +0,0 @@ -[settings] -screenchange-reload = true - -[colors] -background = ${xrdb:emacs.background} -foreground = ${xrdb:emacs.foreground} -primary = #7fd962 -disabled = #707880 - -[bar/example] -width = 100% -height = 18pt - -background = ${colors.background} -foreground = ${colors.foreground} - -line-size = 1.5pt - -padding-left = 0 -padding-right = 1 - -module-margin = 1 - -separator = | -separator-foreground = ${colors.disabled} - -font-0 = "Terminus:size=15" -font-1 = "FontAwesome" - -modules-left = xworkspaces -modules-right = memory cpu battery date - -cursor-click = pointer -cursor-scroll = ns-resize - -enable-ipc = true - -tray-position = right - -[module/xworkspaces] -type = internal/xworkspaces - -icon-0 = 1;0 -icon-1 = 2;1 -icon-2 = 3;2 -icon-3 = 4;3 -icon-4 = 5;4 -icon-5 = 6;5 -icon-6 = 7;6 -icon-7 = 8;7 -icon-8 = 9;8 -icon-9 = 10;9 - -label-active = %icon% -label-active-background = ${colors.background-alt} -label-active-underline= ${colors.primary} -label-active-padding = 1 - -label-occupied = %icon% -label-occupied-padding = 1 - -label-urgent = %icon% -label-urgent-background = ${colors.alert} -label-urgent-padding = 1 - -label-empty = %icon% -label-empty-foreground = ${colors.disabled} -label-empty-padding = 1 - -[module/battery] -type = internal/battery -battery = BAT0 -adapter = ADP1 - -format-charging = -format-discharging = -format-low = -format-full = - -label-charging = %percentage%% -label-discharging = %percentage%% -label-low = LOW %percentage%% -label-full = FULL %percentage%% - -ramp-capacity-0 =  -ramp-capacity-1 =  -ramp-capacity-2 =  -ramp-capacity-3 =  -ramp-capacity-4 =  -ramp-capacity-foreground = ${colors.primary} - -animation-charging-0 =  -animation-charging-1 =  -animation-charging-2 =  -animation-charging-3 =  -animation-charging-4 =  -animation-charging-foreground = ${colors.primary} -animation-charging-framerate = 750 - -[module/memory] -type = internal/memory -interval = 2 -format-prefix = "RAM " -format-prefix-foreground = ${colors.primary} -label = %percentage_used:2%% - -[module/cpu] -type = internal/cpu -interval = 2 -format-prefix = "CPU " -format-prefix-foreground = ${colors.primary} -label = %percentage:2%% - -[module/date] -type = internal/date -interval = 1 - -date = %H:%M -date-alt = %Y-%m-%d %H:%M:%S - -label = %date% -label-foreground = ${colors.primary} diff --git a/files/.config/qtile/autorc b/files/.config/qtile/autorc deleted file mode 100755 index c54f683..0000000 --- a/files/.config/qtile/autorc +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -function monitor_settings() { - sleep .5 - monitor_status=$(xrandr | grep "HDMI-1-4 connected" | wc -l) - - if [ $monitor_status == 1 ]; - then - # xrandr --auto - # xrandr --output eDP-1 --off - xrandr --output eDP-1-1 --auto --output HDMI-0 --auto --left-of eDP-1-1 - fi -} - -function caps_to_esc(){ xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'; } - -function start() { - killall $1 - sleep .5 - $($1 $2) & -} - -# monitor_settings -caps_to_esc - -start nitrogen "--restore" -start picom "" -start spotifyd "" -start rclone "mount remote:/sync /home/jakub/Sync" -start emacs "--daemon" -xinput set-prop 11 344 1 diff --git a/files/.config/qtile/config.py b/files/.config/qtile/config.py deleted file mode 100644 index 9106731..0000000 --- a/files/.config/qtile/config.py +++ /dev/null @@ -1,232 +0,0 @@ -import os -import subprocess - -from typing import List - -from libqtile import bar, layout, widget -from libqtile.config import Click, Drag, Group, Key, Match, Screen, KeyChord -from libqtile import extension -from libqtile.lazy import lazy -from libqtile.utils import guess_terminal -from libqtile import hook - -MOD = "mod4" - -TERMINAL = guess_terminal() - -DMENU_FLAGS = '-l 16 -p run -c -i' - -BAR = '#282a36' -LIGHT_BAR = '#393b37' -YELLOW = '#f1fa8c' -RED = '#ff5555' -LIGHT_RED = '#ff9999' -GREEN = '#50fa7b' -CYAN = '#8be9fd' -LIGHT_CYAN = '#abfbff' - -@hook.subscribe.startup_once -def autostart(): - home = os.path.expanduser('~/.config/qtile/autorc') - subprocess.run([home]) - -keys = [ - Key([MOD], "h", lazy.layout.left(), desc="Move focus to left"), - Key([MOD], "l", lazy.layout.right(), desc="Move focus to right"), - Key([MOD], "j", lazy.layout.down(), desc="Move focus down"), - Key([MOD], "k", lazy.layout.up(), desc="Move focus up"), - Key([MOD], "s", lazy.next_screen() ), - Key([MOD], "space", lazy.window.toggle_floating(), - desc="Move window focus to other window"), - - Key([MOD, "shift"], "h", lazy.layout.shuffle_left(), - desc="Move window to the left"), - Key([MOD, "shift"], "l", lazy.layout.shuffle_right(), - desc="Move window to the right"), - Key([MOD, "shift"], "j", lazy.layout.shuffle_down(), - desc="Move window down"), - Key([MOD, "shift"], "k", lazy.layout.shuffle_up(), desc="Move window up"), - - Key([MOD, "control"], "h", lazy.layout.grow_left(), - desc="Grow window to the left"), - Key([MOD, "control"], "l", lazy.layout.grow_right(), - desc="Grow window to the right"), - Key([MOD, "control"], "j", lazy.layout.grow_down(), - desc="Grow window down"), - Key([MOD, "control"], "k", lazy.layout.grow_up(), desc="Grow window up"), - Key([MOD], "n", lazy.layout.normalize(), desc="Reset all window sizes"), - - Key([MOD, "shift"], "Return", lazy.layout.toggle_split(), - desc="Toggle between split and unsplit sides of stack"), - Key([MOD], "Return", lazy.spawn(TERMINAL), desc="Launch terminal"), - - Key([MOD], "Tab", lazy.next_layout(), desc="Toggle between layouts"), - Key([MOD], "c", lazy.window.kill(), desc="Kill focused window"), - - Key([MOD, "control"], "r", lazy.restart(), desc="Restart Qtile"), - Key([MOD, "control"], "q", lazy.shutdown(), desc="Shutdown Qtile"), - - Key([MOD], "F12", os.system("xbacklight -inc 10"), desc="Inc backlight"), - Key([MOD], "F11", os.system("xbacklight -dec 10"), desc="Dec backlight"), - - Key([MOD], "r", lazy.spawncmd(), - desc="Spawn a command using a prompt widget"), - - KeyChord([MOD], "p", [ - Key([], "p", lazy.spawn(f"dmenu_run {DMENU_FLAGS}"), desc="Spawn dmenu run"), - Key([], "n", lazy.spawn(f"networkmanager_dmenu {DMENU_FLAGS}"), desc="Spawn dmenu for network manager"), - ]), - - Key([MOD, "mod1"], "q", lazy.spawn("qutebrowser"), desc="Spawn qutebrowser"), - Key([MOD, "mod1"], "b", lazy.spawn("brave"), desc="Spawn brave"), - Key([MOD, "mod1"], "f", lazy.spawn("firefox"), desc="Spawn firefox"), - - KeyChord([MOD], "e", [ - Key([], "e", lazy.spawn("emacsclient -c -a 'emacs'"), desc="Spawn Emacsclient"), - Key([], "d", lazy.spawn("emacsclient -c -a 'emacs' --eval '(dired nil)'"), desc='Emacsclient Dired'), - Key([], "m", lazy.spawn("emacsclient -c -a 'emacs' --eval '(emms-browser)'"), desc='Emacsclient Dired'), - ]), - - Key([MOD, "mod1"], "s", lazy.spawn("alacritty -e spt"), desc="Spawn spt (spotify clent)"), - Key([MOD, "mod1"], "l", lazy.spawn("slock"), desc="lock desktop"), - Key([MOD, "mod1"], "r", lazy.spawn("alacritty -e ranger"), desc="Spawn ranger (file manager)"), - Key([MOD, "mod1"], "p", lazy.spawn("alacritty -e pulsemixer"), desc="Spawn pulsemixer"), -] - -groups_names = [ - "dev", - "www", - "music", - "virt", - "sys", - "other" -] - -groups = [Group(i) for i in groups_names] -for i, group in enumerate(groups): - keys.extend([ - Key([MOD], str(i+1), lazy.group[group.name].toscreen(), - desc="Switch to group {}".format(group.name)), - - Key([MOD, "shift"], str(i+1), lazy.window.togroup(group.name, switch_group=True), - desc="Switch to & move focused window to group {}".format(group.name)), - ]) - -mouse = [ - Drag([MOD], "Button1", lazy.window.set_position_floating(), - start=lazy.window.get_position()), - Drag([MOD], "Button3", lazy.window.set_size_floating(), - start=lazy.window.get_size()), - Click([MOD], "Button2", lazy.window.bring_to_front()) -] - -layout_cfg = { - 'border_width': 2, - 'border_normal': "#bb8888", - 'border_focus': "884444", - 'margin': 8 -} - -layouts = [ - # layout.Columns(**layout_cfg), - # layout.Max(), - layout.Stack(num_stacks=1, **layout_cfg), - # layout.Bsp(), - # layout.Matrix(), - layout.MonadTall(**layout_cfg), - # layout.MonadWide(), - # layout.RatioTile(), - # layout.Tile(), - # layout.TreeTab(), - # layout.VerticalTile(), - # layout.Zoomy(), -] - -widget_defaults = dict( - font='sans', - fontsize=12, - padding=6, -) - -transparent_sep = { - 'foreground': BAR, - 'margin': 2 -} - -soft_sep = { - 'foreground': '44475a', - 'padding': 2, - 'margin': 4 -} - -screens = [ - Screen( - top=bar.Bar( - [ - widget.Sep(**transparent_sep), - widget.Image(filename="~/.config/qtile/python.png", margin=4), - widget.Sep(**transparent_sep), - widget.CurrentLayout(), - widget.Sep(**transparent_sep), - widget.GroupBox( - margin_y = 3, - margin_x = 0, - padding_y = 5, - padding_x = 3, - borderwidth = 3, - rounded = False, - highlight_color = LIGHT_BAR, - highlight_method = "line", - this_current_screen_border = CYAN, - this_screen_border = CYAN, - other_current_screen_border = LIGHT_BAR, - other_screen_border = LIGHT_BAR, - ), - widget.Prompt(), - widget.Sep(**transparent_sep), - widget.WindowName(), - widget.Net(format="🌐 ↓{down} ↑{up}", foreground=YELLOW), - widget.Sep(**soft_sep), - widget.CPU(format='💻 {load_percent}%', fontsize=12, foreground=RED), - widget.Sep(**soft_sep), - widget.Battery(format='🔋 {char} {percent:2.0%} {hour:d}:{min:02d} {watt:.2f} W', foreground=GREEN), - widget.Sep(**soft_sep), - widget.Clock(format='📅 %B %-d, %H:%M', foreground=CYAN), - widget.Sep(**soft_sep), - widget.CurrentScreen(), - widget.Sep(**soft_sep), - widget.Systray() - ], - 24, - margin=8, - background=BAR, - border_color=CYAN, - border_width=1 - ), - ), -] - -floating_layout = layout.Floating(float_rules=[ - # Run the utility of `xprop` to see the wm class and name of an X client. - *layout.Floating.default_float_rules, - Match(wm_class='confirmreset'), # gitk - Match(wm_class='makebranch'), # gitk - Match(wm_class='maketag'), # gitk - Match(wm_class='ssh-askpass'), # ssh-askpass - Match(title='branchdialog'), # gitk - Match(title='pinentry'), # GPG key password entry -]) - -dgroups_key_binder = None -dgroups_app_rules = [] - -follow_mouse_focus = True -bring_front_click = False -cursor_warp = False -auto_fullscreen = True -focus_on_window_activation = "smart" -reconfigure_screens = True - -auto_minimize = True - -wmname = "LG3D" diff --git a/files/.config/qtile/mdt_shell b/files/.config/qtile/mdt_shell deleted file mode 100755 index 90fa6f3..0000000 --- a/files/.config/qtile/mdt_shell +++ /dev/null @@ -1 +0,0 @@ -TERM=xterm-256color /home/jakub/.local/bin/mdt shell diff --git a/files/.config/qtile/photos/desktop.png b/files/.config/qtile/photos/desktop.png deleted file mode 100644 index 8fca190..0000000 Binary files a/files/.config/qtile/photos/desktop.png and /dev/null differ diff --git a/files/.config/qtile/python.png b/files/.config/qtile/python.png deleted file mode 100644 index 9a4b1ed..0000000 Binary files a/files/.config/qtile/python.png and /dev/null differ diff --git a/files/.config/qtile/readme.org b/files/.config/qtile/readme.org deleted file mode 100644 index 235dd47..0000000 --- a/files/.config/qtile/readme.org +++ /dev/null @@ -1,5 +0,0 @@ -#+title: Config - -* Qtile conifg -- My personal qtile config ;) - [[./photos/desktop.png]] diff --git a/files/.config/sway/config b/files/.config/sway/config deleted file mode 100644 index cf587fc..0000000 --- a/files/.config/sway/config +++ /dev/null @@ -1,195 +0,0 @@ -set $mod Mod4 - -set $left h -set $down j -set $up k -set $right l - -set $term alacritty -set $emacs emacsclient -c -set $menu fuzzel -r0 -b 282828f2 -C 458588f2 -B 3 -s 458588f2 -S 282828FF --font "Terminus:size=12" -p "run: " - -set $laptop-display eDP-1 -set $generic-display HDMI-A-1 -set $primary-home-display 'Iiyama North America PLE2407HDSD 0x01010101' -set $secondary-home-display 'Dell Inc. DELL E190S M8VPV186CELI' - -set $primary-display-layout 'Samsung Electric Company C34H89x HTJM200007' $primary-home-display $generic-display $laptop-display -set $secondary-display-layout $secondary-home-display $laptop-display - -# output * bg SPOILER_33.png fill -output * bg #002b36 solid_color - -output $laptop-display resolution 1920x1080 position 1920,0 -output $generic-display resolution 1920x1080 position 0,0 -output $primary-home-display resolution 1920x1080 position 0,0 -output $secondary-home-display resolution 1280x1024 position 1920,0 -set $opacity 0.9 - -client.focused #002b36 #586e75 #eee8d5 #268bd2 -client.focused_inactive #002b36 #073642 #93a1a1 #268bd2 -client.unfocused #002b36 #073642 #93a1a1 #268bd2 -client.urgent #002b36 #dc322f #fdf6e3 #002b36 - -input type:keyboard { - xkb_layout pl,us -} - -input type:touchpad { - tap enabled - middle_emulation enabled -} - -bindsym $mod+Shift+s output $laptop-display toggle - -set $swaylock 'swaylock -f -c 000000 --font "Terminus"' -exec swayidle -w \ - timeout 280 $swaylock \ - timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ - before-sleep $swaylock - -# inhibit_idle fullscreen - -bindsym $mod+Escape exec $swaylock - -bindsym XF86MonBrightnessUp exec brightnessctl set 5%+ -bindsym XF86MonBrightnessDown exec brightnessctl set 5%- - -bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle -bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% -bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% - -bindsym XF86AudioNext exec playerctl next -bindsym XF86AudioPrev exec playerctl previous -bindsym XF86AudioPlay exec playerctl play-pause -bindsym XF86AudioPause exec playerctl pause - -bindsym print exec grimshot --notify copy area -bindsym $mod+print exec grimshot --notify copy output -bindsym $mod+Ctrl+print grimshot save area - | swappy -f - - -bindsym $mod+Return exec $term - -bindsym $mod+Shift+q kill - -floating_modifier $mod normal - -bindsym $mod+Shift+c reload -bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' - -bindsym $mod+$left focus left -bindsym $mod+$down focus down -bindsym $mod+$up focus up -bindsym $mod+$right focus right - -bindsym $mod+Shift+$left move left -bindsym $mod+Shift+$down move down -bindsym $mod+Shift+$up move up -bindsym $mod+Shift+$right move right - -workspace 1 output $primary-display-layout -workspace 2 output $primary-display-layout -workspace 3 output $secondary-display-layout -workspace 4 output $secondary-display-layout -workspace 9 output $primary-display-layout -workspace 10 output $secondary-display-layout - -bindsym $mod+1 workspace number 1 -bindsym $mod+2 workspace number 2 -bindsym $mod+3 workspace number 3 -bindsym $mod+4 workspace number 4 -bindsym $mod+5 workspace number 5 -bindsym $mod+6 workspace number 6 -bindsym $mod+7 workspace number 7 -bindsym $mod+8 workspace number 8 -bindsym $mod+9 workspace number 9 -bindsym $mod+0 workspace number 10 - -bindsym $mod+Shift+1 move container to workspace number 1 -bindsym $mod+Shift+2 move container to workspace number 2 -bindsym $mod+Shift+3 move container to workspace number 3 -bindsym $mod+Shift+4 move container to workspace number 4 -bindsym $mod+Shift+5 move container to workspace number 5 -bindsym $mod+Shift+6 move container to workspace number 6 -bindsym $mod+Shift+7 move container to workspace number 7 -bindsym $mod+Shift+8 move container to workspace number 8 -bindsym $mod+Shift+9 move container to workspace number 9 -bindsym $mod+Shift+0 move container to workspace number 10 - -assign [app_id="(firefox-default|Firefox|qutebrowser|Chromium-browser)"] 2 -assign [instance="(chromium-browser)"] 2 -assign [instance="(spotify)"] 3 -assign [app_id=".blueman-manager-real"] 3 -assign [app_id="pavucontrol"] 3 -assign [app_id="(org.telegram.desktop)"] 4 -assign [app_id="vesktop"] 4 -assign [app_id="com.ktechpit.whatsie"] 4 -assign [instance="(discord)"] 4 - -# for_window [app_id="vesktop"] opacity $opacity - -bindsym $mod+b splith -bindsym $mod+v splitv - -bindsym $mod+s layout stacking -bindsym $mod+w layout tabbed -bindsym $mod+e layout toggle split - -bindsym $mod+f fullscreen -bindsym $mod+Shift+space floating toggle -bindsym $mod+space focus mode_toggle -bindsym $mod+a focus parent - -bindsym $mod+Shift+minus move scratchpad -bindsym $mod+minus scratchpad show - -mode "resize" { - bindsym $left resize shrink width 10px - bindsym $down resize grow height 10px - bindsym $up resize shrink height 10px - bindsym $right resize grow width 10px - - bindsym Return mode "default" - bindsym Control+g mode "default" - bindsym Escape mode "default" -} -bindsym $mod+r mode "resize" - -set $default swaymsg mode default -mode "menu" { - bindsym --no-repeat e exec '$default; $emacs;' - bindsym --no-repeat w exec "$default; whois-at-hsp -n" - - bindsym Return mode "default" - bindsym Control+g mode "default" - bindsym Escape mode "default" - -} -bindsym $mod+o mode "menu" - - -workspace_layout tabbed - -# default_border normal 3 -# gaps outer 0 -# gaps inner 6 -# corner_radius 4 -# blur_xray disable -# blur enable -# layer_effects "waybar" blur enable - -font Terminus (TTF) 12 -bindsym $mod+p exec $menu - - -# Taken from dawivil dotfiles. -exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway - -# exec udiskie -t -exec mako --font "Terminus (TTF)" --outer-margin=5 --margin=3 --border-size=3 --default-timeout=7000 --background="#282828e0" - -exec nm-applet --indicator -exec blueman-applet -exec waybar -exec udiskie -t -exec wlsunset -l 51.919438 -L 19.145136 diff --git a/files/.config/waybar/config b/files/.config/waybar/config deleted file mode 100644 index 5ebee30..0000000 --- a/files/.config/waybar/config +++ /dev/null @@ -1,159 +0,0 @@ -{ - "layer": "top", - "position": "top", - - "modules-left": [ - "sway/workspaces", - "sway/mode" - ], - - "modules-right": [ -// "custom/whois", - "pulseaudio", - "network", - "memory", - "cpu", - "temperature", - "battery", - "sway/language", - "clock#date", - "clock#time", - "idle_inhibitor", - "tray" - ], - - // Modules - "idle_inhibitor": { - "format": "{icon}", - "format-icons": { - "activated": "", - "deactivated": "" - } - }, - - "battery": { - "interval": 10, - "states": { - "warning": 30, - "critical": 15 - }, - "format-time": "{H}:{M:02}", - "format": "{icon} {capacity}% ({time})", - "format-charging": " {capacity}% ({time})", - "format-charging-full": " {capacity}%", - "format-full": "{icon} {capacity}%", - "format-alt": "{icon} {power}W", - "format-icons": [ - "", - "", - "", - "", - "" - ], - "tooltip": false - }, - - "clock#time": { - "interval": 10, - "format": "{:%H:%M}", - "tooltip": false - }, - - "clock#date": { - "interval": 20, - "format": " {:%e %b %Y}", - "tooltip": false - //"tooltip-format": "{:%e %B %Y}" - }, - - "cpu": { - "interval": 5, - "tooltip": false, - "format": " {usage}%", - "format-alt": " {load}", - "states": { - "warning": 70, - "critical": 90 - } - }, - - "sway/language": { - "format": " {}", - "min-length": 5, - "on-click": "swaymsg 'input * xkb_switch_layout next'", - "tooltip": false - }, - - "memory": { - "interval": 5, - "format": " {used:0.1f}G/{total:0.1f}G", - "states": { - "warning": 70, - "critical": 90 - }, - "tooltip": false - }, - - "network": { - "interval": 5, - "format-wifi": " {essid} ({signalStrength}%)", - "format-ethernet": " {ifname}", - "format-disconnected": "No connection", - "format-alt": " {ipaddr}/{cidr}", - "tooltip": false - }, - - "sway/mode": { - "format": "{}", - "tooltip": false - }, - - "sway/window": { - "format": "{}", - "max-length": 30, - "tooltip": false - }, - - "sway/workspaces": { - "disable-scroll-wraparound": true, - "smooth-scrolling-threshold": 4, - "enable-bar-scroll": true, - "format": "{name}" - }, - - "pulseaudio": { - "format": "{icon} {volume}%", - "format-bluetooth": "{icon} {volume}%", - "format-muted": "", - "format-icons": { - "headphone": "", - "hands-free": "", - "headset": "", - "phone": "", - "portable": "", - "car": "", - "default": ["", ""] - }, - "scroll-step": 1, - "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle", - "tooltip": false - }, - - "temperature": { - "critical-threshold": 90, - "interval": 5, - "format": "{icon} {temperatureC}°", - "format-icons": [ - "", - "", - "", - "", - "" - ], - "tooltip": false - }, - - "tray": { - "icon-size": 18, - } -} diff --git a/files/.config/waybar/style.css b/files/.config/waybar/style.css deleted file mode 100644 index 53d732b..0000000 --- a/files/.config/waybar/style.css +++ /dev/null @@ -1,205 +0,0 @@ -/* Keyframes */ - -@keyframes blink-critical { - to { - /*color: @white;*/ - background-color: @critical; - } -} - - -/* Styles */ - -/* Colors (gruvbox) */ -@define-color black #073642; -@define-color red #dc322f; -@define-color green #859900; -@define-color yellow #b58900; -@define-color blue #268bd2; -@define-color purple #d33682; -@define-color aqua #00afaf; -@define-color gray #1c1c1c; -@define-color brgray #928374; -@define-color brred #cb4b16; -@define-color brgreen #586e75; -@define-color bryellow #657b83; -@define-color brblue #839496; -@define-color brpurple #6c71c4; -@define-color braqua #93a1a1; -@define-color white #eee8d5; -@define-color bg1 #073642; -@define-color bg2 #002b36; - - -@define-color warning @bryellow; -@define-color critical @red; -@define-color mode @bg2; -@define-color unfocused @bg2; -@define-color focused @blue; -@define-color inactive @purple; -@define-color sound @green; -@define-color network @yellow; -@define-color memory @aqua; -@define-color cpu @blue; -@define-color temp @brpurple; -@define-color layout @green; -@define-color battery @yellow; -@define-color date @aqua; -@define-color time @bg2; -@define-color tray @bg2; - -/* Reset all styles */ -* { - border: none; - border-radius: 0; - min-height: 0; - margin: 0; - padding: 0; - box-shadow: none; - text-shadow: none; - icon-shadow: none; -} - -/* The whole bar */ -#waybar { - background: @bg2; - color: @white; - font-family: "Terminus (TTF)", FontAwesome; - font-size: 12pt; -} - -/* Each module */ -#battery, -#clock, -#cpu, -#language, -#memory, -#mode, -#network, -#pulseaudio, -#temperature, -#tray, -#backlight, -#idle_inhibitor, -#disk, -#user, -#mpris { - padding-left: 8pt; - padding-right: 8pt; -} - -/* Each critical module */ -#memory.critical, -#cpu.critical, -#temperature.critical, -#battery.critical.discharging { - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; - animation-name: blink-critical; - animation-duration: 1s; -} - -/* Each warning */ -#network.disconnected, -#memory.warning, -#cpu.warning, -#temperature.warning, -#battery.warning.discharging { - color: @warning; -} - -/* And now modules themselves in their respective order */ - -/* Current sway mode (resize etc) */ -#mode { - color: @white; - background: @mode; -} - -/* Workspaces stuff */ -#workspaces button { - /*font-weight: bold;*/ - padding-left: 2pt; - padding-right: 2pt; - color: @white; - background: @unfocused; -} - -/* Inactive (on unfocused output) */ -#workspaces button.visible { - color: @white; - background: @inactive; -} - -/* Active (on focused output) */ -#workspaces button.focused { - color: @black; - background: @focused; -} - -/* Contains an urgent window */ -#workspaces button.urgent { - color: @black; - background: @warning; -} - -/* Style when cursor is on the button */ -#workspaces button:hover { - background: @black; - color: @white; -} - -#window { - margin-right: 35pt; - margin-left: 35pt; -} - -#pulseaudio { - background: @sound; - color: @black; -} - -#network { - background: @network; - color: @white; -} - -#memory { - background: @memory; - color: @black; -} - -#cpu { - background: @cpu; - color: @white; -} - -#temperature { - background: @temp; - color: @black; -} - -#language { - background: @layout; - color: @black; -} - -#battery { - background: @battery; - color: @white; -} - -#tray { - background: @tray; -} - -#clock.date { - background: @date; - color: @black; -} - -#clock.time { - background: @time; - color: @white; -} diff --git a/files/.emacs.d/.gitignore b/files/.emacs.d/.gitignore deleted file mode 100644 index 10f87ad..0000000 --- a/files/.emacs.d/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -* -!init.el -!jd -!jd/* -!.gitignore \ No newline at end of file diff --git a/files/.emacs.d/init.el b/files/.emacs.d/init.el deleted file mode 100755 index 090592f..0000000 --- a/files/.emacs.d/init.el +++ /dev/null @@ -1,146 +0,0 @@ -;;; Dotfiles --- Jakub Dlugosz emacs config -;;; Commentary: - -;;; Code: - -;; Minimize garbage collection during startup -(setq gc-cons-threshold most-positive-fixnum) - -;; Lower threshold back to 8 MiB (default is 800kB) -(add-hook 'emacs-startup-hook - (lambda () - (setq gc-cons-threshold (expt 2 23)))) - -(defvar jd/manifest-list - nil - "List that contain Emacs packages for GNU/Guix." ) - -(defvar jd/exwm-p - (or (not (null (getenv "JD_EXWM"))) - (and (seq-contains command-line-args "exwm" #'string-match) - t)) - "Is non-nil when Emacs is run as a window manager.") - -(defvar jd/guix-p - (and (eq system-type 'gnu/linux) - (file-exists-p "/etc/os-release") - (with-temp-buffer - (insert-file-contents "/etc/os-release") - (search-forward "ID=guix" nil t)) - t) - "Is non-nil when Emacs packages are installed by GNU/Guix package manager.") - -(defun jd/add-package-to-manifest (guix-package-name) - "Add GUIX-PACKAGE-NAME to jd/manifest-list." - (unless (member guix-package-name jd/manifest-list) - (setq jd/manifest-list - (cons guix-package-name jd/manifest-list)))) - -(add-to-list 'load-path (concat user-emacs-directory "/jd")) - -(defun jd/display-startup-time () - (message "Emacs loaded in %s with %d garbage collections." - (format "%.2f seconds" - (float-time - (time-subtract after-init-time before-init-time))) - gcs-done)) - -(defun jd-emacs/startup () - "This procedure will run after Emacs startup." - (electric-pair-mode 1) - (global-company-mode 1) - (jd/display-startup-time)) - -(add-hook 'emacs-startup-hook #'jd-emacs/startup) - -(setq user-full-name "Jakub Dlugosz" - user-mail-address "jdlugosz963@gmail.com") - -(setq backup-directory-alist '(("." . "~/.cache/emacs/backup")) - backup-by-copying t - version-control t - delete-old-versions t - kept-new-versions 20 - kept-old-versions 5 - custom-file (concat user-emacs-directory - "custom.el")) - -;; (setq user-emacs-directory "~/.cache/emacs") - -(require 'package) -(setq package-archives '(("melpa" . "https://melpa.org/packages/") - ("org" . "https://orgmode.org/elpa/") - ("gnu-devel" . "https://elpa.gnu.org/devel/") - ("elpa" . "https://elpa.gnu.org/packages/"))) -(package-initialize) - -(unless package-archive-contents - (package-refresh-contents)) - -(jd/add-package-to-manifest "emacs-use-package") -(unless jd/guix-p - (unless (package-installed-p 'use-package) - (package-install 'use-package))) - -(require 'use-package) - -(setq use-package-always-ensure (not jd/guix-p)) - -(defun jd/generate-manifest () - "Generate GNU/Guix Emacs manifest to temp-buffer." - (interactive) - (with-output-to-temp-buffer "*guix-emacs-packages-manifest.scm*" - (princ (concat ";; This file is auto-generated by Emacs " - "function: jd/manifest-generate-to-file \n")) - (princ `(specifications->manifest - '(,@(mapcar #'(lambda (guix-package-name) - (concat "\"" - guix-package-name - "\"\n")) - jd/manifest-list)))))) - -(defun use-package-normalize/:guix-package (name keyword args) - (use-package-as-one (symbol-name keyword) args - #'(lambda (_label arg) - (cond - ((consp arg) arg) - ((stringp arg) (list arg)) - ((use-package-non-nil-symbolp arg) (symbol-name arg)) - (t - (use-package-error - ":pin wants an archive name (a string)")))))) - -(defun use-package-handler/:guix-package - (name _keyword args rest state) - (let ((body (use-package-process-keywords name rest state))) - (use-package-concat - (when (consp args) - (mapcar #'(lambda (arg) - `(jd/add-package-to-manifest ,arg)) - args)) - body))) - -(add-to-list 'use-package-keywords ':guix-package) - -(jd/add-package-to-manifest "emacs") -(jd/add-package-to-manifest "emacs-guix") - -(require 'jd-keys) -(require 'jd-ui) -(require 'jd-org) -(require 'jd-dev) -(require 'jd-apps) -(require 'jd-custom) -(require 'jd-mu4e) -(require 'jd-misc) -(require 'jd-sway) - -(when jd/exwm-p - (require 'jd-exwm)) - -;; (setq gc-cons-threshold (* 2 1000 1000)) - -;;; init.el ends here -(put 'upcase-region 'disabled nil) -(put 'downcase-region 'disabled nil) -(put 'set-goal-column 'disabled nil) diff --git a/files/.emacs.d/jd/jd-apps.el b/files/.emacs.d/jd/jd-apps.el deleted file mode 100755 index f06430b..0000000 --- a/files/.emacs.d/jd/jd-apps.el +++ /dev/null @@ -1,49 +0,0 @@ -;;; Dotfiles --- Jakub Dlugosz emacs config -;;; Commentary: - -;;; Code: - -(use-package vterm - :guix-package "emacs-vterm" - :init - (add-to-list 'project-switch-commands '(project-vterm "Vterm") t) - (add-to-list 'project-kill-buffer-conditions - '(major-mode . vterm-mode)) - (setq vterm-copy-exclude-prompt t) - :config - (setq vterm-buffer-name "vterm") - ;; (evil-set-initial-state 'vterm-mode 'emacs) - (setq vterm-tramp-shells - (append '(("ssh" "/bin/bash")) vterm-tramp-shells)) - - ) - -(use-package all-the-icons-dired - :guix-package "emacs-all-the-icons-dired" - :hook (dired-mode . all-the-icons-dired-mode)) - -(use-package dired - :ensure nil - :commands (dired dired-jump) - :custom ((dired-listing-switches "-agho --group-directories-first")) - :config - (setq dired-kill-when-opening-new-dired-buffer t)) - -(use-package pdf-tools - :guix-package - "emacs-pdf-tools") - -(use-package password-store - :guix-package "emacs-password-store" - :bind - ("C-c P p" . password-store-copy) - ("C-c P i" . password-store-insert) - ("C-c P g" . password-store-generate)) - -(use-package shell - :bind - ("C-c C-" . shell)) - -(provide 'jd-apps) - -;;; jd-apps.el ends here diff --git a/files/.emacs.d/jd/jd-custom.el b/files/.emacs.d/jd/jd-custom.el deleted file mode 100755 index a634baa..0000000 --- a/files/.emacs.d/jd/jd-custom.el +++ /dev/null @@ -1,33 +0,0 @@ -;;; Dotfiles --- Jakub Dlugosz emacs config -;;; Commentary: - -;;; Code: - -(setq erc-nick "bobbma" - erc-user-full-name "Jakub Dlugosz" - erc-notify-list '("akuleszaa")) - -(defun hipis-znc () - (interactive) - (erc :server "195.74.91.18" - :port "6697")) - - -;; Repair load paths when tramp try to connect to guix instances -(require 'tramp) - -(connection-local-set-profile-variables - 'guix-system - '((tramp-remote-path . (tramp-own-remote-path)))) - -(connection-local-set-profiles - '(:application tramp :protocol "sudo" :machine "localhost") - 'guix-system) - -(connection-local-set-profiles - '(:application tramp :protocol "ssh" :machine "jdlugosz.com") - 'guix-system) - -(provide 'jd-custom) - -;;; jd-custom.el ends here diff --git a/files/.emacs.d/jd/jd-dev.el b/files/.emacs.d/jd/jd-dev.el deleted file mode 100755 index 12cd21b..0000000 --- a/files/.emacs.d/jd/jd-dev.el +++ /dev/null @@ -1,177 +0,0 @@ -;;; Dotfiles --- Jakub Dlugosz emacs config -;;; Commentary: - -;;; Code: - -;; (setq c-default-style "linux" -;; c-basic-offset 8 -;; gdb-many-windows t) - -(use-package lsp-mode - :guix-package "emacs-lsp-mode" - :diminish t - :commands (lsp lsp-deferred) - :init - (setq lsp-headerline-breadcrumb-enable nil) - (setq lsp-diagnostics-provider :none) - (setq lsp-modeline-diagnostics-enable nil) - (setq lsp-keymap-prefix "C-c l") - :config - (lsp-enable-which-key-integration t) - - (global-set-key (kbd "C-x ]") - #'(lambda () - (interactive) - (forward-page) - (recenter-top-bottom 0))) - - (global-set-key (kbd "C-x [") - #'(lambda () - (interactive) - (backward-page) - (recenter-top-bottom 0))) - - (define-key c-mode-map - (kbd "C-c C-c") - #'(lambda () - (interactive) - (compile compile-command))) - - (define-key c-mode-map - (kbd "C-c M-c") - 'compile)) - -(use-package lsp-ivy - :guix-package "emacs-lsp-ivy" - :after lsp) - - -(use-package paredit - :guix-package "emacs-paredit") - -(defun jd/lisp-mode-setup () - (rainbow-delimiters-mode) - (paredit-mode)) - -(add-hook 'emacs-startup-hook - (lambda () - (add-hook 'scheme-mode-hook 'jd/lisp-mode-setup) - (add-hook 'emacs-lisp-mode-hook 'jd/lisp-mode-setup) - (add-hook 'clojure-mode-hook 'jd/lisp-mode-setup) - (add-hook 'lisp-mode-hook 'jd/lisp-mode-setup))) - -(use-package rainbow-delimiters - :guix-package "emacs-rainbow-delimiters") - -(use-package sly - :guix-package "emacs-sly") - -(use-package geiser - :guix-package "emacs-geiser") - -(use-package geiser-racket - :guix-package "emacs-geiser-racket") - -(use-package racket-mode - :guix-package "emacs-racket-mode") - -(use-package geiser-guile - :guix-package "emacs-geiser-guile" - :config - (when jd/guix-p - (defun jd/guix-repl () - (interactive) - (let ((geiser-guile-binary '("guix" "repl")) - (geiser-guile-load-path (cons "~/dotfiles/guix" geiser-guile-load-path))) - (geiser 'guile))))) - -(use-package pyvenv - :guix-package "emacs-pyvenv" - :after python-mode) - -(use-package typescript-mode - :guix-package "emacs-typescript-mode" - :mode ("\\.ts\\'") - :config - (setq typescript-indent-level 2)) - -(use-package cider - :guix-package "emacs-cider") - -(use-package tide - :guix-package "emacs-tide" - :after (typescript-mode company web-mode)) - -(use-package flycheck - :guix-package "emacs-flycheck" - :hook ((after-init . global-flycheck-mode))) - -(use-package web-mode - :guix-package "emacs-web-mode" - :mode - ("\\.ejs\\'" "\\.hbs\\'" "\\.html\\'" "\\.php\\'" "\\.[jt]sx?\\'") - :config - (setq web-mode-content-types-alist '(("jsx" . "\\.[jt]sx?\\'"))) - (setq web-mode-markup-indent-offset 2) - (setq web-mode-css-indent-offset 2) - (setq web-mode-code-indent-offset 2) - (setq web-mode-script-padding 2) - (setq web-mode-block-padding 2) - (setq web-mode-style-padding 2) - (setq web-mode-enable-auto-pairing t) - (setq web-mode-enable-auto-closing t) - (setq web-mode-enable-current-element-highlight t)) - -(use-package yaml-mode - :guix-package "emacs-yaml-mode") - -(use-package docker - :guix-package "emacs-docker" - :bind - ("C-c D d" . docker-containers) - ("C-c D D" . docker)) - -(use-package company - :guix-package "emacs-company" - :diminish t - :after lsp-mode - :hook (lsp-mode . company-mode) - :bind (:map company-active-map - ("" . company-complete-selection)) - (:map lsp-mode-map - ("" . company-indent-or-complete-common)) - :custom - (company-minimum-prefix-length 1) - (company-idle-delay 0.0) - :config - (global-company-mode)) - -(use-package projectile - :guix-package "emacs-projectile" - :diminish projectile-mode - :init - (when (file-directory-p "~/Documents/code") - (setq projectile-project-search-path '("~/Documents/code/"))) - :custom ((projectile-Completion-system 'ivy)) - :config - (setq projectile-switch-project-action #'projectile-dired) - (projectile-mode)) - -(use-package magit - :guix-package "emacs-magit" - :custom - (magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)) - -(use-package restclient - :guix-package "emacs-restclient") - -(setq sql-connection-alist - '(("net47-abaks" - (sql-product 'postgres) - (sql-user "kuba") - (sql-database "net47") - (sql-server "net47.abaks.pl")))) - -(provide 'jd-dev) - -;;; jd-dev.el ends here diff --git a/files/.emacs.d/jd/jd-exwm.el b/files/.emacs.d/jd/jd-exwm.el deleted file mode 100755 index 7731b01..0000000 --- a/files/.emacs.d/jd/jd-exwm.el +++ /dev/null @@ -1,177 +0,0 @@ -;;; Dotfiles --- Jakub Dlugosz emacs config -;;; Commentary: - -;;; Code: - - -(use-package perspective - :guix-package "emacs-perspective") - -(use-package exwm - :guix-package "emacs-exwm" - :config - (defun jd/exwm-update-class () - (exwm-workspace-rename-buffer exwm-class-name)) - - (defun jd-exwm/run-in-background (command) - (let ((command-parts (split-string command "[ ]+"))) - (apply #'call-process `(,(car command-parts) nil 0 nil ,@(cdr command-parts))))) - - (defun jd-exwm/restart-process (program-name) - (call-process "killall" nil nil nil program-name) - (jd-exwm/run-in-background program-name)) - - (defun jd-exwm/exwm-init-hook () - (jd-exwm/run-in-background "nitrogen --restore") - (start-process-shell-command "xinput" nil "xinput set-prop 'ETPS/2 Elantech Touchpad' 'Synaptics Tap Action' 1 1 1 2 1") - (start-process-shell-command "syndaemon" nil "syndaemon -i 0.8 -K -R -d") - - (jd-exwm/restart-process "polybar") - (jd-exwm/restart-process "nm-applet") - (jd-exwm/restart-process "redshift-gtk -l 54.37:18.6") - (jd-exwm/restart-process "blueman-applet")) - - (defun jd-exwm/exwm-update-title () - (exwm-workspace-rename-buffer exwm-title)) - - (defun jd-exwm/configure-window-by-class () - (interactive) - (pcase exwm-class-name - ("firefox" (exwm-workspace-move-window 2)) - ("Brave" (exwm-workspace-move-window 2)) - ("qutebrowser" (exwm-workspace-move-window 2)) - ("discord" (exwm-workspace-move-window 5)) - ("obs" (exwm-workspace-move-window 5)) - ("Virt-manager" (exwm-workspace-move-window 4)))) - - (setq exwm-workspace-number 10) - - ;; (add-hook 'exwm-init-hook #'jd-exwm/exwm-init-hook) - (add-hook 'exwm-update-class-hook #'jd/exwm-update-class) - (add-hook 'exwm-update-title-hook #'jd-exwm/exwm-update-title) - (add-hook 'exwm-manage-finish-hook #'jd-exwm/configure-window-by-class) - - (require 'exwm-randr) - (setq exwm-randr-workspace-monitor-plist '(9 "eDP-1" 0 "eDP-1")) - (exwm-randr-enable) - - (setq exwm-input-simulation-keys - '(([?\C-b] . [left]) - ([?\C-f] . [right]) - ([?\C-p] . [up]) - ([?\C-n] . [down]) - ([?\C-a] . [home]) - ([?\C-e] . [end]) - ([?\C-k] . [S-end delete]) - ([?\M-w] . [C-c]) - ([?\C-y] . [C-v]) - ([?\C-v] . [next]) - ([?\M-v] . [prior]) - )) - - (setq exwm-input-prefix-keys - '(?\C-x - ?\C-u - ?\C-h - ?\M-x - ?\M-` - ?\M-& - ?\M-! - ?\C-g - ?\M-: - ?\C-\M-j - ?\C-\ )) - - (define-key exwm-mode-map [?\C-q] 'exwm-input-send-next-key) - (exwm-input-set-key (kbd "s-p") 'counsel-linux-app) - - (setq exwm-input-global-keys - `(([?\s-R] . exwm-reset) - - - ([?\s-r] . (lambda (command) - (interactive (list (read-shell-command "$ "))) - (start-process-shell-command command nil command))) - - ([?\s-W] . exwm-workspace-move-window) - ([?\s-w] . exwm-workspace-switch) - - ,@(mapcar (lambda (i) - `(,(kbd (format "s-%d" i)) . - (lambda () - (interactive) - (exwm-workspace-switch-create ,i)))) - (number-sequence 0 9)))) - - (exwm-enable) - (require 'exwm-systemtray) - (exwm-systemtray-enable)) - -(use-package desktop-environment - :guix-package "emacs-desktop-environment" - :after exwm - :custom - (desktop-environment-brightness-small-increment "2%+") - (desktop-environment-brightness-small-decrement "2%-") - (desktop-environment-brightness-normal-increment "5%+") - (desktop-environment-brightness-normal-decrement "5%-") - - :config - (defun jd/dunst-show-history () - (interactive) - (start-process-shell-command "dunstctl" nil "dunstctl history-pop")) - (global-set-key (kbd "C-c N h") #'jd/dunst-show-history) - - (defun jd/dunst-close () - (interactive) - (start-process-shell-command "dunstctl" nil "dunstctl close")) - (global-set-key (kbd "C-c N c") #'jd/dunst-close) - - (defun jd/dunst-close-all () - (interactive) - (start-process-shell-command "dunstctl" nil "dunstctl close-all")) - (global-set-key (kbd "C-c N a") #'jd/dunst-close-all) - - (desktop-environment-mode)) - -;; (set-frame-parameter (selected-frame) 'alpha '(90 . 90)) -;; (add-to-list 'default-frame-alist `(alpha . (90 . 90))) -;; (set-frame-parameter (selected-frame) 'fullscreen 'maximized) -;; (add-to-list 'default-frame-alist '(fullscreen . maximized)) - -(defun jd-exwm/get-color (ATTRIBUTE) - (face-attribute 'default ATTRIBUTE)) - -(defun theme-to-xresources () - (interactive) - (require 'term) - (with-temp-buffer - (insert "! Generated by theme-to-xresources\n") - (dolist (spec - '(("emacs.background" :background "E6") - ("emacs.foreground" :foreground ""))) - (let ((color (jd-exwm/get-color (cadr spec)))) - (insert (format "%s: #%s%s\n" - (car spec) - (caddr spec) - (string-remove-prefix "#" color)))) - jd - (write-region (point-min) (point-max) "~/.Xresources"))) - (call-process "xrdb" nil nil nil "-merge" (expand-file-name "~/.Xresources"))) - -(defun jd/theme-sync () - (interactive) - (theme-to-xresources) - (setq org-confirm-babel-evaluate nil) - (org-babel-tangle-file "~/dotfiles/Desktop.org") - (setq org-confirm-babel-evaluate 't) - (call-process "killall" nil nil nil "dunst") ;; TODO: prevent clear notification history - (jd-exwm/restart-process "polybar")) - -;; (add-hook 'jd/load-theme-hook #'jd/theme-sync) -;; (add-hook 'exwm-init-hook #'jd/theme-sync) - -(provide 'jd-exwm) - -;;; jd-exwm.el ends here - diff --git a/files/.emacs.d/jd/jd-gym.el b/files/.emacs.d/jd/jd-gym.el deleted file mode 100755 index 581bf65..0000000 --- a/files/.emacs.d/jd/jd-gym.el +++ /dev/null @@ -1,120 +0,0 @@ -;;; jd-gym.el --- Gym workout manager. -;;; Commentary: -;; It will be a gym workout manager in the future. -;;; code: - -(require 'emacsql-sqlite) - -(defconst jd-gym/db--tables-schema - '((workout-plans - [(id integer :primary-key :autoincrement) - (name text)]) - - (workouts - [(id integer :primary-key :autoincrement) - (workout-plan-id integer :not-null) - (day integer :not-null) - (month integer :not-null) - (year integer :not-null)] - (:foreign-key [workout-plan-id] :references workout-plans [id] :on-delete :cascade)) - - (muscle-part - [(id integer :primary-key :autoincrement) - (name text :not-null)]) - - (exercises - [(id integer :primary-key :autoincrement) - (name text :not-null) - (muscle-part-id integer :not-null)] - (:foreign-key [muscle-part-id] :references muscle-part [id] :on-delete :cascade)) - - (workout-plan-exercise-map - [(id integer :primary-key :autoincrement) - (week-day integer :not-null) - (workout-plan-id integer :not-null) - (exercise-id integer :not-null)] - (:foreign-key [workout-plan-id] :references workout-plans [id] :on-delete :cascade) - (:foreign-key [exercise-id] :references exercises [id] :on-delete :cascade)) - - (workout-sets - [(id integer :primary-key :autoincrement) - (reps integer :not-null) - (weight integer :not-null) - (workout-plan-exercise-map-id integer :not-null) - (comment text)] - (:foreign-key [workout-plan-exercise-map-id] :references workout-plan-exercise-map [id] :on-delete :cascade)))) - -(defconst jd-gym/db--test-data - '((workout-plans - ([nil "Push pull"])) - (workouts - ([nil 1 3 1 2023])) - (muscle-part - ([nil "glutes"] - [nil "chest"])) - (exercises - ([nil "Bench press" 2] - [nil "RDL" 1])) - (workout-plan-exercise-map - ([nil 0 1 1] ; Monday, Push pull, Bench press - [nil 1 1 2] ; Tuesday, Push pull, RDL - [nil 3 1 1] ; Thursday, Push pull, Bench press - [nil 4 1 2] ; Friday, Push pull, RDL - )) - (workout-sets - ([nil 7 70 1 "New PR!"] - [nil 8 110 2 "It was hard!"])))) - -(defun jd-gym/db--test-data-insert () - "Insert test data to jd-gym database." - (mapc (lambda (table) - (let ((table-name (car table)) - (table-data (cdr table))) - (emacsql jd-gym/db--conn [:insert :into $i1 - :values $v2] - table-name table-data))) - jd-gym/db--test-data)) - -(defvar jd-gym/db-path "~/Documents/Gym/gym.sqlite" - "Path can be relative or absolute.") - -(defvar jd-gym/db--conn nil - "Store connection to jd-gym database.") - -(defun jd-gym/db--conn-p () - "Check if jd-gym is connected to db." - (and (emacsql-sqlite-connection-p jd-gym/db--conn) - (emacsql-live-p jd-gym/db--conn))) - -(defun jd-gym/db--connect () - "Connect to db if there is no connection yet." - (unless (jd-gym/db--conn-p) - (setq jd-gym/db--conn (emacsql-sqlite jd-gym/db-path)))) - -(defun jd-gym/db--close () - "Close db connection." - (when (jd-gym/db--conn-p) - (emacsql-close jd-gym/db--conn))) - -(defun jd-gym/db--init () - "Initialize database structure." - (when (jd-gym/db--conn-p) - (emacsql jd-gym/db--conn [:pragma (= foreign_keys ON)]) - (emacsql jd-gym/db--conn "PRAGMA foreign_keys=ON") - (mapc (lambda (table) - (let ((table-name (car table)) - (table-schema (cdr table))) - (emacsql jd-gym/db--conn [:create-table $i1 $S2] table-name table-schema))) - jd-gym/db--tables-schema))) - -(defun jd-gym/db () - "Entrypoint to jd-gym db." - (unless (file-exists-p jd-gym/db-path) - (jd-gym/db--close) - (jd-gym/db--connect) ; Restart connection - (jd-gym/db--init))) - - -(provide 'jd-gym) - -;;; jd-gym.el ends here diff --git a/files/.emacs.d/jd/jd-keys.el b/files/.emacs.d/jd/jd-keys.el deleted file mode 100755 index 8c1c4cb..0000000 --- a/files/.emacs.d/jd/jd-keys.el +++ /dev/null @@ -1,49 +0,0 @@ -;;; Dotfiles --- Jakub Dlugosz emacs config -;;; Commentary: -;; Custom keysets used in my emacs -;;; Code: - -(use-package multiple-cursors - :guix-package "emacs-multiple-cursors" - :config - (global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines) - (global-set-key (kbd "C->") 'mc/mark-next-like-this) - (global-set-key (kbd "C-<") 'mc/mark-previous-like-this) - (global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)) - -(use-package hydra - :guix-package "emacs-hydra" - ;; :defer t - :config - (defun jd/text-scale-increase () - (interactive) - (let ((old-face-attribute (face-attribute 'default :height))) - (set-face-attribute 'default nil :height (+ old-face-attribute 10)))) - - (defun jd/text-scale-decrease () - (interactive) - (let ((old-face-attribute (face-attribute 'default :height))) - (set-face-attribute 'default nil :height (- old-face-attribute 10)))) - - (defhydra hydra-text-scale-global (:timeout 4) - "scale text" - ("j" jd/text-scale-increase "in") - ("k" jd/text-scale-decrease "out") - ("q" nil "finished" :exit t)) ;; TODO not working - - (defhydra hydra-text-scale (:timeout 4) - "scale text" - ("j" text-scale-increase "in") - ("k" text-scale-decrease "out") - ("q" nil "finished" :exit t))) - -(use-package undo-tree - :guix-package "emacs-undo-tree" - :diminish - :config - (setq undo-tree-auto-save-history nil) - (global-undo-tree-mode 1)) - -(provide 'jd-keys) - -;;; jd-keys.el ends here diff --git a/files/.emacs.d/jd/jd-misc.el b/files/.emacs.d/jd/jd-misc.el deleted file mode 100644 index 2b7d1bd..0000000 --- a/files/.emacs.d/jd/jd-misc.el +++ /dev/null @@ -1,34 +0,0 @@ -;;; Dotfiles --- Jakub Dlugosz emacs config -;;; Commentary: - -;;; Code: - -(defun jd/generete-qr-from-clipboard () - (interactive) - (let ((clipboard-value (x-get-clipboard)) - (clipboard-file-path "/tmp/clipboard_value.txt") - (clipboard-out-image "/tmp/qr.png")) - (with-temp-file clipboard-file-path - (insert clipboard-value)) - (shell-command (concat - "qrencode -o " - clipboard-out-image - " < " - clipboard-file-path)) - (find-file clipboard-out-image))) - -(defun jd/dired-open-file-in-kill-ring () - (interactive) - (let* ((last-killed (car kill-ring)) - (exists-p (file-exists-p last-killed)) - (dir-p (file-directory-p last-killed))) - (cond - ((not exists-p) (message "File doesn't exists!")) - (dir-p (dired last-killed)) - ((not dir-p) (find-file last-killed))))) - -(global-set-key (kbd "C-c O") #'jd/dired-open-file-in-kill-ring) - -(provide 'jd-misc) - -;;; jd-misc.el ends here diff --git a/files/.emacs.d/jd/jd-mu4e.el b/files/.emacs.d/jd/jd-mu4e.el deleted file mode 100755 index b388201..0000000 --- a/files/.emacs.d/jd/jd-mu4e.el +++ /dev/null @@ -1,84 +0,0 @@ -;;; Dotfiles --- Jakub Dlugosz emacs config -;;; Commentary: - -;;; Code: - -(use-package htmlize - :guix-package "emacs-htmlize") - -(use-package mu4e - :guix-package ("mu" "isync") - :defer 10 - :ensure nil - :bind - ("C-c M" . mu4e) - :config - ;a (require 'org-mu4e) - - (unless jd/guix-p - (add-to-list 'load-path "/usr/local/share/emacs/site-lisp/mu4e") - (setq mu4e-mu-binary "/usr/local/bin/mu")) - - (setq mu4e-update-interval (* 10 60)) - (setq mu4e-get-mail-command "mbsync -a") - (setq mu4e-maildir "~/Mail") - - (setq mu4e-completing-read-function #'ivy-completing-read) - - (setq mu4e-change-filenames-when-moving t) - - (setq mu4e-contexts - `(,(make-mu4e-context - :name "Abaks" - :match-func (lambda (msg) (when msg - (string-prefix-p "/abaks" (mu4e-message-field msg :maildir)))) - :vars '( - (user-full-name . "Jakub Dlugosz") - (user-mail-address . "jakub@abaks.pl") - (mu4e-sent-folder . "/abaks/Sent Items") - (mu4e-trash-folder . "/abaks/Trash") - (mu4e-drafts-folder . "/abaks/Drafts") - (mu4e-refile-folder . "/abaks/Archive") - (mu4e-sent-messages-behavior . sent) - (smtpmail-local-domain . "pl") - (smtpmail-smtp-server . "smtp.abaks.pl") - (smtpmail-smtp-user . "jakub@abaks.pl"))) - ,(make-mu4e-context - :name "Gmail" - :match-func (lambda (msg) (when msg - (string-prefix-p "/gmail" (mu4e-message-field msg :maildir)))) - :vars '( - (user-full-name . "Jakub Dlugosz") - (user-mail-address . "jdlugosz963@gmail.com") - (mu4e-sent-folder . "/gmail/\[Gmail\]/Wys\&AUI-ane") - (mu4e-trash-folder . "/gmail/\[Gmail\]/Kosz") - (mu4e-drafts-folder . "/gmail/\[Gmail\]/Wersje\ robocze") - (mu4e-refile-folder . "/gmail/Archive") - (smtpmail-local-domain . "com") - (smtpmail-smtp-server . "smtp.gmail.com") - (smtpmail-smtp-user . "jdlugosz963@gmail.com") - (mu4e-sent-messages-behavior . sent))))) - - (setq mail-user-agent 'mu4e-user-agent - mail-host-address nil - message-send-mail-function 'smtpmail-send-it - smtpmail-smtp-service 465 - smtpmail-stream-type 'ssl - smtpmail-servers-requiring-authorization ".*") - - (setq mu4e-compose-signature (concat - "Pozdrawiam,\n" - "Jakub Długosz")) - - (mu4e t) - (mu4e-modeline-mode nil)) - -(use-package mu4e-alert - :guix-package "emacs-mu4e-alert" - :defer 20 - :config - (mu4e-alert-set-default-style 'libnotify) - (mu4e-alert-enable-mode-line-display) - (mu4e-alert-enable-notifications)) - -(provide 'jd-mu4e) diff --git a/files/.emacs.d/jd/jd-org.el b/files/.emacs.d/jd/jd-org.el deleted file mode 100755 index 554533d..0000000 --- a/files/.emacs.d/jd/jd-org.el +++ /dev/null @@ -1,222 +0,0 @@ -;;; Dotfiles --- Jakub Dlugosz emacs config -;;; Commentary: - -;;; Code: - -(defvar jd/org-home "~/Notes") -(defvar jd/org-roam-home (concat jd/org-home "/roam")) -(defvar jd/org-sync (concat jd/org-home "/sync")) -(defvar jd/org-roam-daily-home (concat jd/org-roam-home "/daily")) - -(defun jd/org-mode-init () - (org-indent-mode) - (variable-pitch-mode 1) - (visual-line-mode 1)) - -(defun jd-emacs/org-insert-date (&optional date) - (org-insert-time-stamp (org-read-date nil t (or date "+0d")))) - -(use-package org-pomodoro - :guix-package "emacs-org-pomodoro") - -(use-package org-caldav - :guix-package "emacs-org-caldav" - :config - (setq org-caldav-url "http://caldav.jdlugosz.com/radicale/admin/" - org-caldav-files nil - org-icalendar-timezone "Europe/Warsaw") - - (defun jd/caldav-calendar-sync () - (interactive) - (let ((org-caldav-calendar-id "0c54a523-c7aa-2f26-2c18-a12b69c2bc86") - (org-caldav-inbox (concat jd/org-sync - "/calendar.org"))) - (org-caldav-sync))) - - (defun jd/caldav-journal-sync () - (interactive) - (let ((org-caldav-calendar-id "3cc70419-a787-5f84-28c6-96f15fc606d9") - (org-caldav-inbox (concat jd/org-sync - "/journal.org"))) - (org-caldav-sync))) - - (defun jd/caldav-tasks-sync () - (interactive) - (let ((org-caldav-calendar-id "372cbbb3-14f7-fc15-9f7b-cae04114920c") - (org-caldav-inbox (concat jd/org-sync - "/tasks.org"))) - (org-caldav-sync)))) - -(use-package org - :guix-package "emacs-org" - :pin org - :commands (org-capture org-agenda) - :hook (org-mode . jd/org-mode-init) - :bind - ("C-c o c" . #'org-capture) - ("C-c o p" . #'org-mobile-pull) - ("C-c o P" . #'org-mobile-push) - ("C-c o a" . #'org-agenda) - :config - (defun jd/org-mode-file (file-name) (concat org-directory "/" file-name ".org")) - (setq org-directory (file-truename "~/Notes") - org-mobile-directory (concat org-directory "/Mobile") - org-mobile-inbox-for-pull (concat org-directory "/flagged.org") ;; TODO: ?? - - org-refile-targets '((org-agenda-files :maxlevel . 1)) - org-outline-path-complete-in-steps nil - org-refile-use-outline-path t - org-agenda-files '("Personal.org" "Work.org" "Inbox.org" "Collage.org") - org-ellipsis " ▾" - org-agenda-start-with-log-mode t - org-log-done 'time - org-log-into-drawer t - org-return-follows-link t - org-latex-listings 'minted - org-latex-packages-alist '(("" "minted")) - - org-agenda-custom-commands - `(("p" "Planning" - ((tags-todo "+planning" - ((org-agenda-overriding-header "Planning Tasks"))) - (tags-todo "-{.*}" - ((org-agenda-overriding-header "Untagged Tasks"))) - (todo "*" ((org-agenda-files '(,(jd/org-mode-file "Inbox"))) - (org-agenda-overriding-header "Unprocessed Inbox Items"))))) - - ("d" "Daily Agenda" - ((agenda "" ((org-agenda-span 'day) - (org-deadline-warning-days 7))) - (tags-todo "+PRIORITY=\"A\"" - ((org-agenda-overriding-header "High Priority Tasks"))))) - - ("c" "Collage Agenda" - ((agenda "" ((org-agenda-span 'week) - (org-deadline-warning-days 7)))) - ((org-agenda-filter-preset '("+collage")))) - - ("w" "Weekly Review" - ((agenda "" - ((org-agenda-overriding-header "Completed Tasks") - (org-agenda-skip-function '(org-agenda-skip-entry-if 'nottodo 'done)) - (org-agenda-span 'week))) - - (agenda "" - ((org-agenda-overriding-header "Unfinished Scheduled Tasks") - (org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done)) - (org-agenda-span 'week)))))) - - org-capture-templates - `(("i" "Capture to Inbox" entry (file+olp ,(jd/org-mode-file "Inbox") "Inbox") - "* TODO %?\n %t\n" :empty-lines 1) - ("c" "Capture to Collage" entry (file+olp ,(jd/org-mode-file "Collage") "Collage") - "* TODO %? :collage:%^g \n %t\n" :empty-lines 1)) - - org-latex-pdf-process - '("pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f" - "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f")) - - (require 'org-tempo) - - (defun jd/org-font-setup () - (dolist (face '((org-level-1 . 1.3) - (org-level-2 . 1.2) - (org-level-3 . 1.1) - (org-level-4 . 1.0) - (org-level-5 . 1.0) - (org-level-6 . 1.0) - (org-level-7 . 1.0) - (org-level-8 . 1.0))) - (set-face-attribute (car face) nil :font "Terminus" :weight 'Bold :height (cdr face))) - - ;; Ensure that anything that should be fixed-pitch in Org files appears that way - (set-face-attribute 'org-block nil :font "Terminus" :inherit 'fixed-pitch :height 100) - (set-face-attribute 'org-table nil :inherit 'fixed-pitch) - (set-face-attribute 'org-formula nil :inherit 'fixed-pitch) - (set-face-attribute 'org-code nil :inherit '(shadow fixed-pitch)) - (set-face-attribute 'org-verbatim nil :inherit '(shadow fixed-pitch)) - (set-face-attribute 'org-special-keyword nil :inherit '(font-lock-comment-face fixed-pitch)) - (set-face-attribute 'org-meta-line nil :inherit '(font-lock-comment-face fixed-pitch)) - (set-face-attribute 'org-checkbox nil :inherit 'fixed-pitch) - (set-face-attribute 'line-number nil :inherit 'fixed-pitch) - (set-face-attribute 'line-number-current-line nil :inherit 'fixed-pitch)) - - (with-eval-after-load 'org (jd/org-font-setup)) - - (defun jd-emacs/org-timer-stop () - (start-process-shell-command "notify-send" nil "notify-send Zakonczono odliczanie")) - - (add-hook 'org-timer-stop-hook #'jd-emacs/org-timer-stop) - - (defun jd/org-tempo-setup () - (dolist (template '(("s" . "src") - ("sql" . "src sql") - ("sh" . "src sh") - ("el" . "src emacs-lisp") - ("li" . "src lisp") - ("sc" . "src scheme") - ("ts" . "src typescript") - ("py" . "src python") - ("go" . "src go") - ("yaml" . "src yaml"))) - (add-to-list 'org-structure-template-alist template))) - - (with-eval-after-load 'org-tempo (jd/org-tempo-setup)) - - (org-babel-do-load-languages - 'org-babel-load-languages - '((emacs-lisp . t) - (python . t) - (shell . t)))) - -(use-package org-superstar - :guix-package "emacs-org-superstar" - :hook (org-mode . org-superstar-mode) - :init - (setq org-superstar-special-todo-items t) - (setq org-superstar-remove-leading-stars t) - (setq org-superstar-headline-bullets-list '("◉" "○" "●" "○" "●" "○" "●"))) - -(use-package org-roam - :guix-package "emacs-org-roam" - :custom - (org-roam-directory (file-truename jd/org-roam-home)) - :bind (("C-c n l" . org-roam-buffer-toggle) - ("C-c n f" . org-roam-node-find) - ("C-c n g" . org-roam-graph) - ("C-c n i" . org-roam-node-insert) - ("C-c n c" . org-roam-capture) - ;; Dailies - ("C-c n j" . org-roam-dailies-capture-today)) - :bind-keymap - ("C-c n d" . org-roam-dailies-map) - :config - (require 'org-roam-dailies) - - (defun jd/org-roam-filter-by-tag (tag-name) - (lambda (node) - (member tag-name (org-roam-node-tags node)))) - - (defun jd/org-roam-list-notes-by-tag (tag-name) - (mapcar #'org-roam-node-file - (seq-filter - (jd/org-roam-filter-by-tag tag-name) - (org-roam-node-list)))) - - (setq org-roam-node-display-template (concat "${title:*} " (propertize "${tags:10}" 'face 'org-tag))) - (setq org-roam-capture-templates - '(("d" "default" plain "%?" - :target (file+head+olp - "%<%Y%m%d%H%M%S>-${slug}.org" - "#+title: ${title}\n\n" - ("${title}")) - :unnarrowed t))) - - (org-roam-db-autosync-mode)) - -(use-package ox-pandoc - :guix-package "emacs-ox-pandoc") - -(provide 'jd-org) - -;;; jd-org.el ends here diff --git a/files/.emacs.d/jd/jd-sway.el b/files/.emacs.d/jd/jd-sway.el deleted file mode 100644 index cdfb667..0000000 --- a/files/.emacs.d/jd/jd-sway.el +++ /dev/null @@ -1,18 +0,0 @@ -;;; Dotfiles --- Jakub Dlugosz emacs config -;;; Commentary: - -;;; Code: - -(defun use-package-normalize/:diminish (name keyword args) - (use-package-as-one (symbol-name keyword) args - (apply-partially #'use-package-normalize-diminish name) t)) - -(use-package shackle - :guix-package "emacs-shackle") - -(use-package sway - :guix-package "emacs-sway") - -(provide 'jd-sway) - -;;; jd-sway.el ends here diff --git a/files/.emacs.d/jd/jd-ui.el b/files/.emacs.d/jd/jd-ui.el deleted file mode 100755 index 4e388c9..0000000 --- a/files/.emacs.d/jd/jd-ui.el +++ /dev/null @@ -1,104 +0,0 @@ -;; Dotfiles --- Jakub Dlugosz emacs config -;;; Commentary: - -;;; Code: - -(setq inhibit-startup-message t) -(setq visible-bell t) -(scroll-bar-mode -1) -(tool-bar-mode -1) -(tooltip-mode -1) -(menu-bar-mode -1) -(set-fringe-mode 10) - -;; (set-frame-parameter (selected-frame) 'alpha '(92 . 92)) -;; (add-to-list 'default-frame-alist '(alpha . (92 . 92))) - -(let ((height (if (string-equal (system-name) - "berserker") - 175 - 125))) - (custom-set-faces - `(default ((t (:inherit nil :height ,height :family "Terminus")))) - `(line-number ((t (:inherit nil :height ,height :family "Terminus")))) - `(line-number-current-line ((t (:inherit nil :height ,height :family "Terminus")))))) - -(add-hook 'prog-mode-hook 'menu-bar--display-line-numbers-mode-relative) - -(global-set-key (kbd "") 'keyboard-escape-quit) - -(global-prettify-symbols-mode 1) - -(defalias 'yes-or-no-p 'y-or-n-p) - -(require 'diminish) - -(use-package doom-modeline - :guix-package "emacs-doom-modeline" - :config - (doom-modeline-mode)) - -(use-package solarized-theme - :guix-package "emacs-solarized-theme" - :config - (load-theme 'solarized-dark-high-contrast t)) - - -(use-package diminish - :guix-package "emacs-diminish") - -(use-package hl-todo - :guix-package "emacs-hl-todo" - :init - (setq hl-todo-keyword-faces - '(("TODO" . "#FF0000") - ("FIXME" . "#FF0000") - ("DEBUG" . "#A020F0"))) - :config - (global-hl-todo-mode 1)) - -(defvar jd/load-theme-hook nil) -(defun jd/load-theme () - (interactive) - (counsel-load-theme) - (run-hooks 'jd/load-theme-hook)) - -(use-package ivy - :guix-package "emacs-ivy" - :diminish - :bind - (("C-s" . swiper)) - :config - (ivy-mode 1)) - -(use-package counsel - :guix-package "emacs-counsel" - :diminish t - :config - (counsel-mode 1)) - -(use-package which-key - :guix-package "emacs-which-key" - :diminish - :config - (which-key-mode) - (setq which-key-idle-delay 0.3)) - -(use-package all-the-icons - :guix-package "emacs-all-the-icons") - -(use-package beacon - :guix-package "emacs-beacon" - :config - (beacon-mode 1)) - -(setq display-time-string-forms - '(" " 24-hours ":" minutes " ")) - -(when jd/exwm-p - (display-battery-mode) - (display-time-mode)) - -(provide 'jd-ui) - -;;; jd-ui.el ends here diff --git a/files/.gitignore b/files/.gitignore deleted file mode 100644 index f3fe7e5..0000000 --- a/files/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -__pycache__/ -elpa/ -auto-save-list/ -eln-cache/ -url/ -**/#* -**/*~ diff --git a/files/.guile b/files/.guile deleted file mode 100644 index 2076bd2..0000000 --- a/files/.guile +++ /dev/null @@ -1,2 +0,0 @@ - (use-modules (ice-9 readline)) - (activate-readline) \ No newline at end of file diff --git a/files/.mbsyncrc b/files/.mbsyncrc deleted file mode 100644 index 20a8692..0000000 --- a/files/.mbsyncrc +++ /dev/null @@ -1,47 +0,0 @@ -IMAPStore abaks-remote -Host imap.abaks.pl -Port 143 -SSLType None -AuthMechs LOGIN -User jakub@abaks.pl -PassCmd "pass email/jakub@abaks.pl" -CertificateFile /etc/ssl/certs/ca-certificates.crt - -MaildirStore abaks-local -Path ~/Mail/abaks/ -Inbox ~/Mail/abaks/INBOX -Subfolders Verbatim - -Channel abaks -Far :abaks-remote: -Near :abaks-local: -Patterns INBOX * !Sync* -Expunge None -CopyArrivalDate yes -Sync All -Create Near -SyncState * - -IMAPStore gmail-remote -Host imap.gmail.com -Port 993 -SSLType IMAPS -AuthMechs LOGIN -User jdlugosz963@gmail.com -PassCmd "pass email/jdlugosz963@gmail.com" -CertificateFile /etc/ssl/certs/ca-certificates.crt - -MaildirStore gmail-local -Path ~/Mail/gmail/ -Inbox ~/Mail/gmail/INBOX -Subfolders Verbatim - -Channel gmail -Far :gmail-remote: -Near :gmail-local: -Patterns INBOX * !Sync* -Expunge None -CopyArrivalDate yes -Sync All -Create Near -SyncState * diff --git a/files/.nix-channels b/files/.nix-channels deleted file mode 100644 index 46c3d72..0000000 --- a/files/.nix-channels +++ /dev/null @@ -1 +0,0 @@ -https://nixos.org/channels/nixos-23.11 nixos diff --git a/files/.stumpwm.d/.gitignore b/files/.stumpwm.d/.gitignore deleted file mode 100644 index 4c478cf..0000000 --- a/files/.stumpwm.d/.gitignore +++ /dev/null @@ -1 +0,0 @@ -stumpwm.log* \ No newline at end of file diff --git a/files/.stumpwm.d/init.lisp b/files/.stumpwm.d/init.lisp deleted file mode 100755 index 0970718..0000000 --- a/files/.stumpwm.d/init.lisp +++ /dev/null @@ -1,360 +0,0 @@ -(in-package :stumpwm) - - -(setq *message-window-gravity* :center) -(setq *message-window-input-gravity* :center) -(setq *input-window-gravity* :center) -(setq *window-border-style* :none) - -(set-bg-color :gray10) -(setq *mode-line-background-color* "Gray10") - -(set-prefix-key (kbd "C-z")) -(setq *float-window-modifier* :super) - -(define-key *top-map* (kbd "s-w") "gselect") - -(defcommand lock () () - (run-shell-command "slock")) - -(define-key *top-map* (kbd "s-l") "lock") - -(defcommand server-start () () - (slynk:create-server :port 4005) - (message "server started at port: \"4005\"!")) - - -(define-key *root-map* (kbd "C-q") "send-raw-key") - -(define-key *root-map* (kbd "M") "mode-line") -(define-key *root-map* (kbd "C-n") "fnext") -(define-key *root-map* (kbd "C-p") "fprev") -(define-key *root-map* (kbd "b") "windowlist") - - - -;; (run-commands "gnew Code" -;; "gnew Web" -;; "gnew Music" -;; "gnew Game" -;; "gnew School") - -(define-remapped-keys - '(("(Firefox|Chrome|qutebrowser)" - ("C-n" . "Down") - ("C-p" . "Up") - ("C-f" . "Right") - ("C-b" . "Left") - ("C-v" . "Next") - ("M-v" . "Prior") - ("M-w" . "C-c") - ("C-w" . "C-x") - ("C-y" . "C-v") - ("M-<" . "Home") - ("M->" . "End") - ("C-a" . "Home") - ("C-e" . "End") - ("C-M-b" . "M-Left") - ("C-M-f" . "M-Right") - ("C-g" . "ESC") - ("C-k" . ("C-S-End" "C-x"))))) - -(define-frame-preference "chat" - (0 NIL T :create T :class "quassel") - (1 NIL T :create T :class "discord") - (2 NIL T :create T :class "nheko")) - -(define-frame-preference "vm" - (0 NIL T :create T :class ".virt-manager-real")) - -(run-shell-command "~/.fehbg") - -(require :pamixer) -(require :pass) - -(require :screenshot) -(pamixer:volume-down 10) - -(defun get-brightness () - (let ((c (parse-integer (string-trim - (string #\newline) - (run-shell-command "brightnessctl g" t)))) - (m (parse-integer (string-trim - (string #\newline) - (run-shell-command "brightnessctl m" t))))) - (format nil "~3,1f%" (* (/ c m) 100)))) - -(defun set-brightness (x) - (run-shell-command (concat "brightnessctl s " x)) - (message (concat "Brightness: " (get-brightness)))) - -(defcommand my-volume-down () () - (pamixer:volume-down 5) - (message (format nil "Volume: ~s%" (pamixer:get-volume)))) - -(defcommand my-volume-up () () - (pamixer:volume-up 5) - (message (format nil "Volume: ~s%" (pamixer:get-volume)))) - -(defcommand my-toggle-mute () () - (pamixer:toggle-mute) - (if (pamixer:get-mute) - (message "Mute: ^2ON") - (message "Mute: ^1OFF"))) - -(defcommand my-brightness-up () () - (set-brightness "+5%")) - -(defcommand my-brightness-down () () - (set-brightness "5%-")) - -(defcommand my-brightness-one () () - (set-brightness "1")) - - -(define-key *top-map* (kbd "XF86AudioMute") "my-toggle-mute") -(define-key *top-map* (kbd "XF86AudioRaiseVolume") "my-volume-up") -(define-key *top-map* (kbd "XF86AudioLowerVolume") "my-volume-down") - -(define-key *top-map* (kbd "XF86MonBrightnessUp") "my-brightness-up") -(define-key *top-map* (kbd "XF86MonBrightnessDown") "my-brightness-down") - -(defun my-screenshoot-command-wrapper (screenshot-command ss-name) - (apply screenshot-command (list (concat - "~/Pictures/Screenshots/" - (string-trim - (string #\newline) - (run-shell-command "date +%Y-%M-%d-%T" t)) - "-" (or ss-name "untitled") - ".png")))) - - -(defcommand my-screenshot-area (ss-name) - ((:string "Screenshot name: ")) - (my-screenshoot-command-wrapper #'screenshot:screenshot-area ss-name)) - -(defcommand my-screenshot-window (ss-name) - ((:string "Screenshot name: ")) - (my-screenshoot-command-wrapper #'screenshot:screenshot-window ss-name)) - -(defcommand my-screenshot (ss-name) - ((:string "Screenshot name: ")) - (my-screenshoot-command-wrapper #'screenshot:screenshot ss-name)) - -(defvar *misc-keymap* - (let ((m (make-sparse-keymap))) - (define-key m (kbd "0") "my-toggle-mute") - (define-key m (kbd "+") "my-volume-up") - (define-key m (kbd "=") "my-volume-up") - (define-key m (kbd "-") "my-volume-down") - - (define-key m (kbd "p") "pass-copy-menu") - (define-key m (kbd "C-p") "pass-copy-menu") - (define-key m (kbd "g") "pass-generate") - (define-key m (kbd "C-g") "pass-generate") - - (define-key m (kbd "C-a") "my-screenshot-area") - (define-key m (kbd "a") "my-screenshot-area") - (define-key m (kbd "C-w") "my-screenshot-window") - (define-key m (kbd "w") "my-screenshot-window") - (define-key m (kbd "C-s") "my-screenshot") - (define-key m (kbd "s") "my-screenshot") - - m)) - - - - -(define-key *root-map* (kbd "C-m") '*misc-keymap*) - -;; -;; ;;; MODE-LINE -(require :cpu) -(require :mem) -(require :net) - -(require :stumptray) -(stumptray:add-mode-line-hooks) - -(defun update-stumptray-position (&rest args) - (setf (symbol-value (find-symbol "*TRAY-HEAD-SELECTION-FN*" :stumptray)) - (if (>= (list-length (stumpwm:screen-heads (stumpwm:current-screen))) 2) - #'second - #'first))) - -(stumpwm:add-hook stumpwm:*new-head-hook* 'update-stumptray-position) -(update-stumptray-position) - -(defun get-battery-status () - (let* ((state (string-trim - (string #\newline) - (run-shell-command - (concat "upower -i /org/freedesktop/UPower/devices/battery_BAT0 " - "| grep state: " - "| awk '{print $2}'") - t))) - (perc (string-trim - (string #\newline) - (run-shell-command (concat - "upower -i /org/freedesktop/UPower/devices/battery_BAT0 " - "| grep perc " - "| awk '{print $2}'") - t))) - (perc-num (parse-integer (aref (nth-value 1 (cl-ppcre:scan-to-strings "^(.*)\%$" perc)) 0)))) - (format - nil - (concat - "BAT: " - (cond - ((and (equal state "discharging") - (<= perc-num 20)) - "^1[-~a]^]") - ((equal state "discharging") "[-~a]") - ((equal state "charging") "[+~a]") - ((equal state "fully-charged") "[~a]") - (t (concat state " [~a]")))) - perc))) - - - -(setq *screen-mode-line-format* (list "[^B%n^b] %W ^> %C | %M | %l | " - '(:eval (get-battery-status)) - " " ;; empty space for stumptray icons - )) - -(require :yason) ;; json parser -(require :drakma) ;; http client - - -(defcommand kto-hakuje-p () () - (let* ((response (yason:parse - (flexi-streams:octets-to-string - (drakma:http-request "https://whois.at.hsp.sh/api/now")))) - (users (gethash "users" response)) - (unknown-devices (gethash "unknown_devices" response))) - (message (cond - ((and (= (list-length users) 0) - (= unknown-devices 0)) - "Spejs jest pusty!") - ((and (= (list-length users) 0) - (> unknown-devices 0)) - (format nil "W spejsie jest nieznanych ~a urzadzen." unknown-devices)) - ((and (> (list-length users) 0) - (= unknown-devices 0)) - (format nil "W spejsie jest ~a." users)) - ((and (> (list-length users) 0) - (> unknown-devices 0)) - (format nil "W spejsie jest ~a oraz ~a nieznane urzadzenia." users unknown-devices)))))) - - -(define-key *misc-keymap* (kbd "h") "kto-hakuje-p") -(define-key *misc-keymap* (kbd "C-h") "kto-hakuje-p") - - -(defun emacs-server-p () - (let ((status-code (caddr - (multiple-value-list - (uiop:run-program "ls /run/user/$(id -u)/emacs/server" - :ignore-error-status T))))) - (= status-code 0))) - -(stumpwm:defcommand emacs-start-server (&optional (show-message T) (wait-for-start NIL)) () - (let ((mess (if (not (emacs-server-p)) - (progn (stumpwm:run-shell-command "emacs --daemon" wait-for-start) - "Emacs server is starting....") - "Emacs server is running already!"))) - (when show-message (message mess)))) - -(stumpwm:defcommand emacs-stop-server (&optional (show-message T)) () - (let ((mess (if (emacs-server-p) - (progn (stumpwm:run-shell-command "emacsclient -e \"(server-force-delete)\"") - "Emacs server gone away :(....") - "Emacs server wasn't alive!"))) - (when show-message (message mess)))) - - -(stumpwm:defcommand emacs-restart-server (&optional (show-message T)) () - (emacs-stop-server NIL) - (emacs-start-server show-message)) - -(defun postwalk (fun tree) - (if (consp tree) - (loop :for a :in tree - :if (consp a) - :collect (postwalk fun a) - :else - :collect (funcall fun a)) - (funcall fun tree))) - -(defmacro eval-emacs-sexp (sexp - &key (create-new-frame NIL)) - `(stumpwm:run-shell-command - (format nil "emacsclient~{ ~A~} '~A'" - (list ,(if create-new-frame "-c" "") - "-e") - (postwalk (lambda (x) - (cond - ((stringp x) (concat "\"" x "\"")) - ((symbolp x) (string-downcase (string x))) - (T x))) - ,sexp)) - ,(not create-new-frame))) - - -(defmacro defcommand-from-emacs (name - (&rest args) - (&rest interactive-args) - (&key (create-new-frame T) (output-wrapper NIL)) - &body body) - `(stumpwm:defcommand ,name ,args ,interactive-args - (when (not (emacs-server-p)) - (emacs-start-server NIL T)) - - ,(let ((x `(eval-emacs-sexp (progn ,@body) - :create-new-frame ,create-new-frame))) - (cond - ((and create-new-frame output-wrapper) - (error "Cannot wrap the output, becaouse create-new-frame is T.")) - (output-wrapper `(funcall ,output-wrapper ,x)) - (T `(funcall (lambda (x) (progn x nil)) ,x)))))) - - -(defcommand-from-emacs emacs-client () () () - nil) - -(defcommand-from-emacs emacs-calc () () () - '(full-calc)) - -(defcommand-from-emacs emacs-org-agenda () () () - '(org-agenda-list)) - -(defcommand-from-emacs emacs-mu4e () () () - '(mu4e)) - -(defcommand-from-emacs emacs-shell () () () - '(shell)) - -(defcommand-from-emacs emacs-eshell () () () - '(eshell)) - -(defvar *emacs-keymap* - (let ((e (make-sparse-keymap))) - (define-key e (kbd "a") "emacs-org-agenda") - (define-key e (kbd "C-a") "emacs-org-agenda") - (define-key e (kbd "c") "emacs-calc") - (define-key e (kbd "C-c") "emacs-calc") - (define-key e (kbd "m") "emacs-mu4e") - (define-key e (kbd "C-m") "emacs-mu4e") - - e)) - - - - -(define-key *root-map* (kbd "C-e") '*emacs-keymap*) -(define-key *root-map* (kbd "e") "emacs-client") -(define-key *root-map* (kbd "c") "emacs-shell") -(define-key *root-map* (kbd "C") "emacs-eshell") - - -(emacs-start-server nil) diff --git a/guix/jd/desktops/base.scm b/guix/jd/desktops/base.scm deleted file mode 100644 index 748e11d..0000000 --- a/guix/jd/desktops/base.scm +++ /dev/null @@ -1,249 +0,0 @@ -(define-module (jd desktops base) - #:use-module (jd home services polkit) - #:use-module (jd home services desktop) - #:use-module (jd home services emacs) - #:use-module (jd services polkit) - - #:use-module (gnu) - #:use-module (gnu home) - #:use-module (gnu home services) - #:use-module (gnu home services desktop) - #:use-module (gnu home services gnupg) - #:use-module (gnu home services xdg) - #:use-module (gnu home services sound) - #:use-module (gnu home services ssh) - #:use-module (gnu services) - #:use-module (guix packages) - - #:use-module (nongnu packages linux) - #:use-module (nongnu system linux-initrd)) - -(use-package-modules wm gnome networking virtualization - lisp lisp-xyz cups fonts gnupg android) - -(use-service-modules cups desktop networking ssh xorg - docker virtualization pm sound dbus - nix sddm guix) - -(define-public %jd-base-home-services - (list - ;; (service home-redshift-service-type - ;; (home-redshift-configuration - ;; (location-provider 'manual) - ;; (latitude 51.919438) - ;; (longitude 19.145136))) - ;; Poland - - (service home-dbus-service-type) - (service home-emacs-service-type) - (service home-desktop-service-type) - - (service home-openssh-service-type - (home-openssh-configuration - (hosts - (list (openssh-host (name "gammu") - (host-name "172.16.1.102") - (user "serwis") - (host-key-algorithms '("+ssh-rsa"))) - (openssh-host (name "net47") - (host-name "net47.abaks.pl") - (user "serwis") - (port 22001)))))) - - ;; Dont know why, but when i put home-gpg-agent-service-type as an - ;; extension in home-desktop-service-type service it doesn't work. - (service home-gpg-agent-service-type - (home-gpg-agent-configuration - (pinentry-program - (file-append pinentry-gnome3 "/bin/pinentry-gnome3")) - (ssh-support? #t) - (default-cache-ttl 28800) - (max-cache-ttl 28800) - (default-cache-ttl-ssh 28800) - (max-cache-ttl-ssh 28800))) - ;; (service home-polkit-gnome-service-type) - )) - - -(define-public %jakub-user - (user-account - (name "jakub") - (comment "Jakub Dlugosz") - (group "users") - (home-directory "/home/jakub") - (supplementary-groups '("wheel" ;; sudo - "netdev" ;; network devices - "kvm" - "libvirt" - "tty" - "input" - "docker" - "audio" ;; control audio devices - "video" ;; access to webcam - "dialout" ;; access to /dev/ttyUSBX devices - "adbusers" - )))) - -(define-public %jd-base-user-accounts - (cons* - %jakub-user - %base-user-accounts)) - -(define-public %stumpwm-packages - (list sbcl - sbcl-dbus - stumpwm+slynk - - sbcl-stumpwm-screenshot - sbcl-stumpwm-pamixer - sbcl-stumpwm-pass - - sbcl-stumpwm-cpu - sbcl-stumpwm-mem - sbcl-stumpwm-net - sbcl-stumpwm-battery-portable - sbcl-stumpwm-stumptray - - sbcl-stumpwm-ttf-fonts - - sbcl-drakma - sbcl-yason - - (list stumpwm "lib"))) - -(define-public %root-packages - (specifications->packages '("emacs" - "emacs-exwm" - "stow" - "bluez" - "bluez-alsa" - "exfat-utils" - "git" - "xf86-input-libinput" - "intel-vaapi-driver" - "libva-utils" ;; vainfo - ;; "nss-certs" -- it is in %base-packages from fdfd7667c66cf9ce746330f39bcd366e124460e1 - "nix"))) - -(define-public %jd-base-packages - (append %root-packages - ;; %stumpwm-packages - %base-packages)) - -(define-public %jd-base-services - (cons* - (service guix-home-service-type - `(("jakub" ,(home-environment - (services %jd-base-home-services))))) - - (service openssh-service-type) - - (service console-font-service-type - (map (lambda (tty) - (cons tty (file-append - font-terminus - "/share/consolefonts/ter-122n.psf.gz"))) - '("tty1" "tty2" "tty3" "tty4" "tty5" "tty6"))) - - (service screen-locker-service-type - (screen-locker-configuration - (name "swaylock") - (program (file-append swaylock "/bin/swaylock")) - (using-pam? #t) - (using-setuid? #f))) - - (service network-manager-service-type - (network-manager-configuration - (vpn-plugins (list network-manager-openvpn)))) - - (simple-service 'dbus-packages dbus-root-service-type (list blueman - virt-manager)) - (service bluetooth-service-type - (bluetooth-configuration - (auto-enable? #t))) - - (service containerd-service-type) - (service docker-service-type) - (service libvirt-service-type - (libvirt-configuration - (unix-sock-group "libvirt"))) - (service virtlog-service-type) - - (service cups-service-type - (cups-configuration - (web-interface? #t) - (extensions - (list cups-filters)))) - - (service thermald-service-type) - (service tlp-service-type - (tlp-configuration - (cpu-boost-on-ac? #t) - (wifi-pwr-on-bat? #t))) - - (service nix-service-type) - - polkit-network-manager-service - - (udev-rules-service 'android android-udev-rules - #:groups '("adbusers")) - - (udev-rules-service 'microbit (udev-rule - "69-microbit.rules" - (string-append "ACTION!=\"add|change\", GOTO=\"microbit_rules_end\"" - "SUBSYSTEM==\"usb\", ATTR{idVendor}==\"0d28\", ATTR{idProduct}==\"0204\", TAG+=\"uaccess\"" - "LABEL=\"microbit_rules_end\""))) - - ;; %desktop-services - (modify-services %desktop-services - (guix-service-type config => (guix-configuration - (inherit config) - (substitute-urls - (append (list "https://substitutes.nonguix.org") - %default-substitute-urls)) - (authorized-keys - (append (list (plain-file "non-guix.pub" - "(public-key (ecc (curve Ed25519) (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#)))")) - %default-authorized-guix-keys)))) - (delete network-manager-service-type) - ;; (delete mingetty-service-type) - (delete console-font-service-type) - - (delete pulseaudio-service-type) - (delete alsa-service-type) - (delete (if (string-prefix? "x86_64" - (or (%current-target-system) - (%current-system))) - gdm-service-type - sddm-service-type))))) - -;; Odin is a base for my operating systems -(define-public odin-free - (operating-system - (locale "en_US.utf8") - (timezone "Europe/Warsaw") - (keyboard-layout (keyboard-layout "pl")) - (host-name "odin") - - (users %jd-base-user-accounts) - (packages %jd-base-packages) - (services %jd-base-services) - - (bootloader (bootloader-configuration - (bootloader grub-bootloader) - (targets (list "/boot/efi")) - (keyboard-layout keyboard-layout))) - - (file-systems (cons* (file-system - (mount-point "/tmp") - (device "none") - (type "tmpfs") - (check? #f)) - %base-file-systems)))) - -(define-public odin-non-free - (operating-system - (inherit odin-free) - (kernel linux) - (initrd microcode-initrd) - (firmware (list linux-firmware)))) diff --git a/guix/jd/desktops/berserker.scm b/guix/jd/desktops/berserker.scm deleted file mode 100755 index 3d6b0df..0000000 --- a/guix/jd/desktops/berserker.scm +++ /dev/null @@ -1,17 +0,0 @@ -(define-module (jd desktops berserker) - #:use-module (jd desktops base) - #:use-module (jd packages linux) - #:use-module (jd utils) - #:use-module (gnu) - #:use-module (gnu home)) - -(define-public home - (home-environment - (services %jd-base-home-services))) - -(define-public system - (operating-system - (inherit odin-non-free) - (kernel-loadable-modules (list xmm7360-pci)) - (host-name "berserker"))) - diff --git a/guix/jd/desktops/mimir.scm b/guix/jd/desktops/mimir.scm deleted file mode 100644 index e5db0b7..0000000 --- a/guix/jd/desktops/mimir.scm +++ /dev/null @@ -1,14 +0,0 @@ -(define-module (jd desktops mimir) - #:use-module (jd desktops base) - #:use-module (gnu) - #:use-module (gnu home)) - -(define-public home - (home-environment - (services %jd-base-home-services))) - -(define-public system - (operating-system - (inherit odin-non-free) - (host-name "mimir"))) - diff --git a/guix/jd/home/services/desktop.scm b/guix/jd/home/services/desktop.scm deleted file mode 100644 index 393c2d0..0000000 --- a/guix/jd/home/services/desktop.scm +++ /dev/null @@ -1,198 +0,0 @@ -(define-module (jd home services desktop) - #:use-module (gnu packages) - #:use-module (gnu packages freedesktop) - #:use-module (gnu packages networking) - #:use-module (gnu packages syncthing) - #:use-module (gnu packages gnome) - #:use-module (gnu packages gnupg) - #:use-module (gnu services) - #:use-module (gnu services configuration) - #:use-module (gnu home services) - #:use-module (gnu home services shepherd) - #:use-module (gnu home services desktop) - #:use-module (gnu home services sound) - #:use-module (gnu home services xdg) - #:use-module (gnu home services gnupg) - #:use-module (gnu home services dotfiles) - #:use-module (guix gexp) - - #:use-module (jd packages fonts)) - -(define (desktop-profile-service config) - (append - (list font-terminus-ttf) - (specifications->packages '("sway" - ;; "swayfx" - "swaylock" - "swayidle" - "swaynotificationcenter" - "waybar" - "fuzzel" - "foot" - "mako" - "wl-clipboard" - "wlsunset" - "grimshot" - "swappy" - - "htop" - "distrobox" - - "udiskie" - ;; rest - "qutebrowser" - "ungoogled-chromium" - "firefox" - "tor-client" - "signal-desktop" - - "pulsemixer" - "pavucontrol" - "alsa-utils" - - "virt-manager" - - "flatpak" - "redshift" - "fontmanager" - - "polybar" - - "blueman" - - "nomacs" - - "xdg-utils" - "xdg-dbus-proxy" - "xdg-desktop-portal-gtk" - "xdg-desktop-portal-wlr" - "glib:bin" - "gtk+:bin" - "gnome-keyring" - "shared-mime-info" - "libnotify" - "dconf" - "hicolor-icon-theme" - - "dunst" - - ; "gimp" - ; "inkscape" - - "mpv" - "youtube-dl" - - "pamixer" - "playerctl" - "scrot" - "brightnessctl" - "upower" - "tlp" - "feh" - "alacritty" - - "curl" - "wget" - "zip" - "unzip" - "qrencode" - "trash-cli" - "pandoc" - "password-store" - "oath-toolkit" - ;; "pinentry" - - "syncthing" - "syncthing-gtk" - - "xmodmap" - "xrandr" - "arandr" - "xss-lock" - "libinput" - "xinput" - "xprop" - "rlwrap" - - "nheko" - "quassel" - "inkscape" - "gimp" - "libreoffice" - "steam")))) - -(define (desktop-environment-variables-service config) - `(("GTK_THEME" . "Adwaita:dark") - ("VISUAL" . "emacsclient") - ("EDITOR" . "emacsclient") - ("PATH" . "$HOME/.bin:$HOME/.local/bin:$HOME/.npm-global/bin:$PATH") - ("XDG_DATA_DIRS" . "$XDG_DATA_DIRS:$HOME/.local/share/flatpak/exports/share") - ("SBCL_HOME" . "/run/current-system/profile/lib/sbcl/") - - ;; Set Wayland-specific environment variables (taken from RDE) - ("XDG_CURRENT_DESKTOP" . "sway") - ("XDG_SESSION_TYPE" . "wayland") - ("RTC_USE_PIPEWIRE" . "true") - ("SDL_VIDEODRIVER" . "wayland") - ("MOZ_ENABLE_WAYLAND" . "1") - ("CLUTTER_BACKEND" . "wayland") - ("ELM_ENGINE" . "wayland_egl") - ("ECORE_EVAS_ENGINE" . "wayland-egl") - ("QT_QPA_PLATFORM" . "wayland-egl"))) ;; QT_QPA_PLATFORM=xcb - -(define (desktop-xdg-mime-applications-service config) - (home-xdg-mime-applications-configuration - (default '((inode/directory . emacsclient.desktop) - (application/pdf . emacsclient.desktop) - (x-scheme-handler/http= . firefox.desktop) - (x-scheme-handler/https= . firefox.desktop))) - ;; (desktop-entries - ;; (list (xdg-desktop-entry - ;; (file "emacs-desktop") - ;; (name "Emacs") - ;; (type 'application) - ;; (config - ;; '((exec . "emacsclient -a emacs %u")))))) - )) - -(define (desktop-gpg-agent-service config) - (home-gpg-agent-configuration - (pinentry-program - (file-append pinentry-gnome3 "/bin/pinentry-gnome3")) - (ssh-support? #t) - (default-cache-ttl 28800) - (max-cache-ttl 28800) - (default-cache-ttl-ssh 28800) - (max-cache-ttl-ssh 28800))) - -(define (desktop-gpg-agent-service config) - (home-gpg-agent-configuration - (pinentry-program - (file-append pinentry-gnome3 "/bin/pinentry-gnome3")) - (ssh-support? #t) - (default-cache-ttl 28800) - (max-cache-ttl 28800) - (default-cache-ttl-ssh 28800) - (max-cache-ttl-ssh 28800))) - -(define (desktop-dotfiles-service config) - (home-dotfiles-configuration - (directories '("./files")))) - -(define-public home-desktop-service-type - (service-type (name 'home-desktop) - (extensions (list (service-extension home-profile-service-type - desktop-profile-service) - (service-extension home-environment-variables-service-type - desktop-environment-variables-service) - (service-extension home-pipewire-service-type - (lambda (_) (home-pipewire-configuration))) - (service-extension home-xdg-mime-applications-service-type - desktop-xdg-mime-applications-service) - (service-extension home-gpg-agent-service-type - desktop-gpg-agent-service) - (service-extension home-dotfiles-service-type - desktop-dotfiles-service))) - (default-value #f) - (description "Runs desktop services."))) - diff --git a/guix/jd/home/services/emacs.scm b/guix/jd/home/services/emacs.scm deleted file mode 100644 index 15f0e68..0000000 --- a/guix/jd/home/services/emacs.scm +++ /dev/null @@ -1,113 +0,0 @@ -(define-module (jd home services emacs) - #:use-module (jd packages emacs) - - #:use-module (gnu packages) - #:use-module (gnu packages emacs) - - #:use-module (gnu services) - #:use-module (gnu services configuration) - #:use-module (gnu home services) - #:use-module (gnu home services shepherd) - #:use-module (gnu home services desktop) - - #:use-module (guix gexp) - #:use-module (guix packages) - #:use-module (guix profiles)) - -(define-configuration home-emacs-service-configuration - (emacs-package - (package emacs-next-pgtk) - "Emacs packages")) - -(define (emacs-profile-service config) - (append (list emacs-org-roam-ui - emacs-lsp-mode! - (home-emacs-service-configuration-emacs-package - config)) - (specifications->packages '("emacs-sway" - "emacs-shackle" - "emacs-ytdl" - "emacs-desktop-environment" - "emacs-exwm" - "emacs-perspective" - "emacs-mu4e-alert" - "mu" - "isync" - "emacs-htmlize" - "emacs-bluetooth" - "emacs-nov-el" - "emacs-password-store" - "emacs-mastodon" - "emacs-elfeed" - "emacs-pdf-tools" - "emacs-emms" - "emacs-all-the-icons-dired" - "emacs-vterm" - "emacs-restclient" - "emacs-magit" - "emacs-neotree" - "emacs-projectile" - "emacs-company-box" - "emacs-company" - "emacs-docker" - "emacs-yaml-mode" - "emacs-web-mode" - "emacs-flycheck" - "emacs-tide" - "emacs-cider" - "emacs-typescript-mode" - "emacs-pyvenv" - "emacs-geiser-guile" - "emacs-racket-mode" - "emacs-geiser-racket" - "emacs-geiser" - "emacs-sly" - "emacs-rainbow-delimiters" - "emacs-paredit" - ;; "emacs-lsp-ivy" - ;; "emacs-lsp-mode" - "emacs-org-caldav" - "emacs-org-pomodoro" - "emacs-org-roam" - "emacs-org-roam-bibtex" - "emacs-org-superstar" - "emacs-org" - "emacs-ox-pandoc" - "emacs-beacon" - "emacs-all-the-icons" - "emacs-which-key" - "emacs-counsel" - "emacs-ivy" - "emacs-hl-todo" - "emacs-diminish" - "emacs-solarized-theme" - "font-terminus" - "emacs-undo-tree" - "emacs-hydra" - "emacs-multiple-cursors" - "emacs-general" - "emacs-guix" - "emacs-doom-modeline" - "emacs-use-package")))) - -(define (emacs-shepherd-services config) - (list (shepherd-service - (documentation "Emacs daemon.") - (provision '(emacs)) - (start #~(make-forkexec-constructor - (list #$(file-append (home-emacs-service-configuration-emacs-package - config) - "/bin/emacs") - "--fg-daemon"))) - (stop #~(make-kill-destructor))))) - -(define-public home-emacs-service-type - (service-type (name 'home-emacs) - (extensions (list (service-extension home-profile-service-type - emacs-profile-service) - (service-extension home-shepherd-service-type - emacs-shepherd-services) - )) - (default-value (home-emacs-service-configuration)) - (description "Runs emacs daemon service."))) - diff --git a/guix/jd/home/services/polkit.scm b/guix/jd/home/services/polkit.scm deleted file mode 100644 index 327ee08..0000000 --- a/guix/jd/home/services/polkit.scm +++ /dev/null @@ -1,31 +0,0 @@ -(define-module (jd home services polkit) - #:use-module (gnu packages) - #:use-module (gnu packages polkit) - #:use-module (gnu services) - #:use-module (gnu services configuration) - #:use-module (gnu home services) - #:use-module (gnu home services shepherd) - #:use-module (guix gexp)) - - -(define (polkit-gnome-profile-service config) - (specifications->packages '("polkit-gnome"))) - -(define (polkit-gnome-shepherd-service config) - (list (shepherd-service - (documentation "Polkit gnome service.") - (provision '(polkit-gnome)) - (start #~(make-forkexec-constructor - (list #$(file-append polkit-gnome - "/libexec/polkit-gnome-authentication-agent-1")))) - (stop #~(make-kill-destructor))))) - -(define-public home-polkit-gnome-service-type - (service-type (name 'home-polkit-gnome) - (extensions (list (service-extension home-profile-service-type - polkit-gnome-profile-service) - (service-extension home-shepherd-service-type - polkit-gnome-shepherd-service))) - (default-value #f) - (description "Runs the PolicyKit-gnome service."))) - diff --git a/guix/jd/packages/emacs.scm b/guix/jd/packages/emacs.scm deleted file mode 100644 index 0b9b19d..0000000 --- a/guix/jd/packages/emacs.scm +++ /dev/null @@ -1,57 +0,0 @@ -(define-module (jd packages emacs) - #:use-module (gnu packages emacs-xyz) - #:use-module (gnu packages) - #:use-module (guix packages) - #:use-module (guix git-download) - #:use-module (guix build-system emacs) - #:use-module ((guix licenses) #:prefix license:) - #:export (emacs-org-roam-ui - emacs-lsp-mode!)) - - -(define emacs-org-roam-ui - (let ((commit "9474a254390b1e42488a1801fed5826b32a8030b") - (revision "0")) - (package - (name "emacs-org-roam-ui") - (version (git-version "0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/org-roam/org-roam-ui") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0v54vxh95izch74wz2dl2dkdqicbvshra55l6qvd4xl5qmfhpjdc")))) - (build-system emacs-build-system) - (arguments - `(#:include (cons "^out" %default-include))) - (propagated-inputs - (list emacs-org-roam emacs-websocket emacs-simple-httpd emacs-f)) - (home-page "https://github.com/org-roam/org-roam-ui") - (synopsis "A graphical frontend for your org-roam Zettelkasten") - (description " Org-Roam-UI is a frontend for exploring and interacting -with your @code{org-roam} notes. It is meant a successor of -@code{org-roam-server} that extends functionality of org-roam with a Web app -that runs side-by-side with Emacs.") - (license license:gpl3+)))) - - - -(define emacs-lsp-mode! - (let ((commit "808c4d0ab9f19bb92c56716cf59df89432b63f5d") - (revision "1")) - (package - (inherit emacs-lsp-mode) - (name "emacs-lsp-mode") - (version (git-version "8.0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacs-lsp/lsp-mode") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0ridjhzndwjj8947vabq05njgnns74hi69x77axgcbv1c4nasz2y"))))))) diff --git a/guix/jd/packages/fonts.scm b/guix/jd/packages/fonts.scm deleted file mode 100644 index fa70722..0000000 --- a/guix/jd/packages/fonts.scm +++ /dev/null @@ -1,25 +0,0 @@ -(define-module (jd packages fonts) - #:use-module (gnu packages) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system font) - #:use-module ((guix licenses) #:prefix license:)) - -(define-public font-terminus-ttf - (package - (name "font-terminus-ttf") - (version "4.49.3") - (source (origin - (method url-fetch) - (uri (string-append "https://files.ax86.net/terminus-ttf/files/" - version "/terminus-ttf-" version ".zip")) - (sha256 - (base32 - "0xvm4mcf0gx7df35swqwxb7a5h3z0gf6dkg6zy84b6nrk0fr5b8f")))) - (build-system font-build-system) - (home-page "https://files.ax86.net/terminus-ttf/") - (synopsis "Terminus TTF Font") - (description - "Terminus TTF is a TrueType version of Terminus Font, a fixed-width bitmap font optimized for long work with computers.") - (license license:gpl2+))) - diff --git a/guix/jd/packages/linux.scm b/guix/jd/packages/linux.scm deleted file mode 100644 index 94549c3..0000000 --- a/guix/jd/packages/linux.scm +++ /dev/null @@ -1,51 +0,0 @@ -(define-module (jd packages linux) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system linux-module) - #:use-module (guix git-download) - #:use-module (guix gexp) - #:use-module (gnu packages linux) - #:use-module (gnu packages pciutils) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages autotools) - #:use-module ((guix licenses) #:prefix license:)) - -(define-public xmm7360-pci - (package - (name "xmm7360-pci") - (version "0.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/xmm7360/xmm7360-pci.git") - (commit "a8ff2c6ceee84cbe74df8a78cfaa5a016d362ed4"))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1aals95hk76rgd21rknqc9qfjva6g6gwicw6wz19m20bn08bs2f3")))) - (build-system linux-module-build-system) - (arguments - (list - #:tests? #f - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'patch-makefile - (lambda _ - (substitute* (find-files - "." "^Makefile(\\.include)?$") - (("^ccflags-y := .*$") - "ccflags-y := -Wno-multichar -Wno-incompatible-pointer-types"))))))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("autoconf" ,autoconf) - ("automake" ,automake))) - (inputs - `(("kernel" ,linux-libre) - ("pciutils" ,pciutils))) - (synopsis "Kernel module for Intel XMM7360 LTE modem") - (description - "This package provides a kernel module for the Intel XMM7360 LTE modem, allowing it to function in Linux.") - (home-page "https://github.com/xmm7360/xmm7360-pci") - (license license:gpl3+))) - diff --git a/guix/jd/services/polkit.scm b/guix/jd/services/polkit.scm deleted file mode 100644 index 948500c..0000000 --- a/guix/jd/services/polkit.scm +++ /dev/null @@ -1,21 +0,0 @@ -(define-module (jd services polkit) - #:use-module (gnu services) - #:use-module (gnu services dbus) - #:use-module (gnu home services) - #:use-module (guix gexp)) - -(define polkit-network-manager - (file-union - "polkit-wheel" - `(("share/polkit-1/rules.d/50-org.freedesktop.NetworkManager.rules" - ,(plain-file - "50-org.freedesktop.NetworkManager.rules" - "polkit.addRule(function(action, subject) { - if (action.id.indexOf(\"org.freedesktop.NetworkManager.\") == 0 && - subject.isInGroup(\"netdev\")) { - return polkit.Result.YES; - } -});"))))) - -(define-public polkit-network-manager-service - (simple-service 'polkit-network-manager polkit-service-type (list polkit-network-manager))) diff --git a/guix/jd/utils.scm b/guix/jd/utils.scm deleted file mode 100644 index 72be6fc..0000000 --- a/guix/jd/utils.scm +++ /dev/null @@ -1,75 +0,0 @@ -(define-module (jd utils) - #:use-module (gnu system) - #:use-module (ice-9 match) - #:export (jd-search-patches - current-operating-system - current-home)) - -(define primitive-host-operating-system - "/etc/config.scm") - -(define-macro (define-combine-operating-systems name fields) - `(define (,name os-to-inherit-from os) - (operating-system - (inherit os-to-inherit-from) - ,@(map (lambda (field) - `(,field - (,(string->symbol - (string-append - "operating-system-" - (symbol->string field))) - os))) - fields)))) - -(define-combine-operating-systems combine-install-dest-informations - (bootloader mapped-devices file-systems)) - -(define (make-reconfigureable-os os) - (combine-install-dest-informations - os - (load primitive-host-operating-system))) - -(define (current-operating-system) - (make-reconfigureable-os - (module-ref - (resolve-module - `(jd desktops ,(string->symbol (gethostname)))) - 'system))) - -(define (current-home) - (module-ref - (resolve-module - `(jd desktops ,(string->symbol (gethostname)))) - 'home)) - -;; This code is copied and modified from (gnu packages) module. - -(define (make-custom-load-path dir-path) - (make-parameter - (map (lambda (directory) - (let ((custom-dir (string-append directory dir-path))) - (if (and (file-exists? custom-dir) - (file-is-directory? custom-dir)) - custom-dir - directory))) - %load-path))) - -(define (make-custom-searcher load-path) - (lambda (file-name) - (or (search-path (load-path) file-name) - (raise (string-append file-name - ": not found"))))) - -(define %jd-patch-path (make-custom-load-path "/jd/packages/patches")) -(define %jd-dot-files-path (make-custom-load-path "/jd/home/services/dotfiles")) - -(define (jd-search-patch file-name) - "Search the patch FILE-NAME. Raise an error if not found." - (or (search-path (%jd-patch-path) file-name) - (raise (string-append file-name - ": patch not found")))) - -(define-syntax-rule (jd-search-patches file-name ...) - "Return the list of absolute file names corresponding to each -FILE-NAME found in %JD-PATCH-PATH." - (list (jd-search-patch file-name) ...)) diff --git a/src/jd/config.scm b/src/jd/config.scm new file mode 100644 index 0000000..f79df44 --- /dev/null +++ b/src/jd/config.scm @@ -0,0 +1,23 @@ +(define-module (jd config) + #:use-module (jd host) + #:use-module (jd user) + #:use-module (rde features) + #:use-module (gnu services) + #:use-module (gnu system) + #:use-module (gnu services guix) + #:use-module (srfi srfi-1) + #:use-module (ice-9 match)) + + +(define-public jd-config + (rde-config + (integrate-he-in-os? #t) + (features + (append + (list (feature-nonfree-kernel)) + %host-features + %user-features)))) + +(define-public %os + (rde-config-operating-system jd-config)) + diff --git a/src/jd/features/mail.scm b/src/jd/features/mail.scm new file mode 100644 index 0000000..f5c3536 --- /dev/null +++ b/src/jd/features/mail.scm @@ -0,0 +1,115 @@ +(define-module (jd features mail) + #:use-module (rde packages) + #:use-module (rde exceptions) + #:use-module (rde features) + #:use-module (rde predicates) + #:use-module (rde features emacs) + #:use-module (rde features mail) + #:use-module ((rde features mail providers) #:prefix mail-providers:) + #:use-module (gnu packages mail) + #:use-module (gnu packages emacs-xyz) + #:use-module (rde packages emacs-xyz) + #:use-module (rde packages mail) + #:use-module (rde serializers elisp) + #:use-module (rde home services mail) + #:use-module (gnu services) + #:use-module (gnu services configuration) + #:use-module (gnu home services) + #:use-module (gnu home-services mail) + #:use-module (gnu home services mcron) + #:use-module (gnu home-services version-control) + #:use-module (gnu home services xdg) + + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (guix gexp) + #:use-module (guix deprecation) + #:use-module (guix diagnostics) + #:use-module (guix i18n) + + #:export (feature-l2md* feature-mail-mcron)) + +(define* (feature-l2md* + #:key + (l2md l2md)) + "Configure l2md MDA." + (ensure-pred file-like? l2md) + + (define (get-home-services config) + (require-value 'mail-directory-fn config) + (require-value 'mailing-lists config) + (define mail-dir ((get-value 'mail-directory-fn config) config)) + (define mls (filter (lambda (x) (eq? (mailing-list-synchronizer x) 'l2md)) + (get-value 'mailing-lists config))) + (define (get-repo-config ml) + (let ((repo-config (mailing-list-config ml))) + (if (eq? %unset-value (l2md-repo-maildir repo-config)) + (l2md-repo + (inherit repo-config) + (maildir (string-append + mail-dir "/lists/" (mailing-list-fqda ml) "/archive"))) + repo-config))) + ;; + ;; Applying patches + + (define add-ml-tag + (map (lambda (x) + (format + #f "notmuch tag +~a -- path:lists/~a/**" + ;; TODO: Use new tag not to retag already existing entities. + ;; Do it before new tag will be romved + ;; TODO: Fix order of items in post-new hook + (mailing-list-id x) (mailing-list-fqda x))) + mls)) + + (list + (simple-service + 'l2md-add-tags-to-mailing-list + home-notmuch-service-type + (home-notmuch-extension + (post-new + (list + #~(begin (for-each system '#$add-ml-tag)))))) + + (service + home-l2md-service-type + (home-l2md-configuration + (l2md l2md) + (oneshot 1) + (repos (map get-repo-config mls)))))) + + (feature + (name 'l2md) + (home-services-getter get-home-services) + (values `((l2md . ,l2md))))) + +(define* (feature-mail-mcron + #:key + (time-spec '(next-minute + (range 0 60 20)))) + "Configure mcron to invoke other email commands based on the other +features that have been enabled." + (define (get-home-services config) + (list + (when (get-value 'isync config) + (let* ((sync-cmd (list `(,((get-value 'mbsync config) config) "-a"))) + (notmuch-cmd (if (get-value 'notmuch config) + (list `(,(file-append (get-value 'notmuch config) "/bin/notmuch") + "new")) + (list))) + (l2md-cmd (if (get-value 'l2md config) + (list `(,(file-append (get-value 'l2md config) "/bin/l2md"))) + (list)))) + (simple-service + 'isync-mcron-job + home-mcron-service-type + (list + #~(job '#$time-spec + (lambda () + (setenv "DISPLAY" ":0") + #$@(map (lambda (x) `(system* ,@x)) + (append sync-cmd l2md-cmd notmuch-cmd)))))))))) + + (feature + (name 'mail-mcron) + (home-services-getter get-home-services))) diff --git a/src/jd/features/networking.scm b/src/jd/features/networking.scm new file mode 100644 index 0000000..59eeb90 --- /dev/null +++ b/src/jd/features/networking.scm @@ -0,0 +1,81 @@ +(define-module (jd features networking) + #:use-module (rde features) + #:use-module (rde predicates) + + #:use-module (gnu services) + #:use-module (gnu home services) + #:use-module (gnu home services shepherd) + #:use-module (rde home services i2p) + #:use-module (gnu services networking) + #:use-module (gnu system nss) + ;; #:use-module (rde system services networking) + #:use-module (rde system services accounts) + + #:use-module (gnu packages i2p) + #:use-module (gnu packages networking) + #:use-module (gnu packages ssh) + #:use-module (gnu packages gnome) + #:use-module (rde packages) + + #:use-module (guix gexp) + + #:export (feature-networking*)) + +(define* (feature-networking* + #:key + (iwd-autoconnect? #t) + (network-manager network-manager) + (network-manager-applet network-manager-applet) + (network-manager-vpn-plugins '()) + mdns?) + "Configure iwd and everything." + (ensure-pred file-like? network-manager) + (ensure-pred file-like? network-manager-applet) + + (define f-name 'networking) + (define (get-home-services config) + + (list + (simple-service 'network-manager-applet-package + home-profile-service-type + (list network-manager-applet)) + ;; TODO: Disable nm-applet notification by default + ;; gsettings set org.gnome.nm-applet disable-connected-notifications true + (simple-service + 'networking-nm-applet-shepherd-service + home-shepherd-service-type + (list + (shepherd-service + (provision '(nm-applet)) + (requirement '(dbus)) + (stop #~(make-kill-destructor)) + (start #~(make-forkexec-constructor + (list #$(file-append network-manager-applet "/bin/nm-applet") + "--indicator") + #:log-file (string-append + (getenv "XDG_STATE_HOME") "/log" + "/nm-applet.log")))))))) + + (define (get-system-services config) + (list + (service network-manager-service-type + (network-manager-configuration + (network-manager network-manager) + (vpn-plugins network-manager-vpn-plugins) + (shepherd-requirement '(iwd)))) + (service (@@ (rde system services networking) iwd-service-type) + ((@@ (rde system services networking) iwd-configuration) + (main-conf + `((Settings ((AutoConnect . ,iwd-autoconnect?))))))) + (service modem-manager-service-type) + (service usb-modeswitch-service-type))) + + (feature + (name f-name) + (values `((,f-name . #t) + ,@(if mdns? + `((name-service . ,%mdns-host-lookup-nss) + (mdns . #t)) + '()))) + (home-services-getter get-home-services) + (system-services-getter get-system-services))) diff --git a/src/jd/host.scm b/src/jd/host.scm new file mode 100644 index 0000000..7071a3f --- /dev/null +++ b/src/jd/host.scm @@ -0,0 +1,47 @@ +(define-module (jd host) + #:use-module (rde features base) + #:use-module (rde features system) + #:use-module (rde features wm) + #:use-module (gnu system file-systems) + #:use-module (gnu system mapped-devices) + #:use-module (ice-9 match)) + +(define-public %host-features + (list + (feature-host-info + #:host-name "berserker" + #:timezone "Europe/Warsaw") + (feature-file-systems + #:mapped-devices (list (mapped-device + (source (uuid + "1f2b1bf2-89fe-4e2c-8b40-c460572bb776")) + (target "crypthome") + (type luks-device-mapping))) + #:file-systems (list + (file-system + (mount-point "/") + (device (uuid + "c895e61e-1a5e-470f-b7aa-a502fc0b8596" + 'ext4)) + (type "ext4")) + (file-system + (mount-point "/boot/efi") + (device (uuid "9669-0171" + 'fat32)) + (type "vfat")) + (file-system + (mount-point "/home") + (device "/dev/mapper/crypthome") + (type "ext4") + (dependencies + (list (mapped-device + (source (uuid + "1f2b1bf2-89fe-4e2c-8b40-c460572bb776")) + (target "crypthome") + (type luks-device-mapping))))))) + (feature-kanshi + #:extra-config + `((profile laptop ((output eDP-1 enable))) + (profile docked ((output eDP-1 disable) + (output DP-3 enable))))) + (feature-hidpi))) diff --git a/src/jd/user.scm b/src/jd/user.scm new file mode 100644 index 0000000..7c54a30 --- /dev/null +++ b/src/jd/user.scm @@ -0,0 +1,507 @@ +(define-module (jd user) + #:use-module (gnu home services) + #:use-module (gnu home services shepherd) + #:use-module (gnu home-services ssh) + #:use-module (gnu home services xdg) + #:use-module (gnu packages) + #:use-module (gnu packages emacs-xyz) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages guile-xyz) + #:use-module (gnu services) + #:use-module (gnu services nix) + + #:use-module (guix channels) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix inferior) + #:use-module (guix packages) + + #:use-module (jd features mail) + #:use-module (jd features networking) + + #:use-module (nongnu packages linux) + #:use-module (nongnu system linux-initrd) + + #:use-module (rde features) + #:use-module (rde packages) + #:use-module (rde packages aspell) + + #:use-module (srfi srfi-1)) + + +(define-syntax-rule (use-rde-features-modules module ...) + (use-modules (rde features module) ...)) + +(define-syntax-rule (use-rde-home-services-modules module ...) + (use-modules (rde features module) ...)) + +(use-rde-features-modules + android base bittorrent clojure containers + documentation emacs emacs-xyz finance fontutils + gnupg gtk guile image-viewers irc keyboard + libreoffice linux llm mail markup networking ocaml + password-utils presets security-token shells + shellutils sourcehut ssh system terminals tmux uml + version-control video virtualization web-browsers wm xdg python) + +(use-rde-home-services-modules + emacs shells video wm) + +(define* (mail-acc id user #:optional (type 'migadu)) + "Make a simple mail-account with gmail type by default." + (mail-account + (id id) + (fqda user) + (type type))) + +(define* (mail-lst id fqda urls) + "Make a simple mailing-list." + (mailing-list + (id id) + (fqda fqda) + (config (l2md-repo + (name (symbol->string id)) + (urls urls))))) + +(define-public %base-features + (list + (feature-backlight #:step 10) + (feature-networking* #:network-manager-vpn-plugins (list network-manager-openvpn) + #:mdns? #t) + (feature-base-services) + (feature-base-packages) + (feature-desktop-services) + (feature-xdg + #:xdg-user-directories-configuration + (home-xdg-user-directories-configuration + (music "$HOME/music") + (videos "$HOME/videos") + (pictures "$HOME/pictures") + (documents "$HOME/documents") + (download "$HOME/downloads") + (publicshare "$HOME/sync") + (desktop "$HOME") + (templates "$HOME"))) + (feature-pipewire) + (feature-shepherd))) + +(define-public %desktop-features + (list + (feature-sway-run-on-tty #:sway-tty-number 2) + (feature-gtk3 #:gtk-theme (make-theme "Adwaita-dark" gnome-themes-extra)) + (feature-fonts #:default-font-size 14) + (feature-transmission #:auto-start? #f) + (feature-sway + #:extra-config + '((input type:touchpad + ((tap enabled) + (middle_emulation enabled))) + (workspace_layout tabbed) + (bindsym $mod+q layout tabbed) + (bindsym $mod+a layout stacking) + (bindsym $mod+z layout toggle split) + (default_border none) + (default_floating_border pixel 3) + ;; (default_border normal 3) + ;; (default_floating_border normal 3) + ;; (gaps inner 0) + (output * bg "#181818" solid_color) + (client.focused "#181818" "#383838" "#d8d8d8" "#7cafc2") + (client.focused_inactive "#181818" "#282828" "#b8b8b8" "#7cafc2") + (client.unfocused "#181818" "#282828" "#b8b8b8" "#7cafc2") + (client.urgent "#181818" "#ab4642" "#f8f8f8" "#181818") + (bindsym $mod+h focus left) + (bindsym $mod+j focus down) + (bindsym $mod+k focus up) + (bindsym $mod+l focus right) + + (unbindsym --to-code $mod+Shift+l) + (bindsym --to-code $mod+Escape exec $lock) + + (bindsym $mod+Shift+h move left) + (bindsym $mod+Shift+j move down) + (bindsym $mod+Shift+k move up) + (bindsym $mod+Shift+l move right))) + (feature-waybar + ;; #:base16-css base16-solarized-dark + #:waybar-modules + (list + (waybar-sway-workspaces + #:format-icons + `(,@(map + (lambda (x) (cons + (number->string x) + (number->string x))) + (iota 10 1)) + ("urgent" . ) + ("default" . ))) + (waybar-idle-inhibitor) + (waybar-temperature) + (waybar-cpu) + (waybar-battery #:intense? #f) + (waybar-tray) + (waybar-clock))) + (feature-foot) + (feature-yt-dlp) + (feature-libreoffice) + (feature-emacs-power-menu) + (feature-sway-screenshot) + (feature-swaynotificationcenter) + (feature-swayidle) + (feature-swaylock) + (feature-batsignal) + (feature-imv) + (feature-mpv) + (feature-librewolf) + (feature-ledger))) + +(define-public %mail-features + (list + (feature-isync #:isync-verbose #t) + (feature-mail-mcron) + (feature-l2md*) + (feature-msmtp))) + +(define-public %cli-features + (list + (feature-zsh #:enable-zsh-autosuggestions? #t) + (feature-git #:extra-config '((gpg ((program . "gpg"))))) + (feature-manpages) + (feature-vterm) + (feature-bash) + (feature-direnv) + (feature-guile) + (feature-ssh))) + +(define* (feature-emacs-personal-config) + (define f-name 'personal-emacs-config) + + (define (get-home-services config) + (list + (rde-elisp-configuration-service + f-name + config + `((with-eval-after-load 'geiser-mode + (defun jd/guix-repl () + (interactive) + (let ((geiser-guile-binary '("guix" "repl")) + (geiser-guile-load-path (cons "~/dotfiles/rde" geiser-guile-load-path))) + (geiser 'guile)))) + + (with-eval-after-load 'notmuch + (setq-default notmuch-search-oldest-first nil)) + + (with-eval-after-load 'paredit + (defun jd/paredit-RET () + "Wraps `paredit-RET' to provide a sensible minibuffer experience" + (interactive) + (cond + ((minibufferp) + (read--expression-try-read)) + ((and (eq major-mode 'inferior-emacs-lisp-mode) + (string-prefix-p "*ielm*" (buffer-name))) + (ielm-return)) + (t + (paredit-RET)))) + (bind-key "" 'jd/paredit-RET paredit-mode-map) + + (dolist (hook '(emacs-lisp-mode-hook + eval-expression-minibuffer-setup-hook + ielm-mode-hook + lisp-mode-hook + lisp-interaction-mode-hook + scheme-mode-hook + clojure-mode-hook)) + (add-hook hook 'paredit-mode))) + + (with-eval-after-load 'rainbow-delimiters + (dolist (hook '(emacs-lisp-mode-hook + eval-expression-minibuffer-setup-hook + ielm-mode-hook + lisp-mode-hook + lisp-interaction-mode-hook + scheme-mode-hook + clojure-mode-hook)) + (add-hook hook 'rainbow-delimiters-mode))) + + (with-eval-after-load 'undo-tree + (setq-default undo-tree-auto-save-history nil) + (global-undo-tree-mode 1)) + + (with-eval-after-load 'multiple-cursors + (setq-default mc/always-run-for-all t) + (global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines) + (global-set-key (kbd "C->") 'mc/mark-next-like-this) + (global-set-key (kbd "C-<") 'mc/mark-previous-like-this) + (global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)) + + (with-eval-after-load 'page-break-lines + (global-page-break-lines-mode 1)) + + (with-eval-after-load 'gptel + (setq gptel-model 'gpt-4o + gptel-backend (gptel-make-gh-copilot "Copilot"))) + + (with-eval-after-load 'simple + (add-hook 'after-init-hook (lambda () + (delete-selection-mode 1) + (pixel-scroll-precision-mode 0) + (electric-pair-mode 1) + (setq-default truncate-lines t) + (setq-default cursor-in-non-selected-windows 'hollow) + (setq-default cursor-type 'box) + ;; (set-face-attribute 'default nil :height 165) + ;; (require 'solarized-theme) + (require 'multiple-cursors) + (require 'undo-tree) + (require 'rainbow-delimiters) + (require 'paredit) + )) + (set-default 'display-fill-column-indicator-column 100) + (add-hook 'prog-mode-hook 'display-fill-column-indicator-mode) + (setq display-line-numbers-type 'relative) + (add-hook 'prog-mode-hook 'display-line-numbers-mode))) + #:elisp-packages + (strings->packages + "emacs-rainbow-mode" + "emacs-rainbow-delimiters" + "emacs-paredit" + "emacs-hl-todo" + "emacs-undo-tree" + "emacs-multiple-cursors" + ;; "emacs-swiper" + ;; "emacs-solarized-theme" + "emacs-nginx-mode" + "emacs-yaml-mode" + "emacs-org-present")))) + (feature + (name f-name) + (values `((,f-name . #t))) + (home-services-getter get-home-services))) + +(define-public %emacs-features + (list + (feature-emacs-modus-themes #:headings-scaling? #t + #:deuteranopia? #f) + (feature-emacs-citation #:global-bibliography (list "/home/jakub/Notes/Roam/references/master.bib")) + (feature-emacs-completion #:mini-frame? #f ;; Dziwne kurwa bledy + #:marginalia-align 'right) + (feature-emacs-corfu #:corfu-doc-auto #f) + (feature-emacs #:default-application-launcher? #t) + (feature-emacs-elfeed #:elfeed-org-files '("/home/jakub/Notes/Rss.org")) + (feature-emacs-erc #:erc-log? #t + #:erc-autojoin-channels-alist '((Libera.Chat "#rde") + (Libera.Chat "#systemcrafters") + (Libera.Chat "#lisp-pl") + (Libera.Chat "#hsp"))) + (feature-emacs-keycast #:turn-on? #f) + (feature-emacs-org-agenda #:org-agenda-files '("/home/jakub/Notes/Me.org" "/home/jakub/Notes/Work.org")) + (feature-emacs-org-dailies #:encrypted? #t) + (feature-emacs-org #:org-directory "/home/jakub/Notes" + #:org-indent? #f) + (feature-emacs-org-roam #:org-roam-directory "/home/jakub/Notes/Roam/slip-box") + (feature-emacs-spelling #:spelling-program (@ (gnu packages hunspell) hunspell) + #:spelling-dictionaries (list (@ (gnu packages hunspell) hunspell-dict-en) + (@ (gnu packages hunspell) hunspell-dict-pl)) + #:ispell-standard-dictionary "pl_PL") + (feature-emacs-dired #:extra-switches "-h") + (feature-emacs-appearance) + (feature-emacs-dashboard) + (feature-emacs-eglot) + (feature-emacs-eshell) + (feature-emacs-git) + (feature-emacs-gptel) + (feature-emacs-guix) + (feature-emacs-message) + (feature-emacs-monocle) + (feature-emacs-nov-el) + (feature-emacs-pdf-tools) + (feature-emacs-personal-config) + (feature-emacs-project) + (feature-emacs-time) + (feature-emacs-tramp) + (feature-emacs-vertico) + (feature-emacs-webpaste) + (feature-emacs-which-key) + (feature-emacs-battery) + (feature-notmuch) + (feature-plantuml) + (feature-compile))) + +(define %dev-features + (list + (feature-android) + (feature-clojure) + (feature-markdown) + (feature-python))) + +(define %virtualization-features + (list + (feature-distrobox) + (feature-podman) + (feature-qemu))) + +(define (feature-ssh-extra-config) + (feature-custom-services + #:feature-name-prefix 'jd-ssh-extra-config + #:home-services + (list + (simple-service + 'ssh-extra-config + home-ssh-service-type + (home-ssh-extension + (extra-config + (append + (list + (ssh-host + (host "jdlugosz.com") + (options + '((user . "root") + (port . 22) + (compression . #t)))) + (ssh-host + (host "amg.abaks.pl") + (options + '((user . "serwis") + (port . 22) + (compression . #t)))) + (ssh-host + (host "wifi-dev.abaks.pl") + (options + '((user . "serwis") + (port . 22) + (compression . #t))))))) + (toplevel-options + '((host-key-algorithms . "+ssh-rsa") + (pubkey-accepted-key-types . "+ssh-rsa")))))))) + +(define (feature-additional-services) + (feature-custom-services + #:feature-name-prefix 'jd-additional-services + #:system-services + (list (service nix-service-type)) + #:home-services + (list + (simple-service + 'home-environment-extra-variables + home-environment-variables-service-type + '(("XDG_DATA_DIRS" . "$XDG_DATA_DIRS:$HOME/.local/share/flatpak/exports/share"))) + ;; (simple-service + ;; 'home-nextcloud-package + ;; home-profile-service-type + ;; (list + ;; (@@ (gnu packages sync) nextcloud-client))) + (simple-service + 'nextcloud-shepherd-service + home-shepherd-service-type + (list + (shepherd-service + (provision `(nextcloud)) + (auto-start? #t) + (stop #~(make-kill-destructor)) + (start #~(make-forkexec-constructor + (list #$(program-file + "nextcloud" + #~(begin + (setenv "QT_QPA_PLATFORM" "wayland-egl;xcb") + (apply system* + (list + #$(file-append (@ (gnu packages sync) nextcloud-client) "/bin/nextcloud"))))))))))) + ;; (simple-service + ;; 'home-nextcloud-daemon) + (simple-service + 'home-profile-extra-packages + home-profile-service-type + (append + (list + (@ (gnu packages tree-sitter) tree-sitter-clojure) + (@ (gnu packages tree-sitter) tree-sitter-html)) + (strings->packages + "figlet" + "calibre" + + "libnotify" + + "flatpak" + + "alsa-utils" + "pavucontrol" + "imagemagick" + "obs" "obs-wlrobs" + "binutils" "make" "gdb" + + "hicolor-icon-theme" "adwaita-icon-theme" + "gnome-themes-extra" "papirus-icon-theme" + "arc-theme" + + "fd" + "nautilus" + "qbittorrent" + "kdenlive" "gimp" + "blender" + + "ripgrep" "curl")))))) + +(define-public (feature-nonfree-kernel) + (feature-kernel + #:kernel linux + #:firmware (list linux-firmware) + #:initrd microcode-initrd)) + +(define-public %all-features + (append + %base-features + %cli-features + %desktop-features + %dev-features + %emacs-features + %mail-features + %virtualization-features)) + +(define-public %user-features + (append + %all-features + (list + (feature-user-info + #:user-name "jakub" + #:full-name "Jakub Dlugosz" + #:email "me@jdlugosz.com" + #:user-initial-password-hash + "$6$C6xUaxw3xOpsPrBF$/nmP.SXpzoAYGu7CrcIMQ02S4f8QDNZTuAyaIZusmz4e3xXTdSYpt8D1WCaLXcAuhVJA5llPf9MH7L1TTlgG81" + #:emacs-advanced-user? #t) + (feature-gnupg + #:gpg-primary-key "83AD9E56AE266488CA2F2598BACE123052C9E77A") + (feature-security-token) + (feature-password-store + #:password-store-directory "/home/jakub/.password-store" + #:remote-password-store-url "ssh://git@jdlugosz.com:passwords") + (feature-mail-settings + #:mail-directory-fn (lambda (config) + (string-append (get-value 'home-directory config) "/Mail")) + #:mail-accounts (list + (mail-account + (id 'work) + (type 'migadu) + (fqda "me@jdlugosz.com") + (aliases '("admin@jdlugosz.com" "postmaster@jdlugosz.com")) + (pass-cmd "pass show mail/me@jdlugosz.com"))) + #:mailing-lists (list (mail-lst 'guile-devel "guile-devel@gnu.org" + '("https://yhetil.org/guile-devel/0")) + (mail-lst 'guix-devel "guix-devel@gnu.org" + '("https://yhetil.org/guix-devel/0")) + (mail-lst 'guix-bugs "guix-bugs@gnu.org" + '("https://yhetil.org/guix-bugs/0")) + (mail-lst 'guix-patches "guix-patches@gnu.org" + '("https://yhetil.org/guix-patches/1")))) + (feature-irc-settings #:irc-accounts (list + (irc-account + (id 'libera) + (network "irc.libera.chat") + (nick "jdlugosz963")))) + (feature-sourcehut + #:user-name-fn (const "jdlugosz963")) + (feature-keyboard + #:keyboard-layout (keyboard-layout "pl")) + (feature-ssh-extra-config) + (feature-additional-services)))) -- cgit v1.2.3