Many changes
93
colors/kaolin-dark/default.nix
Normal file
@ -0,0 +1,93 @@
|
||||
# Kaolin-dark scheme by alternateved (http://github.com/alternateved)
|
||||
# Inspired by (https://github.com/ogdenwebb/emacs-kaolin-themes)
|
||||
|
||||
{ config, ... }: {
|
||||
custom.colors = {
|
||||
base00 = "#18181B";
|
||||
base01 = "#222225";
|
||||
base02 = "#4B5254";
|
||||
base03 = "#545C5E";
|
||||
base04 = "#879193";
|
||||
base05 = "#9ba5a7";
|
||||
base06 = "#d0d0d4";
|
||||
base07 = "#E4E4E8";
|
||||
base08 = "#CD5C60";
|
||||
base09 = "#DBAC66";
|
||||
base0A = "#F2C866";
|
||||
base0B = "#6FB593";
|
||||
base0C = "#4D9391";
|
||||
base0D = "#91B9C7";
|
||||
base0E = "#845A84";
|
||||
base0F = "#E36D5B";
|
||||
};
|
||||
|
||||
custom.colors.kitty.enable = false;
|
||||
programs.kitty.settings = with config.custom.colors; {
|
||||
## name: Kaolin Dark
|
||||
## author: Ogden Webb
|
||||
## license: GNU GPLv3
|
||||
## blurb: Dark jade theme inspired by Sierra.vim.
|
||||
|
||||
# The basic colors
|
||||
foreground = base07;
|
||||
background = "#000000";
|
||||
# background = base00;
|
||||
|
||||
selection_foreground = base00;
|
||||
selection_background = base07;
|
||||
|
||||
# Cursor colors
|
||||
cursor = base07;
|
||||
cursor_text_color = "#ffffff";
|
||||
|
||||
# kitty window border colors
|
||||
active_border_color = base0C;
|
||||
inactive_border_color = base02;
|
||||
|
||||
# Tab bar colors
|
||||
active_tab_background = base07;
|
||||
active_tab_foreground = base00;
|
||||
inactive_tab_background = base04;
|
||||
inactive_tab_foreground = base00;
|
||||
|
||||
# black
|
||||
color0 = base02;
|
||||
color8 = base04;
|
||||
|
||||
# red
|
||||
color1 = base08;
|
||||
color9 = base0F;
|
||||
|
||||
# green
|
||||
color2 = base0B;
|
||||
color10 = "#72CCBA";
|
||||
|
||||
# yellow
|
||||
color3 = base09;
|
||||
color11 = base0A;
|
||||
|
||||
# blue
|
||||
color4 = base0D;
|
||||
color12 = "#97B8DE";
|
||||
|
||||
# magenta
|
||||
color5 = base0E;
|
||||
color13 = "#8C629C";
|
||||
|
||||
# cyan
|
||||
color6 = base0C;
|
||||
color14 = "#5096AB";
|
||||
|
||||
# white
|
||||
color7 = base07;
|
||||
color15 = "#EFEFF1";
|
||||
|
||||
# other
|
||||
color16 = base09;
|
||||
color17 = base0F;
|
||||
color18 = base01;
|
||||
color19 = base02;
|
||||
color20 = base04;
|
||||
color21 = base06;
|
||||
};
|
||||
}
|
20
colors/monokai-dark/default.nix
Normal file
@ -0,0 +1,20 @@
|
||||
{ ... }: {
|
||||
custom.colors = {
|
||||
base00 = "#272822";
|
||||
base01 = "#383830";
|
||||
base02 = "#49483e";
|
||||
base03 = "#75715e";
|
||||
base04 = "#a59f85";
|
||||
base05 = "#f8f8f2";
|
||||
base06 = "#f5f4f1";
|
||||
base07 = "#f9f8f5";
|
||||
base08 = "#f92672";
|
||||
base09 = "#fd971f";
|
||||
base0A = "#f4bf75";
|
||||
base0B = "#a6e22e";
|
||||
base0C = "#a1efe4";
|
||||
base0D = "#66d9ef";
|
||||
base0E = "#ae81ff";
|
||||
base0F = "#cc6633";
|
||||
};
|
||||
}
|
48
flake.lock
generated
Normal file
@ -0,0 +1,48 @@
|
||||
{
|
||||
"nodes": {
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1705708511,
|
||||
"narHash": "sha256-3f4BkRY70Fj7yvuo87c4QQPAjnt571g2wJ50jY7hnYc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "ce4b88c465d928f4f8b75d0920f1788d5b65ca94",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1705496572,
|
||||
"narHash": "sha256-rPIe9G5EBLXdBdn9ilGc0nq082lzQd0xGGe092R/5QE=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "842d9d80cfd4560648c785f8a4e6f3b096790e19",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
36
flake.nix
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
description = "Nixos config flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# newmpkgs = {
|
||||
# url = "github:EpsilonKu/newm-atha";
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
# };
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, ... }@inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in
|
||||
{
|
||||
|
||||
nixosConfigurations.default = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
};
|
||||
modules = [
|
||||
./host/configuration.nix
|
||||
inputs.home-manager.nixosModules.default
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
}
|
103
home/default.nix
Normal file
@ -0,0 +1,103 @@
|
||||
{ config, pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
# Home Manager needs a bit of information about you and the paths it should
|
||||
# manage.
|
||||
home.username = "dakedres";
|
||||
home.homeDirectory = "/home/dakedres";
|
||||
|
||||
# This value determines the Home Manager release that your configuration is
|
||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
||||
# introduces backwards incompatible changes.
|
||||
#
|
||||
# You should not change this value, even if you update Home Manager. If you do
|
||||
# want to update the value, then make sure to first check the Home Manager
|
||||
# release notes.
|
||||
home.stateVersion = "23.11"; # Please read the comment before changing.
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
# The home.packages option allows you to install Nix packages into your
|
||||
# environment.
|
||||
home.packages = with pkgs; [
|
||||
# # It is sometimes useful to fine-tune packages, for example, by applying
|
||||
# # overrides. You can do that directly here, just don't forget the
|
||||
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
|
||||
# # fonts?
|
||||
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
|
||||
|
||||
# # You can also create simple shell scripts directly inside your
|
||||
# # configuration. For example, this adds a command 'my-hello' to your
|
||||
# # environment:
|
||||
# (pkgs.writeShellScriptBin "my-hello" ''
|
||||
# echo "Hello, ${config.home.username}!"
|
||||
# '')
|
||||
|
||||
# Util
|
||||
neofetch
|
||||
bitwarden
|
||||
qutebrowser
|
||||
discord
|
||||
|
||||
# Visual
|
||||
imagemagick
|
||||
kate
|
||||
|
||||
# Audio
|
||||
ncspot
|
||||
|
||||
# Environment
|
||||
fishPlugins.grc
|
||||
];
|
||||
|
||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||
# plain files is through 'home.file'.
|
||||
home.file = {
|
||||
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
||||
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
||||
# # symlink to the Nix store copy.
|
||||
# ".screenrc".source = dotfiles/screenrc;
|
||||
|
||||
# # You can also set the file content immediately.
|
||||
# ".gradle/gradle.properties".text = ''
|
||||
# org.gradle.console=verbose
|
||||
# org.gradle.daemon.idletimeout=3600000
|
||||
# '';
|
||||
};
|
||||
|
||||
# Home Manager can also manage your environment variables through
|
||||
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
||||
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
||||
# either
|
||||
#
|
||||
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||
#
|
||||
# or
|
||||
#
|
||||
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
||||
#
|
||||
# or
|
||||
#
|
||||
# /etc/profiles/per-user/dakedres/etc/profile.d/hm-session-vars.sh
|
||||
#
|
||||
home.sessionVariables = {
|
||||
# EDITOR = "emacs";
|
||||
};
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
set fish_greeting # Disable greeting
|
||||
'';
|
||||
shellAliases = {
|
||||
ll = "ls -lh";
|
||||
};
|
||||
};
|
||||
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
shellIntegration.enableFishIntegration = true;
|
||||
};
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
}
|
7
home/newm.nix
Normal file
@ -0,0 +1,7 @@
|
||||
{ config, pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
homeManager.home.file = {
|
||||
"testFile".text = "test";
|
||||
};
|
||||
}
|
144
host/configuration.nix
Normal file
@ -0,0 +1,144 @@
|
||||
# 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, pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
username = "dakedres";
|
||||
in {
|
||||
custom.username = username;
|
||||
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
inputs.home-manager.nixosModules.default
|
||||
./user.nix
|
||||
];
|
||||
|
||||
users.users.${username} = {
|
||||
isNormalUser = true;
|
||||
description = "Dakedres";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
shell = pkgs.fish;
|
||||
};
|
||||
|
||||
# We live in a society
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# That's what it's called
|
||||
networking.hostName = "vulpes";
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# I don't need no fig leaves
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/Boise";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
services.xserver.displayManager.sddm.enable = true;
|
||||
services.xserver.desktopManager.plasma5.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver = {
|
||||
layout = "us";
|
||||
xkb.options = "caps:swapescape,altwin:swap_alt_win";
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable bluetooth
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.powerOnBoot = true;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
|
||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||
# no need to redefine it in your config for now)
|
||||
#media-session.enable = true;
|
||||
};
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
|
||||
services.flatpak.enable = true;
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
git
|
||||
wget
|
||||
micro
|
||||
openconnect
|
||||
btop
|
||||
];
|
||||
|
||||
# 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;
|
||||
# };
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
# services.openssh.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# 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?
|
||||
|
||||
}
|
39
host/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 = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/81248e4c-95cf-4427-9df1-57f39b62a5a3";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/E50D-8471";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/25b9170e-c60a-49c1-929a-0fe6fc1e15ea"; }
|
||||
];
|
||||
|
||||
# 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.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
112
host/home.nix
Normal file
@ -0,0 +1,112 @@
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
|
||||
terminal = "kitty";
|
||||
# newm = inputs.newmpkgs.packages.${system}.newm-atha;
|
||||
|
||||
packages = [
|
||||
# Utility
|
||||
pkgs.bitwarden
|
||||
pkgs.vimiv-qt
|
||||
|
||||
# Visual
|
||||
pkgs.imagemagick
|
||||
pkgs.kate
|
||||
|
||||
#Games
|
||||
pkgs.prismlauncher-qt5
|
||||
|
||||
# Env
|
||||
pkgs.eww-wayland
|
||||
pkgs.socat
|
||||
pkgs.jq
|
||||
];
|
||||
|
||||
nonFreePackages = [
|
||||
"discord"
|
||||
];
|
||||
|
||||
in {
|
||||
imports = [ ../colors/monokai-dark ];
|
||||
custom.wallpaper = ../wallpapers/blip-blip-blip-blip.jpg;
|
||||
|
||||
home = {
|
||||
sessionVariables = {
|
||||
EDITOR = "kate";
|
||||
BROWSER = "qutebrowser";
|
||||
TERMINAL = "kitty";
|
||||
TERM = "kitty";
|
||||
FILEMANAGER = "kitty lf";
|
||||
|
||||
# Tell Electron apps it's wayland
|
||||
NIXOS_OZONE_WL = 1;
|
||||
};
|
||||
|
||||
sessionPath = [
|
||||
"$HOME/.local/bin"
|
||||
];
|
||||
|
||||
stateVersion = "23.11";
|
||||
};
|
||||
|
||||
# Add packages
|
||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||
builtins.elem (lib.getName pkg) nonFreePackages;
|
||||
|
||||
home.packages =
|
||||
map (name: pkgs.${name}) nonFreePackages
|
||||
++ packages;
|
||||
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# Directories
|
||||
xdg.userDirs = {
|
||||
createDirectories = false;
|
||||
download = "$HOME/downloads";
|
||||
music = "$HOME/music";
|
||||
};
|
||||
|
||||
# Openers
|
||||
xdg.mimeApps.defaultApplications = {
|
||||
"inode/directory" = [
|
||||
# "lf.desktop"
|
||||
"kitty-open.desktop"
|
||||
];
|
||||
};
|
||||
|
||||
# Standard programs
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
paging = "never";
|
||||
};
|
||||
};
|
||||
|
||||
# lf
|
||||
programs.lf = {
|
||||
enable = true;
|
||||
commands = {
|
||||
q = "quit"; # Why didn't they do this btw
|
||||
};
|
||||
keybindings = {
|
||||
"<enter>" = "$$OPENER $f";
|
||||
};
|
||||
};
|
||||
|
||||
xdg.desktopEntries.lf = {
|
||||
name = "LF";
|
||||
genericName = "File browser";
|
||||
exec = "lf %U";
|
||||
terminal = true;
|
||||
mimeType = [ "inode/directory" ];
|
||||
};
|
||||
|
||||
# Take over my xsession
|
||||
xsession.enable = true;
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
}
|
33
host/homeOptions.nix
Normal file
@ -0,0 +1,33 @@
|
||||
{ lib, ... }: {
|
||||
options.custom = {
|
||||
wallpaper = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
};
|
||||
|
||||
colors =
|
||||
let
|
||||
colorOption = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "#000000";
|
||||
};
|
||||
in
|
||||
{
|
||||
base00 = colorOption;
|
||||
base01 = colorOption;
|
||||
base02 = colorOption;
|
||||
base03 = colorOption;
|
||||
base04 = colorOption;
|
||||
base05 = colorOption;
|
||||
base06 = colorOption;
|
||||
base07 = colorOption;
|
||||
base08 = colorOption;
|
||||
base09 = colorOption;
|
||||
base0A = colorOption;
|
||||
base0B = colorOption;
|
||||
base0C = colorOption;
|
||||
base0D = colorOption;
|
||||
base0E = colorOption;
|
||||
base0F = colorOption;
|
||||
};
|
||||
};
|
||||
}
|
10
host/modules.nix
Normal file
@ -0,0 +1,10 @@
|
||||
[
|
||||
../modules/fish
|
||||
../modules/qutebrowser
|
||||
../modules/kitty
|
||||
|
||||
../modules/ncspot
|
||||
|
||||
../modules/bspwm
|
||||
../modules/blueman
|
||||
]
|
176
host/swhkdrc
Normal file
@ -0,0 +1,176 @@
|
||||
#
|
||||
# wm independent hotkeys
|
||||
#
|
||||
|
||||
# Open kitty
|
||||
alt + Return
|
||||
kitty
|
||||
|
||||
# Open floating kitty
|
||||
alt + shift + Return
|
||||
bsp-float kitty
|
||||
|
||||
# launch program
|
||||
alt + @space
|
||||
rofi -show run
|
||||
|
||||
# launch program as root
|
||||
alt + shift + @space
|
||||
rofi-ask rofi -show drun -run-command "sudo -A {cmd}"
|
||||
|
||||
# make sxhkd reload its configuration files:
|
||||
alt + Escape
|
||||
pkill -USR1 -x sxhkd; notify-send 'Key daemon reloaded'
|
||||
|
||||
# Start a qutebrowser search
|
||||
alt + o
|
||||
qutesearch
|
||||
|
||||
# Show keybinds
|
||||
alt + slash
|
||||
sxhkd-help
|
||||
|
||||
# Show clipmenu
|
||||
alt + v
|
||||
rofi -modi "clipboard:greenclip print" -show clipboard -run-command '{cmd}'
|
||||
|
||||
alt + shift + v
|
||||
greenclip clear
|
||||
|
||||
#
|
||||
# bspwm hotkeys
|
||||
#
|
||||
|
||||
# quit/restart bspwm
|
||||
alt + shift + {q,r}
|
||||
bspc {quit,wm -r}
|
||||
|
||||
# close and kill
|
||||
alt + {_,shift + }w
|
||||
bspc node -{c,k}
|
||||
|
||||
alt + q
|
||||
bspc node -c
|
||||
|
||||
# alternate between the tiled and monocle layout
|
||||
alt + m
|
||||
bspc desktop -l next
|
||||
|
||||
# send the newest marked node to the newest preselected node
|
||||
alt + y
|
||||
bspc node newest.marked.local -n newest.!automatic.local
|
||||
|
||||
# swap the current node and the biggest window
|
||||
alt + g
|
||||
bspc node -s biggest.window
|
||||
|
||||
# Reveal hidden kitty (scratchpad)
|
||||
alt + super + Return
|
||||
bsp-toggle-visibility KittyScratch "kitty --class KittyScratch"
|
||||
|
||||
# flameshot
|
||||
alt + Print
|
||||
flameshot gui
|
||||
|
||||
#
|
||||
# state/flags
|
||||
#
|
||||
|
||||
# set the window state
|
||||
alt + {z,shift + z,x,f}
|
||||
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
|
||||
|
||||
# set the node flags
|
||||
alt + ctrl + {m,x,y,z}
|
||||
bspc node -g {marked,locked,sticky,private}
|
||||
|
||||
#
|
||||
# focus/swap
|
||||
#
|
||||
|
||||
# focus the node in the given direction
|
||||
alt + {h,j,k,l,Left,Down,Up,Right}
|
||||
bspc node -{f} {west,south,north,east,west,south,north,east}
|
||||
|
||||
# focus the node for the given path jump
|
||||
alt + {p,b,comma,period}
|
||||
bspc node -f @{parent,brother,first,second}
|
||||
|
||||
# focus the next/previous window in the current desktop
|
||||
alt + {a,d}
|
||||
bspc node -f {next,prev}.local.!hidden.window
|
||||
|
||||
# focus the next/previous desktop in the current monitor
|
||||
alt + bracket{left,right}
|
||||
bspc desktop -f {prev,next}.local
|
||||
|
||||
# focus the last node/desktop
|
||||
alt + {grave,Tab}
|
||||
bspc {node,desktop} -f last
|
||||
|
||||
# focus the older or newer node in the focus history
|
||||
alt + {o,i}
|
||||
bspc wm -h off; \
|
||||
bspc node {older,newer} -f; \
|
||||
bspc wm -h on
|
||||
|
||||
# focus or send to the given desktop
|
||||
alt + {_,shift + }{1-9,0}
|
||||
bspc {desktop -f,node -d} '^{1-9,10}'
|
||||
|
||||
#
|
||||
# preselect
|
||||
#
|
||||
|
||||
# preselect the direction
|
||||
alt + ctrl + shift {h,j,k,l,Left,Down,Up,Right}
|
||||
bspc node -p {west,south,north,east,west,south,north,east}
|
||||
|
||||
# preselect the ratio
|
||||
alt + ctrl + {1-9}
|
||||
bspc node -o 0.{1-9}
|
||||
|
||||
# cancel the preselection for the focused node
|
||||
alt + ctrl + space
|
||||
bspc node -p cancel
|
||||
|
||||
# cancel the preselection for the focused desktop
|
||||
alt + ctrl + shift + space
|
||||
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
|
||||
|
||||
#
|
||||
# move/resize
|
||||
#
|
||||
|
||||
# Resize a window by moving one of its side outward/inward
|
||||
alt + s ; {h,j,k,l,Left,Down,Up,Right}
|
||||
STEP=20; SELECTION={1,2,3,4,1,2,3,4}; \
|
||||
bspc node -z $(echo "left -$STEP 0,bottom 0 $STEP,top 0 -$STEP,right $STEP 0" | cut -d',' -f$SELECTION) || \
|
||||
bspc node -z $(echo "right -$STEP 0,top 0 $STEP,bottom 0 -$STEP,left $STEP 0" | cut -d',' -f$SELECTION)
|
||||
|
||||
# move a floating window
|
||||
alt + {h,j,k,l}
|
||||
bspc node -v {-30 0,0 20,0 -30,20 0}
|
||||
|
||||
# move a not-floating window
|
||||
alt + shift + {h,j,k,l,Left,Down,Up,Right}
|
||||
bsp-smove {west,south,north,east,west,south,north,east}
|
||||
|
||||
#
|
||||
# tabs
|
||||
#
|
||||
|
||||
# move in/out of tabbed container
|
||||
alt + ctrl + {h,j,k,l,Left,Down,Up,Right}
|
||||
tabc-smart-detach {west,south,north,east,west,south,north,east}
|
||||
|
||||
# tab/untab window
|
||||
alt + t
|
||||
id=$(bspc query -N -n); \
|
||||
[[ "$(tabc printclass $id)" == "tabbed" ]] \
|
||||
&& tabc detach $id \
|
||||
|| tabc create $id
|
||||
|
||||
# toggle autoattach in tabbed container
|
||||
alt + shift + t
|
||||
tabc autoattach $(bspc query -N -n)
|
41
host/user.nix
Normal file
@ -0,0 +1,41 @@
|
||||
{ config, lib, inputs, ... }:
|
||||
|
||||
let
|
||||
modules = import ./modules.nix;
|
||||
username = config.custom.username;
|
||||
in {
|
||||
options.custom = {
|
||||
username = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "dakedres";
|
||||
};
|
||||
};
|
||||
|
||||
config.home-manager.users."${username}" = {
|
||||
imports =
|
||||
(builtins.filter
|
||||
(path: builtins.pathExists path)
|
||||
(builtins.map
|
||||
(path: path + "/home.nix")
|
||||
modules
|
||||
)
|
||||
) ++ [
|
||||
./home.nix
|
||||
./homeOptions.nix
|
||||
];
|
||||
|
||||
config.home = {
|
||||
username = username;
|
||||
homeDirectory = "/home/${username}";
|
||||
};
|
||||
};
|
||||
|
||||
imports =
|
||||
(builtins.filter
|
||||
(path: builtins.pathExists path)
|
||||
(builtins.map
|
||||
(path: path + "/default.nix")
|
||||
modules
|
||||
)
|
||||
);
|
||||
}
|
3
modules/blueman/default.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{ ... }: {
|
||||
services.blueman.enable = true;
|
||||
}
|
3
modules/blueman/home.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{ ... }: {
|
||||
services.blueman-applet.enable = true;
|
||||
}
|
3
modules/bspwm/default.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{ ... }: {
|
||||
services.xserver.windowManager.bspwm.enable = true;
|
||||
}
|
77
modules/bspwm/home.nix
Normal file
@ -0,0 +1,77 @@
|
||||
{ pkgs, lib, config, ... }: {
|
||||
imports = [
|
||||
../qutesearch/home.nix
|
||||
../tint2/home.nix
|
||||
../rofi/home.nix
|
||||
];
|
||||
|
||||
home.packages = [
|
||||
pkgs.feh
|
||||
pkgs.flameshot
|
||||
];
|
||||
|
||||
services.network-manager-applet.enable = true;
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-kde
|
||||
];
|
||||
configPackages = [
|
||||
pkgs.xdg-desktop-portal-kde
|
||||
];
|
||||
};
|
||||
|
||||
# handled by home manager
|
||||
# home.sessionVariables = {
|
||||
# # Tell java it's in no-reparenting land
|
||||
# "_JAVA_AWT_WM_NONREPARENTING" = 1;
|
||||
# };
|
||||
|
||||
services.sxhkd.enable = true;
|
||||
xdg.configFile."sxhkd/sxhkdrc" = {
|
||||
source = ./sxhkdrc;
|
||||
executable = true;
|
||||
};
|
||||
|
||||
home.file.".local/bin" = {
|
||||
source = ./scripts;
|
||||
recursive = true;
|
||||
executable = true;
|
||||
};
|
||||
|
||||
xsession.windowManager.bspwm = {
|
||||
enable = true;
|
||||
|
||||
monitors = {
|
||||
"eDP-1" = [ "I" "II" "III" "IV" "V" ];
|
||||
};
|
||||
|
||||
settings = {
|
||||
border_width = 1;
|
||||
window_gap = 4;
|
||||
split_ratio = 0.52;
|
||||
|
||||
pointer_modifier = "super";
|
||||
pointer_action1 = "move";
|
||||
pointer_action2 = "resize_corner";
|
||||
|
||||
focus_follows_pointer = true;
|
||||
pointer_follows_focus = true;
|
||||
};
|
||||
|
||||
rules = {
|
||||
Gimp = {
|
||||
state = "floating";
|
||||
};
|
||||
};
|
||||
|
||||
startupPrograms = [
|
||||
# "pgrep -x sxhkd > /dev/null || sxhkd &"
|
||||
"wmname LG3D"
|
||||
# "xsetroot -cursor_name left_ptr &"
|
||||
"tint2"
|
||||
"feh --bg-scale ${config.custom.wallpaper}"
|
||||
];
|
||||
};
|
||||
}
|
3
modules/bspwm/scripts/bsp-float
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
# Open an app in float mode
|
||||
bspc rule -a \* -o state=floating && $@
|
14
modules/bspwm/scripts/bsp-floating-only
Executable file
@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ ! -z $1 ]; then
|
||||
# FLOATING_DESKTOP_ID=$(bspc query -D -d '^3')
|
||||
FLOATING_DESKTOP_ID=$1
|
||||
|
||||
bspc subscribe node_add | while read -a msg ; do
|
||||
desk_id=${msg[2]}
|
||||
wid=${msg[4]}
|
||||
[ "$FLOATING_DESKTOP_ID" = "$desk_id" ] && bspc node "$wid" -t floating
|
||||
done
|
||||
else
|
||||
echo "No desktop provided"
|
||||
fi
|
60
modules/bspwm/scripts/bsp-smove
Executable file
@ -0,0 +1,60 @@
|
||||
#!/bin/sh
|
||||
|
||||
# A more fluid way of moving windows with BSPWM, which is meant to be
|
||||
# implemented in SXHKD. If there is a window in the given direction,
|
||||
# swap places with it. Else if there is a receptacle move to it
|
||||
# ("consume" its place). Otherwise create a receptacle in the given
|
||||
# direction by splitting the entire viewport (circumvents the tiling
|
||||
# scheme while respecting the current split ratio configuration). In
|
||||
# the latter scenario, inputting the direction twice will thus move the
|
||||
# focused window out of its current layout and into the receptacle.
|
||||
#
|
||||
# Part of my dotfiles: https://gitlab.com/protesilaos/dotfiles
|
||||
#
|
||||
# Copyright (c) 2019 Protesilaos Stavrou <info@protesilaos.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
[ "$#" -eq 1 ] || { echo "Pass only one argument: north,east,south,west"; exit 1; }
|
||||
|
||||
# Check if argument is a valid direction.
|
||||
case "$1" in
|
||||
north|east|south|west)
|
||||
dir="$1"
|
||||
;;
|
||||
*)
|
||||
echo "Not a valid argument."
|
||||
echo "Use one of: north,east,south,west"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
_query_nodes() {
|
||||
bspc query -N -n "$@"
|
||||
}
|
||||
|
||||
# Do not operate on floating windows!
|
||||
[ -z "$(_query_nodes focused.floating)" ] || { echo "Only move tiled windows."; exit 1; }
|
||||
|
||||
receptacle="$(_query_nodes 'any.leaf.!window')"
|
||||
|
||||
# This regulates the behaviour documented in the description.
|
||||
if [ -n "$(_query_nodes "${dir}.!floating")" ]; then
|
||||
bspc node -s "$dir"
|
||||
elif [ -n "$receptacle" ]; then
|
||||
bspc node focused -n "$receptacle" --follow
|
||||
else
|
||||
bspc node @/ -p "$dir" -i && bspc node -n "$receptacle" --follow
|
||||
fi
|
17
modules/bspwm/scripts/bsp-status
Executable file
@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
|
||||
declare -A layout_symbols
|
||||
|
||||
layout_symbols[monocle]="mono"
|
||||
layout_symbols[tiled]="tiled"
|
||||
|
||||
send_symbol() {
|
||||
echo ${layout_symbols[$1]}
|
||||
}
|
||||
|
||||
# Optional, sends first output. This requires jq
|
||||
send_symbol $(bspc query -T --desktop focused | jq -r '.layout')
|
||||
|
||||
bspc subscribe desktop_layout | while read -a msg ; do
|
||||
send_symbol ${msg[3]}
|
||||
done
|
37
modules/bspwm/scripts/bsp-toggle-visibility
Executable file
@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ $# = 0 ]; then
|
||||
cat <<EOF
|
||||
Usage: $(basename "${0}") process_name [executable_name] [--take-first]
|
||||
process_name As recognized by 'xdo' command
|
||||
executable_name As used for launching from terminal
|
||||
--take-first In case 'xdo' returns multiple process IDs
|
||||
EOF
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Get id of process by class name and then fallback to instance name
|
||||
id=$(xdo id -N "${1}" || xdo id -n "${1}")
|
||||
|
||||
executable=${1}
|
||||
shift
|
||||
|
||||
while [ -n "${1}" ]; do
|
||||
case ${1} in
|
||||
--take-first)
|
||||
id=$(head -1 <<<"${id}" | cut -f1 -d' ')
|
||||
;;
|
||||
*)
|
||||
executable=${1}
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if [ -z "${id}" ]; then
|
||||
${executable}
|
||||
else
|
||||
while read -r instance; do
|
||||
bspc node "${instance}" --flag hidden --to-monitor focused --focus
|
||||
done <<<"${id}"
|
||||
fi
|
1830
modules/bspwm/scripts/pfetch
Executable file
9
modules/bspwm/scripts/rofi-ask
Executable file
@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Take password prompt from STDIN, print password to STDOUT
|
||||
# the sed piece just removes the colon from the provided
|
||||
# prompt: rofi -p already gives us a colon
|
||||
rofi -dmenu \
|
||||
-password \
|
||||
-no-fixed-num-lines \
|
||||
-p "$(printf "$1" | sed s/://)"
|
5
modules/bspwm/scripts/sxhkd-help
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
awk '/^[a-z]/ && last {print "<small>",$0,"\t",last,"</small>"} {last=""} /^#/{last=$0}' ~/.config/sxhkd/sxhkdrc{,.common} |
|
||||
column -t -s $'\t' |
|
||||
rofi -dmenu -i -markup-rows -no-show-icons -width 1000 -lines 15
|
9
modules/bspwm/scripts/tabc-smart-detach
Executable file
@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
id=$(bspc query -N -n);
|
||||
if [ "$(tabc printclass $id)" == "tabbed" ]; then
|
||||
bspc node -p $1;
|
||||
tabc detach $id;
|
||||
else \
|
||||
tabc attach $id $(bspc query -N -n $1);
|
||||
fi
|
176
modules/bspwm/sxhkdrc
Executable file
@ -0,0 +1,176 @@
|
||||
#
|
||||
# wm independent hotkeys
|
||||
#
|
||||
|
||||
# Open kitty
|
||||
super + Return
|
||||
kitty
|
||||
|
||||
# Open floating kitty
|
||||
super + shift + Return
|
||||
bsp-float kitty
|
||||
|
||||
# launch program (drun)
|
||||
super + @space
|
||||
rofi -show drun
|
||||
|
||||
# launch program (standard run)
|
||||
super + shift + @space
|
||||
rofi -show run
|
||||
|
||||
# make sxhkd reload its configuration files:
|
||||
super + Escape
|
||||
pkill -USR1 -x sxhkd; notify-send 'Key daemon reloaded'
|
||||
|
||||
# Start a qutebrowser search
|
||||
super + o
|
||||
qutesearch
|
||||
|
||||
# Show keybinds
|
||||
super + slash
|
||||
sxhkd-help
|
||||
|
||||
# Show clipmenu
|
||||
super + v
|
||||
rofi -modi "clipboard:greenclip print" -show clipboard -run-command '{cmd}'
|
||||
|
||||
super + shift + v
|
||||
greenclip clear
|
||||
|
||||
#
|
||||
# bspwm hotkeys
|
||||
#
|
||||
|
||||
# quit/restart bspwm
|
||||
super + shift + {q,r}
|
||||
bspc {quit,wm -r}
|
||||
|
||||
# close and kill
|
||||
super + {_,shift + }w
|
||||
bspc node -{c,k}
|
||||
|
||||
super + q
|
||||
bspc node -c
|
||||
|
||||
# superernate between the tiled and monocle layout
|
||||
super + m
|
||||
bspc desktop -l next
|
||||
|
||||
# send the newest marked node to the newest preselected node
|
||||
super + y
|
||||
bspc node newest.marked.local -n newest.!automatic.local
|
||||
|
||||
# swap the current node and the biggest window
|
||||
super + g
|
||||
bspc node -s biggest.window
|
||||
|
||||
# Reveal hidden kitty (scratchpad)
|
||||
super + alt + Return
|
||||
bsp-toggle-visibility KittyScratch "kitty --class KittyScratch"
|
||||
|
||||
# flameshot
|
||||
super + Print
|
||||
flameshot gui
|
||||
|
||||
#
|
||||
# state/flags
|
||||
#
|
||||
|
||||
# set the window state
|
||||
super + {z,shift + z,x,f}
|
||||
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
|
||||
|
||||
# set the node flags
|
||||
super + ctrl + {m,x,y,z}
|
||||
bspc node -g {marked,locked,sticky,private}
|
||||
|
||||
#
|
||||
# focus/swap
|
||||
#
|
||||
|
||||
# focus the node in the given direction
|
||||
super + {h,j,k,l,Left,Down,Up,Right}
|
||||
bspc node -{f} {west,south,north,east,west,south,north,east}
|
||||
|
||||
# focus the node for the given path jump
|
||||
super + {p,b,comma,period}
|
||||
bspc node -f @{parent,brother,first,second}
|
||||
|
||||
# focus the next/previous window in the current desktop
|
||||
super + {a,d}
|
||||
bspc node -f {next,prev}.local.!hidden.window
|
||||
|
||||
# focus the next/previous desktop in the current monitor
|
||||
super + bracket{left,right}
|
||||
bspc desktop -f {prev,next}.local
|
||||
|
||||
# focus the last node/desktop
|
||||
super + {grave,Tab}
|
||||
bspc {node,desktop} -f last
|
||||
|
||||
# focus the older or newer node in the focus history
|
||||
# super + {o,i}
|
||||
# bspc wm -h off; \
|
||||
# bspc node {older,newer} -f; \
|
||||
# bspc wm -h on
|
||||
|
||||
# focus or send to the given desktop
|
||||
super + {_,shift + }{1-9,0}
|
||||
bspc {desktop -f,node -d} '^{1-9,10}'
|
||||
|
||||
#
|
||||
# preselect
|
||||
#
|
||||
|
||||
# preselect the direction
|
||||
super + ctrl + shift {h,j,k,l,Left,Down,Up,Right}
|
||||
bspc node -p {west,south,north,east,west,south,north,east}
|
||||
|
||||
# preselect the ratio
|
||||
super + ctrl + {1-9}
|
||||
bspc node -o 0.{1-9}
|
||||
|
||||
# cancel the preselection for the focused node
|
||||
super + ctrl + space
|
||||
bspc node -p cancel
|
||||
|
||||
# cancel the preselection for the focused desktop
|
||||
super + ctrl + shift + space
|
||||
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
|
||||
|
||||
#
|
||||
# move/resize
|
||||
#
|
||||
|
||||
# Resize a window by moving one of its side outward/inward
|
||||
super + s ; {h,j,k,l,Left,Down,Up,Right}
|
||||
STEP=20; SELECTION={1,2,3,4,1,2,3,4}; \
|
||||
bspc node -z $(echo "left -$STEP 0,bottom 0 $STEP,top 0 -$STEP,right $STEP 0" | cut -d',' -f$SELECTION) || \
|
||||
bspc node -z $(echo "right -$STEP 0,top 0 $STEP,bottom 0 -$STEP,left $STEP 0" | cut -d',' -f$SELECTION)
|
||||
|
||||
# move a floating window
|
||||
super + {h,j,k,l}
|
||||
bspc node -v {-30 0,0 20,0 -30,20 0}
|
||||
|
||||
# move a window
|
||||
super + shift + {h,j,k,l,Left,Down,Up,Right}
|
||||
bsp-smove {west,south,north,east,west,south,north,east}
|
||||
|
||||
#
|
||||
# tabs
|
||||
#
|
||||
|
||||
# move in/out of tabbed container
|
||||
super + ctrl + {h,j,k,l,Left,Down,Up,Right}
|
||||
tabc-smart-detach {west,south,north,east,west,south,north,east}
|
||||
|
||||
# tab/untab window
|
||||
super + t
|
||||
id=$(bspc query -N -n); \
|
||||
[[ "$(tabc printclass $id)" == "tabbed" ]] \
|
||||
&& tabc detach $id \
|
||||
|| tabc create $id
|
||||
|
||||
# toggle autoattach in tabbed container
|
||||
super + shift + t
|
||||
tabc autoattach $(bspc query -N -n)
|
10
modules/discord/home.nix
Normal file
@ -0,0 +1,10 @@
|
||||
{ pkgs, lib, ... }: {
|
||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||
builtins.elem (lib.getName pkg) [
|
||||
"discord"
|
||||
];
|
||||
|
||||
home.packages = [
|
||||
pkgs.discord
|
||||
];
|
||||
}
|
4
modules/fish/default.nix
Normal file
@ -0,0 +1,4 @@
|
||||
{ ... }: {
|
||||
# Although we are configuring fish in home manager, this is needed for vendor completions within fish.
|
||||
programs.fish.enable = true;
|
||||
}
|
16
modules/fish/home.nix
Normal file
@ -0,0 +1,16 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = [
|
||||
pkgs.grc
|
||||
pkgs.fishPlugins.grc
|
||||
];
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
set fish_greeting # Disable greeting
|
||||
'';
|
||||
shellAliases = {
|
||||
l = "ls -lh";
|
||||
};
|
||||
};
|
||||
}
|
13
modules/homeModule.nix
Normal file
@ -0,0 +1,13 @@
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
options = {
|
||||
homeManager = lib.mkOption {
|
||||
type = lib.types.set;
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
home-manager.users.dakedres = config.homeManager;
|
||||
};
|
||||
}
|
8
modules/hyprland/default.nix
Normal file
@ -0,0 +1,8 @@
|
||||
{ pkgs, ... }: {
|
||||
# Add to xsessions
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
portalPackage = pkgs.xdg-desktop-portal-hyprland;
|
||||
};
|
||||
}
|
135
modules/hyprland/home.nix
Normal file
@ -0,0 +1,135 @@
|
||||
{ pkgs, ... }: {
|
||||
imports = [
|
||||
../qutesearch/home.nix
|
||||
../waybar/home.nix
|
||||
../rofi/home.nix
|
||||
];
|
||||
|
||||
home.packages = [
|
||||
pkgs.swaybg
|
||||
];
|
||||
|
||||
# When swhkd is available, wlogout could be started via a script
|
||||
# that disables keybind watching, starts wlogout, and enables keybind
|
||||
# watching again once it's closed
|
||||
programs.wlogout = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
];
|
||||
configPackages = [
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
];
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
settings = {
|
||||
exec-once = [
|
||||
"swaybg -i $WALLPAPER"
|
||||
"waybar"
|
||||
];
|
||||
|
||||
monitor = [
|
||||
"eDP-1,1920x1080@59.96,0x0,auto"
|
||||
# "X11-1,600x800@59.96,0x0,auto"
|
||||
];
|
||||
|
||||
input = {
|
||||
# kb_options = "caps:swapescape,altwin:swap_alt_win";
|
||||
};
|
||||
|
||||
|
||||
|
||||
general = {
|
||||
gaps_in = 3;
|
||||
gaps_out = 6;
|
||||
};
|
||||
|
||||
group = {
|
||||
groupbar = {
|
||||
gradients = false;
|
||||
text_color = "0xff111111";
|
||||
};
|
||||
};
|
||||
|
||||
misc = {
|
||||
disable_hyprland_logo = true;
|
||||
background_color = "0x000000";
|
||||
};
|
||||
|
||||
animation = [
|
||||
"workspaces,1,3,default,slidevert"
|
||||
"windows,1,2,default,slide"
|
||||
];
|
||||
|
||||
|
||||
|
||||
workspace = [
|
||||
"name:I"
|
||||
"name:II"
|
||||
"name:III"
|
||||
"name:IV"
|
||||
"name:V"
|
||||
];
|
||||
|
||||
windowrule = [
|
||||
"fullscreen,noanim,noborder,title:(Albert)"
|
||||
];
|
||||
|
||||
|
||||
|
||||
"$mod" = "SUPER";
|
||||
|
||||
bind = [
|
||||
"$mod, Return, exec, $TERMINAL"
|
||||
"$mod, o, exec, qutesearch"
|
||||
"$mod, Space, exec, rofi -show drun"
|
||||
"SUPERSHIFT, Space, exec, rofi -show run"
|
||||
"$mod, Escape, exec, wlogout"
|
||||
|
||||
"$mod, w, killactive" # This closes the window and the name is dumb
|
||||
"$mod, f, togglefloating"
|
||||
"$mod, t, togglegroup"
|
||||
|
||||
"$mod, h, movefocus, l"
|
||||
"$mod, j, movefocus, d"
|
||||
"$mod, k, movefocus, u"
|
||||
"$mod, l, movefocus, r"
|
||||
"$mod, left, movefocus, l"
|
||||
"$mod, down, movefocus, d"
|
||||
"$mod, up, movefocus, u"
|
||||
"$mod, right, movefocus, r"
|
||||
|
||||
"$mod, a, changegroupactive, f"
|
||||
"$mod, d, changegroupactive, f"
|
||||
|
||||
"$mod, Tab, cyclenext"
|
||||
|
||||
"SUPERSHIFT, h, movewindoworgroup, l"
|
||||
"SUPERSHIFT, j, movewindoworgroup, d"
|
||||
"SUPERSHIFT, k, movewindoworgroup, u"
|
||||
"SUPERSHIFT, l, movewindoworgroup, r"
|
||||
"SUPERSHIFT, left, movewindoworgroup, l"
|
||||
"SUPERSHIFT, down, movewindoworgroup, d"
|
||||
"SUPERSHIFT, up, movewindoworgroup, u"
|
||||
"SUPERSHIFT, right, movewindoworgroup, r"
|
||||
|
||||
"$mod, 1, workspace, 1"
|
||||
"$mod, 2, workspace, 2"
|
||||
"$mod, 3, workspace, 3"
|
||||
"$mod, 4, workspace, 4"
|
||||
"$mod, 5, workspace, 5"
|
||||
];
|
||||
|
||||
bindm = [
|
||||
"$mod, mouse:272, movewindow"
|
||||
"$mod, mouse:273, resizewindow"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
58
modules/kitty/colors.nix
Normal file
@ -0,0 +1,58 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
options.custom.colors.kitty = {
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.custom.colors.kitty.enable {
|
||||
programs.kitty.settings = with config.custom.colors; {
|
||||
# Based on https://github.com/mk12/base16-kitty
|
||||
|
||||
background = base00;
|
||||
foreground = base05;
|
||||
selection_background = base05;
|
||||
selection_foreground = base00;
|
||||
url_color = base0D;
|
||||
cursor = base0D;
|
||||
cursor_text_color = base00;
|
||||
active_border_color = base03;
|
||||
inactive_border_color = base01;
|
||||
active_tab_background = base00;
|
||||
active_tab_foreground = base05;
|
||||
inactive_tab_background = base01;
|
||||
inactive_tab_foreground = base04;
|
||||
|
||||
# Normal
|
||||
color0 = base00;
|
||||
color1 = base08;
|
||||
color2 = base0B;
|
||||
color3 = base0A;
|
||||
color4 = base0D;
|
||||
color5 = base0E;
|
||||
color6 = base0C;
|
||||
color7 = base05;
|
||||
|
||||
# Bright (same as Normal except 8/15)
|
||||
color8 = base03;
|
||||
color9 = base08;
|
||||
color10 = base0B;
|
||||
color11 = base0A;
|
||||
color12 = base0D;
|
||||
color13 = base0E;
|
||||
color14 = base0C;
|
||||
color15 = base07;
|
||||
|
||||
# Other (like base16-shell)
|
||||
color16 = base09;
|
||||
color17 = base0F;
|
||||
color18 = base01;
|
||||
color19 = base02;
|
||||
color20 = base04;
|
||||
color21 = base06;
|
||||
};
|
||||
};
|
||||
}
|
16
modules/kitty/home.nix
Normal file
@ -0,0 +1,16 @@
|
||||
{ ... }: {
|
||||
imports = [ ./colors.nix ];
|
||||
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
shellIntegration.enableFishIntegration = true;
|
||||
settings = {
|
||||
editor = "micro";
|
||||
|
||||
confirm_os_window_close = 0;
|
||||
enable_audio_bell = false;
|
||||
visual_bell_duration = "0.6";
|
||||
visual_bell_color = "#111111";
|
||||
};
|
||||
};
|
||||
}
|
51
modules/ncspot/colors.nix
Normal file
@ -0,0 +1,51 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
options.custom.colors.ncspot = {
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.custom.colors.ncspot.enable {
|
||||
programs.ncspot.settings.theme = with config.custom.colors; {
|
||||
# Attempts to look kinda green like the official client
|
||||
|
||||
background = base00;
|
||||
primary = base04;
|
||||
secondary = base01;
|
||||
title = base0B; # green
|
||||
playing = base0B; # green
|
||||
playing_selected = base0C; # cyan
|
||||
playing_bg = base06;
|
||||
highlight = base04;
|
||||
highlight_bg = base02;
|
||||
error = base04;
|
||||
error_bg = base08;
|
||||
statusbar = base00;
|
||||
statusbar_progress = base0B;
|
||||
statusbar_bg = base0B;
|
||||
cmdline = base04;
|
||||
search_match = base0A;
|
||||
|
||||
# background = "black"
|
||||
# primary = "light white"
|
||||
# secondary = "light black"
|
||||
# title = "green"
|
||||
# playing = "green"
|
||||
# playing_selected = "light green"
|
||||
# playing_bg = "black"
|
||||
# highlight = "light white"
|
||||
# highlight_bg = "#484848"
|
||||
# error = "light white"
|
||||
# error_bg = "red"
|
||||
# statusbar = "black"
|
||||
# statusbar_progress = "green"
|
||||
# statusbar_bg = "green"
|
||||
# cmdline = "light white"
|
||||
# cmdline_bg = "black"
|
||||
# search_match = "light red"
|
||||
};
|
||||
};
|
||||
}
|
14
modules/ncspot/home.nix
Normal file
@ -0,0 +1,14 @@
|
||||
{ pkgs, ... }: {
|
||||
imports = [ ./colors.nix ];
|
||||
|
||||
home.packages = [
|
||||
pkgs.ueberzugpp
|
||||
];
|
||||
|
||||
programs.ncspot = {
|
||||
enable = true;
|
||||
settings = {
|
||||
cover_max_scale = 2;
|
||||
};
|
||||
};
|
||||
}
|
291
modules/qutebrowser/colors.nix
Normal file
@ -0,0 +1,291 @@
|
||||
# Adaptation of the base16 qutebrowser theme by theova
|
||||
# (https://github.com/theova/base16-qutebrowser)
|
||||
|
||||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
options.custom.colors.qutebrowser = {
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.custom.colors.qutebrowser.enable {
|
||||
programs.qutebrowser.settings = with config.custom.colors; {
|
||||
# Text color of the completion widget. May be a single color to use for
|
||||
# all columns or a list of three colors, one for each column.
|
||||
colors.completion.fg = base05;
|
||||
|
||||
# Background color of the completion widget for odd rows.
|
||||
colors.completion.odd.bg = base01;
|
||||
|
||||
# Background color of the completion widget for even rows.
|
||||
colors.completion.even.bg = base00;
|
||||
|
||||
# Foreground color of completion widget category headers.
|
||||
colors.completion.category.fg = base0A;
|
||||
|
||||
# Background color of the completion widget category headers.
|
||||
colors.completion.category.bg = base00;
|
||||
|
||||
# Top border color of the completion widget category headers.
|
||||
colors.completion.category.border.top = base00;
|
||||
|
||||
# Bottom border color of the completion widget category headers.
|
||||
colors.completion.category.border.bottom = base00;
|
||||
|
||||
# Foreground color of the selected completion item.
|
||||
colors.completion.item.selected.fg = base05;
|
||||
|
||||
# Background color of the selected completion item.
|
||||
colors.completion.item.selected.bg = base02;
|
||||
|
||||
# Top border color of the selected completion item.
|
||||
colors.completion.item.selected.border.top = base02;
|
||||
|
||||
# Bottom border color of the selected completion item.
|
||||
colors.completion.item.selected.border.bottom = base02;
|
||||
|
||||
# Foreground color of the matched text in the selected completion item.
|
||||
colors.completion.item.selected.match.fg = base0B;
|
||||
|
||||
# Foreground color of the matched text in the completion.
|
||||
colors.completion.match.fg = base0B;
|
||||
|
||||
# Color of the scrollbar handle in the completion view.
|
||||
colors.completion.scrollbar.fg = base05;
|
||||
|
||||
# Color of the scrollbar in the completion view.
|
||||
colors.completion.scrollbar.bg = base00;
|
||||
|
||||
# Background color of disabled items in the context menu.
|
||||
colors.contextmenu.disabled.bg = base01;
|
||||
|
||||
# Foreground color of disabled items in the context menu.
|
||||
colors.contextmenu.disabled.fg = base04;
|
||||
|
||||
# Background color of the context menu. If set to null, the Qt default is used.
|
||||
colors.contextmenu.menu.bg = base00;
|
||||
|
||||
# Foreground color of the context menu. If set to null, the Qt default is used.
|
||||
colors.contextmenu.menu.fg = base05;
|
||||
|
||||
# Background color of the context menu’s selected item. If set to null, the Qt default is used.
|
||||
colors.contextmenu.selected.bg = base02;
|
||||
|
||||
#Foreground color of the context menu’s selected item. If set to null, the Qt default is used.
|
||||
colors.contextmenu.selected.fg = base05;
|
||||
|
||||
# Background color for the download bar.
|
||||
colors.downloads.bar.bg = base00;
|
||||
|
||||
# Color gradient start for download text.
|
||||
colors.downloads.start.fg = base00;
|
||||
|
||||
# Color gradient start for download backgrounds.
|
||||
colors.downloads.start.bg = base0D;
|
||||
|
||||
# Color gradient end for download text.
|
||||
colors.downloads.stop.fg = base00;
|
||||
|
||||
# Color gradient stop for download backgrounds.
|
||||
colors.downloads.stop.bg = base0C;
|
||||
|
||||
# Foreground color for downloads with errors.
|
||||
colors.downloads.error.fg = base08;
|
||||
|
||||
# Font color for hints.
|
||||
colors.hints.fg = base00;
|
||||
|
||||
# Background color for hints. Note that you can use a `rgba(...)` value
|
||||
# for transparency.
|
||||
colors.hints.bg = base0A;
|
||||
|
||||
# Font color for the matched part of hints.
|
||||
colors.hints.match.fg = base05;
|
||||
|
||||
# Text color for the keyhint widget.
|
||||
colors.keyhint.fg = base05;
|
||||
|
||||
# Highlight color for keys to complete the current keychain.
|
||||
colors.keyhint.suffix.fg = base05;
|
||||
|
||||
# Background color of the keyhint widget.
|
||||
colors.keyhint.bg = base00;
|
||||
|
||||
# Foreground color of an error message.
|
||||
colors.messages.error.fg = base00;
|
||||
|
||||
# Background color of an error message.
|
||||
colors.messages.error.bg = base08;
|
||||
|
||||
# Border color of an error message.
|
||||
colors.messages.error.border = base08;
|
||||
|
||||
# Foreground color of a warning message.
|
||||
colors.messages.warning.fg = base00;
|
||||
|
||||
# Background color of a warning message.
|
||||
colors.messages.warning.bg = base0E;
|
||||
|
||||
# Border color of a warning message.
|
||||
colors.messages.warning.border = base0E;
|
||||
|
||||
# Foreground color of an info message.
|
||||
colors.messages.info.fg = base05;
|
||||
|
||||
# Background color of an info message.
|
||||
colors.messages.info.bg = base00;
|
||||
|
||||
# Border color of an info message.
|
||||
colors.messages.info.border = base00;
|
||||
|
||||
# Foreground color for prompts.
|
||||
colors.prompts.fg = base05;
|
||||
|
||||
# Border used around UI elements in prompts.
|
||||
colors.prompts.border = base00;
|
||||
|
||||
# Background color for prompts.
|
||||
colors.prompts.bg = base00;
|
||||
|
||||
# Background color for the selected item in filename prompts.
|
||||
colors.prompts.selected.bg = base02;
|
||||
|
||||
# Foreground color for the selected item in filename prompts.
|
||||
colors.prompts.selected.fg = base05;
|
||||
|
||||
# Foreground color of the statusbar.
|
||||
colors.statusbar.normal.fg = base0B;
|
||||
|
||||
# Background color of the statusbar.
|
||||
colors.statusbar.normal.bg = base00;
|
||||
|
||||
# Foreground color of the statusbar in insert mode.
|
||||
colors.statusbar.insert.fg = base00;
|
||||
|
||||
# Background color of the statusbar in insert mode.
|
||||
colors.statusbar.insert.bg = base0D;
|
||||
|
||||
# Foreground color of the statusbar in passthrough mode.
|
||||
colors.statusbar.passthrough.fg = base00;
|
||||
|
||||
# Background color of the statusbar in passthrough mode.
|
||||
colors.statusbar.passthrough.bg = base0C;
|
||||
|
||||
# Foreground color of the statusbar in private browsing mode.
|
||||
colors.statusbar.private.fg = base00;
|
||||
|
||||
# Background color of the statusbar in private browsing mode.
|
||||
colors.statusbar.private.bg = base01;
|
||||
|
||||
# Foreground color of the statusbar in command mode.
|
||||
colors.statusbar.command.fg = base05;
|
||||
|
||||
# Background color of the statusbar in command mode.
|
||||
colors.statusbar.command.bg = base00;
|
||||
|
||||
# Foreground color of the statusbar in private browsing + command mode.
|
||||
colors.statusbar.command.private.fg = base05;
|
||||
|
||||
# Background color of the statusbar in private browsing + command mode.
|
||||
colors.statusbar.command.private.bg = base00;
|
||||
|
||||
# Foreground color of the statusbar in caret mode.
|
||||
colors.statusbar.caret.fg = base00;
|
||||
|
||||
# Background color of the statusbar in caret mode.
|
||||
colors.statusbar.caret.bg = base0E;
|
||||
|
||||
# Foreground color of the statusbar in caret mode with a selection.
|
||||
colors.statusbar.caret.selection.fg = base00;
|
||||
|
||||
# Background color of the statusbar in caret mode with a selection.
|
||||
colors.statusbar.caret.selection.bg = base0D;
|
||||
|
||||
# Background color of the progress bar.
|
||||
colors.statusbar.progress.bg = base0D;
|
||||
|
||||
# Default foreground color of the URL in the statusbar.
|
||||
colors.statusbar.url.fg = base05;
|
||||
|
||||
# Foreground color of the URL in the statusbar on error.
|
||||
colors.statusbar.url.error.fg = base08;
|
||||
|
||||
# Foreground color of the URL in the statusbar for hovered links.
|
||||
colors.statusbar.url.hover.fg = base05;
|
||||
|
||||
# Foreground color of the URL in the statusbar on successful load
|
||||
# (http).
|
||||
colors.statusbar.url.success.http.fg = base0C;
|
||||
|
||||
# Foreground color of the URL in the statusbar on successful load
|
||||
# (https).
|
||||
colors.statusbar.url.success.https.fg = base0B;
|
||||
|
||||
# Foreground color of the URL in the statusbar when there's a warning.
|
||||
colors.statusbar.url.warn.fg = base0E;
|
||||
|
||||
# Background color of the tab bar.
|
||||
colors.tabs.bar.bg = base00;
|
||||
|
||||
# Color gradient start for the tab indicator.
|
||||
colors.tabs.indicator.start = base0D;
|
||||
|
||||
# Color gradient end for the tab indicator.
|
||||
colors.tabs.indicator.stop = base0C;
|
||||
|
||||
# Color for the tab indicator on errors.
|
||||
colors.tabs.indicator.error = base08;
|
||||
|
||||
# Foreground color of unselected odd tabs.
|
||||
colors.tabs.odd.fg = base05;
|
||||
|
||||
# Background color of unselected odd tabs.
|
||||
colors.tabs.odd.bg = base01;
|
||||
|
||||
# Foreground color of unselected even tabs.
|
||||
colors.tabs.even.fg = base05;
|
||||
|
||||
# Background color of unselected even tabs.
|
||||
colors.tabs.even.bg = base00;
|
||||
|
||||
# Background color of pinned unselected even tabs.
|
||||
colors.tabs.pinned.even.bg = base0C;
|
||||
|
||||
# Foreground color of pinned unselected even tabs.
|
||||
colors.tabs.pinned.even.fg = base07;
|
||||
|
||||
# Background color of pinned unselected odd tabs.
|
||||
colors.tabs.pinned.odd.bg = base0B;
|
||||
|
||||
# Foreground color of pinned unselected odd tabs.
|
||||
colors.tabs.pinned.odd.fg = base07;
|
||||
|
||||
# Background color of pinned selected even tabs.
|
||||
colors.tabs.pinned.selected.even.bg = base02;
|
||||
|
||||
# Foreground color of pinned selected even tabs.
|
||||
colors.tabs.pinned.selected.even.fg = base05;
|
||||
|
||||
# Background color of pinned selected odd tabs.
|
||||
colors.tabs.pinned.selected.odd.bg = base02;
|
||||
|
||||
# Foreground color of pinned selected odd tabs.
|
||||
colors.tabs.pinned.selected.odd.fg = base05;
|
||||
|
||||
# Foreground color of selected odd tabs.
|
||||
colors.tabs.selected.odd.fg = base05;
|
||||
|
||||
# Background color of selected odd tabs.
|
||||
colors.tabs.selected.odd.bg = base02;
|
||||
|
||||
# Foreground color of selected even tabs.
|
||||
colors.tabs.selected.even.fg = base05;
|
||||
|
||||
# Background color of selected even tabs.
|
||||
colors.tabs.selected.even.bg = base02;
|
||||
};
|
||||
};
|
||||
}
|
23
modules/qutebrowser/home.nix
Normal file
@ -0,0 +1,23 @@
|
||||
{ ... }: {
|
||||
imports = [ ./colors.nix ];
|
||||
|
||||
programs.qutebrowser = {
|
||||
enable = true;
|
||||
loadAutoconfig = true;
|
||||
keyBindings = {
|
||||
normal = {
|
||||
"gp" = "mode-enter passthrough";
|
||||
};
|
||||
};
|
||||
settings = {
|
||||
tabs = {
|
||||
tabs_are_windows = true;
|
||||
show = "never";
|
||||
};
|
||||
|
||||
colors = {
|
||||
webpage.darkmode.enabled = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
8
modules/qutesearch/home.nix
Normal file
@ -0,0 +1,8 @@
|
||||
{ pkgs, ... }: {
|
||||
home.file.".local/bin/qutesearch".source = ./qutesearch;
|
||||
|
||||
home.packages = [
|
||||
pkgs.sqlite
|
||||
pkgs.qutebrowser
|
||||
];
|
||||
}
|
6
modules/qutesearch/qutesearch
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
db=$HOME/.local/share/qutebrowser/history.sqlite
|
||||
url=$(sqlite3 "$db" "select title,url from History" | tac | awk '!a[$0]++' | rofi -dmenu | awk -F '|' '{print $NF}')
|
||||
[ -z "$url" ] && exit
|
||||
qutebrowser --target window "$url"
|
7
modules/rofi/home.nix
Normal file
@ -0,0 +1,7 @@
|
||||
{ ... }: {
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
|
||||
location = "top";
|
||||
};
|
||||
}
|
7
modules/tint2/home.nix
Normal file
@ -0,0 +1,7 @@
|
||||
{ ... }: {
|
||||
programs.tint2.enable = true;
|
||||
xdg.configFile."tint2/tint2rc" = {
|
||||
source = ./tint2rc;
|
||||
executable = true;
|
||||
};
|
||||
}
|
269
modules/tint2/tint2rc
Executable file
@ -0,0 +1,269 @@
|
||||
#---- Generated by tint2conf b81d ----
|
||||
# See https://gitlab.com/o9000/tint2/wikis/Configure for
|
||||
# full documentation of the configuration options.
|
||||
#-------------------------------------
|
||||
# Gradients
|
||||
# Gradient 1
|
||||
gradient = horizontal
|
||||
start_color = #000000 60
|
||||
end_color = #000000 0
|
||||
color_stop = 60.000000 #000000 49
|
||||
color_stop = 0.000000 #000000 90
|
||||
|
||||
#-------------------------------------
|
||||
# Backgrounds
|
||||
# Background 1: Panel
|
||||
rounded = 0
|
||||
border_width = 0
|
||||
border_sides = TBLR
|
||||
border_content_tint_weight = 0
|
||||
background_content_tint_weight = 0
|
||||
background_color = #000000 0
|
||||
border_color = #000000 0
|
||||
gradient_id = 1
|
||||
background_color_hover = #000000 0
|
||||
border_color_hover = #000000 0
|
||||
background_color_pressed = #000000 0
|
||||
border_color_pressed = #000000 30
|
||||
|
||||
# Background 2: Active desktop name
|
||||
rounded = 4
|
||||
border_width = 1
|
||||
border_sides = TBLR
|
||||
border_content_tint_weight = 0
|
||||
background_content_tint_weight = 0
|
||||
background_color = #777777 20
|
||||
border_color = #777777 30
|
||||
background_color_hover = #aaaaaa 22
|
||||
border_color_hover = #eaeaea 44
|
||||
background_color_pressed = #555555 4
|
||||
border_color_pressed = #eaeaea 44
|
||||
|
||||
# Background 3: Active task
|
||||
rounded = 4
|
||||
border_width = 1
|
||||
border_sides = TBLR
|
||||
border_content_tint_weight = 0
|
||||
background_content_tint_weight = 0
|
||||
background_color = #777777 20
|
||||
border_color = #ffffff 40
|
||||
background_color_hover = #aaaaaa 22
|
||||
border_color_hover = #eaeaea 44
|
||||
background_color_pressed = #555555 4
|
||||
border_color_pressed = #eaeaea 44
|
||||
|
||||
# Background 4: Urgent task
|
||||
rounded = 4
|
||||
border_width = 1
|
||||
border_sides = TBLR
|
||||
border_content_tint_weight = 0
|
||||
background_content_tint_weight = 0
|
||||
background_color = #aa4400 100
|
||||
border_color = #aa7733 100
|
||||
background_color_hover = #cc7700 100
|
||||
border_color_hover = #aa7733 100
|
||||
background_color_pressed = #555555 4
|
||||
border_color_pressed = #aa7733 100
|
||||
|
||||
# Background 5: Tooltip
|
||||
rounded = 1
|
||||
border_width = 1
|
||||
border_sides = TBLR
|
||||
border_content_tint_weight = 0
|
||||
background_content_tint_weight = 0
|
||||
background_color = #000000 30
|
||||
border_color = #000000 0
|
||||
background_color_hover = #ffffaa 100
|
||||
border_color_hover = #000000 100
|
||||
background_color_pressed = #ffffaa 100
|
||||
border_color_pressed = #000000 100
|
||||
|
||||
#-------------------------------------
|
||||
# Panel
|
||||
panel_items = PT:S:C:
|
||||
panel_size = 100% 40
|
||||
panel_margin = 0 0
|
||||
panel_padding = 2 0 2
|
||||
panel_background_id = 1
|
||||
wm_menu = 1
|
||||
panel_dock = 0
|
||||
panel_pivot_struts = 0
|
||||
panel_position = bottom left vertical
|
||||
panel_layer = top
|
||||
panel_monitor = all
|
||||
panel_shrink = 0
|
||||
autohide = 0
|
||||
autohide_show_timeout = 0
|
||||
autohide_hide_timeout = 0.5
|
||||
autohide_height = 2
|
||||
strut_policy = follow_size
|
||||
panel_window_name = tint2
|
||||
disable_transparency = 0
|
||||
mouse_effects = 1
|
||||
font_shadow = 0
|
||||
mouse_hover_icon_asb = 100 0 10
|
||||
mouse_pressed_icon_asb = 100 0 0
|
||||
scale_relative_to_dpi = 0
|
||||
scale_relative_to_screen_height = 0
|
||||
|
||||
#-------------------------------------
|
||||
# Taskbar
|
||||
taskbar_mode = multi_desktop
|
||||
taskbar_hide_if_empty = 0
|
||||
taskbar_padding = 0 0 4
|
||||
taskbar_background_id = 0
|
||||
taskbar_active_background_id = 0
|
||||
taskbar_name = 1
|
||||
taskbar_hide_inactive_tasks = 0
|
||||
taskbar_hide_different_monitor = 0
|
||||
taskbar_hide_different_desktop = 0
|
||||
taskbar_always_show_all_desktop_tasks = 0
|
||||
taskbar_name_padding = 1 0
|
||||
taskbar_name_background_id = 0
|
||||
taskbar_name_active_background_id = 2
|
||||
taskbar_name_font = Ubuntu Ultra-Bold 10
|
||||
taskbar_name_font_color = #e3e3e3 100
|
||||
taskbar_name_active_font_color = #ffffff 100
|
||||
taskbar_distribute_size = 1
|
||||
taskbar_sort_order = none
|
||||
task_align = left
|
||||
|
||||
#-------------------------------------
|
||||
# Task
|
||||
task_text = 0
|
||||
task_icon = 1
|
||||
task_centered = 1
|
||||
urgent_nb_of_blink = 100000
|
||||
task_maximum_size = 150 35
|
||||
task_padding = 2 2 4
|
||||
task_tooltip = 1
|
||||
task_thumbnail = 1
|
||||
task_thumbnail_size = 210
|
||||
task_font_color = #ffffff 100
|
||||
task_background_id = 0
|
||||
task_active_background_id = 3
|
||||
task_urgent_background_id = 4
|
||||
task_iconified_background_id = 0
|
||||
mouse_left = toggle
|
||||
mouse_middle = none
|
||||
mouse_right = close
|
||||
mouse_scroll_up = desktop_left
|
||||
mouse_scroll_down = desktop_right
|
||||
|
||||
#-------------------------------------
|
||||
# System tray (notification area)
|
||||
systray_padding = 0 4 2
|
||||
systray_background_id = 0
|
||||
systray_sort = ascending
|
||||
systray_icon_size = 24
|
||||
systray_icon_asb = 100 0 0
|
||||
systray_monitor = 1
|
||||
systray_name_filter =
|
||||
|
||||
#-------------------------------------
|
||||
# Launcher
|
||||
launcher_padding = 2 4 2
|
||||
launcher_background_id = 0
|
||||
launcher_icon_background_id = 0
|
||||
launcher_icon_size = 24
|
||||
launcher_icon_asb = 100 0 0
|
||||
launcher_icon_theme_override = 0
|
||||
startup_notifications = 1
|
||||
launcher_tooltip = 1
|
||||
launcher_item_app = tint2conf.desktop
|
||||
launcher_item_app = firefox.desktop
|
||||
launcher_item_app = iceweasel.desktop
|
||||
launcher_item_app = chromium-browser.desktop
|
||||
launcher_item_app = google-chrome.desktop
|
||||
|
||||
#-------------------------------------
|
||||
# Clock
|
||||
time1_format = %I
|
||||
time2_format = %M
|
||||
time1_font = Ubuntu Mono Bold 10
|
||||
time1_timezone =
|
||||
time2_timezone =
|
||||
time2_font = Ubuntu Mono Medium 10
|
||||
clock_font_color = #ffffff 100
|
||||
clock_padding = 2 0
|
||||
clock_background_id = 0
|
||||
clock_tooltip =
|
||||
clock_tooltip_timezone =
|
||||
clock_lclick_command =
|
||||
clock_rclick_command = orage
|
||||
clock_mclick_command =
|
||||
clock_uwheel_command =
|
||||
clock_dwheel_command =
|
||||
|
||||
#-------------------------------------
|
||||
# Battery
|
||||
battery_tooltip = 1
|
||||
battery_low_status = 10
|
||||
battery_low_cmd = xmessage 'tint2: Battery low!'
|
||||
battery_full_cmd =
|
||||
battery_font_color = #ffffff 100
|
||||
bat1_format =
|
||||
bat2_format =
|
||||
battery_padding = 1 0
|
||||
battery_background_id = 0
|
||||
battery_hide = 101
|
||||
battery_lclick_command =
|
||||
battery_rclick_command =
|
||||
battery_mclick_command =
|
||||
battery_uwheel_command =
|
||||
battery_dwheel_command =
|
||||
ac_connected_cmd =
|
||||
ac_disconnected_cmd =
|
||||
|
||||
#-------------------------------------
|
||||
# Separator 1
|
||||
separator = new
|
||||
separator_background_id = 0
|
||||
separator_color = #777777 80
|
||||
separator_style = empty
|
||||
separator_size = 3
|
||||
separator_padding = 4 0
|
||||
|
||||
#-------------------------------------
|
||||
# Separator 2
|
||||
separator = new
|
||||
separator_background_id = 0
|
||||
separator_color = #777777 80
|
||||
separator_style = empty
|
||||
separator_size = 3
|
||||
separator_padding = 1 0
|
||||
|
||||
#-------------------------------------
|
||||
# Separator 3
|
||||
separator = new
|
||||
separator_background_id = 0
|
||||
separator_color = #777777 80
|
||||
separator_style = empty
|
||||
separator_size = 3
|
||||
separator_padding = 1 0
|
||||
|
||||
#-------------------------------------
|
||||
# Button 1
|
||||
button = new
|
||||
button_icon = search
|
||||
button_text =
|
||||
button_lclick_command = rofi -show run
|
||||
button_rclick_command =
|
||||
button_mclick_command =
|
||||
button_uwheel_command =
|
||||
button_dwheel_command =
|
||||
button_font = Ubuntu 10
|
||||
button_font_color = #ffffff 100
|
||||
button_padding = 0 7
|
||||
button_background_id = 0
|
||||
button_centered = 1
|
||||
button_max_icon_size = 0
|
||||
|
||||
#-------------------------------------
|
||||
# Tooltip
|
||||
tooltip_show_timeout = 0.5
|
||||
tooltip_hide_timeout = 0.1
|
||||
tooltip_padding = 4 4
|
||||
tooltip_background_id = 5
|
||||
tooltip_font_color = #dddddd 100
|
||||
|
26
modules/waybar/config.json
Normal file
@ -0,0 +1,26 @@
|
||||
[
|
||||
{
|
||||
"height": 1080,
|
||||
"hyprland/workspaces": {
|
||||
"active-only": false,
|
||||
"format": "{name}"
|
||||
},
|
||||
"layer": "top",
|
||||
"modules-center": [],
|
||||
"modules-left": [
|
||||
"hyprland/workspaces"
|
||||
],
|
||||
"modules-right": [
|
||||
"tray",
|
||||
"wireplumber"
|
||||
],
|
||||
"output": [
|
||||
"eDP-1"
|
||||
],
|
||||
"position": "left",
|
||||
"width": 30,
|
||||
"wireplumber": {
|
||||
"scroll-step": 5
|
||||
}
|
||||
}
|
||||
]
|
51
modules/waybar/home.nix
Normal file
@ -0,0 +1,51 @@
|
||||
{ ... }: {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
position = "left";
|
||||
|
||||
height = 1080;
|
||||
width = 30;
|
||||
|
||||
|
||||
output = [
|
||||
"eDP-1"
|
||||
];
|
||||
|
||||
modules-left = [ "hyprland/workspaces" ];
|
||||
modules-right = [ "hyprland/submap" "tray" "wireplumber" ];
|
||||
|
||||
"hyprland/workspaces" = {
|
||||
active-only = false;
|
||||
format = "<b>{name}</b>\n{windows}";
|
||||
format-window-separator = "\n";
|
||||
persistent-workspaces."*" = 5;
|
||||
};
|
||||
|
||||
"hyprland/window" = {
|
||||
format= "{title}";
|
||||
separate-outputs = true;
|
||||
};
|
||||
|
||||
"hyprland/submap" = {
|
||||
max-length = 8;
|
||||
format = "lol {}";
|
||||
tooltip = true;
|
||||
};
|
||||
|
||||
"tray" = {
|
||||
spacing = 10;
|
||||
icon-size = 20;
|
||||
};
|
||||
|
||||
"wireplumber" = {
|
||||
scroll-step = 5;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
0
scripts/qutesearch.nix
Normal file
BIN
wallpapers/blip-blip-blip-blip.jpg
Normal file
After Width: | Height: | Size: 1020 KiB |
BIN
wallpapers/blopies.jpg
Normal file
After Width: | Height: | Size: 2.0 MiB |
BIN
wallpapers/blorbos.jpg
Normal file
After Width: | Height: | Size: 592 KiB |
BIN
wallpapers/bowling-alley.jpg
Normal file
After Width: | Height: | Size: 103 KiB |
BIN
wallpapers/currents.jpg
Normal file
After Width: | Height: | Size: 1.7 MiB |
BIN
wallpapers/eyes.jpg
Normal file
After Width: | Height: | Size: 6.8 MiB |
BIN
wallpapers/flesh.jpg
Normal file
After Width: | Height: | Size: 1.7 MiB |
BIN
wallpapers/trails.jpg
Normal file
After Width: | Height: | Size: 4.3 MiB |