Compare commits

...

34 Commits

Author SHA1 Message Date
8aa3821080 Merge remote-tracking branch 'nixos-config/experimental' into nixos-experimental 2023-05-21 14:17:42 +02:00
c7d288fa81 Add kde connect tray icon 2023-05-20 20:11:03 +02:00
4cc5b86818 Set proper timeout for swayidle 2023-05-16 19:01:20 +02:00
0f9d6229a7 Add swayidle (10s) for testing 2023-05-16 18:54:01 +02:00
934e90ab8d Enable gtklock pam service 2023-05-16 18:46:50 +02:00
df1e183511 move gtklock to system 2023-05-16 18:38:46 +02:00
9df1d85751 Add programs, modify hyprland config
Thunderbird added
    swayidle for idle management
    gtklock as screen locker
    use insensitive matching in wofi
2023-05-16 18:32:45 +02:00
a5828d0887 Try this 2023-05-16 17:46:21 +02:00
1e05c660e6 move unfree variable 2023-05-16 17:43:40 +02:00
63937b5ae3 Allow unfree packages in home-manager 2023-05-16 17:41:02 +02:00
bf50c28fb8 Disable managed dunst for now 2023-05-16 17:37:32 +02:00
e451e12afe Bunch of changes
Replace mako with dunst and use current config
    Add udiskie and autostart
2023-05-16 17:36:02 +02:00
e36904f6fa Disable libreoffice config copy. This is causing issues where LO crashes 2023-05-16 17:19:48 +02:00
a206dab8bc Autoformat + modified Options shown using "lsblkf" 2023-05-07 13:10:24 +02:00
9204d2e166 That package doesn't work either 2023-05-06 21:42:42 +02:00
1b52f6e501 Change package used 2023-05-06 21:37:21 +02:00
05863512d2 Add packages 2023-05-06 21:31:50 +02:00
e2ab7a3180 Try modifying format to new standard 2023-05-06 21:23:15 +02:00
f56ab9af66 Further testing required to use a variable for the identity file path 2023-05-06 21:15:02 +02:00
c83d83ad35 Fix temporary test 2023-05-06 21:07:00 +02:00
5de42c6c60 Test variable correctness 2023-05-06 21:05:58 +02:00
f4dddb86f9 Fix ssh config format 2023-05-06 20:57:11 +02:00
fee1d0c3a9 Add TODO note for calibre config 2023-05-05 15:00:38 +02:00
5d9fc0c522 Huge batch of user configurations has been copied or implemented to nix
New configs for:
    - kitty
    - libreoffice
    - fonts
    - transmission remote
    - ssh

    Calibre is still TODO, once I figure out what the important bits
    are.
    Same goes for Firefox, which might be more complex
2023-05-05 14:58:36 +02:00
20a7f9bf97 Revert "Replace path with nix/store path"
This reverts commit c3add670df.
2023-05-05 13:15:46 +02:00
c3add670df Replace path with nix/store path 2023-05-05 12:56:23 +02:00
b121ecc864 Add source for builting envs 2023-05-05 12:56:17 +02:00
ddf158c389 Use variables where possible
Path to openssh package is accessed using ${pkgs.openssh}
    Variable for ssh socket is set based on the built in XDG_RUNTIME_DIR variable
2023-05-05 12:33:33 +02:00
8a42523a9f Set a default terminal variable 2023-05-05 12:33:12 +02:00
c629bc0078 Add containerisation programs for nix 2023-05-05 11:47:53 +02:00
219a15bbc6 Openbox is not really working for me. try using lxqt 2023-05-05 11:25:16 +02:00
f4b8420aa7 Make it easier to debug all installed applications 2023-05-04 20:55:31 +02:00
98ac24e61c Openbox added to make debugging in VMs possible 2023-05-04 20:50:42 +02:00
27ff3d316a Add open-vm-tools for vmware 2023-05-04 16:04:37 +02:00
9 changed files with 3141 additions and 74 deletions

View File

@ -7,13 +7,9 @@
let let
user = "exu"; user = "exu";
hostname = "nixos"; hostname = "nixos";
in in {
{ imports =
imports = [ [ ./hardware-configuration.nix ./system-packages.nix ./home-manager.nix ];
./hardware-configuration.nix
./system-packages.nix
./home-manager.nix
];
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
boot.loader = { boot.loader = {
@ -21,9 +17,7 @@ in
enable = true; enable = true;
configurationLimit = 10; configurationLimit = 10;
}; };
efi = { efi = { canTouchEfiVariables = true; };
canTouchEfiVariables = true;
};
}; };
# Enable completions by nix # Enable completions by nix
@ -39,6 +33,7 @@ in
EDITOR = "nvim"; EDITOR = "nvim";
VISUAL = "nvim"; VISUAL = "nvim";
SUDO_EDITOR = "nvim"; SUDO_EDITOR = "nvim";
TERMINAL = "kitty";
}; };
# remove nano from default packages # remove nano from default packages
defaultPackages = [ pkgs.perl pkgs.rsync pkgs.strace ]; defaultPackages = [ pkgs.perl pkgs.rsync pkgs.strace ];
@ -54,7 +49,8 @@ in
networking.hostName = "${hostname}"; # Define your hostname. networking.hostName = "${hostname}"; # Define your hostname.
# Pick only one of the below networking options. # Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. networking.networkmanager.enable =
true; # Easiest to use and most distros use this by default.
# disable global firewall for the time being # disable global firewall for the time being
networking.firewall.enable = false; networking.firewall.enable = false;
@ -68,9 +64,7 @@ in
# Select internationalisation properties. # Select internationalisation properties.
i18n.defaultLocale = "de_CH.UTF-8"; i18n.defaultLocale = "de_CH.UTF-8";
console = { console = { keyMap = "de_CH-latin1"; };
keyMap = "de_CH-latin1";
};
# Enable the X11 windowing system. # Enable the X11 windowing system.
services.xserver = { services.xserver = {
@ -84,6 +78,7 @@ in
enable = true; enable = true;
wayland = true; wayland = true;
}; };
desktopManager.lxqt.enable = true;
}; };
# enable gvfs service # enable gvfs service
@ -91,9 +86,7 @@ in
# Hyprland # Hyprland
security.polkit.enable = true; security.polkit.enable = true;
programs.hyprland = { programs.hyprland = { enable = true; };
enable = true;
};
# sudoers file # sudoers file
security.sudo.configFile = (builtins.readFile ./config/sudoers); security.sudo.configFile = (builtins.readFile ./config/sudoers);
@ -104,6 +97,7 @@ in
# keyring # keyring
services.gnome.gnome-keyring.enable = true; services.gnome.gnome-keyring.enable = true;
security.pam.services.${user}.enableGnomeKeyring = true; security.pam.services.${user}.enableGnomeKeyring = true;
security.pam.services.gtklock = { };
programs.seahorse.enable = true; programs.seahorse.enable = true;
# Enable CUPS to print documents. # Enable CUPS to print documents.
@ -124,9 +118,7 @@ in
services.xserver.libinput.enable = true; services.xserver.libinput.enable = true;
# root config # root config
users.users.root = { users.users.root = { shell = pkgs.fish; };
shell = pkgs.fish;
};
# User config # User config
users.users.${user} = { users.users.${user} = {
@ -155,6 +147,37 @@ in
# Enable thumbnailer service # Enable thumbnailer service
services.tumbler.enable = true; services.tumbler.enable = true;
fonts.fontconfig = {
enable = true;
hinting = {
enable = true;
autohint = false;
style = "hintfull";
};
subpixel = {
rgba = "rgb";
lcdfilter = "default";
};
antialias = true;
defaultFonts = {
serif = [ "Droid Serif" ];
sansSerif = [ "Fira Sans" ];
monospace = [ "Fira Code" "Fira Mono" ];
#emoji = [ "Font Awesome" ];
};
};
virtualisation = {
podman = {
enable = true;
# clean up regularly
autoPrune = {
enable = true;
dates = "weekly";
};
};
};
# Open ports in the firewall. # Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ];

View File

@ -3,25 +3,20 @@
let let
user = "exu"; user = "exu";
hostname = "nixos"; hostname = "nixos";
in in {
{ imports = [ <home-manager/nixos> ];
imports = [
<home-manager/nixos>
];
# root home # root home
home-manager.users.root = { pkgs, ... }: { home-manager.users.root = { pkgs, ... }: {
home.username = "root"; home.username = "root";
home.homeDirectory = "/root"; home.homeDirectory = "/root";
home.stateVersion = "22.11"; home.stateVersion = "22.11";
home.packages = with pkgs; [ home.packages = with pkgs;
[
kitty # terminfo support kitty # terminfo support
]; ];
imports = [ imports = [ ./home-manager/hyprland.nix ./home-manager/fish.nix ];
./home-manager/hyprland.nix
./home-manager/fish.nix
];
}; };
@ -30,21 +25,22 @@ in
home.username = "${user}"; home.username = "${user}";
home.homeDirectory = "/home/${user}"; home.homeDirectory = "/home/${user}";
home.stateVersion = "22.11"; home.stateVersion = "22.11";
# allow unfree packages as well
nixpkgs.config.allowUnfree = true;
home.packages = with pkgs; [ home.packages = with pkgs; [
firefox # browser firefox # browser
kitty # terminal kitty # terminal
pciutils # lspci command pciutils # lspci command
git # git git # git
emacs # emacs editor emacs # emacs editor
emacsPackages.doom # doom emacs configuration
acpilight # controlling laptop monitor backlight acpilight # controlling laptop monitor backlight
networkmanagerapplet # network configuration networkmanagerapplet # network configuration
wofi # app launcher (wayland replacement for rofi) wofi # app launcher (wayland replacement for rofi)
fish # fish shell fish # fish shell
libnotify # notifications libnotify # notifications
mako # notification daemon
xdg-desktop-portal-hyprland # desktop portal (hyprland fork) xdg-desktop-portal-hyprland # desktop portal (hyprland fork)
#neovim # text editor #neovim # text editor
dunst # notification daemon
yt-dlp # video downloader yt-dlp # video downloader
#sweet # gtk theme #sweet # gtk theme
waybar # status bar waybar # status bar
@ -53,34 +49,36 @@ in
xfce.thunar-archive-plugin # manage archives in thunar xfce.thunar-archive-plugin # manage archives in thunar
#xfce.xfce4-settings # xfce settings manager #xfce.xfce4-settings # xfce settings manager
xfce.xfconf # xfce config storage xfce.xfconf # xfce config storage
transmission-remote-gtk # torrent remote controll gui
libreoffice-fresh # office document editor
hunspell # offline spellchecker (en)
hunspellDicts.de_CH # adds German (Switzerland) for hunspell
discord # install discord
udiskie # user disk mounting
thunderbird # email client
swayidle # idle management
]; ];
imports = [ imports = [ ./home-manager/hyprland.nix ./home-manager/fish.nix ];
./home-manager/hyprland.nix
./home-manager/fish.nix
];
systemd.user = { systemd.user = {
# user services # user services
services = { services = {
# ssh-agent user service # ssh-agent user service
ssh-agent = { ssh-agent = {
Unit = { Unit = { Description = "SSH key agent"; };
Description = "SSH key agent";
};
Service = { Service = {
Type = "simple"; Type = "simple";
Environment = "SSH_AUTH_SOCK=%t/ssh-agent.socket"; Environment = "SSH_AUTH_SOCK=%t/ssh-agent.socket";
ExecStart = "/run/current-system/sw/bin/ssh-agent -D -a $SSH_AUTH_SOCK"; ExecStart = "${pkgs.openssh}/bin/ssh-agent -D -a $SSH_AUTH_SOCK";
};
Install = {
WantedBy = [ "default.target" ];
}; };
Install = { WantedBy = [ "default.target" ]; };
}; };
}; };
# user environment variables # user environment variables
sessionVariables = { sessionVariables = {
SSH_AUTH_SOCK = "/run/user/1000/ssh-agent.socket"; # see https://discourse.nixos.org/t/how-to-use-xdg-runtime-dir-in-pam-sessionvariables/10120/3 about the builtin variable
SSH_AUTH_SOCK = "${builtins.getEnv "XDG_RUNTIME_DIR"}/ssh-agent.socket";
}; };
}; };
@ -88,29 +86,55 @@ in
programs.git = { programs.git = {
enable = true; enable = true;
extraConfig = { extraConfig = {
init = { init = { defaultBranch = "main"; };
defaultBranch = "main";
};
user = { user = {
name = "RealStickman"; name = "RealStickman";
email = "mrc@frm01.net"; email = "mrc@frm01.net";
}; };
gitlab = { gitlab = { user = "RealStickman"; };
user = "RealStickman"; github = { user = "RealStickman"; };
};
};
programs = {
waybar = {
enable = true;
settings = {
mainBar = (builtins.fromJSON
(builtins.readFile ./home-manager/config/waybar/config.json));
};
style = (builtins.readFile ./home-manager/config/waybar/style.css);
};
kitty = {
enable = true;
extraConfig =
(builtins.readFile ./home-manager/config/kitty/kitty.conf);
};
ssh = {
enable = true;
extraOptionOverrides = { AddKeysToAgent = "yes"; };
matchBlocks = {
"gitlab.com" = {
host = "gitlab.com";
identityFile = [ "/home/${user}/.ssh/id_ed25519_git" ];
};
"github.com" = {
host = "github.com";
identityFile = [ "/home/${user}/.ssh/id_ed25519_git" ];
};
"gitea.exu.li" = {
host = "gitea.exu.li";
identityFile = [ "/home/${user}/.ssh/id_ed25519_git" ];
};
"aur.archlinux.org" = {
host = "aur.archlinux.org";
identityFile = [ "/home/${user}/.ssh/id_ed25519_git" ];
}; };
github = {
user = "RealStickman";
}; };
}; };
}; };
programs.waybar = { services.dunst = { enable = false; };
enable = true;
settings = {
mainBar = (builtins.fromJSON (builtins.readFile ./home-manager/config/waybar/config.json));
};
style = (builtins.readFile ./home-manager/config/waybar/style.css);
};
home.file = { home.file = {
# Scripts # Scripts
@ -133,9 +157,19 @@ in
# xdg user dirs # xdg user dirs
".config/user-dirs.dirs".source = ./home-manager/config/user-dirs.dirs; ".config/user-dirs.dirs".source = ./home-manager/config/user-dirs.dirs;
# xdg user locales # xdg user locales
".config/user-dirs.locale".source = ./home-manager/config/user-dirs.locale; ".config/user-dirs.locale".source =
./home-manager/config/user-dirs.locale;
# libreoffice settings
#".config/libreoffice".source = ./home-manager/config/libreoffice;
# transmission remote settings
".config/transmission-remote-gtk".source =
./home-manager/config/transmission-remote-gtk;
# TODO firefox configuration
# TODO calibre configuration
# dunst configuration
# TODO replace using the built-in dunst support of home-manager
".config/dunst/dunstrc".source = ./home-manager/config/dunst/dunstrc;
}; };
services.mako.enable = true;
}; };
} }

View File

@ -0,0 +1,468 @@
[global]
### Display ###
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = mouse
# The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window.
# The height is measured in number of notifications everything else
# in pixels. If the width is omitted but the height is given
# ("-geometry x2"), the message window expands over the whole screen
# (dmenu-like). If width is 0, the window expands to the longest
# message displayed. A positive x is measured from the left, a
# negative from the right side of the screen. Y is measured from
# the top and down respectively.
# The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option.
geometry = "500x0-30+20"
# Show how many messages are currently hidden (because of geometry).
indicate_hidden = yes
# Shrink window if it's smaller than the width. Will be ignored if
# width is 0.
shrink = yes
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.).
transparency = 0
# The height of the entire notification. If the height is smaller
# than the font height and padding combined, it will be raised
# to the font height and padding.
notification_height = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
separator_height = 2
# Padding between text and separator.
padding = 8
# Horizontal padding.
horizontal_padding = 8
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 2
# Defines color of the frame around the notification window.
frame_color = "#aaaaaa"
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = auto
# Sort messages by urgency.
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
# A client can set the 'transient' hint to bypass this. See the rules
# section for how to disable this if necessary
idle_threshold = 120
### Text ###
font = Monospace 8
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <https://developer.gnome.org/pango/stable/pango-Markup.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<b>%s</b> <i>%a</i>\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = center
# Vertical alignment of message text and icon.
# Possible values are "top", "center" and "bottom".
vertical_alignment = center
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Split notifications into multiple lines if they don't fit into
# geometry.
word_wrap = yes
# When word_wrap is set to no, specify where to make an ellipsis in long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Stack together notifications with the same content
stack_duplicates = true
# Hide the count of stacked notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Align icons left/right/off
icon_position = left
# Scale small icons up to this size, set to 0 to disable. Helpful
# for e.g. small files or high-dpi screens. In case of conflict,
# max_icon_size takes precedence over this.
min_icon_size = 0
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 32
# Paths to default icons.
icon_path = /usr/share/icons/Surfn/24/status/:/usr/share/icons/Surfn/24/devices/
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
### Misc/Advanced ###
# dmenu path.
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/firefox -new-tab
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst
title = Dunst
# Define the class of the windows spawned by dunst
class = Dunst
# Print a notification on startup.
# This is mainly for error detection, since dbus (re-)starts dunst
# automatically after a crash.
startup_notification = false
# Manage dunst's desire for talking
# Can be one of the following values:
# crit: Critical features. Dunst aborts
# warn: Only non-fatal warnings
# mesg: Important Messages
# info: all unimportant stuff
# debug: all less than unimportant stuff
verbosity = mesg
# Define the corner radius of the notification window
# in pixel size. If the radius is 0, you have no rounded
# corners.
# The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons.
corner_radius = 10
# Ignore the dbus closeNotification message.
# Useful to enforce the timeout set by dunst configuration. Without this
# parameter, an application may close the notification sent before the
# user defined timeout.
ignore_dbusclose = false
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
### mouse
# Defines list of actions for each mouse event
# Possible values are:
# * none: Don't do anything.
# * do_action: If the notification has exactly one action, or one is marked as default,
# invoke it. If there are multiple and no default, open the context menu.
# * close_current: Close current notification.
# * close_all: Close all notifications.
# These values can be strung together for each mouse event, and
# will be executed in sequence.
mouse_left_click = close_current
mouse_middle_click = close_all
mouse_right_click = do_action
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[shortcuts]
# Shortcuts are specified as [modifier+][modifier+]...key
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
# "mod3" and "mod4" (windows-key).
# Xev might be helpful to find names for keys.
# Close notification.
#close = ctrl+space
# Close all notifications.
#close_all = ctrl+shift+space
# Redisplay last message(s).
# On the US keyboard layout "grave" is normally above TAB and left
# of "1". Make sure this key actually exists on your keyboard layout,
# e.g. check output of 'xmodmap -pke'
#history = ctrl+grave
# Context menu.
#context = ctrl+shift+period
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#222222"
foreground = "#aaaaaa"
timeout = 5
# Icon for notifications with low urgency, uncomment to enable
#icon = /path/to/icon
[urgency_normal]
background = "#333333"
foreground = "#ffffff"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
#icon = /path/to/icon
[urgency_critical]
background = "#555555"
foreground = "#ffffff"
timeout = 0
# Icon for notifications with critical urgency, uncomment to enable
#icon = /path/to/icon
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
#
# Messages can be matched by
# appname (discouraged, see desktop_entry)
# body
# category
# desktop_entry
# icon
# match_transient
# msg_urgency
# stack_tag
# summary
#
# and you can override the
# background
# foreground
# format
# frame_color
# fullscreen
# new_icon
# set_stack_tag
# set_transient
# timeout
# urgency
#
# Shell-like globbing will get expanded.
#
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
# GLib based applications export their desktop-entry name. In comparison to the appname,
# the desktop-entry won't get localized.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: if you don't want a notification to be displayed, set the format
# to "".
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
# Disable the transient hint so that idle_threshold cannot be bypassed from the
# client
#[transient_disable]
# match_transient = yes
# set_transient = no
#
# Make the handling of transient notifications more strict by making them not
# be placed in history.
#[transient_history_ignore]
# match_transient = yes
# history_ignore = yes
# fullscreen values
# show: show the notifications, regardless if there is a fullscreen window opened
# delay: displays the new notification, if there is no fullscreen window active
# If the notification is already drawn, it won't get undrawn.
# pushback: same as delay, but when switching into fullscreen, the notification will get
# withdrawn from screen again and will get delayed like a new notification
#[fullscreen_delay_everything]
# fullscreen = delay
#[fullscreen_show_critical]
# msg_urgency = critical
# fullscreen = show
[fullscreen_show]
fullscreen = show
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# format = ""
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[skip-display]
# # This notification will not be displayed, but will be included in the history
# summary = "foobar"
# skip_display = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
#[stack-volumes]
# appname = "some_volume_notifiers"
# set_stack_tag = "volume"
[dunstify]
appname = "dunstify"
format = "<b>%s</b>\n%b"
script = "/home/marc/scripts/dunst-notification-sound.sh"
[notify-send]
appname = "notify-send"
format = "<b>%s</b>\n%b"
script = "/home/marc/scripts/dunst-notification-sound.sh"
[volume-script]
appname = "volume-script"
format = "<b>%s</b>\n%b"
timeout = 5
script = "/home/marc/scripts/dunst-notification-sound.sh"
[backlight-script]
appname = "backlight-script"
format = "<b>%s</b>\n%b"
timeout = 5
script = "/home/marc/scripts/dunst-notification-sound.sh"
[xfce4-power-manager]
appname = "Power Manager"
summary = "Brightness:*"
format = ""
# vim: ft=cfg
#[play-sound]
# summary = "*"
# script = "/home/marc/scripts/dunst-notification-sound.sh"
[Evolution-sound]
appname = "evolution-mail-notification"
script = "/home/marc/scripts/dunst-notification-sound.sh"

View File

@ -111,12 +111,15 @@ gestures {
$mod = SUPER $mod = SUPER
# Startup stuff # Startup stuff
exec-once = mako exec-once = dunst # notifications
exec-once = waybar exec-once = waybar # status bar
exec-once = udiskie --no-automount --tray # user disk mounting
exec-once = swayidle timeout 600 'gtklock -d' # lockscreen
exec-once = kdeconnect-indicator # kde connect
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = CTRL_ALT, RETURN, exec, kitty # terminal bind = CTRL_ALT, RETURN, exec, kitty # terminal
bind = CTRL_ALT, A, exec, wofi --show drun # app launcher bind = CTRL_ALT, A, exec, wofi --insensitive --show drun # app launcher
bind = CTRL_ALT, f, exec, firefox # browser bind = CTRL_ALT, f, exec, firefox # browser
bind = CTRL_ALT, e, exec, emacs # editor bind = CTRL_ALT, e, exec, emacs # editor
bind = CTRL_ALT, t, exec, thunar # file manager bind = CTRL_ALT, t, exec, thunar # file manager

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,115 @@
{
"profiles" : [
{
"profile-name" : "Default",
"hostname" : "172.18.50.103",
"port" : 9091,
"rpc-url-path" : "/transmission/rpc",
"username" : "",
"password" : "",
"auto-connect" : true,
"ssl" : false,
"ssl-validate" : false,
"timeout" : 40,
"retries" : 3,
"update-active-only" : false,
"activeonly-fullsync-enabled" : false,
"activeonly-fullsync-every" : 2,
"update-interval" : 3,
"min-update-interval" : 3,
"session-update-interval" : 60,
"custom-headers" : [],
"exec-commands" : [],
"destinations" : []
}
],
"profile-id" : 0,
"tree-views" : {
"TrgTorrentTreeView" : {
"sort-col" : 22,
"sort-type" : 0
},
"TrgTrackersTreeView" : {
"sort-col" : -2,
"sort-type" : 0,
"widths" : [
72,
146,
85,
142,
148,
149,
126,
128
],
"columns" : [
"tier",
"announce-url",
"last-announce-peer-count",
"seeder-count",
"leecher-count",
"last-announce-time",
"last-result",
"scrape-url"
]
},
"TrgFilesTreeView" : {
"sort-col" : -2,
"sort-type" : 0,
"widths" : [
189,
176,
211,
220,
200
],
"columns" : [
"name",
"size",
"progress",
"wanted",
"priority"
]
},
"TrgPeersTreeView" : {
"sort-col" : -2,
"sort-type" : 0,
"widths" : [
89,
107,
129,
163,
142,
137,
112,
117
],
"columns" : [
"ip",
"host",
"country",
"down-speed",
"up-speed",
"progress",
"flags",
"client"
]
}
},
"start-paused" : false,
"add-options-dialog" : true,
"delete-local-torrent" : false,
"show-state-selector" : true,
"filter-dirs" : true,
"filter-trackers" : true,
"directories-first" : true,
"show-notebook" : false,
"system-tray" : false,
"system-tray-minimise" : false,
"add-notify" : false,
"complete-notify" : false,
"window-height" : 1056,
"window-width" : 1916,
"notebook-paned-pos" : 300,
"states-paned-pos" : 120
}

View File

@ -3,7 +3,8 @@
{ {
programs.fish = { programs.fish = {
enable = true; enable = true;
interactiveShellInit = (builtins.readFile ./config/fish/conf.d/interactive.fish); interactiveShellInit =
(builtins.readFile ./config/fish/conf.d/interactive.fish);
shellAliases = { shellAliases = {
# open emacs in terminal # open emacs in terminal
emacs = "emacs --no-window-system"; emacs = "emacs --no-window-system";
@ -15,7 +16,8 @@
# colored ls output # colored ls output
ls = "ls --color=auto"; ls = "ls --color=auto";
# kill all wine processes # kill all wine processes
killwine = "ls -l /proc/*/exe 2>/dev/null | grep -E 'wine(64)?-preloader|wineserver' | perl -pe 's;^.*/proc/(\d+)/exe.*$;$1;g;' | xargs -n 1 kill"; killwine =
"ls -l /proc/*/exe 2>/dev/null | grep -E 'wine(64)?-preloader|wineserver' | perl -pe 's;^.*/proc/(d+)/exe.*$;$1;g;' | xargs -n 1 kill";
# colored grep output # colored grep output
grep = "grep --color=auto"; grep = "grep --color=auto";
# yt-dlp aliases # yt-dlp aliases
@ -24,16 +26,19 @@
# best video # best video
ytv-best = "yt-dlp -f bestvideo+bestaudio "; ytv-best = "yt-dlp -f bestvideo+bestaudio ";
# download video including metadata from youtube # download video including metadata from youtube
ytv-metadata = "yt-dlp -f bestvideo+bestaudio --add-metadata --parse-metadata \"%(title)s:%(meta_title)s\" --parse-metadata \"%(uploader)s:%(meta_artist)s\" --write-info-json --write-thumbnail --embed-thumbnail --embed-subs --sub-langs \"en.*\" --merge-output-format mkv "; ytv-metadata = ''
yt-dlp -f bestvideo+bestaudio --add-metadata --parse-metadata "%(title)s:%(meta_title)s" --parse-metadata "%(uploader)s:%(meta_artist)s" --write-info-json --write-thumbnail --embed-thumbnail --embed-subs --sub-langs "en.*" --merge-output-format mkv '';
# activate venv called "venv" in the local directory # activate venv called "venv" in the local directory
activate = "source venv/bin/activate.fish"; activate = "source venv/bin/activate.fish";
# lsblk including file system type # lsblk including file system type
lsblkf = "lsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT,SIZE,MODEL,UUID"; lsblkf =
"lsblk -o NAME,LABEL,RM,SIZE,RO,TYPE,FSTYPE,MOUNTPOINTS,MODEL,UUID";
# color ip command # color ip command
ip = "ip -c"; ip = "ip -c";
}; };
functions = { functions = {
fish_prompt = (builtins.readFile ./config/fish/functions/fish_prompt.fish); fish_prompt =
(builtins.readFile ./config/fish/functions/fish_prompt.fish);
}; };
}; };
} }

View File

@ -22,11 +22,15 @@
libsForQt5.qt5.qtwayland # wayland for at5 libsForQt5.qt5.qtwayland # wayland for at5
polkit_gnome # graphical authentication agent for polkit polkit_gnome # graphical authentication agent for polkit
freetype # font rendering and configuration freetype # font rendering and configuration
open-vm-tools # running on vmware
podman # containers
gtklock # lock screen
]; ];
fonts.fonts = with pkgs; [ fonts.fonts = with pkgs; [
fira # fira sans font fira # fira sans font
fira-code # fira code font fira-code # fira code font
font-awesome # icons font font-awesome # icons font
fira-mono # fira monospace without ligatures
]; ];
} }