14 Commits

15 changed files with 193 additions and 33 deletions

24
flake.lock generated
View File

@@ -9,11 +9,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1731092955,
"narHash": "sha256-L1hLXf4IDZ0KoXbFiSNNZJ7IrReEr/J+CLt6Rl4Ea3M=",
"lastModified": 1735301051,
"narHash": "sha256-jU88Q9tP4vuvWYGQcmOdFwI9e2uMPVYJHbXdiklIH9o=",
"owner": "anyrun-org",
"repo": "anyrun",
"rev": "d2017f224b2bfd7e33573c7070e7c3e2960c7dcc",
"rev": "06017e753c8886d5296768dca80745ee09402a2d",
"type": "github"
},
"original": {
@@ -66,11 +66,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1734954597,
"narHash": "sha256-QIhd8/0x30gEv8XEE1iAnrdMlKuQ0EzthfDR7Hwl+fk=",
"lastModified": 1737751639,
"narHash": "sha256-ZEbOJ9iT72iwqXsiEMbEa8wWjyFvRA9Ugx8utmYbpz4=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "def1d472c832d77885f174089b0d34854b007198",
"rev": "dfad538f751a5aa5d4436d9781ab27a6128ec9d4",
"type": "github"
},
"original": {
@@ -82,11 +82,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1734835170,
"narHash": "sha256-JG6n9tQET7ZLjvwjH9BdYE6pES/Alcduxv2FDXliuBM=",
"lastModified": 1735563628,
"narHash": "sha256-OnSAY7XDSx7CtDoqNh8jwVwh4xNL/2HaJxGjryLWzX8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6df924734e1b626efd70925545de844b1c25246f",
"rev": "b134951a4c9f3c995fd7be05f3243f8ecd65d798",
"type": "github"
},
"original": {
@@ -97,11 +97,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1734649271,
"narHash": "sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ=",
"lastModified": 1738142207,
"narHash": "sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9+WC4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d70bd19e0a38ad4790d3913bf08fcbfc9eeca507",
"rev": "9d3ae807ebd2981d593cddd0080856873139aa40",
"type": "github"
},
"original": {

View File

@@ -15,7 +15,7 @@ let
};
"/boot" = {
device = "/dev/disk/by-uuid/2AFA-3BFC";
device = "/dev/disk/by-uuid/2AFA-3BFC";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
@@ -32,8 +32,8 @@ let
options = [ "nofail,noatime,uid=1000,gid=100,fmask=0022,dmask=0022" ];
};
"/data/Portable/Linux" = {
device = "/dev/disk/by-label/LinuxPortable";
"/data/LinuxData" = {
device = "/dev/disk/by-label/LinuxData";
fsType = "btrfs";
options = [ "nofail,noatime,autodefrag" ];
};

View File

@@ -1,6 +1,8 @@
{ ... }:
{
imports = [
./program_list.nix
./audio
./browsers
./development

View File

@@ -4,10 +4,7 @@
config = mkIf config.custom.programs.development.rust.all {
environment.systemPackages = with pkgs; [
cargo
# rustc
rustup
ripgrep
];
# TODO: Make a nix shell to solve this issue

View File

@@ -13,6 +13,8 @@
custom.programs = {
thunderbird.enable = true;
hexchat.enable = true;
discord.enable = true;
};
};
}

View File

@@ -4,6 +4,7 @@
./anyrun
./waybar
./foliate.nix
./liferea.nix
./transmission.nix
];
@@ -14,6 +15,7 @@
custom.programs = {
transmission.enable = true;
liferea.enable = true;
foliate.enable = true;
};
};
}

View File

@@ -0,0 +1,13 @@
{ lib, config, pkgs, ... }:
{
# An Ebook Reader that is actually very nice...
options.custom.programs.foliate.enable = lib.mkEnableOption "Foliate Ebook Reader";
config = lib.mkIf config.custom.programs.foliate.enable {
home-manager.users.${config.custom.username} = {
home.packages = with pkgs; [
foliate
];
};
};
}

View File

@@ -0,0 +1,27 @@
{ config, pkgs, lib, ...}:
let
addProgram = name: requiredCapabilities: extraConfig: {
options.custom.programs_list.${name} = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable ${name}";
};
config = lib.mkIf
(
(config.custom.programs.${name} or false)
&& (builtins.all (capability: config.capabilities.${capability}.available or false) requiredCapabilities)
)
(
{ environment.systemPackages = [ pkgs.${name} ]; }
// extraConfig
);
};
firefox = addProgram "firefox" [ "display" ];
in
{
imports = [
firefox
];
}

View File

@@ -8,7 +8,6 @@ let
zip
unzip
lsof
tmux
epubcheck
];

View File

@@ -7,6 +7,7 @@
./printing.nix
./thunar.nix
./tigervnc.nix
./tmux.nix
./touchpad.nix
./via.nix
];
@@ -24,6 +25,7 @@
printing.enable = true;
thunar.enable = true;
tigervnc.enable = true;
tmux.enable = true;
touchpad.enable = true;
via.enable = true;
};

View File

@@ -0,0 +1,102 @@
{ lib, config, ... }: with lib;
{
options.custom.programs.tmux.enable = mkEnableOption "tmux terminal multiplexer";
config = mkIf config.custom.programs.tmux.enable {
home-manager.users.${config.custom.username} = {
programs.tmux = {
enable = true;
extraConfig = ''
# Enable reloading via hotkey
unbind r
bind r source-file ~/.tmux.conf
# Change our prefix to something easier
set -g prefix C-Space
unbind C-b
bind C-Space send-prefix
# Enable the Mouse
set -g mouse on
# More Sane Pane Splitting
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %
# Use VIM Keybinds
setw -g mode-keys vi
bind-key h select-pane -L
bind-key j select-pane -D
bind-key k select-pane -U
bind-key l select-pane -R
# Window Commands
unbind o
unbind c
bind-key o new-window
# bind-key c kill-window
bind-key c if-shell -F '#{==:#{session_windows},1}' \
'display-message "This is the last window, cannot close it."' \
'kill-window'
# Window Renaming
set-option -g allow-rename off
# DESIGN TWEAKS
# don't do anything when a 'bell' rings
set -g visual-activity off
set -g visual-bell off
set -g visual-silence off
setw -g monitor-activity off
set -g bell-action none
# Colors
set -g default-terminal "xterm-256color"
set-option -ga terminal-overrides ",xterm-256color:Tc"
set-option -sa terminal-features ',xterm-256color:RGB'
# clock mode
setw -g clock-mode-colour colour226
# copy mode
setw -g mode-style 'fg=colour0 bg=red bold'
# panes
set -g pane-border-style 'fg=red'
set -g pane-active-border-style 'fg=colour226'
# statusbar
set -g status-position top
set -g status-justify left
set -g status-style 'fg=red bg=colour22'
# Show hostname in top-left
set -g status-left-style 'fg=colour226 bg=colour0'
set -g status-left ' #(hostname) '
set -g status-left-length 30
set -g status-right-style 'fg=colour0 bg=colour226'
set -g status-right '%Y-%m-%d %H:%M '
set -g status-right-length 50
# Tab Styles
setw -g window-status-current-style 'fg=colour231 bg=blue'
setw -g window-status-current-format ' #I #W #F '
setw -g window-status-style 'fg=white bg=colour0'
setw -g window-status-format ' #I #[fg=white]#W #[fg=colour226]#F '
setw -g window-status-bell-style 'fg=colour226 bg=red bold'
# messages
set -g message-style 'fg=colour226 bg=red bold'
'';
};
};
};
}

View File

@@ -1,4 +1,4 @@
{ lib, config, pkgs, ... }: with lib;
{ lib, config, ... }: with lib;
{
options.custom.programs.touchpad.enable = mkEnableOption "Touchpad drivers from libinput";

View File

@@ -25,6 +25,7 @@
wl-clipboard
wl-screenrec
wlr-randr
wev # Input Event Reader (Determine what keyboard scancodes are etc.)
# We need a polkit agent
lxqt.lxqt-policykit
@@ -43,7 +44,7 @@
enable = true;
xwayland.enable = true;
settings = {
"$mod" = "Mod4";
"$mod" = "Mod1";
debug = {
disable_logs = false;
@@ -96,6 +97,7 @@
shadow_render_power = 3;
"col.shadow" = "rgba(1a1a1aee)";
};
animations = {
enabled = "yes";
@@ -112,34 +114,46 @@
"workspaces, 1, 6, default"
];
};
dwindle = {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
# master switch for pseudotiling. Enabling is bound to mod + P in the keybinds section below
pseudotile = "yes";
preserve_split = "yes"; # you probably want this
};
master = {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_on_active= "after";
mfact = "0.50";
# New Windows become sub-windows, first window is master
new_status = "slave";
# Put the master window in the center
orientation = "center";
};
gestures = {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = true;
workspace_swipe_fingers = 4;
};
misc = {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = -1; # Set to 0 or 1 to disable the anime mascot wallpapers
};
windowrule = [
"pseudo, fcitx"
];
windowrulev2 = [
"suppressevent maximize, class:.*" # You'll probably like this.
#"opacity 0.95 0.50, title:(.*)$"
];
# Making things not break in Wayland
# Making things not break in Wayland
env = [
"QT_QPA_PLATFORM,wayland;xcb,"
"GDK_BACKEND,wayland,x11,"
@@ -150,6 +164,12 @@
"CLUTTER_BACKEND,wayland"
];
bindm = [
# Move with LMB, Resize with RMB
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindowpixel"
];
bind = [
"$mod, p, exec, anyrun"
"$mod, Return, exec, xfce4-terminal"
@@ -163,10 +183,6 @@
"$mod SHIFT, t, pseudo,"
"$mod, V, togglesplit,"
# Move with LMB, Resize with RMB
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindowpixel"
# Move window with Keyboard
"$mod SHIFT, h, movewindow, l"
"$mod SHIFT, j, movewindow, d"

View File

@@ -1,4 +1,4 @@
{ lib, config, pkgs, ... }: with lib;
{ lib, pkgs, ... }: with lib;
{
options.custom.system.shell = {
package = mkOption {
@@ -8,7 +8,4 @@
description = "Choose a preferred shell program";
};
};
config = {
};
}

View File

@@ -1,4 +1,4 @@
{ lib, config, pkgs, hostname, options, ... }:
{ lib, config, pkgs, hostname, ... }:
let
username = "aargonian";
in
@@ -40,6 +40,7 @@ in
display.enable = true;
display.desktopManagers.cinnamon.enable = true;
display.windowManagers.i3.enable = true;
display.windowManagers.hyprland.enable = true;
# Enable Virtualbox
virtualization.virtualbox.host = true;
@@ -50,7 +51,7 @@ in
####################################################################
services = {
avahi.enable = true;
greetd.enable = true;
greetd.enable = false;
lact.enable = false;
power-profiles-daemon.enable = true;
};