This commit is contained in:
Curt Spark 2024-03-21 15:20:04 +00:00
commit d5b2c3984e
9 changed files with 221 additions and 20 deletions

View File

@ -30,16 +30,23 @@
foot # Terminal Emulator foot # Terminal Emulator
dmenu # Application Launcher dmenu # Application Launcher
wmenu # Application Launcher - Wayland wmenu # Application Launcher - Wayland
networkmanager_dmenu # Network Manager dmenu script
wdisplays # Manage wayland displays wdisplays # Manage wayland displays
wlsunset # Day/night gamma adjustment/filter for wayland wlsunset # Day/night gamma adjustment/filter for wayland
light # GNU/Linux application to control backlights
sway-contrib.grimshot # Screenshot tool for wayland sway-contrib.grimshot # Screenshot tool for wayland
mako # Notification Daemon mako # Notification Daemon
wlprop # Clone of X11 xprop for wayland (To get window class names etc)
themix-gui # Application to design GTK themes
lxqt.pcmanfm-qt # File Manager lxqt.pcmanfm-qt # File Manager
lxqt.lxqt-archiver # Archiver lxqt.lxqt-archiver # Archiver
qt6Packages.qt6ct # Manage QT6 Themes qt6Packages.qt6ct # Manage QT6 Themes
libsForQt5.qt5ct # Manage QT5 Themes libsForQt5.qt5ct # Manage QT5 Themes
lxappearance # Manage GTK Themes lxappearance # Manage GTK Themes
kdePackages.polkit-kde-agent-1 # Polkit Prompt for password prompts etc
lxqt.lxqt-openssh-askpass # GUI to query passwords on behalf of SSH agents
]; ];
}; };
# XDG Portal Integration (For file chooser/screensharing etc) # XDG Portal Integration (For file chooser/screensharing etc)
@ -50,6 +57,10 @@
qt.enable = true; qt.enable = true;
# Enable xwayland support # Enable xwayland support
programs.xwayland.enable = true; programs.xwayland.enable = true;
# Enable polkit
security.polkit.enable = true;
# For udiskie
services.udisks2.enable = true;
# GTK themes are not applied in Wayland applications / Window Decorations missing / Cursor looks different # GTK themes are not applied in Wayland applications / Window Decorations missing / Cursor looks different
programs.dconf.enable = true; programs.dconf.enable = true;
@ -106,14 +117,40 @@
python3 python3
usbutils usbutils
nvtop-intel nvtop-intel
xdg-user-dirs
]; ];
# Set konsole to be default terminal security.sudo = {
extraRules = [
{
commands = [
{
command = "/run/current-system/sw/bin/light";
options = [ "NOPASSWD" ];
}
];
groups = [ "wheel" ];
}
];
};
environment.sessionVariables = { environment.sessionVariables = {
TERM = "foot"; TERM = "foot";
QT_QPA_PLATFORM = "wayland-egl";
QT_QPA_PLATFORMTHEME = "qt6ct";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
SDL_VIDEODRIVER = "wayland";
_JAVA_AWT_WM_NONREPARENTING = "1";
SSH_ASKPASS = "lxqt-openssh-askpass";
}; };
environment.variables = { environment.variables = {
TERM = "foot"; TERM = "foot";
QT_QPA_PLATFORM = "wayland-egl";
QT_QPA_PLATFORMTHEME = "qt6ct";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
SDL_VIDEODRIVER = "wayland";
_JAVA_AWT_WM_NONREPARENTING = "1";
SSH_ASKPASS = lib.mkForce "lxqt-openssh-askpass";
}; };
} }

View File

@ -8,26 +8,26 @@
[ (modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "uas" "usbhid" "sd_mod" ]; boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ata_piix" "usb_storage" "sd_mod" "sdhci_pci" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" "vendor-reset" ]; boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/f25f2830-a778-4ecd-ad9b-93331ec13ff0"; { device = "/dev/disk/by-uuid/502edf37-4301-4517-87dd-4b030310f869";
fsType = "ext4"; fsType = "ext4";
}; };
boot.initrd.luks.devices."luks-542de15a-e6a5-4c6d-8c6a-62f916805da8".device = "/dev/disk/by-uuid/542de15a-e6a5-4c6d-8c6a-62f916805da8"; boot.initrd.luks.devices."luks-a014fc29-65ec-4cbc-9ef2-d601c5157425".device = "/dev/disk/by-uuid/a014fc29-65ec-4cbc-9ef2-d601c5157425";
boot.initrd.luks.devices."luks-9658340a-9d7d-4dbd-be1c-c8c7393ddfc3".device = "/dev/disk/by-uuid/9658340a-9d7d-4dbd-be1c-c8c7393ddfc3"; boot.initrd.luks.devices."luks-5917f8ad-73ed-4839-ba81-be53a90685a1".device = "/dev/disk/by-uuid/5917f8ad-73ed-4839-ba81-be53a90685a1";
fileSystems."/boot" = fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/386A-F58F"; { device = "/dev/disk/by-uuid/F323-67BC";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = swapDevices =
[ { device = "/dev/disk/by-uuid/6a8760a6-b720-455d-8ff6-af76365374bf"; } [ { device = "/dev/disk/by-uuid/aa1c6777-0afa-4fdf-84e8-5fead5e987d4"; }
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
@ -35,8 +35,9 @@
# still possible to use this option, but it's recommended to use it in conjunction # still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp7s0.useDHCP = lib.mkDefault true; # networking.interfaces.enp0s25.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
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.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View File

@ -40,10 +40,22 @@
# Config Files (typically $HOME/.config) # Config Files (typically $HOME/.config)
xdg.configFile = { xdg.configFile = {
"sway/config".source = ./resources/home-manager/.config/sway/config; "sway/config".source = ./resources/home-manager/.config/sway/config;
"mako/config".source = ./resources/home-manager/.config/mako/config;
"foot/foot.ini".source = ./resources/home-manager/.config/foot/foot.ini;
"networkmanager-dmenu/config.ini".source = ./resources/home-manager/.config/networkmanager-dmenu/config.ini;
}; };
services.udiskie.enable = true;
services.udiskie.tray = "never";
home.sessionVariables = { home.sessionVariables = {
TERM = "foot"; TERM = "foot";
QT_QPA_PLATFORM = "wayland-egl";
QT_QPA_PLATFORMTHEME = "qt6ct";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
SDL_VIDEODRIVER = "wayland";
_JAVA_AWT_WM_NONREPARENTING = "1";
SSH_ASKPASS = "lxqt-openssh-askpass";
}; };
programs.bash = { programs.bash = {

View File

@ -0,0 +1,23 @@
# -*- conf -*-
font=HackNerdFontMono-Regular:size=13
# Gruvbox - Light
[colors]
background=fbf1c7
foreground=3c3836
regular0=fbf1c7
regular1=cc241d
regular2=98971a
regular3=d79921
regular4=458588
regular5=b16286
regular6=689d6a
regular7=7c6f64
bright0=928374
bright1=9d0006
bright2=79740e
bright3=b57614
bright4=076678
bright5=8f3f71
bright6=427b58
bright7=3c3836

View File

@ -0,0 +1,24 @@
sort=-time
layer=overlay
background-color=#f9f5d7
text-color=#3c3836
width=300
height=110
border-size=3
border-color=#b16286
border-radius=0
icons=0
max-icon-size=64
default-timeout=5000
ignore-timeout=1
font=Hack Nerd Font Mono 12
[urgency=low]
border-color=#b16286
[urgency=normal]
border-color=#b16286
[urgency=high]
border-color=#b16286
default-timeout=0

View File

@ -0,0 +1,49 @@
[dmenu]
compact = True
dmenu_command = wmenu -N f9f5d7 -n 3c3836 -S 8f3f71 -s fbf1c7 -f "Hack Nerd Font Mono 14"
# # Note that dmenu_command can contain arguments as well like:
# # `dmenu_command = rofi -dmenu -i -theme nmdm`
# # `dmenu_command = rofi -dmenu -width 30 -i`
# # `dmenu_command = dmenu -i -l 25 -b -nb #909090 -nf #303030`
# # `dmenu_command = fuzzel --dmenu`
# # `dmenu_command = wofi --dmenu`
# active_chars = ==
# highlight = <True or False> # (Default: False) use highlighting instead of active_chars (only applicable to Rofi / Wofi)
# highlight_fg = <Color> # (Default: None) foreground color of active connection (only applicable to Wofi)
# highlight_bg = <Color> # (Default: None) background color of active connection (only applicable to Wofi)
# highlight_bold = <True or False> # (Default: True) make active connection bold (only applicable to Wofi)
# compact = <True or False> # (Default: False). Remove extra spacing from display
# pinentry = <Pinentry command> # (Default: None) e.g. `pinentry-gtk`
# wifi_chars = <string of 4 unicode characters representing 1-4 bars strength>
# wifi_chars = ▂▄▆█
# wifi_icons = <characters representing signal strength as an icon>
# wifi_icons = 󰤯󰤟󰤢󰤥󰤨
# format = <Python style format string for the access point entries>
# format = {name} {sec} {bars}
# # Available variables are:
# # * {name} - Access point name
# # * {sec} - Security type
# # * {signal} - Signal strength on a scale of 0-100
# # * {bars} - Bar-based display of signal strength (see wifi_chars)
# # * {icon} - Icon-based display of signal strength (see wifi_icons)
# # * {max_len_name} and {max_len_sec} are the maximum lengths of {name} / {sec}
# # respectively and may be useful for formatting.
# list_saved = <True or False> # (Default: False) list saved connections
[dmenu_passphrase]
# # Uses the -password flag for Rofi, -x for bemenu. For dmenu, sets -nb and
# # -nf to the same color or uses -P if the dmenu password patch is applied
# # https://tools.suckless.org/dmenu/patches/password/
# obscure = True
# obscure_color = #222222
[pinentry]
# description = <Pinentry description> (Default: Get network password)
# prompt = <Pinentry prompt> (Default: Password:)
[editor]
# terminal = <name of terminal program>
# gui_if_available = <True or False> (Default: True)
[nmdm]
# rescan_delay = <seconds> # (seconds to wait after a wifi rescan before redisplaying the results)

View File

@ -18,7 +18,7 @@ set $term foot
# Your preferred application launcher # Your preferred application launcher
# Note: pass the final command to swaymsg so that the resulting window can be opened # Note: pass the final command to swaymsg so that the resulting window can be opened
# on the original workspace that the command was run on. # on the original workspace that the command was run on.
set $menu dmenu_path | wmenu | xargs swaymsg exec -- set $menu dmenu_path | wmenu -N f9f5d7 -n 3c3836 -S 8f3f71 -s fbf1c7 -f "Hack Nerd Font Mono 14" | xargs swaymsg exec --
include /etc/sway/config-vars.d/* include /etc/sway/config-vars.d/*
@ -47,6 +47,14 @@ output * bg ~/Pictures/Wallpapers/gruvbox_light_linux.png fill
# resumed. It will also lock your screen before your computer goes to sleep. # resumed. It will also lock your screen before your computer goes to sleep.
### Input configuration ### Input configuration
input "1:1:AT_Translated_Set_2_keyboard" {
xkb_layout "gb"
}
input "6058:20564:ThinkPad_Extra_Buttons" {
xkb_layout "gb"
}
# #
# Example configuration: # Example configuration:
# #
@ -60,6 +68,20 @@ output * bg ~/Pictures/Wallpapers/gruvbox_light_linux.png fill
# You can get the names of your inputs by running: swaymsg -t get_inputs # You can get the names of your inputs by running: swaymsg -t get_inputs
# Read `man 5 sway-input` for more information about this section. # Read `man 5 sway-input` for more information about this section.
# Font Configuration
font pango:Hack Nerd Font Mono 12
# Border Configuration
default_border pixel 3
default_floating_border normal 3
client.focused #b16286 #b16286 #f9f5d7
client.focused_inactive #f9f5d7 #f9f5d7 #3c3836
client.unfocused #f9f5d7 #f9f5d7 #3c3836
# Gaps Configuration
gaps inner 5
gaps outer 5
### Key bindings ### Key bindings
# #
# Basics: # Basics:
@ -73,9 +95,16 @@ output * bg ~/Pictures/Wallpapers/gruvbox_light_linux.png fill
# Start your launcher # Start your launcher
bindsym $mod+d exec $menu bindsym $mod+d exec $menu
# Start password manager
bindsym Control+Mod1+p exec passmenu
# Lock screen # Lock screen
bindsym Mod4+l exec swaylock -c 000000 bindsym Mod4+l exec swaylock -c 000000
# Brightness Controls
bindsym XF86MonBrightnessUp exec sudo light -A 10
bindsym XF86MonBrightnessDown exec sudo light -U 10
# Drag floating windows by holding down $mod and left mouse button. # Drag floating windows by holding down $mod and left mouse button.
# Resize them with right mouse button + $mod. # Resize them with right mouse button + $mod.
# Despite the name, also works for non-floating windows. # Despite the name, also works for non-floating windows.
@ -123,9 +152,9 @@ output * bg ~/Pictures/Wallpapers/gruvbox_light_linux.png fill
bindsym $mod+5 workspace number 5 bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6 bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7 bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8 bindsym $mod+8 workspace number 8 Chat
bindsym $mod+9 workspace number 9 bindsym $mod+9 workspace number 9 Games
bindsym $mod+0 workspace number 10 bindsym $mod+0 workspace number 10 Audio
# Move focused container to workspace # Move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number 1 bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+2 move container to workspace number 2 bindsym $mod+Shift+2 move container to workspace number 2
@ -134,11 +163,21 @@ output * bg ~/Pictures/Wallpapers/gruvbox_light_linux.png fill
bindsym $mod+Shift+5 move container to workspace number 5 bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+6 move container to workspace number 6 bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7 bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8 bindsym $mod+Shift+8 move container to workspace number 8 Chat
bindsym $mod+Shift+9 move container to workspace number 9 bindsym $mod+Shift+9 move container to workspace number 9 Games
bindsym $mod+Shift+0 move container to workspace number 10 bindsym $mod+Shift+0 move container to workspace number 10 Audio
# Note: workspaces can have any name you want, not just numbers. # Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default. # We just use 1-10 as the default.
# A bit of window rules in regards to Chat/Games/Audio workspaces
assign [class="discord"] number 8 Chat
assign [class="org.telegram.desktop"] number 8 Chat
assign [title="Telegram"] number 8 Chat
assign [class="steam"] number 9 Games
assign [title="steam"] number 9 Games
assign [class="ardour"] number 10 Audio
# qpwgraph
assign [title="A PipeWire Graph Qt GUI Interface"] number 10 Audio
# #
# Layout stuff: # Layout stuff:
# #
@ -213,10 +252,19 @@ bar {
status_command while echo "`date +'%Y-%m-%d %I:%M:%S %p'` \| Battery: %`cat /sys/class/power_supply/BAT0/capacity` \(`cat /sys/class/power_supply/BAT0/status`\)"; do sleep 1; done status_command while echo "`date +'%Y-%m-%d %I:%M:%S %p'` \| Battery: %`cat /sys/class/power_supply/BAT0/capacity` \(`cat /sys/class/power_supply/BAT0/status`\)"; do sleep 1; done
colors { colors {
statusline #ffffff statusline #3c3836
background #323232 background #f9f5d7
inactive_workspace #32323200 #32323200 #5c5c5c focused_workspace #b16286 #8f3f71 #fbf1c7
active_workspace #b16286 #8f3f71 #fbf1c7
inactive_workspace #ebdbb2 #d5c4a1 #3c3836
} }
} }
include /etc/sway/config.d/* include /etc/sway/config.d/*
# Autostart
# London Longitude/Latitude
exec wlsunset -l 51.5 -L -0.1
exec qpwgraph

View File

@ -8,6 +8,7 @@
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
}; };
outputs = { self, nixpkgs, ... }@inputs: { outputs = { self, nixpkgs, ... }@inputs: {

View File

@ -107,6 +107,12 @@
"; ";
}; };
# Virt Manager Installation
virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true;
virtualisation.spiceUSBRedirection.enable = true;
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
# started in user sessions. # started in user sessions.
# programs.mtr.enable = true; # programs.mtr.enable = true;