new beginning
This commit is contained in:
64
home/framework/default.nix
Normal file
64
home/framework/default.nix
Normal file
@ -0,0 +1,64 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
home = {
|
||||
stateVersion = "23.11";
|
||||
username = "patrick";
|
||||
homeDirectory = "/home/${config.home.username}";
|
||||
packages = with pkgs; [
|
||||
git # TODO: use programs.git
|
||||
pinentry
|
||||
acpi
|
||||
moonlight-qt
|
||||
vesktop
|
||||
telegram-desktop
|
||||
];
|
||||
sessionPath = ["~/.local/bin"];
|
||||
sessionVariables = {
|
||||
SSH_AUTH_SOCK = "/run/user/1000/ssh-agent";
|
||||
};
|
||||
};
|
||||
|
||||
xdg.enable = true;
|
||||
|
||||
imports = builtins.concatMap import [
|
||||
./programs
|
||||
];
|
||||
|
||||
accounts.email.accounts = {
|
||||
patrick = {
|
||||
primary = true;
|
||||
realName = "Patrick Michl";
|
||||
address = "me@fuckwit.dev";
|
||||
userName = "me@fuckwit.dev";
|
||||
|
||||
gpg = {
|
||||
key = "5FA64909521A5C85992F26E0F819AEFF941BB849";
|
||||
signByDefault = true;
|
||||
};
|
||||
|
||||
imap = {
|
||||
host = "mail.fuckwit.dev";
|
||||
port = 143;
|
||||
tls = {
|
||||
useStartTls = true;
|
||||
};
|
||||
};
|
||||
|
||||
smtp = {
|
||||
host = "mail.fuckwit.dev";
|
||||
port = 587;
|
||||
tls = {
|
||||
useStartTls = true;
|
||||
};
|
||||
};
|
||||
|
||||
thunderbird = {
|
||||
enable = true;
|
||||
profiles = ["main"];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
103
home/framework/programs/default.nix
Normal file
103
home/framework/programs/default.nix
Normal file
@ -0,0 +1,103 @@
|
||||
[
|
||||
./firefox
|
||||
./hyprland
|
||||
{
|
||||
programs = {
|
||||
swaylock.enable = true;
|
||||
zoxide.enable = true;
|
||||
|
||||
bash = {
|
||||
enable = true;
|
||||
enableVteIntegration = true;
|
||||
enableCompletion = true;
|
||||
};
|
||||
|
||||
starship = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
add_newline = false;
|
||||
};
|
||||
};
|
||||
|
||||
eza = {
|
||||
enable = true;
|
||||
|
||||
icons = true;
|
||||
git = true;
|
||||
};
|
||||
|
||||
atuin = {
|
||||
enable = true;
|
||||
flags = ["--disable-up-arrow"];
|
||||
settings = {
|
||||
enter_accept = false;
|
||||
};
|
||||
};
|
||||
|
||||
waybar = {
|
||||
enable = true;
|
||||
|
||||
settings.mainbar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 30;
|
||||
|
||||
modules-left = ["hyprland/workspaces"];
|
||||
modules-right = ["pulseaudio" "network" "cpu" "memory" "temperature" "battery" "clock" "tray"];
|
||||
};
|
||||
};
|
||||
|
||||
helix = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
|
||||
settings = {
|
||||
theme = "onedark";
|
||||
|
||||
editor = {
|
||||
line-number = "relative";
|
||||
true-color = true;
|
||||
gutters = ["diagnostics" "spacer" "line-numbers" "spacer" "diff"];
|
||||
cursorline = true;
|
||||
completion-trigger-len = 2;
|
||||
|
||||
cursor-shape = {
|
||||
insert = "bar";
|
||||
normal = "block";
|
||||
select = "underline";
|
||||
};
|
||||
|
||||
lsp = {
|
||||
display-messages = true;
|
||||
display-inlay-hints = true;
|
||||
};
|
||||
|
||||
statusline = {
|
||||
left = ["mode" "spinner"];
|
||||
center = ["file-name"];
|
||||
right = ["diagnostics" "selections" "position" "file-encoding" "file-line-ending" "file-type" "version-control"];
|
||||
|
||||
mode = {
|
||||
normal = "NORMAL";
|
||||
insert = "INSERT";
|
||||
select = "SELECT";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
thunderbird = {
|
||||
enable = true;
|
||||
|
||||
profiles = {
|
||||
main = {
|
||||
isDefault = true;
|
||||
withExternalGnupg = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
]
|
129
home/framework/programs/firefox/default.nix
Normal file
129
home/framework/programs/firefox/default.nix
Normal file
@ -0,0 +1,129 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
stdenv,
|
||||
specialArgs,
|
||||
...
|
||||
}: let
|
||||
extensions = with specialArgs.ff-addons; [
|
||||
bitwarden
|
||||
darkreader
|
||||
i-dont-care-about-cookies
|
||||
privacy-badger
|
||||
ublock-origin
|
||||
tree-style-tab
|
||||
tridactyl
|
||||
];
|
||||
|
||||
customChrome = ''
|
||||
@-moz-document url(chrome://browser/content/browser.xhtml) {
|
||||
/* tabs on bottom of window */
|
||||
/* requires that you set
|
||||
* toolkit.legacyUserProfileCustomizations.stylesheets = true
|
||||
* in about:config
|
||||
*/
|
||||
#main-window body { flex-direction: column-reverse !important; }
|
||||
#navigator-toolbox { flex-direction: column-reverse !important; }
|
||||
#urlbar {
|
||||
top: unset !important;
|
||||
bottom: calc((var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2) !important;
|
||||
box-shadow: none !important;
|
||||
display: flex !important;
|
||||
flex-direction: column !important;
|
||||
}
|
||||
#urlbar-input-container {
|
||||
order: 2;
|
||||
}
|
||||
#urlbar > .urlbarView {
|
||||
order: 1;
|
||||
border-bottom: 1px solid #666;
|
||||
}
|
||||
#urlbar-results {
|
||||
display: flex;
|
||||
flex-direction: column-reverse;
|
||||
}
|
||||
.search-one-offs { display: none !important; }
|
||||
.tab-background { border-top: none !important; }
|
||||
#navigator-toolbox::after { border: none; }
|
||||
#TabsToolbar .tabbrowser-arrowscrollbox,
|
||||
#tabbrowser-tabs, .tab-stack { min-height: 28px !important; }
|
||||
.tabbrowser-tab { font-size: 80%; }
|
||||
.tab-content { padding: 0 5px; }
|
||||
.tab-close-button .toolbarbutton-icon { width: 12px !important; height: 12px !important; }
|
||||
toolbox[inFullscreen=true] { display: none; }
|
||||
}
|
||||
'';
|
||||
|
||||
userChrome = customChrome;
|
||||
|
||||
# ~/.mozilla/firefox/PROFILE_NAME/prefs.js | user.js
|
||||
settings = {
|
||||
"app.normandy.first_run" = false;
|
||||
"app.shield.optoutstudies.enabled" = false;
|
||||
|
||||
# disable updates (pretty pointless with nix)
|
||||
"app.update.channel" = "default";
|
||||
|
||||
"browser.contentblocking.category" = "standard"; # "strict"
|
||||
"browser.ctrlTab.recentlyUsedOrder" = false;
|
||||
|
||||
"browser.download.viewableInternally.typeWasRegistered.svg" = true;
|
||||
"browser.download.viewableInternally.typeWasRegistered.webp" = true;
|
||||
"browser.download.viewableInternally.typeWasRegistered.xml" = true;
|
||||
|
||||
"browser.search.region" = "DE";
|
||||
|
||||
"browser.shell.checkDefaultBrowser" = false;
|
||||
"browser.tabs.loadInBackground" = true;
|
||||
"browser.urlbar.placeholderName" = "EnteEnteLauf";
|
||||
"browser.urlbar.showSearchSuggestionsFirst" = false;
|
||||
|
||||
# disable all the annoying quick actions
|
||||
"browser.urlbar.quickactions.enabled" = false;
|
||||
"browser.urlbar.quickactions.showPrefs" = false;
|
||||
"browser.urlbar.shortcuts.quickactions" = false;
|
||||
"browser.urlbar.suggest.quickactions" = false;
|
||||
|
||||
"distribution.searchplugins.defaultLocale" = "en-US";
|
||||
|
||||
"doh-rollout.balrog-migration-done" = true;
|
||||
"doh-rollout.doneFirstRun" = true;
|
||||
|
||||
"general.useragent.locale" = "en-US";
|
||||
|
||||
"extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
|
||||
|
||||
"extensions.extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
|
||||
"extensions.update.enabled" = false;
|
||||
"extensions.webcompat.enable_picture_in_picture_overrides" = true;
|
||||
"extensions.webcompat.enable_shims" = true;
|
||||
"extensions.webcompat.perform_injections" = true;
|
||||
"extensions.webcompat.perform_ua_overrides" = true;
|
||||
|
||||
"privacy.donottrackheader.enabled" = true;
|
||||
"browser.translations.enable" = false;
|
||||
|
||||
# Yubikey
|
||||
"security.webauth.u2f" = true;
|
||||
"security.webauth.webauthn" = true;
|
||||
"security.webauth.webauthn_enable_softtoken" = false;
|
||||
"security.webauth.webauthn_enable_usbtoken" = true;
|
||||
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
"layout.word_select.stop_at_punctuation" = false;
|
||||
};
|
||||
in {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
|
||||
package = pkgs.firefox-bin;
|
||||
|
||||
profiles = {
|
||||
default = {
|
||||
isDefault = true;
|
||||
id = 0;
|
||||
inherit extensions settings userChrome;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
122
home/framework/programs/hyprland/default.nix
Normal file
122
home/framework/programs/hyprland/default.nix
Normal file
@ -0,0 +1,122 @@
|
||||
{pkgs, ...}: {
|
||||
wayland.windowManager.hyprland = let
|
||||
locker = "${pkgs.swaylock}/bin/swaylock";
|
||||
set-dpms = "${pkgs.hyprland}/bin/hyprctl dispatcher dpms";
|
||||
locked-dpms = pkgs.writeShellScript "locked-dpms.sh" ''
|
||||
${pkgs.swayidle}/bin/swayidle -w \
|
||||
timeout 10 'if pgrep -x swaylock; then ${set-dpms} off; fi' \
|
||||
resume '${set-dpms} on'
|
||||
'';
|
||||
idle-script = pkgs.writeShellScript "idle-lock.sh" ''
|
||||
${pkgs.swayidle}/bin/swayidle -w \
|
||||
timeout 300 '${locker} -f' \
|
||||
timeout 330 '${set-dpms} off' \
|
||||
resume '${set-dpms} on'
|
||||
'';
|
||||
in {
|
||||
enable = true;
|
||||
settings = {
|
||||
"$mod" = "SUPER";
|
||||
|
||||
monitor = [
|
||||
"eDP-1,2256x1504,0x0,1.566667"
|
||||
"desc:LG Electronics LG ULTRAWIDE 0x000219F2,2560x1080,1440x0,1"
|
||||
"desc:Fujitsu Siemens Computers GmbH B22W-6 LED YV3U164923,1680x1050,4000x0,1"
|
||||
",preferred,auto,1"
|
||||
];
|
||||
|
||||
exec-once = [
|
||||
"${pkgs.waybar}/bin/waybar"
|
||||
"${pkgs.mako}/bin/mako"
|
||||
idle-script
|
||||
locked-dpms
|
||||
];
|
||||
|
||||
input = {
|
||||
kb_layout = "us,de";
|
||||
follow_mouse = 1;
|
||||
};
|
||||
|
||||
general = {
|
||||
gaps_in = 5;
|
||||
gaps_out = 5;
|
||||
border_size = 1;
|
||||
layout = "dwindle";
|
||||
allow_tearing = false;
|
||||
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||
"col.inactive_border" = "rgba(595959aa)";
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 5;
|
||||
drop_shadow = true;
|
||||
shadow_range = 4;
|
||||
shadow_render_power = 3;
|
||||
"col.shadow" = "rgba(1a1a1aee)";
|
||||
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 3;
|
||||
passes = 1;
|
||||
};
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
|
||||
|
||||
animation = [
|
||||
"windows, 1, 3, myBezier"
|
||||
"windowsOut, 1, 3, default, popin 80%"
|
||||
"border, 1, 3, default"
|
||||
"borderangle, 1, 3, default"
|
||||
"fade, 1, 3, default"
|
||||
"workspaces, 1, 3, default"
|
||||
];
|
||||
};
|
||||
|
||||
bind =
|
||||
[
|
||||
", PRINT, exec, ${pkgs.hyprshot}/bin/hyprshot -m region --clipboard-only"
|
||||
"$mod, return, exec, ${pkgs.alacritty}/bin/alacritty"
|
||||
"$mod, D, exec, ${pkgs.rofi-wayland}/bin/rofi -show drun"
|
||||
"$mod SHIFT, Q, killactive, "
|
||||
"$mod, L, exec, ${locker}"
|
||||
"$mod, V, togglefloating, "
|
||||
"$mod, F, fullscreen, 1"
|
||||
"$mod, P, pseudo, # dwindle"
|
||||
"$mod, J, togglesplit, # dwindle"
|
||||
"$mod, left, movefocus, l"
|
||||
"$mod, right, movefocus, r"
|
||||
"$mod, up, movefocus, u"
|
||||
"$mod, down, movefocus, d"
|
||||
"$mod, S, togglespecialworkspace, magic"
|
||||
"$mod SHIFT, S, movetoworkspace, special:magic"
|
||||
]
|
||||
++ builtins.concatLists (builtins.genList (
|
||||
x: let
|
||||
num = builtins.toString (x + 1);
|
||||
in [
|
||||
"$mod, ${num}, workspace, ${num}"
|
||||
"$mod SHIFT, ${num}, movetoworkspace, ${num}"
|
||||
]
|
||||
)
|
||||
9);
|
||||
|
||||
bindm = [
|
||||
"$mod, mouse:272, movewindow"
|
||||
"$mod, mouse:273, resizewindow"
|
||||
];
|
||||
|
||||
device = {
|
||||
name = "razer-razer-blackwidow-chroma";
|
||||
kb_layout = "de";
|
||||
};
|
||||
|
||||
misc = {
|
||||
mouse_move_enables_dpms = true;
|
||||
key_press_enables_dpms = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user