summaryrefslogtreecommitdiff
path: root/home.scm
diff options
context:
space:
mode:
authorRobby Zambito <contact@robbyzambito.me>2026-03-07 00:30:44 -0500
committerRobby Zambito <contact@robbyzambito.me>2026-03-07 00:30:49 -0500
commite42a386265350dd524e079464e4c8a3dd103cac5 (patch)
tree6a504cd468cf312cc6bf394c970dc9e16506b156 /home.scm
parent592475ad8385c1878771cc7793487d08d5fe7cf7 (diff)
start splitting things into separate modules
Diffstat (limited to 'home.scm')
-rw-r--r--home.scm430
1 files changed, 6 insertions, 424 deletions
diff --git a/home.scm b/home.scm
index 5ef8cf3..6580a5e 100644
--- a/home.scm
+++ b/home.scm
@@ -40,7 +40,10 @@
(srfi 1)
(config-generation sexp)
- (config-generation sway)
+
+ (rename (config packages) (home home-packages))
+ (rename (config sway) (sway-config rz/sway-config))
+ (config foot)
(ini))
@@ -50,200 +53,6 @@
;; (load "./gptel.scm")
-(define home-packages
- (append
- (specifications->packages
- (list
- ;; essential
- "adb"
- "bat"
- "bind:utils"
- "emacs"
- "emacs-bluetooth"
- "emacs-ellama"
- "emacs-elpher"
- "emacs-emms"
- "emacs-f"
- "emacs-go-mode"
- "emacs-guix"
- "emacs-jabber"
- "emacs-markdown-mode"
- "emacs-nord-theme"
- "emacs-nov-el"
- ;; "emacs-org"
- "emacs-org-download"
- "emacs-org-emms"
- "emacs-org-mime"
- "emacs-org-pandoc-import"
- "emacs-org-roam"
- "emacs-org-transclusion"
- "emacs-pdf-tools"
- "emacs-persist"
- "emacs-pinentry"
- "emacs-request"
- "emacs-restclient"
- "emacs-simple-httpd"
- "emacs-sqlite3-api"
- "emacs-toc-org"
- "emacs-tramp"
- "emacs-typescript-mode"
- "emacs-websocket"
- "emacs-which-key"
- "emacs-wttrin"
- "emacs-yaml-mode"
- "emacs-zig-mode"
- "fd"
- ;; "ffmpeg"
- "file"
- "flatpak"
- "font-fira-mono"
- "font-google-noto-emoji"
- ;; "gajim"
- "gammastep"
- "ghc-tldr"
- "git"
- "git:send-email"
- "grim"
- "grimshot"
- "gst-libav"
- "gst-plugins-bad"
- "gst-plugins-base"
- "gst-plugins-good"
- "gst-plugins-ugly"
- "guile"
- "htop"
- "imv"
- "keepassxc"
- ;; "libcamera"
- "libreoffice"
- "mumble"
- "ncurses"
- "neofetch"
- "nmap"
- "noisetorch"
- "pinentry"
- "rlwrap"
- "rsync"
- "screen"
- ;; "sicp"
- "slurp"
- "sshfs"
- "strace"
- "syncthing"
- "tesseract-ocr"
- "tree"
- "unzip"
- "waypipe"
- "wl-clipboard"
- "wofi"
- "xdg-user-dirs"
- ;; "xsane"
- "zbar"
- "zip"
- rz/terminal-emulator
-
- ;; sound
- "pamixer"
- ;; "patchage"
- "pulsemixer"
-
- ;; web
- "curl"
- ;; "icecat"
- ;; "nyxt"
- ;; "ungoogled-chromium"
-
- ;; games
- "protonup"
- "steam"
-
- "crispy-doom"
- "freedoom"
-
- ;; "luanti"
- ;; "minetest-worldedit"
- ;; "luanti-mineclone"
-
- ;; "openmw"
-
- "emacs-2048-game"
-
- ;; email
- "isync"
- "mb2md"
- "mu"
-
- ;; RSS
- "emacs-elfeed"
- "emacs-elfeed-org"
-
- ;; media
- "cava"
- "cmus"
- "mpv"
- "pipe-viewer"
-
- ;; torrent
- "emacs-transmission"
- "transmission"
-
- ;; programming
- "chibi-scheme"
- ;; "emacs-cape"
- ;; "emacs-corfu"
- "emacs-dumb-jump"
- "emacs-geiser"
- "emacs-geiser-guile"
- "emacs-lsp-mode"
- "emacs-lsp-ui"
- "emacs-origami"
- "emacs-racket-mode"
- "emacs-slime"
- "gcc-toolchain"
- "go"
- "guile-ini"
- "guile-lib"
- "jq"
- "libserialport"
- ;; "mit-scheme"
- ;; "node"
- "racket"
- "sbcl"
- ;; "snd"
- "zig"
-
- ;; education
- ;; "stellarium"
-
- ;; photography
- "darktable"
- "gimp"
- ;; "krita"
-
- ;; recording
- "obs"
- "obs-wlrobs"
- "obs-vkcapture"
- ;; "kdenlive"
-
- ;; modeling
- "libfive"
-
- ;; Editing
- "emacs-emojify"
- "emacs-org-bullets"
- "emacs-ox-hugo"
- "ispell"))
- ;; Extra package definitions
- (list
- ;; ((options->transformation '((with-commit . "guile-next=f3ea8f7fa1d84a559c7bf834fe5b675abe0ae7b8")))
- ;; (specification->package "guile-next"))
- ;; ((options->transformation '((with-commit . "chibi-scheme=29dd1a3b81e297033f687cbbf2b51319856647f4")))
- ;; (specification->package "chibi-scheme"))
- ;; emacs-gptel
- )))
-
-
(define emacs-config
(string-append
";; See /home/robby/.config/guix-home/home-configuration.scm\n"
@@ -550,9 +359,10 @@
elfeed-search-filter "@6-months-ago +unread -reddit -hn -politics")
;; TODO: this doesn't work
+ ;; Fixed? TODO: Check if it works
(add-hook 'elfeed-mode-hook
(lambda ()
- (define-key elfeed-mode-map "\\C-c\\C-u"
+ (define-key elfeed-mode-map "C-c C-u"
'elfeed-update)))
;; Source https://github.com/skeeto/elfeed/issues/267
@@ -663,234 +473,6 @@ visit otherwise."
))))
-(define screenshot-menu "guile --r7rs -L ~/src/wofi-guile/lib/ ~/src/screenshot-menu.scm")
-
-(define rz/sway-config
- (scm->sway-config
- ;;; Variables
- `((set $mod Mod4 ; Logo key. Use Mod1 for Alt.
- $hyper Mod1+Mod4+Shift+Control
- $meh Mod1+Shift+Control
-
- ;; Home row directions keys, like vim.
- $left h
- $down j
- $up k
- $right l
-
- ;; Prefered terminal emulator
- $term ,rz/terminal-emulator
-
- ;; Preferred editor
- $editor "emacsclient -c -a emacs"
-
- ;; Preferred application launcher
- $menu "wofi -c ~/.config/wofi/config -I"
-
- ;; Preferred music player
- $music ,(string-append rz/terminal-emulator " cmus"))
-
-
- ;; Output configuration
- (output ((* bg "#2E3440" solid_color)
- (HDMI-A-1 mode 1920x1080@144Hz)))
-
- ;; Input configuration
- ;; (input "9580:110:HUION_Huion_Tablet_Pen" map_to_output HDMI-A-1)
-
- ;; Hide cursor after 3 seconds
- (seat * hide_cursor 3000)
-
- (input "1133:50504:Logitech_USB_Receiver_Mouse"
- ((accel_profile flat)
- (pointer_accel -0.4)))
-
-;;; Key bindings
- (bindsyms
- ;; Kill focused window
- ;; (($mod+Shift+q $meh+q) kill)
- ;; Start launcher
- ;; (($hyper+d $mod+d) exec $menu)
- ;; Reload the config file
- ;; ($mod+Shift+c reload)
- ;; Lock sway
- (($meh+l $mod+Semicolon) exec swaylock -c "#000000")
- ;; Exit sway
- ;; ($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" "herd stop sway")
- ;; Screenshot menu
- ($meh+a exec ,screenshot-menu))
-
- ;; Drag floating windows by holding down $mod and left mouse button.
- ;; Resize them with right mouse button + $mod.
- ;; Also works for non-floating windows.
- ;; Change normal to inverse to use left mouse buttor for resizing and right
- ;; mouse button for dragging.
- (floating_modifier $mod normal)
-
- ;; Moving around
- ;; (bindsyms
- ;; ;; Moving focus around
- ;; (($mod+$left $mod+Left) focus left)
- ;; (($mod+$down $mod+Down) focus down)
- ;; (($mod+$up $mod+Up) focus up)
- ;; (($mod+$right $mod+Right) focus right)
-
- ;; ;; Move the focused window by adding Shift
- ;; (($mod+Shift+$left $mod+Shift+Left) move left)
- ;; (($mod+Shift+$down $mod+Shift+Down) move down)
- ;; (($mod+Shift+$up $mod+Shift+Up) move up)
- ;; (($mod+Shift+$right $mod+Shift+Right) move right))
-
- ;; Workspaces
- (bindsyms
- ;; Switch to workspace
- ;; ($mod+1 workspace number 1)
- ;; ($mod+2 workspace number 2)
- ;; ($mod+3 workspace number 3)
- ;; ($mod+4 workspace number 4)
- ;; ($mod+5 workspace number 5)
- ;; ($mod+6 workspace number 6)
- ;; ($mod+7 workspace number 7)
- ;; ($mod+8 workspace number 8)
- ;; ($mod+9 workspace number 9)
- ;; ($mod+0 workspace number 10)
-
- ;; Move focused container to workspace
- ;; ($mod+Shift+1 move container to workspace number 1)
- ;; ($mod+Shift+2 move container to workspace number 2)
- ;; ($mod+Shift+3 move container to workspace number 3)
- ;; ($mod+Shift+4 move container to workspace number 4)
- ;; ($mod+Shift+5 move container to workspace number 5)
- ;; ($mod+Shift+6 move container to workspace number 6)
- ;; ($mod+Shift+7 move container to workspace number 7)
- ;; ($mod+Shift+8 move container to workspace number 8)
- ;; ($mod+Shift+9 move container to workspace number 9)
- ;; ($mod+Shift+0 move container to workspace number 10)
-
- ;; Split the current object
- ;; ($mod+b splith)
- ;; ($mod+v splitv)
-
- ;; Switch the current container layout style
- ;; ($mod+s layout stacking)
- ;; ($mod+w layout tabbed)
- ;; ($mod+e layout toggle split)
-
- ;; Make the current focus fullscreen
- ;; ($mod+f fullscreen)
-
- ;; Toggle focus between tiling and floating mode
- ;; ($mod+Shift+space floating toggle)
-
- ;; Swap focus between the tiling area and the floating area
- ;; ($mod+space focus mode_toggle)
-
- ;; Move focus to the parent container
- ;; ($mod+a focus parent)
- )
-
- ;;; Scratchpad
- ;; (bindsyms
- ;; ;; Move the currently focused window to the scratchpad
- ;; ($mod+Shift+minus move scratchpad)
- ;; ;; Show the next scratchpad window or hide the focused scratchpad window.
- ;; ;; If there are multiple scratchpad windows, this command cycles through them.
- ;; ($mod+minus scratchpad show))
-
- ;;; Resizing
- ;; (mode "resize"
- ;; ((bindsyms
- ;; (($left Left) resize shrink width 10px)
- ;; (($down Down) resize grow height 10px)
- ;; (($up Up) resize shrink height 10px)
- ;; (($right Right) resize grow width 10px)
-
- ;; ;; Return to default mode
- ;; (Return mode "default")
- ;; (Escape mode "default"))))
- ;; (bindsym $mod+r mode "resize")
-
- ;;; Media
- (bindsyms
- (XF86AudioRaiseVolume exec pamixer --increase 5)
- (XF86AudioLowerVolume exec pamixer --decrease 5)
- (XF86AudioMute exec pamixer --toggle-mute)
- (XF86AudioPlay exec emacsclient -e "(emms-pause)")
- (XF86AudioNext exec emacsclient -e "(emms-next)")
- (XF86AudioPrev exec emacsclient -e "(emms-previous)")
- (XF86Search exec $menu))
-
- ;; Applications
- (bindsyms
- ;; Start music player on workspace 5
- ($hyper+m (workspace 5) (exec $music) (workspace back_and_forth))
- ;; Start terminal
- ;; (($mod+Return $mod+Shift+t) exec emacsclient -c -e "(new-eshell)")
- ;; Start editor
- (($mod+t $hyper+t) exec $editor))
-
- ;; TODO REMOVE
- (exec "hash dbus-update-activation-environment 2>/dev/null")
- (exec_always "dbus-update-activation-environment --all")
-
- ;;; Styling
-
- (font "pango:Noto Sans Mono" 8)
- (titlebar_padding 7 1)
-
- ;; Remove titlebar by default
- (for-window (title ".*") border pixel 2)
-
- (for-window (class ".*") inhibit_idle fullscreen)
- (for-window (app_id ".*") inhibit_idle fullscreen)
-
- ;; Class border backgr. text indicator child_border
- (client.focused "#bf616a" "#bf616a" "#ffffff" "#bf616a" "#bf616a")
- (client.focused_inactive "#333333" "#5f676a" "#ffffff" "#484e50" "#5f676a")
- (client.unfocused "#333333" "#222222" "#888888" "#292d2e" "#222222")
- (client.urgent "#2f343a" "#900000" "#ffffff" "#900000" "#900000")
- (client.placeholder "#000000" "#0c0c0c" "#ffffff" "#000000" "#0c0c0c"))))
-
-(define foot-config
- (with-output-to-string
- (lambda ()
- (scm->ini
- '((#f
- ("font" . "monospace:size=12"))
-
- ;; Nord theme
- (colors-dark
- ("background" . "2e3440")
- ("foreground" . "d8dee9")
- ("cursor" . "2e3440 d8dee9")
-
- ("regular0" . "3b4252")
- ("regular1" . "bf616a")
- ("regular2" . "a3be8c")
- ("regular3" . "ebcb8b")
- ("regular4" . "81a1c1")
- ("regular5" . "b48ead")
- ("regular6" . "88c0d0")
- ("regular7" . "e5e9f0")
-
- ("bright0" . "4c566a")
- ("bright1" . "bf616a")
- ("bright2" . "a3be8c")
- ("bright3" . "ebcb8b")
- ("bright4" . "81a1c1")
- ("bright5" . "b48ead")
- ("bright6" . "8fbcbb")
- ("bright7" . "eceff4")
-
- ("dim0" . "373e4d")
- ("dim1" . "94545d")
- ("dim2" . "809575")
- ("dim3" . "b29e75")
- ("dim4" . "68809a")
- ("dim5" . "8c738c")
- ("dim6" . "6d96a5")
- ("dim7" . "aeb3bb")))))))
-
(define wofi-config
(with-extensions
(list guile-ini guile-smc guile-lib)