mirror of
https://github.com/donovanglover/nix-config.git
synced 2024-11-22 16:23:57 +01:00
0038165390
Note that the home manager module isn't used here since the resulting config.fish made fish noticeably slower on startup.
376 lines
11 KiB
Nix
376 lines
11 KiB
Nix
{ config, lib, nixpkgs, home-manager, hyprland, ... }: {
|
|
imports = [ home-manager.nixosModule ];
|
|
home-manager.users.user = { pkgs, ... }: {
|
|
xdg = { userDirs = { enable = true; }; };
|
|
home.file.".icons/default/index.theme".text = ''
|
|
[icon theme]
|
|
Inherits=phinger-cursors
|
|
'';
|
|
xresources.properties = {
|
|
"Xft.hinting" = true;
|
|
"Xft.antialias" = true;
|
|
"Xft.autohint" = false;
|
|
"Xft.lcdfilter" = "lcddefault";
|
|
"Xft.hintstyle" = "hintfull";
|
|
"Xft.rgba" = "rgb";
|
|
};
|
|
xdg.configFile."xfce4/helpers.rc".text = ''
|
|
TerminalEmulator=kitty
|
|
TerminalEmulatorDismissed=true
|
|
'';
|
|
xdg.configFile."mozc/ibus_config.textproto".text = ''
|
|
engines {
|
|
name : "mozc-jp"
|
|
longname : "Mozc"
|
|
layout : "default"
|
|
layout_variant : ""
|
|
layout_option : ""
|
|
rank : 80
|
|
}
|
|
active_on_launch: True
|
|
'';
|
|
xdg.configFile."ranger/rc.conf".text = ''
|
|
set line_numbers absolute
|
|
set padding_right false
|
|
set vcs_aware true
|
|
set show_hidden true
|
|
set confirm_on_delete always
|
|
set save_console_history false
|
|
set mouse_enabled false
|
|
set tilde_in_titlebar true
|
|
|
|
alias r rename
|
|
alias d delete
|
|
|
|
map DD shell trash %s
|
|
|
|
set use_preview_script true
|
|
set preview_files true
|
|
set preview_images true
|
|
set preview_images_method kitty
|
|
'';
|
|
xdg.configFile."fish/config.fish".text = ''
|
|
set -U fish_greeting ""
|
|
|
|
export PATH="$HOME/.deno/bin:$HOME/.cargo/bin:$HOME/.yarn/bin:$HOME/.local/bin:$HOME/.go/bin:$PATH"
|
|
export GOPATH="$HOME/.go"
|
|
export SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/ssh-agent.socket"
|
|
export TERMCMD="kitty --single-instance"
|
|
|
|
# Required to make gpg-agent work in cases like git commit
|
|
export GPG_TTY=(tty)
|
|
|
|
# Add color to man pages
|
|
set -x -U LESS_TERMCAP_md (printf "\e[01;31m")
|
|
set -x -U LESS_TERMCAP_me (printf "\e[0m")
|
|
set -x -U LESS_TERMCAP_se (printf "\e[0m")
|
|
set -x -U LESS_TERMCAP_so (printf "\e[01;44;30m")
|
|
set -x -U LESS_TERMCAP_ue (printf "\e[0m")
|
|
set -x -U LESS_TERMCAP_us (printf "\e[01;32m")
|
|
|
|
# Always use the default keybindings in fish
|
|
fish_default_key_bindings
|
|
|
|
# Convert unnecessarily large wav files to flac
|
|
function wav2flac
|
|
set ORIGINAL_SIZE (du -hs | cut -f1)
|
|
|
|
fd -e wav -x ffmpeg -i "{}" -loglevel quiet -stats "{.}.flac"
|
|
fd -e wav -X trash
|
|
|
|
set NEW_SIZE (du -hs | cut -f1)
|
|
|
|
echo "Done. Reduced file size from $ORIGINAL_SIZE to $NEW_SIZE"
|
|
end
|
|
|
|
# Convert wav/flac to opus
|
|
function opus
|
|
set ORIGINAL_SIZE (du -hs | cut -f1)
|
|
|
|
fd -e wav -e flac -x ffmpeg -i "{}" -c:a libopus -b:a 128K -loglevel quiet -stats "{.}.opus"
|
|
fd -e wav -e flac -X rm -I
|
|
|
|
set NEW_SIZE (du -hs | cut -f1)
|
|
|
|
echo "Done. Reduced file size from $ORIGINAL_SIZE to $NEW_SIZE"
|
|
end
|
|
|
|
# Always use kitty ssh since it's our default terminal
|
|
if string match -qe -- "/dev/pts/" (tty)
|
|
alias ssh="kitty +kitten ssh"
|
|
end
|
|
|
|
# if status is-login
|
|
# if test -z "$DISPLAY" -a "$XDG_VTNR" = 1
|
|
# exec Hyprland
|
|
# end
|
|
# end
|
|
'';
|
|
gtk = {
|
|
enable = true;
|
|
cursorTheme = {
|
|
package = pkgs.phinger-cursors;
|
|
name = "phinger-cursors";
|
|
};
|
|
gtk3.extraConfig = {
|
|
gtk-decoration-layout = "menu:";
|
|
gtk-xft-antialias = 1;
|
|
gtk-xft-hinting = 1;
|
|
gtk-xft-hintstyle = "hintfull";
|
|
gtk-xft-rgba = "rgb";
|
|
gtk-recent-files-enabled = false;
|
|
};
|
|
iconTheme = {
|
|
package = pkgs.fluent-icon-theme;
|
|
name = "Fluent";
|
|
};
|
|
};
|
|
programs.kitty = {
|
|
enable = true;
|
|
settings = {
|
|
enable_audio_bell = false;
|
|
allow_remote_control = true;
|
|
dynamic_background_opacity = true;
|
|
background_opacity = "0.95";
|
|
close_on_child_death = true;
|
|
cursor_blink_interval = 0;
|
|
wayland_titlebar_color = "background";
|
|
listen_on = "unix:/tmp/kitty";
|
|
open_url_with = "librewolf";
|
|
window_padding_width = 5;
|
|
tab_bar_margin_width = 5;
|
|
};
|
|
};
|
|
xdg.configFile."kitty/diff.conf".text = ''
|
|
map d scroll_to next-page
|
|
map u scroll_to prev-page
|
|
map g scroll_to start
|
|
map G scroll_to end
|
|
'';
|
|
programs.bat = { enable = true; };
|
|
programs.swaylock = {
|
|
package = pkgs."swaylock-effects";
|
|
settings = {
|
|
show-keyboard-layout = true;
|
|
daemonize = true;
|
|
effect-blur = "5x2";
|
|
clock = true;
|
|
indicator = true;
|
|
font-size = 25;
|
|
indicator-radius = 85;
|
|
indicator-thickness = 16;
|
|
screenshots = true;
|
|
fade-in = 1;
|
|
};
|
|
};
|
|
services.dunst = {
|
|
enable = true;
|
|
settings = {
|
|
global = {
|
|
geometry = "1870x5-25+45";
|
|
width = 350;
|
|
separator_height = 5;
|
|
padding = 24;
|
|
horizontal_padding = 24;
|
|
frame_width = 3;
|
|
idle_threshold = 120;
|
|
alignment = "center";
|
|
word_wrap = "yes";
|
|
transparency = 5;
|
|
format = "<b>%s</b>: %b";
|
|
markup = "full";
|
|
min_icon_size = 128;
|
|
max_icon_size = 128;
|
|
};
|
|
};
|
|
};
|
|
programs.waybar = {
|
|
enable = true;
|
|
package = hyprland.packages."x86_64-linux".waybar-hyprland;
|
|
settings = {
|
|
mainBar = {
|
|
layer = "bottom";
|
|
position = "top";
|
|
height = 30;
|
|
modules-left = [ "hyprland/window" ];
|
|
modules-center = [ "wlr/workspaces" ];
|
|
modules-right =
|
|
[ "tray" "wireplumber" "backlight" "battery" "clock" ];
|
|
};
|
|
};
|
|
};
|
|
programs.zathura = {
|
|
enable = true;
|
|
options = {
|
|
guioptions = "v";
|
|
adjust-open = "width";
|
|
statusbar-basename = true;
|
|
render-loading = false;
|
|
scroll-step = 120;
|
|
};
|
|
};
|
|
programs.feh = {
|
|
enable = true;
|
|
keybindings = {
|
|
toggle_actions = null;
|
|
toggle_aliasing = null;
|
|
toggle_caption = null;
|
|
toggle_filenames = "d";
|
|
toggle_exif = null;
|
|
save_filelist = null;
|
|
toggle_fixed_geometry = "g";
|
|
toggle_pause = "h";
|
|
toggle_info = null;
|
|
toggle_keep_vp = null;
|
|
toggle_menu = null;
|
|
next_img = [ "k" "Right" ];
|
|
toggle_pointer = "a";
|
|
prev_img = [ "j" "Left" ];
|
|
quit = "q";
|
|
reload_image = null;
|
|
save_image = null;
|
|
toggle_fullscreen = "f";
|
|
size_to_image = "w";
|
|
close = null;
|
|
jump_random = "z";
|
|
prev_dir = null;
|
|
next_dir = null;
|
|
orient_3 = null;
|
|
orient_1 = null;
|
|
flip = null;
|
|
mirror = null;
|
|
action_0 = null;
|
|
action_1 = null;
|
|
action_2 = null;
|
|
action_3 = null;
|
|
action_4 = null;
|
|
action_5 = null;
|
|
action_6 = null;
|
|
action_7 = null;
|
|
action_8 = null;
|
|
action_9 = null;
|
|
jump_first = "J";
|
|
jump_last = "K";
|
|
jump_fwd = "H";
|
|
jump_back = "L";
|
|
reload_plus = null;
|
|
reload_minus = null;
|
|
remove = null;
|
|
delete = null;
|
|
scroll_left = "b";
|
|
scroll_right = "n";
|
|
scroll_up = [ "u" "Up" ];
|
|
scroll_down = [ "d" "Down" ];
|
|
scroll_left_page = null;
|
|
scroll_right_page = null;
|
|
scroll_up_page = null;
|
|
scroll_down_page = null;
|
|
render = null;
|
|
zoom_in = "h";
|
|
zoom_out = "l";
|
|
zoom_default = "o";
|
|
zoom_fit = null;
|
|
zoom_fill = "p";
|
|
menu_close = null;
|
|
menu_up = null;
|
|
menu_down = null;
|
|
menu_parent = null;
|
|
menu_child = null;
|
|
menu_select = null;
|
|
toggle_auto_zoom = "m";
|
|
};
|
|
};
|
|
services.mpd = {
|
|
enable = true;
|
|
extraConfig = ''
|
|
auto_update "yes"
|
|
'';
|
|
};
|
|
programs.ncmpcpp = {
|
|
enable = true;
|
|
bindings = [
|
|
{ key = "mouse"; command = "dummy"; }
|
|
{ key = "h"; command = ["previous_column" "jump_to_parent_directory"]; }
|
|
{ key = "j"; command = "scroll_down"; }
|
|
{ key = "k"; command = "scroll_up"; }
|
|
{ key = "l"; command = [ "next_column" "enter_directory" "play_item"]; }
|
|
{ key = "H"; command = [ "select_item" "scroll_down"]; }
|
|
{ key = "J"; command = ["move_sort_order_down" "move_selected_items_down"]; }
|
|
{ key = "K"; command = ["move_sort_order_up" "move_selected_items_up"]; }
|
|
{ key = "L"; command = [ "select_item" "scroll_up"]; }
|
|
{ key = "'"; command = "remove_selection"; }
|
|
{ key = "ctrl-u"; command = "page_up"; }
|
|
{ key = "ctrl-d"; command = "page_down"; }
|
|
{ key = "u"; command = "page_up"; }
|
|
{ key = "d"; command = "page_down"; }
|
|
{ key = "n"; command = "next_found_item"; }
|
|
{ key = "N"; command = "previous_found_item"; }
|
|
{ key = "t"; command = "next_screen"; }
|
|
{ key = "g"; command = "move_home"; }
|
|
{ key = "G"; command = "move_end"; }
|
|
{ key = "w"; command = "next"; }
|
|
{ key = "b"; command = "previous"; }
|
|
{ key = ";"; command = "seek_forward"; }
|
|
{ key = ","; command = "seek_backward"; }
|
|
{ key = "f"; command = "apply_filter"; }
|
|
{ key = "i"; command = "select_item"; }
|
|
{ key = "x"; command = [ "delete_playlist_items" "delete_browser_items" "delete_stored_playlist" ]; }
|
|
{ key = "U"; command = "update_database"; }
|
|
{ key = "m"; command = "add_random_items"; }
|
|
];
|
|
settings = {
|
|
ncmpcpp_directory = "~/.config/ncmpcpp";
|
|
user_interface = "alternative";
|
|
autocenter_mode = "yes";
|
|
allow_for_physical_item_deletion = "no";
|
|
mouse_support = "no";
|
|
execute_on_song_change = "~/.config/mpd/mpdnotify";
|
|
mpd_crossfade_time = 3;
|
|
};
|
|
};
|
|
programs.lf = {
|
|
enable = true;
|
|
};
|
|
services.gpg-agent = {
|
|
enable = true;
|
|
pinentryFlavor = "curses";
|
|
defaultCacheTtl = 43200;
|
|
maxCacheTtl = 43200;
|
|
};
|
|
programs.rofi = {
|
|
enable = true;
|
|
package = pkgs.rofi-wayland;
|
|
cycle = false;
|
|
extraConfig = {
|
|
modi = "drun,filebrowser";
|
|
font = "Noto Sans CJK JP 12";
|
|
show-icons = true;
|
|
bw = 0;
|
|
display-drun = "";
|
|
display-window = "";
|
|
display-combi = "";
|
|
icon-theme = "Papirus";
|
|
terminal = "kitty";
|
|
drun-match-fields = "name";
|
|
drun-display-format = "{name}";
|
|
me-select-entry = "";
|
|
me-accept-entry = "MousePrimary";
|
|
};
|
|
};
|
|
programs.gpg = {
|
|
enable = true;
|
|
# homedir = "${config.xdg.dataHome}/gnupg"
|
|
settings = {
|
|
personal-digest-preferences = "SHA512";
|
|
cert-digest-algo = "SHA512";
|
|
cipher-algo = "AES256";
|
|
default-preference-list = "SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed";
|
|
personal-cipher-preferences = "TWOFISH CAMELLIA256 AES 3DES";
|
|
throw-keyids = true;
|
|
keyid-format = "0xlong";
|
|
with-fingerprint = true;
|
|
};
|
|
};
|
|
};
|
|
}
|