Merge remote-tracking branch 'refs/remotes/origin/main'
This commit is contained in:
commit
2307c844bf
100 changed files with 13991 additions and 812 deletions
|
@ -85,8 +85,8 @@ in {
|
|||
}
|
||||
];
|
||||
oh-my-zsh = mkIf cfg.ohmyzsh.enable {
|
||||
enable = true;
|
||||
theme = cfg.ohmyzsh.theme;
|
||||
enable = true;
|
||||
theme = cfg.ohmyzsh.theme;
|
||||
plugins = cfg.ohmyzsh.plugins;
|
||||
};
|
||||
};
|
||||
|
|
42
modules/gui/alacritty.nix
Normal file
42
modules/gui/alacritty.nix
Normal file
|
@ -0,0 +1,42 @@
|
|||
{ config, lib, inputs, pkgs, ... }:
|
||||
with lib; let
|
||||
username = config.modules.other.system.username;
|
||||
cfg = config.modules.programs.alacritty;
|
||||
in {
|
||||
options.modules.programs.alacritty = {
|
||||
enable = mkEnableOption "alacritty";
|
||||
catppuccin = mkEnableOption "catppuccin";
|
||||
opacity = mkOption {
|
||||
description = "opacity of alacritty";
|
||||
type = types.number;
|
||||
default = 1.0;
|
||||
};
|
||||
blur = mkOption {
|
||||
description = "blur of alacritty";
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.${username} = {
|
||||
programs.alacritty.enable = true;
|
||||
|
||||
programs.alacritty.settings = {
|
||||
window = {
|
||||
blur = cfg.blur;
|
||||
opacity = cfg.opacity;
|
||||
};
|
||||
|
||||
colors = mkIf cfg.catppuccin {
|
||||
primary = {
|
||||
background = "#1e1e2e";
|
||||
foreground = "#cdd6f4";
|
||||
dim_foreground = "#7f849c";
|
||||
bright_foreground = "#cdd6f4";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -11,5 +11,7 @@ _: {
|
|||
./foot.nix
|
||||
# ./vivado.nix
|
||||
./WM
|
||||
./alacritty.nix
|
||||
./firefox.nix
|
||||
];
|
||||
}
|
||||
|
|
64
modules/gui/firefox.nix
Normal file
64
modules/gui/firefox.nix
Normal file
|
@ -0,0 +1,64 @@
|
|||
{ config, lib, inputs, pkgs, ... }:
|
||||
with lib; let
|
||||
username = config.modules.other.system.username;
|
||||
cfg = config.modules.programs.firefox;
|
||||
in {
|
||||
options.modules.programs.firefox = {
|
||||
enable = mkEnableOption "firefox";
|
||||
extensions = mkOption {
|
||||
description = "firefox extensions (format like https://discourse.nixos.org/t/declare-firefox-extensions-and-settings/36265)";
|
||||
type = types.attrs;
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.${username} = {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
|
||||
policies = {
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
EnableTrackingProtection = {
|
||||
Value= true;
|
||||
Locked = true;
|
||||
Cryptomining = true;
|
||||
Fingerprinting = true;
|
||||
};
|
||||
DisablePocket = true;
|
||||
DisableFirefoxAccounts = true;
|
||||
DisableAccounts = true;
|
||||
DisableFirefoxScreenshots = true;
|
||||
OverrideFirstRunPage = "";
|
||||
OverridePostUpdatePage = "";
|
||||
DontCheckDefaultBrowser = true;
|
||||
DisplayBookmarksToolbar = "never"; # alternatives: "always" or "newtab"
|
||||
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
|
||||
SearchBar = "unified"; # alternative: "separate"
|
||||
FirefoxSuggest = {
|
||||
WebSuggestions = true;
|
||||
ImproveSuggest = true;
|
||||
Locked = true;
|
||||
};
|
||||
SearchSuggestEnabled = true;
|
||||
theme = {
|
||||
colors = {
|
||||
background-darker = "181825";
|
||||
background = "1e1e2e";
|
||||
foreground = "cdd6f4";
|
||||
};
|
||||
};
|
||||
|
||||
font = "Lexend";
|
||||
ExtensionSettings = lib.mkMerge [{
|
||||
"uBlock0@raymondhill.net" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
} cfg.extensions];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -58,8 +58,8 @@ in {
|
|||
sessionVariables = {
|
||||
#QT_STYLE_OVERRIDE = "kvantum";
|
||||
QT_AUTO_SCREEN_SCALE_FACTOR = "1";
|
||||
QT_QPA_PLATFORM = "wayland;xcb";
|
||||
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||||
# QT_QPA_PLATFORM = "wayland;xcb";
|
||||
# QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||||
DISABLE_QT_COMPAT = "0";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -10,90 +10,77 @@ in {
|
|||
config = mkIf cfg.enable {
|
||||
home-manager.users.${username} = {
|
||||
imports = [ inputs.schizofox.homeManagerModule ];
|
||||
|
||||
programs.schizofox = {
|
||||
enable = true;
|
||||
|
||||
theme = {
|
||||
colors.background-darker = "181825";
|
||||
colors.background = "1e1e2e";
|
||||
colors.foreground = "cdd6f4";
|
||||
font = "Lexend";
|
||||
extraUserChrome = ''
|
||||
body {
|
||||
color: red !important;
|
||||
}
|
||||
'';
|
||||
};
|
||||
extensions = {
|
||||
simplefox.enable = false;
|
||||
darkreader.enable = true;
|
||||
colors = {
|
||||
background-darker = "181825";
|
||||
background = "1e1e2e";
|
||||
foreground = "cdd6f4";
|
||||
};
|
||||
|
||||
font = "Lexend";
|
||||
|
||||
extraUserChrome = ''
|
||||
body {
|
||||
color: red !important;
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
search = {
|
||||
defaultSearchEngine = "Brave";
|
||||
removeEngines = ["Google" "Bing" "Amazon.com" "eBay" "Twitter" "Wikipedia"];
|
||||
addEngines = [
|
||||
{
|
||||
Name = "NixOS Packages";
|
||||
Description = "NixOS Unstable package search";
|
||||
Alias = "!np";
|
||||
Method = "GET";
|
||||
URLTemplate = "https://search.nixos.org/packages?channel=unstable&query={searchTerms}";
|
||||
}
|
||||
{
|
||||
Name = "NixOS Options";
|
||||
Description = "NixOS Unstable option search";
|
||||
Alias = "!no";
|
||||
Method = "GET";
|
||||
URLTemplate = "https://search.nixos.org/options?channel=unstable&query={searchTerms}";
|
||||
}
|
||||
{
|
||||
Name = "NixOS Wiki";
|
||||
Description = "NixOS Wiki search";
|
||||
Alias = "!nw";
|
||||
Method = "GET";
|
||||
URLTemplate = "https://nixos.wiki/index.php?search={searchTerms}";
|
||||
}
|
||||
{
|
||||
Name = "Home Manager Options";
|
||||
Description = "Home Manager option search";
|
||||
Alias = "!hm";
|
||||
Method = "GET";
|
||||
URLTemplate = "https://mipmip.github.io/home-manager-option-search?query={searchTerms}";
|
||||
}
|
||||
{
|
||||
Name = "Arch Wiki";
|
||||
Description = "Arch Wiki search";
|
||||
Alias = "!aw";
|
||||
Method = "GET";
|
||||
URLTemplate = "https://wiki.archlinux.org/index.php?search={searchTerms}";
|
||||
}
|
||||
{
|
||||
Name = "Gentoo Wiki";
|
||||
Description = "Gentoo Wiki search";
|
||||
Alias = "!gw";
|
||||
Method = "GET";
|
||||
URLTemplate = "https://wiki.gentoo.org/index.php?search={searchTerms}";
|
||||
}
|
||||
{
|
||||
Name = "Debian Wiki";
|
||||
Description = "Debian Wiki search";
|
||||
Alias = "!dw";
|
||||
Method = "GET";
|
||||
URLTemplate = "https://wiki.debian.org/FrontPage?action=fullsearch&value={searchTerms}";
|
||||
}
|
||||
];
|
||||
defaultSearchEngine = "Brave";
|
||||
removeEngines = ["Google" "Bing" "Amazon.com" "eBay" "Twitter" "Wikipedia"];
|
||||
searxUrl = "https://searx.be";
|
||||
searxQuery = "https://searx.be/search?q={searchTerms}&categories=general";
|
||||
addEngines = [
|
||||
{
|
||||
Name = "NixOS Packages";
|
||||
Description = "NixOS Unstable package serach";
|
||||
Alias = "!np";
|
||||
Method = "GET";
|
||||
URLTemplate = "https://search.nixos.org/packages?channel=unstable&query={searchTerms}";
|
||||
}
|
||||
{
|
||||
Name = "Home Manager Options";
|
||||
Description = "Home Manager option search";
|
||||
Alias = "!hm";
|
||||
Method = "GET";
|
||||
URLTemplate = "https://mipmip.github.io/home-manager-option-search?query={searchTerms}";
|
||||
}
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
security = {
|
||||
sanitizeOnShutdown = true;
|
||||
sandbox = true;
|
||||
userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0";
|
||||
sanitizeOnShutdown = false;
|
||||
sandbox = true;
|
||||
userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0";
|
||||
};
|
||||
|
||||
misc = {
|
||||
drmFix = false;
|
||||
disableWebgl = true;
|
||||
drmFix = true;
|
||||
disableWebgl = false;
|
||||
};
|
||||
|
||||
extensions = {
|
||||
simplefox.enable = true;
|
||||
darkreader.enable = true;
|
||||
|
||||
extraExtensions = {
|
||||
};
|
||||
};
|
||||
|
||||
bookmarks = [
|
||||
{
|
||||
Title = "Example";
|
||||
URL = "https://example.com";
|
||||
Favicon = "https://example.com/favicon.ico";
|
||||
Placement = "toolbar";
|
||||
Folder = "FolderName";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -2,7 +2,7 @@ _: {
|
|||
imports = [
|
||||
./home-manager.nix
|
||||
./system.nix
|
||||
# ./xdg.nix
|
||||
./xdg.nix
|
||||
./displaymanager.nix
|
||||
];
|
||||
}
|
||||
|
|
|
@ -5,9 +5,8 @@
|
|||
username = config.modules.other.system.username;
|
||||
hmCfg = config.home-manager.users.${username};
|
||||
|
||||
primary_browser = "firefox-schizo.desktop";
|
||||
secondary_browser = "firefox-unschizo.desktop";
|
||||
mail_client = "betterbird.desktop";
|
||||
primary_browser = "schizofox.desktop";
|
||||
mail_client = "thunderbird.desktop";
|
||||
file_manager = "pcmanfm.desktop";
|
||||
media_player = "mpv.desktop";
|
||||
image_viewer = "imv.desktop";
|
||||
|
@ -64,7 +63,6 @@ in {
|
|||
|
||||
atexit.register(write_history)
|
||||
'';
|
||||
|
||||
xdg = {
|
||||
cacheHome = "${hmCfg.home.homeDirectory}/.cache";
|
||||
configHome = "${hmCfg.home.homeDirectory}/.config";
|
||||
|
@ -73,11 +71,11 @@ in {
|
|||
mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
"text/html" = [ primary_browser secondary_browser ];
|
||||
"x-scheme-handler/http" = [ primary_browser secondary_browser ];
|
||||
"x-scheme-handler/https" = [ primary_browser secondary_browser ];
|
||||
"x-scheme-handler/about" = [ primary_browser secondary_browser ];
|
||||
"x-scheme-handler/unknown" = [ primary_browser secondary_browser ];
|
||||
"text/html" = [ primary_browser ];
|
||||
"x-scheme-handler/http" = [ primary_browser ];
|
||||
"x-scheme-handler/https" = [ primary_browser ];
|
||||
"x-scheme-handler/about" = [ primary_browser ];
|
||||
"x-scheme-handler/unknown" = [ primary_browser ];
|
||||
"x-scheme-handler/mailto" = [ mail_client ];
|
||||
"message/rfc822" = [ mail_client ];
|
||||
"x-scheme-handler/mid" = [ mail_client ];
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
with lib; let
|
||||
cfg = config.myOptions.programs.ssh;
|
||||
username = config.myOptions.other.system.username;
|
||||
cfg = config.modules.programs.ssh;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
options.myOptions.programs.ssh.enable = mkEnableOption "ssh";
|
||||
options.modules.programs.ssh.enable = mkEnableOption "ssh";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.ssh = {
|
||||
|
|
598
modules/tui/config
Normal file
598
modules/tui/config
Normal file
|
@ -0,0 +1,598 @@
|
|||
##############################################################
|
||||
## This is an example configuration file. Copy it to ##
|
||||
## $XDG_CONFIG_HOME/ncmpcpp/config or $HOME/.ncmpcpp/config ##
|
||||
## and set up your preferences. ##
|
||||
##############################################################
|
||||
#
|
||||
##### directories ######
|
||||
##
|
||||
## Directory for storing ncmpcpp related files. Changing it is useful if you
|
||||
## want to store everything somewhere else and provide command line setting for
|
||||
## alternative location to config file which defines that while launching
|
||||
## ncmpcpp.
|
||||
##
|
||||
#
|
||||
ncmpcpp_directory = ~/.config/ncmpcpp
|
||||
#
|
||||
##
|
||||
## Directory for storing downloaded lyrics. It defaults to ~/.lyrics since other
|
||||
## MPD clients (eg. ncmpc) also use that location.
|
||||
##
|
||||
#
|
||||
#lyrics_directory = ~/.lyrics
|
||||
#
|
||||
##### connection settings #####
|
||||
#
|
||||
#mpd_host = localhost
|
||||
#
|
||||
mpd_port = 6600
|
||||
#
|
||||
mpd_connection_timeout = 5
|
||||
#
|
||||
## Needed for tag editor and file operations to work.
|
||||
##
|
||||
mpd_music_dir = ~/Nextcloud/Media/Music
|
||||
#
|
||||
#mpd_crossfade_time = 5
|
||||
#
|
||||
# Exclude pattern for random song action
|
||||
# http://www.boost.org/doc/libs/1_46_1/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html
|
||||
#random_exclude_pattern = "^(temp|midi_songs).*"
|
||||
#
|
||||
##### music visualizer #####
|
||||
##
|
||||
## In order to make music visualizer work with MPD you need to use the fifo
|
||||
## output. Its format parameter has to be set to 44100:16:1 for mono
|
||||
## visualization or 44100:16:2 for stereo visualization. As an example here is
|
||||
## the relevant section for mpd.conf:
|
||||
##
|
||||
## audio_output {
|
||||
## type "fifo"
|
||||
## name "Visualizer feed"
|
||||
## path "/tmp/mpd.fifo"
|
||||
## format "44100:16:2"
|
||||
## }
|
||||
##
|
||||
## If the visualization on occasion diverges from the audio output, please set
|
||||
## 'buffer_time' parameter of your audio output in mpd.conf to '100000' (100ms)
|
||||
## or less to prevent that from happening.
|
||||
##
|
||||
## Note: If you're using Mopidy, an address of a udpsink gstreamer's output is
|
||||
## also accepted. For example, the following section in mopidy.conf:
|
||||
##
|
||||
## [audio]
|
||||
## output = tee name=t ! queue ! autoaudiosink t.
|
||||
## ! queue ! audio/x-raw,rate=44100,channels=2,format=S16LE
|
||||
## ! udpsink host=localhost port=5555
|
||||
##
|
||||
## will make localhost:5555 available as a source of data for the stereo
|
||||
## visualizer.
|
||||
##
|
||||
#
|
||||
visualizer_data_source = /tmp/mpd.fifo
|
||||
#
|
||||
##
|
||||
## Note: Below parameter is needed for ncmpcpp to determine which output
|
||||
## provides data for visualizer and reset it at the beginning of visualization
|
||||
## to synchronize with audio.
|
||||
##
|
||||
#
|
||||
visualizer_output_name = Visualizer feed
|
||||
#
|
||||
##
|
||||
## If you set format to 44100:16:2, make it 'yes'.
|
||||
##
|
||||
visualizer_in_stereo = yes
|
||||
#
|
||||
##
|
||||
## Note: set below to >=10 only if you have synchronization issues with
|
||||
## visualization and audio.
|
||||
##
|
||||
#
|
||||
visualizer_sync_interval = 0
|
||||
#
|
||||
##
|
||||
## Note: To enable spectrum frequency visualization you need to compile ncmpcpp
|
||||
## with fftw3 support.
|
||||
##
|
||||
#
|
||||
## Available values: spectrum, wave, wave_filled, ellipse.
|
||||
##
|
||||
visualizer_type = wave_filled
|
||||
#
|
||||
visualizer_fps = 60
|
||||
#
|
||||
visualizer_autoscale = no
|
||||
#
|
||||
visualizer_look = ●▮
|
||||
#
|
||||
visualizer_color = blue, cyan, green, yellow, magenta, red
|
||||
#
|
||||
## Alternative subset of 256 colors for terminals that support it.
|
||||
##
|
||||
#visualizer_color = 47, 83, 119, 155, 191, 227, 221, 215, 209, 203, 197, 161
|
||||
#
|
||||
##
|
||||
## Note: The next few visualization options apply to the spectrum visualizer.
|
||||
##
|
||||
#
|
||||
## Use unicode block characters for a smoother, more continuous look.
|
||||
## This will override the visualizer_look option. With transparent terminals
|
||||
## and visualizer_in_stereo set, artifacts may be visible on the bottom half of
|
||||
## the visualization.
|
||||
#
|
||||
visualizer_spectrum_smooth_look = yes
|
||||
#
|
||||
## A value between 1 and 5 inclusive. Specifying a larger value makes the
|
||||
## visualizer look at a larger slice of time, which results in less jumpy
|
||||
## visualizer output.
|
||||
#
|
||||
#visualizer_spectrum_dft_size = 2
|
||||
#
|
||||
#visualizer_spectrum_gain = 10
|
||||
#
|
||||
## Left-most frequency of visualizer in Hz, must be less than HZ MAX
|
||||
#
|
||||
#visualizer_spectrum_hz_min = 20
|
||||
#
|
||||
## Right-most frequency of visualizer in Hz, must be greater than HZ MIN
|
||||
#
|
||||
#visualizer_spectrum_hz_max = 20000
|
||||
#
|
||||
##### system encoding #####
|
||||
##
|
||||
## ncmpcpp should detect your charset encoding but if it failed to do so, you
|
||||
## can specify charset encoding you are using here.
|
||||
##
|
||||
## Note: You can see whether your ncmpcpp build supports charset detection by
|
||||
## checking output of `ncmpcpp --version`.
|
||||
##
|
||||
## Note: Since MPD uses UTF-8 by default, setting this option makes sense only
|
||||
## if your encoding is different.
|
||||
##
|
||||
#
|
||||
#system_encoding = ""
|
||||
#
|
||||
##### delays #####
|
||||
#
|
||||
## Time of inactivity (in seconds) after playlist highlighting will be disabled
|
||||
## (0 = always on).
|
||||
##
|
||||
#playlist_disable_highlight_delay = 5
|
||||
#
|
||||
## Defines how long messages are supposed to be visible.
|
||||
##
|
||||
#message_delay_time = 5
|
||||
#
|
||||
##### song format #####
|
||||
##
|
||||
## For a song format you can use:
|
||||
##
|
||||
## %l - length
|
||||
## %f - filename
|
||||
## %D - directory
|
||||
## %a - artist
|
||||
## %A - album artist
|
||||
## %t - title
|
||||
## %b - album
|
||||
## %y - date
|
||||
## %n - track number (01/12 -> 01)
|
||||
## %N - full track info (01/12 -> 01/12)
|
||||
## %g - genre
|
||||
## %c - composer
|
||||
## %p - performer
|
||||
## %d - disc
|
||||
## %C - comment
|
||||
## %P - priority
|
||||
## $R - begin right alignment
|
||||
##
|
||||
## If you want to make sure that a part of the format is displayed only when
|
||||
## certain tags are present, you can archieve it by grouping them with brackets,
|
||||
## e.g. '{%a - %t}' will be evaluated to 'ARTIST - TITLE' if both tags are
|
||||
## present or '' otherwise. It is also possible to define a list of
|
||||
## alternatives by providing several groups and separating them with '|',
|
||||
## e.g. '{%t}|{%f}' will be evaluated to 'TITLE' or 'FILENAME' if the former is
|
||||
## not present.
|
||||
##
|
||||
## Note: If you want to set limit on maximal length of a tag, just put the
|
||||
## appropriate number between % and character that defines tag type, e.g. to
|
||||
## make album take max. 20 terminal cells, use '%20b'.
|
||||
##
|
||||
## In addition, formats support markers used for text attributes. They are
|
||||
## followed by character '$'. After that you can put:
|
||||
##
|
||||
## - 0 - default window color (discards all other colors)
|
||||
## - 1 - black
|
||||
## - 2 - red
|
||||
## - 3 - green
|
||||
## - 4 - yellow
|
||||
## - 5 - blue
|
||||
## - 6 - magenta
|
||||
## - 7 - cyan
|
||||
## - 8 - white
|
||||
## - 9 - end of current color
|
||||
## - b - bold text
|
||||
## - u - underline text
|
||||
## - r - reverse colors
|
||||
## - a - use alternative character set
|
||||
##
|
||||
## If you don't want to use a non-color attribute anymore, just put it again,
|
||||
## but this time insert character '/' between '$' and attribute character,
|
||||
## e.g. {$b%t$/b}|{$r%f$/r} will display bolded title tag or filename with
|
||||
## reversed colors.
|
||||
##
|
||||
## If you want to use 256 colors and/or background colors in formats (the naming
|
||||
## scheme is described below in section about color definitions), it can be done
|
||||
## with the syntax $(COLOR), e.g. to set the artist tag to one of the
|
||||
## non-standard colors and make it have yellow background, you need to write
|
||||
## $(197_yellow)%a$(end). Note that for standard colors this is interchangable
|
||||
## with attributes listed above.
|
||||
##
|
||||
## Note: colors can be nested.
|
||||
##
|
||||
#
|
||||
#song_list_format = {%a - }{%t}|{$8%f$9}$R{$3%l$9}
|
||||
#
|
||||
#song_status_format = {{%a{ "%b"{ (%y)}} - }{%t}}|{%f}
|
||||
#
|
||||
#song_library_format = {%n - }{%t}|{%f}
|
||||
#
|
||||
#alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b
|
||||
#
|
||||
#alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}
|
||||
#
|
||||
#current_item_prefix = $(yellow)$r
|
||||
#
|
||||
#current_item_suffix = $/r$(end)
|
||||
#
|
||||
#current_item_inactive_column_prefix = $(white)$r
|
||||
#
|
||||
#current_item_inactive_column_suffix = $/r$(end)
|
||||
#
|
||||
#now_playing_prefix = $b
|
||||
#
|
||||
#now_playing_suffix = $/b
|
||||
#
|
||||
#browser_playlist_prefix = "$2playlist$9 "
|
||||
#
|
||||
#selected_item_prefix = $6
|
||||
#
|
||||
#selected_item_suffix = $9
|
||||
#
|
||||
#modified_item_prefix = $3> $9
|
||||
#
|
||||
##
|
||||
## Note: attributes are not supported for the following variables.
|
||||
##
|
||||
#song_window_title_format = {%a - }{%t}|{%f}
|
||||
##
|
||||
## Note: Below variables are used for sorting songs in browser. The sort mode
|
||||
## determines how songs are sorted, and can be used in combination with a sort
|
||||
## format to specify a custom sorting format. Available values for
|
||||
## browser_sort_mode are "type", "name", "mtime", "format" and "none".
|
||||
##
|
||||
#
|
||||
#browser_sort_mode = type
|
||||
#
|
||||
#browser_sort_format = {%a - }{%t}|{%f} {%l}
|
||||
#
|
||||
##### columns settings #####
|
||||
##
|
||||
## syntax of song columns list format is "column column etc."
|
||||
##
|
||||
## - syntax for each column is:
|
||||
##
|
||||
## (width of the column)[color of the column]{displayed tag}
|
||||
##
|
||||
## Note: Width is by default in %, if you want a column to have fixed size, add
|
||||
## 'f' after the value, e.g. (10)[white]{a} will be the column that take 10% of
|
||||
## screen (so the real width will depend on actual screen size), whereas
|
||||
## (10f)[white]{a} will take 10 terminal cells, no matter how wide the screen
|
||||
## is.
|
||||
##
|
||||
## - color is optional (if you want the default one, leave the field empty).
|
||||
##
|
||||
## Note: You can give a column additional attributes by putting appropriate
|
||||
## character after displayed tag character. Available attributes are:
|
||||
##
|
||||
## - r - column will be right aligned
|
||||
## - E - if tag is empty, empty tag marker won't be displayed
|
||||
##
|
||||
## You can also:
|
||||
##
|
||||
## - give a column custom name by putting it after attributes, separated with
|
||||
## character ':', e.g. {lr:Length} gives you right aligned column of lengths
|
||||
## named "Length".
|
||||
##
|
||||
## - define sequence of tags, that have to be displayed in case predecessor is
|
||||
## empty in a way similar to the one in classic song format, i.e. using '|'
|
||||
## character, e.g. {a|c|p:Owner} creates column named "Owner" that tries to
|
||||
## display artist tag and then composer and performer if previous ones are not
|
||||
## available.
|
||||
##
|
||||
#
|
||||
#song_columns_list_format = (20)[]{a} (6f)[green]{NE} (50)[white]{t|f:Title} (20)[cyan]{b} (7f)[magenta]{l}
|
||||
#
|
||||
##### various settings #####
|
||||
#
|
||||
##
|
||||
## Note: Custom command that will be executed each time song changes. Useful for
|
||||
## notifications etc.
|
||||
##
|
||||
#execute_on_song_change = ""
|
||||
#
|
||||
##
|
||||
## Note: Custom command that will be executed each time player state
|
||||
## changes. The environment variable MPD_PLAYER_STATE is set to the current
|
||||
## state (either unknown, play, pause, or stop) for its duration.
|
||||
##
|
||||
#
|
||||
#execute_on_player_state_change = ""
|
||||
#
|
||||
#playlist_show_mpd_host = no
|
||||
#
|
||||
#playlist_show_remaining_time = no
|
||||
#
|
||||
#playlist_shorten_total_times = no
|
||||
#
|
||||
#playlist_separate_albums = no
|
||||
#
|
||||
##
|
||||
## Note: Possible display modes: classic, columns.
|
||||
##
|
||||
#playlist_display_mode = columns
|
||||
#
|
||||
#browser_display_mode = classic
|
||||
#
|
||||
#search_engine_display_mode = classic
|
||||
#
|
||||
#playlist_editor_display_mode = classic
|
||||
#
|
||||
#discard_colors_if_item_is_selected = yes
|
||||
#
|
||||
#show_duplicate_tags = yes
|
||||
#
|
||||
#incremental_seeking = yes
|
||||
#
|
||||
#seek_time = 1
|
||||
#
|
||||
#volume_change_step = 2
|
||||
#
|
||||
#autocenter_mode = no
|
||||
#
|
||||
#centered_cursor = no
|
||||
#
|
||||
##
|
||||
## Note: You can specify third character which will be used to build 'empty'
|
||||
## part of progressbar.
|
||||
##
|
||||
#progressbar_look = =>
|
||||
#
|
||||
## Available values: database, playlist.
|
||||
##
|
||||
#default_place_to_search_in = database
|
||||
#
|
||||
## Available values: classic, alternative.
|
||||
##
|
||||
#user_interface = classic
|
||||
#
|
||||
#data_fetching_delay = yes
|
||||
#
|
||||
## Available values: artist, album_artist, date, genre, composer, performer.
|
||||
##
|
||||
#media_library_primary_tag = artist
|
||||
#
|
||||
#media_library_albums_split_by_date = yes
|
||||
#
|
||||
#media_library_hide_album_dates = no
|
||||
#
|
||||
## Available values: wrapped, normal.
|
||||
##
|
||||
#default_find_mode = wrapped
|
||||
#
|
||||
#default_tag_editor_pattern = %n - %t
|
||||
#
|
||||
#header_visibility = yes
|
||||
#
|
||||
#statusbar_visibility = yes
|
||||
#
|
||||
## Show the "Connected to ..." message on startup
|
||||
#connected_message_on_startup = yes
|
||||
#
|
||||
#titles_visibility = yes
|
||||
#
|
||||
#header_text_scrolling = yes
|
||||
#
|
||||
#cyclic_scrolling = no
|
||||
#
|
||||
#lyrics_fetchers = azlyrics, genius, musixmatch, sing365, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, zeneszoveg, internet
|
||||
#
|
||||
#follow_now_playing_lyrics = no
|
||||
#
|
||||
#fetch_lyrics_for_current_song_in_background = no
|
||||
#
|
||||
#store_lyrics_in_song_dir = no
|
||||
#
|
||||
#generate_win32_compatible_filenames = yes
|
||||
#
|
||||
#allow_for_physical_item_deletion = no
|
||||
#
|
||||
##
|
||||
## Note: If you set this variable, ncmpcpp will try to get info from last.fm in
|
||||
## language you set and if it fails, it will fall back to english. Otherwise it
|
||||
## will use english the first time.
|
||||
##
|
||||
## Note: Language has to be expressed as an ISO 639 alpha-2 code.
|
||||
##
|
||||
#lastfm_preferred_language = en
|
||||
#
|
||||
#space_add_mode = add_remove
|
||||
#
|
||||
#show_hidden_files_in_local_browser = no
|
||||
#
|
||||
##
|
||||
## How shall screen switcher work?
|
||||
##
|
||||
## - "previous" - switch between the current and previous screen.
|
||||
## - "screen1,...,screenN" - switch between given sequence of screens.
|
||||
##
|
||||
## Screens available for use: help, playlist, browser, search_engine,
|
||||
## media_library, playlist_editor, tag_editor, outputs, visualizer, clock,
|
||||
## lyrics, last_fm.
|
||||
##
|
||||
#screen_switcher_mode = playlist, browser
|
||||
#
|
||||
##
|
||||
## Note: You can define startup screen by choosing screen from the list above.
|
||||
##
|
||||
#startup_screen = playlist
|
||||
#
|
||||
##
|
||||
## Note: You can define startup slave screen by choosing screen from the list
|
||||
## above or an empty value for no slave screen.
|
||||
##
|
||||
#startup_slave_screen = ""
|
||||
#
|
||||
#startup_slave_screen_focus = no
|
||||
#
|
||||
##
|
||||
## Default width of locked screen (in %). Acceptable values are from 20 to 80.
|
||||
##
|
||||
#
|
||||
#locked_screen_width_part = 50
|
||||
#
|
||||
#ask_for_locked_screen_width_part = yes
|
||||
#
|
||||
#jump_to_now_playing_song_at_start = yes
|
||||
#
|
||||
#ask_before_clearing_playlists = yes
|
||||
#
|
||||
#clock_display_seconds = no
|
||||
#
|
||||
#display_volume_level = yes
|
||||
#
|
||||
#display_bitrate = no
|
||||
#
|
||||
#display_remaining_time = no
|
||||
#
|
||||
## Available values: none, basic, extended, perl.
|
||||
##
|
||||
#regular_expressions = perl
|
||||
#
|
||||
##
|
||||
## Note: if below is enabled, ncmpcpp will ignore leading "The" word while
|
||||
## sorting items in browser, tags in media library, etc.
|
||||
##
|
||||
#ignore_leading_the = no
|
||||
#
|
||||
##
|
||||
## Note: if below is enabled, ncmpcpp will ignore diacritics while searching and
|
||||
## filtering lists. This takes an effect only if boost was compiled with ICU
|
||||
## support.
|
||||
##
|
||||
#ignore_diacritics = no
|
||||
#
|
||||
#block_search_constraints_change_if_items_found = yes
|
||||
#
|
||||
#mouse_support = yes
|
||||
#
|
||||
#mouse_list_scroll_whole_page = no
|
||||
#
|
||||
#lines_scrolled = 5
|
||||
#
|
||||
#empty_tag_marker = <empty>
|
||||
#
|
||||
#tags_separator = " | "
|
||||
#
|
||||
#tag_editor_extended_numeration = no
|
||||
#
|
||||
#media_library_sort_by_mtime = no
|
||||
#
|
||||
#enable_window_title = yes
|
||||
#
|
||||
##
|
||||
## Note: You can choose default search mode for search engine. Available modes
|
||||
## are:
|
||||
##
|
||||
## - 1 - use mpd built-in searching (no regexes, pattern matching)
|
||||
##
|
||||
## - 2 - use ncmpcpp searching (pattern matching with support for regexes, but
|
||||
## if your mpd is on a remote machine, downloading big database to process
|
||||
## it can take a while
|
||||
##
|
||||
## - 3 - match only exact values (this mode uses mpd function for searching in
|
||||
## database and local one for searching in current playlist)
|
||||
##
|
||||
#
|
||||
#search_engine_default_search_mode = 1
|
||||
#
|
||||
#external_editor = nano
|
||||
#
|
||||
## Note: set to yes if external editor is a console application.
|
||||
##
|
||||
#use_console_editor = yes
|
||||
#
|
||||
##### colors definitions #####
|
||||
##
|
||||
## It is possible to set a background color by setting a color value
|
||||
## "<foreground>_<background>", e.g. red_black will set foregound color to red
|
||||
## and background color to black.
|
||||
##
|
||||
## In addition, for terminals that support 256 colors it is possible to set one
|
||||
## of them by using a number in range [1, 256] instead of color name,
|
||||
## e.g. numerical value corresponding to red_black is 2_1. To find out if the
|
||||
## terminal supports 256 colors, run ncmpcpp and check out the bottom of the
|
||||
## help screen for list of available colors and their numerical values.
|
||||
##
|
||||
## What is more, there are two special values for the background color:
|
||||
## "transparent" and "current". The first one explicitly sets the background to
|
||||
## be transparent, while the second one allows you to preserve current
|
||||
## background color and change only the foreground one. It's used implicitly
|
||||
## when background color is not specified.
|
||||
##
|
||||
## Moreover, it is possible to attach format information to selected color
|
||||
## variables by appending to their end a colon followed by one or more format
|
||||
## flags, e.g. black:b or red:ur. The following variables support this syntax:
|
||||
## visualizer_color, color1, color2, empty_tag_color, volume_color,
|
||||
## state_line_color, state_flags_color, progressbar_color,
|
||||
## progressbar_elapsed_color, player_state_color, statusbar_time_color,
|
||||
## alternative_ui_separator_color.
|
||||
##
|
||||
## Note: due to technical limitations of older ncurses version, if 256 colors
|
||||
## are used there is a possibility that you'll be able to use only colors with
|
||||
## transparent background.
|
||||
#
|
||||
#colors_enabled = yes
|
||||
#
|
||||
#empty_tag_color = cyan
|
||||
#
|
||||
#header_window_color = default
|
||||
#
|
||||
#volume_color = default
|
||||
#
|
||||
#state_line_color = default
|
||||
#
|
||||
#state_flags_color = default:b
|
||||
#
|
||||
#main_window_color = yellow
|
||||
#
|
||||
#color1 = white
|
||||
#
|
||||
#color2 = green
|
||||
#
|
||||
#progressbar_color = black:b
|
||||
#
|
||||
#progressbar_elapsed_color = green:b
|
||||
#
|
||||
#statusbar_color = default
|
||||
#
|
||||
#statusbar_time_color = default:b
|
||||
#
|
||||
#player_state_color = default:b
|
||||
#
|
||||
#alternative_ui_separator_color = black:b
|
||||
#
|
||||
#window_border_color = green
|
||||
#
|
||||
#active_window_border = red
|
||||
#
|
|
@ -4,5 +4,6 @@ _: {
|
|||
# ./helix.nix
|
||||
./neovim.nix
|
||||
# ./newsboat.nix
|
||||
./ncmpcpp.nix
|
||||
];
|
||||
}
|
||||
|
|
18
modules/tui/ncmpcpp.nix
Normal file
18
modules/tui/ncmpcpp.nix
Normal file
|
@ -0,0 +1,18 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
with lib; let
|
||||
cfg = config.modules.programs.ncmpcpp;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
options.modules.programs.ncmpcpp.enable = mkEnableOption "ncmpcpp";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.${username} = {
|
||||
xdg.configFile."ncmpcpp/config".source = ./config;
|
||||
programs.ncmpcpp = {
|
||||
enable = true;
|
||||
mpdMusicDir = "/home/vali/Nextcloud/Media/Music";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
|
@ -1,89 +1,48 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: with lib; let
|
||||
{ config, inputs, lib, pkgs, ... }:
|
||||
with lib; let
|
||||
cfg = config.modules.programs.neovim;
|
||||
username = config.modules.other.system.username;
|
||||
in {
|
||||
options.modules.programs.neovim.enable = mkEnableOption "neovim";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
nixpkgs.overlays = [ inputs.neovim-nightly-overlay.overlay ];
|
||||
|
||||
home-manager.users.${username} = {
|
||||
imports = [ inputs.nixvim.homeManagerModules.nixvim ];
|
||||
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
package = pkgs.neovim-nightly;
|
||||
enableMan = true;
|
||||
defaultEditor = true;
|
||||
|
||||
colorscheme = "catppuccin";
|
||||
colorschemes.catppuccin = {
|
||||
enable = true;
|
||||
flavour = "mocha";
|
||||
transparentBackground = true;
|
||||
};
|
||||
|
||||
opts = {
|
||||
background = "dark";
|
||||
shiftwidth = 4;
|
||||
autoread = true;
|
||||
cmdheight = 1;
|
||||
encoding = "utf8";
|
||||
expandtab = true;
|
||||
hidden = true;
|
||||
ignorecase = true;
|
||||
linebreak = true;
|
||||
mousemoveevent = true;
|
||||
number = true;
|
||||
relativenumber = true;
|
||||
autoread = true;
|
||||
so = 7;
|
||||
cmdheight = 1;
|
||||
ignorecase = true;
|
||||
smartcase = true;
|
||||
showmatch = true;
|
||||
timeoutlen = 500;
|
||||
encoding = "utf8";
|
||||
smarttab = true;
|
||||
shiftwidth = 4;
|
||||
tabstop = 4;
|
||||
expandtab = true;
|
||||
linebreak = true;
|
||||
smartcase = true;
|
||||
smartindent = true;
|
||||
updatetime = 300;
|
||||
hidden = true;
|
||||
background = "dark";
|
||||
mousemoveevent = true;
|
||||
smoothscroll = true;
|
||||
smarttab = true;
|
||||
so = 7;
|
||||
timeoutlen = 500;
|
||||
tabstop = 4;
|
||||
updatetime = 50;
|
||||
};
|
||||
|
||||
globals = {
|
||||
mapleader = " ";
|
||||
};
|
||||
|
||||
keymaps = [
|
||||
{
|
||||
# TODO move this to lua to be cool
|
||||
# action = "vim.cmd { cmd = \"Neotree\", args = { \"toggle\" } }";
|
||||
# lua = true;
|
||||
action = "<CMD>Neotree toggle<CR>";
|
||||
key = "<leader>v";
|
||||
options.silent = true;
|
||||
}
|
||||
{
|
||||
action = "vim.cmd.MarkdownPreviewToggle";
|
||||
lua = true;
|
||||
key = "<leader>m";
|
||||
options.silent = true;
|
||||
}
|
||||
];
|
||||
globals.mapleader = " ";
|
||||
|
||||
plugins = {
|
||||
airline = {
|
||||
enable = false;
|
||||
settings.theme = "catppuccin";
|
||||
};
|
||||
lualine = {
|
||||
enable = true;
|
||||
theme = "catppuccin";
|
||||
};
|
||||
fugitive.enable = true;
|
||||
treesitter = {
|
||||
enable = true;
|
||||
folding = false;
|
||||
|
@ -106,66 +65,7 @@ in {
|
|||
neo-tree = {
|
||||
enable = true;
|
||||
};
|
||||
toggleterm = {
|
||||
enable = true;
|
||||
direction = "float";
|
||||
openMapping = "<C-\\>";
|
||||
shadeTerminals = true;
|
||||
shadingFactor = 2;
|
||||
size = 10;
|
||||
};
|
||||
# TODO laytan/cloak.nvim
|
||||
gitsigns = {
|
||||
enable = true;
|
||||
settings = {
|
||||
current_line_blame = true;
|
||||
numhl = true;
|
||||
signcolumn = true;
|
||||
word_diff = true;
|
||||
on_attach = ''
|
||||
function(bufnr)
|
||||
local gs = package.loaded.gitsigns
|
||||
|
||||
local function map(mode, l, r, opts)
|
||||
opts = opts or {}
|
||||
opts.buffer = bufnr
|
||||
vim.keymap.set(mode, l, r, opts)
|
||||
end
|
||||
|
||||
-- Navigation
|
||||
map('n', ']c', function()
|
||||
if vim.wo.diff then return ']c' end
|
||||
vim.schedule(function() gs.next_hunk() end)
|
||||
return '<Ignore>'
|
||||
end, {expr=true})
|
||||
|
||||
map('n', '[c', function()
|
||||
if vim.wo.diff then return '[c' end
|
||||
vim.schedule(function() gs.prev_hunk() end)
|
||||
return '<Ignore>'
|
||||
end, {expr=true})
|
||||
|
||||
-- Actions
|
||||
map('n', '<leader>hs', gs.stage_hunk)
|
||||
map('n', '<leader>hr', gs.reset_hunk)
|
||||
map('v', '<leader>hs', function() gs.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end)
|
||||
map('v', '<leader>hr', function() gs.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end)
|
||||
map('n', '<leader>hS', gs.stage_buffer)
|
||||
map('n', '<leader>hu', gs.undo_stage_hunk)
|
||||
map('n', '<leader>hR', gs.reset_buffer)
|
||||
map('n', '<leader>hp', gs.preview_hunk)
|
||||
map('n', '<leader>hb', function() gs.blame_line{full=true} end)
|
||||
map('n', '<leader>tb', gs.toggle_current_line_blame)
|
||||
map('n', '<leader>hd', gs.diffthis)
|
||||
map('n', '<leader>hD', function() gs.diffthis('~') end)
|
||||
map('n', '<leader>td', gs.toggle_deleted)
|
||||
|
||||
-- Text object
|
||||
map({'o', 'x'}, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
# TODO laytan/cloak.nvim
|
||||
lsp = {
|
||||
enable = true;
|
||||
servers = {
|
||||
|
@ -181,6 +81,7 @@ in {
|
|||
tsserver.enable = true;
|
||||
java-language-server.enable = true;
|
||||
#pylyzer.enable = true;
|
||||
rnix-lsp.enable = true;
|
||||
};
|
||||
#onAttach = ''
|
||||
# vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||
|
@ -228,7 +129,6 @@ in {
|
|||
showParameterHints = true;
|
||||
};
|
||||
};
|
||||
leap.enable = true;
|
||||
fidget.enable = true;
|
||||
telescope = {
|
||||
enable = true;
|
||||
|
@ -242,7 +142,6 @@ in {
|
|||
keymapsSilent = true;
|
||||
};
|
||||
comment.enable = true;
|
||||
crates-nvim.enable = true;
|
||||
harpoon = {
|
||||
enable = true;
|
||||
package = pkgs.vimPlugins.harpoon.overrideAttrs {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue