migrate from github
33
Orzhov/openbox-3/themerc
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
# Glory to the Orzhov Guild
|
||||||
|
|
||||||
|
## Global
|
||||||
|
|
||||||
|
border.width: 1
|
||||||
|
padding.width: 1
|
||||||
|
menu.overlap: -6
|
||||||
|
|
||||||
|
|
||||||
|
## Window
|
||||||
|
|
||||||
|
border.width: 2
|
||||||
|
window.active.border.color: #AC966D
|
||||||
|
window.inactive.border.color: #bebcae
|
||||||
|
|
||||||
|
|
||||||
|
## Menu
|
||||||
|
|
||||||
|
menu.border.width: 1
|
||||||
|
|
||||||
|
menu.title.bg: flat
|
||||||
|
menu.title.bg.color: #4A5152
|
||||||
|
menu.title.text.color: #BEBCAE80
|
||||||
|
menu.title.text.justify: left
|
||||||
|
|
||||||
|
menu.items.bg: flat
|
||||||
|
menu.items.bg.color: #F7F6F3
|
||||||
|
menu.items.text.color: #4A5152
|
||||||
|
|
||||||
|
|
||||||
|
menu.items.active.bg: flat
|
||||||
|
menu.items.active.bg.color: #4A5152
|
||||||
|
menu.items.active.text.color: #F7F6F3
|
18
README.md
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# dotfiles
|
||||||
|
|
||||||
|
![](desktop.png)
|
||||||
|
I use NixOS so in the nixos file you will find the 'modular' (I wish) config I daily drive, and in the .config you will find whatever isn't declarable in NixOS 23.11.
|
||||||
|
|
||||||
|
Included are also the wallpapers I use. I ~~stole~~ found them online on different websites
|
||||||
|
|
||||||
|
## Components
|
||||||
|
|
||||||
|
- OS: NixOS
|
||||||
|
- Wayland Compositor: Labwc
|
||||||
|
- Launcher: bemenu
|
||||||
|
- Bar: Waybar
|
||||||
|
- Notifications: Mako
|
||||||
|
- Terminal Emulator: Alacritty
|
||||||
|
- Display Configuration: Kanshi
|
||||||
|
- Text Editor: Helix
|
||||||
|
- Shell: Zsh with Powerlevel10k prompt
|
159
configuration.nix
Normal file
|
@ -0,0 +1,159 @@
|
||||||
|
# Edit this configuration file to define what should be installed on
|
||||||
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
|
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ # Include the results of the hardware scan.
|
||||||
|
./hardware-configuration.nix
|
||||||
|
|
||||||
|
# Custom modules
|
||||||
|
./system/boot.nix
|
||||||
|
./system/hardware.nix
|
||||||
|
./system/network.nix
|
||||||
|
./system/programs.nix
|
||||||
|
./system/services.nix
|
||||||
|
./system/systemd.nix
|
||||||
|
./system/labwc.nix
|
||||||
|
./system/xfce.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
security = {
|
||||||
|
polkit.enable = true;
|
||||||
|
rtkit.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Set your time zone.
|
||||||
|
time.timeZone = "Europe/Rome";
|
||||||
|
|
||||||
|
# Select internationalisation properties.
|
||||||
|
i18n = {
|
||||||
|
defaultLocale = "en_US.UTF-8";
|
||||||
|
|
||||||
|
extraLocaleSettings = {
|
||||||
|
LC_ADDRESS = "el_GR.UTF-8";
|
||||||
|
LC_IDENTIFICATION = "el_GR.UTF-8";
|
||||||
|
LC_MEASUREMENT = "el_GR.UTF-8";
|
||||||
|
LC_MONETARY = "el_GR.UTF-8";
|
||||||
|
LC_NAME = "el_GR.UTF-8";
|
||||||
|
LC_NUMERIC = "el_GR.UTF-8";
|
||||||
|
LC_PAPER = "el_GR.UTF-8";
|
||||||
|
LC_TELEPHONE = "el_GR.UTF-8";
|
||||||
|
LC_TIME = "el_GR.UTF-8";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users = {
|
||||||
|
defaultUserShell = pkgs.zsh;
|
||||||
|
|
||||||
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
|
users.aethrvmn = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "Vasilis";
|
||||||
|
password = "gang";
|
||||||
|
extraGroups = [ "networkmanager" "wheel" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager = {
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
users.aethrvmn = import ./vasilis.nix;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Flakes setup
|
||||||
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
# Allow unfree packages
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
# Garbage collection
|
||||||
|
nix.gc = {
|
||||||
|
automatic = true;
|
||||||
|
options = "--delete-older-than 7d";
|
||||||
|
dates = "weekly";
|
||||||
|
};
|
||||||
|
|
||||||
|
# List packages installed in system profile. To search, run:
|
||||||
|
# $ nix search wget
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
alacritty
|
||||||
|
alsa-utils
|
||||||
|
# bash
|
||||||
|
bat
|
||||||
|
brightnessctl
|
||||||
|
cava
|
||||||
|
# devenv
|
||||||
|
# dotnetCorePackages.sdk_9_0
|
||||||
|
# eza
|
||||||
|
gcc
|
||||||
|
glib
|
||||||
|
glibc
|
||||||
|
# greetd.tuigreet
|
||||||
|
# gobject-introspection
|
||||||
|
# helix
|
||||||
|
# hugo
|
||||||
|
# jitsi
|
||||||
|
# localsend
|
||||||
|
nim
|
||||||
|
nimble
|
||||||
|
# obs-studio
|
||||||
|
# pavucontrol
|
||||||
|
playerctl
|
||||||
|
poetry
|
||||||
|
python311Full
|
||||||
|
python311Packages.stdenv
|
||||||
|
# python311Packages.tkinter
|
||||||
|
# python311Packages.pygobject3
|
||||||
|
# qbittorrent
|
||||||
|
# stdenv.cc.cc.lib
|
||||||
|
# slurp
|
||||||
|
# spotify
|
||||||
|
# thunderbird
|
||||||
|
# tk
|
||||||
|
udisks
|
||||||
|
linuxPackages.v4l2loopback
|
||||||
|
usbutils
|
||||||
|
v4l-utils
|
||||||
|
ventoy
|
||||||
|
wget
|
||||||
|
wineWowPackages.waylandFull
|
||||||
|
xarchiver
|
||||||
|
zlib
|
||||||
|
];
|
||||||
|
|
||||||
|
# Fonts
|
||||||
|
fonts.packages = with pkgs; [
|
||||||
|
corefonts
|
||||||
|
dejavu_fonts
|
||||||
|
font-awesome
|
||||||
|
liberation_ttf
|
||||||
|
meslo-lgs-nf
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-cjk
|
||||||
|
noto-fonts-emoji
|
||||||
|
vistafonts
|
||||||
|
];
|
||||||
|
|
||||||
|
# Env settings
|
||||||
|
environment.sessionVariables = {
|
||||||
|
DOTNET_ROOT = "${pkgs.dotnet-sdk}";
|
||||||
|
NIXOS_OZONE_WL = "1";
|
||||||
|
};
|
||||||
|
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
platformTheme = "gnome";
|
||||||
|
style = "adwaita-dark";
|
||||||
|
};
|
||||||
|
|
||||||
|
# This value determines the NixOS release from which the default
|
||||||
|
# settings for stateful data, like file locations and database versions
|
||||||
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
# this value at the release version of the first install of this system.
|
||||||
|
# Before changing this value read the documentation for this option
|
||||||
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
|
system.stateVersion = "23.11"; # Did you read the comment?
|
||||||
|
|
||||||
|
}
|
BIN
desktop.png
Normal file
After Width: | Height: | Size: 2.1 MiB |
48
flake.lock
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1721534365,
|
||||||
|
"narHash": "sha256-XpZOkaSJKdOsz1wU6JfO59Rx2fqtcarQ0y6ndIOKNpI=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "635563f245309ef5320f80c7ebcb89b2398d2949",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1721379653,
|
||||||
|
"narHash": "sha256-8MUgifkJ7lkZs3u99UDZMB4kbOxvMEXQZ31FO3SopZ0=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "1d9c2c9b3e71b9ee663d11c5d298727dace8d374",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
28
flake.nix
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
description = "A very basic flake";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||||
|
home-manager.url = "github:nix-community/home-manager";
|
||||||
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { nixpkgs, home-manager, ... } @ inputs:
|
||||||
|
# let
|
||||||
|
# pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
# in
|
||||||
|
{
|
||||||
|
nixosConfigurations.valanixos = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs; };
|
||||||
|
modules = [
|
||||||
|
./configuration.nix
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.users.aethrvmn = import ./vasilis.nix;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
39
hardware-configuration.nix
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/4f28915c-4f09-40d8-9c83-cd141be42049";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/ABDA-E71D";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices =
|
||||||
|
[ { device = "/dev/disk/by-uuid/dbb604f4-ece2-404e-8aa8-936124e1aa08"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# 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`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
57
home-manager/alacritty.nix
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
{ config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
programs.alacritty = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
|
||||||
|
window = {
|
||||||
|
padding.x = 10;
|
||||||
|
padding.y = 10;
|
||||||
|
# decorations = "None";
|
||||||
|
# opacity = 0.95; #Until blur is an option
|
||||||
|
blur = true;
|
||||||
|
dimensions.columns = 80;
|
||||||
|
dimensions.lines = 24;
|
||||||
|
};
|
||||||
|
|
||||||
|
font = {
|
||||||
|
size = 12;
|
||||||
|
|
||||||
|
normal.family = "MesloLGS NF";
|
||||||
|
};
|
||||||
|
|
||||||
|
cursor.style = "Underline";
|
||||||
|
|
||||||
|
colors = {
|
||||||
|
primary = {
|
||||||
|
background = "#2D2A2E";
|
||||||
|
foreground = "#fff1f3";
|
||||||
|
};
|
||||||
|
|
||||||
|
normal = {
|
||||||
|
black = "#2c2525";
|
||||||
|
red = "#fd6883";
|
||||||
|
green = "#adda78";
|
||||||
|
yellow = "#f9cc6c";
|
||||||
|
blue = "#f38d70";
|
||||||
|
magenta = "#a8a9eb";
|
||||||
|
cyan = "#85dacc";
|
||||||
|
white = "#fff1f3";
|
||||||
|
};
|
||||||
|
|
||||||
|
bright = {
|
||||||
|
black = "#72696a";
|
||||||
|
red = "#fd6883";
|
||||||
|
green = "#adda78";
|
||||||
|
yellow = "#f9cc6c";
|
||||||
|
blue = "#f38d70";
|
||||||
|
magenta = "#a8a9eb";
|
||||||
|
cyan = "#85dacc";
|
||||||
|
white = "#fff1f3";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
9
home-manager/dots.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{ config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Raw config files for the programs that Nix doesn't support yet
|
||||||
|
home.file.".config/labwc".source = ../labwc;
|
||||||
|
|
||||||
|
# This is a custom theme I'm working on for my system
|
||||||
|
home.file.".themes/Orzhov".source = ../Orzhov;
|
||||||
|
}
|
10
home-manager/git.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# userName = "Vasilis Valatsos";
|
||||||
|
# userEmail = "vasilvalat@gmail.com";
|
||||||
|
};
|
||||||
|
}
|
29
home-manager/gtk.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
dconf = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# theme = {
|
||||||
|
# name = "adwaita-dark";
|
||||||
|
# package = pkgs.gnome.gnome-themes-extra;
|
||||||
|
# };
|
||||||
|
|
||||||
|
gtk3.extraConfig = {
|
||||||
|
gtk-application-prefer-dark-theme = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk4.extraConfig = {
|
||||||
|
gtk-application-prefer-dark-theme = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
151
home-manager/helix.nix
Normal file
|
@ -0,0 +1,151 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.helix = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
defaultEditor = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
theme = "monokai_transparent";
|
||||||
|
|
||||||
|
editor = {
|
||||||
|
line-number = "relative";
|
||||||
|
bufferline = "always";
|
||||||
|
text-width = 200;
|
||||||
|
|
||||||
|
statusline = {
|
||||||
|
left = ["mode" "spinner" "separator"];
|
||||||
|
center = ["file-name" "read-only-indicator" "file-modification-indicator" "total-line-numbers"];
|
||||||
|
right = ["separator" "diagnostics" "selections" "register" "position" "file-encoding"];
|
||||||
|
};
|
||||||
|
|
||||||
|
file-picker.hidden = true;
|
||||||
|
|
||||||
|
indent-guides.render = true;
|
||||||
|
|
||||||
|
soft-wrap = {
|
||||||
|
enable = true;
|
||||||
|
max-wrap = 25;
|
||||||
|
max-indent-retain = 20;
|
||||||
|
wrap-at-text-width = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keys.normal = {
|
||||||
|
up = "no_op";
|
||||||
|
down = "no_op";
|
||||||
|
left = "no_op";
|
||||||
|
right = "no_op";
|
||||||
|
home = "no_op";
|
||||||
|
end = "no_op";
|
||||||
|
};
|
||||||
|
|
||||||
|
keys.insert= {
|
||||||
|
up = "no_op";
|
||||||
|
down = "no_op";
|
||||||
|
left = "no_op";
|
||||||
|
right = "no_op";
|
||||||
|
home = "no_op";
|
||||||
|
end = "no_op";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
themes = {
|
||||||
|
"monokai_transparent" = {
|
||||||
|
"inherits" = "monokai_pro";
|
||||||
|
"ui.background" = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
languages = with pkgs; {
|
||||||
|
language-server = {
|
||||||
|
|
||||||
|
typescript-language-server = {
|
||||||
|
command = "${nodePackages.typescript-language-server}/bin/typescript-language-server";
|
||||||
|
config.documentFormatting = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
nil = {
|
||||||
|
command = "${nil}/bin/nil";
|
||||||
|
config.nil = {
|
||||||
|
formatting.command = [ "${nixpkgs-fmt}/bin/nixpkgs-fmt" ];
|
||||||
|
nix.flake.autoEvalInputs = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
pylsp.command = "${python3Packages.python-lsp-server}/bin/pylsp";
|
||||||
|
|
||||||
|
ltex-ls.command = "${ltex-ls}/bin/ltex-ls";
|
||||||
|
|
||||||
|
r.command = "${R}/bin/R";
|
||||||
|
|
||||||
|
nimlangserver.command = "${nimlangserver}/bin/nimlangserver";
|
||||||
|
};
|
||||||
|
|
||||||
|
language =
|
||||||
|
let
|
||||||
|
jsTsWebLanguageServers = [
|
||||||
|
"typescript-language-server"
|
||||||
|
];
|
||||||
|
in [
|
||||||
|
{
|
||||||
|
name = "typescript";
|
||||||
|
language-servers = jsTsWebLanguageServers;
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name = "javascript";
|
||||||
|
language-servers = jsTsWebLanguageServers;
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name = "jsx";
|
||||||
|
language-servers = jsTsWebLanguageServers;
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name = "tsx";
|
||||||
|
language-servers = jsTsWebLanguageServers;
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name = "sql";
|
||||||
|
formatter.command = "pg_format";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name = "json";
|
||||||
|
language-servers = [
|
||||||
|
{
|
||||||
|
name = "vscode-json-language-server";
|
||||||
|
except-features = [ "format" ];
|
||||||
|
}
|
||||||
|
"efm-lsp-prettier"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name = "markdown";
|
||||||
|
language-servers = [
|
||||||
|
{
|
||||||
|
name = "marksman";
|
||||||
|
except-features = [ "format" ];
|
||||||
|
}
|
||||||
|
"ltex-ls"
|
||||||
|
"efm-lsp-prettier"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
name = "xml";
|
||||||
|
file-types = [ "xml" ];
|
||||||
|
formatter = {
|
||||||
|
command = "${pkgs.yq-go}/bin/yq";
|
||||||
|
args = [ "--input-format" "xml" "--output-format" "xml" "--indent" "2" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
55
home-manager/kanshi.nix
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
{ config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.kanshi = {
|
||||||
|
enable = true;
|
||||||
|
systemdTarget="";
|
||||||
|
|
||||||
|
settings = [
|
||||||
|
{
|
||||||
|
profile.name = "home_office";
|
||||||
|
profile.outputs = [
|
||||||
|
{
|
||||||
|
criteria = "DP-1";
|
||||||
|
position = "1080,550";
|
||||||
|
mode = "1920x1080@120Hz";
|
||||||
|
adaptiveSync = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
criteria = "DP-2";
|
||||||
|
position = "0,0";
|
||||||
|
mode = "1920x1080@120Hz";
|
||||||
|
transform = "90";
|
||||||
|
adaptiveSync = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
criteria = "HDMI-A-1";
|
||||||
|
position = "3000,550";
|
||||||
|
mode = "1920x1080@60Hz";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
profile.name = "laptop";
|
||||||
|
profile.outputs = [
|
||||||
|
{
|
||||||
|
criteria = "eDP-1";
|
||||||
|
mode = "1920x1080";
|
||||||
|
transform = "normal";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
# {
|
||||||
|
# profile.name = "tablet";
|
||||||
|
# profile.outputs = [
|
||||||
|
# {
|
||||||
|
# criteria = "eDP-1";
|
||||||
|
# mode = "1920x1080";
|
||||||
|
# transform = "180";
|
||||||
|
# }
|
||||||
|
# ];
|
||||||
|
# }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
20
home-manager/mako.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{ config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.mako = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
layer = "top";
|
||||||
|
|
||||||
|
output = "DP-1, eDP-1";
|
||||||
|
|
||||||
|
backgroundColor = "#4A5152";
|
||||||
|
|
||||||
|
borderSize = 2;
|
||||||
|
borderColor = "#BEBCAE";
|
||||||
|
|
||||||
|
defaultTimeout = 5000;
|
||||||
|
ignoreTimeout = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
126
home-manager/ohmyposh.nix
Normal file
|
@ -0,0 +1,126 @@
|
||||||
|
{ config, ... } :
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.oh-my-posh = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
settings = {
|
||||||
|
"console_title_template" = "{{ .Shell }} in {{ .Folder }}";
|
||||||
|
"final_space" = true;
|
||||||
|
"version" = 2;
|
||||||
|
"blocks" = [
|
||||||
|
{
|
||||||
|
"alignment" = "left";
|
||||||
|
"newline" = true;
|
||||||
|
"type" = "prompt";
|
||||||
|
"segments" = [
|
||||||
|
{
|
||||||
|
"template" = "{{ .Icon }} ";
|
||||||
|
"type" = "os";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"background" = "transparent";
|
||||||
|
"foreground" = "#bebcae";
|
||||||
|
"style" = "plain";
|
||||||
|
"template" = " {{ .Path }}";
|
||||||
|
"type" = "path";
|
||||||
|
"properties" = {
|
||||||
|
"style" = "full";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"background" = "transparent";
|
||||||
|
"foreground" = "white";
|
||||||
|
"style" = "plain";
|
||||||
|
"template" = " {{ if .UpstreamURL }}{{ url .UpstreamIcon .UpstreamURL }}{{ end }}{{ .HEAD }}{{ if .Working.Changed }} {{ .Working.String }}{{ end }}{{ if .Staging.Changed }} {{ .Staging.String }}{{ end }} ";
|
||||||
|
"type" = "git";
|
||||||
|
"properties" = {
|
||||||
|
"branch_max_length" = 25;
|
||||||
|
"fetch_status" = true;
|
||||||
|
"fetch_upstream_icon" = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"overflow" = "hidden";
|
||||||
|
"type" = "rprompt";
|
||||||
|
"segments" = [
|
||||||
|
{
|
||||||
|
"duration" = 0;
|
||||||
|
"namelength" = 0;
|
||||||
|
"text" = "";
|
||||||
|
"background" = "transparent";
|
||||||
|
"foreground" = "white";
|
||||||
|
"style" = "plain";
|
||||||
|
"template" = " ";
|
||||||
|
"type" = "node";
|
||||||
|
"properties" = {
|
||||||
|
"display_mode" = "files";
|
||||||
|
"fetch_package_manager" = false;
|
||||||
|
"home_enabled" = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"duration" = 0;
|
||||||
|
"namelength" = 0;
|
||||||
|
"text" = "";
|
||||||
|
"background" = "transparent";
|
||||||
|
"foreground" = "white";
|
||||||
|
"style" = "plain";
|
||||||
|
"template" = " ";
|
||||||
|
"type" = "go";
|
||||||
|
"properties" = {
|
||||||
|
"fetch_version" = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"background" = "transparent";
|
||||||
|
"foreground" = "white";
|
||||||
|
"style" = "plain";
|
||||||
|
"template" = " {{ .Venv }}";
|
||||||
|
"type" = "python";
|
||||||
|
"properties" = {
|
||||||
|
"display_mode" = "files";
|
||||||
|
"fetch_version" = false;
|
||||||
|
"fetch_virtual_env" = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"background" = "transparent";
|
||||||
|
"foreground" = "red";
|
||||||
|
"style" = "plain";
|
||||||
|
"template" = "{{ if .Error }} ✗ {{ end }}";
|
||||||
|
"type" = "status";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"background" = "transparent";
|
||||||
|
"foreground" = "#ac966d";
|
||||||
|
"style" = "plain";
|
||||||
|
"type" = "executiontime";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"alignment" = "left";
|
||||||
|
"newline" = true;
|
||||||
|
"type" = "prompt";
|
||||||
|
"segments" = [
|
||||||
|
{
|
||||||
|
"background" = "transparent";
|
||||||
|
"foreground" = "#ac966d";
|
||||||
|
"style" = "plain";
|
||||||
|
"template" = "❯";
|
||||||
|
"type" = "text";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
"transient_prompt" = {
|
||||||
|
"background" = "transparent";
|
||||||
|
"foreground" = "white";
|
||||||
|
"template" = "❯ ";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
227
home-manager/waybar.nix
Normal file
|
@ -0,0 +1,227 @@
|
||||||
|
{config, pkgs, ...}:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
mainBar = {
|
||||||
|
# General settings
|
||||||
|
reload_style_on_change = true;
|
||||||
|
|
||||||
|
output = [
|
||||||
|
"HDMI-A-1"
|
||||||
|
"DP-1"
|
||||||
|
"eDP-1"
|
||||||
|
];
|
||||||
|
|
||||||
|
layer = "bottom";
|
||||||
|
position = "top";
|
||||||
|
|
||||||
|
spacing = 0;
|
||||||
|
margin = "5";
|
||||||
|
|
||||||
|
# Modules definition
|
||||||
|
|
||||||
|
modules-left = [
|
||||||
|
"custom/media"
|
||||||
|
# "cava"
|
||||||
|
"pulseaudio"
|
||||||
|
];
|
||||||
|
|
||||||
|
modules-center = [
|
||||||
|
"clock"
|
||||||
|
"custom/weather"
|
||||||
|
];
|
||||||
|
|
||||||
|
modules-right = [
|
||||||
|
"network"
|
||||||
|
"bluetooth"
|
||||||
|
"battery"
|
||||||
|
"tray"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Modules Configuration
|
||||||
|
"battery" = {
|
||||||
|
states = {
|
||||||
|
warning = 30;
|
||||||
|
critical = 15;
|
||||||
|
};
|
||||||
|
format = "{icon} {capacity}%";
|
||||||
|
format-charging = " {capacity}%";
|
||||||
|
format-icons = [ "" "" "" "" "" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"bluetooth" = {
|
||||||
|
format = "On ";
|
||||||
|
format-off = "Off ";
|
||||||
|
format-connected = "{device_alias} ";
|
||||||
|
on-click = "alacritty -e bluetoothctl";
|
||||||
|
on-click-right = "sh ~/.dotfiles/scripts/toggle_bluetooth";
|
||||||
|
};
|
||||||
|
|
||||||
|
"cava" = {
|
||||||
|
# cava_config = "$HOME/.config/cava/cava.conf";
|
||||||
|
framerate = 30;
|
||||||
|
autosens = 1;
|
||||||
|
sensitivity = 100;
|
||||||
|
bars = 14;
|
||||||
|
lower_cutoff_freq = 50;
|
||||||
|
higher_cutoff_freq = 10000;
|
||||||
|
method = "pulse";
|
||||||
|
source = "auto";
|
||||||
|
stereo = true;
|
||||||
|
reverse = false;
|
||||||
|
bar_delimiter = 0;
|
||||||
|
monstercat = false;
|
||||||
|
waves = false;
|
||||||
|
noise_reduction = 0.77;
|
||||||
|
input_delay = 2;
|
||||||
|
format-icons = ["▁" "▂" "▃" "▄" "▅" "▆" "▇" "█" ];
|
||||||
|
actions = {
|
||||||
|
on-click-right = "mode";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"clock" = {
|
||||||
|
format = "{:%R %b %d}";
|
||||||
|
timezone = "Europe/Athens";
|
||||||
|
tooltip-format = "<tt>{calendar}</tt>";
|
||||||
|
calendar = {
|
||||||
|
mode = "year";
|
||||||
|
mode-mon-col = 3;
|
||||||
|
format = {
|
||||||
|
months = "<span color='#ffead3'><b>{}</b></span>";
|
||||||
|
days = "<span color='#ecc6d9'><b>{}</b></span>";
|
||||||
|
weeks = "<span color='#99ffdd'><b>{}</b></span>";
|
||||||
|
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
|
||||||
|
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
on-click = "thunderbird";
|
||||||
|
};
|
||||||
|
|
||||||
|
"network" = {
|
||||||
|
format-wifi = "{essid} 直";
|
||||||
|
format-disconnected = "Disconnected 睊";
|
||||||
|
format-disabled = "Off 睊";
|
||||||
|
on-click = "alacritty -e nmtui";
|
||||||
|
on-click-right = "~/.dotfiles/scripts/toggle_wifi";
|
||||||
|
};
|
||||||
|
|
||||||
|
"pulseaudio" = {
|
||||||
|
format = "{volume}% {icon}";
|
||||||
|
format-bluetooth = "{volume}% {icon} ";
|
||||||
|
format-muted = "婢";
|
||||||
|
format-icons = ["奔" "墳"];
|
||||||
|
scroll-step = 1;
|
||||||
|
on-click = "amixer sset Master toggle";
|
||||||
|
on-click-right = "pavucontrol";
|
||||||
|
};
|
||||||
|
|
||||||
|
"tray" = {
|
||||||
|
icon-size = 18;
|
||||||
|
spacing = 10;
|
||||||
|
show-passive-items = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
# Custom Modules
|
||||||
|
"custom/media" = {
|
||||||
|
return-type = "json";
|
||||||
|
exec = "waybar-mpris --autofocus --order 'SYMBOL:ARTIST:TITLE'";
|
||||||
|
on-click = "waybar-mpris --send toggle";
|
||||||
|
escape = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"custom/weather" = {
|
||||||
|
exec = "sh $HOME/.dotfiles/scripts/wittr.sh";
|
||||||
|
return-type = "json";
|
||||||
|
format = "{}";
|
||||||
|
spacing = 10;
|
||||||
|
tooltip = true;
|
||||||
|
interval = 900;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
style =
|
||||||
|
''
|
||||||
|
# General settings
|
||||||
|
* {
|
||||||
|
font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background: rgba(190, 188, 174,0.5);
|
||||||
|
color: #e9f3f0;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery,
|
||||||
|
#bluetooth,
|
||||||
|
#cava,
|
||||||
|
#clock,
|
||||||
|
#pulseaudio,
|
||||||
|
#tray,
|
||||||
|
#network,
|
||||||
|
#custom-media,
|
||||||
|
#custom-weather {
|
||||||
|
background-color: #4A5152;
|
||||||
|
padding-top: 1px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
border-radius: 10px 0px 0px 10px;
|
||||||
|
margin-right: 1px;
|
||||||
|
padding-right: 5px;
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
border-radius: 10px 0px 0px 10px;
|
||||||
|
margin-right:1px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#bluetooth,
|
||||||
|
#network {
|
||||||
|
border-radius: 10px;
|
||||||
|
margin-right: 10px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
border-radius: 0px 10px 10px 0px;
|
||||||
|
min-width: 10px;
|
||||||
|
margin-left: 1px;
|
||||||
|
padding-right: 10px;
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
border-radius: 0px 10px 10px 0px;
|
||||||
|
min-width: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media{
|
||||||
|
border-radius: 10px 0px 0px 10px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-weather {
|
||||||
|
border-radius: 0px 10px 10px 0px;
|
||||||
|
padding-right: 10px;
|
||||||
|
padding-left: 5px;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
48
home-manager/zsh.nix
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
autocd = true;
|
||||||
|
autosuggestion.enable = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
syntaxHighlighting.enable = true;
|
||||||
|
|
||||||
|
# dirHashes = {
|
||||||
|
# docs = "~/Documents"
|
||||||
|
# ...
|
||||||
|
# }
|
||||||
|
|
||||||
|
shellAliases = {
|
||||||
|
|
||||||
|
# Nix specific
|
||||||
|
nix-update = "sudo nixos-rebuild switch --flake ~/.dotfiles#valanixos";
|
||||||
|
nix-config = "hx ~/.dotfiles";
|
||||||
|
|
||||||
|
# Aliases for color options
|
||||||
|
ls = "eza --icons=always --color=always";
|
||||||
|
ll = "eza -a --color=always --long -tree --icons=always --no-time --no-user";
|
||||||
|
cat = "bat";
|
||||||
|
grep = "grep --color=auto";
|
||||||
|
egrep = "egrep --color=auto";
|
||||||
|
fgrep = "fgrep --color=auto";
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
# .. = "cd ..";
|
||||||
|
mv = "mv -i";
|
||||||
|
cp = "cp -i";
|
||||||
|
rm = "rm -i";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
initExtra = ''
|
||||||
|
eval "$(oh-my-posh init zsh --config /home/aethrvmn/.config/ohmyposh/config.json)"
|
||||||
|
eval "$(atuin init zsh)"
|
||||||
|
eval "$(ssh-agent -s)"
|
||||||
|
clear
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
32
labwc/autostart
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
# Configure output directives such as mode, position, scale and transform using kanshi.
|
||||||
|
kanshi >/dev/null 2>&1 &
|
||||||
|
|
||||||
|
# Use xrandr for x-wayland
|
||||||
|
xrandr --output DP-1 --primary &
|
||||||
|
|
||||||
|
# Set background image.
|
||||||
|
swww-daemon &
|
||||||
|
|
||||||
|
# Launch a panel such as yambar or waybar.
|
||||||
|
waybar >/dev/null 2>&1 &
|
||||||
|
|
||||||
|
# Enable notifications. Typically GNOME/KDE application notifications go
|
||||||
|
# through the org.freedesktop.Notifications D-Bus API and require a client such
|
||||||
|
# as mako to function correctly. Thunderbird is an example of this.
|
||||||
|
mako >/dev/null 2>&1 &
|
||||||
|
|
||||||
|
# Start the Thunar daemon for better startup
|
||||||
|
thunar --daemon &
|
||||||
|
|
||||||
|
## Set dark theme
|
||||||
|
sh ~/.themes/orzhovtheme.sh &
|
||||||
|
|
||||||
|
|
||||||
|
# Deploy swww wallpapers
|
||||||
|
swww img -o HDMI-A-1 ~/.dotfiles/wallpapers/hobbits.jpg &
|
||||||
|
swww img -o DP-1 ~/.dotfiles/wallpapers/statues.jpg &
|
||||||
|
swww img -o DP-2 ~/.dotfiles/wallpapers/bluemana.png &
|
||||||
|
swww img -o eDP-1 ~/.dotfiles/wallpapers/tree.jpg &
|
||||||
|
|
||||||
|
# Custom software
|
||||||
|
spotify &
|
36
labwc/environment
Executable file
|
@ -0,0 +1,36 @@
|
||||||
|
## Uncomment lines starting with one '#' to suit your needs.
|
||||||
|
|
||||||
|
## Use the XKB_DEFAULT_LAYOUT variable to set the keyboard layout. For example
|
||||||
|
## to start with Swedish keyboard layout set it to 'se'. If you are unsure what
|
||||||
|
## your country code is, refer to the layout section of:
|
||||||
|
## /usr/share/X11/xkb/rules/evdev.lst
|
||||||
|
##
|
||||||
|
## Multiple keyboard layouts can be set by comma-separating the country codes.
|
||||||
|
## If multiple layouts are used, specify the toggle-keybind using
|
||||||
|
## XKB_DEFAULT_OPTIONS as show below.
|
||||||
|
##
|
||||||
|
## For further details, see xkeyboard-config(7)
|
||||||
|
|
||||||
|
|
||||||
|
XKB_DEFAULT_LAYOUT=us,gr
|
||||||
|
XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle
|
||||||
|
|
||||||
|
## Force firefox to use wayland backend.
|
||||||
|
|
||||||
|
MOZ_ENABLE_WAYLAND=1
|
||||||
|
|
||||||
|
## Set cursor theme and size. Find system icons themes with:
|
||||||
|
## `find /usr/share/icons/ -type d -name "cursors"`
|
||||||
|
|
||||||
|
XCURSOR_THEME=breeze_cursors
|
||||||
|
XCURSOR_SIZE=24
|
||||||
|
|
||||||
|
|
||||||
|
## BEMENU stuff
|
||||||
|
BEMENU_OPTS= -n -i --tb "#2D2A2E" --tf "#AC9C6D" --fb "#2D2A2E" --nb "#2D2A2E" --ab "#2D2A2E" --hb "#2D2A2E" --hf "#AC9C6D" --line-height 30 "$@" --center --wrap --ignorecase --prompt '>' --list 12 --no-overlap --width-factor 0.5 --fn 'MesloLGS NF'
|
||||||
|
|
||||||
|
|
||||||
|
BEMENU_BACKEND=wayland
|
||||||
|
|
||||||
|
XCURSOR_THEME=Breeze
|
||||||
|
XCURSOR_SIZE=24
|
106
labwc/menu.xml
Executable file
|
@ -0,0 +1,106 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<openbox_menu>
|
||||||
|
<menu label="root-menu" id="root-menu">
|
||||||
|
<item label="Firefox" icon="firefox">
|
||||||
|
<action name="Execute"><command>firefox --name firefox</command></action>
|
||||||
|
</item>
|
||||||
|
<item label="Telegram Desktop" icon="telegram">
|
||||||
|
<action name="Execute"><command>telegram-desktop --</command></action>
|
||||||
|
</item>
|
||||||
|
<item label="Thunderbird" icon="thunderbird">
|
||||||
|
<action name="Execute"><command>thunderbird --name thunderbird</command></action>
|
||||||
|
</item>
|
||||||
|
<item label="File Manager" icon="org.xfce.thunar">
|
||||||
|
<action name="Execute"><command>thunar</command></action>
|
||||||
|
</item>
|
||||||
|
<separator/>
|
||||||
|
<menu id="Miscellaneous" label="Miscellaneous">
|
||||||
|
<item label="LocalSend" icon="localsend">
|
||||||
|
<action name="Execute"><command>/nix/store/dhyhij4g2mzrs4bkmhx12gzj9d0lgv6l-localsend-1.15.0/bin/localsend_app</command></action>
|
||||||
|
</item>
|
||||||
|
<item label="Czkawka" icon="com.github.qarmin.czkawka">
|
||||||
|
<action name="Execute"><command>czkawka_gui</command></action>
|
||||||
|
</item>
|
||||||
|
</menu> <!-- Accessories -->
|
||||||
|
<separator/>
|
||||||
|
<menu id="Development" label="Development">
|
||||||
|
<item label="btop++" icon="btop">
|
||||||
|
<action name="Execute"><command>alacritty -e btop</command></action>
|
||||||
|
</item>
|
||||||
|
<item label="Helix" icon="helix">
|
||||||
|
<action name="Execute"><command>alacritty -e helix</command></action>
|
||||||
|
</item>
|
||||||
|
<item label="Godot 4" icon="godot">
|
||||||
|
<action name="Execute"><command>/nix/store/a8w8z8xidwirlshcyxxldmxx1lskcqp7-godot4-4.2.2-stable/bin/godot4</command></action>
|
||||||
|
</item>
|
||||||
|
</menu>
|
||||||
|
<separator/>
|
||||||
|
<menu id="Games" label="Games">
|
||||||
|
<item label="Lutris" icon="lutris">
|
||||||
|
<action name="Execute"><command>lutris</command></action>
|
||||||
|
</item>
|
||||||
|
<item label="Steam" icon="steam">
|
||||||
|
<action name="Execute"><command>steam</command></action>
|
||||||
|
</item>
|
||||||
|
</menu> <!-- Games -->
|
||||||
|
<separator/>
|
||||||
|
<!-- <item label="Tablet Mode"> -->
|
||||||
|
<!-- <action name="Execute"><command>kanshictl switch tablet</command></action> -->
|
||||||
|
<!-- </item> -->
|
||||||
|
<!-- <item label="Laptop Mode"> -->
|
||||||
|
<!-- <action name="Execute"><command>kanshictl switch laptop</command></action> -->
|
||||||
|
<!-- </item> -->
|
||||||
|
<!-- <separator/> -->
|
||||||
|
<menu id="System" label="System">
|
||||||
|
<item label="Screenshot" icon="org.xfce.screenshooter">
|
||||||
|
<action name="Execute"><command>sh -c 'grim -g "$(slurp)" - | swappy -f -'</command></action>
|
||||||
|
</item>
|
||||||
|
<item label="Network Configuration" icon="preferences-system-network">
|
||||||
|
<action name="Execute"><command>nm-connection-editor</command></action>
|
||||||
|
</item>
|
||||||
|
<item label="File Manager Settings" icon="org.xfce.thunar">
|
||||||
|
<action name="Execute"><command>thunar-settings</command></action>
|
||||||
|
</item>
|
||||||
|
<item label="labwc-tweaks" icon="labwc_tweaks">
|
||||||
|
<action name="Execute"><command>labwc-tweaks</command></action>
|
||||||
|
</item>
|
||||||
|
<item label="PulseAudio Volume Control" icon="multimedia-volume-control">
|
||||||
|
<action name="Execute"><command>pavucontrol</command></action>
|
||||||
|
</item>
|
||||||
|
<item label="Removable Drives and Media" icon="org.xfce.volman">
|
||||||
|
<action name="Execute"><command>thunar-volman-settings</command></action>
|
||||||
|
</item>
|
||||||
|
</menu> <!-- System -->
|
||||||
|
<menu label="System Settings" id="System Settings">
|
||||||
|
<item label="Reconfigure">
|
||||||
|
<action name="Reconfigure"></action>
|
||||||
|
</item>
|
||||||
|
<item label="Logout">
|
||||||
|
<action name="Exit"></action>
|
||||||
|
</item>
|
||||||
|
<item label="Reboot">
|
||||||
|
<action name="Execute" command="systemctl reboot"></action>
|
||||||
|
</item>
|
||||||
|
<item label="Shutdown">
|
||||||
|
<action name="Execute" command="systemctl poweroff"></action>
|
||||||
|
</item>
|
||||||
|
</menu>
|
||||||
|
</menu> <!-- root-menu -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<menu label="sys-menu" id="sys-menu">
|
||||||
|
<item label="Reconfigure">
|
||||||
|
<action name="Reconfigure"></action>
|
||||||
|
</item>
|
||||||
|
<item label="Logout">
|
||||||
|
<action name="Exit"></action>
|
||||||
|
</item>
|
||||||
|
<item label="Reboot">
|
||||||
|
<action name="Execute" command="systemctl reboot"></action>
|
||||||
|
</item>
|
||||||
|
<item label="Shutdown">
|
||||||
|
<action name="Execute" command="systemctl poweroff"></action>
|
||||||
|
</item>
|
||||||
|
</menu>
|
||||||
|
</openbox_menu>
|
402
labwc/rc.xml
Executable file
|
@ -0,0 +1,402 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!--
|
||||||
|
This file contains all supported config elements & attributes with
|
||||||
|
default values.
|
||||||
|
-->
|
||||||
|
<labwc_config>
|
||||||
|
<core>
|
||||||
|
<decoration>server</decoration>
|
||||||
|
<gap>0</gap>
|
||||||
|
<adaptiveSync>no</adaptiveSync>
|
||||||
|
<reuseOutputMode>no</reuseOutputMode>
|
||||||
|
</core><!-- <font><theme> can be defined without an attribute to set all places -->
|
||||||
|
<theme>
|
||||||
|
<name>Orzhov</name>
|
||||||
|
<cornerRadius>0</cornerRadius>
|
||||||
|
<keepBorder>yes</keepBorder>
|
||||||
|
<font>
|
||||||
|
<name>MesloLGS NF</name>
|
||||||
|
<size>10</size>
|
||||||
|
<slant>normal</slant>
|
||||||
|
<weight>normal</weight>
|
||||||
|
</font>
|
||||||
|
</theme><!--
|
||||||
|
Just as for window-rules, 'identifier' relates to app_id for native Wayland
|
||||||
|
windows and WM_CLASS for XWayland clients.
|
||||||
|
-->
|
||||||
|
<windowSwitcher show="yes" preview="yes" outlines="yes">
|
||||||
|
<fields>
|
||||||
|
<field content="type" width="25%"></field>
|
||||||
|
<field content="identifier" width="25%"></field>
|
||||||
|
<field content="title" width="50%"></field>
|
||||||
|
</fields>
|
||||||
|
</windowSwitcher><!-- edge strength is in pixels -->
|
||||||
|
<resistance>
|
||||||
|
<screenEdgeStrength>20</screenEdgeStrength>
|
||||||
|
</resistance><!-- Show a simple resize and move indicator -->
|
||||||
|
<resize popupShow="Never"></resize>
|
||||||
|
<focus>
|
||||||
|
<followMouse>yes</followMouse>
|
||||||
|
<followMouseRequiresMovement>yes</followMouseRequiresMovement>
|
||||||
|
<raiseOnFocus>no</raiseOnFocus>
|
||||||
|
</focus><!-- Set range to 0 to disable window snapping completely -->
|
||||||
|
<snapping>
|
||||||
|
<range>1</range>
|
||||||
|
<topMaximize>yes</topMaximize>
|
||||||
|
</snapping><!-- Workspaces can be configured like this: -->
|
||||||
|
<desktops>
|
||||||
|
<popupTime>1000</popupTime>
|
||||||
|
<names>
|
||||||
|
<name>Workspace 1</name>
|
||||||
|
<name>Workspace 2</name>
|
||||||
|
<name>Workspace 3</name>
|
||||||
|
<name>Workspace 4</name>
|
||||||
|
</names>
|
||||||
|
</desktops>
|
||||||
|
<regions>
|
||||||
|
<region name="top-left" x="0%" y="0%" height="50%" width="50%"></region>
|
||||||
|
<region name="top" x="0%" y="0%" height="50%" width="100%"></region>
|
||||||
|
<region name="top-right" x="50%" y="0%" height="50%" width="50%"></region>
|
||||||
|
<region name="left" x="0%" y="0%" height="100%" width="50%"></region>
|
||||||
|
<region name="center" x="10%" y="10%" height="80%" width="80%"></region>
|
||||||
|
<region name="right" x="50%" y="0%" height="100%" width="50%"></region>
|
||||||
|
<region name="bottom-left" x="0%" y="50%" height="50%" width="50%"></region>
|
||||||
|
<region name="bottom" x="0%" y="50%" height="50%" width="100%"></region>
|
||||||
|
<region name="bottom-right" x="50%" y="50%" height="50%" width="50%"></region>
|
||||||
|
</regions><!--
|
||||||
|
Keybind actions are specified in labwc-actions(5)
|
||||||
|
The following keybind modifiers are supported:
|
||||||
|
W - window/super/logo
|
||||||
|
A - alt
|
||||||
|
C - ctrl
|
||||||
|
S - shift
|
||||||
|
|
||||||
|
Use <keyboard><default /> to load all the default keybinds (those listed
|
||||||
|
below). If the default keybinds are largely what you want, a sensible
|
||||||
|
approach could be to start the <keyboard> section with a <default />
|
||||||
|
element, and then (re-)define any special binds you need such as launching
|
||||||
|
your favourite terminal or application launcher. See rc.xml for an example.
|
||||||
|
-->
|
||||||
|
<keyboard>
|
||||||
|
<numlock>on</numlock>
|
||||||
|
<repeatRate>25</repeatRate>
|
||||||
|
<repeatDelay>600</repeatDelay>
|
||||||
|
<keybind key="W-r">
|
||||||
|
<action name="Reconfigure"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="Print">
|
||||||
|
<action name="Execute">
|
||||||
|
<command>sh -c 'grim -g "$(slurp)" - | swappy -f -'</command>
|
||||||
|
</action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="A-Tab">
|
||||||
|
<action name="NextWindow"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-Return">
|
||||||
|
<action name="Execute" command="alacritty"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-w">
|
||||||
|
<action name="Execute" command="firefox"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-S-w">
|
||||||
|
<action name="Execute" command="firefox --private-window"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-space">
|
||||||
|
<action name="Execute" command="j4-dmenu-desktop --dmenu=bemenu"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-s">
|
||||||
|
<action name="Execute" command="spotify"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-f">
|
||||||
|
<action name="Execute" command="thunar"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-m">
|
||||||
|
<action name="Execute" command="thunderbird"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-c">
|
||||||
|
<action name="Close"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-1">
|
||||||
|
<action name="GoToDesktop" to="1"></action>
|
||||||
|
<action name="Execute" command="bash -c 'echo 1 > /tmp/workspace'"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-2">
|
||||||
|
<action name="GoToDesktop" to="2"></action>
|
||||||
|
<action name="Execute" command="bash -c 'echo 2 > /tmp/workspace'"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-3">
|
||||||
|
<action name="GoToDesktop" to="3"></action>
|
||||||
|
<action name="Execute" command="bash -c 'echo 3 > /tmp/workspace'"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-4">
|
||||||
|
<action name="GoToDesktop" to="4"></action>
|
||||||
|
<action name="Execute" command="bash -c 'echo 4 > /tmp/workspace'"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-S-1">
|
||||||
|
<action name="SendToDesktop" to="1"></action>
|
||||||
|
<action name="Execute" command="bash -c 'echo 1 > /tmp/workspace'"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-S-2">
|
||||||
|
<action name="SendToDesktop" to="2"></action>
|
||||||
|
<action name="Execute" command="bash -c 'echo 2 > /tmp/workspace'"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-S-3">
|
||||||
|
<action name="SendToDesktop" to="3"></action>
|
||||||
|
<action name="Execute" command="bash -c 'echo 3 > /tmp/workspace'"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-S-4">
|
||||||
|
<action name="SendToDesktop" to="4"></action>
|
||||||
|
<action name="Execute" command="bash -c 'echo 4 > /tmp/workspace'"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-S-Left">
|
||||||
|
<action name="GoToDesktop" to="left"></action>
|
||||||
|
<action name="Execute" command="bash -c 'echo left > /tmp/workspace'"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-S-Right">
|
||||||
|
<action name="GoToDesktop" to="right"></action>
|
||||||
|
<action name="Execute" command="bash -c 'echo right > /tmp/workspace'"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-C-S-Right">
|
||||||
|
<action name="SendToDesktop" to="right"></action>
|
||||||
|
<action name="Execute" command="bash -c 'echo right > /tmp/workspace'"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-C-S-Left">
|
||||||
|
<action name="SendToDesktop" to="left"></action>
|
||||||
|
<action name="Execute" command="bash -c 'echo left > /tmp/workspace'"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-Left">
|
||||||
|
<action name="SnapToEdge" direction="left"></action>
|
||||||
|
<action name="Focus"></action>
|
||||||
|
<action name="Raise"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-Right">
|
||||||
|
<action name="SnapToEdge" direction="right"></action>
|
||||||
|
<action name="Focus"></action>
|
||||||
|
<action name="Raise"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-Up">
|
||||||
|
<action name="ToggleMaximize"></action>
|
||||||
|
<action name="Focus"></action>
|
||||||
|
<action name="Raise"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-Down">
|
||||||
|
<action name="SnapToRegion" region="center"></action>
|
||||||
|
<action name="Focus"></action>
|
||||||
|
<action name="Raise"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-A-C-Right">
|
||||||
|
<action name="SnapToRegion" region="top-right"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-A-Right">
|
||||||
|
<action name="SnapToRegion" region="bottom-right"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-A-C-Left">
|
||||||
|
<action name="SnapToRegion" region="top-left"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="W-A-Left">
|
||||||
|
<action name="SnapToRegion" region="bottom-left"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="A-Space">
|
||||||
|
<action name="ShowMenu" menu="client-menu"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="XF86_AudioLowerVolume">
|
||||||
|
<action name="Execute" command="amixer sset Master 5%-"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="XF86_AudioRaiseVolume">
|
||||||
|
<action name="Execute" command="amixer sset Master 5%+"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="XF86_AudioMute">
|
||||||
|
<action name="Execute" command="amixer sset Master toggle"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="XF86_MonBrightnessUp">
|
||||||
|
<action name="Execute" command="brightnessctl set +10%"></action>
|
||||||
|
</keybind>
|
||||||
|
<keybind key="XF86_MonBrightnessDown">
|
||||||
|
<action name="Execute" command="brightnessctl set 10%-"></action>
|
||||||
|
</keybind><!--
|
||||||
|
<keybind key="W-KP_7"><action name="SnapToRegion" region="top-left" /></keybind>
|
||||||
|
<keybind key="W-KP_8"><action name="SnapToRegion" region="top" /></keybind>
|
||||||
|
<keybind key="W-KP_9"><action name="SnapToRegion" region="top-right" /></keybind>
|
||||||
|
<keybind key="W-KP_4"><action name="SnapToRegion" region="left" /></keybind>
|
||||||
|
<keybind key="W-KP_5"><action name="SnapToRegion" region="center" /></keybind>
|
||||||
|
<keybind key="W-KP_6"><action name="SnapToRegion" region="right" /></keybind>
|
||||||
|
<keybind key="W-KP_1"><action name="SnapToRegion" region="bottom-left" /></keybind>
|
||||||
|
<keybind key="W-KP_2"><action name="SnapToRegion" region="bottom" /></keybind>
|
||||||
|
<keybind key="W-KP_3"><action name="SnapToRegion" region="bottom-right" /></keybind>
|
||||||
|
-->
|
||||||
|
</keyboard><!--
|
||||||
|
Multiple <mousebind> can exist within one <context>
|
||||||
|
Multiple <actions> can exist within one <mousebind>
|
||||||
|
Currently, the only openbox-action not supported is "Unshade"
|
||||||
|
|
||||||
|
Use <mouse><default /> to load all the default mousebinds (those listed
|
||||||
|
below). If the default mousebinds are largely what you want, a sensible
|
||||||
|
approach could be to start the <mouse> section with a <default />
|
||||||
|
element, and then (re-)define any special binds you need such as launching
|
||||||
|
a custom menu when right-clicking on your desktop. See rc.xml for an example.
|
||||||
|
-->
|
||||||
|
<mouse><!-- time is in ms -->
|
||||||
|
<doubleClickTime>500</doubleClickTime>
|
||||||
|
<scrollFactor>1.0</scrollFactor>
|
||||||
|
<context name="Frame">
|
||||||
|
<mousebind button="W-Left" action="Press">
|
||||||
|
<action name="Focus"></action>
|
||||||
|
<action name="Raise"></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="W-Left" action="Drag">
|
||||||
|
<action name="Move"></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="W-Right" action="Press">
|
||||||
|
<action name="Focus"></action>
|
||||||
|
<action name="Raise"></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="W-Right" action="Drag">
|
||||||
|
<action name="Resize"></action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Top">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"></action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Left">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"></action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Right">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"></action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Bottom">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"></action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="TRCorner">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"></action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="BRCorner">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"></action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="TLCorner">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"></action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="BLCorner">
|
||||||
|
<mousebind button="Left" action="Drag">
|
||||||
|
<action name="Resize"></action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Client">
|
||||||
|
<mousebind button="Left" action="Press">
|
||||||
|
<action name="Focus"></action>
|
||||||
|
<action name="Raise"></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Middle" action="Press">
|
||||||
|
<action name="Focus"></action>
|
||||||
|
<action name="Raise"></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Right" action="Press">
|
||||||
|
<action name="Focus"></action>
|
||||||
|
<action name="Raise"></action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
<context name="Root">//
|
||||||
|
<mousebind button="Left" action="Press">
|
||||||
|
<action name="ShowMenu" menu="root-menu"></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Right" action="Press">
|
||||||
|
<action name="ShowMenu" menu="sys-menu"></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind button="Middle" action="Press">
|
||||||
|
<action name="ShowMenu" menu="root-menu"></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind direction="Up" action="Scroll">
|
||||||
|
<action name="GoToDesktop" to="left" wrap="yes"></action>
|
||||||
|
<action name="Execute" command="bash -c 'echo left > /tmp/workspace'"></action>
|
||||||
|
</mousebind>
|
||||||
|
<mousebind direction="Down" action="Scroll">
|
||||||
|
<action name="GoToDesktop" to="right" wrap="yes"></action>
|
||||||
|
<action name="Execute" command="bash -c 'echo right > /tmp/workspace'"></action>
|
||||||
|
</mousebind>
|
||||||
|
</context>
|
||||||
|
</mouse><!--
|
||||||
|
The *category* element can be set to touch, non-touch, default or the name
|
||||||
|
of a device. You can obtain device names by running *libinput list-devices*
|
||||||
|
as root or member of the input group.
|
||||||
|
|
||||||
|
Tap is set to *yes* be default. All others are left blank in order to use
|
||||||
|
device defaults.
|
||||||
|
|
||||||
|
All values are [yes|no] except for:
|
||||||
|
- pointerSpeed [-1.0 to 1.0]
|
||||||
|
- accelProfile [flat|adaptive]
|
||||||
|
- tapButtonMap [lrm|lmr]
|
||||||
|
-->
|
||||||
|
<libinput>
|
||||||
|
<device category="">
|
||||||
|
<naturalScroll></naturalScroll>
|
||||||
|
<leftHanded></leftHanded>
|
||||||
|
<pointerSpeed></pointerSpeed>
|
||||||
|
<accelProfile></accelProfile>
|
||||||
|
<tap>yes</tap>
|
||||||
|
<tapButtonMap></tapButtonMap>
|
||||||
|
<tapAndDrag></tapAndDrag>
|
||||||
|
<dragLock></dragLock>
|
||||||
|
<middleEmulation></middleEmulation>
|
||||||
|
<disableWhileTyping></disableWhileTyping>
|
||||||
|
</device>
|
||||||
|
</libinput>
|
||||||
|
<!--
|
||||||
|
# Window Rules
|
||||||
|
# - Criteria can consist of 'identifier' or 'title' or both (in which case
|
||||||
|
# AND logic is used).
|
||||||
|
# - 'identifier' relates to app_id for native Wayland windows and WM_CLASS
|
||||||
|
# for XWayland clients.
|
||||||
|
# - Criteria can also contain `matchOnce="true"` meaning that the rule
|
||||||
|
# must only apply to the first instance of the window with that
|
||||||
|
# particular 'identifier' or 'title'.
|
||||||
|
# - Matching against patterns with '*' (wildcard) and '?' (joker) is
|
||||||
|
# supported. Pattern matching is case-insensitive.
|
||||||
|
|
||||||
|
<windowRules>
|
||||||
|
<windowRule identifier="*"><action name="Maximize"/></windowRule>
|
||||||
|
<windowRule identifier="foo" serverDecoration="yes"/>
|
||||||
|
<windowRule title="bar" serverDecoration="yes"/>
|
||||||
|
<windowRule identifier="baz" title="quax" serverDecoration="yes"/>
|
||||||
|
</windowRules>
|
||||||
|
|
||||||
|
# Example below for `lxqt-panel` and `pcmanfm-qt \-\-desktop`
|
||||||
|
# where 'matchOnce' is used to avoid applying rule to the panel configuration
|
||||||
|
# window with the same 'app_id'
|
||||||
|
|
||||||
|
<windowRules>
|
||||||
|
<windowRule identifier="lxqt-panel" matchOnce="true">
|
||||||
|
<skipTaskbar>yes</skipTaskbar>
|
||||||
|
<action name="MoveTo" x="0" y="0" />
|
||||||
|
<action name="ToggleAlwaysOnTop"/>
|
||||||
|
</windowRule>
|
||||||
|
<windowRule title="pcmanfm-desktop*">
|
||||||
|
<skipTaskbar>yes</skipTaskbar>
|
||||||
|
<skipWindowSwitcher>yes</skipWindowSwitcher>
|
||||||
|
<action name="MoveTo" x="0" y="0" />
|
||||||
|
<action name="ToggleAlwaysOnBottom"/>
|
||||||
|
</windowRule>
|
||||||
|
</windowRules>
|
||||||
|
<windowRules>
|
||||||
|
<windowRule identifier="*">
|
||||||
|
<action name="ToggleDecorations"></action>
|
||||||
|
</windowRule>
|
||||||
|
<windowRule identifier="*" serverDecoration="no">
|
||||||
|
<action name="ToggleDecorations"></action>
|
||||||
|
</windowRule> -For some reason Steam needs this-
|
||||||
|
</windowRules>
|
||||||
|
-->
|
||||||
|
</labwc_config>
|
194
scripts/mediaplayer.py
Executable file
|
@ -0,0 +1,194 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
import gi
|
||||||
|
gi.require_version("Playerctl", "2.0")
|
||||||
|
from gi.repository import Playerctl, GLib
|
||||||
|
from gi.repository.Playerctl import Player
|
||||||
|
import argparse
|
||||||
|
import logging
|
||||||
|
import sys
|
||||||
|
import signal
|
||||||
|
import gi
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
from typing import List
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
def signal_handler(sig, frame):
|
||||||
|
logger.info("Received signal to stop, exiting")
|
||||||
|
sys.stdout.write("\n")
|
||||||
|
sys.stdout.flush()
|
||||||
|
# loop.quit()
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
|
class PlayerManager:
|
||||||
|
def __init__(self, selected_player=None, excluded_player=[]):
|
||||||
|
self.manager = Playerctl.PlayerManager()
|
||||||
|
self.loop = GLib.MainLoop()
|
||||||
|
self.manager.connect(
|
||||||
|
"name-appeared", lambda *args: self.on_player_appeared(*args))
|
||||||
|
self.manager.connect(
|
||||||
|
"player-vanished", lambda *args: self.on_player_vanished(*args))
|
||||||
|
|
||||||
|
signal.signal(signal.SIGINT, signal_handler)
|
||||||
|
signal.signal(signal.SIGTERM, signal_handler)
|
||||||
|
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
|
||||||
|
self.selected_player = selected_player
|
||||||
|
self.excluded_player = excluded_player.split(',') if excluded_player else []
|
||||||
|
|
||||||
|
self.init_players()
|
||||||
|
|
||||||
|
def init_players(self):
|
||||||
|
for player in self.manager.props.player_names:
|
||||||
|
if player.name in self.excluded_player:
|
||||||
|
continue
|
||||||
|
if self.selected_player is not None and self.selected_player != player.name:
|
||||||
|
logger.debug(f"{player.name} is not the filtered player, skipping it")
|
||||||
|
continue
|
||||||
|
self.init_player(player)
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
logger.info("Starting main loop")
|
||||||
|
self.loop.run()
|
||||||
|
|
||||||
|
def init_player(self, player):
|
||||||
|
logger.info(f"Initialize new player: {player.name}")
|
||||||
|
player = Playerctl.Player.new_from_name(player)
|
||||||
|
player.connect("playback-status",
|
||||||
|
self.on_playback_status_changed, None)
|
||||||
|
player.connect("metadata", self.on_metadata_changed, None)
|
||||||
|
self.manager.manage_player(player)
|
||||||
|
self.on_metadata_changed(player, player.props.metadata)
|
||||||
|
|
||||||
|
def get_players(self) -> List[Player]:
|
||||||
|
return self.manager.props.players
|
||||||
|
|
||||||
|
def write_output(self, text, player):
|
||||||
|
logger.debug(f"Writing output: {text}")
|
||||||
|
|
||||||
|
output = {"text": text,
|
||||||
|
"class": "custom-" + player.props.player_name,
|
||||||
|
"alt": player.props.player_name}
|
||||||
|
|
||||||
|
sys.stdout.write(json.dumps(output) + "\n")
|
||||||
|
sys.stdout.flush()
|
||||||
|
|
||||||
|
def clear_output(self):
|
||||||
|
sys.stdout.write("\n")
|
||||||
|
sys.stdout.flush()
|
||||||
|
|
||||||
|
def on_playback_status_changed(self, player, status, _=None):
|
||||||
|
logger.debug(f"Playback status changed for player {player.props.player_name}: {status}")
|
||||||
|
self.on_metadata_changed(player, player.props.metadata)
|
||||||
|
|
||||||
|
def get_first_playing_player(self):
|
||||||
|
players = self.get_players()
|
||||||
|
logger.debug(f"Getting first playing player from {len(players)} players")
|
||||||
|
if len(players) > 0:
|
||||||
|
# if any are playing, show the first one that is playing
|
||||||
|
# reverse order, so that the most recently added ones are preferred
|
||||||
|
for player in players[::-1]:
|
||||||
|
if player.props.status == "Playing":
|
||||||
|
return player
|
||||||
|
# if none are playing, show the first one
|
||||||
|
return players[0]
|
||||||
|
else:
|
||||||
|
logger.debug("No players found")
|
||||||
|
return None
|
||||||
|
|
||||||
|
def show_most_important_player(self):
|
||||||
|
logger.debug("Showing most important player")
|
||||||
|
# show the currently playing player
|
||||||
|
# or else show the first paused player
|
||||||
|
# or else show nothing
|
||||||
|
current_player = self.get_first_playing_player()
|
||||||
|
if current_player is not None:
|
||||||
|
self.on_metadata_changed(current_player, current_player.props.metadata)
|
||||||
|
else:
|
||||||
|
self.clear_output()
|
||||||
|
|
||||||
|
def on_metadata_changed(self, player, metadata, _=None):
|
||||||
|
logger.debug(f"Metadata changed for player {player.props.player_name}")
|
||||||
|
player_name = player.props.player_name
|
||||||
|
artist = player.get_artist()
|
||||||
|
title = player.get_title()
|
||||||
|
|
||||||
|
track_info = ""
|
||||||
|
if player_name == "spotify" and "mpris:trackid" in metadata.keys() and ":ad:" in player.props.metadata["mpris:trackid"]:
|
||||||
|
track_info = "Advertisement"
|
||||||
|
elif artist is not None and title is not None:
|
||||||
|
track_info = f"{artist} - {title}"
|
||||||
|
else:
|
||||||
|
track_info = title
|
||||||
|
|
||||||
|
if track_info:
|
||||||
|
if player.props.status == "Playing":
|
||||||
|
track_info = " " + track_info
|
||||||
|
else:
|
||||||
|
track_info = " " + track_info
|
||||||
|
# only print output if no other player is playing
|
||||||
|
current_playing = self.get_first_playing_player()
|
||||||
|
if current_playing is None or current_playing.props.player_name == player.props.player_name:
|
||||||
|
self.write_output(track_info, player)
|
||||||
|
else:
|
||||||
|
logger.debug(f"Other player {current_playing.props.player_name} is playing, skipping")
|
||||||
|
|
||||||
|
def on_player_appeared(self, _, player):
|
||||||
|
logger.info(f"Player has appeared: {player.name}")
|
||||||
|
if player.name in self.excluded_player:
|
||||||
|
logger.debug(
|
||||||
|
"New player appeared, but it's in exclude player list, skipping")
|
||||||
|
return
|
||||||
|
if player is not None and (self.selected_player is None or player.name == self.selected_player):
|
||||||
|
self.init_player(player)
|
||||||
|
else:
|
||||||
|
logger.debug(
|
||||||
|
"New player appeared, but it's not the selected player, skipping")
|
||||||
|
|
||||||
|
def on_player_vanished(self, _, player):
|
||||||
|
logger.info(f"Player {player.props.player_name} has vanished")
|
||||||
|
self.show_most_important_player()
|
||||||
|
|
||||||
|
def parse_arguments():
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
|
||||||
|
# Increase verbosity with every occurrence of -v
|
||||||
|
parser.add_argument("-v", "--verbose", action="count", default=0)
|
||||||
|
|
||||||
|
parser.add_argument("-x", "--exclude", "- Comma-separated list of excluded player")
|
||||||
|
|
||||||
|
# Define for which player we"re listening
|
||||||
|
parser.add_argument("--player")
|
||||||
|
|
||||||
|
parser.add_argument("--enable-logging", action="store_true")
|
||||||
|
|
||||||
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
arguments = parse_arguments()
|
||||||
|
|
||||||
|
# Initialize logging
|
||||||
|
if arguments.enable_logging:
|
||||||
|
logfile = os.path.join(os.path.dirname(
|
||||||
|
os.path.realpath(__file__)), "media-player.log")
|
||||||
|
logging.basicConfig(filename=logfile, level=logging.DEBUG,
|
||||||
|
format="%(asctime)s %(name)s %(levelname)s:%(lineno)d %(message)s")
|
||||||
|
|
||||||
|
# Logging is set by default to WARN and higher.
|
||||||
|
# With every occurrence of -v it's lowered by one
|
||||||
|
logger.setLevel(max((3 - arguments.verbose) * 10, 0))
|
||||||
|
|
||||||
|
logger.info("Creating player manager")
|
||||||
|
if arguments.player:
|
||||||
|
logger.info(f"Filtering for player: {arguments.player}")
|
||||||
|
if arguments.exclude:
|
||||||
|
logger.info(f"Exclude player {arguments.exclude}")
|
||||||
|
|
||||||
|
player = PlayerManager(arguments.player, arguments.exclude)
|
||||||
|
player.run()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
11
scripts/toggle_bluetooth
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Check the current Bluetooth power state
|
||||||
|
state=$(bluetoothctl show | grep "Powered:" | awk '{print $2}')
|
||||||
|
|
||||||
|
# Toggle Bluetooth power state
|
||||||
|
if [ "$state" == "yes" ]; then
|
||||||
|
bluetoothctl power off
|
||||||
|
else
|
||||||
|
bluetoothctl power on
|
||||||
|
fi
|
11
scripts/toggle_wifi
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Check the current Wi-Fi state
|
||||||
|
state=$(nmcli radio wifi)
|
||||||
|
|
||||||
|
# Toggle Wi-Fi state
|
||||||
|
if [ "$state" == "enabled" ]; then
|
||||||
|
nmcli radio wifi off
|
||||||
|
else
|
||||||
|
nmcli radio wifi on
|
||||||
|
fi
|
14
scripts/wittr.sh
Executable file
|
@ -0,0 +1,14 @@
|
||||||
|
#!/usr/bin/sh
|
||||||
|
|
||||||
|
# Fetch weather data with the required format
|
||||||
|
req=$(curl -s wttr.in/?format="%t|%l|%c|%f|%h|%C")
|
||||||
|
|
||||||
|
# Extract the temperature and weather symbol for the bar
|
||||||
|
bar=$(echo $req | awk -F "|" '{print $1" "$3}')
|
||||||
|
|
||||||
|
# Extract the tooltip information, which includes location and detailed weather
|
||||||
|
tooltip=$(echo $req | awk -F "|" '{print $2" ("$3") "$4", "$6}')
|
||||||
|
|
||||||
|
# Output the JSON
|
||||||
|
echo "{\"text\":\"$bar\", \"tooltip\":\"$tooltip\"}"
|
||||||
|
|
46
scripts/workspaces
Executable file
|
@ -0,0 +1,46 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# <config>
|
||||||
|
NUMBER=4
|
||||||
|
SYMBOL_CURRENT=" "
|
||||||
|
SYMBOL_OTHER=" "
|
||||||
|
PIPE=/tmp/workspace
|
||||||
|
WRAP=true
|
||||||
|
# </config>
|
||||||
|
|
||||||
|
# format_line takes the current workspace number [1..N] and prints a string
|
||||||
|
# representing the list of workspaces (e.g. 4 -> "0 0 0 1 0")
|
||||||
|
format_line() {
|
||||||
|
before=`yes $SYMBOL_OTHER 2>/dev/null | head -n $(($1 - 1))`
|
||||||
|
after=`yes $SYMBOL_OTHER 2>/dev/null | head -n $(($NUMBER - $1))`
|
||||||
|
echo $before $SYMBOL_CURRENT $after
|
||||||
|
}
|
||||||
|
|
||||||
|
# remove an existing pipe and make a new one
|
||||||
|
rm -f $PIPE
|
||||||
|
mkfifo $PIPE
|
||||||
|
|
||||||
|
# print initial state
|
||||||
|
current=1
|
||||||
|
format_line $current
|
||||||
|
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
if read input <$PIPE; then
|
||||||
|
if [ $input == "right" ]; then input=$((current + 1)); fi
|
||||||
|
if [ $input == "left" ]; then input=$((current - 1)); fi
|
||||||
|
|
||||||
|
if (( $input < 1 )); then
|
||||||
|
if [ "$WRAP" == false ]; then continue; fi
|
||||||
|
input=$NUMBER
|
||||||
|
fi
|
||||||
|
if (( $input > $NUMBER )); then
|
||||||
|
if [ "$WRAP" == false ]; then continue; fi
|
||||||
|
input=1
|
||||||
|
fi
|
||||||
|
if (( $input == $current )); then continue; fi
|
||||||
|
|
||||||
|
format_line $input
|
||||||
|
current=$input
|
||||||
|
fi
|
||||||
|
done
|
23
system/boot.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{ config, pkgs, ...}:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
boot={
|
||||||
|
|
||||||
|
loader = {
|
||||||
|
systemd-boot.enable = true;
|
||||||
|
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
initrd.kernelModules = [ "amdgpu" ];
|
||||||
|
|
||||||
|
kernelModules = [ "v4l2loopback" ];
|
||||||
|
|
||||||
|
extraModulePackages = [ pkgs.linuxPackages.v4l2loopback ];
|
||||||
|
|
||||||
|
extraModprobeConfig = ''
|
||||||
|
options v4l2loopback exclusive_caps=1 devices=1
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
27
system/hardware.nix
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
hardware = {
|
||||||
|
|
||||||
|
bluetooth = {
|
||||||
|
enable = true;
|
||||||
|
powerOnBoot = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
graphics = {
|
||||||
|
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
amdvlk
|
||||||
|
rocmPackages.clr.icd
|
||||||
|
];
|
||||||
|
|
||||||
|
extraPackages32 = with pkgs.pkgsi686Linux; [
|
||||||
|
libva
|
||||||
|
];
|
||||||
|
|
||||||
|
# setLdLibraryPath = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
pulseaudio.enable = false;
|
||||||
|
};
|
||||||
|
}
|
34
system/labwc.nix
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
xserver.enable = true;
|
||||||
|
|
||||||
|
greetd = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings={
|
||||||
|
default_session={
|
||||||
|
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --user-menu -rti --asterisks --cmd labwc";
|
||||||
|
user = "greeter";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
labwc.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.greetd.serviceConfig = {
|
||||||
|
Type = "idle";
|
||||||
|
StandardInput = "tty";
|
||||||
|
StandardOutput = "tty";
|
||||||
|
StandardError = "journal"; # Without this errors will spam on screen
|
||||||
|
|
||||||
|
# Without these bootlogs will spam on screen
|
||||||
|
TTYReset = true;
|
||||||
|
TTYVHangup = true;
|
||||||
|
TTYVTDisallocate = true;
|
||||||
|
};
|
||||||
|
}
|
25
system/network.nix
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
networking = {
|
||||||
|
|
||||||
|
hostName = "valanixos"; # Define your hostname.
|
||||||
|
|
||||||
|
# Enables wireless support via wpa_supplicant.
|
||||||
|
# wireless.enable = true;
|
||||||
|
|
||||||
|
# Configure network proxy if necessary
|
||||||
|
# proxy.default = "http://user:password@proxy:port/";
|
||||||
|
# proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||||
|
|
||||||
|
# Enable networking
|
||||||
|
networkmanager.enable = true;
|
||||||
|
|
||||||
|
# Open ports in the firewall.
|
||||||
|
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||||
|
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||||
|
# Or disable the firewall altogether.
|
||||||
|
# networking.firewall.enable = false;
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
42
system/programs.nix
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
firefox.enable = true;
|
||||||
|
|
||||||
|
file-roller.enable = true;
|
||||||
|
|
||||||
|
labwc.enable = true;
|
||||||
|
|
||||||
|
nix-ld = {
|
||||||
|
enable = true;
|
||||||
|
libraries = with pkgs; [
|
||||||
|
zlib
|
||||||
|
libgcc
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
steam.enable = true;
|
||||||
|
|
||||||
|
thunar = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
plugins = with pkgs.xfce; [
|
||||||
|
thunar-archive-plugin
|
||||||
|
thunar-media-tags-plugin
|
||||||
|
thunar-volman
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
zsh.enable = true;
|
||||||
|
|
||||||
|
# Some programs need SUID wrappers, can be configured further or are
|
||||||
|
# started in user sessions.
|
||||||
|
# programs.mtr.enable = true;
|
||||||
|
# programs.gnupg.agent = {
|
||||||
|
# enable = true;
|
||||||
|
# enableSSHSupport = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
28
system/services.nix
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
xserver = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
videoDrivers = ["amdgpu"];
|
||||||
|
xkb.layout = "us";
|
||||||
|
wacom.enable = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
printing.enable = true;
|
||||||
|
gvfs.enable = true;
|
||||||
|
tumbler.enable = true;
|
||||||
|
|
||||||
|
pipewire = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
audio.enable = true;
|
||||||
|
|
||||||
|
pulse.enable = true;
|
||||||
|
jack.enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
17
system/systemd.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
systemd = {
|
||||||
|
user.services.kanshi = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
description = "kanshi daemon";
|
||||||
|
wantedBy = [];
|
||||||
|
after = [];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
ExecStart = "${pkgs.kanshi}/bin/kanshi -c kanshi_config_file";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
17
system/xfce.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.xserver = {
|
||||||
|
enable=true;
|
||||||
|
|
||||||
|
desktopManager={
|
||||||
|
xterm.enable=false;
|
||||||
|
xfce.enable=true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# displayManager={
|
||||||
|
# lightdm.enable=true;
|
||||||
|
# defaultSession="xfce";
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
}
|
60
vasilis.nix
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
{config, pkgs, lib, ...}:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
./home-manager/alacritty.nix
|
||||||
|
./home-manager/dots.nix
|
||||||
|
./home-manager/git.nix
|
||||||
|
./home-manager/gtk.nix
|
||||||
|
./home-manager/helix.nix
|
||||||
|
./home-manager/kanshi.nix
|
||||||
|
./home-manager/mako.nix
|
||||||
|
./home-manager/ohmyposh.nix
|
||||||
|
./home-manager/waybar.nix
|
||||||
|
./home-manager/zsh.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home.username = "aethrvmn";
|
||||||
|
home.homeDirectory = "/home/aethrvmn";
|
||||||
|
home.stateVersion = "23.11";
|
||||||
|
home.sessionVariables.GTK_THEME = "Adwaita-dark";
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
_1password-gui
|
||||||
|
atuin
|
||||||
|
bemenu
|
||||||
|
btop
|
||||||
|
czkawka
|
||||||
|
cowsay
|
||||||
|
eza
|
||||||
|
fastfetch
|
||||||
|
filezilla
|
||||||
|
git
|
||||||
|
godot_4
|
||||||
|
grim
|
||||||
|
hugo
|
||||||
|
imv
|
||||||
|
jitsi
|
||||||
|
j4-dmenu-desktop
|
||||||
|
kanshi
|
||||||
|
labwc-tweaks
|
||||||
|
localsend
|
||||||
|
lutris
|
||||||
|
mpd
|
||||||
|
mpv
|
||||||
|
obs-studio
|
||||||
|
pavucontrol
|
||||||
|
qbittorrent
|
||||||
|
slurp
|
||||||
|
spotify
|
||||||
|
swappy
|
||||||
|
swww
|
||||||
|
telegram-desktop
|
||||||
|
thunderbird
|
||||||
|
waybar-mpris
|
||||||
|
wlr-randr
|
||||||
|
xfce.mousepad
|
||||||
|
xfce.xfce4-settings
|
||||||
|
];
|
||||||
|
}
|
BIN
wallpapers/bluemana.png
Executable file
After Width: | Height: | Size: 3.5 MiB |
BIN
wallpapers/city.jpg
Normal file
After Width: | Height: | Size: 98 KiB |
BIN
wallpapers/hobbits.jpg
Executable file
After Width: | Height: | Size: 399 KiB |
BIN
wallpapers/singlestatue.jpg
Normal file
After Width: | Height: | Size: 448 KiB |
BIN
wallpapers/statues.jpg
Normal file
After Width: | Height: | Size: 1 MiB |
BIN
wallpapers/tree.jpg
Normal file
After Width: | Height: | Size: 2.4 MiB |