Add new green theme

This commit is contained in:
iFargle 2023-11-19 20:20:37 +09:00
parent 94a260403b
commit bde0c88a3a
12 changed files with 950 additions and 0 deletions

View file

@ -0,0 +1,9 @@
{ ... }: {
imports = [
./mako-conf.nix
./rofi-conf.nix
./swaylock-conf.nix
./waybar-conf.nix
./wlogout-conf.nix
];
}

View file

@ -0,0 +1,30 @@
{ ... }: {
home.file.".config/mako/config".text = ''
max-history=5
sort=+time
on-button-left=dismiss
on-button-right=dismiss-all
font=JetbrainsMono Regular
background-color=#252423
border-color=#d5c4a1bb
text-color=#e2cca9
width=300
height=100
margin=10
padding=15
border-size=3
border-radius=15
icons=1
max-icon-size=128
icon-location=left
markup=1
actions=1
history=1
text-alignment=left
default-timeout=15000
layer=top
anchor=top-right
'';
}

View file

@ -0,0 +1,223 @@
{ ...}: {
home.file = {
# https://github.com/davatorium/rofi/blob/next/CONFIG.md
# Rofi configuration
".config/rofi/config.rasi" = {
enable = true;
executable = false;
text = ''
configuration {
}
@theme "gruvbox-dark"
'';
};
# Rofi theme
".config/rofi/themes/gruvbox-dark.rasi" = {
enable = true;
executable = false;
text = ''
/* ==========================================================================
Rofi color theme
Based on the Gruvbox color scheme for Vim by morhetz
https://github.com/morhetz/gruvbox
File: gruvbox-dark.rasi
Desc: Gruvbox dark color theme for Rofi
Author: bardisty <b@bah.im>
Source: https://github.com/bardisty/gruvbox-rofi
Modified: Mon Feb 12 2018 04:08:43 PST -0800
========================================================================== */
* {
/* Theme settings */
highlight: bold italic;
scrollbar: true;
/* Gruvbox dark colors */
gruvbox-dark-bg0: #282828;
gruvbox-dark-bg0-soft: #32302f;
gruvbox-dark-bg3: #665c54;
gruvbox-dark-fg0: #fbf1c7;
gruvbox-dark-fg1: #ebdbb2;
gruvbox-dark-red-dark: #cc241d;
gruvbox-dark-red-light: #fb4934;
gruvbox-dark-yellow-dark: #d79921;
gruvbox-dark-yellow-light: #fabd2f;
gruvbox-dark-gray: #a89984;
/* Theme colors */
background: @gruvbox-dark-bg0;
background-color: @background;
foreground: @gruvbox-dark-fg1;
border-color: @gruvbox-dark-gray;
separatorcolor: @border-color;
scrollbar-handle: @border-color;
normal-background: @background;
normal-foreground: @foreground;
alternate-normal-background: @gruvbox-dark-bg0-soft;
alternate-normal-foreground: @foreground;
selected-normal-background: @gruvbox-dark-bg3;
selected-normal-foreground: @gruvbox-dark-fg0;
active-background: @gruvbox-dark-yellow-dark;
active-foreground: @background;
alternate-active-background: @active-background;
alternate-active-foreground: @active-foreground;
selected-active-background: @gruvbox-dark-yellow-light;
selected-active-foreground: @active-foreground;
urgent-background: @gruvbox-dark-red-dark;
urgent-foreground: @background;
alternate-urgent-background: @urgent-background;
alternate-urgent-foreground: @urgent-foreground;
selected-urgent-background: @gruvbox-dark-red-light;
selected-urgent-foreground: @urgent-foreground;
}
@import "gruvbox-common"
'';
};
# Rofi theme
".config/rofi/themes/gruvbox-common.rasi" = {
enable = true;
executable = false;
text = ''
/* ==========================================================================
File: gruvbox-common.rasi
Desc: Shared rules between all gruvbox themes
Author: bardisty <b@bah.im>
Source: https://github.com/bardisty/gruvbox-rofi
Modified: Mon Feb 12 2018 06:06:47 PST -0800
========================================================================== */
window {
background-color: @background;
border: 2;
padding: 2;
}
mainbox {
border: 0;
padding: 0;
}
message {
border: 2px 0 0;
border-color: @separatorcolor;
padding: 1px;
}
textbox {
highlight: @highlight;
text-color: @foreground;
}
listview {
border: 2px solid 0 0;
padding: 2px 0 0;
border-color: @separatorcolor;
spacing: 2px;
scrollbar: @scrollbar;
}
element {
border: 0;
padding: 2px;
}
element.normal.normal {
background-color: @normal-background;
text-color: @normal-foreground;
}
element.normal.urgent {
background-color: @urgent-background;
text-color: @urgent-foreground;
}
element.normal.active {
background-color: @active-background;
text-color: @active-foreground;
}
element.selected.normal {
background-color: @selected-normal-background;
text-color: @selected-normal-foreground;
}
element.selected.urgent {
background-color: @selected-urgent-background;
text-color: @selected-urgent-foreground;
}
element.selected.active {
background-color: @selected-active-background;
text-color: @selected-active-foreground;
}
element.alternate.normal {
background-color: @alternate-normal-background;
text-color: @alternate-normal-foreground;
}
element.alternate.urgent {
background-color: @alternate-urgent-background;
text-color: @alternate-urgent-foreground;
}
element.alternate.active {
background-color: @alternate-active-background;
text-color: @alternate-active-foreground;
}
scrollbar {
width: 4px;
border: 0;
handle-color: @scrollbar-handle;
handle-width: 8px;
padding: 0;
}
mode-switcher {
border: 2px 0 0;
border-color: @separatorcolor;
}
inputbar {
spacing: 0;
text-color: @normal-foreground;
padding: 2px;
children: [ prompt, textbox-prompt-sep, entry, case-indicator ];
}
case-indicator,
entry,
prompt,
button {
spacing: 0;
text-color: @normal-foreground;
}
button.selected {
background-color: @selected-normal-background;
text-color: @selected-normal-foreground;
}
textbox-prompt-sep {
expand: false;
str: ":";
text-color: @normal-foreground;
margin: 0 0.3em 0 0;
}
element-text, element-icon {
background-color: inherit;
text-color: inherit;
}
'';
};
};
}

View file

@ -0,0 +1,57 @@
{ pkgs, ... }: {
programs.swaylock = {
enable = true;
# swaylock-effects has extra effects like image blur and stuff.
package = pkgs.swaylock-effects;
settings = {
# All <color> options are of the form <rrggbb[aa]>.
font-size = 96;
show-failed-attempts = true;
effect-blur = "20x8";
screenshots = true;
font = "JetBrainsMono Nerd Font";
clock = true;
timestr = "%R";
datestr = "%a, %b %d";
grace = 5;
indicator = true;
indicator-radius = "130";
indicator-thickness = "12";
indicator-caps-lock = true;
disable-caps-lock-text = true;
# OTHER
key-hl-color = "b8bb26"; #b8bb26 # Sets the color of the key press highlight segments.
separator-color = "ebdbb200"; #ebdbb200 # Sets the color of the lines that separate highlight segments.
bs-hl-color = "d79921"; #d79921 # Sets the color of backspace highlight segments.
# DEFAULT
ring-color = "d65d0e"; #d65d0e # Sets the color of the ring of the indicator.
line-color = "ebdbb200"; #ebdbb200 # Sets the color of the line between the inside and ring.
text-color = "83a598"; #83a598 # Sets the color of the text.
inside-color = "1d202199"; #1d202199 # Sets the color of the inside of the indicator.
# VERIFYING
ring-ver-color = "fe8019"; #fe8019 # Sets the color of the ring of the indicator when verifying.
line-ver-color = "ebdbb200"; #ebdbb200 # Sets the color of the line between the inside and ring when verifying.
text-ver-color = "83a59800"; #83a59800 # Sets the color of the text when verifying.
inside-ver-color = "3c383699"; #3c383699 # Sets the color of the inside of the indicator when verifying.
# WRONG
ring-wrong-color = "fb4934"; #fb4934 # Sets the color of the ring of the indicator when invalid.
line-wrong-color = "ebdbb200"; #ebdbb200 # Sets the color of the line between the inside and ring when invalid.
text-wrong-color = "83a59800"; #83a59800 # Sets the color of the text when invalid.
inside-wrong-color = "3c383699"; #3c383699 # Sets the color of the inside of the indicator when invalid.
# CAPS-LOCK
ring-caps-lock-color = "d65d0e"; #d65d0e # Sets the color of the ring of the indicator when Caps Lock is active.
line-caps-lock-color = "d65d0e00"; #d65d0e00 # Sets the color of the line between the inside and ring when Caps Lock is active.
text-caps-lock-color = "d65d0e00"; #d65d0e00 # Sets the color of the text when Caps Lock is active.
inside-caps-lock-color = "3c383699"; #3c383699 # Sets the color of the inside of the indicator when Caps Lock is active.
# CLEAR
ring-clear-color = "bdae93"; #bdae93 # Sets the color of the ring of the indicator when cleared.
line-clear-color = "92837400"; #92837400 # Sets the color of the line between the inside and ring when cleared.
text-clear-color = "92837400"; #92837400 # Sets the color of the text when cleared.
inside-clear-color = "3c383699"; #3c383699 # Sets the color of the inside of the indicator when cleared.
};
};
}

View file

@ -0,0 +1,274 @@
{ ...}: {
imports = [ ../../common/waybar/scripts.nix ];
home.file = {
# https://yewtu.be/watch?v=tWQB1NDDA9c
# https://github.com/DN-debug/waybar-examples
# Inspiration:
# https://github.com/Pipshag/dotfiles_gruvbox
# Font Search:
# https://www.nerdfonts.com/cheat-sheet
# Online CSS testing
# https://www.w3schools.com/css/tryit.asp?filename=trycss_border_round
# Waybar configuration
".config/waybar/config.jsonc" = {
enable = true;
executable = false;
text = ''
{
"layer": "top",
"position": "top",
"modules-left": [
"custom/wlogout",
"idle_inhibitor",
"clock",
"mpris",
],
"modules-center": [
"hyprland/workspaces",
],
"modules-right": [
"pulseaudio",
"custom/tailscale",
"network",
"battery",
],
"custom/wlogout": {
"format": "",
"on-click": "wlogout"
},
"custom/tailscale": {
"format": "{icon} ",
"exec": "$HOME/.config/waybar/scripts/tailscale.sh",
"exec-if": "pgrep tailscaled",
"return-type": "json",
"interval": 5,
"format-icons": {
"Running": "󰌆",
"Stopped": "󰌊",
}
},
"idle_inhibitor": {
"format": "{icon} ",
"format-icons": {
"activated": "",
"deactivated": ""
}
},
"mpris": {
"format": "{player_icon} {dynamic}",
"format-paused": "{status_icon} <i>{dynamic}</i>",
"player-icons": { "default": "" },
"status-icons": { "paused": "" },
"max-length": 30,
},
"hyprland/workspaces": {
"on-click": "activate",
},
"clock": {
"format": "󰥔 {:%H:%M}",
"format-alt": "󰃭 {:%A, %d %b, %Y}",
"tooltip-format": "<tt><small>{calendar}</small></tt>",
"calendar": {
"mode" : "month",
"mode-mon-col" : 3,
"weeks-pos" : "left",
"on-scroll" : 1,
"format": {
"months": "<span color='#e2cca9'><b>{}</b></span>",
"days": "<span color='#e2cca9'><b>{}</b></span>",
"weeks": "<span color='#b0b846'><b>W{}</b></span>",
"weekdays": "<span color='#e9b143'><b>{}</b></span>",
"today": "<span color='#f28534'><b><u>{}</u></b></span>"
}
},
"actions": {
"on-click-right": "kitty -e calcurse",
"on-click-middle": "mode",
"on-scroll-up": "shift_up",
"on-scroll-down": "shift_down"
}
},
"pulseaudio": {
"scroll-step": 1,
"format": "{icon} {format_source}",
"format-bluetooth": "<span foreground='#f2594b'>{volume}% {icon} {format_source}</span>",
"format-bluetooth-muted": " ",
"format-muted": "󰝟 {format_source}",
"format-source": " <span foreground='#f2594b'></span>",
"format-source-muted": " ",
"format-icons": {
"headphone": " ",
"headset": " ",
"default": ["󰕿", "󰖀", "󰕾"]
},
"tooltip": false,
"on-click": "kitty -e pulsemixer",
},
"network": {
"format": "{ifname}",
"format-wifi": " ",
"format-ethernet": " {ipaddr}",
"format-disconnected": "", // An empty format will hide the module.
"tooltip-format": "{ifname} via {gwaddr} ",
"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
"tooltip-format-ethernet": "{ifname} ",
"tooltip-format-disconnected": "Disconnected",
"max-length": 50,
"on-click": "kitty --class=nmtui -e nmtui"
},
"battery": {
"tooltip": true,
"tooltip-format": "{time}",
"states": {
"warning": 35,
"critical": 20
},
"format": "{icon} {capacity}%",
"format-charging": "󰂄 {capacity}%",
"format-plugged": " {capacity}%",
"format-icons": ["", "", "", "", ""]
},
}
'';
};
# Waybar theming
".config/waybar/style.css" = {
enable = true;
executable = false;
text = ''
* {
border: none;
border-radius: 0;
font-family: JetbrainsMono Regular;
}
#waybar {
background-color: rgba(50, 48, 47, 0.8);
padding: 15px;
}
#workspaces button.visible,
#workspaces button {
font-size: 15px;
border-radius: 50px;
padding: 0px 5px;
margin: 5px;
color: rgba(200, 200, 200, 0.5);
background-color: #282828;
}
#workspaces button.active {
padding: 0px 15px;
background-color: #a89984;
color: rgba(0, 0, 0, 0.5);
}
#workspaces button:hover,
#workspaces button.focused:hover,
#workspaces button.visible:hover {
color: rgba(0, 0, 0, 0.5);
background-color: #d5c4a1;
}
#workspaces button.urgent {
background-color: #cc241d;
color: rgba(200, 200, 200, 0.5);
}
/*
* General background
*/
#network,
#mpris,
#memory,
#backlight,
#cpu,
#pulseaudio,
#temperature,
#battery,
#tray,
#submap,
#clock,
#idle_inhibitor,
#custom-tailscale,
#custom-wlogout,
#window {
font-size: 16px;
padding: 0px 10px;
margin: 5px;
border-radius: 5px;
color: rgba(50, 48, 47, 0.8);
background-color: #a89984;
font-weight: bold;
}
/*
* General background
*/
#network button:hover,
#mpris button:hover,
#memory button:hover,
#backlight button:hover,
#cpu button:hover,
#pulseaudio button:hover,
#temperature button:hover,
#battery button:hover,
#tray button:hover,
#submap button:hover,
#clock button:hover,
#idle_inhibitor button:hover,
#custom-tailscale button:hover,
#custom-wlogout button:hover,
#window button:hover{
background-color: #d5c4a1;
}
/*
* Warning plugins state
*/
#battery.warning {
background-color: #e9b143;
}
/*
* Critical plugins state
*/
#idle_inhibitor.activated,
#battery.critical,
#custom-tailscale.Stopped,
#network.disconnected {
color: #e2cca9;
background-color: #cc241d;
}
#battery.charging {
background-color: #98971a;
}
#battery.plugged {
background-color: #458588;
}
#pulseaudio.bluetooth {
background-color: #458588;
}
tooltip {
color: #e2cca9;
font-size: 14px;
}
'';
};
};
}

View file

@ -0,0 +1,38 @@
{ ... }: {
xdg.configFile."wlogout/style.css" = {
enable = true;
target = "./wlogout/style.css";
text = ''
* {
background-image: none;
}
window {
background-color: rgba(50, 48, 47, 0.8);
}
button {
color: #d5c4a1;
font-size: 0px;
border-radius: 5000px;
margin: 25px;
background-color: #1E1E1E;
border-style: solid;
border-width: 3px;
background-repeat: no-repeat;
background-position: center;
background-size: 25%;
}
button:active, button:hover {
background-color: #504945;
outline-style: none;
}
#lock { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/lock.png"); }
#logout { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/logout.png"); }
#suspend { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/suspend.png"); }
#hibernate { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/hibernate.png"); }
#shutdown { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/shutdown.png"); }
#reboot { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/reboot.png"); }
'';
};
}

View file

@ -0,0 +1,83 @@
{ ... }: {
home.file.".config/btop/btop.conf".text = ''
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
color_theme = "gruvbox_dark_v2"
theme_background = True
truecolor = True
force_tty = False
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
vim_keys = False
rounded_corners = True
#* Default symbols to use for graph creation, "braille", "block" or "tty".
#* "braille" offers the highest resolution but might not be included in all fonts.
#* "block" has half the resolution of braille but uses more common characters.
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
graph_symbol = "braille"
graph_symbol_cpu = "default"
graph_symbol_mem = "default"
graph_symbol_net = "default"
graph_symbol_proc = "default"
shown_boxes = "cpu net proc mem"
update_ms = 1000
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
proc_sorting = "cpu lazy"
proc_reversed = False
proc_tree = True
proc_colors = True
proc_gradient = True
proc_per_core = False
proc_mem_bytes = True
proc_cpu_graphs = True
proc_info_smaps = False
proc_left = False
proc_filter_kernel = False
cpu_graph_upper = "total"
cpu_graph_lower = "total"
cpu_invert_lower = True
cpu_single_graph = False
cpu_bottom = False
show_uptime = True
check_temp = True
cpu_sensor = "Auto"
show_coretemp = True
cpu_core_map = ""
temp_scale = "celsius"
base_10_sizes = False
show_cpu_freq = True
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
clock_format = "[/user@/host] [/uptime] [%X]"
background_update = True
custom_cpu_name = ""
disks_filter = ""
mem_graphs = True
mem_below_net = False
zfs_arc_cached = True
show_swap = True
swap_disk = True
show_disks = True
only_physical = True
use_fstab = True
zfs_hide_datasets = False
disk_free_priv = False
show_io_stat = True
io_mode = False
io_graph_combined = False
io_graph_speeds = ""
net_download = 100
net_upload = 100
net_auto = True
net_sync = False
net_iface = ""
show_battery = True
selected_battery = "Auto"
log_level = "WARNING"
'';
}

View file

@ -0,0 +1,22 @@
;; Themes
(setq doom-theme 'gruvbox-dark-hard)
(setq doom-themes-treemacs-theme "doom-colors")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; LSP Modules
;; Bash
(use-package lsp-mode
:commands lsp
:hook
(sh-mode . lsp))
;; Python
(defun lspython ()
"Updates the lsp-python-ms-executable variable and runs lsp."
(interactive)
(setq lsp-python-ms-executable (executable-find "python-lsp-server"))
(lsp-deferred))
;; Rust
(after! rustic
(setq rustic-lsp-server 'rls))

View file

@ -0,0 +1,193 @@
;;; init.el -*- lexical-binding: t; -*-
;; This file controls what Doom modules are enabled and what order they load
;; in. Remember to run 'doom sync' after modifying it!
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
;; documentation. There you'll find a "Module Index" link where you'll find
;; a comprehensive list of Doom's modules and what flags they support.
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
;; 'C-c c k' for non-vim users) to view its documentation. This works on
;; flags as well (those symbols that start with a plus).
;;
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
;; directory (for easy access to its source code).
(doom! :input
;;chinese
;;japanese
;;layout ; auie,ctsrnm is the superior home row
:completion
company ; the ultimate code completion backend
ivy ; a search engine for love and life
vertico ; the search engine of the future
;;ido ; the other *other* search engine...
;;helm ; the *other* search engine for love and life
:ui
doom ; what makes DOOM look the way it does
doom-dashboard ; a nifty splash screen for Emacs
;;doom-quit ; DOOM quit-message prompts when you quit Emacs
(emoji +unicode) ; 🙂
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
indent-guides ; highlighted indent columns
ligatures ; ligatures and symbols to make your code pretty again
minimap ; show a map of the code on the side
modeline ; snazzy, Atom-inspired modeline, plus API
nav-flash ; blink cursor line after big motions
ophints ; highlight the region an operation acts on
(popup +defaults) ; tame sudden yet inevitable temporary windows
;; tabs ; a tab bar for Emacs
treemacs ; a project drawer, like neotree but cooler
vc-gutter ; vcs diff in the fringe
vi-tilde-fringe ; fringe tildes to mark beyond EOB
window-select ; visually switch windows
workspaces ; tab emulation, persistence & separate workspaces
zen ; distraction-free coding or writing
;;unicode ; extended unicode support for various languages
;;hydra
;;neotree ; a project drawer, like NERDTree for vim
;;deft ; notational velocity for Emacs
:editor
(evil +everywhere) ; come to the dark side, we have cookies
file-templates ; auto-snippets for empty files
fold ; (nigh) universal code folding
snippets ; my elves. They type so I don't have to
;;(format +onsave) ; automated prettiness
;;god ; run Emacs commands without modifier keys
;;lispy ; vim for lisp, for people who don't like vim
;;multiple-cursors ; editing in many places at once
;;objed ; text object editing for the innocent
;;parinfer ; turn lisp into python, sort of
;;rotate-text ; cycle region at point between text candidates
;;word-wrap ; soft wrapping with language-aware indent
:emacs
dired ; making dired pretty [functional]
electric ; smarter, keyword-based electric-indent
ibuffer ; interactive buffer management
undo ; persistent, smarter undo for your inevitable mistakes
vc ; version-control and Emacs, sitting in a tree
:term
vterm ; the best terminal emulation in Emacs
;;eshell ; the elisp shell that works everywhere
;;shell ; simple shell REPL for Emacs
;;term ; basic terminal emulator for Emacs
:checkers
syntax ; tasing you for every semicolon you forget
;;(spell +flyspell) ; tasing you for misspelling mispelling
;;grammar ; tasing grammar mistake every you make
:tools
(eval +overlay) ; run code, run (also, repls)
lookup ; navigate your code and its documentation
lsp ; M-x vscode
magit ; a git porcelain for Emacs
;;ansible
;;biblio ; Writes a PhD for you (citation needed)
;;debugger ; FIXME stepping through code, to help you add bugs
;;direnv
;;docker
;;editorconfig ; let someone else argue about tabs vs spaces
;;ein ; tame Jupyter notebooks with emacs
;;gist ; interacting with github gists
;;make ; run make tasks from Emacs
;;pass ; password manager for nerds
;;pdf ; pdf enhancements
;;prodigy ; FIXME managing external services & code builders
;;rgb ; creating color strings
;;taskrunner ; taskrunner for all your projects
;;terraform ; infrastructure as code
;;tmux ; an API for interacting with tmux
;;upload ; map local to remote projects via ssh/ftp
:os
tty ; improve the terminal Emacs experience
:lang
emacs-lisp ; drown in parentheses
json ; At least it ain't XML
markdown ; writing docs for people to ignore
javascript ; all(hope(abandon(ye(who(enter(here))))))
nix ; I hereby declare "nix geht mehr!"
org ; organize your plain life in plain text
web ; the tubes
yaml ; JSON, but readable
(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
(python +lsp) ; beautiful is better than ugly
(sh +lsp) ; she sells {ba,z,fi}sh shells on the C xor
(nix +lsp) ; Nix LSP
;;agda ; types of types of types of types...
;;beancount ; mind the GAAP
;;cc ; C > C++ == 1
;;clojure ; java with a lisp
;;common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c
;;csharp ; unity, .NET, and mono shenanigans
;;data ; config/data formats
;;(dart +flutter) ; paint ui and not much else
;;dhall
;;elixir ; erlang done right
;;elm ; care for a cup of TEA?
;;erlang ; an elegant language for a more civilized age
;;ess ; emacs speaks statistics
;;factor
;;faust ; dsp, but you get to keep your soul
;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER)
;;fsharp ; ML stands for Microsoft's Language
;;fstar ; (dependent) types and (monadic) effects and Z3
;;gdscript ; the language you waited for
;;(go +lsp) ; the hipster dialect
;;(haskell +lsp) ; a language that's lazier than I am
;;hy ; readability of scheme w/ speed of python
;;idris ; a language you can depend on
;;(java +meghanada) ; the poster child for carpal tunnel syndrome
;;julia ; a better, faster MATLAB
;;kotlin ; a better, slicker Java(Script)
;;latex ; writing papers in Emacs has never been so fun
;;lean ; for folks with too much to prove
;;ledger ; be audit you can be
;;lua ; one-based indices? one-based indices
;;nim ; python + lisp at the speed of c
;;ocaml ; an objective camel
;;php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional
;;qt ; the 'cutest' gui framework ever
;;racket ; a DSL for DSLs
;;raku ; the artist formerly known as perl6
;;rest ; Emacs as a REST client
;;rst ; ReST in peace
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
;;scala ; java, but good
;;(scheme +guile) ; a fully conniving family of lisps
;;sml
;;solidity ; do you need a blockchain? No.
;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance.
;;zig ; C, but simpler
:email
;;(mu4e +org +gmail)
;;notmuch
;;(wanderlust +gmail)
:app
;;calendar
;;emms
;;everywhere ; *leave* Emacs!? You must be joking
;;irc ; how neckbeards socialize
;;(rss +org) ; emacs as an RSS reader
;;twitter ; twitter client https://twitter.com/vnought
:config
;;literate
(default +bindings +smartparens))

View file

@ -0,0 +1,2 @@
;; Themes - Test
(package! gruvbox-theme)

View file

@ -0,0 +1,9 @@
{ config, pkgs, theme, ... }: {
programs.firefox.profiles.default = {
# https://nur.nix-community.org/repos/rycee/
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
# Theming
gruvbox-dark-theme
];
};
}

View file

@ -0,0 +1,10 @@
{ ... }: {
home.file.".config/kitty/theme.conf".text = ''
## name: Gruvbox Dark
## author: Pavel Pertsev
## license: MIT/X11
## upstream: https://raw.githubusercontent.com/gruvbox-community/gruvbox-contrib/master/kitty/gruvbox-dark.conf
'';
}