ritual: Nix-darwin hackintosh init
This commit is contained in:
parent
e60bbd7f41
commit
efa8532935
README.md
common
default.nix
fragments/graphical
audio.nixbarebones.nixbspwm.nixclipboard.nixdarwin.nixdefault.nixdunst.nixelement.nixkitty.nixlockscreen.nixmail.nixpicom.nixpolybar.nixrofi.nixsway.nixsyncthing.nixtheme.nixurl-eater.nix
home_manager
linux-specific.nixoptions.nixpkgs
external
flake.lockflake.nixhosts
Agathas-Mac-mini
ritual
tears
25
README.md
25
README.md
|
@ -2,9 +2,10 @@
|
|||
Using [colmena](https://github.com/zhaofengli/colmena)
|
||||
|
||||
## Hosts
|
||||
- `bloodletting`: Main server
|
||||
- `ritual`: NixOS laptop
|
||||
- `tears`: NixOS desktop
|
||||
- `Agathas-Mac-mini`: macOS/nix-darwin desktop
|
||||
- `bloodletting`: Main server / technogothic.net
|
||||
- `ritual`: macOS/nix-darwin laptop
|
||||
- `watchtower`: Home server
|
||||
|
||||
### Manual setup on blank system/migrations
|
||||
Bloodletting:
|
||||
|
@ -16,6 +17,8 @@ Bloodletting:
|
|||
- `bin_rs`
|
||||
- `fail2ban`
|
||||
- `grafana`
|
||||
- `headscale`
|
||||
- `hedgedoc`
|
||||
- `mastodon`
|
||||
- dump and import Postgres and Redis DBs
|
||||
- `matterbridge`
|
||||
|
@ -27,18 +30,10 @@ Bloodletting:
|
|||
- `prosody`
|
||||
- `/home/ftp`
|
||||
|
||||
Ritual/Tears:
|
||||
- `colmena apply[-local]` - deploy config
|
||||
- `mkdir -p ~/.gnupg` - create directory for gnupg
|
||||
- copy `~/.ssh/id_ed25519`
|
||||
- manual configuration/login:
|
||||
- Firefox
|
||||
- Copy extension data
|
||||
- Element
|
||||
- Dino
|
||||
- Telegram Desktop
|
||||
- Geary
|
||||
- Obsidian
|
||||
Agathas-Mac-mini/Ritual:
|
||||
- `darwin-rebuild switch --flake .` - deploy config
|
||||
|
||||
[Last commit which includes BSPWM configs](https://git.lain.faith/sorceress/nix-infra/commit/e60bbd7f41bdb4456319637f38a25425b6f5fef7)
|
||||
|
||||
### Rsyncd Modules
|
||||
Modded minecraft instance rsync modules can be accessed through `mc-[modpack]@bloodletting::mc-[modpack]` with `--rsh=ssh`
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
## Optimizations
|
||||
|
||||
# Link identical files
|
||||
nix.settings.auto-optimise-store = true;
|
||||
nix.optimise.automatic = true;
|
||||
|
||||
# Garbage collection
|
||||
nix.gc = {
|
||||
|
@ -43,8 +43,6 @@
|
|||
xclip
|
||||
];
|
||||
|
||||
services.tailscale.enable = true;
|
||||
|
||||
# 🥺
|
||||
# security.please.enable = true;
|
||||
}
|
||||
|
|
|
@ -1,95 +0,0 @@
|
|||
{ config, pkgs, lib, ... }: {
|
||||
# Pipewire
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
programs.noisetorch.enable = true;
|
||||
|
||||
systemd.user.services."noisetorch" = {
|
||||
description =
|
||||
"Virtual microphone device with noise supression for PulseAudio";
|
||||
|
||||
after = [ "graphical-session-pre.target" ];
|
||||
partOf = [ "graphical-session.target" "pipewire.service" ];
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.noisetorch}/bin/noisetorch -i -s ${
|
||||
if config.networking.hostName == "tears" then
|
||||
"US-4x4HR_ch0"
|
||||
else
|
||||
"alsa_input.pci-0000_00_1f.3.analog-stereo"
|
||||
}";
|
||||
ExecStop = "${pkgs.noisetorch}/bin/noisetorch -u";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 5;
|
||||
RemainAfterExit = true;
|
||||
};
|
||||
};
|
||||
|
||||
# User packages
|
||||
users.users.agatha.packages = with pkgs; [ pamixer pavucontrol playerctl ];
|
||||
|
||||
home-manager.users.agatha = {
|
||||
services.easyeffects = {
|
||||
enable = false;
|
||||
preset = "DT-770-flat-eq";
|
||||
};
|
||||
|
||||
xdg.configFile."easyeffects/output/DT-770-flat-eq.json".text = let
|
||||
band = num: freq: gain: ''
|
||||
"band${toString num}": {
|
||||
"frequency": ${toString freq},
|
||||
"gain": ${toString gain},
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 1.41,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
}
|
||||
'';
|
||||
bands = lib.concatStringsSep ''
|
||||
,
|
||||
'' [
|
||||
(band 0 31.0 5.8)
|
||||
(band 1 62.0 8.0)
|
||||
(band 2 125.0 (-8.03))
|
||||
(band 3 250.0 (-2.42))
|
||||
(band 4 500.0 0.71)
|
||||
(band 5 1000.0 1.67)
|
||||
(band 6 2000.0 (-2.42))
|
||||
(band 7 4000.0 7.12)
|
||||
(band 8 8000.0 (-0.61))
|
||||
(band 9 16000.0 (-2.58))
|
||||
];
|
||||
in ''
|
||||
{
|
||||
"output": {
|
||||
"blocklist": [],
|
||||
"equalizer": {
|
||||
"input-gain": 0.0,
|
||||
"left": {
|
||||
${bands}
|
||||
},
|
||||
"mode": "IIR",
|
||||
"num-bands": 10,
|
||||
"output-gain": 0.0,
|
||||
"right": {
|
||||
${bands}
|
||||
},
|
||||
"split-channels": false
|
||||
},
|
||||
"plugins_order": [
|
||||
"equalizer"
|
||||
]
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
# Config for client devices, but not necessarily a full desktop environment.
|
||||
|
||||
imports = [
|
||||
../restic.nix
|
||||
../yubikey.nix
|
||||
];
|
||||
|
||||
# User packages
|
||||
users.users.agatha.packages = with pkgs; [
|
||||
android-tools
|
||||
broot
|
||||
colmena
|
||||
exiftool
|
||||
ffmpeg
|
||||
flac
|
||||
hyperfine
|
||||
just
|
||||
magic-wormhole
|
||||
neofetch
|
||||
nil
|
||||
pfetch
|
||||
pridefetch
|
||||
rink
|
||||
sshfs
|
||||
unstable.rustmission
|
||||
whois
|
||||
wireguard-tools
|
||||
yt-dlp
|
||||
];
|
||||
|
||||
home-manager.users.agatha = {
|
||||
programs.direnv.enable = true;
|
||||
home.sessionVariables = {
|
||||
"DIRENV_LOG_FORMAT" = "";
|
||||
};
|
||||
|
||||
programs.ssh.enable = true;
|
||||
};
|
||||
}
|
|
@ -1,129 +0,0 @@
|
|||
{ lib, pkgs, config, ... }: {
|
||||
home-manager.users.agatha = {
|
||||
xsession.windowManager.bspwm = {
|
||||
enable = true;
|
||||
extraConfigEarly = lib.strings.concatStringsSep "\n" [
|
||||
"xsetroot -cursor_name left_ptr"
|
||||
"xinput set-prop 'SynPS/2 Synaptics TouchPad' 'libinput Scrolling Pixel Distance' 10"
|
||||
"setxkbmap"
|
||||
];
|
||||
extraConfig = let
|
||||
startOnce =
|
||||
map (v: "! pgrep ${builtins.head (lib.splitString " " v)} && ${v} &");
|
||||
startup = startOnce [
|
||||
"firefox"
|
||||
"element-desktop"
|
||||
"dino"
|
||||
"telegram-desktop"
|
||||
"cider"
|
||||
"geary"
|
||||
"bspm -d"
|
||||
];
|
||||
monitors = builtins.genList (_: _) (builtins.length (builtins.attrValues
|
||||
config.home-manager.users.agatha.xsession.windowManager.bspwm.monitors));
|
||||
nitrogen = map (i:
|
||||
"nitrogen --head=${toString i} --set-zoom-fill ${
|
||||
config.environment.graphical.colorschemes."${config.environment.graphical.theme.name}".image
|
||||
}") monitors;
|
||||
in lib.strings.concatStringsSep "\n" (nitrogen ++ startup);
|
||||
settings = let
|
||||
color = n:
|
||||
config.environment.graphical.colors."${config.environment.graphical.theme.name}"."${builtins.toString
|
||||
n}";
|
||||
in {
|
||||
border_width = 3;
|
||||
window_gap = 15;
|
||||
top_padding = 45;
|
||||
split_ratio = 0.5;
|
||||
borderless_monocle = false;
|
||||
gapless_monocle = false;
|
||||
normal_border_color = color 0;
|
||||
focused_border_color = color 1;
|
||||
active_border_color = color 2;
|
||||
urgent_border_color = color 2;
|
||||
presel_feedback_color = color 2;
|
||||
};
|
||||
rules = {
|
||||
"Gimp" = {
|
||||
state = "tiled";
|
||||
follow = true;
|
||||
};
|
||||
"Yubico Authenticator".state = "floating";
|
||||
};
|
||||
};
|
||||
|
||||
services.sxhkd = {
|
||||
enable = true;
|
||||
keybindings = {
|
||||
# Disable middle click paste
|
||||
"~button2" = "echo -n | xclip -in";
|
||||
# Terminal
|
||||
"super + Return" = "kitty";
|
||||
"Caps_Lock" = "kitty";
|
||||
# File explorer
|
||||
"super + e" = "nautilus";
|
||||
# Program launcher
|
||||
"super + @space" = "rofi -show drun";
|
||||
# Clipboard
|
||||
"super + v" = "clipcat-menu";
|
||||
# Calculator
|
||||
"super + shift + c" = ''
|
||||
ROFI_PLUGIN_PATH=${pkgs.rofi-calc}/lib/rofi rofi -show calc -modi calc -calc-command '${pkgs.xdotool}/bin/xdotool type --clearmodifiers "\{result\}'
|
||||
'';
|
||||
"super + shift + e" = ''
|
||||
rofimoji --action clipboard
|
||||
'';
|
||||
# Media keys
|
||||
"XF86Audio{Raise,Lower}Volume" = "pamixer {-i,-d} 5";
|
||||
"XF86AudioMute" = "pamixer -t";
|
||||
"XF86Audio{Prev,Next}" = "playerctl {previous,next}";
|
||||
"XF86AudioPlay" = "playerctl play-pause";
|
||||
"XF86MonBrightness{Up,Down}" = ''
|
||||
brightnessctl set 10%{+,-} && dunstify -r 98114 -h int:value:$(( $(brightnessctl get) * 100 / $(brightnessctl max) )) "Brightness set to:"
|
||||
'';
|
||||
# Switch outputs
|
||||
"super + o" = ''
|
||||
dunstify -r 112119 "Sound output switched to $(${pkgs.pads}/bin/pads next && ${pkgs.pads}/bin/pads list | rg '^\*' | choose 1:)"'';
|
||||
# Screenshot
|
||||
"Print" = "flameshot gui && bspc desktop --focus focused";
|
||||
"shift + Print" =
|
||||
"flameshot gui -d 3000 && bspc desktop --focus focused";
|
||||
# Pause notifications
|
||||
"super + n" = "dunstctl set-paused toggle";
|
||||
# Reload WM
|
||||
"super + shift + {q,r}" = ''
|
||||
pkill -USR1 -x sxhkd \
|
||||
; for p in picom polybar dunst; killall $p; end \
|
||||
; bspc {quit,wm -r}
|
||||
'';
|
||||
# Close/kill window
|
||||
"super + {_,shift + }w" = "bspc node -{c,k}";
|
||||
# Monocle layout
|
||||
"super + m" = "bspm monocle --toggle";
|
||||
"super + shift + m" = "bspm monocle --next";
|
||||
# Toggle hide all windows
|
||||
"super + d" =
|
||||
"bspc query -N -n .window | xargs -I node_id bspc node node_id -g hidden";
|
||||
# Change window state
|
||||
"super + {t,shift + t,s,f}" =
|
||||
"bspc node -t {tiled,pseudo_tiled,floating,fullscreen}";
|
||||
# Focus/move window
|
||||
"super + {_,shift + }{j,k,i,l}" =
|
||||
"bspc node -{f,s} {west,south,north,east}";
|
||||
# Focus the next window in the current desktop
|
||||
"super + c" = "bspc node -f next.local.!hidden.window";
|
||||
# Focus previous/next desktop on current monitor
|
||||
"super + bracket{left,right}" = "bspc desktop -f {prev,next}.local";
|
||||
# Switch desktops / Move window to desktop
|
||||
"super + {_,shift + }{1-9,0}" = "bspc {desktop -f,node -d} '^{1-9,10}'";
|
||||
# Window switcher
|
||||
"alt + Tab" = "rofi -show window";
|
||||
# Move floating window
|
||||
"super + {Left,Down,Up,Right}" = "bspc node -v {-20 0,0 20,0 -20,20 0}";
|
||||
# Lock screen
|
||||
"super + x" = ''
|
||||
betterlockscreen --lock dimblur --time-format "%H:%M"; systemctl --user restart gpg-agent'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,67 +0,0 @@
|
|||
{
|
||||
# Persistent clipboard
|
||||
services.clipcat.enable = true;
|
||||
|
||||
home-manager.users.agatha = {
|
||||
xdg.configFile."clipcat/clipcatd.toml".text = ''
|
||||
daemonize = true
|
||||
pid_file = "/run/user/1000/clipcatd.pid"
|
||||
max_history = 50
|
||||
history_file_path = "/home/agatha/.cache/clipcat/clipcatd-history"
|
||||
snippets = []
|
||||
|
||||
[log]
|
||||
emit_journald = true
|
||||
emit_stdout = false
|
||||
emit_stderr = false
|
||||
level = "INFO"
|
||||
|
||||
[watcher]
|
||||
load_current = true
|
||||
enable_clipboard = true
|
||||
enable_primary = false
|
||||
sensitive_x11_atoms = []
|
||||
filter_text_min_length = 1
|
||||
denied_text_regex_patterns = []
|
||||
capture_image = true
|
||||
|
||||
[grpc]
|
||||
enable_http = false
|
||||
enable_local_socket = true
|
||||
local_socket = "/run/user/1000/clipcat/grpc.sock"
|
||||
|
||||
[desktop_notification]
|
||||
enable = true
|
||||
icon = "accessories-clipboard"
|
||||
timeout_ms = 2000
|
||||
long_plaintext_length = 2000
|
||||
'';
|
||||
|
||||
xdg.configFile."clipcat/clipcatctl.toml".text = ''
|
||||
server_endpoint = "/run/user/1000/clipcat/grpc.sock"
|
||||
|
||||
[log]
|
||||
emit_journald = true
|
||||
emit_stdout = false
|
||||
emit_stderr = false
|
||||
level = "INFO"
|
||||
'';
|
||||
|
||||
xdg.configFile."clipcat/clipcat-menu.toml".text = ''
|
||||
server_endpoint = "/run/user/1000/clipcat/grpc.sock"
|
||||
finder = "rofi"
|
||||
|
||||
[rofi]
|
||||
line_length = 35
|
||||
menu_length = 15
|
||||
menu_prompt = "Clipboard"
|
||||
extra_arguments = []
|
||||
|
||||
[log]
|
||||
emit_journald = true
|
||||
emit_stdout = false
|
||||
emit_stderr = false
|
||||
level = "INFO"
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
{ pkgs, lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
./default.nix
|
||||
./iosevka.nix
|
||||
../../home_manager/common.nix
|
||||
../../remote-builds.nix
|
||||
];
|
||||
|
||||
services.nix-daemon.enable = true;
|
||||
nix.settings = {
|
||||
extra-nix-path = "nixpkgs=flake:nixpkgs";
|
||||
substituters = [
|
||||
"https://cache.nixos.org"
|
||||
"https://cache.lix.systems"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
"cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
|
||||
];
|
||||
trusted-users = [ "@admin" ];
|
||||
};
|
||||
|
||||
# Needed for the nix-darwin environment even if zsh is not used.
|
||||
programs.zsh.enable = true;
|
||||
|
||||
users.users.agatha = {
|
||||
name = "agatha";
|
||||
home = lib.mkForce "/Users/agatha";
|
||||
};
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
(nerdfonts.override {
|
||||
fonts = [
|
||||
"DaddyTimeMono"
|
||||
"NerdFontsSymbolsOnly"
|
||||
];
|
||||
})
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
font-awesome_5
|
||||
iosevka
|
||||
siji
|
||||
];
|
||||
}
|
|
@ -1,215 +1,35 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./barebones.nix
|
||||
./audio.nix
|
||||
./bspwm.nix
|
||||
./clipboard.nix
|
||||
./dunst.nix
|
||||
./element.nix
|
||||
./iosevka.nix
|
||||
./kitty.nix
|
||||
./lockscreen.nix
|
||||
./mail.nix
|
||||
./picom.nix
|
||||
./polybar.nix
|
||||
./rofi.nix
|
||||
./syncthing.nix
|
||||
./theme.nix
|
||||
./url-eater.nix
|
||||
];
|
||||
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
pads = final.callPackage ../../../common/pkgs/pads.nix { };
|
||||
bspm = final.callPackage ../../../common/pkgs/bspm.nix { };
|
||||
polybar-scripts = final.callPackage ../../../common/pkgs/polybar-scripts.nix { };
|
||||
})
|
||||
];
|
||||
# Config for client devices, but not necessarily a full desktop environment.
|
||||
|
||||
# User packages
|
||||
users.users.agatha.packages = with pkgs; [
|
||||
blueberry
|
||||
brightnessctl
|
||||
bspm
|
||||
cider
|
||||
darktable
|
||||
dino
|
||||
element-desktop
|
||||
flameshot
|
||||
gimp
|
||||
glib
|
||||
gnome.eog
|
||||
gnome.file-roller
|
||||
gnome.gnome-calendar
|
||||
gnome.gnome-control-center
|
||||
gnome.gnome-disk-utility
|
||||
gnome.gnome-font-viewer
|
||||
gnome.nautilus
|
||||
mpv
|
||||
mumble
|
||||
nitrogen
|
||||
obs-studio
|
||||
obsidian
|
||||
polybar-scripts
|
||||
prismlauncher
|
||||
rofi-calc
|
||||
rofimoji
|
||||
speechd
|
||||
tdesktop
|
||||
xdg-utils
|
||||
xdotool
|
||||
yubioath-flutter
|
||||
android-tools
|
||||
broot
|
||||
colmena
|
||||
exiftool
|
||||
ffmpeg
|
||||
flac
|
||||
hyperfine
|
||||
just
|
||||
magic-wormhole
|
||||
neofetch
|
||||
nil
|
||||
pfetch
|
||||
pridefetch
|
||||
rink
|
||||
sshfs
|
||||
unstable.rustmission
|
||||
whois
|
||||
wireguard-tools
|
||||
yt-dlp
|
||||
];
|
||||
|
||||
# blame Obsidian
|
||||
nixpkgs.config.permittedInsecurePackages = [ "electron-25.9.0" ];
|
||||
|
||||
# Brightness/volume keys
|
||||
users.users.agatha.extraGroups = [ "video" ];
|
||||
|
||||
location = {
|
||||
latitude = 49.0;
|
||||
longitude = 8.4;
|
||||
};
|
||||
services.redshift = {
|
||||
enable = true;
|
||||
brightness.night = "0.8";
|
||||
};
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
displayManager = {
|
||||
gdm.enable = true;
|
||||
|
||||
sessionPackages = [ pkgs.sway ];
|
||||
session = [
|
||||
{
|
||||
manage = "window";
|
||||
name = "bspwm";
|
||||
start =
|
||||
let
|
||||
cfg = config.home-manager.users.agatha;
|
||||
in
|
||||
''
|
||||
${cfg.services.sxhkd.package}/bin/sxhkd ${toString cfg.services.sxhkd.extraOptions} &
|
||||
${cfg.xsession.windowManager.bspwm.package}/bin/bspwm -c ${cfg.xdg.configHome}/bspwm/bspwmrc
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
# Layout overrides
|
||||
layout = lib.mkForce "eu,de(qwerty),ua,ru";
|
||||
xkbOptions = "ctrl:nocaps,compose:rctrl";
|
||||
|
||||
autoRepeatDelay = 200;
|
||||
autoRepeatInterval = 50;
|
||||
|
||||
libinput.enable = true;
|
||||
};
|
||||
|
||||
home-manager.users.agatha = {
|
||||
# Compose key sequences
|
||||
home.file.".XCompose".text = ''
|
||||
include "%L"
|
||||
|
||||
<Multi_key> <l> <f> : "( ͡° ͜ʖ ͡°)"
|
||||
<Multi_key> <s> <f> : "¯\\_(ツ)_/¯"
|
||||
<Multi_key> <g> <f> : "༼ つ ◕_◕ ༽つ"
|
||||
<Multi_key> <B> <B> : "🅱️"
|
||||
<Multi_key> <o> <asterisk> : "•"
|
||||
<Multi_key> <h> <r> : "◆"
|
||||
<Multi_key> <v> <v> : "✔"
|
||||
<Multi_key> <v> <period> <v> : "✓"
|
||||
<Multi_key> <space> <space> : ""
|
||||
<Multi_key> <s> <0> : "§"
|
||||
<Multi_key> <b><l> : "█"
|
||||
<Multi_key> <h><s> : "☭"
|
||||
<Multi_key> <s><r> : "√"
|
||||
<Multi_key> <t><r> : "⚧️ trans rights uwu"
|
||||
<Multi_key> <w><apostrophe> : "òwó"
|
||||
<Multi_key> <W><apostrophe> : "ÒwÓ"
|
||||
<Multi_key> <p><t> : "👉👈"
|
||||
<Multi_key> <p><l> : "🥺"
|
||||
<Multi_key> <m><s> : "/html <span data-mx-spoiler=\"\"></span>"
|
||||
'';
|
||||
programs.direnv.enable = true;
|
||||
home.sessionVariables = {
|
||||
"DIRENV_LOG_FORMAT" = "";
|
||||
};
|
||||
|
||||
services.gvfs.enable = true;
|
||||
security.polkit.enable = true;
|
||||
programs.dconf.enable = true;
|
||||
|
||||
programs.geary.enable = true;
|
||||
programs.steam.enable = true;
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
autoConfig = ''
|
||||
pref("privacy.webrtc.legacyGlobalIndicator", false);
|
||||
pref("privacy.webrtc.hideGlobalIndicator", true);
|
||||
'';
|
||||
};
|
||||
|
||||
# Screenshare on wlroots
|
||||
xdg = {
|
||||
portal = {
|
||||
enable = true;
|
||||
config.common.default = "*";
|
||||
wlr.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
fonts.fontconfig.enable = true;
|
||||
fonts.fontDir.enable = true;
|
||||
fonts.packages = with pkgs; [
|
||||
(nerdfonts.override {
|
||||
fonts = [
|
||||
"DaddyTimeMono"
|
||||
"NerdFontsSymbolsOnly"
|
||||
];
|
||||
})
|
||||
cantarell-fonts
|
||||
cm_unicode
|
||||
corefonts
|
||||
crimson
|
||||
crimson-pro
|
||||
dejavu_fonts
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
font-awesome_5
|
||||
helvetica-neue-lt-std
|
||||
iosevka
|
||||
noto-fonts-cjk
|
||||
siji
|
||||
twitter-color-emoji
|
||||
];
|
||||
|
||||
services.printing = {
|
||||
enable = true;
|
||||
drivers = [ pkgs.hplip ];
|
||||
};
|
||||
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
settings = {
|
||||
General = {
|
||||
Disable = "Headset";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Virtual Camera config
|
||||
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
||||
boot.kernelModules = [ "v4l2loopback" ];
|
||||
}
|
||||
|
|
|
@ -1,109 +0,0 @@
|
|||
{ pkgs, config, ... }:
|
||||
let
|
||||
color = n:
|
||||
config.environment.graphical.colors."${config.environment.graphical.theme.name}"."${builtins.toString
|
||||
n}";
|
||||
in {
|
||||
home-manager.users.agatha = {
|
||||
services.dunst = {
|
||||
enable = true;
|
||||
settings = {
|
||||
global = {
|
||||
# Display
|
||||
monitor = 1;
|
||||
|
||||
follow = "none";
|
||||
fullscreen = "pushback";
|
||||
|
||||
# Geometry
|
||||
width = 300;
|
||||
height = 300;
|
||||
|
||||
origin = "top-right";
|
||||
offset = "15x63";
|
||||
|
||||
notification_limit = 5;
|
||||
|
||||
# Progress bar
|
||||
progress_bar = true;
|
||||
progress_bar_height = 3;
|
||||
progress_bar_frame_width = 0;
|
||||
progress_bar_min_width = 150;
|
||||
progress_bar_max_width = 300;
|
||||
|
||||
indicate_hidden = true;
|
||||
separator_height = 0;
|
||||
padding = 8;
|
||||
horizontal_padding = 8;
|
||||
text_icon_padding = 0;
|
||||
frame_width = 3;
|
||||
|
||||
frame_color = color 1;
|
||||
highlight = color 3;
|
||||
|
||||
separator_color = "auto";
|
||||
sort = true;
|
||||
|
||||
# Text
|
||||
font = "Siji, DaddyTimeMono Nerd Font 10";
|
||||
line_height = 0;
|
||||
|
||||
markup = "full";
|
||||
format = ''
|
||||
<b>%s</b>
|
||||
%b %p'';
|
||||
alignment = "left";
|
||||
vertical_alignment = "center";
|
||||
|
||||
show_age_threshold = 60;
|
||||
ellipsize = "middle";
|
||||
ignore_newline = false;
|
||||
hide_duplicate_coutn = false;
|
||||
show_indicators = false;
|
||||
|
||||
# Icons
|
||||
icon_position = "left";
|
||||
min_icon_size = 0;
|
||||
max_icon_size = 32;
|
||||
|
||||
# History
|
||||
sticky_history = true;
|
||||
history_length = 20;
|
||||
|
||||
# Misc
|
||||
browser = "${pkgs.xdg-utils}/bin/xdg-open";
|
||||
always_run_script = true;
|
||||
|
||||
title = "Dunst";
|
||||
class = "Dunst";
|
||||
|
||||
mouse_left_click = "do_action, close_curent";
|
||||
mouse_right_click = "close_all";
|
||||
};
|
||||
urgency_low = {
|
||||
background = color 0;
|
||||
foreground = color 15;
|
||||
timeout = 10;
|
||||
};
|
||||
urgency_normal = {
|
||||
background = color 0;
|
||||
foreground = color 15;
|
||||
timeout = 10;
|
||||
};
|
||||
urgency_critical = {
|
||||
background = color 0;
|
||||
foreground = color 15;
|
||||
frame_color = color 3;
|
||||
|
||||
fullscreen = "show";
|
||||
timeout = 0;
|
||||
};
|
||||
# Horrible hack to fix alphabetical sorting overriding this
|
||||
x-calendar = {
|
||||
summary = " Calendar";
|
||||
alignment = "center";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,109 +0,0 @@
|
|||
{
|
||||
home-manager.users.agatha = {
|
||||
xdg.configFile."Element/config.json".text = ''
|
||||
{
|
||||
"setting_defaults": {
|
||||
"custom_themes": [
|
||||
{
|
||||
"name": "Sapphic Lavender",
|
||||
"is_dark": true,
|
||||
"fonts": {
|
||||
"general": "Allust, Twemoji, Twitter Color Emoji, sans",
|
||||
"monospace": "'Iosevka Medium Extended', 'Fira Code'"
|
||||
},
|
||||
"colors": {
|
||||
"accent": "#D2ADC6",
|
||||
"accent-color": "#D2ADC6",
|
||||
"primary-color": "#D2ADC6",
|
||||
"warning-color": "#BF80A6",
|
||||
"alert": "#BF80A6",
|
||||
"sidebar-color": "#231724",
|
||||
"primary-content": "#180F19",
|
||||
"secondary-content": "#E5D9E6",
|
||||
"tertiary-content": "#D2ADC6",
|
||||
"quaternary-content": "#E5D9E6",
|
||||
"quinary-content": "#251926",
|
||||
"system": "#180F19",
|
||||
"background": "#00f",
|
||||
"roomlist-background-color": "#231724",
|
||||
"roomlist-text-color": "#E5D9E6",
|
||||
"roomlist-text-secondary-color": "#ffd1dc",
|
||||
"roomlist-highlights-color": "#180F19",
|
||||
"roomlist-separator-color": "#180F19",
|
||||
"timeline-background-color": "#180F19",
|
||||
"timeline-text-color": "#E5D9E6",
|
||||
"timeline-text-secondary-color": "#D2ADC6",
|
||||
"timeline-highlights-color": "#231724",
|
||||
"eventbubble-self-bg": "#231724",
|
||||
"eventbubble-others-bg": "#231724",
|
||||
"eventbubble-bg-hover": "#231724",
|
||||
"eventbubble-reply-color": "#231724",
|
||||
"username-colors": [
|
||||
"#D8BFD8",
|
||||
"#ffd1dc",
|
||||
"#DDA0DD",
|
||||
"#DA70D6",
|
||||
"#BA55D3",
|
||||
"#9932CC",
|
||||
"#800060",
|
||||
"#8B008B"
|
||||
],
|
||||
"avatar-background-colors": ["#896bad", "#b09cc8", "#bdacd1"],
|
||||
"reaction-row-button-selected-bg-color": "#bd93f9"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Transgender Vampirism",
|
||||
"is_dark": true,
|
||||
"fonts": {
|
||||
"general": "Crimson, Noto Color Emoji, Twemoji, Twitter Color Emoji, sans",
|
||||
"monospace": "'Iosevka Gothic', 'Fira Code'"
|
||||
},
|
||||
"colors": {
|
||||
"accent": "#747E9D",
|
||||
"accent-color": "#747E9D",
|
||||
"primary-color": "#747E9D",
|
||||
"warning-color": "#110E18",
|
||||
"sidebar-color": "#16121F",
|
||||
"primary-content": "#110E18",
|
||||
"secondary-content": "#D5D6E8",
|
||||
"tertiary-content": "#747E9D",
|
||||
"quaternary-content": "#D5D6E8",
|
||||
"quinary-content": "#16121F",
|
||||
"system": "#16121F",
|
||||
"background": "#00f",
|
||||
"roomlist-background-color": "#16121F",
|
||||
"roomlist-text-color": "#D5D6E8",
|
||||
"roomlist-text-secondary-color": "#747E9D",
|
||||
"roomlist-highlights-color": "#110E18",
|
||||
"roomlist-separator-color": "#110E18",
|
||||
"timeline-background-color": "#110E18",
|
||||
"timeline-text-color": "#D5D6E8",
|
||||
"timeline-text-secondary-color": "#747E9D",
|
||||
"timeline-highlights-color": "#16121F",
|
||||
"eventbubble-self-bg": "#16121F",
|
||||
"eventbubble-others-bg": "#16121F",
|
||||
"eventbubble-bg-hover": "#16121F",
|
||||
"eventbubble-reply-color": "#16121F",
|
||||
"username-colors": [
|
||||
"#D8BFD8",
|
||||
"#AA9AB6",
|
||||
"#DDA0DD",
|
||||
"#DA70D6",
|
||||
"#7A5286",
|
||||
"#9932CC",
|
||||
"#800060",
|
||||
"#8B008B"
|
||||
],
|
||||
"avatar-background-colors": ["#896bad", "#b09cc8", "#bdacd1"],
|
||||
"reaction-row-button-selected-bg-color": "#bd93f9"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"show_labs_settings": true,
|
||||
"features": ["feature_latex_maths"]
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,81 +0,0 @@
|
|||
{ pkgs, config, ... }:
|
||||
let
|
||||
color = n:
|
||||
config.environment.graphical.colors."${config.environment.graphical.theme.name}"."${builtins.toString
|
||||
n}";
|
||||
in {
|
||||
home-manager.users.agatha = {
|
||||
home.sessionVariables.TERMINAL = "kitty";
|
||||
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
font = {
|
||||
package = pkgs.iosevka;
|
||||
name = "Iosevka Gothic";
|
||||
size = 11.5;
|
||||
};
|
||||
|
||||
keybindings = { "f5" = "load_config_file"; };
|
||||
|
||||
settings = {
|
||||
disable_ligatures = "never";
|
||||
|
||||
draw_minimal_borders = false;
|
||||
active_tab_font_style = "italic";
|
||||
inactive_tab_font_style = "normal";
|
||||
|
||||
scrollback_lines = -10000;
|
||||
url_style = "single";
|
||||
|
||||
strip_trailing_spaces = "smart";
|
||||
enable_audio_bell = false;
|
||||
|
||||
window_margin_width = 10;
|
||||
window_padding_width = 10;
|
||||
inactive_text_alpha = "0.8";
|
||||
enabled_layouts = "vertical, grid, stack";
|
||||
|
||||
tab_bar_edge = "top";
|
||||
tab_bar_style = "fade";
|
||||
tab_bar_margin_width = 5;
|
||||
tab_separator = "•";
|
||||
tab_title_template = "☾ {index}";
|
||||
|
||||
foreground = color 15;
|
||||
background = color 0;
|
||||
cursor = color 15;
|
||||
|
||||
color0 = color 0;
|
||||
color8 = color 8;
|
||||
color1 = color 1;
|
||||
color9 = color 9;
|
||||
color2 = color 2;
|
||||
color10 = color 10;
|
||||
color3 = color 3;
|
||||
color11 = color 11;
|
||||
color4 = color 4;
|
||||
color12 = color 12;
|
||||
color5 = color 5;
|
||||
color13 = color 13;
|
||||
color6 = color 6;
|
||||
color14 = color 14;
|
||||
color7 = color 7;
|
||||
color15 = color 15;
|
||||
|
||||
selection_foreground = color 1;
|
||||
selection_background = color 15;
|
||||
|
||||
url_color = color 1;
|
||||
|
||||
active_border_color = color 1;
|
||||
inactive_border_color = color 2;
|
||||
bell_border_color = color 6;
|
||||
|
||||
active_tab_foreground = color 15;
|
||||
active_tab_background = color 1;
|
||||
inactive_tab_foreground = color 8;
|
||||
inactive_tab_background = color 2;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
{ config, pkgs, ... }: {
|
||||
home-manager.users.agatha = {
|
||||
# Lockscreen
|
||||
services.betterlockscreen = {
|
||||
enable = true;
|
||||
arguments = [ "dimblur" ];
|
||||
};
|
||||
|
||||
# Update lockscreen wallpaper after locking
|
||||
home.file.".config/betterlockscreen/custom-post.sh".text =
|
||||
"betterlockscreen -u ${
|
||||
config.environment.graphical.colorschemes."${config.environment.graphical.theme.name}".image
|
||||
}";
|
||||
|
||||
home.file.".config/betterlockscreen/custom-post.sh".executable = true;
|
||||
|
||||
# Send a notification 10 seconds before locking
|
||||
services.screen-locker.xautolock.extraOptions = [
|
||||
"-notify 10"
|
||||
"-notifier '${pkgs.dunst}/bin/dunstify -t 10000 -u 2 \"Screen will lock in 10 seconds\"'"
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
{ pkgs, ... }: {
|
||||
systemd.user.services.protonmail-bridge = {
|
||||
description = "Protonmail Bridge";
|
||||
enable = true;
|
||||
script =
|
||||
"${pkgs.protonmail-bridge}/bin/protonmail-bridge --noninteractive --log-level info";
|
||||
|
||||
path = [ pkgs.gnome3.gnome-keyring ];
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
partOf = [ "graphical-session.target" ];
|
||||
};
|
||||
users.users.agatha.packages = [ pkgs.protonmail-bridge-gui ];
|
||||
}
|
|
@ -1,96 +0,0 @@
|
|||
{ pkgs, ... }: {
|
||||
home-manager.users.agatha = {
|
||||
services.picom = {
|
||||
enable = true;
|
||||
package = pkgs.picom-next;
|
||||
|
||||
# General
|
||||
backend = "glx";
|
||||
vSync = true;
|
||||
settings = {
|
||||
mark-wmwin-focused = true;
|
||||
detect = {
|
||||
rounded-corners = true;
|
||||
client-opacity = true;
|
||||
transient = true;
|
||||
client-leader = true;
|
||||
};
|
||||
use-damage = true;
|
||||
|
||||
wintypes = {
|
||||
tooltip = {
|
||||
fade = true;
|
||||
shadow = true;
|
||||
opacity = 0.75;
|
||||
focus = true;
|
||||
full-shadow = false;
|
||||
};
|
||||
dock = { shadow = false; };
|
||||
dnd = { shadow = false; };
|
||||
popup_menu = { opacity = 0.8; };
|
||||
dropdown_menu = { opacity = 0.8; };
|
||||
};
|
||||
};
|
||||
|
||||
# Shadows
|
||||
shadow = true;
|
||||
shadowOpacity = 1.0;
|
||||
shadowOffsets = [ (-7) (-7) ];
|
||||
shadowExclude = [
|
||||
"name = 'Notification'"
|
||||
"class_g ?= 'Notify-osd'"
|
||||
"class_g = 'Cairo-clock'"
|
||||
"class_g = 'firefox-nightly' && argb"
|
||||
"class_g = 'firefox' && argb"
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
"_NET_FRAME_EXTENTS@:c && WM_WINDOW_ROLE@:s = 'Popup'"
|
||||
"override_redirect = true"
|
||||
];
|
||||
|
||||
# Fade
|
||||
fade = true;
|
||||
fadeSteps = [ 5.0e-2 5.0e-2 ];
|
||||
|
||||
# Opacity
|
||||
settings.frame-opacity = 0.7;
|
||||
settings.inactive-opacity-override = false;
|
||||
settings.inactive-dim = 0.2;
|
||||
settings.focus-exclude = [
|
||||
"class_g = 'firefox-nightly'"
|
||||
"class_g = 'firefox'"
|
||||
"class_g = 'Dunst'"
|
||||
];
|
||||
opacityRules = [
|
||||
"100:_NET_WM_STATE@[0]:32a = '_NET_WM_STATE_FULLSCREEN'"
|
||||
"100:_NET_WM_STATE@[1]:32a = '_NET_WM_STATE_FULLSCREEN'"
|
||||
"100:_NET_WM_STATE@[2]:32a = '_NET_WM_STATE_FULLSCREEN'"
|
||||
"100:_NET_WM_STATE@[3]:32a = '_NET_WM_STATE_FULLSCREEN'"
|
||||
"100:_NET_WM_STATE@[4]:32a = '_NET_WM_STATE_FULLSCREEN'"
|
||||
"0:_COMPTON_MONOCLE@:32c = 0"
|
||||
"70:class_g = 'kitty'"
|
||||
"80:class_g = 'Dunst'"
|
||||
"20:class_g = 'Bspwm' && class_i = 'presel_feedback'"
|
||||
];
|
||||
|
||||
# Blur
|
||||
settings.blur = {
|
||||
method = "dual_kawase";
|
||||
strength = 3;
|
||||
background = true;
|
||||
kern = "3x3box";
|
||||
background-exclude = [
|
||||
"window_type = 'dock'"
|
||||
"window_type = 'desktop'"
|
||||
"window_type = 'dropdown_menu'"
|
||||
"window_type = 'popup_menu'"
|
||||
"window_type = 'tooltip'"
|
||||
"_GTK_FRAME_EXTENTS@:c"
|
||||
"_NET_FRAME_EXTENTS@:c && WM_WINDOW_ROLE@:s = 'Popup'"
|
||||
"class_g = 'firefox-nightly' && argb"
|
||||
"class_g = 'firefox' && argb"
|
||||
"override_redirect = true"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,340 +0,0 @@
|
|||
{ lib, pkgs, config, ... }: {
|
||||
home-manager.users.agatha = {
|
||||
|
||||
systemd.user.services.polybar = {
|
||||
Service = {
|
||||
Environment = lib.mkForce (lib.concatStringsSep ":" [
|
||||
"PATH=${config.home-manager.users.agatha.services.polybar.package}/bin"
|
||||
"/run/wrappers/bin"
|
||||
"${pkgs.dbus}/bin"
|
||||
"${pkgs.dunst}/bin"
|
||||
"${pkgs.systemd}/bin"
|
||||
"${pkgs.util-linux}/bin"
|
||||
"${pkgs.gnused}/bin"
|
||||
"${pkgs.kitty}/bin"
|
||||
]);
|
||||
};
|
||||
Install = { WantedBy = [ "graphical-session.target" ]; };
|
||||
};
|
||||
|
||||
xdg.configFile."polybar/config.ini".onChange =
|
||||
"${pkgs.systemd}/bin/systemctl --user restart polybar.service";
|
||||
|
||||
services.polybar = {
|
||||
enable = true;
|
||||
package = pkgs.polybarFull;
|
||||
|
||||
settings = let
|
||||
color = n:
|
||||
config.environment.graphical.colors."${config.environment.graphical.theme.name}"."${builtins.toString
|
||||
n}";
|
||||
in {
|
||||
"colors" = {
|
||||
background = color 0;
|
||||
foreground = color 7;
|
||||
foreground-alt = color 7;
|
||||
primary = color 1;
|
||||
secondary = color 2;
|
||||
alert = color 3;
|
||||
red = color 4;
|
||||
};
|
||||
|
||||
"bar/left" = {
|
||||
width = "100%:-30";
|
||||
height = 30;
|
||||
offset-x = 15;
|
||||
offset-y = 12;
|
||||
radius = 0;
|
||||
fixed-center = true;
|
||||
|
||||
background = "\${colors.background}";
|
||||
foreground = "\${colors.foreground}";
|
||||
|
||||
line = {
|
||||
size = 0;
|
||||
color = color 3;
|
||||
};
|
||||
border = {
|
||||
size = 3;
|
||||
color = color 1;
|
||||
};
|
||||
padding = {
|
||||
left = 2;
|
||||
right = 2;
|
||||
};
|
||||
module.margin = {
|
||||
left = 1;
|
||||
right = 1;
|
||||
};
|
||||
|
||||
font = {
|
||||
"0" = "Iosevka Gothic:pixelsize=10;3";
|
||||
"1" = "DejaVuSans:fontformat=truetype:size=8:antialias=false;2";
|
||||
"2" = "Siji:pixelsize=11;2";
|
||||
"3" = "Symbols Nerd Font:pixelsize=10;2";
|
||||
"4" = "DejaVuSans:fontformat=truetype:size=8:antialias=false;1";
|
||||
};
|
||||
|
||||
modules = {
|
||||
left = "bspwm";
|
||||
center = "date";
|
||||
right = "mpris wireguard notification-status";
|
||||
};
|
||||
|
||||
wm-restack = "bspwm";
|
||||
cursor-click = "pointer";
|
||||
locale = "de_DE.UTF-8";
|
||||
};
|
||||
|
||||
"bar/right" = {
|
||||
width = "100%:-30";
|
||||
height = 30;
|
||||
offset-x = 15;
|
||||
offset-y = 12;
|
||||
radius = 0;
|
||||
fixed-center = true;
|
||||
|
||||
background = "\${colors.background}";
|
||||
foreground = "\${colors.foreground}";
|
||||
|
||||
line = {
|
||||
size = 0;
|
||||
color = color 3;
|
||||
};
|
||||
border = {
|
||||
size = 3;
|
||||
color = color 1;
|
||||
};
|
||||
padding = {
|
||||
left = 2;
|
||||
right = 2;
|
||||
};
|
||||
module.margin = {
|
||||
left = 1;
|
||||
right = 1;
|
||||
};
|
||||
|
||||
font = {
|
||||
"0" = "Iosevka Gothic:pixelsize=10;3";
|
||||
"1" = "DejaVuSans:fontformat=truetype:size=8:antialias=false;2";
|
||||
"2" = "Siji:pixelsize=11;2";
|
||||
"3" = "Symbols Nerd Font:pixelsize=10;2";
|
||||
"4" = "DejaVuSans:fontformat=truetype:size=8:antialias=false;1";
|
||||
};
|
||||
|
||||
modules = {
|
||||
left = "bspwm";
|
||||
center = "date";
|
||||
right = lib.mkDefault
|
||||
"filesystem battery pulseaudio xkeyboard memory cpu notification-status powermenu";
|
||||
};
|
||||
|
||||
wm-restack = "bspwm";
|
||||
cursor-click = "pointer";
|
||||
locale = "de_DE.UTF-8";
|
||||
};
|
||||
|
||||
"module/xkeyboard" = {
|
||||
type = "internal/xkeyboard";
|
||||
blacklist-0 = "num lock";
|
||||
|
||||
format-prefix = " ";
|
||||
format-prefix-foreground = "\${colors.foreground-alt}";
|
||||
|
||||
label = {
|
||||
layout = "%layout%";
|
||||
|
||||
indicator = {
|
||||
padding = 2;
|
||||
margin = 1;
|
||||
background = "\${colors.secondary}";
|
||||
underline = "\${colors.secondary}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
"module/bspwm" = {
|
||||
type = "internal/bspwm";
|
||||
|
||||
label = {
|
||||
focused = "%name%";
|
||||
focused-foreground = "\${colors.primary}";
|
||||
focused-padding = 1;
|
||||
|
||||
occupied = "%name%";
|
||||
occupied-padding = 1;
|
||||
|
||||
urgent = "%name%!";
|
||||
urgent-background = "\${xrdb:color1:#222}";
|
||||
urgent-padding = 1;
|
||||
|
||||
empty = "%name%";
|
||||
empty-foreground = "\${colors.foreground-alt}";
|
||||
empty-padding = 1;
|
||||
};
|
||||
};
|
||||
|
||||
"module/date" = {
|
||||
type = "internal/date";
|
||||
interval = 5;
|
||||
|
||||
date = "";
|
||||
date-alt = " %a, %d %b %Y";
|
||||
|
||||
time = "%H:%M";
|
||||
time-alt = "%H:%M:%S";
|
||||
|
||||
format-prefix = "";
|
||||
format-prefix-foreground = "\${colors.foreground-alt}";
|
||||
|
||||
label = ''
|
||||
%{A3:${pkgs.dunst}/bin/dunstify ' Calendar' "$(${pkgs.util-linux}/bin/cal --color=always | ${pkgs.sd}/bin/sd '\\x1b\[7m' '<b>' | ${pkgs.sd}/bin/sd '\\x1b\[0m' '</b>')":}%date%%{A} %time%
|
||||
'';
|
||||
};
|
||||
|
||||
"module/filesystem" = {
|
||||
type = "internal/fs";
|
||||
interval = 25;
|
||||
|
||||
mount-0 = "/";
|
||||
|
||||
label-mounted = "%mountpoint%: %percentage_used%%";
|
||||
label-unmounted = "%mountpoint% not mounted";
|
||||
label-unmounted-foreground = "\${colors.foreground-alt}";
|
||||
};
|
||||
|
||||
"module/cpu" = {
|
||||
type = "internal/cpu";
|
||||
interval = 2;
|
||||
format-prefix = " ";
|
||||
format-prefix-foreground = "\${colors.foreground-alt}";
|
||||
label = "%{A1:kitty btop:}%percentage:2%%%{A}";
|
||||
};
|
||||
|
||||
"module/memory" = {
|
||||
type = "internal/memory";
|
||||
interval = 2;
|
||||
format-prefix = " ";
|
||||
format-prefix-foreground = "\${colors.foreground-alt}";
|
||||
label = "%{A1:kitty btop:}%percentage_used%%%{A}";
|
||||
};
|
||||
|
||||
"module/pulseaudio" = {
|
||||
type = "internal/pulseaudio";
|
||||
|
||||
format-volume = "%{A3:pavucontrol:}<label-volume> <bar-volume>%{A}";
|
||||
label-volume = " %percentage%%";
|
||||
label-volume-foreground = "\${root.foreground}";
|
||||
|
||||
label-muted = " muted";
|
||||
label-muted-foreground = "\${colors.primary}";
|
||||
|
||||
bar.volume = {
|
||||
width = 14;
|
||||
foreground-0 = "\${colors.secondary}";
|
||||
foreground-1 = "\${colors.secondary}";
|
||||
foreground-2 = "\${colors.primary}";
|
||||
foreground-3 = "\${colors.primary}";
|
||||
foreground-4 = "\${colors.primary}";
|
||||
foreground-5 = "\${colors.alert}";
|
||||
foreground-6 = "\${colors.red}";
|
||||
gradient = false;
|
||||
indicator = "|";
|
||||
indicator-font = 5;
|
||||
fill = "─";
|
||||
fill-font = 2;
|
||||
empty = "─";
|
||||
empty-font = 2;
|
||||
empty-foreground = "\${colors.foreground-alt}";
|
||||
};
|
||||
};
|
||||
|
||||
"module/powermenu" = {
|
||||
type = "custom/menu";
|
||||
|
||||
expand-right = true;
|
||||
format-spacing = 1;
|
||||
|
||||
label = {
|
||||
open = "";
|
||||
open-foreground = "\${colors.secondary}";
|
||||
close = " cancel";
|
||||
close-foreground = "\${colors.secondary}";
|
||||
separator = "|";
|
||||
separator-foreground = "\${colors.foreground-alt}";
|
||||
};
|
||||
|
||||
menu = {
|
||||
"0-0" = "reboot";
|
||||
"0-0-exec" = "${pkgs.systemd}/bin/reboot";
|
||||
"0-1" = "power off";
|
||||
"0-1-exec" = "${pkgs.systemd}/bin/shutdown now";
|
||||
};
|
||||
};
|
||||
|
||||
"module/battery" = {
|
||||
type = "internal/battery";
|
||||
full-at = 99;
|
||||
low-at = 10;
|
||||
battery = "BAT0";
|
||||
adapter = "AC";
|
||||
poll-interval = 3;
|
||||
|
||||
content-font = 3;
|
||||
|
||||
format-charging = "<animation-charging> <label-charging>";
|
||||
format-discharging = "<ramp-capacity> <label-discharging>";
|
||||
label = {
|
||||
charging = "%percentage_raw%%";
|
||||
discharging = "%percentage_raw%%";
|
||||
full = "";
|
||||
};
|
||||
|
||||
ramp = {
|
||||
capacity-0 = "";
|
||||
capacity-1 = "";
|
||||
capacity-2 = "";
|
||||
capacity-3 = "";
|
||||
capacity-4 = "";
|
||||
};
|
||||
|
||||
animation = {
|
||||
charging-0 = "";
|
||||
charging-1 = "";
|
||||
charging-2 = "";
|
||||
charging-3 = "";
|
||||
charging-4 = "";
|
||||
|
||||
charging-framerate = 750;
|
||||
};
|
||||
};
|
||||
|
||||
"module/notification-status" = {
|
||||
type = "custom/script";
|
||||
exec = ''
|
||||
if $(dunstctl is-paused); then echo "Notifications paused"; else echo ""; fi'';
|
||||
interval = 2;
|
||||
format-prefix = " ";
|
||||
};
|
||||
|
||||
"module/wireguard" = {
|
||||
type = "custom/script";
|
||||
exec = ''
|
||||
${pkgs.networkmanager}/bin/nmcli conn show --active | ${pkgs.ripgrep}/bin/rg -q wireguard && echo "VPN Connected" || echo ""'';
|
||||
click-left = "kitty nmtui";
|
||||
interval = 5;
|
||||
format-prefix = " ";
|
||||
};
|
||||
|
||||
"module/mpris" = {
|
||||
type = "custom/script";
|
||||
tail = true;
|
||||
exec =
|
||||
"${pkgs.polybar-scripts}/bin/player-mpris-tail/player-mpris-tail.py -f ' {artist}: {:t64:{title}:}' -w mpv -w cider";
|
||||
click-left =
|
||||
"${pkgs.playerctl}/bin/playerctl --player=cider play-pause";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,186 +0,0 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
let
|
||||
color = n:
|
||||
config.environment.graphical.colors."${config.environment.graphical.theme.name}"."${builtins.toString
|
||||
n}";
|
||||
in {
|
||||
home-manager.users.agatha = {
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
font = "DaddyTimeMono Nerd Font 10";
|
||||
terminal = "${pkgs.kitty}/bin/kitty";
|
||||
|
||||
theme = let
|
||||
inherit (config.home-manager.users.agatha.lib.formats.rasi) mkLiteral;
|
||||
in {
|
||||
"*" = {
|
||||
background = mkLiteral (color 0);
|
||||
foreground = mkLiteral (color 15);
|
||||
|
||||
active-background = mkLiteral (color 2);
|
||||
active-foreground = mkLiteral "@foreground";
|
||||
alternate-active-background = mkLiteral "@background";
|
||||
alternate-active-foreground = mkLiteral "@foreground";
|
||||
alternate-normal-background = mkLiteral "@background";
|
||||
alternate-normal-foreground = mkLiteral "@foreground";
|
||||
alternate-urgent-background = mkLiteral "@background";
|
||||
alternate-urgent-foreground = mkLiteral "@foreground";
|
||||
background-color = mkLiteral "@background";
|
||||
border-color = mkLiteral "@background";
|
||||
border-radius = mkLiteral "0px";
|
||||
lightfg = mkLiteral "#333b5c";
|
||||
normal-background = mkLiteral "@background";
|
||||
normal-foreground = mkLiteral "@foreground";
|
||||
selected-active-background = mkLiteral (color 1);
|
||||
selected-active-foreground = mkLiteral "@foreground";
|
||||
selected-normal-background = mkLiteral (color 2);
|
||||
selected-normal-foreground = mkLiteral "@foreground";
|
||||
selected-urgent-background = mkLiteral (color 3);
|
||||
selected-urgent-foreground = mkLiteral "@foreground";
|
||||
separatorcolor = mkLiteral "@foreground";
|
||||
urgent-background = mkLiteral (color 1);
|
||||
urgent-foreground = mkLiteral "@foreground";
|
||||
|
||||
spacing = 4;
|
||||
};
|
||||
|
||||
"#window" = {
|
||||
background-color = mkLiteral "var(background)";
|
||||
border-color = mkLiteral "var(urgent-background)";
|
||||
|
||||
width = mkLiteral "30em";
|
||||
padding = 5;
|
||||
border = 3;
|
||||
};
|
||||
|
||||
"#message" = {
|
||||
border-color = mkLiteral "@border-color";
|
||||
padding = mkLiteral "1px";
|
||||
};
|
||||
|
||||
"#textbox" = { text-color = mkLiteral "@foreground"; };
|
||||
|
||||
"#textbox-prompt-colon" = {
|
||||
text-color = mkLiteral "@normal-foreground";
|
||||
};
|
||||
|
||||
"#listview" = {
|
||||
border-color = mkLiteral "@border-color";
|
||||
padding = mkLiteral "2px 0px 0px";
|
||||
scrollbar = true;
|
||||
spacing = mkLiteral "2px";
|
||||
fixed-height = 0;
|
||||
lines = 10;
|
||||
};
|
||||
|
||||
"element" = {
|
||||
padding = mkLiteral "5px";
|
||||
cursor = mkLiteral "pointer";
|
||||
};
|
||||
|
||||
"#element-text, element-icon" = {
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "inherit";
|
||||
};
|
||||
|
||||
"#element.normal.normal" = {
|
||||
background-color = mkLiteral "@normal-background";
|
||||
text-color = mkLiteral "@normal-foreground";
|
||||
};
|
||||
|
||||
"#element.normal.urgent" = {
|
||||
background-color = mkLiteral "@urgent-background";
|
||||
text-color = mkLiteral "@urgent-foreground";
|
||||
};
|
||||
|
||||
"#element.normal.active" = {
|
||||
background-color = mkLiteral "@active-background";
|
||||
text-color = mkLiteral "@active-foreground";
|
||||
};
|
||||
|
||||
"#element.selected.normal" = {
|
||||
background-color = mkLiteral "@selected-normal-background";
|
||||
text-color = mkLiteral "@selected-normal-foreground";
|
||||
};
|
||||
|
||||
"#element.selected.urgent" = {
|
||||
background-color = mkLiteral "@selected-urgent-background";
|
||||
text-color = mkLiteral "@selected-urgent-foreground";
|
||||
};
|
||||
|
||||
"#element.selected.active" = {
|
||||
background-color = mkLiteral "@selected-active-background";
|
||||
text-color = mkLiteral "@selected-active-foreground";
|
||||
};
|
||||
|
||||
"#element.alternate.normal" = {
|
||||
background-color = mkLiteral "@alternate-normal-background";
|
||||
text-color = mkLiteral "@alternate-normal-foreground";
|
||||
};
|
||||
|
||||
"#element.alternate.urgent" = {
|
||||
background-color = mkLiteral "@alternate-urgent-background";
|
||||
text-color = mkLiteral "@alternate-urgent-foreground";
|
||||
};
|
||||
|
||||
"#element.alternate.active" = {
|
||||
background-color = mkLiteral "@alternate-active-background";
|
||||
text-color = mkLiteral "@alternate-active-foreground";
|
||||
};
|
||||
|
||||
"#sidebar" = { border-color = mkLiteral "@border-color"; };
|
||||
|
||||
"#button" = { text-color = mkLiteral "@normal-foreground"; };
|
||||
|
||||
"#button.selected" = {
|
||||
background-color = mkLiteral "@selected-normal-background";
|
||||
text-color = mkLiteral "@selected-normal-foreground";
|
||||
};
|
||||
|
||||
"#inputbar" = {
|
||||
text-color = mkLiteral "@normal-foreground";
|
||||
padding = mkLiteral "1px";
|
||||
spacing = mkLiteral "0px";
|
||||
children = mkLiteral
|
||||
"[ prompt,textbox-prompt-colon,entry,num-filtered-rows,textbox-num-sep,num-rows,case-indicator ]";
|
||||
};
|
||||
|
||||
"#case-indicator" = { text-color = mkLiteral "@normal-foreground"; };
|
||||
|
||||
"#entry" = { text-color = mkLiteral "@normal-foreground"; };
|
||||
|
||||
"#prompt" = { text-color = mkLiteral "@normal-foreground"; };
|
||||
|
||||
"num-filtered-rows" = {
|
||||
expand = false;
|
||||
text-color = mkLiteral (color 8);
|
||||
};
|
||||
|
||||
"num-rows" = {
|
||||
expand = false;
|
||||
text-color = mkLiteral (color 8);
|
||||
};
|
||||
|
||||
"textbox-num-sep" = {
|
||||
expand = false;
|
||||
str = "/";
|
||||
text-color = mkLiteral (color 8);
|
||||
};
|
||||
|
||||
"textbox-prompt-colon" = {
|
||||
margin = mkLiteral "0 0.3em 0 0";
|
||||
expand = false;
|
||||
str = ":";
|
||||
};
|
||||
|
||||
"entry" = {
|
||||
text-color = mkLiteral "var(normal-foreground)";
|
||||
cursor = mkLiteral "text";
|
||||
spacing = 0;
|
||||
placeholder-color = mkLiteral (color 8);
|
||||
placeholder = "Type to filter";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,103 +0,0 @@
|
|||
{ pkgs, config, ... }: {
|
||||
|
||||
# User packages
|
||||
users.users.agatha.packages = with pkgs; [ grim rofi-wayland waybar ydotool ];
|
||||
|
||||
home-manager.users.agatha = {
|
||||
wayland.windowManager.sway = let
|
||||
cfg = config.home-manager.users.agatha.wayland.windowManager.sway.config;
|
||||
in {
|
||||
enable = true;
|
||||
config = {
|
||||
up = "i";
|
||||
left = "j";
|
||||
down = "k";
|
||||
right = "l";
|
||||
|
||||
modifier = "Mod4";
|
||||
terminal = "kitty";
|
||||
|
||||
fonts = {
|
||||
names = [ "Font Awesome 5 Free" "Iosevka Gothic" ];
|
||||
size = 11.0;
|
||||
};
|
||||
|
||||
workspaceAutoBackAndForth = true;
|
||||
window = {
|
||||
titlebar = true;
|
||||
hideEdgeBorders = "both";
|
||||
border = 0;
|
||||
};
|
||||
|
||||
gaps.inner = 15;
|
||||
|
||||
output."*" = { bg = "/home/agatha/Pictures/wallpaper.png fill"; };
|
||||
|
||||
input."type:keyboard" = {
|
||||
xkb_layout = config.services.xserver.layout;
|
||||
xkb_options = config.services.xserver.xkbOptions;
|
||||
};
|
||||
|
||||
input."type:touchpad" = { tap = "enabled"; };
|
||||
|
||||
keybindings = let mod = cfg.modifier;
|
||||
in {
|
||||
"${mod}+Return" = "exec ${cfg.terminal}";
|
||||
"Caps_Lock" = "exec ${cfg.terminal}";
|
||||
"${mod}+e" = "exec nautilus";
|
||||
"${mod}+space" = "exec rofi -show drun";
|
||||
"${mod}+shift+e" = "exec rofimoji --action clipboard";
|
||||
"${mod}+c" = ''
|
||||
exec rofi -show calc -modi calc -calc-command 'xdotool type --clearmodifiers "\{result\}"'
|
||||
'';
|
||||
XF86AudioRaiseVolume = "exec pamixer -i 5";
|
||||
XF86AudioLowerVolume = "exec pamixer -d 5";
|
||||
XF86AudioMute = "exec pamixer -t";
|
||||
XF86AudioPrev = "exec playerctl previous";
|
||||
XF86AudioNext = "exec playerctl next";
|
||||
XF86AudioPlay = "exec playerctl play-pause";
|
||||
Print = "exec flameshot gui";
|
||||
"shift+Print" = "exec flameshot gui -d 3000";
|
||||
"${mod}+n" = "exec dunstctl set-paused toggle";
|
||||
# "${mod}+o" = "TODO: port audio switcher";
|
||||
"${mod}+shift+r" =
|
||||
"reload; exec 'for p in waybar dunst; do; killall $p; done'";
|
||||
"${mod}+w" = "kill";
|
||||
"${mod}+m" = "layout tabbed";
|
||||
"${mod}+t" = "layout toggle split";
|
||||
"${mod}+s" = "floating toggle";
|
||||
"${mod}+f" = "fullscreen toggle";
|
||||
|
||||
"alt+Tab" = "exec rofi -show window";
|
||||
|
||||
# "${mod}+x" = "TODO: lockscreen";
|
||||
|
||||
"${mod}+Shift+${cfg.left}" = "move left";
|
||||
"${mod}+Shift+${cfg.down}" = "move down";
|
||||
"${mod}+Shift+${cfg.up}" = "move up";
|
||||
"${mod}+Shift+${cfg.right}" = "move right";
|
||||
|
||||
"${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}+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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
user = "agatha";
|
||||
openDefaultPorts = true;
|
||||
overrideFolders = false;
|
||||
overrideDevices = false;
|
||||
};
|
||||
}
|
|
@ -1,67 +0,0 @@
|
|||
{ config, pkgs, ... }: {
|
||||
environment.graphical.colorschemes = {
|
||||
purple = {
|
||||
image = ../../../external/the_reliquary.png;
|
||||
params = [ "--lighten" "0.05" "--bold-delta" "0.1" ];
|
||||
};
|
||||
purple-light = {
|
||||
image = ../../../external/the_reliquary.png;
|
||||
params = [ "--light" "--bold-delta" "0.2" "--saturate" "0.1" ];
|
||||
};
|
||||
blue = { image = ../../../external/blue.jpg; };
|
||||
dark = {
|
||||
image = ../../../external/the_falls_by_night.jpg;
|
||||
params = [ "--lighten" "0.5" ];
|
||||
};
|
||||
bridge = {
|
||||
image = ../../../external/the_bridge.png;
|
||||
params = [ "--saturate" "0.05" ];
|
||||
};
|
||||
};
|
||||
|
||||
home-manager.users.agatha = {
|
||||
# Cursor theme
|
||||
home.pointerCursor = {
|
||||
name = "Adwaita";
|
||||
package = pkgs.gnome.adwaita-icon-theme;
|
||||
size = 24;
|
||||
x11 = {
|
||||
enable = true;
|
||||
defaultCursor = "Adwaita";
|
||||
};
|
||||
};
|
||||
|
||||
# GTK theme
|
||||
home.file.".themes" = {
|
||||
recursive = true;
|
||||
source = pkgs.fetchgit {
|
||||
url = "https://github.com/ZorinOS/zorin-desktop-themes.git";
|
||||
rev = "05ab7360d33ab6e510cebceccc4d2b3e1baa7276";
|
||||
sha256 = "sha256-nU2V6PZepi5c7zorF6dZYNSF8jliE8+VObzbzrU+ADo=";
|
||||
sparseCheckout = [ "ZorinPurple-Dark" "ZorinPurple-Light" ];
|
||||
};
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
font.name = "Cantarell";
|
||||
font.size = 12;
|
||||
theme.name = if config.environment.graphical.theme.light then
|
||||
"ZorinPurple-Light"
|
||||
else
|
||||
"ZorinPurple-Dark";
|
||||
};
|
||||
|
||||
dconf.settings."org/gnome/desktop/interface".color-scheme =
|
||||
if config.environment.graphical.theme.light then
|
||||
"prefer-light"
|
||||
else
|
||||
"prefer-dark";
|
||||
|
||||
programs.helix.settings.theme =
|
||||
if config.environment.graphical.theme.light then
|
||||
"paramount-light"
|
||||
else
|
||||
"paramount-dark";
|
||||
};
|
||||
}
|
|
@ -132,7 +132,8 @@ let
|
|||
params "wt_mc" "wt_zmc"
|
||||
}
|
||||
'';
|
||||
in {
|
||||
in
|
||||
{
|
||||
services.url-eater = {
|
||||
enable = true;
|
||||
inherit filters;
|
||||
|
|
|
@ -1,4 +1,10 @@
|
|||
{ pkgs, config, lib, ... }: {
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ ../../common/home_manager/helix.nix ];
|
||||
|
||||
home-manager.useGlobalPkgs = true;
|
||||
|
@ -29,16 +35,19 @@
|
|||
signing.key = "33185E0D62AD7294379947D4C37ABADDB597BCA1";
|
||||
signing.signByDefault = true;
|
||||
aliases = {
|
||||
plog =
|
||||
"log --graph --pretty=format:'%h -%d %s -%an %n' --abbrev-commit --date=relative --branches";
|
||||
plog = "log --graph --pretty=format:'%h -%d %s -%an %n' --abbrev-commit --date=relative --branches";
|
||||
pfusch = "push --force-with-lease";
|
||||
stat = "diff --compact-summary";
|
||||
undo = "reset --soft HEAD~";
|
||||
unstage = "restore --staged";
|
||||
};
|
||||
extraConfig = {
|
||||
init = { defaultBranch = "mistress"; };
|
||||
core = { editor = "hx"; };
|
||||
init = {
|
||||
defaultBranch = "mistress";
|
||||
};
|
||||
core = {
|
||||
editor = "hx";
|
||||
};
|
||||
merge.conflictStyle = "zdiff3";
|
||||
rebase.autosquash = true;
|
||||
pull.rebase = true;
|
||||
|
@ -67,8 +76,11 @@
|
|||
"$character"
|
||||
"$directory"
|
||||
];
|
||||
right_format =
|
||||
lib.concatStrings [ "$git_branch" " " "$cmd_duration" ];
|
||||
right_format = lib.concatStrings [
|
||||
"$git_branch"
|
||||
" "
|
||||
"$cmd_duration"
|
||||
];
|
||||
character = {
|
||||
success_symbol = "";
|
||||
error_symbol = "[ ⇣](purple)";
|
||||
|
@ -80,7 +92,9 @@
|
|||
style = "cyan";
|
||||
read_only_style = "cyan";
|
||||
};
|
||||
cmd_duration = { min_time = 10000; };
|
||||
cmd_duration = {
|
||||
min_time = 10000;
|
||||
};
|
||||
git_branch = {
|
||||
format = "$symbol $branch";
|
||||
symbol = "";
|
||||
|
@ -118,10 +132,12 @@
|
|||
ls = "eza -lhT --classify=always --group-directories-first --level 1";
|
||||
cat = "bat";
|
||||
ip = "ip -color=always";
|
||||
youtube-dl-audio = ''
|
||||
yt-dlp --ignore-errors --output "%(title)s.%(ext)s" --extract-audio --audio-format best'';
|
||||
youtube-dl-audio = ''yt-dlp --ignore-errors --output "%(title)s.%(ext)s" --extract-audio --audio-format best'';
|
||||
rsync = "rsync -az --partial --info=progress2";
|
||||
};
|
||||
shellAliases.tailscale = lib.mkIf (
|
||||
!pkgs.stdenv.isLinux
|
||||
) "/Applications/Tailscale.app/Contents/MacOS/Tailscale";
|
||||
functions = {
|
||||
expand-dot-to-parent-directory-path = ''
|
||||
# expand ... to ../.. etc
|
||||
|
@ -176,7 +192,9 @@
|
|||
|
||||
tealdeer = {
|
||||
enable = true;
|
||||
settings = { updates.auto_update = true; };
|
||||
settings = {
|
||||
updates.auto_update = true;
|
||||
};
|
||||
};
|
||||
|
||||
zoxide = {
|
||||
|
@ -198,4 +216,3 @@
|
|||
'';
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{ pkgs, lib, ... }: {
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
# Set editor
|
||||
environment.variables.EDITOR = "hx";
|
||||
|
||||
|
@ -11,22 +12,33 @@
|
|||
enable = true;
|
||||
package = pkgs.helix;
|
||||
languages = {
|
||||
language = [{
|
||||
language = [
|
||||
{
|
||||
name = "nix";
|
||||
auto-format = true;
|
||||
formatter = { command = "nixfmt"; };
|
||||
}];
|
||||
formatter = {
|
||||
command = "nixfmt";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
settings = {
|
||||
theme = lib.mkDefault "paramount-dark";
|
||||
editor = {
|
||||
middle-click-paste = false;
|
||||
scroll-lines = 4;
|
||||
shell = [ "fish" "-c" ];
|
||||
shell = [
|
||||
"fish"
|
||||
"-c"
|
||||
];
|
||||
bufferline = "multiple";
|
||||
|
||||
statusline = {
|
||||
left = [ "mode" "spinner" "file-name" ];
|
||||
left = [
|
||||
"mode"
|
||||
"spinner"
|
||||
"file-name"
|
||||
];
|
||||
right = [
|
||||
"workspace-diagnostics"
|
||||
"position"
|
||||
|
@ -39,7 +51,9 @@
|
|||
separator = " ";
|
||||
};
|
||||
|
||||
cursor-shape = { insert = "bar"; };
|
||||
cursor-shape = {
|
||||
insert = "bar";
|
||||
};
|
||||
|
||||
whitespace.render = {
|
||||
tab = "all";
|
||||
|
@ -61,13 +75,25 @@
|
|||
|
||||
keys = {
|
||||
insert = {
|
||||
"C-left" = [ "move_prev_word_start" "collapse_selection" ];
|
||||
"C-right" = [ "move_next_word_start" "collapse_selection" ];
|
||||
"C-left" = [
|
||||
"move_prev_word_start"
|
||||
"collapse_selection"
|
||||
];
|
||||
"C-right" = [
|
||||
"move_next_word_start"
|
||||
"collapse_selection"
|
||||
];
|
||||
};
|
||||
|
||||
normal = {
|
||||
"C-left" = [ "move_prev_word_start" "collapse_selection" ];
|
||||
"C-right" = [ "move_next_word_start" "collapse_selection" ];
|
||||
"C-left" = [
|
||||
"move_prev_word_start"
|
||||
"collapse_selection"
|
||||
];
|
||||
"C-right" = [
|
||||
"move_next_word_start"
|
||||
"collapse_selection"
|
||||
];
|
||||
"A-d" = "delete_selection";
|
||||
"d" = "delete_selection_noyank";
|
||||
};
|
||||
|
@ -75,7 +101,8 @@
|
|||
};
|
||||
|
||||
themes = {
|
||||
paramount-dark = let
|
||||
paramount-dark =
|
||||
let
|
||||
medium_gray = "#767676";
|
||||
lighter_black = "#4E4E4E";
|
||||
lighter_gray = "#C6C6C6";
|
||||
|
@ -85,11 +112,14 @@
|
|||
dark_purple = "#af5fd7";
|
||||
light_purple = "#a790d5";
|
||||
dark_yellow = "#A89C14";
|
||||
in {
|
||||
inherits = "hex_lavender";
|
||||
|
||||
"ui.background" = { bg = "black"; };
|
||||
"ui.gutter" = { bg = "black"; };
|
||||
in
|
||||
{
|
||||
"ui.background" = {
|
||||
bg = "black";
|
||||
};
|
||||
"ui.gutter" = {
|
||||
bg = "black";
|
||||
};
|
||||
"ui.menu.selected" = {
|
||||
fg = lighter_gray;
|
||||
bg = light_purple;
|
||||
|
@ -115,9 +145,17 @@
|
|||
fg = medium_gray;
|
||||
modifiers = [ "italic" ];
|
||||
};
|
||||
"punctuation" = { fg = medium_gray; };
|
||||
"punctuation" = {
|
||||
fg = medium_gray;
|
||||
};
|
||||
"ui.linenr" = medium_gray;
|
||||
"ui.linenr.selected" = { fg = light_purple; };
|
||||
"ui.linenr.selected" = {
|
||||
fg = light_purple;
|
||||
};
|
||||
"ui.window" = medium_gray;
|
||||
"ui.text" = lighter_gray;
|
||||
"ui.text.focus" = light_purple;
|
||||
"ui.virtual.whitespace" = lighter_black;
|
||||
"string.special.url" = {
|
||||
fg = lighter_gray;
|
||||
underline = {
|
||||
|
@ -166,16 +204,23 @@
|
|||
"diff.plus" = light_green;
|
||||
"diff.minus" = light_red;
|
||||
"diff.delta" = dark_yellow;
|
||||
"ui.cursor" = { bg = lighter_gray; };
|
||||
"ui.cursor.insert" = { bg = light_purple; };
|
||||
"ui.cursor.select" = { bg = dark_purple; };
|
||||
"ui.cursor" = {
|
||||
bg = lighter_gray;
|
||||
};
|
||||
"ui.cursor.insert" = {
|
||||
bg = light_purple;
|
||||
};
|
||||
"ui.cursor.select" = {
|
||||
bg = dark_purple;
|
||||
};
|
||||
"ui.cursor.match" = {
|
||||
fg = lighter_gray;
|
||||
bg = medium_gray;
|
||||
};
|
||||
"namespace" = medium_gray;
|
||||
};
|
||||
paramount-light = let
|
||||
paramount-light =
|
||||
let
|
||||
medium_gray = "#767676";
|
||||
actual_white = "#FFFFFF";
|
||||
light_black = "#262626";
|
||||
|
@ -184,11 +229,16 @@
|
|||
dark_green = "#10A778";
|
||||
dark_purple = "#af5fd7";
|
||||
dark_yellow = "#A89C14";
|
||||
in {
|
||||
in
|
||||
{
|
||||
inherits = "spacebones_light";
|
||||
|
||||
"ui.background" = { bg = actual_white; };
|
||||
"ui.gutter" = { bg = actual_white; };
|
||||
"ui.background" = {
|
||||
bg = actual_white;
|
||||
};
|
||||
"ui.gutter" = {
|
||||
bg = actual_white;
|
||||
};
|
||||
"ui.menu.selected" = {
|
||||
fg = light_black;
|
||||
bg = dark_purple;
|
||||
|
@ -218,9 +268,13 @@
|
|||
fg = medium_gray;
|
||||
modifiers = [ "italic" ];
|
||||
};
|
||||
"punctuation" = { fg = medium_gray; };
|
||||
"punctuation" = {
|
||||
fg = medium_gray;
|
||||
};
|
||||
"ui.linenr" = medium_gray;
|
||||
"ui.linenr.selected" = { fg = dark_purple; };
|
||||
"ui.linenr.selected" = {
|
||||
fg = dark_purple;
|
||||
};
|
||||
"string.special.url" = {
|
||||
fg = light_black;
|
||||
underline = {
|
||||
|
@ -269,9 +323,15 @@
|
|||
"diff.plus" = dark_green;
|
||||
"diff.minus" = dark_red;
|
||||
"diff.delta" = dark_yellow;
|
||||
"ui.cursor" = { bg = light_black; };
|
||||
"ui.cursor.insert" = { bg = dark_purple; };
|
||||
"ui.cursor.select" = { bg = dark_purple; };
|
||||
"ui.cursor" = {
|
||||
bg = light_black;
|
||||
};
|
||||
"ui.cursor.insert" = {
|
||||
bg = dark_purple;
|
||||
};
|
||||
"ui.cursor.select" = {
|
||||
bg = dark_purple;
|
||||
};
|
||||
"ui.cursor.match" = {
|
||||
fg = light_black;
|
||||
bg = medium_gray;
|
||||
|
|
|
@ -67,4 +67,5 @@
|
|||
trustedInterfaces = [ "tailscale0" ];
|
||||
allowedUDPPorts = [ config.services.tailscale.port ];
|
||||
};
|
||||
services.tailscale.enable = true;
|
||||
}
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
{ lib, config, ... }: {
|
||||
options = {
|
||||
environment.graphical.theme = with lib; {
|
||||
name = mkOption { type = types.str; };
|
||||
light = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = let
|
||||
theme =
|
||||
config.environment.graphical.colorschemes."${config.environment.graphical.theme.name}";
|
||||
in {
|
||||
environment.graphical.theme.light = builtins.elem "--light" theme.params
|
||||
|| builtins.elem "-l" theme.params;
|
||||
};
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
{ pkgs }:
|
||||
pkgs.buildGoModule rec {
|
||||
pname = "bspm";
|
||||
version = "v0.0.9";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "diogox";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-ocnvTUANmJ6186Dktr5GaotbkZKZymKiIHICgTIRtjc=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Oj6i4/K0LAubu2aSoXcC6bZtTp8/N0cbvG+KWjA5/nw=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
description = "The bspwm manager";
|
||||
homepage = "https://github.com/diogox/bspm";
|
||||
};
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
{ pkgs }:
|
||||
pkgs.rustPlatform.buildRustPackage rec {
|
||||
pname = "pads";
|
||||
version = "89d69d4b9b199e08671c947120d5b2e1b6295d68";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "dogue";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-vVmEKvRSBiHv4skh2/B6cl17jVsgRI0IJeSgpSpPPTE=";
|
||||
};
|
||||
|
||||
cargoLock = { lockFile = "${src}/Cargo.lock"; };
|
||||
|
||||
nativeBuildInputs = [ pkgs.pkg-config ];
|
||||
buildInputs = [ pkgs.libpulseaudio ];
|
||||
|
||||
meta = {
|
||||
description =
|
||||
"A simple CLI tool for swtiching the default/active output device for PulseAudio.";
|
||||
homepage = "https://github.com/dogue/pads";
|
||||
};
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
{ pkgs }:
|
||||
pkgs.stdenv.mkDerivation rec {
|
||||
pname = "polybar-scripts";
|
||||
version = "8a6a2c7fc6beb281515f81ccf5b9fafc830a3230";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "polybar";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-4f12SSidJGElPbHs94WyoKj9kJH4dWsZSqMGOyzSJII=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with pkgs; [ gobject-introspection wrapGAppsHook3 ];
|
||||
|
||||
propagatedBuildInputs = with pkgs; [
|
||||
(python39.withPackages (pyPkgs: with pyPkgs; [ dbus-python pygobject3 ]))
|
||||
glib
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
find . -type f ! -name "*.py" ! -name "*.sh" -exec rm {} \;
|
||||
cp -r polybar-scripts/* $out/bin/
|
||||
chmod -R +x $out/bin
|
||||
'';
|
||||
}
|
Binary file not shown.
Before (image error) Size: 188 KiB |
|
@ -1,4 +0,0 @@
|
|||
the_reliquary.png: The Reliquary by Pete Amachree
|
||||
blue.jpg: ???
|
||||
the_falls_by_night.jpg: Jungle Waterfall by Mark J. Ferrari
|
||||
the_bridge.png: The Bridge by ReFiend
|
Binary file not shown.
Before (image error) Size: 11 MiB |
Binary file not shown.
Before (image error) Size: 2.0 MiB |
Binary file not shown.
Before (image error) Size: 6.7 MiB |
173
flake.lock
173
flake.lock
|
@ -44,28 +44,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"colorpickle": {
|
||||
"inputs": {
|
||||
"naersk": "naersk",
|
||||
"nixpkgs": [
|
||||
"nixpkgs-unstable"
|
||||
],
|
||||
"utils": "utils_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1700940986,
|
||||
"narHash": "sha256-+7eo8Y0YkuQeGDIHtEGPpoJQNGSxpzkg4UPR63xJiss=",
|
||||
"owner": "AgathaSorceress",
|
||||
"repo": "colorpickle",
|
||||
"rev": "61c77e71b5586412b6deecc2389fc39072e4b60f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "AgathaSorceress",
|
||||
"repo": "colorpickle",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"locked": {
|
||||
"lastModified": 1727974419,
|
||||
|
@ -130,7 +108,7 @@
|
|||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_4"
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726560853,
|
||||
|
@ -148,7 +126,7 @@
|
|||
},
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_5"
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
|
@ -196,11 +174,11 @@
|
|||
},
|
||||
"frq-friend": {
|
||||
"inputs": {
|
||||
"naersk": "naersk_2",
|
||||
"naersk": "naersk",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"utils": "utils_3"
|
||||
"utils": "utils_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1704635792,
|
||||
|
@ -226,11 +204,11 @@
|
|||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729690460,
|
||||
"narHash": "sha256-x8qkGujBPuOefXPyjcaB8Ot0IYkQBy6O2ZYb8NrnB3k=",
|
||||
"lastModified": 1732579614,
|
||||
"narHash": "sha256-LREXerN4a4DHG38a2KZPum7E/OKNhYgrBtU6AsD5SnQ=",
|
||||
"owner": "helix-editor",
|
||||
"repo": "helix",
|
||||
"rev": "101a74bf6edbbfdf9b0628a0bdbbc307ebe10ff2",
|
||||
"rev": "80709cee610f1758af1e62d53bde2eb8aa706a0c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -313,11 +291,11 @@
|
|||
},
|
||||
"matrix-ril100": {
|
||||
"inputs": {
|
||||
"naersk": "naersk_3",
|
||||
"naersk": "naersk_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs-unstable"
|
||||
],
|
||||
"utils": "utils_4"
|
||||
"utils": "utils_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1688054487,
|
||||
|
@ -360,25 +338,6 @@
|
|||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1694081375,
|
||||
"narHash": "sha256-vzJXOUnmkMCm3xw8yfPP5m8kypQ3BhAIRe4RRCWpzy8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "naersk",
|
||||
"rev": "3f976d822b7b37fc6fb8e6f157c2dd05e7e94e89",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "master",
|
||||
"repo": "naersk",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"naersk_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1679567394,
|
||||
"narHash": "sha256-ZvLuzPeARDLiQUt6zSZFGOs+HZmE+3g4QURc8mkBsfM=",
|
||||
|
@ -394,9 +353,9 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"naersk_3": {
|
||||
"naersk_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1687852486,
|
||||
|
@ -413,7 +372,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"naersk_4": {
|
||||
"naersk_3": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"url-eater",
|
||||
|
@ -438,7 +397,7 @@
|
|||
"nix": {
|
||||
"inputs": {
|
||||
"lowdown-src": "lowdown-src",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs-regression": "nixpkgs-regression"
|
||||
},
|
||||
"locked": {
|
||||
|
@ -462,11 +421,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1730070491,
|
||||
"narHash": "sha256-+RYCbdU6l4E4pr40++lrdhdE3gNC/BR54AL7xWG/YRU=",
|
||||
"lastModified": 1732420287,
|
||||
"narHash": "sha256-CzvYF4x6jUh/+NEEIFrIY5t1W/N3IA2bNZJiMXu9GTo=",
|
||||
"owner": "LnL7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "5c0c6aaa797d6ccbb6cdab14de0248135735709d",
|
||||
"rev": "3c52583b99666a349a6219dc1f0dd07d75c82d6a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -477,11 +436,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1696234590,
|
||||
"narHash": "sha256-mgOzQYTvaTT4bFopVOadlndy2RPwLy60rDjIWOGujwo=",
|
||||
"lastModified": 1681272286,
|
||||
"narHash": "sha256-9X5p+gwYrowgbsRgkf14HFI0fkr6UikuwRIQAMlF1yI=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f902cb49892d300ff15cb237e48aa1cad79d68c3",
|
||||
"rev": "6b70761ea8c896aff8994eb367d9526686501860",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -491,11 +450,11 @@
|
|||
},
|
||||
"nixpkgs-darwin": {
|
||||
"locked": {
|
||||
"lastModified": 1730091932,
|
||||
"narHash": "sha256-Xg1O6tAHBK8EVHMLylYFlpRmqtG/deKqTfI9atLRLE0=",
|
||||
"lastModified": 1730891215,
|
||||
"narHash": "sha256-i85DPrhDuvzgvIWCpJlbfM2UFtNYbapo20MtQXsvay4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9b9516e15a60ce6633efccb02d703f6eca973228",
|
||||
"rev": "c128e44a249d6180740d0a979b6480d5b795c013",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -523,11 +482,11 @@
|
|||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1729980323,
|
||||
"narHash": "sha256-eWPRZAlhf446bKSmzw6x7RWEE4IuZgAp8NW3eXZwRAY=",
|
||||
"lastModified": 1732238832,
|
||||
"narHash": "sha256-sQxuJm8rHY20xq6Ah+GwIUkF95tWjGRd1X8xF+Pkk38=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "86e78d3d2084ff87688da662cf78c2af085d8e73",
|
||||
"rev": "8edf06bea5bcbee082df1b7369ff973b91618b8d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -538,20 +497,6 @@
|
|||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681272286,
|
||||
"narHash": "sha256-9X5p+gwYrowgbsRgkf14HFI0fkr6UikuwRIQAMlF1yI=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6b70761ea8c896aff8994eb367d9526686501860",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1687946342,
|
||||
"narHash": "sha256-vRxti8pOuXS0rJmqjbD8ueEEFXWSK22ISHoCWkhgzzg=",
|
||||
|
@ -565,7 +510,7 @@
|
|||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1657693803,
|
||||
"narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=",
|
||||
|
@ -581,13 +526,13 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1729973466,
|
||||
"narHash": "sha256-knnVBGfTCZlQgxY1SgH0vn2OyehH9ykfF8geZgS95bk=",
|
||||
"lastModified": 1731797254,
|
||||
"narHash": "sha256-df3dJApLPhd11AlueuoN0Q4fHo/hagP75LlM5K1sz9g=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "cd3e8833d70618c4eea8df06f95b364b016d4950",
|
||||
"rev": "e8c38b73aeb218e27163376a2d617e61a2ad9b59",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -597,7 +542,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1682092588,
|
||||
"narHash": "sha256-NjKBPnScpbGiH/YOx74DIFOVkr5AKJOVZoy0l7J58gk=",
|
||||
|
@ -617,7 +562,6 @@
|
|||
"inputs": {
|
||||
"ccase": "ccase",
|
||||
"colmena": "colmena",
|
||||
"colorpickle": "colorpickle",
|
||||
"frq-friend": "frq-friend",
|
||||
"helix": "helix",
|
||||
"home-manager": "home-manager",
|
||||
|
@ -625,7 +569,7 @@
|
|||
"matrix-ril100": "matrix-ril100",
|
||||
"mms": "mms",
|
||||
"nix-darwin": "nix-darwin",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nixpkgs-darwin": "nixpkgs-darwin",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"url-eater": "url-eater",
|
||||
|
@ -774,28 +718,13 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_8": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"url-eater": {
|
||||
"inputs": {
|
||||
"naersk": "naersk_4",
|
||||
"naersk": "naersk_3",
|
||||
"nixpkgs": [
|
||||
"nixpkgs-unstable"
|
||||
],
|
||||
"utils": "utils_5"
|
||||
"utils": "utils_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710529176,
|
||||
|
@ -833,24 +762,6 @@
|
|||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1694529238,
|
||||
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1681202837,
|
||||
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
||||
|
@ -865,9 +776,9 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils_4": {
|
||||
"utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_6"
|
||||
"systems": "systems_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1687709756,
|
||||
|
@ -883,9 +794,9 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils_5": {
|
||||
"utils_4": {
|
||||
"inputs": {
|
||||
"systems": "systems_7"
|
||||
"systems": "systems_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701680307,
|
||||
|
@ -901,9 +812,9 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils_6": {
|
||||
"utils_5": {
|
||||
"inputs": {
|
||||
"systems": "systems_8"
|
||||
"systems": "systems_7"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1681202837,
|
||||
|
@ -921,8 +832,8 @@
|
|||
},
|
||||
"vampysite": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_6",
|
||||
"utils": "utils_6"
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"utils": "utils_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1717180338,
|
||||
|
|
95
flake.nix
95
flake.nix
|
@ -31,11 +31,6 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||
};
|
||||
|
||||
colorpickle = {
|
||||
url = "github:AgathaSorceress/colorpickle";
|
||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||
};
|
||||
|
||||
matrix-ril100 = {
|
||||
url = "git+https://git.lain.faith/sorceress/matrix-ril100";
|
||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||
|
@ -73,7 +68,6 @@
|
|||
mms,
|
||||
helix,
|
||||
url-eater,
|
||||
colorpickle,
|
||||
matrix-ril100,
|
||||
frq-friend,
|
||||
colmena,
|
||||
|
@ -97,7 +91,6 @@
|
|||
'';
|
||||
}
|
||||
);
|
||||
colorpickle = colorpickle.packages.${final.system}.default;
|
||||
frq-friend = frq-friend.packages.${final.system}.default;
|
||||
vampysite = vampysite.packages.${final.system}.default;
|
||||
matrix-ril100 = matrix-ril100.packages.${final.system}.default;
|
||||
|
@ -109,43 +102,6 @@
|
|||
colmena.overlay
|
||||
lix-module.overlays.default
|
||||
];
|
||||
mkDesktop = hostname: {
|
||||
imports = [
|
||||
./common
|
||||
./common/linux-specific.nix
|
||||
./hosts/${hostname}/configuration.nix
|
||||
./common/options.nix
|
||||
(import "${home-manager}/nixos")
|
||||
url-eater.nixosModules.default
|
||||
colorpickle.nixosModules.default
|
||||
];
|
||||
|
||||
deployment = {
|
||||
targetUser = "root";
|
||||
targetHost = hostname;
|
||||
|
||||
tags = [ "home" ];
|
||||
|
||||
allowLocalDeployment = true;
|
||||
|
||||
keys = {
|
||||
"restic-password" = {
|
||||
keyCommand = [
|
||||
"cat"
|
||||
"./secrets/restic-password"
|
||||
];
|
||||
destDir = "/var/lib/secrets/";
|
||||
};
|
||||
"restic-env" = {
|
||||
keyCommand = [
|
||||
"cat"
|
||||
"./secrets/restic-env"
|
||||
];
|
||||
destDir = "/var/lib/secrets/";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
colmena = {
|
||||
|
@ -248,8 +204,42 @@
|
|||
};
|
||||
};
|
||||
|
||||
ritual = mkDesktop "ritual";
|
||||
tears = mkDesktop "tears";
|
||||
tears = {
|
||||
imports = [
|
||||
./common
|
||||
./common/linux-specific.nix
|
||||
./hosts/tears/configuration.nix
|
||||
./common/options.nix
|
||||
(import "${home-manager}/nixos")
|
||||
url-eater.nixosModules.default
|
||||
];
|
||||
|
||||
deployment = {
|
||||
targetUser = "root";
|
||||
targetHost = "tears";
|
||||
|
||||
tags = [ "home" ];
|
||||
|
||||
allowLocalDeployment = true;
|
||||
|
||||
keys = {
|
||||
"restic-password" = {
|
||||
keyCommand = [
|
||||
"cat"
|
||||
"./secrets/restic-password"
|
||||
];
|
||||
destDir = "/var/lib/secrets/";
|
||||
};
|
||||
"restic-env" = {
|
||||
keyCommand = [
|
||||
"cat"
|
||||
"./secrets/restic-env"
|
||||
];
|
||||
destDir = "/var/lib/secrets/";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
darwinConfigurations."Agathas-Mac-mini" = nix-darwin.lib.darwinSystem {
|
||||
pkgs = import nixpkgs-darwin rec {
|
||||
|
@ -263,6 +253,18 @@
|
|||
(import "${home-manager}/nix-darwin")
|
||||
];
|
||||
};
|
||||
darwinConfigurations."ritual" = nix-darwin.lib.darwinSystem {
|
||||
pkgs = import nixpkgs-darwin rec {
|
||||
system = "x86_64-darwin";
|
||||
config.allowUnfree = true;
|
||||
overlays = mkOverlays system config;
|
||||
};
|
||||
modules = [
|
||||
./common
|
||||
./hosts/ritual/configuration.nix
|
||||
(import "${home-manager}/nix-darwin")
|
||||
];
|
||||
};
|
||||
devShells =
|
||||
let
|
||||
patchedColmena =
|
||||
|
@ -281,6 +283,7 @@
|
|||
{
|
||||
"x86_64-linux".default = patchedColmena "x86_64-linux";
|
||||
"aarch64-darwin".default = patchedColmena "aarch64-darwin";
|
||||
"x86_64-darwin".default = patchedColmena "x86_64-darwin";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,48 +1,7 @@
|
|||
{ pkgs, lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
../../common/home_manager/common.nix
|
||||
../../common/remote-builds.nix
|
||||
../../common/fragments/graphical/barebones.nix
|
||||
../../common/fragments/graphical/iosevka.nix
|
||||
];
|
||||
imports = [ ../../common/fragments/graphical/darwin.nix ];
|
||||
|
||||
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||
services.nix-daemon.enable = true;
|
||||
nix.settings = {
|
||||
extra-nix-path = "nixpkgs=flake:nixpkgs";
|
||||
substituters = [
|
||||
"https://cache.nixos.org"
|
||||
"https://cache.lix.systems"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
"cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
|
||||
];
|
||||
trusted-users = [ "@admin" ];
|
||||
};
|
||||
|
||||
# Needed for the nix-darwin environment even if zsh is not used.
|
||||
programs.zsh.enable = true;
|
||||
|
||||
users.users.agatha = {
|
||||
name = "agatha";
|
||||
home = lib.mkForce "/Users/agatha";
|
||||
};
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
(nerdfonts.override {
|
||||
fonts = [
|
||||
"DaddyTimeMono"
|
||||
"NerdFontsSymbolsOnly"
|
||||
];
|
||||
})
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
font-awesome_5
|
||||
iosevka
|
||||
siji
|
||||
];
|
||||
|
||||
system.stateVersion = 1;
|
||||
}
|
||||
|
|
|
@ -1,83 +1,7 @@
|
|||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../common/fragments/graphical
|
||||
../../common/remote-builds.nix
|
||||
../../common/home_manager/common.nix
|
||||
];
|
||||
imports = [ ../../common/fragments/graphical/darwin.nix ];
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||||
nixpkgs.hostPlatform = "x86_64-darwin";
|
||||
|
||||
boot.loader.systemd-boot.configurationLimit = 5;
|
||||
|
||||
# Setup keyfile
|
||||
boot.initrd.secrets = {
|
||||
"/crypto_keyfile.bin" = null;
|
||||
};
|
||||
|
||||
networking.hostName = "ritual";
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
virtualisation = {
|
||||
podman = {
|
||||
enable = true;
|
||||
dockerCompat = true;
|
||||
defaultNetwork.settings.dns_enabled = true;
|
||||
};
|
||||
oci-containers.backend = "podman";
|
||||
};
|
||||
|
||||
# Don't suspend when closed and plugged into power
|
||||
services.logind.lidSwitchExternalPower = "lock";
|
||||
|
||||
home-manager.users.agatha = {
|
||||
xsession.windowManager.bspwm = {
|
||||
monitors = {
|
||||
eDP-1 = [
|
||||
"I"
|
||||
"II"
|
||||
"III"
|
||||
"IV"
|
||||
"V"
|
||||
"VI"
|
||||
"VII"
|
||||
"VIII"
|
||||
];
|
||||
};
|
||||
rules = {
|
||||
"Element".desktop = "II";
|
||||
"TelegramDesktop".desktop = "III";
|
||||
"dino".desktop = "III";
|
||||
"Cider".desktop = "IV";
|
||||
"Geary".desktop = "V";
|
||||
"firefox" = {
|
||||
desktop = "I";
|
||||
state = "tiled";
|
||||
follow = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.polybar = {
|
||||
script = "polybar right &";
|
||||
settings."bar/right".monitor = "\${env:MONITOR:eDP-1}";
|
||||
};
|
||||
};
|
||||
|
||||
environment.graphical.theme.name = "blue";
|
||||
|
||||
services.syncthing.dataDir = "/home/agatha/syncthing";
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "22.11"; # Did you read the comment?
|
||||
system.stateVersion = 1;
|
||||
}
|
||||
|
|
|
@ -1,21 +1,33 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, modulesPath, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||
|
||||
boot.initrd.availableKernelModules =
|
||||
[ "xhci_pci" "ahci" "usb_storage" "sd_mod" "sdhci_pci" ];
|
||||
boot.initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
"sdhci_pci"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
boot.kernelModules = [
|
||||
"kvm-intel"
|
||||
"wl"
|
||||
];
|
||||
boot.extraModulePackages = with config.boot.kernelPackages; [ broadcom_sta ];
|
||||
|
||||
boot.initrd.systemd = {
|
||||
enable = true;
|
||||
emergencyAccess =
|
||||
"$2b$05$eOIXFST5/9G6vAFIZDLGfuJV7CV1B26YmRMAFRstyRHwvBNFSN6Im";
|
||||
emergencyAccess = "$2b$05$eOIXFST5/9G6vAFIZDLGfuJV7CV1B26YmRMAFRstyRHwvBNFSN6Im";
|
||||
};
|
||||
|
||||
boot.supportedFilesystems = [ "ntfs" ];
|
||||
|
@ -26,22 +38,18 @@
|
|||
options = [ "subvol=@" ];
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-8807caf4-ae17-4b39-93bd-ddfa1f994a47".device =
|
||||
"/dev/disk/by-uuid/8807caf4-ae17-4b39-93bd-ddfa1f994a47";
|
||||
boot.initrd.luks.devices."luks-8807caf4-ae17-4b39-93bd-ddfa1f994a47".device = "/dev/disk/by-uuid/8807caf4-ae17-4b39-93bd-ddfa1f994a47";
|
||||
|
||||
# Enable swap on luks
|
||||
boot.initrd.luks.devices."luks-c503653d-47de-4914-9e41-d13d14a6cc22".device =
|
||||
"/dev/disk/by-uuid/c503653d-47de-4914-9e41-d13d14a6cc22";
|
||||
boot.initrd.luks.devices."luks-c503653d-47de-4914-9e41-d13d14a6cc22".keyFile =
|
||||
"/crypto_keyfile.bin";
|
||||
boot.initrd.luks.devices."luks-c503653d-47de-4914-9e41-d13d14a6cc22".device = "/dev/disk/by-uuid/c503653d-47de-4914-9e41-d13d14a6cc22";
|
||||
boot.initrd.luks.devices."luks-c503653d-47de-4914-9e41-d13d14a6cc22".keyFile = "/crypto_keyfile.bin";
|
||||
|
||||
fileSystems."/boot/efi" = {
|
||||
device = "/dev/disk/by-uuid/9A5C-CE17";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[{ device = "/dev/disk/by-uuid/e20a4e05-44a6-4895-84ef-e3d176931b25"; }];
|
||||
swapDevices = [ { device = "/dev/disk/by-uuid/e20a4e05-44a6-4895-84ef-e3d176931b25"; } ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
|
@ -51,8 +59,9 @@
|
|||
# networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
# environment.systemPackages = with pkgs; [ b43Firmware_5_1_138 ];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
hardware.cpu.intel.updateMicrocode =
|
||||
lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../common/fragments/graphical/barebones.nix
|
||||
../../common/fragments/graphical
|
||||
../../common/fragments/virt.nix
|
||||
../../common/home_manager/common.nix
|
||||
];
|
||||
|
|
Loading…
Reference in New Issue