I should commit more frequently 🫣

This commit is contained in:
Andrea Ciceri 2023-09-22 18:45:43 +02:00
parent d7e82621c8
commit f1483e45f0
Signed by: aciceri
SSH key fingerprint: SHA256:/AagBweyV4Hlfg9u092n8hbHwD5fcB6A3qhDiDA65Rg
70 changed files with 2344 additions and 599 deletions

View file

@ -1,5 +1,5 @@
{pkgs, ...}: {
home.packages = [pkgs.element-desktop];
home.packages = [pkgs.schildichat-desktop];
systemd.user.services.element-desktop = {
Install.WantedBy = ["graphical-session.target"];
@ -10,7 +10,7 @@
};
Service = {
ExecStart = "${pkgs.element-desktop}/bin/element-desktop";
ExecStart = "${pkgs.schildichat-desktop}/bin/schildichat-desktop";
Restart = "on-failure";
RestartSec = 3;
};

View file

@ -1,3 +1,4 @@
{lib, ...}: {
ccrEmacs.enable = true;
home.sessionVariables.EDITOR = lib.mkForce "emacsclient";
}

View file

@ -19,13 +19,9 @@
privacy-badger
ublock-origin
tridactyl
octotree
octolinker
org-capture
browserpass
# bypass-paywalls-clean
ghosttext # or edit-with-emacs?
# fx_cast # TODO make PR to rycee NUR repo
];
settings = {
"browser.startup.homepage" = "https://google.it";

View file

@ -1,5 +1,4 @@
{age, ...}: {
programs.git-workspace.enable = true;
services.git-workspace = {
enable = true;
frequency = "04:00:00";

View file

@ -19,7 +19,7 @@ in {
gpg.format = "ssh";
commit.gpgsign = true;
core.editor = "hx";
core.editor = "emacsclient";
};
userName = config.name;
@ -37,7 +37,7 @@ in {
};
delta = {
enable = false; # Playing with difftastic at the moment
enable = false;
options = {
features = "decorations";
delta = {
@ -50,5 +50,9 @@ in {
enable = true;
background = "dark";
};
diff-so-fancy.enable = false;
};
home.packages = with pkgs; [delta];
}

View file

@ -0,0 +1,21 @@
{
pkgs,
lib,
config,
...
}: {
services.gnome-keyring = {
enable = false; # Is this broken? https://github.com/nix-community/home-manager/issues/1454
components = lib.mkForce [
"secrets"
"ssh"
];
};
home.packages = [pkgs.gcr]; # Needed in PATH
# Workaround
wayland.windowManager.hyprland.extraConfig = ''
exec-once = ${pkgs.gnome.gnome-keyring}/bin/gnome-keyring-daemon --start --foreground --components=secrets,ssh,pkcs
'';
}

View file

@ -18,6 +18,6 @@
};
};
};
home.sessionVariables.EDITOR = lib.mkForce "${config.programs.helix.package}/bin/helix";
programs.nushell.environmentVariables.EDITOR = lib.mkForce config.home.sessionVariables.EDITOR;
# home.sessionVariables.EDITOR = lib.mkForce "${config.programs.helix.package}/bin/helix";
# programs.nushell.environmentVariables.EDITOR = lib.mkForce config.home.sessionVariables.EDITOR;
}

View file

@ -9,6 +9,16 @@
${pkgs.grim}/bin/grim -t png -g "$coords" "$filename"
wl-copy -t image/png < $filename
'';
hyprland = config.wayland.windowManager.hyprland.package;
switchMonitorScript = pkgs.writeShellScript "switch-monitor.sh" ''
if [[ "$(${hyprland}/bin/hyprctl monitors) | grep '\sDP-[0-9]+'" ]]; then
if [[ $1 == "open" ]]; then
${hyprland}/bin/hyprctl keyword monitor "eDP-1,1920x1080,3760x230,1"
else
${hyprland}/bin/hyprctl keyword monitor "eDP-1,disable"
fi
fi
'';
in {
imports = [
./hyprpaper.nix
@ -17,6 +27,7 @@ in {
../mako
../gammastep
../kitty
../wezterm
];
home.packages = with pkgs; [wl-clipboard];
@ -41,6 +52,33 @@ in {
};
};
services.kanshi = {
enable = false;
systemdTarget = "hyprland-session.target";
profiles = {
undocked = {
outputs = [
{
status = "enable";
criteria = "eDP-1";
}
];
};
docked = {
outputs = [
{
status = "disable";
criteria = "eDP-1";
}
{
status = "enable";
criteria = "DP-1";
}
];
};
};
};
wayland.windowManager.hyprland = {
enable = true;
extraConfig = ''
@ -50,24 +88,31 @@ in {
}
}
monitor = DP-2, 1920x1200, 0x0, 1, transform, 3
monitor = DP-1, 2560x1440, 1200x320, 1
# monitor = DP-2, 1920x1200, 0x0, 1, transform, 3
# monitor = DP-1, 2560x1440, 1200x320, 1
# monitor = eDP-1, 1920x1080, 3760x230, 1
monitor = DP-2, 2560x1440, 1200x320, 1
monitor = eDP-1, 1920x1080, 3760x230, 1
exec-once = ${config.programs.waybar.package}/bin/waybar
bindl=,switch:off:Lid Switch,exec,${switchMonitorScript} open
bindl=,switch:on:Lid Switch,exec,${switchMonitorScript} close
exec-once = ${config.services.mako.package}/bin/mako
exec-once = ${pkgs.hyprpaper}/bin/hyprpaper
exec-once = ${config.programs.thunderbird.package}/bin/thunderbird
windowrulev2 = tile, class:^(Spotify)$
windowrulev2 = workspace 9, class:^(Spotify)$
windowrulev2 = workspace 8, class:thunderbird
windowrulev2 = tile, class:^(fluffychat)$
windowrulev2 = workspace 8, class:^(fluffychat)$
windowrulev2 = tile, class:^(WhatsApp for Linux)$
windowrulev2 = workspace 7, class:^(WhatsApp for Linux)$
bind = SUPER, b, exec, firefox
bind = SUPER SHIFT, b , exec, ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh mothership.fleet firefox
bind = SUPER SHIFT, RETURN, exec, ${config.programs.kitty.package}/bin/kitty ssh mothership.fleet
bind = SUPER, m, exec, ${config.programs.kitty.package}/bin/kitty mosh mothership.fleet
bind = SUPER, RETURN, exec, ${config.programs.kitty.package}/bin/kitty
bind = SUPER SHIFT, RETURN, exec, ${config.programs.wezterm.package}/bin/wezterm ssh mothership.fleet
bind = SUPER, m, exec, ${config.programs.wezterm.package}/bin/wezterm start -- mosh mothership.fleet
bind = SUPER, RETURN, exec, ${config.programs.wezterm.package}/bin/wezterm
bind = SUPER, x, exec, emacsclient -c
bind = SUPER, y, exec, ${pkgs.waypipe}/bin/waypipe --compress lz4=10 ssh mothership.fleet emacsclient -c
bind = SUPER, d, exec, ${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0
@ -120,10 +165,10 @@ in {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 4
blur = true
blur_size = 8
blur_passes = 1
blur_new_optimizations = true
# blur = true
# blur_size = 8
# blur_passes = 1
# blur_new_optimizations = true
drop_shadow = true
shadow_range = 4

View file

@ -4,7 +4,8 @@
settings = {
git.paging = {
colorArg = "always";
useConfig = true;
useConfig = false;
# pager = "${pkgs.diff-so-fancy}/bin/diff-so-fancy";
pager = "${pkgs.delta}/bin/delta --dark --paging=never";
};
};

View file

@ -0,0 +1,18 @@
{pkgs, ...}: {
home.packages = [pkgs.nheko];
# systemd.user.services.nheko = {
# Install.WantedBy = ["graphical-session.target"];
# Unit = {
# Description = "Nheko";
# PartOf = ["graphical-session.target"];
# };
# Service = {
# ExecStart = "${pkgs.nheko}/bin/nheko";
# Restart = "on-failure";
# RestartSec = 3;
# };
# };
}

View file

@ -0,0 +1,13 @@
{
services.pantalaimon = {
enable = true;
settings = {
local-matrix = {
Homeserver = "https://nixos.dev";
ListenAddress = "127.0.0.1";
ListenPort = 8008;
};
};
};
systemd.user.services.pantalaimon.Unit.Requires = ["dbus.socket"];
}

View file

@ -41,7 +41,7 @@
# Playing with it sometimes
programs.nushell = {
enable = true;
enable = false;
configFile.text = ''
let carapace_completer = {|spans|
carapace $spans.0 nushell $spans | from json
@ -93,7 +93,7 @@
};
programs.zsh = {
enable = false; # Disabled in favor on nushell but still here for posterity
enable = true;
enableAutosuggestions = true;
enableCompletion = true;
enableSyntaxHighlighting = true;
@ -117,17 +117,42 @@
"thefuck"
];
};
plugins = [
{
name = "fzf-tab";
src = pkgs.fetchFromGitHub {
owner = "Aloxaf";
repo = "fzf-tab";
rev = "c2b4aa5ad2532cca91f23908ac7f00efb7ff09c9";
sha256 = "sha256-gvZp8P3quOtcy1Xtt1LAW1cfZ/zCtnAmnWqcwrKel6w=";
};
}
{
name = "fzf-tab";
src = pkgs.fetchFromGitHub {
owner = "Aloxaf";
repo = "fzf-tab";
rev = "c2b4aa5ad2532cca91f23908ac7f00efb7ff09c9";
sha256 = "sha256-gvZp8P3quOtcy1Xtt1LAW1cfZ/zCtnAmnWqcwrKel6w=";
};
}
{
name = "fast-syntax-highlighting";
src = pkgs.fetchFromGitHub {
owner = "zdharma-continuum";
repo = "fast-syntax-highlighting";
rev = "13d7b4e63468307b6dcb2dadf6150818f242cbff";
sha256 = "sha256-AmsexwVombgVmRvl4O9Kd/WbnVJHPTXETxBv18PDHz4=";
};
}
];
shellAliases = {
"cat" = "bat";
"emw" = "emacsclient -c";
"emnw" = "emacsclient -c -nw";
"pass-clone" = "[ -d .password-store ] && echo 'Password store archive already exists' || git clone git@git.sr.ht:~zrsk/pass ~/.password-store";
"getpass" = "pass show $(find .password-store/ -name \"*.gpg\" | sed \"s/\\.password-store\\/\\(.*\\)\\.gpg$/\\1/g\" | fzf) | wl-copy; ((sleep 60 && wl-copy --clear) &)";
"n" = "nom";
"em" = "TERM=wezterm emacsclient -nw";
};
loginExtra = "[[ -z $DISPLAY && $TTY = /dev/tty1 ]] && exec sway";
loginExtra = "[[ -z $DISPLAY && $TTY = /dev/tty1 ]] && exec dbus-run-session Hyprland";
envExtra = ''
[ $TERM = "dumb" ] && unsetopt zle && PS1='$ ' # for Emacs TRAMP mode
# [ $TERM = "dumb" ] && unsetopt zle && PS1='$ ' # for Emacs TRAMP mode
'';
initExtra = ''
export CACHIX_AUTH_TOKEN=$(cat ${age.secrets.cachix-personal-token.path})
@ -149,6 +174,8 @@
zsh-completions
nix-zsh-completions
carapace # used by nushell
nil # TODO probably not best place
terraform-lsp # TODO probably not best place
# nom # FIXME disable on aarch64-linux, breaks everything :(
];
}

View file

@ -1,3 +1,20 @@
{pkgs, ...}: {
home.packages = [pkgs.nur.repos.nltch.spotify-adblock.spotify-adblocked];
{pkgs, ...}: let
spotify-adblock = pkgs.nur.repos.nltch.spotify-adblock;
in {
home.packages = [spotify-adblock];
systemd.user.services.spotify-adblocked = {
Install.WantedBy = ["graphical-session.target"];
Unit = {
Description = "Spotify";
PartOf = ["graphical-session.target"];
};
Service = {
ExecStart = "${spotify-adblock}/bin/spotify";
Restart = "on-failure";
RestartSec = 3;
};
};
}

View file

@ -55,5 +55,8 @@
};
# Otherwise it will start only after Sway and will not work with Hyprland
systemd.user.services.swayidle.Unit.PartOf = lib.mkForce [];
systemd.user.services.swayidle = {
Unit.PartOf = lib.mkForce [];
Install.WantedBy = lib.mkForce ["hyprland-session.target"];
};
}

View file

@ -1,12 +1,15 @@
{pkgs, ...}: {
{
pkgs,
lib,
fleetFlake,
...
}: {
programs.waybar = {
package = pkgs.waybar.overrideAttrs (old: {
mesonFlags = old.mesonFlags ++ ["-Dexperimental=true"];
patchPhase = ''
sed -i -e 's/zext_workspace_handle_v1_activate(workspace_handle_);/const std::string command = "hyprctl dispatch workspace " + name_;\n\tsystem(command.c_str());/g' src/modules/wlr/workspace_manager.cpp
'';
});
# package = fleetFlake.packages.${pkgs.system}.waybar-hyprland;
enable = true;
systemd = {
enable = true;
};
style = builtins.readFile ./style.css;
settings = {
mainBar = {
@ -17,7 +20,7 @@
modules-left = [
"wlr/mode"
"wlr/workspaces"
"hyprland/workspaces"
];
modules-center = ["wlr/window"];
modules-right = [
@ -31,7 +34,7 @@
"clock"
];
"wlr/workspaces" = {
"hyprland/workspaces" = {
all-outputs = true;
disable-scroll-wraparound = true;
# format = "{icon}";
@ -56,8 +59,8 @@
format = "{capacity}% {icon}";
format-alt = "{time} {icon}";
format-charging = "{capacity}% ";
format-icons = ["" "" "" "" ""];
format-plugged = "{capacity}% ";
format-icons = [" " " " " " " " " "];
format-plugged = "{capacity}% ";
states = {
critical = 15;
warning = 30;
@ -76,9 +79,9 @@
interval = 1;
format-alt = "{ifname}: {ipaddr}/{cidr}";
format-disconnected = "Disconnected ";
format-ethernet = "{ifname}: {ipaddr}/{cidr} up: {bandwidthUpBits} down: {bandwidthDownBits}";
format-ethernet = "{ifname}: {ipaddr}/{cidr} 󰈀 up: {bandwidthUpBits} down: {bandwidthDownBits}";
format-linked = "{ifname} (No IP) ";
format-wifi = "{essid} ({signalStrength}%) ";
format-wifi = "{essid} ({signalStrength}%) {ipaddr}/{cidr} up: {bandwidthUpBits} down: {bandwidthDownBits}";
};
pulseaudio = {
format = "{volume}% {icon} {format_source}";
@ -86,9 +89,9 @@
format-bluetooth-muted = " {icon} {format_source}";
format-icons = {
car = "";
default = ["" "" ""];
default = [" " " " " "];
handsfree = "";
headphones = "";
headphones = " ";
headset = "";
phone = "";
portable = "";
@ -108,4 +111,7 @@
};
};
};
# waybar needs the hyprctl binary in PATH when started in hyprland
systemd.user.services.waybar.Service.Environment = "PATH=${lib.makeBinPath [pkgs.hyprland]}";
}

View file

@ -0,0 +1,30 @@
{...}: {
programs.wezterm = {
enable = true;
extraConfig = ''
return {
font = wezterm.font_with_fallback {
{
family = 'Iosevka Comfy',
stretch = 'Expanded',
weight = 'Regular',
harfbuzz_features = { 'dlig=1' }
},
};
font_size = 13;
allow_square_glyphs_to_overflow_width = "Always";
color_scheme = "Dracula (Official)";
window_background_opacity = 1;
enable_tab_bar = false;
hide_mouse_cursor_when_typing = false;
window_close_confirmation = "NeverPrompt";
window_padding = {
left = '1cell',
right = '1cell',
top = '0.5cell',
bottom = '0.5cell',
};
}
'';
};
}

View file

@ -0,0 +1,18 @@
{pkgs, ...}: {
home.packages = [pkgs.whatsapp-for-linux];
systemd.user.services.whatsapp = {
Install.WantedBy = ["graphical-session.target"];
Unit = {
Description = "Whatsapp";
PartOf = ["graphical-session.target"];
};
Service = {
ExecStart = "${pkgs.whatsapp-for-linux}/bin/whatsapp-for-linux";
Restart = "on-failure";
RestartSec = 3;
};
};
}

View file

@ -1,7 +1,12 @@
{
{pkgs, ...}: {
xdg = {
enable = true;
mimeApps.enable = true;
mimeApps.defaultApplications = {
"text/html" = ["firefox.desktop"];
"x-scheme-handler/http" = ["firefox.desktop"];
"x-scheme-handler/https" = ["firefox.desktop"];
};
desktopEntries = {
org-protocol = {
name = "org-protocol";
@ -10,6 +15,14 @@
terminal = false;
mimeType = ["x-scheme-handler/org-protocol"];
};
firefox = {
name = "firefox";
genericName = "Firefox protocol";
exec = "firefox -- %U";
terminal = false;
mimeType = ["text/html" "text/xml" "text/uri"];
};
};
};
home.packages = [pkgs.xdg-utils];
}