Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d2e35626d2 | |||
| b76182c1cf | |||
| dada1ed3dc | |||
| 34bdf8ebd0 | |||
| 42ea7dba23 | |||
| 7155974de0 | |||
| 6404e6310a | |||
| 7f58d3cbac | |||
| cce9ea4c9d | |||
| 07d65867b0 | |||
| aaab76c0be | |||
| 4c78e6a09c | |||
| 7f729eceaf | |||
| 7664b1a90e |
24
flake.lock
generated
24
flake.lock
generated
@@ -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": {
|
||||
|
||||
@@ -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" ];
|
||||
};
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./program_list.nix
|
||||
|
||||
./audio
|
||||
./browsers
|
||||
./development
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
|
||||
custom.programs = {
|
||||
thunderbird.enable = true;
|
||||
hexchat.enable = true;
|
||||
discord.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
13
modules/programs/other/foliate.nix
Normal file
13
modules/programs/other/foliate.nix
Normal 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
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
27
modules/programs/program_list.nix
Normal file
27
modules/programs/program_list.nix
Normal 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
|
||||
];
|
||||
}
|
||||
@@ -8,7 +8,6 @@ let
|
||||
zip
|
||||
unzip
|
||||
lsof
|
||||
tmux
|
||||
epubcheck
|
||||
];
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
102
modules/programs/utility/tmux.nix
Normal file
102
modules/programs/utility/tmux.nix
Normal 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'
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{ lib, config, pkgs, ... }: with lib;
|
||||
{ lib, config, ... }: with lib;
|
||||
{
|
||||
options.custom.programs.touchpad.enable = mkEnableOption "Touchpad drivers from libinput";
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 = {
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user