some changes -- see description

migrate elinks to home-manager, add package installation directives, and
generally restructure things.
This commit is contained in:
randomuser 2024-03-13 07:14:47 -05:00
parent 347d57c51f
commit c4844575d0
23 changed files with 695 additions and 31 deletions

View File

@ -17,18 +17,24 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
xscreensaver xscreensaver
thunderbird texliveMedium
hue-cli libreoffice
texliveSmall
latexrun
strawberry ecryptfs
ffmpeg
]; ];
hardware.bluetooth = { hardware.bluetooth = {
enable = true; enable = true;
}; };
services.printing.enable = true;
services.avahi = {
enable = true;
nssmdns = true;
openFirewall = true;
};
services.udev.extraRules = '' services.udev.extraRules = ''
ACTION=="add", SUBSYSTEM=="input", KERNEL=="event[0-20]*", ENV{ID_INPUT_TOUCHSCREEN}=="1", MODE:="0666" GROUP="usr", SYMLINK+="input/touchscreen" ACTION=="add", SUBSYSTEM=="input", KERNEL=="event[0-20]*", ENV{ID_INPUT_TOUCHSCREEN}=="1", MODE:="0666" GROUP="usr", SYMLINK+="input/touchscreen"
''; '';

26
builds/utils/sh/khalmacs Executable file
View File

@ -0,0 +1,26 @@
#!/bin/sh
case $1 in
"regular")
khal new -a home $2 07:40 08:28 Spanish I H
khal new -a home $2 08:34 09:21 AP Human Geography
khal new -a home $2 09:27 09:52 SAIL
khal new -a home $2 09:58 10:45 Symphonic Band
khal new -a home $2 10:51 11:38 English I H
khal new -a home $2 11:38 12:07 Lunch
khal new -a home $2 12:13 13:00 Biology I H
khal new -a home $2 13:06 13:53 Study Hall
khal new -a home $2 13:59 14:47 Algebra II H
;;
"late")
khal new -a home $2 08:40 08:28 Spanish I H
khal new -a home $2 08:34 09:21 AP Human Geography
khal new -a home $2 09:27 09:52 SAIL
khal new -a home $2 09:58 10:45 Symphonic Band
khal new -a home $2 10:51 11:38 English I H
khal new -a home $2 11:38 12:07 Lunch
khal new -a home $2 12:13 13:00 Biology I H
khal new -a home $2 13:06 13:53 Study Hall
khal new -a home $2 13:59 14:47 Algebra II H
;;
esac

View File

@ -9,6 +9,7 @@ nokeyb
musexplore musexplore
brave brave
chromium chromium
run
close-wind close-wind
" | tmenu " | tmenu
) )
@ -40,6 +41,9 @@ case "$choice" in
"chromium") "chromium")
chromium chromium
;; ;;
"run")
tmenu_run
;;
"close-wind") "close-wind")
bspc node -c bspc node -c
;; ;;

View File

@ -15,6 +15,9 @@
simple-nixos-mailserver = { simple-nixos-mailserver = {
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-23.11"; url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-23.11";
}; };
nix-colors = {
url = "github:misterio77/nix-colors";
};
# nix-on-droid inputs # nix-on-droid inputs
phone-nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05"; phone-nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05";

View File

@ -2,6 +2,9 @@
{ {
# program activation is managed by nixos config # program activation is managed by nixos config
home.packages = with pkgs; [
bspwm
];
home.file = { home.file = {
".config/bspwm/bspwmrc" = { ".config/bspwm/bspwmrc" = {

13
home/elinks/default.nix Normal file
View File

@ -0,0 +1,13 @@
{ lib, config, pkgs, home, ... }:
{
home.packages = [
(pkgs.callPackage ./elinks.nix {})
];
home.file = {
".config/elinks/elinks.conf" = {
source = ./elinks.conf;
};
};
}

524
home/elinks/elinks.conf Normal file
View File

@ -0,0 +1,524 @@
## ELinks 0.16.1.1 configuration file
## This is ELinks configuration file. You can edit it manually,
## if you wish so; this file is edited by ELinks when you save
## options through UI, however only option values will be altered
## and missing options will be added at the end of file; if option
## is not written in this file, but in some file included from it,
## it is NOT counted as missing. Note that all your formatting,
## own comments and so on will be kept as-is.
##
## Obviously, if you don't like what ELinks is going to do with
## this file, you can change it by altering the config.saving_style
## option. Come on, aren't we friendly guys after all?
##############################
# Automatically saved options
#
## config
# Configuration handling options.
## config.saving_style_w [0|1]
# This is internal option used when displaying a warning about obsolete
# config.saving_style. You shouldn't touch it.
set config.saving_style_w = 1
## terminal
# Terminal options.
## terminal.st-256color
# Options specific to this terminal type (according to $TERM value).
## terminal.st-256color.transparency [0|1]
set terminal.st-256color.transparency = 1
## ui
# User interface options.
## ui.language <language>
# Language of user interface. 'System' means that the language will be
# extracted from the environment dynamically.
set ui.language = "System"
##############################
# Automatically saved options
#
## terminal
# Terminal options.
## terminal.st-256color
# Options specific to this terminal type (according to $TERM value).
## terminal.st-256color.colors <num>
set terminal.st-256color.colors = 1
##############################
# Automatically saved options
#
## cookies
# Cookies options.
## cookies.accept_policy <num>
# Cookies accepting policy:
# 0 is accept no cookies
# 1 is ask for confirmation before accepting cookie
# 2 is accept all cookies
set cookies.accept_policy = 0
## ui
# User interface options.
## ui.colors
# Default user interface color settings.
## ui.colors.color
# Color settings for color terminal.
## ui.colors.color.mainmenu
# Main menu bar colors.
## ui.colors.color.mainmenu.normal
# Unselected main menu bar item colors.
## ui.colors.color.mainmenu.normal.text <color|#rrggbb>
# Default text color.
set ui.colors.color.mainmenu.normal.text = "white"
## ui.colors.color.mainmenu.normal.background <color|#rrggbb>
# Default background color.
set ui.colors.color.mainmenu.normal.background = "black"
## ui.colors.color.mainmenu.selected
# Selected main menu bar item colors.
## ui.colors.color.mainmenu.selected.text <color|#rrggbb>
# Default text color.
set ui.colors.color.mainmenu.selected.text = "black"
## ui.colors.color.mainmenu.selected.background <color|#rrggbb>
# Default background color.
set ui.colors.color.mainmenu.selected.background = "white"
## ui.colors.color.mainmenu.hotkey
# Main menu hotkey colors.
## ui.colors.color.mainmenu.hotkey.normal
# Main menu unselected hotkey colors.
## ui.colors.color.mainmenu.hotkey.normal.text <color|#rrggbb>
# Default text color.
set ui.colors.color.mainmenu.hotkey.normal.text = "black"
## ui.colors.color.mainmenu.hotkey.normal.background <color|#rrggbb>
# Default background color.
set ui.colors.color.mainmenu.hotkey.normal.background = "white"
## ui.colors.color.mainmenu.hotkey.selected
# Main menu selected hotkey colors.
## ui.colors.color.mainmenu.hotkey.selected.text <color|#rrggbb>
# Default text color.
set ui.colors.color.mainmenu.hotkey.selected.text = "white"
## ui.colors.color.mainmenu.hotkey.selected.background <color|#rrggbb>
# Default background color.
set ui.colors.color.mainmenu.hotkey.selected.background = "black"
## ui.colors.color.menu
# Menu bar colors.
## ui.colors.color.menu.normal
# Unselected menu item colors.
## ui.colors.color.menu.normal.text <color|#rrggbb>
# Default text color.
set ui.colors.color.menu.normal.text = "white"
## ui.colors.color.menu.normal.background <color|#rrggbb>
# Default background color.
set ui.colors.color.menu.normal.background = "black"
## ui.colors.color.menu.selected
# Selected menu item colors.
## ui.colors.color.menu.selected.text <color|#rrggbb>
# Default text color.
set ui.colors.color.menu.selected.text = "black"
## ui.colors.color.menu.selected.background <color|#rrggbb>
# Default background color.
set ui.colors.color.menu.selected.background = "white"
## ui.colors.color.menu.marked
# Marked menu item colors.
## ui.colors.color.menu.marked.text <color|#rrggbb>
# Default text color.
set ui.colors.color.menu.marked.text = "red"
## ui.colors.color.menu.marked.background <color|#rrggbb>
# Default background color.
set ui.colors.color.menu.marked.background = "black"
## ui.colors.color.menu.hotkey
# Menu item hotkey colors.
## ui.colors.color.menu.hotkey.normal
# Menu item unselected hotkey colors.
## ui.colors.color.menu.hotkey.normal.text <color|#rrggbb>
# Default text color.
set ui.colors.color.menu.hotkey.normal.text = "black"
## ui.colors.color.menu.hotkey.normal.background <color|#rrggbb>
# Default background color.
set ui.colors.color.menu.hotkey.normal.background = "white"
## ui.colors.color.menu.hotkey.selected
# Menu item selected hotkey colors.
## ui.colors.color.menu.hotkey.selected.text <color|#rrggbb>
# Default text color.
set ui.colors.color.menu.hotkey.selected.text = "white"
## ui.colors.color.menu.hotkey.selected.background <color|#rrggbb>
# Default background color.
set ui.colors.color.menu.hotkey.selected.background = "black"
## ui.colors.color.menu.frame
# Menu frame colors.
## ui.colors.color.menu.frame.text <color|#rrggbb>
# Default text color.
set ui.colors.color.menu.frame.text = "white"
## ui.colors.color.menu.frame.background <color|#rrggbb>
# Default background color.
set ui.colors.color.menu.frame.background = "black"
## ui.colors.color.dialog
# Dialog colors.
## ui.colors.color.dialog.generic
# Generic dialog colors.
## ui.colors.color.dialog.generic.text <color|#rrggbb>
# Default text color.
set ui.colors.color.dialog.generic.text = "white"
## ui.colors.color.dialog.generic.background <color|#rrggbb>
# Default background color.
set ui.colors.color.dialog.generic.background = "black"
## ui.colors.color.dialog.frame
# Dialog frame colors.
## ui.colors.color.dialog.frame.text <color|#rrggbb>
# Default text color.
set ui.colors.color.dialog.frame.text = "white"
## ui.colors.color.dialog.frame.background <color|#rrggbb>
# Default background color.
set ui.colors.color.dialog.frame.background = "black"
## ui.colors.color.dialog.title
# Dialog title colors.
## ui.colors.color.dialog.title.text <color|#rrggbb>
# Default text color.
set ui.colors.color.dialog.title.text = "white"
## ui.colors.color.dialog.title.background <color|#rrggbb>
# Default background color.
set ui.colors.color.dialog.title.background = "black"
## ui.colors.color.dialog.text
# Dialog text colors.
## ui.colors.color.dialog.text.text <color|#rrggbb>
# Default text color.
set ui.colors.color.dialog.text.text = "white"
## ui.colors.color.dialog.text.background <color|#rrggbb>
# Default background color.
set ui.colors.color.dialog.text.background = "black"
## ui.colors.color.dialog.checkbox
# Dialog checkbox colors.
## ui.colors.color.dialog.checkbox.text <color|#rrggbb>
# Default text color.
set ui.colors.color.dialog.checkbox.text = "darkred"
## ui.colors.color.dialog.checkbox.background <color|#rrggbb>
# Default background color.
set ui.colors.color.dialog.checkbox.background = "black"
## ui.colors.color.dialog.checkbox-selected
# Dialog selected checkbox colors.
## ui.colors.color.dialog.checkbox-selected.text <color|#rrggbb>
# Default text color.
set ui.colors.color.dialog.checkbox-selected.text = "yellow"
## ui.colors.color.title
# Title bar colors.
## ui.colors.color.title.title-bar
# Generic title bar colors.
## ui.colors.color.title.title-bar.text <color|#rrggbb>
# Default text color.
set ui.colors.color.title.title-bar.text = "white"
## ui.colors.color.title.title-bar.background <color|#rrggbb>
# Default background color.
set ui.colors.color.title.title-bar.background = "black"
## ui.colors.color.title.title-text
# Title bar text colors.
## ui.colors.color.title.title-text.text <color|#rrggbb>
# Default text color.
set ui.colors.color.title.title-text.text = "white"
## ui.colors.color.title.title-text.background <color|#rrggbb>
# Default background color.
set ui.colors.color.title.title-text.background = "black"
## ui.colors.color.status
# Status bar colors.
## ui.colors.color.status.showip-text
# Status bar show ip text colors.
## ui.colors.color.status.showip-text.text <color|#rrggbb>
# Default text color.
set ui.colors.color.status.showip-text.text = "white"
## ui.colors.color.status.showip-text.background <color|#rrggbb>
# Default background color.
set ui.colors.color.status.showip-text.background = "black"
## ui.colors.color.status.status-bar
# Generic status bar colors.
## ui.colors.color.status.status-bar.text <color|#rrggbb>
# Default text color.
set ui.colors.color.status.status-bar.text = "white"
## ui.colors.color.status.status-bar.background <color|#rrggbb>
# Default background color.
set ui.colors.color.status.status-bar.background = "black"
## ui.colors.color.status.status-text
# Status bar text colors.
## ui.colors.color.status.status-text.text <color|#rrggbb>
# Default text color.
set ui.colors.color.status.status-text.text = "white"
## ui.colors.color.status.status-text.background <color|#rrggbb>
# Default background color.
set ui.colors.color.status.status-text.background = "black"
## ui.colors.color.tabs
# Tabs bar colors.
## ui.colors.color.tabs.unvisited
# Tab colors for tabs that have not been selected since they completed
# loading.
## ui.colors.color.tabs.unvisited.text <color|#rrggbb>
# Default text color.
set ui.colors.color.tabs.unvisited.text = "white"
## ui.colors.color.tabs.unvisited.background <color|#rrggbb>
# Default background color.
set ui.colors.color.tabs.unvisited.background = "black"
## ui.colors.color.tabs.normal
# Unselected tab colors.
## ui.colors.color.tabs.normal.text <color|#rrggbb>
# Default text color.
set ui.colors.color.tabs.normal.text = "white"
## ui.colors.color.tabs.normal.background <color|#rrggbb>
# Default background color.
set ui.colors.color.tabs.normal.background = "black"
## ui.colors.color.tabs.loading
# Tab colors for tabs that are loading in the background.
## ui.colors.color.tabs.loading.text <color|#rrggbb>
# Default text color.
set ui.colors.color.tabs.loading.text = "darkred"
## ui.colors.color.tabs.loading.background <color|#rrggbb>
# Default background color.
set ui.colors.color.tabs.loading.background = "black"
## ui.colors.color.tabs.selected
# Selected tab colors.
## ui.colors.color.tabs.selected.text <color|#rrggbb>
# Default text color.
set ui.colors.color.tabs.selected.text = "black"
## ui.colors.color.tabs.selected.background <color|#rrggbb>
# Default background color.
set ui.colors.color.tabs.selected.background = "white"
## ui.colors.color.tabs.separator
# Tab separator colors.
## ui.colors.color.tabs.separator.text <color|#rrggbb>
# Default text color.
set ui.colors.color.tabs.separator.text = "white"
## ui.colors.color.tabs.separator.background <color|#rrggbb>
# Default background color.
set ui.colors.color.tabs.separator.background = "black"
## ui.colors.color.desktop
# Desktop background.
## ui.colors.color.desktop.text <color|#rrggbb>
# Default text color.
set ui.colors.color.desktop.text = "white"
## ui.colors.color.desktop.background <color|#rrggbb>
# Default background color.
set ui.colors.color.desktop.background = "black"
## ui.background_char <num>
# Integer value of background character.
set ui.background_char = 32
## ui.show_ip [0|1]
# Whether to display IP of the document in the status bar.
set ui.show_ip = 1
## ui.show_menu_bar_always [0|1]
# Always show menu bar on the screen.
set ui.show_menu_bar_always = 1
## ui.show_status_bar [0|1]
# Show status bar on the screen.
set ui.show_status_bar = 1
## ui.show_title_bar [0|1]
# Show title bar on the screen.
set ui.show_title_bar = 1
##################################
# Automatically saved keybindings
#
bind "main" "k" = "none"
##############################
# Automatically saved options
#
## document
# Document options.
## document.colors
# Default document color settings.
## document.colors.use_document_colors <num>
# Use colors specified in document:
# 0 is use always the default settings
# 1 is use document colors if available, except background
# 2 is use document colors, including background. This can
# mostly look very impressive, but some sites will appear
# really ugly. Note, that obviously if the background is
# not black, it will break the behaviour of transparency.
set document.colors.use_document_colors = 1
##############################
# Automatically saved options
#
## document
# Document options.
## document.browse
# Document browsing options (mainly interactivity).
## document.browse.forms
# Options for handling of the forms interaction.
## document.browse.forms.confirm_submit [0|1]
# Ask for confirmation when submitting a form.
set document.browse.forms.confirm_submit = 0

49
home/elinks/elinks.nix Normal file
View File

@ -0,0 +1,49 @@
{ lib, stdenv, fetchFromGitHub, ncurses, libX11, bzip2, zlib
, brotli, zstd, xz, openssl, autoreconfHook, gettext, pkg-config, libev
, gpm, libidn, tre, expat, luajit
}:
stdenv.mkDerivation rec {
pname = "elinks";
version = "0.17.0";
src = fetchFromGitHub {
owner = "rkd77";
repo = "elinks";
rev = "v${version}";
hash = "sha256-JeUiMHAqSZxxBe8DplzmzHzsY6KqoBqba0y8GDwaR0Y=";
};
buildInputs = [
ncurses libX11 bzip2 zlib brotli zstd xz
openssl libidn tre expat libev luajit
]
++ lib.optional stdenv.isLinux gpm
;
nativeBuildInputs = [ autoreconfHook gettext pkg-config ];
configureFlags = [
"--enable-finger"
"--enable-html-highlight"
"--enable-gopher"
"--enable-gemini"
"--enable-cgi"
"--enable-bittorrent"
"--enable-nntp"
"--enable-256-colors"
"--enable-true-color"
"--with-brotli"
"--with-lzma"
"--with-libev"
"--with-terminfo"
];
meta = with lib; {
description = "Full-featured text-mode web browser";
homepage = "https://github.com/rkd77/elinks";
license = licenses.gpl2;
platforms = with platforms; linux ++ darwin;
maintainers = with maintainers; [ iblech gebner ];
};
}

View File

@ -1,6 +1,10 @@
{ lib, config, pkgs, home, ... }: { lib, config, pkgs, home, ... }:
{ {
home.packages = with pkgs; [
isync
];
home.file = { home.file = {
".config/isync/config" = { ".config/isync/config" = {
source = ./config; source = ./config;

View File

@ -5,3 +5,9 @@ color = dark green
[[band]] [[band]]
path = "~/vdir/calendar/band" path = "~/vdir/calendar/band"
color = dark green color = dark green
[locale]
timeformat = %H:%M
dateformat = %Y-%m-%d
longdateformat = %Y-%m-%d %a
datetimeformat = %Y-%m-%d %H:%M
longdatetimeformat = %Y-%m-%d %H:%M

View File

@ -1,6 +1,10 @@
{ lib, config, pkgs, home, ... }: { lib, config, pkgs, home, ... }:
{ {
home.packages = with pkgs; [
khal
];
home.file = { home.file = {
".config/khal/config" = { ".config/khal/config" = {
source = ./config; source = ./config;

View File

@ -9,4 +9,3 @@ port 587
tls_starttls on tls_starttls on
from ryan@beepboop.systems from ryan@beepboop.systems
user ryan@beepboop.systems user ryan@beepboop.systems
passwordeval "rbw get mail.beepboop.systems"

View File

@ -3,6 +3,12 @@
{ {
programs.neovim.enable = true; programs.neovim.enable = true;
home.packages = with pkgs; [
lua-language-server
texlab
pylyzer
];
home.file = { home.file = {
".config/nvim/init.lua" = { ".config/nvim/init.lua" = {
source = ./init.lua; source = ./init.lua;

View File

@ -139,6 +139,7 @@ local packer = require('packer').startup(function(use)
use 'hrsh7th/nvim-cmp' use 'hrsh7th/nvim-cmp'
use 'hrsh7th/cmp-nvim-lsp' use 'hrsh7th/cmp-nvim-lsp'
use 'L3MON4D3/LuaSnip' use 'L3MON4D3/LuaSnip'
use 'saadparwaiz1/cmp_luasnip'
use 'lervag/vimtex' use 'lervag/vimtex'
use 'https://github.com/protex/better-digraphs.nvim' use 'https://github.com/protex/better-digraphs.nvim'
@ -156,6 +157,19 @@ inoremap('<C-k><C-k>', function()
require('better-digraphs').digraphs("insert") require('better-digraphs').digraphs("insert")
end) end)
-- lsp config {{{
local lsp_zero = require('lsp-zero')
lsp_zero.on_attach(function(client, bufnr)
-- see :help lsp-zero-keybindings
-- to learn the available actions
lsp_zero.default_keymaps({buffer = bufnr})
end)
require('lspconfig').lua_ls.setup({})
require('lspconfig').texlab.setup({})
require('lspconfig').pylyzer.setup({})
-- }}}
-- luasnip configuration {{{ -- luasnip configuration {{{
local luasnip = require("luasnip") local luasnip = require("luasnip")
local ls_extras = require("luasnip.extras") local ls_extras = require("luasnip.extras")
@ -171,6 +185,14 @@ luasnip.add_snippets("tex", {
luasnip.text_node({ "", "\\end{" }), ls_extras.rep(1), luasnip.text_node("}") luasnip.text_node({ "", "\\end{" }), ls_extras.rep(1), luasnip.text_node("}")
}) })
}) })
luasnip.add_snippets("tex", {
luasnip.snippet("desc", {
luasnip.text_node("\\begin{description}"),
luasnip.text_node({ "", "\t\\item " }), luasnip.insert_node(1),
luasnip.text_node({ "", "\\end{description}" })
})
})
-- }}} -- }}}
return packer return packer

View File

@ -2,6 +2,9 @@
{ {
# managed by nixos configuration # managed by nixos configuration
home.packages = with pkgs; [
sxhkd
];
home.file = { home.file = {
".config/sxhkd/sxhkdrc" = { ".config/sxhkd/sxhkdrc" = {

View File

@ -1,6 +1,10 @@
{ lib, config, pkgs, home, ... }: { lib, config, pkgs, home, ... }:
{ {
home.packages = with pkgs; [
todoman
];
home.file = { home.file = {
".config/todoman/config.py" = { ".config/todoman/config.py" = {
source = ./config.py; source = ./config.py;

View File

@ -6,12 +6,17 @@
ncpamixer # audio mixer ncpamixer # audio mixer
yt-dlp # youtube downloader yt-dlp # youtube downloader
tmux # (t)erminal (mu)ltiple(x)er tmux # (t)erminal (mu)ltiple(x)er
elinks # tty web browser
ledger # accounting ledger # accounting
neomutt # mail neomutt # mail
curl curl
tree tree
dig dig
python3 # nice interactive calculator and shell python3 # nice interactive calculator and shell
bluetuith
sshfs
rsync
msmtp
ytfzf
peaclock
]; ];
} }

View File

@ -8,6 +8,7 @@
./nvim ./nvim
./python ./python
./gnupg ./gnupg
./elinks
./tty-progs.nix ./tty-progs.nix
]; ];

View File

@ -1,6 +1,10 @@
{ lib, config, pkgs, home, ... }: { lib, config, pkgs, home, ... }:
{ {
home.packages = with pkgs; [
vdirsyncer
];
home.file = { home.file = {
".config/vdirsyncer/config" = { ".config/vdirsyncer/config" = {
source = ./config; source = ./config;

View File

@ -10,5 +10,7 @@
xwallpaper xwallpaper
xbrightness xbrightness
xdotool xdotool
brave
]; ];
} }

View File

@ -3,7 +3,6 @@
{ {
imports = [ imports = [
./bspwm ./bspwm
./polybar
./sx ./sx
./sxhkd ./sxhkd
./tridactyl ./tridactyl

View File

@ -1,7 +0,0 @@
{ lib, config, pkgs, ...}:
{
environment.systemPackages = with pkgs; [
sxiv
];
}

View File

@ -5,26 +5,10 @@
./gnupg.nix ./gnupg.nix
./fonts.nix ./fonts.nix
./pulse.nix ./pulse.nix
./sxiv.nix
]; ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
bspwm
sxhkd
xscreensaver xscreensaver
# non-x11 things, but common to the desktops
bluetuith
brave
vdirsyncer
isync
khal
todoman
sshfs
rsync
msmtp
ytfzf
peaclock
]; ];
services.xserver = { services.xserver = {