Compare commits
26 Commits
3b41645cdf
...
73f957e81d
Author | SHA1 | Date |
---|---|---|
![]() |
73f957e81d | |
![]() |
7e790a58e5 | |
![]() |
d40cab3aba | |
![]() |
f8ba5af5ac | |
![]() |
b2c15706c0 | |
![]() |
bb3deb5f31 | |
![]() |
ac628036a9 | |
![]() |
28eb24c658 | |
![]() |
891fa64466 | |
![]() |
3b071a8118 | |
![]() |
d5c9303003 | |
![]() |
5db7d1f93f | |
![]() |
78766dfaa8 | |
![]() |
3374b35053 | |
![]() |
34bba528b3 | |
![]() |
a91fb54e24 | |
![]() |
e24066e577 | |
![]() |
52c7212155 | |
![]() |
dc77d948e6 | |
![]() |
5f6f793979 | |
![]() |
74e5398ccf | |
![]() |
208eec466e | |
![]() |
964dff4d8c | |
![]() |
48cb8e42e9 | |
![]() |
ba7c0b1d2a | |
![]() |
afcf41fbb5 |
|
@ -22,8 +22,19 @@ in
|
|||
curl
|
||||
dig
|
||||
procps
|
||||
wireguard-tools
|
||||
usbutils
|
||||
pciutils
|
||||
zip
|
||||
unzip
|
||||
|
||||
# TODO: MOVE
|
||||
quickemu
|
||||
pdftk
|
||||
];
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
|
||||
modules = {
|
||||
# Enable base modules
|
||||
clean-tmp.enable = true;
|
||||
|
@ -35,10 +46,11 @@ in
|
|||
};
|
||||
|
||||
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
||||
networking.nameservers = [
|
||||
"9.9.9.9"
|
||||
"149.112.112.112"
|
||||
];
|
||||
# networking.nameservers = [
|
||||
# "9.9.9.9"
|
||||
# "149.112.112.112"
|
||||
# ];
|
||||
networking.firewall.enable = true;
|
||||
programs.dconf.enable = true;
|
||||
services.libinput.enable = true;
|
||||
modules.unfree.enable = true;
|
||||
|
|
|
@ -9,9 +9,15 @@ with lib;
|
|||
let
|
||||
# Nixvim
|
||||
nixvim = import (
|
||||
builtins.fetchGit {
|
||||
url = "https://github.com/nix-community/nixvim";
|
||||
# ref = "nixos-24.05";
|
||||
# builtins.fetchGit {
|
||||
# url = "https://github.com/nix-community/nixvim";
|
||||
# # ref = "nixos-24.05";
|
||||
# }
|
||||
pkgs.fetchFromGitHub {
|
||||
owner = "nix-community";
|
||||
repo = "nixvim";
|
||||
rev = "master";
|
||||
sha256 = "sha256-xPf3jjDBDA9oMVnWU5DJ8gINCq2EPiupvF/4rD/0eEI=";
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -20,8 +26,8 @@ let
|
|||
pkgs.fetchFromGitHub {
|
||||
owner = "danth";
|
||||
repo = "stylix";
|
||||
rev = "1ff9d37d27377bfe8994c24a8d6c6c1734ffa116";
|
||||
sha256 = "0dz8h1ga8lnfvvmvsf6iqvnbvxrvx3qxi0y8s8b72066mqgvy8y5";
|
||||
rev = "master";
|
||||
sha256 = "sha256-8uTKUHkaU980J5kRnLYrdwmjZYB88eBGUk1oVgIUHFE=";
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -84,7 +90,10 @@ in
|
|||
users.users = attrsets.concatMapAttrs (name: value: {
|
||||
${name} = {
|
||||
isNormalUser = true;
|
||||
extraGroups = mkIf value.sudo [ "wheel" ];
|
||||
extraGroups = mkIf value.sudo [
|
||||
"wheel"
|
||||
"docker"
|
||||
];
|
||||
};
|
||||
}) config.machine.users;
|
||||
|
||||
|
|
|
@ -21,9 +21,10 @@ in
|
|||
# Enable NUR
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
# TODO: Pin the version
|
||||
nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") {
|
||||
inherit pkgs;
|
||||
};
|
||||
nur = import (builtins.fetchTarball {
|
||||
url = "https://github.com/nix-community/NUR/archive/master.tar.gz";
|
||||
sha256 = "0jjfvr325imrwg9ic8xha5y38jcp1s0z4pzwhvi0570aigzibbz4";
|
||||
}) { inherit pkgs; };
|
||||
};
|
||||
|
||||
programs.firefox = {
|
||||
|
|
|
@ -20,26 +20,27 @@ in
|
|||
default.browser = mkIf cfg.default "org.qutebrowser.qutebrowser.desktop";
|
||||
|
||||
# TODO: Remove once nixpkgs updates
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
python3 = pkgs.python3.override {
|
||||
packageOverrides = self: super: {
|
||||
pykeepass = super.pykeepass.overrideAttrs (attrs: {
|
||||
version = "4.1.0.post1";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "libkeepass";
|
||||
repo = "pykeepass";
|
||||
rev = "refs/tags/v4.1.0.post1";
|
||||
hash = "sha256-64is/XoRF/kojqd4jQIAQi1od8TRhiv9uR+WNIGvP2A=";
|
||||
};
|
||||
});
|
||||
};
|
||||
};
|
||||
};
|
||||
# nixpkgs.config.packageOverrides = pkgs: {
|
||||
# python3 = pkgs.python3.override {
|
||||
# packageOverrides = self: super: {
|
||||
# pykeepass = super.pykeepass.overrideAttrs (attrs: {
|
||||
# version = "4.1.0.post1";
|
||||
# src = pkgs.fetchFromGitHub {
|
||||
# owner = "libkeepass";
|
||||
# repo = "pykeepass";
|
||||
# rev = "refs/tags/v4.1.0.post1";
|
||||
# hash = "sha256-64is/XoRF/kojqd4jQIAQi1od8TRhiv9uR+WNIGvP2A=";
|
||||
# };
|
||||
# });
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
programs.qutebrowser = {
|
||||
enable = true;
|
||||
|
||||
extraConfig = ''
|
||||
config.set("completion.web_history.max_items", 100)
|
||||
config.set("colors.webpage.darkmode.enabled", False)
|
||||
config.set("colors.webpage.preferred_color_scheme", "${if theme.darkMode then "dark" else "light"}")
|
||||
config.set("fonts.default_family", "${theme.fonts.monospace.name}")
|
||||
|
|
|
@ -0,0 +1,368 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.btop;
|
||||
colors = config.theming.schemeColors;
|
||||
in
|
||||
{
|
||||
options.modules.btop = {
|
||||
enable = mkEnableOption "btop";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [ btop ];
|
||||
|
||||
xdg.configFile."btop/btop.conf" = {
|
||||
enable = true;
|
||||
text = ''
|
||||
#? Config file for btop v. 1.4.0
|
||||
|
||||
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
|
||||
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
|
||||
color_theme = "nixos"
|
||||
|
||||
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
||||
theme_background = True
|
||||
|
||||
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
|
||||
truecolor = True
|
||||
|
||||
#* Set to true to force tty mode regardless if a real tty has been detected or not.
|
||||
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
|
||||
force_tty = False
|
||||
|
||||
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
|
||||
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
|
||||
#* Use whitespace " " as separator between different presets.
|
||||
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
|
||||
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
|
||||
|
||||
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
|
||||
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
|
||||
vim_keys = False
|
||||
|
||||
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
||||
rounded_corners = False
|
||||
|
||||
#* Default symbols to use for graph creation, "braille", "block" or "tty".
|
||||
#* "braille" offers the highest resolution but might not be included in all fonts.
|
||||
#* "block" has half the resolution of braille but uses more common characters.
|
||||
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
|
||||
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
|
||||
graph_symbol = "braille"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_cpu = "default"
|
||||
|
||||
# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_gpu = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_mem = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_net = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_proc = "default"
|
||||
|
||||
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
|
||||
shown_boxes = "cpu net proc mem"
|
||||
|
||||
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
|
||||
update_ms = 500
|
||||
|
||||
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
|
||||
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
|
||||
proc_sorting = "cpu lazy"
|
||||
|
||||
#* Reverse sorting order, True or False.
|
||||
proc_reversed = False
|
||||
|
||||
#* Show processes as a tree.
|
||||
proc_tree = False
|
||||
|
||||
#* Use the cpu graph colors in the process list.
|
||||
proc_colors = True
|
||||
|
||||
#* Use a darkening gradient in the process list.
|
||||
proc_gradient = True
|
||||
|
||||
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
||||
proc_per_core = False
|
||||
|
||||
#* Show process memory as bytes instead of percent.
|
||||
proc_mem_bytes = True
|
||||
|
||||
#* Show cpu graph for each process.
|
||||
proc_cpu_graphs = True
|
||||
|
||||
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
|
||||
proc_info_smaps = False
|
||||
|
||||
#* Show proc box on left side of screen instead of right.
|
||||
proc_left = False
|
||||
|
||||
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
||||
proc_filter_kernel = False
|
||||
|
||||
#* In tree-view, always accumulate child process resources in the parent process.
|
||||
proc_aggregate = False
|
||||
|
||||
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
|
||||
#* Select from a list of detected attributes from the options menu.
|
||||
cpu_graph_upper = "Auto"
|
||||
|
||||
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
|
||||
#* Select from a list of detected attributes from the options menu.
|
||||
cpu_graph_lower = "Auto"
|
||||
|
||||
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
|
||||
show_gpu_info = "Auto"
|
||||
|
||||
#* Toggles if the lower CPU graph should be inverted.
|
||||
cpu_invert_lower = True
|
||||
|
||||
#* Set to True to completely disable the lower CPU graph.
|
||||
cpu_single_graph = False
|
||||
|
||||
#* Show cpu box at bottom of screen instead of top.
|
||||
cpu_bottom = False
|
||||
|
||||
#* Shows the system uptime in the CPU box.
|
||||
show_uptime = True
|
||||
|
||||
#* Show cpu temperature.
|
||||
check_temp = True
|
||||
|
||||
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
|
||||
cpu_sensor = "Auto"
|
||||
|
||||
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
|
||||
show_coretemp = True
|
||||
|
||||
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
|
||||
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
|
||||
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
|
||||
#* Example: "4:0 5:1 6:3"
|
||||
cpu_core_map = ""
|
||||
|
||||
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
|
||||
temp_scale = "celsius"
|
||||
|
||||
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
|
||||
base_10_sizes = False
|
||||
|
||||
#* Show CPU frequency.
|
||||
show_cpu_freq = True
|
||||
|
||||
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
|
||||
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
|
||||
clock_format = "%X"
|
||||
|
||||
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
|
||||
background_update = True
|
||||
|
||||
#* Custom cpu model name, empty string to disable.
|
||||
custom_cpu_name = ""
|
||||
|
||||
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
|
||||
#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
|
||||
disks_filter = ""
|
||||
|
||||
#* Show graphs instead of meters for memory values.
|
||||
mem_graphs = True
|
||||
|
||||
#* Show mem box below net box instead of above.
|
||||
mem_below_net = False
|
||||
|
||||
#* Count ZFS ARC in cached and available memory.
|
||||
zfs_arc_cached = True
|
||||
|
||||
#* If swap memory should be shown in memory box.
|
||||
show_swap = True
|
||||
|
||||
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
||||
swap_disk = True
|
||||
|
||||
#* If mem box should be split to also show disks info.
|
||||
show_disks = True
|
||||
|
||||
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
|
||||
only_physical = True
|
||||
|
||||
#* Read disks list from /etc/fstab. This also disables only_physical.
|
||||
use_fstab = True
|
||||
|
||||
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
|
||||
zfs_hide_datasets = False
|
||||
|
||||
#* Set to true to show available disk space for privileged users.
|
||||
disk_free_priv = False
|
||||
|
||||
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
|
||||
show_io_stat = True
|
||||
|
||||
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
|
||||
io_mode = True
|
||||
|
||||
#* Set to True to show combined read/write io graphs in io mode.
|
||||
io_graph_combined = False
|
||||
|
||||
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
|
||||
#* Example: "/mnt/media:100 /:20 /boot:1".
|
||||
io_graph_speeds = ""
|
||||
|
||||
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
|
||||
net_download = 100
|
||||
|
||||
net_upload = 100
|
||||
|
||||
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
|
||||
net_auto = True
|
||||
|
||||
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
|
||||
net_sync = True
|
||||
|
||||
#* Starts with the Network Interface specified here.
|
||||
net_iface = ""
|
||||
|
||||
#* Show battery stats in top right if battery is present.
|
||||
show_battery = False
|
||||
|
||||
#* Which battery to use if multiple are present. "Auto" for auto detection.
|
||||
selected_battery = "Auto"
|
||||
|
||||
#* Show power stats of battery next to charge indicator.
|
||||
show_battery_watts = True
|
||||
|
||||
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
|
||||
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
|
||||
log_level = "WARNING"
|
||||
|
||||
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
|
||||
nvml_measure_pcie_speeds = True
|
||||
|
||||
#* Horizontally mirror the GPU graph.
|
||||
gpu_mirror_graph = True
|
||||
|
||||
#* Custom gpu0 model name, empty string to disable.
|
||||
custom_gpu_name0 = ""
|
||||
|
||||
#* Custom gpu1 model name, empty string to disable.
|
||||
custom_gpu_name1 = ""
|
||||
|
||||
#* Custom gpu2 model name, empty string to disable.
|
||||
custom_gpu_name2 = ""
|
||||
|
||||
#* Custom gpu3 model name, empty string to disable.
|
||||
custom_gpu_name3 = ""
|
||||
|
||||
#* Custom gpu4 model name, empty string to disable.
|
||||
custom_gpu_name4 = ""
|
||||
|
||||
#* Custom gpu5 model name, empty string to disable.
|
||||
custom_gpu_name5 = ""
|
||||
'';
|
||||
};
|
||||
|
||||
xdg.configFile."btop/themes/nixos.theme" = {
|
||||
enable = true;
|
||||
text = with colors; ''
|
||||
# Main background, empty for terminal default, need to be empty if you want transparent background
|
||||
theme[main_bg]="#${base00}"
|
||||
|
||||
# Main text color
|
||||
theme[main_fg]="#${base05}"
|
||||
|
||||
# Title color for boxes
|
||||
theme[title]="#${base05}"
|
||||
|
||||
# Highlight color for keyboard shortcuts
|
||||
theme[hi_fg]="#${base0D}"
|
||||
|
||||
# Background color of selected item in processes box
|
||||
theme[selected_bg]="#${base03}"
|
||||
|
||||
# Foreground color of selected item in processes box
|
||||
theme[selected_fg]="#${base0D}"
|
||||
|
||||
# Color of inactive/disabled text
|
||||
theme[inactive_fg]="#8c8fa1"
|
||||
|
||||
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
|
||||
theme[graph_text]="#${base06}"
|
||||
|
||||
# Background color of the percentage meters
|
||||
theme[meter_bg]="#${base03}"
|
||||
|
||||
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
||||
theme[proc_misc]="#${base06}"
|
||||
|
||||
# CPU, Memory, Network, Proc box outline colors
|
||||
theme[cpu_box]="#${base0E}" #Mauve
|
||||
theme[mem_box]="#${base0B}" #Green
|
||||
theme[net_box]="#e64553" #Maroon
|
||||
theme[proc_box]="#${colors.base0D}" #Blue
|
||||
|
||||
# Box divider line and small boxes line color
|
||||
theme[div_line]="#9ca0b0"
|
||||
|
||||
# Temperature graph color (Green -> Yellow -> Red)
|
||||
theme[temp_start]="#${base0B}"
|
||||
theme[temp_mid]="#${base0A}"
|
||||
theme[temp_end]="#${base08}"
|
||||
|
||||
# CPU graph colors (Teal -> Lavender)
|
||||
theme[cpu_start]="#${base0C}"
|
||||
theme[cpu_mid]="#209fb5"
|
||||
theme[cpu_end]="#${base07}"
|
||||
|
||||
# Mem/Disk free meter (Mauve -> Lavender -> Blue)
|
||||
theme[free_start]="#${base0E}"
|
||||
theme[free_mid]="#${base07}"
|
||||
theme[free_end]="#${base0D}"
|
||||
|
||||
# Mem/Disk cached meter (Sapphire -> Lavender)
|
||||
theme[cached_start]="#209fb5"
|
||||
theme[cached_mid]="#${base0D}"
|
||||
theme[cached_end]="#${base07}"
|
||||
|
||||
# Mem/Disk available meter (Peach -> Red)
|
||||
theme[available_start]="#${base09}"
|
||||
theme[available_mid]="#e64553"
|
||||
theme[available_end]="#${base08}"
|
||||
|
||||
# Mem/Disk used meter (Green -> Sky)
|
||||
theme[used_start]="#${base0B}"
|
||||
theme[used_mid]="#${base0C}"
|
||||
theme[used_end]="#04a5e5"
|
||||
|
||||
# Download graph colors (Peach -> Red)
|
||||
theme[download_start]="#${base09}"
|
||||
theme[download_mid]="#e64553"
|
||||
theme[download_end]="#${base08}"
|
||||
|
||||
# Upload graph colors (Green -> Sky)
|
||||
theme[upload_start]="#${base0B}"
|
||||
theme[upload_mid]="#${base0C}"
|
||||
theme[upload_end]="#04a5e5"
|
||||
|
||||
# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
|
||||
theme[process_start]="#209fb5"
|
||||
theme[process_mid]="#${base07}"
|
||||
theme[process_end]="#${base0E}"
|
||||
'';
|
||||
};
|
||||
|
||||
modules.shell.aliases = {
|
||||
top = "btop";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,7 +1,4 @@
|
|||
{
|
||||
input,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
|
@ -10,20 +7,29 @@
|
|||
# Import all modules
|
||||
./bluetuith/default.nix
|
||||
./browser/default.nix
|
||||
./btop/default.nix
|
||||
./desktop/default.nix
|
||||
./discord/default.nix
|
||||
./feishin/default.nix
|
||||
./fontconfig/default.nix
|
||||
./git/default.nix
|
||||
./language/cpp.nix
|
||||
./language/haskell.nix
|
||||
./language/js.nix
|
||||
./language/jupyter.nix
|
||||
./language/nix.nix
|
||||
./language/python.nix
|
||||
./language/rust.nix
|
||||
./language/tex.nix
|
||||
./mako/default.nix
|
||||
./neovim/default.nix
|
||||
./obsidian/default.nix
|
||||
./rofi/default.nix
|
||||
./rofi/rofi-rbw.nix
|
||||
./shell/default.nix
|
||||
./shell/bash.nix
|
||||
./shell/fish.nix
|
||||
./spotify/default.nix
|
||||
./steam/default.nix
|
||||
./terminal/default.nix
|
||||
./terminal/foot/default.nix
|
||||
|
|
|
@ -23,6 +23,13 @@ in
|
|||
wpa_supplicant_gui # TODO: Move
|
||||
];
|
||||
|
||||
modules.desktop.reloadScript = ''
|
||||
if ${pkgs.procps}/bin/pgrep waybar; then
|
||||
${pkgs.procps}/bin/pkill waybar
|
||||
fi
|
||||
${pkgs.waybar}/bin/waybar &
|
||||
'';
|
||||
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
|
@ -25,6 +25,11 @@ in
|
|||
default = "${pkgs.bash}/bin/bash";
|
||||
description = "Bash script to execute after logging in.";
|
||||
};
|
||||
reloadScript = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = "Shell script to execute after reload/rebuild.";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
|
@ -34,13 +39,22 @@ in
|
|||
home.packages = optionals cfg.wayland (
|
||||
with pkgs;
|
||||
[
|
||||
pkgs.wl-clipboard
|
||||
pkgs.wtype
|
||||
pkgs.grim
|
||||
pkgs.slurp
|
||||
wl-clipboard
|
||||
wtype
|
||||
grim
|
||||
slurp
|
||||
]
|
||||
);
|
||||
|
||||
home.activation = {
|
||||
customReloadScript = lib.hm.dag.entryAfter [ "writeBoundary" ] (
|
||||
''
|
||||
#!${pkgs.bash}/bin/bash
|
||||
''
|
||||
+ cfg.reloadScript
|
||||
);
|
||||
};
|
||||
|
||||
home.file.".initrc" = {
|
||||
enable = true;
|
||||
executable = true;
|
||||
|
|
|
@ -34,6 +34,10 @@ in
|
|||
river
|
||||
'';
|
||||
|
||||
modules.desktop.reloadScript = ''
|
||||
${pkgs.river}/bin/riverctl background-color 0x${config.theming.colors.bg}
|
||||
'';
|
||||
|
||||
# Update background after rebuild
|
||||
# home.activation = {
|
||||
# river = lib.hm.dag.entryBetween [ "reloadSystemd" ] [ "installPackages" ] ''
|
||||
|
@ -104,7 +108,7 @@ in
|
|||
|
||||
spawn = [
|
||||
"\"${layout} ${layoutOptions}\""
|
||||
"waybar"
|
||||
"waybar" # TODO: Decouple
|
||||
"\"glpaper eDP-1 ${toString config.modules.glpaper.shader}\""
|
||||
];
|
||||
map = (
|
||||
|
|
|
@ -44,9 +44,16 @@ in
|
|||
home.file.".config/fontconfig/conf.d/20-family-fallbacks.conf" = {
|
||||
enable = true;
|
||||
|
||||
# text = ''
|
||||
# <?xml version="1.0"?>
|
||||
# <fontconfig>
|
||||
|
||||
# ${configContent}
|
||||
# </fontconfig>
|
||||
# '';
|
||||
text = ''
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||
<?xml version='1.0'?>
|
||||
<!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
|
||||
<fontconfig>
|
||||
|
||||
${configContent}
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.git;
|
||||
in
|
||||
{
|
||||
options.modules.git = {
|
||||
enable = mkEnableOption "git";
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
description = "Default user name to use.";
|
||||
};
|
||||
|
||||
email = mkOption {
|
||||
type = types.str;
|
||||
description = "Default user email to use.";
|
||||
};
|
||||
|
||||
ignores = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ ];
|
||||
description = "Paths to globally ignore";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
git
|
||||
lazygit
|
||||
];
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
|
||||
extraConfig = {
|
||||
pull = {
|
||||
rebase = false;
|
||||
};
|
||||
};
|
||||
|
||||
userName = cfg.user;
|
||||
userEmail = cfg.email;
|
||||
ignores = cfg.ignores;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.rust;
|
||||
in
|
||||
{
|
||||
options.modules.cpp = {
|
||||
enable = mkEnableOption "cpp";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# Allow unfree
|
||||
modules.unfree.allowedPackages = [
|
||||
"vscode-extension-ms-vscode-cpptools"
|
||||
# TODO: Remove, it should not be here
|
||||
"android-studio-stable"
|
||||
"android-sdk-cmdline-tools"
|
||||
"android-sdk-tools"
|
||||
];
|
||||
|
||||
# Gitignore additions
|
||||
modules.git.ignores = [
|
||||
".ccls-cache"
|
||||
];
|
||||
|
||||
# Development packages
|
||||
home.packages = with pkgs; [
|
||||
gnumake
|
||||
];
|
||||
|
||||
# VSCode configuration
|
||||
programs.vscode = {
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
ms-vscode.cpptools
|
||||
ms-vscode.cmake-tools
|
||||
];
|
||||
|
||||
userSettings = {
|
||||
# "C_Cpp.clang_format_fallbackStyle" = "{ BasedOnStyle: Google, IndentWidth: 4 }";
|
||||
};
|
||||
};
|
||||
|
||||
# Neovim configuration
|
||||
programs.nixvim = {
|
||||
plugins.lsp.servers.ccls.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.js;
|
||||
in
|
||||
{
|
||||
options.modules.js = {
|
||||
enable = mkEnableOption "js";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# Development packages
|
||||
home.packages = with pkgs; [
|
||||
nodejs
|
||||
tailwindcss
|
||||
];
|
||||
|
||||
# VSCode configuration
|
||||
programs.vscode = {
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
bradlc.vscode-tailwindcss
|
||||
];
|
||||
|
||||
userSettings = { };
|
||||
};
|
||||
|
||||
# Neovim configuration
|
||||
programs.nixvim = { };
|
||||
};
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.jupyter;
|
||||
in
|
||||
{
|
||||
options.modules.jupyter = {
|
||||
enable = mkEnableOption "jupyter";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# Development packages
|
||||
home.packages = with pkgs; [ ];
|
||||
|
||||
modules.python.extraPythonPackages = p: [
|
||||
p.jupyter
|
||||
p.notebook
|
||||
];
|
||||
|
||||
# VSCode configuration
|
||||
programs.vscode = {
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
ms-toolsai.jupyter
|
||||
ms-toolsai.jupyter-renderers
|
||||
];
|
||||
|
||||
userSettings = { };
|
||||
};
|
||||
|
||||
# Neovim configuration
|
||||
programs.nixvim = { };
|
||||
};
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.python;
|
||||
package = pkgs.python3.withPackages cfg.extraPythonPackages;
|
||||
in
|
||||
{
|
||||
options.modules.python = {
|
||||
enable = mkEnableOption "python";
|
||||
extraPythonPackages = mkOption {
|
||||
type = types.functionTo (types.listOf types.package) // {
|
||||
merge =
|
||||
loc: defs: p:
|
||||
lib.concatMap (def: (def.value p)) defs;
|
||||
};
|
||||
default = p: [ ];
|
||||
description = "Extra Python packages to install";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# Development packages
|
||||
home.packages = [
|
||||
package
|
||||
];
|
||||
|
||||
# Allow unfree
|
||||
modules.unfree.allowedPackages = [
|
||||
"vscode-extension-MS-python-vscode-pylance"
|
||||
];
|
||||
|
||||
# VSCode configuration
|
||||
programs.vscode = {
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
ms-python.python
|
||||
ms-python.debugpy
|
||||
ms-python.vscode-pylance
|
||||
];
|
||||
|
||||
userSettings = {
|
||||
"[python]" = {
|
||||
"editor.defaultFormatter" = "ms-python.vscode-pylance";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Neovim configuration
|
||||
programs.nixvim = { };
|
||||
};
|
||||
}
|
|
@ -22,6 +22,7 @@ in
|
|||
# cargo
|
||||
gcc
|
||||
lldb
|
||||
bacon
|
||||
# rust-analyzer
|
||||
# rustfmt
|
||||
# clippy
|
||||
|
@ -47,7 +48,7 @@ in
|
|||
|
||||
# Neovim configuration
|
||||
programs.nixvim = {
|
||||
plugins.rust-tools = {
|
||||
plugins.rustaceanvim = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.tex;
|
||||
in
|
||||
{
|
||||
options.modules.tex = {
|
||||
enable = mkEnableOption "tex";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# Development packages
|
||||
home.packages = with pkgs; [
|
||||
(texlive.combine {
|
||||
inherit (texlive) scheme-full;
|
||||
})
|
||||
];
|
||||
|
||||
# Pygments for minted
|
||||
modules.python.extraPythonPackages = p: [
|
||||
p.pygments
|
||||
];
|
||||
|
||||
# VSCode configuration
|
||||
programs.vscode = {
|
||||
extensions = with pkgs.vscode-extensions; [ jnoortheen.nix-ide ];
|
||||
|
||||
userSettings = {
|
||||
"[tex]" = { };
|
||||
};
|
||||
};
|
||||
|
||||
# Neovim configuration
|
||||
programs.nixvim = {
|
||||
extraConfigVim = ''
|
||||
" Enforce latexmk
|
||||
let g:vimtex_compiler_method = 'latexmk'
|
||||
|
||||
" Set latexmk compilation settings
|
||||
let g:vimtex_compiler_latexmk = {
|
||||
\ 'options': [
|
||||
\ '-shell-escape',
|
||||
\ '-verbose',
|
||||
\ '-file-line-error',
|
||||
\ '-synctex=1',
|
||||
\ '-interaction=nonstopmode',
|
||||
\ ],
|
||||
\}
|
||||
'';
|
||||
|
||||
# Vimtex plugin
|
||||
plugins.vimtex = {
|
||||
enable = true;
|
||||
texlivePackage = null;
|
||||
settings = {
|
||||
view_method = "zathura";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -136,6 +136,10 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
plugins.web-devicons = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
plugins.neo-tree = {
|
||||
enable = true;
|
||||
|
||||
|
@ -174,13 +178,13 @@ in
|
|||
# enable = true;
|
||||
#};
|
||||
|
||||
plugins.vimtex = {
|
||||
enable = true;
|
||||
texlivePackage = null;
|
||||
settings = {
|
||||
view_method = "zathura";
|
||||
};
|
||||
};
|
||||
# plugins.vimtex = {
|
||||
# enable = true;
|
||||
# texlivePackage = null;
|
||||
# settings = {
|
||||
# view_method = "zathura";
|
||||
# };
|
||||
# };
|
||||
};
|
||||
programs.neovim.defaultEditor = true;
|
||||
};
|
||||
|
|
|
@ -14,5 +14,9 @@ in
|
|||
enable = mkEnableOption "bash";
|
||||
};
|
||||
|
||||
config.programs.bash.enable = cfg.enable;
|
||||
config.programs.bash = {
|
||||
enable = cfg.enable;
|
||||
|
||||
shellAliases = config.modules.shell.aliases;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
{
|
||||
options.modules.shell = {
|
||||
aliases = mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
default = {
|
||||
"..." = "cd ../..";
|
||||
};
|
||||
description = "Shell aliases";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -36,6 +36,8 @@ in
|
|||
programs.fish = {
|
||||
enable = true;
|
||||
|
||||
shellAliases = config.modules.shell.aliases;
|
||||
|
||||
plugins = [
|
||||
(mkIf cfg.plugins.done {
|
||||
name = "done";
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.spotify;
|
||||
in
|
||||
{
|
||||
options.modules.spotify.enable = mkEnableOption "spotify";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
modules.unfree.allowedPackages = [
|
||||
"spotify"
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
spotify
|
||||
];
|
||||
};
|
||||
}
|
|
@ -10,4 +10,4 @@ with lib;
|
|||
options.modules.steam = {
|
||||
enable = mkEnableOption "steam";
|
||||
};
|
||||
}
|
||||
}
|
|
@ -10,5 +10,13 @@ let
|
|||
enabled = any (user: user.modules.steam.enable) (attrValues config.home-manager.users);
|
||||
in
|
||||
{
|
||||
config = mkIf enabled { programs.steam.enable = true; };
|
||||
config = mkIf enabled {
|
||||
modules.unfree.allowedPackages = [
|
||||
"steam"
|
||||
"steam-original"
|
||||
"steam-unwrapped"
|
||||
];
|
||||
|
||||
programs.steam.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -9,14 +9,6 @@ with lib;
|
|||
let
|
||||
cfg = config.theming;
|
||||
|
||||
# Stylix
|
||||
stylix = pkgs.fetchFromGitHub {
|
||||
owner = "danth";
|
||||
repo = "stylix";
|
||||
rev = "1ff9d37d27377bfe8994c24a8d6c6c1734ffa116";
|
||||
sha256 = "0dz8h1ga8lnfvvmvsf6iqvnbvxrvx3qxi0y8s8b72066mqgvy8y5";
|
||||
};
|
||||
|
||||
# Font module type
|
||||
fontModule = types.submodule {
|
||||
options = {
|
||||
|
@ -311,6 +303,9 @@ in
|
|||
enable = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
modules.git.ignores = [
|
||||
".direnv"
|
||||
];
|
||||
|
||||
# TODO: Make cursors configurable using modules.
|
||||
home.pointerCursor = {
|
||||
|
|
|
@ -28,6 +28,7 @@ in
|
|||
"vscode"
|
||||
"vscode-extension-github-copilot"
|
||||
"vscode-extension-github-copilot-chat"
|
||||
"vscode-extension-ms-vsliveshare-vsliveshare"
|
||||
];
|
||||
|
||||
theming.fonts.extraFonts = [ cfg.codeFont ];
|
||||
|
@ -44,6 +45,9 @@ in
|
|||
gruntfuggly.todo-tree
|
||||
github.copilot
|
||||
github.copilot-chat
|
||||
tomoki1207.pdf
|
||||
ms-vsliveshare.vsliveshare
|
||||
ms-azuretools.vscode-docker
|
||||
];
|
||||
|
||||
userSettings = {
|
||||
|
@ -61,6 +65,10 @@ in
|
|||
|
||||
# Layout
|
||||
"window.menuBarVisibility" = "hidden";
|
||||
|
||||
# Git settings
|
||||
"git.autofetch" = true;
|
||||
"git.enableSmartCommit" = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
let
|
||||
cfg = config.modules.zathura;
|
||||
colors = config.theming.colors;
|
||||
in
|
||||
{
|
||||
options.modules.zathura.enable = lib.mkEnableOption "zathura";
|
||||
|
@ -17,6 +18,18 @@ in
|
|||
|
||||
options = {
|
||||
guioptions = "none";
|
||||
recolor = true;
|
||||
recolor-keephue = false;
|
||||
recolor-darkcolor = lib.mkForce "#${colors.accent}";
|
||||
recolor-lightcolor = lib.mkForce "#${colors.bg}";
|
||||
};
|
||||
};
|
||||
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
|
||||
defaultApplications = {
|
||||
"application/pdf" = "zathura";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
linux-pam,
|
||||
rustPlatform,
|
||||
testers,
|
||||
lemurs,
|
||||
pkgs,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "jellyfin-tui";
|
||||
version = "1.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dhonus";
|
||||
repo = "jellyfin-tui";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-jHjTckdyPMJO1INF1AdJvvWTJ0ZJJGOxkBc0YZx9HWI=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-H6JTupGh1ec6/RIkoAPMl2agNSbF9B5CuJlxDNEwDc4=";
|
||||
|
||||
buildInputs = with pkgs; [
|
||||
mpv
|
||||
];
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
pkg-config
|
||||
openssl
|
||||
openssl.dev
|
||||
];
|
||||
|
||||
desktopItems =
|
||||
let
|
||||
desktopEntry = pkgs.makeDesktopItem {
|
||||
name = "siyuan";
|
||||
desktopName = "SiYuan";
|
||||
comment = "Refactor your thinking";
|
||||
terminal = true;
|
||||
exec = "jellyfin-tui";
|
||||
};
|
||||
in
|
||||
[
|
||||
desktopEntry
|
||||
];
|
||||
|
||||
PKG_CONFIG_PATH = "${pkgs.openssl.dev}/lib/pkgconfig";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Jellyfin TUI music client written in Rust";
|
||||
homepage = "https://github.com/dhonus/jellyfin-tui";
|
||||
license = with licenses; [
|
||||
gpl3
|
||||
];
|
||||
maintainers = with maintainers; [ ];
|
||||
mainProgram = "jellyfin-tui";
|
||||
};
|
||||
}
|
|
@ -1,15 +1,18 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
{
|
||||
nixpkgs.config.packageOverrides = pkgs: rec {
|
||||
wqy-zenhei = pkgs.callPackage ./fonts/wqy-zenhei.nix { };
|
||||
wqy-microhei = pkgs.callPackage ./fonts/wqy-microhei.nix { };
|
||||
wqy-bitmapsong = pkgs.callPackage ./fonts/wqy-bitmapsong.nix { };
|
||||
nixpkgs.config = {
|
||||
android_sdk.accept_license = true;
|
||||
packageOverrides = pkgs: {
|
||||
dina-vector = pkgs.callPackage ./fonts/dina-vector.nix { };
|
||||
wqy-zenhei = pkgs.callPackage ./fonts/wqy-zenhei.nix { };
|
||||
wqy-microhei = pkgs.callPackage ./fonts/wqy-microhei.nix { };
|
||||
wqy-bitmapsong = pkgs.callPackage ./fonts/wqy-bitmapsong.nix { };
|
||||
temp-quickgui = pkgs.callPackage ./temp/quickgui.nix { };
|
||||
# qutebrowser = pkgs.callPackage ./fixes/qutebrowser/default.nix { };
|
||||
jellyfin-tui = pkgs.callPackage ./custom/jellyfin-tui.nix { };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -0,0 +1,167 @@
|
|||
{
|
||||
pkgs,
|
||||
stdenv,
|
||||
lib,
|
||||
fetchurl,
|
||||
fetchzip,
|
||||
python3,
|
||||
glib-networking,
|
||||
asciidoc,
|
||||
docbook_xml_dtd_45,
|
||||
docbook_xsl,
|
||||
libxml2,
|
||||
libxslt,
|
||||
withPdfReader ? true,
|
||||
pipewireSupport ? stdenv.hostPlatform.isLinux,
|
||||
pipewire,
|
||||
enableWideVine ? false,
|
||||
widevine-cdm,
|
||||
# can cause issues on some graphics chips
|
||||
enableVulkan ? false,
|
||||
vulkan-loader,
|
||||
}:
|
||||
|
||||
let
|
||||
# Load in Qt packages.
|
||||
qtbase = pkgs.kdePackages.qtbase;
|
||||
qtwebengine = pkgs.kdePackages.qtwebengine;
|
||||
qtwayland = pkgs.kdePackages.qtwayland;
|
||||
wrapQtAppsHook = pkgs.kdePackages.wrapQtAppsHook;
|
||||
|
||||
isQt6 = lib.versions.major qtbase.version == "6";
|
||||
pdfjs =
|
||||
let
|
||||
version = "4.2.67";
|
||||
in
|
||||
fetchzip {
|
||||
url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/pdfjs-${version}-dist.zip";
|
||||
hash = "sha256-7kfT3+ZwoGqZ5OwkO9h3DIuBFd0v8fRlcufxoBdcy8c=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
version = "3.2.1";
|
||||
in
|
||||
|
||||
python3.pkgs.buildPythonApplication {
|
||||
pname = "qutebrowser" + lib.optionalString (!isQt6) "-qt5";
|
||||
inherit version;
|
||||
src = fetchurl {
|
||||
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/qutebrowser-${version}.tar.gz";
|
||||
hash = "sha256-AqevKmxds42HsiWwuEEsgNmDgzXzLQ6KOPbX+804iX0=";
|
||||
};
|
||||
|
||||
# Needs tox
|
||||
doCheck = false;
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
qtbase
|
||||
glib-networking
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
qtwayland
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
wrapQtAppsHook
|
||||
asciidoc
|
||||
docbook_xml_dtd_45
|
||||
docbook_xsl
|
||||
libxml2
|
||||
libxslt
|
||||
];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
colorama
|
||||
pyyaml
|
||||
(if isQt6 then pyqt6-webengine else pyqtwebengine)
|
||||
jinja2
|
||||
pygments
|
||||
# scripts and userscripts libs
|
||||
tldextract
|
||||
beautifulsoup4
|
||||
readability-lxml
|
||||
pykeepass
|
||||
stem
|
||||
pynacl
|
||||
# extensive ad blocking
|
||||
adblock
|
||||
# for the qute-bitwarden user script to be able to copy the TOTP token to clipboard
|
||||
pyperclip
|
||||
];
|
||||
|
||||
patches = [
|
||||
./fix-restart.patch
|
||||
];
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
postPatch =
|
||||
''
|
||||
substituteInPlace qutebrowser/misc/quitter.py --subst-var-by qutebrowser "$out/bin/qutebrowser"
|
||||
|
||||
sed -i "s,/usr,$out,g" qutebrowser/utils/standarddir.py
|
||||
''
|
||||
+ lib.optionalString withPdfReader ''
|
||||
sed -i "s,/usr/share/pdf.js,${pdfjs},g" qutebrowser/browser/pdfjs.py
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
make -f misc/Makefile \
|
||||
PYTHON=${(python3.pythonOnBuildForHost.withPackages (ps: with ps; [ setuptools ])).interpreter} \
|
||||
PREFIX=. \
|
||||
DESTDIR="$out" \
|
||||
DATAROOTDIR=/share \
|
||||
install
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
# Patch python scripts
|
||||
buildPythonPath "$out $propagatedBuildInputs"
|
||||
scripts=$(grep -rl python "$out"/share/qutebrowser/{user,}scripts/)
|
||||
for i in $scripts; do
|
||||
patchPythonScript "$i"
|
||||
done
|
||||
'';
|
||||
|
||||
preFixup =
|
||||
let
|
||||
libPath = lib.makeLibraryPath [ pipewire ];
|
||||
in
|
||||
''
|
||||
makeWrapperArgs+=(
|
||||
# Force the app to use QT_PLUGIN_PATH values from wrapper
|
||||
--unset QT_PLUGIN_PATH
|
||||
"''${qtWrapperArgs[@]}"
|
||||
# avoid persistant warning on starup
|
||||
--set QT_STYLE_OVERRIDE Fusion
|
||||
${lib.optionalString pipewireSupport ''--prefix LD_LIBRARY_PATH : ${libPath}''}
|
||||
${lib.optionalString (enableVulkan) ''
|
||||
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ vulkan-loader ]}
|
||||
--set-default QSG_RHI_BACKEND vulkan
|
||||
''}
|
||||
${lib.optionalString enableWideVine ''--add-flags "--qt-flag widevine-path=${widevine-cdm}/share/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so"''}
|
||||
--set QTWEBENGINE_RESOURCES_PATH "${qtwebengine}/resources"
|
||||
)
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/qutebrowser/qutebrowser";
|
||||
changelog = "https://github.com/qutebrowser/qutebrowser/blob/v${version}/doc/changelog.asciidoc";
|
||||
description = "Keyboard-focused browser with a minimal GUI";
|
||||
license = licenses.gpl3Plus;
|
||||
mainProgram = "qutebrowser";
|
||||
platforms = if enableWideVine then [ "x86_64-linux" ] else qtwebengine.meta.platforms;
|
||||
maintainers = with maintainers; [
|
||||
jagajaga
|
||||
rnhmjoj
|
||||
ebzzry
|
||||
dotlambda
|
||||
nrdxp
|
||||
];
|
||||
};
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
diff --git a/quitter.py b/quitter.py
|
||||
index a42b9d0..f544ccb 100644
|
||||
--- a/qutebrowser/misc/quitter.py
|
||||
+++ b/qutebrowser/misc/quitter.py
|
||||
@@ -112,13 +112,7 @@ class Quitter(QObject):
|
||||
Return:
|
||||
The commandline as a list of strings.
|
||||
"""
|
||||
- if os.path.basename(sys.argv[0]) == 'qutebrowser':
|
||||
- # Launched via launcher script
|
||||
- args = [sys.argv[0]]
|
||||
- elif hasattr(sys, 'frozen'):
|
||||
- args = [sys.executable]
|
||||
- else:
|
||||
- args = [sys.executable, '-m', 'qutebrowser']
|
||||
+ args = ['@qutebrowser@']
|
||||
|
||||
# Add all open pages so they get reopened.
|
||||
page_args = [] # type: typing.MutableSequence[str]
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
pkgs.stdenv.mkDerivation {
|
||||
pname = "dina-font";
|
||||
version = "1.0.0";
|
||||
|
||||
# src = pkgs.fetchurl {
|
||||
# url = "mirror://sourceforge/wqy/${pname}-${version}.tar.gz";
|
||||
# # hash = "sha256-r2Vf7ftJCqu7jOc2AqCKaoR/r8eNw2P/OQGqbDOEyl0=";
|
||||
# hash = "sha256-0uvwkRUbvJ0remTnlP8dElRjaBVd6iukNYBTE/CTO7s=";
|
||||
# };
|
||||
|
||||
unpackPhase = "true";
|
||||
|
||||
buildInputs = [
|
||||
pkgs.fontforge
|
||||
pkgs.dina-font
|
||||
pkgs.wqy-bitmapsong
|
||||
pkgs.tree
|
||||
];
|
||||
buildPhase = ''
|
||||
tree > debug.txt
|
||||
'';
|
||||
installPhase = ''
|
||||
install -Dm644 $out/debug.txt
|
||||
'';
|
||||
}
|
|
@ -11,7 +11,7 @@ pkgs.stdenv.mkDerivation rec {
|
|||
|
||||
src = pkgs.fetchurl {
|
||||
url = "mirror://sourceforge/wqy/${pname}-${version}.tar.gz";
|
||||
#hash = "sha256-r2Vf7ftJCqu7jOc2AqCKaoR/r8eNw2P/OQGqbDOEyl0=";
|
||||
# hash = "sha256-r2Vf7ftJCqu7jOc2AqCKaoR/r8eNw2P/OQGqbDOEyl0=";
|
||||
hash = "sha256-0uvwkRUbvJ0remTnlP8dElRjaBVd6iukNYBTE/CTO7s=";
|
||||
};
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,70 @@
|
|||
{
|
||||
fetchFromGitHub,
|
||||
makeDesktopItem,
|
||||
copyDesktopItems,
|
||||
lib,
|
||||
flutter,
|
||||
quickemu,
|
||||
zenity,
|
||||
}:
|
||||
flutter.buildFlutterApplication rec {
|
||||
pname = "quickgui";
|
||||
version = "1.2.10";
|
||||
src = fetchFromGitHub {
|
||||
owner = "quickemu-project";
|
||||
repo = "quickgui";
|
||||
rev = version;
|
||||
hash = "sha256-M2Qy66RqsjXg7ZpHwaXCN8qXRIsisnIyaENx3KqmUfQ=";
|
||||
};
|
||||
|
||||
pubspecLock = lib.importJSON ./pubspec.lock.json;
|
||||
|
||||
gitHashes = {
|
||||
window_size = "sha256-XelNtp7tpZ91QCEcvewVphNUtgQX7xrp5QP0oFo6DgM=";
|
||||
};
|
||||
|
||||
extraWrapProgramArgs = "--prefix PATH : ${
|
||||
lib.makeBinPath [
|
||||
quickemu
|
||||
zenity
|
||||
]
|
||||
}";
|
||||
|
||||
nativeBuildInputs = [
|
||||
copyDesktopItems
|
||||
];
|
||||
|
||||
postFixup = ''
|
||||
for SIZE in 16 32 48 64 128 256 512; do
|
||||
mkdir -p $out/share/icons/hicolor/$SIZEx$SIZE/apps/
|
||||
cp -av assets/resources/quickgui_$SIZE.png $out/share/icons/hicolor/$SIZEx$SIZE/apps/quickgui.png
|
||||
done
|
||||
'';
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "quickgui";
|
||||
exec = "quickgui";
|
||||
icon = "quickgui";
|
||||
desktopName = "Quickgui";
|
||||
comment = "An elegant virtual machine manager for the desktop";
|
||||
categories = [
|
||||
"Development"
|
||||
"System"
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Elegant virtual machine manager for the desktop";
|
||||
homepage = "https://github.com/quickemu-project/quickgui";
|
||||
changelog = "https://github.com/quickemu-project/quickgui/releases/";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [
|
||||
flexiondotorg
|
||||
heyimnova
|
||||
];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
mainProgram = "quickgui";
|
||||
};
|
||||
}
|
100
users/jan.nix
100
users/jan.nix
|
@ -8,43 +8,97 @@
|
|||
home.stateVersion = "24.05";
|
||||
|
||||
# TODO: Move into modules
|
||||
home.packages = with pkgs; [ libreoffice-fresh ];
|
||||
home.packages = with pkgs; [
|
||||
libreoffice-still
|
||||
remmina
|
||||
# dina-vector
|
||||
android-studio
|
||||
docker
|
||||
docker-compose
|
||||
jellyfin-tui
|
||||
pinentry
|
||||
thunderbird
|
||||
signal-desktop
|
||||
];
|
||||
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
mutableKeys = true;
|
||||
mutableTrust = true;
|
||||
};
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
enableSshSupport = true;
|
||||
};
|
||||
|
||||
# Enabled modules
|
||||
modules = {
|
||||
# Theming
|
||||
theming.enable = true;
|
||||
|
||||
# Window manager
|
||||
river.enable = true;
|
||||
waylock.enable = true;
|
||||
waybar.enable = true;
|
||||
glpaper.enable = true;
|
||||
glpaper.enable = false;
|
||||
|
||||
# Theming
|
||||
theming.enable = true;
|
||||
|
||||
# Programs
|
||||
feishin.enable = true;
|
||||
firefox.enable = true;
|
||||
foot.enable = true;
|
||||
# Desktop environment
|
||||
mako.enable = true;
|
||||
vscode.enable = true;
|
||||
zathura.enable = true;
|
||||
fish.enable = true;
|
||||
foot.enable = true;
|
||||
|
||||
# Communication
|
||||
whatsapp.enable = true;
|
||||
winbox.enable = true;
|
||||
discord.enable = true;
|
||||
qutebrowser = {
|
||||
|
||||
# Browser
|
||||
firefox = {
|
||||
enable = true;
|
||||
default = true;
|
||||
};
|
||||
neovim.enable = true;
|
||||
rofi-rbw.enable = true;
|
||||
obsidian.enable = true;
|
||||
bluetuith.enable = true;
|
||||
qutebrowser = {
|
||||
enable = true;
|
||||
default = false;
|
||||
};
|
||||
|
||||
# Programming languages
|
||||
haskell.enable = true;
|
||||
# Gaming
|
||||
steam.enable = true;
|
||||
|
||||
# Media
|
||||
spotify.enable = true;
|
||||
feishin.enable = true;
|
||||
|
||||
# Tools
|
||||
rofi-rbw.enable = true;
|
||||
git = {
|
||||
enable = true;
|
||||
user = "Jan-Bulthuis";
|
||||
email = "git@bulthuis.dev";
|
||||
};
|
||||
btop.enable = true;
|
||||
fish.enable = true;
|
||||
bluetuith.enable = false;
|
||||
winbox.enable = true;
|
||||
obsidian.enable = true;
|
||||
zathura.enable = true;
|
||||
|
||||
# Development
|
||||
neovim.enable = true;
|
||||
vscode.enable = true;
|
||||
|
||||
# Languages
|
||||
haskell.enable = false;
|
||||
js.enable = true;
|
||||
nix.enable = true;
|
||||
rust.enable = true;
|
||||
python.enable = true;
|
||||
cpp.enable = true;
|
||||
tex.enable = true;
|
||||
jupyter.enable = true;
|
||||
python.extraPythonPackages = p: [
|
||||
p.scikit-learn
|
||||
p.numpy
|
||||
p.matplotlib
|
||||
];
|
||||
|
||||
# Enable unfree
|
||||
unfree.enable = true;
|
||||
|
@ -60,7 +114,7 @@
|
|||
fonts.serif = fontpkgs."DejaVu Serif";
|
||||
fonts.sansSerif = fontpkgs."DejaVu Sans";
|
||||
fonts.monospace = fontpkgs."Dina";
|
||||
fonts.emoji = fontpkgs."Dina";
|
||||
fonts.emoji = fontpkgs."Noto Color Emoji";
|
||||
fonts.extraFonts = [ ];
|
||||
|
||||
# Color scheme
|
||||
|
@ -69,10 +123,10 @@
|
|||
darkMode = false;
|
||||
};
|
||||
themes.catppuccin = {
|
||||
enable = false;
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
};
|
||||
themes.sakura.enable = true;
|
||||
themes.sakura.enable = false;
|
||||
|
||||
# TODO: Remove
|
||||
# Nice themes:
|
||||
|
|
Loading…
Reference in New Issue