dotfiles/nixos/home-manager/alecake.nix

534 lines
13 KiB
Nix
Raw Permalink Normal View History

2023-11-13 19:41:32 +01:00
{ inputs, config, pkgs, ... }:
{
home.username = "alecake";
home.homeDirectory = "/home/alecake";
nixpkgs.config.allowUnfree = true;
imports = [
./programs/emacs/emacs.nix
];
nixpkgs.overlays = [
(import inputs.emacs-overlay)
(final: prev:{emacs-unstable-pgtk = prev.emacs-unstable.override { withGTK3 = true; withTreeSitter = true; withNativeCompilation = true;};})
];
nixpkgs.config.permittedInsecurePackages = [
"imagemagick-6.9.12-68"
];
# Lets home-manager manage xdg stuff uwu
xdg = {
enable = true;
userDirs.enable = true;
};
home.sessionVariables = {
EDITOR = "emacs --no-window-system";
NODE_REPL_HISTORY = "";
};
home.shellAliases = {
ls = "eza --icons --hyperlink -w=60";
};
home.packages = [
pkgs.btop
pkgs.hyfetch
pkgs.distrobox
pkgs.neovim
pkgs.fzf
pkgs.eza
pkgs.scrcpy
pkgs.emacs-unstable-pgtk
pkgs.multimarkdown
pkgs.pandoc
pkgs.unzip
pkgs.zip
#pkgs.ulauncher
#pkgs.swww
#inputs.eww.packages.x86_64-linux.eww-wayland
pkgs.xdg_utils
#inputs.hyprland-contrib.packages.x86_64-linux.grimblast
pkgs.appimage-run
pkgs.swaynotificationcenter
pkgs.gnome.adwaita-icon-theme
#pkgs.libsForQt5.qtstyleplugin-kvantum
pkgs.jetbrains.idea-community
pkgs.gnome.nautilus
pkgs.nextcloud-client
pkgs.yubikey-personalization-gui
];
programs.fish = { # feeeeesh configs uwu
enable = true;
package = pkgs.fish;
interactiveShellInit = "
set fish_greeting
${pkgs.starship}/bin/starship init fish | source
";
plugins = [
{name = "fzf-fish"; src = pkgs.fishPlugins.fzf-fish;}
];
};
programs.starship = {
enable = true;
enableNushellIntegration = true;
settings = {
character.success_symbol = "[](bold green)";
directory.read_only = " 🥺";
format = "$directory$git_branch \n$character";
};
};
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
wayland.windowManager.sway = {
enable = true;
package = pkgs.sway;
config = {
terminal = "alacritty";
window.border = 1;
colors.focused = {
background = "#282828";
text = "#d3869b";
childBorder = "#d3869b";
indicator = "b16286";
border = "#d3869b";
};
gaps = {
inner = 10;
};
bars = [];
startup = [
{ command = "eww daemon";}
{ command = "eww open bar"; }
{ command = "swww init";}
{ command = "swww img --transition-type wipe Pictures/wallpapers/night/BNAWall-10240x5760-upscaled.png";}
];
window.titlebar = false;
keybindings = {
"Ctrl+Alt+1" = "workspace 1";
"Ctrl+Alt+2" = "workspace 2";
"Ctrl+Alt+3" = "workspace 3";
"Ctrl+Alt+4" = "workspace 4";
"Ctrl+Alt+5" = "workspace 5";
"Ctrl+Alt+6" = "workspace 6";
"Ctrl+Alt+7" = "workspace 7";
"Ctrl+Alt+Shift+1" = "move container to workspace 1";
"Ctrl+Alt+Shift+2" = "move container to workspace 2";
"Ctrl+Alt+Shift+3" = "move container to workspace 3";
"Ctrl+Alt+Shift+4" = "move container to workspace 4";
"mod4+f" = "fullscreen";
"Ctrl+Alt+f" = "floating toggle";
"Ctrl+Alt+mod4+w" = "kill";
"Ctrl+Alt+Shift+c" = "reload";
"mod4+Return" = "exec alacritty";
"mod1+Space" = "exec ulauncher toggle";
};
input = {
"*" = {
xkb_layout = "it";
"natural_scroll" = "enabled";
};
};
};
};
wayland.windowManager.hyprland = {
enable = false;
enableNvidiaPatches = true;
xwayland.enable = true;
package = inputs.hyprland.packages.x86_64-linux.hyprland;
extraConfig =''
env = WLR_NO_HARDWARE_CURSORS,1
env = XDG_SESSION_TYPE,wayland
env = LIBVA_DRIVER_NAME,nvidia
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = NIXOS_OZONE_WL,1
env = XDG_CURRENT_DESKTOP,hyprland
exec-once = eww open bar
exec-once = ulauncher
exec-once = swaync
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = swww init
monitor=HDMI-A-2, 1920x1080@75, 1920x0, 1
monitor=HDMI-A-1, 1920x1080@75, 0x0, 1
workspace = 1, monitor:HDMI-A-2
workspace = 2, monitor:HDMI-A-2
workspace = 3, monitor:HDMI-A-2
workspace = 4, monitor:HDMI-A-2
workspace = 5, monitor:HDMI-A-2
workspace = 6, monitor:HDMI-A-2
workspace = 7, monitor:HDMI-A-2
workspace = 8, monitor:HDMI-A-2
workspace = 9, monitor:HDMI-A-1, default:true
# telegram media viewer
windowrulev2 = float, title:^(Media viewer)$
# make Firefox PiP window floating and sticky
windowrulev2 = float, title:^(Picture-in-Picture)$
windowrulev2 = pin, title:^(Picture-in-Picture)$
# throw sharing indicators away
windowrulev2 = workspace special silent, title:^(Firefox Sharing Indicator)$
windowrulev2 = workspace special silent, title:^(.*is sharing (your screen|a window)\.)$
windowrulev2 = noblur, title:^(Ulauncher - Application Launcher)$
windowrulev2 = noborder, title:^(Ulauncher - Application Launcher)$
windowrulev2 = noanim, title:^(Ulauncher - Application Launcher)$
windowrulev2 = noshadow, title:^(Ulauncher - Application Launcher)$
windowrulev2 = stayfocused, title:^(Ulauncher - Application Launcher)$
bindm = SUPER, mouse:272, movewindow
bindm = SUPER, mouse:273, resizewindow
bindm = SUPER, mouse:274, movewindow
general {
col.active_border=rgb(ff79c6)
}
'';
settings = {
input = {
kb_layout = "it";
left_handed = true;
};
bind = [
"SUPER, RETURN, exec, alacritty"
"CTRL_ALT, 1, workspace, 1"
"CTRL_ALT, 2, workspace, 2"
"CTRL_ALT, 3, workspace, 3"
"CTRL_ALT, 4, workspace, 4"
"CTRL_ALT, 5, workspace, 5"
"CTRL_ALT, 6, workspace, 6"
"CTRL_ALT, 7, workspace, 7"
"CTRL_ALT, 8, workspace, 8"
"CTRL_ALT, 9, workspace, 9"
"CTRL_ALT_SHIFT, 1, movetoworkspace, 1"
"CTRL_ALT_SHIFT, 2, movetoworkspace, 2"
"CTRL_ALT_SHIFT, 3, movetoworkspace, 3"
"CTRL_ALT_SHIFT, 4, movetoworkspace, 4"
"CTRL_ALT_SHIFT, 5, movetoworkspace, 5"
"CTRL_ALT_SHIFT, 6, movetoworkspace, 6"
"CTRL_ALT_SHIFT, 7, movetoworkspace, 7"
"CTRL_ALT:SHIFT, 8, movetoworkspace, 8"
"CTRL_ALT_SHIFT, 9, movetoworkspace, 9"
"SUPER,left,movewindow,l"
"SUPER,right,movewindow,r"
"SUPER,up,movewindow,u"
"SUPER,up,movewindow,d"
"Shift, Print, exec, grim"
", Print, exec, grimblast copysave area"
"CTRL_ALT, W, killactive"
"CTRL_ALT, F, togglefloating"
"ALT, Tab, cyclenext"
"ALT,SPACE, exec, ulauncher-toggle"
];
};
};
programs.waybar = {
enable = false;
package = pkgs.waybar;
settings = {
bar = {
layer = "top";
position = "top";
output = "HDMI-A-2";
height = 24;
modules-left = ["wlr/workspaces"];
modules-center = ["hyprland/window"];
modules-right = [ "tray" "custom/notification" "pulseaudio" "clock" ];
pulseaudio = {
format = "v: {volume}%";
};
battery = {
format = "b: {capacity}%";
};
"custom/notification" = {
tooltip = false;
format = "{icon}";
format-icons = {
notification = "notif";
none = "no-notif";
dnd-notification = "notif";
dnd-none = "no-notif";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
escape = true;
};
};
};
style = "
* {
font-family: jetbrains mono;
background-color: #282a36;
color: #f8f8f2;
}
#workspaces button, #workspaces button:hover {
border: none;
border-radius : unset;
background: unset;
}
#workspaces button.focused {
color: #6272a4;
}
#pulseaudio {
padding-left: 10px;
padding-right: 10px;
background-color: #44475a;
}
#clock {
padding-left: 10px;
padding-right: 10px;
background-color: #3b3e54;
}
#tray, #tray > .passive, #tray > .needs-attention {
padding-left: 10px;
padding-right: 10px;
}
#custom-notification {
padding-left: 10px;
padding-right: 10px;
background: #545769;
}
";
};
programs.alacritty = {
enable = true;
package = pkgs.alacritty;
settings = {
window.padding.x = 0;
window.padding.y = 0;
colors.primary = {
background = "#282a36";
foreground = "#f8f8f2";
bright_foreground = "#ffffff";
};
colors.cursor = {
text = "CellBackground";
cursor = "CellForeground";
};
colors.selection = {
text = "CellForeground";
background = "#44475a";
};
colors.normal = {
black = "#21222c";
red = "#ff5555";
green = "#f1fa8c";
blue = "#bd93f9";
magenta = "#ff79c6";
cyan = "#8be9fd";
white = "#f8f8f2";
};
};
};
programs.swaylock = {
enable = false;
package = pkgs.swaylock-effects;
settings = {
effect-blur = "20x2";
clock = true;
indicator = true;
font-size = 25;
indicator-radius = 85;
indicator-thickness = 16;
screenshots = true;
ring-color = "bd93f9";
key-hl-color = "ff79c6";
};
};
services.mako = {
enable = false;
package = pkgs.mako;
backgroundColor = "#282a36";
borderColor = "#ff79c6";
font = "jetbrains-mono 10";
};
# the trans is real
programs.hyfetch = {
enable = true;
settings = {
preset = "transgender";
mode = "rgb";
color_align = {
mode = "horizontal";
};
};
};
programs.vscode = {
enable = true;
package = pkgs.vscode;
};
programs.git = {
enable = true;
package = pkgs.git;
userName = "Ale";
userEmail = "alecake@ale.pet";
signing = {
key = "1E390257057001A9AB814492284AFB134BB2E07D";
signByDefault = true;
};
};
programs.helix = {
enable = true;
package = pkgs.helix;
settings.theme = "dracula";
settings.editor.bufferline = "multiple";
};
gtk = {
enable = false;
theme = {
name = "adw-gtk3-dark";
package = pkgs.adw-gtk3;
};
iconTheme = {
name = "Papirus";
package = pkgs.papirus-icon-theme;
};
};
home.pointerCursor = {
gtk.enable = true;
x11.enable = true;
size = 24;
package = pkgs.hackneyed;
name = "Hackneyed";
};
home.file."/home/alecake/.config/swaync/config.json".text =
"
{
\"positionX\": \"right\",
\"positionY\": \"top\",
\"layer\": \"overlay\",
\"control-center-layer\": \"top\",
\"layer-shell\": \"true\",
\"cssPriority\": \"user\",
\"notification-window-width\": 300,
\"widgets\": [
\"notifications\",
\"dnd\",
\"mpris\"
],
\"notification-visibily\": {
\"telegram-desktop\": {
\"_comment\": \"Show telegram-desktop messages\",
\"override-urgency\": \"normal\",
\"desktop-entry\": \"org.telegram.desktop\"
}
}
}
";
home.file."/home/alecake/.config/swaync/style.css".text =
"
.notification-default-action, .notification-action {
background-color: #282a36;
font-family: jetbrains mono;
border-radius: unset;
border-width: 1px;
border-color: #ff79c6;
border-style: solid;
}
.notification-action {
margin-top: 5px;
}
.control-center{
background-color: #44475a;
}
.notification {
box-shadow : unset;
}
.notification-row:focus {
background: unset;
}
.widget-mpris, .widget-dnd {
background-color: #282a36;
margin: 0;
font-family: jetbrains mono;
}
.widget-dnd {
padding: 8px;
padding-left: 16px;
padding-right: 16px;
}
.widget-dnd > switch {
border-radius: unset;
background: unset;
background: #44475a;
padding: 2px;
}
.widget-dnd > switch slider {
border-radius: unset;
background: #bd93f9;
}
.widget-dnd > switch:checked slider {
background: #ff79c6;
}
";
home.stateVersion = "23.05";
}