add btrfs stuff and rmpc themes

This commit is contained in:
2026-08-21 18:37:05 +02:00
parent 1fb50e80ea
commit 59f6a5baa9
6 changed files with 685 additions and 49 deletions
-8
View File
@@ -1,8 +0,0 @@
# ---> Nix
# Ignore build outputs from performing a nix-build or `nix build` command
result
result-*
# Ignore automatically generated direnv output
.direnv
+1
View File
@@ -124,6 +124,7 @@
flake = "/home/user/nix-config"; flake = "/home/user/nix-config";
}; };
programs.gamemode.enable = true;
programs.steam = { programs.steam = {
enable = true; enable = true;
protontricks.enable = true; protontricks.enable = true;
+14
View File
@@ -4,11 +4,25 @@
"nfs4" "nfs4"
]; ];
fileSystems = {
"/".options = [ "compress=zstd" ];
"/home".options = [ "compress=zstd" ];
"/nix".options = [
"compress=zstd"
"noatime"
];
};
fileSystems."/media/music" = { fileSystems."/media/music" = {
device = "192.168.132.149:/media/music"; device = "192.168.132.149:/media/music";
fsType = "nfs4"; fsType = "nfs4";
}; };
fileSystems."/media/arch" = {
device = "/dev/disk/by-uuid/8873d98f-c461-4d34-8867-f4ebd5c205d2";
fsType = "ext4";
};
fileSystems."/media/gamedisk" = { fileSystems."/media/gamedisk" = {
device = "/dev/disk/by-uuid/5C7C14707C1446E4"; device = "/dev/disk/by-uuid/5C7C14707C1446E4";
fsType = "ntfs-3g"; fsType = "ntfs-3g";
+27 -40
View File
@@ -1,56 +1,43 @@
# Do not modify this file! It was generated by ‘nixos-generate-config’ # Do not modify this file! It was generated by ‘nixos-generate-config’
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ { config, lib, pkgs, modulesPath, ... }:
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = [ imports =
(modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
"xhci_pci"
"ahci"
"usbhid"
"usb_storage"
"sd_mod"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = { fileSystems."/" =
device = "/dev/disk/by-uuid/ddabcce9-86a5-4dd8-84f1-3afa99a83752"; { device = "/dev/disk/by-uuid/c9d2db79-b3a1-4698-bee3-1cc6d8cb7f02";
fsType = "ext4"; fsType = "btrfs";
}; options = [ "subvol=root" ];
};
fileSystems."/boot" = { fileSystems."/home" =
device = "/dev/disk/by-uuid/16F5-2D1A"; { device = "/dev/disk/by-uuid/c9d2db79-b3a1-4698-bee3-1cc6d8cb7f02";
fsType = "vfat"; fsType = "btrfs";
options = [ options = [ "subvol=home" ];
"fmask=0077" };
"dmask=0077"
];
};
fileSystems."/media/music" = {
device = "192.168.132.149:/media/music";
fsType = "nfs4";
};
fileSystems."/media/arch" = { fileSystems."/nix" =
device = "/dev/disk/by-uuid/8873d98f-c461-4d34-8867-f4ebd5c205d2"; { device = "/dev/disk/by-uuid/c9d2db79-b3a1-4698-bee3-1cc6d8cb7f02";
fsType = "ext4"; fsType = "btrfs";
}; options = [ "subvol=nix" ];
};
swapDevices = [ fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/5949c73f-30eb-4956-9e93-70301c88fad8"; } { device = "/dev/disk/by-uuid/16F5-2D1A";
]; fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices = [ ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+642
View File
@@ -1,4 +1,7 @@
{ config, ... }:
{ {
home.file."Music".source = config.lib.file.mkOutOfStoreSymlink "/media/music";
services.mpd = { services.mpd = {
enable = true; enable = true;
musicDirectory = "/home/user/Music"; musicDirectory = "/home/user/Music";
@@ -224,4 +227,643 @@
], ],
) )
''; '';
home.file.".config/rmpc/themes/default.ron".text = ''
#![enable(implicit_some)]
#![enable(unwrap_newtypes)]
#![enable(unwrap_variant_newtypes)]
(
default_album_art_path: None,
format_tag_separator: " | ",
browser_column_widths: [20, 38, 42],
background_color: None,
text_color: None,
header_background_color: None,
modal_background_color: None,
modal_backdrop: true,
preview_label_style: (fg: "yellow"),
preview_metadata_group_style: (fg: "yellow", modifiers: "Bold"),
highlighted_item_style: (fg: "blue", modifiers: "Bold"),
current_item_style: (fg: "black", bg: "blue", modifiers: "Bold"),
borders_style: (fg: "blue"),
highlight_border_style: (fg: "blue"),
symbols: (
song: "S",
dir: "D",
playlist: "P",
marker: "M",
ellipsis: "...",
song_style: None,
dir_style: None,
playlist_style: None,
),
level_styles: (
info: (fg: "blue", bg: "black"),
warn: (fg: "yellow", bg: "black"),
error: (fg: "red", bg: "black"),
debug: (fg: "light_green", bg: "black"),
trace: (fg: "magenta", bg: "black"),
),
progress_bar: (
symbols: ["[", "-", ">", " ", "]"],
track_style: (fg: "#1e2030"),
elapsed_style: (fg: "blue"),
thumb_style: (fg: "blue", bg: "#1e2030"),
),
scrollbar: (
symbols: ["│", "█", "▲", "▼"],
track_style: (),
ends_style: (),
thumb_style: (fg: "blue"),
),
tab_bar: (
active_style: (fg: "black", bg: "blue", modifiers: "Bold"),
inactive_style: (),
),
lyrics: (
timestamp: false
),
browser_song_format: [
(
kind: Group([
(kind: Property(Track)),
(kind: Text(" ")),
])
),
(
kind: Group([
(kind: Property(Artist)),
(kind: Text(" - ")),
(kind: Property(Title)),
]),
default: (kind: Property(Filename))
),
],
song_table_format: [
(
prop: (kind: Property(Artist),
default: (kind: Text("Unknown"))
),
label_prop: (kind: Text("Artist")),
width: "20%",
),
(
prop: (kind: Property(Title),
default: (kind: Text("Unknown"))
),
label_prop: (kind: Text("Title")),
width: "35%",
),
(
prop: (kind: Property(Album), style: (fg: "white"),
default: (kind: Text("Unknown Album"), style: (fg: "white"))
),
label_prop: (kind: Text("Album")),
width: "30%",
),
(
prop: (kind: Property(FileExtension),
default: (kind: Text("-"))
),
width: "10%",
alignment: Right,
),
(
prop: (kind: Property(Duration),
default: (kind: Text("-"))
),
label_prop: (kind: Text("Duration")),
width: "15%",
alignment: Right,
),
],
layout: Split(
direction: Vertical,
panes: [
(
size: "3",
pane: Split(
direction: Horizontal,
panes: [
(
size: "35",
borders: "",
border_symbols: Inherited(parent: Rounded, bottom_left: "├"),
pane: Component("header_left")
),
(
size: "100%",
borders: "",
border_symbols: Inherited(parent: Rounded, top_left: "┬", top_right: "┬", bottom_left: "┴", bottom_right: "┴"),
pane: Component("header_center")
),
(
size: "35",
borders: "",
border_symbols: Inherited(parent: Rounded, bottom_right: "┤"),
pane: Component("header_right")
),
]
)
),
(
pane: Pane(Tabs),
borders: "",
border_symbols: Rounded,
size: "3",
),
(
pane: Pane(TabContent),
size: "100%",
),
(
size: "3",
pane: Split(
direction: Horizontal,
panes: [
//(
// size: "12",
// borders: "ALL",
// border_symbols: Inherited(parent: Rounded),
// pane: Component("input_mode")
//),
(
size: "100%",
// borders: "TOP | BOTTOM | RIGHT",
// border_symbols: Rounded,
border_title: [(kind: Text(" ")), (kind: Property(Status(QueueLength()))), (kind: Text(" songs / ")), (kind: Property(Status(QueueTimeTotal()))), (kind: Text(" total time "))],
border_title_alignment: Right,
pane: Component("progress_bar"),
),
]
),
),
],
),
components: {
"scanstatus": Pane(Property(
content: [
(kind: Property(Widget(ScanStatus)), style: (fg: "yellow", modifiers: "Bold")),
], align: Right,
)),
"state": Pane(Property(
content: [
(kind: Text("["), style: (fg: "yellow", modifiers: "Bold")),
(kind: Property(Status(StateV2( ))), style: (fg: "yellow", modifiers: "Bold")),
(kind: Text("]"), style: (fg: "yellow", modifiers: "Bold")),
], align: Left,
)),
"title": Pane(Property(
content: [
(kind: Property(Song(Title)), style: (modifiers: "Bold"),
default: (kind: Text("No Song"), style: (modifiers: "Bold"))),
], align: Center, scroll_speed: 1
)),
"volume": Split(
direction: Horizontal,
panes: [
(size: "1", pane: Pane(Property(content: [(kind: Text(""))]))),
(size: "100%", pane: Pane(Volume(kind: Slider(symbols: (filled: "─", thumb: "●", track: "─"))))),
(size: "3", pane: Pane(Property(content: [(kind: Property(Status(Volume)), style: (fg: "blue"))], align: Right))),
(size: "2", pane: Pane(Property(content: [(kind: Text("%"), style: (fg: "blue"))]))),
]
),
"elapsed_and_bitrate": Pane(Property(
content: [
(kind: Property(Status(Elapsed))),
(kind: Text(" / ")),
(kind: Property(Status(Duration))),
(kind: Group([
(kind: Text(" (")),
(kind: Property(Status(Bitrate))),
(kind: Text(" kbps)")),
])),
],
align: Left,
)),
"artist_and_album": Pane(Property(
content: [
(kind: Property(Song(Artist)), style: (fg: "yellow", modifiers: "Bold"),
default: (kind: Text("Unknown"), style: (fg: "yellow", modifiers: "Bold"))),
(kind: Text(" - ")),
(kind: Property(Song(Album)), default: (kind: Text("Unknown Album"))),
], align: Center, scroll_speed: 1
)),
"states": Split(
direction: Horizontal,
panes: [
(
size: "1",
pane: Pane(Empty())
),
(
size: "100%",
pane: Pane(Property(content: [(kind: Property(Status(InputBuffer())), style: (fg: "blue"), align: Left)]))
),
(
size: "6",
pane: Pane(Property(content: [
(kind: Text("["), style: (fg: "blue", modifiers: "Bold")),
(kind: Property(Status(RepeatV2(
on_label: "z",
off_label: "z",
on_style: (fg: "yellow", modifiers: "Bold"),
off_style: (fg: "blue", modifiers: "Dim"),
)))),
(kind: Property(Status(RandomV2(
on_label: "x",
off_label: "x",
on_style: (fg: "yellow", modifiers: "Bold"),
off_style: (fg: "blue", modifiers: "Dim"),
)))),
(kind: Property(Status(ConsumeV2(
on_label: "c",
off_label: "c",
oneshot_label: "c",
on_style: (fg: "yellow", modifiers: "Bold"),
off_style: (fg: "blue", modifiers: "Dim"),
oneshot_style: (fg: "red", modifiers: "Dim"),
)))),
(kind: Property(Status(SingleV2(
on_label: "v",
off_label: "v",
oneshot_label: "v",
on_style: (fg: "yellow", modifiers: "Bold"),
off_style: (fg: "blue", modifiers: "Dim"),
oneshot_style: (fg: "red", modifiers: "Bold"),
)))),
(kind: Text("]"), style: (fg: "blue", modifiers: "Bold")),
],
align: Right
))
),
]
),
"input_mode": Pane(Property(
content: [
(kind: Transform(Replace(content: (kind: Property(Status(InputMode()))), replacements: [
(match: "Normal", replace: (kind: Text(" NORMAL "), style: (fg: "black", bg: "blue"))),
(match: "Insert", replace: (kind: Text(" INSERT "), style: (fg: "black", bg: "green"))),
])))
], align: Center
)),
"header_left": Split(
direction: Vertical,
panes: [
(size: "1", pane: Component("state")),
(size: "1", pane: Component("elapsed_and_bitrate")),
]
),
"header_center": Split(
direction: Vertical,
panes: [
(size: "1", pane: Component("title")),
(size: "1", pane: Component("artist_and_album")),
]
),
"header_right": Split(
direction: Vertical,
panes: [
(size: "1", pane: Component("volume")),
(size: "1", pane: Component("states")),
(size: "1", pane: Component("scanstatus")),
]
),
"progress_bar": Split(
direction: Horizontal,
panes: [
(
size: "1",
pane: Pane(Empty())
),
(
size: "100%",
pane: Pane(ProgressBar)
),
(
size: "1",
pane: Pane(Empty())
),
]
)
},
)
'';
home.file.".config/rmpc/themes/default_borders.ron".text = ''
#![enable(implicit_some)]
#![enable(unwrap_newtypes)]
#![enable(unwrap_variant_newtypes)]
(
default_album_art_path: None,
format_tag_separator: " | ",
browser_column_widths: [20, 38, 42],
background_color: None,
text_color: None,
header_background_color: None,
modal_background_color: None,
modal_backdrop: false,
preview_label_style: (fg: "yellow"),
preview_metadata_group_style: (fg: "yellow", modifiers: "Bold"),
highlighted_item_style: (fg: "blue", modifiers: "Bold"),
current_item_style: (fg: "black", bg: "blue", modifiers: "Bold"),
borders_style: (fg: "blue"),
highlight_border_style: (fg: "blue"),
symbols: (
song: "S",
dir: "D",
playlist: "P",
marker: "M",
ellipsis: "...",
song_style: None,
dir_style: None,
playlist_style: None,
),
level_styles: (
info: (fg: "blue", bg: "black"),
warn: (fg: "yellow", bg: "black"),
error: (fg: "red", bg: "black"),
debug: (fg: "light_green", bg: "black"),
trace: (fg: "magenta", bg: "black"),
),
progress_bar: (
symbols: ["[", "-", ">", " ", "]"],
track_style: (fg: "#1e2030"),
elapsed_style: (fg: "blue"),
thumb_style: (fg: "blue", bg: "#1e2030"),
),
scrollbar: (
symbols: ["│", "█", "▲", "▼"],
track_style: (),
ends_style: (),
thumb_style: (fg: "blue"),
),
tab_bar: (
active_style: (fg: "black", bg: "blue", modifiers: "Bold"),
inactive_style: (),
),
lyrics: (
timestamp: false
),
browser_song_format: [
(
kind: Group([
(kind: Property(Track)),
(kind: Text(" ")),
])
),
(
kind: Group([
(kind: Property(Artist)),
(kind: Text(" - ")),
(kind: Property(Title)),
]),
default: (kind: Property(Filename))
),
],
song_table_format: [
(
prop: (kind: Property(Artist),
default: (kind: Text("Unknown"))
),
label_prop: (kind: Text("Artist")),
width: "20%",
),
(
prop: (kind: Property(Title),
default: (kind: Text("Unknown"))
),
label_prop: (kind: Text("Title")),
width: "35%",
),
(
prop: (kind: Property(Album), style: (fg: "white"),
default: (kind: Text("Unknown Album"), style: (fg: "white"))
),
label_prop: (kind: Text("Album")),
width: "30%",
),
(
prop: (kind: Property(FileExtension),
default: (kind: Text("-"))
),
width: "10%",
alignment: Right,
),
(
prop: (kind: Property(Duration),
default: (kind: Text("-"))
),
label_prop: (kind: Text("Duration")),
width: "15%",
alignment: Right,
),
],
layout: Split(
direction: Vertical,
panes: [
(
size: "4",
pane: Split(
direction: Horizontal,
panes: [
(
size: "35",
borders: "LEFT | TOP | BOTTOM",
border_symbols: Inherited(parent: Rounded, bottom_left: "├"),
pane: Component("header_left")
),
(
size: "100%",
borders: "ALL",
border_symbols: Inherited(parent: Rounded, top_left: "┬", top_right: "┬", bottom_left: "┴", bottom_right: "┴"),
pane: Component("header_center")
),
(
size: "35",
borders: "RIGHT | TOP | BOTTOM",
border_symbols: Inherited(parent: Rounded, bottom_right: "┤"),
pane: Component("header_right")
),
]
)
),
(
pane: Pane(Tabs),
borders: "RIGHT | LEFT | BOTTOM",
border_symbols: Rounded,
size: "2",
),
(
pane: Pane(TabContent),
size: "100%",
),
(
size: "3",
pane: Split(
direction: Horizontal,
panes: [
//(
// size: "12",
// borders: "ALL",
// border_symbols: Inherited(parent: Rounded),
// pane: Component("input_mode")
//),
(
size: "100%",
// borders: "TOP | BOTTOM | RIGHT",
// border_symbols: Rounded,
border_title: [(kind: Text(" ")), (kind: Property(Status(QueueLength()))), (kind: Text(" songs / ")), (kind: Property(Status(QueueTimeTotal()))), (kind: Text(" total time "))],
border_title_alignment: Right,
pane: Component("progress_bar"),
),
]
),
),
],
),
components: {
"state": Pane(Property(
content: [
(kind: Text("["), style: (fg: "yellow", modifiers: "Bold")),
(kind: Property(Status(StateV2( ))), style: (fg: "yellow", modifiers: "Bold")),
(kind: Text("]"), style: (fg: "yellow", modifiers: "Bold")),
], align: Left,
)),
"title": Pane(Property(
content: [
(kind: Property(Song(Title)), style: (modifiers: "Bold"),
default: (kind: Text("No Song"), style: (modifiers: "Bold"))),
], align: Center, scroll_speed: 1
)),
"volume": Split(
direction: Horizontal,
panes: [
(size: "1", pane: Pane(Property(content: [(kind: Text(""))]))),
(size: "100%", pane: Pane(Volume(kind: Slider(symbols: (filled: "─", thumb: "●", track: "─"))))),
(size: "3", pane: Pane(Property(content: [(kind: Property(Status(Volume)), style: (fg: "blue"))], align: Right))),
(size: "2", pane: Pane(Property(content: [(kind: Text("%"), style: (fg: "blue"))]))),
]
),
"elapsed_and_bitrate": Pane(Property(
content: [
(kind: Property(Status(Elapsed))),
(kind: Text(" / ")),
(kind: Property(Status(Duration))),
(kind: Group([
(kind: Text(" (")),
(kind: Property(Status(Bitrate))),
(kind: Text(" kbps)")),
])),
],
align: Left,
)),
"artist_and_album": Pane(Property(
content: [
(kind: Property(Song(Artist)), style: (fg: "yellow", modifiers: "Bold"),
default: (kind: Text("Unknown"), style: (fg: "yellow", modifiers: "Bold"))),
(kind: Text(" - ")),
(kind: Property(Song(Album)), default: (kind: Text("Unknown Album"))),
], align: Center, scroll_speed: 1
)),
"states": Split(
direction: Horizontal,
panes: [
(
size: "1",
pane: Pane(Empty())
),
(
size: "100%",
pane: Pane(Property(content: [(kind: Property(Status(InputBuffer())), style: (fg: "blue"), align: Left)]))
),
(
size: "6",
pane: Pane(Property(content: [
(kind: Text("["), style: (fg: "blue", modifiers: "Bold")),
(kind: Property(Status(RepeatV2(
on_label: "z",
off_label: "z",
on_style: (fg: "yellow", modifiers: "Bold"),
off_style: (fg: "blue", modifiers: "Dim"),
)))),
(kind: Property(Status(RandomV2(
on_label: "x",
off_label: "x",
on_style: (fg: "yellow", modifiers: "Bold"),
off_style: (fg: "blue", modifiers: "Dim"),
)))),
(kind: Property(Status(ConsumeV2(
on_label: "c",
off_label: "c",
oneshot_label: "c",
on_style: (fg: "yellow", modifiers: "Bold"),
off_style: (fg: "blue", modifiers: "Dim"),
oneshot_style: (fg: "red", modifiers: "Dim"),
)))),
(kind: Property(Status(SingleV2(
on_label: "v",
off_label: "v",
oneshot_label: "v",
on_style: (fg: "yellow", modifiers: "Bold"),
off_style: (fg: "blue", modifiers: "Dim"),
oneshot_style: (fg: "red", modifiers: "Bold"),
)))),
(kind: Text("]"), style: (fg: "blue", modifiers: "Bold")),
],
align: Right
))
),
]
),
"input_mode": Pane(Property(
content: [
(kind: Transform(Replace(content: (kind: Property(Status(InputMode()))), replacements: [
(match: "Normal", replace: (kind: Text(" NORMAL "), style: (fg: "black", bg: "blue"))),
(match: "Insert", replace: (kind: Text(" INSERT "), style: (fg: "black", bg: "green"))),
])))
], align: Center
)),
"header_left": Split(
direction: Vertical,
panes: [
(size: "1", pane: Component("state")),
(size: "1", pane: Component("elapsed_and_bitrate")),
]
),
"header_center": Split(
direction: Vertical,
panes: [
(size: "1", pane: Component("title")),
(size: "1", pane: Component("artist_and_album")),
]
),
"header_right": Split(
direction: Vertical,
panes: [
(size: "1", pane: Component("volume")),
(size: "1", pane: Component("states")),
]
),
"progress_bar": Split(
direction: Horizontal,
panes: [
(
size: "1",
pane: Pane(Empty())
),
(
size: "100%",
pane: Pane(ProgressBar)
),
(
size: "1",
pane: Pane(Empty())
),
]
)
},
)
'';
} }
+1 -1
View File
@@ -14,7 +14,7 @@
ff = "fastfetch"; ff = "fastfetch";
grep = "grep -i"; grep = "grep -i";
rg = "rg -i"; rg = "rg -i";
h = "start-hyprland"; hyprland = "start-hyprland";
mv = "mv -v"; mv = "mv -v";
n = "nvim"; n = "nvim";
py = "uv run"; py = "uv run";