mirror of
https://github.com/ItsDrike/nixdots
synced 2024-11-10 02:19:41 +00:00
Compare commits
8 commits
8808ac6be4
...
36db61f255
Author | SHA1 | Date | |
---|---|---|---|
ItsDrike | 36db61f255 | ||
ItsDrike | 05278242fe | ||
ItsDrike | e4c3ae78ff | ||
ItsDrike | 4cf6d51b79 | ||
ItsDrike | ad463e5f3f | ||
ItsDrike | dddbbb869a | ||
ItsDrike | d8513f4cdc | ||
ItsDrike | 9499e8943a |
|
@ -34,6 +34,7 @@ in
|
|||
./programs
|
||||
./impermanence
|
||||
./themes
|
||||
./services
|
||||
];
|
||||
|
||||
config = {
|
||||
|
|
|
@ -11,8 +11,16 @@
|
|||
in {
|
||||
config = mkIf (builtins.elem devType acceptedTypes) {
|
||||
home.packages = with pkgs; [
|
||||
trash-cli
|
||||
bitwarden-cli
|
||||
libnotify # send desktop notifications
|
||||
imagemagick # create/edit images
|
||||
trash-cli # interface to freedesktop trashcan
|
||||
bitwarden-cli # pw manager
|
||||
slides # terminal based presentation tool
|
||||
brightnessctl # brightness control
|
||||
pulsemixer # manage audio (TUI)
|
||||
nix-tree # interactively browse nix store
|
||||
glow # render markdown
|
||||
ffmpeg # record, convert and stream audio and video
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -21,12 +21,15 @@
|
|||
dnsutils # DNS utilities
|
||||
dig # DNS utilities
|
||||
curl # CLI tool for transfering data with URLs
|
||||
lm_sensors # tools for reading hw sensors
|
||||
p7zip # 7zip fork with some improvements
|
||||
|
||||
# Rust replacements
|
||||
procs # better ps
|
||||
ripgrep # better grep
|
||||
fd # better find
|
||||
du-dust # better du
|
||||
skim # fuzzy finder
|
||||
|
||||
# Development
|
||||
gcc # GNU C compiler
|
||||
|
|
|
@ -4,5 +4,7 @@ _: {
|
|||
./stremio.nix
|
||||
./nomacs.nix
|
||||
./qbittorrent.nix
|
||||
./mpv.nix
|
||||
./obs.nix
|
||||
];
|
||||
}
|
||||
|
|
17
home/packages/gui/mpv.nix
Normal file
17
home/packages/gui/mpv.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
osConfig,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkIf;
|
||||
|
||||
cfg = osConfig.myOptions.home-manager.programs.applications.mpv;
|
||||
in {
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
mpv
|
||||
];
|
||||
};
|
||||
}
|
||||
|
19
home/packages/gui/obs.nix
Normal file
19
home/packages/gui/obs.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
osConfig,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkIf;
|
||||
|
||||
cfg = osConfig.myOptions.home-manager.programs.applications.obs;
|
||||
in {
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
obs-studio
|
||||
obs-cli
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -1,43 +1,60 @@
|
|||
# Manage $XDG_CONFIG_HOME/mimeapps.list
|
||||
{
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
associations.added = let
|
||||
xdg.mimeApps = let
|
||||
browser = "firefox.desktop";
|
||||
textEditor = browser; # nvim doesn't work properly with xdg-open, just use the browser
|
||||
fileManager = "pcmanfm-qt.desktop";
|
||||
archiveManager = "org.gnome.FileRoller.desktop";
|
||||
emailClient = browser;
|
||||
pdfViewer = browser; # TODO: consider zathura (org.pwmt.zathura.desktop.desktop)
|
||||
fileManager = "pcmanfm-qt.desktop"; # TODO: change
|
||||
archiveManager = "org.kde.ark.desktop";
|
||||
imageViewer = "org.nomacs.ImageLounge.desktop";
|
||||
videoPlayer = "mpv.desktop";
|
||||
audioPlayer = "mpv.desktop";
|
||||
in {
|
||||
"text/html" = [browser];
|
||||
"x-scheme-handler/http" = [browser];
|
||||
"x-scheme-handler/https" = [browser];
|
||||
"x-scheme-handler/about" = [browser];
|
||||
"x-scheme-handler/unknown" = [browser];
|
||||
"application/x-extension-htm" = [browser];
|
||||
"application/x-extension-html" = [browser];
|
||||
"application/x-extension-shtml" = [browser];
|
||||
"application/xhtml+xml" = [browser];
|
||||
"application/x-extension-xhtml" = [browser];
|
||||
"application/x-extension-xht" = [browser];
|
||||
|
||||
"inode/directory" = [fileManager];
|
||||
"application/zip" = [archiveManager];
|
||||
"application/x-xz-compressed-tar" = [archiveManager];
|
||||
associations = {
|
||||
"text/html" = [browser];
|
||||
"x-scheme-handler/http" = [browser];
|
||||
"x-scheme-handler/https" = [browser];
|
||||
"x-scheme-handler/about" = [browser];
|
||||
"x-scheme-handler/unknown" = [browser];
|
||||
"application/x-extension-htm" = [browser];
|
||||
"application/x-extension-html" = [browser];
|
||||
"application/x-extension-shtml" = [browser];
|
||||
"application/xhtml+xml" = [browser];
|
||||
"application/x-extension-xhtml" = [browser];
|
||||
"application/x-extension-xht" = [browser];
|
||||
|
||||
"image/*" = [imageViewer];
|
||||
"audio/*" = [audioPlayer];
|
||||
"video/*" = [videoPlayer];
|
||||
"application/pdf" = [pdfViewer];
|
||||
"x-scheme-handler/mailto" = [emailClient];
|
||||
|
||||
"text/plain" = [textEditor];
|
||||
"application/json" = [textEditor];
|
||||
"inode/directory" = [fileManager];
|
||||
"application/zip" = [archiveManager];
|
||||
"application/x-xz-compressed-tar" = [archiveManager];
|
||||
|
||||
"x-scheme-handler/spotify" = ["spotify.desktop"];
|
||||
"x-scheme-handler/tg" = ["telegramdesktop.desktop"];
|
||||
"x-scheme-handler/msteams" = ["teams.desktop"]; # I need it for school, don't judge me
|
||||
};
|
||||
"image/*" = [imageViewer];
|
||||
"audio/*" = [audioPlayer];
|
||||
"video/*" = [videoPlayer];
|
||||
|
||||
# The wildcard associations don't work everywhere, so we
|
||||
# still need specific ones
|
||||
"image/jpeg" = [imageViewer];
|
||||
"image/png" = [imageViewer];
|
||||
"image/svg+xml" = [imageViewer];
|
||||
"image/gif" = [imageViewer];
|
||||
"video/mp4" = [videoPlayer];
|
||||
|
||||
"text/plain" = [textEditor];
|
||||
"application/json" = [textEditor];
|
||||
|
||||
"x-scheme-handler/spotify" = ["spotify.desktop"];
|
||||
"x-scheme-handler/tg" = ["telegramdesktop.desktop"];
|
||||
"x-scheme-handler/discord" = ["vesktop.desktop"];
|
||||
"x-scheme-handler/msteams" = ["teams.desktop"]; # I need it for school, don't judge me
|
||||
};
|
||||
in {
|
||||
enable = true;
|
||||
associations.added = associations;
|
||||
defaultApplications = associations;
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
_: {
|
||||
imports = [ ];
|
||||
imports = [
|
||||
./dunst.nix
|
||||
];
|
||||
}
|
||||
|
|
100
home/services/dunst.nix
Normal file
100
home/services/dunst.nix
Normal file
|
@ -0,0 +1,100 @@
|
|||
{
|
||||
lib,
|
||||
osConfig,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkIf;
|
||||
|
||||
cfg = osConfig.myOptions.home-manager.services.dunst;
|
||||
in {
|
||||
config = mkIf cfg.enable {
|
||||
services.dunst = {
|
||||
enable = true;
|
||||
iconTheme = {
|
||||
package = config.gtk.iconTheme.package;
|
||||
name = config.gtk.iconTheme.name;
|
||||
};
|
||||
|
||||
settings = {
|
||||
global = {
|
||||
follow = "mouse";
|
||||
width = 270;
|
||||
height = 300;
|
||||
origin = "top-right";
|
||||
offset = "30x30";
|
||||
scale = 0;
|
||||
alignment = "left";
|
||||
vertical_alignment = "center";
|
||||
ellipsize = "middle";
|
||||
padding = 10;
|
||||
horizontal_padding = 10;
|
||||
text_icon_padding = 0;
|
||||
icon_position = "left";
|
||||
min_icon_size = 0;
|
||||
max_icon_size = 32;
|
||||
separator_height = 2;
|
||||
frame_width = 3;
|
||||
frame_color = "#27292c";
|
||||
separator_color = "frame";
|
||||
corner_radius = 0;
|
||||
transparency = 20;
|
||||
word_wrap = "yes";
|
||||
line_height = 0;
|
||||
notification_limit = 3;
|
||||
idle_threshold = 120;
|
||||
history_length = 20;
|
||||
show_age_threshold = 60;
|
||||
markup = "full";
|
||||
format = "<b>%a - %s</b>\\n%b";
|
||||
font = "JetBrainsMono Nerd Font 11";
|
||||
sort = "yes";
|
||||
shrink = "no";
|
||||
sticky_history = "yes";
|
||||
ignore_newline = "no";
|
||||
show_indicators = "yes";
|
||||
stack_duplicates = true;
|
||||
always_run_script = true;
|
||||
hide_duplicate_count = false;
|
||||
ignore_dbusclose = false;
|
||||
force_xwayland = false;
|
||||
force_xinerama = false;
|
||||
mouse_left_click = "do_action, open_url, close_current";
|
||||
mouse_middle_click = "context";
|
||||
mouse_right_click = "close_current";
|
||||
indicate_hidden = "yes";
|
||||
progress_bar = true;
|
||||
progress_bar_height = 30;
|
||||
progress_bar_frame_width = 1;
|
||||
progress_bar_min_width = 150;
|
||||
progress_bar_max_width = 300;
|
||||
title = "Dunst";
|
||||
class = "Dunst";
|
||||
};
|
||||
|
||||
fullscreen_delay_everything = {fullscreen = "delay";};
|
||||
|
||||
urgency_low = {
|
||||
timeout = 5;
|
||||
background = "#1e2137fa";
|
||||
foreground = "#ffffff";
|
||||
highlight = "#fe6c5a";
|
||||
};
|
||||
|
||||
urgency_normal = {
|
||||
timeout = 10;
|
||||
background = "#141c21fa";
|
||||
foreground = "#ffffffff";
|
||||
highlight = "#fe6c5a";
|
||||
};
|
||||
|
||||
urgency_critical = {
|
||||
timeout = 0;
|
||||
background = "#dd130ddd";
|
||||
foreground = "#ffffffff";
|
||||
highlight = "#fe6c5a";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -70,6 +70,7 @@
|
|||
# Applications
|
||||
".config/spotify"
|
||||
".config/vesktop"
|
||||
"./config/nomacs"
|
||||
".local/share/Smart Code ltd/Stremio"
|
||||
|
||||
# Tools
|
||||
|
@ -173,10 +174,16 @@
|
|||
enable = true;
|
||||
autoStart = true;
|
||||
};
|
||||
mpv.enable = true;
|
||||
nomacs.enable = true;
|
||||
qbittorrent.enable = true;
|
||||
obs.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
dunst.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ in
|
|||
./git.nix
|
||||
./wms.nix
|
||||
./theme.nix
|
||||
./services.nix
|
||||
];
|
||||
|
||||
options.myOptions.home-manager = {
|
||||
|
|
|
@ -35,6 +35,8 @@ in
|
|||
};
|
||||
nomacs.enable = mkEnableOption "Nomacs (Qt-based image viewer)";
|
||||
qbittorrent.enable = mkEnableOption "Qbittorrent (Free software BitTorrent client)";
|
||||
obs.enable = mkEnableOption "OBS (Free and oepn source software for video recording and live streaming)";
|
||||
mpv.enable = mkEnableOption "MPV (General-purpose media player)";
|
||||
};
|
||||
|
||||
tools = {
|
||||
|
|
9
options/home/services.nix
Normal file
9
options/home/services.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{ lib, ... }: with lib; let
|
||||
inherit (lib) mkEnableOption mkOption types;
|
||||
in
|
||||
{
|
||||
options.myOptions.home-manager.services = {
|
||||
dunst.enable = mkEnableOption "Dunst (lightweight notification daemon)";
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in a new issue