mirror of
https://github.com/donovanglover/nix-config.git
synced 2024-11-22 08:14:00 +01:00
Split more configs into separate modules
This commit is contained in:
parent
70d7091d17
commit
537357307e
25
home-manager/dunst/default.nix
Normal file
25
home-manager/dunst/default.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
home-manager.sharedModules = [{
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
}
|
30
home-manager/editorconfig/default.nix
Normal file
30
home-manager/editorconfig/default.nix
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
home-manager.sharedModules = [{
|
||||||
|
editorconfig = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
"*" = {
|
||||||
|
charset = "utf-8";
|
||||||
|
end_of_line = "lf";
|
||||||
|
insert_final_newline = true;
|
||||||
|
indent_size = 2;
|
||||||
|
indent_style = "space";
|
||||||
|
trim_trailing_whitespace = true;
|
||||||
|
};
|
||||||
|
"*.md" = { indent_style = "tab"; };
|
||||||
|
"Makefile" = {
|
||||||
|
indent_style = "tab";
|
||||||
|
indent_size = 4;
|
||||||
|
};
|
||||||
|
"*.html" = {
|
||||||
|
indent_style = "tab";
|
||||||
|
indent_size = 4;
|
||||||
|
};
|
||||||
|
"*.go" = {
|
||||||
|
indent_style = "tab";
|
||||||
|
indent_size = 4;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
}
|
75
home-manager/feh/default.nix
Normal file
75
home-manager/feh/default.nix
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
{
|
||||||
|
home-manager.sharedModules = [{
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
}
|
43
home-manager/git/default.nix
Normal file
43
home-manager/git/default.nix
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
home-manager.sharedModules = [{
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = {
|
||||||
|
include = { path = "~/.gituser"; };
|
||||||
|
commit = { gpgsign = true; };
|
||||||
|
core = {
|
||||||
|
editor = "nvim";
|
||||||
|
autocrlf = false;
|
||||||
|
quotePath = false;
|
||||||
|
};
|
||||||
|
web = { browser = "librewolf"; };
|
||||||
|
push = { default = "simple"; };
|
||||||
|
branch = { autosetuprebase = "always"; };
|
||||||
|
init = { defaultBranch = "master"; };
|
||||||
|
rerere = { enabled = true; };
|
||||||
|
color = { ui = true; };
|
||||||
|
alias = {
|
||||||
|
contrib = "shortlog -n -s";
|
||||||
|
remotes = "remote -v";
|
||||||
|
praise = "blame";
|
||||||
|
verify = "log --show-signature";
|
||||||
|
};
|
||||||
|
"color \"diff-highlight\"" = {
|
||||||
|
oldNormal = "red bold";
|
||||||
|
oldHighlight = "red bold";
|
||||||
|
newNormal = "green bold";
|
||||||
|
newHighlight = "green bold";
|
||||||
|
};
|
||||||
|
"color \"diff\"" = {
|
||||||
|
meta = "yellow";
|
||||||
|
frag = "magenta bold";
|
||||||
|
commit = "yellow bold";
|
||||||
|
old = "red bold";
|
||||||
|
new = "green bold";
|
||||||
|
whitespace = "red reverse";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
diff-so-fancy = { enable = true; };
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
}
|
25
home-manager/gtk/default.nix
Normal file
25
home-manager/gtk/default.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home-manager.sharedModules = [{
|
||||||
|
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-dark";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
}
|
26
home-manager/kitty/default.nix
Normal file
26
home-manager/kitty/default.nix
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
home-manager.sharedModules = [{
|
||||||
|
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
|
||||||
|
'';
|
||||||
|
}];
|
||||||
|
}
|
34
home-manager/mpv/default.nix
Normal file
34
home-manager/mpv/default.nix
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home-manager.sharedModules = [{
|
||||||
|
programs.mpv = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
screenshot-format = "png";
|
||||||
|
profile = "gpu-hq";
|
||||||
|
scale = "ewa_lanczossharp";
|
||||||
|
cscale = "ewa_lanczossharp";
|
||||||
|
video-sync = "display-resample";
|
||||||
|
interpolation = true;
|
||||||
|
tscale = "oversample";
|
||||||
|
sub-auto = "fuzzy";
|
||||||
|
sub-font = "Noto Sans CJK JP Medium";
|
||||||
|
sub-blur = 10;
|
||||||
|
sub-file-paths = "subs:subtitles:字幕";
|
||||||
|
fullscreen = "yes";
|
||||||
|
title = "\${filename} - mpv";
|
||||||
|
script-opts =
|
||||||
|
"osc-title=\${filename},osc-boxalpha=150,osc-showfullscreen=no,osc-boxvideo=yes";
|
||||||
|
osc = "no";
|
||||||
|
osd-on-seek = "no";
|
||||||
|
osd-bar = "no";
|
||||||
|
osd-bar-w = 30;
|
||||||
|
osd-bar-h = "0.2";
|
||||||
|
osd-duration = 750;
|
||||||
|
really-quiet = "yes";
|
||||||
|
};
|
||||||
|
scripts = [ pkgs.mpvScripts.thumbnail ];
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
}
|
46
home-manager/ncmpcpp/default.nix
Normal file
46
home-manager/ncmpcpp/default.nix
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
home-manager.sharedModules = [{
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
}
|
168
home-manager/qutebrowser/default.nix
Normal file
168
home-manager/qutebrowser/default.nix
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home-manager.sharedModules = [{
|
||||||
|
programs.qutebrowser = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.qutebrowser-qt6;
|
||||||
|
extraConfig = ''
|
||||||
|
# Mute tabs by default
|
||||||
|
from qutebrowser.mainwindow import tabwidget
|
||||||
|
tabwidget.TabWidget.MUTE_STRING = ""
|
||||||
|
tabwidget.TabWidget.AUDIBLE_STRING = "[A]"
|
||||||
|
|
||||||
|
# Don't close while browsing / downloading
|
||||||
|
c.confirm_quit = ['multiple-tabs', 'downloads']
|
||||||
|
|
||||||
|
# Restore previous tabs
|
||||||
|
c.session.lazy_restore = True
|
||||||
|
|
||||||
|
# Use ranger as the file selector
|
||||||
|
c.fileselect.handler = 'external'
|
||||||
|
c.fileselect.folder.command = ['kitty', '-e', 'ranger', '--choosedir={}']
|
||||||
|
c.fileselect.multiple_files.command = ['kitty', '-e', 'ranger', '--choosefiles={}']
|
||||||
|
c.fileselect.single_file.command = ['kitty', '-e', 'ranger', '--choosefile={}']
|
||||||
|
|
||||||
|
# Better context menu colors
|
||||||
|
c.colors.contextmenu.disabled.fg = '#808080'
|
||||||
|
c.colors.contextmenu.menu.bg = '#353535'
|
||||||
|
c.colors.contextmenu.menu.fg = '#ffffff'
|
||||||
|
c.colors.contextmenu.selected.bg = '#909090'
|
||||||
|
|
||||||
|
# Use spellcheck
|
||||||
|
c.spellcheck.languages = ["en-US"]
|
||||||
|
|
||||||
|
# Chromium flags
|
||||||
|
c.qt.args = ["disable-backing-store-limit", "enable-accelerated-video-decode", "disable-gpu-driver-bug-workarounds"]
|
||||||
|
c.qt.chromium.low_end_device_mode = 'never'
|
||||||
|
|
||||||
|
# Make new tab position more sane
|
||||||
|
c.tabs.new_position.unrelated = 'next'
|
||||||
|
|
||||||
|
# Download settings
|
||||||
|
c.downloads.location.directory = "$HOME/Downloads"
|
||||||
|
c.downloads.location.prompt = False
|
||||||
|
c.downloads.position = "bottom"
|
||||||
|
c.downloads.remove_finished = 5000
|
||||||
|
|
||||||
|
# Only show tabs when multiple are open
|
||||||
|
c.tabs.show = "multiple"
|
||||||
|
|
||||||
|
# Don't switch tabs with mouse
|
||||||
|
c.tabs.mousewheel_switching = False
|
||||||
|
|
||||||
|
# Edit text with neovim
|
||||||
|
c.editor.command = ['kitty', '-e', 'nvim', '{}']
|
||||||
|
|
||||||
|
# Use J/K for prev/next
|
||||||
|
config.bind('J', 'tab-prev')
|
||||||
|
config.bind('K', 'tab-next')
|
||||||
|
|
||||||
|
# Use F12 for devtools
|
||||||
|
config.bind('<F12>', 'devtools')
|
||||||
|
|
||||||
|
# Use zb to delete bookmarks
|
||||||
|
config.bind('zb', 'bookmark-del')
|
||||||
|
|
||||||
|
# Increase the default scroll offset of j/k
|
||||||
|
# NOTE: Unfortunately this breaks websites that use their own keybinds for j/k/etc
|
||||||
|
# config.bind('j', 'run-with-count 5 scroll down')
|
||||||
|
# config.bind('k', 'run-with-count 5 scroll up')
|
||||||
|
|
||||||
|
# NOTE: Use with smooth smooth scrolling enabled to scroll smoothly
|
||||||
|
# config.bind('d', 'run-with-count 12 scroll down')
|
||||||
|
# config.bind('u', 'run-with-count 12 scroll up')
|
||||||
|
|
||||||
|
# Use d/u to scroll down/up
|
||||||
|
config.bind('d', 'scroll-page 0 0.5')
|
||||||
|
config.bind('u', 'scroll-page 0 -0.5')
|
||||||
|
config.bind('D', 'scroll-page 0 0.5')
|
||||||
|
config.bind('U', 'scroll-page 0 -0.5')
|
||||||
|
|
||||||
|
# Use alt+left/right to go back/forward
|
||||||
|
config.bind('<Alt+Left>', 'back')
|
||||||
|
config.bind('<Alt+Right>', 'forward')
|
||||||
|
|
||||||
|
# Use x to close tabs and X to undo
|
||||||
|
config.bind('x', 'tab-close')
|
||||||
|
config.bind('X', 'undo')
|
||||||
|
|
||||||
|
# Toggle tab visibility for more screen space
|
||||||
|
config.bind('st', 'config-cycle tabs.show multiple switching')
|
||||||
|
|
||||||
|
# Easily change the position of tabs
|
||||||
|
config.bind('sTh', 'set tabs.position left')
|
||||||
|
config.bind('sTj', 'set tabs.position bottom')
|
||||||
|
config.bind('sTk', 'set tabs.position top')
|
||||||
|
config.bind('sTl', 'set tabs.position right')
|
||||||
|
|
||||||
|
# Don't paste something by accident
|
||||||
|
config.unbind('pp', mode='normal')
|
||||||
|
config.unbind('pP', mode='normal')
|
||||||
|
config.unbind('Pp', mode='normal')
|
||||||
|
config.unbind('PP', mode='normal')
|
||||||
|
config.unbind('wp', mode='normal')
|
||||||
|
config.unbind('wP', mode='normal')
|
||||||
|
|
||||||
|
# Easily enter account information
|
||||||
|
# NOTE: I re-evaluated pass when I was focusing on a terminal-centric workflow.
|
||||||
|
config.bind('zl', 'spawn --userscript qute-pass')
|
||||||
|
config.bind('zpl', 'spawn --userscript qute-pass --password-only')
|
||||||
|
config.bind('zol', 'spawn --userscript qute-pass --otp-only')
|
||||||
|
|
||||||
|
# Support previous/next tab with traditional keybinds
|
||||||
|
config.bind('<Ctrl+Shift+Tab>', 'tab-prev')
|
||||||
|
config.bind('<Ctrl+Tab>', 'tab-next')
|
||||||
|
|
||||||
|
# Hide the status bar except under exceptional circumstances
|
||||||
|
# NOTE: This broke more things than not, which is why I ultimately decided
|
||||||
|
# to always use the status bar. More information can be found in the
|
||||||
|
# following discussion: https://github.com/qutebrowser/qutebrowser/issues/2236
|
||||||
|
# config.bind('o', 'set statusbar.show always;; set-cmd-text -s :open')
|
||||||
|
# config.bind('O', 'set statusbar.show always;; set-cmd-text -s :open -t')
|
||||||
|
# config.bind('T', 'set statusbar.show always;; set-cmd-text -sr :tab-focus')
|
||||||
|
# config.bind(':', 'set statusbar.show always;; set-cmd-text :')
|
||||||
|
# config.bind('/', 'set statusbar.show always;; set-cmd-text /')
|
||||||
|
# config.bind('<Escape>', 'mode-enter normal;; set statusbar.show in-mode', mode='command')
|
||||||
|
# config.bind('<Return>', 'command-accept;; set statusbar.show in-mode', mode='command')
|
||||||
|
|
||||||
|
# Easily start a new temporary container
|
||||||
|
config.bind(';s', 'hint links spawn ~/.local/bin/tmp {hint-url}')
|
||||||
|
|
||||||
|
# Open the current tab / selected link in mpv
|
||||||
|
config.bind('zM', 'spawn mpv --force-window=immediate {url}')
|
||||||
|
config.bind('zm', 'hint links spawn mpv --force-window=immediate {hint-url}')
|
||||||
|
|
||||||
|
# Automatically mute tabs
|
||||||
|
c.content.mute = True
|
||||||
|
|
||||||
|
# Use proxy websites for popular services
|
||||||
|
config.bind('zu', 'hint links spawn -u untrack-url -O {hint-url}')
|
||||||
|
|
||||||
|
# Enable expected permissions to avoid websites asking every time
|
||||||
|
c.content.persistent_storage = True
|
||||||
|
c.content.notifications.enabled = True
|
||||||
|
c.content.register_protocol_handler = True
|
||||||
|
|
||||||
|
# Hide the window title bar on GNOME
|
||||||
|
# NOTE: This is no longer necessary since GNOME has an extension called
|
||||||
|
# pixel-saver that # automatically handles this for us, and without
|
||||||
|
# the downsides of not having a window bar.
|
||||||
|
# c.window.hide_decoration = True
|
||||||
|
|
||||||
|
# Close qutebrowser when there are no tabs left
|
||||||
|
c.tabs.last_close = "close"
|
||||||
|
|
||||||
|
# Don't automatically enter/leave insert mode
|
||||||
|
# NOTE: This was originally done to prevent insert mode from prematurely exiting
|
||||||
|
# in certain # cases (such as mouse usage), although keeping auto functionality
|
||||||
|
# seems to be more useful # long-term.
|
||||||
|
c.input.insert_mode.auto_enter = False
|
||||||
|
c.input.insert_mode.auto_leave = False
|
||||||
|
|
||||||
|
# Prioritize Japanese content (en-US is necessary to avoid breaking things)
|
||||||
|
c.content.headers.accept_language = 'ja-JP,en-US'
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
}
|
24
home-manager/ranger/default.nix
Normal file
24
home-manager/ranger/default.nix
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
home-manager.sharedModules = [{
|
||||||
|
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
|
||||||
|
'';
|
||||||
|
}];
|
||||||
|
}
|
19
home-manager/swaylock/default.nix
Normal file
19
home-manager/swaylock/default.nix
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
home-manager.sharedModules = [{
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
}
|
8
home-manager/thunar/default.nix
Normal file
8
home-manager/thunar/default.nix
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
home-manager.sharedModules = [{
|
||||||
|
xdg.configFile."xfce4/helpers.rc".text = ''
|
||||||
|
TerminalEmulator=kitty
|
||||||
|
TerminalEmulatorDismissed=true
|
||||||
|
'';
|
||||||
|
}];
|
||||||
|
}
|
9
home-manager/tig/default.nix
Normal file
9
home-manager/tig/default.nix
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
home-manager.sharedModules = [{
|
||||||
|
xdg.configFile."tig/config".text = ''
|
||||||
|
color cursor black green bold
|
||||||
|
color title-focus black blue bold
|
||||||
|
color title-blur black blue bold
|
||||||
|
'';
|
||||||
|
}];
|
||||||
|
}
|
137
home-manager/waybar/default.nix
Normal file
137
home-manager/waybar/default.nix
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home-manager.sharedModules = [{
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
systemd.enable = true;
|
||||||
|
package = hyprland.packages."x86_64-linux".waybar-hyprland;
|
||||||
|
settings = {
|
||||||
|
mainBar = {
|
||||||
|
layer = "top";
|
||||||
|
position = "left";
|
||||||
|
width = 45;
|
||||||
|
spacing = 8;
|
||||||
|
modules-left = [ "wlr/workspaces" "custom/new-workspace" ];
|
||||||
|
modules-center = [ "hyprland/window" ];
|
||||||
|
modules-right =
|
||||||
|
[ "tray" "wireplumber" "backlight" "battery" "clock" ];
|
||||||
|
"tray" = {
|
||||||
|
"icon-size" = 24;
|
||||||
|
spacing = 8;
|
||||||
|
};
|
||||||
|
"hyprland/window" = {
|
||||||
|
"rotate" = 90;
|
||||||
|
};
|
||||||
|
"wlr/workspaces" = {
|
||||||
|
on-click = "activate";
|
||||||
|
sort-by-number = true;
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = {
|
||||||
|
"1" = "一";
|
||||||
|
"2" = "二";
|
||||||
|
"3" = "三";
|
||||||
|
"4" = "四";
|
||||||
|
"5" = "五";
|
||||||
|
"6" = "六";
|
||||||
|
"7" = "七";
|
||||||
|
"8" = "八";
|
||||||
|
"9" = "九";
|
||||||
|
"10" = "十";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
wireplumber = {
|
||||||
|
format = "{icon}";
|
||||||
|
tooltip-format = "{volume}% {node_name}";
|
||||||
|
format-muted = "";
|
||||||
|
format-icons = ["" ""];
|
||||||
|
};
|
||||||
|
battery = {
|
||||||
|
"format" = "{icon}";
|
||||||
|
"tooltip-format" = "{capacity}% {timeTo}";
|
||||||
|
"format-icons" = ["" "" "" "" ""];
|
||||||
|
};
|
||||||
|
clock = {
|
||||||
|
"format" = "{:%H\n%M}";
|
||||||
|
"tooltip-format" = "<tt>{calendar}</tt>";
|
||||||
|
};
|
||||||
|
backlight = {
|
||||||
|
"format" = "{icon}";
|
||||||
|
"format-icons" = ["" ""];
|
||||||
|
};
|
||||||
|
"custom/new-workspace" = {
|
||||||
|
"format" = "+";
|
||||||
|
"on-click" = "hyprctl dispatch workspace empty && rofi -show drun";
|
||||||
|
"tooltip" = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
style = lib.mkForce ''
|
||||||
|
@define-color base00 #272822;
|
||||||
|
@define-color base01 #383830;
|
||||||
|
@define-color base02 #49483e;
|
||||||
|
@define-color base03 #75715e;
|
||||||
|
@define-color base04 #a59f85;
|
||||||
|
@define-color base05 #f8f8f2;
|
||||||
|
@define-color base06 #f5f4f1;
|
||||||
|
@define-color base07 #f9f8f5;
|
||||||
|
@define-color base08 #f92672;
|
||||||
|
@define-color base09 #fd971f;
|
||||||
|
@define-color base0A #f4bf75;
|
||||||
|
@define-color base0B #a6e22e;
|
||||||
|
@define-color base0C #a1efe4;
|
||||||
|
@define-color base0D #66d9ef;
|
||||||
|
@define-color base0E #ae81ff;
|
||||||
|
@define-color base0F #cc6633;
|
||||||
|
|
||||||
|
* {
|
||||||
|
color: @base05;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background: alpha(@base00, 0.95);
|
||||||
|
border-right: 1px solid alpha(@base02, 0.67);
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 12px 0;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
background: alpha(@base02, 0.67);
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
padding-top: 8px;
|
||||||
|
padding-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip, #tray menu {
|
||||||
|
background: @base00;
|
||||||
|
border: 1px solid alpha(@base09, 0.93);
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight, #battery, #wireplumber {
|
||||||
|
font-family: "Font Awesome 6 Free Solid";
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-new-workspace {
|
||||||
|
font-family: "Font Awesome 6 Free Solid";
|
||||||
|
padding-top: 8px;
|
||||||
|
padding-bottom: 8px;
|
||||||
|
color: alpha(@base0A, 0.67);
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-bottom: 8px;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
}
|
14
home-manager/zathura/default.nix
Normal file
14
home-manager/zathura/default.nix
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
home-manager.sharedModules = [{
|
||||||
|
programs.zathura = {
|
||||||
|
enable = true;
|
||||||
|
options = {
|
||||||
|
guioptions = "v";
|
||||||
|
adjust-open = "width";
|
||||||
|
statusbar-basename = true;
|
||||||
|
render-loading = false;
|
||||||
|
scroll-step = 120;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
}
|
615
home.nix
615
home.nix
@ -206,10 +206,6 @@
|
|||||||
"Xft.hintstyle" = "hintfull";
|
"Xft.hintstyle" = "hintfull";
|
||||||
"Xft.rgba" = "rgb";
|
"Xft.rgba" = "rgb";
|
||||||
};
|
};
|
||||||
xdg.configFile."xfce4/helpers.rc".text = ''
|
|
||||||
TerminalEmulator=kitty
|
|
||||||
TerminalEmulatorDismissed=true
|
|
||||||
'';
|
|
||||||
xdg.configFile."mozc/ibus_config.textproto".force = true;
|
xdg.configFile."mozc/ibus_config.textproto".force = true;
|
||||||
xdg.configFile."mozc/ibus_config.textproto".text = ''
|
xdg.configFile."mozc/ibus_config.textproto".text = ''
|
||||||
engines {
|
engines {
|
||||||
@ -222,26 +218,6 @@
|
|||||||
}
|
}
|
||||||
active_on_launch: True
|
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 = ''
|
xdg.configFile."fish/config.fish".text = ''
|
||||||
set -U fish_greeting ""
|
set -U fish_greeting ""
|
||||||
|
|
||||||
@ -299,344 +275,13 @@
|
|||||||
# end
|
# end
|
||||||
# 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-dark";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
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.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;
|
|
||||||
systemd.enable = true;
|
|
||||||
package = hyprland.packages."x86_64-linux".waybar-hyprland;
|
|
||||||
settings = {
|
|
||||||
mainBar = {
|
|
||||||
layer = "top";
|
|
||||||
position = "left";
|
|
||||||
width = 45;
|
|
||||||
spacing = 8;
|
|
||||||
modules-left = [ "wlr/workspaces" "custom/new-workspace" ];
|
|
||||||
modules-center = [ "hyprland/window" ];
|
|
||||||
modules-right =
|
|
||||||
[ "tray" "wireplumber" "backlight" "battery" "clock" ];
|
|
||||||
"tray" = {
|
|
||||||
"icon-size" = 24;
|
|
||||||
spacing = 8;
|
|
||||||
};
|
|
||||||
"hyprland/window" = {
|
|
||||||
"rotate" = 90;
|
|
||||||
};
|
|
||||||
"wlr/workspaces" = {
|
|
||||||
on-click = "activate";
|
|
||||||
sort-by-number = true;
|
|
||||||
format = "{icon}";
|
|
||||||
format-icons = {
|
|
||||||
"1" = "一";
|
|
||||||
"2" = "二";
|
|
||||||
"3" = "三";
|
|
||||||
"4" = "四";
|
|
||||||
"5" = "五";
|
|
||||||
"6" = "六";
|
|
||||||
"7" = "七";
|
|
||||||
"8" = "八";
|
|
||||||
"9" = "九";
|
|
||||||
"10" = "十";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
wireplumber = {
|
|
||||||
format = "{icon}";
|
|
||||||
tooltip-format = "{volume}% {node_name}";
|
|
||||||
format-muted = "";
|
|
||||||
format-icons = ["" ""];
|
|
||||||
};
|
|
||||||
battery = {
|
|
||||||
"format" = "{icon}";
|
|
||||||
"tooltip-format" = "{capacity}% {timeTo}";
|
|
||||||
"format-icons" = ["" "" "" "" ""];
|
|
||||||
};
|
|
||||||
clock = {
|
|
||||||
"format" = "{:%H\n%M}";
|
|
||||||
"tooltip-format" = "<tt>{calendar}</tt>";
|
|
||||||
};
|
|
||||||
backlight = {
|
|
||||||
"format" = "{icon}";
|
|
||||||
"format-icons" = ["" ""];
|
|
||||||
};
|
|
||||||
"custom/new-workspace" = {
|
|
||||||
"format" = "+";
|
|
||||||
"on-click" = "hyprctl dispatch workspace empty && rofi -show drun";
|
|
||||||
"tooltip" = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
style = lib.mkForce ''
|
|
||||||
@define-color base00 #272822;
|
|
||||||
@define-color base01 #383830;
|
|
||||||
@define-color base02 #49483e;
|
|
||||||
@define-color base03 #75715e;
|
|
||||||
@define-color base04 #a59f85;
|
|
||||||
@define-color base05 #f8f8f2;
|
|
||||||
@define-color base06 #f5f4f1;
|
|
||||||
@define-color base07 #f9f8f5;
|
|
||||||
@define-color base08 #f92672;
|
|
||||||
@define-color base09 #fd971f;
|
|
||||||
@define-color base0A #f4bf75;
|
|
||||||
@define-color base0B #a6e22e;
|
|
||||||
@define-color base0C #a1efe4;
|
|
||||||
@define-color base0D #66d9ef;
|
|
||||||
@define-color base0E #ae81ff;
|
|
||||||
@define-color base0F #cc6633;
|
|
||||||
|
|
||||||
* {
|
|
||||||
color: @base05;
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
window#waybar {
|
|
||||||
background: alpha(@base00, 0.95);
|
|
||||||
border-right: 1px solid alpha(@base02, 0.67);
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button {
|
|
||||||
padding: 12px 0;
|
|
||||||
border-radius: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.active {
|
|
||||||
background: alpha(@base02, 0.67);
|
|
||||||
}
|
|
||||||
|
|
||||||
#window {
|
|
||||||
padding-top: 8px;
|
|
||||||
padding-bottom: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
tooltip, #tray menu {
|
|
||||||
background: @base00;
|
|
||||||
border: 1px solid alpha(@base09, 0.93);
|
|
||||||
padding: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#backlight, #battery, #wireplumber {
|
|
||||||
font-family: "Font Awesome 6 Free Solid";
|
|
||||||
font-size: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-new-workspace {
|
|
||||||
font-family: "Font Awesome 6 Free Solid";
|
|
||||||
padding-top: 8px;
|
|
||||||
padding-bottom: 8px;
|
|
||||||
color: alpha(@base0A, 0.67);
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock {
|
|
||||||
font-size: 18px;
|
|
||||||
font-weight: bold;
|
|
||||||
padding-bottom: 8px;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
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 = {
|
services.mpd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
auto_update "yes"
|
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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services.gpg-agent = {
|
services.gpg-agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
pinentryFlavor = "curses";
|
pinentryFlavor = "curses";
|
||||||
@ -800,267 +445,7 @@
|
|||||||
rust-vim
|
rust-vim
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
editorconfig = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
"*" = {
|
|
||||||
charset = "utf-8";
|
|
||||||
end_of_line = "lf";
|
|
||||||
insert_final_newline = true;
|
|
||||||
indent_size = 2;
|
|
||||||
indent_style = "space";
|
|
||||||
trim_trailing_whitespace = true;
|
|
||||||
};
|
|
||||||
"*.md" = { indent_style = "tab"; };
|
|
||||||
"Makefile" = {
|
|
||||||
indent_style = "tab";
|
|
||||||
indent_size = 4;
|
|
||||||
};
|
|
||||||
"*.html" = {
|
|
||||||
indent_style = "tab";
|
|
||||||
indent_size = 4;
|
|
||||||
};
|
|
||||||
"*.go" = {
|
|
||||||
indent_style = "tab";
|
|
||||||
indent_size = 4;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
xdg.configFile."tig/config".text = ''
|
|
||||||
color cursor black green bold
|
|
||||||
color title-focus black blue bold
|
|
||||||
color title-blur black blue bold
|
|
||||||
'';
|
|
||||||
programs.mpv = {
|
|
||||||
enable = true;
|
|
||||||
config = {
|
|
||||||
screenshot-format = "png";
|
|
||||||
profile = "gpu-hq";
|
|
||||||
scale = "ewa_lanczossharp";
|
|
||||||
cscale = "ewa_lanczossharp";
|
|
||||||
video-sync = "display-resample";
|
|
||||||
interpolation = true;
|
|
||||||
tscale = "oversample";
|
|
||||||
sub-auto = "fuzzy";
|
|
||||||
sub-font = "Noto Sans CJK JP Medium";
|
|
||||||
sub-blur = 10;
|
|
||||||
sub-file-paths = "subs:subtitles:字幕";
|
|
||||||
fullscreen = "yes";
|
|
||||||
title = "\${filename} - mpv";
|
|
||||||
script-opts =
|
|
||||||
"osc-title=\${filename},osc-boxalpha=150,osc-showfullscreen=no,osc-boxvideo=yes";
|
|
||||||
osc = "no";
|
|
||||||
osd-on-seek = "no";
|
|
||||||
osd-bar = "no";
|
|
||||||
osd-bar-w = 30;
|
|
||||||
osd-bar-h = "0.2";
|
|
||||||
osd-duration = 750;
|
|
||||||
really-quiet = "yes";
|
|
||||||
};
|
|
||||||
scripts = [ pkgs.mpvScripts.thumbnail ];
|
|
||||||
};
|
|
||||||
programs.git = {
|
|
||||||
enable = true;
|
|
||||||
extraConfig = {
|
|
||||||
include = { path = "~/.gituser"; };
|
|
||||||
commit = { gpgsign = true; };
|
|
||||||
core = {
|
|
||||||
editor = "nvim";
|
|
||||||
autocrlf = false;
|
|
||||||
quotePath = false;
|
|
||||||
};
|
|
||||||
web = { browser = "librewolf"; };
|
|
||||||
push = { default = "simple"; };
|
|
||||||
branch = { autosetuprebase = "always"; };
|
|
||||||
init = { defaultBranch = "master"; };
|
|
||||||
rerere = { enabled = true; };
|
|
||||||
color = { ui = true; };
|
|
||||||
alias = {
|
|
||||||
contrib = "shortlog -n -s";
|
|
||||||
remotes = "remote -v";
|
|
||||||
praise = "blame";
|
|
||||||
verify = "log --show-signature";
|
|
||||||
};
|
|
||||||
"color \"diff-highlight\"" = {
|
|
||||||
oldNormal = "red bold";
|
|
||||||
oldHighlight = "red bold";
|
|
||||||
newNormal = "green bold";
|
|
||||||
newHighlight = "green bold";
|
|
||||||
};
|
|
||||||
"color \"diff\"" = {
|
|
||||||
meta = "yellow";
|
|
||||||
frag = "magenta bold";
|
|
||||||
commit = "yellow bold";
|
|
||||||
old = "red bold";
|
|
||||||
new = "green bold";
|
|
||||||
whitespace = "red reverse";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
diff-so-fancy = { enable = true; };
|
|
||||||
};
|
|
||||||
services.udiskie.enable = true;
|
services.udiskie.enable = true;
|
||||||
programs.qutebrowser = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.qutebrowser-qt6;
|
|
||||||
extraConfig = ''
|
|
||||||
# Mute tabs by default
|
|
||||||
from qutebrowser.mainwindow import tabwidget
|
|
||||||
tabwidget.TabWidget.MUTE_STRING = ""
|
|
||||||
tabwidget.TabWidget.AUDIBLE_STRING = "[A]"
|
|
||||||
|
|
||||||
# Don't close while browsing / downloading
|
|
||||||
c.confirm_quit = ['multiple-tabs', 'downloads']
|
|
||||||
|
|
||||||
# Restore previous tabs
|
|
||||||
c.session.lazy_restore = True
|
|
||||||
|
|
||||||
# Use ranger as the file selector
|
|
||||||
c.fileselect.handler = 'external'
|
|
||||||
c.fileselect.folder.command = ['kitty', '-e', 'ranger', '--choosedir={}']
|
|
||||||
c.fileselect.multiple_files.command = ['kitty', '-e', 'ranger', '--choosefiles={}']
|
|
||||||
c.fileselect.single_file.command = ['kitty', '-e', 'ranger', '--choosefile={}']
|
|
||||||
|
|
||||||
# Better context menu colors
|
|
||||||
c.colors.contextmenu.disabled.fg = '#808080'
|
|
||||||
c.colors.contextmenu.menu.bg = '#353535'
|
|
||||||
c.colors.contextmenu.menu.fg = '#ffffff'
|
|
||||||
c.colors.contextmenu.selected.bg = '#909090'
|
|
||||||
|
|
||||||
# Use spellcheck
|
|
||||||
c.spellcheck.languages = ["en-US"]
|
|
||||||
|
|
||||||
# Chromium flags
|
|
||||||
c.qt.args = ["disable-backing-store-limit", "enable-accelerated-video-decode", "disable-gpu-driver-bug-workarounds"]
|
|
||||||
c.qt.chromium.low_end_device_mode = 'never'
|
|
||||||
|
|
||||||
# Make new tab position more sane
|
|
||||||
c.tabs.new_position.unrelated = 'next'
|
|
||||||
|
|
||||||
# Download settings
|
|
||||||
c.downloads.location.directory = "$HOME/Downloads"
|
|
||||||
c.downloads.location.prompt = False
|
|
||||||
c.downloads.position = "bottom"
|
|
||||||
c.downloads.remove_finished = 5000
|
|
||||||
|
|
||||||
# Only show tabs when multiple are open
|
|
||||||
c.tabs.show = "multiple"
|
|
||||||
|
|
||||||
# Don't switch tabs with mouse
|
|
||||||
c.tabs.mousewheel_switching = False
|
|
||||||
|
|
||||||
# Edit text with neovim
|
|
||||||
c.editor.command = ['kitty', '-e', 'nvim', '{}']
|
|
||||||
|
|
||||||
# Use J/K for prev/next
|
|
||||||
config.bind('J', 'tab-prev')
|
|
||||||
config.bind('K', 'tab-next')
|
|
||||||
|
|
||||||
# Use F12 for devtools
|
|
||||||
config.bind('<F12>', 'devtools')
|
|
||||||
|
|
||||||
# Use zb to delete bookmarks
|
|
||||||
config.bind('zb', 'bookmark-del')
|
|
||||||
|
|
||||||
# Increase the default scroll offset of j/k
|
|
||||||
# NOTE: Unfortunately this breaks websites that use their own keybinds for j/k/etc
|
|
||||||
# config.bind('j', 'run-with-count 5 scroll down')
|
|
||||||
# config.bind('k', 'run-with-count 5 scroll up')
|
|
||||||
|
|
||||||
# NOTE: Use with smooth smooth scrolling enabled to scroll smoothly
|
|
||||||
# config.bind('d', 'run-with-count 12 scroll down')
|
|
||||||
# config.bind('u', 'run-with-count 12 scroll up')
|
|
||||||
|
|
||||||
# Use d/u to scroll down/up
|
|
||||||
config.bind('d', 'scroll-page 0 0.5')
|
|
||||||
config.bind('u', 'scroll-page 0 -0.5')
|
|
||||||
config.bind('D', 'scroll-page 0 0.5')
|
|
||||||
config.bind('U', 'scroll-page 0 -0.5')
|
|
||||||
|
|
||||||
# Use alt+left/right to go back/forward
|
|
||||||
config.bind('<Alt+Left>', 'back')
|
|
||||||
config.bind('<Alt+Right>', 'forward')
|
|
||||||
|
|
||||||
# Use x to close tabs and X to undo
|
|
||||||
config.bind('x', 'tab-close')
|
|
||||||
config.bind('X', 'undo')
|
|
||||||
|
|
||||||
# Toggle tab visibility for more screen space
|
|
||||||
config.bind('st', 'config-cycle tabs.show multiple switching')
|
|
||||||
|
|
||||||
# Easily change the position of tabs
|
|
||||||
config.bind('sTh', 'set tabs.position left')
|
|
||||||
config.bind('sTj', 'set tabs.position bottom')
|
|
||||||
config.bind('sTk', 'set tabs.position top')
|
|
||||||
config.bind('sTl', 'set tabs.position right')
|
|
||||||
|
|
||||||
# Don't paste something by accident
|
|
||||||
config.unbind('pp', mode='normal')
|
|
||||||
config.unbind('pP', mode='normal')
|
|
||||||
config.unbind('Pp', mode='normal')
|
|
||||||
config.unbind('PP', mode='normal')
|
|
||||||
config.unbind('wp', mode='normal')
|
|
||||||
config.unbind('wP', mode='normal')
|
|
||||||
|
|
||||||
# Easily enter account information
|
|
||||||
# NOTE: I re-evaluated pass when I was focusing on a terminal-centric workflow.
|
|
||||||
config.bind('zl', 'spawn --userscript qute-pass')
|
|
||||||
config.bind('zpl', 'spawn --userscript qute-pass --password-only')
|
|
||||||
config.bind('zol', 'spawn --userscript qute-pass --otp-only')
|
|
||||||
|
|
||||||
# Support previous/next tab with traditional keybinds
|
|
||||||
config.bind('<Ctrl+Shift+Tab>', 'tab-prev')
|
|
||||||
config.bind('<Ctrl+Tab>', 'tab-next')
|
|
||||||
|
|
||||||
# Hide the status bar except under exceptional circumstances
|
|
||||||
# NOTE: This broke more things than not, which is why I ultimately decided
|
|
||||||
# to always use the status bar. More information can be found in the
|
|
||||||
# following discussion: https://github.com/qutebrowser/qutebrowser/issues/2236
|
|
||||||
# config.bind('o', 'set statusbar.show always;; set-cmd-text -s :open')
|
|
||||||
# config.bind('O', 'set statusbar.show always;; set-cmd-text -s :open -t')
|
|
||||||
# config.bind('T', 'set statusbar.show always;; set-cmd-text -sr :tab-focus')
|
|
||||||
# config.bind(':', 'set statusbar.show always;; set-cmd-text :')
|
|
||||||
# config.bind('/', 'set statusbar.show always;; set-cmd-text /')
|
|
||||||
# config.bind('<Escape>', 'mode-enter normal;; set statusbar.show in-mode', mode='command')
|
|
||||||
# config.bind('<Return>', 'command-accept;; set statusbar.show in-mode', mode='command')
|
|
||||||
|
|
||||||
# Easily start a new temporary container
|
|
||||||
config.bind(';s', 'hint links spawn ~/.local/bin/tmp {hint-url}')
|
|
||||||
|
|
||||||
# Open the current tab / selected link in mpv
|
|
||||||
config.bind('zM', 'spawn mpv --force-window=immediate {url}')
|
|
||||||
config.bind('zm', 'hint links spawn mpv --force-window=immediate {hint-url}')
|
|
||||||
|
|
||||||
# Automatically mute tabs
|
|
||||||
c.content.mute = True
|
|
||||||
|
|
||||||
# Use proxy websites for popular services
|
|
||||||
config.bind('zu', 'hint links spawn -u untrack-url -O {hint-url}')
|
|
||||||
|
|
||||||
# Enable expected permissions to avoid websites asking every time
|
|
||||||
c.content.persistent_storage = True
|
|
||||||
c.content.notifications.enabled = True
|
|
||||||
c.content.register_protocol_handler = True
|
|
||||||
|
|
||||||
# Hide the window title bar on GNOME
|
|
||||||
# NOTE: This is no longer necessary since GNOME has an extension called
|
|
||||||
# pixel-saver that # automatically handles this for us, and without
|
|
||||||
# the downsides of not having a window bar.
|
|
||||||
# c.window.hide_decoration = True
|
|
||||||
|
|
||||||
# Close qutebrowser when there are no tabs left
|
|
||||||
c.tabs.last_close = "close"
|
|
||||||
|
|
||||||
# Don't automatically enter/leave insert mode
|
|
||||||
# NOTE: This was originally done to prevent insert mode from prematurely exiting
|
|
||||||
# in certain # cases (such as mouse usage), although keeping auto functionality
|
|
||||||
# seems to be more useful # long-term.
|
|
||||||
c.input.insert_mode.auto_enter = False
|
|
||||||
c.input.insert_mode.auto_leave = False
|
|
||||||
|
|
||||||
# Prioritize Japanese content (en-US is necessary to avoid breaking things)
|
|
||||||
c.content.headers.accept_language = 'ja-JP,en-US'
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
xdg.configFile."hypr/swapmaster.sh".source = ./swapmaster.sh;
|
xdg.configFile."hypr/swapmaster.sh".source = ./swapmaster.sh;
|
||||||
xdg.configFile."hypr/tags.sh".source = ./tags.sh;
|
xdg.configFile."hypr/tags.sh".source = ./tags.sh;
|
||||||
xdg = { userDirs = { enable = true; }; };
|
xdg = { userDirs = { enable = true; }; };
|
||||||
|
Loading…
Reference in New Issue
Block a user