diff options
-rwxr-xr-x | .bin/chiaki | 21 | ||||
-rwxr-xr-x | .bin/oath | 14 | ||||
-rwxr-xr-x | .bin/whois-at-hsp | 84 | ||||
-rw-r--r-- | .config/guix/manifests/desktop.scm | 73 | ||||
-rw-r--r-- | .config/guix/manifests/emacs.scm | 126 | ||||
-rw-r--r-- | .config/sway/config | 193 | ||||
-rw-r--r-- | .config/waybar/config | 159 | ||||
-rw-r--r-- | .config/waybar/style.css | 205 | ||||
-rwxr-xr-x | .emacs.d/init.el | 10 | ||||
-rwxr-xr-x | .emacs.d/jd/jd-custom.el | 16 | ||||
-rwxr-xr-x | .emacs.d/jd/jd-keys.el | 10 | ||||
-rwxr-xr-x | .emacs.d/jd/jd-org.el | 2 | ||||
-rwxr-xr-x | .emacs.d/jd/jd-ui.el | 15 | ||||
-rw-r--r-- | guix/jd/desktops/base.scm | 128 | ||||
-rw-r--r-- | guix/jd/desktops/mimir.scm | 6 | ||||
-rw-r--r-- | guix/jd/home/services/desktop.scm | 178 | ||||
-rw-r--r-- | guix/jd/home/services/emacs.scm | 112 | ||||
-rw-r--r-- | guix/jd/packages/emacs.scm | 57 | ||||
-rw-r--r-- | guix/jd/utils.scm | 21 |
19 files changed, 1135 insertions, 295 deletions
diff --git a/.bin/chiaki b/.bin/chiaki new file mode 100755 index 0000000..5fa6547 --- /dev/null +++ b/.bin/chiaki | |||
@@ -0,0 +1,21 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | CHIAKI_SHELL=/tmp/.chiaki.nix | ||
4 | |||
5 | cat <<EOF > $CHIAKI_SHELL | ||
6 | let | ||
7 | nixgl = import (fetchTarball https://github.com/guibou/nixGL/archive/main.tar.gz) { }; | ||
8 | in | ||
9 | { nixpkgs ? import <nixpkgs> {} }: | ||
10 | with nixpkgs; mkShell { | ||
11 | buildInputs = [ | ||
12 | chiaki | ||
13 | nixgl.auto.nixGLDefault | ||
14 | ]; | ||
15 | shellHook = '' | ||
16 | nixGL chiaki && exit; | ||
17 | ''; | ||
18 | } | ||
19 | EOF | ||
20 | |||
21 | nix-shell $CHIAKI_SHELL | ||
diff --git a/.bin/oath b/.bin/oath new file mode 100755 index 0000000..7444993 --- /dev/null +++ b/.bin/oath | |||
@@ -0,0 +1,14 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | if [[ $1 ]]; then | ||
4 | PASS=$(oathtool -b --totp $(pass show "oath/$1")) | ||
5 | printf $PASS | wl-copy | ||
6 | echo "pass: $PASS" | ||
7 | echo "Password should be in your clipboard!" | ||
8 | else | ||
9 | echo "Usage: oath <pass>" | ||
10 | echo "Available pass:" | ||
11 | pass oath | ||
12 | fi | ||
13 | |||
14 | |||
diff --git a/.bin/whois-at-hsp b/.bin/whois-at-hsp new file mode 100755 index 0000000..0cd03f7 --- /dev/null +++ b/.bin/whois-at-hsp | |||
@@ -0,0 +1,84 @@ | |||
1 | #!/usr/bin/env -S guix shell guile guile-json -- guile --no-auto-compile -e main -s | ||
2 | -*- scheme -*- | ||
3 | !# | ||
4 | |||
5 | (use-modules (srfi srfi-1) | ||
6 | (ice-9 iconv) | ||
7 | (ice-9 receive) | ||
8 | (web client) | ||
9 | (json)) | ||
10 | |||
11 | (define whois-at-hsp-endpoint "https://whois.at.hsp.sh/api/now") | ||
12 | |||
13 | (define (http-get-serialize-json url) | ||
14 | (receive (response data) (http-request url) | ||
15 | (values (json-string->scm (bytevector->string data "UTF-8")) | ||
16 | response))) | ||
17 | |||
18 | (define (whois-data->users whois-data) | ||
19 | (assoc-ref whois-data "users")) | ||
20 | |||
21 | (define (whois-data->unknown-devices whois-data) | ||
22 | (assoc-ref whois-data "unknown_devices")) | ||
23 | |||
24 | (define (whois-data->head-count whois-data) | ||
25 | (assoc-ref whois-data "headcount")) | ||
26 | |||
27 | (define (whois-data->formated-users whois-data) | ||
28 | (let ((users (vector->list (whois-data->users whois-data)))) | ||
29 | (if (> (length users) 0) | ||
30 | (fold-right | ||
31 | (lambda (a b) (string-append a " " b)) | ||
32 | "" | ||
33 | users) | ||
34 | "No visible users!"))) | ||
35 | |||
36 | (define (whois-data->summary whois-data) | ||
37 | (string-append | ||
38 | "Unknown devices: " | ||
39 | (number->string (whois-data->unknown-devices whois-data)) | ||
40 | "\nUsers: [" (number->string (whois-data->head-count whois-data)) "] " | ||
41 | (whois-data->formated-users whois-data))) | ||
42 | |||
43 | (define (notify data) | ||
44 | (system* "notify-send" | ||
45 | "WHOIS AT HSP" | ||
46 | (whois-data->summary data))) | ||
47 | |||
48 | (define (command-line-option? option args) | ||
49 | (> (length (or (member option args) | ||
50 | '())) | ||
51 | 0)) | ||
52 | |||
53 | (define-syntax-rule (command-line-args-handle args default ((option ...) body ...) ...) | ||
54 | (let ((option? (lambda (o) (command-line-option? o args))) | ||
55 | (something-executed? #f)) | ||
56 | (when (or (option? option) ...) | ||
57 | (set! something-executed? #t) | ||
58 | body ...) ... | ||
59 | (when (not something-executed?) | ||
60 | default))) | ||
61 | |||
62 | (define (main args) | ||
63 | (let ((whois-data (http-get-serialize-json whois-at-hsp-endpoint))) | ||
64 | (command-line-args-handle args | ||
65 | (begin (display (whois-data->summary whois-data)) | ||
66 | (newline)) | ||
67 | (("-h" "--help") | ||
68 | (display (string-append "-h, --help Help message\n" | ||
69 | "-n, --notify Notification massage with whois information.\n" | ||
70 | "-u Get users\n" | ||
71 | "-H Get head count\n" | ||
72 | "-U Get unknown devices\n"))) | ||
73 | (("-n" "--notify") | ||
74 | (notify whois-data)) | ||
75 | (("-u") | ||
76 | (display (whois-data->formated-users whois-data)) | ||
77 | (newline)) | ||
78 | (("-H") | ||
79 | (display (whois-data->head-count whois-data)) | ||
80 | (newline)) | ||
81 | (("-U") | ||
82 | (display (whois-data->unknown-devices whois-data)) | ||
83 | (newline))))) | ||
84 | |||
diff --git a/.config/guix/manifests/desktop.scm b/.config/guix/manifests/desktop.scm deleted file mode 100644 index f238951..0000000 --- a/.config/guix/manifests/desktop.scm +++ /dev/null | |||
@@ -1,73 +0,0 @@ | |||
1 | (specifications->manifest | ||
2 | '("qutebrowser" | ||
3 | "ungoogled-chromium" | ||
4 | "firefox" | ||
5 | "tor-client" | ||
6 | |||
7 | "pulsemixer" | ||
8 | "pavucontrol" | ||
9 | "alsa-utils" | ||
10 | |||
11 | "virt-manager" | ||
12 | |||
13 | "flatpak" | ||
14 | "redshift" | ||
15 | "fontmanager" | ||
16 | |||
17 | "polybar" | ||
18 | |||
19 | "blueman" | ||
20 | |||
21 | "xdg-utils" | ||
22 | "xdg-dbus-proxy" | ||
23 | "xdg-desktop-portal-gtk" | ||
24 | "glib:bin" | ||
25 | "gtk+:bin" | ||
26 | "gnome-keyring" | ||
27 | "shared-mime-info" | ||
28 | "libnotify" | ||
29 | "dconf" | ||
30 | "hicolor-icon-theme" | ||
31 | |||
32 | "dunst" | ||
33 | |||
34 | "gimp" | ||
35 | "inkscape" | ||
36 | |||
37 | "mpv" | ||
38 | "youtube-dl" | ||
39 | |||
40 | "pamixer" | ||
41 | "playerctl" | ||
42 | "scrot" | ||
43 | "brightnessctl" | ||
44 | "upower" | ||
45 | "tlp" | ||
46 | "feh" | ||
47 | "alacritty" | ||
48 | |||
49 | "curl" | ||
50 | "wget" | ||
51 | "zip" | ||
52 | "unzip" | ||
53 | "qrencode" | ||
54 | "trash-cli" | ||
55 | "pandoc" | ||
56 | "password-store" | ||
57 | "pinentry" | ||
58 | |||
59 | "syncthing" | ||
60 | "syncthing-gtk" | ||
61 | |||
62 | "xmodmap" | ||
63 | "xrandr" | ||
64 | "arandr" | ||
65 | "xss-lock" | ||
66 | "libinput" | ||
67 | "xinput" | ||
68 | "xprop" | ||
69 | "rlwrap" | ||
70 | |||
71 | "nheko" | ||
72 | "quassel" | ||
73 | )) | ||
diff --git a/.config/guix/manifests/emacs.scm b/.config/guix/manifests/emacs.scm deleted file mode 100644 index db809eb..0000000 --- a/.config/guix/manifests/emacs.scm +++ /dev/null | |||
@@ -1,126 +0,0 @@ | |||
1 | ;; This file is auto-generated by Emacs function: jd/manifest-generate-to-file | ||
2 | (use-modules (gnu packages emacs-xyz) | ||
3 | (gnu packages) | ||
4 | (guix packages) | ||
5 | (guix git-download) | ||
6 | (guix build-system emacs) | ||
7 | ((guix licenses) #:prefix license:)) | ||
8 | |||
9 | |||
10 | (define-public emacs-org-roam-ui | ||
11 | (let ((commit "9474a254390b1e42488a1801fed5826b32a8030b") | ||
12 | (revision "0")) | ||
13 | (package | ||
14 | (name "emacs-org-roam-ui") | ||
15 | (version (git-version "0" revision commit)) | ||
16 | (source (origin | ||
17 | (method git-fetch) | ||
18 | (uri (git-reference | ||
19 | (url "https://github.com/org-roam/org-roam-ui") | ||
20 | (commit commit))) | ||
21 | (file-name (git-file-name name version)) | ||
22 | (sha256 | ||
23 | (base32 | ||
24 | "0v54vxh95izch74wz2dl2dkdqicbvshra55l6qvd4xl5qmfhpjdc")))) | ||
25 | (build-system emacs-build-system) | ||
26 | (arguments | ||
27 | `(#:include (cons "^out" %default-include))) | ||
28 | (propagated-inputs | ||
29 | (list emacs-org-roam emacs-websocket emacs-simple-httpd emacs-f)) | ||
30 | (home-page "https://github.com/org-roam/org-roam-ui") | ||
31 | (synopsis "A graphical frontend for your org-roam Zettelkasten") | ||
32 | (description " Org-Roam-UI is a frontend for exploring and interacting | ||
33 | with your @code{org-roam} notes. It is meant a successor of | ||
34 | @code{org-roam-server} that extends functionality of org-roam with a Web app | ||
35 | that runs side-by-side with Emacs.") | ||
36 | (license license:gpl3+)))) | ||
37 | |||
38 | |||
39 | |||
40 | (define emacs-lsp-mode--new | ||
41 | (let ((commit "808c4d0ab9f19bb92c56716cf59df89432b63f5d") | ||
42 | (revision "1")) | ||
43 | (package | ||
44 | (inherit emacs-lsp-mode) | ||
45 | (name "emacs-lsp-mode") | ||
46 | (version (git-version "8.0.1" revision commit)) | ||
47 | (source | ||
48 | (origin | ||
49 | (method git-fetch) | ||
50 | (uri (git-reference | ||
51 | (url "https://github.com/emacs-lsp/lsp-mode") | ||
52 | (commit commit))) | ||
53 | (file-name (git-file-name name version)) | ||
54 | (sha256 | ||
55 | (base32 "0ridjhzndwjj8947vabq05njgnns74hi69x77axgcbv1c4nasz2y"))))))) | ||
56 | |||
57 | |||
58 | (define emacs-packages | ||
59 | (specifications->manifest | ||
60 | '("emacs-ytdl" | ||
61 | "emacs-desktop-environment" | ||
62 | "emacs-exwm" | ||
63 | "emacs-perspective" | ||
64 | "emacs-mu4e-alert" | ||
65 | "mu" | ||
66 | "isync" | ||
67 | "emacs-htmlize" | ||
68 | "emacs-bluetooth" | ||
69 | "emacs-nov-el" | ||
70 | "emacs-password-store" | ||
71 | "emacs-mastodon" | ||
72 | "emacs-elfeed" | ||
73 | "emacs-pdf-tools" | ||
74 | "emacs-emms" | ||
75 | "emacs-all-the-icons-dired" | ||
76 | "emacs-vterm" | ||
77 | "emacs-restclient" | ||
78 | "emacs-magit" | ||
79 | "emacs-neotree" | ||
80 | "emacs-projectile" | ||
81 | "emacs-company-box" | ||
82 | "emacs-company" | ||
83 | "emacs-docker" | ||
84 | "emacs-yaml-mode" | ||
85 | "emacs-web-mode" | ||
86 | "emacs-flycheck" | ||
87 | "emacs-tide" | ||
88 | "emacs-cider" | ||
89 | "emacs-typescript-mode" | ||
90 | "emacs-pyvenv" | ||
91 | "emacs-geiser-guile" | ||
92 | "emacs-racket-mode" | ||
93 | "emacs-geiser-racket" | ||
94 | "emacs-geiser" | ||
95 | "emacs-sly" | ||
96 | "emacs-rainbow-delimiters" | ||
97 | "emacs-paredit" | ||
98 | ;; "emacs-lsp-ivy" | ||
99 | ;; "emacs-lsp-mode" | ||
100 | "emacs-org-roam" | ||
101 | "emacs-org-roam-bibtex" | ||
102 | "emacs-org-superstar" | ||
103 | "emacs-org" | ||
104 | "emacs-ox-pandoc" | ||
105 | "emacs-beacon" | ||
106 | "emacs-all-the-icons" | ||
107 | "emacs-which-key" | ||
108 | "emacs-counsel" | ||
109 | "emacs-ivy" | ||
110 | "emacs-hl-todo" | ||
111 | "emacs-diminish" | ||
112 | "emacs-solarized-theme" | ||
113 | "font-terminus" | ||
114 | "emacs-undo-tree" | ||
115 | "emacs-hydra" | ||
116 | "emacs-general" | ||
117 | "emacs-guix" | ||
118 | "emacs" | ||
119 | "emacs-use-package" | ||
120 | ))) | ||
121 | |||
122 | |||
123 | (concatenate-manifests | ||
124 | (list emacs-packages | ||
125 | (packages->manifest (list emacs-lsp-mode--new | ||
126 | emacs-org-roam-ui)))) | ||
diff --git a/.config/sway/config b/.config/sway/config new file mode 100644 index 0000000..2807f08 --- /dev/null +++ b/.config/sway/config | |||
@@ -0,0 +1,193 @@ | |||
1 | set $mod Mod4 | ||
2 | |||
3 | set $left h | ||
4 | set $down j | ||
5 | set $up k | ||
6 | set $right l | ||
7 | |||
8 | set $term alacritty | ||
9 | set $emacs emacsclient -c | ||
10 | set $menu fuzzel -r0 -b 282828f2 -C 458588f2 -B 3 -s 458588f2 -S 282828FF --font "Terminus:size=12" -p "run: " | ||
11 | |||
12 | set $laptop-display eDP-1 | ||
13 | set $generic-display HDMI-A-1 | ||
14 | set $primary-home-display 'Iiyama North America PLE2407HDSD 0x01010101' | ||
15 | set $secondary-home-display 'Dell Inc. DELL E190S M8VPV186CELI' | ||
16 | |||
17 | set $primary-display-layout $primary-home-display $generic-display $laptop-display | ||
18 | set $secondary-display-layout $secondary-home-display $laptop-display | ||
19 | |||
20 | output * bg SPOILER_33.png fill | ||
21 | |||
22 | output $laptop-display resolution 1920x1080 position 1920,0 | ||
23 | output $generic-display resolution 1920x1080 position 0,0 | ||
24 | output $primary-home-display resolution 1920x1080 position 0,0 | ||
25 | output $secondary-home-display resolution 1280x1024 position 1920,0 | ||
26 | set $opacity 0.9 | ||
27 | |||
28 | client.focused #002b36 #586e75 #eee8d5 #268bd2 | ||
29 | client.focused_inactive #002b36 #073642 #93a1a1 #268bd2 | ||
30 | client.unfocused #002b36 #073642 #93a1a1 #268bd2 | ||
31 | client.urgent #002b36 #dc322f #fdf6e3 #002b36 | ||
32 | |||
33 | input type:keyboard { | ||
34 | xkb_layout pl,us | ||
35 | } | ||
36 | |||
37 | input type:touchpad { | ||
38 | tap enabled | ||
39 | middle_emulation enabled | ||
40 | } | ||
41 | |||
42 | bindsym $mod+Shift+s output $laptop-display toggle | ||
43 | |||
44 | set $swaylock 'swaylock -f -c 000000 --font "Terminus"' | ||
45 | exec swayidle -w \ | ||
46 | timeout 280 $swaylock \ | ||
47 | timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ | ||
48 | before-sleep $swaylock | ||
49 | |||
50 | # inhibit_idle fullscreen | ||
51 | |||
52 | bindsym $mod+Escape exec $swaylock | ||
53 | |||
54 | bindsym XF86MonBrightnessUp exec brightnessctl set 5%+ | ||
55 | bindsym XF86MonBrightnessDown exec brightnessctl set 5%- | ||
56 | |||
57 | bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle | ||
58 | bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% | ||
59 | bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% | ||
60 | |||
61 | bindsym XF86AudioNext exec playerctl next | ||
62 | bindsym XF86AudioPrev exec playerctl previous | ||
63 | bindsym XF86AudioPlay exec playerctl play-pause | ||
64 | bindsym XF86AudioPause exec playerctl pause | ||
65 | |||
66 | bindsym print exec grimshot --notify copy area | ||
67 | bindsym $mod+print exec grimshot --notify copy output | ||
68 | |||
69 | bindsym $mod+Return exec $term | ||
70 | |||
71 | bindsym $mod+Shift+q kill | ||
72 | |||
73 | floating_modifier $mod normal | ||
74 | |||
75 | bindsym $mod+Shift+c reload | ||
76 | 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' | ||
77 | |||
78 | bindsym $mod+$left focus left | ||
79 | bindsym $mod+$down focus down | ||
80 | bindsym $mod+$up focus up | ||
81 | bindsym $mod+$right focus right | ||
82 | |||
83 | bindsym $mod+Shift+$left move left | ||
84 | bindsym $mod+Shift+$down move down | ||
85 | bindsym $mod+Shift+$up move up | ||
86 | bindsym $mod+Shift+$right move right | ||
87 | |||
88 | workspace 1 output $primary-display-layout | ||
89 | workspace 2 output $primary-display-layout | ||
90 | workspace 3 output $secondary-display-layout | ||
91 | workspace 4 output $secondary-display-layout | ||
92 | workspace 9 output $primary-display-layout | ||
93 | workspace 10 output $secondary-display-layout | ||
94 | |||
95 | bindsym $mod+1 workspace number 1 | ||
96 | bindsym $mod+2 workspace number 2 | ||
97 | bindsym $mod+3 workspace number 3 | ||
98 | bindsym $mod+4 workspace number 4 | ||
99 | bindsym $mod+5 workspace number 5 | ||
100 | bindsym $mod+6 workspace number 6 | ||
101 | bindsym $mod+7 workspace number 7 | ||
102 | bindsym $mod+8 workspace number 8 | ||
103 | bindsym $mod+9 workspace number 9 | ||
104 | bindsym $mod+0 workspace number 10 | ||
105 | |||
106 | bindsym $mod+Shift+1 move container to workspace number 1 | ||
107 | bindsym $mod+Shift+2 move container to workspace number 2 | ||
108 | bindsym $mod+Shift+3 move container to workspace number 3 | ||
109 | bindsym $mod+Shift+4 move container to workspace number 4 | ||
110 | bindsym $mod+Shift+5 move container to workspace number 5 | ||
111 | bindsym $mod+Shift+6 move container to workspace number 6 | ||
112 | bindsym $mod+Shift+7 move container to workspace number 7 | ||
113 | bindsym $mod+Shift+8 move container to workspace number 8 | ||
114 | bindsym $mod+Shift+9 move container to workspace number 9 | ||
115 | bindsym $mod+Shift+0 move container to workspace number 10 | ||
116 | |||
117 | assign [app_id="(firefox-default|qutebrowser|Chromium-browser)"] 2 | ||
118 | assign [instance="(chromium-browser)"] 2 | ||
119 | assign [instance="(spotify)"] 3 | ||
120 | assign [app_id=".blueman-manager-real"] 3 | ||
121 | assign [app_id="pavucontrol"] 3 | ||
122 | assign [app_id="(org.telegram.desktop)"] 4 | ||
123 | assign [app_id="vesktop"] 4 | ||
124 | assign [app_id="com.ktechpit.whatsie"] 4 | ||
125 | assign [instance="(discord)"] 4 | ||
126 | |||
127 | for_window [app_id="vesktop"] opacity $opacity | ||
128 | |||
129 | |||
130 | bindsym $mod+b splith | ||
131 | bindsym $mod+v splitv | ||
132 | |||
133 | bindsym $mod+s layout stacking | ||
134 | bindsym $mod+w layout tabbed | ||
135 | bindsym $mod+e layout toggle split | ||
136 | |||
137 | bindsym $mod+f fullscreen | ||
138 | bindsym $mod+Shift+space floating toggle | ||
139 | bindsym $mod+space focus mode_toggle | ||
140 | bindsym $mod+a focus parent | ||
141 | |||
142 | bindsym $mod+Shift+minus move scratchpad | ||
143 | bindsym $mod+minus scratchpad show | ||
144 | |||
145 | mode "resize" { | ||
146 | bindsym $left resize shrink width 10px | ||
147 | bindsym $down resize grow height 10px | ||
148 | bindsym $up resize shrink height 10px | ||
149 | bindsym $right resize grow width 10px | ||
150 | |||
151 | bindsym Return mode "default" | ||
152 | bindsym Control+g mode "default" | ||
153 | bindsym Escape mode "default" | ||
154 | } | ||
155 | bindsym $mod+r mode "resize" | ||
156 | |||
157 | set $default swaymsg mode default | ||
158 | mode "menu" { | ||
159 | bindsym --no-repeat e exec '$default; $emacs;' | ||
160 | bindsym --no-repeat w exec "$default; whois-at-hsp -n" | ||
161 | |||
162 | bindsym Return mode "default" | ||
163 | bindsym Control+g mode "default" | ||
164 | bindsym Escape mode "default" | ||
165 | |||
166 | } | ||
167 | bindsym $mod+o mode "menu" | ||
168 | |||
169 | |||
170 | workspace_layout tabbed | ||
171 | |||
172 | default_border normal 3 | ||
173 | gaps outer 0 | ||
174 | gaps inner 6 | ||
175 | font Terminus (TTF) 12 | ||
176 | corner_radius 4 | ||
177 | blur_xray disable | ||
178 | blur enable | ||
179 | layer_effects "waybar" blur enable | ||
180 | bindsym $mod+p exec $menu | ||
181 | |||
182 | |||
183 | # Taken from dawivil dotfiles. | ||
184 | exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway | ||
185 | |||
186 | # exec udiskie -t | ||
187 | exec mako --font "Terminus (TTF)" --outer-margin=5 --margin=3 --border-size=3 --default-timeout=7000 --background="#282828e0" | ||
188 | |||
189 | exec nm-applet --indicator | ||
190 | exec blueman-applet | ||
191 | exec waybar | ||
192 | exec udiskie -t | ||
193 | exec wlsunset -l 51.919438 -L 19.145136 | ||
diff --git a/.config/waybar/config b/.config/waybar/config new file mode 100644 index 0000000..5ebee30 --- /dev/null +++ b/.config/waybar/config | |||
@@ -0,0 +1,159 @@ | |||
1 | { | ||
2 | "layer": "top", | ||
3 | "position": "top", | ||
4 | |||
5 | "modules-left": [ | ||
6 | "sway/workspaces", | ||
7 | "sway/mode" | ||
8 | ], | ||
9 | |||
10 | "modules-right": [ | ||
11 | // "custom/whois", | ||
12 | "pulseaudio", | ||
13 | "network", | ||
14 | "memory", | ||
15 | "cpu", | ||
16 | "temperature", | ||
17 | "battery", | ||
18 | "sway/language", | ||
19 | "clock#date", | ||
20 | "clock#time", | ||
21 | "idle_inhibitor", | ||
22 | "tray" | ||
23 | ], | ||
24 | |||
25 | // Modules | ||
26 | "idle_inhibitor": { | ||
27 | "format": "{icon}", | ||
28 | "format-icons": { | ||
29 | "activated": "", | ||
30 | "deactivated": "" | ||
31 | } | ||
32 | }, | ||
33 | |||
34 | "battery": { | ||
35 | "interval": 10, | ||
36 | "states": { | ||
37 | "warning": 30, | ||
38 | "critical": 15 | ||
39 | }, | ||
40 | "format-time": "{H}:{M:02}", | ||
41 | "format": "{icon} {capacity}% ({time})", | ||
42 | "format-charging": " {capacity}% ({time})", | ||
43 | "format-charging-full": " {capacity}%", | ||
44 | "format-full": "{icon} {capacity}%", | ||
45 | "format-alt": "{icon} {power}W", | ||
46 | "format-icons": [ | ||
47 | "", | ||
48 | "", | ||
49 | "", | ||
50 | "", | ||
51 | "" | ||
52 | ], | ||
53 | "tooltip": false | ||
54 | }, | ||
55 | |||
56 | "clock#time": { | ||
57 | "interval": 10, | ||
58 | "format": "{:%H:%M}", | ||
59 | "tooltip": false | ||
60 | }, | ||
61 | |||
62 | "clock#date": { | ||
63 | "interval": 20, | ||
64 | "format": " {:%e %b %Y}", | ||
65 | "tooltip": false | ||
66 | //"tooltip-format": "{:%e %B %Y}" | ||
67 | }, | ||
68 | |||
69 | "cpu": { | ||
70 | "interval": 5, | ||
71 | "tooltip": false, | ||
72 | "format": " {usage}%", | ||
73 | "format-alt": " {load}", | ||
74 | "states": { | ||
75 | "warning": 70, | ||
76 | "critical": 90 | ||
77 | } | ||
78 | }, | ||
79 | |||
80 | "sway/language": { | ||
81 | "format": " {}", | ||
82 | "min-length": 5, | ||
83 | "on-click": "swaymsg 'input * xkb_switch_layout next'", | ||
84 | "tooltip": false | ||
85 | }, | ||
86 | |||
87 | "memory": { | ||
88 | "interval": 5, | ||
89 | "format": " {used:0.1f}G/{total:0.1f}G", | ||
90 | "states": { | ||
91 | "warning": 70, | ||
92 | "critical": 90 | ||
93 | }, | ||
94 | "tooltip": false | ||
95 | }, | ||
96 | |||
97 | "network": { | ||
98 | "interval": 5, | ||
99 | "format-wifi": " {essid} ({signalStrength}%)", | ||
100 | "format-ethernet": " {ifname}", | ||
101 | "format-disconnected": "No connection", | ||
102 | "format-alt": " {ipaddr}/{cidr}", | ||
103 | "tooltip": false | ||
104 | }, | ||
105 | |||
106 | "sway/mode": { | ||
107 | "format": "{}", | ||
108 | "tooltip": false | ||
109 | }, | ||
110 | |||
111 | "sway/window": { | ||
112 | "format": "{}", | ||
113 | "max-length": 30, | ||
114 | "tooltip": false | ||
115 | }, | ||
116 | |||
117 | "sway/workspaces": { | ||
118 | "disable-scroll-wraparound": true, | ||
119 | "smooth-scrolling-threshold": 4, | ||
120 | "enable-bar-scroll": true, | ||
121 | "format": "{name}" | ||
122 | }, | ||
123 | |||
124 | "pulseaudio": { | ||
125 | "format": "{icon} {volume}%", | ||
126 | "format-bluetooth": "{icon} {volume}%", | ||
127 | "format-muted": "", | ||
128 | "format-icons": { | ||
129 | "headphone": "", | ||
130 | "hands-free": "", | ||
131 | "headset": "", | ||
132 | "phone": "", | ||
133 | "portable": "", | ||
134 | "car": "", | ||
135 | "default": ["", ""] | ||
136 | }, | ||
137 | "scroll-step": 1, | ||
138 | "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle", | ||
139 | "tooltip": false | ||
140 | }, | ||
141 | |||
142 | "temperature": { | ||
143 | "critical-threshold": 90, | ||
144 | "interval": 5, | ||
145 | "format": "{icon} {temperatureC}°", | ||
146 | "format-icons": [ | ||
147 | "", | ||
148 | "", | ||
149 | "", | ||
150 | "", | ||
151 | "" | ||
152 | ], | ||
153 | "tooltip": false | ||
154 | }, | ||
155 | |||
156 | "tray": { | ||
157 | "icon-size": 18, | ||
158 | } | ||
159 | } | ||
diff --git a/.config/waybar/style.css b/.config/waybar/style.css new file mode 100644 index 0000000..53d732b --- /dev/null +++ b/.config/waybar/style.css | |||
@@ -0,0 +1,205 @@ | |||
1 | /* Keyframes */ | ||
2 | |||
3 | @keyframes blink-critical { | ||
4 | to { | ||
5 | /*color: @white;*/ | ||
6 | background-color: @critical; | ||
7 | } | ||
8 | } | ||
9 | |||
10 | |||
11 | /* Styles */ | ||
12 | |||
13 | /* Colors (gruvbox) */ | ||
14 | @define-color black #073642; | ||
15 | @define-color red #dc322f; | ||
16 | @define-color green #859900; | ||
17 | @define-color yellow #b58900; | ||
18 | @define-color blue #268bd2; | ||
19 | @define-color purple #d33682; | ||
20 | @define-color aqua #00afaf; | ||
21 | @define-color gray #1c1c1c; | ||
22 | @define-color brgray #928374; | ||
23 | @define-color brred #cb4b16; | ||
24 | @define-color brgreen #586e75; | ||
25 | @define-color bryellow #657b83; | ||
26 | @define-color brblue #839496; | ||
27 | @define-color brpurple #6c71c4; | ||
28 | @define-color braqua #93a1a1; | ||
29 | @define-color white #eee8d5; | ||
30 | @define-color bg1 #073642; | ||
31 | @define-color bg2 #002b36; | ||
32 | |||
33 | |||
34 | @define-color warning @bryellow; | ||
35 | @define-color critical @red; | ||
36 | @define-color mode @bg2; | ||
37 | @define-color unfocused @bg2; | ||
38 | @define-color focused @blue; | ||
39 | @define-color inactive @purple; | ||
40 | @define-color sound @green; | ||
41 | @define-color network @yellow; | ||
42 | @define-color memory @aqua; | ||
43 | @define-color cpu @blue; | ||
44 | @define-color temp @brpurple; | ||
45 | @define-color layout @green; | ||
46 | @define-color battery @yellow; | ||
47 | @define-color date @aqua; | ||
48 | @define-color time @bg2; | ||
49 | @define-color tray @bg2; | ||
50 | |||
51 | /* Reset all styles */ | ||
52 | * { | ||
53 | border: none; | ||
54 | border-radius: 0; | ||
55 | min-height: 0; | ||
56 | margin: 0; | ||
57 | padding: 0; | ||
58 | box-shadow: none; | ||
59 | text-shadow: none; | ||
60 | icon-shadow: none; | ||
61 | } | ||
62 | |||
63 | /* The whole bar */ | ||
64 | #waybar { | ||
65 | background: @bg2; | ||
66 | color: @white; | ||
67 | font-family: "Terminus (TTF)", FontAwesome; | ||
68 | font-size: 12pt; | ||
69 | } | ||
70 | |||
71 | /* Each module */ | ||
72 | #battery, | ||
73 | #clock, | ||
74 | #cpu, | ||
75 | #language, | ||
76 | #memory, | ||
77 | #mode, | ||
78 | #network, | ||
79 | #pulseaudio, | ||
80 | #temperature, | ||
81 | #tray, | ||
82 | #backlight, | ||
83 | #idle_inhibitor, | ||
84 | #disk, | ||
85 | #user, | ||
86 | #mpris { | ||
87 | padding-left: 8pt; | ||
88 | padding-right: 8pt; | ||
89 | } | ||
90 | |||
91 | /* Each critical module */ | ||
92 | #memory.critical, | ||
93 | #cpu.critical, | ||
94 | #temperature.critical, | ||
95 | #battery.critical.discharging { | ||
96 | animation-timing-function: linear; | ||
97 | animation-iteration-count: infinite; | ||
98 | animation-direction: alternate; | ||
99 | animation-name: blink-critical; | ||
100 | animation-duration: 1s; | ||
101 | } | ||
102 | |||
103 | /* Each warning */ | ||
104 | #network.disconnected, | ||
105 | #memory.warning, | ||
106 | #cpu.warning, | ||
107 | #temperature.warning, | ||
108 | #battery.warning.discharging { | ||
109 | color: @warning; | ||
110 | } | ||
111 | |||
112 | /* And now modules themselves in their respective order */ | ||
113 | |||
114 | /* Current sway mode (resize etc) */ | ||
115 | #mode { | ||
116 | color: @white; | ||
117 | background: @mode; | ||
118 | } | ||
119 | |||
120 | /* Workspaces stuff */ | ||
121 | #workspaces button { | ||
122 | /*font-weight: bold;*/ | ||
123 | padding-left: 2pt; | ||
124 | padding-right: 2pt; | ||
125 | color: @white; | ||
126 | background: @unfocused; | ||
127 | } | ||
128 | |||
129 | /* Inactive (on unfocused output) */ | ||
130 | #workspaces button.visible { | ||
131 | color: @white; | ||
132 | background: @inactive; | ||
133 | } | ||
134 | |||
135 | /* Active (on focused output) */ | ||
136 | #workspaces button.focused { | ||
137 | color: @black; | ||
138 | background: @focused; | ||
139 | } | ||
140 | |||
141 | /* Contains an urgent window */ | ||
142 | #workspaces button.urgent { | ||
143 | color: @black; | ||
144 | background: @warning; | ||
145 | } | ||
146 | |||
147 | /* Style when cursor is on the button */ | ||
148 | #workspaces button:hover { | ||
149 | background: @black; | ||
150 | color: @white; | ||
151 | } | ||
152 | |||
153 | #window { | ||
154 | margin-right: 35pt; | ||
155 | margin-left: 35pt; | ||
156 | } | ||
157 | |||
158 | #pulseaudio { | ||
159 | background: @sound; | ||
160 | color: @black; | ||
161 | } | ||
162 | |||
163 | #network { | ||
164 | background: @network; | ||
165 | color: @white; | ||
166 | } | ||
167 | |||
168 | #memory { | ||
169 | background: @memory; | ||
170 | color: @black; | ||
171 | } | ||
172 | |||
173 | #cpu { | ||
174 | background: @cpu; | ||
175 | color: @white; | ||
176 | } | ||
177 | |||
178 | #temperature { | ||
179 | background: @temp; | ||
180 | color: @black; | ||
181 | } | ||
182 | |||
183 | #language { | ||
184 | background: @layout; | ||
185 | color: @black; | ||
186 | } | ||
187 | |||
188 | #battery { | ||
189 | background: @battery; | ||
190 | color: @white; | ||
191 | } | ||
192 | |||
193 | #tray { | ||
194 | background: @tray; | ||
195 | } | ||
196 | |||
197 | #clock.date { | ||
198 | background: @date; | ||
199 | color: @black; | ||
200 | } | ||
201 | |||
202 | #clock.time { | ||
203 | background: @time; | ||
204 | color: @white; | ||
205 | } | ||
diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 96b81da..a0cb8a0 100755 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el | |||
@@ -3,7 +3,13 @@ | |||
3 | 3 | ||
4 | ;;; Code: | 4 | ;;; Code: |
5 | 5 | ||
6 | (setq gc-cons-threshold (* 50 1000 1000)) | 6 | ;; Minimize garbage collection during startup |
7 | (setq gc-cons-threshold most-positive-fixnum) | ||
8 | |||
9 | ;; Lower threshold back to 8 MiB (default is 800kB) | ||
10 | (add-hook 'emacs-startup-hook | ||
11 | (lambda () | ||
12 | (setq gc-cons-threshold (expt 2 23)))) | ||
7 | 13 | ||
8 | (defvar jd/manifest-list | 14 | (defvar jd/manifest-list |
9 | nil | 15 | nil |
@@ -119,7 +125,7 @@ | |||
119 | (when jd/exwm-p | 125 | (when jd/exwm-p |
120 | (require 'jd-exwm)) | 126 | (require 'jd-exwm)) |
121 | 127 | ||
122 | (setq gc-cons-threshold (* 2 1000 1000)) | 128 | ;; (setq gc-cons-threshold (* 2 1000 1000)) |
123 | 129 | ||
124 | ;;; init.el ends here | 130 | ;;; init.el ends here |
125 | (put 'upcase-region 'disabled nil) | 131 | (put 'upcase-region 'disabled nil) |
diff --git a/.emacs.d/jd/jd-custom.el b/.emacs.d/jd/jd-custom.el index f48f761..8383e41 100755 --- a/.emacs.d/jd/jd-custom.el +++ b/.emacs.d/jd/jd-custom.el | |||
@@ -39,6 +39,22 @@ | |||
39 | (erc :server "195.74.91.18" | 39 | (erc :server "195.74.91.18" |
40 | :port "6697")) | 40 | :port "6697")) |
41 | 41 | ||
42 | |||
43 | ;; Repair load paths when tramp try to connect to guix instances | ||
44 | (require 'tramp) | ||
45 | |||
46 | (connection-local-set-profile-variables | ||
47 | 'guix-system | ||
48 | '((tramp-remote-path . (tramp-own-remote-path)))) | ||
49 | |||
50 | (connection-local-set-profiles | ||
51 | '(:application tramp :protocol "sudo" :machine "localhost") | ||
52 | 'guix-system) | ||
53 | |||
54 | (connection-local-set-profiles | ||
55 | '(:application tramp :protocol "ssh" :machine "jdlugosz.com") | ||
56 | 'guix-system) | ||
57 | |||
42 | (provide 'jd-custom) | 58 | (provide 'jd-custom) |
43 | 59 | ||
44 | ;;; jd-custom.el ends here | 60 | ;;; jd-custom.el ends here |
diff --git a/.emacs.d/jd/jd-keys.el b/.emacs.d/jd/jd-keys.el index 7c0d6b2..26a6445 100755 --- a/.emacs.d/jd/jd-keys.el +++ b/.emacs.d/jd/jd-keys.el | |||
@@ -16,6 +16,16 @@ | |||
16 | ;; (evil-set-initial-state 'exwm-mode 'emacs) | 16 | ;; (evil-set-initial-state 'exwm-mode 'emacs) |
17 | ;; (evil-mode 1)) | 17 | ;; (evil-mode 1)) |
18 | 18 | ||
19 | (jd/use-package multiple-cursors "emacs-multiple-cursors" | ||
20 | :config | ||
21 | (global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines) | ||
22 | (global-set-key (kbd "C->") 'mc/mark-next-like-this) | ||
23 | (global-set-key (kbd "C-<") 'mc/mark-previous-like-this) | ||
24 | (global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)) | ||
25 | |||
26 | (jd/use-package shackle "emacs-shackle") | ||
27 | (jd/use-package sway "emacs-sway") | ||
28 | |||
19 | (jd/use-package general "emacs-general" | 29 | (jd/use-package general "emacs-general" |
20 | :config | 30 | :config |
21 | (general-create-definer jd/leader-key-def | 31 | (general-create-definer jd/leader-key-def |
diff --git a/.emacs.d/jd/jd-org.el b/.emacs.d/jd/jd-org.el index f511846..a9565f3 100755 --- a/.emacs.d/jd/jd-org.el +++ b/.emacs.d/jd/jd-org.el | |||
@@ -16,6 +16,8 @@ | |||
16 | (let ((d (or date "+0d"))) | 16 | (let ((d (or date "+0d"))) |
17 | (org-insert-time-stamp (org-read-date nil t d)))) | 17 | (org-insert-time-stamp (org-read-date nil t d)))) |
18 | 18 | ||
19 | (jd/use-package org-pomodoro "emacs-org-pomodoro") | ||
20 | |||
19 | (jd/use-package org "emacs-org" | 21 | (jd/use-package org "emacs-org" |
20 | :pin org | 22 | :pin org |
21 | :commands (org-capture org-agenda) | 23 | :commands (org-capture org-agenda) |
diff --git a/.emacs.d/jd/jd-ui.el b/.emacs.d/jd/jd-ui.el index f75711b..f3a39bc 100755 --- a/.emacs.d/jd/jd-ui.el +++ b/.emacs.d/jd/jd-ui.el | |||
@@ -11,11 +11,13 @@ | |||
11 | (menu-bar-mode -1) | 11 | (menu-bar-mode -1) |
12 | (set-fringe-mode 10) | 12 | (set-fringe-mode 10) |
13 | 13 | ||
14 | (jd/add-package-to-manifest "font-terminus") | 14 | (set-frame-parameter (selected-frame) 'alpha '(92 . 92)) |
15 | 15 | (add-to-list 'default-frame-alist '(alpha . (92 . 92))) | |
16 | 16 | ||
17 | (custom-set-faces | 17 | (custom-set-faces |
18 | '(default ((t (:inherit nil :height 100 :family "Terminus"))))) | 18 | '(default ((t (:inherit nil :height 125 :family "Terminus")))) |
19 | '(line-number ((t (:inherit nil :height 125 :family "Terminus")))) | ||
20 | '(line-number-current-line ((t (:inherit nil :height 125 :family "Terminus"))))) | ||
19 | 21 | ||
20 | (add-hook 'prog-mode-hook 'menu-bar--display-line-numbers-mode-relative) | 22 | (add-hook 'prog-mode-hook 'menu-bar--display-line-numbers-mode-relative) |
21 | 23 | ||
@@ -27,9 +29,14 @@ | |||
27 | 29 | ||
28 | (require 'diminish) | 30 | (require 'diminish) |
29 | 31 | ||
32 | (jd/use-package doom-modeline "emacs-doom-modeline" | ||
33 | :config | ||
34 | (doom-modeline-mode)) | ||
35 | |||
30 | (jd/use-package solarized-theme "emacs-solarized-theme" | 36 | (jd/use-package solarized-theme "emacs-solarized-theme" |
31 | :config | 37 | :config |
32 | (load-theme 'solarized-selenized-black t)) | 38 | (load-theme 'solarized-dark-high-contrast t)) |
39 | |||
33 | 40 | ||
34 | (jd/use-package diminish "emacs-diminish") | 41 | (jd/use-package diminish "emacs-diminish") |
35 | 42 | ||
diff --git a/guix/jd/desktops/base.scm b/guix/jd/desktops/base.scm index db95939..c613c26 100644 --- a/guix/jd/desktops/base.scm +++ b/guix/jd/desktops/base.scm | |||
@@ -1,6 +1,7 @@ | |||
1 | (define-module (jd desktops base) | 1 | (define-module (jd desktops base) |
2 | #:use-module (jd home services polkit) | 2 | #:use-module (jd home services polkit) |
3 | #:use-module (jd home services desktop) | 3 | #:use-module (jd home services desktop) |
4 | #:use-module (jd home services emacs) | ||
4 | #:use-module (jd services polkit) | 5 | #:use-module (jd services polkit) |
5 | 6 | ||
6 | #:use-module (gnu) | 7 | #:use-module (gnu) |
@@ -9,61 +10,46 @@ | |||
9 | #:use-module (gnu home services desktop) | 10 | #:use-module (gnu home services desktop) |
10 | #:use-module (gnu home services gnupg) | 11 | #:use-module (gnu home services gnupg) |
11 | #:use-module (gnu home services xdg) | 12 | #:use-module (gnu home services xdg) |
13 | #:use-module (gnu home services sound) | ||
12 | #:use-module (gnu services) | 14 | #:use-module (gnu services) |
15 | #:use-module (guix packages) | ||
13 | 16 | ||
14 | #:use-module (nongnu packages linux) | 17 | #:use-module (nongnu packages linux) |
15 | #:use-module (nongnu system linux-initrd)) | 18 | #:use-module (nongnu system linux-initrd)) |
16 | 19 | ||
17 | (use-package-modules wm gnome gnupg networking virtualization | 20 | (use-package-modules wm gnome networking virtualization |
18 | lisp lisp-xyz cups) | 21 | lisp lisp-xyz cups fonts gnupg) |
19 | 22 | ||
20 | (use-service-modules cups desktop networking ssh xorg | 23 | (use-service-modules cups desktop networking ssh xorg |
21 | docker virtualization pm sound dbus | 24 | docker virtualization pm sound dbus |
22 | nix) | 25 | nix sddm) |
23 | 26 | ||
24 | (define-public %jd-base-home-services | 27 | (define-public %jd-base-home-services |
25 | (list | 28 | (list |
26 | (service home-xdg-mime-applications-service-type | 29 | ;; (service home-redshift-service-type |
27 | (home-xdg-mime-applications-configuration | 30 | ;; (home-redshift-configuration |
28 | (default '((inode/directory . emacs-desktop.desktop) | 31 | ;; (location-provider 'manual) |
29 | (application/pdf . emacs-desktop.desktop))) | 32 | ;; (latitude 51.919438) |
30 | (desktop-entries | 33 | ;; (longitude 19.145136))) |
31 | (list (xdg-desktop-entry | 34 | ;; Poland |
32 | (file "emacs-desktop") | ||
33 | (name "Emacs") | ||
34 | (type 'application) | ||
35 | (config | ||
36 | '((exec . "emacsclient -a emacs %u")))))))) | ||
37 | |||
38 | (service home-redshift-service-type | ||
39 | (home-redshift-configuration | ||
40 | (location-provider 'manual) | ||
41 | (latitude 51.919438) | ||
42 | (longitude 19.145136))) ;; Poland | ||
43 | |||
44 | (simple-service 'some-useful-env-vars-service | ||
45 | home-environment-variables-service-type | ||
46 | `(("GTK_THEME" . "Adwaita:dark") | ||
47 | ("VISUAL" . "emacsclient") | ||
48 | ("EDITOR" . "emacsclient") | ||
49 | ("PATH" . "$HOME/.bin:$HOME/.npm-global/bin:$PATH") | ||
50 | ("XDG_DATA_DIRS" . "$XDG_DATA_DIRS:$HOME/.local/share/flatpak/exports/share") | ||
51 | ("SBCL_HOME" . "/run/current-system/profile/lib/sbcl/"))) | ||
52 | |||
53 | (service home-gpg-agent-service-type | ||
54 | (home-gpg-agent-configuration | ||
55 | (pinentry-program | ||
56 | (file-append pinentry "/bin/pinentry")) | ||
57 | (ssh-support? #t) | ||
58 | (default-cache-ttl 28800) | ||
59 | (max-cache-ttl 28800) | ||
60 | (default-cache-ttl-ssh 28800) | ||
61 | (max-cache-ttl-ssh 28800))) | ||
62 | 35 | ||
63 | (service home-dbus-service-type) | 36 | (service home-dbus-service-type) |
64 | 37 | (service home-emacs-service-type) | |
65 | (service home-desktop-service-type) | 38 | (service home-desktop-service-type) |
66 | (service home-polkit-gnome-service-type))) | 39 | |
40 | ;; Dont know why, but when i put home-gpg-agent-service-type as an | ||
41 | ;; extension in home-desktop-service-type service it doesn't work. | ||
42 | (service home-gpg-agent-service-type | ||
43 | (home-gpg-agent-configuration | ||
44 | (pinentry-program | ||
45 | (file-append pinentry-gnome3 "/bin/pinentry-gnome3")) | ||
46 | (ssh-support? #t) | ||
47 | (default-cache-ttl 28800) | ||
48 | (max-cache-ttl 28800) | ||
49 | (default-cache-ttl-ssh 28800) | ||
50 | (max-cache-ttl-ssh 28800))) | ||
51 | ;; (service home-polkit-gnome-service-type) | ||
52 | )) | ||
67 | 53 | ||
68 | 54 | ||
69 | (define-public %jakub-user | 55 | (define-public %jakub-user |
@@ -82,7 +68,6 @@ | |||
82 | "audio" ;; control audio devices | 68 | "audio" ;; control audio devices |
83 | "video" ;; access to webcam | 69 | "video" ;; access to webcam |
84 | "dialout" ;; access to /dev/ttyUSBX devices | 70 | "dialout" ;; access to /dev/ttyUSBX devices |
85 | "adbusers" | ||
86 | )))) | 71 | )))) |
87 | 72 | ||
88 | (define-public %jd-base-user-accounts | 73 | (define-public %jd-base-user-accounts |
@@ -105,6 +90,8 @@ | |||
105 | sbcl-stumpwm-battery-portable | 90 | sbcl-stumpwm-battery-portable |
106 | sbcl-stumpwm-stumptray | 91 | sbcl-stumpwm-stumptray |
107 | 92 | ||
93 | sbcl-stumpwm-ttf-fonts | ||
94 | |||
108 | sbcl-drakma | 95 | sbcl-drakma |
109 | sbcl-yason | 96 | sbcl-yason |
110 | 97 | ||
@@ -121,21 +108,54 @@ | |||
121 | "xf86-input-libinput" | 108 | "xf86-input-libinput" |
122 | "intel-vaapi-driver" | 109 | "intel-vaapi-driver" |
123 | "libva-utils" ;; vainfo | 110 | "libva-utils" ;; vainfo |
124 | "nss-certs" | 111 | ;; "nss-certs" -- it is in %base-packages from fdfd7667c66cf9ce746330f39bcd366e124460e1 |
125 | "nix"))) | 112 | "nix"))) |
126 | 113 | ||
127 | (define-public %jd-base-packages | 114 | (define-public %jd-base-packages |
128 | (append %root-packages | 115 | (append %root-packages |
129 | %stumpwm-packages | 116 | ;; %stumpwm-packages |
130 | %base-packages)) | 117 | %base-packages)) |
131 | 118 | ||
132 | (define-public %jd-base-services | 119 | (define-public %jd-base-services |
133 | (cons* | 120 | (cons* |
134 | (service openssh-service-type) | 121 | (service openssh-service-type) |
135 | 122 | ||
136 | (set-xorg-configuration | 123 | ;; (set-xorg-configuration |
137 | (xorg-configuration ;for Xorg | 124 | ;; (xorg-configuration ;for Xorg |
138 | (keyboard-layout (keyboard-layout "pl")))) | 125 | ;; (keyboard-layout (keyboard-layout "pl")))) |
126 | ;; (service greetd-service-type | ||
127 | ;; (greetd-configuration | ||
128 | ;; ;; We need to give the greeter user these permissions, otherwise | ||
129 | ;; ;; Sway will crash on launch. | ||
130 | ;; (greeter-supplementary-groups (list "video" "input")) | ||
131 | ;; (terminals | ||
132 | ;; (list (greetd-terminal-configuration | ||
133 | ;; (terminal-vt "1") | ||
134 | ;; (terminal-switch #t)) | ||
135 | ;; (greetd-terminal-configuration | ||
136 | ;; (terminal-vt "2")) | ||
137 | ;; (greetd-terminal-configuration | ||
138 | ;; (terminal-vt "3")) | ||
139 | ;; (greetd-terminal-configuration | ||
140 | ;; (terminal-vt "4")) | ||
141 | ;; (greetd-terminal-configuration | ||
142 | ;; (terminal-vt "5")) | ||
143 | ;; (greetd-terminal-configuration | ||
144 | ;; (terminal-vt "6")))))) | ||
145 | |||
146 | (service console-font-service-type | ||
147 | (map (lambda (tty) | ||
148 | (cons tty (file-append | ||
149 | font-terminus | ||
150 | "/share/consolefonts/ter-112n"))) | ||
151 | '("tty1" "tty2" "tty3" "tty4" "tty5" "tty6"))) | ||
152 | |||
153 | (service screen-locker-service-type | ||
154 | (screen-locker-configuration | ||
155 | (name "swaylock") | ||
156 | (program (file-append swaylock "/bin/swaylock")) | ||
157 | (using-pam? #t) | ||
158 | (using-setuid? #f))) | ||
139 | 159 | ||
140 | (service network-manager-service-type | 160 | (service network-manager-service-type |
141 | (network-manager-configuration | 161 | (network-manager-configuration |
@@ -180,7 +200,17 @@ | |||
180 | (append (list (plain-file "non-guix.pub" | 200 | (append (list (plain-file "non-guix.pub" |
181 | "(public-key (ecc (curve Ed25519) (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#)))")) | 201 | "(public-key (ecc (curve Ed25519) (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#)))")) |
182 | %default-authorized-guix-keys)))) | 202 | %default-authorized-guix-keys)))) |
183 | (delete network-manager-service-type)))) | 203 | (delete network-manager-service-type) |
204 | ;; (delete mingetty-service-type) | ||
205 | (delete console-font-service-type) | ||
206 | |||
207 | (delete pulseaudio-service-type) | ||
208 | (delete alsa-service-type) | ||
209 | (delete (if (string-prefix? "x86_64" | ||
210 | (or (%current-target-system) | ||
211 | (%current-system))) | ||
212 | gdm-service-type | ||
213 | sddm-service-type))))) | ||
184 | 214 | ||
185 | ;; Odin is a base for my operating systems | 215 | ;; Odin is a base for my operating systems |
186 | (define-public odin-free | 216 | (define-public odin-free |
diff --git a/guix/jd/desktops/mimir.scm b/guix/jd/desktops/mimir.scm index 742f8c5..7d9823d 100644 --- a/guix/jd/desktops/mimir.scm +++ b/guix/jd/desktops/mimir.scm | |||
@@ -18,17 +18,17 @@ | |||
18 | 18 | ||
19 | (swap-devices (list (swap-space | 19 | (swap-devices (list (swap-space |
20 | (target (uuid | 20 | (target (uuid |
21 | "658793cb-d374-426e-bcd5-00d032b003a0"))))) | 21 | "5402ec34-85b8-4716-9c37-3d38c452ef98"))))) |
22 | 22 | ||
23 | (file-systems (cons* (file-system | 23 | (file-systems (cons* (file-system |
24 | (mount-point "/boot/efi") | 24 | (mount-point "/boot/efi") |
25 | (device (uuid "64D8-134F" | 25 | (device (uuid "1A88-DB36" |
26 | 'fat32)) | 26 | 'fat32)) |
27 | (type "vfat")) | 27 | (type "vfat")) |
28 | (file-system | 28 | (file-system |
29 | (mount-point "/") | 29 | (mount-point "/") |
30 | (device (uuid | 30 | (device (uuid |
31 | "1f9304b0-5623-4248-ab66-534b5ac85876" | 31 | "640c44ea-125f-4410-a8de-3ec0fb3656c4" |
32 | 'ext4)) | 32 | 'ext4)) |
33 | (type "ext4")) %base-file-systems)))) | 33 | (type "ext4")) %base-file-systems)))) |
34 | 34 | ||
diff --git a/guix/jd/home/services/desktop.scm b/guix/jd/home/services/desktop.scm index bb4916e..c53377f 100644 --- a/guix/jd/home/services/desktop.scm +++ b/guix/jd/home/services/desktop.scm | |||
@@ -4,51 +4,165 @@ | |||
4 | #:use-module (gnu packages networking) | 4 | #:use-module (gnu packages networking) |
5 | #:use-module (gnu packages syncthing) | 5 | #:use-module (gnu packages syncthing) |
6 | #:use-module (gnu packages gnome) | 6 | #:use-module (gnu packages gnome) |
7 | #:use-module (gnu packages gnupg) | ||
7 | #:use-module (gnu services) | 8 | #:use-module (gnu services) |
8 | #:use-module (gnu services configuration) | 9 | #:use-module (gnu services configuration) |
9 | #:use-module (gnu home services) | 10 | #:use-module (gnu home services) |
10 | #:use-module (gnu home services shepherd) | 11 | #:use-module (gnu home services shepherd) |
11 | #:use-module (gnu home services desktop) | 12 | #:use-module (gnu home services desktop) |
13 | #:use-module (gnu home services sound) | ||
14 | #:use-module (gnu home services xdg) | ||
15 | #:use-module (gnu home services gnupg) | ||
12 | #:use-module (guix gexp)) | 16 | #:use-module (guix gexp)) |
13 | 17 | ||
14 | (define (desktop-profile-service config) | 18 | (define (desktop-profile-service config) |
15 | (specifications->packages '("udiskie" | 19 | (specifications->packages '(;; sway |
20 | "swayfx" | ||
21 | "swaylock" | ||
22 | "swayidle" | ||
23 | "waybar" | ||
24 | "fuzzel" | ||
25 | "foot" | ||
26 | "mako" | ||
27 | "wl-clipboard" | ||
28 | "wlsunset" | ||
29 | "grimshot" | ||
30 | |||
31 | "udiskie" | ||
32 | ;; rest | ||
33 | "qutebrowser" | ||
34 | "ungoogled-chromium" | ||
35 | "firefox" | ||
36 | "tor-client" | ||
37 | "signal-desktop" | ||
38 | |||
39 | "pulsemixer" | ||
40 | "pavucontrol" | ||
41 | "alsa-utils" | ||
42 | |||
43 | "virt-manager" | ||
44 | |||
45 | "flatpak" | ||
46 | "redshift" | ||
47 | "fontmanager" | ||
48 | |||
49 | "polybar" | ||
50 | |||
51 | "blueman" | ||
52 | |||
53 | "xdg-utils" | ||
54 | "xdg-dbus-proxy" | ||
55 | "xdg-desktop-portal-gtk" | ||
56 | "xdg-desktop-portal-wlr" | ||
57 | "glib:bin" | ||
58 | "gtk+:bin" | ||
59 | "gnome-keyring" | ||
60 | "shared-mime-info" | ||
61 | "libnotify" | ||
62 | "dconf" | ||
63 | "hicolor-icon-theme" | ||
64 | |||
65 | "dunst" | ||
66 | |||
67 | "gimp" | ||
68 | "inkscape" | ||
69 | |||
70 | "mpv" | ||
71 | "youtube-dl" | ||
72 | |||
73 | "pamixer" | ||
74 | "playerctl" | ||
75 | "scrot" | ||
76 | "brightnessctl" | ||
77 | "upower" | ||
78 | "tlp" | ||
79 | "feh" | ||
80 | "alacritty" | ||
81 | |||
82 | "curl" | ||
83 | "wget" | ||
84 | "zip" | ||
85 | "unzip" | ||
86 | "qrencode" | ||
87 | "trash-cli" | ||
88 | "pandoc" | ||
89 | "password-store" | ||
90 | "oath-toolkit" | ||
91 | ;; "pinentry" | ||
92 | |||
93 | "syncthing" | ||
16 | "syncthing-gtk" | 94 | "syncthing-gtk" |
17 | "network-manager-applet"))) | 95 | |
18 | 96 | "xmodmap" | |
19 | (define (desktop-shepherd-services config) | 97 | "xrandr" |
20 | (list (shepherd-service | 98 | "arandr" |
21 | (documentation "Udiskie daemon with tray.") | 99 | "xss-lock" |
22 | (provision '(udiskie)) | 100 | "libinput" |
23 | (start #~(make-forkexec-constructor | 101 | "xinput" |
24 | (list #$(file-append udiskie | 102 | "xprop" |
25 | "/bin/udiskie") | 103 | "rlwrap" |
26 | "-t"))) | 104 | |
27 | (stop #~(make-kill-destructor))) | 105 | "nheko" |
28 | 106 | "quassel"))) | |
29 | (shepherd-service | 107 | |
30 | (documentation "Syncthing daemon with tray.") | 108 | (define (desktop-environment-variables-service config) |
31 | (provision '(syncthing-gtk)) | 109 | `(("GTK_THEME" . "Adwaita:dark") |
32 | (start #~(make-forkexec-constructor | 110 | ("VISUAL" . "emacsclient") |
33 | (list #$(file-append syncthing-gtk | 111 | ("EDITOR" . "emacsclient") |
34 | "/bin/syncthing-gtk") | 112 | ("PATH" . "$HOME/.bin:$HOME/.npm-global/bin:$PATH") |
35 | "-m"))) | 113 | ("XDG_DATA_DIRS" . "$XDG_DATA_DIRS:$HOME/.local/share/flatpak/exports/share") |
36 | (stop #~(make-kill-destructor))) | 114 | ("SBCL_HOME" . "/run/current-system/profile/lib/sbcl/") |
37 | 115 | ||
38 | (shepherd-service | 116 | ;; Set Wayland-specific environment variables (taken from RDE) |
39 | (documentation "NetworkManager tray.") | 117 | ("XDG_CURRENT_DESKTOP" . "sway") |
40 | (provision '(nm-applet)) | 118 | ("XDG_SESSION_TYPE" . "wayland") |
41 | (start #~(make-forkexec-constructor | 119 | ("RTC_USE_PIPEWIRE" . "true") |
42 | (list #$(file-append network-manager-applet | 120 | ("SDL_VIDEODRIVER" . "wayland") |
43 | "/bin/nm-applet")))) | 121 | ("MOZ_ENABLE_WAYLAND" . "1") |
44 | (stop #~(make-kill-destructor))))) | 122 | ("CLUTTER_BACKEND" . "wayland") |
123 | ("ELM_ENGINE" . "wayland_egl") | ||
124 | ("ECORE_EVAS_ENGINE" . "wayland-egl") | ||
125 | ("QT_QPA_PLATFORM" . "wayland-egl"))) | ||
126 | |||
127 | (define (desktop-xdg-mime-applications-service config) | ||
128 | (home-xdg-mime-applications-configuration | ||
129 | (default '((inode/directory . emacsclient.desktop) | ||
130 | (application/pdf . emacsclient.desktop) | ||
131 | (x-scheme-handler/http= . firefox.desktop) | ||
132 | (x-scheme-handler/https= . firefox.desktop))) | ||
133 | ;; (desktop-entries | ||
134 | ;; (list (xdg-desktop-entry | ||
135 | ;; (file "emacs-desktop") | ||
136 | ;; (name "Emacs") | ||
137 | ;; (type 'application) | ||
138 | ;; (config | ||
139 | ;; '((exec . "emacsclient -a emacs %u")))))) | ||
140 | )) | ||
141 | |||
142 | (define (desktop-gpg-agent-service config) | ||
143 | (home-gpg-agent-configuration | ||
144 | (pinentry-program | ||
145 | (file-append pinentry-gnome3 "/bin/pinentry-gnome3")) | ||
146 | (ssh-support? #t) | ||
147 | (default-cache-ttl 28800) | ||
148 | (max-cache-ttl 28800) | ||
149 | (default-cache-ttl-ssh 28800) | ||
150 | (max-cache-ttl-ssh 28800))) | ||
151 | |||
45 | 152 | ||
46 | (define-public home-desktop-service-type | 153 | (define-public home-desktop-service-type |
47 | (service-type (name 'home-udiskie) | 154 | (service-type (name 'home-desktop) |
48 | (extensions (list (service-extension home-profile-service-type | 155 | (extensions (list (service-extension home-profile-service-type |
49 | desktop-profile-service) | 156 | desktop-profile-service) |
50 | (service-extension home-shepherd-service-type | 157 | (service-extension home-environment-variables-service-type |
51 | desktop-shepherd-services))) | 158 | desktop-environment-variables-service) |
159 | (service-extension home-pipewire-service-type | ||
160 | (lambda (_) (home-pipewire-configuration))) | ||
161 | (service-extension home-xdg-mime-applications-service-type | ||
162 | desktop-xdg-mime-applications-service) | ||
163 | (service-extension home-gpg-agent-service-type | ||
164 | desktop-gpg-agent-service) | ||
165 | )) | ||
52 | (default-value #f) | 166 | (default-value #f) |
53 | (description "Runs desktop services."))) | 167 | (description "Runs desktop services."))) |
54 | 168 | ||
diff --git a/guix/jd/home/services/emacs.scm b/guix/jd/home/services/emacs.scm new file mode 100644 index 0000000..5eb74e8 --- /dev/null +++ b/guix/jd/home/services/emacs.scm | |||
@@ -0,0 +1,112 @@ | |||
1 | (define-module (jd home services emacs) | ||
2 | #:use-module (jd packages emacs) | ||
3 | |||
4 | #:use-module (gnu packages) | ||
5 | #:use-module (gnu packages emacs) | ||
6 | |||
7 | #:use-module (gnu services) | ||
8 | #:use-module (gnu services configuration) | ||
9 | #:use-module (gnu home services) | ||
10 | #:use-module (gnu home services shepherd) | ||
11 | #:use-module (gnu home services desktop) | ||
12 | |||
13 | #:use-module (guix gexp) | ||
14 | #:use-module (guix packages) | ||
15 | #:use-module (guix profiles)) | ||
16 | |||
17 | (define-configuration home-emacs-service-configuration | ||
18 | (emacs-package | ||
19 | (package emacs-next-pgtk) | ||
20 | "Emacs packages")) | ||
21 | |||
22 | (define (emacs-profile-service config) | ||
23 | (append (list emacs-org-roam-ui | ||
24 | emacs-lsp-mode! | ||
25 | (home-emacs-service-configuration-emacs-package | ||
26 | config)) | ||
27 | (specifications->packages '("emacs-sway" | ||
28 | "emacs-shackle" | ||
29 | "emacs-ytdl" | ||
30 | "emacs-desktop-environment" | ||
31 | "emacs-exwm" | ||
32 | "emacs-perspective" | ||
33 | "emacs-mu4e-alert" | ||
34 | "mu" | ||
35 | "isync" | ||
36 | "emacs-htmlize" | ||
37 | "emacs-bluetooth" | ||
38 | "emacs-nov-el" | ||
39 | "emacs-password-store" | ||
40 | "emacs-mastodon" | ||
41 | "emacs-elfeed" | ||
42 | "emacs-pdf-tools" | ||
43 | "emacs-emms" | ||
44 | "emacs-all-the-icons-dired" | ||
45 | "emacs-vterm" | ||
46 | "emacs-restclient" | ||
47 | "emacs-magit" | ||
48 | "emacs-neotree" | ||
49 | "emacs-projectile" | ||
50 | "emacs-company-box" | ||
51 | "emacs-company" | ||
52 | "emacs-docker" | ||
53 | "emacs-yaml-mode" | ||
54 | "emacs-web-mode" | ||
55 | "emacs-flycheck" | ||
56 | "emacs-tide" | ||
57 | "emacs-cider" | ||
58 | "emacs-typescript-mode" | ||
59 | "emacs-pyvenv" | ||
60 | "emacs-geiser-guile" | ||
61 | "emacs-racket-mode" | ||
62 | "emacs-geiser-racket" | ||
63 | "emacs-geiser" | ||
64 | "emacs-sly" | ||
65 | "emacs-rainbow-delimiters" | ||
66 | "emacs-paredit" | ||
67 | ;; "emacs-lsp-ivy" | ||
68 | ;; "emacs-lsp-mode" | ||
69 | "emacs-org-pomodoro" | ||
70 | "emacs-org-roam" | ||
71 | "emacs-org-roam-bibtex" | ||
72 | "emacs-org-superstar" | ||
73 | "emacs-org" | ||
74 | "emacs-ox-pandoc" | ||
75 | "emacs-beacon" | ||
76 | "emacs-all-the-icons" | ||
77 | "emacs-which-key" | ||
78 | "emacs-counsel" | ||
79 | "emacs-ivy" | ||
80 | "emacs-hl-todo" | ||
81 | "emacs-diminish" | ||
82 | "emacs-solarized-theme" | ||
83 | "font-terminus" | ||
84 | "emacs-undo-tree" | ||
85 | "emacs-hydra" | ||
86 | "emacs-multiple-cursors" | ||
87 | "emacs-general" | ||
88 | "emacs-guix" | ||
89 | "emacs-doom-modeline" | ||
90 | "emacs-use-package")))) | ||
91 | |||
92 | (define (emacs-shepherd-services config) | ||
93 | (list (shepherd-service | ||
94 | (documentation "Emacs daemon.") | ||
95 | (provision '(emacs)) | ||
96 | (start #~(make-forkexec-constructor | ||
97 | (list #$(file-append (home-emacs-service-configuration-emacs-package | ||
98 | config) | ||
99 | "/bin/emacs") | ||
100 | "--fg-daemon"))) | ||
101 | (stop #~(make-kill-destructor))))) | ||
102 | |||
103 | (define-public home-emacs-service-type | ||
104 | (service-type (name 'home-emacs) | ||
105 | (extensions (list (service-extension home-profile-service-type | ||
106 | emacs-profile-service) | ||
107 | (service-extension home-shepherd-service-type | ||
108 | emacs-shepherd-services) | ||
109 | )) | ||
110 | (default-value (home-emacs-service-configuration)) | ||
111 | (description "Runs emacs daemon service."))) | ||
112 | |||
diff --git a/guix/jd/packages/emacs.scm b/guix/jd/packages/emacs.scm new file mode 100644 index 0000000..0b9b19d --- /dev/null +++ b/guix/jd/packages/emacs.scm | |||
@@ -0,0 +1,57 @@ | |||
1 | (define-module (jd packages emacs) | ||
2 | #:use-module (gnu packages emacs-xyz) | ||
3 | #:use-module (gnu packages) | ||
4 | #:use-module (guix packages) | ||
5 | #:use-module (guix git-download) | ||
6 | #:use-module (guix build-system emacs) | ||
7 | #:use-module ((guix licenses) #:prefix license:) | ||
8 | #:export (emacs-org-roam-ui | ||
9 | emacs-lsp-mode!)) | ||
10 | |||
11 | |||
12 | (define emacs-org-roam-ui | ||
13 | (let ((commit "9474a254390b1e42488a1801fed5826b32a8030b") | ||
14 | (revision "0")) | ||
15 | (package | ||
16 | (name "emacs-org-roam-ui") | ||
17 | (version (git-version "0" revision commit)) | ||
18 | (source (origin | ||
19 | (method git-fetch) | ||
20 | (uri (git-reference | ||
21 | (url "https://github.com/org-roam/org-roam-ui") | ||
22 | (commit commit))) | ||
23 | (file-name (git-file-name name version)) | ||
24 | (sha256 | ||
25 | (base32 | ||
26 | "0v54vxh95izch74wz2dl2dkdqicbvshra55l6qvd4xl5qmfhpjdc")))) | ||
27 | (build-system emacs-build-system) | ||
28 | (arguments | ||
29 | `(#:include (cons "^out" %default-include))) | ||
30 | (propagated-inputs | ||
31 | (list emacs-org-roam emacs-websocket emacs-simple-httpd emacs-f)) | ||
32 | (home-page "https://github.com/org-roam/org-roam-ui") | ||
33 | (synopsis "A graphical frontend for your org-roam Zettelkasten") | ||
34 | (description " Org-Roam-UI is a frontend for exploring and interacting | ||
35 | with your @code{org-roam} notes. It is meant a successor of | ||
36 | @code{org-roam-server} that extends functionality of org-roam with a Web app | ||
37 | that runs side-by-side with Emacs.") | ||
38 | (license license:gpl3+)))) | ||
39 | |||
40 | |||
41 | |||
42 | (define emacs-lsp-mode! | ||
43 | (let ((commit "808c4d0ab9f19bb92c56716cf59df89432b63f5d") | ||
44 | (revision "1")) | ||
45 | (package | ||
46 | (inherit emacs-lsp-mode) | ||
47 | (name "emacs-lsp-mode") | ||
48 | (version (git-version "8.0.1" revision commit)) | ||
49 | (source | ||
50 | (origin | ||
51 | (method git-fetch) | ||
52 | (uri (git-reference | ||
53 | (url "https://github.com/emacs-lsp/lsp-mode") | ||
54 | (commit commit))) | ||
55 | (file-name (git-file-name name version)) | ||
56 | (sha256 | ||
57 | (base32 "0ridjhzndwjj8947vabq05njgnns74hi69x77axgcbv1c4nasz2y"))))))) | ||
diff --git a/guix/jd/utils.scm b/guix/jd/utils.scm index 5be7fa9..f4a35c1 100644 --- a/guix/jd/utils.scm +++ b/guix/jd/utils.scm | |||
@@ -3,15 +3,24 @@ | |||
3 | 3 | ||
4 | ;; This code is copied and modified from (gnu packages) module. | 4 | ;; This code is copied and modified from (gnu packages) module. |
5 | 5 | ||
6 | (define %jd-patch-path | 6 | (define (make-custom-load-path dir-path) |
7 | (make-parameter | 7 | (make-parameter |
8 | (map (lambda (directory) | 8 | (map (lambda (directory) |
9 | (let ((jd-patch-dir (string-append directory "/jd/packages/patches"))) | 9 | (let ((custom-dir (string-append directory dir-path))) |
10 | (if (and (file-exists? jd-patch-dir) | 10 | (if (and (file-exists? custom-dir) |
11 | (file-is-directory? jd-patch-dir)) | 11 | (file-is-directory? custom-dir)) |
12 | jd-patch-dir | 12 | custom-dir |
13 | directory))) | 13 | directory))) |
14 | %load-path))) | 14 | %load-path))) |
15 | |||
16 | (define (make-custom-searcher load-path) | ||
17 | (lambda (file-name) | ||
18 | (or (search-path (load-path) file-name) | ||
19 | (raise (string-append file-name | ||
20 | ": not found"))))) | ||
21 | |||
22 | (define %jd-patch-path (make-custom-load-path "/jd/packages/patches")) | ||
23 | (define %jd-dot-files-path (make-custom-load-path "/jd/home/services/dotfiles")) | ||
15 | 24 | ||
16 | (define (jd-search-patch file-name) | 25 | (define (jd-search-patch file-name) |
17 | "Search the patch FILE-NAME. Raise an error if not found." | 26 | "Search the patch FILE-NAME. Raise an error if not found." |